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