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