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