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