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