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