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