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