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