]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - secure/lib/libcrypto/amd64/aesni-sha1-x86_64.S
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / secure / lib / libcrypto / amd64 / aesni-sha1-x86_64.S
1         # $FreeBSD$
2 .text   
3
4
5 .globl  aesni_cbc_sha1_enc
6 .type   aesni_cbc_sha1_enc,@function
7 .align  16
8 aesni_cbc_sha1_enc:
9
10         movl    OPENSSL_ia32cap_P+0(%rip),%r10d
11         movl    OPENSSL_ia32cap_P+4(%rip),%r11d
12         jmp     aesni_cbc_sha1_enc_ssse3
13         .byte   0xf3,0xc3
14 .size   aesni_cbc_sha1_enc,.-aesni_cbc_sha1_enc
15 .type   aesni_cbc_sha1_enc_ssse3,@function
16 .align  16
17 aesni_cbc_sha1_enc_ssse3:
18         movq    8(%rsp),%r10
19
20
21         pushq   %rbx
22         pushq   %rbp
23         pushq   %r12
24         pushq   %r13
25         pushq   %r14
26         pushq   %r15
27         leaq    -104(%rsp),%rsp
28
29
30         movq    %rdi,%r12
31         movq    %rsi,%r13
32         movq    %rdx,%r14
33         movq    %rcx,%r15
34         movdqu  (%r8),%xmm11
35         movq    %r8,88(%rsp)
36         shlq    $6,%r14
37         subq    %r12,%r13
38         movl    240(%r15),%r8d
39         addq    %r10,%r14
40
41         leaq    K_XX_XX(%rip),%r11
42         movl    0(%r9),%eax
43         movl    4(%r9),%ebx
44         movl    8(%r9),%ecx
45         movl    12(%r9),%edx
46         movl    %ebx,%esi
47         movl    16(%r9),%ebp
48
49         movdqa  64(%r11),%xmm6
50         movdqa  0(%r11),%xmm9
51         movdqu  0(%r10),%xmm0
52         movdqu  16(%r10),%xmm1
53         movdqu  32(%r10),%xmm2
54         movdqu  48(%r10),%xmm3
55 .byte   102,15,56,0,198
56         addq    $64,%r10
57 .byte   102,15,56,0,206
58 .byte   102,15,56,0,214
59 .byte   102,15,56,0,222
60         paddd   %xmm9,%xmm0
61         paddd   %xmm9,%xmm1
62         paddd   %xmm9,%xmm2
63         movdqa  %xmm0,0(%rsp)
64         psubd   %xmm9,%xmm0
65         movdqa  %xmm1,16(%rsp)
66         psubd   %xmm9,%xmm1
67         movdqa  %xmm2,32(%rsp)
68         psubd   %xmm9,%xmm2
69         movups  (%r15),%xmm13
70         movups  16(%r15),%xmm14
71         jmp     .Loop_ssse3
72 .align  16
73 .Loop_ssse3:
74         movdqa  %xmm1,%xmm4
75         addl    0(%rsp),%ebp
76         movups  0(%r12),%xmm12
77         xorps   %xmm13,%xmm12
78         xorps   %xmm12,%xmm11
79 .byte   102,69,15,56,220,222
80         movups  32(%r15),%xmm15
81         xorl    %edx,%ecx
82         movdqa  %xmm3,%xmm8
83 .byte   102,15,58,15,224,8
84         movl    %eax,%edi
85         roll    $5,%eax
86         paddd   %xmm3,%xmm9
87         andl    %ecx,%esi
88         xorl    %edx,%ecx
89         psrldq  $4,%xmm8
90         xorl    %edx,%esi
91         addl    %eax,%ebp
92         pxor    %xmm0,%xmm4
93         rorl    $2,%ebx
94         addl    %esi,%ebp
95         pxor    %xmm2,%xmm8
96         addl    4(%rsp),%edx
97         xorl    %ecx,%ebx
98         movl    %ebp,%esi
99         roll    $5,%ebp
100         pxor    %xmm8,%xmm4
101         andl    %ebx,%edi
102         xorl    %ecx,%ebx
103         movdqa  %xmm9,48(%rsp)
104         xorl    %ecx,%edi
105 .byte   102,69,15,56,220,223
106         movups  48(%r15),%xmm14
107         addl    %ebp,%edx
108         movdqa  %xmm4,%xmm10
109         movdqa  %xmm4,%xmm8
110         rorl    $7,%eax
111         addl    %edi,%edx
112         addl    8(%rsp),%ecx
113         xorl    %ebx,%eax
114         pslldq  $12,%xmm10
115         paddd   %xmm4,%xmm4
116         movl    %edx,%edi
117         roll    $5,%edx
118         andl    %eax,%esi
119         xorl    %ebx,%eax
120         psrld   $31,%xmm8
121         xorl    %ebx,%esi
122         addl    %edx,%ecx
123         movdqa  %xmm10,%xmm9
124         rorl    $7,%ebp
125         addl    %esi,%ecx
126         psrld   $30,%xmm10
127         por     %xmm8,%xmm4
128         addl    12(%rsp),%ebx
129         xorl    %eax,%ebp
130         movl    %ecx,%esi
131         roll    $5,%ecx
132 .byte   102,69,15,56,220,222
133         movups  64(%r15),%xmm15
134         pslld   $2,%xmm9
135         pxor    %xmm10,%xmm4
136         andl    %ebp,%edi
137         xorl    %eax,%ebp
138         movdqa  0(%r11),%xmm10
139         xorl    %eax,%edi
140         addl    %ecx,%ebx
141         pxor    %xmm9,%xmm4
142         rorl    $7,%edx
143         addl    %edi,%ebx
144         movdqa  %xmm2,%xmm5
145         addl    16(%rsp),%eax
146         xorl    %ebp,%edx
147         movdqa  %xmm4,%xmm9
148 .byte   102,15,58,15,233,8
149         movl    %ebx,%edi
150         roll    $5,%ebx
151         paddd   %xmm4,%xmm10
152         andl    %edx,%esi
153         xorl    %ebp,%edx
154         psrldq  $4,%xmm9
155         xorl    %ebp,%esi
156         addl    %ebx,%eax
157         pxor    %xmm1,%xmm5
158         rorl    $7,%ecx
159         addl    %esi,%eax
160         pxor    %xmm3,%xmm9
161         addl    20(%rsp),%ebp
162 .byte   102,69,15,56,220,223
163         movups  80(%r15),%xmm14
164         xorl    %edx,%ecx
165         movl    %eax,%esi
166         roll    $5,%eax
167         pxor    %xmm9,%xmm5
168         andl    %ecx,%edi
169         xorl    %edx,%ecx
170         movdqa  %xmm10,0(%rsp)
171         xorl    %edx,%edi
172         addl    %eax,%ebp
173         movdqa  %xmm5,%xmm8
174         movdqa  %xmm5,%xmm9
175         rorl    $7,%ebx
176         addl    %edi,%ebp
177         addl    24(%rsp),%edx
178         xorl    %ecx,%ebx
179         pslldq  $12,%xmm8
180         paddd   %xmm5,%xmm5
181         movl    %ebp,%edi
182         roll    $5,%ebp
183         andl    %ebx,%esi
184         xorl    %ecx,%ebx
185         psrld   $31,%xmm9
186         xorl    %ecx,%esi
187 .byte   102,69,15,56,220,222
188         movups  96(%r15),%xmm15
189         addl    %ebp,%edx
190         movdqa  %xmm8,%xmm10
191         rorl    $7,%eax
192         addl    %esi,%edx
193         psrld   $30,%xmm8
194         por     %xmm9,%xmm5
195         addl    28(%rsp),%ecx
196         xorl    %ebx,%eax
197         movl    %edx,%esi
198         roll    $5,%edx
199         pslld   $2,%xmm10
200         pxor    %xmm8,%xmm5
201         andl    %eax,%edi
202         xorl    %ebx,%eax
203         movdqa  16(%r11),%xmm8
204         xorl    %ebx,%edi
205         addl    %edx,%ecx
206         pxor    %xmm10,%xmm5
207         rorl    $7,%ebp
208         addl    %edi,%ecx
209         movdqa  %xmm3,%xmm6
210         addl    32(%rsp),%ebx
211         xorl    %eax,%ebp
212         movdqa  %xmm5,%xmm10
213 .byte   102,15,58,15,242,8
214         movl    %ecx,%edi
215         roll    $5,%ecx
216 .byte   102,69,15,56,220,223
217         movups  112(%r15),%xmm14
218         paddd   %xmm5,%xmm8
219         andl    %ebp,%esi
220         xorl    %eax,%ebp
221         psrldq  $4,%xmm10
222         xorl    %eax,%esi
223         addl    %ecx,%ebx
224         pxor    %xmm2,%xmm6
225         rorl    $7,%edx
226         addl    %esi,%ebx
227         pxor    %xmm4,%xmm10
228         addl    36(%rsp),%eax
229         xorl    %ebp,%edx
230         movl    %ebx,%esi
231         roll    $5,%ebx
232         pxor    %xmm10,%xmm6
233         andl    %edx,%edi
234         xorl    %ebp,%edx
235         movdqa  %xmm8,16(%rsp)
236         xorl    %ebp,%edi
237         addl    %ebx,%eax
238         movdqa  %xmm6,%xmm9
239         movdqa  %xmm6,%xmm10
240         rorl    $7,%ecx
241         addl    %edi,%eax
242         addl    40(%rsp),%ebp
243 .byte   102,69,15,56,220,222
244         movups  128(%r15),%xmm15
245         xorl    %edx,%ecx
246         pslldq  $12,%xmm9
247         paddd   %xmm6,%xmm6
248         movl    %eax,%edi
249         roll    $5,%eax
250         andl    %ecx,%esi
251         xorl    %edx,%ecx
252         psrld   $31,%xmm10
253         xorl    %edx,%esi
254         addl    %eax,%ebp
255         movdqa  %xmm9,%xmm8
256         rorl    $7,%ebx
257         addl    %esi,%ebp
258         psrld   $30,%xmm9
259         por     %xmm10,%xmm6
260         addl    44(%rsp),%edx
261         xorl    %ecx,%ebx
262         movl    %ebp,%esi
263         roll    $5,%ebp
264         pslld   $2,%xmm8
265         pxor    %xmm9,%xmm6
266         andl    %ebx,%edi
267         xorl    %ecx,%ebx
268         movdqa  16(%r11),%xmm9
269         xorl    %ecx,%edi
270 .byte   102,69,15,56,220,223
271         movups  144(%r15),%xmm14
272         addl    %ebp,%edx
273         pxor    %xmm8,%xmm6
274         rorl    $7,%eax
275         addl    %edi,%edx
276         movdqa  %xmm4,%xmm7
277         addl    48(%rsp),%ecx
278         xorl    %ebx,%eax
279         movdqa  %xmm6,%xmm8
280 .byte   102,15,58,15,251,8
281         movl    %edx,%edi
282         roll    $5,%edx
283         paddd   %xmm6,%xmm9
284         andl    %eax,%esi
285         xorl    %ebx,%eax
286         psrldq  $4,%xmm8
287         xorl    %ebx,%esi
288         addl    %edx,%ecx
289         pxor    %xmm3,%xmm7
290         rorl    $7,%ebp
291         addl    %esi,%ecx
292         pxor    %xmm5,%xmm8
293         addl    52(%rsp),%ebx
294         xorl    %eax,%ebp
295         movl    %ecx,%esi
296         roll    $5,%ecx
297 .byte   102,69,15,56,220,222
298         movups  160(%r15),%xmm15
299         pxor    %xmm8,%xmm7
300         andl    %ebp,%edi
301         xorl    %eax,%ebp
302         movdqa  %xmm9,32(%rsp)
303         xorl    %eax,%edi
304         addl    %ecx,%ebx
305         movdqa  %xmm7,%xmm10
306         movdqa  %xmm7,%xmm8
307         rorl    $7,%edx
308         addl    %edi,%ebx
309         addl    56(%rsp),%eax
310         xorl    %ebp,%edx
311         pslldq  $12,%xmm10
312         paddd   %xmm7,%xmm7
313         movl    %ebx,%edi
314         roll    $5,%ebx
315         andl    %edx,%esi
316         xorl    %ebp,%edx
317         psrld   $31,%xmm8
318         xorl    %ebp,%esi
319         addl    %ebx,%eax
320         movdqa  %xmm10,%xmm9
321         rorl    $7,%ecx
322         addl    %esi,%eax
323         psrld   $30,%xmm10
324         por     %xmm8,%xmm7
325         addl    60(%rsp),%ebp
326         cmpl    $11,%r8d
327         jb      .Laesenclast1
328         movups  176(%r15),%xmm14
329 .byte   102,69,15,56,220,223
330         movups  192(%r15),%xmm15
331 .byte   102,69,15,56,220,222
332         je      .Laesenclast1
333         movups  208(%r15),%xmm14
334 .byte   102,69,15,56,220,223
335         movups  224(%r15),%xmm15
336 .byte   102,69,15,56,220,222
337 .Laesenclast1:
338 .byte   102,69,15,56,221,223
339         movups  16(%r15),%xmm14
340         xorl    %edx,%ecx
341         movl    %eax,%esi
342         roll    $5,%eax
343         pslld   $2,%xmm9
344         pxor    %xmm10,%xmm7
345         andl    %ecx,%edi
346         xorl    %edx,%ecx
347         movdqa  16(%r11),%xmm10
348         xorl    %edx,%edi
349         addl    %eax,%ebp
350         pxor    %xmm9,%xmm7
351         rorl    $7,%ebx
352         addl    %edi,%ebp
353         movdqa  %xmm7,%xmm9
354         addl    0(%rsp),%edx
355         pxor    %xmm4,%xmm0
356 .byte   102,68,15,58,15,206,8
357         xorl    %ecx,%ebx
358         movl    %ebp,%edi
359         roll    $5,%ebp
360         pxor    %xmm1,%xmm0
361         andl    %ebx,%esi
362         xorl    %ecx,%ebx
363         movdqa  %xmm10,%xmm8
364         paddd   %xmm7,%xmm10
365         xorl    %ecx,%esi
366         movups  16(%r12),%xmm12
367         xorps   %xmm13,%xmm12
368         movups  %xmm11,0(%r13,%r12,1)
369         xorps   %xmm12,%xmm11
370 .byte   102,69,15,56,220,222
371         movups  32(%r15),%xmm15
372         addl    %ebp,%edx
373         pxor    %xmm9,%xmm0
374         rorl    $7,%eax
375         addl    %esi,%edx
376         addl    4(%rsp),%ecx
377         xorl    %ebx,%eax
378         movdqa  %xmm0,%xmm9
379         movdqa  %xmm10,48(%rsp)
380         movl    %edx,%esi
381         roll    $5,%edx
382         andl    %eax,%edi
383         xorl    %ebx,%eax
384         pslld   $2,%xmm0
385         xorl    %ebx,%edi
386         addl    %edx,%ecx
387         psrld   $30,%xmm9
388         rorl    $7,%ebp
389         addl    %edi,%ecx
390         addl    8(%rsp),%ebx
391         xorl    %eax,%ebp
392         movl    %ecx,%edi
393         roll    $5,%ecx
394 .byte   102,69,15,56,220,223
395         movups  48(%r15),%xmm14
396         por     %xmm9,%xmm0
397         andl    %ebp,%esi
398         xorl    %eax,%ebp
399         movdqa  %xmm0,%xmm10
400         xorl    %eax,%esi
401         addl    %ecx,%ebx
402         rorl    $7,%edx
403         addl    %esi,%ebx
404         addl    12(%rsp),%eax
405         xorl    %ebp,%edx
406         movl    %ebx,%esi
407         roll    $5,%ebx
408         andl    %edx,%edi
409         xorl    %ebp,%edx
410         xorl    %ebp,%edi
411         addl    %ebx,%eax
412         rorl    $7,%ecx
413         addl    %edi,%eax
414         addl    16(%rsp),%ebp
415 .byte   102,69,15,56,220,222
416         movups  64(%r15),%xmm15
417         pxor    %xmm5,%xmm1
418 .byte   102,68,15,58,15,215,8
419         xorl    %edx,%esi
420         movl    %eax,%edi
421         roll    $5,%eax
422         pxor    %xmm2,%xmm1
423         xorl    %ecx,%esi
424         addl    %eax,%ebp
425         movdqa  %xmm8,%xmm9
426         paddd   %xmm0,%xmm8
427         rorl    $7,%ebx
428         addl    %esi,%ebp
429         pxor    %xmm10,%xmm1
430         addl    20(%rsp),%edx
431         xorl    %ecx,%edi
432         movl    %ebp,%esi
433         roll    $5,%ebp
434         movdqa  %xmm1,%xmm10
435         movdqa  %xmm8,0(%rsp)
436         xorl    %ebx,%edi
437         addl    %ebp,%edx
438         rorl    $7,%eax
439         addl    %edi,%edx
440         pslld   $2,%xmm1
441         addl    24(%rsp),%ecx
442         xorl    %ebx,%esi
443         psrld   $30,%xmm10
444         movl    %edx,%edi
445         roll    $5,%edx
446         xorl    %eax,%esi
447 .byte   102,69,15,56,220,223
448         movups  80(%r15),%xmm14
449         addl    %edx,%ecx
450         rorl    $7,%ebp
451         addl    %esi,%ecx
452         por     %xmm10,%xmm1
453         addl    28(%rsp),%ebx
454         xorl    %eax,%edi
455         movdqa  %xmm1,%xmm8
456         movl    %ecx,%esi
457         roll    $5,%ecx
458         xorl    %ebp,%edi
459         addl    %ecx,%ebx
460         rorl    $7,%edx
461         addl    %edi,%ebx
462         addl    32(%rsp),%eax
463         pxor    %xmm6,%xmm2
464 .byte   102,68,15,58,15,192,8
465         xorl    %ebp,%esi
466         movl    %ebx,%edi
467         roll    $5,%ebx
468         pxor    %xmm3,%xmm2
469         xorl    %edx,%esi
470         addl    %ebx,%eax
471         movdqa  32(%r11),%xmm10
472         paddd   %xmm1,%xmm9
473         rorl    $7,%ecx
474         addl    %esi,%eax
475         pxor    %xmm8,%xmm2
476         addl    36(%rsp),%ebp
477 .byte   102,69,15,56,220,222
478         movups  96(%r15),%xmm15
479         xorl    %edx,%edi
480         movl    %eax,%esi
481         roll    $5,%eax
482         movdqa  %xmm2,%xmm8
483         movdqa  %xmm9,16(%rsp)
484         xorl    %ecx,%edi
485         addl    %eax,%ebp
486         rorl    $7,%ebx
487         addl    %edi,%ebp
488         pslld   $2,%xmm2
489         addl    40(%rsp),%edx
490         xorl    %ecx,%esi
491         psrld   $30,%xmm8
492         movl    %ebp,%edi
493         roll    $5,%ebp
494         xorl    %ebx,%esi
495         addl    %ebp,%edx
496         rorl    $7,%eax
497         addl    %esi,%edx
498         por     %xmm8,%xmm2
499         addl    44(%rsp),%ecx
500         xorl    %ebx,%edi
501         movdqa  %xmm2,%xmm9
502         movl    %edx,%esi
503         roll    $5,%edx
504         xorl    %eax,%edi
505 .byte   102,69,15,56,220,223
506         movups  112(%r15),%xmm14
507         addl    %edx,%ecx
508         rorl    $7,%ebp
509         addl    %edi,%ecx
510         addl    48(%rsp),%ebx
511         pxor    %xmm7,%xmm3
512 .byte   102,68,15,58,15,201,8
513         xorl    %eax,%esi
514         movl    %ecx,%edi
515         roll    $5,%ecx
516         pxor    %xmm4,%xmm3
517         xorl    %ebp,%esi
518         addl    %ecx,%ebx
519         movdqa  %xmm10,%xmm8
520         paddd   %xmm2,%xmm10
521         rorl    $7,%edx
522         addl    %esi,%ebx
523         pxor    %xmm9,%xmm3
524         addl    52(%rsp),%eax
525         xorl    %ebp,%edi
526         movl    %ebx,%esi
527         roll    $5,%ebx
528         movdqa  %xmm3,%xmm9
529         movdqa  %xmm10,32(%rsp)
530         xorl    %edx,%edi
531         addl    %ebx,%eax
532         rorl    $7,%ecx
533         addl    %edi,%eax
534         pslld   $2,%xmm3
535         addl    56(%rsp),%ebp
536 .byte   102,69,15,56,220,222
537         movups  128(%r15),%xmm15
538         xorl    %edx,%esi
539         psrld   $30,%xmm9
540         movl    %eax,%edi
541         roll    $5,%eax
542         xorl    %ecx,%esi
543         addl    %eax,%ebp
544         rorl    $7,%ebx
545         addl    %esi,%ebp
546         por     %xmm9,%xmm3
547         addl    60(%rsp),%edx
548         xorl    %ecx,%edi
549         movdqa  %xmm3,%xmm10
550         movl    %ebp,%esi
551         roll    $5,%ebp
552         xorl    %ebx,%edi
553         addl    %ebp,%edx
554         rorl    $7,%eax
555         addl    %edi,%edx
556         addl    0(%rsp),%ecx
557         pxor    %xmm0,%xmm4
558 .byte   102,68,15,58,15,210,8
559         xorl    %ebx,%esi
560         movl    %edx,%edi
561         roll    $5,%edx
562         pxor    %xmm5,%xmm4
563         xorl    %eax,%esi
564 .byte   102,69,15,56,220,223
565         movups  144(%r15),%xmm14
566         addl    %edx,%ecx
567         movdqa  %xmm8,%xmm9
568         paddd   %xmm3,%xmm8
569         rorl    $7,%ebp
570         addl    %esi,%ecx
571         pxor    %xmm10,%xmm4
572         addl    4(%rsp),%ebx
573         xorl    %eax,%edi
574         movl    %ecx,%esi
575         roll    $5,%ecx
576         movdqa  %xmm4,%xmm10
577         movdqa  %xmm8,48(%rsp)
578         xorl    %ebp,%edi
579         addl    %ecx,%ebx
580         rorl    $7,%edx
581         addl    %edi,%ebx
582         pslld   $2,%xmm4
583         addl    8(%rsp),%eax
584         xorl    %ebp,%esi
585         psrld   $30,%xmm10
586         movl    %ebx,%edi
587         roll    $5,%ebx
588         xorl    %edx,%esi
589         addl    %ebx,%eax
590         rorl    $7,%ecx
591         addl    %esi,%eax
592         por     %xmm10,%xmm4
593         addl    12(%rsp),%ebp
594 .byte   102,69,15,56,220,222
595         movups  160(%r15),%xmm15
596         xorl    %edx,%edi
597         movdqa  %xmm4,%xmm8
598         movl    %eax,%esi
599         roll    $5,%eax
600         xorl    %ecx,%edi
601         addl    %eax,%ebp
602         rorl    $7,%ebx
603         addl    %edi,%ebp
604         addl    16(%rsp),%edx
605         pxor    %xmm1,%xmm5
606 .byte   102,68,15,58,15,195,8
607         xorl    %ecx,%esi
608         movl    %ebp,%edi
609         roll    $5,%ebp
610         pxor    %xmm6,%xmm5
611         xorl    %ebx,%esi
612         addl    %ebp,%edx
613         movdqa  %xmm9,%xmm10
614         paddd   %xmm4,%xmm9
615         rorl    $7,%eax
616         addl    %esi,%edx
617         pxor    %xmm8,%xmm5
618         addl    20(%rsp),%ecx
619         xorl    %ebx,%edi
620         movl    %edx,%esi
621         roll    $5,%edx
622         movdqa  %xmm5,%xmm8
623         movdqa  %xmm9,0(%rsp)
624         xorl    %eax,%edi
625         cmpl    $11,%r8d
626         jb      .Laesenclast2
627         movups  176(%r15),%xmm14
628 .byte   102,69,15,56,220,223
629         movups  192(%r15),%xmm15
630 .byte   102,69,15,56,220,222
631         je      .Laesenclast2
632         movups  208(%r15),%xmm14
633 .byte   102,69,15,56,220,223
634         movups  224(%r15),%xmm15
635 .byte   102,69,15,56,220,222
636 .Laesenclast2:
637 .byte   102,69,15,56,221,223
638         movups  16(%r15),%xmm14
639         addl    %edx,%ecx
640         rorl    $7,%ebp
641         addl    %edi,%ecx
642         pslld   $2,%xmm5
643         addl    24(%rsp),%ebx
644         xorl    %eax,%esi
645         psrld   $30,%xmm8
646         movl    %ecx,%edi
647         roll    $5,%ecx
648         xorl    %ebp,%esi
649         addl    %ecx,%ebx
650         rorl    $7,%edx
651         addl    %esi,%ebx
652         por     %xmm8,%xmm5
653         addl    28(%rsp),%eax
654         xorl    %ebp,%edi
655         movdqa  %xmm5,%xmm9
656         movl    %ebx,%esi
657         roll    $5,%ebx
658         xorl    %edx,%edi
659         addl    %ebx,%eax
660         rorl    $7,%ecx
661         addl    %edi,%eax
662         movl    %ecx,%edi
663         movups  32(%r12),%xmm12
664         xorps   %xmm13,%xmm12
665         movups  %xmm11,16(%r13,%r12,1)
666         xorps   %xmm12,%xmm11
667 .byte   102,69,15,56,220,222
668         movups  32(%r15),%xmm15
669         pxor    %xmm2,%xmm6
670 .byte   102,68,15,58,15,204,8
671         xorl    %edx,%ecx
672         addl    32(%rsp),%ebp
673         andl    %edx,%edi
674         pxor    %xmm7,%xmm6
675         andl    %ecx,%esi
676         rorl    $7,%ebx
677         movdqa  %xmm10,%xmm8
678         paddd   %xmm5,%xmm10
679         addl    %edi,%ebp
680         movl    %eax,%edi
681         pxor    %xmm9,%xmm6
682         roll    $5,%eax
683         addl    %esi,%ebp
684         xorl    %edx,%ecx
685         addl    %eax,%ebp
686         movdqa  %xmm6,%xmm9
687         movdqa  %xmm10,16(%rsp)
688         movl    %ebx,%esi
689         xorl    %ecx,%ebx
690         addl    36(%rsp),%edx
691         andl    %ecx,%esi
692         pslld   $2,%xmm6
693         andl    %ebx,%edi
694         rorl    $7,%eax
695         psrld   $30,%xmm9
696         addl    %esi,%edx
697         movl    %ebp,%esi
698         roll    $5,%ebp
699 .byte   102,69,15,56,220,223
700         movups  48(%r15),%xmm14
701         addl    %edi,%edx
702         xorl    %ecx,%ebx
703         addl    %ebp,%edx
704         por     %xmm9,%xmm6
705         movl    %eax,%edi
706         xorl    %ebx,%eax
707         movdqa  %xmm6,%xmm10
708         addl    40(%rsp),%ecx
709         andl    %ebx,%edi
710         andl    %eax,%esi
711         rorl    $7,%ebp
712         addl    %edi,%ecx
713         movl    %edx,%edi
714         roll    $5,%edx
715         addl    %esi,%ecx
716         xorl    %ebx,%eax
717         addl    %edx,%ecx
718         movl    %ebp,%esi
719         xorl    %eax,%ebp
720         addl    44(%rsp),%ebx
721         andl    %eax,%esi
722         andl    %ebp,%edi
723 .byte   102,69,15,56,220,222
724         movups  64(%r15),%xmm15
725         rorl    $7,%edx
726         addl    %esi,%ebx
727         movl    %ecx,%esi
728         roll    $5,%ecx
729         addl    %edi,%ebx
730         xorl    %eax,%ebp
731         addl    %ecx,%ebx
732         movl    %edx,%edi
733         pxor    %xmm3,%xmm7
734 .byte   102,68,15,58,15,213,8
735         xorl    %ebp,%edx
736         addl    48(%rsp),%eax
737         andl    %ebp,%edi
738         pxor    %xmm0,%xmm7
739         andl    %edx,%esi
740         rorl    $7,%ecx
741         movdqa  48(%r11),%xmm9
742         paddd   %xmm6,%xmm8
743         addl    %edi,%eax
744         movl    %ebx,%edi
745         pxor    %xmm10,%xmm7
746         roll    $5,%ebx
747         addl    %esi,%eax
748         xorl    %ebp,%edx
749         addl    %ebx,%eax
750         movdqa  %xmm7,%xmm10
751         movdqa  %xmm8,32(%rsp)
752         movl    %ecx,%esi
753 .byte   102,69,15,56,220,223
754         movups  80(%r15),%xmm14
755         xorl    %edx,%ecx
756         addl    52(%rsp),%ebp
757         andl    %edx,%esi
758         pslld   $2,%xmm7
759         andl    %ecx,%edi
760         rorl    $7,%ebx
761         psrld   $30,%xmm10
762         addl    %esi,%ebp
763         movl    %eax,%esi
764         roll    $5,%eax
765         addl    %edi,%ebp
766         xorl    %edx,%ecx
767         addl    %eax,%ebp
768         por     %xmm10,%xmm7
769         movl    %ebx,%edi
770         xorl    %ecx,%ebx
771         movdqa  %xmm7,%xmm8
772         addl    56(%rsp),%edx
773         andl    %ecx,%edi
774         andl    %ebx,%esi
775         rorl    $7,%eax
776         addl    %edi,%edx
777         movl    %ebp,%edi
778         roll    $5,%ebp
779 .byte   102,69,15,56,220,222
780         movups  96(%r15),%xmm15
781         addl    %esi,%edx
782         xorl    %ecx,%ebx
783         addl    %ebp,%edx
784         movl    %eax,%esi
785         xorl    %ebx,%eax
786         addl    60(%rsp),%ecx
787         andl    %ebx,%esi
788         andl    %eax,%edi
789         rorl    $7,%ebp
790         addl    %esi,%ecx
791         movl    %edx,%esi
792         roll    $5,%edx
793         addl    %edi,%ecx
794         xorl    %ebx,%eax
795         addl    %edx,%ecx
796         movl    %ebp,%edi
797         pxor    %xmm4,%xmm0
798 .byte   102,68,15,58,15,198,8
799         xorl    %eax,%ebp
800         addl    0(%rsp),%ebx
801         andl    %eax,%edi
802         pxor    %xmm1,%xmm0
803         andl    %ebp,%esi
804 .byte   102,69,15,56,220,223
805         movups  112(%r15),%xmm14
806         rorl    $7,%edx
807         movdqa  %xmm9,%xmm10
808         paddd   %xmm7,%xmm9
809         addl    %edi,%ebx
810         movl    %ecx,%edi
811         pxor    %xmm8,%xmm0
812         roll    $5,%ecx
813         addl    %esi,%ebx
814         xorl    %eax,%ebp
815         addl    %ecx,%ebx
816         movdqa  %xmm0,%xmm8
817         movdqa  %xmm9,48(%rsp)
818         movl    %edx,%esi
819         xorl    %ebp,%edx
820         addl    4(%rsp),%eax
821         andl    %ebp,%esi
822         pslld   $2,%xmm0
823         andl    %edx,%edi
824         rorl    $7,%ecx
825         psrld   $30,%xmm8
826         addl    %esi,%eax
827         movl    %ebx,%esi
828         roll    $5,%ebx
829         addl    %edi,%eax
830         xorl    %ebp,%edx
831         addl    %ebx,%eax
832         por     %xmm8,%xmm0
833         movl    %ecx,%edi
834 .byte   102,69,15,56,220,222
835         movups  128(%r15),%xmm15
836         xorl    %edx,%ecx
837         movdqa  %xmm0,%xmm9
838         addl    8(%rsp),%ebp
839         andl    %edx,%edi
840         andl    %ecx,%esi
841         rorl    $7,%ebx
842         addl    %edi,%ebp
843         movl    %eax,%edi
844         roll    $5,%eax
845         addl    %esi,%ebp
846         xorl    %edx,%ecx
847         addl    %eax,%ebp
848         movl    %ebx,%esi
849         xorl    %ecx,%ebx
850         addl    12(%rsp),%edx
851         andl    %ecx,%esi
852         andl    %ebx,%edi
853         rorl    $7,%eax
854         addl    %esi,%edx
855         movl    %ebp,%esi
856         roll    $5,%ebp
857 .byte   102,69,15,56,220,223
858         movups  144(%r15),%xmm14
859         addl    %edi,%edx
860         xorl    %ecx,%ebx
861         addl    %ebp,%edx
862         movl    %eax,%edi
863         pxor    %xmm5,%xmm1
864 .byte   102,68,15,58,15,207,8
865         xorl    %ebx,%eax
866         addl    16(%rsp),%ecx
867         andl    %ebx,%edi
868         pxor    %xmm2,%xmm1
869         andl    %eax,%esi
870         rorl    $7,%ebp
871         movdqa  %xmm10,%xmm8
872         paddd   %xmm0,%xmm10
873         addl    %edi,%ecx
874         movl    %edx,%edi
875         pxor    %xmm9,%xmm1
876         roll    $5,%edx
877         addl    %esi,%ecx
878         xorl    %ebx,%eax
879         addl    %edx,%ecx
880         movdqa  %xmm1,%xmm9
881         movdqa  %xmm10,0(%rsp)
882         movl    %ebp,%esi
883         xorl    %eax,%ebp
884         addl    20(%rsp),%ebx
885         andl    %eax,%esi
886         pslld   $2,%xmm1
887         andl    %ebp,%edi
888 .byte   102,69,15,56,220,222
889         movups  160(%r15),%xmm15
890         rorl    $7,%edx
891         psrld   $30,%xmm9
892         addl    %esi,%ebx
893         movl    %ecx,%esi
894         roll    $5,%ecx
895         addl    %edi,%ebx
896         xorl    %eax,%ebp
897         addl    %ecx,%ebx
898         por     %xmm9,%xmm1
899         movl    %edx,%edi
900         xorl    %ebp,%edx
901         movdqa  %xmm1,%xmm10
902         addl    24(%rsp),%eax
903         andl    %ebp,%edi
904         andl    %edx,%esi
905         rorl    $7,%ecx
906         addl    %edi,%eax
907         movl    %ebx,%edi
908         roll    $5,%ebx
909         addl    %esi,%eax
910         xorl    %ebp,%edx
911         addl    %ebx,%eax
912         movl    %ecx,%esi
913         cmpl    $11,%r8d
914         jb      .Laesenclast3
915         movups  176(%r15),%xmm14
916 .byte   102,69,15,56,220,223
917         movups  192(%r15),%xmm15
918 .byte   102,69,15,56,220,222
919         je      .Laesenclast3
920         movups  208(%r15),%xmm14
921 .byte   102,69,15,56,220,223
922         movups  224(%r15),%xmm15
923 .byte   102,69,15,56,220,222
924 .Laesenclast3:
925 .byte   102,69,15,56,221,223
926         movups  16(%r15),%xmm14
927         xorl    %edx,%ecx
928         addl    28(%rsp),%ebp
929         andl    %edx,%esi
930         andl    %ecx,%edi
931         rorl    $7,%ebx
932         addl    %esi,%ebp
933         movl    %eax,%esi
934         roll    $5,%eax
935         addl    %edi,%ebp
936         xorl    %edx,%ecx
937         addl    %eax,%ebp
938         movl    %ebx,%edi
939         pxor    %xmm6,%xmm2
940 .byte   102,68,15,58,15,208,8
941         xorl    %ecx,%ebx
942         addl    32(%rsp),%edx
943         andl    %ecx,%edi
944         pxor    %xmm3,%xmm2
945         andl    %ebx,%esi
946         rorl    $7,%eax
947         movdqa  %xmm8,%xmm9
948         paddd   %xmm1,%xmm8
949         addl    %edi,%edx
950         movl    %ebp,%edi
951         pxor    %xmm10,%xmm2
952         roll    $5,%ebp
953         movups  48(%r12),%xmm12
954         xorps   %xmm13,%xmm12
955         movups  %xmm11,32(%r13,%r12,1)
956         xorps   %xmm12,%xmm11
957 .byte   102,69,15,56,220,222
958         movups  32(%r15),%xmm15
959         addl    %esi,%edx
960         xorl    %ecx,%ebx
961         addl    %ebp,%edx
962         movdqa  %xmm2,%xmm10
963         movdqa  %xmm8,16(%rsp)
964         movl    %eax,%esi
965         xorl    %ebx,%eax
966         addl    36(%rsp),%ecx
967         andl    %ebx,%esi
968         pslld   $2,%xmm2
969         andl    %eax,%edi
970         rorl    $7,%ebp
971         psrld   $30,%xmm10
972         addl    %esi,%ecx
973         movl    %edx,%esi
974         roll    $5,%edx
975         addl    %edi,%ecx
976         xorl    %ebx,%eax
977         addl    %edx,%ecx
978         por     %xmm10,%xmm2
979         movl    %ebp,%edi
980         xorl    %eax,%ebp
981         movdqa  %xmm2,%xmm8
982         addl    40(%rsp),%ebx
983         andl    %eax,%edi
984         andl    %ebp,%esi
985 .byte   102,69,15,56,220,223
986         movups  48(%r15),%xmm14
987         rorl    $7,%edx
988         addl    %edi,%ebx
989         movl    %ecx,%edi
990         roll    $5,%ecx
991         addl    %esi,%ebx
992         xorl    %eax,%ebp
993         addl    %ecx,%ebx
994         movl    %edx,%esi
995         xorl    %ebp,%edx
996         addl    44(%rsp),%eax
997         andl    %ebp,%esi
998         andl    %edx,%edi
999         rorl    $7,%ecx
1000         addl    %esi,%eax
1001         movl    %ebx,%esi
1002         roll    $5,%ebx
1003         addl    %edi,%eax
1004         xorl    %ebp,%edx
1005         addl    %ebx,%eax
1006         addl    48(%rsp),%ebp
1007 .byte   102,69,15,56,220,222
1008         movups  64(%r15),%xmm15
1009         pxor    %xmm7,%xmm3
1010 .byte   102,68,15,58,15,193,8
1011         xorl    %edx,%esi
1012         movl    %eax,%edi
1013         roll    $5,%eax
1014         pxor    %xmm4,%xmm3
1015         xorl    %ecx,%esi
1016         addl    %eax,%ebp
1017         movdqa  %xmm9,%xmm10
1018         paddd   %xmm2,%xmm9
1019         rorl    $7,%ebx
1020         addl    %esi,%ebp
1021         pxor    %xmm8,%xmm3
1022         addl    52(%rsp),%edx
1023         xorl    %ecx,%edi
1024         movl    %ebp,%esi
1025         roll    $5,%ebp
1026         movdqa  %xmm3,%xmm8
1027         movdqa  %xmm9,32(%rsp)
1028         xorl    %ebx,%edi
1029         addl    %ebp,%edx
1030         rorl    $7,%eax
1031         addl    %edi,%edx
1032         pslld   $2,%xmm3
1033         addl    56(%rsp),%ecx
1034         xorl    %ebx,%esi
1035         psrld   $30,%xmm8
1036         movl    %edx,%edi
1037         roll    $5,%edx
1038         xorl    %eax,%esi
1039 .byte   102,69,15,56,220,223
1040         movups  80(%r15),%xmm14
1041         addl    %edx,%ecx
1042         rorl    $7,%ebp
1043         addl    %esi,%ecx
1044         por     %xmm8,%xmm3
1045         addl    60(%rsp),%ebx
1046         xorl    %eax,%edi
1047         movl    %ecx,%esi
1048         roll    $5,%ecx
1049         xorl    %ebp,%edi
1050         addl    %ecx,%ebx
1051         rorl    $7,%edx
1052         addl    %edi,%ebx
1053         addl    0(%rsp),%eax
1054         paddd   %xmm3,%xmm10
1055         xorl    %ebp,%esi
1056         movl    %ebx,%edi
1057         roll    $5,%ebx
1058         xorl    %edx,%esi
1059         movdqa  %xmm10,48(%rsp)
1060         addl    %ebx,%eax
1061         rorl    $7,%ecx
1062         addl    %esi,%eax
1063         addl    4(%rsp),%ebp
1064 .byte   102,69,15,56,220,222
1065         movups  96(%r15),%xmm15
1066         xorl    %edx,%edi
1067         movl    %eax,%esi
1068         roll    $5,%eax
1069         xorl    %ecx,%edi
1070         addl    %eax,%ebp
1071         rorl    $7,%ebx
1072         addl    %edi,%ebp
1073         addl    8(%rsp),%edx
1074         xorl    %ecx,%esi
1075         movl    %ebp,%edi
1076         roll    $5,%ebp
1077         xorl    %ebx,%esi
1078         addl    %ebp,%edx
1079         rorl    $7,%eax
1080         addl    %esi,%edx
1081         addl    12(%rsp),%ecx
1082         xorl    %ebx,%edi
1083         movl    %edx,%esi
1084         roll    $5,%edx
1085         xorl    %eax,%edi
1086 .byte   102,69,15,56,220,223
1087         movups  112(%r15),%xmm14
1088         addl    %edx,%ecx
1089         rorl    $7,%ebp
1090         addl    %edi,%ecx
1091         cmpq    %r14,%r10
1092         je      .Ldone_ssse3
1093         movdqa  64(%r11),%xmm6
1094         movdqa  0(%r11),%xmm9
1095         movdqu  0(%r10),%xmm0
1096         movdqu  16(%r10),%xmm1
1097         movdqu  32(%r10),%xmm2
1098         movdqu  48(%r10),%xmm3
1099 .byte   102,15,56,0,198
1100         addq    $64,%r10
1101         addl    16(%rsp),%ebx
1102         xorl    %eax,%esi
1103 .byte   102,15,56,0,206
1104         movl    %ecx,%edi
1105         roll    $5,%ecx
1106         paddd   %xmm9,%xmm0
1107         xorl    %ebp,%esi
1108         addl    %ecx,%ebx
1109         rorl    $7,%edx
1110         addl    %esi,%ebx
1111         movdqa  %xmm0,0(%rsp)
1112         addl    20(%rsp),%eax
1113         xorl    %ebp,%edi
1114         psubd   %xmm9,%xmm0
1115         movl    %ebx,%esi
1116         roll    $5,%ebx
1117         xorl    %edx,%edi
1118         addl    %ebx,%eax
1119         rorl    $7,%ecx
1120         addl    %edi,%eax
1121         addl    24(%rsp),%ebp
1122 .byte   102,69,15,56,220,222
1123         movups  128(%r15),%xmm15
1124         xorl    %edx,%esi
1125         movl    %eax,%edi
1126         roll    $5,%eax
1127         xorl    %ecx,%esi
1128         addl    %eax,%ebp
1129         rorl    $7,%ebx
1130         addl    %esi,%ebp
1131         addl    28(%rsp),%edx
1132         xorl    %ecx,%edi
1133         movl    %ebp,%esi
1134         roll    $5,%ebp
1135         xorl    %ebx,%edi
1136         addl    %ebp,%edx
1137         rorl    $7,%eax
1138         addl    %edi,%edx
1139         addl    32(%rsp),%ecx
1140         xorl    %ebx,%esi
1141 .byte   102,15,56,0,214
1142         movl    %edx,%edi
1143         roll    $5,%edx
1144         paddd   %xmm9,%xmm1
1145         xorl    %eax,%esi
1146 .byte   102,69,15,56,220,223
1147         movups  144(%r15),%xmm14
1148         addl    %edx,%ecx
1149         rorl    $7,%ebp
1150         addl    %esi,%ecx
1151         movdqa  %xmm1,16(%rsp)
1152         addl    36(%rsp),%ebx
1153         xorl    %eax,%edi
1154         psubd   %xmm9,%xmm1
1155         movl    %ecx,%esi
1156         roll    $5,%ecx
1157         xorl    %ebp,%edi
1158         addl    %ecx,%ebx
1159         rorl    $7,%edx
1160         addl    %edi,%ebx
1161         addl    40(%rsp),%eax
1162         xorl    %ebp,%esi
1163         movl    %ebx,%edi
1164         roll    $5,%ebx
1165         xorl    %edx,%esi
1166         addl    %ebx,%eax
1167         rorl    $7,%ecx
1168         addl    %esi,%eax
1169         addl    44(%rsp),%ebp
1170 .byte   102,69,15,56,220,222
1171         movups  160(%r15),%xmm15
1172         xorl    %edx,%edi
1173         movl    %eax,%esi
1174         roll    $5,%eax
1175         xorl    %ecx,%edi
1176         addl    %eax,%ebp
1177         rorl    $7,%ebx
1178         addl    %edi,%ebp
1179         addl    48(%rsp),%edx
1180         xorl    %ecx,%esi
1181 .byte   102,15,56,0,222
1182         movl    %ebp,%edi
1183         roll    $5,%ebp
1184         paddd   %xmm9,%xmm2
1185         xorl    %ebx,%esi
1186         addl    %ebp,%edx
1187         rorl    $7,%eax
1188         addl    %esi,%edx
1189         movdqa  %xmm2,32(%rsp)
1190         addl    52(%rsp),%ecx
1191         xorl    %ebx,%edi
1192         psubd   %xmm9,%xmm2
1193         movl    %edx,%esi
1194         roll    $5,%edx
1195         xorl    %eax,%edi
1196         cmpl    $11,%r8d
1197         jb      .Laesenclast4
1198         movups  176(%r15),%xmm14
1199 .byte   102,69,15,56,220,223
1200         movups  192(%r15),%xmm15
1201 .byte   102,69,15,56,220,222
1202         je      .Laesenclast4
1203         movups  208(%r15),%xmm14
1204 .byte   102,69,15,56,220,223
1205         movups  224(%r15),%xmm15
1206 .byte   102,69,15,56,220,222
1207 .Laesenclast4:
1208 .byte   102,69,15,56,221,223
1209         movups  16(%r15),%xmm14
1210         addl    %edx,%ecx
1211         rorl    $7,%ebp
1212         addl    %edi,%ecx
1213         addl    56(%rsp),%ebx
1214         xorl    %eax,%esi
1215         movl    %ecx,%edi
1216         roll    $5,%ecx
1217         xorl    %ebp,%esi
1218         addl    %ecx,%ebx
1219         rorl    $7,%edx
1220         addl    %esi,%ebx
1221         addl    60(%rsp),%eax
1222         xorl    %ebp,%edi
1223         movl    %ebx,%esi
1224         roll    $5,%ebx
1225         xorl    %edx,%edi
1226         addl    %ebx,%eax
1227         rorl    $7,%ecx
1228         addl    %edi,%eax
1229         movups  %xmm11,48(%r13,%r12,1)
1230         leaq    64(%r12),%r12
1231
1232         addl    0(%r9),%eax
1233         addl    4(%r9),%esi
1234         addl    8(%r9),%ecx
1235         addl    12(%r9),%edx
1236         movl    %eax,0(%r9)
1237         addl    16(%r9),%ebp
1238         movl    %esi,4(%r9)
1239         movl    %esi,%ebx
1240         movl    %ecx,8(%r9)
1241         movl    %edx,12(%r9)
1242         movl    %ebp,16(%r9)
1243         jmp     .Loop_ssse3
1244
1245 .align  16
1246 .Ldone_ssse3:
1247         addl    16(%rsp),%ebx
1248         xorl    %eax,%esi
1249         movl    %ecx,%edi
1250         roll    $5,%ecx
1251         xorl    %ebp,%esi
1252         addl    %ecx,%ebx
1253         rorl    $7,%edx
1254         addl    %esi,%ebx
1255         addl    20(%rsp),%eax
1256         xorl    %ebp,%edi
1257         movl    %ebx,%esi
1258         roll    $5,%ebx
1259         xorl    %edx,%edi
1260         addl    %ebx,%eax
1261         rorl    $7,%ecx
1262         addl    %edi,%eax
1263         addl    24(%rsp),%ebp
1264 .byte   102,69,15,56,220,222
1265         movups  128(%r15),%xmm15
1266         xorl    %edx,%esi
1267         movl    %eax,%edi
1268         roll    $5,%eax
1269         xorl    %ecx,%esi
1270         addl    %eax,%ebp
1271         rorl    $7,%ebx
1272         addl    %esi,%ebp
1273         addl    28(%rsp),%edx
1274         xorl    %ecx,%edi
1275         movl    %ebp,%esi
1276         roll    $5,%ebp
1277         xorl    %ebx,%edi
1278         addl    %ebp,%edx
1279         rorl    $7,%eax
1280         addl    %edi,%edx
1281         addl    32(%rsp),%ecx
1282         xorl    %ebx,%esi
1283         movl    %edx,%edi
1284         roll    $5,%edx
1285         xorl    %eax,%esi
1286 .byte   102,69,15,56,220,223
1287         movups  144(%r15),%xmm14
1288         addl    %edx,%ecx
1289         rorl    $7,%ebp
1290         addl    %esi,%ecx
1291         addl    36(%rsp),%ebx
1292         xorl    %eax,%edi
1293         movl    %ecx,%esi
1294         roll    $5,%ecx
1295         xorl    %ebp,%edi
1296         addl    %ecx,%ebx
1297         rorl    $7,%edx
1298         addl    %edi,%ebx
1299         addl    40(%rsp),%eax
1300         xorl    %ebp,%esi
1301         movl    %ebx,%edi
1302         roll    $5,%ebx
1303         xorl    %edx,%esi
1304         addl    %ebx,%eax
1305         rorl    $7,%ecx
1306         addl    %esi,%eax
1307         addl    44(%rsp),%ebp
1308 .byte   102,69,15,56,220,222
1309         movups  160(%r15),%xmm15
1310         xorl    %edx,%edi
1311         movl    %eax,%esi
1312         roll    $5,%eax
1313         xorl    %ecx,%edi
1314         addl    %eax,%ebp
1315         rorl    $7,%ebx
1316         addl    %edi,%ebp
1317         addl    48(%rsp),%edx
1318         xorl    %ecx,%esi
1319         movl    %ebp,%edi
1320         roll    $5,%ebp
1321         xorl    %ebx,%esi
1322         addl    %ebp,%edx
1323         rorl    $7,%eax
1324         addl    %esi,%edx
1325         addl    52(%rsp),%ecx
1326         xorl    %ebx,%edi
1327         movl    %edx,%esi
1328         roll    $5,%edx
1329         xorl    %eax,%edi
1330         cmpl    $11,%r8d
1331         jb      .Laesenclast5
1332         movups  176(%r15),%xmm14
1333 .byte   102,69,15,56,220,223
1334         movups  192(%r15),%xmm15
1335 .byte   102,69,15,56,220,222
1336         je      .Laesenclast5
1337         movups  208(%r15),%xmm14
1338 .byte   102,69,15,56,220,223
1339         movups  224(%r15),%xmm15
1340 .byte   102,69,15,56,220,222
1341 .Laesenclast5:
1342 .byte   102,69,15,56,221,223
1343         movups  16(%r15),%xmm14
1344         addl    %edx,%ecx
1345         rorl    $7,%ebp
1346         addl    %edi,%ecx
1347         addl    56(%rsp),%ebx
1348         xorl    %eax,%esi
1349         movl    %ecx,%edi
1350         roll    $5,%ecx
1351         xorl    %ebp,%esi
1352         addl    %ecx,%ebx
1353         rorl    $7,%edx
1354         addl    %esi,%ebx
1355         addl    60(%rsp),%eax
1356         xorl    %ebp,%edi
1357         movl    %ebx,%esi
1358         roll    $5,%ebx
1359         xorl    %edx,%edi
1360         addl    %ebx,%eax
1361         rorl    $7,%ecx
1362         addl    %edi,%eax
1363         movups  %xmm11,48(%r13,%r12,1)
1364         movq    88(%rsp),%r8
1365
1366         addl    0(%r9),%eax
1367         addl    4(%r9),%esi
1368         addl    8(%r9),%ecx
1369         movl    %eax,0(%r9)
1370         addl    12(%r9),%edx
1371         movl    %esi,4(%r9)
1372         addl    16(%r9),%ebp
1373         movl    %ecx,8(%r9)
1374         movl    %edx,12(%r9)
1375         movl    %ebp,16(%r9)
1376         movups  %xmm11,(%r8)
1377         leaq    104(%rsp),%rsi
1378         movq    0(%rsi),%r15
1379         movq    8(%rsi),%r14
1380         movq    16(%rsi),%r13
1381         movq    24(%rsi),%r12
1382         movq    32(%rsi),%rbp
1383         movq    40(%rsi),%rbx
1384         leaq    48(%rsi),%rsp
1385 .Lepilogue_ssse3:
1386         .byte   0xf3,0xc3
1387 .size   aesni_cbc_sha1_enc_ssse3,.-aesni_cbc_sha1_enc_ssse3
1388 .align  64
1389 K_XX_XX:
1390 .long   0x5a827999,0x5a827999,0x5a827999,0x5a827999     
1391 .long   0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1     
1392 .long   0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc     
1393 .long   0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6     
1394 .long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f     
1395
1396 .byte   65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,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
1397 .align  64