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