1#if defined(__x86_64__)
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	movl	OPENSSL_ia32cap_P+0(%rip),%r9d
12	movl	OPENSSL_ia32cap_P+4(%rip),%r8d
13	movl	OPENSSL_ia32cap_P+8(%rip),%r10d
14	testl	$512,%r8d
15	jz	.Lialu
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.align	16
24.Lialu:
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)
37.Lprologue:
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	.Lloop
45
46.align	16
47.Lloop:
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	.Lloop
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
1237.Lepilogue:
1238	.byte	0xf3,0xc3
1239.size	sha1_block_data_order,.-sha1_block_data_order
1240.type	sha1_block_data_order_ssse3,@function
1241.align	16
1242sha1_block_data_order_ssse3:
1243_ssse3_shortcut:
1244	movq	%rsp,%rax
1245	pushq	%rbx
1246	pushq	%rbp
1247	pushq	%r12
1248	pushq	%r13
1249	pushq	%r14
1250	leaq	-64(%rsp),%rsp
1251	movq	%rax,%r14
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),%r11
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(%r11),%xmm6
1272	movdqa	-64(%r11),%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(%r11),%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(%r11),%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(%r11),%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(%r11),%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(%r11),%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(%r11),%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(%r11),%xmm6
2169	movdqa	-64(%r11),%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	leaq	(%r14),%rsi
2407	movq	-40(%rsi),%r14
2408	movq	-32(%rsi),%r13
2409	movq	-24(%rsi),%r12
2410	movq	-16(%rsi),%rbp
2411	movq	-8(%rsi),%rbx
2412	leaq	(%rsi),%rsp
2413.Lepilogue_ssse3:
2414	.byte	0xf3,0xc3
2415.size	sha1_block_data_order_ssse3,.-sha1_block_data_order_ssse3
2416.type	sha1_block_data_order_avx,@function
2417.align	16
2418sha1_block_data_order_avx:
2419_avx_shortcut:
2420	movq	%rsp,%rax
2421	pushq	%rbx
2422	pushq	%rbp
2423	pushq	%r12
2424	pushq	%r13
2425	pushq	%r14
2426	leaq	-64(%rsp),%rsp
2427	vzeroupper
2428	movq	%rax,%r14
2429	andq	$-64,%rsp
2430	movq	%rdi,%r8
2431	movq	%rsi,%r9
2432	movq	%rdx,%r10
2433
2434	shlq	$6,%r10
2435	addq	%r9,%r10
2436	leaq	K_XX_XX+64(%rip),%r11
2437
2438	movl	0(%r8),%eax
2439	movl	4(%r8),%ebx
2440	movl	8(%r8),%ecx
2441	movl	12(%r8),%edx
2442	movl	%ebx,%esi
2443	movl	16(%r8),%ebp
2444	movl	%ecx,%edi
2445	xorl	%edx,%edi
2446	andl	%edi,%esi
2447
2448	vmovdqa	64(%r11),%xmm6
2449	vmovdqa	-64(%r11),%xmm11
2450	vmovdqu	0(%r9),%xmm0
2451	vmovdqu	16(%r9),%xmm1
2452	vmovdqu	32(%r9),%xmm2
2453	vmovdqu	48(%r9),%xmm3
2454	vpshufb	%xmm6,%xmm0,%xmm0
2455	addq	$64,%r9
2456	vpshufb	%xmm6,%xmm1,%xmm1
2457	vpshufb	%xmm6,%xmm2,%xmm2
2458	vpshufb	%xmm6,%xmm3,%xmm3
2459	vpaddd	%xmm11,%xmm0,%xmm4
2460	vpaddd	%xmm11,%xmm1,%xmm5
2461	vpaddd	%xmm11,%xmm2,%xmm6
2462	vmovdqa	%xmm4,0(%rsp)
2463	vmovdqa	%xmm5,16(%rsp)
2464	vmovdqa	%xmm6,32(%rsp)
2465	jmp	.Loop_avx
2466.align	16
2467.Loop_avx:
2468	shrdl	$2,%ebx,%ebx
2469	xorl	%edx,%esi
2470	vpalignr	$8,%xmm0,%xmm1,%xmm4
2471	movl	%eax,%edi
2472	addl	0(%rsp),%ebp
2473	vpaddd	%xmm3,%xmm11,%xmm9
2474	xorl	%ecx,%ebx
2475	shldl	$5,%eax,%eax
2476	vpsrldq	$4,%xmm3,%xmm8
2477	addl	%esi,%ebp
2478	andl	%ebx,%edi
2479	vpxor	%xmm0,%xmm4,%xmm4
2480	xorl	%ecx,%ebx
2481	addl	%eax,%ebp
2482	vpxor	%xmm2,%xmm8,%xmm8
2483	shrdl	$7,%eax,%eax
2484	xorl	%ecx,%edi
2485	movl	%ebp,%esi
2486	addl	4(%rsp),%edx
2487	vpxor	%xmm8,%xmm4,%xmm4
2488	xorl	%ebx,%eax
2489	shldl	$5,%ebp,%ebp
2490	vmovdqa	%xmm9,48(%rsp)
2491	addl	%edi,%edx
2492	andl	%eax,%esi
2493	vpsrld	$31,%xmm4,%xmm8
2494	xorl	%ebx,%eax
2495	addl	%ebp,%edx
2496	shrdl	$7,%ebp,%ebp
2497	xorl	%ebx,%esi
2498	vpslldq	$12,%xmm4,%xmm10
2499	vpaddd	%xmm4,%xmm4,%xmm4
2500	movl	%edx,%edi
2501	addl	8(%rsp),%ecx
2502	xorl	%eax,%ebp
2503	shldl	$5,%edx,%edx
2504	vpsrld	$30,%xmm10,%xmm9
2505	vpor	%xmm8,%xmm4,%xmm4
2506	addl	%esi,%ecx
2507	andl	%ebp,%edi
2508	xorl	%eax,%ebp
2509	addl	%edx,%ecx
2510	vpslld	$2,%xmm10,%xmm10
2511	vpxor	%xmm9,%xmm4,%xmm4
2512	shrdl	$7,%edx,%edx
2513	xorl	%eax,%edi
2514	movl	%ecx,%esi
2515	addl	12(%rsp),%ebx
2516	vpxor	%xmm10,%xmm4,%xmm4
2517	xorl	%ebp,%edx
2518	shldl	$5,%ecx,%ecx
2519	addl	%edi,%ebx
2520	andl	%edx,%esi
2521	xorl	%ebp,%edx
2522	addl	%ecx,%ebx
2523	shrdl	$7,%ecx,%ecx
2524	xorl	%ebp,%esi
2525	vpalignr	$8,%xmm1,%xmm2,%xmm5
2526	movl	%ebx,%edi
2527	addl	16(%rsp),%eax
2528	vpaddd	%xmm4,%xmm11,%xmm9
2529	xorl	%edx,%ecx
2530	shldl	$5,%ebx,%ebx
2531	vpsrldq	$4,%xmm4,%xmm8
2532	addl	%esi,%eax
2533	andl	%ecx,%edi
2534	vpxor	%xmm1,%xmm5,%xmm5
2535	xorl	%edx,%ecx
2536	addl	%ebx,%eax
2537	vpxor	%xmm3,%xmm8,%xmm8
2538	shrdl	$7,%ebx,%ebx
2539	xorl	%edx,%edi
2540	movl	%eax,%esi
2541	addl	20(%rsp),%ebp
2542	vpxor	%xmm8,%xmm5,%xmm5
2543	xorl	%ecx,%ebx
2544	shldl	$5,%eax,%eax
2545	vmovdqa	%xmm9,0(%rsp)
2546	addl	%edi,%ebp
2547	andl	%ebx,%esi
2548	vpsrld	$31,%xmm5,%xmm8
2549	xorl	%ecx,%ebx
2550	addl	%eax,%ebp
2551	shrdl	$7,%eax,%eax
2552	xorl	%ecx,%esi
2553	vpslldq	$12,%xmm5,%xmm10
2554	vpaddd	%xmm5,%xmm5,%xmm5
2555	movl	%ebp,%edi
2556	addl	24(%rsp),%edx
2557	xorl	%ebx,%eax
2558	shldl	$5,%ebp,%ebp
2559	vpsrld	$30,%xmm10,%xmm9
2560	vpor	%xmm8,%xmm5,%xmm5
2561	addl	%esi,%edx
2562	andl	%eax,%edi
2563	xorl	%ebx,%eax
2564	addl	%ebp,%edx
2565	vpslld	$2,%xmm10,%xmm10
2566	vpxor	%xmm9,%xmm5,%xmm5
2567	shrdl	$7,%ebp,%ebp
2568	xorl	%ebx,%edi
2569	movl	%edx,%esi
2570	addl	28(%rsp),%ecx
2571	vpxor	%xmm10,%xmm5,%xmm5
2572	xorl	%eax,%ebp
2573	shldl	$5,%edx,%edx
2574	vmovdqa	-32(%r11),%xmm11
2575	addl	%edi,%ecx
2576	andl	%ebp,%esi
2577	xorl	%eax,%ebp
2578	addl	%edx,%ecx
2579	shrdl	$7,%edx,%edx
2580	xorl	%eax,%esi
2581	vpalignr	$8,%xmm2,%xmm3,%xmm6
2582	movl	%ecx,%edi
2583	addl	32(%rsp),%ebx
2584	vpaddd	%xmm5,%xmm11,%xmm9
2585	xorl	%ebp,%edx
2586	shldl	$5,%ecx,%ecx
2587	vpsrldq	$4,%xmm5,%xmm8
2588	addl	%esi,%ebx
2589	andl	%edx,%edi
2590	vpxor	%xmm2,%xmm6,%xmm6
2591	xorl	%ebp,%edx
2592	addl	%ecx,%ebx
2593	vpxor	%xmm4,%xmm8,%xmm8
2594	shrdl	$7,%ecx,%ecx
2595	xorl	%ebp,%edi
2596	movl	%ebx,%esi
2597	addl	36(%rsp),%eax
2598	vpxor	%xmm8,%xmm6,%xmm6
2599	xorl	%edx,%ecx
2600	shldl	$5,%ebx,%ebx
2601	vmovdqa	%xmm9,16(%rsp)
2602	addl	%edi,%eax
2603	andl	%ecx,%esi
2604	vpsrld	$31,%xmm6,%xmm8
2605	xorl	%edx,%ecx
2606	addl	%ebx,%eax
2607	shrdl	$7,%ebx,%ebx
2608	xorl	%edx,%esi
2609	vpslldq	$12,%xmm6,%xmm10
2610	vpaddd	%xmm6,%xmm6,%xmm6
2611	movl	%eax,%edi
2612	addl	40(%rsp),%ebp
2613	xorl	%ecx,%ebx
2614	shldl	$5,%eax,%eax
2615	vpsrld	$30,%xmm10,%xmm9
2616	vpor	%xmm8,%xmm6,%xmm6
2617	addl	%esi,%ebp
2618	andl	%ebx,%edi
2619	xorl	%ecx,%ebx
2620	addl	%eax,%ebp
2621	vpslld	$2,%xmm10,%xmm10
2622	vpxor	%xmm9,%xmm6,%xmm6
2623	shrdl	$7,%eax,%eax
2624	xorl	%ecx,%edi
2625	movl	%ebp,%esi
2626	addl	44(%rsp),%edx
2627	vpxor	%xmm10,%xmm6,%xmm6
2628	xorl	%ebx,%eax
2629	shldl	$5,%ebp,%ebp
2630	addl	%edi,%edx
2631	andl	%eax,%esi
2632	xorl	%ebx,%eax
2633	addl	%ebp,%edx
2634	shrdl	$7,%ebp,%ebp
2635	xorl	%ebx,%esi
2636	vpalignr	$8,%xmm3,%xmm4,%xmm7
2637	movl	%edx,%edi
2638	addl	48(%rsp),%ecx
2639	vpaddd	%xmm6,%xmm11,%xmm9
2640	xorl	%eax,%ebp
2641	shldl	$5,%edx,%edx
2642	vpsrldq	$4,%xmm6,%xmm8
2643	addl	%esi,%ecx
2644	andl	%ebp,%edi
2645	vpxor	%xmm3,%xmm7,%xmm7
2646	xorl	%eax,%ebp
2647	addl	%edx,%ecx
2648	vpxor	%xmm5,%xmm8,%xmm8
2649	shrdl	$7,%edx,%edx
2650	xorl	%eax,%edi
2651	movl	%ecx,%esi
2652	addl	52(%rsp),%ebx
2653	vpxor	%xmm8,%xmm7,%xmm7
2654	xorl	%ebp,%edx
2655	shldl	$5,%ecx,%ecx
2656	vmovdqa	%xmm9,32(%rsp)
2657	addl	%edi,%ebx
2658	andl	%edx,%esi
2659	vpsrld	$31,%xmm7,%xmm8
2660	xorl	%ebp,%edx
2661	addl	%ecx,%ebx
2662	shrdl	$7,%ecx,%ecx
2663	xorl	%ebp,%esi
2664	vpslldq	$12,%xmm7,%xmm10
2665	vpaddd	%xmm7,%xmm7,%xmm7
2666	movl	%ebx,%edi
2667	addl	56(%rsp),%eax
2668	xorl	%edx,%ecx
2669	shldl	$5,%ebx,%ebx
2670	vpsrld	$30,%xmm10,%xmm9
2671	vpor	%xmm8,%xmm7,%xmm7
2672	addl	%esi,%eax
2673	andl	%ecx,%edi
2674	xorl	%edx,%ecx
2675	addl	%ebx,%eax
2676	vpslld	$2,%xmm10,%xmm10
2677	vpxor	%xmm9,%xmm7,%xmm7
2678	shrdl	$7,%ebx,%ebx
2679	xorl	%edx,%edi
2680	movl	%eax,%esi
2681	addl	60(%rsp),%ebp
2682	vpxor	%xmm10,%xmm7,%xmm7
2683	xorl	%ecx,%ebx
2684	shldl	$5,%eax,%eax
2685	addl	%edi,%ebp
2686	andl	%ebx,%esi
2687	xorl	%ecx,%ebx
2688	addl	%eax,%ebp
2689	vpalignr	$8,%xmm6,%xmm7,%xmm8
2690	vpxor	%xmm4,%xmm0,%xmm0
2691	shrdl	$7,%eax,%eax
2692	xorl	%ecx,%esi
2693	movl	%ebp,%edi
2694	addl	0(%rsp),%edx
2695	vpxor	%xmm1,%xmm0,%xmm0
2696	xorl	%ebx,%eax
2697	shldl	$5,%ebp,%ebp
2698	vpaddd	%xmm7,%xmm11,%xmm9
2699	addl	%esi,%edx
2700	andl	%eax,%edi
2701	vpxor	%xmm8,%xmm0,%xmm0
2702	xorl	%ebx,%eax
2703	addl	%ebp,%edx
2704	shrdl	$7,%ebp,%ebp
2705	xorl	%ebx,%edi
2706	vpsrld	$30,%xmm0,%xmm8
2707	vmovdqa	%xmm9,48(%rsp)
2708	movl	%edx,%esi
2709	addl	4(%rsp),%ecx
2710	xorl	%eax,%ebp
2711	shldl	$5,%edx,%edx
2712	vpslld	$2,%xmm0,%xmm0
2713	addl	%edi,%ecx
2714	andl	%ebp,%esi
2715	xorl	%eax,%ebp
2716	addl	%edx,%ecx
2717	shrdl	$7,%edx,%edx
2718	xorl	%eax,%esi
2719	movl	%ecx,%edi
2720	addl	8(%rsp),%ebx
2721	vpor	%xmm8,%xmm0,%xmm0
2722	xorl	%ebp,%edx
2723	shldl	$5,%ecx,%ecx
2724	addl	%esi,%ebx
2725	andl	%edx,%edi
2726	xorl	%ebp,%edx
2727	addl	%ecx,%ebx
2728	addl	12(%rsp),%eax
2729	xorl	%ebp,%edi
2730	movl	%ebx,%esi
2731	shldl	$5,%ebx,%ebx
2732	addl	%edi,%eax
2733	xorl	%edx,%esi
2734	shrdl	$7,%ecx,%ecx
2735	addl	%ebx,%eax
2736	vpalignr	$8,%xmm7,%xmm0,%xmm8
2737	vpxor	%xmm5,%xmm1,%xmm1
2738	addl	16(%rsp),%ebp
2739	xorl	%ecx,%esi
2740	movl	%eax,%edi
2741	shldl	$5,%eax,%eax
2742	vpxor	%xmm2,%xmm1,%xmm1
2743	addl	%esi,%ebp
2744	xorl	%ecx,%edi
2745	vpaddd	%xmm0,%xmm11,%xmm9
2746	shrdl	$7,%ebx,%ebx
2747	addl	%eax,%ebp
2748	vpxor	%xmm8,%xmm1,%xmm1
2749	addl	20(%rsp),%edx
2750	xorl	%ebx,%edi
2751	movl	%ebp,%esi
2752	shldl	$5,%ebp,%ebp
2753	vpsrld	$30,%xmm1,%xmm8
2754	vmovdqa	%xmm9,0(%rsp)
2755	addl	%edi,%edx
2756	xorl	%ebx,%esi
2757	shrdl	$7,%eax,%eax
2758	addl	%ebp,%edx
2759	vpslld	$2,%xmm1,%xmm1
2760	addl	24(%rsp),%ecx
2761	xorl	%eax,%esi
2762	movl	%edx,%edi
2763	shldl	$5,%edx,%edx
2764	addl	%esi,%ecx
2765	xorl	%eax,%edi
2766	shrdl	$7,%ebp,%ebp
2767	addl	%edx,%ecx
2768	vpor	%xmm8,%xmm1,%xmm1
2769	addl	28(%rsp),%ebx
2770	xorl	%ebp,%edi
2771	movl	%ecx,%esi
2772	shldl	$5,%ecx,%ecx
2773	addl	%edi,%ebx
2774	xorl	%ebp,%esi
2775	shrdl	$7,%edx,%edx
2776	addl	%ecx,%ebx
2777	vpalignr	$8,%xmm0,%xmm1,%xmm8
2778	vpxor	%xmm6,%xmm2,%xmm2
2779	addl	32(%rsp),%eax
2780	xorl	%edx,%esi
2781	movl	%ebx,%edi
2782	shldl	$5,%ebx,%ebx
2783	vpxor	%xmm3,%xmm2,%xmm2
2784	addl	%esi,%eax
2785	xorl	%edx,%edi
2786	vpaddd	%xmm1,%xmm11,%xmm9
2787	vmovdqa	0(%r11),%xmm11
2788	shrdl	$7,%ecx,%ecx
2789	addl	%ebx,%eax
2790	vpxor	%xmm8,%xmm2,%xmm2
2791	addl	36(%rsp),%ebp
2792	xorl	%ecx,%edi
2793	movl	%eax,%esi
2794	shldl	$5,%eax,%eax
2795	vpsrld	$30,%xmm2,%xmm8
2796	vmovdqa	%xmm9,16(%rsp)
2797	addl	%edi,%ebp
2798	xorl	%ecx,%esi
2799	shrdl	$7,%ebx,%ebx
2800	addl	%eax,%ebp
2801	vpslld	$2,%xmm2,%xmm2
2802	addl	40(%rsp),%edx
2803	xorl	%ebx,%esi
2804	movl	%ebp,%edi
2805	shldl	$5,%ebp,%ebp
2806	addl	%esi,%edx
2807	xorl	%ebx,%edi
2808	shrdl	$7,%eax,%eax
2809	addl	%ebp,%edx
2810	vpor	%xmm8,%xmm2,%xmm2
2811	addl	44(%rsp),%ecx
2812	xorl	%eax,%edi
2813	movl	%edx,%esi
2814	shldl	$5,%edx,%edx
2815	addl	%edi,%ecx
2816	xorl	%eax,%esi
2817	shrdl	$7,%ebp,%ebp
2818	addl	%edx,%ecx
2819	vpalignr	$8,%xmm1,%xmm2,%xmm8
2820	vpxor	%xmm7,%xmm3,%xmm3
2821	addl	48(%rsp),%ebx
2822	xorl	%ebp,%esi
2823	movl	%ecx,%edi
2824	shldl	$5,%ecx,%ecx
2825	vpxor	%xmm4,%xmm3,%xmm3
2826	addl	%esi,%ebx
2827	xorl	%ebp,%edi
2828	vpaddd	%xmm2,%xmm11,%xmm9
2829	shrdl	$7,%edx,%edx
2830	addl	%ecx,%ebx
2831	vpxor	%xmm8,%xmm3,%xmm3
2832	addl	52(%rsp),%eax
2833	xorl	%edx,%edi
2834	movl	%ebx,%esi
2835	shldl	$5,%ebx,%ebx
2836	vpsrld	$30,%xmm3,%xmm8
2837	vmovdqa	%xmm9,32(%rsp)
2838	addl	%edi,%eax
2839	xorl	%edx,%esi
2840	shrdl	$7,%ecx,%ecx
2841	addl	%ebx,%eax
2842	vpslld	$2,%xmm3,%xmm3
2843	addl	56(%rsp),%ebp
2844	xorl	%ecx,%esi
2845	movl	%eax,%edi
2846	shldl	$5,%eax,%eax
2847	addl	%esi,%ebp
2848	xorl	%ecx,%edi
2849	shrdl	$7,%ebx,%ebx
2850	addl	%eax,%ebp
2851	vpor	%xmm8,%xmm3,%xmm3
2852	addl	60(%rsp),%edx
2853	xorl	%ebx,%edi
2854	movl	%ebp,%esi
2855	shldl	$5,%ebp,%ebp
2856	addl	%edi,%edx
2857	xorl	%ebx,%esi
2858	shrdl	$7,%eax,%eax
2859	addl	%ebp,%edx
2860	vpalignr	$8,%xmm2,%xmm3,%xmm8
2861	vpxor	%xmm0,%xmm4,%xmm4
2862	addl	0(%rsp),%ecx
2863	xorl	%eax,%esi
2864	movl	%edx,%edi
2865	shldl	$5,%edx,%edx
2866	vpxor	%xmm5,%xmm4,%xmm4
2867	addl	%esi,%ecx
2868	xorl	%eax,%edi
2869	vpaddd	%xmm3,%xmm11,%xmm9
2870	shrdl	$7,%ebp,%ebp
2871	addl	%edx,%ecx
2872	vpxor	%xmm8,%xmm4,%xmm4
2873	addl	4(%rsp),%ebx
2874	xorl	%ebp,%edi
2875	movl	%ecx,%esi
2876	shldl	$5,%ecx,%ecx
2877	vpsrld	$30,%xmm4,%xmm8
2878	vmovdqa	%xmm9,48(%rsp)
2879	addl	%edi,%ebx
2880	xorl	%ebp,%esi
2881	shrdl	$7,%edx,%edx
2882	addl	%ecx,%ebx
2883	vpslld	$2,%xmm4,%xmm4
2884	addl	8(%rsp),%eax
2885	xorl	%edx,%esi
2886	movl	%ebx,%edi
2887	shldl	$5,%ebx,%ebx
2888	addl	%esi,%eax
2889	xorl	%edx,%edi
2890	shrdl	$7,%ecx,%ecx
2891	addl	%ebx,%eax
2892	vpor	%xmm8,%xmm4,%xmm4
2893	addl	12(%rsp),%ebp
2894	xorl	%ecx,%edi
2895	movl	%eax,%esi
2896	shldl	$5,%eax,%eax
2897	addl	%edi,%ebp
2898	xorl	%ecx,%esi
2899	shrdl	$7,%ebx,%ebx
2900	addl	%eax,%ebp
2901	vpalignr	$8,%xmm3,%xmm4,%xmm8
2902	vpxor	%xmm1,%xmm5,%xmm5
2903	addl	16(%rsp),%edx
2904	xorl	%ebx,%esi
2905	movl	%ebp,%edi
2906	shldl	$5,%ebp,%ebp
2907	vpxor	%xmm6,%xmm5,%xmm5
2908	addl	%esi,%edx
2909	xorl	%ebx,%edi
2910	vpaddd	%xmm4,%xmm11,%xmm9
2911	shrdl	$7,%eax,%eax
2912	addl	%ebp,%edx
2913	vpxor	%xmm8,%xmm5,%xmm5
2914	addl	20(%rsp),%ecx
2915	xorl	%eax,%edi
2916	movl	%edx,%esi
2917	shldl	$5,%edx,%edx
2918	vpsrld	$30,%xmm5,%xmm8
2919	vmovdqa	%xmm9,0(%rsp)
2920	addl	%edi,%ecx
2921	xorl	%eax,%esi
2922	shrdl	$7,%ebp,%ebp
2923	addl	%edx,%ecx
2924	vpslld	$2,%xmm5,%xmm5
2925	addl	24(%rsp),%ebx
2926	xorl	%ebp,%esi
2927	movl	%ecx,%edi
2928	shldl	$5,%ecx,%ecx
2929	addl	%esi,%ebx
2930	xorl	%ebp,%edi
2931	shrdl	$7,%edx,%edx
2932	addl	%ecx,%ebx
2933	vpor	%xmm8,%xmm5,%xmm5
2934	addl	28(%rsp),%eax
2935	shrdl	$7,%ecx,%ecx
2936	movl	%ebx,%esi
2937	xorl	%edx,%edi
2938	shldl	$5,%ebx,%ebx
2939	addl	%edi,%eax
2940	xorl	%ecx,%esi
2941	xorl	%edx,%ecx
2942	addl	%ebx,%eax
2943	vpalignr	$8,%xmm4,%xmm5,%xmm8
2944	vpxor	%xmm2,%xmm6,%xmm6
2945	addl	32(%rsp),%ebp
2946	andl	%ecx,%esi
2947	xorl	%edx,%ecx
2948	shrdl	$7,%ebx,%ebx
2949	vpxor	%xmm7,%xmm6,%xmm6
2950	movl	%eax,%edi
2951	xorl	%ecx,%esi
2952	vpaddd	%xmm5,%xmm11,%xmm9
2953	shldl	$5,%eax,%eax
2954	addl	%esi,%ebp
2955	vpxor	%xmm8,%xmm6,%xmm6
2956	xorl	%ebx,%edi
2957	xorl	%ecx,%ebx
2958	addl	%eax,%ebp
2959	addl	36(%rsp),%edx
2960	vpsrld	$30,%xmm6,%xmm8
2961	vmovdqa	%xmm9,16(%rsp)
2962	andl	%ebx,%edi
2963	xorl	%ecx,%ebx
2964	shrdl	$7,%eax,%eax
2965	movl	%ebp,%esi
2966	vpslld	$2,%xmm6,%xmm6
2967	xorl	%ebx,%edi
2968	shldl	$5,%ebp,%ebp
2969	addl	%edi,%edx
2970	xorl	%eax,%esi
2971	xorl	%ebx,%eax
2972	addl	%ebp,%edx
2973	addl	40(%rsp),%ecx
2974	andl	%eax,%esi
2975	vpor	%xmm8,%xmm6,%xmm6
2976	xorl	%ebx,%eax
2977	shrdl	$7,%ebp,%ebp
2978	movl	%edx,%edi
2979	xorl	%eax,%esi
2980	shldl	$5,%edx,%edx
2981	addl	%esi,%ecx
2982	xorl	%ebp,%edi
2983	xorl	%eax,%ebp
2984	addl	%edx,%ecx
2985	addl	44(%rsp),%ebx
2986	andl	%ebp,%edi
2987	xorl	%eax,%ebp
2988	shrdl	$7,%edx,%edx
2989	movl	%ecx,%esi
2990	xorl	%ebp,%edi
2991	shldl	$5,%ecx,%ecx
2992	addl	%edi,%ebx
2993	xorl	%edx,%esi
2994	xorl	%ebp,%edx
2995	addl	%ecx,%ebx
2996	vpalignr	$8,%xmm5,%xmm6,%xmm8
2997	vpxor	%xmm3,%xmm7,%xmm7
2998	addl	48(%rsp),%eax
2999	andl	%edx,%esi
3000	xorl	%ebp,%edx
3001	shrdl	$7,%ecx,%ecx
3002	vpxor	%xmm0,%xmm7,%xmm7
3003	movl	%ebx,%edi
3004	xorl	%edx,%esi
3005	vpaddd	%xmm6,%xmm11,%xmm9
3006	vmovdqa	32(%r11),%xmm11
3007	shldl	$5,%ebx,%ebx
3008	addl	%esi,%eax
3009	vpxor	%xmm8,%xmm7,%xmm7
3010	xorl	%ecx,%edi
3011	xorl	%edx,%ecx
3012	addl	%ebx,%eax
3013	addl	52(%rsp),%ebp
3014	vpsrld	$30,%xmm7,%xmm8
3015	vmovdqa	%xmm9,32(%rsp)
3016	andl	%ecx,%edi
3017	xorl	%edx,%ecx
3018	shrdl	$7,%ebx,%ebx
3019	movl	%eax,%esi
3020	vpslld	$2,%xmm7,%xmm7
3021	xorl	%ecx,%edi
3022	shldl	$5,%eax,%eax
3023	addl	%edi,%ebp
3024	xorl	%ebx,%esi
3025	xorl	%ecx,%ebx
3026	addl	%eax,%ebp
3027	addl	56(%rsp),%edx
3028	andl	%ebx,%esi
3029	vpor	%xmm8,%xmm7,%xmm7
3030	xorl	%ecx,%ebx
3031	shrdl	$7,%eax,%eax
3032	movl	%ebp,%edi
3033	xorl	%ebx,%esi
3034	shldl	$5,%ebp,%ebp
3035	addl	%esi,%edx
3036	xorl	%eax,%edi
3037	xorl	%ebx,%eax
3038	addl	%ebp,%edx
3039	addl	60(%rsp),%ecx
3040	andl	%eax,%edi
3041	xorl	%ebx,%eax
3042	shrdl	$7,%ebp,%ebp
3043	movl	%edx,%esi
3044	xorl	%eax,%edi
3045	shldl	$5,%edx,%edx
3046	addl	%edi,%ecx
3047	xorl	%ebp,%esi
3048	xorl	%eax,%ebp
3049	addl	%edx,%ecx
3050	vpalignr	$8,%xmm6,%xmm7,%xmm8
3051	vpxor	%xmm4,%xmm0,%xmm0
3052	addl	0(%rsp),%ebx
3053	andl	%ebp,%esi
3054	xorl	%eax,%ebp
3055	shrdl	$7,%edx,%edx
3056	vpxor	%xmm1,%xmm0,%xmm0
3057	movl	%ecx,%edi
3058	xorl	%ebp,%esi
3059	vpaddd	%xmm7,%xmm11,%xmm9
3060	shldl	$5,%ecx,%ecx
3061	addl	%esi,%ebx
3062	vpxor	%xmm8,%xmm0,%xmm0
3063	xorl	%edx,%edi
3064	xorl	%ebp,%edx
3065	addl	%ecx,%ebx
3066	addl	4(%rsp),%eax
3067	vpsrld	$30,%xmm0,%xmm8
3068	vmovdqa	%xmm9,48(%rsp)
3069	andl	%edx,%edi
3070	xorl	%ebp,%edx
3071	shrdl	$7,%ecx,%ecx
3072	movl	%ebx,%esi
3073	vpslld	$2,%xmm0,%xmm0
3074	xorl	%edx,%edi
3075	shldl	$5,%ebx,%ebx
3076	addl	%edi,%eax
3077	xorl	%ecx,%esi
3078	xorl	%edx,%ecx
3079	addl	%ebx,%eax
3080	addl	8(%rsp),%ebp
3081	andl	%ecx,%esi
3082	vpor	%xmm8,%xmm0,%xmm0
3083	xorl	%edx,%ecx
3084	shrdl	$7,%ebx,%ebx
3085	movl	%eax,%edi
3086	xorl	%ecx,%esi
3087	shldl	$5,%eax,%eax
3088	addl	%esi,%ebp
3089	xorl	%ebx,%edi
3090	xorl	%ecx,%ebx
3091	addl	%eax,%ebp
3092	addl	12(%rsp),%edx
3093	andl	%ebx,%edi
3094	xorl	%ecx,%ebx
3095	shrdl	$7,%eax,%eax
3096	movl	%ebp,%esi
3097	xorl	%ebx,%edi
3098	shldl	$5,%ebp,%ebp
3099	addl	%edi,%edx
3100	xorl	%eax,%esi
3101	xorl	%ebx,%eax
3102	addl	%ebp,%edx
3103	vpalignr	$8,%xmm7,%xmm0,%xmm8
3104	vpxor	%xmm5,%xmm1,%xmm1
3105	addl	16(%rsp),%ecx
3106	andl	%eax,%esi
3107	xorl	%ebx,%eax
3108	shrdl	$7,%ebp,%ebp
3109	vpxor	%xmm2,%xmm1,%xmm1
3110	movl	%edx,%edi
3111	xorl	%eax,%esi
3112	vpaddd	%xmm0,%xmm11,%xmm9
3113	shldl	$5,%edx,%edx
3114	addl	%esi,%ecx
3115	vpxor	%xmm8,%xmm1,%xmm1
3116	xorl	%ebp,%edi
3117	xorl	%eax,%ebp
3118	addl	%edx,%ecx
3119	addl	20(%rsp),%ebx
3120	vpsrld	$30,%xmm1,%xmm8
3121	vmovdqa	%xmm9,0(%rsp)
3122	andl	%ebp,%edi
3123	xorl	%eax,%ebp
3124	shrdl	$7,%edx,%edx
3125	movl	%ecx,%esi
3126	vpslld	$2,%xmm1,%xmm1
3127	xorl	%ebp,%edi
3128	shldl	$5,%ecx,%ecx
3129	addl	%edi,%ebx
3130	xorl	%edx,%esi
3131	xorl	%ebp,%edx
3132	addl	%ecx,%ebx
3133	addl	24(%rsp),%eax
3134	andl	%edx,%esi
3135	vpor	%xmm8,%xmm1,%xmm1
3136	xorl	%ebp,%edx
3137	shrdl	$7,%ecx,%ecx
3138	movl	%ebx,%edi
3139	xorl	%edx,%esi
3140	shldl	$5,%ebx,%ebx
3141	addl	%esi,%eax
3142	xorl	%ecx,%edi
3143	xorl	%edx,%ecx
3144	addl	%ebx,%eax
3145	addl	28(%rsp),%ebp
3146	andl	%ecx,%edi
3147	xorl	%edx,%ecx
3148	shrdl	$7,%ebx,%ebx
3149	movl	%eax,%esi
3150	xorl	%ecx,%edi
3151	shldl	$5,%eax,%eax
3152	addl	%edi,%ebp
3153	xorl	%ebx,%esi
3154	xorl	%ecx,%ebx
3155	addl	%eax,%ebp
3156	vpalignr	$8,%xmm0,%xmm1,%xmm8
3157	vpxor	%xmm6,%xmm2,%xmm2
3158	addl	32(%rsp),%edx
3159	andl	%ebx,%esi
3160	xorl	%ecx,%ebx
3161	shrdl	$7,%eax,%eax
3162	vpxor	%xmm3,%xmm2,%xmm2
3163	movl	%ebp,%edi
3164	xorl	%ebx,%esi
3165	vpaddd	%xmm1,%xmm11,%xmm9
3166	shldl	$5,%ebp,%ebp
3167	addl	%esi,%edx
3168	vpxor	%xmm8,%xmm2,%xmm2
3169	xorl	%eax,%edi
3170	xorl	%ebx,%eax
3171	addl	%ebp,%edx
3172	addl	36(%rsp),%ecx
3173	vpsrld	$30,%xmm2,%xmm8
3174	vmovdqa	%xmm9,16(%rsp)
3175	andl	%eax,%edi
3176	xorl	%ebx,%eax
3177	shrdl	$7,%ebp,%ebp
3178	movl	%edx,%esi
3179	vpslld	$2,%xmm2,%xmm2
3180	xorl	%eax,%edi
3181	shldl	$5,%edx,%edx
3182	addl	%edi,%ecx
3183	xorl	%ebp,%esi
3184	xorl	%eax,%ebp
3185	addl	%edx,%ecx
3186	addl	40(%rsp),%ebx
3187	andl	%ebp,%esi
3188	vpor	%xmm8,%xmm2,%xmm2
3189	xorl	%eax,%ebp
3190	shrdl	$7,%edx,%edx
3191	movl	%ecx,%edi
3192	xorl	%ebp,%esi
3193	shldl	$5,%ecx,%ecx
3194	addl	%esi,%ebx
3195	xorl	%edx,%edi
3196	xorl	%ebp,%edx
3197	addl	%ecx,%ebx
3198	addl	44(%rsp),%eax
3199	andl	%edx,%edi
3200	xorl	%ebp,%edx
3201	shrdl	$7,%ecx,%ecx
3202	movl	%ebx,%esi
3203	xorl	%edx,%edi
3204	shldl	$5,%ebx,%ebx
3205	addl	%edi,%eax
3206	xorl	%edx,%esi
3207	addl	%ebx,%eax
3208	vpalignr	$8,%xmm1,%xmm2,%xmm8
3209	vpxor	%xmm7,%xmm3,%xmm3
3210	addl	48(%rsp),%ebp
3211	xorl	%ecx,%esi
3212	movl	%eax,%edi
3213	shldl	$5,%eax,%eax
3214	vpxor	%xmm4,%xmm3,%xmm3
3215	addl	%esi,%ebp
3216	xorl	%ecx,%edi
3217	vpaddd	%xmm2,%xmm11,%xmm9
3218	shrdl	$7,%ebx,%ebx
3219	addl	%eax,%ebp
3220	vpxor	%xmm8,%xmm3,%xmm3
3221	addl	52(%rsp),%edx
3222	xorl	%ebx,%edi
3223	movl	%ebp,%esi
3224	shldl	$5,%ebp,%ebp
3225	vpsrld	$30,%xmm3,%xmm8
3226	vmovdqa	%xmm9,32(%rsp)
3227	addl	%edi,%edx
3228	xorl	%ebx,%esi
3229	shrdl	$7,%eax,%eax
3230	addl	%ebp,%edx
3231	vpslld	$2,%xmm3,%xmm3
3232	addl	56(%rsp),%ecx
3233	xorl	%eax,%esi
3234	movl	%edx,%edi
3235	shldl	$5,%edx,%edx
3236	addl	%esi,%ecx
3237	xorl	%eax,%edi
3238	shrdl	$7,%ebp,%ebp
3239	addl	%edx,%ecx
3240	vpor	%xmm8,%xmm3,%xmm3
3241	addl	60(%rsp),%ebx
3242	xorl	%ebp,%edi
3243	movl	%ecx,%esi
3244	shldl	$5,%ecx,%ecx
3245	addl	%edi,%ebx
3246	xorl	%ebp,%esi
3247	shrdl	$7,%edx,%edx
3248	addl	%ecx,%ebx
3249	addl	0(%rsp),%eax
3250	vpaddd	%xmm3,%xmm11,%xmm9
3251	xorl	%edx,%esi
3252	movl	%ebx,%edi
3253	shldl	$5,%ebx,%ebx
3254	addl	%esi,%eax
3255	vmovdqa	%xmm9,48(%rsp)
3256	xorl	%edx,%edi
3257	shrdl	$7,%ecx,%ecx
3258	addl	%ebx,%eax
3259	addl	4(%rsp),%ebp
3260	xorl	%ecx,%edi
3261	movl	%eax,%esi
3262	shldl	$5,%eax,%eax
3263	addl	%edi,%ebp
3264	xorl	%ecx,%esi
3265	shrdl	$7,%ebx,%ebx
3266	addl	%eax,%ebp
3267	addl	8(%rsp),%edx
3268	xorl	%ebx,%esi
3269	movl	%ebp,%edi
3270	shldl	$5,%ebp,%ebp
3271	addl	%esi,%edx
3272	xorl	%ebx,%edi
3273	shrdl	$7,%eax,%eax
3274	addl	%ebp,%edx
3275	addl	12(%rsp),%ecx
3276	xorl	%eax,%edi
3277	movl	%edx,%esi
3278	shldl	$5,%edx,%edx
3279	addl	%edi,%ecx
3280	xorl	%eax,%esi
3281	shrdl	$7,%ebp,%ebp
3282	addl	%edx,%ecx
3283	cmpq	%r10,%r9
3284	je	.Ldone_avx
3285	vmovdqa	64(%r11),%xmm6
3286	vmovdqa	-64(%r11),%xmm11
3287	vmovdqu	0(%r9),%xmm0
3288	vmovdqu	16(%r9),%xmm1
3289	vmovdqu	32(%r9),%xmm2
3290	vmovdqu	48(%r9),%xmm3
3291	vpshufb	%xmm6,%xmm0,%xmm0
3292	addq	$64,%r9
3293	addl	16(%rsp),%ebx
3294	xorl	%ebp,%esi
3295	vpshufb	%xmm6,%xmm1,%xmm1
3296	movl	%ecx,%edi
3297	shldl	$5,%ecx,%ecx
3298	vpaddd	%xmm11,%xmm0,%xmm4
3299	addl	%esi,%ebx
3300	xorl	%ebp,%edi
3301	shrdl	$7,%edx,%edx
3302	addl	%ecx,%ebx
3303	vmovdqa	%xmm4,0(%rsp)
3304	addl	20(%rsp),%eax
3305	xorl	%edx,%edi
3306	movl	%ebx,%esi
3307	shldl	$5,%ebx,%ebx
3308	addl	%edi,%eax
3309	xorl	%edx,%esi
3310	shrdl	$7,%ecx,%ecx
3311	addl	%ebx,%eax
3312	addl	24(%rsp),%ebp
3313	xorl	%ecx,%esi
3314	movl	%eax,%edi
3315	shldl	$5,%eax,%eax
3316	addl	%esi,%ebp
3317	xorl	%ecx,%edi
3318	shrdl	$7,%ebx,%ebx
3319	addl	%eax,%ebp
3320	addl	28(%rsp),%edx
3321	xorl	%ebx,%edi
3322	movl	%ebp,%esi
3323	shldl	$5,%ebp,%ebp
3324	addl	%edi,%edx
3325	xorl	%ebx,%esi
3326	shrdl	$7,%eax,%eax
3327	addl	%ebp,%edx
3328	addl	32(%rsp),%ecx
3329	xorl	%eax,%esi
3330	vpshufb	%xmm6,%xmm2,%xmm2
3331	movl	%edx,%edi
3332	shldl	$5,%edx,%edx
3333	vpaddd	%xmm11,%xmm1,%xmm5
3334	addl	%esi,%ecx
3335	xorl	%eax,%edi
3336	shrdl	$7,%ebp,%ebp
3337	addl	%edx,%ecx
3338	vmovdqa	%xmm5,16(%rsp)
3339	addl	36(%rsp),%ebx
3340	xorl	%ebp,%edi
3341	movl	%ecx,%esi
3342	shldl	$5,%ecx,%ecx
3343	addl	%edi,%ebx
3344	xorl	%ebp,%esi
3345	shrdl	$7,%edx,%edx
3346	addl	%ecx,%ebx
3347	addl	40(%rsp),%eax
3348	xorl	%edx,%esi
3349	movl	%ebx,%edi
3350	shldl	$5,%ebx,%ebx
3351	addl	%esi,%eax
3352	xorl	%edx,%edi
3353	shrdl	$7,%ecx,%ecx
3354	addl	%ebx,%eax
3355	addl	44(%rsp),%ebp
3356	xorl	%ecx,%edi
3357	movl	%eax,%esi
3358	shldl	$5,%eax,%eax
3359	addl	%edi,%ebp
3360	xorl	%ecx,%esi
3361	shrdl	$7,%ebx,%ebx
3362	addl	%eax,%ebp
3363	addl	48(%rsp),%edx
3364	xorl	%ebx,%esi
3365	vpshufb	%xmm6,%xmm3,%xmm3
3366	movl	%ebp,%edi
3367	shldl	$5,%ebp,%ebp
3368	vpaddd	%xmm11,%xmm2,%xmm6
3369	addl	%esi,%edx
3370	xorl	%ebx,%edi
3371	shrdl	$7,%eax,%eax
3372	addl	%ebp,%edx
3373	vmovdqa	%xmm6,32(%rsp)
3374	addl	52(%rsp),%ecx
3375	xorl	%eax,%edi
3376	movl	%edx,%esi
3377	shldl	$5,%edx,%edx
3378	addl	%edi,%ecx
3379	xorl	%eax,%esi
3380	shrdl	$7,%ebp,%ebp
3381	addl	%edx,%ecx
3382	addl	56(%rsp),%ebx
3383	xorl	%ebp,%esi
3384	movl	%ecx,%edi
3385	shldl	$5,%ecx,%ecx
3386	addl	%esi,%ebx
3387	xorl	%ebp,%edi
3388	shrdl	$7,%edx,%edx
3389	addl	%ecx,%ebx
3390	addl	60(%rsp),%eax
3391	xorl	%edx,%edi
3392	movl	%ebx,%esi
3393	shldl	$5,%ebx,%ebx
3394	addl	%edi,%eax
3395	shrdl	$7,%ecx,%ecx
3396	addl	%ebx,%eax
3397	addl	0(%r8),%eax
3398	addl	4(%r8),%esi
3399	addl	8(%r8),%ecx
3400	addl	12(%r8),%edx
3401	movl	%eax,0(%r8)
3402	addl	16(%r8),%ebp
3403	movl	%esi,4(%r8)
3404	movl	%esi,%ebx
3405	movl	%ecx,8(%r8)
3406	movl	%ecx,%edi
3407	movl	%edx,12(%r8)
3408	xorl	%edx,%edi
3409	movl	%ebp,16(%r8)
3410	andl	%edi,%esi
3411	jmp	.Loop_avx
3412
3413.align	16
3414.Ldone_avx:
3415	addl	16(%rsp),%ebx
3416	xorl	%ebp,%esi
3417	movl	%ecx,%edi
3418	shldl	$5,%ecx,%ecx
3419	addl	%esi,%ebx
3420	xorl	%ebp,%edi
3421	shrdl	$7,%edx,%edx
3422	addl	%ecx,%ebx
3423	addl	20(%rsp),%eax
3424	xorl	%edx,%edi
3425	movl	%ebx,%esi
3426	shldl	$5,%ebx,%ebx
3427	addl	%edi,%eax
3428	xorl	%edx,%esi
3429	shrdl	$7,%ecx,%ecx
3430	addl	%ebx,%eax
3431	addl	24(%rsp),%ebp
3432	xorl	%ecx,%esi
3433	movl	%eax,%edi
3434	shldl	$5,%eax,%eax
3435	addl	%esi,%ebp
3436	xorl	%ecx,%edi
3437	shrdl	$7,%ebx,%ebx
3438	addl	%eax,%ebp
3439	addl	28(%rsp),%edx
3440	xorl	%ebx,%edi
3441	movl	%ebp,%esi
3442	shldl	$5,%ebp,%ebp
3443	addl	%edi,%edx
3444	xorl	%ebx,%esi
3445	shrdl	$7,%eax,%eax
3446	addl	%ebp,%edx
3447	addl	32(%rsp),%ecx
3448	xorl	%eax,%esi
3449	movl	%edx,%edi
3450	shldl	$5,%edx,%edx
3451	addl	%esi,%ecx
3452	xorl	%eax,%edi
3453	shrdl	$7,%ebp,%ebp
3454	addl	%edx,%ecx
3455	addl	36(%rsp),%ebx
3456	xorl	%ebp,%edi
3457	movl	%ecx,%esi
3458	shldl	$5,%ecx,%ecx
3459	addl	%edi,%ebx
3460	xorl	%ebp,%esi
3461	shrdl	$7,%edx,%edx
3462	addl	%ecx,%ebx
3463	addl	40(%rsp),%eax
3464	xorl	%edx,%esi
3465	movl	%ebx,%edi
3466	shldl	$5,%ebx,%ebx
3467	addl	%esi,%eax
3468	xorl	%edx,%edi
3469	shrdl	$7,%ecx,%ecx
3470	addl	%ebx,%eax
3471	addl	44(%rsp),%ebp
3472	xorl	%ecx,%edi
3473	movl	%eax,%esi
3474	shldl	$5,%eax,%eax
3475	addl	%edi,%ebp
3476	xorl	%ecx,%esi
3477	shrdl	$7,%ebx,%ebx
3478	addl	%eax,%ebp
3479	addl	48(%rsp),%edx
3480	xorl	%ebx,%esi
3481	movl	%ebp,%edi
3482	shldl	$5,%ebp,%ebp
3483	addl	%esi,%edx
3484	xorl	%ebx,%edi
3485	shrdl	$7,%eax,%eax
3486	addl	%ebp,%edx
3487	addl	52(%rsp),%ecx
3488	xorl	%eax,%edi
3489	movl	%edx,%esi
3490	shldl	$5,%edx,%edx
3491	addl	%edi,%ecx
3492	xorl	%eax,%esi
3493	shrdl	$7,%ebp,%ebp
3494	addl	%edx,%ecx
3495	addl	56(%rsp),%ebx
3496	xorl	%ebp,%esi
3497	movl	%ecx,%edi
3498	shldl	$5,%ecx,%ecx
3499	addl	%esi,%ebx
3500	xorl	%ebp,%edi
3501	shrdl	$7,%edx,%edx
3502	addl	%ecx,%ebx
3503	addl	60(%rsp),%eax
3504	xorl	%edx,%edi
3505	movl	%ebx,%esi
3506	shldl	$5,%ebx,%ebx
3507	addl	%edi,%eax
3508	shrdl	$7,%ecx,%ecx
3509	addl	%ebx,%eax
3510	vzeroupper
3511
3512	addl	0(%r8),%eax
3513	addl	4(%r8),%esi
3514	addl	8(%r8),%ecx
3515	movl	%eax,0(%r8)
3516	addl	12(%r8),%edx
3517	movl	%esi,4(%r8)
3518	addl	16(%r8),%ebp
3519	movl	%ecx,8(%r8)
3520	movl	%edx,12(%r8)
3521	movl	%ebp,16(%r8)
3522	leaq	(%r14),%rsi
3523	movq	-40(%rsi),%r14
3524	movq	-32(%rsi),%r13
3525	movq	-24(%rsi),%r12
3526	movq	-16(%rsi),%rbp
3527	movq	-8(%rsi),%rbx
3528	leaq	(%rsi),%rsp
3529.Lepilogue_avx:
3530	.byte	0xf3,0xc3
3531.size	sha1_block_data_order_avx,.-sha1_block_data_order_avx
3532.align	64
3533K_XX_XX:
3534.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999
3535.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999
3536.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
3537.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
3538.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
3539.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
3540.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
3541.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
3542.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
3543.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
3544.byte	0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
3545.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
3546.align	64
3547#endif
3548