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