sha1-x86_64.S revision 306195
1/* $FreeBSD: stable/11/secure/lib/libcrypto/amd64/sha1-x86_64.S 306195 2016-09-22 14:57:48Z 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	movl	OPENSSL_ia32cap_P+8(%rip),%r10d
13	testl	$512,%r8d
14	jz	.Lialu
15	testl	$536870912,%r10d
16	jnz	_shaext_shortcut
17	andl	$296,%r10d
18	cmpl	$296,%r10d
19	je	_avx2_shortcut
20	andl	$268435456,%r8d
21	andl	$1073741824,%r9d
22	orl	%r9d,%r8d
23	cmpl	$1342177280,%r8d
24	je	_avx_shortcut
25	jmp	_ssse3_shortcut
26
27.align	16
28.Lialu:
29	movq	%rsp,%rax
30	pushq	%rbx
31	pushq	%rbp
32	pushq	%r12
33	pushq	%r13
34	pushq	%r14
35	movq	%rdi,%r8
36	subq	$72,%rsp
37	movq	%rsi,%r9
38	andq	$-64,%rsp
39	movq	%rdx,%r10
40	movq	%rax,64(%rsp)
41.Lprologue:
42
43	movl	0(%r8),%esi
44	movl	4(%r8),%edi
45	movl	8(%r8),%r11d
46	movl	12(%r8),%r12d
47	movl	16(%r8),%r13d
48	jmp	.Lloop
49
50.align	16
51.Lloop:
52	movl	0(%r9),%edx
53	bswapl	%edx
54	movl	4(%r9),%ebp
55	movl	%r12d,%eax
56	movl	%edx,0(%rsp)
57	movl	%esi,%ecx
58	bswapl	%ebp
59	xorl	%r11d,%eax
60	roll	$5,%ecx
61	andl	%edi,%eax
62	leal	1518500249(%rdx,%r13,1),%r13d
63	addl	%ecx,%r13d
64	xorl	%r12d,%eax
65	roll	$30,%edi
66	addl	%eax,%r13d
67	movl	8(%r9),%r14d
68	movl	%r11d,%eax
69	movl	%ebp,4(%rsp)
70	movl	%r13d,%ecx
71	bswapl	%r14d
72	xorl	%edi,%eax
73	roll	$5,%ecx
74	andl	%esi,%eax
75	leal	1518500249(%rbp,%r12,1),%r12d
76	addl	%ecx,%r12d
77	xorl	%r11d,%eax
78	roll	$30,%esi
79	addl	%eax,%r12d
80	movl	12(%r9),%edx
81	movl	%edi,%eax
82	movl	%r14d,8(%rsp)
83	movl	%r12d,%ecx
84	bswapl	%edx
85	xorl	%esi,%eax
86	roll	$5,%ecx
87	andl	%r13d,%eax
88	leal	1518500249(%r14,%r11,1),%r11d
89	addl	%ecx,%r11d
90	xorl	%edi,%eax
91	roll	$30,%r13d
92	addl	%eax,%r11d
93	movl	16(%r9),%ebp
94	movl	%esi,%eax
95	movl	%edx,12(%rsp)
96	movl	%r11d,%ecx
97	bswapl	%ebp
98	xorl	%r13d,%eax
99	roll	$5,%ecx
100	andl	%r12d,%eax
101	leal	1518500249(%rdx,%rdi,1),%edi
102	addl	%ecx,%edi
103	xorl	%esi,%eax
104	roll	$30,%r12d
105	addl	%eax,%edi
106	movl	20(%r9),%r14d
107	movl	%r13d,%eax
108	movl	%ebp,16(%rsp)
109	movl	%edi,%ecx
110	bswapl	%r14d
111	xorl	%r12d,%eax
112	roll	$5,%ecx
113	andl	%r11d,%eax
114	leal	1518500249(%rbp,%rsi,1),%esi
115	addl	%ecx,%esi
116	xorl	%r13d,%eax
117	roll	$30,%r11d
118	addl	%eax,%esi
119	movl	24(%r9),%edx
120	movl	%r12d,%eax
121	movl	%r14d,20(%rsp)
122	movl	%esi,%ecx
123	bswapl	%edx
124	xorl	%r11d,%eax
125	roll	$5,%ecx
126	andl	%edi,%eax
127	leal	1518500249(%r14,%r13,1),%r13d
128	addl	%ecx,%r13d
129	xorl	%r12d,%eax
130	roll	$30,%edi
131	addl	%eax,%r13d
132	movl	28(%r9),%ebp
133	movl	%r11d,%eax
134	movl	%edx,24(%rsp)
135	movl	%r13d,%ecx
136	bswapl	%ebp
137	xorl	%edi,%eax
138	roll	$5,%ecx
139	andl	%esi,%eax
140	leal	1518500249(%rdx,%r12,1),%r12d
141	addl	%ecx,%r12d
142	xorl	%r11d,%eax
143	roll	$30,%esi
144	addl	%eax,%r12d
145	movl	32(%r9),%r14d
146	movl	%edi,%eax
147	movl	%ebp,28(%rsp)
148	movl	%r12d,%ecx
149	bswapl	%r14d
150	xorl	%esi,%eax
151	roll	$5,%ecx
152	andl	%r13d,%eax
153	leal	1518500249(%rbp,%r11,1),%r11d
154	addl	%ecx,%r11d
155	xorl	%edi,%eax
156	roll	$30,%r13d
157	addl	%eax,%r11d
158	movl	36(%r9),%edx
159	movl	%esi,%eax
160	movl	%r14d,32(%rsp)
161	movl	%r11d,%ecx
162	bswapl	%edx
163	xorl	%r13d,%eax
164	roll	$5,%ecx
165	andl	%r12d,%eax
166	leal	1518500249(%r14,%rdi,1),%edi
167	addl	%ecx,%edi
168	xorl	%esi,%eax
169	roll	$30,%r12d
170	addl	%eax,%edi
171	movl	40(%r9),%ebp
172	movl	%r13d,%eax
173	movl	%edx,36(%rsp)
174	movl	%edi,%ecx
175	bswapl	%ebp
176	xorl	%r12d,%eax
177	roll	$5,%ecx
178	andl	%r11d,%eax
179	leal	1518500249(%rdx,%rsi,1),%esi
180	addl	%ecx,%esi
181	xorl	%r13d,%eax
182	roll	$30,%r11d
183	addl	%eax,%esi
184	movl	44(%r9),%r14d
185	movl	%r12d,%eax
186	movl	%ebp,40(%rsp)
187	movl	%esi,%ecx
188	bswapl	%r14d
189	xorl	%r11d,%eax
190	roll	$5,%ecx
191	andl	%edi,%eax
192	leal	1518500249(%rbp,%r13,1),%r13d
193	addl	%ecx,%r13d
194	xorl	%r12d,%eax
195	roll	$30,%edi
196	addl	%eax,%r13d
197	movl	48(%r9),%edx
198	movl	%r11d,%eax
199	movl	%r14d,44(%rsp)
200	movl	%r13d,%ecx
201	bswapl	%edx
202	xorl	%edi,%eax
203	roll	$5,%ecx
204	andl	%esi,%eax
205	leal	1518500249(%r14,%r12,1),%r12d
206	addl	%ecx,%r12d
207	xorl	%r11d,%eax
208	roll	$30,%esi
209	addl	%eax,%r12d
210	movl	52(%r9),%ebp
211	movl	%edi,%eax
212	movl	%edx,48(%rsp)
213	movl	%r12d,%ecx
214	bswapl	%ebp
215	xorl	%esi,%eax
216	roll	$5,%ecx
217	andl	%r13d,%eax
218	leal	1518500249(%rdx,%r11,1),%r11d
219	addl	%ecx,%r11d
220	xorl	%edi,%eax
221	roll	$30,%r13d
222	addl	%eax,%r11d
223	movl	56(%r9),%r14d
224	movl	%esi,%eax
225	movl	%ebp,52(%rsp)
226	movl	%r11d,%ecx
227	bswapl	%r14d
228	xorl	%r13d,%eax
229	roll	$5,%ecx
230	andl	%r12d,%eax
231	leal	1518500249(%rbp,%rdi,1),%edi
232	addl	%ecx,%edi
233	xorl	%esi,%eax
234	roll	$30,%r12d
235	addl	%eax,%edi
236	movl	60(%r9),%edx
237	movl	%r13d,%eax
238	movl	%r14d,56(%rsp)
239	movl	%edi,%ecx
240	bswapl	%edx
241	xorl	%r12d,%eax
242	roll	$5,%ecx
243	andl	%r11d,%eax
244	leal	1518500249(%r14,%rsi,1),%esi
245	addl	%ecx,%esi
246	xorl	%r13d,%eax
247	roll	$30,%r11d
248	addl	%eax,%esi
249	xorl	0(%rsp),%ebp
250	movl	%r12d,%eax
251	movl	%edx,60(%rsp)
252	movl	%esi,%ecx
253	xorl	8(%rsp),%ebp
254	xorl	%r11d,%eax
255	roll	$5,%ecx
256	xorl	32(%rsp),%ebp
257	andl	%edi,%eax
258	leal	1518500249(%rdx,%r13,1),%r13d
259	roll	$30,%edi
260	xorl	%r12d,%eax
261	addl	%ecx,%r13d
262	roll	$1,%ebp
263	addl	%eax,%r13d
264	xorl	4(%rsp),%r14d
265	movl	%r11d,%eax
266	movl	%ebp,0(%rsp)
267	movl	%r13d,%ecx
268	xorl	12(%rsp),%r14d
269	xorl	%edi,%eax
270	roll	$5,%ecx
271	xorl	36(%rsp),%r14d
272	andl	%esi,%eax
273	leal	1518500249(%rbp,%r12,1),%r12d
274	roll	$30,%esi
275	xorl	%r11d,%eax
276	addl	%ecx,%r12d
277	roll	$1,%r14d
278	addl	%eax,%r12d
279	xorl	8(%rsp),%edx
280	movl	%edi,%eax
281	movl	%r14d,4(%rsp)
282	movl	%r12d,%ecx
283	xorl	16(%rsp),%edx
284	xorl	%esi,%eax
285	roll	$5,%ecx
286	xorl	40(%rsp),%edx
287	andl	%r13d,%eax
288	leal	1518500249(%r14,%r11,1),%r11d
289	roll	$30,%r13d
290	xorl	%edi,%eax
291	addl	%ecx,%r11d
292	roll	$1,%edx
293	addl	%eax,%r11d
294	xorl	12(%rsp),%ebp
295	movl	%esi,%eax
296	movl	%edx,8(%rsp)
297	movl	%r11d,%ecx
298	xorl	20(%rsp),%ebp
299	xorl	%r13d,%eax
300	roll	$5,%ecx
301	xorl	44(%rsp),%ebp
302	andl	%r12d,%eax
303	leal	1518500249(%rdx,%rdi,1),%edi
304	roll	$30,%r12d
305	xorl	%esi,%eax
306	addl	%ecx,%edi
307	roll	$1,%ebp
308	addl	%eax,%edi
309	xorl	16(%rsp),%r14d
310	movl	%r13d,%eax
311	movl	%ebp,12(%rsp)
312	movl	%edi,%ecx
313	xorl	24(%rsp),%r14d
314	xorl	%r12d,%eax
315	roll	$5,%ecx
316	xorl	48(%rsp),%r14d
317	andl	%r11d,%eax
318	leal	1518500249(%rbp,%rsi,1),%esi
319	roll	$30,%r11d
320	xorl	%r13d,%eax
321	addl	%ecx,%esi
322	roll	$1,%r14d
323	addl	%eax,%esi
324	xorl	20(%rsp),%edx
325	movl	%edi,%eax
326	movl	%r14d,16(%rsp)
327	movl	%esi,%ecx
328	xorl	28(%rsp),%edx
329	xorl	%r12d,%eax
330	roll	$5,%ecx
331	xorl	52(%rsp),%edx
332	leal	1859775393(%r14,%r13,1),%r13d
333	xorl	%r11d,%eax
334	addl	%ecx,%r13d
335	roll	$30,%edi
336	addl	%eax,%r13d
337	roll	$1,%edx
338	xorl	24(%rsp),%ebp
339	movl	%esi,%eax
340	movl	%edx,20(%rsp)
341	movl	%r13d,%ecx
342	xorl	32(%rsp),%ebp
343	xorl	%r11d,%eax
344	roll	$5,%ecx
345	xorl	56(%rsp),%ebp
346	leal	1859775393(%rdx,%r12,1),%r12d
347	xorl	%edi,%eax
348	addl	%ecx,%r12d
349	roll	$30,%esi
350	addl	%eax,%r12d
351	roll	$1,%ebp
352	xorl	28(%rsp),%r14d
353	movl	%r13d,%eax
354	movl	%ebp,24(%rsp)
355	movl	%r12d,%ecx
356	xorl	36(%rsp),%r14d
357	xorl	%edi,%eax
358	roll	$5,%ecx
359	xorl	60(%rsp),%r14d
360	leal	1859775393(%rbp,%r11,1),%r11d
361	xorl	%esi,%eax
362	addl	%ecx,%r11d
363	roll	$30,%r13d
364	addl	%eax,%r11d
365	roll	$1,%r14d
366	xorl	32(%rsp),%edx
367	movl	%r12d,%eax
368	movl	%r14d,28(%rsp)
369	movl	%r11d,%ecx
370	xorl	40(%rsp),%edx
371	xorl	%esi,%eax
372	roll	$5,%ecx
373	xorl	0(%rsp),%edx
374	leal	1859775393(%r14,%rdi,1),%edi
375	xorl	%r13d,%eax
376	addl	%ecx,%edi
377	roll	$30,%r12d
378	addl	%eax,%edi
379	roll	$1,%edx
380	xorl	36(%rsp),%ebp
381	movl	%r11d,%eax
382	movl	%edx,32(%rsp)
383	movl	%edi,%ecx
384	xorl	44(%rsp),%ebp
385	xorl	%r13d,%eax
386	roll	$5,%ecx
387	xorl	4(%rsp),%ebp
388	leal	1859775393(%rdx,%rsi,1),%esi
389	xorl	%r12d,%eax
390	addl	%ecx,%esi
391	roll	$30,%r11d
392	addl	%eax,%esi
393	roll	$1,%ebp
394	xorl	40(%rsp),%r14d
395	movl	%edi,%eax
396	movl	%ebp,36(%rsp)
397	movl	%esi,%ecx
398	xorl	48(%rsp),%r14d
399	xorl	%r12d,%eax
400	roll	$5,%ecx
401	xorl	8(%rsp),%r14d
402	leal	1859775393(%rbp,%r13,1),%r13d
403	xorl	%r11d,%eax
404	addl	%ecx,%r13d
405	roll	$30,%edi
406	addl	%eax,%r13d
407	roll	$1,%r14d
408	xorl	44(%rsp),%edx
409	movl	%esi,%eax
410	movl	%r14d,40(%rsp)
411	movl	%r13d,%ecx
412	xorl	52(%rsp),%edx
413	xorl	%r11d,%eax
414	roll	$5,%ecx
415	xorl	12(%rsp),%edx
416	leal	1859775393(%r14,%r12,1),%r12d
417	xorl	%edi,%eax
418	addl	%ecx,%r12d
419	roll	$30,%esi
420	addl	%eax,%r12d
421	roll	$1,%edx
422	xorl	48(%rsp),%ebp
423	movl	%r13d,%eax
424	movl	%edx,44(%rsp)
425	movl	%r12d,%ecx
426	xorl	56(%rsp),%ebp
427	xorl	%edi,%eax
428	roll	$5,%ecx
429	xorl	16(%rsp),%ebp
430	leal	1859775393(%rdx,%r11,1),%r11d
431	xorl	%esi,%eax
432	addl	%ecx,%r11d
433	roll	$30,%r13d
434	addl	%eax,%r11d
435	roll	$1,%ebp
436	xorl	52(%rsp),%r14d
437	movl	%r12d,%eax
438	movl	%ebp,48(%rsp)
439	movl	%r11d,%ecx
440	xorl	60(%rsp),%r14d
441	xorl	%esi,%eax
442	roll	$5,%ecx
443	xorl	20(%rsp),%r14d
444	leal	1859775393(%rbp,%rdi,1),%edi
445	xorl	%r13d,%eax
446	addl	%ecx,%edi
447	roll	$30,%r12d
448	addl	%eax,%edi
449	roll	$1,%r14d
450	xorl	56(%rsp),%edx
451	movl	%r11d,%eax
452	movl	%r14d,52(%rsp)
453	movl	%edi,%ecx
454	xorl	0(%rsp),%edx
455	xorl	%r13d,%eax
456	roll	$5,%ecx
457	xorl	24(%rsp),%edx
458	leal	1859775393(%r14,%rsi,1),%esi
459	xorl	%r12d,%eax
460	addl	%ecx,%esi
461	roll	$30,%r11d
462	addl	%eax,%esi
463	roll	$1,%edx
464	xorl	60(%rsp),%ebp
465	movl	%edi,%eax
466	movl	%edx,56(%rsp)
467	movl	%esi,%ecx
468	xorl	4(%rsp),%ebp
469	xorl	%r12d,%eax
470	roll	$5,%ecx
471	xorl	28(%rsp),%ebp
472	leal	1859775393(%rdx,%r13,1),%r13d
473	xorl	%r11d,%eax
474	addl	%ecx,%r13d
475	roll	$30,%edi
476	addl	%eax,%r13d
477	roll	$1,%ebp
478	xorl	0(%rsp),%r14d
479	movl	%esi,%eax
480	movl	%ebp,60(%rsp)
481	movl	%r13d,%ecx
482	xorl	8(%rsp),%r14d
483	xorl	%r11d,%eax
484	roll	$5,%ecx
485	xorl	32(%rsp),%r14d
486	leal	1859775393(%rbp,%r12,1),%r12d
487	xorl	%edi,%eax
488	addl	%ecx,%r12d
489	roll	$30,%esi
490	addl	%eax,%r12d
491	roll	$1,%r14d
492	xorl	4(%rsp),%edx
493	movl	%r13d,%eax
494	movl	%r14d,0(%rsp)
495	movl	%r12d,%ecx
496	xorl	12(%rsp),%edx
497	xorl	%edi,%eax
498	roll	$5,%ecx
499	xorl	36(%rsp),%edx
500	leal	1859775393(%r14,%r11,1),%r11d
501	xorl	%esi,%eax
502	addl	%ecx,%r11d
503	roll	$30,%r13d
504	addl	%eax,%r11d
505	roll	$1,%edx
506	xorl	8(%rsp),%ebp
507	movl	%r12d,%eax
508	movl	%edx,4(%rsp)
509	movl	%r11d,%ecx
510	xorl	16(%rsp),%ebp
511	xorl	%esi,%eax
512	roll	$5,%ecx
513	xorl	40(%rsp),%ebp
514	leal	1859775393(%rdx,%rdi,1),%edi
515	xorl	%r13d,%eax
516	addl	%ecx,%edi
517	roll	$30,%r12d
518	addl	%eax,%edi
519	roll	$1,%ebp
520	xorl	12(%rsp),%r14d
521	movl	%r11d,%eax
522	movl	%ebp,8(%rsp)
523	movl	%edi,%ecx
524	xorl	20(%rsp),%r14d
525	xorl	%r13d,%eax
526	roll	$5,%ecx
527	xorl	44(%rsp),%r14d
528	leal	1859775393(%rbp,%rsi,1),%esi
529	xorl	%r12d,%eax
530	addl	%ecx,%esi
531	roll	$30,%r11d
532	addl	%eax,%esi
533	roll	$1,%r14d
534	xorl	16(%rsp),%edx
535	movl	%edi,%eax
536	movl	%r14d,12(%rsp)
537	movl	%esi,%ecx
538	xorl	24(%rsp),%edx
539	xorl	%r12d,%eax
540	roll	$5,%ecx
541	xorl	48(%rsp),%edx
542	leal	1859775393(%r14,%r13,1),%r13d
543	xorl	%r11d,%eax
544	addl	%ecx,%r13d
545	roll	$30,%edi
546	addl	%eax,%r13d
547	roll	$1,%edx
548	xorl	20(%rsp),%ebp
549	movl	%esi,%eax
550	movl	%edx,16(%rsp)
551	movl	%r13d,%ecx
552	xorl	28(%rsp),%ebp
553	xorl	%r11d,%eax
554	roll	$5,%ecx
555	xorl	52(%rsp),%ebp
556	leal	1859775393(%rdx,%r12,1),%r12d
557	xorl	%edi,%eax
558	addl	%ecx,%r12d
559	roll	$30,%esi
560	addl	%eax,%r12d
561	roll	$1,%ebp
562	xorl	24(%rsp),%r14d
563	movl	%r13d,%eax
564	movl	%ebp,20(%rsp)
565	movl	%r12d,%ecx
566	xorl	32(%rsp),%r14d
567	xorl	%edi,%eax
568	roll	$5,%ecx
569	xorl	56(%rsp),%r14d
570	leal	1859775393(%rbp,%r11,1),%r11d
571	xorl	%esi,%eax
572	addl	%ecx,%r11d
573	roll	$30,%r13d
574	addl	%eax,%r11d
575	roll	$1,%r14d
576	xorl	28(%rsp),%edx
577	movl	%r12d,%eax
578	movl	%r14d,24(%rsp)
579	movl	%r11d,%ecx
580	xorl	36(%rsp),%edx
581	xorl	%esi,%eax
582	roll	$5,%ecx
583	xorl	60(%rsp),%edx
584	leal	1859775393(%r14,%rdi,1),%edi
585	xorl	%r13d,%eax
586	addl	%ecx,%edi
587	roll	$30,%r12d
588	addl	%eax,%edi
589	roll	$1,%edx
590	xorl	32(%rsp),%ebp
591	movl	%r11d,%eax
592	movl	%edx,28(%rsp)
593	movl	%edi,%ecx
594	xorl	40(%rsp),%ebp
595	xorl	%r13d,%eax
596	roll	$5,%ecx
597	xorl	0(%rsp),%ebp
598	leal	1859775393(%rdx,%rsi,1),%esi
599	xorl	%r12d,%eax
600	addl	%ecx,%esi
601	roll	$30,%r11d
602	addl	%eax,%esi
603	roll	$1,%ebp
604	xorl	36(%rsp),%r14d
605	movl	%r12d,%eax
606	movl	%ebp,32(%rsp)
607	movl	%r12d,%ebx
608	xorl	44(%rsp),%r14d
609	andl	%r11d,%eax
610	movl	%esi,%ecx
611	xorl	4(%rsp),%r14d
612	leal	-1894007588(%rbp,%r13,1),%r13d
613	xorl	%r11d,%ebx
614	roll	$5,%ecx
615	addl	%eax,%r13d
616	roll	$1,%r14d
617	andl	%edi,%ebx
618	addl	%ecx,%r13d
619	roll	$30,%edi
620	addl	%ebx,%r13d
621	xorl	40(%rsp),%edx
622	movl	%r11d,%eax
623	movl	%r14d,36(%rsp)
624	movl	%r11d,%ebx
625	xorl	48(%rsp),%edx
626	andl	%edi,%eax
627	movl	%r13d,%ecx
628	xorl	8(%rsp),%edx
629	leal	-1894007588(%r14,%r12,1),%r12d
630	xorl	%edi,%ebx
631	roll	$5,%ecx
632	addl	%eax,%r12d
633	roll	$1,%edx
634	andl	%esi,%ebx
635	addl	%ecx,%r12d
636	roll	$30,%esi
637	addl	%ebx,%r12d
638	xorl	44(%rsp),%ebp
639	movl	%edi,%eax
640	movl	%edx,40(%rsp)
641	movl	%edi,%ebx
642	xorl	52(%rsp),%ebp
643	andl	%esi,%eax
644	movl	%r12d,%ecx
645	xorl	12(%rsp),%ebp
646	leal	-1894007588(%rdx,%r11,1),%r11d
647	xorl	%esi,%ebx
648	roll	$5,%ecx
649	addl	%eax,%r11d
650	roll	$1,%ebp
651	andl	%r13d,%ebx
652	addl	%ecx,%r11d
653	roll	$30,%r13d
654	addl	%ebx,%r11d
655	xorl	48(%rsp),%r14d
656	movl	%esi,%eax
657	movl	%ebp,44(%rsp)
658	movl	%esi,%ebx
659	xorl	56(%rsp),%r14d
660	andl	%r13d,%eax
661	movl	%r11d,%ecx
662	xorl	16(%rsp),%r14d
663	leal	-1894007588(%rbp,%rdi,1),%edi
664	xorl	%r13d,%ebx
665	roll	$5,%ecx
666	addl	%eax,%edi
667	roll	$1,%r14d
668	andl	%r12d,%ebx
669	addl	%ecx,%edi
670	roll	$30,%r12d
671	addl	%ebx,%edi
672	xorl	52(%rsp),%edx
673	movl	%r13d,%eax
674	movl	%r14d,48(%rsp)
675	movl	%r13d,%ebx
676	xorl	60(%rsp),%edx
677	andl	%r12d,%eax
678	movl	%edi,%ecx
679	xorl	20(%rsp),%edx
680	leal	-1894007588(%r14,%rsi,1),%esi
681	xorl	%r12d,%ebx
682	roll	$5,%ecx
683	addl	%eax,%esi
684	roll	$1,%edx
685	andl	%r11d,%ebx
686	addl	%ecx,%esi
687	roll	$30,%r11d
688	addl	%ebx,%esi
689	xorl	56(%rsp),%ebp
690	movl	%r12d,%eax
691	movl	%edx,52(%rsp)
692	movl	%r12d,%ebx
693	xorl	0(%rsp),%ebp
694	andl	%r11d,%eax
695	movl	%esi,%ecx
696	xorl	24(%rsp),%ebp
697	leal	-1894007588(%rdx,%r13,1),%r13d
698	xorl	%r11d,%ebx
699	roll	$5,%ecx
700	addl	%eax,%r13d
701	roll	$1,%ebp
702	andl	%edi,%ebx
703	addl	%ecx,%r13d
704	roll	$30,%edi
705	addl	%ebx,%r13d
706	xorl	60(%rsp),%r14d
707	movl	%r11d,%eax
708	movl	%ebp,56(%rsp)
709	movl	%r11d,%ebx
710	xorl	4(%rsp),%r14d
711	andl	%edi,%eax
712	movl	%r13d,%ecx
713	xorl	28(%rsp),%r14d
714	leal	-1894007588(%rbp,%r12,1),%r12d
715	xorl	%edi,%ebx
716	roll	$5,%ecx
717	addl	%eax,%r12d
718	roll	$1,%r14d
719	andl	%esi,%ebx
720	addl	%ecx,%r12d
721	roll	$30,%esi
722	addl	%ebx,%r12d
723	xorl	0(%rsp),%edx
724	movl	%edi,%eax
725	movl	%r14d,60(%rsp)
726	movl	%edi,%ebx
727	xorl	8(%rsp),%edx
728	andl	%esi,%eax
729	movl	%r12d,%ecx
730	xorl	32(%rsp),%edx
731	leal	-1894007588(%r14,%r11,1),%r11d
732	xorl	%esi,%ebx
733	roll	$5,%ecx
734	addl	%eax,%r11d
735	roll	$1,%edx
736	andl	%r13d,%ebx
737	addl	%ecx,%r11d
738	roll	$30,%r13d
739	addl	%ebx,%r11d
740	xorl	4(%rsp),%ebp
741	movl	%esi,%eax
742	movl	%edx,0(%rsp)
743	movl	%esi,%ebx
744	xorl	12(%rsp),%ebp
745	andl	%r13d,%eax
746	movl	%r11d,%ecx
747	xorl	36(%rsp),%ebp
748	leal	-1894007588(%rdx,%rdi,1),%edi
749	xorl	%r13d,%ebx
750	roll	$5,%ecx
751	addl	%eax,%edi
752	roll	$1,%ebp
753	andl	%r12d,%ebx
754	addl	%ecx,%edi
755	roll	$30,%r12d
756	addl	%ebx,%edi
757	xorl	8(%rsp),%r14d
758	movl	%r13d,%eax
759	movl	%ebp,4(%rsp)
760	movl	%r13d,%ebx
761	xorl	16(%rsp),%r14d
762	andl	%r12d,%eax
763	movl	%edi,%ecx
764	xorl	40(%rsp),%r14d
765	leal	-1894007588(%rbp,%rsi,1),%esi
766	xorl	%r12d,%ebx
767	roll	$5,%ecx
768	addl	%eax,%esi
769	roll	$1,%r14d
770	andl	%r11d,%ebx
771	addl	%ecx,%esi
772	roll	$30,%r11d
773	addl	%ebx,%esi
774	xorl	12(%rsp),%edx
775	movl	%r12d,%eax
776	movl	%r14d,8(%rsp)
777	movl	%r12d,%ebx
778	xorl	20(%rsp),%edx
779	andl	%r11d,%eax
780	movl	%esi,%ecx
781	xorl	44(%rsp),%edx
782	leal	-1894007588(%r14,%r13,1),%r13d
783	xorl	%r11d,%ebx
784	roll	$5,%ecx
785	addl	%eax,%r13d
786	roll	$1,%edx
787	andl	%edi,%ebx
788	addl	%ecx,%r13d
789	roll	$30,%edi
790	addl	%ebx,%r13d
791	xorl	16(%rsp),%ebp
792	movl	%r11d,%eax
793	movl	%edx,12(%rsp)
794	movl	%r11d,%ebx
795	xorl	24(%rsp),%ebp
796	andl	%edi,%eax
797	movl	%r13d,%ecx
798	xorl	48(%rsp),%ebp
799	leal	-1894007588(%rdx,%r12,1),%r12d
800	xorl	%edi,%ebx
801	roll	$5,%ecx
802	addl	%eax,%r12d
803	roll	$1,%ebp
804	andl	%esi,%ebx
805	addl	%ecx,%r12d
806	roll	$30,%esi
807	addl	%ebx,%r12d
808	xorl	20(%rsp),%r14d
809	movl	%edi,%eax
810	movl	%ebp,16(%rsp)
811	movl	%edi,%ebx
812	xorl	28(%rsp),%r14d
813	andl	%esi,%eax
814	movl	%r12d,%ecx
815	xorl	52(%rsp),%r14d
816	leal	-1894007588(%rbp,%r11,1),%r11d
817	xorl	%esi,%ebx
818	roll	$5,%ecx
819	addl	%eax,%r11d
820	roll	$1,%r14d
821	andl	%r13d,%ebx
822	addl	%ecx,%r11d
823	roll	$30,%r13d
824	addl	%ebx,%r11d
825	xorl	24(%rsp),%edx
826	movl	%esi,%eax
827	movl	%r14d,20(%rsp)
828	movl	%esi,%ebx
829	xorl	32(%rsp),%edx
830	andl	%r13d,%eax
831	movl	%r11d,%ecx
832	xorl	56(%rsp),%edx
833	leal	-1894007588(%r14,%rdi,1),%edi
834	xorl	%r13d,%ebx
835	roll	$5,%ecx
836	addl	%eax,%edi
837	roll	$1,%edx
838	andl	%r12d,%ebx
839	addl	%ecx,%edi
840	roll	$30,%r12d
841	addl	%ebx,%edi
842	xorl	28(%rsp),%ebp
843	movl	%r13d,%eax
844	movl	%edx,24(%rsp)
845	movl	%r13d,%ebx
846	xorl	36(%rsp),%ebp
847	andl	%r12d,%eax
848	movl	%edi,%ecx
849	xorl	60(%rsp),%ebp
850	leal	-1894007588(%rdx,%rsi,1),%esi
851	xorl	%r12d,%ebx
852	roll	$5,%ecx
853	addl	%eax,%esi
854	roll	$1,%ebp
855	andl	%r11d,%ebx
856	addl	%ecx,%esi
857	roll	$30,%r11d
858	addl	%ebx,%esi
859	xorl	32(%rsp),%r14d
860	movl	%r12d,%eax
861	movl	%ebp,28(%rsp)
862	movl	%r12d,%ebx
863	xorl	40(%rsp),%r14d
864	andl	%r11d,%eax
865	movl	%esi,%ecx
866	xorl	0(%rsp),%r14d
867	leal	-1894007588(%rbp,%r13,1),%r13d
868	xorl	%r11d,%ebx
869	roll	$5,%ecx
870	addl	%eax,%r13d
871	roll	$1,%r14d
872	andl	%edi,%ebx
873	addl	%ecx,%r13d
874	roll	$30,%edi
875	addl	%ebx,%r13d
876	xorl	36(%rsp),%edx
877	movl	%r11d,%eax
878	movl	%r14d,32(%rsp)
879	movl	%r11d,%ebx
880	xorl	44(%rsp),%edx
881	andl	%edi,%eax
882	movl	%r13d,%ecx
883	xorl	4(%rsp),%edx
884	leal	-1894007588(%r14,%r12,1),%r12d
885	xorl	%edi,%ebx
886	roll	$5,%ecx
887	addl	%eax,%r12d
888	roll	$1,%edx
889	andl	%esi,%ebx
890	addl	%ecx,%r12d
891	roll	$30,%esi
892	addl	%ebx,%r12d
893	xorl	40(%rsp),%ebp
894	movl	%edi,%eax
895	movl	%edx,36(%rsp)
896	movl	%edi,%ebx
897	xorl	48(%rsp),%ebp
898	andl	%esi,%eax
899	movl	%r12d,%ecx
900	xorl	8(%rsp),%ebp
901	leal	-1894007588(%rdx,%r11,1),%r11d
902	xorl	%esi,%ebx
903	roll	$5,%ecx
904	addl	%eax,%r11d
905	roll	$1,%ebp
906	andl	%r13d,%ebx
907	addl	%ecx,%r11d
908	roll	$30,%r13d
909	addl	%ebx,%r11d
910	xorl	44(%rsp),%r14d
911	movl	%esi,%eax
912	movl	%ebp,40(%rsp)
913	movl	%esi,%ebx
914	xorl	52(%rsp),%r14d
915	andl	%r13d,%eax
916	movl	%r11d,%ecx
917	xorl	12(%rsp),%r14d
918	leal	-1894007588(%rbp,%rdi,1),%edi
919	xorl	%r13d,%ebx
920	roll	$5,%ecx
921	addl	%eax,%edi
922	roll	$1,%r14d
923	andl	%r12d,%ebx
924	addl	%ecx,%edi
925	roll	$30,%r12d
926	addl	%ebx,%edi
927	xorl	48(%rsp),%edx
928	movl	%r13d,%eax
929	movl	%r14d,44(%rsp)
930	movl	%r13d,%ebx
931	xorl	56(%rsp),%edx
932	andl	%r12d,%eax
933	movl	%edi,%ecx
934	xorl	16(%rsp),%edx
935	leal	-1894007588(%r14,%rsi,1),%esi
936	xorl	%r12d,%ebx
937	roll	$5,%ecx
938	addl	%eax,%esi
939	roll	$1,%edx
940	andl	%r11d,%ebx
941	addl	%ecx,%esi
942	roll	$30,%r11d
943	addl	%ebx,%esi
944	xorl	52(%rsp),%ebp
945	movl	%edi,%eax
946	movl	%edx,48(%rsp)
947	movl	%esi,%ecx
948	xorl	60(%rsp),%ebp
949	xorl	%r12d,%eax
950	roll	$5,%ecx
951	xorl	20(%rsp),%ebp
952	leal	-899497514(%rdx,%r13,1),%r13d
953	xorl	%r11d,%eax
954	addl	%ecx,%r13d
955	roll	$30,%edi
956	addl	%eax,%r13d
957	roll	$1,%ebp
958	xorl	56(%rsp),%r14d
959	movl	%esi,%eax
960	movl	%ebp,52(%rsp)
961	movl	%r13d,%ecx
962	xorl	0(%rsp),%r14d
963	xorl	%r11d,%eax
964	roll	$5,%ecx
965	xorl	24(%rsp),%r14d
966	leal	-899497514(%rbp,%r12,1),%r12d
967	xorl	%edi,%eax
968	addl	%ecx,%r12d
969	roll	$30,%esi
970	addl	%eax,%r12d
971	roll	$1,%r14d
972	xorl	60(%rsp),%edx
973	movl	%r13d,%eax
974	movl	%r14d,56(%rsp)
975	movl	%r12d,%ecx
976	xorl	4(%rsp),%edx
977	xorl	%edi,%eax
978	roll	$5,%ecx
979	xorl	28(%rsp),%edx
980	leal	-899497514(%r14,%r11,1),%r11d
981	xorl	%esi,%eax
982	addl	%ecx,%r11d
983	roll	$30,%r13d
984	addl	%eax,%r11d
985	roll	$1,%edx
986	xorl	0(%rsp),%ebp
987	movl	%r12d,%eax
988	movl	%edx,60(%rsp)
989	movl	%r11d,%ecx
990	xorl	8(%rsp),%ebp
991	xorl	%esi,%eax
992	roll	$5,%ecx
993	xorl	32(%rsp),%ebp
994	leal	-899497514(%rdx,%rdi,1),%edi
995	xorl	%r13d,%eax
996	addl	%ecx,%edi
997	roll	$30,%r12d
998	addl	%eax,%edi
999	roll	$1,%ebp
1000	xorl	4(%rsp),%r14d
1001	movl	%r11d,%eax
1002	movl	%ebp,0(%rsp)
1003	movl	%edi,%ecx
1004	xorl	12(%rsp),%r14d
1005	xorl	%r13d,%eax
1006	roll	$5,%ecx
1007	xorl	36(%rsp),%r14d
1008	leal	-899497514(%rbp,%rsi,1),%esi
1009	xorl	%r12d,%eax
1010	addl	%ecx,%esi
1011	roll	$30,%r11d
1012	addl	%eax,%esi
1013	roll	$1,%r14d
1014	xorl	8(%rsp),%edx
1015	movl	%edi,%eax
1016	movl	%r14d,4(%rsp)
1017	movl	%esi,%ecx
1018	xorl	16(%rsp),%edx
1019	xorl	%r12d,%eax
1020	roll	$5,%ecx
1021	xorl	40(%rsp),%edx
1022	leal	-899497514(%r14,%r13,1),%r13d
1023	xorl	%r11d,%eax
1024	addl	%ecx,%r13d
1025	roll	$30,%edi
1026	addl	%eax,%r13d
1027	roll	$1,%edx
1028	xorl	12(%rsp),%ebp
1029	movl	%esi,%eax
1030	movl	%edx,8(%rsp)
1031	movl	%r13d,%ecx
1032	xorl	20(%rsp),%ebp
1033	xorl	%r11d,%eax
1034	roll	$5,%ecx
1035	xorl	44(%rsp),%ebp
1036	leal	-899497514(%rdx,%r12,1),%r12d
1037	xorl	%edi,%eax
1038	addl	%ecx,%r12d
1039	roll	$30,%esi
1040	addl	%eax,%r12d
1041	roll	$1,%ebp
1042	xorl	16(%rsp),%r14d
1043	movl	%r13d,%eax
1044	movl	%ebp,12(%rsp)
1045	movl	%r12d,%ecx
1046	xorl	24(%rsp),%r14d
1047	xorl	%edi,%eax
1048	roll	$5,%ecx
1049	xorl	48(%rsp),%r14d
1050	leal	-899497514(%rbp,%r11,1),%r11d
1051	xorl	%esi,%eax
1052	addl	%ecx,%r11d
1053	roll	$30,%r13d
1054	addl	%eax,%r11d
1055	roll	$1,%r14d
1056	xorl	20(%rsp),%edx
1057	movl	%r12d,%eax
1058	movl	%r14d,16(%rsp)
1059	movl	%r11d,%ecx
1060	xorl	28(%rsp),%edx
1061	xorl	%esi,%eax
1062	roll	$5,%ecx
1063	xorl	52(%rsp),%edx
1064	leal	-899497514(%r14,%rdi,1),%edi
1065	xorl	%r13d,%eax
1066	addl	%ecx,%edi
1067	roll	$30,%r12d
1068	addl	%eax,%edi
1069	roll	$1,%edx
1070	xorl	24(%rsp),%ebp
1071	movl	%r11d,%eax
1072	movl	%edx,20(%rsp)
1073	movl	%edi,%ecx
1074	xorl	32(%rsp),%ebp
1075	xorl	%r13d,%eax
1076	roll	$5,%ecx
1077	xorl	56(%rsp),%ebp
1078	leal	-899497514(%rdx,%rsi,1),%esi
1079	xorl	%r12d,%eax
1080	addl	%ecx,%esi
1081	roll	$30,%r11d
1082	addl	%eax,%esi
1083	roll	$1,%ebp
1084	xorl	28(%rsp),%r14d
1085	movl	%edi,%eax
1086	movl	%ebp,24(%rsp)
1087	movl	%esi,%ecx
1088	xorl	36(%rsp),%r14d
1089	xorl	%r12d,%eax
1090	roll	$5,%ecx
1091	xorl	60(%rsp),%r14d
1092	leal	-899497514(%rbp,%r13,1),%r13d
1093	xorl	%r11d,%eax
1094	addl	%ecx,%r13d
1095	roll	$30,%edi
1096	addl	%eax,%r13d
1097	roll	$1,%r14d
1098	xorl	32(%rsp),%edx
1099	movl	%esi,%eax
1100	movl	%r14d,28(%rsp)
1101	movl	%r13d,%ecx
1102	xorl	40(%rsp),%edx
1103	xorl	%r11d,%eax
1104	roll	$5,%ecx
1105	xorl	0(%rsp),%edx
1106	leal	-899497514(%r14,%r12,1),%r12d
1107	xorl	%edi,%eax
1108	addl	%ecx,%r12d
1109	roll	$30,%esi
1110	addl	%eax,%r12d
1111	roll	$1,%edx
1112	xorl	36(%rsp),%ebp
1113	movl	%r13d,%eax
1114
1115	movl	%r12d,%ecx
1116	xorl	44(%rsp),%ebp
1117	xorl	%edi,%eax
1118	roll	$5,%ecx
1119	xorl	4(%rsp),%ebp
1120	leal	-899497514(%rdx,%r11,1),%r11d
1121	xorl	%esi,%eax
1122	addl	%ecx,%r11d
1123	roll	$30,%r13d
1124	addl	%eax,%r11d
1125	roll	$1,%ebp
1126	xorl	40(%rsp),%r14d
1127	movl	%r12d,%eax
1128
1129	movl	%r11d,%ecx
1130	xorl	48(%rsp),%r14d
1131	xorl	%esi,%eax
1132	roll	$5,%ecx
1133	xorl	8(%rsp),%r14d
1134	leal	-899497514(%rbp,%rdi,1),%edi
1135	xorl	%r13d,%eax
1136	addl	%ecx,%edi
1137	roll	$30,%r12d
1138	addl	%eax,%edi
1139	roll	$1,%r14d
1140	xorl	44(%rsp),%edx
1141	movl	%r11d,%eax
1142
1143	movl	%edi,%ecx
1144	xorl	52(%rsp),%edx
1145	xorl	%r13d,%eax
1146	roll	$5,%ecx
1147	xorl	12(%rsp),%edx
1148	leal	-899497514(%r14,%rsi,1),%esi
1149	xorl	%r12d,%eax
1150	addl	%ecx,%esi
1151	roll	$30,%r11d
1152	addl	%eax,%esi
1153	roll	$1,%edx
1154	xorl	48(%rsp),%ebp
1155	movl	%edi,%eax
1156
1157	movl	%esi,%ecx
1158	xorl	56(%rsp),%ebp
1159	xorl	%r12d,%eax
1160	roll	$5,%ecx
1161	xorl	16(%rsp),%ebp
1162	leal	-899497514(%rdx,%r13,1),%r13d
1163	xorl	%r11d,%eax
1164	addl	%ecx,%r13d
1165	roll	$30,%edi
1166	addl	%eax,%r13d
1167	roll	$1,%ebp
1168	xorl	52(%rsp),%r14d
1169	movl	%esi,%eax
1170
1171	movl	%r13d,%ecx
1172	xorl	60(%rsp),%r14d
1173	xorl	%r11d,%eax
1174	roll	$5,%ecx
1175	xorl	20(%rsp),%r14d
1176	leal	-899497514(%rbp,%r12,1),%r12d
1177	xorl	%edi,%eax
1178	addl	%ecx,%r12d
1179	roll	$30,%esi
1180	addl	%eax,%r12d
1181	roll	$1,%r14d
1182	xorl	56(%rsp),%edx
1183	movl	%r13d,%eax
1184
1185	movl	%r12d,%ecx
1186	xorl	0(%rsp),%edx
1187	xorl	%edi,%eax
1188	roll	$5,%ecx
1189	xorl	24(%rsp),%edx
1190	leal	-899497514(%r14,%r11,1),%r11d
1191	xorl	%esi,%eax
1192	addl	%ecx,%r11d
1193	roll	$30,%r13d
1194	addl	%eax,%r11d
1195	roll	$1,%edx
1196	xorl	60(%rsp),%ebp
1197	movl	%r12d,%eax
1198
1199	movl	%r11d,%ecx
1200	xorl	4(%rsp),%ebp
1201	xorl	%esi,%eax
1202	roll	$5,%ecx
1203	xorl	28(%rsp),%ebp
1204	leal	-899497514(%rdx,%rdi,1),%edi
1205	xorl	%r13d,%eax
1206	addl	%ecx,%edi
1207	roll	$30,%r12d
1208	addl	%eax,%edi
1209	roll	$1,%ebp
1210	movl	%r11d,%eax
1211	movl	%edi,%ecx
1212	xorl	%r13d,%eax
1213	leal	-899497514(%rbp,%rsi,1),%esi
1214	roll	$5,%ecx
1215	xorl	%r12d,%eax
1216	addl	%ecx,%esi
1217	roll	$30,%r11d
1218	addl	%eax,%esi
1219	addl	0(%r8),%esi
1220	addl	4(%r8),%edi
1221	addl	8(%r8),%r11d
1222	addl	12(%r8),%r12d
1223	addl	16(%r8),%r13d
1224	movl	%esi,0(%r8)
1225	movl	%edi,4(%r8)
1226	movl	%r11d,8(%r8)
1227	movl	%r12d,12(%r8)
1228	movl	%r13d,16(%r8)
1229
1230	subq	$1,%r10
1231	leaq	64(%r9),%r9
1232	jnz	.Lloop
1233
1234	movq	64(%rsp),%rsi
1235	movq	-40(%rsi),%r14
1236	movq	-32(%rsi),%r13
1237	movq	-24(%rsi),%r12
1238	movq	-16(%rsi),%rbp
1239	movq	-8(%rsi),%rbx
1240	leaq	(%rsi),%rsp
1241.Lepilogue:
1242	.byte	0xf3,0xc3
1243.size	sha1_block_data_order,.-sha1_block_data_order
1244.type	sha1_block_data_order_shaext,@function
1245.align	32
1246sha1_block_data_order_shaext:
1247_shaext_shortcut:
1248	movdqu	(%rdi),%xmm0
1249	movd	16(%rdi),%xmm1
1250	movdqa	K_XX_XX+160(%rip),%xmm3
1251
1252	movdqu	(%rsi),%xmm4
1253	pshufd	$27,%xmm0,%xmm0
1254	movdqu	16(%rsi),%xmm5
1255	pshufd	$27,%xmm1,%xmm1
1256	movdqu	32(%rsi),%xmm6
1257.byte	102,15,56,0,227
1258	movdqu	48(%rsi),%xmm7
1259.byte	102,15,56,0,235
1260.byte	102,15,56,0,243
1261	movdqa	%xmm1,%xmm9
1262.byte	102,15,56,0,251
1263	jmp	.Loop_shaext
1264
1265.align	16
1266.Loop_shaext:
1267	decq	%rdx
1268	leaq	64(%rsi),%r8
1269	paddd	%xmm4,%xmm1
1270	cmovneq	%r8,%rsi
1271	movdqa	%xmm0,%xmm8
1272.byte	15,56,201,229
1273	movdqa	%xmm0,%xmm2
1274.byte	15,58,204,193,0
1275.byte	15,56,200,213
1276	pxor	%xmm6,%xmm4
1277.byte	15,56,201,238
1278.byte	15,56,202,231
1279
1280	movdqa	%xmm0,%xmm1
1281.byte	15,58,204,194,0
1282.byte	15,56,200,206
1283	pxor	%xmm7,%xmm5
1284.byte	15,56,202,236
1285.byte	15,56,201,247
1286	movdqa	%xmm0,%xmm2
1287.byte	15,58,204,193,0
1288.byte	15,56,200,215
1289	pxor	%xmm4,%xmm6
1290.byte	15,56,201,252
1291.byte	15,56,202,245
1292
1293	movdqa	%xmm0,%xmm1
1294.byte	15,58,204,194,0
1295.byte	15,56,200,204
1296	pxor	%xmm5,%xmm7
1297.byte	15,56,202,254
1298.byte	15,56,201,229
1299	movdqa	%xmm0,%xmm2
1300.byte	15,58,204,193,0
1301.byte	15,56,200,213
1302	pxor	%xmm6,%xmm4
1303.byte	15,56,201,238
1304.byte	15,56,202,231
1305
1306	movdqa	%xmm0,%xmm1
1307.byte	15,58,204,194,1
1308.byte	15,56,200,206
1309	pxor	%xmm7,%xmm5
1310.byte	15,56,202,236
1311.byte	15,56,201,247
1312	movdqa	%xmm0,%xmm2
1313.byte	15,58,204,193,1
1314.byte	15,56,200,215
1315	pxor	%xmm4,%xmm6
1316.byte	15,56,201,252
1317.byte	15,56,202,245
1318
1319	movdqa	%xmm0,%xmm1
1320.byte	15,58,204,194,1
1321.byte	15,56,200,204
1322	pxor	%xmm5,%xmm7
1323.byte	15,56,202,254
1324.byte	15,56,201,229
1325	movdqa	%xmm0,%xmm2
1326.byte	15,58,204,193,1
1327.byte	15,56,200,213
1328	pxor	%xmm6,%xmm4
1329.byte	15,56,201,238
1330.byte	15,56,202,231
1331
1332	movdqa	%xmm0,%xmm1
1333.byte	15,58,204,194,1
1334.byte	15,56,200,206
1335	pxor	%xmm7,%xmm5
1336.byte	15,56,202,236
1337.byte	15,56,201,247
1338	movdqa	%xmm0,%xmm2
1339.byte	15,58,204,193,2
1340.byte	15,56,200,215
1341	pxor	%xmm4,%xmm6
1342.byte	15,56,201,252
1343.byte	15,56,202,245
1344
1345	movdqa	%xmm0,%xmm1
1346.byte	15,58,204,194,2
1347.byte	15,56,200,204
1348	pxor	%xmm5,%xmm7
1349.byte	15,56,202,254
1350.byte	15,56,201,229
1351	movdqa	%xmm0,%xmm2
1352.byte	15,58,204,193,2
1353.byte	15,56,200,213
1354	pxor	%xmm6,%xmm4
1355.byte	15,56,201,238
1356.byte	15,56,202,231
1357
1358	movdqa	%xmm0,%xmm1
1359.byte	15,58,204,194,2
1360.byte	15,56,200,206
1361	pxor	%xmm7,%xmm5
1362.byte	15,56,202,236
1363.byte	15,56,201,247
1364	movdqa	%xmm0,%xmm2
1365.byte	15,58,204,193,2
1366.byte	15,56,200,215
1367	pxor	%xmm4,%xmm6
1368.byte	15,56,201,252
1369.byte	15,56,202,245
1370
1371	movdqa	%xmm0,%xmm1
1372.byte	15,58,204,194,3
1373.byte	15,56,200,204
1374	pxor	%xmm5,%xmm7
1375.byte	15,56,202,254
1376	movdqu	(%rsi),%xmm4
1377	movdqa	%xmm0,%xmm2
1378.byte	15,58,204,193,3
1379.byte	15,56,200,213
1380	movdqu	16(%rsi),%xmm5
1381.byte	102,15,56,0,227
1382
1383	movdqa	%xmm0,%xmm1
1384.byte	15,58,204,194,3
1385.byte	15,56,200,206
1386	movdqu	32(%rsi),%xmm6
1387.byte	102,15,56,0,235
1388
1389	movdqa	%xmm0,%xmm2
1390.byte	15,58,204,193,3
1391.byte	15,56,200,215
1392	movdqu	48(%rsi),%xmm7
1393.byte	102,15,56,0,243
1394
1395	movdqa	%xmm0,%xmm1
1396.byte	15,58,204,194,3
1397.byte	65,15,56,200,201
1398.byte	102,15,56,0,251
1399
1400	paddd	%xmm8,%xmm0
1401	movdqa	%xmm1,%xmm9
1402
1403	jnz	.Loop_shaext
1404
1405	pshufd	$27,%xmm0,%xmm0
1406	pshufd	$27,%xmm1,%xmm1
1407	movdqu	%xmm0,(%rdi)
1408	movd	%xmm1,16(%rdi)
1409	.byte	0xf3,0xc3
1410.size	sha1_block_data_order_shaext,.-sha1_block_data_order_shaext
1411.type	sha1_block_data_order_ssse3,@function
1412.align	16
1413sha1_block_data_order_ssse3:
1414_ssse3_shortcut:
1415	movq	%rsp,%rax
1416	pushq	%rbx
1417	pushq	%rbp
1418	pushq	%r12
1419	pushq	%r13
1420	pushq	%r14
1421	leaq	-64(%rsp),%rsp
1422	movq	%rax,%r14
1423	andq	$-64,%rsp
1424	movq	%rdi,%r8
1425	movq	%rsi,%r9
1426	movq	%rdx,%r10
1427
1428	shlq	$6,%r10
1429	addq	%r9,%r10
1430	leaq	K_XX_XX+64(%rip),%r11
1431
1432	movl	0(%r8),%eax
1433	movl	4(%r8),%ebx
1434	movl	8(%r8),%ecx
1435	movl	12(%r8),%edx
1436	movl	%ebx,%esi
1437	movl	16(%r8),%ebp
1438	movl	%ecx,%edi
1439	xorl	%edx,%edi
1440	andl	%edi,%esi
1441
1442	movdqa	64(%r11),%xmm6
1443	movdqa	-64(%r11),%xmm9
1444	movdqu	0(%r9),%xmm0
1445	movdqu	16(%r9),%xmm1
1446	movdqu	32(%r9),%xmm2
1447	movdqu	48(%r9),%xmm3
1448.byte	102,15,56,0,198
1449.byte	102,15,56,0,206
1450.byte	102,15,56,0,214
1451	addq	$64,%r9
1452	paddd	%xmm9,%xmm0
1453.byte	102,15,56,0,222
1454	paddd	%xmm9,%xmm1
1455	paddd	%xmm9,%xmm2
1456	movdqa	%xmm0,0(%rsp)
1457	psubd	%xmm9,%xmm0
1458	movdqa	%xmm1,16(%rsp)
1459	psubd	%xmm9,%xmm1
1460	movdqa	%xmm2,32(%rsp)
1461	psubd	%xmm9,%xmm2
1462	jmp	.Loop_ssse3
1463.align	16
1464.Loop_ssse3:
1465	rorl	$2,%ebx
1466	pshufd	$238,%xmm0,%xmm4
1467	xorl	%edx,%esi
1468	movdqa	%xmm3,%xmm8
1469	paddd	%xmm3,%xmm9
1470	movl	%eax,%edi
1471	addl	0(%rsp),%ebp
1472	punpcklqdq	%xmm1,%xmm4
1473	xorl	%ecx,%ebx
1474	roll	$5,%eax
1475	addl	%esi,%ebp
1476	psrldq	$4,%xmm8
1477	andl	%ebx,%edi
1478	xorl	%ecx,%ebx
1479	pxor	%xmm0,%xmm4
1480	addl	%eax,%ebp
1481	rorl	$7,%eax
1482	pxor	%xmm2,%xmm8
1483	xorl	%ecx,%edi
1484	movl	%ebp,%esi
1485	addl	4(%rsp),%edx
1486	pxor	%xmm8,%xmm4
1487	xorl	%ebx,%eax
1488	roll	$5,%ebp
1489	movdqa	%xmm9,48(%rsp)
1490	addl	%edi,%edx
1491	andl	%eax,%esi
1492	movdqa	%xmm4,%xmm10
1493	xorl	%ebx,%eax
1494	addl	%ebp,%edx
1495	rorl	$7,%ebp
1496	movdqa	%xmm4,%xmm8
1497	xorl	%ebx,%esi
1498	pslldq	$12,%xmm10
1499	paddd	%xmm4,%xmm4
1500	movl	%edx,%edi
1501	addl	8(%rsp),%ecx
1502	psrld	$31,%xmm8
1503	xorl	%eax,%ebp
1504	roll	$5,%edx
1505	addl	%esi,%ecx
1506	movdqa	%xmm10,%xmm9
1507	andl	%ebp,%edi
1508	xorl	%eax,%ebp
1509	psrld	$30,%xmm10
1510	addl	%edx,%ecx
1511	rorl	$7,%edx
1512	por	%xmm8,%xmm4
1513	xorl	%eax,%edi
1514	movl	%ecx,%esi
1515	addl	12(%rsp),%ebx
1516	pslld	$2,%xmm9
1517	pxor	%xmm10,%xmm4
1518	xorl	%ebp,%edx
1519	movdqa	-64(%r11),%xmm10
1520	roll	$5,%ecx
1521	addl	%edi,%ebx
1522	andl	%edx,%esi
1523	pxor	%xmm9,%xmm4
1524	xorl	%ebp,%edx
1525	addl	%ecx,%ebx
1526	rorl	$7,%ecx
1527	pshufd	$238,%xmm1,%xmm5
1528	xorl	%ebp,%esi
1529	movdqa	%xmm4,%xmm9
1530	paddd	%xmm4,%xmm10
1531	movl	%ebx,%edi
1532	addl	16(%rsp),%eax
1533	punpcklqdq	%xmm2,%xmm5
1534	xorl	%edx,%ecx
1535	roll	$5,%ebx
1536	addl	%esi,%eax
1537	psrldq	$4,%xmm9
1538	andl	%ecx,%edi
1539	xorl	%edx,%ecx
1540	pxor	%xmm1,%xmm5
1541	addl	%ebx,%eax
1542	rorl	$7,%ebx
1543	pxor	%xmm3,%xmm9
1544	xorl	%edx,%edi
1545	movl	%eax,%esi
1546	addl	20(%rsp),%ebp
1547	pxor	%xmm9,%xmm5
1548	xorl	%ecx,%ebx
1549	roll	$5,%eax
1550	movdqa	%xmm10,0(%rsp)
1551	addl	%edi,%ebp
1552	andl	%ebx,%esi
1553	movdqa	%xmm5,%xmm8
1554	xorl	%ecx,%ebx
1555	addl	%eax,%ebp
1556	rorl	$7,%eax
1557	movdqa	%xmm5,%xmm9
1558	xorl	%ecx,%esi
1559	pslldq	$12,%xmm8
1560	paddd	%xmm5,%xmm5
1561	movl	%ebp,%edi
1562	addl	24(%rsp),%edx
1563	psrld	$31,%xmm9
1564	xorl	%ebx,%eax
1565	roll	$5,%ebp
1566	addl	%esi,%edx
1567	movdqa	%xmm8,%xmm10
1568	andl	%eax,%edi
1569	xorl	%ebx,%eax
1570	psrld	$30,%xmm8
1571	addl	%ebp,%edx
1572	rorl	$7,%ebp
1573	por	%xmm9,%xmm5
1574	xorl	%ebx,%edi
1575	movl	%edx,%esi
1576	addl	28(%rsp),%ecx
1577	pslld	$2,%xmm10
1578	pxor	%xmm8,%xmm5
1579	xorl	%eax,%ebp
1580	movdqa	-32(%r11),%xmm8
1581	roll	$5,%edx
1582	addl	%edi,%ecx
1583	andl	%ebp,%esi
1584	pxor	%xmm10,%xmm5
1585	xorl	%eax,%ebp
1586	addl	%edx,%ecx
1587	rorl	$7,%edx
1588	pshufd	$238,%xmm2,%xmm6
1589	xorl	%eax,%esi
1590	movdqa	%xmm5,%xmm10
1591	paddd	%xmm5,%xmm8
1592	movl	%ecx,%edi
1593	addl	32(%rsp),%ebx
1594	punpcklqdq	%xmm3,%xmm6
1595	xorl	%ebp,%edx
1596	roll	$5,%ecx
1597	addl	%esi,%ebx
1598	psrldq	$4,%xmm10
1599	andl	%edx,%edi
1600	xorl	%ebp,%edx
1601	pxor	%xmm2,%xmm6
1602	addl	%ecx,%ebx
1603	rorl	$7,%ecx
1604	pxor	%xmm4,%xmm10
1605	xorl	%ebp,%edi
1606	movl	%ebx,%esi
1607	addl	36(%rsp),%eax
1608	pxor	%xmm10,%xmm6
1609	xorl	%edx,%ecx
1610	roll	$5,%ebx
1611	movdqa	%xmm8,16(%rsp)
1612	addl	%edi,%eax
1613	andl	%ecx,%esi
1614	movdqa	%xmm6,%xmm9
1615	xorl	%edx,%ecx
1616	addl	%ebx,%eax
1617	rorl	$7,%ebx
1618	movdqa	%xmm6,%xmm10
1619	xorl	%edx,%esi
1620	pslldq	$12,%xmm9
1621	paddd	%xmm6,%xmm6
1622	movl	%eax,%edi
1623	addl	40(%rsp),%ebp
1624	psrld	$31,%xmm10
1625	xorl	%ecx,%ebx
1626	roll	$5,%eax
1627	addl	%esi,%ebp
1628	movdqa	%xmm9,%xmm8
1629	andl	%ebx,%edi
1630	xorl	%ecx,%ebx
1631	psrld	$30,%xmm9
1632	addl	%eax,%ebp
1633	rorl	$7,%eax
1634	por	%xmm10,%xmm6
1635	xorl	%ecx,%edi
1636	movl	%ebp,%esi
1637	addl	44(%rsp),%edx
1638	pslld	$2,%xmm8
1639	pxor	%xmm9,%xmm6
1640	xorl	%ebx,%eax
1641	movdqa	-32(%r11),%xmm9
1642	roll	$5,%ebp
1643	addl	%edi,%edx
1644	andl	%eax,%esi
1645	pxor	%xmm8,%xmm6
1646	xorl	%ebx,%eax
1647	addl	%ebp,%edx
1648	rorl	$7,%ebp
1649	pshufd	$238,%xmm3,%xmm7
1650	xorl	%ebx,%esi
1651	movdqa	%xmm6,%xmm8
1652	paddd	%xmm6,%xmm9
1653	movl	%edx,%edi
1654	addl	48(%rsp),%ecx
1655	punpcklqdq	%xmm4,%xmm7
1656	xorl	%eax,%ebp
1657	roll	$5,%edx
1658	addl	%esi,%ecx
1659	psrldq	$4,%xmm8
1660	andl	%ebp,%edi
1661	xorl	%eax,%ebp
1662	pxor	%xmm3,%xmm7
1663	addl	%edx,%ecx
1664	rorl	$7,%edx
1665	pxor	%xmm5,%xmm8
1666	xorl	%eax,%edi
1667	movl	%ecx,%esi
1668	addl	52(%rsp),%ebx
1669	pxor	%xmm8,%xmm7
1670	xorl	%ebp,%edx
1671	roll	$5,%ecx
1672	movdqa	%xmm9,32(%rsp)
1673	addl	%edi,%ebx
1674	andl	%edx,%esi
1675	movdqa	%xmm7,%xmm10
1676	xorl	%ebp,%edx
1677	addl	%ecx,%ebx
1678	rorl	$7,%ecx
1679	movdqa	%xmm7,%xmm8
1680	xorl	%ebp,%esi
1681	pslldq	$12,%xmm10
1682	paddd	%xmm7,%xmm7
1683	movl	%ebx,%edi
1684	addl	56(%rsp),%eax
1685	psrld	$31,%xmm8
1686	xorl	%edx,%ecx
1687	roll	$5,%ebx
1688	addl	%esi,%eax
1689	movdqa	%xmm10,%xmm9
1690	andl	%ecx,%edi
1691	xorl	%edx,%ecx
1692	psrld	$30,%xmm10
1693	addl	%ebx,%eax
1694	rorl	$7,%ebx
1695	por	%xmm8,%xmm7
1696	xorl	%edx,%edi
1697	movl	%eax,%esi
1698	addl	60(%rsp),%ebp
1699	pslld	$2,%xmm9
1700	pxor	%xmm10,%xmm7
1701	xorl	%ecx,%ebx
1702	movdqa	-32(%r11),%xmm10
1703	roll	$5,%eax
1704	addl	%edi,%ebp
1705	andl	%ebx,%esi
1706	pxor	%xmm9,%xmm7
1707	pshufd	$238,%xmm6,%xmm9
1708	xorl	%ecx,%ebx
1709	addl	%eax,%ebp
1710	rorl	$7,%eax
1711	pxor	%xmm4,%xmm0
1712	xorl	%ecx,%esi
1713	movl	%ebp,%edi
1714	addl	0(%rsp),%edx
1715	punpcklqdq	%xmm7,%xmm9
1716	xorl	%ebx,%eax
1717	roll	$5,%ebp
1718	pxor	%xmm1,%xmm0
1719	addl	%esi,%edx
1720	andl	%eax,%edi
1721	movdqa	%xmm10,%xmm8
1722	xorl	%ebx,%eax
1723	paddd	%xmm7,%xmm10
1724	addl	%ebp,%edx
1725	pxor	%xmm9,%xmm0
1726	rorl	$7,%ebp
1727	xorl	%ebx,%edi
1728	movl	%edx,%esi
1729	addl	4(%rsp),%ecx
1730	movdqa	%xmm0,%xmm9
1731	xorl	%eax,%ebp
1732	roll	$5,%edx
1733	movdqa	%xmm10,48(%rsp)
1734	addl	%edi,%ecx
1735	andl	%ebp,%esi
1736	xorl	%eax,%ebp
1737	pslld	$2,%xmm0
1738	addl	%edx,%ecx
1739	rorl	$7,%edx
1740	psrld	$30,%xmm9
1741	xorl	%eax,%esi
1742	movl	%ecx,%edi
1743	addl	8(%rsp),%ebx
1744	por	%xmm9,%xmm0
1745	xorl	%ebp,%edx
1746	roll	$5,%ecx
1747	pshufd	$238,%xmm7,%xmm10
1748	addl	%esi,%ebx
1749	andl	%edx,%edi
1750	xorl	%ebp,%edx
1751	addl	%ecx,%ebx
1752	addl	12(%rsp),%eax
1753	xorl	%ebp,%edi
1754	movl	%ebx,%esi
1755	roll	$5,%ebx
1756	addl	%edi,%eax
1757	xorl	%edx,%esi
1758	rorl	$7,%ecx
1759	addl	%ebx,%eax
1760	pxor	%xmm5,%xmm1
1761	addl	16(%rsp),%ebp
1762	xorl	%ecx,%esi
1763	punpcklqdq	%xmm0,%xmm10
1764	movl	%eax,%edi
1765	roll	$5,%eax
1766	pxor	%xmm2,%xmm1
1767	addl	%esi,%ebp
1768	xorl	%ecx,%edi
1769	movdqa	%xmm8,%xmm9
1770	rorl	$7,%ebx
1771	paddd	%xmm0,%xmm8
1772	addl	%eax,%ebp
1773	pxor	%xmm10,%xmm1
1774	addl	20(%rsp),%edx
1775	xorl	%ebx,%edi
1776	movl	%ebp,%esi
1777	roll	$5,%ebp
1778	movdqa	%xmm1,%xmm10
1779	addl	%edi,%edx
1780	xorl	%ebx,%esi
1781	movdqa	%xmm8,0(%rsp)
1782	rorl	$7,%eax
1783	addl	%ebp,%edx
1784	addl	24(%rsp),%ecx
1785	pslld	$2,%xmm1
1786	xorl	%eax,%esi
1787	movl	%edx,%edi
1788	psrld	$30,%xmm10
1789	roll	$5,%edx
1790	addl	%esi,%ecx
1791	xorl	%eax,%edi
1792	rorl	$7,%ebp
1793	por	%xmm10,%xmm1
1794	addl	%edx,%ecx
1795	addl	28(%rsp),%ebx
1796	pshufd	$238,%xmm0,%xmm8
1797	xorl	%ebp,%edi
1798	movl	%ecx,%esi
1799	roll	$5,%ecx
1800	addl	%edi,%ebx
1801	xorl	%ebp,%esi
1802	rorl	$7,%edx
1803	addl	%ecx,%ebx
1804	pxor	%xmm6,%xmm2
1805	addl	32(%rsp),%eax
1806	xorl	%edx,%esi
1807	punpcklqdq	%xmm1,%xmm8
1808	movl	%ebx,%edi
1809	roll	$5,%ebx
1810	pxor	%xmm3,%xmm2
1811	addl	%esi,%eax
1812	xorl	%edx,%edi
1813	movdqa	0(%r11),%xmm10
1814	rorl	$7,%ecx
1815	paddd	%xmm1,%xmm9
1816	addl	%ebx,%eax
1817	pxor	%xmm8,%xmm2
1818	addl	36(%rsp),%ebp
1819	xorl	%ecx,%edi
1820	movl	%eax,%esi
1821	roll	$5,%eax
1822	movdqa	%xmm2,%xmm8
1823	addl	%edi,%ebp
1824	xorl	%ecx,%esi
1825	movdqa	%xmm9,16(%rsp)
1826	rorl	$7,%ebx
1827	addl	%eax,%ebp
1828	addl	40(%rsp),%edx
1829	pslld	$2,%xmm2
1830	xorl	%ebx,%esi
1831	movl	%ebp,%edi
1832	psrld	$30,%xmm8
1833	roll	$5,%ebp
1834	addl	%esi,%edx
1835	xorl	%ebx,%edi
1836	rorl	$7,%eax
1837	por	%xmm8,%xmm2
1838	addl	%ebp,%edx
1839	addl	44(%rsp),%ecx
1840	pshufd	$238,%xmm1,%xmm9
1841	xorl	%eax,%edi
1842	movl	%edx,%esi
1843	roll	$5,%edx
1844	addl	%edi,%ecx
1845	xorl	%eax,%esi
1846	rorl	$7,%ebp
1847	addl	%edx,%ecx
1848	pxor	%xmm7,%xmm3
1849	addl	48(%rsp),%ebx
1850	xorl	%ebp,%esi
1851	punpcklqdq	%xmm2,%xmm9
1852	movl	%ecx,%edi
1853	roll	$5,%ecx
1854	pxor	%xmm4,%xmm3
1855	addl	%esi,%ebx
1856	xorl	%ebp,%edi
1857	movdqa	%xmm10,%xmm8
1858	rorl	$7,%edx
1859	paddd	%xmm2,%xmm10
1860	addl	%ecx,%ebx
1861	pxor	%xmm9,%xmm3
1862	addl	52(%rsp),%eax
1863	xorl	%edx,%edi
1864	movl	%ebx,%esi
1865	roll	$5,%ebx
1866	movdqa	%xmm3,%xmm9
1867	addl	%edi,%eax
1868	xorl	%edx,%esi
1869	movdqa	%xmm10,32(%rsp)
1870	rorl	$7,%ecx
1871	addl	%ebx,%eax
1872	addl	56(%rsp),%ebp
1873	pslld	$2,%xmm3
1874	xorl	%ecx,%esi
1875	movl	%eax,%edi
1876	psrld	$30,%xmm9
1877	roll	$5,%eax
1878	addl	%esi,%ebp
1879	xorl	%ecx,%edi
1880	rorl	$7,%ebx
1881	por	%xmm9,%xmm3
1882	addl	%eax,%ebp
1883	addl	60(%rsp),%edx
1884	pshufd	$238,%xmm2,%xmm10
1885	xorl	%ebx,%edi
1886	movl	%ebp,%esi
1887	roll	$5,%ebp
1888	addl	%edi,%edx
1889	xorl	%ebx,%esi
1890	rorl	$7,%eax
1891	addl	%ebp,%edx
1892	pxor	%xmm0,%xmm4
1893	addl	0(%rsp),%ecx
1894	xorl	%eax,%esi
1895	punpcklqdq	%xmm3,%xmm10
1896	movl	%edx,%edi
1897	roll	$5,%edx
1898	pxor	%xmm5,%xmm4
1899	addl	%esi,%ecx
1900	xorl	%eax,%edi
1901	movdqa	%xmm8,%xmm9
1902	rorl	$7,%ebp
1903	paddd	%xmm3,%xmm8
1904	addl	%edx,%ecx
1905	pxor	%xmm10,%xmm4
1906	addl	4(%rsp),%ebx
1907	xorl	%ebp,%edi
1908	movl	%ecx,%esi
1909	roll	$5,%ecx
1910	movdqa	%xmm4,%xmm10
1911	addl	%edi,%ebx
1912	xorl	%ebp,%esi
1913	movdqa	%xmm8,48(%rsp)
1914	rorl	$7,%edx
1915	addl	%ecx,%ebx
1916	addl	8(%rsp),%eax
1917	pslld	$2,%xmm4
1918	xorl	%edx,%esi
1919	movl	%ebx,%edi
1920	psrld	$30,%xmm10
1921	roll	$5,%ebx
1922	addl	%esi,%eax
1923	xorl	%edx,%edi
1924	rorl	$7,%ecx
1925	por	%xmm10,%xmm4
1926	addl	%ebx,%eax
1927	addl	12(%rsp),%ebp
1928	pshufd	$238,%xmm3,%xmm8
1929	xorl	%ecx,%edi
1930	movl	%eax,%esi
1931	roll	$5,%eax
1932	addl	%edi,%ebp
1933	xorl	%ecx,%esi
1934	rorl	$7,%ebx
1935	addl	%eax,%ebp
1936	pxor	%xmm1,%xmm5
1937	addl	16(%rsp),%edx
1938	xorl	%ebx,%esi
1939	punpcklqdq	%xmm4,%xmm8
1940	movl	%ebp,%edi
1941	roll	$5,%ebp
1942	pxor	%xmm6,%xmm5
1943	addl	%esi,%edx
1944	xorl	%ebx,%edi
1945	movdqa	%xmm9,%xmm10
1946	rorl	$7,%eax
1947	paddd	%xmm4,%xmm9
1948	addl	%ebp,%edx
1949	pxor	%xmm8,%xmm5
1950	addl	20(%rsp),%ecx
1951	xorl	%eax,%edi
1952	movl	%edx,%esi
1953	roll	$5,%edx
1954	movdqa	%xmm5,%xmm8
1955	addl	%edi,%ecx
1956	xorl	%eax,%esi
1957	movdqa	%xmm9,0(%rsp)
1958	rorl	$7,%ebp
1959	addl	%edx,%ecx
1960	addl	24(%rsp),%ebx
1961	pslld	$2,%xmm5
1962	xorl	%ebp,%esi
1963	movl	%ecx,%edi
1964	psrld	$30,%xmm8
1965	roll	$5,%ecx
1966	addl	%esi,%ebx
1967	xorl	%ebp,%edi
1968	rorl	$7,%edx
1969	por	%xmm8,%xmm5
1970	addl	%ecx,%ebx
1971	addl	28(%rsp),%eax
1972	pshufd	$238,%xmm4,%xmm9
1973	rorl	$7,%ecx
1974	movl	%ebx,%esi
1975	xorl	%edx,%edi
1976	roll	$5,%ebx
1977	addl	%edi,%eax
1978	xorl	%ecx,%esi
1979	xorl	%edx,%ecx
1980	addl	%ebx,%eax
1981	pxor	%xmm2,%xmm6
1982	addl	32(%rsp),%ebp
1983	andl	%ecx,%esi
1984	xorl	%edx,%ecx
1985	rorl	$7,%ebx
1986	punpcklqdq	%xmm5,%xmm9
1987	movl	%eax,%edi
1988	xorl	%ecx,%esi
1989	pxor	%xmm7,%xmm6
1990	roll	$5,%eax
1991	addl	%esi,%ebp
1992	movdqa	%xmm10,%xmm8
1993	xorl	%ebx,%edi
1994	paddd	%xmm5,%xmm10
1995	xorl	%ecx,%ebx
1996	pxor	%xmm9,%xmm6
1997	addl	%eax,%ebp
1998	addl	36(%rsp),%edx
1999	andl	%ebx,%edi
2000	xorl	%ecx,%ebx
2001	rorl	$7,%eax
2002	movdqa	%xmm6,%xmm9
2003	movl	%ebp,%esi
2004	xorl	%ebx,%edi
2005	movdqa	%xmm10,16(%rsp)
2006	roll	$5,%ebp
2007	addl	%edi,%edx
2008	xorl	%eax,%esi
2009	pslld	$2,%xmm6
2010	xorl	%ebx,%eax
2011	addl	%ebp,%edx
2012	psrld	$30,%xmm9
2013	addl	40(%rsp),%ecx
2014	andl	%eax,%esi
2015	xorl	%ebx,%eax
2016	por	%xmm9,%xmm6
2017	rorl	$7,%ebp
2018	movl	%edx,%edi
2019	xorl	%eax,%esi
2020	roll	$5,%edx
2021	pshufd	$238,%xmm5,%xmm10
2022	addl	%esi,%ecx
2023	xorl	%ebp,%edi
2024	xorl	%eax,%ebp
2025	addl	%edx,%ecx
2026	addl	44(%rsp),%ebx
2027	andl	%ebp,%edi
2028	xorl	%eax,%ebp
2029	rorl	$7,%edx
2030	movl	%ecx,%esi
2031	xorl	%ebp,%edi
2032	roll	$5,%ecx
2033	addl	%edi,%ebx
2034	xorl	%edx,%esi
2035	xorl	%ebp,%edx
2036	addl	%ecx,%ebx
2037	pxor	%xmm3,%xmm7
2038	addl	48(%rsp),%eax
2039	andl	%edx,%esi
2040	xorl	%ebp,%edx
2041	rorl	$7,%ecx
2042	punpcklqdq	%xmm6,%xmm10
2043	movl	%ebx,%edi
2044	xorl	%edx,%esi
2045	pxor	%xmm0,%xmm7
2046	roll	$5,%ebx
2047	addl	%esi,%eax
2048	movdqa	32(%r11),%xmm9
2049	xorl	%ecx,%edi
2050	paddd	%xmm6,%xmm8
2051	xorl	%edx,%ecx
2052	pxor	%xmm10,%xmm7
2053	addl	%ebx,%eax
2054	addl	52(%rsp),%ebp
2055	andl	%ecx,%edi
2056	xorl	%edx,%ecx
2057	rorl	$7,%ebx
2058	movdqa	%xmm7,%xmm10
2059	movl	%eax,%esi
2060	xorl	%ecx,%edi
2061	movdqa	%xmm8,32(%rsp)
2062	roll	$5,%eax
2063	addl	%edi,%ebp
2064	xorl	%ebx,%esi
2065	pslld	$2,%xmm7
2066	xorl	%ecx,%ebx
2067	addl	%eax,%ebp
2068	psrld	$30,%xmm10
2069	addl	56(%rsp),%edx
2070	andl	%ebx,%esi
2071	xorl	%ecx,%ebx
2072	por	%xmm10,%xmm7
2073	rorl	$7,%eax
2074	movl	%ebp,%edi
2075	xorl	%ebx,%esi
2076	roll	$5,%ebp
2077	pshufd	$238,%xmm6,%xmm8
2078	addl	%esi,%edx
2079	xorl	%eax,%edi
2080	xorl	%ebx,%eax
2081	addl	%ebp,%edx
2082	addl	60(%rsp),%ecx
2083	andl	%eax,%edi
2084	xorl	%ebx,%eax
2085	rorl	$7,%ebp
2086	movl	%edx,%esi
2087	xorl	%eax,%edi
2088	roll	$5,%edx
2089	addl	%edi,%ecx
2090	xorl	%ebp,%esi
2091	xorl	%eax,%ebp
2092	addl	%edx,%ecx
2093	pxor	%xmm4,%xmm0
2094	addl	0(%rsp),%ebx
2095	andl	%ebp,%esi
2096	xorl	%eax,%ebp
2097	rorl	$7,%edx
2098	punpcklqdq	%xmm7,%xmm8
2099	movl	%ecx,%edi
2100	xorl	%ebp,%esi
2101	pxor	%xmm1,%xmm0
2102	roll	$5,%ecx
2103	addl	%esi,%ebx
2104	movdqa	%xmm9,%xmm10
2105	xorl	%edx,%edi
2106	paddd	%xmm7,%xmm9
2107	xorl	%ebp,%edx
2108	pxor	%xmm8,%xmm0
2109	addl	%ecx,%ebx
2110	addl	4(%rsp),%eax
2111	andl	%edx,%edi
2112	xorl	%ebp,%edx
2113	rorl	$7,%ecx
2114	movdqa	%xmm0,%xmm8
2115	movl	%ebx,%esi
2116	xorl	%edx,%edi
2117	movdqa	%xmm9,48(%rsp)
2118	roll	$5,%ebx
2119	addl	%edi,%eax
2120	xorl	%ecx,%esi
2121	pslld	$2,%xmm0
2122	xorl	%edx,%ecx
2123	addl	%ebx,%eax
2124	psrld	$30,%xmm8
2125	addl	8(%rsp),%ebp
2126	andl	%ecx,%esi
2127	xorl	%edx,%ecx
2128	por	%xmm8,%xmm0
2129	rorl	$7,%ebx
2130	movl	%eax,%edi
2131	xorl	%ecx,%esi
2132	roll	$5,%eax
2133	pshufd	$238,%xmm7,%xmm9
2134	addl	%esi,%ebp
2135	xorl	%ebx,%edi
2136	xorl	%ecx,%ebx
2137	addl	%eax,%ebp
2138	addl	12(%rsp),%edx
2139	andl	%ebx,%edi
2140	xorl	%ecx,%ebx
2141	rorl	$7,%eax
2142	movl	%ebp,%esi
2143	xorl	%ebx,%edi
2144	roll	$5,%ebp
2145	addl	%edi,%edx
2146	xorl	%eax,%esi
2147	xorl	%ebx,%eax
2148	addl	%ebp,%edx
2149	pxor	%xmm5,%xmm1
2150	addl	16(%rsp),%ecx
2151	andl	%eax,%esi
2152	xorl	%ebx,%eax
2153	rorl	$7,%ebp
2154	punpcklqdq	%xmm0,%xmm9
2155	movl	%edx,%edi
2156	xorl	%eax,%esi
2157	pxor	%xmm2,%xmm1
2158	roll	$5,%edx
2159	addl	%esi,%ecx
2160	movdqa	%xmm10,%xmm8
2161	xorl	%ebp,%edi
2162	paddd	%xmm0,%xmm10
2163	xorl	%eax,%ebp
2164	pxor	%xmm9,%xmm1
2165	addl	%edx,%ecx
2166	addl	20(%rsp),%ebx
2167	andl	%ebp,%edi
2168	xorl	%eax,%ebp
2169	rorl	$7,%edx
2170	movdqa	%xmm1,%xmm9
2171	movl	%ecx,%esi
2172	xorl	%ebp,%edi
2173	movdqa	%xmm10,0(%rsp)
2174	roll	$5,%ecx
2175	addl	%edi,%ebx
2176	xorl	%edx,%esi
2177	pslld	$2,%xmm1
2178	xorl	%ebp,%edx
2179	addl	%ecx,%ebx
2180	psrld	$30,%xmm9
2181	addl	24(%rsp),%eax
2182	andl	%edx,%esi
2183	xorl	%ebp,%edx
2184	por	%xmm9,%xmm1
2185	rorl	$7,%ecx
2186	movl	%ebx,%edi
2187	xorl	%edx,%esi
2188	roll	$5,%ebx
2189	pshufd	$238,%xmm0,%xmm10
2190	addl	%esi,%eax
2191	xorl	%ecx,%edi
2192	xorl	%edx,%ecx
2193	addl	%ebx,%eax
2194	addl	28(%rsp),%ebp
2195	andl	%ecx,%edi
2196	xorl	%edx,%ecx
2197	rorl	$7,%ebx
2198	movl	%eax,%esi
2199	xorl	%ecx,%edi
2200	roll	$5,%eax
2201	addl	%edi,%ebp
2202	xorl	%ebx,%esi
2203	xorl	%ecx,%ebx
2204	addl	%eax,%ebp
2205	pxor	%xmm6,%xmm2
2206	addl	32(%rsp),%edx
2207	andl	%ebx,%esi
2208	xorl	%ecx,%ebx
2209	rorl	$7,%eax
2210	punpcklqdq	%xmm1,%xmm10
2211	movl	%ebp,%edi
2212	xorl	%ebx,%esi
2213	pxor	%xmm3,%xmm2
2214	roll	$5,%ebp
2215	addl	%esi,%edx
2216	movdqa	%xmm8,%xmm9
2217	xorl	%eax,%edi
2218	paddd	%xmm1,%xmm8
2219	xorl	%ebx,%eax
2220	pxor	%xmm10,%xmm2
2221	addl	%ebp,%edx
2222	addl	36(%rsp),%ecx
2223	andl	%eax,%edi
2224	xorl	%ebx,%eax
2225	rorl	$7,%ebp
2226	movdqa	%xmm2,%xmm10
2227	movl	%edx,%esi
2228	xorl	%eax,%edi
2229	movdqa	%xmm8,16(%rsp)
2230	roll	$5,%edx
2231	addl	%edi,%ecx
2232	xorl	%ebp,%esi
2233	pslld	$2,%xmm2
2234	xorl	%eax,%ebp
2235	addl	%edx,%ecx
2236	psrld	$30,%xmm10
2237	addl	40(%rsp),%ebx
2238	andl	%ebp,%esi
2239	xorl	%eax,%ebp
2240	por	%xmm10,%xmm2
2241	rorl	$7,%edx
2242	movl	%ecx,%edi
2243	xorl	%ebp,%esi
2244	roll	$5,%ecx
2245	pshufd	$238,%xmm1,%xmm8
2246	addl	%esi,%ebx
2247	xorl	%edx,%edi
2248	xorl	%ebp,%edx
2249	addl	%ecx,%ebx
2250	addl	44(%rsp),%eax
2251	andl	%edx,%edi
2252	xorl	%ebp,%edx
2253	rorl	$7,%ecx
2254	movl	%ebx,%esi
2255	xorl	%edx,%edi
2256	roll	$5,%ebx
2257	addl	%edi,%eax
2258	xorl	%edx,%esi
2259	addl	%ebx,%eax
2260	pxor	%xmm7,%xmm3
2261	addl	48(%rsp),%ebp
2262	xorl	%ecx,%esi
2263	punpcklqdq	%xmm2,%xmm8
2264	movl	%eax,%edi
2265	roll	$5,%eax
2266	pxor	%xmm4,%xmm3
2267	addl	%esi,%ebp
2268	xorl	%ecx,%edi
2269	movdqa	%xmm9,%xmm10
2270	rorl	$7,%ebx
2271	paddd	%xmm2,%xmm9
2272	addl	%eax,%ebp
2273	pxor	%xmm8,%xmm3
2274	addl	52(%rsp),%edx
2275	xorl	%ebx,%edi
2276	movl	%ebp,%esi
2277	roll	$5,%ebp
2278	movdqa	%xmm3,%xmm8
2279	addl	%edi,%edx
2280	xorl	%ebx,%esi
2281	movdqa	%xmm9,32(%rsp)
2282	rorl	$7,%eax
2283	addl	%ebp,%edx
2284	addl	56(%rsp),%ecx
2285	pslld	$2,%xmm3
2286	xorl	%eax,%esi
2287	movl	%edx,%edi
2288	psrld	$30,%xmm8
2289	roll	$5,%edx
2290	addl	%esi,%ecx
2291	xorl	%eax,%edi
2292	rorl	$7,%ebp
2293	por	%xmm8,%xmm3
2294	addl	%edx,%ecx
2295	addl	60(%rsp),%ebx
2296	xorl	%ebp,%edi
2297	movl	%ecx,%esi
2298	roll	$5,%ecx
2299	addl	%edi,%ebx
2300	xorl	%ebp,%esi
2301	rorl	$7,%edx
2302	addl	%ecx,%ebx
2303	addl	0(%rsp),%eax
2304	xorl	%edx,%esi
2305	movl	%ebx,%edi
2306	roll	$5,%ebx
2307	paddd	%xmm3,%xmm10
2308	addl	%esi,%eax
2309	xorl	%edx,%edi
2310	movdqa	%xmm10,48(%rsp)
2311	rorl	$7,%ecx
2312	addl	%ebx,%eax
2313	addl	4(%rsp),%ebp
2314	xorl	%ecx,%edi
2315	movl	%eax,%esi
2316	roll	$5,%eax
2317	addl	%edi,%ebp
2318	xorl	%ecx,%esi
2319	rorl	$7,%ebx
2320	addl	%eax,%ebp
2321	addl	8(%rsp),%edx
2322	xorl	%ebx,%esi
2323	movl	%ebp,%edi
2324	roll	$5,%ebp
2325	addl	%esi,%edx
2326	xorl	%ebx,%edi
2327	rorl	$7,%eax
2328	addl	%ebp,%edx
2329	addl	12(%rsp),%ecx
2330	xorl	%eax,%edi
2331	movl	%edx,%esi
2332	roll	$5,%edx
2333	addl	%edi,%ecx
2334	xorl	%eax,%esi
2335	rorl	$7,%ebp
2336	addl	%edx,%ecx
2337	cmpq	%r10,%r9
2338	je	.Ldone_ssse3
2339	movdqa	64(%r11),%xmm6
2340	movdqa	-64(%r11),%xmm9
2341	movdqu	0(%r9),%xmm0
2342	movdqu	16(%r9),%xmm1
2343	movdqu	32(%r9),%xmm2
2344	movdqu	48(%r9),%xmm3
2345.byte	102,15,56,0,198
2346	addq	$64,%r9
2347	addl	16(%rsp),%ebx
2348	xorl	%ebp,%esi
2349	movl	%ecx,%edi
2350.byte	102,15,56,0,206
2351	roll	$5,%ecx
2352	addl	%esi,%ebx
2353	xorl	%ebp,%edi
2354	rorl	$7,%edx
2355	paddd	%xmm9,%xmm0
2356	addl	%ecx,%ebx
2357	addl	20(%rsp),%eax
2358	xorl	%edx,%edi
2359	movl	%ebx,%esi
2360	movdqa	%xmm0,0(%rsp)
2361	roll	$5,%ebx
2362	addl	%edi,%eax
2363	xorl	%edx,%esi
2364	rorl	$7,%ecx
2365	psubd	%xmm9,%xmm0
2366	addl	%ebx,%eax
2367	addl	24(%rsp),%ebp
2368	xorl	%ecx,%esi
2369	movl	%eax,%edi
2370	roll	$5,%eax
2371	addl	%esi,%ebp
2372	xorl	%ecx,%edi
2373	rorl	$7,%ebx
2374	addl	%eax,%ebp
2375	addl	28(%rsp),%edx
2376	xorl	%ebx,%edi
2377	movl	%ebp,%esi
2378	roll	$5,%ebp
2379	addl	%edi,%edx
2380	xorl	%ebx,%esi
2381	rorl	$7,%eax
2382	addl	%ebp,%edx
2383	addl	32(%rsp),%ecx
2384	xorl	%eax,%esi
2385	movl	%edx,%edi
2386.byte	102,15,56,0,214
2387	roll	$5,%edx
2388	addl	%esi,%ecx
2389	xorl	%eax,%edi
2390	rorl	$7,%ebp
2391	paddd	%xmm9,%xmm1
2392	addl	%edx,%ecx
2393	addl	36(%rsp),%ebx
2394	xorl	%ebp,%edi
2395	movl	%ecx,%esi
2396	movdqa	%xmm1,16(%rsp)
2397	roll	$5,%ecx
2398	addl	%edi,%ebx
2399	xorl	%ebp,%esi
2400	rorl	$7,%edx
2401	psubd	%xmm9,%xmm1
2402	addl	%ecx,%ebx
2403	addl	40(%rsp),%eax
2404	xorl	%edx,%esi
2405	movl	%ebx,%edi
2406	roll	$5,%ebx
2407	addl	%esi,%eax
2408	xorl	%edx,%edi
2409	rorl	$7,%ecx
2410	addl	%ebx,%eax
2411	addl	44(%rsp),%ebp
2412	xorl	%ecx,%edi
2413	movl	%eax,%esi
2414	roll	$5,%eax
2415	addl	%edi,%ebp
2416	xorl	%ecx,%esi
2417	rorl	$7,%ebx
2418	addl	%eax,%ebp
2419	addl	48(%rsp),%edx
2420	xorl	%ebx,%esi
2421	movl	%ebp,%edi
2422.byte	102,15,56,0,222
2423	roll	$5,%ebp
2424	addl	%esi,%edx
2425	xorl	%ebx,%edi
2426	rorl	$7,%eax
2427	paddd	%xmm9,%xmm2
2428	addl	%ebp,%edx
2429	addl	52(%rsp),%ecx
2430	xorl	%eax,%edi
2431	movl	%edx,%esi
2432	movdqa	%xmm2,32(%rsp)
2433	roll	$5,%edx
2434	addl	%edi,%ecx
2435	xorl	%eax,%esi
2436	rorl	$7,%ebp
2437	psubd	%xmm9,%xmm2
2438	addl	%edx,%ecx
2439	addl	56(%rsp),%ebx
2440	xorl	%ebp,%esi
2441	movl	%ecx,%edi
2442	roll	$5,%ecx
2443	addl	%esi,%ebx
2444	xorl	%ebp,%edi
2445	rorl	$7,%edx
2446	addl	%ecx,%ebx
2447	addl	60(%rsp),%eax
2448	xorl	%edx,%edi
2449	movl	%ebx,%esi
2450	roll	$5,%ebx
2451	addl	%edi,%eax
2452	rorl	$7,%ecx
2453	addl	%ebx,%eax
2454	addl	0(%r8),%eax
2455	addl	4(%r8),%esi
2456	addl	8(%r8),%ecx
2457	addl	12(%r8),%edx
2458	movl	%eax,0(%r8)
2459	addl	16(%r8),%ebp
2460	movl	%esi,4(%r8)
2461	movl	%esi,%ebx
2462	movl	%ecx,8(%r8)
2463	movl	%ecx,%edi
2464	movl	%edx,12(%r8)
2465	xorl	%edx,%edi
2466	movl	%ebp,16(%r8)
2467	andl	%edi,%esi
2468	jmp	.Loop_ssse3
2469
2470.align	16
2471.Ldone_ssse3:
2472	addl	16(%rsp),%ebx
2473	xorl	%ebp,%esi
2474	movl	%ecx,%edi
2475	roll	$5,%ecx
2476	addl	%esi,%ebx
2477	xorl	%ebp,%edi
2478	rorl	$7,%edx
2479	addl	%ecx,%ebx
2480	addl	20(%rsp),%eax
2481	xorl	%edx,%edi
2482	movl	%ebx,%esi
2483	roll	$5,%ebx
2484	addl	%edi,%eax
2485	xorl	%edx,%esi
2486	rorl	$7,%ecx
2487	addl	%ebx,%eax
2488	addl	24(%rsp),%ebp
2489	xorl	%ecx,%esi
2490	movl	%eax,%edi
2491	roll	$5,%eax
2492	addl	%esi,%ebp
2493	xorl	%ecx,%edi
2494	rorl	$7,%ebx
2495	addl	%eax,%ebp
2496	addl	28(%rsp),%edx
2497	xorl	%ebx,%edi
2498	movl	%ebp,%esi
2499	roll	$5,%ebp
2500	addl	%edi,%edx
2501	xorl	%ebx,%esi
2502	rorl	$7,%eax
2503	addl	%ebp,%edx
2504	addl	32(%rsp),%ecx
2505	xorl	%eax,%esi
2506	movl	%edx,%edi
2507	roll	$5,%edx
2508	addl	%esi,%ecx
2509	xorl	%eax,%edi
2510	rorl	$7,%ebp
2511	addl	%edx,%ecx
2512	addl	36(%rsp),%ebx
2513	xorl	%ebp,%edi
2514	movl	%ecx,%esi
2515	roll	$5,%ecx
2516	addl	%edi,%ebx
2517	xorl	%ebp,%esi
2518	rorl	$7,%edx
2519	addl	%ecx,%ebx
2520	addl	40(%rsp),%eax
2521	xorl	%edx,%esi
2522	movl	%ebx,%edi
2523	roll	$5,%ebx
2524	addl	%esi,%eax
2525	xorl	%edx,%edi
2526	rorl	$7,%ecx
2527	addl	%ebx,%eax
2528	addl	44(%rsp),%ebp
2529	xorl	%ecx,%edi
2530	movl	%eax,%esi
2531	roll	$5,%eax
2532	addl	%edi,%ebp
2533	xorl	%ecx,%esi
2534	rorl	$7,%ebx
2535	addl	%eax,%ebp
2536	addl	48(%rsp),%edx
2537	xorl	%ebx,%esi
2538	movl	%ebp,%edi
2539	roll	$5,%ebp
2540	addl	%esi,%edx
2541	xorl	%ebx,%edi
2542	rorl	$7,%eax
2543	addl	%ebp,%edx
2544	addl	52(%rsp),%ecx
2545	xorl	%eax,%edi
2546	movl	%edx,%esi
2547	roll	$5,%edx
2548	addl	%edi,%ecx
2549	xorl	%eax,%esi
2550	rorl	$7,%ebp
2551	addl	%edx,%ecx
2552	addl	56(%rsp),%ebx
2553	xorl	%ebp,%esi
2554	movl	%ecx,%edi
2555	roll	$5,%ecx
2556	addl	%esi,%ebx
2557	xorl	%ebp,%edi
2558	rorl	$7,%edx
2559	addl	%ecx,%ebx
2560	addl	60(%rsp),%eax
2561	xorl	%edx,%edi
2562	movl	%ebx,%esi
2563	roll	$5,%ebx
2564	addl	%edi,%eax
2565	rorl	$7,%ecx
2566	addl	%ebx,%eax
2567	addl	0(%r8),%eax
2568	addl	4(%r8),%esi
2569	addl	8(%r8),%ecx
2570	movl	%eax,0(%r8)
2571	addl	12(%r8),%edx
2572	movl	%esi,4(%r8)
2573	addl	16(%r8),%ebp
2574	movl	%ecx,8(%r8)
2575	movl	%edx,12(%r8)
2576	movl	%ebp,16(%r8)
2577	leaq	(%r14),%rsi
2578	movq	-40(%rsi),%r14
2579	movq	-32(%rsi),%r13
2580	movq	-24(%rsi),%r12
2581	movq	-16(%rsi),%rbp
2582	movq	-8(%rsi),%rbx
2583	leaq	(%rsi),%rsp
2584.Lepilogue_ssse3:
2585	.byte	0xf3,0xc3
2586.size	sha1_block_data_order_ssse3,.-sha1_block_data_order_ssse3
2587.type	sha1_block_data_order_avx,@function
2588.align	16
2589sha1_block_data_order_avx:
2590_avx_shortcut:
2591	movq	%rsp,%rax
2592	pushq	%rbx
2593	pushq	%rbp
2594	pushq	%r12
2595	pushq	%r13
2596	pushq	%r14
2597	leaq	-64(%rsp),%rsp
2598	vzeroupper
2599	movq	%rax,%r14
2600	andq	$-64,%rsp
2601	movq	%rdi,%r8
2602	movq	%rsi,%r9
2603	movq	%rdx,%r10
2604
2605	shlq	$6,%r10
2606	addq	%r9,%r10
2607	leaq	K_XX_XX+64(%rip),%r11
2608
2609	movl	0(%r8),%eax
2610	movl	4(%r8),%ebx
2611	movl	8(%r8),%ecx
2612	movl	12(%r8),%edx
2613	movl	%ebx,%esi
2614	movl	16(%r8),%ebp
2615	movl	%ecx,%edi
2616	xorl	%edx,%edi
2617	andl	%edi,%esi
2618
2619	vmovdqa	64(%r11),%xmm6
2620	vmovdqa	-64(%r11),%xmm11
2621	vmovdqu	0(%r9),%xmm0
2622	vmovdqu	16(%r9),%xmm1
2623	vmovdqu	32(%r9),%xmm2
2624	vmovdqu	48(%r9),%xmm3
2625	vpshufb	%xmm6,%xmm0,%xmm0
2626	addq	$64,%r9
2627	vpshufb	%xmm6,%xmm1,%xmm1
2628	vpshufb	%xmm6,%xmm2,%xmm2
2629	vpshufb	%xmm6,%xmm3,%xmm3
2630	vpaddd	%xmm11,%xmm0,%xmm4
2631	vpaddd	%xmm11,%xmm1,%xmm5
2632	vpaddd	%xmm11,%xmm2,%xmm6
2633	vmovdqa	%xmm4,0(%rsp)
2634	vmovdqa	%xmm5,16(%rsp)
2635	vmovdqa	%xmm6,32(%rsp)
2636	jmp	.Loop_avx
2637.align	16
2638.Loop_avx:
2639	shrdl	$2,%ebx,%ebx
2640	xorl	%edx,%esi
2641	vpalignr	$8,%xmm0,%xmm1,%xmm4
2642	movl	%eax,%edi
2643	addl	0(%rsp),%ebp
2644	vpaddd	%xmm3,%xmm11,%xmm9
2645	xorl	%ecx,%ebx
2646	shldl	$5,%eax,%eax
2647	vpsrldq	$4,%xmm3,%xmm8
2648	addl	%esi,%ebp
2649	andl	%ebx,%edi
2650	vpxor	%xmm0,%xmm4,%xmm4
2651	xorl	%ecx,%ebx
2652	addl	%eax,%ebp
2653	vpxor	%xmm2,%xmm8,%xmm8
2654	shrdl	$7,%eax,%eax
2655	xorl	%ecx,%edi
2656	movl	%ebp,%esi
2657	addl	4(%rsp),%edx
2658	vpxor	%xmm8,%xmm4,%xmm4
2659	xorl	%ebx,%eax
2660	shldl	$5,%ebp,%ebp
2661	vmovdqa	%xmm9,48(%rsp)
2662	addl	%edi,%edx
2663	andl	%eax,%esi
2664	vpsrld	$31,%xmm4,%xmm8
2665	xorl	%ebx,%eax
2666	addl	%ebp,%edx
2667	shrdl	$7,%ebp,%ebp
2668	xorl	%ebx,%esi
2669	vpslldq	$12,%xmm4,%xmm10
2670	vpaddd	%xmm4,%xmm4,%xmm4
2671	movl	%edx,%edi
2672	addl	8(%rsp),%ecx
2673	xorl	%eax,%ebp
2674	shldl	$5,%edx,%edx
2675	vpsrld	$30,%xmm10,%xmm9
2676	vpor	%xmm8,%xmm4,%xmm4
2677	addl	%esi,%ecx
2678	andl	%ebp,%edi
2679	xorl	%eax,%ebp
2680	addl	%edx,%ecx
2681	vpslld	$2,%xmm10,%xmm10
2682	vpxor	%xmm9,%xmm4,%xmm4
2683	shrdl	$7,%edx,%edx
2684	xorl	%eax,%edi
2685	movl	%ecx,%esi
2686	addl	12(%rsp),%ebx
2687	vpxor	%xmm10,%xmm4,%xmm4
2688	xorl	%ebp,%edx
2689	shldl	$5,%ecx,%ecx
2690	addl	%edi,%ebx
2691	andl	%edx,%esi
2692	xorl	%ebp,%edx
2693	addl	%ecx,%ebx
2694	shrdl	$7,%ecx,%ecx
2695	xorl	%ebp,%esi
2696	vpalignr	$8,%xmm1,%xmm2,%xmm5
2697	movl	%ebx,%edi
2698	addl	16(%rsp),%eax
2699	vpaddd	%xmm4,%xmm11,%xmm9
2700	xorl	%edx,%ecx
2701	shldl	$5,%ebx,%ebx
2702	vpsrldq	$4,%xmm4,%xmm8
2703	addl	%esi,%eax
2704	andl	%ecx,%edi
2705	vpxor	%xmm1,%xmm5,%xmm5
2706	xorl	%edx,%ecx
2707	addl	%ebx,%eax
2708	vpxor	%xmm3,%xmm8,%xmm8
2709	shrdl	$7,%ebx,%ebx
2710	xorl	%edx,%edi
2711	movl	%eax,%esi
2712	addl	20(%rsp),%ebp
2713	vpxor	%xmm8,%xmm5,%xmm5
2714	xorl	%ecx,%ebx
2715	shldl	$5,%eax,%eax
2716	vmovdqa	%xmm9,0(%rsp)
2717	addl	%edi,%ebp
2718	andl	%ebx,%esi
2719	vpsrld	$31,%xmm5,%xmm8
2720	xorl	%ecx,%ebx
2721	addl	%eax,%ebp
2722	shrdl	$7,%eax,%eax
2723	xorl	%ecx,%esi
2724	vpslldq	$12,%xmm5,%xmm10
2725	vpaddd	%xmm5,%xmm5,%xmm5
2726	movl	%ebp,%edi
2727	addl	24(%rsp),%edx
2728	xorl	%ebx,%eax
2729	shldl	$5,%ebp,%ebp
2730	vpsrld	$30,%xmm10,%xmm9
2731	vpor	%xmm8,%xmm5,%xmm5
2732	addl	%esi,%edx
2733	andl	%eax,%edi
2734	xorl	%ebx,%eax
2735	addl	%ebp,%edx
2736	vpslld	$2,%xmm10,%xmm10
2737	vpxor	%xmm9,%xmm5,%xmm5
2738	shrdl	$7,%ebp,%ebp
2739	xorl	%ebx,%edi
2740	movl	%edx,%esi
2741	addl	28(%rsp),%ecx
2742	vpxor	%xmm10,%xmm5,%xmm5
2743	xorl	%eax,%ebp
2744	shldl	$5,%edx,%edx
2745	vmovdqa	-32(%r11),%xmm11
2746	addl	%edi,%ecx
2747	andl	%ebp,%esi
2748	xorl	%eax,%ebp
2749	addl	%edx,%ecx
2750	shrdl	$7,%edx,%edx
2751	xorl	%eax,%esi
2752	vpalignr	$8,%xmm2,%xmm3,%xmm6
2753	movl	%ecx,%edi
2754	addl	32(%rsp),%ebx
2755	vpaddd	%xmm5,%xmm11,%xmm9
2756	xorl	%ebp,%edx
2757	shldl	$5,%ecx,%ecx
2758	vpsrldq	$4,%xmm5,%xmm8
2759	addl	%esi,%ebx
2760	andl	%edx,%edi
2761	vpxor	%xmm2,%xmm6,%xmm6
2762	xorl	%ebp,%edx
2763	addl	%ecx,%ebx
2764	vpxor	%xmm4,%xmm8,%xmm8
2765	shrdl	$7,%ecx,%ecx
2766	xorl	%ebp,%edi
2767	movl	%ebx,%esi
2768	addl	36(%rsp),%eax
2769	vpxor	%xmm8,%xmm6,%xmm6
2770	xorl	%edx,%ecx
2771	shldl	$5,%ebx,%ebx
2772	vmovdqa	%xmm9,16(%rsp)
2773	addl	%edi,%eax
2774	andl	%ecx,%esi
2775	vpsrld	$31,%xmm6,%xmm8
2776	xorl	%edx,%ecx
2777	addl	%ebx,%eax
2778	shrdl	$7,%ebx,%ebx
2779	xorl	%edx,%esi
2780	vpslldq	$12,%xmm6,%xmm10
2781	vpaddd	%xmm6,%xmm6,%xmm6
2782	movl	%eax,%edi
2783	addl	40(%rsp),%ebp
2784	xorl	%ecx,%ebx
2785	shldl	$5,%eax,%eax
2786	vpsrld	$30,%xmm10,%xmm9
2787	vpor	%xmm8,%xmm6,%xmm6
2788	addl	%esi,%ebp
2789	andl	%ebx,%edi
2790	xorl	%ecx,%ebx
2791	addl	%eax,%ebp
2792	vpslld	$2,%xmm10,%xmm10
2793	vpxor	%xmm9,%xmm6,%xmm6
2794	shrdl	$7,%eax,%eax
2795	xorl	%ecx,%edi
2796	movl	%ebp,%esi
2797	addl	44(%rsp),%edx
2798	vpxor	%xmm10,%xmm6,%xmm6
2799	xorl	%ebx,%eax
2800	shldl	$5,%ebp,%ebp
2801	addl	%edi,%edx
2802	andl	%eax,%esi
2803	xorl	%ebx,%eax
2804	addl	%ebp,%edx
2805	shrdl	$7,%ebp,%ebp
2806	xorl	%ebx,%esi
2807	vpalignr	$8,%xmm3,%xmm4,%xmm7
2808	movl	%edx,%edi
2809	addl	48(%rsp),%ecx
2810	vpaddd	%xmm6,%xmm11,%xmm9
2811	xorl	%eax,%ebp
2812	shldl	$5,%edx,%edx
2813	vpsrldq	$4,%xmm6,%xmm8
2814	addl	%esi,%ecx
2815	andl	%ebp,%edi
2816	vpxor	%xmm3,%xmm7,%xmm7
2817	xorl	%eax,%ebp
2818	addl	%edx,%ecx
2819	vpxor	%xmm5,%xmm8,%xmm8
2820	shrdl	$7,%edx,%edx
2821	xorl	%eax,%edi
2822	movl	%ecx,%esi
2823	addl	52(%rsp),%ebx
2824	vpxor	%xmm8,%xmm7,%xmm7
2825	xorl	%ebp,%edx
2826	shldl	$5,%ecx,%ecx
2827	vmovdqa	%xmm9,32(%rsp)
2828	addl	%edi,%ebx
2829	andl	%edx,%esi
2830	vpsrld	$31,%xmm7,%xmm8
2831	xorl	%ebp,%edx
2832	addl	%ecx,%ebx
2833	shrdl	$7,%ecx,%ecx
2834	xorl	%ebp,%esi
2835	vpslldq	$12,%xmm7,%xmm10
2836	vpaddd	%xmm7,%xmm7,%xmm7
2837	movl	%ebx,%edi
2838	addl	56(%rsp),%eax
2839	xorl	%edx,%ecx
2840	shldl	$5,%ebx,%ebx
2841	vpsrld	$30,%xmm10,%xmm9
2842	vpor	%xmm8,%xmm7,%xmm7
2843	addl	%esi,%eax
2844	andl	%ecx,%edi
2845	xorl	%edx,%ecx
2846	addl	%ebx,%eax
2847	vpslld	$2,%xmm10,%xmm10
2848	vpxor	%xmm9,%xmm7,%xmm7
2849	shrdl	$7,%ebx,%ebx
2850	xorl	%edx,%edi
2851	movl	%eax,%esi
2852	addl	60(%rsp),%ebp
2853	vpxor	%xmm10,%xmm7,%xmm7
2854	xorl	%ecx,%ebx
2855	shldl	$5,%eax,%eax
2856	addl	%edi,%ebp
2857	andl	%ebx,%esi
2858	xorl	%ecx,%ebx
2859	addl	%eax,%ebp
2860	vpalignr	$8,%xmm6,%xmm7,%xmm8
2861	vpxor	%xmm4,%xmm0,%xmm0
2862	shrdl	$7,%eax,%eax
2863	xorl	%ecx,%esi
2864	movl	%ebp,%edi
2865	addl	0(%rsp),%edx
2866	vpxor	%xmm1,%xmm0,%xmm0
2867	xorl	%ebx,%eax
2868	shldl	$5,%ebp,%ebp
2869	vpaddd	%xmm7,%xmm11,%xmm9
2870	addl	%esi,%edx
2871	andl	%eax,%edi
2872	vpxor	%xmm8,%xmm0,%xmm0
2873	xorl	%ebx,%eax
2874	addl	%ebp,%edx
2875	shrdl	$7,%ebp,%ebp
2876	xorl	%ebx,%edi
2877	vpsrld	$30,%xmm0,%xmm8
2878	vmovdqa	%xmm9,48(%rsp)
2879	movl	%edx,%esi
2880	addl	4(%rsp),%ecx
2881	xorl	%eax,%ebp
2882	shldl	$5,%edx,%edx
2883	vpslld	$2,%xmm0,%xmm0
2884	addl	%edi,%ecx
2885	andl	%ebp,%esi
2886	xorl	%eax,%ebp
2887	addl	%edx,%ecx
2888	shrdl	$7,%edx,%edx
2889	xorl	%eax,%esi
2890	movl	%ecx,%edi
2891	addl	8(%rsp),%ebx
2892	vpor	%xmm8,%xmm0,%xmm0
2893	xorl	%ebp,%edx
2894	shldl	$5,%ecx,%ecx
2895	addl	%esi,%ebx
2896	andl	%edx,%edi
2897	xorl	%ebp,%edx
2898	addl	%ecx,%ebx
2899	addl	12(%rsp),%eax
2900	xorl	%ebp,%edi
2901	movl	%ebx,%esi
2902	shldl	$5,%ebx,%ebx
2903	addl	%edi,%eax
2904	xorl	%edx,%esi
2905	shrdl	$7,%ecx,%ecx
2906	addl	%ebx,%eax
2907	vpalignr	$8,%xmm7,%xmm0,%xmm8
2908	vpxor	%xmm5,%xmm1,%xmm1
2909	addl	16(%rsp),%ebp
2910	xorl	%ecx,%esi
2911	movl	%eax,%edi
2912	shldl	$5,%eax,%eax
2913	vpxor	%xmm2,%xmm1,%xmm1
2914	addl	%esi,%ebp
2915	xorl	%ecx,%edi
2916	vpaddd	%xmm0,%xmm11,%xmm9
2917	shrdl	$7,%ebx,%ebx
2918	addl	%eax,%ebp
2919	vpxor	%xmm8,%xmm1,%xmm1
2920	addl	20(%rsp),%edx
2921	xorl	%ebx,%edi
2922	movl	%ebp,%esi
2923	shldl	$5,%ebp,%ebp
2924	vpsrld	$30,%xmm1,%xmm8
2925	vmovdqa	%xmm9,0(%rsp)
2926	addl	%edi,%edx
2927	xorl	%ebx,%esi
2928	shrdl	$7,%eax,%eax
2929	addl	%ebp,%edx
2930	vpslld	$2,%xmm1,%xmm1
2931	addl	24(%rsp),%ecx
2932	xorl	%eax,%esi
2933	movl	%edx,%edi
2934	shldl	$5,%edx,%edx
2935	addl	%esi,%ecx
2936	xorl	%eax,%edi
2937	shrdl	$7,%ebp,%ebp
2938	addl	%edx,%ecx
2939	vpor	%xmm8,%xmm1,%xmm1
2940	addl	28(%rsp),%ebx
2941	xorl	%ebp,%edi
2942	movl	%ecx,%esi
2943	shldl	$5,%ecx,%ecx
2944	addl	%edi,%ebx
2945	xorl	%ebp,%esi
2946	shrdl	$7,%edx,%edx
2947	addl	%ecx,%ebx
2948	vpalignr	$8,%xmm0,%xmm1,%xmm8
2949	vpxor	%xmm6,%xmm2,%xmm2
2950	addl	32(%rsp),%eax
2951	xorl	%edx,%esi
2952	movl	%ebx,%edi
2953	shldl	$5,%ebx,%ebx
2954	vpxor	%xmm3,%xmm2,%xmm2
2955	addl	%esi,%eax
2956	xorl	%edx,%edi
2957	vpaddd	%xmm1,%xmm11,%xmm9
2958	vmovdqa	0(%r11),%xmm11
2959	shrdl	$7,%ecx,%ecx
2960	addl	%ebx,%eax
2961	vpxor	%xmm8,%xmm2,%xmm2
2962	addl	36(%rsp),%ebp
2963	xorl	%ecx,%edi
2964	movl	%eax,%esi
2965	shldl	$5,%eax,%eax
2966	vpsrld	$30,%xmm2,%xmm8
2967	vmovdqa	%xmm9,16(%rsp)
2968	addl	%edi,%ebp
2969	xorl	%ecx,%esi
2970	shrdl	$7,%ebx,%ebx
2971	addl	%eax,%ebp
2972	vpslld	$2,%xmm2,%xmm2
2973	addl	40(%rsp),%edx
2974	xorl	%ebx,%esi
2975	movl	%ebp,%edi
2976	shldl	$5,%ebp,%ebp
2977	addl	%esi,%edx
2978	xorl	%ebx,%edi
2979	shrdl	$7,%eax,%eax
2980	addl	%ebp,%edx
2981	vpor	%xmm8,%xmm2,%xmm2
2982	addl	44(%rsp),%ecx
2983	xorl	%eax,%edi
2984	movl	%edx,%esi
2985	shldl	$5,%edx,%edx
2986	addl	%edi,%ecx
2987	xorl	%eax,%esi
2988	shrdl	$7,%ebp,%ebp
2989	addl	%edx,%ecx
2990	vpalignr	$8,%xmm1,%xmm2,%xmm8
2991	vpxor	%xmm7,%xmm3,%xmm3
2992	addl	48(%rsp),%ebx
2993	xorl	%ebp,%esi
2994	movl	%ecx,%edi
2995	shldl	$5,%ecx,%ecx
2996	vpxor	%xmm4,%xmm3,%xmm3
2997	addl	%esi,%ebx
2998	xorl	%ebp,%edi
2999	vpaddd	%xmm2,%xmm11,%xmm9
3000	shrdl	$7,%edx,%edx
3001	addl	%ecx,%ebx
3002	vpxor	%xmm8,%xmm3,%xmm3
3003	addl	52(%rsp),%eax
3004	xorl	%edx,%edi
3005	movl	%ebx,%esi
3006	shldl	$5,%ebx,%ebx
3007	vpsrld	$30,%xmm3,%xmm8
3008	vmovdqa	%xmm9,32(%rsp)
3009	addl	%edi,%eax
3010	xorl	%edx,%esi
3011	shrdl	$7,%ecx,%ecx
3012	addl	%ebx,%eax
3013	vpslld	$2,%xmm3,%xmm3
3014	addl	56(%rsp),%ebp
3015	xorl	%ecx,%esi
3016	movl	%eax,%edi
3017	shldl	$5,%eax,%eax
3018	addl	%esi,%ebp
3019	xorl	%ecx,%edi
3020	shrdl	$7,%ebx,%ebx
3021	addl	%eax,%ebp
3022	vpor	%xmm8,%xmm3,%xmm3
3023	addl	60(%rsp),%edx
3024	xorl	%ebx,%edi
3025	movl	%ebp,%esi
3026	shldl	$5,%ebp,%ebp
3027	addl	%edi,%edx
3028	xorl	%ebx,%esi
3029	shrdl	$7,%eax,%eax
3030	addl	%ebp,%edx
3031	vpalignr	$8,%xmm2,%xmm3,%xmm8
3032	vpxor	%xmm0,%xmm4,%xmm4
3033	addl	0(%rsp),%ecx
3034	xorl	%eax,%esi
3035	movl	%edx,%edi
3036	shldl	$5,%edx,%edx
3037	vpxor	%xmm5,%xmm4,%xmm4
3038	addl	%esi,%ecx
3039	xorl	%eax,%edi
3040	vpaddd	%xmm3,%xmm11,%xmm9
3041	shrdl	$7,%ebp,%ebp
3042	addl	%edx,%ecx
3043	vpxor	%xmm8,%xmm4,%xmm4
3044	addl	4(%rsp),%ebx
3045	xorl	%ebp,%edi
3046	movl	%ecx,%esi
3047	shldl	$5,%ecx,%ecx
3048	vpsrld	$30,%xmm4,%xmm8
3049	vmovdqa	%xmm9,48(%rsp)
3050	addl	%edi,%ebx
3051	xorl	%ebp,%esi
3052	shrdl	$7,%edx,%edx
3053	addl	%ecx,%ebx
3054	vpslld	$2,%xmm4,%xmm4
3055	addl	8(%rsp),%eax
3056	xorl	%edx,%esi
3057	movl	%ebx,%edi
3058	shldl	$5,%ebx,%ebx
3059	addl	%esi,%eax
3060	xorl	%edx,%edi
3061	shrdl	$7,%ecx,%ecx
3062	addl	%ebx,%eax
3063	vpor	%xmm8,%xmm4,%xmm4
3064	addl	12(%rsp),%ebp
3065	xorl	%ecx,%edi
3066	movl	%eax,%esi
3067	shldl	$5,%eax,%eax
3068	addl	%edi,%ebp
3069	xorl	%ecx,%esi
3070	shrdl	$7,%ebx,%ebx
3071	addl	%eax,%ebp
3072	vpalignr	$8,%xmm3,%xmm4,%xmm8
3073	vpxor	%xmm1,%xmm5,%xmm5
3074	addl	16(%rsp),%edx
3075	xorl	%ebx,%esi
3076	movl	%ebp,%edi
3077	shldl	$5,%ebp,%ebp
3078	vpxor	%xmm6,%xmm5,%xmm5
3079	addl	%esi,%edx
3080	xorl	%ebx,%edi
3081	vpaddd	%xmm4,%xmm11,%xmm9
3082	shrdl	$7,%eax,%eax
3083	addl	%ebp,%edx
3084	vpxor	%xmm8,%xmm5,%xmm5
3085	addl	20(%rsp),%ecx
3086	xorl	%eax,%edi
3087	movl	%edx,%esi
3088	shldl	$5,%edx,%edx
3089	vpsrld	$30,%xmm5,%xmm8
3090	vmovdqa	%xmm9,0(%rsp)
3091	addl	%edi,%ecx
3092	xorl	%eax,%esi
3093	shrdl	$7,%ebp,%ebp
3094	addl	%edx,%ecx
3095	vpslld	$2,%xmm5,%xmm5
3096	addl	24(%rsp),%ebx
3097	xorl	%ebp,%esi
3098	movl	%ecx,%edi
3099	shldl	$5,%ecx,%ecx
3100	addl	%esi,%ebx
3101	xorl	%ebp,%edi
3102	shrdl	$7,%edx,%edx
3103	addl	%ecx,%ebx
3104	vpor	%xmm8,%xmm5,%xmm5
3105	addl	28(%rsp),%eax
3106	shrdl	$7,%ecx,%ecx
3107	movl	%ebx,%esi
3108	xorl	%edx,%edi
3109	shldl	$5,%ebx,%ebx
3110	addl	%edi,%eax
3111	xorl	%ecx,%esi
3112	xorl	%edx,%ecx
3113	addl	%ebx,%eax
3114	vpalignr	$8,%xmm4,%xmm5,%xmm8
3115	vpxor	%xmm2,%xmm6,%xmm6
3116	addl	32(%rsp),%ebp
3117	andl	%ecx,%esi
3118	xorl	%edx,%ecx
3119	shrdl	$7,%ebx,%ebx
3120	vpxor	%xmm7,%xmm6,%xmm6
3121	movl	%eax,%edi
3122	xorl	%ecx,%esi
3123	vpaddd	%xmm5,%xmm11,%xmm9
3124	shldl	$5,%eax,%eax
3125	addl	%esi,%ebp
3126	vpxor	%xmm8,%xmm6,%xmm6
3127	xorl	%ebx,%edi
3128	xorl	%ecx,%ebx
3129	addl	%eax,%ebp
3130	addl	36(%rsp),%edx
3131	vpsrld	$30,%xmm6,%xmm8
3132	vmovdqa	%xmm9,16(%rsp)
3133	andl	%ebx,%edi
3134	xorl	%ecx,%ebx
3135	shrdl	$7,%eax,%eax
3136	movl	%ebp,%esi
3137	vpslld	$2,%xmm6,%xmm6
3138	xorl	%ebx,%edi
3139	shldl	$5,%ebp,%ebp
3140	addl	%edi,%edx
3141	xorl	%eax,%esi
3142	xorl	%ebx,%eax
3143	addl	%ebp,%edx
3144	addl	40(%rsp),%ecx
3145	andl	%eax,%esi
3146	vpor	%xmm8,%xmm6,%xmm6
3147	xorl	%ebx,%eax
3148	shrdl	$7,%ebp,%ebp
3149	movl	%edx,%edi
3150	xorl	%eax,%esi
3151	shldl	$5,%edx,%edx
3152	addl	%esi,%ecx
3153	xorl	%ebp,%edi
3154	xorl	%eax,%ebp
3155	addl	%edx,%ecx
3156	addl	44(%rsp),%ebx
3157	andl	%ebp,%edi
3158	xorl	%eax,%ebp
3159	shrdl	$7,%edx,%edx
3160	movl	%ecx,%esi
3161	xorl	%ebp,%edi
3162	shldl	$5,%ecx,%ecx
3163	addl	%edi,%ebx
3164	xorl	%edx,%esi
3165	xorl	%ebp,%edx
3166	addl	%ecx,%ebx
3167	vpalignr	$8,%xmm5,%xmm6,%xmm8
3168	vpxor	%xmm3,%xmm7,%xmm7
3169	addl	48(%rsp),%eax
3170	andl	%edx,%esi
3171	xorl	%ebp,%edx
3172	shrdl	$7,%ecx,%ecx
3173	vpxor	%xmm0,%xmm7,%xmm7
3174	movl	%ebx,%edi
3175	xorl	%edx,%esi
3176	vpaddd	%xmm6,%xmm11,%xmm9
3177	vmovdqa	32(%r11),%xmm11
3178	shldl	$5,%ebx,%ebx
3179	addl	%esi,%eax
3180	vpxor	%xmm8,%xmm7,%xmm7
3181	xorl	%ecx,%edi
3182	xorl	%edx,%ecx
3183	addl	%ebx,%eax
3184	addl	52(%rsp),%ebp
3185	vpsrld	$30,%xmm7,%xmm8
3186	vmovdqa	%xmm9,32(%rsp)
3187	andl	%ecx,%edi
3188	xorl	%edx,%ecx
3189	shrdl	$7,%ebx,%ebx
3190	movl	%eax,%esi
3191	vpslld	$2,%xmm7,%xmm7
3192	xorl	%ecx,%edi
3193	shldl	$5,%eax,%eax
3194	addl	%edi,%ebp
3195	xorl	%ebx,%esi
3196	xorl	%ecx,%ebx
3197	addl	%eax,%ebp
3198	addl	56(%rsp),%edx
3199	andl	%ebx,%esi
3200	vpor	%xmm8,%xmm7,%xmm7
3201	xorl	%ecx,%ebx
3202	shrdl	$7,%eax,%eax
3203	movl	%ebp,%edi
3204	xorl	%ebx,%esi
3205	shldl	$5,%ebp,%ebp
3206	addl	%esi,%edx
3207	xorl	%eax,%edi
3208	xorl	%ebx,%eax
3209	addl	%ebp,%edx
3210	addl	60(%rsp),%ecx
3211	andl	%eax,%edi
3212	xorl	%ebx,%eax
3213	shrdl	$7,%ebp,%ebp
3214	movl	%edx,%esi
3215	xorl	%eax,%edi
3216	shldl	$5,%edx,%edx
3217	addl	%edi,%ecx
3218	xorl	%ebp,%esi
3219	xorl	%eax,%ebp
3220	addl	%edx,%ecx
3221	vpalignr	$8,%xmm6,%xmm7,%xmm8
3222	vpxor	%xmm4,%xmm0,%xmm0
3223	addl	0(%rsp),%ebx
3224	andl	%ebp,%esi
3225	xorl	%eax,%ebp
3226	shrdl	$7,%edx,%edx
3227	vpxor	%xmm1,%xmm0,%xmm0
3228	movl	%ecx,%edi
3229	xorl	%ebp,%esi
3230	vpaddd	%xmm7,%xmm11,%xmm9
3231	shldl	$5,%ecx,%ecx
3232	addl	%esi,%ebx
3233	vpxor	%xmm8,%xmm0,%xmm0
3234	xorl	%edx,%edi
3235	xorl	%ebp,%edx
3236	addl	%ecx,%ebx
3237	addl	4(%rsp),%eax
3238	vpsrld	$30,%xmm0,%xmm8
3239	vmovdqa	%xmm9,48(%rsp)
3240	andl	%edx,%edi
3241	xorl	%ebp,%edx
3242	shrdl	$7,%ecx,%ecx
3243	movl	%ebx,%esi
3244	vpslld	$2,%xmm0,%xmm0
3245	xorl	%edx,%edi
3246	shldl	$5,%ebx,%ebx
3247	addl	%edi,%eax
3248	xorl	%ecx,%esi
3249	xorl	%edx,%ecx
3250	addl	%ebx,%eax
3251	addl	8(%rsp),%ebp
3252	andl	%ecx,%esi
3253	vpor	%xmm8,%xmm0,%xmm0
3254	xorl	%edx,%ecx
3255	shrdl	$7,%ebx,%ebx
3256	movl	%eax,%edi
3257	xorl	%ecx,%esi
3258	shldl	$5,%eax,%eax
3259	addl	%esi,%ebp
3260	xorl	%ebx,%edi
3261	xorl	%ecx,%ebx
3262	addl	%eax,%ebp
3263	addl	12(%rsp),%edx
3264	andl	%ebx,%edi
3265	xorl	%ecx,%ebx
3266	shrdl	$7,%eax,%eax
3267	movl	%ebp,%esi
3268	xorl	%ebx,%edi
3269	shldl	$5,%ebp,%ebp
3270	addl	%edi,%edx
3271	xorl	%eax,%esi
3272	xorl	%ebx,%eax
3273	addl	%ebp,%edx
3274	vpalignr	$8,%xmm7,%xmm0,%xmm8
3275	vpxor	%xmm5,%xmm1,%xmm1
3276	addl	16(%rsp),%ecx
3277	andl	%eax,%esi
3278	xorl	%ebx,%eax
3279	shrdl	$7,%ebp,%ebp
3280	vpxor	%xmm2,%xmm1,%xmm1
3281	movl	%edx,%edi
3282	xorl	%eax,%esi
3283	vpaddd	%xmm0,%xmm11,%xmm9
3284	shldl	$5,%edx,%edx
3285	addl	%esi,%ecx
3286	vpxor	%xmm8,%xmm1,%xmm1
3287	xorl	%ebp,%edi
3288	xorl	%eax,%ebp
3289	addl	%edx,%ecx
3290	addl	20(%rsp),%ebx
3291	vpsrld	$30,%xmm1,%xmm8
3292	vmovdqa	%xmm9,0(%rsp)
3293	andl	%ebp,%edi
3294	xorl	%eax,%ebp
3295	shrdl	$7,%edx,%edx
3296	movl	%ecx,%esi
3297	vpslld	$2,%xmm1,%xmm1
3298	xorl	%ebp,%edi
3299	shldl	$5,%ecx,%ecx
3300	addl	%edi,%ebx
3301	xorl	%edx,%esi
3302	xorl	%ebp,%edx
3303	addl	%ecx,%ebx
3304	addl	24(%rsp),%eax
3305	andl	%edx,%esi
3306	vpor	%xmm8,%xmm1,%xmm1
3307	xorl	%ebp,%edx
3308	shrdl	$7,%ecx,%ecx
3309	movl	%ebx,%edi
3310	xorl	%edx,%esi
3311	shldl	$5,%ebx,%ebx
3312	addl	%esi,%eax
3313	xorl	%ecx,%edi
3314	xorl	%edx,%ecx
3315	addl	%ebx,%eax
3316	addl	28(%rsp),%ebp
3317	andl	%ecx,%edi
3318	xorl	%edx,%ecx
3319	shrdl	$7,%ebx,%ebx
3320	movl	%eax,%esi
3321	xorl	%ecx,%edi
3322	shldl	$5,%eax,%eax
3323	addl	%edi,%ebp
3324	xorl	%ebx,%esi
3325	xorl	%ecx,%ebx
3326	addl	%eax,%ebp
3327	vpalignr	$8,%xmm0,%xmm1,%xmm8
3328	vpxor	%xmm6,%xmm2,%xmm2
3329	addl	32(%rsp),%edx
3330	andl	%ebx,%esi
3331	xorl	%ecx,%ebx
3332	shrdl	$7,%eax,%eax
3333	vpxor	%xmm3,%xmm2,%xmm2
3334	movl	%ebp,%edi
3335	xorl	%ebx,%esi
3336	vpaddd	%xmm1,%xmm11,%xmm9
3337	shldl	$5,%ebp,%ebp
3338	addl	%esi,%edx
3339	vpxor	%xmm8,%xmm2,%xmm2
3340	xorl	%eax,%edi
3341	xorl	%ebx,%eax
3342	addl	%ebp,%edx
3343	addl	36(%rsp),%ecx
3344	vpsrld	$30,%xmm2,%xmm8
3345	vmovdqa	%xmm9,16(%rsp)
3346	andl	%eax,%edi
3347	xorl	%ebx,%eax
3348	shrdl	$7,%ebp,%ebp
3349	movl	%edx,%esi
3350	vpslld	$2,%xmm2,%xmm2
3351	xorl	%eax,%edi
3352	shldl	$5,%edx,%edx
3353	addl	%edi,%ecx
3354	xorl	%ebp,%esi
3355	xorl	%eax,%ebp
3356	addl	%edx,%ecx
3357	addl	40(%rsp),%ebx
3358	andl	%ebp,%esi
3359	vpor	%xmm8,%xmm2,%xmm2
3360	xorl	%eax,%ebp
3361	shrdl	$7,%edx,%edx
3362	movl	%ecx,%edi
3363	xorl	%ebp,%esi
3364	shldl	$5,%ecx,%ecx
3365	addl	%esi,%ebx
3366	xorl	%edx,%edi
3367	xorl	%ebp,%edx
3368	addl	%ecx,%ebx
3369	addl	44(%rsp),%eax
3370	andl	%edx,%edi
3371	xorl	%ebp,%edx
3372	shrdl	$7,%ecx,%ecx
3373	movl	%ebx,%esi
3374	xorl	%edx,%edi
3375	shldl	$5,%ebx,%ebx
3376	addl	%edi,%eax
3377	xorl	%edx,%esi
3378	addl	%ebx,%eax
3379	vpalignr	$8,%xmm1,%xmm2,%xmm8
3380	vpxor	%xmm7,%xmm3,%xmm3
3381	addl	48(%rsp),%ebp
3382	xorl	%ecx,%esi
3383	movl	%eax,%edi
3384	shldl	$5,%eax,%eax
3385	vpxor	%xmm4,%xmm3,%xmm3
3386	addl	%esi,%ebp
3387	xorl	%ecx,%edi
3388	vpaddd	%xmm2,%xmm11,%xmm9
3389	shrdl	$7,%ebx,%ebx
3390	addl	%eax,%ebp
3391	vpxor	%xmm8,%xmm3,%xmm3
3392	addl	52(%rsp),%edx
3393	xorl	%ebx,%edi
3394	movl	%ebp,%esi
3395	shldl	$5,%ebp,%ebp
3396	vpsrld	$30,%xmm3,%xmm8
3397	vmovdqa	%xmm9,32(%rsp)
3398	addl	%edi,%edx
3399	xorl	%ebx,%esi
3400	shrdl	$7,%eax,%eax
3401	addl	%ebp,%edx
3402	vpslld	$2,%xmm3,%xmm3
3403	addl	56(%rsp),%ecx
3404	xorl	%eax,%esi
3405	movl	%edx,%edi
3406	shldl	$5,%edx,%edx
3407	addl	%esi,%ecx
3408	xorl	%eax,%edi
3409	shrdl	$7,%ebp,%ebp
3410	addl	%edx,%ecx
3411	vpor	%xmm8,%xmm3,%xmm3
3412	addl	60(%rsp),%ebx
3413	xorl	%ebp,%edi
3414	movl	%ecx,%esi
3415	shldl	$5,%ecx,%ecx
3416	addl	%edi,%ebx
3417	xorl	%ebp,%esi
3418	shrdl	$7,%edx,%edx
3419	addl	%ecx,%ebx
3420	addl	0(%rsp),%eax
3421	vpaddd	%xmm3,%xmm11,%xmm9
3422	xorl	%edx,%esi
3423	movl	%ebx,%edi
3424	shldl	$5,%ebx,%ebx
3425	addl	%esi,%eax
3426	vmovdqa	%xmm9,48(%rsp)
3427	xorl	%edx,%edi
3428	shrdl	$7,%ecx,%ecx
3429	addl	%ebx,%eax
3430	addl	4(%rsp),%ebp
3431	xorl	%ecx,%edi
3432	movl	%eax,%esi
3433	shldl	$5,%eax,%eax
3434	addl	%edi,%ebp
3435	xorl	%ecx,%esi
3436	shrdl	$7,%ebx,%ebx
3437	addl	%eax,%ebp
3438	addl	8(%rsp),%edx
3439	xorl	%ebx,%esi
3440	movl	%ebp,%edi
3441	shldl	$5,%ebp,%ebp
3442	addl	%esi,%edx
3443	xorl	%ebx,%edi
3444	shrdl	$7,%eax,%eax
3445	addl	%ebp,%edx
3446	addl	12(%rsp),%ecx
3447	xorl	%eax,%edi
3448	movl	%edx,%esi
3449	shldl	$5,%edx,%edx
3450	addl	%edi,%ecx
3451	xorl	%eax,%esi
3452	shrdl	$7,%ebp,%ebp
3453	addl	%edx,%ecx
3454	cmpq	%r10,%r9
3455	je	.Ldone_avx
3456	vmovdqa	64(%r11),%xmm6
3457	vmovdqa	-64(%r11),%xmm11
3458	vmovdqu	0(%r9),%xmm0
3459	vmovdqu	16(%r9),%xmm1
3460	vmovdqu	32(%r9),%xmm2
3461	vmovdqu	48(%r9),%xmm3
3462	vpshufb	%xmm6,%xmm0,%xmm0
3463	addq	$64,%r9
3464	addl	16(%rsp),%ebx
3465	xorl	%ebp,%esi
3466	vpshufb	%xmm6,%xmm1,%xmm1
3467	movl	%ecx,%edi
3468	shldl	$5,%ecx,%ecx
3469	vpaddd	%xmm11,%xmm0,%xmm4
3470	addl	%esi,%ebx
3471	xorl	%ebp,%edi
3472	shrdl	$7,%edx,%edx
3473	addl	%ecx,%ebx
3474	vmovdqa	%xmm4,0(%rsp)
3475	addl	20(%rsp),%eax
3476	xorl	%edx,%edi
3477	movl	%ebx,%esi
3478	shldl	$5,%ebx,%ebx
3479	addl	%edi,%eax
3480	xorl	%edx,%esi
3481	shrdl	$7,%ecx,%ecx
3482	addl	%ebx,%eax
3483	addl	24(%rsp),%ebp
3484	xorl	%ecx,%esi
3485	movl	%eax,%edi
3486	shldl	$5,%eax,%eax
3487	addl	%esi,%ebp
3488	xorl	%ecx,%edi
3489	shrdl	$7,%ebx,%ebx
3490	addl	%eax,%ebp
3491	addl	28(%rsp),%edx
3492	xorl	%ebx,%edi
3493	movl	%ebp,%esi
3494	shldl	$5,%ebp,%ebp
3495	addl	%edi,%edx
3496	xorl	%ebx,%esi
3497	shrdl	$7,%eax,%eax
3498	addl	%ebp,%edx
3499	addl	32(%rsp),%ecx
3500	xorl	%eax,%esi
3501	vpshufb	%xmm6,%xmm2,%xmm2
3502	movl	%edx,%edi
3503	shldl	$5,%edx,%edx
3504	vpaddd	%xmm11,%xmm1,%xmm5
3505	addl	%esi,%ecx
3506	xorl	%eax,%edi
3507	shrdl	$7,%ebp,%ebp
3508	addl	%edx,%ecx
3509	vmovdqa	%xmm5,16(%rsp)
3510	addl	36(%rsp),%ebx
3511	xorl	%ebp,%edi
3512	movl	%ecx,%esi
3513	shldl	$5,%ecx,%ecx
3514	addl	%edi,%ebx
3515	xorl	%ebp,%esi
3516	shrdl	$7,%edx,%edx
3517	addl	%ecx,%ebx
3518	addl	40(%rsp),%eax
3519	xorl	%edx,%esi
3520	movl	%ebx,%edi
3521	shldl	$5,%ebx,%ebx
3522	addl	%esi,%eax
3523	xorl	%edx,%edi
3524	shrdl	$7,%ecx,%ecx
3525	addl	%ebx,%eax
3526	addl	44(%rsp),%ebp
3527	xorl	%ecx,%edi
3528	movl	%eax,%esi
3529	shldl	$5,%eax,%eax
3530	addl	%edi,%ebp
3531	xorl	%ecx,%esi
3532	shrdl	$7,%ebx,%ebx
3533	addl	%eax,%ebp
3534	addl	48(%rsp),%edx
3535	xorl	%ebx,%esi
3536	vpshufb	%xmm6,%xmm3,%xmm3
3537	movl	%ebp,%edi
3538	shldl	$5,%ebp,%ebp
3539	vpaddd	%xmm11,%xmm2,%xmm6
3540	addl	%esi,%edx
3541	xorl	%ebx,%edi
3542	shrdl	$7,%eax,%eax
3543	addl	%ebp,%edx
3544	vmovdqa	%xmm6,32(%rsp)
3545	addl	52(%rsp),%ecx
3546	xorl	%eax,%edi
3547	movl	%edx,%esi
3548	shldl	$5,%edx,%edx
3549	addl	%edi,%ecx
3550	xorl	%eax,%esi
3551	shrdl	$7,%ebp,%ebp
3552	addl	%edx,%ecx
3553	addl	56(%rsp),%ebx
3554	xorl	%ebp,%esi
3555	movl	%ecx,%edi
3556	shldl	$5,%ecx,%ecx
3557	addl	%esi,%ebx
3558	xorl	%ebp,%edi
3559	shrdl	$7,%edx,%edx
3560	addl	%ecx,%ebx
3561	addl	60(%rsp),%eax
3562	xorl	%edx,%edi
3563	movl	%ebx,%esi
3564	shldl	$5,%ebx,%ebx
3565	addl	%edi,%eax
3566	shrdl	$7,%ecx,%ecx
3567	addl	%ebx,%eax
3568	addl	0(%r8),%eax
3569	addl	4(%r8),%esi
3570	addl	8(%r8),%ecx
3571	addl	12(%r8),%edx
3572	movl	%eax,0(%r8)
3573	addl	16(%r8),%ebp
3574	movl	%esi,4(%r8)
3575	movl	%esi,%ebx
3576	movl	%ecx,8(%r8)
3577	movl	%ecx,%edi
3578	movl	%edx,12(%r8)
3579	xorl	%edx,%edi
3580	movl	%ebp,16(%r8)
3581	andl	%edi,%esi
3582	jmp	.Loop_avx
3583
3584.align	16
3585.Ldone_avx:
3586	addl	16(%rsp),%ebx
3587	xorl	%ebp,%esi
3588	movl	%ecx,%edi
3589	shldl	$5,%ecx,%ecx
3590	addl	%esi,%ebx
3591	xorl	%ebp,%edi
3592	shrdl	$7,%edx,%edx
3593	addl	%ecx,%ebx
3594	addl	20(%rsp),%eax
3595	xorl	%edx,%edi
3596	movl	%ebx,%esi
3597	shldl	$5,%ebx,%ebx
3598	addl	%edi,%eax
3599	xorl	%edx,%esi
3600	shrdl	$7,%ecx,%ecx
3601	addl	%ebx,%eax
3602	addl	24(%rsp),%ebp
3603	xorl	%ecx,%esi
3604	movl	%eax,%edi
3605	shldl	$5,%eax,%eax
3606	addl	%esi,%ebp
3607	xorl	%ecx,%edi
3608	shrdl	$7,%ebx,%ebx
3609	addl	%eax,%ebp
3610	addl	28(%rsp),%edx
3611	xorl	%ebx,%edi
3612	movl	%ebp,%esi
3613	shldl	$5,%ebp,%ebp
3614	addl	%edi,%edx
3615	xorl	%ebx,%esi
3616	shrdl	$7,%eax,%eax
3617	addl	%ebp,%edx
3618	addl	32(%rsp),%ecx
3619	xorl	%eax,%esi
3620	movl	%edx,%edi
3621	shldl	$5,%edx,%edx
3622	addl	%esi,%ecx
3623	xorl	%eax,%edi
3624	shrdl	$7,%ebp,%ebp
3625	addl	%edx,%ecx
3626	addl	36(%rsp),%ebx
3627	xorl	%ebp,%edi
3628	movl	%ecx,%esi
3629	shldl	$5,%ecx,%ecx
3630	addl	%edi,%ebx
3631	xorl	%ebp,%esi
3632	shrdl	$7,%edx,%edx
3633	addl	%ecx,%ebx
3634	addl	40(%rsp),%eax
3635	xorl	%edx,%esi
3636	movl	%ebx,%edi
3637	shldl	$5,%ebx,%ebx
3638	addl	%esi,%eax
3639	xorl	%edx,%edi
3640	shrdl	$7,%ecx,%ecx
3641	addl	%ebx,%eax
3642	addl	44(%rsp),%ebp
3643	xorl	%ecx,%edi
3644	movl	%eax,%esi
3645	shldl	$5,%eax,%eax
3646	addl	%edi,%ebp
3647	xorl	%ecx,%esi
3648	shrdl	$7,%ebx,%ebx
3649	addl	%eax,%ebp
3650	addl	48(%rsp),%edx
3651	xorl	%ebx,%esi
3652	movl	%ebp,%edi
3653	shldl	$5,%ebp,%ebp
3654	addl	%esi,%edx
3655	xorl	%ebx,%edi
3656	shrdl	$7,%eax,%eax
3657	addl	%ebp,%edx
3658	addl	52(%rsp),%ecx
3659	xorl	%eax,%edi
3660	movl	%edx,%esi
3661	shldl	$5,%edx,%edx
3662	addl	%edi,%ecx
3663	xorl	%eax,%esi
3664	shrdl	$7,%ebp,%ebp
3665	addl	%edx,%ecx
3666	addl	56(%rsp),%ebx
3667	xorl	%ebp,%esi
3668	movl	%ecx,%edi
3669	shldl	$5,%ecx,%ecx
3670	addl	%esi,%ebx
3671	xorl	%ebp,%edi
3672	shrdl	$7,%edx,%edx
3673	addl	%ecx,%ebx
3674	addl	60(%rsp),%eax
3675	xorl	%edx,%edi
3676	movl	%ebx,%esi
3677	shldl	$5,%ebx,%ebx
3678	addl	%edi,%eax
3679	shrdl	$7,%ecx,%ecx
3680	addl	%ebx,%eax
3681	vzeroupper
3682
3683	addl	0(%r8),%eax
3684	addl	4(%r8),%esi
3685	addl	8(%r8),%ecx
3686	movl	%eax,0(%r8)
3687	addl	12(%r8),%edx
3688	movl	%esi,4(%r8)
3689	addl	16(%r8),%ebp
3690	movl	%ecx,8(%r8)
3691	movl	%edx,12(%r8)
3692	movl	%ebp,16(%r8)
3693	leaq	(%r14),%rsi
3694	movq	-40(%rsi),%r14
3695	movq	-32(%rsi),%r13
3696	movq	-24(%rsi),%r12
3697	movq	-16(%rsi),%rbp
3698	movq	-8(%rsi),%rbx
3699	leaq	(%rsi),%rsp
3700.Lepilogue_avx:
3701	.byte	0xf3,0xc3
3702.size	sha1_block_data_order_avx,.-sha1_block_data_order_avx
3703.type	sha1_block_data_order_avx2,@function
3704.align	16
3705sha1_block_data_order_avx2:
3706_avx2_shortcut:
3707	movq	%rsp,%rax
3708	pushq	%rbx
3709	pushq	%rbp
3710	pushq	%r12
3711	pushq	%r13
3712	pushq	%r14
3713	vzeroupper
3714	movq	%rax,%r14
3715	movq	%rdi,%r8
3716	movq	%rsi,%r9
3717	movq	%rdx,%r10
3718
3719	leaq	-640(%rsp),%rsp
3720	shlq	$6,%r10
3721	leaq	64(%r9),%r13
3722	andq	$-128,%rsp
3723	addq	%r9,%r10
3724	leaq	K_XX_XX+64(%rip),%r11
3725
3726	movl	0(%r8),%eax
3727	cmpq	%r10,%r13
3728	cmovaeq	%r9,%r13
3729	movl	4(%r8),%ebp
3730	movl	8(%r8),%ecx
3731	movl	12(%r8),%edx
3732	movl	16(%r8),%esi
3733	vmovdqu	64(%r11),%ymm6
3734
3735	vmovdqu	(%r9),%xmm0
3736	vmovdqu	16(%r9),%xmm1
3737	vmovdqu	32(%r9),%xmm2
3738	vmovdqu	48(%r9),%xmm3
3739	leaq	64(%r9),%r9
3740	vinserti128	$1,(%r13),%ymm0,%ymm0
3741	vinserti128	$1,16(%r13),%ymm1,%ymm1
3742	vpshufb	%ymm6,%ymm0,%ymm0
3743	vinserti128	$1,32(%r13),%ymm2,%ymm2
3744	vpshufb	%ymm6,%ymm1,%ymm1
3745	vinserti128	$1,48(%r13),%ymm3,%ymm3
3746	vpshufb	%ymm6,%ymm2,%ymm2
3747	vmovdqu	-64(%r11),%ymm11
3748	vpshufb	%ymm6,%ymm3,%ymm3
3749
3750	vpaddd	%ymm11,%ymm0,%ymm4
3751	vpaddd	%ymm11,%ymm1,%ymm5
3752	vmovdqu	%ymm4,0(%rsp)
3753	vpaddd	%ymm11,%ymm2,%ymm6
3754	vmovdqu	%ymm5,32(%rsp)
3755	vpaddd	%ymm11,%ymm3,%ymm7
3756	vmovdqu	%ymm6,64(%rsp)
3757	vmovdqu	%ymm7,96(%rsp)
3758	vpalignr	$8,%ymm0,%ymm1,%ymm4
3759	vpsrldq	$4,%ymm3,%ymm8
3760	vpxor	%ymm0,%ymm4,%ymm4
3761	vpxor	%ymm2,%ymm8,%ymm8
3762	vpxor	%ymm8,%ymm4,%ymm4
3763	vpsrld	$31,%ymm4,%ymm8
3764	vpslldq	$12,%ymm4,%ymm10
3765	vpaddd	%ymm4,%ymm4,%ymm4
3766	vpsrld	$30,%ymm10,%ymm9
3767	vpor	%ymm8,%ymm4,%ymm4
3768	vpslld	$2,%ymm10,%ymm10
3769	vpxor	%ymm9,%ymm4,%ymm4
3770	vpxor	%ymm10,%ymm4,%ymm4
3771	vpaddd	%ymm11,%ymm4,%ymm9
3772	vmovdqu	%ymm9,128(%rsp)
3773	vpalignr	$8,%ymm1,%ymm2,%ymm5
3774	vpsrldq	$4,%ymm4,%ymm8
3775	vpxor	%ymm1,%ymm5,%ymm5
3776	vpxor	%ymm3,%ymm8,%ymm8
3777	vpxor	%ymm8,%ymm5,%ymm5
3778	vpsrld	$31,%ymm5,%ymm8
3779	vmovdqu	-32(%r11),%ymm11
3780	vpslldq	$12,%ymm5,%ymm10
3781	vpaddd	%ymm5,%ymm5,%ymm5
3782	vpsrld	$30,%ymm10,%ymm9
3783	vpor	%ymm8,%ymm5,%ymm5
3784	vpslld	$2,%ymm10,%ymm10
3785	vpxor	%ymm9,%ymm5,%ymm5
3786	vpxor	%ymm10,%ymm5,%ymm5
3787	vpaddd	%ymm11,%ymm5,%ymm9
3788	vmovdqu	%ymm9,160(%rsp)
3789	vpalignr	$8,%ymm2,%ymm3,%ymm6
3790	vpsrldq	$4,%ymm5,%ymm8
3791	vpxor	%ymm2,%ymm6,%ymm6
3792	vpxor	%ymm4,%ymm8,%ymm8
3793	vpxor	%ymm8,%ymm6,%ymm6
3794	vpsrld	$31,%ymm6,%ymm8
3795	vpslldq	$12,%ymm6,%ymm10
3796	vpaddd	%ymm6,%ymm6,%ymm6
3797	vpsrld	$30,%ymm10,%ymm9
3798	vpor	%ymm8,%ymm6,%ymm6
3799	vpslld	$2,%ymm10,%ymm10
3800	vpxor	%ymm9,%ymm6,%ymm6
3801	vpxor	%ymm10,%ymm6,%ymm6
3802	vpaddd	%ymm11,%ymm6,%ymm9
3803	vmovdqu	%ymm9,192(%rsp)
3804	vpalignr	$8,%ymm3,%ymm4,%ymm7
3805	vpsrldq	$4,%ymm6,%ymm8
3806	vpxor	%ymm3,%ymm7,%ymm7
3807	vpxor	%ymm5,%ymm8,%ymm8
3808	vpxor	%ymm8,%ymm7,%ymm7
3809	vpsrld	$31,%ymm7,%ymm8
3810	vpslldq	$12,%ymm7,%ymm10
3811	vpaddd	%ymm7,%ymm7,%ymm7
3812	vpsrld	$30,%ymm10,%ymm9
3813	vpor	%ymm8,%ymm7,%ymm7
3814	vpslld	$2,%ymm10,%ymm10
3815	vpxor	%ymm9,%ymm7,%ymm7
3816	vpxor	%ymm10,%ymm7,%ymm7
3817	vpaddd	%ymm11,%ymm7,%ymm9
3818	vmovdqu	%ymm9,224(%rsp)
3819	leaq	128(%rsp),%r13
3820	jmp	.Loop_avx2
3821.align	32
3822.Loop_avx2:
3823	rorxl	$2,%ebp,%ebx
3824	andnl	%edx,%ebp,%edi
3825	andl	%ecx,%ebp
3826	xorl	%edi,%ebp
3827	jmp	.Lalign32_1
3828.align	32
3829.Lalign32_1:
3830	vpalignr	$8,%ymm6,%ymm7,%ymm8
3831	vpxor	%ymm4,%ymm0,%ymm0
3832	addl	-128(%r13),%esi
3833	andnl	%ecx,%eax,%edi
3834	vpxor	%ymm1,%ymm0,%ymm0
3835	addl	%ebp,%esi
3836	rorxl	$27,%eax,%r12d
3837	rorxl	$2,%eax,%ebp
3838	vpxor	%ymm8,%ymm0,%ymm0
3839	andl	%ebx,%eax
3840	addl	%r12d,%esi
3841	xorl	%edi,%eax
3842	vpsrld	$30,%ymm0,%ymm8
3843	vpslld	$2,%ymm0,%ymm0
3844	addl	-124(%r13),%edx
3845	andnl	%ebx,%esi,%edi
3846	addl	%eax,%edx
3847	rorxl	$27,%esi,%r12d
3848	rorxl	$2,%esi,%eax
3849	andl	%ebp,%esi
3850	vpor	%ymm8,%ymm0,%ymm0
3851	addl	%r12d,%edx
3852	xorl	%edi,%esi
3853	addl	-120(%r13),%ecx
3854	andnl	%ebp,%edx,%edi
3855	vpaddd	%ymm11,%ymm0,%ymm9
3856	addl	%esi,%ecx
3857	rorxl	$27,%edx,%r12d
3858	rorxl	$2,%edx,%esi
3859	andl	%eax,%edx
3860	vmovdqu	%ymm9,256(%rsp)
3861	addl	%r12d,%ecx
3862	xorl	%edi,%edx
3863	addl	-116(%r13),%ebx
3864	andnl	%eax,%ecx,%edi
3865	addl	%edx,%ebx
3866	rorxl	$27,%ecx,%r12d
3867	rorxl	$2,%ecx,%edx
3868	andl	%esi,%ecx
3869	addl	%r12d,%ebx
3870	xorl	%edi,%ecx
3871	addl	-96(%r13),%ebp
3872	andnl	%esi,%ebx,%edi
3873	addl	%ecx,%ebp
3874	rorxl	$27,%ebx,%r12d
3875	rorxl	$2,%ebx,%ecx
3876	andl	%edx,%ebx
3877	addl	%r12d,%ebp
3878	xorl	%edi,%ebx
3879	vpalignr	$8,%ymm7,%ymm0,%ymm8
3880	vpxor	%ymm5,%ymm1,%ymm1
3881	addl	-92(%r13),%eax
3882	andnl	%edx,%ebp,%edi
3883	vpxor	%ymm2,%ymm1,%ymm1
3884	addl	%ebx,%eax
3885	rorxl	$27,%ebp,%r12d
3886	rorxl	$2,%ebp,%ebx
3887	vpxor	%ymm8,%ymm1,%ymm1
3888	andl	%ecx,%ebp
3889	addl	%r12d,%eax
3890	xorl	%edi,%ebp
3891	vpsrld	$30,%ymm1,%ymm8
3892	vpslld	$2,%ymm1,%ymm1
3893	addl	-88(%r13),%esi
3894	andnl	%ecx,%eax,%edi
3895	addl	%ebp,%esi
3896	rorxl	$27,%eax,%r12d
3897	rorxl	$2,%eax,%ebp
3898	andl	%ebx,%eax
3899	vpor	%ymm8,%ymm1,%ymm1
3900	addl	%r12d,%esi
3901	xorl	%edi,%eax
3902	addl	-84(%r13),%edx
3903	andnl	%ebx,%esi,%edi
3904	vpaddd	%ymm11,%ymm1,%ymm9
3905	addl	%eax,%edx
3906	rorxl	$27,%esi,%r12d
3907	rorxl	$2,%esi,%eax
3908	andl	%ebp,%esi
3909	vmovdqu	%ymm9,288(%rsp)
3910	addl	%r12d,%edx
3911	xorl	%edi,%esi
3912	addl	-64(%r13),%ecx
3913	andnl	%ebp,%edx,%edi
3914	addl	%esi,%ecx
3915	rorxl	$27,%edx,%r12d
3916	rorxl	$2,%edx,%esi
3917	andl	%eax,%edx
3918	addl	%r12d,%ecx
3919	xorl	%edi,%edx
3920	addl	-60(%r13),%ebx
3921	andnl	%eax,%ecx,%edi
3922	addl	%edx,%ebx
3923	rorxl	$27,%ecx,%r12d
3924	rorxl	$2,%ecx,%edx
3925	andl	%esi,%ecx
3926	addl	%r12d,%ebx
3927	xorl	%edi,%ecx
3928	vpalignr	$8,%ymm0,%ymm1,%ymm8
3929	vpxor	%ymm6,%ymm2,%ymm2
3930	addl	-56(%r13),%ebp
3931	andnl	%esi,%ebx,%edi
3932	vpxor	%ymm3,%ymm2,%ymm2
3933	vmovdqu	0(%r11),%ymm11
3934	addl	%ecx,%ebp
3935	rorxl	$27,%ebx,%r12d
3936	rorxl	$2,%ebx,%ecx
3937	vpxor	%ymm8,%ymm2,%ymm2
3938	andl	%edx,%ebx
3939	addl	%r12d,%ebp
3940	xorl	%edi,%ebx
3941	vpsrld	$30,%ymm2,%ymm8
3942	vpslld	$2,%ymm2,%ymm2
3943	addl	-52(%r13),%eax
3944	andnl	%edx,%ebp,%edi
3945	addl	%ebx,%eax
3946	rorxl	$27,%ebp,%r12d
3947	rorxl	$2,%ebp,%ebx
3948	andl	%ecx,%ebp
3949	vpor	%ymm8,%ymm2,%ymm2
3950	addl	%r12d,%eax
3951	xorl	%edi,%ebp
3952	addl	-32(%r13),%esi
3953	andnl	%ecx,%eax,%edi
3954	vpaddd	%ymm11,%ymm2,%ymm9
3955	addl	%ebp,%esi
3956	rorxl	$27,%eax,%r12d
3957	rorxl	$2,%eax,%ebp
3958	andl	%ebx,%eax
3959	vmovdqu	%ymm9,320(%rsp)
3960	addl	%r12d,%esi
3961	xorl	%edi,%eax
3962	addl	-28(%r13),%edx
3963	andnl	%ebx,%esi,%edi
3964	addl	%eax,%edx
3965	rorxl	$27,%esi,%r12d
3966	rorxl	$2,%esi,%eax
3967	andl	%ebp,%esi
3968	addl	%r12d,%edx
3969	xorl	%edi,%esi
3970	addl	-24(%r13),%ecx
3971	andnl	%ebp,%edx,%edi
3972	addl	%esi,%ecx
3973	rorxl	$27,%edx,%r12d
3974	rorxl	$2,%edx,%esi
3975	andl	%eax,%edx
3976	addl	%r12d,%ecx
3977	xorl	%edi,%edx
3978	vpalignr	$8,%ymm1,%ymm2,%ymm8
3979	vpxor	%ymm7,%ymm3,%ymm3
3980	addl	-20(%r13),%ebx
3981	andnl	%eax,%ecx,%edi
3982	vpxor	%ymm4,%ymm3,%ymm3
3983	addl	%edx,%ebx
3984	rorxl	$27,%ecx,%r12d
3985	rorxl	$2,%ecx,%edx
3986	vpxor	%ymm8,%ymm3,%ymm3
3987	andl	%esi,%ecx
3988	addl	%r12d,%ebx
3989	xorl	%edi,%ecx
3990	vpsrld	$30,%ymm3,%ymm8
3991	vpslld	$2,%ymm3,%ymm3
3992	addl	0(%r13),%ebp
3993	andnl	%esi,%ebx,%edi
3994	addl	%ecx,%ebp
3995	rorxl	$27,%ebx,%r12d
3996	rorxl	$2,%ebx,%ecx
3997	andl	%edx,%ebx
3998	vpor	%ymm8,%ymm3,%ymm3
3999	addl	%r12d,%ebp
4000	xorl	%edi,%ebx
4001	addl	4(%r13),%eax
4002	andnl	%edx,%ebp,%edi
4003	vpaddd	%ymm11,%ymm3,%ymm9
4004	addl	%ebx,%eax
4005	rorxl	$27,%ebp,%r12d
4006	rorxl	$2,%ebp,%ebx
4007	andl	%ecx,%ebp
4008	vmovdqu	%ymm9,352(%rsp)
4009	addl	%r12d,%eax
4010	xorl	%edi,%ebp
4011	addl	8(%r13),%esi
4012	andnl	%ecx,%eax,%edi
4013	addl	%ebp,%esi
4014	rorxl	$27,%eax,%r12d
4015	rorxl	$2,%eax,%ebp
4016	andl	%ebx,%eax
4017	addl	%r12d,%esi
4018	xorl	%edi,%eax
4019	addl	12(%r13),%edx
4020	leal	(%rdx,%rax,1),%edx
4021	rorxl	$27,%esi,%r12d
4022	rorxl	$2,%esi,%eax
4023	xorl	%ebp,%esi
4024	addl	%r12d,%edx
4025	xorl	%ebx,%esi
4026	vpalignr	$8,%ymm2,%ymm3,%ymm8
4027	vpxor	%ymm0,%ymm4,%ymm4
4028	addl	32(%r13),%ecx
4029	leal	(%rcx,%rsi,1),%ecx
4030	vpxor	%ymm5,%ymm4,%ymm4
4031	rorxl	$27,%edx,%r12d
4032	rorxl	$2,%edx,%esi
4033	xorl	%eax,%edx
4034	vpxor	%ymm8,%ymm4,%ymm4
4035	addl	%r12d,%ecx
4036	xorl	%ebp,%edx
4037	addl	36(%r13),%ebx
4038	vpsrld	$30,%ymm4,%ymm8
4039	vpslld	$2,%ymm4,%ymm4
4040	leal	(%rbx,%rdx,1),%ebx
4041	rorxl	$27,%ecx,%r12d
4042	rorxl	$2,%ecx,%edx
4043	xorl	%esi,%ecx
4044	addl	%r12d,%ebx
4045	xorl	%eax,%ecx
4046	vpor	%ymm8,%ymm4,%ymm4
4047	addl	40(%r13),%ebp
4048	leal	(%rcx,%rbp,1),%ebp
4049	rorxl	$27,%ebx,%r12d
4050	rorxl	$2,%ebx,%ecx
4051	vpaddd	%ymm11,%ymm4,%ymm9
4052	xorl	%edx,%ebx
4053	addl	%r12d,%ebp
4054	xorl	%esi,%ebx
4055	addl	44(%r13),%eax
4056	vmovdqu	%ymm9,384(%rsp)
4057	leal	(%rax,%rbx,1),%eax
4058	rorxl	$27,%ebp,%r12d
4059	rorxl	$2,%ebp,%ebx
4060	xorl	%ecx,%ebp
4061	addl	%r12d,%eax
4062	xorl	%edx,%ebp
4063	addl	64(%r13),%esi
4064	leal	(%rsi,%rbp,1),%esi
4065	rorxl	$27,%eax,%r12d
4066	rorxl	$2,%eax,%ebp
4067	xorl	%ebx,%eax
4068	addl	%r12d,%esi
4069	xorl	%ecx,%eax
4070	vpalignr	$8,%ymm3,%ymm4,%ymm8
4071	vpxor	%ymm1,%ymm5,%ymm5
4072	addl	68(%r13),%edx
4073	leal	(%rdx,%rax,1),%edx
4074	vpxor	%ymm6,%ymm5,%ymm5
4075	rorxl	$27,%esi,%r12d
4076	rorxl	$2,%esi,%eax
4077	xorl	%ebp,%esi
4078	vpxor	%ymm8,%ymm5,%ymm5
4079	addl	%r12d,%edx
4080	xorl	%ebx,%esi
4081	addl	72(%r13),%ecx
4082	vpsrld	$30,%ymm5,%ymm8
4083	vpslld	$2,%ymm5,%ymm5
4084	leal	(%rcx,%rsi,1),%ecx
4085	rorxl	$27,%edx,%r12d
4086	rorxl	$2,%edx,%esi
4087	xorl	%eax,%edx
4088	addl	%r12d,%ecx
4089	xorl	%ebp,%edx
4090	vpor	%ymm8,%ymm5,%ymm5
4091	addl	76(%r13),%ebx
4092	leal	(%rbx,%rdx,1),%ebx
4093	rorxl	$27,%ecx,%r12d
4094	rorxl	$2,%ecx,%edx
4095	vpaddd	%ymm11,%ymm5,%ymm9
4096	xorl	%esi,%ecx
4097	addl	%r12d,%ebx
4098	xorl	%eax,%ecx
4099	addl	96(%r13),%ebp
4100	vmovdqu	%ymm9,416(%rsp)
4101	leal	(%rcx,%rbp,1),%ebp
4102	rorxl	$27,%ebx,%r12d
4103	rorxl	$2,%ebx,%ecx
4104	xorl	%edx,%ebx
4105	addl	%r12d,%ebp
4106	xorl	%esi,%ebx
4107	addl	100(%r13),%eax
4108	leal	(%rax,%rbx,1),%eax
4109	rorxl	$27,%ebp,%r12d
4110	rorxl	$2,%ebp,%ebx
4111	xorl	%ecx,%ebp
4112	addl	%r12d,%eax
4113	xorl	%edx,%ebp
4114	vpalignr	$8,%ymm4,%ymm5,%ymm8
4115	vpxor	%ymm2,%ymm6,%ymm6
4116	addl	104(%r13),%esi
4117	leal	(%rsi,%rbp,1),%esi
4118	vpxor	%ymm7,%ymm6,%ymm6
4119	rorxl	$27,%eax,%r12d
4120	rorxl	$2,%eax,%ebp
4121	xorl	%ebx,%eax
4122	vpxor	%ymm8,%ymm6,%ymm6
4123	addl	%r12d,%esi
4124	xorl	%ecx,%eax
4125	addl	108(%r13),%edx
4126	leaq	256(%r13),%r13
4127	vpsrld	$30,%ymm6,%ymm8
4128	vpslld	$2,%ymm6,%ymm6
4129	leal	(%rdx,%rax,1),%edx
4130	rorxl	$27,%esi,%r12d
4131	rorxl	$2,%esi,%eax
4132	xorl	%ebp,%esi
4133	addl	%r12d,%edx
4134	xorl	%ebx,%esi
4135	vpor	%ymm8,%ymm6,%ymm6
4136	addl	-128(%r13),%ecx
4137	leal	(%rcx,%rsi,1),%ecx
4138	rorxl	$27,%edx,%r12d
4139	rorxl	$2,%edx,%esi
4140	vpaddd	%ymm11,%ymm6,%ymm9
4141	xorl	%eax,%edx
4142	addl	%r12d,%ecx
4143	xorl	%ebp,%edx
4144	addl	-124(%r13),%ebx
4145	vmovdqu	%ymm9,448(%rsp)
4146	leal	(%rbx,%rdx,1),%ebx
4147	rorxl	$27,%ecx,%r12d
4148	rorxl	$2,%ecx,%edx
4149	xorl	%esi,%ecx
4150	addl	%r12d,%ebx
4151	xorl	%eax,%ecx
4152	addl	-120(%r13),%ebp
4153	leal	(%rcx,%rbp,1),%ebp
4154	rorxl	$27,%ebx,%r12d
4155	rorxl	$2,%ebx,%ecx
4156	xorl	%edx,%ebx
4157	addl	%r12d,%ebp
4158	xorl	%esi,%ebx
4159	vpalignr	$8,%ymm5,%ymm6,%ymm8
4160	vpxor	%ymm3,%ymm7,%ymm7
4161	addl	-116(%r13),%eax
4162	leal	(%rax,%rbx,1),%eax
4163	vpxor	%ymm0,%ymm7,%ymm7
4164	vmovdqu	32(%r11),%ymm11
4165	rorxl	$27,%ebp,%r12d
4166	rorxl	$2,%ebp,%ebx
4167	xorl	%ecx,%ebp
4168	vpxor	%ymm8,%ymm7,%ymm7
4169	addl	%r12d,%eax
4170	xorl	%edx,%ebp
4171	addl	-96(%r13),%esi
4172	vpsrld	$30,%ymm7,%ymm8
4173	vpslld	$2,%ymm7,%ymm7
4174	leal	(%rsi,%rbp,1),%esi
4175	rorxl	$27,%eax,%r12d
4176	rorxl	$2,%eax,%ebp
4177	xorl	%ebx,%eax
4178	addl	%r12d,%esi
4179	xorl	%ecx,%eax
4180	vpor	%ymm8,%ymm7,%ymm7
4181	addl	-92(%r13),%edx
4182	leal	(%rdx,%rax,1),%edx
4183	rorxl	$27,%esi,%r12d
4184	rorxl	$2,%esi,%eax
4185	vpaddd	%ymm11,%ymm7,%ymm9
4186	xorl	%ebp,%esi
4187	addl	%r12d,%edx
4188	xorl	%ebx,%esi
4189	addl	-88(%r13),%ecx
4190	vmovdqu	%ymm9,480(%rsp)
4191	leal	(%rcx,%rsi,1),%ecx
4192	rorxl	$27,%edx,%r12d
4193	rorxl	$2,%edx,%esi
4194	xorl	%eax,%edx
4195	addl	%r12d,%ecx
4196	xorl	%ebp,%edx
4197	addl	-84(%r13),%ebx
4198	movl	%esi,%edi
4199	xorl	%eax,%edi
4200	leal	(%rbx,%rdx,1),%ebx
4201	rorxl	$27,%ecx,%r12d
4202	rorxl	$2,%ecx,%edx
4203	xorl	%esi,%ecx
4204	addl	%r12d,%ebx
4205	andl	%edi,%ecx
4206	jmp	.Lalign32_2
4207.align	32
4208.Lalign32_2:
4209	vpalignr	$8,%ymm6,%ymm7,%ymm8
4210	vpxor	%ymm4,%ymm0,%ymm0
4211	addl	-64(%r13),%ebp
4212	xorl	%esi,%ecx
4213	vpxor	%ymm1,%ymm0,%ymm0
4214	movl	%edx,%edi
4215	xorl	%esi,%edi
4216	leal	(%rcx,%rbp,1),%ebp
4217	vpxor	%ymm8,%ymm0,%ymm0
4218	rorxl	$27,%ebx,%r12d
4219	rorxl	$2,%ebx,%ecx
4220	xorl	%edx,%ebx
4221	vpsrld	$30,%ymm0,%ymm8
4222	vpslld	$2,%ymm0,%ymm0
4223	addl	%r12d,%ebp
4224	andl	%edi,%ebx
4225	addl	-60(%r13),%eax
4226	xorl	%edx,%ebx
4227	movl	%ecx,%edi
4228	xorl	%edx,%edi
4229	vpor	%ymm8,%ymm0,%ymm0
4230	leal	(%rax,%rbx,1),%eax
4231	rorxl	$27,%ebp,%r12d
4232	rorxl	$2,%ebp,%ebx
4233	xorl	%ecx,%ebp
4234	vpaddd	%ymm11,%ymm0,%ymm9
4235	addl	%r12d,%eax
4236	andl	%edi,%ebp
4237	addl	-56(%r13),%esi
4238	xorl	%ecx,%ebp
4239	vmovdqu	%ymm9,512(%rsp)
4240	movl	%ebx,%edi
4241	xorl	%ecx,%edi
4242	leal	(%rsi,%rbp,1),%esi
4243	rorxl	$27,%eax,%r12d
4244	rorxl	$2,%eax,%ebp
4245	xorl	%ebx,%eax
4246	addl	%r12d,%esi
4247	andl	%edi,%eax
4248	addl	-52(%r13),%edx
4249	xorl	%ebx,%eax
4250	movl	%ebp,%edi
4251	xorl	%ebx,%edi
4252	leal	(%rdx,%rax,1),%edx
4253	rorxl	$27,%esi,%r12d
4254	rorxl	$2,%esi,%eax
4255	xorl	%ebp,%esi
4256	addl	%r12d,%edx
4257	andl	%edi,%esi
4258	addl	-32(%r13),%ecx
4259	xorl	%ebp,%esi
4260	movl	%eax,%edi
4261	xorl	%ebp,%edi
4262	leal	(%rcx,%rsi,1),%ecx
4263	rorxl	$27,%edx,%r12d
4264	rorxl	$2,%edx,%esi
4265	xorl	%eax,%edx
4266	addl	%r12d,%ecx
4267	andl	%edi,%edx
4268	vpalignr	$8,%ymm7,%ymm0,%ymm8
4269	vpxor	%ymm5,%ymm1,%ymm1
4270	addl	-28(%r13),%ebx
4271	xorl	%eax,%edx
4272	vpxor	%ymm2,%ymm1,%ymm1
4273	movl	%esi,%edi
4274	xorl	%eax,%edi
4275	leal	(%rbx,%rdx,1),%ebx
4276	vpxor	%ymm8,%ymm1,%ymm1
4277	rorxl	$27,%ecx,%r12d
4278	rorxl	$2,%ecx,%edx
4279	xorl	%esi,%ecx
4280	vpsrld	$30,%ymm1,%ymm8
4281	vpslld	$2,%ymm1,%ymm1
4282	addl	%r12d,%ebx
4283	andl	%edi,%ecx
4284	addl	-24(%r13),%ebp
4285	xorl	%esi,%ecx
4286	movl	%edx,%edi
4287	xorl	%esi,%edi
4288	vpor	%ymm8,%ymm1,%ymm1
4289	leal	(%rcx,%rbp,1),%ebp
4290	rorxl	$27,%ebx,%r12d
4291	rorxl	$2,%ebx,%ecx
4292	xorl	%edx,%ebx
4293	vpaddd	%ymm11,%ymm1,%ymm9
4294	addl	%r12d,%ebp
4295	andl	%edi,%ebx
4296	addl	-20(%r13),%eax
4297	xorl	%edx,%ebx
4298	vmovdqu	%ymm9,544(%rsp)
4299	movl	%ecx,%edi
4300	xorl	%edx,%edi
4301	leal	(%rax,%rbx,1),%eax
4302	rorxl	$27,%ebp,%r12d
4303	rorxl	$2,%ebp,%ebx
4304	xorl	%ecx,%ebp
4305	addl	%r12d,%eax
4306	andl	%edi,%ebp
4307	addl	0(%r13),%esi
4308	xorl	%ecx,%ebp
4309	movl	%ebx,%edi
4310	xorl	%ecx,%edi
4311	leal	(%rsi,%rbp,1),%esi
4312	rorxl	$27,%eax,%r12d
4313	rorxl	$2,%eax,%ebp
4314	xorl	%ebx,%eax
4315	addl	%r12d,%esi
4316	andl	%edi,%eax
4317	addl	4(%r13),%edx
4318	xorl	%ebx,%eax
4319	movl	%ebp,%edi
4320	xorl	%ebx,%edi
4321	leal	(%rdx,%rax,1),%edx
4322	rorxl	$27,%esi,%r12d
4323	rorxl	$2,%esi,%eax
4324	xorl	%ebp,%esi
4325	addl	%r12d,%edx
4326	andl	%edi,%esi
4327	vpalignr	$8,%ymm0,%ymm1,%ymm8
4328	vpxor	%ymm6,%ymm2,%ymm2
4329	addl	8(%r13),%ecx
4330	xorl	%ebp,%esi
4331	vpxor	%ymm3,%ymm2,%ymm2
4332	movl	%eax,%edi
4333	xorl	%ebp,%edi
4334	leal	(%rcx,%rsi,1),%ecx
4335	vpxor	%ymm8,%ymm2,%ymm2
4336	rorxl	$27,%edx,%r12d
4337	rorxl	$2,%edx,%esi
4338	xorl	%eax,%edx
4339	vpsrld	$30,%ymm2,%ymm8
4340	vpslld	$2,%ymm2,%ymm2
4341	addl	%r12d,%ecx
4342	andl	%edi,%edx
4343	addl	12(%r13),%ebx
4344	xorl	%eax,%edx
4345	movl	%esi,%edi
4346	xorl	%eax,%edi
4347	vpor	%ymm8,%ymm2,%ymm2
4348	leal	(%rbx,%rdx,1),%ebx
4349	rorxl	$27,%ecx,%r12d
4350	rorxl	$2,%ecx,%edx
4351	xorl	%esi,%ecx
4352	vpaddd	%ymm11,%ymm2,%ymm9
4353	addl	%r12d,%ebx
4354	andl	%edi,%ecx
4355	addl	32(%r13),%ebp
4356	xorl	%esi,%ecx
4357	vmovdqu	%ymm9,576(%rsp)
4358	movl	%edx,%edi
4359	xorl	%esi,%edi
4360	leal	(%rcx,%rbp,1),%ebp
4361	rorxl	$27,%ebx,%r12d
4362	rorxl	$2,%ebx,%ecx
4363	xorl	%edx,%ebx
4364	addl	%r12d,%ebp
4365	andl	%edi,%ebx
4366	addl	36(%r13),%eax
4367	xorl	%edx,%ebx
4368	movl	%ecx,%edi
4369	xorl	%edx,%edi
4370	leal	(%rax,%rbx,1),%eax
4371	rorxl	$27,%ebp,%r12d
4372	rorxl	$2,%ebp,%ebx
4373	xorl	%ecx,%ebp
4374	addl	%r12d,%eax
4375	andl	%edi,%ebp
4376	addl	40(%r13),%esi
4377	xorl	%ecx,%ebp
4378	movl	%ebx,%edi
4379	xorl	%ecx,%edi
4380	leal	(%rsi,%rbp,1),%esi
4381	rorxl	$27,%eax,%r12d
4382	rorxl	$2,%eax,%ebp
4383	xorl	%ebx,%eax
4384	addl	%r12d,%esi
4385	andl	%edi,%eax
4386	vpalignr	$8,%ymm1,%ymm2,%ymm8
4387	vpxor	%ymm7,%ymm3,%ymm3
4388	addl	44(%r13),%edx
4389	xorl	%ebx,%eax
4390	vpxor	%ymm4,%ymm3,%ymm3
4391	movl	%ebp,%edi
4392	xorl	%ebx,%edi
4393	leal	(%rdx,%rax,1),%edx
4394	vpxor	%ymm8,%ymm3,%ymm3
4395	rorxl	$27,%esi,%r12d
4396	rorxl	$2,%esi,%eax
4397	xorl	%ebp,%esi
4398	vpsrld	$30,%ymm3,%ymm8
4399	vpslld	$2,%ymm3,%ymm3
4400	addl	%r12d,%edx
4401	andl	%edi,%esi
4402	addl	64(%r13),%ecx
4403	xorl	%ebp,%esi
4404	movl	%eax,%edi
4405	xorl	%ebp,%edi
4406	vpor	%ymm8,%ymm3,%ymm3
4407	leal	(%rcx,%rsi,1),%ecx
4408	rorxl	$27,%edx,%r12d
4409	rorxl	$2,%edx,%esi
4410	xorl	%eax,%edx
4411	vpaddd	%ymm11,%ymm3,%ymm9
4412	addl	%r12d,%ecx
4413	andl	%edi,%edx
4414	addl	68(%r13),%ebx
4415	xorl	%eax,%edx
4416	vmovdqu	%ymm9,608(%rsp)
4417	movl	%esi,%edi
4418	xorl	%eax,%edi
4419	leal	(%rbx,%rdx,1),%ebx
4420	rorxl	$27,%ecx,%r12d
4421	rorxl	$2,%ecx,%edx
4422	xorl	%esi,%ecx
4423	addl	%r12d,%ebx
4424	andl	%edi,%ecx
4425	addl	72(%r13),%ebp
4426	xorl	%esi,%ecx
4427	movl	%edx,%edi
4428	xorl	%esi,%edi
4429	leal	(%rcx,%rbp,1),%ebp
4430	rorxl	$27,%ebx,%r12d
4431	rorxl	$2,%ebx,%ecx
4432	xorl	%edx,%ebx
4433	addl	%r12d,%ebp
4434	andl	%edi,%ebx
4435	addl	76(%r13),%eax
4436	xorl	%edx,%ebx
4437	leal	(%rax,%rbx,1),%eax
4438	rorxl	$27,%ebp,%r12d
4439	rorxl	$2,%ebp,%ebx
4440	xorl	%ecx,%ebp
4441	addl	%r12d,%eax
4442	xorl	%edx,%ebp
4443	addl	96(%r13),%esi
4444	leal	(%rsi,%rbp,1),%esi
4445	rorxl	$27,%eax,%r12d
4446	rorxl	$2,%eax,%ebp
4447	xorl	%ebx,%eax
4448	addl	%r12d,%esi
4449	xorl	%ecx,%eax
4450	addl	100(%r13),%edx
4451	leal	(%rdx,%rax,1),%edx
4452	rorxl	$27,%esi,%r12d
4453	rorxl	$2,%esi,%eax
4454	xorl	%ebp,%esi
4455	addl	%r12d,%edx
4456	xorl	%ebx,%esi
4457	addl	104(%r13),%ecx
4458	leal	(%rcx,%rsi,1),%ecx
4459	rorxl	$27,%edx,%r12d
4460	rorxl	$2,%edx,%esi
4461	xorl	%eax,%edx
4462	addl	%r12d,%ecx
4463	xorl	%ebp,%edx
4464	addl	108(%r13),%ebx
4465	leaq	256(%r13),%r13
4466	leal	(%rbx,%rdx,1),%ebx
4467	rorxl	$27,%ecx,%r12d
4468	rorxl	$2,%ecx,%edx
4469	xorl	%esi,%ecx
4470	addl	%r12d,%ebx
4471	xorl	%eax,%ecx
4472	addl	-128(%r13),%ebp
4473	leal	(%rcx,%rbp,1),%ebp
4474	rorxl	$27,%ebx,%r12d
4475	rorxl	$2,%ebx,%ecx
4476	xorl	%edx,%ebx
4477	addl	%r12d,%ebp
4478	xorl	%esi,%ebx
4479	addl	-124(%r13),%eax
4480	leal	(%rax,%rbx,1),%eax
4481	rorxl	$27,%ebp,%r12d
4482	rorxl	$2,%ebp,%ebx
4483	xorl	%ecx,%ebp
4484	addl	%r12d,%eax
4485	xorl	%edx,%ebp
4486	addl	-120(%r13),%esi
4487	leal	(%rsi,%rbp,1),%esi
4488	rorxl	$27,%eax,%r12d
4489	rorxl	$2,%eax,%ebp
4490	xorl	%ebx,%eax
4491	addl	%r12d,%esi
4492	xorl	%ecx,%eax
4493	addl	-116(%r13),%edx
4494	leal	(%rdx,%rax,1),%edx
4495	rorxl	$27,%esi,%r12d
4496	rorxl	$2,%esi,%eax
4497	xorl	%ebp,%esi
4498	addl	%r12d,%edx
4499	xorl	%ebx,%esi
4500	addl	-96(%r13),%ecx
4501	leal	(%rcx,%rsi,1),%ecx
4502	rorxl	$27,%edx,%r12d
4503	rorxl	$2,%edx,%esi
4504	xorl	%eax,%edx
4505	addl	%r12d,%ecx
4506	xorl	%ebp,%edx
4507	addl	-92(%r13),%ebx
4508	leal	(%rbx,%rdx,1),%ebx
4509	rorxl	$27,%ecx,%r12d
4510	rorxl	$2,%ecx,%edx
4511	xorl	%esi,%ecx
4512	addl	%r12d,%ebx
4513	xorl	%eax,%ecx
4514	addl	-88(%r13),%ebp
4515	leal	(%rcx,%rbp,1),%ebp
4516	rorxl	$27,%ebx,%r12d
4517	rorxl	$2,%ebx,%ecx
4518	xorl	%edx,%ebx
4519	addl	%r12d,%ebp
4520	xorl	%esi,%ebx
4521	addl	-84(%r13),%eax
4522	leal	(%rax,%rbx,1),%eax
4523	rorxl	$27,%ebp,%r12d
4524	rorxl	$2,%ebp,%ebx
4525	xorl	%ecx,%ebp
4526	addl	%r12d,%eax
4527	xorl	%edx,%ebp
4528	addl	-64(%r13),%esi
4529	leal	(%rsi,%rbp,1),%esi
4530	rorxl	$27,%eax,%r12d
4531	rorxl	$2,%eax,%ebp
4532	xorl	%ebx,%eax
4533	addl	%r12d,%esi
4534	xorl	%ecx,%eax
4535	addl	-60(%r13),%edx
4536	leal	(%rdx,%rax,1),%edx
4537	rorxl	$27,%esi,%r12d
4538	rorxl	$2,%esi,%eax
4539	xorl	%ebp,%esi
4540	addl	%r12d,%edx
4541	xorl	%ebx,%esi
4542	addl	-56(%r13),%ecx
4543	leal	(%rcx,%rsi,1),%ecx
4544	rorxl	$27,%edx,%r12d
4545	rorxl	$2,%edx,%esi
4546	xorl	%eax,%edx
4547	addl	%r12d,%ecx
4548	xorl	%ebp,%edx
4549	addl	-52(%r13),%ebx
4550	leal	(%rbx,%rdx,1),%ebx
4551	rorxl	$27,%ecx,%r12d
4552	rorxl	$2,%ecx,%edx
4553	xorl	%esi,%ecx
4554	addl	%r12d,%ebx
4555	xorl	%eax,%ecx
4556	addl	-32(%r13),%ebp
4557	leal	(%rcx,%rbp,1),%ebp
4558	rorxl	$27,%ebx,%r12d
4559	rorxl	$2,%ebx,%ecx
4560	xorl	%edx,%ebx
4561	addl	%r12d,%ebp
4562	xorl	%esi,%ebx
4563	addl	-28(%r13),%eax
4564	leal	(%rax,%rbx,1),%eax
4565	rorxl	$27,%ebp,%r12d
4566	rorxl	$2,%ebp,%ebx
4567	xorl	%ecx,%ebp
4568	addl	%r12d,%eax
4569	xorl	%edx,%ebp
4570	addl	-24(%r13),%esi
4571	leal	(%rsi,%rbp,1),%esi
4572	rorxl	$27,%eax,%r12d
4573	rorxl	$2,%eax,%ebp
4574	xorl	%ebx,%eax
4575	addl	%r12d,%esi
4576	xorl	%ecx,%eax
4577	addl	-20(%r13),%edx
4578	leal	(%rdx,%rax,1),%edx
4579	rorxl	$27,%esi,%r12d
4580	addl	%r12d,%edx
4581	leaq	128(%r9),%r13
4582	leaq	128(%r9),%rdi
4583	cmpq	%r10,%r13
4584	cmovaeq	%r9,%r13
4585
4586
4587	addl	0(%r8),%edx
4588	addl	4(%r8),%esi
4589	addl	8(%r8),%ebp
4590	movl	%edx,0(%r8)
4591	addl	12(%r8),%ebx
4592	movl	%esi,4(%r8)
4593	movl	%edx,%eax
4594	addl	16(%r8),%ecx
4595	movl	%ebp,%r12d
4596	movl	%ebp,8(%r8)
4597	movl	%ebx,%edx
4598
4599	movl	%ebx,12(%r8)
4600	movl	%esi,%ebp
4601	movl	%ecx,16(%r8)
4602
4603	movl	%ecx,%esi
4604	movl	%r12d,%ecx
4605
4606
4607	cmpq	%r10,%r9
4608	je	.Ldone_avx2
4609	vmovdqu	64(%r11),%ymm6
4610	cmpq	%r10,%rdi
4611	ja	.Last_avx2
4612
4613	vmovdqu	-64(%rdi),%xmm0
4614	vmovdqu	-48(%rdi),%xmm1
4615	vmovdqu	-32(%rdi),%xmm2
4616	vmovdqu	-16(%rdi),%xmm3
4617	vinserti128	$1,0(%r13),%ymm0,%ymm0
4618	vinserti128	$1,16(%r13),%ymm1,%ymm1
4619	vinserti128	$1,32(%r13),%ymm2,%ymm2
4620	vinserti128	$1,48(%r13),%ymm3,%ymm3
4621	jmp	.Last_avx2
4622
4623.align	32
4624.Last_avx2:
4625	leaq	128+16(%rsp),%r13
4626	rorxl	$2,%ebp,%ebx
4627	andnl	%edx,%ebp,%edi
4628	andl	%ecx,%ebp
4629	xorl	%edi,%ebp
4630	subq	$-128,%r9
4631	addl	-128(%r13),%esi
4632	andnl	%ecx,%eax,%edi
4633	addl	%ebp,%esi
4634	rorxl	$27,%eax,%r12d
4635	rorxl	$2,%eax,%ebp
4636	andl	%ebx,%eax
4637	addl	%r12d,%esi
4638	xorl	%edi,%eax
4639	addl	-124(%r13),%edx
4640	andnl	%ebx,%esi,%edi
4641	addl	%eax,%edx
4642	rorxl	$27,%esi,%r12d
4643	rorxl	$2,%esi,%eax
4644	andl	%ebp,%esi
4645	addl	%r12d,%edx
4646	xorl	%edi,%esi
4647	addl	-120(%r13),%ecx
4648	andnl	%ebp,%edx,%edi
4649	addl	%esi,%ecx
4650	rorxl	$27,%edx,%r12d
4651	rorxl	$2,%edx,%esi
4652	andl	%eax,%edx
4653	addl	%r12d,%ecx
4654	xorl	%edi,%edx
4655	addl	-116(%r13),%ebx
4656	andnl	%eax,%ecx,%edi
4657	addl	%edx,%ebx
4658	rorxl	$27,%ecx,%r12d
4659	rorxl	$2,%ecx,%edx
4660	andl	%esi,%ecx
4661	addl	%r12d,%ebx
4662	xorl	%edi,%ecx
4663	addl	-96(%r13),%ebp
4664	andnl	%esi,%ebx,%edi
4665	addl	%ecx,%ebp
4666	rorxl	$27,%ebx,%r12d
4667	rorxl	$2,%ebx,%ecx
4668	andl	%edx,%ebx
4669	addl	%r12d,%ebp
4670	xorl	%edi,%ebx
4671	addl	-92(%r13),%eax
4672	andnl	%edx,%ebp,%edi
4673	addl	%ebx,%eax
4674	rorxl	$27,%ebp,%r12d
4675	rorxl	$2,%ebp,%ebx
4676	andl	%ecx,%ebp
4677	addl	%r12d,%eax
4678	xorl	%edi,%ebp
4679	addl	-88(%r13),%esi
4680	andnl	%ecx,%eax,%edi
4681	addl	%ebp,%esi
4682	rorxl	$27,%eax,%r12d
4683	rorxl	$2,%eax,%ebp
4684	andl	%ebx,%eax
4685	addl	%r12d,%esi
4686	xorl	%edi,%eax
4687	addl	-84(%r13),%edx
4688	andnl	%ebx,%esi,%edi
4689	addl	%eax,%edx
4690	rorxl	$27,%esi,%r12d
4691	rorxl	$2,%esi,%eax
4692	andl	%ebp,%esi
4693	addl	%r12d,%edx
4694	xorl	%edi,%esi
4695	addl	-64(%r13),%ecx
4696	andnl	%ebp,%edx,%edi
4697	addl	%esi,%ecx
4698	rorxl	$27,%edx,%r12d
4699	rorxl	$2,%edx,%esi
4700	andl	%eax,%edx
4701	addl	%r12d,%ecx
4702	xorl	%edi,%edx
4703	addl	-60(%r13),%ebx
4704	andnl	%eax,%ecx,%edi
4705	addl	%edx,%ebx
4706	rorxl	$27,%ecx,%r12d
4707	rorxl	$2,%ecx,%edx
4708	andl	%esi,%ecx
4709	addl	%r12d,%ebx
4710	xorl	%edi,%ecx
4711	addl	-56(%r13),%ebp
4712	andnl	%esi,%ebx,%edi
4713	addl	%ecx,%ebp
4714	rorxl	$27,%ebx,%r12d
4715	rorxl	$2,%ebx,%ecx
4716	andl	%edx,%ebx
4717	addl	%r12d,%ebp
4718	xorl	%edi,%ebx
4719	addl	-52(%r13),%eax
4720	andnl	%edx,%ebp,%edi
4721	addl	%ebx,%eax
4722	rorxl	$27,%ebp,%r12d
4723	rorxl	$2,%ebp,%ebx
4724	andl	%ecx,%ebp
4725	addl	%r12d,%eax
4726	xorl	%edi,%ebp
4727	addl	-32(%r13),%esi
4728	andnl	%ecx,%eax,%edi
4729	addl	%ebp,%esi
4730	rorxl	$27,%eax,%r12d
4731	rorxl	$2,%eax,%ebp
4732	andl	%ebx,%eax
4733	addl	%r12d,%esi
4734	xorl	%edi,%eax
4735	addl	-28(%r13),%edx
4736	andnl	%ebx,%esi,%edi
4737	addl	%eax,%edx
4738	rorxl	$27,%esi,%r12d
4739	rorxl	$2,%esi,%eax
4740	andl	%ebp,%esi
4741	addl	%r12d,%edx
4742	xorl	%edi,%esi
4743	addl	-24(%r13),%ecx
4744	andnl	%ebp,%edx,%edi
4745	addl	%esi,%ecx
4746	rorxl	$27,%edx,%r12d
4747	rorxl	$2,%edx,%esi
4748	andl	%eax,%edx
4749	addl	%r12d,%ecx
4750	xorl	%edi,%edx
4751	addl	-20(%r13),%ebx
4752	andnl	%eax,%ecx,%edi
4753	addl	%edx,%ebx
4754	rorxl	$27,%ecx,%r12d
4755	rorxl	$2,%ecx,%edx
4756	andl	%esi,%ecx
4757	addl	%r12d,%ebx
4758	xorl	%edi,%ecx
4759	addl	0(%r13),%ebp
4760	andnl	%esi,%ebx,%edi
4761	addl	%ecx,%ebp
4762	rorxl	$27,%ebx,%r12d
4763	rorxl	$2,%ebx,%ecx
4764	andl	%edx,%ebx
4765	addl	%r12d,%ebp
4766	xorl	%edi,%ebx
4767	addl	4(%r13),%eax
4768	andnl	%edx,%ebp,%edi
4769	addl	%ebx,%eax
4770	rorxl	$27,%ebp,%r12d
4771	rorxl	$2,%ebp,%ebx
4772	andl	%ecx,%ebp
4773	addl	%r12d,%eax
4774	xorl	%edi,%ebp
4775	addl	8(%r13),%esi
4776	andnl	%ecx,%eax,%edi
4777	addl	%ebp,%esi
4778	rorxl	$27,%eax,%r12d
4779	rorxl	$2,%eax,%ebp
4780	andl	%ebx,%eax
4781	addl	%r12d,%esi
4782	xorl	%edi,%eax
4783	addl	12(%r13),%edx
4784	leal	(%rdx,%rax,1),%edx
4785	rorxl	$27,%esi,%r12d
4786	rorxl	$2,%esi,%eax
4787	xorl	%ebp,%esi
4788	addl	%r12d,%edx
4789	xorl	%ebx,%esi
4790	addl	32(%r13),%ecx
4791	leal	(%rcx,%rsi,1),%ecx
4792	rorxl	$27,%edx,%r12d
4793	rorxl	$2,%edx,%esi
4794	xorl	%eax,%edx
4795	addl	%r12d,%ecx
4796	xorl	%ebp,%edx
4797	addl	36(%r13),%ebx
4798	leal	(%rbx,%rdx,1),%ebx
4799	rorxl	$27,%ecx,%r12d
4800	rorxl	$2,%ecx,%edx
4801	xorl	%esi,%ecx
4802	addl	%r12d,%ebx
4803	xorl	%eax,%ecx
4804	addl	40(%r13),%ebp
4805	leal	(%rcx,%rbp,1),%ebp
4806	rorxl	$27,%ebx,%r12d
4807	rorxl	$2,%ebx,%ecx
4808	xorl	%edx,%ebx
4809	addl	%r12d,%ebp
4810	xorl	%esi,%ebx
4811	addl	44(%r13),%eax
4812	leal	(%rax,%rbx,1),%eax
4813	rorxl	$27,%ebp,%r12d
4814	rorxl	$2,%ebp,%ebx
4815	xorl	%ecx,%ebp
4816	addl	%r12d,%eax
4817	xorl	%edx,%ebp
4818	addl	64(%r13),%esi
4819	leal	(%rsi,%rbp,1),%esi
4820	rorxl	$27,%eax,%r12d
4821	rorxl	$2,%eax,%ebp
4822	xorl	%ebx,%eax
4823	addl	%r12d,%esi
4824	xorl	%ecx,%eax
4825	vmovdqu	-64(%r11),%ymm11
4826	vpshufb	%ymm6,%ymm0,%ymm0
4827	addl	68(%r13),%edx
4828	leal	(%rdx,%rax,1),%edx
4829	rorxl	$27,%esi,%r12d
4830	rorxl	$2,%esi,%eax
4831	xorl	%ebp,%esi
4832	addl	%r12d,%edx
4833	xorl	%ebx,%esi
4834	addl	72(%r13),%ecx
4835	leal	(%rcx,%rsi,1),%ecx
4836	rorxl	$27,%edx,%r12d
4837	rorxl	$2,%edx,%esi
4838	xorl	%eax,%edx
4839	addl	%r12d,%ecx
4840	xorl	%ebp,%edx
4841	addl	76(%r13),%ebx
4842	leal	(%rbx,%rdx,1),%ebx
4843	rorxl	$27,%ecx,%r12d
4844	rorxl	$2,%ecx,%edx
4845	xorl	%esi,%ecx
4846	addl	%r12d,%ebx
4847	xorl	%eax,%ecx
4848	addl	96(%r13),%ebp
4849	leal	(%rcx,%rbp,1),%ebp
4850	rorxl	$27,%ebx,%r12d
4851	rorxl	$2,%ebx,%ecx
4852	xorl	%edx,%ebx
4853	addl	%r12d,%ebp
4854	xorl	%esi,%ebx
4855	addl	100(%r13),%eax
4856	leal	(%rax,%rbx,1),%eax
4857	rorxl	$27,%ebp,%r12d
4858	rorxl	$2,%ebp,%ebx
4859	xorl	%ecx,%ebp
4860	addl	%r12d,%eax
4861	xorl	%edx,%ebp
4862	vpshufb	%ymm6,%ymm1,%ymm1
4863	vpaddd	%ymm11,%ymm0,%ymm8
4864	addl	104(%r13),%esi
4865	leal	(%rsi,%rbp,1),%esi
4866	rorxl	$27,%eax,%r12d
4867	rorxl	$2,%eax,%ebp
4868	xorl	%ebx,%eax
4869	addl	%r12d,%esi
4870	xorl	%ecx,%eax
4871	addl	108(%r13),%edx
4872	leaq	256(%r13),%r13
4873	leal	(%rdx,%rax,1),%edx
4874	rorxl	$27,%esi,%r12d
4875	rorxl	$2,%esi,%eax
4876	xorl	%ebp,%esi
4877	addl	%r12d,%edx
4878	xorl	%ebx,%esi
4879	addl	-128(%r13),%ecx
4880	leal	(%rcx,%rsi,1),%ecx
4881	rorxl	$27,%edx,%r12d
4882	rorxl	$2,%edx,%esi
4883	xorl	%eax,%edx
4884	addl	%r12d,%ecx
4885	xorl	%ebp,%edx
4886	addl	-124(%r13),%ebx
4887	leal	(%rbx,%rdx,1),%ebx
4888	rorxl	$27,%ecx,%r12d
4889	rorxl	$2,%ecx,%edx
4890	xorl	%esi,%ecx
4891	addl	%r12d,%ebx
4892	xorl	%eax,%ecx
4893	addl	-120(%r13),%ebp
4894	leal	(%rcx,%rbp,1),%ebp
4895	rorxl	$27,%ebx,%r12d
4896	rorxl	$2,%ebx,%ecx
4897	xorl	%edx,%ebx
4898	addl	%r12d,%ebp
4899	xorl	%esi,%ebx
4900	vmovdqu	%ymm8,0(%rsp)
4901	vpshufb	%ymm6,%ymm2,%ymm2
4902	vpaddd	%ymm11,%ymm1,%ymm9
4903	addl	-116(%r13),%eax
4904	leal	(%rax,%rbx,1),%eax
4905	rorxl	$27,%ebp,%r12d
4906	rorxl	$2,%ebp,%ebx
4907	xorl	%ecx,%ebp
4908	addl	%r12d,%eax
4909	xorl	%edx,%ebp
4910	addl	-96(%r13),%esi
4911	leal	(%rsi,%rbp,1),%esi
4912	rorxl	$27,%eax,%r12d
4913	rorxl	$2,%eax,%ebp
4914	xorl	%ebx,%eax
4915	addl	%r12d,%esi
4916	xorl	%ecx,%eax
4917	addl	-92(%r13),%edx
4918	leal	(%rdx,%rax,1),%edx
4919	rorxl	$27,%esi,%r12d
4920	rorxl	$2,%esi,%eax
4921	xorl	%ebp,%esi
4922	addl	%r12d,%edx
4923	xorl	%ebx,%esi
4924	addl	-88(%r13),%ecx
4925	leal	(%rcx,%rsi,1),%ecx
4926	rorxl	$27,%edx,%r12d
4927	rorxl	$2,%edx,%esi
4928	xorl	%eax,%edx
4929	addl	%r12d,%ecx
4930	xorl	%ebp,%edx
4931	addl	-84(%r13),%ebx
4932	movl	%esi,%edi
4933	xorl	%eax,%edi
4934	leal	(%rbx,%rdx,1),%ebx
4935	rorxl	$27,%ecx,%r12d
4936	rorxl	$2,%ecx,%edx
4937	xorl	%esi,%ecx
4938	addl	%r12d,%ebx
4939	andl	%edi,%ecx
4940	vmovdqu	%ymm9,32(%rsp)
4941	vpshufb	%ymm6,%ymm3,%ymm3
4942	vpaddd	%ymm11,%ymm2,%ymm6
4943	addl	-64(%r13),%ebp
4944	xorl	%esi,%ecx
4945	movl	%edx,%edi
4946	xorl	%esi,%edi
4947	leal	(%rcx,%rbp,1),%ebp
4948	rorxl	$27,%ebx,%r12d
4949	rorxl	$2,%ebx,%ecx
4950	xorl	%edx,%ebx
4951	addl	%r12d,%ebp
4952	andl	%edi,%ebx
4953	addl	-60(%r13),%eax
4954	xorl	%edx,%ebx
4955	movl	%ecx,%edi
4956	xorl	%edx,%edi
4957	leal	(%rax,%rbx,1),%eax
4958	rorxl	$27,%ebp,%r12d
4959	rorxl	$2,%ebp,%ebx
4960	xorl	%ecx,%ebp
4961	addl	%r12d,%eax
4962	andl	%edi,%ebp
4963	addl	-56(%r13),%esi
4964	xorl	%ecx,%ebp
4965	movl	%ebx,%edi
4966	xorl	%ecx,%edi
4967	leal	(%rsi,%rbp,1),%esi
4968	rorxl	$27,%eax,%r12d
4969	rorxl	$2,%eax,%ebp
4970	xorl	%ebx,%eax
4971	addl	%r12d,%esi
4972	andl	%edi,%eax
4973	addl	-52(%r13),%edx
4974	xorl	%ebx,%eax
4975	movl	%ebp,%edi
4976	xorl	%ebx,%edi
4977	leal	(%rdx,%rax,1),%edx
4978	rorxl	$27,%esi,%r12d
4979	rorxl	$2,%esi,%eax
4980	xorl	%ebp,%esi
4981	addl	%r12d,%edx
4982	andl	%edi,%esi
4983	addl	-32(%r13),%ecx
4984	xorl	%ebp,%esi
4985	movl	%eax,%edi
4986	xorl	%ebp,%edi
4987	leal	(%rcx,%rsi,1),%ecx
4988	rorxl	$27,%edx,%r12d
4989	rorxl	$2,%edx,%esi
4990	xorl	%eax,%edx
4991	addl	%r12d,%ecx
4992	andl	%edi,%edx
4993	jmp	.Lalign32_3
4994.align	32
4995.Lalign32_3:
4996	vmovdqu	%ymm6,64(%rsp)
4997	vpaddd	%ymm11,%ymm3,%ymm7
4998	addl	-28(%r13),%ebx
4999	xorl	%eax,%edx
5000	movl	%esi,%edi
5001	xorl	%eax,%edi
5002	leal	(%rbx,%rdx,1),%ebx
5003	rorxl	$27,%ecx,%r12d
5004	rorxl	$2,%ecx,%edx
5005	xorl	%esi,%ecx
5006	addl	%r12d,%ebx
5007	andl	%edi,%ecx
5008	addl	-24(%r13),%ebp
5009	xorl	%esi,%ecx
5010	movl	%edx,%edi
5011	xorl	%esi,%edi
5012	leal	(%rcx,%rbp,1),%ebp
5013	rorxl	$27,%ebx,%r12d
5014	rorxl	$2,%ebx,%ecx
5015	xorl	%edx,%ebx
5016	addl	%r12d,%ebp
5017	andl	%edi,%ebx
5018	addl	-20(%r13),%eax
5019	xorl	%edx,%ebx
5020	movl	%ecx,%edi
5021	xorl	%edx,%edi
5022	leal	(%rax,%rbx,1),%eax
5023	rorxl	$27,%ebp,%r12d
5024	rorxl	$2,%ebp,%ebx
5025	xorl	%ecx,%ebp
5026	addl	%r12d,%eax
5027	andl	%edi,%ebp
5028	addl	0(%r13),%esi
5029	xorl	%ecx,%ebp
5030	movl	%ebx,%edi
5031	xorl	%ecx,%edi
5032	leal	(%rsi,%rbp,1),%esi
5033	rorxl	$27,%eax,%r12d
5034	rorxl	$2,%eax,%ebp
5035	xorl	%ebx,%eax
5036	addl	%r12d,%esi
5037	andl	%edi,%eax
5038	addl	4(%r13),%edx
5039	xorl	%ebx,%eax
5040	movl	%ebp,%edi
5041	xorl	%ebx,%edi
5042	leal	(%rdx,%rax,1),%edx
5043	rorxl	$27,%esi,%r12d
5044	rorxl	$2,%esi,%eax
5045	xorl	%ebp,%esi
5046	addl	%r12d,%edx
5047	andl	%edi,%esi
5048	vmovdqu	%ymm7,96(%rsp)
5049	addl	8(%r13),%ecx
5050	xorl	%ebp,%esi
5051	movl	%eax,%edi
5052	xorl	%ebp,%edi
5053	leal	(%rcx,%rsi,1),%ecx
5054	rorxl	$27,%edx,%r12d
5055	rorxl	$2,%edx,%esi
5056	xorl	%eax,%edx
5057	addl	%r12d,%ecx
5058	andl	%edi,%edx
5059	addl	12(%r13),%ebx
5060	xorl	%eax,%edx
5061	movl	%esi,%edi
5062	xorl	%eax,%edi
5063	leal	(%rbx,%rdx,1),%ebx
5064	rorxl	$27,%ecx,%r12d
5065	rorxl	$2,%ecx,%edx
5066	xorl	%esi,%ecx
5067	addl	%r12d,%ebx
5068	andl	%edi,%ecx
5069	addl	32(%r13),%ebp
5070	xorl	%esi,%ecx
5071	movl	%edx,%edi
5072	xorl	%esi,%edi
5073	leal	(%rcx,%rbp,1),%ebp
5074	rorxl	$27,%ebx,%r12d
5075	rorxl	$2,%ebx,%ecx
5076	xorl	%edx,%ebx
5077	addl	%r12d,%ebp
5078	andl	%edi,%ebx
5079	addl	36(%r13),%eax
5080	xorl	%edx,%ebx
5081	movl	%ecx,%edi
5082	xorl	%edx,%edi
5083	leal	(%rax,%rbx,1),%eax
5084	rorxl	$27,%ebp,%r12d
5085	rorxl	$2,%ebp,%ebx
5086	xorl	%ecx,%ebp
5087	addl	%r12d,%eax
5088	andl	%edi,%ebp
5089	addl	40(%r13),%esi
5090	xorl	%ecx,%ebp
5091	movl	%ebx,%edi
5092	xorl	%ecx,%edi
5093	leal	(%rsi,%rbp,1),%esi
5094	rorxl	$27,%eax,%r12d
5095	rorxl	$2,%eax,%ebp
5096	xorl	%ebx,%eax
5097	addl	%r12d,%esi
5098	andl	%edi,%eax
5099	vpalignr	$8,%ymm0,%ymm1,%ymm4
5100	addl	44(%r13),%edx
5101	xorl	%ebx,%eax
5102	movl	%ebp,%edi
5103	xorl	%ebx,%edi
5104	vpsrldq	$4,%ymm3,%ymm8
5105	leal	(%rdx,%rax,1),%edx
5106	rorxl	$27,%esi,%r12d
5107	rorxl	$2,%esi,%eax
5108	vpxor	%ymm0,%ymm4,%ymm4
5109	vpxor	%ymm2,%ymm8,%ymm8
5110	xorl	%ebp,%esi
5111	addl	%r12d,%edx
5112	vpxor	%ymm8,%ymm4,%ymm4
5113	andl	%edi,%esi
5114	addl	64(%r13),%ecx
5115	xorl	%ebp,%esi
5116	movl	%eax,%edi
5117	vpsrld	$31,%ymm4,%ymm8
5118	xorl	%ebp,%edi
5119	leal	(%rcx,%rsi,1),%ecx
5120	rorxl	$27,%edx,%r12d
5121	vpslldq	$12,%ymm4,%ymm10
5122	vpaddd	%ymm4,%ymm4,%ymm4
5123	rorxl	$2,%edx,%esi
5124	xorl	%eax,%edx
5125	vpsrld	$30,%ymm10,%ymm9
5126	vpor	%ymm8,%ymm4,%ymm4
5127	addl	%r12d,%ecx
5128	andl	%edi,%edx
5129	vpslld	$2,%ymm10,%ymm10
5130	vpxor	%ymm9,%ymm4,%ymm4
5131	addl	68(%r13),%ebx
5132	xorl	%eax,%edx
5133	vpxor	%ymm10,%ymm4,%ymm4
5134	movl	%esi,%edi
5135	xorl	%eax,%edi
5136	leal	(%rbx,%rdx,1),%ebx
5137	vpaddd	%ymm11,%ymm4,%ymm9
5138	rorxl	$27,%ecx,%r12d
5139	rorxl	$2,%ecx,%edx
5140	xorl	%esi,%ecx
5141	vmovdqu	%ymm9,128(%rsp)
5142	addl	%r12d,%ebx
5143	andl	%edi,%ecx
5144	addl	72(%r13),%ebp
5145	xorl	%esi,%ecx
5146	movl	%edx,%edi
5147	xorl	%esi,%edi
5148	leal	(%rcx,%rbp,1),%ebp
5149	rorxl	$27,%ebx,%r12d
5150	rorxl	$2,%ebx,%ecx
5151	xorl	%edx,%ebx
5152	addl	%r12d,%ebp
5153	andl	%edi,%ebx
5154	addl	76(%r13),%eax
5155	xorl	%edx,%ebx
5156	leal	(%rax,%rbx,1),%eax
5157	rorxl	$27,%ebp,%r12d
5158	rorxl	$2,%ebp,%ebx
5159	xorl	%ecx,%ebp
5160	addl	%r12d,%eax
5161	xorl	%edx,%ebp
5162	vpalignr	$8,%ymm1,%ymm2,%ymm5
5163	addl	96(%r13),%esi
5164	leal	(%rsi,%rbp,1),%esi
5165	rorxl	$27,%eax,%r12d
5166	rorxl	$2,%eax,%ebp
5167	vpsrldq	$4,%ymm4,%ymm8
5168	xorl	%ebx,%eax
5169	addl	%r12d,%esi
5170	xorl	%ecx,%eax
5171	vpxor	%ymm1,%ymm5,%ymm5
5172	vpxor	%ymm3,%ymm8,%ymm8
5173	addl	100(%r13),%edx
5174	leal	(%rdx,%rax,1),%edx
5175	vpxor	%ymm8,%ymm5,%ymm5
5176	rorxl	$27,%esi,%r12d
5177	rorxl	$2,%esi,%eax
5178	xorl	%ebp,%esi
5179	addl	%r12d,%edx
5180	vpsrld	$31,%ymm5,%ymm8
5181	vmovdqu	-32(%r11),%ymm11
5182	xorl	%ebx,%esi
5183	addl	104(%r13),%ecx
5184	leal	(%rcx,%rsi,1),%ecx
5185	vpslldq	$12,%ymm5,%ymm10
5186	vpaddd	%ymm5,%ymm5,%ymm5
5187	rorxl	$27,%edx,%r12d
5188	rorxl	$2,%edx,%esi
5189	vpsrld	$30,%ymm10,%ymm9
5190	vpor	%ymm8,%ymm5,%ymm5
5191	xorl	%eax,%edx
5192	addl	%r12d,%ecx
5193	vpslld	$2,%ymm10,%ymm10
5194	vpxor	%ymm9,%ymm5,%ymm5
5195	xorl	%ebp,%edx
5196	addl	108(%r13),%ebx
5197	leaq	256(%r13),%r13
5198	vpxor	%ymm10,%ymm5,%ymm5
5199	leal	(%rbx,%rdx,1),%ebx
5200	rorxl	$27,%ecx,%r12d
5201	rorxl	$2,%ecx,%edx
5202	vpaddd	%ymm11,%ymm5,%ymm9
5203	xorl	%esi,%ecx
5204	addl	%r12d,%ebx
5205	xorl	%eax,%ecx
5206	vmovdqu	%ymm9,160(%rsp)
5207	addl	-128(%r13),%ebp
5208	leal	(%rcx,%rbp,1),%ebp
5209	rorxl	$27,%ebx,%r12d
5210	rorxl	$2,%ebx,%ecx
5211	xorl	%edx,%ebx
5212	addl	%r12d,%ebp
5213	xorl	%esi,%ebx
5214	vpalignr	$8,%ymm2,%ymm3,%ymm6
5215	addl	-124(%r13),%eax
5216	leal	(%rax,%rbx,1),%eax
5217	rorxl	$27,%ebp,%r12d
5218	rorxl	$2,%ebp,%ebx
5219	vpsrldq	$4,%ymm5,%ymm8
5220	xorl	%ecx,%ebp
5221	addl	%r12d,%eax
5222	xorl	%edx,%ebp
5223	vpxor	%ymm2,%ymm6,%ymm6
5224	vpxor	%ymm4,%ymm8,%ymm8
5225	addl	-120(%r13),%esi
5226	leal	(%rsi,%rbp,1),%esi
5227	vpxor	%ymm8,%ymm6,%ymm6
5228	rorxl	$27,%eax,%r12d
5229	rorxl	$2,%eax,%ebp
5230	xorl	%ebx,%eax
5231	addl	%r12d,%esi
5232	vpsrld	$31,%ymm6,%ymm8
5233	xorl	%ecx,%eax
5234	addl	-116(%r13),%edx
5235	leal	(%rdx,%rax,1),%edx
5236	vpslldq	$12,%ymm6,%ymm10
5237	vpaddd	%ymm6,%ymm6,%ymm6
5238	rorxl	$27,%esi,%r12d
5239	rorxl	$2,%esi,%eax
5240	vpsrld	$30,%ymm10,%ymm9
5241	vpor	%ymm8,%ymm6,%ymm6
5242	xorl	%ebp,%esi
5243	addl	%r12d,%edx
5244	vpslld	$2,%ymm10,%ymm10
5245	vpxor	%ymm9,%ymm6,%ymm6
5246	xorl	%ebx,%esi
5247	addl	-96(%r13),%ecx
5248	vpxor	%ymm10,%ymm6,%ymm6
5249	leal	(%rcx,%rsi,1),%ecx
5250	rorxl	$27,%edx,%r12d
5251	rorxl	$2,%edx,%esi
5252	vpaddd	%ymm11,%ymm6,%ymm9
5253	xorl	%eax,%edx
5254	addl	%r12d,%ecx
5255	xorl	%ebp,%edx
5256	vmovdqu	%ymm9,192(%rsp)
5257	addl	-92(%r13),%ebx
5258	leal	(%rbx,%rdx,1),%ebx
5259	rorxl	$27,%ecx,%r12d
5260	rorxl	$2,%ecx,%edx
5261	xorl	%esi,%ecx
5262	addl	%r12d,%ebx
5263	xorl	%eax,%ecx
5264	vpalignr	$8,%ymm3,%ymm4,%ymm7
5265	addl	-88(%r13),%ebp
5266	leal	(%rcx,%rbp,1),%ebp
5267	rorxl	$27,%ebx,%r12d
5268	rorxl	$2,%ebx,%ecx
5269	vpsrldq	$4,%ymm6,%ymm8
5270	xorl	%edx,%ebx
5271	addl	%r12d,%ebp
5272	xorl	%esi,%ebx
5273	vpxor	%ymm3,%ymm7,%ymm7
5274	vpxor	%ymm5,%ymm8,%ymm8
5275	addl	-84(%r13),%eax
5276	leal	(%rax,%rbx,1),%eax
5277	vpxor	%ymm8,%ymm7,%ymm7
5278	rorxl	$27,%ebp,%r12d
5279	rorxl	$2,%ebp,%ebx
5280	xorl	%ecx,%ebp
5281	addl	%r12d,%eax
5282	vpsrld	$31,%ymm7,%ymm8
5283	xorl	%edx,%ebp
5284	addl	-64(%r13),%esi
5285	leal	(%rsi,%rbp,1),%esi
5286	vpslldq	$12,%ymm7,%ymm10
5287	vpaddd	%ymm7,%ymm7,%ymm7
5288	rorxl	$27,%eax,%r12d
5289	rorxl	$2,%eax,%ebp
5290	vpsrld	$30,%ymm10,%ymm9
5291	vpor	%ymm8,%ymm7,%ymm7
5292	xorl	%ebx,%eax
5293	addl	%r12d,%esi
5294	vpslld	$2,%ymm10,%ymm10
5295	vpxor	%ymm9,%ymm7,%ymm7
5296	xorl	%ecx,%eax
5297	addl	-60(%r13),%edx
5298	vpxor	%ymm10,%ymm7,%ymm7
5299	leal	(%rdx,%rax,1),%edx
5300	rorxl	$27,%esi,%r12d
5301	rorxl	$2,%esi,%eax
5302	vpaddd	%ymm11,%ymm7,%ymm9
5303	xorl	%ebp,%esi
5304	addl	%r12d,%edx
5305	xorl	%ebx,%esi
5306	vmovdqu	%ymm9,224(%rsp)
5307	addl	-56(%r13),%ecx
5308	leal	(%rcx,%rsi,1),%ecx
5309	rorxl	$27,%edx,%r12d
5310	rorxl	$2,%edx,%esi
5311	xorl	%eax,%edx
5312	addl	%r12d,%ecx
5313	xorl	%ebp,%edx
5314	addl	-52(%r13),%ebx
5315	leal	(%rbx,%rdx,1),%ebx
5316	rorxl	$27,%ecx,%r12d
5317	rorxl	$2,%ecx,%edx
5318	xorl	%esi,%ecx
5319	addl	%r12d,%ebx
5320	xorl	%eax,%ecx
5321	addl	-32(%r13),%ebp
5322	leal	(%rcx,%rbp,1),%ebp
5323	rorxl	$27,%ebx,%r12d
5324	rorxl	$2,%ebx,%ecx
5325	xorl	%edx,%ebx
5326	addl	%r12d,%ebp
5327	xorl	%esi,%ebx
5328	addl	-28(%r13),%eax
5329	leal	(%rax,%rbx,1),%eax
5330	rorxl	$27,%ebp,%r12d
5331	rorxl	$2,%ebp,%ebx
5332	xorl	%ecx,%ebp
5333	addl	%r12d,%eax
5334	xorl	%edx,%ebp
5335	addl	-24(%r13),%esi
5336	leal	(%rsi,%rbp,1),%esi
5337	rorxl	$27,%eax,%r12d
5338	rorxl	$2,%eax,%ebp
5339	xorl	%ebx,%eax
5340	addl	%r12d,%esi
5341	xorl	%ecx,%eax
5342	addl	-20(%r13),%edx
5343	leal	(%rdx,%rax,1),%edx
5344	rorxl	$27,%esi,%r12d
5345	addl	%r12d,%edx
5346	leaq	128(%rsp),%r13
5347
5348
5349	addl	0(%r8),%edx
5350	addl	4(%r8),%esi
5351	addl	8(%r8),%ebp
5352	movl	%edx,0(%r8)
5353	addl	12(%r8),%ebx
5354	movl	%esi,4(%r8)
5355	movl	%edx,%eax
5356	addl	16(%r8),%ecx
5357	movl	%ebp,%r12d
5358	movl	%ebp,8(%r8)
5359	movl	%ebx,%edx
5360
5361	movl	%ebx,12(%r8)
5362	movl	%esi,%ebp
5363	movl	%ecx,16(%r8)
5364
5365	movl	%ecx,%esi
5366	movl	%r12d,%ecx
5367
5368
5369	cmpq	%r10,%r9
5370	jbe	.Loop_avx2
5371
5372.Ldone_avx2:
5373	vzeroupper
5374	leaq	(%r14),%rsi
5375	movq	-40(%rsi),%r14
5376	movq	-32(%rsi),%r13
5377	movq	-24(%rsi),%r12
5378	movq	-16(%rsi),%rbp
5379	movq	-8(%rsi),%rbx
5380	leaq	(%rsi),%rsp
5381.Lepilogue_avx2:
5382	.byte	0xf3,0xc3
5383.size	sha1_block_data_order_avx2,.-sha1_block_data_order_avx2
5384.align	64
5385K_XX_XX:
5386.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999
5387.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999
5388.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
5389.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
5390.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
5391.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
5392.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
5393.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
5394.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
5395.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
5396.byte	0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
5397.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
5398.align	64
5399