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