1# This file is generated from a similarly-named Perl script in the BoringSSL
2# source tree. Do not edit by hand.
3
4#if defined(__has_feature)
5#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM)
6#define OPENSSL_NO_ASM
7#endif
8#endif
9
10#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
11#if defined(BORINGSSL_PREFIX)
12#include <boringssl_prefix_symbols_asm.h>
13#endif
14.text
15.extern	OPENSSL_ia32cap_P
16.hidden OPENSSL_ia32cap_P
17
18.globl	sha1_block_data_order
19.hidden sha1_block_data_order
20.type	sha1_block_data_order,@function
21.align	16
22sha1_block_data_order:
23.cfi_startproc
24	leaq	OPENSSL_ia32cap_P(%rip),%r10
25	movl	0(%r10),%r9d
26	movl	4(%r10),%r8d
27	movl	8(%r10),%r10d
28	testl	$512,%r8d
29	jz	.Lialu
30	andl	$268435456,%r8d
31	andl	$1073741824,%r9d
32	orl	%r9d,%r8d
33	cmpl	$1342177280,%r8d
34	je	_avx_shortcut
35	jmp	_ssse3_shortcut
36
37.align	16
38.Lialu:
39	movq	%rsp,%rax
40.cfi_def_cfa_register	%rax
41	pushq	%rbx
42.cfi_offset	%rbx,-16
43	pushq	%rbp
44.cfi_offset	%rbp,-24
45	pushq	%r12
46.cfi_offset	%r12,-32
47	pushq	%r13
48.cfi_offset	%r13,-40
49	pushq	%r14
50.cfi_offset	%r14,-48
51	movq	%rdi,%r8
52	subq	$72,%rsp
53	movq	%rsi,%r9
54	andq	$-64,%rsp
55	movq	%rdx,%r10
56	movq	%rax,64(%rsp)
57.cfi_escape	0x0f,0x06,0x77,0xc0,0x00,0x06,0x23,0x08
58.Lprologue:
59
60	movl	0(%r8),%esi
61	movl	4(%r8),%edi
62	movl	8(%r8),%r11d
63	movl	12(%r8),%r12d
64	movl	16(%r8),%r13d
65	jmp	.Lloop
66
67.align	16
68.Lloop:
69	movl	0(%r9),%edx
70	bswapl	%edx
71	movl	4(%r9),%ebp
72	movl	%r12d,%eax
73	movl	%edx,0(%rsp)
74	movl	%esi,%ecx
75	bswapl	%ebp
76	xorl	%r11d,%eax
77	roll	$5,%ecx
78	andl	%edi,%eax
79	leal	1518500249(%rdx,%r13,1),%r13d
80	addl	%ecx,%r13d
81	xorl	%r12d,%eax
82	roll	$30,%edi
83	addl	%eax,%r13d
84	movl	8(%r9),%r14d
85	movl	%r11d,%eax
86	movl	%ebp,4(%rsp)
87	movl	%r13d,%ecx
88	bswapl	%r14d
89	xorl	%edi,%eax
90	roll	$5,%ecx
91	andl	%esi,%eax
92	leal	1518500249(%rbp,%r12,1),%r12d
93	addl	%ecx,%r12d
94	xorl	%r11d,%eax
95	roll	$30,%esi
96	addl	%eax,%r12d
97	movl	12(%r9),%edx
98	movl	%edi,%eax
99	movl	%r14d,8(%rsp)
100	movl	%r12d,%ecx
101	bswapl	%edx
102	xorl	%esi,%eax
103	roll	$5,%ecx
104	andl	%r13d,%eax
105	leal	1518500249(%r14,%r11,1),%r11d
106	addl	%ecx,%r11d
107	xorl	%edi,%eax
108	roll	$30,%r13d
109	addl	%eax,%r11d
110	movl	16(%r9),%ebp
111	movl	%esi,%eax
112	movl	%edx,12(%rsp)
113	movl	%r11d,%ecx
114	bswapl	%ebp
115	xorl	%r13d,%eax
116	roll	$5,%ecx
117	andl	%r12d,%eax
118	leal	1518500249(%rdx,%rdi,1),%edi
119	addl	%ecx,%edi
120	xorl	%esi,%eax
121	roll	$30,%r12d
122	addl	%eax,%edi
123	movl	20(%r9),%r14d
124	movl	%r13d,%eax
125	movl	%ebp,16(%rsp)
126	movl	%edi,%ecx
127	bswapl	%r14d
128	xorl	%r12d,%eax
129	roll	$5,%ecx
130	andl	%r11d,%eax
131	leal	1518500249(%rbp,%rsi,1),%esi
132	addl	%ecx,%esi
133	xorl	%r13d,%eax
134	roll	$30,%r11d
135	addl	%eax,%esi
136	movl	24(%r9),%edx
137	movl	%r12d,%eax
138	movl	%r14d,20(%rsp)
139	movl	%esi,%ecx
140	bswapl	%edx
141	xorl	%r11d,%eax
142	roll	$5,%ecx
143	andl	%edi,%eax
144	leal	1518500249(%r14,%r13,1),%r13d
145	addl	%ecx,%r13d
146	xorl	%r12d,%eax
147	roll	$30,%edi
148	addl	%eax,%r13d
149	movl	28(%r9),%ebp
150	movl	%r11d,%eax
151	movl	%edx,24(%rsp)
152	movl	%r13d,%ecx
153	bswapl	%ebp
154	xorl	%edi,%eax
155	roll	$5,%ecx
156	andl	%esi,%eax
157	leal	1518500249(%rdx,%r12,1),%r12d
158	addl	%ecx,%r12d
159	xorl	%r11d,%eax
160	roll	$30,%esi
161	addl	%eax,%r12d
162	movl	32(%r9),%r14d
163	movl	%edi,%eax
164	movl	%ebp,28(%rsp)
165	movl	%r12d,%ecx
166	bswapl	%r14d
167	xorl	%esi,%eax
168	roll	$5,%ecx
169	andl	%r13d,%eax
170	leal	1518500249(%rbp,%r11,1),%r11d
171	addl	%ecx,%r11d
172	xorl	%edi,%eax
173	roll	$30,%r13d
174	addl	%eax,%r11d
175	movl	36(%r9),%edx
176	movl	%esi,%eax
177	movl	%r14d,32(%rsp)
178	movl	%r11d,%ecx
179	bswapl	%edx
180	xorl	%r13d,%eax
181	roll	$5,%ecx
182	andl	%r12d,%eax
183	leal	1518500249(%r14,%rdi,1),%edi
184	addl	%ecx,%edi
185	xorl	%esi,%eax
186	roll	$30,%r12d
187	addl	%eax,%edi
188	movl	40(%r9),%ebp
189	movl	%r13d,%eax
190	movl	%edx,36(%rsp)
191	movl	%edi,%ecx
192	bswapl	%ebp
193	xorl	%r12d,%eax
194	roll	$5,%ecx
195	andl	%r11d,%eax
196	leal	1518500249(%rdx,%rsi,1),%esi
197	addl	%ecx,%esi
198	xorl	%r13d,%eax
199	roll	$30,%r11d
200	addl	%eax,%esi
201	movl	44(%r9),%r14d
202	movl	%r12d,%eax
203	movl	%ebp,40(%rsp)
204	movl	%esi,%ecx
205	bswapl	%r14d
206	xorl	%r11d,%eax
207	roll	$5,%ecx
208	andl	%edi,%eax
209	leal	1518500249(%rbp,%r13,1),%r13d
210	addl	%ecx,%r13d
211	xorl	%r12d,%eax
212	roll	$30,%edi
213	addl	%eax,%r13d
214	movl	48(%r9),%edx
215	movl	%r11d,%eax
216	movl	%r14d,44(%rsp)
217	movl	%r13d,%ecx
218	bswapl	%edx
219	xorl	%edi,%eax
220	roll	$5,%ecx
221	andl	%esi,%eax
222	leal	1518500249(%r14,%r12,1),%r12d
223	addl	%ecx,%r12d
224	xorl	%r11d,%eax
225	roll	$30,%esi
226	addl	%eax,%r12d
227	movl	52(%r9),%ebp
228	movl	%edi,%eax
229	movl	%edx,48(%rsp)
230	movl	%r12d,%ecx
231	bswapl	%ebp
232	xorl	%esi,%eax
233	roll	$5,%ecx
234	andl	%r13d,%eax
235	leal	1518500249(%rdx,%r11,1),%r11d
236	addl	%ecx,%r11d
237	xorl	%edi,%eax
238	roll	$30,%r13d
239	addl	%eax,%r11d
240	movl	56(%r9),%r14d
241	movl	%esi,%eax
242	movl	%ebp,52(%rsp)
243	movl	%r11d,%ecx
244	bswapl	%r14d
245	xorl	%r13d,%eax
246	roll	$5,%ecx
247	andl	%r12d,%eax
248	leal	1518500249(%rbp,%rdi,1),%edi
249	addl	%ecx,%edi
250	xorl	%esi,%eax
251	roll	$30,%r12d
252	addl	%eax,%edi
253	movl	60(%r9),%edx
254	movl	%r13d,%eax
255	movl	%r14d,56(%rsp)
256	movl	%edi,%ecx
257	bswapl	%edx
258	xorl	%r12d,%eax
259	roll	$5,%ecx
260	andl	%r11d,%eax
261	leal	1518500249(%r14,%rsi,1),%esi
262	addl	%ecx,%esi
263	xorl	%r13d,%eax
264	roll	$30,%r11d
265	addl	%eax,%esi
266	xorl	0(%rsp),%ebp
267	movl	%r12d,%eax
268	movl	%edx,60(%rsp)
269	movl	%esi,%ecx
270	xorl	8(%rsp),%ebp
271	xorl	%r11d,%eax
272	roll	$5,%ecx
273	xorl	32(%rsp),%ebp
274	andl	%edi,%eax
275	leal	1518500249(%rdx,%r13,1),%r13d
276	roll	$30,%edi
277	xorl	%r12d,%eax
278	addl	%ecx,%r13d
279	roll	$1,%ebp
280	addl	%eax,%r13d
281	xorl	4(%rsp),%r14d
282	movl	%r11d,%eax
283	movl	%ebp,0(%rsp)
284	movl	%r13d,%ecx
285	xorl	12(%rsp),%r14d
286	xorl	%edi,%eax
287	roll	$5,%ecx
288	xorl	36(%rsp),%r14d
289	andl	%esi,%eax
290	leal	1518500249(%rbp,%r12,1),%r12d
291	roll	$30,%esi
292	xorl	%r11d,%eax
293	addl	%ecx,%r12d
294	roll	$1,%r14d
295	addl	%eax,%r12d
296	xorl	8(%rsp),%edx
297	movl	%edi,%eax
298	movl	%r14d,4(%rsp)
299	movl	%r12d,%ecx
300	xorl	16(%rsp),%edx
301	xorl	%esi,%eax
302	roll	$5,%ecx
303	xorl	40(%rsp),%edx
304	andl	%r13d,%eax
305	leal	1518500249(%r14,%r11,1),%r11d
306	roll	$30,%r13d
307	xorl	%edi,%eax
308	addl	%ecx,%r11d
309	roll	$1,%edx
310	addl	%eax,%r11d
311	xorl	12(%rsp),%ebp
312	movl	%esi,%eax
313	movl	%edx,8(%rsp)
314	movl	%r11d,%ecx
315	xorl	20(%rsp),%ebp
316	xorl	%r13d,%eax
317	roll	$5,%ecx
318	xorl	44(%rsp),%ebp
319	andl	%r12d,%eax
320	leal	1518500249(%rdx,%rdi,1),%edi
321	roll	$30,%r12d
322	xorl	%esi,%eax
323	addl	%ecx,%edi
324	roll	$1,%ebp
325	addl	%eax,%edi
326	xorl	16(%rsp),%r14d
327	movl	%r13d,%eax
328	movl	%ebp,12(%rsp)
329	movl	%edi,%ecx
330	xorl	24(%rsp),%r14d
331	xorl	%r12d,%eax
332	roll	$5,%ecx
333	xorl	48(%rsp),%r14d
334	andl	%r11d,%eax
335	leal	1518500249(%rbp,%rsi,1),%esi
336	roll	$30,%r11d
337	xorl	%r13d,%eax
338	addl	%ecx,%esi
339	roll	$1,%r14d
340	addl	%eax,%esi
341	xorl	20(%rsp),%edx
342	movl	%edi,%eax
343	movl	%r14d,16(%rsp)
344	movl	%esi,%ecx
345	xorl	28(%rsp),%edx
346	xorl	%r12d,%eax
347	roll	$5,%ecx
348	xorl	52(%rsp),%edx
349	leal	1859775393(%r14,%r13,1),%r13d
350	xorl	%r11d,%eax
351	addl	%ecx,%r13d
352	roll	$30,%edi
353	addl	%eax,%r13d
354	roll	$1,%edx
355	xorl	24(%rsp),%ebp
356	movl	%esi,%eax
357	movl	%edx,20(%rsp)
358	movl	%r13d,%ecx
359	xorl	32(%rsp),%ebp
360	xorl	%r11d,%eax
361	roll	$5,%ecx
362	xorl	56(%rsp),%ebp
363	leal	1859775393(%rdx,%r12,1),%r12d
364	xorl	%edi,%eax
365	addl	%ecx,%r12d
366	roll	$30,%esi
367	addl	%eax,%r12d
368	roll	$1,%ebp
369	xorl	28(%rsp),%r14d
370	movl	%r13d,%eax
371	movl	%ebp,24(%rsp)
372	movl	%r12d,%ecx
373	xorl	36(%rsp),%r14d
374	xorl	%edi,%eax
375	roll	$5,%ecx
376	xorl	60(%rsp),%r14d
377	leal	1859775393(%rbp,%r11,1),%r11d
378	xorl	%esi,%eax
379	addl	%ecx,%r11d
380	roll	$30,%r13d
381	addl	%eax,%r11d
382	roll	$1,%r14d
383	xorl	32(%rsp),%edx
384	movl	%r12d,%eax
385	movl	%r14d,28(%rsp)
386	movl	%r11d,%ecx
387	xorl	40(%rsp),%edx
388	xorl	%esi,%eax
389	roll	$5,%ecx
390	xorl	0(%rsp),%edx
391	leal	1859775393(%r14,%rdi,1),%edi
392	xorl	%r13d,%eax
393	addl	%ecx,%edi
394	roll	$30,%r12d
395	addl	%eax,%edi
396	roll	$1,%edx
397	xorl	36(%rsp),%ebp
398	movl	%r11d,%eax
399	movl	%edx,32(%rsp)
400	movl	%edi,%ecx
401	xorl	44(%rsp),%ebp
402	xorl	%r13d,%eax
403	roll	$5,%ecx
404	xorl	4(%rsp),%ebp
405	leal	1859775393(%rdx,%rsi,1),%esi
406	xorl	%r12d,%eax
407	addl	%ecx,%esi
408	roll	$30,%r11d
409	addl	%eax,%esi
410	roll	$1,%ebp
411	xorl	40(%rsp),%r14d
412	movl	%edi,%eax
413	movl	%ebp,36(%rsp)
414	movl	%esi,%ecx
415	xorl	48(%rsp),%r14d
416	xorl	%r12d,%eax
417	roll	$5,%ecx
418	xorl	8(%rsp),%r14d
419	leal	1859775393(%rbp,%r13,1),%r13d
420	xorl	%r11d,%eax
421	addl	%ecx,%r13d
422	roll	$30,%edi
423	addl	%eax,%r13d
424	roll	$1,%r14d
425	xorl	44(%rsp),%edx
426	movl	%esi,%eax
427	movl	%r14d,40(%rsp)
428	movl	%r13d,%ecx
429	xorl	52(%rsp),%edx
430	xorl	%r11d,%eax
431	roll	$5,%ecx
432	xorl	12(%rsp),%edx
433	leal	1859775393(%r14,%r12,1),%r12d
434	xorl	%edi,%eax
435	addl	%ecx,%r12d
436	roll	$30,%esi
437	addl	%eax,%r12d
438	roll	$1,%edx
439	xorl	48(%rsp),%ebp
440	movl	%r13d,%eax
441	movl	%edx,44(%rsp)
442	movl	%r12d,%ecx
443	xorl	56(%rsp),%ebp
444	xorl	%edi,%eax
445	roll	$5,%ecx
446	xorl	16(%rsp),%ebp
447	leal	1859775393(%rdx,%r11,1),%r11d
448	xorl	%esi,%eax
449	addl	%ecx,%r11d
450	roll	$30,%r13d
451	addl	%eax,%r11d
452	roll	$1,%ebp
453	xorl	52(%rsp),%r14d
454	movl	%r12d,%eax
455	movl	%ebp,48(%rsp)
456	movl	%r11d,%ecx
457	xorl	60(%rsp),%r14d
458	xorl	%esi,%eax
459	roll	$5,%ecx
460	xorl	20(%rsp),%r14d
461	leal	1859775393(%rbp,%rdi,1),%edi
462	xorl	%r13d,%eax
463	addl	%ecx,%edi
464	roll	$30,%r12d
465	addl	%eax,%edi
466	roll	$1,%r14d
467	xorl	56(%rsp),%edx
468	movl	%r11d,%eax
469	movl	%r14d,52(%rsp)
470	movl	%edi,%ecx
471	xorl	0(%rsp),%edx
472	xorl	%r13d,%eax
473	roll	$5,%ecx
474	xorl	24(%rsp),%edx
475	leal	1859775393(%r14,%rsi,1),%esi
476	xorl	%r12d,%eax
477	addl	%ecx,%esi
478	roll	$30,%r11d
479	addl	%eax,%esi
480	roll	$1,%edx
481	xorl	60(%rsp),%ebp
482	movl	%edi,%eax
483	movl	%edx,56(%rsp)
484	movl	%esi,%ecx
485	xorl	4(%rsp),%ebp
486	xorl	%r12d,%eax
487	roll	$5,%ecx
488	xorl	28(%rsp),%ebp
489	leal	1859775393(%rdx,%r13,1),%r13d
490	xorl	%r11d,%eax
491	addl	%ecx,%r13d
492	roll	$30,%edi
493	addl	%eax,%r13d
494	roll	$1,%ebp
495	xorl	0(%rsp),%r14d
496	movl	%esi,%eax
497	movl	%ebp,60(%rsp)
498	movl	%r13d,%ecx
499	xorl	8(%rsp),%r14d
500	xorl	%r11d,%eax
501	roll	$5,%ecx
502	xorl	32(%rsp),%r14d
503	leal	1859775393(%rbp,%r12,1),%r12d
504	xorl	%edi,%eax
505	addl	%ecx,%r12d
506	roll	$30,%esi
507	addl	%eax,%r12d
508	roll	$1,%r14d
509	xorl	4(%rsp),%edx
510	movl	%r13d,%eax
511	movl	%r14d,0(%rsp)
512	movl	%r12d,%ecx
513	xorl	12(%rsp),%edx
514	xorl	%edi,%eax
515	roll	$5,%ecx
516	xorl	36(%rsp),%edx
517	leal	1859775393(%r14,%r11,1),%r11d
518	xorl	%esi,%eax
519	addl	%ecx,%r11d
520	roll	$30,%r13d
521	addl	%eax,%r11d
522	roll	$1,%edx
523	xorl	8(%rsp),%ebp
524	movl	%r12d,%eax
525	movl	%edx,4(%rsp)
526	movl	%r11d,%ecx
527	xorl	16(%rsp),%ebp
528	xorl	%esi,%eax
529	roll	$5,%ecx
530	xorl	40(%rsp),%ebp
531	leal	1859775393(%rdx,%rdi,1),%edi
532	xorl	%r13d,%eax
533	addl	%ecx,%edi
534	roll	$30,%r12d
535	addl	%eax,%edi
536	roll	$1,%ebp
537	xorl	12(%rsp),%r14d
538	movl	%r11d,%eax
539	movl	%ebp,8(%rsp)
540	movl	%edi,%ecx
541	xorl	20(%rsp),%r14d
542	xorl	%r13d,%eax
543	roll	$5,%ecx
544	xorl	44(%rsp),%r14d
545	leal	1859775393(%rbp,%rsi,1),%esi
546	xorl	%r12d,%eax
547	addl	%ecx,%esi
548	roll	$30,%r11d
549	addl	%eax,%esi
550	roll	$1,%r14d
551	xorl	16(%rsp),%edx
552	movl	%edi,%eax
553	movl	%r14d,12(%rsp)
554	movl	%esi,%ecx
555	xorl	24(%rsp),%edx
556	xorl	%r12d,%eax
557	roll	$5,%ecx
558	xorl	48(%rsp),%edx
559	leal	1859775393(%r14,%r13,1),%r13d
560	xorl	%r11d,%eax
561	addl	%ecx,%r13d
562	roll	$30,%edi
563	addl	%eax,%r13d
564	roll	$1,%edx
565	xorl	20(%rsp),%ebp
566	movl	%esi,%eax
567	movl	%edx,16(%rsp)
568	movl	%r13d,%ecx
569	xorl	28(%rsp),%ebp
570	xorl	%r11d,%eax
571	roll	$5,%ecx
572	xorl	52(%rsp),%ebp
573	leal	1859775393(%rdx,%r12,1),%r12d
574	xorl	%edi,%eax
575	addl	%ecx,%r12d
576	roll	$30,%esi
577	addl	%eax,%r12d
578	roll	$1,%ebp
579	xorl	24(%rsp),%r14d
580	movl	%r13d,%eax
581	movl	%ebp,20(%rsp)
582	movl	%r12d,%ecx
583	xorl	32(%rsp),%r14d
584	xorl	%edi,%eax
585	roll	$5,%ecx
586	xorl	56(%rsp),%r14d
587	leal	1859775393(%rbp,%r11,1),%r11d
588	xorl	%esi,%eax
589	addl	%ecx,%r11d
590	roll	$30,%r13d
591	addl	%eax,%r11d
592	roll	$1,%r14d
593	xorl	28(%rsp),%edx
594	movl	%r12d,%eax
595	movl	%r14d,24(%rsp)
596	movl	%r11d,%ecx
597	xorl	36(%rsp),%edx
598	xorl	%esi,%eax
599	roll	$5,%ecx
600	xorl	60(%rsp),%edx
601	leal	1859775393(%r14,%rdi,1),%edi
602	xorl	%r13d,%eax
603	addl	%ecx,%edi
604	roll	$30,%r12d
605	addl	%eax,%edi
606	roll	$1,%edx
607	xorl	32(%rsp),%ebp
608	movl	%r11d,%eax
609	movl	%edx,28(%rsp)
610	movl	%edi,%ecx
611	xorl	40(%rsp),%ebp
612	xorl	%r13d,%eax
613	roll	$5,%ecx
614	xorl	0(%rsp),%ebp
615	leal	1859775393(%rdx,%rsi,1),%esi
616	xorl	%r12d,%eax
617	addl	%ecx,%esi
618	roll	$30,%r11d
619	addl	%eax,%esi
620	roll	$1,%ebp
621	xorl	36(%rsp),%r14d
622	movl	%r12d,%eax
623	movl	%ebp,32(%rsp)
624	movl	%r12d,%ebx
625	xorl	44(%rsp),%r14d
626	andl	%r11d,%eax
627	movl	%esi,%ecx
628	xorl	4(%rsp),%r14d
629	leal	-1894007588(%rbp,%r13,1),%r13d
630	xorl	%r11d,%ebx
631	roll	$5,%ecx
632	addl	%eax,%r13d
633	roll	$1,%r14d
634	andl	%edi,%ebx
635	addl	%ecx,%r13d
636	roll	$30,%edi
637	addl	%ebx,%r13d
638	xorl	40(%rsp),%edx
639	movl	%r11d,%eax
640	movl	%r14d,36(%rsp)
641	movl	%r11d,%ebx
642	xorl	48(%rsp),%edx
643	andl	%edi,%eax
644	movl	%r13d,%ecx
645	xorl	8(%rsp),%edx
646	leal	-1894007588(%r14,%r12,1),%r12d
647	xorl	%edi,%ebx
648	roll	$5,%ecx
649	addl	%eax,%r12d
650	roll	$1,%edx
651	andl	%esi,%ebx
652	addl	%ecx,%r12d
653	roll	$30,%esi
654	addl	%ebx,%r12d
655	xorl	44(%rsp),%ebp
656	movl	%edi,%eax
657	movl	%edx,40(%rsp)
658	movl	%edi,%ebx
659	xorl	52(%rsp),%ebp
660	andl	%esi,%eax
661	movl	%r12d,%ecx
662	xorl	12(%rsp),%ebp
663	leal	-1894007588(%rdx,%r11,1),%r11d
664	xorl	%esi,%ebx
665	roll	$5,%ecx
666	addl	%eax,%r11d
667	roll	$1,%ebp
668	andl	%r13d,%ebx
669	addl	%ecx,%r11d
670	roll	$30,%r13d
671	addl	%ebx,%r11d
672	xorl	48(%rsp),%r14d
673	movl	%esi,%eax
674	movl	%ebp,44(%rsp)
675	movl	%esi,%ebx
676	xorl	56(%rsp),%r14d
677	andl	%r13d,%eax
678	movl	%r11d,%ecx
679	xorl	16(%rsp),%r14d
680	leal	-1894007588(%rbp,%rdi,1),%edi
681	xorl	%r13d,%ebx
682	roll	$5,%ecx
683	addl	%eax,%edi
684	roll	$1,%r14d
685	andl	%r12d,%ebx
686	addl	%ecx,%edi
687	roll	$30,%r12d
688	addl	%ebx,%edi
689	xorl	52(%rsp),%edx
690	movl	%r13d,%eax
691	movl	%r14d,48(%rsp)
692	movl	%r13d,%ebx
693	xorl	60(%rsp),%edx
694	andl	%r12d,%eax
695	movl	%edi,%ecx
696	xorl	20(%rsp),%edx
697	leal	-1894007588(%r14,%rsi,1),%esi
698	xorl	%r12d,%ebx
699	roll	$5,%ecx
700	addl	%eax,%esi
701	roll	$1,%edx
702	andl	%r11d,%ebx
703	addl	%ecx,%esi
704	roll	$30,%r11d
705	addl	%ebx,%esi
706	xorl	56(%rsp),%ebp
707	movl	%r12d,%eax
708	movl	%edx,52(%rsp)
709	movl	%r12d,%ebx
710	xorl	0(%rsp),%ebp
711	andl	%r11d,%eax
712	movl	%esi,%ecx
713	xorl	24(%rsp),%ebp
714	leal	-1894007588(%rdx,%r13,1),%r13d
715	xorl	%r11d,%ebx
716	roll	$5,%ecx
717	addl	%eax,%r13d
718	roll	$1,%ebp
719	andl	%edi,%ebx
720	addl	%ecx,%r13d
721	roll	$30,%edi
722	addl	%ebx,%r13d
723	xorl	60(%rsp),%r14d
724	movl	%r11d,%eax
725	movl	%ebp,56(%rsp)
726	movl	%r11d,%ebx
727	xorl	4(%rsp),%r14d
728	andl	%edi,%eax
729	movl	%r13d,%ecx
730	xorl	28(%rsp),%r14d
731	leal	-1894007588(%rbp,%r12,1),%r12d
732	xorl	%edi,%ebx
733	roll	$5,%ecx
734	addl	%eax,%r12d
735	roll	$1,%r14d
736	andl	%esi,%ebx
737	addl	%ecx,%r12d
738	roll	$30,%esi
739	addl	%ebx,%r12d
740	xorl	0(%rsp),%edx
741	movl	%edi,%eax
742	movl	%r14d,60(%rsp)
743	movl	%edi,%ebx
744	xorl	8(%rsp),%edx
745	andl	%esi,%eax
746	movl	%r12d,%ecx
747	xorl	32(%rsp),%edx
748	leal	-1894007588(%r14,%r11,1),%r11d
749	xorl	%esi,%ebx
750	roll	$5,%ecx
751	addl	%eax,%r11d
752	roll	$1,%edx
753	andl	%r13d,%ebx
754	addl	%ecx,%r11d
755	roll	$30,%r13d
756	addl	%ebx,%r11d
757	xorl	4(%rsp),%ebp
758	movl	%esi,%eax
759	movl	%edx,0(%rsp)
760	movl	%esi,%ebx
761	xorl	12(%rsp),%ebp
762	andl	%r13d,%eax
763	movl	%r11d,%ecx
764	xorl	36(%rsp),%ebp
765	leal	-1894007588(%rdx,%rdi,1),%edi
766	xorl	%r13d,%ebx
767	roll	$5,%ecx
768	addl	%eax,%edi
769	roll	$1,%ebp
770	andl	%r12d,%ebx
771	addl	%ecx,%edi
772	roll	$30,%r12d
773	addl	%ebx,%edi
774	xorl	8(%rsp),%r14d
775	movl	%r13d,%eax
776	movl	%ebp,4(%rsp)
777	movl	%r13d,%ebx
778	xorl	16(%rsp),%r14d
779	andl	%r12d,%eax
780	movl	%edi,%ecx
781	xorl	40(%rsp),%r14d
782	leal	-1894007588(%rbp,%rsi,1),%esi
783	xorl	%r12d,%ebx
784	roll	$5,%ecx
785	addl	%eax,%esi
786	roll	$1,%r14d
787	andl	%r11d,%ebx
788	addl	%ecx,%esi
789	roll	$30,%r11d
790	addl	%ebx,%esi
791	xorl	12(%rsp),%edx
792	movl	%r12d,%eax
793	movl	%r14d,8(%rsp)
794	movl	%r12d,%ebx
795	xorl	20(%rsp),%edx
796	andl	%r11d,%eax
797	movl	%esi,%ecx
798	xorl	44(%rsp),%edx
799	leal	-1894007588(%r14,%r13,1),%r13d
800	xorl	%r11d,%ebx
801	roll	$5,%ecx
802	addl	%eax,%r13d
803	roll	$1,%edx
804	andl	%edi,%ebx
805	addl	%ecx,%r13d
806	roll	$30,%edi
807	addl	%ebx,%r13d
808	xorl	16(%rsp),%ebp
809	movl	%r11d,%eax
810	movl	%edx,12(%rsp)
811	movl	%r11d,%ebx
812	xorl	24(%rsp),%ebp
813	andl	%edi,%eax
814	movl	%r13d,%ecx
815	xorl	48(%rsp),%ebp
816	leal	-1894007588(%rdx,%r12,1),%r12d
817	xorl	%edi,%ebx
818	roll	$5,%ecx
819	addl	%eax,%r12d
820	roll	$1,%ebp
821	andl	%esi,%ebx
822	addl	%ecx,%r12d
823	roll	$30,%esi
824	addl	%ebx,%r12d
825	xorl	20(%rsp),%r14d
826	movl	%edi,%eax
827	movl	%ebp,16(%rsp)
828	movl	%edi,%ebx
829	xorl	28(%rsp),%r14d
830	andl	%esi,%eax
831	movl	%r12d,%ecx
832	xorl	52(%rsp),%r14d
833	leal	-1894007588(%rbp,%r11,1),%r11d
834	xorl	%esi,%ebx
835	roll	$5,%ecx
836	addl	%eax,%r11d
837	roll	$1,%r14d
838	andl	%r13d,%ebx
839	addl	%ecx,%r11d
840	roll	$30,%r13d
841	addl	%ebx,%r11d
842	xorl	24(%rsp),%edx
843	movl	%esi,%eax
844	movl	%r14d,20(%rsp)
845	movl	%esi,%ebx
846	xorl	32(%rsp),%edx
847	andl	%r13d,%eax
848	movl	%r11d,%ecx
849	xorl	56(%rsp),%edx
850	leal	-1894007588(%r14,%rdi,1),%edi
851	xorl	%r13d,%ebx
852	roll	$5,%ecx
853	addl	%eax,%edi
854	roll	$1,%edx
855	andl	%r12d,%ebx
856	addl	%ecx,%edi
857	roll	$30,%r12d
858	addl	%ebx,%edi
859	xorl	28(%rsp),%ebp
860	movl	%r13d,%eax
861	movl	%edx,24(%rsp)
862	movl	%r13d,%ebx
863	xorl	36(%rsp),%ebp
864	andl	%r12d,%eax
865	movl	%edi,%ecx
866	xorl	60(%rsp),%ebp
867	leal	-1894007588(%rdx,%rsi,1),%esi
868	xorl	%r12d,%ebx
869	roll	$5,%ecx
870	addl	%eax,%esi
871	roll	$1,%ebp
872	andl	%r11d,%ebx
873	addl	%ecx,%esi
874	roll	$30,%r11d
875	addl	%ebx,%esi
876	xorl	32(%rsp),%r14d
877	movl	%r12d,%eax
878	movl	%ebp,28(%rsp)
879	movl	%r12d,%ebx
880	xorl	40(%rsp),%r14d
881	andl	%r11d,%eax
882	movl	%esi,%ecx
883	xorl	0(%rsp),%r14d
884	leal	-1894007588(%rbp,%r13,1),%r13d
885	xorl	%r11d,%ebx
886	roll	$5,%ecx
887	addl	%eax,%r13d
888	roll	$1,%r14d
889	andl	%edi,%ebx
890	addl	%ecx,%r13d
891	roll	$30,%edi
892	addl	%ebx,%r13d
893	xorl	36(%rsp),%edx
894	movl	%r11d,%eax
895	movl	%r14d,32(%rsp)
896	movl	%r11d,%ebx
897	xorl	44(%rsp),%edx
898	andl	%edi,%eax
899	movl	%r13d,%ecx
900	xorl	4(%rsp),%edx
901	leal	-1894007588(%r14,%r12,1),%r12d
902	xorl	%edi,%ebx
903	roll	$5,%ecx
904	addl	%eax,%r12d
905	roll	$1,%edx
906	andl	%esi,%ebx
907	addl	%ecx,%r12d
908	roll	$30,%esi
909	addl	%ebx,%r12d
910	xorl	40(%rsp),%ebp
911	movl	%edi,%eax
912	movl	%edx,36(%rsp)
913	movl	%edi,%ebx
914	xorl	48(%rsp),%ebp
915	andl	%esi,%eax
916	movl	%r12d,%ecx
917	xorl	8(%rsp),%ebp
918	leal	-1894007588(%rdx,%r11,1),%r11d
919	xorl	%esi,%ebx
920	roll	$5,%ecx
921	addl	%eax,%r11d
922	roll	$1,%ebp
923	andl	%r13d,%ebx
924	addl	%ecx,%r11d
925	roll	$30,%r13d
926	addl	%ebx,%r11d
927	xorl	44(%rsp),%r14d
928	movl	%esi,%eax
929	movl	%ebp,40(%rsp)
930	movl	%esi,%ebx
931	xorl	52(%rsp),%r14d
932	andl	%r13d,%eax
933	movl	%r11d,%ecx
934	xorl	12(%rsp),%r14d
935	leal	-1894007588(%rbp,%rdi,1),%edi
936	xorl	%r13d,%ebx
937	roll	$5,%ecx
938	addl	%eax,%edi
939	roll	$1,%r14d
940	andl	%r12d,%ebx
941	addl	%ecx,%edi
942	roll	$30,%r12d
943	addl	%ebx,%edi
944	xorl	48(%rsp),%edx
945	movl	%r13d,%eax
946	movl	%r14d,44(%rsp)
947	movl	%r13d,%ebx
948	xorl	56(%rsp),%edx
949	andl	%r12d,%eax
950	movl	%edi,%ecx
951	xorl	16(%rsp),%edx
952	leal	-1894007588(%r14,%rsi,1),%esi
953	xorl	%r12d,%ebx
954	roll	$5,%ecx
955	addl	%eax,%esi
956	roll	$1,%edx
957	andl	%r11d,%ebx
958	addl	%ecx,%esi
959	roll	$30,%r11d
960	addl	%ebx,%esi
961	xorl	52(%rsp),%ebp
962	movl	%edi,%eax
963	movl	%edx,48(%rsp)
964	movl	%esi,%ecx
965	xorl	60(%rsp),%ebp
966	xorl	%r12d,%eax
967	roll	$5,%ecx
968	xorl	20(%rsp),%ebp
969	leal	-899497514(%rdx,%r13,1),%r13d
970	xorl	%r11d,%eax
971	addl	%ecx,%r13d
972	roll	$30,%edi
973	addl	%eax,%r13d
974	roll	$1,%ebp
975	xorl	56(%rsp),%r14d
976	movl	%esi,%eax
977	movl	%ebp,52(%rsp)
978	movl	%r13d,%ecx
979	xorl	0(%rsp),%r14d
980	xorl	%r11d,%eax
981	roll	$5,%ecx
982	xorl	24(%rsp),%r14d
983	leal	-899497514(%rbp,%r12,1),%r12d
984	xorl	%edi,%eax
985	addl	%ecx,%r12d
986	roll	$30,%esi
987	addl	%eax,%r12d
988	roll	$1,%r14d
989	xorl	60(%rsp),%edx
990	movl	%r13d,%eax
991	movl	%r14d,56(%rsp)
992	movl	%r12d,%ecx
993	xorl	4(%rsp),%edx
994	xorl	%edi,%eax
995	roll	$5,%ecx
996	xorl	28(%rsp),%edx
997	leal	-899497514(%r14,%r11,1),%r11d
998	xorl	%esi,%eax
999	addl	%ecx,%r11d
1000	roll	$30,%r13d
1001	addl	%eax,%r11d
1002	roll	$1,%edx
1003	xorl	0(%rsp),%ebp
1004	movl	%r12d,%eax
1005	movl	%edx,60(%rsp)
1006	movl	%r11d,%ecx
1007	xorl	8(%rsp),%ebp
1008	xorl	%esi,%eax
1009	roll	$5,%ecx
1010	xorl	32(%rsp),%ebp
1011	leal	-899497514(%rdx,%rdi,1),%edi
1012	xorl	%r13d,%eax
1013	addl	%ecx,%edi
1014	roll	$30,%r12d
1015	addl	%eax,%edi
1016	roll	$1,%ebp
1017	xorl	4(%rsp),%r14d
1018	movl	%r11d,%eax
1019	movl	%ebp,0(%rsp)
1020	movl	%edi,%ecx
1021	xorl	12(%rsp),%r14d
1022	xorl	%r13d,%eax
1023	roll	$5,%ecx
1024	xorl	36(%rsp),%r14d
1025	leal	-899497514(%rbp,%rsi,1),%esi
1026	xorl	%r12d,%eax
1027	addl	%ecx,%esi
1028	roll	$30,%r11d
1029	addl	%eax,%esi
1030	roll	$1,%r14d
1031	xorl	8(%rsp),%edx
1032	movl	%edi,%eax
1033	movl	%r14d,4(%rsp)
1034	movl	%esi,%ecx
1035	xorl	16(%rsp),%edx
1036	xorl	%r12d,%eax
1037	roll	$5,%ecx
1038	xorl	40(%rsp),%edx
1039	leal	-899497514(%r14,%r13,1),%r13d
1040	xorl	%r11d,%eax
1041	addl	%ecx,%r13d
1042	roll	$30,%edi
1043	addl	%eax,%r13d
1044	roll	$1,%edx
1045	xorl	12(%rsp),%ebp
1046	movl	%esi,%eax
1047	movl	%edx,8(%rsp)
1048	movl	%r13d,%ecx
1049	xorl	20(%rsp),%ebp
1050	xorl	%r11d,%eax
1051	roll	$5,%ecx
1052	xorl	44(%rsp),%ebp
1053	leal	-899497514(%rdx,%r12,1),%r12d
1054	xorl	%edi,%eax
1055	addl	%ecx,%r12d
1056	roll	$30,%esi
1057	addl	%eax,%r12d
1058	roll	$1,%ebp
1059	xorl	16(%rsp),%r14d
1060	movl	%r13d,%eax
1061	movl	%ebp,12(%rsp)
1062	movl	%r12d,%ecx
1063	xorl	24(%rsp),%r14d
1064	xorl	%edi,%eax
1065	roll	$5,%ecx
1066	xorl	48(%rsp),%r14d
1067	leal	-899497514(%rbp,%r11,1),%r11d
1068	xorl	%esi,%eax
1069	addl	%ecx,%r11d
1070	roll	$30,%r13d
1071	addl	%eax,%r11d
1072	roll	$1,%r14d
1073	xorl	20(%rsp),%edx
1074	movl	%r12d,%eax
1075	movl	%r14d,16(%rsp)
1076	movl	%r11d,%ecx
1077	xorl	28(%rsp),%edx
1078	xorl	%esi,%eax
1079	roll	$5,%ecx
1080	xorl	52(%rsp),%edx
1081	leal	-899497514(%r14,%rdi,1),%edi
1082	xorl	%r13d,%eax
1083	addl	%ecx,%edi
1084	roll	$30,%r12d
1085	addl	%eax,%edi
1086	roll	$1,%edx
1087	xorl	24(%rsp),%ebp
1088	movl	%r11d,%eax
1089	movl	%edx,20(%rsp)
1090	movl	%edi,%ecx
1091	xorl	32(%rsp),%ebp
1092	xorl	%r13d,%eax
1093	roll	$5,%ecx
1094	xorl	56(%rsp),%ebp
1095	leal	-899497514(%rdx,%rsi,1),%esi
1096	xorl	%r12d,%eax
1097	addl	%ecx,%esi
1098	roll	$30,%r11d
1099	addl	%eax,%esi
1100	roll	$1,%ebp
1101	xorl	28(%rsp),%r14d
1102	movl	%edi,%eax
1103	movl	%ebp,24(%rsp)
1104	movl	%esi,%ecx
1105	xorl	36(%rsp),%r14d
1106	xorl	%r12d,%eax
1107	roll	$5,%ecx
1108	xorl	60(%rsp),%r14d
1109	leal	-899497514(%rbp,%r13,1),%r13d
1110	xorl	%r11d,%eax
1111	addl	%ecx,%r13d
1112	roll	$30,%edi
1113	addl	%eax,%r13d
1114	roll	$1,%r14d
1115	xorl	32(%rsp),%edx
1116	movl	%esi,%eax
1117	movl	%r14d,28(%rsp)
1118	movl	%r13d,%ecx
1119	xorl	40(%rsp),%edx
1120	xorl	%r11d,%eax
1121	roll	$5,%ecx
1122	xorl	0(%rsp),%edx
1123	leal	-899497514(%r14,%r12,1),%r12d
1124	xorl	%edi,%eax
1125	addl	%ecx,%r12d
1126	roll	$30,%esi
1127	addl	%eax,%r12d
1128	roll	$1,%edx
1129	xorl	36(%rsp),%ebp
1130	movl	%r13d,%eax
1131
1132	movl	%r12d,%ecx
1133	xorl	44(%rsp),%ebp
1134	xorl	%edi,%eax
1135	roll	$5,%ecx
1136	xorl	4(%rsp),%ebp
1137	leal	-899497514(%rdx,%r11,1),%r11d
1138	xorl	%esi,%eax
1139	addl	%ecx,%r11d
1140	roll	$30,%r13d
1141	addl	%eax,%r11d
1142	roll	$1,%ebp
1143	xorl	40(%rsp),%r14d
1144	movl	%r12d,%eax
1145
1146	movl	%r11d,%ecx
1147	xorl	48(%rsp),%r14d
1148	xorl	%esi,%eax
1149	roll	$5,%ecx
1150	xorl	8(%rsp),%r14d
1151	leal	-899497514(%rbp,%rdi,1),%edi
1152	xorl	%r13d,%eax
1153	addl	%ecx,%edi
1154	roll	$30,%r12d
1155	addl	%eax,%edi
1156	roll	$1,%r14d
1157	xorl	44(%rsp),%edx
1158	movl	%r11d,%eax
1159
1160	movl	%edi,%ecx
1161	xorl	52(%rsp),%edx
1162	xorl	%r13d,%eax
1163	roll	$5,%ecx
1164	xorl	12(%rsp),%edx
1165	leal	-899497514(%r14,%rsi,1),%esi
1166	xorl	%r12d,%eax
1167	addl	%ecx,%esi
1168	roll	$30,%r11d
1169	addl	%eax,%esi
1170	roll	$1,%edx
1171	xorl	48(%rsp),%ebp
1172	movl	%edi,%eax
1173
1174	movl	%esi,%ecx
1175	xorl	56(%rsp),%ebp
1176	xorl	%r12d,%eax
1177	roll	$5,%ecx
1178	xorl	16(%rsp),%ebp
1179	leal	-899497514(%rdx,%r13,1),%r13d
1180	xorl	%r11d,%eax
1181	addl	%ecx,%r13d
1182	roll	$30,%edi
1183	addl	%eax,%r13d
1184	roll	$1,%ebp
1185	xorl	52(%rsp),%r14d
1186	movl	%esi,%eax
1187
1188	movl	%r13d,%ecx
1189	xorl	60(%rsp),%r14d
1190	xorl	%r11d,%eax
1191	roll	$5,%ecx
1192	xorl	20(%rsp),%r14d
1193	leal	-899497514(%rbp,%r12,1),%r12d
1194	xorl	%edi,%eax
1195	addl	%ecx,%r12d
1196	roll	$30,%esi
1197	addl	%eax,%r12d
1198	roll	$1,%r14d
1199	xorl	56(%rsp),%edx
1200	movl	%r13d,%eax
1201
1202	movl	%r12d,%ecx
1203	xorl	0(%rsp),%edx
1204	xorl	%edi,%eax
1205	roll	$5,%ecx
1206	xorl	24(%rsp),%edx
1207	leal	-899497514(%r14,%r11,1),%r11d
1208	xorl	%esi,%eax
1209	addl	%ecx,%r11d
1210	roll	$30,%r13d
1211	addl	%eax,%r11d
1212	roll	$1,%edx
1213	xorl	60(%rsp),%ebp
1214	movl	%r12d,%eax
1215
1216	movl	%r11d,%ecx
1217	xorl	4(%rsp),%ebp
1218	xorl	%esi,%eax
1219	roll	$5,%ecx
1220	xorl	28(%rsp),%ebp
1221	leal	-899497514(%rdx,%rdi,1),%edi
1222	xorl	%r13d,%eax
1223	addl	%ecx,%edi
1224	roll	$30,%r12d
1225	addl	%eax,%edi
1226	roll	$1,%ebp
1227	movl	%r11d,%eax
1228	movl	%edi,%ecx
1229	xorl	%r13d,%eax
1230	leal	-899497514(%rbp,%rsi,1),%esi
1231	roll	$5,%ecx
1232	xorl	%r12d,%eax
1233	addl	%ecx,%esi
1234	roll	$30,%r11d
1235	addl	%eax,%esi
1236	addl	0(%r8),%esi
1237	addl	4(%r8),%edi
1238	addl	8(%r8),%r11d
1239	addl	12(%r8),%r12d
1240	addl	16(%r8),%r13d
1241	movl	%esi,0(%r8)
1242	movl	%edi,4(%r8)
1243	movl	%r11d,8(%r8)
1244	movl	%r12d,12(%r8)
1245	movl	%r13d,16(%r8)
1246
1247	subq	$1,%r10
1248	leaq	64(%r9),%r9
1249	jnz	.Lloop
1250
1251	movq	64(%rsp),%rsi
1252.cfi_def_cfa	%rsi,8
1253	movq	-40(%rsi),%r14
1254.cfi_restore	%r14
1255	movq	-32(%rsi),%r13
1256.cfi_restore	%r13
1257	movq	-24(%rsi),%r12
1258.cfi_restore	%r12
1259	movq	-16(%rsi),%rbp
1260.cfi_restore	%rbp
1261	movq	-8(%rsi),%rbx
1262.cfi_restore	%rbx
1263	leaq	(%rsi),%rsp
1264.cfi_def_cfa_register	%rsp
1265.Lepilogue:
1266	.byte	0xf3,0xc3
1267.cfi_endproc
1268.size	sha1_block_data_order,.-sha1_block_data_order
1269.type	sha1_block_data_order_ssse3,@function
1270.align	16
1271sha1_block_data_order_ssse3:
1272_ssse3_shortcut:
1273.cfi_startproc
1274	movq	%rsp,%r11
1275.cfi_def_cfa_register	%r11
1276	pushq	%rbx
1277.cfi_offset	%rbx,-16
1278	pushq	%rbp
1279.cfi_offset	%rbp,-24
1280	pushq	%r12
1281.cfi_offset	%r12,-32
1282	pushq	%r13
1283.cfi_offset	%r13,-40
1284	pushq	%r14
1285.cfi_offset	%r14,-48
1286	leaq	-64(%rsp),%rsp
1287	andq	$-64,%rsp
1288	movq	%rdi,%r8
1289	movq	%rsi,%r9
1290	movq	%rdx,%r10
1291
1292	shlq	$6,%r10
1293	addq	%r9,%r10
1294	leaq	K_XX_XX+64(%rip),%r14
1295
1296	movl	0(%r8),%eax
1297	movl	4(%r8),%ebx
1298	movl	8(%r8),%ecx
1299	movl	12(%r8),%edx
1300	movl	%ebx,%esi
1301	movl	16(%r8),%ebp
1302	movl	%ecx,%edi
1303	xorl	%edx,%edi
1304	andl	%edi,%esi
1305
1306	movdqa	64(%r14),%xmm6
1307	movdqa	-64(%r14),%xmm9
1308	movdqu	0(%r9),%xmm0
1309	movdqu	16(%r9),%xmm1
1310	movdqu	32(%r9),%xmm2
1311	movdqu	48(%r9),%xmm3
1312.byte	102,15,56,0,198
1313.byte	102,15,56,0,206
1314.byte	102,15,56,0,214
1315	addq	$64,%r9
1316	paddd	%xmm9,%xmm0
1317.byte	102,15,56,0,222
1318	paddd	%xmm9,%xmm1
1319	paddd	%xmm9,%xmm2
1320	movdqa	%xmm0,0(%rsp)
1321	psubd	%xmm9,%xmm0
1322	movdqa	%xmm1,16(%rsp)
1323	psubd	%xmm9,%xmm1
1324	movdqa	%xmm2,32(%rsp)
1325	psubd	%xmm9,%xmm2
1326	jmp	.Loop_ssse3
1327.align	16
1328.Loop_ssse3:
1329	rorl	$2,%ebx
1330	pshufd	$238,%xmm0,%xmm4
1331	xorl	%edx,%esi
1332	movdqa	%xmm3,%xmm8
1333	paddd	%xmm3,%xmm9
1334	movl	%eax,%edi
1335	addl	0(%rsp),%ebp
1336	punpcklqdq	%xmm1,%xmm4
1337	xorl	%ecx,%ebx
1338	roll	$5,%eax
1339	addl	%esi,%ebp
1340	psrldq	$4,%xmm8
1341	andl	%ebx,%edi
1342	xorl	%ecx,%ebx
1343	pxor	%xmm0,%xmm4
1344	addl	%eax,%ebp
1345	rorl	$7,%eax
1346	pxor	%xmm2,%xmm8
1347	xorl	%ecx,%edi
1348	movl	%ebp,%esi
1349	addl	4(%rsp),%edx
1350	pxor	%xmm8,%xmm4
1351	xorl	%ebx,%eax
1352	roll	$5,%ebp
1353	movdqa	%xmm9,48(%rsp)
1354	addl	%edi,%edx
1355	andl	%eax,%esi
1356	movdqa	%xmm4,%xmm10
1357	xorl	%ebx,%eax
1358	addl	%ebp,%edx
1359	rorl	$7,%ebp
1360	movdqa	%xmm4,%xmm8
1361	xorl	%ebx,%esi
1362	pslldq	$12,%xmm10
1363	paddd	%xmm4,%xmm4
1364	movl	%edx,%edi
1365	addl	8(%rsp),%ecx
1366	psrld	$31,%xmm8
1367	xorl	%eax,%ebp
1368	roll	$5,%edx
1369	addl	%esi,%ecx
1370	movdqa	%xmm10,%xmm9
1371	andl	%ebp,%edi
1372	xorl	%eax,%ebp
1373	psrld	$30,%xmm10
1374	addl	%edx,%ecx
1375	rorl	$7,%edx
1376	por	%xmm8,%xmm4
1377	xorl	%eax,%edi
1378	movl	%ecx,%esi
1379	addl	12(%rsp),%ebx
1380	pslld	$2,%xmm9
1381	pxor	%xmm10,%xmm4
1382	xorl	%ebp,%edx
1383	movdqa	-64(%r14),%xmm10
1384	roll	$5,%ecx
1385	addl	%edi,%ebx
1386	andl	%edx,%esi
1387	pxor	%xmm9,%xmm4
1388	xorl	%ebp,%edx
1389	addl	%ecx,%ebx
1390	rorl	$7,%ecx
1391	pshufd	$238,%xmm1,%xmm5
1392	xorl	%ebp,%esi
1393	movdqa	%xmm4,%xmm9
1394	paddd	%xmm4,%xmm10
1395	movl	%ebx,%edi
1396	addl	16(%rsp),%eax
1397	punpcklqdq	%xmm2,%xmm5
1398	xorl	%edx,%ecx
1399	roll	$5,%ebx
1400	addl	%esi,%eax
1401	psrldq	$4,%xmm9
1402	andl	%ecx,%edi
1403	xorl	%edx,%ecx
1404	pxor	%xmm1,%xmm5
1405	addl	%ebx,%eax
1406	rorl	$7,%ebx
1407	pxor	%xmm3,%xmm9
1408	xorl	%edx,%edi
1409	movl	%eax,%esi
1410	addl	20(%rsp),%ebp
1411	pxor	%xmm9,%xmm5
1412	xorl	%ecx,%ebx
1413	roll	$5,%eax
1414	movdqa	%xmm10,0(%rsp)
1415	addl	%edi,%ebp
1416	andl	%ebx,%esi
1417	movdqa	%xmm5,%xmm8
1418	xorl	%ecx,%ebx
1419	addl	%eax,%ebp
1420	rorl	$7,%eax
1421	movdqa	%xmm5,%xmm9
1422	xorl	%ecx,%esi
1423	pslldq	$12,%xmm8
1424	paddd	%xmm5,%xmm5
1425	movl	%ebp,%edi
1426	addl	24(%rsp),%edx
1427	psrld	$31,%xmm9
1428	xorl	%ebx,%eax
1429	roll	$5,%ebp
1430	addl	%esi,%edx
1431	movdqa	%xmm8,%xmm10
1432	andl	%eax,%edi
1433	xorl	%ebx,%eax
1434	psrld	$30,%xmm8
1435	addl	%ebp,%edx
1436	rorl	$7,%ebp
1437	por	%xmm9,%xmm5
1438	xorl	%ebx,%edi
1439	movl	%edx,%esi
1440	addl	28(%rsp),%ecx
1441	pslld	$2,%xmm10
1442	pxor	%xmm8,%xmm5
1443	xorl	%eax,%ebp
1444	movdqa	-32(%r14),%xmm8
1445	roll	$5,%edx
1446	addl	%edi,%ecx
1447	andl	%ebp,%esi
1448	pxor	%xmm10,%xmm5
1449	xorl	%eax,%ebp
1450	addl	%edx,%ecx
1451	rorl	$7,%edx
1452	pshufd	$238,%xmm2,%xmm6
1453	xorl	%eax,%esi
1454	movdqa	%xmm5,%xmm10
1455	paddd	%xmm5,%xmm8
1456	movl	%ecx,%edi
1457	addl	32(%rsp),%ebx
1458	punpcklqdq	%xmm3,%xmm6
1459	xorl	%ebp,%edx
1460	roll	$5,%ecx
1461	addl	%esi,%ebx
1462	psrldq	$4,%xmm10
1463	andl	%edx,%edi
1464	xorl	%ebp,%edx
1465	pxor	%xmm2,%xmm6
1466	addl	%ecx,%ebx
1467	rorl	$7,%ecx
1468	pxor	%xmm4,%xmm10
1469	xorl	%ebp,%edi
1470	movl	%ebx,%esi
1471	addl	36(%rsp),%eax
1472	pxor	%xmm10,%xmm6
1473	xorl	%edx,%ecx
1474	roll	$5,%ebx
1475	movdqa	%xmm8,16(%rsp)
1476	addl	%edi,%eax
1477	andl	%ecx,%esi
1478	movdqa	%xmm6,%xmm9
1479	xorl	%edx,%ecx
1480	addl	%ebx,%eax
1481	rorl	$7,%ebx
1482	movdqa	%xmm6,%xmm10
1483	xorl	%edx,%esi
1484	pslldq	$12,%xmm9
1485	paddd	%xmm6,%xmm6
1486	movl	%eax,%edi
1487	addl	40(%rsp),%ebp
1488	psrld	$31,%xmm10
1489	xorl	%ecx,%ebx
1490	roll	$5,%eax
1491	addl	%esi,%ebp
1492	movdqa	%xmm9,%xmm8
1493	andl	%ebx,%edi
1494	xorl	%ecx,%ebx
1495	psrld	$30,%xmm9
1496	addl	%eax,%ebp
1497	rorl	$7,%eax
1498	por	%xmm10,%xmm6
1499	xorl	%ecx,%edi
1500	movl	%ebp,%esi
1501	addl	44(%rsp),%edx
1502	pslld	$2,%xmm8
1503	pxor	%xmm9,%xmm6
1504	xorl	%ebx,%eax
1505	movdqa	-32(%r14),%xmm9
1506	roll	$5,%ebp
1507	addl	%edi,%edx
1508	andl	%eax,%esi
1509	pxor	%xmm8,%xmm6
1510	xorl	%ebx,%eax
1511	addl	%ebp,%edx
1512	rorl	$7,%ebp
1513	pshufd	$238,%xmm3,%xmm7
1514	xorl	%ebx,%esi
1515	movdqa	%xmm6,%xmm8
1516	paddd	%xmm6,%xmm9
1517	movl	%edx,%edi
1518	addl	48(%rsp),%ecx
1519	punpcklqdq	%xmm4,%xmm7
1520	xorl	%eax,%ebp
1521	roll	$5,%edx
1522	addl	%esi,%ecx
1523	psrldq	$4,%xmm8
1524	andl	%ebp,%edi
1525	xorl	%eax,%ebp
1526	pxor	%xmm3,%xmm7
1527	addl	%edx,%ecx
1528	rorl	$7,%edx
1529	pxor	%xmm5,%xmm8
1530	xorl	%eax,%edi
1531	movl	%ecx,%esi
1532	addl	52(%rsp),%ebx
1533	pxor	%xmm8,%xmm7
1534	xorl	%ebp,%edx
1535	roll	$5,%ecx
1536	movdqa	%xmm9,32(%rsp)
1537	addl	%edi,%ebx
1538	andl	%edx,%esi
1539	movdqa	%xmm7,%xmm10
1540	xorl	%ebp,%edx
1541	addl	%ecx,%ebx
1542	rorl	$7,%ecx
1543	movdqa	%xmm7,%xmm8
1544	xorl	%ebp,%esi
1545	pslldq	$12,%xmm10
1546	paddd	%xmm7,%xmm7
1547	movl	%ebx,%edi
1548	addl	56(%rsp),%eax
1549	psrld	$31,%xmm8
1550	xorl	%edx,%ecx
1551	roll	$5,%ebx
1552	addl	%esi,%eax
1553	movdqa	%xmm10,%xmm9
1554	andl	%ecx,%edi
1555	xorl	%edx,%ecx
1556	psrld	$30,%xmm10
1557	addl	%ebx,%eax
1558	rorl	$7,%ebx
1559	por	%xmm8,%xmm7
1560	xorl	%edx,%edi
1561	movl	%eax,%esi
1562	addl	60(%rsp),%ebp
1563	pslld	$2,%xmm9
1564	pxor	%xmm10,%xmm7
1565	xorl	%ecx,%ebx
1566	movdqa	-32(%r14),%xmm10
1567	roll	$5,%eax
1568	addl	%edi,%ebp
1569	andl	%ebx,%esi
1570	pxor	%xmm9,%xmm7
1571	pshufd	$238,%xmm6,%xmm9
1572	xorl	%ecx,%ebx
1573	addl	%eax,%ebp
1574	rorl	$7,%eax
1575	pxor	%xmm4,%xmm0
1576	xorl	%ecx,%esi
1577	movl	%ebp,%edi
1578	addl	0(%rsp),%edx
1579	punpcklqdq	%xmm7,%xmm9
1580	xorl	%ebx,%eax
1581	roll	$5,%ebp
1582	pxor	%xmm1,%xmm0
1583	addl	%esi,%edx
1584	andl	%eax,%edi
1585	movdqa	%xmm10,%xmm8
1586	xorl	%ebx,%eax
1587	paddd	%xmm7,%xmm10
1588	addl	%ebp,%edx
1589	pxor	%xmm9,%xmm0
1590	rorl	$7,%ebp
1591	xorl	%ebx,%edi
1592	movl	%edx,%esi
1593	addl	4(%rsp),%ecx
1594	movdqa	%xmm0,%xmm9
1595	xorl	%eax,%ebp
1596	roll	$5,%edx
1597	movdqa	%xmm10,48(%rsp)
1598	addl	%edi,%ecx
1599	andl	%ebp,%esi
1600	xorl	%eax,%ebp
1601	pslld	$2,%xmm0
1602	addl	%edx,%ecx
1603	rorl	$7,%edx
1604	psrld	$30,%xmm9
1605	xorl	%eax,%esi
1606	movl	%ecx,%edi
1607	addl	8(%rsp),%ebx
1608	por	%xmm9,%xmm0
1609	xorl	%ebp,%edx
1610	roll	$5,%ecx
1611	pshufd	$238,%xmm7,%xmm10
1612	addl	%esi,%ebx
1613	andl	%edx,%edi
1614	xorl	%ebp,%edx
1615	addl	%ecx,%ebx
1616	addl	12(%rsp),%eax
1617	xorl	%ebp,%edi
1618	movl	%ebx,%esi
1619	roll	$5,%ebx
1620	addl	%edi,%eax
1621	xorl	%edx,%esi
1622	rorl	$7,%ecx
1623	addl	%ebx,%eax
1624	pxor	%xmm5,%xmm1
1625	addl	16(%rsp),%ebp
1626	xorl	%ecx,%esi
1627	punpcklqdq	%xmm0,%xmm10
1628	movl	%eax,%edi
1629	roll	$5,%eax
1630	pxor	%xmm2,%xmm1
1631	addl	%esi,%ebp
1632	xorl	%ecx,%edi
1633	movdqa	%xmm8,%xmm9
1634	rorl	$7,%ebx
1635	paddd	%xmm0,%xmm8
1636	addl	%eax,%ebp
1637	pxor	%xmm10,%xmm1
1638	addl	20(%rsp),%edx
1639	xorl	%ebx,%edi
1640	movl	%ebp,%esi
1641	roll	$5,%ebp
1642	movdqa	%xmm1,%xmm10
1643	addl	%edi,%edx
1644	xorl	%ebx,%esi
1645	movdqa	%xmm8,0(%rsp)
1646	rorl	$7,%eax
1647	addl	%ebp,%edx
1648	addl	24(%rsp),%ecx
1649	pslld	$2,%xmm1
1650	xorl	%eax,%esi
1651	movl	%edx,%edi
1652	psrld	$30,%xmm10
1653	roll	$5,%edx
1654	addl	%esi,%ecx
1655	xorl	%eax,%edi
1656	rorl	$7,%ebp
1657	por	%xmm10,%xmm1
1658	addl	%edx,%ecx
1659	addl	28(%rsp),%ebx
1660	pshufd	$238,%xmm0,%xmm8
1661	xorl	%ebp,%edi
1662	movl	%ecx,%esi
1663	roll	$5,%ecx
1664	addl	%edi,%ebx
1665	xorl	%ebp,%esi
1666	rorl	$7,%edx
1667	addl	%ecx,%ebx
1668	pxor	%xmm6,%xmm2
1669	addl	32(%rsp),%eax
1670	xorl	%edx,%esi
1671	punpcklqdq	%xmm1,%xmm8
1672	movl	%ebx,%edi
1673	roll	$5,%ebx
1674	pxor	%xmm3,%xmm2
1675	addl	%esi,%eax
1676	xorl	%edx,%edi
1677	movdqa	0(%r14),%xmm10
1678	rorl	$7,%ecx
1679	paddd	%xmm1,%xmm9
1680	addl	%ebx,%eax
1681	pxor	%xmm8,%xmm2
1682	addl	36(%rsp),%ebp
1683	xorl	%ecx,%edi
1684	movl	%eax,%esi
1685	roll	$5,%eax
1686	movdqa	%xmm2,%xmm8
1687	addl	%edi,%ebp
1688	xorl	%ecx,%esi
1689	movdqa	%xmm9,16(%rsp)
1690	rorl	$7,%ebx
1691	addl	%eax,%ebp
1692	addl	40(%rsp),%edx
1693	pslld	$2,%xmm2
1694	xorl	%ebx,%esi
1695	movl	%ebp,%edi
1696	psrld	$30,%xmm8
1697	roll	$5,%ebp
1698	addl	%esi,%edx
1699	xorl	%ebx,%edi
1700	rorl	$7,%eax
1701	por	%xmm8,%xmm2
1702	addl	%ebp,%edx
1703	addl	44(%rsp),%ecx
1704	pshufd	$238,%xmm1,%xmm9
1705	xorl	%eax,%edi
1706	movl	%edx,%esi
1707	roll	$5,%edx
1708	addl	%edi,%ecx
1709	xorl	%eax,%esi
1710	rorl	$7,%ebp
1711	addl	%edx,%ecx
1712	pxor	%xmm7,%xmm3
1713	addl	48(%rsp),%ebx
1714	xorl	%ebp,%esi
1715	punpcklqdq	%xmm2,%xmm9
1716	movl	%ecx,%edi
1717	roll	$5,%ecx
1718	pxor	%xmm4,%xmm3
1719	addl	%esi,%ebx
1720	xorl	%ebp,%edi
1721	movdqa	%xmm10,%xmm8
1722	rorl	$7,%edx
1723	paddd	%xmm2,%xmm10
1724	addl	%ecx,%ebx
1725	pxor	%xmm9,%xmm3
1726	addl	52(%rsp),%eax
1727	xorl	%edx,%edi
1728	movl	%ebx,%esi
1729	roll	$5,%ebx
1730	movdqa	%xmm3,%xmm9
1731	addl	%edi,%eax
1732	xorl	%edx,%esi
1733	movdqa	%xmm10,32(%rsp)
1734	rorl	$7,%ecx
1735	addl	%ebx,%eax
1736	addl	56(%rsp),%ebp
1737	pslld	$2,%xmm3
1738	xorl	%ecx,%esi
1739	movl	%eax,%edi
1740	psrld	$30,%xmm9
1741	roll	$5,%eax
1742	addl	%esi,%ebp
1743	xorl	%ecx,%edi
1744	rorl	$7,%ebx
1745	por	%xmm9,%xmm3
1746	addl	%eax,%ebp
1747	addl	60(%rsp),%edx
1748	pshufd	$238,%xmm2,%xmm10
1749	xorl	%ebx,%edi
1750	movl	%ebp,%esi
1751	roll	$5,%ebp
1752	addl	%edi,%edx
1753	xorl	%ebx,%esi
1754	rorl	$7,%eax
1755	addl	%ebp,%edx
1756	pxor	%xmm0,%xmm4
1757	addl	0(%rsp),%ecx
1758	xorl	%eax,%esi
1759	punpcklqdq	%xmm3,%xmm10
1760	movl	%edx,%edi
1761	roll	$5,%edx
1762	pxor	%xmm5,%xmm4
1763	addl	%esi,%ecx
1764	xorl	%eax,%edi
1765	movdqa	%xmm8,%xmm9
1766	rorl	$7,%ebp
1767	paddd	%xmm3,%xmm8
1768	addl	%edx,%ecx
1769	pxor	%xmm10,%xmm4
1770	addl	4(%rsp),%ebx
1771	xorl	%ebp,%edi
1772	movl	%ecx,%esi
1773	roll	$5,%ecx
1774	movdqa	%xmm4,%xmm10
1775	addl	%edi,%ebx
1776	xorl	%ebp,%esi
1777	movdqa	%xmm8,48(%rsp)
1778	rorl	$7,%edx
1779	addl	%ecx,%ebx
1780	addl	8(%rsp),%eax
1781	pslld	$2,%xmm4
1782	xorl	%edx,%esi
1783	movl	%ebx,%edi
1784	psrld	$30,%xmm10
1785	roll	$5,%ebx
1786	addl	%esi,%eax
1787	xorl	%edx,%edi
1788	rorl	$7,%ecx
1789	por	%xmm10,%xmm4
1790	addl	%ebx,%eax
1791	addl	12(%rsp),%ebp
1792	pshufd	$238,%xmm3,%xmm8
1793	xorl	%ecx,%edi
1794	movl	%eax,%esi
1795	roll	$5,%eax
1796	addl	%edi,%ebp
1797	xorl	%ecx,%esi
1798	rorl	$7,%ebx
1799	addl	%eax,%ebp
1800	pxor	%xmm1,%xmm5
1801	addl	16(%rsp),%edx
1802	xorl	%ebx,%esi
1803	punpcklqdq	%xmm4,%xmm8
1804	movl	%ebp,%edi
1805	roll	$5,%ebp
1806	pxor	%xmm6,%xmm5
1807	addl	%esi,%edx
1808	xorl	%ebx,%edi
1809	movdqa	%xmm9,%xmm10
1810	rorl	$7,%eax
1811	paddd	%xmm4,%xmm9
1812	addl	%ebp,%edx
1813	pxor	%xmm8,%xmm5
1814	addl	20(%rsp),%ecx
1815	xorl	%eax,%edi
1816	movl	%edx,%esi
1817	roll	$5,%edx
1818	movdqa	%xmm5,%xmm8
1819	addl	%edi,%ecx
1820	xorl	%eax,%esi
1821	movdqa	%xmm9,0(%rsp)
1822	rorl	$7,%ebp
1823	addl	%edx,%ecx
1824	addl	24(%rsp),%ebx
1825	pslld	$2,%xmm5
1826	xorl	%ebp,%esi
1827	movl	%ecx,%edi
1828	psrld	$30,%xmm8
1829	roll	$5,%ecx
1830	addl	%esi,%ebx
1831	xorl	%ebp,%edi
1832	rorl	$7,%edx
1833	por	%xmm8,%xmm5
1834	addl	%ecx,%ebx
1835	addl	28(%rsp),%eax
1836	pshufd	$238,%xmm4,%xmm9
1837	rorl	$7,%ecx
1838	movl	%ebx,%esi
1839	xorl	%edx,%edi
1840	roll	$5,%ebx
1841	addl	%edi,%eax
1842	xorl	%ecx,%esi
1843	xorl	%edx,%ecx
1844	addl	%ebx,%eax
1845	pxor	%xmm2,%xmm6
1846	addl	32(%rsp),%ebp
1847	andl	%ecx,%esi
1848	xorl	%edx,%ecx
1849	rorl	$7,%ebx
1850	punpcklqdq	%xmm5,%xmm9
1851	movl	%eax,%edi
1852	xorl	%ecx,%esi
1853	pxor	%xmm7,%xmm6
1854	roll	$5,%eax
1855	addl	%esi,%ebp
1856	movdqa	%xmm10,%xmm8
1857	xorl	%ebx,%edi
1858	paddd	%xmm5,%xmm10
1859	xorl	%ecx,%ebx
1860	pxor	%xmm9,%xmm6
1861	addl	%eax,%ebp
1862	addl	36(%rsp),%edx
1863	andl	%ebx,%edi
1864	xorl	%ecx,%ebx
1865	rorl	$7,%eax
1866	movdqa	%xmm6,%xmm9
1867	movl	%ebp,%esi
1868	xorl	%ebx,%edi
1869	movdqa	%xmm10,16(%rsp)
1870	roll	$5,%ebp
1871	addl	%edi,%edx
1872	xorl	%eax,%esi
1873	pslld	$2,%xmm6
1874	xorl	%ebx,%eax
1875	addl	%ebp,%edx
1876	psrld	$30,%xmm9
1877	addl	40(%rsp),%ecx
1878	andl	%eax,%esi
1879	xorl	%ebx,%eax
1880	por	%xmm9,%xmm6
1881	rorl	$7,%ebp
1882	movl	%edx,%edi
1883	xorl	%eax,%esi
1884	roll	$5,%edx
1885	pshufd	$238,%xmm5,%xmm10
1886	addl	%esi,%ecx
1887	xorl	%ebp,%edi
1888	xorl	%eax,%ebp
1889	addl	%edx,%ecx
1890	addl	44(%rsp),%ebx
1891	andl	%ebp,%edi
1892	xorl	%eax,%ebp
1893	rorl	$7,%edx
1894	movl	%ecx,%esi
1895	xorl	%ebp,%edi
1896	roll	$5,%ecx
1897	addl	%edi,%ebx
1898	xorl	%edx,%esi
1899	xorl	%ebp,%edx
1900	addl	%ecx,%ebx
1901	pxor	%xmm3,%xmm7
1902	addl	48(%rsp),%eax
1903	andl	%edx,%esi
1904	xorl	%ebp,%edx
1905	rorl	$7,%ecx
1906	punpcklqdq	%xmm6,%xmm10
1907	movl	%ebx,%edi
1908	xorl	%edx,%esi
1909	pxor	%xmm0,%xmm7
1910	roll	$5,%ebx
1911	addl	%esi,%eax
1912	movdqa	32(%r14),%xmm9
1913	xorl	%ecx,%edi
1914	paddd	%xmm6,%xmm8
1915	xorl	%edx,%ecx
1916	pxor	%xmm10,%xmm7
1917	addl	%ebx,%eax
1918	addl	52(%rsp),%ebp
1919	andl	%ecx,%edi
1920	xorl	%edx,%ecx
1921	rorl	$7,%ebx
1922	movdqa	%xmm7,%xmm10
1923	movl	%eax,%esi
1924	xorl	%ecx,%edi
1925	movdqa	%xmm8,32(%rsp)
1926	roll	$5,%eax
1927	addl	%edi,%ebp
1928	xorl	%ebx,%esi
1929	pslld	$2,%xmm7
1930	xorl	%ecx,%ebx
1931	addl	%eax,%ebp
1932	psrld	$30,%xmm10
1933	addl	56(%rsp),%edx
1934	andl	%ebx,%esi
1935	xorl	%ecx,%ebx
1936	por	%xmm10,%xmm7
1937	rorl	$7,%eax
1938	movl	%ebp,%edi
1939	xorl	%ebx,%esi
1940	roll	$5,%ebp
1941	pshufd	$238,%xmm6,%xmm8
1942	addl	%esi,%edx
1943	xorl	%eax,%edi
1944	xorl	%ebx,%eax
1945	addl	%ebp,%edx
1946	addl	60(%rsp),%ecx
1947	andl	%eax,%edi
1948	xorl	%ebx,%eax
1949	rorl	$7,%ebp
1950	movl	%edx,%esi
1951	xorl	%eax,%edi
1952	roll	$5,%edx
1953	addl	%edi,%ecx
1954	xorl	%ebp,%esi
1955	xorl	%eax,%ebp
1956	addl	%edx,%ecx
1957	pxor	%xmm4,%xmm0
1958	addl	0(%rsp),%ebx
1959	andl	%ebp,%esi
1960	xorl	%eax,%ebp
1961	rorl	$7,%edx
1962	punpcklqdq	%xmm7,%xmm8
1963	movl	%ecx,%edi
1964	xorl	%ebp,%esi
1965	pxor	%xmm1,%xmm0
1966	roll	$5,%ecx
1967	addl	%esi,%ebx
1968	movdqa	%xmm9,%xmm10
1969	xorl	%edx,%edi
1970	paddd	%xmm7,%xmm9
1971	xorl	%ebp,%edx
1972	pxor	%xmm8,%xmm0
1973	addl	%ecx,%ebx
1974	addl	4(%rsp),%eax
1975	andl	%edx,%edi
1976	xorl	%ebp,%edx
1977	rorl	$7,%ecx
1978	movdqa	%xmm0,%xmm8
1979	movl	%ebx,%esi
1980	xorl	%edx,%edi
1981	movdqa	%xmm9,48(%rsp)
1982	roll	$5,%ebx
1983	addl	%edi,%eax
1984	xorl	%ecx,%esi
1985	pslld	$2,%xmm0
1986	xorl	%edx,%ecx
1987	addl	%ebx,%eax
1988	psrld	$30,%xmm8
1989	addl	8(%rsp),%ebp
1990	andl	%ecx,%esi
1991	xorl	%edx,%ecx
1992	por	%xmm8,%xmm0
1993	rorl	$7,%ebx
1994	movl	%eax,%edi
1995	xorl	%ecx,%esi
1996	roll	$5,%eax
1997	pshufd	$238,%xmm7,%xmm9
1998	addl	%esi,%ebp
1999	xorl	%ebx,%edi
2000	xorl	%ecx,%ebx
2001	addl	%eax,%ebp
2002	addl	12(%rsp),%edx
2003	andl	%ebx,%edi
2004	xorl	%ecx,%ebx
2005	rorl	$7,%eax
2006	movl	%ebp,%esi
2007	xorl	%ebx,%edi
2008	roll	$5,%ebp
2009	addl	%edi,%edx
2010	xorl	%eax,%esi
2011	xorl	%ebx,%eax
2012	addl	%ebp,%edx
2013	pxor	%xmm5,%xmm1
2014	addl	16(%rsp),%ecx
2015	andl	%eax,%esi
2016	xorl	%ebx,%eax
2017	rorl	$7,%ebp
2018	punpcklqdq	%xmm0,%xmm9
2019	movl	%edx,%edi
2020	xorl	%eax,%esi
2021	pxor	%xmm2,%xmm1
2022	roll	$5,%edx
2023	addl	%esi,%ecx
2024	movdqa	%xmm10,%xmm8
2025	xorl	%ebp,%edi
2026	paddd	%xmm0,%xmm10
2027	xorl	%eax,%ebp
2028	pxor	%xmm9,%xmm1
2029	addl	%edx,%ecx
2030	addl	20(%rsp),%ebx
2031	andl	%ebp,%edi
2032	xorl	%eax,%ebp
2033	rorl	$7,%edx
2034	movdqa	%xmm1,%xmm9
2035	movl	%ecx,%esi
2036	xorl	%ebp,%edi
2037	movdqa	%xmm10,0(%rsp)
2038	roll	$5,%ecx
2039	addl	%edi,%ebx
2040	xorl	%edx,%esi
2041	pslld	$2,%xmm1
2042	xorl	%ebp,%edx
2043	addl	%ecx,%ebx
2044	psrld	$30,%xmm9
2045	addl	24(%rsp),%eax
2046	andl	%edx,%esi
2047	xorl	%ebp,%edx
2048	por	%xmm9,%xmm1
2049	rorl	$7,%ecx
2050	movl	%ebx,%edi
2051	xorl	%edx,%esi
2052	roll	$5,%ebx
2053	pshufd	$238,%xmm0,%xmm10
2054	addl	%esi,%eax
2055	xorl	%ecx,%edi
2056	xorl	%edx,%ecx
2057	addl	%ebx,%eax
2058	addl	28(%rsp),%ebp
2059	andl	%ecx,%edi
2060	xorl	%edx,%ecx
2061	rorl	$7,%ebx
2062	movl	%eax,%esi
2063	xorl	%ecx,%edi
2064	roll	$5,%eax
2065	addl	%edi,%ebp
2066	xorl	%ebx,%esi
2067	xorl	%ecx,%ebx
2068	addl	%eax,%ebp
2069	pxor	%xmm6,%xmm2
2070	addl	32(%rsp),%edx
2071	andl	%ebx,%esi
2072	xorl	%ecx,%ebx
2073	rorl	$7,%eax
2074	punpcklqdq	%xmm1,%xmm10
2075	movl	%ebp,%edi
2076	xorl	%ebx,%esi
2077	pxor	%xmm3,%xmm2
2078	roll	$5,%ebp
2079	addl	%esi,%edx
2080	movdqa	%xmm8,%xmm9
2081	xorl	%eax,%edi
2082	paddd	%xmm1,%xmm8
2083	xorl	%ebx,%eax
2084	pxor	%xmm10,%xmm2
2085	addl	%ebp,%edx
2086	addl	36(%rsp),%ecx
2087	andl	%eax,%edi
2088	xorl	%ebx,%eax
2089	rorl	$7,%ebp
2090	movdqa	%xmm2,%xmm10
2091	movl	%edx,%esi
2092	xorl	%eax,%edi
2093	movdqa	%xmm8,16(%rsp)
2094	roll	$5,%edx
2095	addl	%edi,%ecx
2096	xorl	%ebp,%esi
2097	pslld	$2,%xmm2
2098	xorl	%eax,%ebp
2099	addl	%edx,%ecx
2100	psrld	$30,%xmm10
2101	addl	40(%rsp),%ebx
2102	andl	%ebp,%esi
2103	xorl	%eax,%ebp
2104	por	%xmm10,%xmm2
2105	rorl	$7,%edx
2106	movl	%ecx,%edi
2107	xorl	%ebp,%esi
2108	roll	$5,%ecx
2109	pshufd	$238,%xmm1,%xmm8
2110	addl	%esi,%ebx
2111	xorl	%edx,%edi
2112	xorl	%ebp,%edx
2113	addl	%ecx,%ebx
2114	addl	44(%rsp),%eax
2115	andl	%edx,%edi
2116	xorl	%ebp,%edx
2117	rorl	$7,%ecx
2118	movl	%ebx,%esi
2119	xorl	%edx,%edi
2120	roll	$5,%ebx
2121	addl	%edi,%eax
2122	xorl	%edx,%esi
2123	addl	%ebx,%eax
2124	pxor	%xmm7,%xmm3
2125	addl	48(%rsp),%ebp
2126	xorl	%ecx,%esi
2127	punpcklqdq	%xmm2,%xmm8
2128	movl	%eax,%edi
2129	roll	$5,%eax
2130	pxor	%xmm4,%xmm3
2131	addl	%esi,%ebp
2132	xorl	%ecx,%edi
2133	movdqa	%xmm9,%xmm10
2134	rorl	$7,%ebx
2135	paddd	%xmm2,%xmm9
2136	addl	%eax,%ebp
2137	pxor	%xmm8,%xmm3
2138	addl	52(%rsp),%edx
2139	xorl	%ebx,%edi
2140	movl	%ebp,%esi
2141	roll	$5,%ebp
2142	movdqa	%xmm3,%xmm8
2143	addl	%edi,%edx
2144	xorl	%ebx,%esi
2145	movdqa	%xmm9,32(%rsp)
2146	rorl	$7,%eax
2147	addl	%ebp,%edx
2148	addl	56(%rsp),%ecx
2149	pslld	$2,%xmm3
2150	xorl	%eax,%esi
2151	movl	%edx,%edi
2152	psrld	$30,%xmm8
2153	roll	$5,%edx
2154	addl	%esi,%ecx
2155	xorl	%eax,%edi
2156	rorl	$7,%ebp
2157	por	%xmm8,%xmm3
2158	addl	%edx,%ecx
2159	addl	60(%rsp),%ebx
2160	xorl	%ebp,%edi
2161	movl	%ecx,%esi
2162	roll	$5,%ecx
2163	addl	%edi,%ebx
2164	xorl	%ebp,%esi
2165	rorl	$7,%edx
2166	addl	%ecx,%ebx
2167	addl	0(%rsp),%eax
2168	xorl	%edx,%esi
2169	movl	%ebx,%edi
2170	roll	$5,%ebx
2171	paddd	%xmm3,%xmm10
2172	addl	%esi,%eax
2173	xorl	%edx,%edi
2174	movdqa	%xmm10,48(%rsp)
2175	rorl	$7,%ecx
2176	addl	%ebx,%eax
2177	addl	4(%rsp),%ebp
2178	xorl	%ecx,%edi
2179	movl	%eax,%esi
2180	roll	$5,%eax
2181	addl	%edi,%ebp
2182	xorl	%ecx,%esi
2183	rorl	$7,%ebx
2184	addl	%eax,%ebp
2185	addl	8(%rsp),%edx
2186	xorl	%ebx,%esi
2187	movl	%ebp,%edi
2188	roll	$5,%ebp
2189	addl	%esi,%edx
2190	xorl	%ebx,%edi
2191	rorl	$7,%eax
2192	addl	%ebp,%edx
2193	addl	12(%rsp),%ecx
2194	xorl	%eax,%edi
2195	movl	%edx,%esi
2196	roll	$5,%edx
2197	addl	%edi,%ecx
2198	xorl	%eax,%esi
2199	rorl	$7,%ebp
2200	addl	%edx,%ecx
2201	cmpq	%r10,%r9
2202	je	.Ldone_ssse3
2203	movdqa	64(%r14),%xmm6
2204	movdqa	-64(%r14),%xmm9
2205	movdqu	0(%r9),%xmm0
2206	movdqu	16(%r9),%xmm1
2207	movdqu	32(%r9),%xmm2
2208	movdqu	48(%r9),%xmm3
2209.byte	102,15,56,0,198
2210	addq	$64,%r9
2211	addl	16(%rsp),%ebx
2212	xorl	%ebp,%esi
2213	movl	%ecx,%edi
2214.byte	102,15,56,0,206
2215	roll	$5,%ecx
2216	addl	%esi,%ebx
2217	xorl	%ebp,%edi
2218	rorl	$7,%edx
2219	paddd	%xmm9,%xmm0
2220	addl	%ecx,%ebx
2221	addl	20(%rsp),%eax
2222	xorl	%edx,%edi
2223	movl	%ebx,%esi
2224	movdqa	%xmm0,0(%rsp)
2225	roll	$5,%ebx
2226	addl	%edi,%eax
2227	xorl	%edx,%esi
2228	rorl	$7,%ecx
2229	psubd	%xmm9,%xmm0
2230	addl	%ebx,%eax
2231	addl	24(%rsp),%ebp
2232	xorl	%ecx,%esi
2233	movl	%eax,%edi
2234	roll	$5,%eax
2235	addl	%esi,%ebp
2236	xorl	%ecx,%edi
2237	rorl	$7,%ebx
2238	addl	%eax,%ebp
2239	addl	28(%rsp),%edx
2240	xorl	%ebx,%edi
2241	movl	%ebp,%esi
2242	roll	$5,%ebp
2243	addl	%edi,%edx
2244	xorl	%ebx,%esi
2245	rorl	$7,%eax
2246	addl	%ebp,%edx
2247	addl	32(%rsp),%ecx
2248	xorl	%eax,%esi
2249	movl	%edx,%edi
2250.byte	102,15,56,0,214
2251	roll	$5,%edx
2252	addl	%esi,%ecx
2253	xorl	%eax,%edi
2254	rorl	$7,%ebp
2255	paddd	%xmm9,%xmm1
2256	addl	%edx,%ecx
2257	addl	36(%rsp),%ebx
2258	xorl	%ebp,%edi
2259	movl	%ecx,%esi
2260	movdqa	%xmm1,16(%rsp)
2261	roll	$5,%ecx
2262	addl	%edi,%ebx
2263	xorl	%ebp,%esi
2264	rorl	$7,%edx
2265	psubd	%xmm9,%xmm1
2266	addl	%ecx,%ebx
2267	addl	40(%rsp),%eax
2268	xorl	%edx,%esi
2269	movl	%ebx,%edi
2270	roll	$5,%ebx
2271	addl	%esi,%eax
2272	xorl	%edx,%edi
2273	rorl	$7,%ecx
2274	addl	%ebx,%eax
2275	addl	44(%rsp),%ebp
2276	xorl	%ecx,%edi
2277	movl	%eax,%esi
2278	roll	$5,%eax
2279	addl	%edi,%ebp
2280	xorl	%ecx,%esi
2281	rorl	$7,%ebx
2282	addl	%eax,%ebp
2283	addl	48(%rsp),%edx
2284	xorl	%ebx,%esi
2285	movl	%ebp,%edi
2286.byte	102,15,56,0,222
2287	roll	$5,%ebp
2288	addl	%esi,%edx
2289	xorl	%ebx,%edi
2290	rorl	$7,%eax
2291	paddd	%xmm9,%xmm2
2292	addl	%ebp,%edx
2293	addl	52(%rsp),%ecx
2294	xorl	%eax,%edi
2295	movl	%edx,%esi
2296	movdqa	%xmm2,32(%rsp)
2297	roll	$5,%edx
2298	addl	%edi,%ecx
2299	xorl	%eax,%esi
2300	rorl	$7,%ebp
2301	psubd	%xmm9,%xmm2
2302	addl	%edx,%ecx
2303	addl	56(%rsp),%ebx
2304	xorl	%ebp,%esi
2305	movl	%ecx,%edi
2306	roll	$5,%ecx
2307	addl	%esi,%ebx
2308	xorl	%ebp,%edi
2309	rorl	$7,%edx
2310	addl	%ecx,%ebx
2311	addl	60(%rsp),%eax
2312	xorl	%edx,%edi
2313	movl	%ebx,%esi
2314	roll	$5,%ebx
2315	addl	%edi,%eax
2316	rorl	$7,%ecx
2317	addl	%ebx,%eax
2318	addl	0(%r8),%eax
2319	addl	4(%r8),%esi
2320	addl	8(%r8),%ecx
2321	addl	12(%r8),%edx
2322	movl	%eax,0(%r8)
2323	addl	16(%r8),%ebp
2324	movl	%esi,4(%r8)
2325	movl	%esi,%ebx
2326	movl	%ecx,8(%r8)
2327	movl	%ecx,%edi
2328	movl	%edx,12(%r8)
2329	xorl	%edx,%edi
2330	movl	%ebp,16(%r8)
2331	andl	%edi,%esi
2332	jmp	.Loop_ssse3
2333
2334.align	16
2335.Ldone_ssse3:
2336	addl	16(%rsp),%ebx
2337	xorl	%ebp,%esi
2338	movl	%ecx,%edi
2339	roll	$5,%ecx
2340	addl	%esi,%ebx
2341	xorl	%ebp,%edi
2342	rorl	$7,%edx
2343	addl	%ecx,%ebx
2344	addl	20(%rsp),%eax
2345	xorl	%edx,%edi
2346	movl	%ebx,%esi
2347	roll	$5,%ebx
2348	addl	%edi,%eax
2349	xorl	%edx,%esi
2350	rorl	$7,%ecx
2351	addl	%ebx,%eax
2352	addl	24(%rsp),%ebp
2353	xorl	%ecx,%esi
2354	movl	%eax,%edi
2355	roll	$5,%eax
2356	addl	%esi,%ebp
2357	xorl	%ecx,%edi
2358	rorl	$7,%ebx
2359	addl	%eax,%ebp
2360	addl	28(%rsp),%edx
2361	xorl	%ebx,%edi
2362	movl	%ebp,%esi
2363	roll	$5,%ebp
2364	addl	%edi,%edx
2365	xorl	%ebx,%esi
2366	rorl	$7,%eax
2367	addl	%ebp,%edx
2368	addl	32(%rsp),%ecx
2369	xorl	%eax,%esi
2370	movl	%edx,%edi
2371	roll	$5,%edx
2372	addl	%esi,%ecx
2373	xorl	%eax,%edi
2374	rorl	$7,%ebp
2375	addl	%edx,%ecx
2376	addl	36(%rsp),%ebx
2377	xorl	%ebp,%edi
2378	movl	%ecx,%esi
2379	roll	$5,%ecx
2380	addl	%edi,%ebx
2381	xorl	%ebp,%esi
2382	rorl	$7,%edx
2383	addl	%ecx,%ebx
2384	addl	40(%rsp),%eax
2385	xorl	%edx,%esi
2386	movl	%ebx,%edi
2387	roll	$5,%ebx
2388	addl	%esi,%eax
2389	xorl	%edx,%edi
2390	rorl	$7,%ecx
2391	addl	%ebx,%eax
2392	addl	44(%rsp),%ebp
2393	xorl	%ecx,%edi
2394	movl	%eax,%esi
2395	roll	$5,%eax
2396	addl	%edi,%ebp
2397	xorl	%ecx,%esi
2398	rorl	$7,%ebx
2399	addl	%eax,%ebp
2400	addl	48(%rsp),%edx
2401	xorl	%ebx,%esi
2402	movl	%ebp,%edi
2403	roll	$5,%ebp
2404	addl	%esi,%edx
2405	xorl	%ebx,%edi
2406	rorl	$7,%eax
2407	addl	%ebp,%edx
2408	addl	52(%rsp),%ecx
2409	xorl	%eax,%edi
2410	movl	%edx,%esi
2411	roll	$5,%edx
2412	addl	%edi,%ecx
2413	xorl	%eax,%esi
2414	rorl	$7,%ebp
2415	addl	%edx,%ecx
2416	addl	56(%rsp),%ebx
2417	xorl	%ebp,%esi
2418	movl	%ecx,%edi
2419	roll	$5,%ecx
2420	addl	%esi,%ebx
2421	xorl	%ebp,%edi
2422	rorl	$7,%edx
2423	addl	%ecx,%ebx
2424	addl	60(%rsp),%eax
2425	xorl	%edx,%edi
2426	movl	%ebx,%esi
2427	roll	$5,%ebx
2428	addl	%edi,%eax
2429	rorl	$7,%ecx
2430	addl	%ebx,%eax
2431	addl	0(%r8),%eax
2432	addl	4(%r8),%esi
2433	addl	8(%r8),%ecx
2434	movl	%eax,0(%r8)
2435	addl	12(%r8),%edx
2436	movl	%esi,4(%r8)
2437	addl	16(%r8),%ebp
2438	movl	%ecx,8(%r8)
2439	movl	%edx,12(%r8)
2440	movl	%ebp,16(%r8)
2441	movq	-40(%r11),%r14
2442.cfi_restore	%r14
2443	movq	-32(%r11),%r13
2444.cfi_restore	%r13
2445	movq	-24(%r11),%r12
2446.cfi_restore	%r12
2447	movq	-16(%r11),%rbp
2448.cfi_restore	%rbp
2449	movq	-8(%r11),%rbx
2450.cfi_restore	%rbx
2451	leaq	(%r11),%rsp
2452.cfi_def_cfa_register	%rsp
2453.Lepilogue_ssse3:
2454	.byte	0xf3,0xc3
2455.cfi_endproc
2456.size	sha1_block_data_order_ssse3,.-sha1_block_data_order_ssse3
2457.type	sha1_block_data_order_avx,@function
2458.align	16
2459sha1_block_data_order_avx:
2460_avx_shortcut:
2461.cfi_startproc
2462	movq	%rsp,%r11
2463.cfi_def_cfa_register	%r11
2464	pushq	%rbx
2465.cfi_offset	%rbx,-16
2466	pushq	%rbp
2467.cfi_offset	%rbp,-24
2468	pushq	%r12
2469.cfi_offset	%r12,-32
2470	pushq	%r13
2471.cfi_offset	%r13,-40
2472	pushq	%r14
2473.cfi_offset	%r14,-48
2474	leaq	-64(%rsp),%rsp
2475	vzeroupper
2476	andq	$-64,%rsp
2477	movq	%rdi,%r8
2478	movq	%rsi,%r9
2479	movq	%rdx,%r10
2480
2481	shlq	$6,%r10
2482	addq	%r9,%r10
2483	leaq	K_XX_XX+64(%rip),%r14
2484
2485	movl	0(%r8),%eax
2486	movl	4(%r8),%ebx
2487	movl	8(%r8),%ecx
2488	movl	12(%r8),%edx
2489	movl	%ebx,%esi
2490	movl	16(%r8),%ebp
2491	movl	%ecx,%edi
2492	xorl	%edx,%edi
2493	andl	%edi,%esi
2494
2495	vmovdqa	64(%r14),%xmm6
2496	vmovdqa	-64(%r14),%xmm11
2497	vmovdqu	0(%r9),%xmm0
2498	vmovdqu	16(%r9),%xmm1
2499	vmovdqu	32(%r9),%xmm2
2500	vmovdqu	48(%r9),%xmm3
2501	vpshufb	%xmm6,%xmm0,%xmm0
2502	addq	$64,%r9
2503	vpshufb	%xmm6,%xmm1,%xmm1
2504	vpshufb	%xmm6,%xmm2,%xmm2
2505	vpshufb	%xmm6,%xmm3,%xmm3
2506	vpaddd	%xmm11,%xmm0,%xmm4
2507	vpaddd	%xmm11,%xmm1,%xmm5
2508	vpaddd	%xmm11,%xmm2,%xmm6
2509	vmovdqa	%xmm4,0(%rsp)
2510	vmovdqa	%xmm5,16(%rsp)
2511	vmovdqa	%xmm6,32(%rsp)
2512	jmp	.Loop_avx
2513.align	16
2514.Loop_avx:
2515	shrdl	$2,%ebx,%ebx
2516	xorl	%edx,%esi
2517	vpalignr	$8,%xmm0,%xmm1,%xmm4
2518	movl	%eax,%edi
2519	addl	0(%rsp),%ebp
2520	vpaddd	%xmm3,%xmm11,%xmm9
2521	xorl	%ecx,%ebx
2522	shldl	$5,%eax,%eax
2523	vpsrldq	$4,%xmm3,%xmm8
2524	addl	%esi,%ebp
2525	andl	%ebx,%edi
2526	vpxor	%xmm0,%xmm4,%xmm4
2527	xorl	%ecx,%ebx
2528	addl	%eax,%ebp
2529	vpxor	%xmm2,%xmm8,%xmm8
2530	shrdl	$7,%eax,%eax
2531	xorl	%ecx,%edi
2532	movl	%ebp,%esi
2533	addl	4(%rsp),%edx
2534	vpxor	%xmm8,%xmm4,%xmm4
2535	xorl	%ebx,%eax
2536	shldl	$5,%ebp,%ebp
2537	vmovdqa	%xmm9,48(%rsp)
2538	addl	%edi,%edx
2539	andl	%eax,%esi
2540	vpsrld	$31,%xmm4,%xmm8
2541	xorl	%ebx,%eax
2542	addl	%ebp,%edx
2543	shrdl	$7,%ebp,%ebp
2544	xorl	%ebx,%esi
2545	vpslldq	$12,%xmm4,%xmm10
2546	vpaddd	%xmm4,%xmm4,%xmm4
2547	movl	%edx,%edi
2548	addl	8(%rsp),%ecx
2549	xorl	%eax,%ebp
2550	shldl	$5,%edx,%edx
2551	vpsrld	$30,%xmm10,%xmm9
2552	vpor	%xmm8,%xmm4,%xmm4
2553	addl	%esi,%ecx
2554	andl	%ebp,%edi
2555	xorl	%eax,%ebp
2556	addl	%edx,%ecx
2557	vpslld	$2,%xmm10,%xmm10
2558	vpxor	%xmm9,%xmm4,%xmm4
2559	shrdl	$7,%edx,%edx
2560	xorl	%eax,%edi
2561	movl	%ecx,%esi
2562	addl	12(%rsp),%ebx
2563	vpxor	%xmm10,%xmm4,%xmm4
2564	xorl	%ebp,%edx
2565	shldl	$5,%ecx,%ecx
2566	addl	%edi,%ebx
2567	andl	%edx,%esi
2568	xorl	%ebp,%edx
2569	addl	%ecx,%ebx
2570	shrdl	$7,%ecx,%ecx
2571	xorl	%ebp,%esi
2572	vpalignr	$8,%xmm1,%xmm2,%xmm5
2573	movl	%ebx,%edi
2574	addl	16(%rsp),%eax
2575	vpaddd	%xmm4,%xmm11,%xmm9
2576	xorl	%edx,%ecx
2577	shldl	$5,%ebx,%ebx
2578	vpsrldq	$4,%xmm4,%xmm8
2579	addl	%esi,%eax
2580	andl	%ecx,%edi
2581	vpxor	%xmm1,%xmm5,%xmm5
2582	xorl	%edx,%ecx
2583	addl	%ebx,%eax
2584	vpxor	%xmm3,%xmm8,%xmm8
2585	shrdl	$7,%ebx,%ebx
2586	xorl	%edx,%edi
2587	movl	%eax,%esi
2588	addl	20(%rsp),%ebp
2589	vpxor	%xmm8,%xmm5,%xmm5
2590	xorl	%ecx,%ebx
2591	shldl	$5,%eax,%eax
2592	vmovdqa	%xmm9,0(%rsp)
2593	addl	%edi,%ebp
2594	andl	%ebx,%esi
2595	vpsrld	$31,%xmm5,%xmm8
2596	xorl	%ecx,%ebx
2597	addl	%eax,%ebp
2598	shrdl	$7,%eax,%eax
2599	xorl	%ecx,%esi
2600	vpslldq	$12,%xmm5,%xmm10
2601	vpaddd	%xmm5,%xmm5,%xmm5
2602	movl	%ebp,%edi
2603	addl	24(%rsp),%edx
2604	xorl	%ebx,%eax
2605	shldl	$5,%ebp,%ebp
2606	vpsrld	$30,%xmm10,%xmm9
2607	vpor	%xmm8,%xmm5,%xmm5
2608	addl	%esi,%edx
2609	andl	%eax,%edi
2610	xorl	%ebx,%eax
2611	addl	%ebp,%edx
2612	vpslld	$2,%xmm10,%xmm10
2613	vpxor	%xmm9,%xmm5,%xmm5
2614	shrdl	$7,%ebp,%ebp
2615	xorl	%ebx,%edi
2616	movl	%edx,%esi
2617	addl	28(%rsp),%ecx
2618	vpxor	%xmm10,%xmm5,%xmm5
2619	xorl	%eax,%ebp
2620	shldl	$5,%edx,%edx
2621	vmovdqa	-32(%r14),%xmm11
2622	addl	%edi,%ecx
2623	andl	%ebp,%esi
2624	xorl	%eax,%ebp
2625	addl	%edx,%ecx
2626	shrdl	$7,%edx,%edx
2627	xorl	%eax,%esi
2628	vpalignr	$8,%xmm2,%xmm3,%xmm6
2629	movl	%ecx,%edi
2630	addl	32(%rsp),%ebx
2631	vpaddd	%xmm5,%xmm11,%xmm9
2632	xorl	%ebp,%edx
2633	shldl	$5,%ecx,%ecx
2634	vpsrldq	$4,%xmm5,%xmm8
2635	addl	%esi,%ebx
2636	andl	%edx,%edi
2637	vpxor	%xmm2,%xmm6,%xmm6
2638	xorl	%ebp,%edx
2639	addl	%ecx,%ebx
2640	vpxor	%xmm4,%xmm8,%xmm8
2641	shrdl	$7,%ecx,%ecx
2642	xorl	%ebp,%edi
2643	movl	%ebx,%esi
2644	addl	36(%rsp),%eax
2645	vpxor	%xmm8,%xmm6,%xmm6
2646	xorl	%edx,%ecx
2647	shldl	$5,%ebx,%ebx
2648	vmovdqa	%xmm9,16(%rsp)
2649	addl	%edi,%eax
2650	andl	%ecx,%esi
2651	vpsrld	$31,%xmm6,%xmm8
2652	xorl	%edx,%ecx
2653	addl	%ebx,%eax
2654	shrdl	$7,%ebx,%ebx
2655	xorl	%edx,%esi
2656	vpslldq	$12,%xmm6,%xmm10
2657	vpaddd	%xmm6,%xmm6,%xmm6
2658	movl	%eax,%edi
2659	addl	40(%rsp),%ebp
2660	xorl	%ecx,%ebx
2661	shldl	$5,%eax,%eax
2662	vpsrld	$30,%xmm10,%xmm9
2663	vpor	%xmm8,%xmm6,%xmm6
2664	addl	%esi,%ebp
2665	andl	%ebx,%edi
2666	xorl	%ecx,%ebx
2667	addl	%eax,%ebp
2668	vpslld	$2,%xmm10,%xmm10
2669	vpxor	%xmm9,%xmm6,%xmm6
2670	shrdl	$7,%eax,%eax
2671	xorl	%ecx,%edi
2672	movl	%ebp,%esi
2673	addl	44(%rsp),%edx
2674	vpxor	%xmm10,%xmm6,%xmm6
2675	xorl	%ebx,%eax
2676	shldl	$5,%ebp,%ebp
2677	addl	%edi,%edx
2678	andl	%eax,%esi
2679	xorl	%ebx,%eax
2680	addl	%ebp,%edx
2681	shrdl	$7,%ebp,%ebp
2682	xorl	%ebx,%esi
2683	vpalignr	$8,%xmm3,%xmm4,%xmm7
2684	movl	%edx,%edi
2685	addl	48(%rsp),%ecx
2686	vpaddd	%xmm6,%xmm11,%xmm9
2687	xorl	%eax,%ebp
2688	shldl	$5,%edx,%edx
2689	vpsrldq	$4,%xmm6,%xmm8
2690	addl	%esi,%ecx
2691	andl	%ebp,%edi
2692	vpxor	%xmm3,%xmm7,%xmm7
2693	xorl	%eax,%ebp
2694	addl	%edx,%ecx
2695	vpxor	%xmm5,%xmm8,%xmm8
2696	shrdl	$7,%edx,%edx
2697	xorl	%eax,%edi
2698	movl	%ecx,%esi
2699	addl	52(%rsp),%ebx
2700	vpxor	%xmm8,%xmm7,%xmm7
2701	xorl	%ebp,%edx
2702	shldl	$5,%ecx,%ecx
2703	vmovdqa	%xmm9,32(%rsp)
2704	addl	%edi,%ebx
2705	andl	%edx,%esi
2706	vpsrld	$31,%xmm7,%xmm8
2707	xorl	%ebp,%edx
2708	addl	%ecx,%ebx
2709	shrdl	$7,%ecx,%ecx
2710	xorl	%ebp,%esi
2711	vpslldq	$12,%xmm7,%xmm10
2712	vpaddd	%xmm7,%xmm7,%xmm7
2713	movl	%ebx,%edi
2714	addl	56(%rsp),%eax
2715	xorl	%edx,%ecx
2716	shldl	$5,%ebx,%ebx
2717	vpsrld	$30,%xmm10,%xmm9
2718	vpor	%xmm8,%xmm7,%xmm7
2719	addl	%esi,%eax
2720	andl	%ecx,%edi
2721	xorl	%edx,%ecx
2722	addl	%ebx,%eax
2723	vpslld	$2,%xmm10,%xmm10
2724	vpxor	%xmm9,%xmm7,%xmm7
2725	shrdl	$7,%ebx,%ebx
2726	xorl	%edx,%edi
2727	movl	%eax,%esi
2728	addl	60(%rsp),%ebp
2729	vpxor	%xmm10,%xmm7,%xmm7
2730	xorl	%ecx,%ebx
2731	shldl	$5,%eax,%eax
2732	addl	%edi,%ebp
2733	andl	%ebx,%esi
2734	xorl	%ecx,%ebx
2735	addl	%eax,%ebp
2736	vpalignr	$8,%xmm6,%xmm7,%xmm8
2737	vpxor	%xmm4,%xmm0,%xmm0
2738	shrdl	$7,%eax,%eax
2739	xorl	%ecx,%esi
2740	movl	%ebp,%edi
2741	addl	0(%rsp),%edx
2742	vpxor	%xmm1,%xmm0,%xmm0
2743	xorl	%ebx,%eax
2744	shldl	$5,%ebp,%ebp
2745	vpaddd	%xmm7,%xmm11,%xmm9
2746	addl	%esi,%edx
2747	andl	%eax,%edi
2748	vpxor	%xmm8,%xmm0,%xmm0
2749	xorl	%ebx,%eax
2750	addl	%ebp,%edx
2751	shrdl	$7,%ebp,%ebp
2752	xorl	%ebx,%edi
2753	vpsrld	$30,%xmm0,%xmm8
2754	vmovdqa	%xmm9,48(%rsp)
2755	movl	%edx,%esi
2756	addl	4(%rsp),%ecx
2757	xorl	%eax,%ebp
2758	shldl	$5,%edx,%edx
2759	vpslld	$2,%xmm0,%xmm0
2760	addl	%edi,%ecx
2761	andl	%ebp,%esi
2762	xorl	%eax,%ebp
2763	addl	%edx,%ecx
2764	shrdl	$7,%edx,%edx
2765	xorl	%eax,%esi
2766	movl	%ecx,%edi
2767	addl	8(%rsp),%ebx
2768	vpor	%xmm8,%xmm0,%xmm0
2769	xorl	%ebp,%edx
2770	shldl	$5,%ecx,%ecx
2771	addl	%esi,%ebx
2772	andl	%edx,%edi
2773	xorl	%ebp,%edx
2774	addl	%ecx,%ebx
2775	addl	12(%rsp),%eax
2776	xorl	%ebp,%edi
2777	movl	%ebx,%esi
2778	shldl	$5,%ebx,%ebx
2779	addl	%edi,%eax
2780	xorl	%edx,%esi
2781	shrdl	$7,%ecx,%ecx
2782	addl	%ebx,%eax
2783	vpalignr	$8,%xmm7,%xmm0,%xmm8
2784	vpxor	%xmm5,%xmm1,%xmm1
2785	addl	16(%rsp),%ebp
2786	xorl	%ecx,%esi
2787	movl	%eax,%edi
2788	shldl	$5,%eax,%eax
2789	vpxor	%xmm2,%xmm1,%xmm1
2790	addl	%esi,%ebp
2791	xorl	%ecx,%edi
2792	vpaddd	%xmm0,%xmm11,%xmm9
2793	shrdl	$7,%ebx,%ebx
2794	addl	%eax,%ebp
2795	vpxor	%xmm8,%xmm1,%xmm1
2796	addl	20(%rsp),%edx
2797	xorl	%ebx,%edi
2798	movl	%ebp,%esi
2799	shldl	$5,%ebp,%ebp
2800	vpsrld	$30,%xmm1,%xmm8
2801	vmovdqa	%xmm9,0(%rsp)
2802	addl	%edi,%edx
2803	xorl	%ebx,%esi
2804	shrdl	$7,%eax,%eax
2805	addl	%ebp,%edx
2806	vpslld	$2,%xmm1,%xmm1
2807	addl	24(%rsp),%ecx
2808	xorl	%eax,%esi
2809	movl	%edx,%edi
2810	shldl	$5,%edx,%edx
2811	addl	%esi,%ecx
2812	xorl	%eax,%edi
2813	shrdl	$7,%ebp,%ebp
2814	addl	%edx,%ecx
2815	vpor	%xmm8,%xmm1,%xmm1
2816	addl	28(%rsp),%ebx
2817	xorl	%ebp,%edi
2818	movl	%ecx,%esi
2819	shldl	$5,%ecx,%ecx
2820	addl	%edi,%ebx
2821	xorl	%ebp,%esi
2822	shrdl	$7,%edx,%edx
2823	addl	%ecx,%ebx
2824	vpalignr	$8,%xmm0,%xmm1,%xmm8
2825	vpxor	%xmm6,%xmm2,%xmm2
2826	addl	32(%rsp),%eax
2827	xorl	%edx,%esi
2828	movl	%ebx,%edi
2829	shldl	$5,%ebx,%ebx
2830	vpxor	%xmm3,%xmm2,%xmm2
2831	addl	%esi,%eax
2832	xorl	%edx,%edi
2833	vpaddd	%xmm1,%xmm11,%xmm9
2834	vmovdqa	0(%r14),%xmm11
2835	shrdl	$7,%ecx,%ecx
2836	addl	%ebx,%eax
2837	vpxor	%xmm8,%xmm2,%xmm2
2838	addl	36(%rsp),%ebp
2839	xorl	%ecx,%edi
2840	movl	%eax,%esi
2841	shldl	$5,%eax,%eax
2842	vpsrld	$30,%xmm2,%xmm8
2843	vmovdqa	%xmm9,16(%rsp)
2844	addl	%edi,%ebp
2845	xorl	%ecx,%esi
2846	shrdl	$7,%ebx,%ebx
2847	addl	%eax,%ebp
2848	vpslld	$2,%xmm2,%xmm2
2849	addl	40(%rsp),%edx
2850	xorl	%ebx,%esi
2851	movl	%ebp,%edi
2852	shldl	$5,%ebp,%ebp
2853	addl	%esi,%edx
2854	xorl	%ebx,%edi
2855	shrdl	$7,%eax,%eax
2856	addl	%ebp,%edx
2857	vpor	%xmm8,%xmm2,%xmm2
2858	addl	44(%rsp),%ecx
2859	xorl	%eax,%edi
2860	movl	%edx,%esi
2861	shldl	$5,%edx,%edx
2862	addl	%edi,%ecx
2863	xorl	%eax,%esi
2864	shrdl	$7,%ebp,%ebp
2865	addl	%edx,%ecx
2866	vpalignr	$8,%xmm1,%xmm2,%xmm8
2867	vpxor	%xmm7,%xmm3,%xmm3
2868	addl	48(%rsp),%ebx
2869	xorl	%ebp,%esi
2870	movl	%ecx,%edi
2871	shldl	$5,%ecx,%ecx
2872	vpxor	%xmm4,%xmm3,%xmm3
2873	addl	%esi,%ebx
2874	xorl	%ebp,%edi
2875	vpaddd	%xmm2,%xmm11,%xmm9
2876	shrdl	$7,%edx,%edx
2877	addl	%ecx,%ebx
2878	vpxor	%xmm8,%xmm3,%xmm3
2879	addl	52(%rsp),%eax
2880	xorl	%edx,%edi
2881	movl	%ebx,%esi
2882	shldl	$5,%ebx,%ebx
2883	vpsrld	$30,%xmm3,%xmm8
2884	vmovdqa	%xmm9,32(%rsp)
2885	addl	%edi,%eax
2886	xorl	%edx,%esi
2887	shrdl	$7,%ecx,%ecx
2888	addl	%ebx,%eax
2889	vpslld	$2,%xmm3,%xmm3
2890	addl	56(%rsp),%ebp
2891	xorl	%ecx,%esi
2892	movl	%eax,%edi
2893	shldl	$5,%eax,%eax
2894	addl	%esi,%ebp
2895	xorl	%ecx,%edi
2896	shrdl	$7,%ebx,%ebx
2897	addl	%eax,%ebp
2898	vpor	%xmm8,%xmm3,%xmm3
2899	addl	60(%rsp),%edx
2900	xorl	%ebx,%edi
2901	movl	%ebp,%esi
2902	shldl	$5,%ebp,%ebp
2903	addl	%edi,%edx
2904	xorl	%ebx,%esi
2905	shrdl	$7,%eax,%eax
2906	addl	%ebp,%edx
2907	vpalignr	$8,%xmm2,%xmm3,%xmm8
2908	vpxor	%xmm0,%xmm4,%xmm4
2909	addl	0(%rsp),%ecx
2910	xorl	%eax,%esi
2911	movl	%edx,%edi
2912	shldl	$5,%edx,%edx
2913	vpxor	%xmm5,%xmm4,%xmm4
2914	addl	%esi,%ecx
2915	xorl	%eax,%edi
2916	vpaddd	%xmm3,%xmm11,%xmm9
2917	shrdl	$7,%ebp,%ebp
2918	addl	%edx,%ecx
2919	vpxor	%xmm8,%xmm4,%xmm4
2920	addl	4(%rsp),%ebx
2921	xorl	%ebp,%edi
2922	movl	%ecx,%esi
2923	shldl	$5,%ecx,%ecx
2924	vpsrld	$30,%xmm4,%xmm8
2925	vmovdqa	%xmm9,48(%rsp)
2926	addl	%edi,%ebx
2927	xorl	%ebp,%esi
2928	shrdl	$7,%edx,%edx
2929	addl	%ecx,%ebx
2930	vpslld	$2,%xmm4,%xmm4
2931	addl	8(%rsp),%eax
2932	xorl	%edx,%esi
2933	movl	%ebx,%edi
2934	shldl	$5,%ebx,%ebx
2935	addl	%esi,%eax
2936	xorl	%edx,%edi
2937	shrdl	$7,%ecx,%ecx
2938	addl	%ebx,%eax
2939	vpor	%xmm8,%xmm4,%xmm4
2940	addl	12(%rsp),%ebp
2941	xorl	%ecx,%edi
2942	movl	%eax,%esi
2943	shldl	$5,%eax,%eax
2944	addl	%edi,%ebp
2945	xorl	%ecx,%esi
2946	shrdl	$7,%ebx,%ebx
2947	addl	%eax,%ebp
2948	vpalignr	$8,%xmm3,%xmm4,%xmm8
2949	vpxor	%xmm1,%xmm5,%xmm5
2950	addl	16(%rsp),%edx
2951	xorl	%ebx,%esi
2952	movl	%ebp,%edi
2953	shldl	$5,%ebp,%ebp
2954	vpxor	%xmm6,%xmm5,%xmm5
2955	addl	%esi,%edx
2956	xorl	%ebx,%edi
2957	vpaddd	%xmm4,%xmm11,%xmm9
2958	shrdl	$7,%eax,%eax
2959	addl	%ebp,%edx
2960	vpxor	%xmm8,%xmm5,%xmm5
2961	addl	20(%rsp),%ecx
2962	xorl	%eax,%edi
2963	movl	%edx,%esi
2964	shldl	$5,%edx,%edx
2965	vpsrld	$30,%xmm5,%xmm8
2966	vmovdqa	%xmm9,0(%rsp)
2967	addl	%edi,%ecx
2968	xorl	%eax,%esi
2969	shrdl	$7,%ebp,%ebp
2970	addl	%edx,%ecx
2971	vpslld	$2,%xmm5,%xmm5
2972	addl	24(%rsp),%ebx
2973	xorl	%ebp,%esi
2974	movl	%ecx,%edi
2975	shldl	$5,%ecx,%ecx
2976	addl	%esi,%ebx
2977	xorl	%ebp,%edi
2978	shrdl	$7,%edx,%edx
2979	addl	%ecx,%ebx
2980	vpor	%xmm8,%xmm5,%xmm5
2981	addl	28(%rsp),%eax
2982	shrdl	$7,%ecx,%ecx
2983	movl	%ebx,%esi
2984	xorl	%edx,%edi
2985	shldl	$5,%ebx,%ebx
2986	addl	%edi,%eax
2987	xorl	%ecx,%esi
2988	xorl	%edx,%ecx
2989	addl	%ebx,%eax
2990	vpalignr	$8,%xmm4,%xmm5,%xmm8
2991	vpxor	%xmm2,%xmm6,%xmm6
2992	addl	32(%rsp),%ebp
2993	andl	%ecx,%esi
2994	xorl	%edx,%ecx
2995	shrdl	$7,%ebx,%ebx
2996	vpxor	%xmm7,%xmm6,%xmm6
2997	movl	%eax,%edi
2998	xorl	%ecx,%esi
2999	vpaddd	%xmm5,%xmm11,%xmm9
3000	shldl	$5,%eax,%eax
3001	addl	%esi,%ebp
3002	vpxor	%xmm8,%xmm6,%xmm6
3003	xorl	%ebx,%edi
3004	xorl	%ecx,%ebx
3005	addl	%eax,%ebp
3006	addl	36(%rsp),%edx
3007	vpsrld	$30,%xmm6,%xmm8
3008	vmovdqa	%xmm9,16(%rsp)
3009	andl	%ebx,%edi
3010	xorl	%ecx,%ebx
3011	shrdl	$7,%eax,%eax
3012	movl	%ebp,%esi
3013	vpslld	$2,%xmm6,%xmm6
3014	xorl	%ebx,%edi
3015	shldl	$5,%ebp,%ebp
3016	addl	%edi,%edx
3017	xorl	%eax,%esi
3018	xorl	%ebx,%eax
3019	addl	%ebp,%edx
3020	addl	40(%rsp),%ecx
3021	andl	%eax,%esi
3022	vpor	%xmm8,%xmm6,%xmm6
3023	xorl	%ebx,%eax
3024	shrdl	$7,%ebp,%ebp
3025	movl	%edx,%edi
3026	xorl	%eax,%esi
3027	shldl	$5,%edx,%edx
3028	addl	%esi,%ecx
3029	xorl	%ebp,%edi
3030	xorl	%eax,%ebp
3031	addl	%edx,%ecx
3032	addl	44(%rsp),%ebx
3033	andl	%ebp,%edi
3034	xorl	%eax,%ebp
3035	shrdl	$7,%edx,%edx
3036	movl	%ecx,%esi
3037	xorl	%ebp,%edi
3038	shldl	$5,%ecx,%ecx
3039	addl	%edi,%ebx
3040	xorl	%edx,%esi
3041	xorl	%ebp,%edx
3042	addl	%ecx,%ebx
3043	vpalignr	$8,%xmm5,%xmm6,%xmm8
3044	vpxor	%xmm3,%xmm7,%xmm7
3045	addl	48(%rsp),%eax
3046	andl	%edx,%esi
3047	xorl	%ebp,%edx
3048	shrdl	$7,%ecx,%ecx
3049	vpxor	%xmm0,%xmm7,%xmm7
3050	movl	%ebx,%edi
3051	xorl	%edx,%esi
3052	vpaddd	%xmm6,%xmm11,%xmm9
3053	vmovdqa	32(%r14),%xmm11
3054	shldl	$5,%ebx,%ebx
3055	addl	%esi,%eax
3056	vpxor	%xmm8,%xmm7,%xmm7
3057	xorl	%ecx,%edi
3058	xorl	%edx,%ecx
3059	addl	%ebx,%eax
3060	addl	52(%rsp),%ebp
3061	vpsrld	$30,%xmm7,%xmm8
3062	vmovdqa	%xmm9,32(%rsp)
3063	andl	%ecx,%edi
3064	xorl	%edx,%ecx
3065	shrdl	$7,%ebx,%ebx
3066	movl	%eax,%esi
3067	vpslld	$2,%xmm7,%xmm7
3068	xorl	%ecx,%edi
3069	shldl	$5,%eax,%eax
3070	addl	%edi,%ebp
3071	xorl	%ebx,%esi
3072	xorl	%ecx,%ebx
3073	addl	%eax,%ebp
3074	addl	56(%rsp),%edx
3075	andl	%ebx,%esi
3076	vpor	%xmm8,%xmm7,%xmm7
3077	xorl	%ecx,%ebx
3078	shrdl	$7,%eax,%eax
3079	movl	%ebp,%edi
3080	xorl	%ebx,%esi
3081	shldl	$5,%ebp,%ebp
3082	addl	%esi,%edx
3083	xorl	%eax,%edi
3084	xorl	%ebx,%eax
3085	addl	%ebp,%edx
3086	addl	60(%rsp),%ecx
3087	andl	%eax,%edi
3088	xorl	%ebx,%eax
3089	shrdl	$7,%ebp,%ebp
3090	movl	%edx,%esi
3091	xorl	%eax,%edi
3092	shldl	$5,%edx,%edx
3093	addl	%edi,%ecx
3094	xorl	%ebp,%esi
3095	xorl	%eax,%ebp
3096	addl	%edx,%ecx
3097	vpalignr	$8,%xmm6,%xmm7,%xmm8
3098	vpxor	%xmm4,%xmm0,%xmm0
3099	addl	0(%rsp),%ebx
3100	andl	%ebp,%esi
3101	xorl	%eax,%ebp
3102	shrdl	$7,%edx,%edx
3103	vpxor	%xmm1,%xmm0,%xmm0
3104	movl	%ecx,%edi
3105	xorl	%ebp,%esi
3106	vpaddd	%xmm7,%xmm11,%xmm9
3107	shldl	$5,%ecx,%ecx
3108	addl	%esi,%ebx
3109	vpxor	%xmm8,%xmm0,%xmm0
3110	xorl	%edx,%edi
3111	xorl	%ebp,%edx
3112	addl	%ecx,%ebx
3113	addl	4(%rsp),%eax
3114	vpsrld	$30,%xmm0,%xmm8
3115	vmovdqa	%xmm9,48(%rsp)
3116	andl	%edx,%edi
3117	xorl	%ebp,%edx
3118	shrdl	$7,%ecx,%ecx
3119	movl	%ebx,%esi
3120	vpslld	$2,%xmm0,%xmm0
3121	xorl	%edx,%edi
3122	shldl	$5,%ebx,%ebx
3123	addl	%edi,%eax
3124	xorl	%ecx,%esi
3125	xorl	%edx,%ecx
3126	addl	%ebx,%eax
3127	addl	8(%rsp),%ebp
3128	andl	%ecx,%esi
3129	vpor	%xmm8,%xmm0,%xmm0
3130	xorl	%edx,%ecx
3131	shrdl	$7,%ebx,%ebx
3132	movl	%eax,%edi
3133	xorl	%ecx,%esi
3134	shldl	$5,%eax,%eax
3135	addl	%esi,%ebp
3136	xorl	%ebx,%edi
3137	xorl	%ecx,%ebx
3138	addl	%eax,%ebp
3139	addl	12(%rsp),%edx
3140	andl	%ebx,%edi
3141	xorl	%ecx,%ebx
3142	shrdl	$7,%eax,%eax
3143	movl	%ebp,%esi
3144	xorl	%ebx,%edi
3145	shldl	$5,%ebp,%ebp
3146	addl	%edi,%edx
3147	xorl	%eax,%esi
3148	xorl	%ebx,%eax
3149	addl	%ebp,%edx
3150	vpalignr	$8,%xmm7,%xmm0,%xmm8
3151	vpxor	%xmm5,%xmm1,%xmm1
3152	addl	16(%rsp),%ecx
3153	andl	%eax,%esi
3154	xorl	%ebx,%eax
3155	shrdl	$7,%ebp,%ebp
3156	vpxor	%xmm2,%xmm1,%xmm1
3157	movl	%edx,%edi
3158	xorl	%eax,%esi
3159	vpaddd	%xmm0,%xmm11,%xmm9
3160	shldl	$5,%edx,%edx
3161	addl	%esi,%ecx
3162	vpxor	%xmm8,%xmm1,%xmm1
3163	xorl	%ebp,%edi
3164	xorl	%eax,%ebp
3165	addl	%edx,%ecx
3166	addl	20(%rsp),%ebx
3167	vpsrld	$30,%xmm1,%xmm8
3168	vmovdqa	%xmm9,0(%rsp)
3169	andl	%ebp,%edi
3170	xorl	%eax,%ebp
3171	shrdl	$7,%edx,%edx
3172	movl	%ecx,%esi
3173	vpslld	$2,%xmm1,%xmm1
3174	xorl	%ebp,%edi
3175	shldl	$5,%ecx,%ecx
3176	addl	%edi,%ebx
3177	xorl	%edx,%esi
3178	xorl	%ebp,%edx
3179	addl	%ecx,%ebx
3180	addl	24(%rsp),%eax
3181	andl	%edx,%esi
3182	vpor	%xmm8,%xmm1,%xmm1
3183	xorl	%ebp,%edx
3184	shrdl	$7,%ecx,%ecx
3185	movl	%ebx,%edi
3186	xorl	%edx,%esi
3187	shldl	$5,%ebx,%ebx
3188	addl	%esi,%eax
3189	xorl	%ecx,%edi
3190	xorl	%edx,%ecx
3191	addl	%ebx,%eax
3192	addl	28(%rsp),%ebp
3193	andl	%ecx,%edi
3194	xorl	%edx,%ecx
3195	shrdl	$7,%ebx,%ebx
3196	movl	%eax,%esi
3197	xorl	%ecx,%edi
3198	shldl	$5,%eax,%eax
3199	addl	%edi,%ebp
3200	xorl	%ebx,%esi
3201	xorl	%ecx,%ebx
3202	addl	%eax,%ebp
3203	vpalignr	$8,%xmm0,%xmm1,%xmm8
3204	vpxor	%xmm6,%xmm2,%xmm2
3205	addl	32(%rsp),%edx
3206	andl	%ebx,%esi
3207	xorl	%ecx,%ebx
3208	shrdl	$7,%eax,%eax
3209	vpxor	%xmm3,%xmm2,%xmm2
3210	movl	%ebp,%edi
3211	xorl	%ebx,%esi
3212	vpaddd	%xmm1,%xmm11,%xmm9
3213	shldl	$5,%ebp,%ebp
3214	addl	%esi,%edx
3215	vpxor	%xmm8,%xmm2,%xmm2
3216	xorl	%eax,%edi
3217	xorl	%ebx,%eax
3218	addl	%ebp,%edx
3219	addl	36(%rsp),%ecx
3220	vpsrld	$30,%xmm2,%xmm8
3221	vmovdqa	%xmm9,16(%rsp)
3222	andl	%eax,%edi
3223	xorl	%ebx,%eax
3224	shrdl	$7,%ebp,%ebp
3225	movl	%edx,%esi
3226	vpslld	$2,%xmm2,%xmm2
3227	xorl	%eax,%edi
3228	shldl	$5,%edx,%edx
3229	addl	%edi,%ecx
3230	xorl	%ebp,%esi
3231	xorl	%eax,%ebp
3232	addl	%edx,%ecx
3233	addl	40(%rsp),%ebx
3234	andl	%ebp,%esi
3235	vpor	%xmm8,%xmm2,%xmm2
3236	xorl	%eax,%ebp
3237	shrdl	$7,%edx,%edx
3238	movl	%ecx,%edi
3239	xorl	%ebp,%esi
3240	shldl	$5,%ecx,%ecx
3241	addl	%esi,%ebx
3242	xorl	%edx,%edi
3243	xorl	%ebp,%edx
3244	addl	%ecx,%ebx
3245	addl	44(%rsp),%eax
3246	andl	%edx,%edi
3247	xorl	%ebp,%edx
3248	shrdl	$7,%ecx,%ecx
3249	movl	%ebx,%esi
3250	xorl	%edx,%edi
3251	shldl	$5,%ebx,%ebx
3252	addl	%edi,%eax
3253	xorl	%edx,%esi
3254	addl	%ebx,%eax
3255	vpalignr	$8,%xmm1,%xmm2,%xmm8
3256	vpxor	%xmm7,%xmm3,%xmm3
3257	addl	48(%rsp),%ebp
3258	xorl	%ecx,%esi
3259	movl	%eax,%edi
3260	shldl	$5,%eax,%eax
3261	vpxor	%xmm4,%xmm3,%xmm3
3262	addl	%esi,%ebp
3263	xorl	%ecx,%edi
3264	vpaddd	%xmm2,%xmm11,%xmm9
3265	shrdl	$7,%ebx,%ebx
3266	addl	%eax,%ebp
3267	vpxor	%xmm8,%xmm3,%xmm3
3268	addl	52(%rsp),%edx
3269	xorl	%ebx,%edi
3270	movl	%ebp,%esi
3271	shldl	$5,%ebp,%ebp
3272	vpsrld	$30,%xmm3,%xmm8
3273	vmovdqa	%xmm9,32(%rsp)
3274	addl	%edi,%edx
3275	xorl	%ebx,%esi
3276	shrdl	$7,%eax,%eax
3277	addl	%ebp,%edx
3278	vpslld	$2,%xmm3,%xmm3
3279	addl	56(%rsp),%ecx
3280	xorl	%eax,%esi
3281	movl	%edx,%edi
3282	shldl	$5,%edx,%edx
3283	addl	%esi,%ecx
3284	xorl	%eax,%edi
3285	shrdl	$7,%ebp,%ebp
3286	addl	%edx,%ecx
3287	vpor	%xmm8,%xmm3,%xmm3
3288	addl	60(%rsp),%ebx
3289	xorl	%ebp,%edi
3290	movl	%ecx,%esi
3291	shldl	$5,%ecx,%ecx
3292	addl	%edi,%ebx
3293	xorl	%ebp,%esi
3294	shrdl	$7,%edx,%edx
3295	addl	%ecx,%ebx
3296	addl	0(%rsp),%eax
3297	vpaddd	%xmm3,%xmm11,%xmm9
3298	xorl	%edx,%esi
3299	movl	%ebx,%edi
3300	shldl	$5,%ebx,%ebx
3301	addl	%esi,%eax
3302	vmovdqa	%xmm9,48(%rsp)
3303	xorl	%edx,%edi
3304	shrdl	$7,%ecx,%ecx
3305	addl	%ebx,%eax
3306	addl	4(%rsp),%ebp
3307	xorl	%ecx,%edi
3308	movl	%eax,%esi
3309	shldl	$5,%eax,%eax
3310	addl	%edi,%ebp
3311	xorl	%ecx,%esi
3312	shrdl	$7,%ebx,%ebx
3313	addl	%eax,%ebp
3314	addl	8(%rsp),%edx
3315	xorl	%ebx,%esi
3316	movl	%ebp,%edi
3317	shldl	$5,%ebp,%ebp
3318	addl	%esi,%edx
3319	xorl	%ebx,%edi
3320	shrdl	$7,%eax,%eax
3321	addl	%ebp,%edx
3322	addl	12(%rsp),%ecx
3323	xorl	%eax,%edi
3324	movl	%edx,%esi
3325	shldl	$5,%edx,%edx
3326	addl	%edi,%ecx
3327	xorl	%eax,%esi
3328	shrdl	$7,%ebp,%ebp
3329	addl	%edx,%ecx
3330	cmpq	%r10,%r9
3331	je	.Ldone_avx
3332	vmovdqa	64(%r14),%xmm6
3333	vmovdqa	-64(%r14),%xmm11
3334	vmovdqu	0(%r9),%xmm0
3335	vmovdqu	16(%r9),%xmm1
3336	vmovdqu	32(%r9),%xmm2
3337	vmovdqu	48(%r9),%xmm3
3338	vpshufb	%xmm6,%xmm0,%xmm0
3339	addq	$64,%r9
3340	addl	16(%rsp),%ebx
3341	xorl	%ebp,%esi
3342	vpshufb	%xmm6,%xmm1,%xmm1
3343	movl	%ecx,%edi
3344	shldl	$5,%ecx,%ecx
3345	vpaddd	%xmm11,%xmm0,%xmm4
3346	addl	%esi,%ebx
3347	xorl	%ebp,%edi
3348	shrdl	$7,%edx,%edx
3349	addl	%ecx,%ebx
3350	vmovdqa	%xmm4,0(%rsp)
3351	addl	20(%rsp),%eax
3352	xorl	%edx,%edi
3353	movl	%ebx,%esi
3354	shldl	$5,%ebx,%ebx
3355	addl	%edi,%eax
3356	xorl	%edx,%esi
3357	shrdl	$7,%ecx,%ecx
3358	addl	%ebx,%eax
3359	addl	24(%rsp),%ebp
3360	xorl	%ecx,%esi
3361	movl	%eax,%edi
3362	shldl	$5,%eax,%eax
3363	addl	%esi,%ebp
3364	xorl	%ecx,%edi
3365	shrdl	$7,%ebx,%ebx
3366	addl	%eax,%ebp
3367	addl	28(%rsp),%edx
3368	xorl	%ebx,%edi
3369	movl	%ebp,%esi
3370	shldl	$5,%ebp,%ebp
3371	addl	%edi,%edx
3372	xorl	%ebx,%esi
3373	shrdl	$7,%eax,%eax
3374	addl	%ebp,%edx
3375	addl	32(%rsp),%ecx
3376	xorl	%eax,%esi
3377	vpshufb	%xmm6,%xmm2,%xmm2
3378	movl	%edx,%edi
3379	shldl	$5,%edx,%edx
3380	vpaddd	%xmm11,%xmm1,%xmm5
3381	addl	%esi,%ecx
3382	xorl	%eax,%edi
3383	shrdl	$7,%ebp,%ebp
3384	addl	%edx,%ecx
3385	vmovdqa	%xmm5,16(%rsp)
3386	addl	36(%rsp),%ebx
3387	xorl	%ebp,%edi
3388	movl	%ecx,%esi
3389	shldl	$5,%ecx,%ecx
3390	addl	%edi,%ebx
3391	xorl	%ebp,%esi
3392	shrdl	$7,%edx,%edx
3393	addl	%ecx,%ebx
3394	addl	40(%rsp),%eax
3395	xorl	%edx,%esi
3396	movl	%ebx,%edi
3397	shldl	$5,%ebx,%ebx
3398	addl	%esi,%eax
3399	xorl	%edx,%edi
3400	shrdl	$7,%ecx,%ecx
3401	addl	%ebx,%eax
3402	addl	44(%rsp),%ebp
3403	xorl	%ecx,%edi
3404	movl	%eax,%esi
3405	shldl	$5,%eax,%eax
3406	addl	%edi,%ebp
3407	xorl	%ecx,%esi
3408	shrdl	$7,%ebx,%ebx
3409	addl	%eax,%ebp
3410	addl	48(%rsp),%edx
3411	xorl	%ebx,%esi
3412	vpshufb	%xmm6,%xmm3,%xmm3
3413	movl	%ebp,%edi
3414	shldl	$5,%ebp,%ebp
3415	vpaddd	%xmm11,%xmm2,%xmm6
3416	addl	%esi,%edx
3417	xorl	%ebx,%edi
3418	shrdl	$7,%eax,%eax
3419	addl	%ebp,%edx
3420	vmovdqa	%xmm6,32(%rsp)
3421	addl	52(%rsp),%ecx
3422	xorl	%eax,%edi
3423	movl	%edx,%esi
3424	shldl	$5,%edx,%edx
3425	addl	%edi,%ecx
3426	xorl	%eax,%esi
3427	shrdl	$7,%ebp,%ebp
3428	addl	%edx,%ecx
3429	addl	56(%rsp),%ebx
3430	xorl	%ebp,%esi
3431	movl	%ecx,%edi
3432	shldl	$5,%ecx,%ecx
3433	addl	%esi,%ebx
3434	xorl	%ebp,%edi
3435	shrdl	$7,%edx,%edx
3436	addl	%ecx,%ebx
3437	addl	60(%rsp),%eax
3438	xorl	%edx,%edi
3439	movl	%ebx,%esi
3440	shldl	$5,%ebx,%ebx
3441	addl	%edi,%eax
3442	shrdl	$7,%ecx,%ecx
3443	addl	%ebx,%eax
3444	addl	0(%r8),%eax
3445	addl	4(%r8),%esi
3446	addl	8(%r8),%ecx
3447	addl	12(%r8),%edx
3448	movl	%eax,0(%r8)
3449	addl	16(%r8),%ebp
3450	movl	%esi,4(%r8)
3451	movl	%esi,%ebx
3452	movl	%ecx,8(%r8)
3453	movl	%ecx,%edi
3454	movl	%edx,12(%r8)
3455	xorl	%edx,%edi
3456	movl	%ebp,16(%r8)
3457	andl	%edi,%esi
3458	jmp	.Loop_avx
3459
3460.align	16
3461.Ldone_avx:
3462	addl	16(%rsp),%ebx
3463	xorl	%ebp,%esi
3464	movl	%ecx,%edi
3465	shldl	$5,%ecx,%ecx
3466	addl	%esi,%ebx
3467	xorl	%ebp,%edi
3468	shrdl	$7,%edx,%edx
3469	addl	%ecx,%ebx
3470	addl	20(%rsp),%eax
3471	xorl	%edx,%edi
3472	movl	%ebx,%esi
3473	shldl	$5,%ebx,%ebx
3474	addl	%edi,%eax
3475	xorl	%edx,%esi
3476	shrdl	$7,%ecx,%ecx
3477	addl	%ebx,%eax
3478	addl	24(%rsp),%ebp
3479	xorl	%ecx,%esi
3480	movl	%eax,%edi
3481	shldl	$5,%eax,%eax
3482	addl	%esi,%ebp
3483	xorl	%ecx,%edi
3484	shrdl	$7,%ebx,%ebx
3485	addl	%eax,%ebp
3486	addl	28(%rsp),%edx
3487	xorl	%ebx,%edi
3488	movl	%ebp,%esi
3489	shldl	$5,%ebp,%ebp
3490	addl	%edi,%edx
3491	xorl	%ebx,%esi
3492	shrdl	$7,%eax,%eax
3493	addl	%ebp,%edx
3494	addl	32(%rsp),%ecx
3495	xorl	%eax,%esi
3496	movl	%edx,%edi
3497	shldl	$5,%edx,%edx
3498	addl	%esi,%ecx
3499	xorl	%eax,%edi
3500	shrdl	$7,%ebp,%ebp
3501	addl	%edx,%ecx
3502	addl	36(%rsp),%ebx
3503	xorl	%ebp,%edi
3504	movl	%ecx,%esi
3505	shldl	$5,%ecx,%ecx
3506	addl	%edi,%ebx
3507	xorl	%ebp,%esi
3508	shrdl	$7,%edx,%edx
3509	addl	%ecx,%ebx
3510	addl	40(%rsp),%eax
3511	xorl	%edx,%esi
3512	movl	%ebx,%edi
3513	shldl	$5,%ebx,%ebx
3514	addl	%esi,%eax
3515	xorl	%edx,%edi
3516	shrdl	$7,%ecx,%ecx
3517	addl	%ebx,%eax
3518	addl	44(%rsp),%ebp
3519	xorl	%ecx,%edi
3520	movl	%eax,%esi
3521	shldl	$5,%eax,%eax
3522	addl	%edi,%ebp
3523	xorl	%ecx,%esi
3524	shrdl	$7,%ebx,%ebx
3525	addl	%eax,%ebp
3526	addl	48(%rsp),%edx
3527	xorl	%ebx,%esi
3528	movl	%ebp,%edi
3529	shldl	$5,%ebp,%ebp
3530	addl	%esi,%edx
3531	xorl	%ebx,%edi
3532	shrdl	$7,%eax,%eax
3533	addl	%ebp,%edx
3534	addl	52(%rsp),%ecx
3535	xorl	%eax,%edi
3536	movl	%edx,%esi
3537	shldl	$5,%edx,%edx
3538	addl	%edi,%ecx
3539	xorl	%eax,%esi
3540	shrdl	$7,%ebp,%ebp
3541	addl	%edx,%ecx
3542	addl	56(%rsp),%ebx
3543	xorl	%ebp,%esi
3544	movl	%ecx,%edi
3545	shldl	$5,%ecx,%ecx
3546	addl	%esi,%ebx
3547	xorl	%ebp,%edi
3548	shrdl	$7,%edx,%edx
3549	addl	%ecx,%ebx
3550	addl	60(%rsp),%eax
3551	xorl	%edx,%edi
3552	movl	%ebx,%esi
3553	shldl	$5,%ebx,%ebx
3554	addl	%edi,%eax
3555	shrdl	$7,%ecx,%ecx
3556	addl	%ebx,%eax
3557	vzeroupper
3558
3559	addl	0(%r8),%eax
3560	addl	4(%r8),%esi
3561	addl	8(%r8),%ecx
3562	movl	%eax,0(%r8)
3563	addl	12(%r8),%edx
3564	movl	%esi,4(%r8)
3565	addl	16(%r8),%ebp
3566	movl	%ecx,8(%r8)
3567	movl	%edx,12(%r8)
3568	movl	%ebp,16(%r8)
3569	movq	-40(%r11),%r14
3570.cfi_restore	%r14
3571	movq	-32(%r11),%r13
3572.cfi_restore	%r13
3573	movq	-24(%r11),%r12
3574.cfi_restore	%r12
3575	movq	-16(%r11),%rbp
3576.cfi_restore	%rbp
3577	movq	-8(%r11),%rbx
3578.cfi_restore	%rbx
3579	leaq	(%r11),%rsp
3580.cfi_def_cfa_register	%rsp
3581.Lepilogue_avx:
3582	.byte	0xf3,0xc3
3583.cfi_endproc
3584.size	sha1_block_data_order_avx,.-sha1_block_data_order_avx
3585.align	64
3586K_XX_XX:
3587.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999
3588.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999
3589.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
3590.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
3591.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
3592.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
3593.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
3594.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
3595.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
3596.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
3597.byte	0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
3598.byte	83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
3599.align	64
3600#endif
3601