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