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