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