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