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