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