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