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