1#if defined(__x86_64__)
2.text
3
4
5.globl	_sha256_block_data_order
6.private_extern _sha256_block_data_order
7
8.p2align	4
9_sha256_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	andl	$1073741824,%r9d
15	andl	$268435968,%r10d
16	orl	%r9d,%r10d
17	cmpl	$1342177792,%r10d
18	je	L$avx_shortcut
19	testl	$512,%r10d
20	jnz	L$ssse3_shortcut
21	movq	%rsp,%rax
22	pushq	%rbx
23	pushq	%rbp
24	pushq	%r12
25	pushq	%r13
26	pushq	%r14
27	pushq	%r15
28	shlq	$4,%rdx
29	subq	$64+32,%rsp
30	leaq	(%rsi,%rdx,4),%rdx
31	andq	$-64,%rsp
32	movq	%rdi,64+0(%rsp)
33	movq	%rsi,64+8(%rsp)
34	movq	%rdx,64+16(%rsp)
35	movq	%rax,64+24(%rsp)
36L$prologue:
37
38	movl	0(%rdi),%eax
39	movl	4(%rdi),%ebx
40	movl	8(%rdi),%ecx
41	movl	12(%rdi),%edx
42	movl	16(%rdi),%r8d
43	movl	20(%rdi),%r9d
44	movl	24(%rdi),%r10d
45	movl	28(%rdi),%r11d
46	jmp	L$loop
47
48.p2align	4
49L$loop:
50	movl	%ebx,%edi
51	leaq	K256(%rip),%rbp
52	xorl	%ecx,%edi
53	movl	0(%rsi),%r12d
54	movl	%r8d,%r13d
55	movl	%eax,%r14d
56	bswapl	%r12d
57	rorl	$14,%r13d
58	movl	%r9d,%r15d
59
60	xorl	%r8d,%r13d
61	rorl	$9,%r14d
62	xorl	%r10d,%r15d
63
64	movl	%r12d,0(%rsp)
65	xorl	%eax,%r14d
66	andl	%r8d,%r15d
67
68	rorl	$5,%r13d
69	addl	%r11d,%r12d
70	xorl	%r10d,%r15d
71
72	rorl	$11,%r14d
73	xorl	%r8d,%r13d
74	addl	%r15d,%r12d
75
76	movl	%eax,%r15d
77	addl	(%rbp),%r12d
78	xorl	%eax,%r14d
79
80	xorl	%ebx,%r15d
81	rorl	$6,%r13d
82	movl	%ebx,%r11d
83
84	andl	%r15d,%edi
85	rorl	$2,%r14d
86	addl	%r13d,%r12d
87
88	xorl	%edi,%r11d
89	addl	%r12d,%edx
90	addl	%r12d,%r11d
91
92	leaq	4(%rbp),%rbp
93	addl	%r14d,%r11d
94	movl	4(%rsi),%r12d
95	movl	%edx,%r13d
96	movl	%r11d,%r14d
97	bswapl	%r12d
98	rorl	$14,%r13d
99	movl	%r8d,%edi
100
101	xorl	%edx,%r13d
102	rorl	$9,%r14d
103	xorl	%r9d,%edi
104
105	movl	%r12d,4(%rsp)
106	xorl	%r11d,%r14d
107	andl	%edx,%edi
108
109	rorl	$5,%r13d
110	addl	%r10d,%r12d
111	xorl	%r9d,%edi
112
113	rorl	$11,%r14d
114	xorl	%edx,%r13d
115	addl	%edi,%r12d
116
117	movl	%r11d,%edi
118	addl	(%rbp),%r12d
119	xorl	%r11d,%r14d
120
121	xorl	%eax,%edi
122	rorl	$6,%r13d
123	movl	%eax,%r10d
124
125	andl	%edi,%r15d
126	rorl	$2,%r14d
127	addl	%r13d,%r12d
128
129	xorl	%r15d,%r10d
130	addl	%r12d,%ecx
131	addl	%r12d,%r10d
132
133	leaq	4(%rbp),%rbp
134	addl	%r14d,%r10d
135	movl	8(%rsi),%r12d
136	movl	%ecx,%r13d
137	movl	%r10d,%r14d
138	bswapl	%r12d
139	rorl	$14,%r13d
140	movl	%edx,%r15d
141
142	xorl	%ecx,%r13d
143	rorl	$9,%r14d
144	xorl	%r8d,%r15d
145
146	movl	%r12d,8(%rsp)
147	xorl	%r10d,%r14d
148	andl	%ecx,%r15d
149
150	rorl	$5,%r13d
151	addl	%r9d,%r12d
152	xorl	%r8d,%r15d
153
154	rorl	$11,%r14d
155	xorl	%ecx,%r13d
156	addl	%r15d,%r12d
157
158	movl	%r10d,%r15d
159	addl	(%rbp),%r12d
160	xorl	%r10d,%r14d
161
162	xorl	%r11d,%r15d
163	rorl	$6,%r13d
164	movl	%r11d,%r9d
165
166	andl	%r15d,%edi
167	rorl	$2,%r14d
168	addl	%r13d,%r12d
169
170	xorl	%edi,%r9d
171	addl	%r12d,%ebx
172	addl	%r12d,%r9d
173
174	leaq	4(%rbp),%rbp
175	addl	%r14d,%r9d
176	movl	12(%rsi),%r12d
177	movl	%ebx,%r13d
178	movl	%r9d,%r14d
179	bswapl	%r12d
180	rorl	$14,%r13d
181	movl	%ecx,%edi
182
183	xorl	%ebx,%r13d
184	rorl	$9,%r14d
185	xorl	%edx,%edi
186
187	movl	%r12d,12(%rsp)
188	xorl	%r9d,%r14d
189	andl	%ebx,%edi
190
191	rorl	$5,%r13d
192	addl	%r8d,%r12d
193	xorl	%edx,%edi
194
195	rorl	$11,%r14d
196	xorl	%ebx,%r13d
197	addl	%edi,%r12d
198
199	movl	%r9d,%edi
200	addl	(%rbp),%r12d
201	xorl	%r9d,%r14d
202
203	xorl	%r10d,%edi
204	rorl	$6,%r13d
205	movl	%r10d,%r8d
206
207	andl	%edi,%r15d
208	rorl	$2,%r14d
209	addl	%r13d,%r12d
210
211	xorl	%r15d,%r8d
212	addl	%r12d,%eax
213	addl	%r12d,%r8d
214
215	leaq	20(%rbp),%rbp
216	addl	%r14d,%r8d
217	movl	16(%rsi),%r12d
218	movl	%eax,%r13d
219	movl	%r8d,%r14d
220	bswapl	%r12d
221	rorl	$14,%r13d
222	movl	%ebx,%r15d
223
224	xorl	%eax,%r13d
225	rorl	$9,%r14d
226	xorl	%ecx,%r15d
227
228	movl	%r12d,16(%rsp)
229	xorl	%r8d,%r14d
230	andl	%eax,%r15d
231
232	rorl	$5,%r13d
233	addl	%edx,%r12d
234	xorl	%ecx,%r15d
235
236	rorl	$11,%r14d
237	xorl	%eax,%r13d
238	addl	%r15d,%r12d
239
240	movl	%r8d,%r15d
241	addl	(%rbp),%r12d
242	xorl	%r8d,%r14d
243
244	xorl	%r9d,%r15d
245	rorl	$6,%r13d
246	movl	%r9d,%edx
247
248	andl	%r15d,%edi
249	rorl	$2,%r14d
250	addl	%r13d,%r12d
251
252	xorl	%edi,%edx
253	addl	%r12d,%r11d
254	addl	%r12d,%edx
255
256	leaq	4(%rbp),%rbp
257	addl	%r14d,%edx
258	movl	20(%rsi),%r12d
259	movl	%r11d,%r13d
260	movl	%edx,%r14d
261	bswapl	%r12d
262	rorl	$14,%r13d
263	movl	%eax,%edi
264
265	xorl	%r11d,%r13d
266	rorl	$9,%r14d
267	xorl	%ebx,%edi
268
269	movl	%r12d,20(%rsp)
270	xorl	%edx,%r14d
271	andl	%r11d,%edi
272
273	rorl	$5,%r13d
274	addl	%ecx,%r12d
275	xorl	%ebx,%edi
276
277	rorl	$11,%r14d
278	xorl	%r11d,%r13d
279	addl	%edi,%r12d
280
281	movl	%edx,%edi
282	addl	(%rbp),%r12d
283	xorl	%edx,%r14d
284
285	xorl	%r8d,%edi
286	rorl	$6,%r13d
287	movl	%r8d,%ecx
288
289	andl	%edi,%r15d
290	rorl	$2,%r14d
291	addl	%r13d,%r12d
292
293	xorl	%r15d,%ecx
294	addl	%r12d,%r10d
295	addl	%r12d,%ecx
296
297	leaq	4(%rbp),%rbp
298	addl	%r14d,%ecx
299	movl	24(%rsi),%r12d
300	movl	%r10d,%r13d
301	movl	%ecx,%r14d
302	bswapl	%r12d
303	rorl	$14,%r13d
304	movl	%r11d,%r15d
305
306	xorl	%r10d,%r13d
307	rorl	$9,%r14d
308	xorl	%eax,%r15d
309
310	movl	%r12d,24(%rsp)
311	xorl	%ecx,%r14d
312	andl	%r10d,%r15d
313
314	rorl	$5,%r13d
315	addl	%ebx,%r12d
316	xorl	%eax,%r15d
317
318	rorl	$11,%r14d
319	xorl	%r10d,%r13d
320	addl	%r15d,%r12d
321
322	movl	%ecx,%r15d
323	addl	(%rbp),%r12d
324	xorl	%ecx,%r14d
325
326	xorl	%edx,%r15d
327	rorl	$6,%r13d
328	movl	%edx,%ebx
329
330	andl	%r15d,%edi
331	rorl	$2,%r14d
332	addl	%r13d,%r12d
333
334	xorl	%edi,%ebx
335	addl	%r12d,%r9d
336	addl	%r12d,%ebx
337
338	leaq	4(%rbp),%rbp
339	addl	%r14d,%ebx
340	movl	28(%rsi),%r12d
341	movl	%r9d,%r13d
342	movl	%ebx,%r14d
343	bswapl	%r12d
344	rorl	$14,%r13d
345	movl	%r10d,%edi
346
347	xorl	%r9d,%r13d
348	rorl	$9,%r14d
349	xorl	%r11d,%edi
350
351	movl	%r12d,28(%rsp)
352	xorl	%ebx,%r14d
353	andl	%r9d,%edi
354
355	rorl	$5,%r13d
356	addl	%eax,%r12d
357	xorl	%r11d,%edi
358
359	rorl	$11,%r14d
360	xorl	%r9d,%r13d
361	addl	%edi,%r12d
362
363	movl	%ebx,%edi
364	addl	(%rbp),%r12d
365	xorl	%ebx,%r14d
366
367	xorl	%ecx,%edi
368	rorl	$6,%r13d
369	movl	%ecx,%eax
370
371	andl	%edi,%r15d
372	rorl	$2,%r14d
373	addl	%r13d,%r12d
374
375	xorl	%r15d,%eax
376	addl	%r12d,%r8d
377	addl	%r12d,%eax
378
379	leaq	20(%rbp),%rbp
380	addl	%r14d,%eax
381	movl	32(%rsi),%r12d
382	movl	%r8d,%r13d
383	movl	%eax,%r14d
384	bswapl	%r12d
385	rorl	$14,%r13d
386	movl	%r9d,%r15d
387
388	xorl	%r8d,%r13d
389	rorl	$9,%r14d
390	xorl	%r10d,%r15d
391
392	movl	%r12d,32(%rsp)
393	xorl	%eax,%r14d
394	andl	%r8d,%r15d
395
396	rorl	$5,%r13d
397	addl	%r11d,%r12d
398	xorl	%r10d,%r15d
399
400	rorl	$11,%r14d
401	xorl	%r8d,%r13d
402	addl	%r15d,%r12d
403
404	movl	%eax,%r15d
405	addl	(%rbp),%r12d
406	xorl	%eax,%r14d
407
408	xorl	%ebx,%r15d
409	rorl	$6,%r13d
410	movl	%ebx,%r11d
411
412	andl	%r15d,%edi
413	rorl	$2,%r14d
414	addl	%r13d,%r12d
415
416	xorl	%edi,%r11d
417	addl	%r12d,%edx
418	addl	%r12d,%r11d
419
420	leaq	4(%rbp),%rbp
421	addl	%r14d,%r11d
422	movl	36(%rsi),%r12d
423	movl	%edx,%r13d
424	movl	%r11d,%r14d
425	bswapl	%r12d
426	rorl	$14,%r13d
427	movl	%r8d,%edi
428
429	xorl	%edx,%r13d
430	rorl	$9,%r14d
431	xorl	%r9d,%edi
432
433	movl	%r12d,36(%rsp)
434	xorl	%r11d,%r14d
435	andl	%edx,%edi
436
437	rorl	$5,%r13d
438	addl	%r10d,%r12d
439	xorl	%r9d,%edi
440
441	rorl	$11,%r14d
442	xorl	%edx,%r13d
443	addl	%edi,%r12d
444
445	movl	%r11d,%edi
446	addl	(%rbp),%r12d
447	xorl	%r11d,%r14d
448
449	xorl	%eax,%edi
450	rorl	$6,%r13d
451	movl	%eax,%r10d
452
453	andl	%edi,%r15d
454	rorl	$2,%r14d
455	addl	%r13d,%r12d
456
457	xorl	%r15d,%r10d
458	addl	%r12d,%ecx
459	addl	%r12d,%r10d
460
461	leaq	4(%rbp),%rbp
462	addl	%r14d,%r10d
463	movl	40(%rsi),%r12d
464	movl	%ecx,%r13d
465	movl	%r10d,%r14d
466	bswapl	%r12d
467	rorl	$14,%r13d
468	movl	%edx,%r15d
469
470	xorl	%ecx,%r13d
471	rorl	$9,%r14d
472	xorl	%r8d,%r15d
473
474	movl	%r12d,40(%rsp)
475	xorl	%r10d,%r14d
476	andl	%ecx,%r15d
477
478	rorl	$5,%r13d
479	addl	%r9d,%r12d
480	xorl	%r8d,%r15d
481
482	rorl	$11,%r14d
483	xorl	%ecx,%r13d
484	addl	%r15d,%r12d
485
486	movl	%r10d,%r15d
487	addl	(%rbp),%r12d
488	xorl	%r10d,%r14d
489
490	xorl	%r11d,%r15d
491	rorl	$6,%r13d
492	movl	%r11d,%r9d
493
494	andl	%r15d,%edi
495	rorl	$2,%r14d
496	addl	%r13d,%r12d
497
498	xorl	%edi,%r9d
499	addl	%r12d,%ebx
500	addl	%r12d,%r9d
501
502	leaq	4(%rbp),%rbp
503	addl	%r14d,%r9d
504	movl	44(%rsi),%r12d
505	movl	%ebx,%r13d
506	movl	%r9d,%r14d
507	bswapl	%r12d
508	rorl	$14,%r13d
509	movl	%ecx,%edi
510
511	xorl	%ebx,%r13d
512	rorl	$9,%r14d
513	xorl	%edx,%edi
514
515	movl	%r12d,44(%rsp)
516	xorl	%r9d,%r14d
517	andl	%ebx,%edi
518
519	rorl	$5,%r13d
520	addl	%r8d,%r12d
521	xorl	%edx,%edi
522
523	rorl	$11,%r14d
524	xorl	%ebx,%r13d
525	addl	%edi,%r12d
526
527	movl	%r9d,%edi
528	addl	(%rbp),%r12d
529	xorl	%r9d,%r14d
530
531	xorl	%r10d,%edi
532	rorl	$6,%r13d
533	movl	%r10d,%r8d
534
535	andl	%edi,%r15d
536	rorl	$2,%r14d
537	addl	%r13d,%r12d
538
539	xorl	%r15d,%r8d
540	addl	%r12d,%eax
541	addl	%r12d,%r8d
542
543	leaq	20(%rbp),%rbp
544	addl	%r14d,%r8d
545	movl	48(%rsi),%r12d
546	movl	%eax,%r13d
547	movl	%r8d,%r14d
548	bswapl	%r12d
549	rorl	$14,%r13d
550	movl	%ebx,%r15d
551
552	xorl	%eax,%r13d
553	rorl	$9,%r14d
554	xorl	%ecx,%r15d
555
556	movl	%r12d,48(%rsp)
557	xorl	%r8d,%r14d
558	andl	%eax,%r15d
559
560	rorl	$5,%r13d
561	addl	%edx,%r12d
562	xorl	%ecx,%r15d
563
564	rorl	$11,%r14d
565	xorl	%eax,%r13d
566	addl	%r15d,%r12d
567
568	movl	%r8d,%r15d
569	addl	(%rbp),%r12d
570	xorl	%r8d,%r14d
571
572	xorl	%r9d,%r15d
573	rorl	$6,%r13d
574	movl	%r9d,%edx
575
576	andl	%r15d,%edi
577	rorl	$2,%r14d
578	addl	%r13d,%r12d
579
580	xorl	%edi,%edx
581	addl	%r12d,%r11d
582	addl	%r12d,%edx
583
584	leaq	4(%rbp),%rbp
585	addl	%r14d,%edx
586	movl	52(%rsi),%r12d
587	movl	%r11d,%r13d
588	movl	%edx,%r14d
589	bswapl	%r12d
590	rorl	$14,%r13d
591	movl	%eax,%edi
592
593	xorl	%r11d,%r13d
594	rorl	$9,%r14d
595	xorl	%ebx,%edi
596
597	movl	%r12d,52(%rsp)
598	xorl	%edx,%r14d
599	andl	%r11d,%edi
600
601	rorl	$5,%r13d
602	addl	%ecx,%r12d
603	xorl	%ebx,%edi
604
605	rorl	$11,%r14d
606	xorl	%r11d,%r13d
607	addl	%edi,%r12d
608
609	movl	%edx,%edi
610	addl	(%rbp),%r12d
611	xorl	%edx,%r14d
612
613	xorl	%r8d,%edi
614	rorl	$6,%r13d
615	movl	%r8d,%ecx
616
617	andl	%edi,%r15d
618	rorl	$2,%r14d
619	addl	%r13d,%r12d
620
621	xorl	%r15d,%ecx
622	addl	%r12d,%r10d
623	addl	%r12d,%ecx
624
625	leaq	4(%rbp),%rbp
626	addl	%r14d,%ecx
627	movl	56(%rsi),%r12d
628	movl	%r10d,%r13d
629	movl	%ecx,%r14d
630	bswapl	%r12d
631	rorl	$14,%r13d
632	movl	%r11d,%r15d
633
634	xorl	%r10d,%r13d
635	rorl	$9,%r14d
636	xorl	%eax,%r15d
637
638	movl	%r12d,56(%rsp)
639	xorl	%ecx,%r14d
640	andl	%r10d,%r15d
641
642	rorl	$5,%r13d
643	addl	%ebx,%r12d
644	xorl	%eax,%r15d
645
646	rorl	$11,%r14d
647	xorl	%r10d,%r13d
648	addl	%r15d,%r12d
649
650	movl	%ecx,%r15d
651	addl	(%rbp),%r12d
652	xorl	%ecx,%r14d
653
654	xorl	%edx,%r15d
655	rorl	$6,%r13d
656	movl	%edx,%ebx
657
658	andl	%r15d,%edi
659	rorl	$2,%r14d
660	addl	%r13d,%r12d
661
662	xorl	%edi,%ebx
663	addl	%r12d,%r9d
664	addl	%r12d,%ebx
665
666	leaq	4(%rbp),%rbp
667	addl	%r14d,%ebx
668	movl	60(%rsi),%r12d
669	movl	%r9d,%r13d
670	movl	%ebx,%r14d
671	bswapl	%r12d
672	rorl	$14,%r13d
673	movl	%r10d,%edi
674
675	xorl	%r9d,%r13d
676	rorl	$9,%r14d
677	xorl	%r11d,%edi
678
679	movl	%r12d,60(%rsp)
680	xorl	%ebx,%r14d
681	andl	%r9d,%edi
682
683	rorl	$5,%r13d
684	addl	%eax,%r12d
685	xorl	%r11d,%edi
686
687	rorl	$11,%r14d
688	xorl	%r9d,%r13d
689	addl	%edi,%r12d
690
691	movl	%ebx,%edi
692	addl	(%rbp),%r12d
693	xorl	%ebx,%r14d
694
695	xorl	%ecx,%edi
696	rorl	$6,%r13d
697	movl	%ecx,%eax
698
699	andl	%edi,%r15d
700	rorl	$2,%r14d
701	addl	%r13d,%r12d
702
703	xorl	%r15d,%eax
704	addl	%r12d,%r8d
705	addl	%r12d,%eax
706
707	leaq	20(%rbp),%rbp
708	jmp	L$rounds_16_xx
709.p2align	4
710L$rounds_16_xx:
711	movl	4(%rsp),%r13d
712	movl	56(%rsp),%r15d
713
714	movl	%r13d,%r12d
715	rorl	$11,%r13d
716	addl	%r14d,%eax
717	movl	%r15d,%r14d
718	rorl	$2,%r15d
719
720	xorl	%r12d,%r13d
721	shrl	$3,%r12d
722	rorl	$7,%r13d
723	xorl	%r14d,%r15d
724	shrl	$10,%r14d
725
726	rorl	$17,%r15d
727	xorl	%r13d,%r12d
728	xorl	%r14d,%r15d
729	addl	36(%rsp),%r12d
730
731	addl	0(%rsp),%r12d
732	movl	%r8d,%r13d
733	addl	%r15d,%r12d
734	movl	%eax,%r14d
735	rorl	$14,%r13d
736	movl	%r9d,%r15d
737
738	xorl	%r8d,%r13d
739	rorl	$9,%r14d
740	xorl	%r10d,%r15d
741
742	movl	%r12d,0(%rsp)
743	xorl	%eax,%r14d
744	andl	%r8d,%r15d
745
746	rorl	$5,%r13d
747	addl	%r11d,%r12d
748	xorl	%r10d,%r15d
749
750	rorl	$11,%r14d
751	xorl	%r8d,%r13d
752	addl	%r15d,%r12d
753
754	movl	%eax,%r15d
755	addl	(%rbp),%r12d
756	xorl	%eax,%r14d
757
758	xorl	%ebx,%r15d
759	rorl	$6,%r13d
760	movl	%ebx,%r11d
761
762	andl	%r15d,%edi
763	rorl	$2,%r14d
764	addl	%r13d,%r12d
765
766	xorl	%edi,%r11d
767	addl	%r12d,%edx
768	addl	%r12d,%r11d
769
770	leaq	4(%rbp),%rbp
771	movl	8(%rsp),%r13d
772	movl	60(%rsp),%edi
773
774	movl	%r13d,%r12d
775	rorl	$11,%r13d
776	addl	%r14d,%r11d
777	movl	%edi,%r14d
778	rorl	$2,%edi
779
780	xorl	%r12d,%r13d
781	shrl	$3,%r12d
782	rorl	$7,%r13d
783	xorl	%r14d,%edi
784	shrl	$10,%r14d
785
786	rorl	$17,%edi
787	xorl	%r13d,%r12d
788	xorl	%r14d,%edi
789	addl	40(%rsp),%r12d
790
791	addl	4(%rsp),%r12d
792	movl	%edx,%r13d
793	addl	%edi,%r12d
794	movl	%r11d,%r14d
795	rorl	$14,%r13d
796	movl	%r8d,%edi
797
798	xorl	%edx,%r13d
799	rorl	$9,%r14d
800	xorl	%r9d,%edi
801
802	movl	%r12d,4(%rsp)
803	xorl	%r11d,%r14d
804	andl	%edx,%edi
805
806	rorl	$5,%r13d
807	addl	%r10d,%r12d
808	xorl	%r9d,%edi
809
810	rorl	$11,%r14d
811	xorl	%edx,%r13d
812	addl	%edi,%r12d
813
814	movl	%r11d,%edi
815	addl	(%rbp),%r12d
816	xorl	%r11d,%r14d
817
818	xorl	%eax,%edi
819	rorl	$6,%r13d
820	movl	%eax,%r10d
821
822	andl	%edi,%r15d
823	rorl	$2,%r14d
824	addl	%r13d,%r12d
825
826	xorl	%r15d,%r10d
827	addl	%r12d,%ecx
828	addl	%r12d,%r10d
829
830	leaq	4(%rbp),%rbp
831	movl	12(%rsp),%r13d
832	movl	0(%rsp),%r15d
833
834	movl	%r13d,%r12d
835	rorl	$11,%r13d
836	addl	%r14d,%r10d
837	movl	%r15d,%r14d
838	rorl	$2,%r15d
839
840	xorl	%r12d,%r13d
841	shrl	$3,%r12d
842	rorl	$7,%r13d
843	xorl	%r14d,%r15d
844	shrl	$10,%r14d
845
846	rorl	$17,%r15d
847	xorl	%r13d,%r12d
848	xorl	%r14d,%r15d
849	addl	44(%rsp),%r12d
850
851	addl	8(%rsp),%r12d
852	movl	%ecx,%r13d
853	addl	%r15d,%r12d
854	movl	%r10d,%r14d
855	rorl	$14,%r13d
856	movl	%edx,%r15d
857
858	xorl	%ecx,%r13d
859	rorl	$9,%r14d
860	xorl	%r8d,%r15d
861
862	movl	%r12d,8(%rsp)
863	xorl	%r10d,%r14d
864	andl	%ecx,%r15d
865
866	rorl	$5,%r13d
867	addl	%r9d,%r12d
868	xorl	%r8d,%r15d
869
870	rorl	$11,%r14d
871	xorl	%ecx,%r13d
872	addl	%r15d,%r12d
873
874	movl	%r10d,%r15d
875	addl	(%rbp),%r12d
876	xorl	%r10d,%r14d
877
878	xorl	%r11d,%r15d
879	rorl	$6,%r13d
880	movl	%r11d,%r9d
881
882	andl	%r15d,%edi
883	rorl	$2,%r14d
884	addl	%r13d,%r12d
885
886	xorl	%edi,%r9d
887	addl	%r12d,%ebx
888	addl	%r12d,%r9d
889
890	leaq	4(%rbp),%rbp
891	movl	16(%rsp),%r13d
892	movl	4(%rsp),%edi
893
894	movl	%r13d,%r12d
895	rorl	$11,%r13d
896	addl	%r14d,%r9d
897	movl	%edi,%r14d
898	rorl	$2,%edi
899
900	xorl	%r12d,%r13d
901	shrl	$3,%r12d
902	rorl	$7,%r13d
903	xorl	%r14d,%edi
904	shrl	$10,%r14d
905
906	rorl	$17,%edi
907	xorl	%r13d,%r12d
908	xorl	%r14d,%edi
909	addl	48(%rsp),%r12d
910
911	addl	12(%rsp),%r12d
912	movl	%ebx,%r13d
913	addl	%edi,%r12d
914	movl	%r9d,%r14d
915	rorl	$14,%r13d
916	movl	%ecx,%edi
917
918	xorl	%ebx,%r13d
919	rorl	$9,%r14d
920	xorl	%edx,%edi
921
922	movl	%r12d,12(%rsp)
923	xorl	%r9d,%r14d
924	andl	%ebx,%edi
925
926	rorl	$5,%r13d
927	addl	%r8d,%r12d
928	xorl	%edx,%edi
929
930	rorl	$11,%r14d
931	xorl	%ebx,%r13d
932	addl	%edi,%r12d
933
934	movl	%r9d,%edi
935	addl	(%rbp),%r12d
936	xorl	%r9d,%r14d
937
938	xorl	%r10d,%edi
939	rorl	$6,%r13d
940	movl	%r10d,%r8d
941
942	andl	%edi,%r15d
943	rorl	$2,%r14d
944	addl	%r13d,%r12d
945
946	xorl	%r15d,%r8d
947	addl	%r12d,%eax
948	addl	%r12d,%r8d
949
950	leaq	20(%rbp),%rbp
951	movl	20(%rsp),%r13d
952	movl	8(%rsp),%r15d
953
954	movl	%r13d,%r12d
955	rorl	$11,%r13d
956	addl	%r14d,%r8d
957	movl	%r15d,%r14d
958	rorl	$2,%r15d
959
960	xorl	%r12d,%r13d
961	shrl	$3,%r12d
962	rorl	$7,%r13d
963	xorl	%r14d,%r15d
964	shrl	$10,%r14d
965
966	rorl	$17,%r15d
967	xorl	%r13d,%r12d
968	xorl	%r14d,%r15d
969	addl	52(%rsp),%r12d
970
971	addl	16(%rsp),%r12d
972	movl	%eax,%r13d
973	addl	%r15d,%r12d
974	movl	%r8d,%r14d
975	rorl	$14,%r13d
976	movl	%ebx,%r15d
977
978	xorl	%eax,%r13d
979	rorl	$9,%r14d
980	xorl	%ecx,%r15d
981
982	movl	%r12d,16(%rsp)
983	xorl	%r8d,%r14d
984	andl	%eax,%r15d
985
986	rorl	$5,%r13d
987	addl	%edx,%r12d
988	xorl	%ecx,%r15d
989
990	rorl	$11,%r14d
991	xorl	%eax,%r13d
992	addl	%r15d,%r12d
993
994	movl	%r8d,%r15d
995	addl	(%rbp),%r12d
996	xorl	%r8d,%r14d
997
998	xorl	%r9d,%r15d
999	rorl	$6,%r13d
1000	movl	%r9d,%edx
1001
1002	andl	%r15d,%edi
1003	rorl	$2,%r14d
1004	addl	%r13d,%r12d
1005
1006	xorl	%edi,%edx
1007	addl	%r12d,%r11d
1008	addl	%r12d,%edx
1009
1010	leaq	4(%rbp),%rbp
1011	movl	24(%rsp),%r13d
1012	movl	12(%rsp),%edi
1013
1014	movl	%r13d,%r12d
1015	rorl	$11,%r13d
1016	addl	%r14d,%edx
1017	movl	%edi,%r14d
1018	rorl	$2,%edi
1019
1020	xorl	%r12d,%r13d
1021	shrl	$3,%r12d
1022	rorl	$7,%r13d
1023	xorl	%r14d,%edi
1024	shrl	$10,%r14d
1025
1026	rorl	$17,%edi
1027	xorl	%r13d,%r12d
1028	xorl	%r14d,%edi
1029	addl	56(%rsp),%r12d
1030
1031	addl	20(%rsp),%r12d
1032	movl	%r11d,%r13d
1033	addl	%edi,%r12d
1034	movl	%edx,%r14d
1035	rorl	$14,%r13d
1036	movl	%eax,%edi
1037
1038	xorl	%r11d,%r13d
1039	rorl	$9,%r14d
1040	xorl	%ebx,%edi
1041
1042	movl	%r12d,20(%rsp)
1043	xorl	%edx,%r14d
1044	andl	%r11d,%edi
1045
1046	rorl	$5,%r13d
1047	addl	%ecx,%r12d
1048	xorl	%ebx,%edi
1049
1050	rorl	$11,%r14d
1051	xorl	%r11d,%r13d
1052	addl	%edi,%r12d
1053
1054	movl	%edx,%edi
1055	addl	(%rbp),%r12d
1056	xorl	%edx,%r14d
1057
1058	xorl	%r8d,%edi
1059	rorl	$6,%r13d
1060	movl	%r8d,%ecx
1061
1062	andl	%edi,%r15d
1063	rorl	$2,%r14d
1064	addl	%r13d,%r12d
1065
1066	xorl	%r15d,%ecx
1067	addl	%r12d,%r10d
1068	addl	%r12d,%ecx
1069
1070	leaq	4(%rbp),%rbp
1071	movl	28(%rsp),%r13d
1072	movl	16(%rsp),%r15d
1073
1074	movl	%r13d,%r12d
1075	rorl	$11,%r13d
1076	addl	%r14d,%ecx
1077	movl	%r15d,%r14d
1078	rorl	$2,%r15d
1079
1080	xorl	%r12d,%r13d
1081	shrl	$3,%r12d
1082	rorl	$7,%r13d
1083	xorl	%r14d,%r15d
1084	shrl	$10,%r14d
1085
1086	rorl	$17,%r15d
1087	xorl	%r13d,%r12d
1088	xorl	%r14d,%r15d
1089	addl	60(%rsp),%r12d
1090
1091	addl	24(%rsp),%r12d
1092	movl	%r10d,%r13d
1093	addl	%r15d,%r12d
1094	movl	%ecx,%r14d
1095	rorl	$14,%r13d
1096	movl	%r11d,%r15d
1097
1098	xorl	%r10d,%r13d
1099	rorl	$9,%r14d
1100	xorl	%eax,%r15d
1101
1102	movl	%r12d,24(%rsp)
1103	xorl	%ecx,%r14d
1104	andl	%r10d,%r15d
1105
1106	rorl	$5,%r13d
1107	addl	%ebx,%r12d
1108	xorl	%eax,%r15d
1109
1110	rorl	$11,%r14d
1111	xorl	%r10d,%r13d
1112	addl	%r15d,%r12d
1113
1114	movl	%ecx,%r15d
1115	addl	(%rbp),%r12d
1116	xorl	%ecx,%r14d
1117
1118	xorl	%edx,%r15d
1119	rorl	$6,%r13d
1120	movl	%edx,%ebx
1121
1122	andl	%r15d,%edi
1123	rorl	$2,%r14d
1124	addl	%r13d,%r12d
1125
1126	xorl	%edi,%ebx
1127	addl	%r12d,%r9d
1128	addl	%r12d,%ebx
1129
1130	leaq	4(%rbp),%rbp
1131	movl	32(%rsp),%r13d
1132	movl	20(%rsp),%edi
1133
1134	movl	%r13d,%r12d
1135	rorl	$11,%r13d
1136	addl	%r14d,%ebx
1137	movl	%edi,%r14d
1138	rorl	$2,%edi
1139
1140	xorl	%r12d,%r13d
1141	shrl	$3,%r12d
1142	rorl	$7,%r13d
1143	xorl	%r14d,%edi
1144	shrl	$10,%r14d
1145
1146	rorl	$17,%edi
1147	xorl	%r13d,%r12d
1148	xorl	%r14d,%edi
1149	addl	0(%rsp),%r12d
1150
1151	addl	28(%rsp),%r12d
1152	movl	%r9d,%r13d
1153	addl	%edi,%r12d
1154	movl	%ebx,%r14d
1155	rorl	$14,%r13d
1156	movl	%r10d,%edi
1157
1158	xorl	%r9d,%r13d
1159	rorl	$9,%r14d
1160	xorl	%r11d,%edi
1161
1162	movl	%r12d,28(%rsp)
1163	xorl	%ebx,%r14d
1164	andl	%r9d,%edi
1165
1166	rorl	$5,%r13d
1167	addl	%eax,%r12d
1168	xorl	%r11d,%edi
1169
1170	rorl	$11,%r14d
1171	xorl	%r9d,%r13d
1172	addl	%edi,%r12d
1173
1174	movl	%ebx,%edi
1175	addl	(%rbp),%r12d
1176	xorl	%ebx,%r14d
1177
1178	xorl	%ecx,%edi
1179	rorl	$6,%r13d
1180	movl	%ecx,%eax
1181
1182	andl	%edi,%r15d
1183	rorl	$2,%r14d
1184	addl	%r13d,%r12d
1185
1186	xorl	%r15d,%eax
1187	addl	%r12d,%r8d
1188	addl	%r12d,%eax
1189
1190	leaq	20(%rbp),%rbp
1191	movl	36(%rsp),%r13d
1192	movl	24(%rsp),%r15d
1193
1194	movl	%r13d,%r12d
1195	rorl	$11,%r13d
1196	addl	%r14d,%eax
1197	movl	%r15d,%r14d
1198	rorl	$2,%r15d
1199
1200	xorl	%r12d,%r13d
1201	shrl	$3,%r12d
1202	rorl	$7,%r13d
1203	xorl	%r14d,%r15d
1204	shrl	$10,%r14d
1205
1206	rorl	$17,%r15d
1207	xorl	%r13d,%r12d
1208	xorl	%r14d,%r15d
1209	addl	4(%rsp),%r12d
1210
1211	addl	32(%rsp),%r12d
1212	movl	%r8d,%r13d
1213	addl	%r15d,%r12d
1214	movl	%eax,%r14d
1215	rorl	$14,%r13d
1216	movl	%r9d,%r15d
1217
1218	xorl	%r8d,%r13d
1219	rorl	$9,%r14d
1220	xorl	%r10d,%r15d
1221
1222	movl	%r12d,32(%rsp)
1223	xorl	%eax,%r14d
1224	andl	%r8d,%r15d
1225
1226	rorl	$5,%r13d
1227	addl	%r11d,%r12d
1228	xorl	%r10d,%r15d
1229
1230	rorl	$11,%r14d
1231	xorl	%r8d,%r13d
1232	addl	%r15d,%r12d
1233
1234	movl	%eax,%r15d
1235	addl	(%rbp),%r12d
1236	xorl	%eax,%r14d
1237
1238	xorl	%ebx,%r15d
1239	rorl	$6,%r13d
1240	movl	%ebx,%r11d
1241
1242	andl	%r15d,%edi
1243	rorl	$2,%r14d
1244	addl	%r13d,%r12d
1245
1246	xorl	%edi,%r11d
1247	addl	%r12d,%edx
1248	addl	%r12d,%r11d
1249
1250	leaq	4(%rbp),%rbp
1251	movl	40(%rsp),%r13d
1252	movl	28(%rsp),%edi
1253
1254	movl	%r13d,%r12d
1255	rorl	$11,%r13d
1256	addl	%r14d,%r11d
1257	movl	%edi,%r14d
1258	rorl	$2,%edi
1259
1260	xorl	%r12d,%r13d
1261	shrl	$3,%r12d
1262	rorl	$7,%r13d
1263	xorl	%r14d,%edi
1264	shrl	$10,%r14d
1265
1266	rorl	$17,%edi
1267	xorl	%r13d,%r12d
1268	xorl	%r14d,%edi
1269	addl	8(%rsp),%r12d
1270
1271	addl	36(%rsp),%r12d
1272	movl	%edx,%r13d
1273	addl	%edi,%r12d
1274	movl	%r11d,%r14d
1275	rorl	$14,%r13d
1276	movl	%r8d,%edi
1277
1278	xorl	%edx,%r13d
1279	rorl	$9,%r14d
1280	xorl	%r9d,%edi
1281
1282	movl	%r12d,36(%rsp)
1283	xorl	%r11d,%r14d
1284	andl	%edx,%edi
1285
1286	rorl	$5,%r13d
1287	addl	%r10d,%r12d
1288	xorl	%r9d,%edi
1289
1290	rorl	$11,%r14d
1291	xorl	%edx,%r13d
1292	addl	%edi,%r12d
1293
1294	movl	%r11d,%edi
1295	addl	(%rbp),%r12d
1296	xorl	%r11d,%r14d
1297
1298	xorl	%eax,%edi
1299	rorl	$6,%r13d
1300	movl	%eax,%r10d
1301
1302	andl	%edi,%r15d
1303	rorl	$2,%r14d
1304	addl	%r13d,%r12d
1305
1306	xorl	%r15d,%r10d
1307	addl	%r12d,%ecx
1308	addl	%r12d,%r10d
1309
1310	leaq	4(%rbp),%rbp
1311	movl	44(%rsp),%r13d
1312	movl	32(%rsp),%r15d
1313
1314	movl	%r13d,%r12d
1315	rorl	$11,%r13d
1316	addl	%r14d,%r10d
1317	movl	%r15d,%r14d
1318	rorl	$2,%r15d
1319
1320	xorl	%r12d,%r13d
1321	shrl	$3,%r12d
1322	rorl	$7,%r13d
1323	xorl	%r14d,%r15d
1324	shrl	$10,%r14d
1325
1326	rorl	$17,%r15d
1327	xorl	%r13d,%r12d
1328	xorl	%r14d,%r15d
1329	addl	12(%rsp),%r12d
1330
1331	addl	40(%rsp),%r12d
1332	movl	%ecx,%r13d
1333	addl	%r15d,%r12d
1334	movl	%r10d,%r14d
1335	rorl	$14,%r13d
1336	movl	%edx,%r15d
1337
1338	xorl	%ecx,%r13d
1339	rorl	$9,%r14d
1340	xorl	%r8d,%r15d
1341
1342	movl	%r12d,40(%rsp)
1343	xorl	%r10d,%r14d
1344	andl	%ecx,%r15d
1345
1346	rorl	$5,%r13d
1347	addl	%r9d,%r12d
1348	xorl	%r8d,%r15d
1349
1350	rorl	$11,%r14d
1351	xorl	%ecx,%r13d
1352	addl	%r15d,%r12d
1353
1354	movl	%r10d,%r15d
1355	addl	(%rbp),%r12d
1356	xorl	%r10d,%r14d
1357
1358	xorl	%r11d,%r15d
1359	rorl	$6,%r13d
1360	movl	%r11d,%r9d
1361
1362	andl	%r15d,%edi
1363	rorl	$2,%r14d
1364	addl	%r13d,%r12d
1365
1366	xorl	%edi,%r9d
1367	addl	%r12d,%ebx
1368	addl	%r12d,%r9d
1369
1370	leaq	4(%rbp),%rbp
1371	movl	48(%rsp),%r13d
1372	movl	36(%rsp),%edi
1373
1374	movl	%r13d,%r12d
1375	rorl	$11,%r13d
1376	addl	%r14d,%r9d
1377	movl	%edi,%r14d
1378	rorl	$2,%edi
1379
1380	xorl	%r12d,%r13d
1381	shrl	$3,%r12d
1382	rorl	$7,%r13d
1383	xorl	%r14d,%edi
1384	shrl	$10,%r14d
1385
1386	rorl	$17,%edi
1387	xorl	%r13d,%r12d
1388	xorl	%r14d,%edi
1389	addl	16(%rsp),%r12d
1390
1391	addl	44(%rsp),%r12d
1392	movl	%ebx,%r13d
1393	addl	%edi,%r12d
1394	movl	%r9d,%r14d
1395	rorl	$14,%r13d
1396	movl	%ecx,%edi
1397
1398	xorl	%ebx,%r13d
1399	rorl	$9,%r14d
1400	xorl	%edx,%edi
1401
1402	movl	%r12d,44(%rsp)
1403	xorl	%r9d,%r14d
1404	andl	%ebx,%edi
1405
1406	rorl	$5,%r13d
1407	addl	%r8d,%r12d
1408	xorl	%edx,%edi
1409
1410	rorl	$11,%r14d
1411	xorl	%ebx,%r13d
1412	addl	%edi,%r12d
1413
1414	movl	%r9d,%edi
1415	addl	(%rbp),%r12d
1416	xorl	%r9d,%r14d
1417
1418	xorl	%r10d,%edi
1419	rorl	$6,%r13d
1420	movl	%r10d,%r8d
1421
1422	andl	%edi,%r15d
1423	rorl	$2,%r14d
1424	addl	%r13d,%r12d
1425
1426	xorl	%r15d,%r8d
1427	addl	%r12d,%eax
1428	addl	%r12d,%r8d
1429
1430	leaq	20(%rbp),%rbp
1431	movl	52(%rsp),%r13d
1432	movl	40(%rsp),%r15d
1433
1434	movl	%r13d,%r12d
1435	rorl	$11,%r13d
1436	addl	%r14d,%r8d
1437	movl	%r15d,%r14d
1438	rorl	$2,%r15d
1439
1440	xorl	%r12d,%r13d
1441	shrl	$3,%r12d
1442	rorl	$7,%r13d
1443	xorl	%r14d,%r15d
1444	shrl	$10,%r14d
1445
1446	rorl	$17,%r15d
1447	xorl	%r13d,%r12d
1448	xorl	%r14d,%r15d
1449	addl	20(%rsp),%r12d
1450
1451	addl	48(%rsp),%r12d
1452	movl	%eax,%r13d
1453	addl	%r15d,%r12d
1454	movl	%r8d,%r14d
1455	rorl	$14,%r13d
1456	movl	%ebx,%r15d
1457
1458	xorl	%eax,%r13d
1459	rorl	$9,%r14d
1460	xorl	%ecx,%r15d
1461
1462	movl	%r12d,48(%rsp)
1463	xorl	%r8d,%r14d
1464	andl	%eax,%r15d
1465
1466	rorl	$5,%r13d
1467	addl	%edx,%r12d
1468	xorl	%ecx,%r15d
1469
1470	rorl	$11,%r14d
1471	xorl	%eax,%r13d
1472	addl	%r15d,%r12d
1473
1474	movl	%r8d,%r15d
1475	addl	(%rbp),%r12d
1476	xorl	%r8d,%r14d
1477
1478	xorl	%r9d,%r15d
1479	rorl	$6,%r13d
1480	movl	%r9d,%edx
1481
1482	andl	%r15d,%edi
1483	rorl	$2,%r14d
1484	addl	%r13d,%r12d
1485
1486	xorl	%edi,%edx
1487	addl	%r12d,%r11d
1488	addl	%r12d,%edx
1489
1490	leaq	4(%rbp),%rbp
1491	movl	56(%rsp),%r13d
1492	movl	44(%rsp),%edi
1493
1494	movl	%r13d,%r12d
1495	rorl	$11,%r13d
1496	addl	%r14d,%edx
1497	movl	%edi,%r14d
1498	rorl	$2,%edi
1499
1500	xorl	%r12d,%r13d
1501	shrl	$3,%r12d
1502	rorl	$7,%r13d
1503	xorl	%r14d,%edi
1504	shrl	$10,%r14d
1505
1506	rorl	$17,%edi
1507	xorl	%r13d,%r12d
1508	xorl	%r14d,%edi
1509	addl	24(%rsp),%r12d
1510
1511	addl	52(%rsp),%r12d
1512	movl	%r11d,%r13d
1513	addl	%edi,%r12d
1514	movl	%edx,%r14d
1515	rorl	$14,%r13d
1516	movl	%eax,%edi
1517
1518	xorl	%r11d,%r13d
1519	rorl	$9,%r14d
1520	xorl	%ebx,%edi
1521
1522	movl	%r12d,52(%rsp)
1523	xorl	%edx,%r14d
1524	andl	%r11d,%edi
1525
1526	rorl	$5,%r13d
1527	addl	%ecx,%r12d
1528	xorl	%ebx,%edi
1529
1530	rorl	$11,%r14d
1531	xorl	%r11d,%r13d
1532	addl	%edi,%r12d
1533
1534	movl	%edx,%edi
1535	addl	(%rbp),%r12d
1536	xorl	%edx,%r14d
1537
1538	xorl	%r8d,%edi
1539	rorl	$6,%r13d
1540	movl	%r8d,%ecx
1541
1542	andl	%edi,%r15d
1543	rorl	$2,%r14d
1544	addl	%r13d,%r12d
1545
1546	xorl	%r15d,%ecx
1547	addl	%r12d,%r10d
1548	addl	%r12d,%ecx
1549
1550	leaq	4(%rbp),%rbp
1551	movl	60(%rsp),%r13d
1552	movl	48(%rsp),%r15d
1553
1554	movl	%r13d,%r12d
1555	rorl	$11,%r13d
1556	addl	%r14d,%ecx
1557	movl	%r15d,%r14d
1558	rorl	$2,%r15d
1559
1560	xorl	%r12d,%r13d
1561	shrl	$3,%r12d
1562	rorl	$7,%r13d
1563	xorl	%r14d,%r15d
1564	shrl	$10,%r14d
1565
1566	rorl	$17,%r15d
1567	xorl	%r13d,%r12d
1568	xorl	%r14d,%r15d
1569	addl	28(%rsp),%r12d
1570
1571	addl	56(%rsp),%r12d
1572	movl	%r10d,%r13d
1573	addl	%r15d,%r12d
1574	movl	%ecx,%r14d
1575	rorl	$14,%r13d
1576	movl	%r11d,%r15d
1577
1578	xorl	%r10d,%r13d
1579	rorl	$9,%r14d
1580	xorl	%eax,%r15d
1581
1582	movl	%r12d,56(%rsp)
1583	xorl	%ecx,%r14d
1584	andl	%r10d,%r15d
1585
1586	rorl	$5,%r13d
1587	addl	%ebx,%r12d
1588	xorl	%eax,%r15d
1589
1590	rorl	$11,%r14d
1591	xorl	%r10d,%r13d
1592	addl	%r15d,%r12d
1593
1594	movl	%ecx,%r15d
1595	addl	(%rbp),%r12d
1596	xorl	%ecx,%r14d
1597
1598	xorl	%edx,%r15d
1599	rorl	$6,%r13d
1600	movl	%edx,%ebx
1601
1602	andl	%r15d,%edi
1603	rorl	$2,%r14d
1604	addl	%r13d,%r12d
1605
1606	xorl	%edi,%ebx
1607	addl	%r12d,%r9d
1608	addl	%r12d,%ebx
1609
1610	leaq	4(%rbp),%rbp
1611	movl	0(%rsp),%r13d
1612	movl	52(%rsp),%edi
1613
1614	movl	%r13d,%r12d
1615	rorl	$11,%r13d
1616	addl	%r14d,%ebx
1617	movl	%edi,%r14d
1618	rorl	$2,%edi
1619
1620	xorl	%r12d,%r13d
1621	shrl	$3,%r12d
1622	rorl	$7,%r13d
1623	xorl	%r14d,%edi
1624	shrl	$10,%r14d
1625
1626	rorl	$17,%edi
1627	xorl	%r13d,%r12d
1628	xorl	%r14d,%edi
1629	addl	32(%rsp),%r12d
1630
1631	addl	60(%rsp),%r12d
1632	movl	%r9d,%r13d
1633	addl	%edi,%r12d
1634	movl	%ebx,%r14d
1635	rorl	$14,%r13d
1636	movl	%r10d,%edi
1637
1638	xorl	%r9d,%r13d
1639	rorl	$9,%r14d
1640	xorl	%r11d,%edi
1641
1642	movl	%r12d,60(%rsp)
1643	xorl	%ebx,%r14d
1644	andl	%r9d,%edi
1645
1646	rorl	$5,%r13d
1647	addl	%eax,%r12d
1648	xorl	%r11d,%edi
1649
1650	rorl	$11,%r14d
1651	xorl	%r9d,%r13d
1652	addl	%edi,%r12d
1653
1654	movl	%ebx,%edi
1655	addl	(%rbp),%r12d
1656	xorl	%ebx,%r14d
1657
1658	xorl	%ecx,%edi
1659	rorl	$6,%r13d
1660	movl	%ecx,%eax
1661
1662	andl	%edi,%r15d
1663	rorl	$2,%r14d
1664	addl	%r13d,%r12d
1665
1666	xorl	%r15d,%eax
1667	addl	%r12d,%r8d
1668	addl	%r12d,%eax
1669
1670	leaq	20(%rbp),%rbp
1671	cmpb	$0,3(%rbp)
1672	jnz	L$rounds_16_xx
1673
1674	movq	64+0(%rsp),%rdi
1675	addl	%r14d,%eax
1676	leaq	64(%rsi),%rsi
1677
1678	addl	0(%rdi),%eax
1679	addl	4(%rdi),%ebx
1680	addl	8(%rdi),%ecx
1681	addl	12(%rdi),%edx
1682	addl	16(%rdi),%r8d
1683	addl	20(%rdi),%r9d
1684	addl	24(%rdi),%r10d
1685	addl	28(%rdi),%r11d
1686
1687	cmpq	64+16(%rsp),%rsi
1688
1689	movl	%eax,0(%rdi)
1690	movl	%ebx,4(%rdi)
1691	movl	%ecx,8(%rdi)
1692	movl	%edx,12(%rdi)
1693	movl	%r8d,16(%rdi)
1694	movl	%r9d,20(%rdi)
1695	movl	%r10d,24(%rdi)
1696	movl	%r11d,28(%rdi)
1697	jb	L$loop
1698
1699	movq	64+24(%rsp),%rsi
1700	movq	-48(%rsi),%r15
1701	movq	-40(%rsi),%r14
1702	movq	-32(%rsi),%r13
1703	movq	-24(%rsi),%r12
1704	movq	-16(%rsi),%rbp
1705	movq	-8(%rsi),%rbx
1706	leaq	(%rsi),%rsp
1707L$epilogue:
1708	.byte	0xf3,0xc3
1709
1710.p2align	6
1711
1712K256:
1713.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
1714.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
1715.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
1716.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
1717.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
1718.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
1719.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
1720.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
1721.long	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
1722.long	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
1723.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
1724.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
1725.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
1726.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
1727.long	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
1728.long	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
1729.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
1730.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
1731.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
1732.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
1733.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
1734.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
1735.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
1736.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
1737.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
1738.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
1739.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
1740.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
1741.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
1742.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
1743.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
1744.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
1745
1746.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
1747.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
1748.long	0x03020100,0x0b0a0908,0xffffffff,0xffffffff
1749.long	0x03020100,0x0b0a0908,0xffffffff,0xffffffff
1750.long	0xffffffff,0xffffffff,0x03020100,0x0b0a0908
1751.long	0xffffffff,0xffffffff,0x03020100,0x0b0a0908
1752.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
1753
1754.p2align	6
1755sha256_block_data_order_ssse3:
1756L$ssse3_shortcut:
1757	movq	%rsp,%rax
1758	pushq	%rbx
1759	pushq	%rbp
1760	pushq	%r12
1761	pushq	%r13
1762	pushq	%r14
1763	pushq	%r15
1764	shlq	$4,%rdx
1765	subq	$96,%rsp
1766	leaq	(%rsi,%rdx,4),%rdx
1767	andq	$-64,%rsp
1768	movq	%rdi,64+0(%rsp)
1769	movq	%rsi,64+8(%rsp)
1770	movq	%rdx,64+16(%rsp)
1771	movq	%rax,64+24(%rsp)
1772L$prologue_ssse3:
1773
1774	movl	0(%rdi),%eax
1775	movl	4(%rdi),%ebx
1776	movl	8(%rdi),%ecx
1777	movl	12(%rdi),%edx
1778	movl	16(%rdi),%r8d
1779	movl	20(%rdi),%r9d
1780	movl	24(%rdi),%r10d
1781	movl	28(%rdi),%r11d
1782
1783
1784	jmp	L$loop_ssse3
1785.p2align	4
1786L$loop_ssse3:
1787	movdqa	K256+512(%rip),%xmm7
1788	movdqu	0(%rsi),%xmm0
1789	movdqu	16(%rsi),%xmm1
1790	movdqu	32(%rsi),%xmm2
1791.byte	102,15,56,0,199
1792	movdqu	48(%rsi),%xmm3
1793	leaq	K256(%rip),%rbp
1794.byte	102,15,56,0,207
1795	movdqa	0(%rbp),%xmm4
1796	movdqa	32(%rbp),%xmm5
1797.byte	102,15,56,0,215
1798	paddd	%xmm0,%xmm4
1799	movdqa	64(%rbp),%xmm6
1800.byte	102,15,56,0,223
1801	movdqa	96(%rbp),%xmm7
1802	paddd	%xmm1,%xmm5
1803	paddd	%xmm2,%xmm6
1804	paddd	%xmm3,%xmm7
1805	movdqa	%xmm4,0(%rsp)
1806	movl	%eax,%r14d
1807	movdqa	%xmm5,16(%rsp)
1808	movl	%ebx,%edi
1809	movdqa	%xmm6,32(%rsp)
1810	xorl	%ecx,%edi
1811	movdqa	%xmm7,48(%rsp)
1812	movl	%r8d,%r13d
1813	jmp	L$ssse3_00_47
1814
1815.p2align	4
1816L$ssse3_00_47:
1817	subq	$-128,%rbp
1818	rorl	$14,%r13d
1819	movdqa	%xmm1,%xmm4
1820	movl	%r14d,%eax
1821	movl	%r9d,%r12d
1822	movdqa	%xmm3,%xmm7
1823	rorl	$9,%r14d
1824	xorl	%r8d,%r13d
1825	xorl	%r10d,%r12d
1826	rorl	$5,%r13d
1827	xorl	%eax,%r14d
1828.byte	102,15,58,15,224,4
1829	andl	%r8d,%r12d
1830	xorl	%r8d,%r13d
1831.byte	102,15,58,15,250,4
1832	addl	0(%rsp),%r11d
1833	movl	%eax,%r15d
1834	xorl	%r10d,%r12d
1835	rorl	$11,%r14d
1836	movdqa	%xmm4,%xmm5
1837	xorl	%ebx,%r15d
1838	addl	%r12d,%r11d
1839	movdqa	%xmm4,%xmm6
1840	rorl	$6,%r13d
1841	andl	%r15d,%edi
1842	psrld	$3,%xmm4
1843	xorl	%eax,%r14d
1844	addl	%r13d,%r11d
1845	xorl	%ebx,%edi
1846	paddd	%xmm7,%xmm0
1847	rorl	$2,%r14d
1848	addl	%r11d,%edx
1849	psrld	$7,%xmm6
1850	addl	%edi,%r11d
1851	movl	%edx,%r13d
1852	pshufd	$250,%xmm3,%xmm7
1853	addl	%r11d,%r14d
1854	rorl	$14,%r13d
1855	pslld	$14,%xmm5
1856	movl	%r14d,%r11d
1857	movl	%r8d,%r12d
1858	pxor	%xmm6,%xmm4
1859	rorl	$9,%r14d
1860	xorl	%edx,%r13d
1861	xorl	%r9d,%r12d
1862	rorl	$5,%r13d
1863	psrld	$11,%xmm6
1864	xorl	%r11d,%r14d
1865	pxor	%xmm5,%xmm4
1866	andl	%edx,%r12d
1867	xorl	%edx,%r13d
1868	pslld	$11,%xmm5
1869	addl	4(%rsp),%r10d
1870	movl	%r11d,%edi
1871	pxor	%xmm6,%xmm4
1872	xorl	%r9d,%r12d
1873	rorl	$11,%r14d
1874	movdqa	%xmm7,%xmm6
1875	xorl	%eax,%edi
1876	addl	%r12d,%r10d
1877	pxor	%xmm5,%xmm4
1878	rorl	$6,%r13d
1879	andl	%edi,%r15d
1880	xorl	%r11d,%r14d
1881	psrld	$10,%xmm7
1882	addl	%r13d,%r10d
1883	xorl	%eax,%r15d
1884	paddd	%xmm4,%xmm0
1885	rorl	$2,%r14d
1886	addl	%r10d,%ecx
1887	psrlq	$17,%xmm6
1888	addl	%r15d,%r10d
1889	movl	%ecx,%r13d
1890	addl	%r10d,%r14d
1891	pxor	%xmm6,%xmm7
1892	rorl	$14,%r13d
1893	movl	%r14d,%r10d
1894	movl	%edx,%r12d
1895	rorl	$9,%r14d
1896	psrlq	$2,%xmm6
1897	xorl	%ecx,%r13d
1898	xorl	%r8d,%r12d
1899	pxor	%xmm6,%xmm7
1900	rorl	$5,%r13d
1901	xorl	%r10d,%r14d
1902	andl	%ecx,%r12d
1903	pshufd	$128,%xmm7,%xmm7
1904	xorl	%ecx,%r13d
1905	addl	8(%rsp),%r9d
1906	movl	%r10d,%r15d
1907	psrldq	$8,%xmm7
1908	xorl	%r8d,%r12d
1909	rorl	$11,%r14d
1910	xorl	%r11d,%r15d
1911	addl	%r12d,%r9d
1912	rorl	$6,%r13d
1913	paddd	%xmm7,%xmm0
1914	andl	%r15d,%edi
1915	xorl	%r10d,%r14d
1916	addl	%r13d,%r9d
1917	pshufd	$80,%xmm0,%xmm7
1918	xorl	%r11d,%edi
1919	rorl	$2,%r14d
1920	addl	%r9d,%ebx
1921	movdqa	%xmm7,%xmm6
1922	addl	%edi,%r9d
1923	movl	%ebx,%r13d
1924	psrld	$10,%xmm7
1925	addl	%r9d,%r14d
1926	rorl	$14,%r13d
1927	psrlq	$17,%xmm6
1928	movl	%r14d,%r9d
1929	movl	%ecx,%r12d
1930	pxor	%xmm6,%xmm7
1931	rorl	$9,%r14d
1932	xorl	%ebx,%r13d
1933	xorl	%edx,%r12d
1934	rorl	$5,%r13d
1935	xorl	%r9d,%r14d
1936	psrlq	$2,%xmm6
1937	andl	%ebx,%r12d
1938	xorl	%ebx,%r13d
1939	addl	12(%rsp),%r8d
1940	pxor	%xmm6,%xmm7
1941	movl	%r9d,%edi
1942	xorl	%edx,%r12d
1943	rorl	$11,%r14d
1944	pshufd	$8,%xmm7,%xmm7
1945	xorl	%r10d,%edi
1946	addl	%r12d,%r8d
1947	movdqa	0(%rbp),%xmm6
1948	rorl	$6,%r13d
1949	andl	%edi,%r15d
1950	pslldq	$8,%xmm7
1951	xorl	%r9d,%r14d
1952	addl	%r13d,%r8d
1953	xorl	%r10d,%r15d
1954	paddd	%xmm7,%xmm0
1955	rorl	$2,%r14d
1956	addl	%r8d,%eax
1957	addl	%r15d,%r8d
1958	paddd	%xmm0,%xmm6
1959	movl	%eax,%r13d
1960	addl	%r8d,%r14d
1961	movdqa	%xmm6,0(%rsp)
1962	rorl	$14,%r13d
1963	movdqa	%xmm2,%xmm4
1964	movl	%r14d,%r8d
1965	movl	%ebx,%r12d
1966	movdqa	%xmm0,%xmm7
1967	rorl	$9,%r14d
1968	xorl	%eax,%r13d
1969	xorl	%ecx,%r12d
1970	rorl	$5,%r13d
1971	xorl	%r8d,%r14d
1972.byte	102,15,58,15,225,4
1973	andl	%eax,%r12d
1974	xorl	%eax,%r13d
1975.byte	102,15,58,15,251,4
1976	addl	16(%rsp),%edx
1977	movl	%r8d,%r15d
1978	xorl	%ecx,%r12d
1979	rorl	$11,%r14d
1980	movdqa	%xmm4,%xmm5
1981	xorl	%r9d,%r15d
1982	addl	%r12d,%edx
1983	movdqa	%xmm4,%xmm6
1984	rorl	$6,%r13d
1985	andl	%r15d,%edi
1986	psrld	$3,%xmm4
1987	xorl	%r8d,%r14d
1988	addl	%r13d,%edx
1989	xorl	%r9d,%edi
1990	paddd	%xmm7,%xmm1
1991	rorl	$2,%r14d
1992	addl	%edx,%r11d
1993	psrld	$7,%xmm6
1994	addl	%edi,%edx
1995	movl	%r11d,%r13d
1996	pshufd	$250,%xmm0,%xmm7
1997	addl	%edx,%r14d
1998	rorl	$14,%r13d
1999	pslld	$14,%xmm5
2000	movl	%r14d,%edx
2001	movl	%eax,%r12d
2002	pxor	%xmm6,%xmm4
2003	rorl	$9,%r14d
2004	xorl	%r11d,%r13d
2005	xorl	%ebx,%r12d
2006	rorl	$5,%r13d
2007	psrld	$11,%xmm6
2008	xorl	%edx,%r14d
2009	pxor	%xmm5,%xmm4
2010	andl	%r11d,%r12d
2011	xorl	%r11d,%r13d
2012	pslld	$11,%xmm5
2013	addl	20(%rsp),%ecx
2014	movl	%edx,%edi
2015	pxor	%xmm6,%xmm4
2016	xorl	%ebx,%r12d
2017	rorl	$11,%r14d
2018	movdqa	%xmm7,%xmm6
2019	xorl	%r8d,%edi
2020	addl	%r12d,%ecx
2021	pxor	%xmm5,%xmm4
2022	rorl	$6,%r13d
2023	andl	%edi,%r15d
2024	xorl	%edx,%r14d
2025	psrld	$10,%xmm7
2026	addl	%r13d,%ecx
2027	xorl	%r8d,%r15d
2028	paddd	%xmm4,%xmm1
2029	rorl	$2,%r14d
2030	addl	%ecx,%r10d
2031	psrlq	$17,%xmm6
2032	addl	%r15d,%ecx
2033	movl	%r10d,%r13d
2034	addl	%ecx,%r14d
2035	pxor	%xmm6,%xmm7
2036	rorl	$14,%r13d
2037	movl	%r14d,%ecx
2038	movl	%r11d,%r12d
2039	rorl	$9,%r14d
2040	psrlq	$2,%xmm6
2041	xorl	%r10d,%r13d
2042	xorl	%eax,%r12d
2043	pxor	%xmm6,%xmm7
2044	rorl	$5,%r13d
2045	xorl	%ecx,%r14d
2046	andl	%r10d,%r12d
2047	pshufd	$128,%xmm7,%xmm7
2048	xorl	%r10d,%r13d
2049	addl	24(%rsp),%ebx
2050	movl	%ecx,%r15d
2051	psrldq	$8,%xmm7
2052	xorl	%eax,%r12d
2053	rorl	$11,%r14d
2054	xorl	%edx,%r15d
2055	addl	%r12d,%ebx
2056	rorl	$6,%r13d
2057	paddd	%xmm7,%xmm1
2058	andl	%r15d,%edi
2059	xorl	%ecx,%r14d
2060	addl	%r13d,%ebx
2061	pshufd	$80,%xmm1,%xmm7
2062	xorl	%edx,%edi
2063	rorl	$2,%r14d
2064	addl	%ebx,%r9d
2065	movdqa	%xmm7,%xmm6
2066	addl	%edi,%ebx
2067	movl	%r9d,%r13d
2068	psrld	$10,%xmm7
2069	addl	%ebx,%r14d
2070	rorl	$14,%r13d
2071	psrlq	$17,%xmm6
2072	movl	%r14d,%ebx
2073	movl	%r10d,%r12d
2074	pxor	%xmm6,%xmm7
2075	rorl	$9,%r14d
2076	xorl	%r9d,%r13d
2077	xorl	%r11d,%r12d
2078	rorl	$5,%r13d
2079	xorl	%ebx,%r14d
2080	psrlq	$2,%xmm6
2081	andl	%r9d,%r12d
2082	xorl	%r9d,%r13d
2083	addl	28(%rsp),%eax
2084	pxor	%xmm6,%xmm7
2085	movl	%ebx,%edi
2086	xorl	%r11d,%r12d
2087	rorl	$11,%r14d
2088	pshufd	$8,%xmm7,%xmm7
2089	xorl	%ecx,%edi
2090	addl	%r12d,%eax
2091	movdqa	32(%rbp),%xmm6
2092	rorl	$6,%r13d
2093	andl	%edi,%r15d
2094	pslldq	$8,%xmm7
2095	xorl	%ebx,%r14d
2096	addl	%r13d,%eax
2097	xorl	%ecx,%r15d
2098	paddd	%xmm7,%xmm1
2099	rorl	$2,%r14d
2100	addl	%eax,%r8d
2101	addl	%r15d,%eax
2102	paddd	%xmm1,%xmm6
2103	movl	%r8d,%r13d
2104	addl	%eax,%r14d
2105	movdqa	%xmm6,16(%rsp)
2106	rorl	$14,%r13d
2107	movdqa	%xmm3,%xmm4
2108	movl	%r14d,%eax
2109	movl	%r9d,%r12d
2110	movdqa	%xmm1,%xmm7
2111	rorl	$9,%r14d
2112	xorl	%r8d,%r13d
2113	xorl	%r10d,%r12d
2114	rorl	$5,%r13d
2115	xorl	%eax,%r14d
2116.byte	102,15,58,15,226,4
2117	andl	%r8d,%r12d
2118	xorl	%r8d,%r13d
2119.byte	102,15,58,15,248,4
2120	addl	32(%rsp),%r11d
2121	movl	%eax,%r15d
2122	xorl	%r10d,%r12d
2123	rorl	$11,%r14d
2124	movdqa	%xmm4,%xmm5
2125	xorl	%ebx,%r15d
2126	addl	%r12d,%r11d
2127	movdqa	%xmm4,%xmm6
2128	rorl	$6,%r13d
2129	andl	%r15d,%edi
2130	psrld	$3,%xmm4
2131	xorl	%eax,%r14d
2132	addl	%r13d,%r11d
2133	xorl	%ebx,%edi
2134	paddd	%xmm7,%xmm2
2135	rorl	$2,%r14d
2136	addl	%r11d,%edx
2137	psrld	$7,%xmm6
2138	addl	%edi,%r11d
2139	movl	%edx,%r13d
2140	pshufd	$250,%xmm1,%xmm7
2141	addl	%r11d,%r14d
2142	rorl	$14,%r13d
2143	pslld	$14,%xmm5
2144	movl	%r14d,%r11d
2145	movl	%r8d,%r12d
2146	pxor	%xmm6,%xmm4
2147	rorl	$9,%r14d
2148	xorl	%edx,%r13d
2149	xorl	%r9d,%r12d
2150	rorl	$5,%r13d
2151	psrld	$11,%xmm6
2152	xorl	%r11d,%r14d
2153	pxor	%xmm5,%xmm4
2154	andl	%edx,%r12d
2155	xorl	%edx,%r13d
2156	pslld	$11,%xmm5
2157	addl	36(%rsp),%r10d
2158	movl	%r11d,%edi
2159	pxor	%xmm6,%xmm4
2160	xorl	%r9d,%r12d
2161	rorl	$11,%r14d
2162	movdqa	%xmm7,%xmm6
2163	xorl	%eax,%edi
2164	addl	%r12d,%r10d
2165	pxor	%xmm5,%xmm4
2166	rorl	$6,%r13d
2167	andl	%edi,%r15d
2168	xorl	%r11d,%r14d
2169	psrld	$10,%xmm7
2170	addl	%r13d,%r10d
2171	xorl	%eax,%r15d
2172	paddd	%xmm4,%xmm2
2173	rorl	$2,%r14d
2174	addl	%r10d,%ecx
2175	psrlq	$17,%xmm6
2176	addl	%r15d,%r10d
2177	movl	%ecx,%r13d
2178	addl	%r10d,%r14d
2179	pxor	%xmm6,%xmm7
2180	rorl	$14,%r13d
2181	movl	%r14d,%r10d
2182	movl	%edx,%r12d
2183	rorl	$9,%r14d
2184	psrlq	$2,%xmm6
2185	xorl	%ecx,%r13d
2186	xorl	%r8d,%r12d
2187	pxor	%xmm6,%xmm7
2188	rorl	$5,%r13d
2189	xorl	%r10d,%r14d
2190	andl	%ecx,%r12d
2191	pshufd	$128,%xmm7,%xmm7
2192	xorl	%ecx,%r13d
2193	addl	40(%rsp),%r9d
2194	movl	%r10d,%r15d
2195	psrldq	$8,%xmm7
2196	xorl	%r8d,%r12d
2197	rorl	$11,%r14d
2198	xorl	%r11d,%r15d
2199	addl	%r12d,%r9d
2200	rorl	$6,%r13d
2201	paddd	%xmm7,%xmm2
2202	andl	%r15d,%edi
2203	xorl	%r10d,%r14d
2204	addl	%r13d,%r9d
2205	pshufd	$80,%xmm2,%xmm7
2206	xorl	%r11d,%edi
2207	rorl	$2,%r14d
2208	addl	%r9d,%ebx
2209	movdqa	%xmm7,%xmm6
2210	addl	%edi,%r9d
2211	movl	%ebx,%r13d
2212	psrld	$10,%xmm7
2213	addl	%r9d,%r14d
2214	rorl	$14,%r13d
2215	psrlq	$17,%xmm6
2216	movl	%r14d,%r9d
2217	movl	%ecx,%r12d
2218	pxor	%xmm6,%xmm7
2219	rorl	$9,%r14d
2220	xorl	%ebx,%r13d
2221	xorl	%edx,%r12d
2222	rorl	$5,%r13d
2223	xorl	%r9d,%r14d
2224	psrlq	$2,%xmm6
2225	andl	%ebx,%r12d
2226	xorl	%ebx,%r13d
2227	addl	44(%rsp),%r8d
2228	pxor	%xmm6,%xmm7
2229	movl	%r9d,%edi
2230	xorl	%edx,%r12d
2231	rorl	$11,%r14d
2232	pshufd	$8,%xmm7,%xmm7
2233	xorl	%r10d,%edi
2234	addl	%r12d,%r8d
2235	movdqa	64(%rbp),%xmm6
2236	rorl	$6,%r13d
2237	andl	%edi,%r15d
2238	pslldq	$8,%xmm7
2239	xorl	%r9d,%r14d
2240	addl	%r13d,%r8d
2241	xorl	%r10d,%r15d
2242	paddd	%xmm7,%xmm2
2243	rorl	$2,%r14d
2244	addl	%r8d,%eax
2245	addl	%r15d,%r8d
2246	paddd	%xmm2,%xmm6
2247	movl	%eax,%r13d
2248	addl	%r8d,%r14d
2249	movdqa	%xmm6,32(%rsp)
2250	rorl	$14,%r13d
2251	movdqa	%xmm0,%xmm4
2252	movl	%r14d,%r8d
2253	movl	%ebx,%r12d
2254	movdqa	%xmm2,%xmm7
2255	rorl	$9,%r14d
2256	xorl	%eax,%r13d
2257	xorl	%ecx,%r12d
2258	rorl	$5,%r13d
2259	xorl	%r8d,%r14d
2260.byte	102,15,58,15,227,4
2261	andl	%eax,%r12d
2262	xorl	%eax,%r13d
2263.byte	102,15,58,15,249,4
2264	addl	48(%rsp),%edx
2265	movl	%r8d,%r15d
2266	xorl	%ecx,%r12d
2267	rorl	$11,%r14d
2268	movdqa	%xmm4,%xmm5
2269	xorl	%r9d,%r15d
2270	addl	%r12d,%edx
2271	movdqa	%xmm4,%xmm6
2272	rorl	$6,%r13d
2273	andl	%r15d,%edi
2274	psrld	$3,%xmm4
2275	xorl	%r8d,%r14d
2276	addl	%r13d,%edx
2277	xorl	%r9d,%edi
2278	paddd	%xmm7,%xmm3
2279	rorl	$2,%r14d
2280	addl	%edx,%r11d
2281	psrld	$7,%xmm6
2282	addl	%edi,%edx
2283	movl	%r11d,%r13d
2284	pshufd	$250,%xmm2,%xmm7
2285	addl	%edx,%r14d
2286	rorl	$14,%r13d
2287	pslld	$14,%xmm5
2288	movl	%r14d,%edx
2289	movl	%eax,%r12d
2290	pxor	%xmm6,%xmm4
2291	rorl	$9,%r14d
2292	xorl	%r11d,%r13d
2293	xorl	%ebx,%r12d
2294	rorl	$5,%r13d
2295	psrld	$11,%xmm6
2296	xorl	%edx,%r14d
2297	pxor	%xmm5,%xmm4
2298	andl	%r11d,%r12d
2299	xorl	%r11d,%r13d
2300	pslld	$11,%xmm5
2301	addl	52(%rsp),%ecx
2302	movl	%edx,%edi
2303	pxor	%xmm6,%xmm4
2304	xorl	%ebx,%r12d
2305	rorl	$11,%r14d
2306	movdqa	%xmm7,%xmm6
2307	xorl	%r8d,%edi
2308	addl	%r12d,%ecx
2309	pxor	%xmm5,%xmm4
2310	rorl	$6,%r13d
2311	andl	%edi,%r15d
2312	xorl	%edx,%r14d
2313	psrld	$10,%xmm7
2314	addl	%r13d,%ecx
2315	xorl	%r8d,%r15d
2316	paddd	%xmm4,%xmm3
2317	rorl	$2,%r14d
2318	addl	%ecx,%r10d
2319	psrlq	$17,%xmm6
2320	addl	%r15d,%ecx
2321	movl	%r10d,%r13d
2322	addl	%ecx,%r14d
2323	pxor	%xmm6,%xmm7
2324	rorl	$14,%r13d
2325	movl	%r14d,%ecx
2326	movl	%r11d,%r12d
2327	rorl	$9,%r14d
2328	psrlq	$2,%xmm6
2329	xorl	%r10d,%r13d
2330	xorl	%eax,%r12d
2331	pxor	%xmm6,%xmm7
2332	rorl	$5,%r13d
2333	xorl	%ecx,%r14d
2334	andl	%r10d,%r12d
2335	pshufd	$128,%xmm7,%xmm7
2336	xorl	%r10d,%r13d
2337	addl	56(%rsp),%ebx
2338	movl	%ecx,%r15d
2339	psrldq	$8,%xmm7
2340	xorl	%eax,%r12d
2341	rorl	$11,%r14d
2342	xorl	%edx,%r15d
2343	addl	%r12d,%ebx
2344	rorl	$6,%r13d
2345	paddd	%xmm7,%xmm3
2346	andl	%r15d,%edi
2347	xorl	%ecx,%r14d
2348	addl	%r13d,%ebx
2349	pshufd	$80,%xmm3,%xmm7
2350	xorl	%edx,%edi
2351	rorl	$2,%r14d
2352	addl	%ebx,%r9d
2353	movdqa	%xmm7,%xmm6
2354	addl	%edi,%ebx
2355	movl	%r9d,%r13d
2356	psrld	$10,%xmm7
2357	addl	%ebx,%r14d
2358	rorl	$14,%r13d
2359	psrlq	$17,%xmm6
2360	movl	%r14d,%ebx
2361	movl	%r10d,%r12d
2362	pxor	%xmm6,%xmm7
2363	rorl	$9,%r14d
2364	xorl	%r9d,%r13d
2365	xorl	%r11d,%r12d
2366	rorl	$5,%r13d
2367	xorl	%ebx,%r14d
2368	psrlq	$2,%xmm6
2369	andl	%r9d,%r12d
2370	xorl	%r9d,%r13d
2371	addl	60(%rsp),%eax
2372	pxor	%xmm6,%xmm7
2373	movl	%ebx,%edi
2374	xorl	%r11d,%r12d
2375	rorl	$11,%r14d
2376	pshufd	$8,%xmm7,%xmm7
2377	xorl	%ecx,%edi
2378	addl	%r12d,%eax
2379	movdqa	96(%rbp),%xmm6
2380	rorl	$6,%r13d
2381	andl	%edi,%r15d
2382	pslldq	$8,%xmm7
2383	xorl	%ebx,%r14d
2384	addl	%r13d,%eax
2385	xorl	%ecx,%r15d
2386	paddd	%xmm7,%xmm3
2387	rorl	$2,%r14d
2388	addl	%eax,%r8d
2389	addl	%r15d,%eax
2390	paddd	%xmm3,%xmm6
2391	movl	%r8d,%r13d
2392	addl	%eax,%r14d
2393	movdqa	%xmm6,48(%rsp)
2394	cmpb	$0,131(%rbp)
2395	jne	L$ssse3_00_47
2396	rorl	$14,%r13d
2397	movl	%r14d,%eax
2398	movl	%r9d,%r12d
2399	rorl	$9,%r14d
2400	xorl	%r8d,%r13d
2401	xorl	%r10d,%r12d
2402	rorl	$5,%r13d
2403	xorl	%eax,%r14d
2404	andl	%r8d,%r12d
2405	xorl	%r8d,%r13d
2406	addl	0(%rsp),%r11d
2407	movl	%eax,%r15d
2408	xorl	%r10d,%r12d
2409	rorl	$11,%r14d
2410	xorl	%ebx,%r15d
2411	addl	%r12d,%r11d
2412	rorl	$6,%r13d
2413	andl	%r15d,%edi
2414	xorl	%eax,%r14d
2415	addl	%r13d,%r11d
2416	xorl	%ebx,%edi
2417	rorl	$2,%r14d
2418	addl	%r11d,%edx
2419	addl	%edi,%r11d
2420	movl	%edx,%r13d
2421	addl	%r11d,%r14d
2422	rorl	$14,%r13d
2423	movl	%r14d,%r11d
2424	movl	%r8d,%r12d
2425	rorl	$9,%r14d
2426	xorl	%edx,%r13d
2427	xorl	%r9d,%r12d
2428	rorl	$5,%r13d
2429	xorl	%r11d,%r14d
2430	andl	%edx,%r12d
2431	xorl	%edx,%r13d
2432	addl	4(%rsp),%r10d
2433	movl	%r11d,%edi
2434	xorl	%r9d,%r12d
2435	rorl	$11,%r14d
2436	xorl	%eax,%edi
2437	addl	%r12d,%r10d
2438	rorl	$6,%r13d
2439	andl	%edi,%r15d
2440	xorl	%r11d,%r14d
2441	addl	%r13d,%r10d
2442	xorl	%eax,%r15d
2443	rorl	$2,%r14d
2444	addl	%r10d,%ecx
2445	addl	%r15d,%r10d
2446	movl	%ecx,%r13d
2447	addl	%r10d,%r14d
2448	rorl	$14,%r13d
2449	movl	%r14d,%r10d
2450	movl	%edx,%r12d
2451	rorl	$9,%r14d
2452	xorl	%ecx,%r13d
2453	xorl	%r8d,%r12d
2454	rorl	$5,%r13d
2455	xorl	%r10d,%r14d
2456	andl	%ecx,%r12d
2457	xorl	%ecx,%r13d
2458	addl	8(%rsp),%r9d
2459	movl	%r10d,%r15d
2460	xorl	%r8d,%r12d
2461	rorl	$11,%r14d
2462	xorl	%r11d,%r15d
2463	addl	%r12d,%r9d
2464	rorl	$6,%r13d
2465	andl	%r15d,%edi
2466	xorl	%r10d,%r14d
2467	addl	%r13d,%r9d
2468	xorl	%r11d,%edi
2469	rorl	$2,%r14d
2470	addl	%r9d,%ebx
2471	addl	%edi,%r9d
2472	movl	%ebx,%r13d
2473	addl	%r9d,%r14d
2474	rorl	$14,%r13d
2475	movl	%r14d,%r9d
2476	movl	%ecx,%r12d
2477	rorl	$9,%r14d
2478	xorl	%ebx,%r13d
2479	xorl	%edx,%r12d
2480	rorl	$5,%r13d
2481	xorl	%r9d,%r14d
2482	andl	%ebx,%r12d
2483	xorl	%ebx,%r13d
2484	addl	12(%rsp),%r8d
2485	movl	%r9d,%edi
2486	xorl	%edx,%r12d
2487	rorl	$11,%r14d
2488	xorl	%r10d,%edi
2489	addl	%r12d,%r8d
2490	rorl	$6,%r13d
2491	andl	%edi,%r15d
2492	xorl	%r9d,%r14d
2493	addl	%r13d,%r8d
2494	xorl	%r10d,%r15d
2495	rorl	$2,%r14d
2496	addl	%r8d,%eax
2497	addl	%r15d,%r8d
2498	movl	%eax,%r13d
2499	addl	%r8d,%r14d
2500	rorl	$14,%r13d
2501	movl	%r14d,%r8d
2502	movl	%ebx,%r12d
2503	rorl	$9,%r14d
2504	xorl	%eax,%r13d
2505	xorl	%ecx,%r12d
2506	rorl	$5,%r13d
2507	xorl	%r8d,%r14d
2508	andl	%eax,%r12d
2509	xorl	%eax,%r13d
2510	addl	16(%rsp),%edx
2511	movl	%r8d,%r15d
2512	xorl	%ecx,%r12d
2513	rorl	$11,%r14d
2514	xorl	%r9d,%r15d
2515	addl	%r12d,%edx
2516	rorl	$6,%r13d
2517	andl	%r15d,%edi
2518	xorl	%r8d,%r14d
2519	addl	%r13d,%edx
2520	xorl	%r9d,%edi
2521	rorl	$2,%r14d
2522	addl	%edx,%r11d
2523	addl	%edi,%edx
2524	movl	%r11d,%r13d
2525	addl	%edx,%r14d
2526	rorl	$14,%r13d
2527	movl	%r14d,%edx
2528	movl	%eax,%r12d
2529	rorl	$9,%r14d
2530	xorl	%r11d,%r13d
2531	xorl	%ebx,%r12d
2532	rorl	$5,%r13d
2533	xorl	%edx,%r14d
2534	andl	%r11d,%r12d
2535	xorl	%r11d,%r13d
2536	addl	20(%rsp),%ecx
2537	movl	%edx,%edi
2538	xorl	%ebx,%r12d
2539	rorl	$11,%r14d
2540	xorl	%r8d,%edi
2541	addl	%r12d,%ecx
2542	rorl	$6,%r13d
2543	andl	%edi,%r15d
2544	xorl	%edx,%r14d
2545	addl	%r13d,%ecx
2546	xorl	%r8d,%r15d
2547	rorl	$2,%r14d
2548	addl	%ecx,%r10d
2549	addl	%r15d,%ecx
2550	movl	%r10d,%r13d
2551	addl	%ecx,%r14d
2552	rorl	$14,%r13d
2553	movl	%r14d,%ecx
2554	movl	%r11d,%r12d
2555	rorl	$9,%r14d
2556	xorl	%r10d,%r13d
2557	xorl	%eax,%r12d
2558	rorl	$5,%r13d
2559	xorl	%ecx,%r14d
2560	andl	%r10d,%r12d
2561	xorl	%r10d,%r13d
2562	addl	24(%rsp),%ebx
2563	movl	%ecx,%r15d
2564	xorl	%eax,%r12d
2565	rorl	$11,%r14d
2566	xorl	%edx,%r15d
2567	addl	%r12d,%ebx
2568	rorl	$6,%r13d
2569	andl	%r15d,%edi
2570	xorl	%ecx,%r14d
2571	addl	%r13d,%ebx
2572	xorl	%edx,%edi
2573	rorl	$2,%r14d
2574	addl	%ebx,%r9d
2575	addl	%edi,%ebx
2576	movl	%r9d,%r13d
2577	addl	%ebx,%r14d
2578	rorl	$14,%r13d
2579	movl	%r14d,%ebx
2580	movl	%r10d,%r12d
2581	rorl	$9,%r14d
2582	xorl	%r9d,%r13d
2583	xorl	%r11d,%r12d
2584	rorl	$5,%r13d
2585	xorl	%ebx,%r14d
2586	andl	%r9d,%r12d
2587	xorl	%r9d,%r13d
2588	addl	28(%rsp),%eax
2589	movl	%ebx,%edi
2590	xorl	%r11d,%r12d
2591	rorl	$11,%r14d
2592	xorl	%ecx,%edi
2593	addl	%r12d,%eax
2594	rorl	$6,%r13d
2595	andl	%edi,%r15d
2596	xorl	%ebx,%r14d
2597	addl	%r13d,%eax
2598	xorl	%ecx,%r15d
2599	rorl	$2,%r14d
2600	addl	%eax,%r8d
2601	addl	%r15d,%eax
2602	movl	%r8d,%r13d
2603	addl	%eax,%r14d
2604	rorl	$14,%r13d
2605	movl	%r14d,%eax
2606	movl	%r9d,%r12d
2607	rorl	$9,%r14d
2608	xorl	%r8d,%r13d
2609	xorl	%r10d,%r12d
2610	rorl	$5,%r13d
2611	xorl	%eax,%r14d
2612	andl	%r8d,%r12d
2613	xorl	%r8d,%r13d
2614	addl	32(%rsp),%r11d
2615	movl	%eax,%r15d
2616	xorl	%r10d,%r12d
2617	rorl	$11,%r14d
2618	xorl	%ebx,%r15d
2619	addl	%r12d,%r11d
2620	rorl	$6,%r13d
2621	andl	%r15d,%edi
2622	xorl	%eax,%r14d
2623	addl	%r13d,%r11d
2624	xorl	%ebx,%edi
2625	rorl	$2,%r14d
2626	addl	%r11d,%edx
2627	addl	%edi,%r11d
2628	movl	%edx,%r13d
2629	addl	%r11d,%r14d
2630	rorl	$14,%r13d
2631	movl	%r14d,%r11d
2632	movl	%r8d,%r12d
2633	rorl	$9,%r14d
2634	xorl	%edx,%r13d
2635	xorl	%r9d,%r12d
2636	rorl	$5,%r13d
2637	xorl	%r11d,%r14d
2638	andl	%edx,%r12d
2639	xorl	%edx,%r13d
2640	addl	36(%rsp),%r10d
2641	movl	%r11d,%edi
2642	xorl	%r9d,%r12d
2643	rorl	$11,%r14d
2644	xorl	%eax,%edi
2645	addl	%r12d,%r10d
2646	rorl	$6,%r13d
2647	andl	%edi,%r15d
2648	xorl	%r11d,%r14d
2649	addl	%r13d,%r10d
2650	xorl	%eax,%r15d
2651	rorl	$2,%r14d
2652	addl	%r10d,%ecx
2653	addl	%r15d,%r10d
2654	movl	%ecx,%r13d
2655	addl	%r10d,%r14d
2656	rorl	$14,%r13d
2657	movl	%r14d,%r10d
2658	movl	%edx,%r12d
2659	rorl	$9,%r14d
2660	xorl	%ecx,%r13d
2661	xorl	%r8d,%r12d
2662	rorl	$5,%r13d
2663	xorl	%r10d,%r14d
2664	andl	%ecx,%r12d
2665	xorl	%ecx,%r13d
2666	addl	40(%rsp),%r9d
2667	movl	%r10d,%r15d
2668	xorl	%r8d,%r12d
2669	rorl	$11,%r14d
2670	xorl	%r11d,%r15d
2671	addl	%r12d,%r9d
2672	rorl	$6,%r13d
2673	andl	%r15d,%edi
2674	xorl	%r10d,%r14d
2675	addl	%r13d,%r9d
2676	xorl	%r11d,%edi
2677	rorl	$2,%r14d
2678	addl	%r9d,%ebx
2679	addl	%edi,%r9d
2680	movl	%ebx,%r13d
2681	addl	%r9d,%r14d
2682	rorl	$14,%r13d
2683	movl	%r14d,%r9d
2684	movl	%ecx,%r12d
2685	rorl	$9,%r14d
2686	xorl	%ebx,%r13d
2687	xorl	%edx,%r12d
2688	rorl	$5,%r13d
2689	xorl	%r9d,%r14d
2690	andl	%ebx,%r12d
2691	xorl	%ebx,%r13d
2692	addl	44(%rsp),%r8d
2693	movl	%r9d,%edi
2694	xorl	%edx,%r12d
2695	rorl	$11,%r14d
2696	xorl	%r10d,%edi
2697	addl	%r12d,%r8d
2698	rorl	$6,%r13d
2699	andl	%edi,%r15d
2700	xorl	%r9d,%r14d
2701	addl	%r13d,%r8d
2702	xorl	%r10d,%r15d
2703	rorl	$2,%r14d
2704	addl	%r8d,%eax
2705	addl	%r15d,%r8d
2706	movl	%eax,%r13d
2707	addl	%r8d,%r14d
2708	rorl	$14,%r13d
2709	movl	%r14d,%r8d
2710	movl	%ebx,%r12d
2711	rorl	$9,%r14d
2712	xorl	%eax,%r13d
2713	xorl	%ecx,%r12d
2714	rorl	$5,%r13d
2715	xorl	%r8d,%r14d
2716	andl	%eax,%r12d
2717	xorl	%eax,%r13d
2718	addl	48(%rsp),%edx
2719	movl	%r8d,%r15d
2720	xorl	%ecx,%r12d
2721	rorl	$11,%r14d
2722	xorl	%r9d,%r15d
2723	addl	%r12d,%edx
2724	rorl	$6,%r13d
2725	andl	%r15d,%edi
2726	xorl	%r8d,%r14d
2727	addl	%r13d,%edx
2728	xorl	%r9d,%edi
2729	rorl	$2,%r14d
2730	addl	%edx,%r11d
2731	addl	%edi,%edx
2732	movl	%r11d,%r13d
2733	addl	%edx,%r14d
2734	rorl	$14,%r13d
2735	movl	%r14d,%edx
2736	movl	%eax,%r12d
2737	rorl	$9,%r14d
2738	xorl	%r11d,%r13d
2739	xorl	%ebx,%r12d
2740	rorl	$5,%r13d
2741	xorl	%edx,%r14d
2742	andl	%r11d,%r12d
2743	xorl	%r11d,%r13d
2744	addl	52(%rsp),%ecx
2745	movl	%edx,%edi
2746	xorl	%ebx,%r12d
2747	rorl	$11,%r14d
2748	xorl	%r8d,%edi
2749	addl	%r12d,%ecx
2750	rorl	$6,%r13d
2751	andl	%edi,%r15d
2752	xorl	%edx,%r14d
2753	addl	%r13d,%ecx
2754	xorl	%r8d,%r15d
2755	rorl	$2,%r14d
2756	addl	%ecx,%r10d
2757	addl	%r15d,%ecx
2758	movl	%r10d,%r13d
2759	addl	%ecx,%r14d
2760	rorl	$14,%r13d
2761	movl	%r14d,%ecx
2762	movl	%r11d,%r12d
2763	rorl	$9,%r14d
2764	xorl	%r10d,%r13d
2765	xorl	%eax,%r12d
2766	rorl	$5,%r13d
2767	xorl	%ecx,%r14d
2768	andl	%r10d,%r12d
2769	xorl	%r10d,%r13d
2770	addl	56(%rsp),%ebx
2771	movl	%ecx,%r15d
2772	xorl	%eax,%r12d
2773	rorl	$11,%r14d
2774	xorl	%edx,%r15d
2775	addl	%r12d,%ebx
2776	rorl	$6,%r13d
2777	andl	%r15d,%edi
2778	xorl	%ecx,%r14d
2779	addl	%r13d,%ebx
2780	xorl	%edx,%edi
2781	rorl	$2,%r14d
2782	addl	%ebx,%r9d
2783	addl	%edi,%ebx
2784	movl	%r9d,%r13d
2785	addl	%ebx,%r14d
2786	rorl	$14,%r13d
2787	movl	%r14d,%ebx
2788	movl	%r10d,%r12d
2789	rorl	$9,%r14d
2790	xorl	%r9d,%r13d
2791	xorl	%r11d,%r12d
2792	rorl	$5,%r13d
2793	xorl	%ebx,%r14d
2794	andl	%r9d,%r12d
2795	xorl	%r9d,%r13d
2796	addl	60(%rsp),%eax
2797	movl	%ebx,%edi
2798	xorl	%r11d,%r12d
2799	rorl	$11,%r14d
2800	xorl	%ecx,%edi
2801	addl	%r12d,%eax
2802	rorl	$6,%r13d
2803	andl	%edi,%r15d
2804	xorl	%ebx,%r14d
2805	addl	%r13d,%eax
2806	xorl	%ecx,%r15d
2807	rorl	$2,%r14d
2808	addl	%eax,%r8d
2809	addl	%r15d,%eax
2810	movl	%r8d,%r13d
2811	addl	%eax,%r14d
2812	movq	64+0(%rsp),%rdi
2813	movl	%r14d,%eax
2814
2815	addl	0(%rdi),%eax
2816	leaq	64(%rsi),%rsi
2817	addl	4(%rdi),%ebx
2818	addl	8(%rdi),%ecx
2819	addl	12(%rdi),%edx
2820	addl	16(%rdi),%r8d
2821	addl	20(%rdi),%r9d
2822	addl	24(%rdi),%r10d
2823	addl	28(%rdi),%r11d
2824
2825	cmpq	64+16(%rsp),%rsi
2826
2827	movl	%eax,0(%rdi)
2828	movl	%ebx,4(%rdi)
2829	movl	%ecx,8(%rdi)
2830	movl	%edx,12(%rdi)
2831	movl	%r8d,16(%rdi)
2832	movl	%r9d,20(%rdi)
2833	movl	%r10d,24(%rdi)
2834	movl	%r11d,28(%rdi)
2835	jb	L$loop_ssse3
2836
2837	movq	64+24(%rsp),%rsi
2838	movq	-48(%rsi),%r15
2839	movq	-40(%rsi),%r14
2840	movq	-32(%rsi),%r13
2841	movq	-24(%rsi),%r12
2842	movq	-16(%rsi),%rbp
2843	movq	-8(%rsi),%rbx
2844	leaq	(%rsi),%rsp
2845L$epilogue_ssse3:
2846	.byte	0xf3,0xc3
2847
2848
2849.p2align	6
2850sha256_block_data_order_avx:
2851L$avx_shortcut:
2852	movq	%rsp,%rax
2853	pushq	%rbx
2854	pushq	%rbp
2855	pushq	%r12
2856	pushq	%r13
2857	pushq	%r14
2858	pushq	%r15
2859	shlq	$4,%rdx
2860	subq	$96,%rsp
2861	leaq	(%rsi,%rdx,4),%rdx
2862	andq	$-64,%rsp
2863	movq	%rdi,64+0(%rsp)
2864	movq	%rsi,64+8(%rsp)
2865	movq	%rdx,64+16(%rsp)
2866	movq	%rax,64+24(%rsp)
2867L$prologue_avx:
2868
2869	vzeroupper
2870	movl	0(%rdi),%eax
2871	movl	4(%rdi),%ebx
2872	movl	8(%rdi),%ecx
2873	movl	12(%rdi),%edx
2874	movl	16(%rdi),%r8d
2875	movl	20(%rdi),%r9d
2876	movl	24(%rdi),%r10d
2877	movl	28(%rdi),%r11d
2878	vmovdqa	K256+512+32(%rip),%xmm8
2879	vmovdqa	K256+512+64(%rip),%xmm9
2880	jmp	L$loop_avx
2881.p2align	4
2882L$loop_avx:
2883	vmovdqa	K256+512(%rip),%xmm7
2884	vmovdqu	0(%rsi),%xmm0
2885	vmovdqu	16(%rsi),%xmm1
2886	vmovdqu	32(%rsi),%xmm2
2887	vmovdqu	48(%rsi),%xmm3
2888	vpshufb	%xmm7,%xmm0,%xmm0
2889	leaq	K256(%rip),%rbp
2890	vpshufb	%xmm7,%xmm1,%xmm1
2891	vpshufb	%xmm7,%xmm2,%xmm2
2892	vpaddd	0(%rbp),%xmm0,%xmm4
2893	vpshufb	%xmm7,%xmm3,%xmm3
2894	vpaddd	32(%rbp),%xmm1,%xmm5
2895	vpaddd	64(%rbp),%xmm2,%xmm6
2896	vpaddd	96(%rbp),%xmm3,%xmm7
2897	vmovdqa	%xmm4,0(%rsp)
2898	movl	%eax,%r14d
2899	vmovdqa	%xmm5,16(%rsp)
2900	movl	%ebx,%edi
2901	vmovdqa	%xmm6,32(%rsp)
2902	xorl	%ecx,%edi
2903	vmovdqa	%xmm7,48(%rsp)
2904	movl	%r8d,%r13d
2905	jmp	L$avx_00_47
2906
2907.p2align	4
2908L$avx_00_47:
2909	subq	$-128,%rbp
2910	vpalignr	$4,%xmm0,%xmm1,%xmm4
2911	shrdl	$14,%r13d,%r13d
2912	movl	%r14d,%eax
2913	movl	%r9d,%r12d
2914	vpalignr	$4,%xmm2,%xmm3,%xmm7
2915	shrdl	$9,%r14d,%r14d
2916	xorl	%r8d,%r13d
2917	xorl	%r10d,%r12d
2918	vpsrld	$7,%xmm4,%xmm6
2919	shrdl	$5,%r13d,%r13d
2920	xorl	%eax,%r14d
2921	andl	%r8d,%r12d
2922	vpaddd	%xmm7,%xmm0,%xmm0
2923	xorl	%r8d,%r13d
2924	addl	0(%rsp),%r11d
2925	movl	%eax,%r15d
2926	vpsrld	$3,%xmm4,%xmm7
2927	xorl	%r10d,%r12d
2928	shrdl	$11,%r14d,%r14d
2929	xorl	%ebx,%r15d
2930	vpslld	$14,%xmm4,%xmm5
2931	addl	%r12d,%r11d
2932	shrdl	$6,%r13d,%r13d
2933	andl	%r15d,%edi
2934	vpxor	%xmm6,%xmm7,%xmm4
2935	xorl	%eax,%r14d
2936	addl	%r13d,%r11d
2937	xorl	%ebx,%edi
2938	vpshufd	$250,%xmm3,%xmm7
2939	shrdl	$2,%r14d,%r14d
2940	addl	%r11d,%edx
2941	addl	%edi,%r11d
2942	vpsrld	$11,%xmm6,%xmm6
2943	movl	%edx,%r13d
2944	addl	%r11d,%r14d
2945	shrdl	$14,%r13d,%r13d
2946	vpxor	%xmm5,%xmm4,%xmm4
2947	movl	%r14d,%r11d
2948	movl	%r8d,%r12d
2949	shrdl	$9,%r14d,%r14d
2950	vpslld	$11,%xmm5,%xmm5
2951	xorl	%edx,%r13d
2952	xorl	%r9d,%r12d
2953	shrdl	$5,%r13d,%r13d
2954	vpxor	%xmm6,%xmm4,%xmm4
2955	xorl	%r11d,%r14d
2956	andl	%edx,%r12d
2957	xorl	%edx,%r13d
2958	vpsrld	$10,%xmm7,%xmm6
2959	addl	4(%rsp),%r10d
2960	movl	%r11d,%edi
2961	xorl	%r9d,%r12d
2962	vpxor	%xmm5,%xmm4,%xmm4
2963	shrdl	$11,%r14d,%r14d
2964	xorl	%eax,%edi
2965	addl	%r12d,%r10d
2966	vpsrlq	$17,%xmm7,%xmm7
2967	shrdl	$6,%r13d,%r13d
2968	andl	%edi,%r15d
2969	xorl	%r11d,%r14d
2970	vpaddd	%xmm4,%xmm0,%xmm0
2971	addl	%r13d,%r10d
2972	xorl	%eax,%r15d
2973	shrdl	$2,%r14d,%r14d
2974	vpxor	%xmm7,%xmm6,%xmm6
2975	addl	%r10d,%ecx
2976	addl	%r15d,%r10d
2977	movl	%ecx,%r13d
2978	vpsrlq	$2,%xmm7,%xmm7
2979	addl	%r10d,%r14d
2980	shrdl	$14,%r13d,%r13d
2981	movl	%r14d,%r10d
2982	vpxor	%xmm7,%xmm6,%xmm6
2983	movl	%edx,%r12d
2984	shrdl	$9,%r14d,%r14d
2985	xorl	%ecx,%r13d
2986	vpshufb	%xmm8,%xmm6,%xmm6
2987	xorl	%r8d,%r12d
2988	shrdl	$5,%r13d,%r13d
2989	xorl	%r10d,%r14d
2990	vpaddd	%xmm6,%xmm0,%xmm0
2991	andl	%ecx,%r12d
2992	xorl	%ecx,%r13d
2993	addl	8(%rsp),%r9d
2994	vpshufd	$80,%xmm0,%xmm7
2995	movl	%r10d,%r15d
2996	xorl	%r8d,%r12d
2997	shrdl	$11,%r14d,%r14d
2998	vpsrld	$10,%xmm7,%xmm6
2999	xorl	%r11d,%r15d
3000	addl	%r12d,%r9d
3001	shrdl	$6,%r13d,%r13d
3002	vpsrlq	$17,%xmm7,%xmm7
3003	andl	%r15d,%edi
3004	xorl	%r10d,%r14d
3005	addl	%r13d,%r9d
3006	vpxor	%xmm7,%xmm6,%xmm6
3007	xorl	%r11d,%edi
3008	shrdl	$2,%r14d,%r14d
3009	addl	%r9d,%ebx
3010	vpsrlq	$2,%xmm7,%xmm7
3011	addl	%edi,%r9d
3012	movl	%ebx,%r13d
3013	addl	%r9d,%r14d
3014	vpxor	%xmm7,%xmm6,%xmm6
3015	shrdl	$14,%r13d,%r13d
3016	movl	%r14d,%r9d
3017	movl	%ecx,%r12d
3018	vpshufb	%xmm9,%xmm6,%xmm6
3019	shrdl	$9,%r14d,%r14d
3020	xorl	%ebx,%r13d
3021	xorl	%edx,%r12d
3022	vpaddd	%xmm6,%xmm0,%xmm0
3023	shrdl	$5,%r13d,%r13d
3024	xorl	%r9d,%r14d
3025	andl	%ebx,%r12d
3026	vpaddd	0(%rbp),%xmm0,%xmm6
3027	xorl	%ebx,%r13d
3028	addl	12(%rsp),%r8d
3029	movl	%r9d,%edi
3030	xorl	%edx,%r12d
3031	shrdl	$11,%r14d,%r14d
3032	xorl	%r10d,%edi
3033	addl	%r12d,%r8d
3034	shrdl	$6,%r13d,%r13d
3035	andl	%edi,%r15d
3036	xorl	%r9d,%r14d
3037	addl	%r13d,%r8d
3038	xorl	%r10d,%r15d
3039	shrdl	$2,%r14d,%r14d
3040	addl	%r8d,%eax
3041	addl	%r15d,%r8d
3042	movl	%eax,%r13d
3043	addl	%r8d,%r14d
3044	vmovdqa	%xmm6,0(%rsp)
3045	vpalignr	$4,%xmm1,%xmm2,%xmm4
3046	shrdl	$14,%r13d,%r13d
3047	movl	%r14d,%r8d
3048	movl	%ebx,%r12d
3049	vpalignr	$4,%xmm3,%xmm0,%xmm7
3050	shrdl	$9,%r14d,%r14d
3051	xorl	%eax,%r13d
3052	xorl	%ecx,%r12d
3053	vpsrld	$7,%xmm4,%xmm6
3054	shrdl	$5,%r13d,%r13d
3055	xorl	%r8d,%r14d
3056	andl	%eax,%r12d
3057	vpaddd	%xmm7,%xmm1,%xmm1
3058	xorl	%eax,%r13d
3059	addl	16(%rsp),%edx
3060	movl	%r8d,%r15d
3061	vpsrld	$3,%xmm4,%xmm7
3062	xorl	%ecx,%r12d
3063	shrdl	$11,%r14d,%r14d
3064	xorl	%r9d,%r15d
3065	vpslld	$14,%xmm4,%xmm5
3066	addl	%r12d,%edx
3067	shrdl	$6,%r13d,%r13d
3068	andl	%r15d,%edi
3069	vpxor	%xmm6,%xmm7,%xmm4
3070	xorl	%r8d,%r14d
3071	addl	%r13d,%edx
3072	xorl	%r9d,%edi
3073	vpshufd	$250,%xmm0,%xmm7
3074	shrdl	$2,%r14d,%r14d
3075	addl	%edx,%r11d
3076	addl	%edi,%edx
3077	vpsrld	$11,%xmm6,%xmm6
3078	movl	%r11d,%r13d
3079	addl	%edx,%r14d
3080	shrdl	$14,%r13d,%r13d
3081	vpxor	%xmm5,%xmm4,%xmm4
3082	movl	%r14d,%edx
3083	movl	%eax,%r12d
3084	shrdl	$9,%r14d,%r14d
3085	vpslld	$11,%xmm5,%xmm5
3086	xorl	%r11d,%r13d
3087	xorl	%ebx,%r12d
3088	shrdl	$5,%r13d,%r13d
3089	vpxor	%xmm6,%xmm4,%xmm4
3090	xorl	%edx,%r14d
3091	andl	%r11d,%r12d
3092	xorl	%r11d,%r13d
3093	vpsrld	$10,%xmm7,%xmm6
3094	addl	20(%rsp),%ecx
3095	movl	%edx,%edi
3096	xorl	%ebx,%r12d
3097	vpxor	%xmm5,%xmm4,%xmm4
3098	shrdl	$11,%r14d,%r14d
3099	xorl	%r8d,%edi
3100	addl	%r12d,%ecx
3101	vpsrlq	$17,%xmm7,%xmm7
3102	shrdl	$6,%r13d,%r13d
3103	andl	%edi,%r15d
3104	xorl	%edx,%r14d
3105	vpaddd	%xmm4,%xmm1,%xmm1
3106	addl	%r13d,%ecx
3107	xorl	%r8d,%r15d
3108	shrdl	$2,%r14d,%r14d
3109	vpxor	%xmm7,%xmm6,%xmm6
3110	addl	%ecx,%r10d
3111	addl	%r15d,%ecx
3112	movl	%r10d,%r13d
3113	vpsrlq	$2,%xmm7,%xmm7
3114	addl	%ecx,%r14d
3115	shrdl	$14,%r13d,%r13d
3116	movl	%r14d,%ecx
3117	vpxor	%xmm7,%xmm6,%xmm6
3118	movl	%r11d,%r12d
3119	shrdl	$9,%r14d,%r14d
3120	xorl	%r10d,%r13d
3121	vpshufb	%xmm8,%xmm6,%xmm6
3122	xorl	%eax,%r12d
3123	shrdl	$5,%r13d,%r13d
3124	xorl	%ecx,%r14d
3125	vpaddd	%xmm6,%xmm1,%xmm1
3126	andl	%r10d,%r12d
3127	xorl	%r10d,%r13d
3128	addl	24(%rsp),%ebx
3129	vpshufd	$80,%xmm1,%xmm7
3130	movl	%ecx,%r15d
3131	xorl	%eax,%r12d
3132	shrdl	$11,%r14d,%r14d
3133	vpsrld	$10,%xmm7,%xmm6
3134	xorl	%edx,%r15d
3135	addl	%r12d,%ebx
3136	shrdl	$6,%r13d,%r13d
3137	vpsrlq	$17,%xmm7,%xmm7
3138	andl	%r15d,%edi
3139	xorl	%ecx,%r14d
3140	addl	%r13d,%ebx
3141	vpxor	%xmm7,%xmm6,%xmm6
3142	xorl	%edx,%edi
3143	shrdl	$2,%r14d,%r14d
3144	addl	%ebx,%r9d
3145	vpsrlq	$2,%xmm7,%xmm7
3146	addl	%edi,%ebx
3147	movl	%r9d,%r13d
3148	addl	%ebx,%r14d
3149	vpxor	%xmm7,%xmm6,%xmm6
3150	shrdl	$14,%r13d,%r13d
3151	movl	%r14d,%ebx
3152	movl	%r10d,%r12d
3153	vpshufb	%xmm9,%xmm6,%xmm6
3154	shrdl	$9,%r14d,%r14d
3155	xorl	%r9d,%r13d
3156	xorl	%r11d,%r12d
3157	vpaddd	%xmm6,%xmm1,%xmm1
3158	shrdl	$5,%r13d,%r13d
3159	xorl	%ebx,%r14d
3160	andl	%r9d,%r12d
3161	vpaddd	32(%rbp),%xmm1,%xmm6
3162	xorl	%r9d,%r13d
3163	addl	28(%rsp),%eax
3164	movl	%ebx,%edi
3165	xorl	%r11d,%r12d
3166	shrdl	$11,%r14d,%r14d
3167	xorl	%ecx,%edi
3168	addl	%r12d,%eax
3169	shrdl	$6,%r13d,%r13d
3170	andl	%edi,%r15d
3171	xorl	%ebx,%r14d
3172	addl	%r13d,%eax
3173	xorl	%ecx,%r15d
3174	shrdl	$2,%r14d,%r14d
3175	addl	%eax,%r8d
3176	addl	%r15d,%eax
3177	movl	%r8d,%r13d
3178	addl	%eax,%r14d
3179	vmovdqa	%xmm6,16(%rsp)
3180	vpalignr	$4,%xmm2,%xmm3,%xmm4
3181	shrdl	$14,%r13d,%r13d
3182	movl	%r14d,%eax
3183	movl	%r9d,%r12d
3184	vpalignr	$4,%xmm0,%xmm1,%xmm7
3185	shrdl	$9,%r14d,%r14d
3186	xorl	%r8d,%r13d
3187	xorl	%r10d,%r12d
3188	vpsrld	$7,%xmm4,%xmm6
3189	shrdl	$5,%r13d,%r13d
3190	xorl	%eax,%r14d
3191	andl	%r8d,%r12d
3192	vpaddd	%xmm7,%xmm2,%xmm2
3193	xorl	%r8d,%r13d
3194	addl	32(%rsp),%r11d
3195	movl	%eax,%r15d
3196	vpsrld	$3,%xmm4,%xmm7
3197	xorl	%r10d,%r12d
3198	shrdl	$11,%r14d,%r14d
3199	xorl	%ebx,%r15d
3200	vpslld	$14,%xmm4,%xmm5
3201	addl	%r12d,%r11d
3202	shrdl	$6,%r13d,%r13d
3203	andl	%r15d,%edi
3204	vpxor	%xmm6,%xmm7,%xmm4
3205	xorl	%eax,%r14d
3206	addl	%r13d,%r11d
3207	xorl	%ebx,%edi
3208	vpshufd	$250,%xmm1,%xmm7
3209	shrdl	$2,%r14d,%r14d
3210	addl	%r11d,%edx
3211	addl	%edi,%r11d
3212	vpsrld	$11,%xmm6,%xmm6
3213	movl	%edx,%r13d
3214	addl	%r11d,%r14d
3215	shrdl	$14,%r13d,%r13d
3216	vpxor	%xmm5,%xmm4,%xmm4
3217	movl	%r14d,%r11d
3218	movl	%r8d,%r12d
3219	shrdl	$9,%r14d,%r14d
3220	vpslld	$11,%xmm5,%xmm5
3221	xorl	%edx,%r13d
3222	xorl	%r9d,%r12d
3223	shrdl	$5,%r13d,%r13d
3224	vpxor	%xmm6,%xmm4,%xmm4
3225	xorl	%r11d,%r14d
3226	andl	%edx,%r12d
3227	xorl	%edx,%r13d
3228	vpsrld	$10,%xmm7,%xmm6
3229	addl	36(%rsp),%r10d
3230	movl	%r11d,%edi
3231	xorl	%r9d,%r12d
3232	vpxor	%xmm5,%xmm4,%xmm4
3233	shrdl	$11,%r14d,%r14d
3234	xorl	%eax,%edi
3235	addl	%r12d,%r10d
3236	vpsrlq	$17,%xmm7,%xmm7
3237	shrdl	$6,%r13d,%r13d
3238	andl	%edi,%r15d
3239	xorl	%r11d,%r14d
3240	vpaddd	%xmm4,%xmm2,%xmm2
3241	addl	%r13d,%r10d
3242	xorl	%eax,%r15d
3243	shrdl	$2,%r14d,%r14d
3244	vpxor	%xmm7,%xmm6,%xmm6
3245	addl	%r10d,%ecx
3246	addl	%r15d,%r10d
3247	movl	%ecx,%r13d
3248	vpsrlq	$2,%xmm7,%xmm7
3249	addl	%r10d,%r14d
3250	shrdl	$14,%r13d,%r13d
3251	movl	%r14d,%r10d
3252	vpxor	%xmm7,%xmm6,%xmm6
3253	movl	%edx,%r12d
3254	shrdl	$9,%r14d,%r14d
3255	xorl	%ecx,%r13d
3256	vpshufb	%xmm8,%xmm6,%xmm6
3257	xorl	%r8d,%r12d
3258	shrdl	$5,%r13d,%r13d
3259	xorl	%r10d,%r14d
3260	vpaddd	%xmm6,%xmm2,%xmm2
3261	andl	%ecx,%r12d
3262	xorl	%ecx,%r13d
3263	addl	40(%rsp),%r9d
3264	vpshufd	$80,%xmm2,%xmm7
3265	movl	%r10d,%r15d
3266	xorl	%r8d,%r12d
3267	shrdl	$11,%r14d,%r14d
3268	vpsrld	$10,%xmm7,%xmm6
3269	xorl	%r11d,%r15d
3270	addl	%r12d,%r9d
3271	shrdl	$6,%r13d,%r13d
3272	vpsrlq	$17,%xmm7,%xmm7
3273	andl	%r15d,%edi
3274	xorl	%r10d,%r14d
3275	addl	%r13d,%r9d
3276	vpxor	%xmm7,%xmm6,%xmm6
3277	xorl	%r11d,%edi
3278	shrdl	$2,%r14d,%r14d
3279	addl	%r9d,%ebx
3280	vpsrlq	$2,%xmm7,%xmm7
3281	addl	%edi,%r9d
3282	movl	%ebx,%r13d
3283	addl	%r9d,%r14d
3284	vpxor	%xmm7,%xmm6,%xmm6
3285	shrdl	$14,%r13d,%r13d
3286	movl	%r14d,%r9d
3287	movl	%ecx,%r12d
3288	vpshufb	%xmm9,%xmm6,%xmm6
3289	shrdl	$9,%r14d,%r14d
3290	xorl	%ebx,%r13d
3291	xorl	%edx,%r12d
3292	vpaddd	%xmm6,%xmm2,%xmm2
3293	shrdl	$5,%r13d,%r13d
3294	xorl	%r9d,%r14d
3295	andl	%ebx,%r12d
3296	vpaddd	64(%rbp),%xmm2,%xmm6
3297	xorl	%ebx,%r13d
3298	addl	44(%rsp),%r8d
3299	movl	%r9d,%edi
3300	xorl	%edx,%r12d
3301	shrdl	$11,%r14d,%r14d
3302	xorl	%r10d,%edi
3303	addl	%r12d,%r8d
3304	shrdl	$6,%r13d,%r13d
3305	andl	%edi,%r15d
3306	xorl	%r9d,%r14d
3307	addl	%r13d,%r8d
3308	xorl	%r10d,%r15d
3309	shrdl	$2,%r14d,%r14d
3310	addl	%r8d,%eax
3311	addl	%r15d,%r8d
3312	movl	%eax,%r13d
3313	addl	%r8d,%r14d
3314	vmovdqa	%xmm6,32(%rsp)
3315	vpalignr	$4,%xmm3,%xmm0,%xmm4
3316	shrdl	$14,%r13d,%r13d
3317	movl	%r14d,%r8d
3318	movl	%ebx,%r12d
3319	vpalignr	$4,%xmm1,%xmm2,%xmm7
3320	shrdl	$9,%r14d,%r14d
3321	xorl	%eax,%r13d
3322	xorl	%ecx,%r12d
3323	vpsrld	$7,%xmm4,%xmm6
3324	shrdl	$5,%r13d,%r13d
3325	xorl	%r8d,%r14d
3326	andl	%eax,%r12d
3327	vpaddd	%xmm7,%xmm3,%xmm3
3328	xorl	%eax,%r13d
3329	addl	48(%rsp),%edx
3330	movl	%r8d,%r15d
3331	vpsrld	$3,%xmm4,%xmm7
3332	xorl	%ecx,%r12d
3333	shrdl	$11,%r14d,%r14d
3334	xorl	%r9d,%r15d
3335	vpslld	$14,%xmm4,%xmm5
3336	addl	%r12d,%edx
3337	shrdl	$6,%r13d,%r13d
3338	andl	%r15d,%edi
3339	vpxor	%xmm6,%xmm7,%xmm4
3340	xorl	%r8d,%r14d
3341	addl	%r13d,%edx
3342	xorl	%r9d,%edi
3343	vpshufd	$250,%xmm2,%xmm7
3344	shrdl	$2,%r14d,%r14d
3345	addl	%edx,%r11d
3346	addl	%edi,%edx
3347	vpsrld	$11,%xmm6,%xmm6
3348	movl	%r11d,%r13d
3349	addl	%edx,%r14d
3350	shrdl	$14,%r13d,%r13d
3351	vpxor	%xmm5,%xmm4,%xmm4
3352	movl	%r14d,%edx
3353	movl	%eax,%r12d
3354	shrdl	$9,%r14d,%r14d
3355	vpslld	$11,%xmm5,%xmm5
3356	xorl	%r11d,%r13d
3357	xorl	%ebx,%r12d
3358	shrdl	$5,%r13d,%r13d
3359	vpxor	%xmm6,%xmm4,%xmm4
3360	xorl	%edx,%r14d
3361	andl	%r11d,%r12d
3362	xorl	%r11d,%r13d
3363	vpsrld	$10,%xmm7,%xmm6
3364	addl	52(%rsp),%ecx
3365	movl	%edx,%edi
3366	xorl	%ebx,%r12d
3367	vpxor	%xmm5,%xmm4,%xmm4
3368	shrdl	$11,%r14d,%r14d
3369	xorl	%r8d,%edi
3370	addl	%r12d,%ecx
3371	vpsrlq	$17,%xmm7,%xmm7
3372	shrdl	$6,%r13d,%r13d
3373	andl	%edi,%r15d
3374	xorl	%edx,%r14d
3375	vpaddd	%xmm4,%xmm3,%xmm3
3376	addl	%r13d,%ecx
3377	xorl	%r8d,%r15d
3378	shrdl	$2,%r14d,%r14d
3379	vpxor	%xmm7,%xmm6,%xmm6
3380	addl	%ecx,%r10d
3381	addl	%r15d,%ecx
3382	movl	%r10d,%r13d
3383	vpsrlq	$2,%xmm7,%xmm7
3384	addl	%ecx,%r14d
3385	shrdl	$14,%r13d,%r13d
3386	movl	%r14d,%ecx
3387	vpxor	%xmm7,%xmm6,%xmm6
3388	movl	%r11d,%r12d
3389	shrdl	$9,%r14d,%r14d
3390	xorl	%r10d,%r13d
3391	vpshufb	%xmm8,%xmm6,%xmm6
3392	xorl	%eax,%r12d
3393	shrdl	$5,%r13d,%r13d
3394	xorl	%ecx,%r14d
3395	vpaddd	%xmm6,%xmm3,%xmm3
3396	andl	%r10d,%r12d
3397	xorl	%r10d,%r13d
3398	addl	56(%rsp),%ebx
3399	vpshufd	$80,%xmm3,%xmm7
3400	movl	%ecx,%r15d
3401	xorl	%eax,%r12d
3402	shrdl	$11,%r14d,%r14d
3403	vpsrld	$10,%xmm7,%xmm6
3404	xorl	%edx,%r15d
3405	addl	%r12d,%ebx
3406	shrdl	$6,%r13d,%r13d
3407	vpsrlq	$17,%xmm7,%xmm7
3408	andl	%r15d,%edi
3409	xorl	%ecx,%r14d
3410	addl	%r13d,%ebx
3411	vpxor	%xmm7,%xmm6,%xmm6
3412	xorl	%edx,%edi
3413	shrdl	$2,%r14d,%r14d
3414	addl	%ebx,%r9d
3415	vpsrlq	$2,%xmm7,%xmm7
3416	addl	%edi,%ebx
3417	movl	%r9d,%r13d
3418	addl	%ebx,%r14d
3419	vpxor	%xmm7,%xmm6,%xmm6
3420	shrdl	$14,%r13d,%r13d
3421	movl	%r14d,%ebx
3422	movl	%r10d,%r12d
3423	vpshufb	%xmm9,%xmm6,%xmm6
3424	shrdl	$9,%r14d,%r14d
3425	xorl	%r9d,%r13d
3426	xorl	%r11d,%r12d
3427	vpaddd	%xmm6,%xmm3,%xmm3
3428	shrdl	$5,%r13d,%r13d
3429	xorl	%ebx,%r14d
3430	andl	%r9d,%r12d
3431	vpaddd	96(%rbp),%xmm3,%xmm6
3432	xorl	%r9d,%r13d
3433	addl	60(%rsp),%eax
3434	movl	%ebx,%edi
3435	xorl	%r11d,%r12d
3436	shrdl	$11,%r14d,%r14d
3437	xorl	%ecx,%edi
3438	addl	%r12d,%eax
3439	shrdl	$6,%r13d,%r13d
3440	andl	%edi,%r15d
3441	xorl	%ebx,%r14d
3442	addl	%r13d,%eax
3443	xorl	%ecx,%r15d
3444	shrdl	$2,%r14d,%r14d
3445	addl	%eax,%r8d
3446	addl	%r15d,%eax
3447	movl	%r8d,%r13d
3448	addl	%eax,%r14d
3449	vmovdqa	%xmm6,48(%rsp)
3450	cmpb	$0,131(%rbp)
3451	jne	L$avx_00_47
3452	shrdl	$14,%r13d,%r13d
3453	movl	%r14d,%eax
3454	movl	%r9d,%r12d
3455	shrdl	$9,%r14d,%r14d
3456	xorl	%r8d,%r13d
3457	xorl	%r10d,%r12d
3458	shrdl	$5,%r13d,%r13d
3459	xorl	%eax,%r14d
3460	andl	%r8d,%r12d
3461	xorl	%r8d,%r13d
3462	addl	0(%rsp),%r11d
3463	movl	%eax,%r15d
3464	xorl	%r10d,%r12d
3465	shrdl	$11,%r14d,%r14d
3466	xorl	%ebx,%r15d
3467	addl	%r12d,%r11d
3468	shrdl	$6,%r13d,%r13d
3469	andl	%r15d,%edi
3470	xorl	%eax,%r14d
3471	addl	%r13d,%r11d
3472	xorl	%ebx,%edi
3473	shrdl	$2,%r14d,%r14d
3474	addl	%r11d,%edx
3475	addl	%edi,%r11d
3476	movl	%edx,%r13d
3477	addl	%r11d,%r14d
3478	shrdl	$14,%r13d,%r13d
3479	movl	%r14d,%r11d
3480	movl	%r8d,%r12d
3481	shrdl	$9,%r14d,%r14d
3482	xorl	%edx,%r13d
3483	xorl	%r9d,%r12d
3484	shrdl	$5,%r13d,%r13d
3485	xorl	%r11d,%r14d
3486	andl	%edx,%r12d
3487	xorl	%edx,%r13d
3488	addl	4(%rsp),%r10d
3489	movl	%r11d,%edi
3490	xorl	%r9d,%r12d
3491	shrdl	$11,%r14d,%r14d
3492	xorl	%eax,%edi
3493	addl	%r12d,%r10d
3494	shrdl	$6,%r13d,%r13d
3495	andl	%edi,%r15d
3496	xorl	%r11d,%r14d
3497	addl	%r13d,%r10d
3498	xorl	%eax,%r15d
3499	shrdl	$2,%r14d,%r14d
3500	addl	%r10d,%ecx
3501	addl	%r15d,%r10d
3502	movl	%ecx,%r13d
3503	addl	%r10d,%r14d
3504	shrdl	$14,%r13d,%r13d
3505	movl	%r14d,%r10d
3506	movl	%edx,%r12d
3507	shrdl	$9,%r14d,%r14d
3508	xorl	%ecx,%r13d
3509	xorl	%r8d,%r12d
3510	shrdl	$5,%r13d,%r13d
3511	xorl	%r10d,%r14d
3512	andl	%ecx,%r12d
3513	xorl	%ecx,%r13d
3514	addl	8(%rsp),%r9d
3515	movl	%r10d,%r15d
3516	xorl	%r8d,%r12d
3517	shrdl	$11,%r14d,%r14d
3518	xorl	%r11d,%r15d
3519	addl	%r12d,%r9d
3520	shrdl	$6,%r13d,%r13d
3521	andl	%r15d,%edi
3522	xorl	%r10d,%r14d
3523	addl	%r13d,%r9d
3524	xorl	%r11d,%edi
3525	shrdl	$2,%r14d,%r14d
3526	addl	%r9d,%ebx
3527	addl	%edi,%r9d
3528	movl	%ebx,%r13d
3529	addl	%r9d,%r14d
3530	shrdl	$14,%r13d,%r13d
3531	movl	%r14d,%r9d
3532	movl	%ecx,%r12d
3533	shrdl	$9,%r14d,%r14d
3534	xorl	%ebx,%r13d
3535	xorl	%edx,%r12d
3536	shrdl	$5,%r13d,%r13d
3537	xorl	%r9d,%r14d
3538	andl	%ebx,%r12d
3539	xorl	%ebx,%r13d
3540	addl	12(%rsp),%r8d
3541	movl	%r9d,%edi
3542	xorl	%edx,%r12d
3543	shrdl	$11,%r14d,%r14d
3544	xorl	%r10d,%edi
3545	addl	%r12d,%r8d
3546	shrdl	$6,%r13d,%r13d
3547	andl	%edi,%r15d
3548	xorl	%r9d,%r14d
3549	addl	%r13d,%r8d
3550	xorl	%r10d,%r15d
3551	shrdl	$2,%r14d,%r14d
3552	addl	%r8d,%eax
3553	addl	%r15d,%r8d
3554	movl	%eax,%r13d
3555	addl	%r8d,%r14d
3556	shrdl	$14,%r13d,%r13d
3557	movl	%r14d,%r8d
3558	movl	%ebx,%r12d
3559	shrdl	$9,%r14d,%r14d
3560	xorl	%eax,%r13d
3561	xorl	%ecx,%r12d
3562	shrdl	$5,%r13d,%r13d
3563	xorl	%r8d,%r14d
3564	andl	%eax,%r12d
3565	xorl	%eax,%r13d
3566	addl	16(%rsp),%edx
3567	movl	%r8d,%r15d
3568	xorl	%ecx,%r12d
3569	shrdl	$11,%r14d,%r14d
3570	xorl	%r9d,%r15d
3571	addl	%r12d,%edx
3572	shrdl	$6,%r13d,%r13d
3573	andl	%r15d,%edi
3574	xorl	%r8d,%r14d
3575	addl	%r13d,%edx
3576	xorl	%r9d,%edi
3577	shrdl	$2,%r14d,%r14d
3578	addl	%edx,%r11d
3579	addl	%edi,%edx
3580	movl	%r11d,%r13d
3581	addl	%edx,%r14d
3582	shrdl	$14,%r13d,%r13d
3583	movl	%r14d,%edx
3584	movl	%eax,%r12d
3585	shrdl	$9,%r14d,%r14d
3586	xorl	%r11d,%r13d
3587	xorl	%ebx,%r12d
3588	shrdl	$5,%r13d,%r13d
3589	xorl	%edx,%r14d
3590	andl	%r11d,%r12d
3591	xorl	%r11d,%r13d
3592	addl	20(%rsp),%ecx
3593	movl	%edx,%edi
3594	xorl	%ebx,%r12d
3595	shrdl	$11,%r14d,%r14d
3596	xorl	%r8d,%edi
3597	addl	%r12d,%ecx
3598	shrdl	$6,%r13d,%r13d
3599	andl	%edi,%r15d
3600	xorl	%edx,%r14d
3601	addl	%r13d,%ecx
3602	xorl	%r8d,%r15d
3603	shrdl	$2,%r14d,%r14d
3604	addl	%ecx,%r10d
3605	addl	%r15d,%ecx
3606	movl	%r10d,%r13d
3607	addl	%ecx,%r14d
3608	shrdl	$14,%r13d,%r13d
3609	movl	%r14d,%ecx
3610	movl	%r11d,%r12d
3611	shrdl	$9,%r14d,%r14d
3612	xorl	%r10d,%r13d
3613	xorl	%eax,%r12d
3614	shrdl	$5,%r13d,%r13d
3615	xorl	%ecx,%r14d
3616	andl	%r10d,%r12d
3617	xorl	%r10d,%r13d
3618	addl	24(%rsp),%ebx
3619	movl	%ecx,%r15d
3620	xorl	%eax,%r12d
3621	shrdl	$11,%r14d,%r14d
3622	xorl	%edx,%r15d
3623	addl	%r12d,%ebx
3624	shrdl	$6,%r13d,%r13d
3625	andl	%r15d,%edi
3626	xorl	%ecx,%r14d
3627	addl	%r13d,%ebx
3628	xorl	%edx,%edi
3629	shrdl	$2,%r14d,%r14d
3630	addl	%ebx,%r9d
3631	addl	%edi,%ebx
3632	movl	%r9d,%r13d
3633	addl	%ebx,%r14d
3634	shrdl	$14,%r13d,%r13d
3635	movl	%r14d,%ebx
3636	movl	%r10d,%r12d
3637	shrdl	$9,%r14d,%r14d
3638	xorl	%r9d,%r13d
3639	xorl	%r11d,%r12d
3640	shrdl	$5,%r13d,%r13d
3641	xorl	%ebx,%r14d
3642	andl	%r9d,%r12d
3643	xorl	%r9d,%r13d
3644	addl	28(%rsp),%eax
3645	movl	%ebx,%edi
3646	xorl	%r11d,%r12d
3647	shrdl	$11,%r14d,%r14d
3648	xorl	%ecx,%edi
3649	addl	%r12d,%eax
3650	shrdl	$6,%r13d,%r13d
3651	andl	%edi,%r15d
3652	xorl	%ebx,%r14d
3653	addl	%r13d,%eax
3654	xorl	%ecx,%r15d
3655	shrdl	$2,%r14d,%r14d
3656	addl	%eax,%r8d
3657	addl	%r15d,%eax
3658	movl	%r8d,%r13d
3659	addl	%eax,%r14d
3660	shrdl	$14,%r13d,%r13d
3661	movl	%r14d,%eax
3662	movl	%r9d,%r12d
3663	shrdl	$9,%r14d,%r14d
3664	xorl	%r8d,%r13d
3665	xorl	%r10d,%r12d
3666	shrdl	$5,%r13d,%r13d
3667	xorl	%eax,%r14d
3668	andl	%r8d,%r12d
3669	xorl	%r8d,%r13d
3670	addl	32(%rsp),%r11d
3671	movl	%eax,%r15d
3672	xorl	%r10d,%r12d
3673	shrdl	$11,%r14d,%r14d
3674	xorl	%ebx,%r15d
3675	addl	%r12d,%r11d
3676	shrdl	$6,%r13d,%r13d
3677	andl	%r15d,%edi
3678	xorl	%eax,%r14d
3679	addl	%r13d,%r11d
3680	xorl	%ebx,%edi
3681	shrdl	$2,%r14d,%r14d
3682	addl	%r11d,%edx
3683	addl	%edi,%r11d
3684	movl	%edx,%r13d
3685	addl	%r11d,%r14d
3686	shrdl	$14,%r13d,%r13d
3687	movl	%r14d,%r11d
3688	movl	%r8d,%r12d
3689	shrdl	$9,%r14d,%r14d
3690	xorl	%edx,%r13d
3691	xorl	%r9d,%r12d
3692	shrdl	$5,%r13d,%r13d
3693	xorl	%r11d,%r14d
3694	andl	%edx,%r12d
3695	xorl	%edx,%r13d
3696	addl	36(%rsp),%r10d
3697	movl	%r11d,%edi
3698	xorl	%r9d,%r12d
3699	shrdl	$11,%r14d,%r14d
3700	xorl	%eax,%edi
3701	addl	%r12d,%r10d
3702	shrdl	$6,%r13d,%r13d
3703	andl	%edi,%r15d
3704	xorl	%r11d,%r14d
3705	addl	%r13d,%r10d
3706	xorl	%eax,%r15d
3707	shrdl	$2,%r14d,%r14d
3708	addl	%r10d,%ecx
3709	addl	%r15d,%r10d
3710	movl	%ecx,%r13d
3711	addl	%r10d,%r14d
3712	shrdl	$14,%r13d,%r13d
3713	movl	%r14d,%r10d
3714	movl	%edx,%r12d
3715	shrdl	$9,%r14d,%r14d
3716	xorl	%ecx,%r13d
3717	xorl	%r8d,%r12d
3718	shrdl	$5,%r13d,%r13d
3719	xorl	%r10d,%r14d
3720	andl	%ecx,%r12d
3721	xorl	%ecx,%r13d
3722	addl	40(%rsp),%r9d
3723	movl	%r10d,%r15d
3724	xorl	%r8d,%r12d
3725	shrdl	$11,%r14d,%r14d
3726	xorl	%r11d,%r15d
3727	addl	%r12d,%r9d
3728	shrdl	$6,%r13d,%r13d
3729	andl	%r15d,%edi
3730	xorl	%r10d,%r14d
3731	addl	%r13d,%r9d
3732	xorl	%r11d,%edi
3733	shrdl	$2,%r14d,%r14d
3734	addl	%r9d,%ebx
3735	addl	%edi,%r9d
3736	movl	%ebx,%r13d
3737	addl	%r9d,%r14d
3738	shrdl	$14,%r13d,%r13d
3739	movl	%r14d,%r9d
3740	movl	%ecx,%r12d
3741	shrdl	$9,%r14d,%r14d
3742	xorl	%ebx,%r13d
3743	xorl	%edx,%r12d
3744	shrdl	$5,%r13d,%r13d
3745	xorl	%r9d,%r14d
3746	andl	%ebx,%r12d
3747	xorl	%ebx,%r13d
3748	addl	44(%rsp),%r8d
3749	movl	%r9d,%edi
3750	xorl	%edx,%r12d
3751	shrdl	$11,%r14d,%r14d
3752	xorl	%r10d,%edi
3753	addl	%r12d,%r8d
3754	shrdl	$6,%r13d,%r13d
3755	andl	%edi,%r15d
3756	xorl	%r9d,%r14d
3757	addl	%r13d,%r8d
3758	xorl	%r10d,%r15d
3759	shrdl	$2,%r14d,%r14d
3760	addl	%r8d,%eax
3761	addl	%r15d,%r8d
3762	movl	%eax,%r13d
3763	addl	%r8d,%r14d
3764	shrdl	$14,%r13d,%r13d
3765	movl	%r14d,%r8d
3766	movl	%ebx,%r12d
3767	shrdl	$9,%r14d,%r14d
3768	xorl	%eax,%r13d
3769	xorl	%ecx,%r12d
3770	shrdl	$5,%r13d,%r13d
3771	xorl	%r8d,%r14d
3772	andl	%eax,%r12d
3773	xorl	%eax,%r13d
3774	addl	48(%rsp),%edx
3775	movl	%r8d,%r15d
3776	xorl	%ecx,%r12d
3777	shrdl	$11,%r14d,%r14d
3778	xorl	%r9d,%r15d
3779	addl	%r12d,%edx
3780	shrdl	$6,%r13d,%r13d
3781	andl	%r15d,%edi
3782	xorl	%r8d,%r14d
3783	addl	%r13d,%edx
3784	xorl	%r9d,%edi
3785	shrdl	$2,%r14d,%r14d
3786	addl	%edx,%r11d
3787	addl	%edi,%edx
3788	movl	%r11d,%r13d
3789	addl	%edx,%r14d
3790	shrdl	$14,%r13d,%r13d
3791	movl	%r14d,%edx
3792	movl	%eax,%r12d
3793	shrdl	$9,%r14d,%r14d
3794	xorl	%r11d,%r13d
3795	xorl	%ebx,%r12d
3796	shrdl	$5,%r13d,%r13d
3797	xorl	%edx,%r14d
3798	andl	%r11d,%r12d
3799	xorl	%r11d,%r13d
3800	addl	52(%rsp),%ecx
3801	movl	%edx,%edi
3802	xorl	%ebx,%r12d
3803	shrdl	$11,%r14d,%r14d
3804	xorl	%r8d,%edi
3805	addl	%r12d,%ecx
3806	shrdl	$6,%r13d,%r13d
3807	andl	%edi,%r15d
3808	xorl	%edx,%r14d
3809	addl	%r13d,%ecx
3810	xorl	%r8d,%r15d
3811	shrdl	$2,%r14d,%r14d
3812	addl	%ecx,%r10d
3813	addl	%r15d,%ecx
3814	movl	%r10d,%r13d
3815	addl	%ecx,%r14d
3816	shrdl	$14,%r13d,%r13d
3817	movl	%r14d,%ecx
3818	movl	%r11d,%r12d
3819	shrdl	$9,%r14d,%r14d
3820	xorl	%r10d,%r13d
3821	xorl	%eax,%r12d
3822	shrdl	$5,%r13d,%r13d
3823	xorl	%ecx,%r14d
3824	andl	%r10d,%r12d
3825	xorl	%r10d,%r13d
3826	addl	56(%rsp),%ebx
3827	movl	%ecx,%r15d
3828	xorl	%eax,%r12d
3829	shrdl	$11,%r14d,%r14d
3830	xorl	%edx,%r15d
3831	addl	%r12d,%ebx
3832	shrdl	$6,%r13d,%r13d
3833	andl	%r15d,%edi
3834	xorl	%ecx,%r14d
3835	addl	%r13d,%ebx
3836	xorl	%edx,%edi
3837	shrdl	$2,%r14d,%r14d
3838	addl	%ebx,%r9d
3839	addl	%edi,%ebx
3840	movl	%r9d,%r13d
3841	addl	%ebx,%r14d
3842	shrdl	$14,%r13d,%r13d
3843	movl	%r14d,%ebx
3844	movl	%r10d,%r12d
3845	shrdl	$9,%r14d,%r14d
3846	xorl	%r9d,%r13d
3847	xorl	%r11d,%r12d
3848	shrdl	$5,%r13d,%r13d
3849	xorl	%ebx,%r14d
3850	andl	%r9d,%r12d
3851	xorl	%r9d,%r13d
3852	addl	60(%rsp),%eax
3853	movl	%ebx,%edi
3854	xorl	%r11d,%r12d
3855	shrdl	$11,%r14d,%r14d
3856	xorl	%ecx,%edi
3857	addl	%r12d,%eax
3858	shrdl	$6,%r13d,%r13d
3859	andl	%edi,%r15d
3860	xorl	%ebx,%r14d
3861	addl	%r13d,%eax
3862	xorl	%ecx,%r15d
3863	shrdl	$2,%r14d,%r14d
3864	addl	%eax,%r8d
3865	addl	%r15d,%eax
3866	movl	%r8d,%r13d
3867	addl	%eax,%r14d
3868	movq	64+0(%rsp),%rdi
3869	movl	%r14d,%eax
3870
3871	addl	0(%rdi),%eax
3872	leaq	64(%rsi),%rsi
3873	addl	4(%rdi),%ebx
3874	addl	8(%rdi),%ecx
3875	addl	12(%rdi),%edx
3876	addl	16(%rdi),%r8d
3877	addl	20(%rdi),%r9d
3878	addl	24(%rdi),%r10d
3879	addl	28(%rdi),%r11d
3880
3881	cmpq	64+16(%rsp),%rsi
3882
3883	movl	%eax,0(%rdi)
3884	movl	%ebx,4(%rdi)
3885	movl	%ecx,8(%rdi)
3886	movl	%edx,12(%rdi)
3887	movl	%r8d,16(%rdi)
3888	movl	%r9d,20(%rdi)
3889	movl	%r10d,24(%rdi)
3890	movl	%r11d,28(%rdi)
3891	jb	L$loop_avx
3892
3893	movq	64+24(%rsp),%rsi
3894	vzeroupper
3895	movq	-48(%rsi),%r15
3896	movq	-40(%rsi),%r14
3897	movq	-32(%rsi),%r13
3898	movq	-24(%rsi),%r12
3899	movq	-16(%rsi),%rbp
3900	movq	-8(%rsi),%rbx
3901	leaq	(%rsi),%rsp
3902L$epilogue_avx:
3903	.byte	0xf3,0xc3
3904
3905#endif
3906