1// This file is generated from a similarly-named Perl script in the BoringSSL
2// source tree. Do not edit by hand.
3
4#include <ring-core/asm_base.h>
5
6#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__ELF__)
7.text
8
9.extern	OPENSSL_ia32cap_P
10.hidden OPENSSL_ia32cap_P
11.globl	sha512_block_data_order
12.hidden sha512_block_data_order
13.type	sha512_block_data_order,@function
14.align	16
15sha512_block_data_order:
16.cfi_startproc
17_CET_ENDBR
18	leaq	OPENSSL_ia32cap_P(%rip),%r11
19	movl	0(%r11),%r9d
20	movl	4(%r11),%r10d
21	movl	8(%r11),%r11d
22	andl	$1073741824,%r9d
23	andl	$268435968,%r10d
24	orl	%r9d,%r10d
25	cmpl	$1342177792,%r10d
26	je	.Lavx_shortcut
27	movq	%rsp,%rax
28.cfi_def_cfa_register	%rax
29	pushq	%rbx
30.cfi_offset	%rbx,-16
31	pushq	%rbp
32.cfi_offset	%rbp,-24
33	pushq	%r12
34.cfi_offset	%r12,-32
35	pushq	%r13
36.cfi_offset	%r13,-40
37	pushq	%r14
38.cfi_offset	%r14,-48
39	pushq	%r15
40.cfi_offset	%r15,-56
41	shlq	$4,%rdx
42	subq	$128+32,%rsp
43	leaq	(%rsi,%rdx,8),%rdx
44	andq	$-64,%rsp
45	movq	%rdi,128+0(%rsp)
46	movq	%rsi,128+8(%rsp)
47	movq	%rdx,128+16(%rsp)
48	movq	%rax,152(%rsp)
49.cfi_escape	0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
50.Lprologue:
51
52	movq	0(%rdi),%rax
53	movq	8(%rdi),%rbx
54	movq	16(%rdi),%rcx
55	movq	24(%rdi),%rdx
56	movq	32(%rdi),%r8
57	movq	40(%rdi),%r9
58	movq	48(%rdi),%r10
59	movq	56(%rdi),%r11
60	jmp	.Lloop
61
62.align	16
63.Lloop:
64	movq	%rbx,%rdi
65	leaq	K512(%rip),%rbp
66	xorq	%rcx,%rdi
67	movq	0(%rsi),%r12
68	movq	%r8,%r13
69	movq	%rax,%r14
70	bswapq	%r12
71	rorq	$23,%r13
72	movq	%r9,%r15
73
74	xorq	%r8,%r13
75	rorq	$5,%r14
76	xorq	%r10,%r15
77
78	movq	%r12,0(%rsp)
79	xorq	%rax,%r14
80	andq	%r8,%r15
81
82	rorq	$4,%r13
83	addq	%r11,%r12
84	xorq	%r10,%r15
85
86	rorq	$6,%r14
87	xorq	%r8,%r13
88	addq	%r15,%r12
89
90	movq	%rax,%r15
91	addq	(%rbp),%r12
92	xorq	%rax,%r14
93
94	xorq	%rbx,%r15
95	rorq	$14,%r13
96	movq	%rbx,%r11
97
98	andq	%r15,%rdi
99	rorq	$28,%r14
100	addq	%r13,%r12
101
102	xorq	%rdi,%r11
103	addq	%r12,%rdx
104	addq	%r12,%r11
105
106	leaq	8(%rbp),%rbp
107	addq	%r14,%r11
108	movq	8(%rsi),%r12
109	movq	%rdx,%r13
110	movq	%r11,%r14
111	bswapq	%r12
112	rorq	$23,%r13
113	movq	%r8,%rdi
114
115	xorq	%rdx,%r13
116	rorq	$5,%r14
117	xorq	%r9,%rdi
118
119	movq	%r12,8(%rsp)
120	xorq	%r11,%r14
121	andq	%rdx,%rdi
122
123	rorq	$4,%r13
124	addq	%r10,%r12
125	xorq	%r9,%rdi
126
127	rorq	$6,%r14
128	xorq	%rdx,%r13
129	addq	%rdi,%r12
130
131	movq	%r11,%rdi
132	addq	(%rbp),%r12
133	xorq	%r11,%r14
134
135	xorq	%rax,%rdi
136	rorq	$14,%r13
137	movq	%rax,%r10
138
139	andq	%rdi,%r15
140	rorq	$28,%r14
141	addq	%r13,%r12
142
143	xorq	%r15,%r10
144	addq	%r12,%rcx
145	addq	%r12,%r10
146
147	leaq	24(%rbp),%rbp
148	addq	%r14,%r10
149	movq	16(%rsi),%r12
150	movq	%rcx,%r13
151	movq	%r10,%r14
152	bswapq	%r12
153	rorq	$23,%r13
154	movq	%rdx,%r15
155
156	xorq	%rcx,%r13
157	rorq	$5,%r14
158	xorq	%r8,%r15
159
160	movq	%r12,16(%rsp)
161	xorq	%r10,%r14
162	andq	%rcx,%r15
163
164	rorq	$4,%r13
165	addq	%r9,%r12
166	xorq	%r8,%r15
167
168	rorq	$6,%r14
169	xorq	%rcx,%r13
170	addq	%r15,%r12
171
172	movq	%r10,%r15
173	addq	(%rbp),%r12
174	xorq	%r10,%r14
175
176	xorq	%r11,%r15
177	rorq	$14,%r13
178	movq	%r11,%r9
179
180	andq	%r15,%rdi
181	rorq	$28,%r14
182	addq	%r13,%r12
183
184	xorq	%rdi,%r9
185	addq	%r12,%rbx
186	addq	%r12,%r9
187
188	leaq	8(%rbp),%rbp
189	addq	%r14,%r9
190	movq	24(%rsi),%r12
191	movq	%rbx,%r13
192	movq	%r9,%r14
193	bswapq	%r12
194	rorq	$23,%r13
195	movq	%rcx,%rdi
196
197	xorq	%rbx,%r13
198	rorq	$5,%r14
199	xorq	%rdx,%rdi
200
201	movq	%r12,24(%rsp)
202	xorq	%r9,%r14
203	andq	%rbx,%rdi
204
205	rorq	$4,%r13
206	addq	%r8,%r12
207	xorq	%rdx,%rdi
208
209	rorq	$6,%r14
210	xorq	%rbx,%r13
211	addq	%rdi,%r12
212
213	movq	%r9,%rdi
214	addq	(%rbp),%r12
215	xorq	%r9,%r14
216
217	xorq	%r10,%rdi
218	rorq	$14,%r13
219	movq	%r10,%r8
220
221	andq	%rdi,%r15
222	rorq	$28,%r14
223	addq	%r13,%r12
224
225	xorq	%r15,%r8
226	addq	%r12,%rax
227	addq	%r12,%r8
228
229	leaq	24(%rbp),%rbp
230	addq	%r14,%r8
231	movq	32(%rsi),%r12
232	movq	%rax,%r13
233	movq	%r8,%r14
234	bswapq	%r12
235	rorq	$23,%r13
236	movq	%rbx,%r15
237
238	xorq	%rax,%r13
239	rorq	$5,%r14
240	xorq	%rcx,%r15
241
242	movq	%r12,32(%rsp)
243	xorq	%r8,%r14
244	andq	%rax,%r15
245
246	rorq	$4,%r13
247	addq	%rdx,%r12
248	xorq	%rcx,%r15
249
250	rorq	$6,%r14
251	xorq	%rax,%r13
252	addq	%r15,%r12
253
254	movq	%r8,%r15
255	addq	(%rbp),%r12
256	xorq	%r8,%r14
257
258	xorq	%r9,%r15
259	rorq	$14,%r13
260	movq	%r9,%rdx
261
262	andq	%r15,%rdi
263	rorq	$28,%r14
264	addq	%r13,%r12
265
266	xorq	%rdi,%rdx
267	addq	%r12,%r11
268	addq	%r12,%rdx
269
270	leaq	8(%rbp),%rbp
271	addq	%r14,%rdx
272	movq	40(%rsi),%r12
273	movq	%r11,%r13
274	movq	%rdx,%r14
275	bswapq	%r12
276	rorq	$23,%r13
277	movq	%rax,%rdi
278
279	xorq	%r11,%r13
280	rorq	$5,%r14
281	xorq	%rbx,%rdi
282
283	movq	%r12,40(%rsp)
284	xorq	%rdx,%r14
285	andq	%r11,%rdi
286
287	rorq	$4,%r13
288	addq	%rcx,%r12
289	xorq	%rbx,%rdi
290
291	rorq	$6,%r14
292	xorq	%r11,%r13
293	addq	%rdi,%r12
294
295	movq	%rdx,%rdi
296	addq	(%rbp),%r12
297	xorq	%rdx,%r14
298
299	xorq	%r8,%rdi
300	rorq	$14,%r13
301	movq	%r8,%rcx
302
303	andq	%rdi,%r15
304	rorq	$28,%r14
305	addq	%r13,%r12
306
307	xorq	%r15,%rcx
308	addq	%r12,%r10
309	addq	%r12,%rcx
310
311	leaq	24(%rbp),%rbp
312	addq	%r14,%rcx
313	movq	48(%rsi),%r12
314	movq	%r10,%r13
315	movq	%rcx,%r14
316	bswapq	%r12
317	rorq	$23,%r13
318	movq	%r11,%r15
319
320	xorq	%r10,%r13
321	rorq	$5,%r14
322	xorq	%rax,%r15
323
324	movq	%r12,48(%rsp)
325	xorq	%rcx,%r14
326	andq	%r10,%r15
327
328	rorq	$4,%r13
329	addq	%rbx,%r12
330	xorq	%rax,%r15
331
332	rorq	$6,%r14
333	xorq	%r10,%r13
334	addq	%r15,%r12
335
336	movq	%rcx,%r15
337	addq	(%rbp),%r12
338	xorq	%rcx,%r14
339
340	xorq	%rdx,%r15
341	rorq	$14,%r13
342	movq	%rdx,%rbx
343
344	andq	%r15,%rdi
345	rorq	$28,%r14
346	addq	%r13,%r12
347
348	xorq	%rdi,%rbx
349	addq	%r12,%r9
350	addq	%r12,%rbx
351
352	leaq	8(%rbp),%rbp
353	addq	%r14,%rbx
354	movq	56(%rsi),%r12
355	movq	%r9,%r13
356	movq	%rbx,%r14
357	bswapq	%r12
358	rorq	$23,%r13
359	movq	%r10,%rdi
360
361	xorq	%r9,%r13
362	rorq	$5,%r14
363	xorq	%r11,%rdi
364
365	movq	%r12,56(%rsp)
366	xorq	%rbx,%r14
367	andq	%r9,%rdi
368
369	rorq	$4,%r13
370	addq	%rax,%r12
371	xorq	%r11,%rdi
372
373	rorq	$6,%r14
374	xorq	%r9,%r13
375	addq	%rdi,%r12
376
377	movq	%rbx,%rdi
378	addq	(%rbp),%r12
379	xorq	%rbx,%r14
380
381	xorq	%rcx,%rdi
382	rorq	$14,%r13
383	movq	%rcx,%rax
384
385	andq	%rdi,%r15
386	rorq	$28,%r14
387	addq	%r13,%r12
388
389	xorq	%r15,%rax
390	addq	%r12,%r8
391	addq	%r12,%rax
392
393	leaq	24(%rbp),%rbp
394	addq	%r14,%rax
395	movq	64(%rsi),%r12
396	movq	%r8,%r13
397	movq	%rax,%r14
398	bswapq	%r12
399	rorq	$23,%r13
400	movq	%r9,%r15
401
402	xorq	%r8,%r13
403	rorq	$5,%r14
404	xorq	%r10,%r15
405
406	movq	%r12,64(%rsp)
407	xorq	%rax,%r14
408	andq	%r8,%r15
409
410	rorq	$4,%r13
411	addq	%r11,%r12
412	xorq	%r10,%r15
413
414	rorq	$6,%r14
415	xorq	%r8,%r13
416	addq	%r15,%r12
417
418	movq	%rax,%r15
419	addq	(%rbp),%r12
420	xorq	%rax,%r14
421
422	xorq	%rbx,%r15
423	rorq	$14,%r13
424	movq	%rbx,%r11
425
426	andq	%r15,%rdi
427	rorq	$28,%r14
428	addq	%r13,%r12
429
430	xorq	%rdi,%r11
431	addq	%r12,%rdx
432	addq	%r12,%r11
433
434	leaq	8(%rbp),%rbp
435	addq	%r14,%r11
436	movq	72(%rsi),%r12
437	movq	%rdx,%r13
438	movq	%r11,%r14
439	bswapq	%r12
440	rorq	$23,%r13
441	movq	%r8,%rdi
442
443	xorq	%rdx,%r13
444	rorq	$5,%r14
445	xorq	%r9,%rdi
446
447	movq	%r12,72(%rsp)
448	xorq	%r11,%r14
449	andq	%rdx,%rdi
450
451	rorq	$4,%r13
452	addq	%r10,%r12
453	xorq	%r9,%rdi
454
455	rorq	$6,%r14
456	xorq	%rdx,%r13
457	addq	%rdi,%r12
458
459	movq	%r11,%rdi
460	addq	(%rbp),%r12
461	xorq	%r11,%r14
462
463	xorq	%rax,%rdi
464	rorq	$14,%r13
465	movq	%rax,%r10
466
467	andq	%rdi,%r15
468	rorq	$28,%r14
469	addq	%r13,%r12
470
471	xorq	%r15,%r10
472	addq	%r12,%rcx
473	addq	%r12,%r10
474
475	leaq	24(%rbp),%rbp
476	addq	%r14,%r10
477	movq	80(%rsi),%r12
478	movq	%rcx,%r13
479	movq	%r10,%r14
480	bswapq	%r12
481	rorq	$23,%r13
482	movq	%rdx,%r15
483
484	xorq	%rcx,%r13
485	rorq	$5,%r14
486	xorq	%r8,%r15
487
488	movq	%r12,80(%rsp)
489	xorq	%r10,%r14
490	andq	%rcx,%r15
491
492	rorq	$4,%r13
493	addq	%r9,%r12
494	xorq	%r8,%r15
495
496	rorq	$6,%r14
497	xorq	%rcx,%r13
498	addq	%r15,%r12
499
500	movq	%r10,%r15
501	addq	(%rbp),%r12
502	xorq	%r10,%r14
503
504	xorq	%r11,%r15
505	rorq	$14,%r13
506	movq	%r11,%r9
507
508	andq	%r15,%rdi
509	rorq	$28,%r14
510	addq	%r13,%r12
511
512	xorq	%rdi,%r9
513	addq	%r12,%rbx
514	addq	%r12,%r9
515
516	leaq	8(%rbp),%rbp
517	addq	%r14,%r9
518	movq	88(%rsi),%r12
519	movq	%rbx,%r13
520	movq	%r9,%r14
521	bswapq	%r12
522	rorq	$23,%r13
523	movq	%rcx,%rdi
524
525	xorq	%rbx,%r13
526	rorq	$5,%r14
527	xorq	%rdx,%rdi
528
529	movq	%r12,88(%rsp)
530	xorq	%r9,%r14
531	andq	%rbx,%rdi
532
533	rorq	$4,%r13
534	addq	%r8,%r12
535	xorq	%rdx,%rdi
536
537	rorq	$6,%r14
538	xorq	%rbx,%r13
539	addq	%rdi,%r12
540
541	movq	%r9,%rdi
542	addq	(%rbp),%r12
543	xorq	%r9,%r14
544
545	xorq	%r10,%rdi
546	rorq	$14,%r13
547	movq	%r10,%r8
548
549	andq	%rdi,%r15
550	rorq	$28,%r14
551	addq	%r13,%r12
552
553	xorq	%r15,%r8
554	addq	%r12,%rax
555	addq	%r12,%r8
556
557	leaq	24(%rbp),%rbp
558	addq	%r14,%r8
559	movq	96(%rsi),%r12
560	movq	%rax,%r13
561	movq	%r8,%r14
562	bswapq	%r12
563	rorq	$23,%r13
564	movq	%rbx,%r15
565
566	xorq	%rax,%r13
567	rorq	$5,%r14
568	xorq	%rcx,%r15
569
570	movq	%r12,96(%rsp)
571	xorq	%r8,%r14
572	andq	%rax,%r15
573
574	rorq	$4,%r13
575	addq	%rdx,%r12
576	xorq	%rcx,%r15
577
578	rorq	$6,%r14
579	xorq	%rax,%r13
580	addq	%r15,%r12
581
582	movq	%r8,%r15
583	addq	(%rbp),%r12
584	xorq	%r8,%r14
585
586	xorq	%r9,%r15
587	rorq	$14,%r13
588	movq	%r9,%rdx
589
590	andq	%r15,%rdi
591	rorq	$28,%r14
592	addq	%r13,%r12
593
594	xorq	%rdi,%rdx
595	addq	%r12,%r11
596	addq	%r12,%rdx
597
598	leaq	8(%rbp),%rbp
599	addq	%r14,%rdx
600	movq	104(%rsi),%r12
601	movq	%r11,%r13
602	movq	%rdx,%r14
603	bswapq	%r12
604	rorq	$23,%r13
605	movq	%rax,%rdi
606
607	xorq	%r11,%r13
608	rorq	$5,%r14
609	xorq	%rbx,%rdi
610
611	movq	%r12,104(%rsp)
612	xorq	%rdx,%r14
613	andq	%r11,%rdi
614
615	rorq	$4,%r13
616	addq	%rcx,%r12
617	xorq	%rbx,%rdi
618
619	rorq	$6,%r14
620	xorq	%r11,%r13
621	addq	%rdi,%r12
622
623	movq	%rdx,%rdi
624	addq	(%rbp),%r12
625	xorq	%rdx,%r14
626
627	xorq	%r8,%rdi
628	rorq	$14,%r13
629	movq	%r8,%rcx
630
631	andq	%rdi,%r15
632	rorq	$28,%r14
633	addq	%r13,%r12
634
635	xorq	%r15,%rcx
636	addq	%r12,%r10
637	addq	%r12,%rcx
638
639	leaq	24(%rbp),%rbp
640	addq	%r14,%rcx
641	movq	112(%rsi),%r12
642	movq	%r10,%r13
643	movq	%rcx,%r14
644	bswapq	%r12
645	rorq	$23,%r13
646	movq	%r11,%r15
647
648	xorq	%r10,%r13
649	rorq	$5,%r14
650	xorq	%rax,%r15
651
652	movq	%r12,112(%rsp)
653	xorq	%rcx,%r14
654	andq	%r10,%r15
655
656	rorq	$4,%r13
657	addq	%rbx,%r12
658	xorq	%rax,%r15
659
660	rorq	$6,%r14
661	xorq	%r10,%r13
662	addq	%r15,%r12
663
664	movq	%rcx,%r15
665	addq	(%rbp),%r12
666	xorq	%rcx,%r14
667
668	xorq	%rdx,%r15
669	rorq	$14,%r13
670	movq	%rdx,%rbx
671
672	andq	%r15,%rdi
673	rorq	$28,%r14
674	addq	%r13,%r12
675
676	xorq	%rdi,%rbx
677	addq	%r12,%r9
678	addq	%r12,%rbx
679
680	leaq	8(%rbp),%rbp
681	addq	%r14,%rbx
682	movq	120(%rsi),%r12
683	movq	%r9,%r13
684	movq	%rbx,%r14
685	bswapq	%r12
686	rorq	$23,%r13
687	movq	%r10,%rdi
688
689	xorq	%r9,%r13
690	rorq	$5,%r14
691	xorq	%r11,%rdi
692
693	movq	%r12,120(%rsp)
694	xorq	%rbx,%r14
695	andq	%r9,%rdi
696
697	rorq	$4,%r13
698	addq	%rax,%r12
699	xorq	%r11,%rdi
700
701	rorq	$6,%r14
702	xorq	%r9,%r13
703	addq	%rdi,%r12
704
705	movq	%rbx,%rdi
706	addq	(%rbp),%r12
707	xorq	%rbx,%r14
708
709	xorq	%rcx,%rdi
710	rorq	$14,%r13
711	movq	%rcx,%rax
712
713	andq	%rdi,%r15
714	rorq	$28,%r14
715	addq	%r13,%r12
716
717	xorq	%r15,%rax
718	addq	%r12,%r8
719	addq	%r12,%rax
720
721	leaq	24(%rbp),%rbp
722	jmp	.Lrounds_16_xx
723.align	16
724.Lrounds_16_xx:
725	movq	8(%rsp),%r13
726	movq	112(%rsp),%r15
727
728	movq	%r13,%r12
729	rorq	$7,%r13
730	addq	%r14,%rax
731	movq	%r15,%r14
732	rorq	$42,%r15
733
734	xorq	%r12,%r13
735	shrq	$7,%r12
736	rorq	$1,%r13
737	xorq	%r14,%r15
738	shrq	$6,%r14
739
740	rorq	$19,%r15
741	xorq	%r13,%r12
742	xorq	%r14,%r15
743	addq	72(%rsp),%r12
744
745	addq	0(%rsp),%r12
746	movq	%r8,%r13
747	addq	%r15,%r12
748	movq	%rax,%r14
749	rorq	$23,%r13
750	movq	%r9,%r15
751
752	xorq	%r8,%r13
753	rorq	$5,%r14
754	xorq	%r10,%r15
755
756	movq	%r12,0(%rsp)
757	xorq	%rax,%r14
758	andq	%r8,%r15
759
760	rorq	$4,%r13
761	addq	%r11,%r12
762	xorq	%r10,%r15
763
764	rorq	$6,%r14
765	xorq	%r8,%r13
766	addq	%r15,%r12
767
768	movq	%rax,%r15
769	addq	(%rbp),%r12
770	xorq	%rax,%r14
771
772	xorq	%rbx,%r15
773	rorq	$14,%r13
774	movq	%rbx,%r11
775
776	andq	%r15,%rdi
777	rorq	$28,%r14
778	addq	%r13,%r12
779
780	xorq	%rdi,%r11
781	addq	%r12,%rdx
782	addq	%r12,%r11
783
784	leaq	8(%rbp),%rbp
785	movq	16(%rsp),%r13
786	movq	120(%rsp),%rdi
787
788	movq	%r13,%r12
789	rorq	$7,%r13
790	addq	%r14,%r11
791	movq	%rdi,%r14
792	rorq	$42,%rdi
793
794	xorq	%r12,%r13
795	shrq	$7,%r12
796	rorq	$1,%r13
797	xorq	%r14,%rdi
798	shrq	$6,%r14
799
800	rorq	$19,%rdi
801	xorq	%r13,%r12
802	xorq	%r14,%rdi
803	addq	80(%rsp),%r12
804
805	addq	8(%rsp),%r12
806	movq	%rdx,%r13
807	addq	%rdi,%r12
808	movq	%r11,%r14
809	rorq	$23,%r13
810	movq	%r8,%rdi
811
812	xorq	%rdx,%r13
813	rorq	$5,%r14
814	xorq	%r9,%rdi
815
816	movq	%r12,8(%rsp)
817	xorq	%r11,%r14
818	andq	%rdx,%rdi
819
820	rorq	$4,%r13
821	addq	%r10,%r12
822	xorq	%r9,%rdi
823
824	rorq	$6,%r14
825	xorq	%rdx,%r13
826	addq	%rdi,%r12
827
828	movq	%r11,%rdi
829	addq	(%rbp),%r12
830	xorq	%r11,%r14
831
832	xorq	%rax,%rdi
833	rorq	$14,%r13
834	movq	%rax,%r10
835
836	andq	%rdi,%r15
837	rorq	$28,%r14
838	addq	%r13,%r12
839
840	xorq	%r15,%r10
841	addq	%r12,%rcx
842	addq	%r12,%r10
843
844	leaq	24(%rbp),%rbp
845	movq	24(%rsp),%r13
846	movq	0(%rsp),%r15
847
848	movq	%r13,%r12
849	rorq	$7,%r13
850	addq	%r14,%r10
851	movq	%r15,%r14
852	rorq	$42,%r15
853
854	xorq	%r12,%r13
855	shrq	$7,%r12
856	rorq	$1,%r13
857	xorq	%r14,%r15
858	shrq	$6,%r14
859
860	rorq	$19,%r15
861	xorq	%r13,%r12
862	xorq	%r14,%r15
863	addq	88(%rsp),%r12
864
865	addq	16(%rsp),%r12
866	movq	%rcx,%r13
867	addq	%r15,%r12
868	movq	%r10,%r14
869	rorq	$23,%r13
870	movq	%rdx,%r15
871
872	xorq	%rcx,%r13
873	rorq	$5,%r14
874	xorq	%r8,%r15
875
876	movq	%r12,16(%rsp)
877	xorq	%r10,%r14
878	andq	%rcx,%r15
879
880	rorq	$4,%r13
881	addq	%r9,%r12
882	xorq	%r8,%r15
883
884	rorq	$6,%r14
885	xorq	%rcx,%r13
886	addq	%r15,%r12
887
888	movq	%r10,%r15
889	addq	(%rbp),%r12
890	xorq	%r10,%r14
891
892	xorq	%r11,%r15
893	rorq	$14,%r13
894	movq	%r11,%r9
895
896	andq	%r15,%rdi
897	rorq	$28,%r14
898	addq	%r13,%r12
899
900	xorq	%rdi,%r9
901	addq	%r12,%rbx
902	addq	%r12,%r9
903
904	leaq	8(%rbp),%rbp
905	movq	32(%rsp),%r13
906	movq	8(%rsp),%rdi
907
908	movq	%r13,%r12
909	rorq	$7,%r13
910	addq	%r14,%r9
911	movq	%rdi,%r14
912	rorq	$42,%rdi
913
914	xorq	%r12,%r13
915	shrq	$7,%r12
916	rorq	$1,%r13
917	xorq	%r14,%rdi
918	shrq	$6,%r14
919
920	rorq	$19,%rdi
921	xorq	%r13,%r12
922	xorq	%r14,%rdi
923	addq	96(%rsp),%r12
924
925	addq	24(%rsp),%r12
926	movq	%rbx,%r13
927	addq	%rdi,%r12
928	movq	%r9,%r14
929	rorq	$23,%r13
930	movq	%rcx,%rdi
931
932	xorq	%rbx,%r13
933	rorq	$5,%r14
934	xorq	%rdx,%rdi
935
936	movq	%r12,24(%rsp)
937	xorq	%r9,%r14
938	andq	%rbx,%rdi
939
940	rorq	$4,%r13
941	addq	%r8,%r12
942	xorq	%rdx,%rdi
943
944	rorq	$6,%r14
945	xorq	%rbx,%r13
946	addq	%rdi,%r12
947
948	movq	%r9,%rdi
949	addq	(%rbp),%r12
950	xorq	%r9,%r14
951
952	xorq	%r10,%rdi
953	rorq	$14,%r13
954	movq	%r10,%r8
955
956	andq	%rdi,%r15
957	rorq	$28,%r14
958	addq	%r13,%r12
959
960	xorq	%r15,%r8
961	addq	%r12,%rax
962	addq	%r12,%r8
963
964	leaq	24(%rbp),%rbp
965	movq	40(%rsp),%r13
966	movq	16(%rsp),%r15
967
968	movq	%r13,%r12
969	rorq	$7,%r13
970	addq	%r14,%r8
971	movq	%r15,%r14
972	rorq	$42,%r15
973
974	xorq	%r12,%r13
975	shrq	$7,%r12
976	rorq	$1,%r13
977	xorq	%r14,%r15
978	shrq	$6,%r14
979
980	rorq	$19,%r15
981	xorq	%r13,%r12
982	xorq	%r14,%r15
983	addq	104(%rsp),%r12
984
985	addq	32(%rsp),%r12
986	movq	%rax,%r13
987	addq	%r15,%r12
988	movq	%r8,%r14
989	rorq	$23,%r13
990	movq	%rbx,%r15
991
992	xorq	%rax,%r13
993	rorq	$5,%r14
994	xorq	%rcx,%r15
995
996	movq	%r12,32(%rsp)
997	xorq	%r8,%r14
998	andq	%rax,%r15
999
1000	rorq	$4,%r13
1001	addq	%rdx,%r12
1002	xorq	%rcx,%r15
1003
1004	rorq	$6,%r14
1005	xorq	%rax,%r13
1006	addq	%r15,%r12
1007
1008	movq	%r8,%r15
1009	addq	(%rbp),%r12
1010	xorq	%r8,%r14
1011
1012	xorq	%r9,%r15
1013	rorq	$14,%r13
1014	movq	%r9,%rdx
1015
1016	andq	%r15,%rdi
1017	rorq	$28,%r14
1018	addq	%r13,%r12
1019
1020	xorq	%rdi,%rdx
1021	addq	%r12,%r11
1022	addq	%r12,%rdx
1023
1024	leaq	8(%rbp),%rbp
1025	movq	48(%rsp),%r13
1026	movq	24(%rsp),%rdi
1027
1028	movq	%r13,%r12
1029	rorq	$7,%r13
1030	addq	%r14,%rdx
1031	movq	%rdi,%r14
1032	rorq	$42,%rdi
1033
1034	xorq	%r12,%r13
1035	shrq	$7,%r12
1036	rorq	$1,%r13
1037	xorq	%r14,%rdi
1038	shrq	$6,%r14
1039
1040	rorq	$19,%rdi
1041	xorq	%r13,%r12
1042	xorq	%r14,%rdi
1043	addq	112(%rsp),%r12
1044
1045	addq	40(%rsp),%r12
1046	movq	%r11,%r13
1047	addq	%rdi,%r12
1048	movq	%rdx,%r14
1049	rorq	$23,%r13
1050	movq	%rax,%rdi
1051
1052	xorq	%r11,%r13
1053	rorq	$5,%r14
1054	xorq	%rbx,%rdi
1055
1056	movq	%r12,40(%rsp)
1057	xorq	%rdx,%r14
1058	andq	%r11,%rdi
1059
1060	rorq	$4,%r13
1061	addq	%rcx,%r12
1062	xorq	%rbx,%rdi
1063
1064	rorq	$6,%r14
1065	xorq	%r11,%r13
1066	addq	%rdi,%r12
1067
1068	movq	%rdx,%rdi
1069	addq	(%rbp),%r12
1070	xorq	%rdx,%r14
1071
1072	xorq	%r8,%rdi
1073	rorq	$14,%r13
1074	movq	%r8,%rcx
1075
1076	andq	%rdi,%r15
1077	rorq	$28,%r14
1078	addq	%r13,%r12
1079
1080	xorq	%r15,%rcx
1081	addq	%r12,%r10
1082	addq	%r12,%rcx
1083
1084	leaq	24(%rbp),%rbp
1085	movq	56(%rsp),%r13
1086	movq	32(%rsp),%r15
1087
1088	movq	%r13,%r12
1089	rorq	$7,%r13
1090	addq	%r14,%rcx
1091	movq	%r15,%r14
1092	rorq	$42,%r15
1093
1094	xorq	%r12,%r13
1095	shrq	$7,%r12
1096	rorq	$1,%r13
1097	xorq	%r14,%r15
1098	shrq	$6,%r14
1099
1100	rorq	$19,%r15
1101	xorq	%r13,%r12
1102	xorq	%r14,%r15
1103	addq	120(%rsp),%r12
1104
1105	addq	48(%rsp),%r12
1106	movq	%r10,%r13
1107	addq	%r15,%r12
1108	movq	%rcx,%r14
1109	rorq	$23,%r13
1110	movq	%r11,%r15
1111
1112	xorq	%r10,%r13
1113	rorq	$5,%r14
1114	xorq	%rax,%r15
1115
1116	movq	%r12,48(%rsp)
1117	xorq	%rcx,%r14
1118	andq	%r10,%r15
1119
1120	rorq	$4,%r13
1121	addq	%rbx,%r12
1122	xorq	%rax,%r15
1123
1124	rorq	$6,%r14
1125	xorq	%r10,%r13
1126	addq	%r15,%r12
1127
1128	movq	%rcx,%r15
1129	addq	(%rbp),%r12
1130	xorq	%rcx,%r14
1131
1132	xorq	%rdx,%r15
1133	rorq	$14,%r13
1134	movq	%rdx,%rbx
1135
1136	andq	%r15,%rdi
1137	rorq	$28,%r14
1138	addq	%r13,%r12
1139
1140	xorq	%rdi,%rbx
1141	addq	%r12,%r9
1142	addq	%r12,%rbx
1143
1144	leaq	8(%rbp),%rbp
1145	movq	64(%rsp),%r13
1146	movq	40(%rsp),%rdi
1147
1148	movq	%r13,%r12
1149	rorq	$7,%r13
1150	addq	%r14,%rbx
1151	movq	%rdi,%r14
1152	rorq	$42,%rdi
1153
1154	xorq	%r12,%r13
1155	shrq	$7,%r12
1156	rorq	$1,%r13
1157	xorq	%r14,%rdi
1158	shrq	$6,%r14
1159
1160	rorq	$19,%rdi
1161	xorq	%r13,%r12
1162	xorq	%r14,%rdi
1163	addq	0(%rsp),%r12
1164
1165	addq	56(%rsp),%r12
1166	movq	%r9,%r13
1167	addq	%rdi,%r12
1168	movq	%rbx,%r14
1169	rorq	$23,%r13
1170	movq	%r10,%rdi
1171
1172	xorq	%r9,%r13
1173	rorq	$5,%r14
1174	xorq	%r11,%rdi
1175
1176	movq	%r12,56(%rsp)
1177	xorq	%rbx,%r14
1178	andq	%r9,%rdi
1179
1180	rorq	$4,%r13
1181	addq	%rax,%r12
1182	xorq	%r11,%rdi
1183
1184	rorq	$6,%r14
1185	xorq	%r9,%r13
1186	addq	%rdi,%r12
1187
1188	movq	%rbx,%rdi
1189	addq	(%rbp),%r12
1190	xorq	%rbx,%r14
1191
1192	xorq	%rcx,%rdi
1193	rorq	$14,%r13
1194	movq	%rcx,%rax
1195
1196	andq	%rdi,%r15
1197	rorq	$28,%r14
1198	addq	%r13,%r12
1199
1200	xorq	%r15,%rax
1201	addq	%r12,%r8
1202	addq	%r12,%rax
1203
1204	leaq	24(%rbp),%rbp
1205	movq	72(%rsp),%r13
1206	movq	48(%rsp),%r15
1207
1208	movq	%r13,%r12
1209	rorq	$7,%r13
1210	addq	%r14,%rax
1211	movq	%r15,%r14
1212	rorq	$42,%r15
1213
1214	xorq	%r12,%r13
1215	shrq	$7,%r12
1216	rorq	$1,%r13
1217	xorq	%r14,%r15
1218	shrq	$6,%r14
1219
1220	rorq	$19,%r15
1221	xorq	%r13,%r12
1222	xorq	%r14,%r15
1223	addq	8(%rsp),%r12
1224
1225	addq	64(%rsp),%r12
1226	movq	%r8,%r13
1227	addq	%r15,%r12
1228	movq	%rax,%r14
1229	rorq	$23,%r13
1230	movq	%r9,%r15
1231
1232	xorq	%r8,%r13
1233	rorq	$5,%r14
1234	xorq	%r10,%r15
1235
1236	movq	%r12,64(%rsp)
1237	xorq	%rax,%r14
1238	andq	%r8,%r15
1239
1240	rorq	$4,%r13
1241	addq	%r11,%r12
1242	xorq	%r10,%r15
1243
1244	rorq	$6,%r14
1245	xorq	%r8,%r13
1246	addq	%r15,%r12
1247
1248	movq	%rax,%r15
1249	addq	(%rbp),%r12
1250	xorq	%rax,%r14
1251
1252	xorq	%rbx,%r15
1253	rorq	$14,%r13
1254	movq	%rbx,%r11
1255
1256	andq	%r15,%rdi
1257	rorq	$28,%r14
1258	addq	%r13,%r12
1259
1260	xorq	%rdi,%r11
1261	addq	%r12,%rdx
1262	addq	%r12,%r11
1263
1264	leaq	8(%rbp),%rbp
1265	movq	80(%rsp),%r13
1266	movq	56(%rsp),%rdi
1267
1268	movq	%r13,%r12
1269	rorq	$7,%r13
1270	addq	%r14,%r11
1271	movq	%rdi,%r14
1272	rorq	$42,%rdi
1273
1274	xorq	%r12,%r13
1275	shrq	$7,%r12
1276	rorq	$1,%r13
1277	xorq	%r14,%rdi
1278	shrq	$6,%r14
1279
1280	rorq	$19,%rdi
1281	xorq	%r13,%r12
1282	xorq	%r14,%rdi
1283	addq	16(%rsp),%r12
1284
1285	addq	72(%rsp),%r12
1286	movq	%rdx,%r13
1287	addq	%rdi,%r12
1288	movq	%r11,%r14
1289	rorq	$23,%r13
1290	movq	%r8,%rdi
1291
1292	xorq	%rdx,%r13
1293	rorq	$5,%r14
1294	xorq	%r9,%rdi
1295
1296	movq	%r12,72(%rsp)
1297	xorq	%r11,%r14
1298	andq	%rdx,%rdi
1299
1300	rorq	$4,%r13
1301	addq	%r10,%r12
1302	xorq	%r9,%rdi
1303
1304	rorq	$6,%r14
1305	xorq	%rdx,%r13
1306	addq	%rdi,%r12
1307
1308	movq	%r11,%rdi
1309	addq	(%rbp),%r12
1310	xorq	%r11,%r14
1311
1312	xorq	%rax,%rdi
1313	rorq	$14,%r13
1314	movq	%rax,%r10
1315
1316	andq	%rdi,%r15
1317	rorq	$28,%r14
1318	addq	%r13,%r12
1319
1320	xorq	%r15,%r10
1321	addq	%r12,%rcx
1322	addq	%r12,%r10
1323
1324	leaq	24(%rbp),%rbp
1325	movq	88(%rsp),%r13
1326	movq	64(%rsp),%r15
1327
1328	movq	%r13,%r12
1329	rorq	$7,%r13
1330	addq	%r14,%r10
1331	movq	%r15,%r14
1332	rorq	$42,%r15
1333
1334	xorq	%r12,%r13
1335	shrq	$7,%r12
1336	rorq	$1,%r13
1337	xorq	%r14,%r15
1338	shrq	$6,%r14
1339
1340	rorq	$19,%r15
1341	xorq	%r13,%r12
1342	xorq	%r14,%r15
1343	addq	24(%rsp),%r12
1344
1345	addq	80(%rsp),%r12
1346	movq	%rcx,%r13
1347	addq	%r15,%r12
1348	movq	%r10,%r14
1349	rorq	$23,%r13
1350	movq	%rdx,%r15
1351
1352	xorq	%rcx,%r13
1353	rorq	$5,%r14
1354	xorq	%r8,%r15
1355
1356	movq	%r12,80(%rsp)
1357	xorq	%r10,%r14
1358	andq	%rcx,%r15
1359
1360	rorq	$4,%r13
1361	addq	%r9,%r12
1362	xorq	%r8,%r15
1363
1364	rorq	$6,%r14
1365	xorq	%rcx,%r13
1366	addq	%r15,%r12
1367
1368	movq	%r10,%r15
1369	addq	(%rbp),%r12
1370	xorq	%r10,%r14
1371
1372	xorq	%r11,%r15
1373	rorq	$14,%r13
1374	movq	%r11,%r9
1375
1376	andq	%r15,%rdi
1377	rorq	$28,%r14
1378	addq	%r13,%r12
1379
1380	xorq	%rdi,%r9
1381	addq	%r12,%rbx
1382	addq	%r12,%r9
1383
1384	leaq	8(%rbp),%rbp
1385	movq	96(%rsp),%r13
1386	movq	72(%rsp),%rdi
1387
1388	movq	%r13,%r12
1389	rorq	$7,%r13
1390	addq	%r14,%r9
1391	movq	%rdi,%r14
1392	rorq	$42,%rdi
1393
1394	xorq	%r12,%r13
1395	shrq	$7,%r12
1396	rorq	$1,%r13
1397	xorq	%r14,%rdi
1398	shrq	$6,%r14
1399
1400	rorq	$19,%rdi
1401	xorq	%r13,%r12
1402	xorq	%r14,%rdi
1403	addq	32(%rsp),%r12
1404
1405	addq	88(%rsp),%r12
1406	movq	%rbx,%r13
1407	addq	%rdi,%r12
1408	movq	%r9,%r14
1409	rorq	$23,%r13
1410	movq	%rcx,%rdi
1411
1412	xorq	%rbx,%r13
1413	rorq	$5,%r14
1414	xorq	%rdx,%rdi
1415
1416	movq	%r12,88(%rsp)
1417	xorq	%r9,%r14
1418	andq	%rbx,%rdi
1419
1420	rorq	$4,%r13
1421	addq	%r8,%r12
1422	xorq	%rdx,%rdi
1423
1424	rorq	$6,%r14
1425	xorq	%rbx,%r13
1426	addq	%rdi,%r12
1427
1428	movq	%r9,%rdi
1429	addq	(%rbp),%r12
1430	xorq	%r9,%r14
1431
1432	xorq	%r10,%rdi
1433	rorq	$14,%r13
1434	movq	%r10,%r8
1435
1436	andq	%rdi,%r15
1437	rorq	$28,%r14
1438	addq	%r13,%r12
1439
1440	xorq	%r15,%r8
1441	addq	%r12,%rax
1442	addq	%r12,%r8
1443
1444	leaq	24(%rbp),%rbp
1445	movq	104(%rsp),%r13
1446	movq	80(%rsp),%r15
1447
1448	movq	%r13,%r12
1449	rorq	$7,%r13
1450	addq	%r14,%r8
1451	movq	%r15,%r14
1452	rorq	$42,%r15
1453
1454	xorq	%r12,%r13
1455	shrq	$7,%r12
1456	rorq	$1,%r13
1457	xorq	%r14,%r15
1458	shrq	$6,%r14
1459
1460	rorq	$19,%r15
1461	xorq	%r13,%r12
1462	xorq	%r14,%r15
1463	addq	40(%rsp),%r12
1464
1465	addq	96(%rsp),%r12
1466	movq	%rax,%r13
1467	addq	%r15,%r12
1468	movq	%r8,%r14
1469	rorq	$23,%r13
1470	movq	%rbx,%r15
1471
1472	xorq	%rax,%r13
1473	rorq	$5,%r14
1474	xorq	%rcx,%r15
1475
1476	movq	%r12,96(%rsp)
1477	xorq	%r8,%r14
1478	andq	%rax,%r15
1479
1480	rorq	$4,%r13
1481	addq	%rdx,%r12
1482	xorq	%rcx,%r15
1483
1484	rorq	$6,%r14
1485	xorq	%rax,%r13
1486	addq	%r15,%r12
1487
1488	movq	%r8,%r15
1489	addq	(%rbp),%r12
1490	xorq	%r8,%r14
1491
1492	xorq	%r9,%r15
1493	rorq	$14,%r13
1494	movq	%r9,%rdx
1495
1496	andq	%r15,%rdi
1497	rorq	$28,%r14
1498	addq	%r13,%r12
1499
1500	xorq	%rdi,%rdx
1501	addq	%r12,%r11
1502	addq	%r12,%rdx
1503
1504	leaq	8(%rbp),%rbp
1505	movq	112(%rsp),%r13
1506	movq	88(%rsp),%rdi
1507
1508	movq	%r13,%r12
1509	rorq	$7,%r13
1510	addq	%r14,%rdx
1511	movq	%rdi,%r14
1512	rorq	$42,%rdi
1513
1514	xorq	%r12,%r13
1515	shrq	$7,%r12
1516	rorq	$1,%r13
1517	xorq	%r14,%rdi
1518	shrq	$6,%r14
1519
1520	rorq	$19,%rdi
1521	xorq	%r13,%r12
1522	xorq	%r14,%rdi
1523	addq	48(%rsp),%r12
1524
1525	addq	104(%rsp),%r12
1526	movq	%r11,%r13
1527	addq	%rdi,%r12
1528	movq	%rdx,%r14
1529	rorq	$23,%r13
1530	movq	%rax,%rdi
1531
1532	xorq	%r11,%r13
1533	rorq	$5,%r14
1534	xorq	%rbx,%rdi
1535
1536	movq	%r12,104(%rsp)
1537	xorq	%rdx,%r14
1538	andq	%r11,%rdi
1539
1540	rorq	$4,%r13
1541	addq	%rcx,%r12
1542	xorq	%rbx,%rdi
1543
1544	rorq	$6,%r14
1545	xorq	%r11,%r13
1546	addq	%rdi,%r12
1547
1548	movq	%rdx,%rdi
1549	addq	(%rbp),%r12
1550	xorq	%rdx,%r14
1551
1552	xorq	%r8,%rdi
1553	rorq	$14,%r13
1554	movq	%r8,%rcx
1555
1556	andq	%rdi,%r15
1557	rorq	$28,%r14
1558	addq	%r13,%r12
1559
1560	xorq	%r15,%rcx
1561	addq	%r12,%r10
1562	addq	%r12,%rcx
1563
1564	leaq	24(%rbp),%rbp
1565	movq	120(%rsp),%r13
1566	movq	96(%rsp),%r15
1567
1568	movq	%r13,%r12
1569	rorq	$7,%r13
1570	addq	%r14,%rcx
1571	movq	%r15,%r14
1572	rorq	$42,%r15
1573
1574	xorq	%r12,%r13
1575	shrq	$7,%r12
1576	rorq	$1,%r13
1577	xorq	%r14,%r15
1578	shrq	$6,%r14
1579
1580	rorq	$19,%r15
1581	xorq	%r13,%r12
1582	xorq	%r14,%r15
1583	addq	56(%rsp),%r12
1584
1585	addq	112(%rsp),%r12
1586	movq	%r10,%r13
1587	addq	%r15,%r12
1588	movq	%rcx,%r14
1589	rorq	$23,%r13
1590	movq	%r11,%r15
1591
1592	xorq	%r10,%r13
1593	rorq	$5,%r14
1594	xorq	%rax,%r15
1595
1596	movq	%r12,112(%rsp)
1597	xorq	%rcx,%r14
1598	andq	%r10,%r15
1599
1600	rorq	$4,%r13
1601	addq	%rbx,%r12
1602	xorq	%rax,%r15
1603
1604	rorq	$6,%r14
1605	xorq	%r10,%r13
1606	addq	%r15,%r12
1607
1608	movq	%rcx,%r15
1609	addq	(%rbp),%r12
1610	xorq	%rcx,%r14
1611
1612	xorq	%rdx,%r15
1613	rorq	$14,%r13
1614	movq	%rdx,%rbx
1615
1616	andq	%r15,%rdi
1617	rorq	$28,%r14
1618	addq	%r13,%r12
1619
1620	xorq	%rdi,%rbx
1621	addq	%r12,%r9
1622	addq	%r12,%rbx
1623
1624	leaq	8(%rbp),%rbp
1625	movq	0(%rsp),%r13
1626	movq	104(%rsp),%rdi
1627
1628	movq	%r13,%r12
1629	rorq	$7,%r13
1630	addq	%r14,%rbx
1631	movq	%rdi,%r14
1632	rorq	$42,%rdi
1633
1634	xorq	%r12,%r13
1635	shrq	$7,%r12
1636	rorq	$1,%r13
1637	xorq	%r14,%rdi
1638	shrq	$6,%r14
1639
1640	rorq	$19,%rdi
1641	xorq	%r13,%r12
1642	xorq	%r14,%rdi
1643	addq	64(%rsp),%r12
1644
1645	addq	120(%rsp),%r12
1646	movq	%r9,%r13
1647	addq	%rdi,%r12
1648	movq	%rbx,%r14
1649	rorq	$23,%r13
1650	movq	%r10,%rdi
1651
1652	xorq	%r9,%r13
1653	rorq	$5,%r14
1654	xorq	%r11,%rdi
1655
1656	movq	%r12,120(%rsp)
1657	xorq	%rbx,%r14
1658	andq	%r9,%rdi
1659
1660	rorq	$4,%r13
1661	addq	%rax,%r12
1662	xorq	%r11,%rdi
1663
1664	rorq	$6,%r14
1665	xorq	%r9,%r13
1666	addq	%rdi,%r12
1667
1668	movq	%rbx,%rdi
1669	addq	(%rbp),%r12
1670	xorq	%rbx,%r14
1671
1672	xorq	%rcx,%rdi
1673	rorq	$14,%r13
1674	movq	%rcx,%rax
1675
1676	andq	%rdi,%r15
1677	rorq	$28,%r14
1678	addq	%r13,%r12
1679
1680	xorq	%r15,%rax
1681	addq	%r12,%r8
1682	addq	%r12,%rax
1683
1684	leaq	24(%rbp),%rbp
1685	cmpb	$0,7(%rbp)
1686	jnz	.Lrounds_16_xx
1687
1688	movq	128+0(%rsp),%rdi
1689	addq	%r14,%rax
1690	leaq	128(%rsi),%rsi
1691
1692	addq	0(%rdi),%rax
1693	addq	8(%rdi),%rbx
1694	addq	16(%rdi),%rcx
1695	addq	24(%rdi),%rdx
1696	addq	32(%rdi),%r8
1697	addq	40(%rdi),%r9
1698	addq	48(%rdi),%r10
1699	addq	56(%rdi),%r11
1700
1701	cmpq	128+16(%rsp),%rsi
1702
1703	movq	%rax,0(%rdi)
1704	movq	%rbx,8(%rdi)
1705	movq	%rcx,16(%rdi)
1706	movq	%rdx,24(%rdi)
1707	movq	%r8,32(%rdi)
1708	movq	%r9,40(%rdi)
1709	movq	%r10,48(%rdi)
1710	movq	%r11,56(%rdi)
1711	jb	.Lloop
1712
1713	movq	152(%rsp),%rsi
1714.cfi_def_cfa	%rsi,8
1715	movq	-48(%rsi),%r15
1716.cfi_restore	%r15
1717	movq	-40(%rsi),%r14
1718.cfi_restore	%r14
1719	movq	-32(%rsi),%r13
1720.cfi_restore	%r13
1721	movq	-24(%rsi),%r12
1722.cfi_restore	%r12
1723	movq	-16(%rsi),%rbp
1724.cfi_restore	%rbp
1725	movq	-8(%rsi),%rbx
1726.cfi_restore	%rbx
1727	leaq	(%rsi),%rsp
1728.cfi_def_cfa_register	%rsp
1729.Lepilogue:
1730	ret
1731.cfi_endproc
1732.size	sha512_block_data_order,.-sha512_block_data_order
1733.section	.rodata
1734.align	64
1735.type	K512,@object
1736K512:
1737.quad	0x428a2f98d728ae22,0x7137449123ef65cd
1738.quad	0x428a2f98d728ae22,0x7137449123ef65cd
1739.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
1740.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
1741.quad	0x3956c25bf348b538,0x59f111f1b605d019
1742.quad	0x3956c25bf348b538,0x59f111f1b605d019
1743.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
1744.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
1745.quad	0xd807aa98a3030242,0x12835b0145706fbe
1746.quad	0xd807aa98a3030242,0x12835b0145706fbe
1747.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
1748.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
1749.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
1750.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
1751.quad	0x9bdc06a725c71235,0xc19bf174cf692694
1752.quad	0x9bdc06a725c71235,0xc19bf174cf692694
1753.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
1754.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
1755.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
1756.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
1757.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
1758.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
1759.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
1760.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
1761.quad	0x983e5152ee66dfab,0xa831c66d2db43210
1762.quad	0x983e5152ee66dfab,0xa831c66d2db43210
1763.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
1764.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
1765.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
1766.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
1767.quad	0x06ca6351e003826f,0x142929670a0e6e70
1768.quad	0x06ca6351e003826f,0x142929670a0e6e70
1769.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
1770.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
1771.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
1772.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
1773.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
1774.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
1775.quad	0x81c2c92e47edaee6,0x92722c851482353b
1776.quad	0x81c2c92e47edaee6,0x92722c851482353b
1777.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
1778.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
1779.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
1780.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
1781.quad	0xd192e819d6ef5218,0xd69906245565a910
1782.quad	0xd192e819d6ef5218,0xd69906245565a910
1783.quad	0xf40e35855771202a,0x106aa07032bbd1b8
1784.quad	0xf40e35855771202a,0x106aa07032bbd1b8
1785.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
1786.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
1787.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
1788.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
1789.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
1790.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
1791.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
1792.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
1793.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
1794.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
1795.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
1796.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
1797.quad	0x90befffa23631e28,0xa4506cebde82bde9
1798.quad	0x90befffa23631e28,0xa4506cebde82bde9
1799.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
1800.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
1801.quad	0xca273eceea26619c,0xd186b8c721c0c207
1802.quad	0xca273eceea26619c,0xd186b8c721c0c207
1803.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
1804.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
1805.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
1806.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
1807.quad	0x113f9804bef90dae,0x1b710b35131c471b
1808.quad	0x113f9804bef90dae,0x1b710b35131c471b
1809.quad	0x28db77f523047d84,0x32caab7b40c72493
1810.quad	0x28db77f523047d84,0x32caab7b40c72493
1811.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
1812.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
1813.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
1814.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
1815.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
1816.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
1817
1818.quad	0x0001020304050607,0x08090a0b0c0d0e0f
1819.quad	0x0001020304050607,0x08090a0b0c0d0e0f
1820.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
1821.text
1822.type	sha512_block_data_order_avx,@function
1823.align	64
1824sha512_block_data_order_avx:
1825.cfi_startproc
1826.Lavx_shortcut:
1827	movq	%rsp,%rax
1828.cfi_def_cfa_register	%rax
1829	pushq	%rbx
1830.cfi_offset	%rbx,-16
1831	pushq	%rbp
1832.cfi_offset	%rbp,-24
1833	pushq	%r12
1834.cfi_offset	%r12,-32
1835	pushq	%r13
1836.cfi_offset	%r13,-40
1837	pushq	%r14
1838.cfi_offset	%r14,-48
1839	pushq	%r15
1840.cfi_offset	%r15,-56
1841	shlq	$4,%rdx
1842	subq	$160,%rsp
1843	leaq	(%rsi,%rdx,8),%rdx
1844	andq	$-64,%rsp
1845	movq	%rdi,128+0(%rsp)
1846	movq	%rsi,128+8(%rsp)
1847	movq	%rdx,128+16(%rsp)
1848	movq	%rax,152(%rsp)
1849.cfi_escape	0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
1850.Lprologue_avx:
1851
1852	vzeroupper
1853	movq	0(%rdi),%rax
1854	movq	8(%rdi),%rbx
1855	movq	16(%rdi),%rcx
1856	movq	24(%rdi),%rdx
1857	movq	32(%rdi),%r8
1858	movq	40(%rdi),%r9
1859	movq	48(%rdi),%r10
1860	movq	56(%rdi),%r11
1861	jmp	.Lloop_avx
1862.align	16
1863.Lloop_avx:
1864	vmovdqa	K512+1280(%rip),%xmm11
1865	vmovdqu	0(%rsi),%xmm0
1866	leaq	K512+128(%rip),%rbp
1867	vmovdqu	16(%rsi),%xmm1
1868	vmovdqu	32(%rsi),%xmm2
1869	vpshufb	%xmm11,%xmm0,%xmm0
1870	vmovdqu	48(%rsi),%xmm3
1871	vpshufb	%xmm11,%xmm1,%xmm1
1872	vmovdqu	64(%rsi),%xmm4
1873	vpshufb	%xmm11,%xmm2,%xmm2
1874	vmovdqu	80(%rsi),%xmm5
1875	vpshufb	%xmm11,%xmm3,%xmm3
1876	vmovdqu	96(%rsi),%xmm6
1877	vpshufb	%xmm11,%xmm4,%xmm4
1878	vmovdqu	112(%rsi),%xmm7
1879	vpshufb	%xmm11,%xmm5,%xmm5
1880	vpaddq	-128(%rbp),%xmm0,%xmm8
1881	vpshufb	%xmm11,%xmm6,%xmm6
1882	vpaddq	-96(%rbp),%xmm1,%xmm9
1883	vpshufb	%xmm11,%xmm7,%xmm7
1884	vpaddq	-64(%rbp),%xmm2,%xmm10
1885	vpaddq	-32(%rbp),%xmm3,%xmm11
1886	vmovdqa	%xmm8,0(%rsp)
1887	vpaddq	0(%rbp),%xmm4,%xmm8
1888	vmovdqa	%xmm9,16(%rsp)
1889	vpaddq	32(%rbp),%xmm5,%xmm9
1890	vmovdqa	%xmm10,32(%rsp)
1891	vpaddq	64(%rbp),%xmm6,%xmm10
1892	vmovdqa	%xmm11,48(%rsp)
1893	vpaddq	96(%rbp),%xmm7,%xmm11
1894	vmovdqa	%xmm8,64(%rsp)
1895	movq	%rax,%r14
1896	vmovdqa	%xmm9,80(%rsp)
1897	movq	%rbx,%rdi
1898	vmovdqa	%xmm10,96(%rsp)
1899	xorq	%rcx,%rdi
1900	vmovdqa	%xmm11,112(%rsp)
1901	movq	%r8,%r13
1902	jmp	.Lavx_00_47
1903
1904.align	16
1905.Lavx_00_47:
1906	addq	$256,%rbp
1907	vpalignr	$8,%xmm0,%xmm1,%xmm8
1908	shrdq	$23,%r13,%r13
1909	movq	%r14,%rax
1910	vpalignr	$8,%xmm4,%xmm5,%xmm11
1911	movq	%r9,%r12
1912	shrdq	$5,%r14,%r14
1913	vpsrlq	$1,%xmm8,%xmm10
1914	xorq	%r8,%r13
1915	xorq	%r10,%r12
1916	vpaddq	%xmm11,%xmm0,%xmm0
1917	shrdq	$4,%r13,%r13
1918	xorq	%rax,%r14
1919	vpsrlq	$7,%xmm8,%xmm11
1920	andq	%r8,%r12
1921	xorq	%r8,%r13
1922	vpsllq	$56,%xmm8,%xmm9
1923	addq	0(%rsp),%r11
1924	movq	%rax,%r15
1925	vpxor	%xmm10,%xmm11,%xmm8
1926	xorq	%r10,%r12
1927	shrdq	$6,%r14,%r14
1928	vpsrlq	$7,%xmm10,%xmm10
1929	xorq	%rbx,%r15
1930	addq	%r12,%r11
1931	vpxor	%xmm9,%xmm8,%xmm8
1932	shrdq	$14,%r13,%r13
1933	andq	%r15,%rdi
1934	vpsllq	$7,%xmm9,%xmm9
1935	xorq	%rax,%r14
1936	addq	%r13,%r11
1937	vpxor	%xmm10,%xmm8,%xmm8
1938	xorq	%rbx,%rdi
1939	shrdq	$28,%r14,%r14
1940	vpsrlq	$6,%xmm7,%xmm11
1941	addq	%r11,%rdx
1942	addq	%rdi,%r11
1943	vpxor	%xmm9,%xmm8,%xmm8
1944	movq	%rdx,%r13
1945	addq	%r11,%r14
1946	vpsllq	$3,%xmm7,%xmm10
1947	shrdq	$23,%r13,%r13
1948	movq	%r14,%r11
1949	vpaddq	%xmm8,%xmm0,%xmm0
1950	movq	%r8,%r12
1951	shrdq	$5,%r14,%r14
1952	vpsrlq	$19,%xmm7,%xmm9
1953	xorq	%rdx,%r13
1954	xorq	%r9,%r12
1955	vpxor	%xmm10,%xmm11,%xmm11
1956	shrdq	$4,%r13,%r13
1957	xorq	%r11,%r14
1958	vpsllq	$42,%xmm10,%xmm10
1959	andq	%rdx,%r12
1960	xorq	%rdx,%r13
1961	vpxor	%xmm9,%xmm11,%xmm11
1962	addq	8(%rsp),%r10
1963	movq	%r11,%rdi
1964	vpsrlq	$42,%xmm9,%xmm9
1965	xorq	%r9,%r12
1966	shrdq	$6,%r14,%r14
1967	vpxor	%xmm10,%xmm11,%xmm11
1968	xorq	%rax,%rdi
1969	addq	%r12,%r10
1970	vpxor	%xmm9,%xmm11,%xmm11
1971	shrdq	$14,%r13,%r13
1972	andq	%rdi,%r15
1973	vpaddq	%xmm11,%xmm0,%xmm0
1974	xorq	%r11,%r14
1975	addq	%r13,%r10
1976	vpaddq	-128(%rbp),%xmm0,%xmm10
1977	xorq	%rax,%r15
1978	shrdq	$28,%r14,%r14
1979	addq	%r10,%rcx
1980	addq	%r15,%r10
1981	movq	%rcx,%r13
1982	addq	%r10,%r14
1983	vmovdqa	%xmm10,0(%rsp)
1984	vpalignr	$8,%xmm1,%xmm2,%xmm8
1985	shrdq	$23,%r13,%r13
1986	movq	%r14,%r10
1987	vpalignr	$8,%xmm5,%xmm6,%xmm11
1988	movq	%rdx,%r12
1989	shrdq	$5,%r14,%r14
1990	vpsrlq	$1,%xmm8,%xmm10
1991	xorq	%rcx,%r13
1992	xorq	%r8,%r12
1993	vpaddq	%xmm11,%xmm1,%xmm1
1994	shrdq	$4,%r13,%r13
1995	xorq	%r10,%r14
1996	vpsrlq	$7,%xmm8,%xmm11
1997	andq	%rcx,%r12
1998	xorq	%rcx,%r13
1999	vpsllq	$56,%xmm8,%xmm9
2000	addq	16(%rsp),%r9
2001	movq	%r10,%r15
2002	vpxor	%xmm10,%xmm11,%xmm8
2003	xorq	%r8,%r12
2004	shrdq	$6,%r14,%r14
2005	vpsrlq	$7,%xmm10,%xmm10
2006	xorq	%r11,%r15
2007	addq	%r12,%r9
2008	vpxor	%xmm9,%xmm8,%xmm8
2009	shrdq	$14,%r13,%r13
2010	andq	%r15,%rdi
2011	vpsllq	$7,%xmm9,%xmm9
2012	xorq	%r10,%r14
2013	addq	%r13,%r9
2014	vpxor	%xmm10,%xmm8,%xmm8
2015	xorq	%r11,%rdi
2016	shrdq	$28,%r14,%r14
2017	vpsrlq	$6,%xmm0,%xmm11
2018	addq	%r9,%rbx
2019	addq	%rdi,%r9
2020	vpxor	%xmm9,%xmm8,%xmm8
2021	movq	%rbx,%r13
2022	addq	%r9,%r14
2023	vpsllq	$3,%xmm0,%xmm10
2024	shrdq	$23,%r13,%r13
2025	movq	%r14,%r9
2026	vpaddq	%xmm8,%xmm1,%xmm1
2027	movq	%rcx,%r12
2028	shrdq	$5,%r14,%r14
2029	vpsrlq	$19,%xmm0,%xmm9
2030	xorq	%rbx,%r13
2031	xorq	%rdx,%r12
2032	vpxor	%xmm10,%xmm11,%xmm11
2033	shrdq	$4,%r13,%r13
2034	xorq	%r9,%r14
2035	vpsllq	$42,%xmm10,%xmm10
2036	andq	%rbx,%r12
2037	xorq	%rbx,%r13
2038	vpxor	%xmm9,%xmm11,%xmm11
2039	addq	24(%rsp),%r8
2040	movq	%r9,%rdi
2041	vpsrlq	$42,%xmm9,%xmm9
2042	xorq	%rdx,%r12
2043	shrdq	$6,%r14,%r14
2044	vpxor	%xmm10,%xmm11,%xmm11
2045	xorq	%r10,%rdi
2046	addq	%r12,%r8
2047	vpxor	%xmm9,%xmm11,%xmm11
2048	shrdq	$14,%r13,%r13
2049	andq	%rdi,%r15
2050	vpaddq	%xmm11,%xmm1,%xmm1
2051	xorq	%r9,%r14
2052	addq	%r13,%r8
2053	vpaddq	-96(%rbp),%xmm1,%xmm10
2054	xorq	%r10,%r15
2055	shrdq	$28,%r14,%r14
2056	addq	%r8,%rax
2057	addq	%r15,%r8
2058	movq	%rax,%r13
2059	addq	%r8,%r14
2060	vmovdqa	%xmm10,16(%rsp)
2061	vpalignr	$8,%xmm2,%xmm3,%xmm8
2062	shrdq	$23,%r13,%r13
2063	movq	%r14,%r8
2064	vpalignr	$8,%xmm6,%xmm7,%xmm11
2065	movq	%rbx,%r12
2066	shrdq	$5,%r14,%r14
2067	vpsrlq	$1,%xmm8,%xmm10
2068	xorq	%rax,%r13
2069	xorq	%rcx,%r12
2070	vpaddq	%xmm11,%xmm2,%xmm2
2071	shrdq	$4,%r13,%r13
2072	xorq	%r8,%r14
2073	vpsrlq	$7,%xmm8,%xmm11
2074	andq	%rax,%r12
2075	xorq	%rax,%r13
2076	vpsllq	$56,%xmm8,%xmm9
2077	addq	32(%rsp),%rdx
2078	movq	%r8,%r15
2079	vpxor	%xmm10,%xmm11,%xmm8
2080	xorq	%rcx,%r12
2081	shrdq	$6,%r14,%r14
2082	vpsrlq	$7,%xmm10,%xmm10
2083	xorq	%r9,%r15
2084	addq	%r12,%rdx
2085	vpxor	%xmm9,%xmm8,%xmm8
2086	shrdq	$14,%r13,%r13
2087	andq	%r15,%rdi
2088	vpsllq	$7,%xmm9,%xmm9
2089	xorq	%r8,%r14
2090	addq	%r13,%rdx
2091	vpxor	%xmm10,%xmm8,%xmm8
2092	xorq	%r9,%rdi
2093	shrdq	$28,%r14,%r14
2094	vpsrlq	$6,%xmm1,%xmm11
2095	addq	%rdx,%r11
2096	addq	%rdi,%rdx
2097	vpxor	%xmm9,%xmm8,%xmm8
2098	movq	%r11,%r13
2099	addq	%rdx,%r14
2100	vpsllq	$3,%xmm1,%xmm10
2101	shrdq	$23,%r13,%r13
2102	movq	%r14,%rdx
2103	vpaddq	%xmm8,%xmm2,%xmm2
2104	movq	%rax,%r12
2105	shrdq	$5,%r14,%r14
2106	vpsrlq	$19,%xmm1,%xmm9
2107	xorq	%r11,%r13
2108	xorq	%rbx,%r12
2109	vpxor	%xmm10,%xmm11,%xmm11
2110	shrdq	$4,%r13,%r13
2111	xorq	%rdx,%r14
2112	vpsllq	$42,%xmm10,%xmm10
2113	andq	%r11,%r12
2114	xorq	%r11,%r13
2115	vpxor	%xmm9,%xmm11,%xmm11
2116	addq	40(%rsp),%rcx
2117	movq	%rdx,%rdi
2118	vpsrlq	$42,%xmm9,%xmm9
2119	xorq	%rbx,%r12
2120	shrdq	$6,%r14,%r14
2121	vpxor	%xmm10,%xmm11,%xmm11
2122	xorq	%r8,%rdi
2123	addq	%r12,%rcx
2124	vpxor	%xmm9,%xmm11,%xmm11
2125	shrdq	$14,%r13,%r13
2126	andq	%rdi,%r15
2127	vpaddq	%xmm11,%xmm2,%xmm2
2128	xorq	%rdx,%r14
2129	addq	%r13,%rcx
2130	vpaddq	-64(%rbp),%xmm2,%xmm10
2131	xorq	%r8,%r15
2132	shrdq	$28,%r14,%r14
2133	addq	%rcx,%r10
2134	addq	%r15,%rcx
2135	movq	%r10,%r13
2136	addq	%rcx,%r14
2137	vmovdqa	%xmm10,32(%rsp)
2138	vpalignr	$8,%xmm3,%xmm4,%xmm8
2139	shrdq	$23,%r13,%r13
2140	movq	%r14,%rcx
2141	vpalignr	$8,%xmm7,%xmm0,%xmm11
2142	movq	%r11,%r12
2143	shrdq	$5,%r14,%r14
2144	vpsrlq	$1,%xmm8,%xmm10
2145	xorq	%r10,%r13
2146	xorq	%rax,%r12
2147	vpaddq	%xmm11,%xmm3,%xmm3
2148	shrdq	$4,%r13,%r13
2149	xorq	%rcx,%r14
2150	vpsrlq	$7,%xmm8,%xmm11
2151	andq	%r10,%r12
2152	xorq	%r10,%r13
2153	vpsllq	$56,%xmm8,%xmm9
2154	addq	48(%rsp),%rbx
2155	movq	%rcx,%r15
2156	vpxor	%xmm10,%xmm11,%xmm8
2157	xorq	%rax,%r12
2158	shrdq	$6,%r14,%r14
2159	vpsrlq	$7,%xmm10,%xmm10
2160	xorq	%rdx,%r15
2161	addq	%r12,%rbx
2162	vpxor	%xmm9,%xmm8,%xmm8
2163	shrdq	$14,%r13,%r13
2164	andq	%r15,%rdi
2165	vpsllq	$7,%xmm9,%xmm9
2166	xorq	%rcx,%r14
2167	addq	%r13,%rbx
2168	vpxor	%xmm10,%xmm8,%xmm8
2169	xorq	%rdx,%rdi
2170	shrdq	$28,%r14,%r14
2171	vpsrlq	$6,%xmm2,%xmm11
2172	addq	%rbx,%r9
2173	addq	%rdi,%rbx
2174	vpxor	%xmm9,%xmm8,%xmm8
2175	movq	%r9,%r13
2176	addq	%rbx,%r14
2177	vpsllq	$3,%xmm2,%xmm10
2178	shrdq	$23,%r13,%r13
2179	movq	%r14,%rbx
2180	vpaddq	%xmm8,%xmm3,%xmm3
2181	movq	%r10,%r12
2182	shrdq	$5,%r14,%r14
2183	vpsrlq	$19,%xmm2,%xmm9
2184	xorq	%r9,%r13
2185	xorq	%r11,%r12
2186	vpxor	%xmm10,%xmm11,%xmm11
2187	shrdq	$4,%r13,%r13
2188	xorq	%rbx,%r14
2189	vpsllq	$42,%xmm10,%xmm10
2190	andq	%r9,%r12
2191	xorq	%r9,%r13
2192	vpxor	%xmm9,%xmm11,%xmm11
2193	addq	56(%rsp),%rax
2194	movq	%rbx,%rdi
2195	vpsrlq	$42,%xmm9,%xmm9
2196	xorq	%r11,%r12
2197	shrdq	$6,%r14,%r14
2198	vpxor	%xmm10,%xmm11,%xmm11
2199	xorq	%rcx,%rdi
2200	addq	%r12,%rax
2201	vpxor	%xmm9,%xmm11,%xmm11
2202	shrdq	$14,%r13,%r13
2203	andq	%rdi,%r15
2204	vpaddq	%xmm11,%xmm3,%xmm3
2205	xorq	%rbx,%r14
2206	addq	%r13,%rax
2207	vpaddq	-32(%rbp),%xmm3,%xmm10
2208	xorq	%rcx,%r15
2209	shrdq	$28,%r14,%r14
2210	addq	%rax,%r8
2211	addq	%r15,%rax
2212	movq	%r8,%r13
2213	addq	%rax,%r14
2214	vmovdqa	%xmm10,48(%rsp)
2215	vpalignr	$8,%xmm4,%xmm5,%xmm8
2216	shrdq	$23,%r13,%r13
2217	movq	%r14,%rax
2218	vpalignr	$8,%xmm0,%xmm1,%xmm11
2219	movq	%r9,%r12
2220	shrdq	$5,%r14,%r14
2221	vpsrlq	$1,%xmm8,%xmm10
2222	xorq	%r8,%r13
2223	xorq	%r10,%r12
2224	vpaddq	%xmm11,%xmm4,%xmm4
2225	shrdq	$4,%r13,%r13
2226	xorq	%rax,%r14
2227	vpsrlq	$7,%xmm8,%xmm11
2228	andq	%r8,%r12
2229	xorq	%r8,%r13
2230	vpsllq	$56,%xmm8,%xmm9
2231	addq	64(%rsp),%r11
2232	movq	%rax,%r15
2233	vpxor	%xmm10,%xmm11,%xmm8
2234	xorq	%r10,%r12
2235	shrdq	$6,%r14,%r14
2236	vpsrlq	$7,%xmm10,%xmm10
2237	xorq	%rbx,%r15
2238	addq	%r12,%r11
2239	vpxor	%xmm9,%xmm8,%xmm8
2240	shrdq	$14,%r13,%r13
2241	andq	%r15,%rdi
2242	vpsllq	$7,%xmm9,%xmm9
2243	xorq	%rax,%r14
2244	addq	%r13,%r11
2245	vpxor	%xmm10,%xmm8,%xmm8
2246	xorq	%rbx,%rdi
2247	shrdq	$28,%r14,%r14
2248	vpsrlq	$6,%xmm3,%xmm11
2249	addq	%r11,%rdx
2250	addq	%rdi,%r11
2251	vpxor	%xmm9,%xmm8,%xmm8
2252	movq	%rdx,%r13
2253	addq	%r11,%r14
2254	vpsllq	$3,%xmm3,%xmm10
2255	shrdq	$23,%r13,%r13
2256	movq	%r14,%r11
2257	vpaddq	%xmm8,%xmm4,%xmm4
2258	movq	%r8,%r12
2259	shrdq	$5,%r14,%r14
2260	vpsrlq	$19,%xmm3,%xmm9
2261	xorq	%rdx,%r13
2262	xorq	%r9,%r12
2263	vpxor	%xmm10,%xmm11,%xmm11
2264	shrdq	$4,%r13,%r13
2265	xorq	%r11,%r14
2266	vpsllq	$42,%xmm10,%xmm10
2267	andq	%rdx,%r12
2268	xorq	%rdx,%r13
2269	vpxor	%xmm9,%xmm11,%xmm11
2270	addq	72(%rsp),%r10
2271	movq	%r11,%rdi
2272	vpsrlq	$42,%xmm9,%xmm9
2273	xorq	%r9,%r12
2274	shrdq	$6,%r14,%r14
2275	vpxor	%xmm10,%xmm11,%xmm11
2276	xorq	%rax,%rdi
2277	addq	%r12,%r10
2278	vpxor	%xmm9,%xmm11,%xmm11
2279	shrdq	$14,%r13,%r13
2280	andq	%rdi,%r15
2281	vpaddq	%xmm11,%xmm4,%xmm4
2282	xorq	%r11,%r14
2283	addq	%r13,%r10
2284	vpaddq	0(%rbp),%xmm4,%xmm10
2285	xorq	%rax,%r15
2286	shrdq	$28,%r14,%r14
2287	addq	%r10,%rcx
2288	addq	%r15,%r10
2289	movq	%rcx,%r13
2290	addq	%r10,%r14
2291	vmovdqa	%xmm10,64(%rsp)
2292	vpalignr	$8,%xmm5,%xmm6,%xmm8
2293	shrdq	$23,%r13,%r13
2294	movq	%r14,%r10
2295	vpalignr	$8,%xmm1,%xmm2,%xmm11
2296	movq	%rdx,%r12
2297	shrdq	$5,%r14,%r14
2298	vpsrlq	$1,%xmm8,%xmm10
2299	xorq	%rcx,%r13
2300	xorq	%r8,%r12
2301	vpaddq	%xmm11,%xmm5,%xmm5
2302	shrdq	$4,%r13,%r13
2303	xorq	%r10,%r14
2304	vpsrlq	$7,%xmm8,%xmm11
2305	andq	%rcx,%r12
2306	xorq	%rcx,%r13
2307	vpsllq	$56,%xmm8,%xmm9
2308	addq	80(%rsp),%r9
2309	movq	%r10,%r15
2310	vpxor	%xmm10,%xmm11,%xmm8
2311	xorq	%r8,%r12
2312	shrdq	$6,%r14,%r14
2313	vpsrlq	$7,%xmm10,%xmm10
2314	xorq	%r11,%r15
2315	addq	%r12,%r9
2316	vpxor	%xmm9,%xmm8,%xmm8
2317	shrdq	$14,%r13,%r13
2318	andq	%r15,%rdi
2319	vpsllq	$7,%xmm9,%xmm9
2320	xorq	%r10,%r14
2321	addq	%r13,%r9
2322	vpxor	%xmm10,%xmm8,%xmm8
2323	xorq	%r11,%rdi
2324	shrdq	$28,%r14,%r14
2325	vpsrlq	$6,%xmm4,%xmm11
2326	addq	%r9,%rbx
2327	addq	%rdi,%r9
2328	vpxor	%xmm9,%xmm8,%xmm8
2329	movq	%rbx,%r13
2330	addq	%r9,%r14
2331	vpsllq	$3,%xmm4,%xmm10
2332	shrdq	$23,%r13,%r13
2333	movq	%r14,%r9
2334	vpaddq	%xmm8,%xmm5,%xmm5
2335	movq	%rcx,%r12
2336	shrdq	$5,%r14,%r14
2337	vpsrlq	$19,%xmm4,%xmm9
2338	xorq	%rbx,%r13
2339	xorq	%rdx,%r12
2340	vpxor	%xmm10,%xmm11,%xmm11
2341	shrdq	$4,%r13,%r13
2342	xorq	%r9,%r14
2343	vpsllq	$42,%xmm10,%xmm10
2344	andq	%rbx,%r12
2345	xorq	%rbx,%r13
2346	vpxor	%xmm9,%xmm11,%xmm11
2347	addq	88(%rsp),%r8
2348	movq	%r9,%rdi
2349	vpsrlq	$42,%xmm9,%xmm9
2350	xorq	%rdx,%r12
2351	shrdq	$6,%r14,%r14
2352	vpxor	%xmm10,%xmm11,%xmm11
2353	xorq	%r10,%rdi
2354	addq	%r12,%r8
2355	vpxor	%xmm9,%xmm11,%xmm11
2356	shrdq	$14,%r13,%r13
2357	andq	%rdi,%r15
2358	vpaddq	%xmm11,%xmm5,%xmm5
2359	xorq	%r9,%r14
2360	addq	%r13,%r8
2361	vpaddq	32(%rbp),%xmm5,%xmm10
2362	xorq	%r10,%r15
2363	shrdq	$28,%r14,%r14
2364	addq	%r8,%rax
2365	addq	%r15,%r8
2366	movq	%rax,%r13
2367	addq	%r8,%r14
2368	vmovdqa	%xmm10,80(%rsp)
2369	vpalignr	$8,%xmm6,%xmm7,%xmm8
2370	shrdq	$23,%r13,%r13
2371	movq	%r14,%r8
2372	vpalignr	$8,%xmm2,%xmm3,%xmm11
2373	movq	%rbx,%r12
2374	shrdq	$5,%r14,%r14
2375	vpsrlq	$1,%xmm8,%xmm10
2376	xorq	%rax,%r13
2377	xorq	%rcx,%r12
2378	vpaddq	%xmm11,%xmm6,%xmm6
2379	shrdq	$4,%r13,%r13
2380	xorq	%r8,%r14
2381	vpsrlq	$7,%xmm8,%xmm11
2382	andq	%rax,%r12
2383	xorq	%rax,%r13
2384	vpsllq	$56,%xmm8,%xmm9
2385	addq	96(%rsp),%rdx
2386	movq	%r8,%r15
2387	vpxor	%xmm10,%xmm11,%xmm8
2388	xorq	%rcx,%r12
2389	shrdq	$6,%r14,%r14
2390	vpsrlq	$7,%xmm10,%xmm10
2391	xorq	%r9,%r15
2392	addq	%r12,%rdx
2393	vpxor	%xmm9,%xmm8,%xmm8
2394	shrdq	$14,%r13,%r13
2395	andq	%r15,%rdi
2396	vpsllq	$7,%xmm9,%xmm9
2397	xorq	%r8,%r14
2398	addq	%r13,%rdx
2399	vpxor	%xmm10,%xmm8,%xmm8
2400	xorq	%r9,%rdi
2401	shrdq	$28,%r14,%r14
2402	vpsrlq	$6,%xmm5,%xmm11
2403	addq	%rdx,%r11
2404	addq	%rdi,%rdx
2405	vpxor	%xmm9,%xmm8,%xmm8
2406	movq	%r11,%r13
2407	addq	%rdx,%r14
2408	vpsllq	$3,%xmm5,%xmm10
2409	shrdq	$23,%r13,%r13
2410	movq	%r14,%rdx
2411	vpaddq	%xmm8,%xmm6,%xmm6
2412	movq	%rax,%r12
2413	shrdq	$5,%r14,%r14
2414	vpsrlq	$19,%xmm5,%xmm9
2415	xorq	%r11,%r13
2416	xorq	%rbx,%r12
2417	vpxor	%xmm10,%xmm11,%xmm11
2418	shrdq	$4,%r13,%r13
2419	xorq	%rdx,%r14
2420	vpsllq	$42,%xmm10,%xmm10
2421	andq	%r11,%r12
2422	xorq	%r11,%r13
2423	vpxor	%xmm9,%xmm11,%xmm11
2424	addq	104(%rsp),%rcx
2425	movq	%rdx,%rdi
2426	vpsrlq	$42,%xmm9,%xmm9
2427	xorq	%rbx,%r12
2428	shrdq	$6,%r14,%r14
2429	vpxor	%xmm10,%xmm11,%xmm11
2430	xorq	%r8,%rdi
2431	addq	%r12,%rcx
2432	vpxor	%xmm9,%xmm11,%xmm11
2433	shrdq	$14,%r13,%r13
2434	andq	%rdi,%r15
2435	vpaddq	%xmm11,%xmm6,%xmm6
2436	xorq	%rdx,%r14
2437	addq	%r13,%rcx
2438	vpaddq	64(%rbp),%xmm6,%xmm10
2439	xorq	%r8,%r15
2440	shrdq	$28,%r14,%r14
2441	addq	%rcx,%r10
2442	addq	%r15,%rcx
2443	movq	%r10,%r13
2444	addq	%rcx,%r14
2445	vmovdqa	%xmm10,96(%rsp)
2446	vpalignr	$8,%xmm7,%xmm0,%xmm8
2447	shrdq	$23,%r13,%r13
2448	movq	%r14,%rcx
2449	vpalignr	$8,%xmm3,%xmm4,%xmm11
2450	movq	%r11,%r12
2451	shrdq	$5,%r14,%r14
2452	vpsrlq	$1,%xmm8,%xmm10
2453	xorq	%r10,%r13
2454	xorq	%rax,%r12
2455	vpaddq	%xmm11,%xmm7,%xmm7
2456	shrdq	$4,%r13,%r13
2457	xorq	%rcx,%r14
2458	vpsrlq	$7,%xmm8,%xmm11
2459	andq	%r10,%r12
2460	xorq	%r10,%r13
2461	vpsllq	$56,%xmm8,%xmm9
2462	addq	112(%rsp),%rbx
2463	movq	%rcx,%r15
2464	vpxor	%xmm10,%xmm11,%xmm8
2465	xorq	%rax,%r12
2466	shrdq	$6,%r14,%r14
2467	vpsrlq	$7,%xmm10,%xmm10
2468	xorq	%rdx,%r15
2469	addq	%r12,%rbx
2470	vpxor	%xmm9,%xmm8,%xmm8
2471	shrdq	$14,%r13,%r13
2472	andq	%r15,%rdi
2473	vpsllq	$7,%xmm9,%xmm9
2474	xorq	%rcx,%r14
2475	addq	%r13,%rbx
2476	vpxor	%xmm10,%xmm8,%xmm8
2477	xorq	%rdx,%rdi
2478	shrdq	$28,%r14,%r14
2479	vpsrlq	$6,%xmm6,%xmm11
2480	addq	%rbx,%r9
2481	addq	%rdi,%rbx
2482	vpxor	%xmm9,%xmm8,%xmm8
2483	movq	%r9,%r13
2484	addq	%rbx,%r14
2485	vpsllq	$3,%xmm6,%xmm10
2486	shrdq	$23,%r13,%r13
2487	movq	%r14,%rbx
2488	vpaddq	%xmm8,%xmm7,%xmm7
2489	movq	%r10,%r12
2490	shrdq	$5,%r14,%r14
2491	vpsrlq	$19,%xmm6,%xmm9
2492	xorq	%r9,%r13
2493	xorq	%r11,%r12
2494	vpxor	%xmm10,%xmm11,%xmm11
2495	shrdq	$4,%r13,%r13
2496	xorq	%rbx,%r14
2497	vpsllq	$42,%xmm10,%xmm10
2498	andq	%r9,%r12
2499	xorq	%r9,%r13
2500	vpxor	%xmm9,%xmm11,%xmm11
2501	addq	120(%rsp),%rax
2502	movq	%rbx,%rdi
2503	vpsrlq	$42,%xmm9,%xmm9
2504	xorq	%r11,%r12
2505	shrdq	$6,%r14,%r14
2506	vpxor	%xmm10,%xmm11,%xmm11
2507	xorq	%rcx,%rdi
2508	addq	%r12,%rax
2509	vpxor	%xmm9,%xmm11,%xmm11
2510	shrdq	$14,%r13,%r13
2511	andq	%rdi,%r15
2512	vpaddq	%xmm11,%xmm7,%xmm7
2513	xorq	%rbx,%r14
2514	addq	%r13,%rax
2515	vpaddq	96(%rbp),%xmm7,%xmm10
2516	xorq	%rcx,%r15
2517	shrdq	$28,%r14,%r14
2518	addq	%rax,%r8
2519	addq	%r15,%rax
2520	movq	%r8,%r13
2521	addq	%rax,%r14
2522	vmovdqa	%xmm10,112(%rsp)
2523	cmpb	$0,135(%rbp)
2524	jne	.Lavx_00_47
2525	shrdq	$23,%r13,%r13
2526	movq	%r14,%rax
2527	movq	%r9,%r12
2528	shrdq	$5,%r14,%r14
2529	xorq	%r8,%r13
2530	xorq	%r10,%r12
2531	shrdq	$4,%r13,%r13
2532	xorq	%rax,%r14
2533	andq	%r8,%r12
2534	xorq	%r8,%r13
2535	addq	0(%rsp),%r11
2536	movq	%rax,%r15
2537	xorq	%r10,%r12
2538	shrdq	$6,%r14,%r14
2539	xorq	%rbx,%r15
2540	addq	%r12,%r11
2541	shrdq	$14,%r13,%r13
2542	andq	%r15,%rdi
2543	xorq	%rax,%r14
2544	addq	%r13,%r11
2545	xorq	%rbx,%rdi
2546	shrdq	$28,%r14,%r14
2547	addq	%r11,%rdx
2548	addq	%rdi,%r11
2549	movq	%rdx,%r13
2550	addq	%r11,%r14
2551	shrdq	$23,%r13,%r13
2552	movq	%r14,%r11
2553	movq	%r8,%r12
2554	shrdq	$5,%r14,%r14
2555	xorq	%rdx,%r13
2556	xorq	%r9,%r12
2557	shrdq	$4,%r13,%r13
2558	xorq	%r11,%r14
2559	andq	%rdx,%r12
2560	xorq	%rdx,%r13
2561	addq	8(%rsp),%r10
2562	movq	%r11,%rdi
2563	xorq	%r9,%r12
2564	shrdq	$6,%r14,%r14
2565	xorq	%rax,%rdi
2566	addq	%r12,%r10
2567	shrdq	$14,%r13,%r13
2568	andq	%rdi,%r15
2569	xorq	%r11,%r14
2570	addq	%r13,%r10
2571	xorq	%rax,%r15
2572	shrdq	$28,%r14,%r14
2573	addq	%r10,%rcx
2574	addq	%r15,%r10
2575	movq	%rcx,%r13
2576	addq	%r10,%r14
2577	shrdq	$23,%r13,%r13
2578	movq	%r14,%r10
2579	movq	%rdx,%r12
2580	shrdq	$5,%r14,%r14
2581	xorq	%rcx,%r13
2582	xorq	%r8,%r12
2583	shrdq	$4,%r13,%r13
2584	xorq	%r10,%r14
2585	andq	%rcx,%r12
2586	xorq	%rcx,%r13
2587	addq	16(%rsp),%r9
2588	movq	%r10,%r15
2589	xorq	%r8,%r12
2590	shrdq	$6,%r14,%r14
2591	xorq	%r11,%r15
2592	addq	%r12,%r9
2593	shrdq	$14,%r13,%r13
2594	andq	%r15,%rdi
2595	xorq	%r10,%r14
2596	addq	%r13,%r9
2597	xorq	%r11,%rdi
2598	shrdq	$28,%r14,%r14
2599	addq	%r9,%rbx
2600	addq	%rdi,%r9
2601	movq	%rbx,%r13
2602	addq	%r9,%r14
2603	shrdq	$23,%r13,%r13
2604	movq	%r14,%r9
2605	movq	%rcx,%r12
2606	shrdq	$5,%r14,%r14
2607	xorq	%rbx,%r13
2608	xorq	%rdx,%r12
2609	shrdq	$4,%r13,%r13
2610	xorq	%r9,%r14
2611	andq	%rbx,%r12
2612	xorq	%rbx,%r13
2613	addq	24(%rsp),%r8
2614	movq	%r9,%rdi
2615	xorq	%rdx,%r12
2616	shrdq	$6,%r14,%r14
2617	xorq	%r10,%rdi
2618	addq	%r12,%r8
2619	shrdq	$14,%r13,%r13
2620	andq	%rdi,%r15
2621	xorq	%r9,%r14
2622	addq	%r13,%r8
2623	xorq	%r10,%r15
2624	shrdq	$28,%r14,%r14
2625	addq	%r8,%rax
2626	addq	%r15,%r8
2627	movq	%rax,%r13
2628	addq	%r8,%r14
2629	shrdq	$23,%r13,%r13
2630	movq	%r14,%r8
2631	movq	%rbx,%r12
2632	shrdq	$5,%r14,%r14
2633	xorq	%rax,%r13
2634	xorq	%rcx,%r12
2635	shrdq	$4,%r13,%r13
2636	xorq	%r8,%r14
2637	andq	%rax,%r12
2638	xorq	%rax,%r13
2639	addq	32(%rsp),%rdx
2640	movq	%r8,%r15
2641	xorq	%rcx,%r12
2642	shrdq	$6,%r14,%r14
2643	xorq	%r9,%r15
2644	addq	%r12,%rdx
2645	shrdq	$14,%r13,%r13
2646	andq	%r15,%rdi
2647	xorq	%r8,%r14
2648	addq	%r13,%rdx
2649	xorq	%r9,%rdi
2650	shrdq	$28,%r14,%r14
2651	addq	%rdx,%r11
2652	addq	%rdi,%rdx
2653	movq	%r11,%r13
2654	addq	%rdx,%r14
2655	shrdq	$23,%r13,%r13
2656	movq	%r14,%rdx
2657	movq	%rax,%r12
2658	shrdq	$5,%r14,%r14
2659	xorq	%r11,%r13
2660	xorq	%rbx,%r12
2661	shrdq	$4,%r13,%r13
2662	xorq	%rdx,%r14
2663	andq	%r11,%r12
2664	xorq	%r11,%r13
2665	addq	40(%rsp),%rcx
2666	movq	%rdx,%rdi
2667	xorq	%rbx,%r12
2668	shrdq	$6,%r14,%r14
2669	xorq	%r8,%rdi
2670	addq	%r12,%rcx
2671	shrdq	$14,%r13,%r13
2672	andq	%rdi,%r15
2673	xorq	%rdx,%r14
2674	addq	%r13,%rcx
2675	xorq	%r8,%r15
2676	shrdq	$28,%r14,%r14
2677	addq	%rcx,%r10
2678	addq	%r15,%rcx
2679	movq	%r10,%r13
2680	addq	%rcx,%r14
2681	shrdq	$23,%r13,%r13
2682	movq	%r14,%rcx
2683	movq	%r11,%r12
2684	shrdq	$5,%r14,%r14
2685	xorq	%r10,%r13
2686	xorq	%rax,%r12
2687	shrdq	$4,%r13,%r13
2688	xorq	%rcx,%r14
2689	andq	%r10,%r12
2690	xorq	%r10,%r13
2691	addq	48(%rsp),%rbx
2692	movq	%rcx,%r15
2693	xorq	%rax,%r12
2694	shrdq	$6,%r14,%r14
2695	xorq	%rdx,%r15
2696	addq	%r12,%rbx
2697	shrdq	$14,%r13,%r13
2698	andq	%r15,%rdi
2699	xorq	%rcx,%r14
2700	addq	%r13,%rbx
2701	xorq	%rdx,%rdi
2702	shrdq	$28,%r14,%r14
2703	addq	%rbx,%r9
2704	addq	%rdi,%rbx
2705	movq	%r9,%r13
2706	addq	%rbx,%r14
2707	shrdq	$23,%r13,%r13
2708	movq	%r14,%rbx
2709	movq	%r10,%r12
2710	shrdq	$5,%r14,%r14
2711	xorq	%r9,%r13
2712	xorq	%r11,%r12
2713	shrdq	$4,%r13,%r13
2714	xorq	%rbx,%r14
2715	andq	%r9,%r12
2716	xorq	%r9,%r13
2717	addq	56(%rsp),%rax
2718	movq	%rbx,%rdi
2719	xorq	%r11,%r12
2720	shrdq	$6,%r14,%r14
2721	xorq	%rcx,%rdi
2722	addq	%r12,%rax
2723	shrdq	$14,%r13,%r13
2724	andq	%rdi,%r15
2725	xorq	%rbx,%r14
2726	addq	%r13,%rax
2727	xorq	%rcx,%r15
2728	shrdq	$28,%r14,%r14
2729	addq	%rax,%r8
2730	addq	%r15,%rax
2731	movq	%r8,%r13
2732	addq	%rax,%r14
2733	shrdq	$23,%r13,%r13
2734	movq	%r14,%rax
2735	movq	%r9,%r12
2736	shrdq	$5,%r14,%r14
2737	xorq	%r8,%r13
2738	xorq	%r10,%r12
2739	shrdq	$4,%r13,%r13
2740	xorq	%rax,%r14
2741	andq	%r8,%r12
2742	xorq	%r8,%r13
2743	addq	64(%rsp),%r11
2744	movq	%rax,%r15
2745	xorq	%r10,%r12
2746	shrdq	$6,%r14,%r14
2747	xorq	%rbx,%r15
2748	addq	%r12,%r11
2749	shrdq	$14,%r13,%r13
2750	andq	%r15,%rdi
2751	xorq	%rax,%r14
2752	addq	%r13,%r11
2753	xorq	%rbx,%rdi
2754	shrdq	$28,%r14,%r14
2755	addq	%r11,%rdx
2756	addq	%rdi,%r11
2757	movq	%rdx,%r13
2758	addq	%r11,%r14
2759	shrdq	$23,%r13,%r13
2760	movq	%r14,%r11
2761	movq	%r8,%r12
2762	shrdq	$5,%r14,%r14
2763	xorq	%rdx,%r13
2764	xorq	%r9,%r12
2765	shrdq	$4,%r13,%r13
2766	xorq	%r11,%r14
2767	andq	%rdx,%r12
2768	xorq	%rdx,%r13
2769	addq	72(%rsp),%r10
2770	movq	%r11,%rdi
2771	xorq	%r9,%r12
2772	shrdq	$6,%r14,%r14
2773	xorq	%rax,%rdi
2774	addq	%r12,%r10
2775	shrdq	$14,%r13,%r13
2776	andq	%rdi,%r15
2777	xorq	%r11,%r14
2778	addq	%r13,%r10
2779	xorq	%rax,%r15
2780	shrdq	$28,%r14,%r14
2781	addq	%r10,%rcx
2782	addq	%r15,%r10
2783	movq	%rcx,%r13
2784	addq	%r10,%r14
2785	shrdq	$23,%r13,%r13
2786	movq	%r14,%r10
2787	movq	%rdx,%r12
2788	shrdq	$5,%r14,%r14
2789	xorq	%rcx,%r13
2790	xorq	%r8,%r12
2791	shrdq	$4,%r13,%r13
2792	xorq	%r10,%r14
2793	andq	%rcx,%r12
2794	xorq	%rcx,%r13
2795	addq	80(%rsp),%r9
2796	movq	%r10,%r15
2797	xorq	%r8,%r12
2798	shrdq	$6,%r14,%r14
2799	xorq	%r11,%r15
2800	addq	%r12,%r9
2801	shrdq	$14,%r13,%r13
2802	andq	%r15,%rdi
2803	xorq	%r10,%r14
2804	addq	%r13,%r9
2805	xorq	%r11,%rdi
2806	shrdq	$28,%r14,%r14
2807	addq	%r9,%rbx
2808	addq	%rdi,%r9
2809	movq	%rbx,%r13
2810	addq	%r9,%r14
2811	shrdq	$23,%r13,%r13
2812	movq	%r14,%r9
2813	movq	%rcx,%r12
2814	shrdq	$5,%r14,%r14
2815	xorq	%rbx,%r13
2816	xorq	%rdx,%r12
2817	shrdq	$4,%r13,%r13
2818	xorq	%r9,%r14
2819	andq	%rbx,%r12
2820	xorq	%rbx,%r13
2821	addq	88(%rsp),%r8
2822	movq	%r9,%rdi
2823	xorq	%rdx,%r12
2824	shrdq	$6,%r14,%r14
2825	xorq	%r10,%rdi
2826	addq	%r12,%r8
2827	shrdq	$14,%r13,%r13
2828	andq	%rdi,%r15
2829	xorq	%r9,%r14
2830	addq	%r13,%r8
2831	xorq	%r10,%r15
2832	shrdq	$28,%r14,%r14
2833	addq	%r8,%rax
2834	addq	%r15,%r8
2835	movq	%rax,%r13
2836	addq	%r8,%r14
2837	shrdq	$23,%r13,%r13
2838	movq	%r14,%r8
2839	movq	%rbx,%r12
2840	shrdq	$5,%r14,%r14
2841	xorq	%rax,%r13
2842	xorq	%rcx,%r12
2843	shrdq	$4,%r13,%r13
2844	xorq	%r8,%r14
2845	andq	%rax,%r12
2846	xorq	%rax,%r13
2847	addq	96(%rsp),%rdx
2848	movq	%r8,%r15
2849	xorq	%rcx,%r12
2850	shrdq	$6,%r14,%r14
2851	xorq	%r9,%r15
2852	addq	%r12,%rdx
2853	shrdq	$14,%r13,%r13
2854	andq	%r15,%rdi
2855	xorq	%r8,%r14
2856	addq	%r13,%rdx
2857	xorq	%r9,%rdi
2858	shrdq	$28,%r14,%r14
2859	addq	%rdx,%r11
2860	addq	%rdi,%rdx
2861	movq	%r11,%r13
2862	addq	%rdx,%r14
2863	shrdq	$23,%r13,%r13
2864	movq	%r14,%rdx
2865	movq	%rax,%r12
2866	shrdq	$5,%r14,%r14
2867	xorq	%r11,%r13
2868	xorq	%rbx,%r12
2869	shrdq	$4,%r13,%r13
2870	xorq	%rdx,%r14
2871	andq	%r11,%r12
2872	xorq	%r11,%r13
2873	addq	104(%rsp),%rcx
2874	movq	%rdx,%rdi
2875	xorq	%rbx,%r12
2876	shrdq	$6,%r14,%r14
2877	xorq	%r8,%rdi
2878	addq	%r12,%rcx
2879	shrdq	$14,%r13,%r13
2880	andq	%rdi,%r15
2881	xorq	%rdx,%r14
2882	addq	%r13,%rcx
2883	xorq	%r8,%r15
2884	shrdq	$28,%r14,%r14
2885	addq	%rcx,%r10
2886	addq	%r15,%rcx
2887	movq	%r10,%r13
2888	addq	%rcx,%r14
2889	shrdq	$23,%r13,%r13
2890	movq	%r14,%rcx
2891	movq	%r11,%r12
2892	shrdq	$5,%r14,%r14
2893	xorq	%r10,%r13
2894	xorq	%rax,%r12
2895	shrdq	$4,%r13,%r13
2896	xorq	%rcx,%r14
2897	andq	%r10,%r12
2898	xorq	%r10,%r13
2899	addq	112(%rsp),%rbx
2900	movq	%rcx,%r15
2901	xorq	%rax,%r12
2902	shrdq	$6,%r14,%r14
2903	xorq	%rdx,%r15
2904	addq	%r12,%rbx
2905	shrdq	$14,%r13,%r13
2906	andq	%r15,%rdi
2907	xorq	%rcx,%r14
2908	addq	%r13,%rbx
2909	xorq	%rdx,%rdi
2910	shrdq	$28,%r14,%r14
2911	addq	%rbx,%r9
2912	addq	%rdi,%rbx
2913	movq	%r9,%r13
2914	addq	%rbx,%r14
2915	shrdq	$23,%r13,%r13
2916	movq	%r14,%rbx
2917	movq	%r10,%r12
2918	shrdq	$5,%r14,%r14
2919	xorq	%r9,%r13
2920	xorq	%r11,%r12
2921	shrdq	$4,%r13,%r13
2922	xorq	%rbx,%r14
2923	andq	%r9,%r12
2924	xorq	%r9,%r13
2925	addq	120(%rsp),%rax
2926	movq	%rbx,%rdi
2927	xorq	%r11,%r12
2928	shrdq	$6,%r14,%r14
2929	xorq	%rcx,%rdi
2930	addq	%r12,%rax
2931	shrdq	$14,%r13,%r13
2932	andq	%rdi,%r15
2933	xorq	%rbx,%r14
2934	addq	%r13,%rax
2935	xorq	%rcx,%r15
2936	shrdq	$28,%r14,%r14
2937	addq	%rax,%r8
2938	addq	%r15,%rax
2939	movq	%r8,%r13
2940	addq	%rax,%r14
2941	movq	128+0(%rsp),%rdi
2942	movq	%r14,%rax
2943
2944	addq	0(%rdi),%rax
2945	leaq	128(%rsi),%rsi
2946	addq	8(%rdi),%rbx
2947	addq	16(%rdi),%rcx
2948	addq	24(%rdi),%rdx
2949	addq	32(%rdi),%r8
2950	addq	40(%rdi),%r9
2951	addq	48(%rdi),%r10
2952	addq	56(%rdi),%r11
2953
2954	cmpq	128+16(%rsp),%rsi
2955
2956	movq	%rax,0(%rdi)
2957	movq	%rbx,8(%rdi)
2958	movq	%rcx,16(%rdi)
2959	movq	%rdx,24(%rdi)
2960	movq	%r8,32(%rdi)
2961	movq	%r9,40(%rdi)
2962	movq	%r10,48(%rdi)
2963	movq	%r11,56(%rdi)
2964	jb	.Lloop_avx
2965
2966	movq	152(%rsp),%rsi
2967.cfi_def_cfa	%rsi,8
2968	vzeroupper
2969	movq	-48(%rsi),%r15
2970.cfi_restore	%r15
2971	movq	-40(%rsi),%r14
2972.cfi_restore	%r14
2973	movq	-32(%rsi),%r13
2974.cfi_restore	%r13
2975	movq	-24(%rsi),%r12
2976.cfi_restore	%r12
2977	movq	-16(%rsi),%rbp
2978.cfi_restore	%rbp
2979	movq	-8(%rsi),%rbx
2980.cfi_restore	%rbx
2981	leaq	(%rsi),%rsp
2982.cfi_def_cfa_register	%rsp
2983.Lepilogue_avx:
2984	ret
2985.cfi_endproc
2986.size	sha512_block_data_order_avx,.-sha512_block_data_order_avx
2987#endif
2988