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