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