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