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