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