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