]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - secure/lib/libcrypto/amd64/aesni-sha256-x86_64.S
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb, and openmp
[FreeBSD/FreeBSD.git] / secure / lib / libcrypto / amd64 / aesni-sha256-x86_64.S
1 /* $FreeBSD$ */
2 /* Do not modify. This file is auto-generated from aesni-sha256-x86_64.pl. */
3 .text   
4
5
6 .globl  aesni_cbc_sha256_enc
7 .type   aesni_cbc_sha256_enc,@function
8 .align  16
9 aesni_cbc_sha256_enc:
10         leaq    OPENSSL_ia32cap_P(%rip),%r11
11         movl    $1,%eax
12         cmpq    $0,%rdi
13         je      .Lprobe
14         movl    0(%r11),%eax
15         movq    4(%r11),%r10
16         btq     $61,%r10
17         jc      aesni_cbc_sha256_enc_shaext
18         movq    %r10,%r11
19         shrq    $32,%r11
20
21         testl   $2048,%r10d
22         jnz     aesni_cbc_sha256_enc_xop
23         andl    $296,%r11d
24         cmpl    $296,%r11d
25         je      aesni_cbc_sha256_enc_avx2
26         andl    $268435456,%r10d
27         jnz     aesni_cbc_sha256_enc_avx
28         ud2
29         xorl    %eax,%eax
30         cmpq    $0,%rdi
31         je      .Lprobe
32         ud2
33 .Lprobe:
34         .byte   0xf3,0xc3
35 .size   aesni_cbc_sha256_enc,.-aesni_cbc_sha256_enc
36
37 .align  64
38 .type   K256,@object
39 K256:
40 .long   0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
41 .long   0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
42 .long   0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
43 .long   0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
44 .long   0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
45 .long   0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
46 .long   0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
47 .long   0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
48 .long   0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
49 .long   0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
50 .long   0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
51 .long   0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
52 .long   0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
53 .long   0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
54 .long   0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
55 .long   0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
56 .long   0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
57 .long   0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
58 .long   0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
59 .long   0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
60 .long   0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
61 .long   0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
62 .long   0xd192e819,0xd6990624,0xf40e3585,0x106aa070
63 .long   0xd192e819,0xd6990624,0xf40e3585,0x106aa070
64 .long   0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
65 .long   0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
66 .long   0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
67 .long   0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
68 .long   0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
69 .long   0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
70 .long   0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
71 .long   0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
72
73 .long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
74 .long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
75 .long   0,0,0,0,   0,0,0,0,   -1,-1,-1,-1
76 .long   0,0,0,0,   0,0,0,0
77 .byte   65,69,83,78,73,45,67,66,67,43,83,72,65,50,53,54,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
78 .align  64
79 .type   aesni_cbc_sha256_enc_xop,@function
80 .align  64
81 aesni_cbc_sha256_enc_xop:
82 .cfi_startproc  
83 .Lxop_shortcut:
84         movq    8(%rsp),%r10
85         movq    %rsp,%rax
86 .cfi_def_cfa_register   %rax
87         pushq   %rbx
88 .cfi_offset     %rbx,-16
89         pushq   %rbp
90 .cfi_offset     %rbp,-24
91         pushq   %r12
92 .cfi_offset     %r12,-32
93         pushq   %r13
94 .cfi_offset     %r13,-40
95         pushq   %r14
96 .cfi_offset     %r14,-48
97         pushq   %r15
98 .cfi_offset     %r15,-56
99         subq    $128,%rsp
100         andq    $-64,%rsp
101
102         shlq    $6,%rdx
103         subq    %rdi,%rsi
104         subq    %rdi,%r10
105         addq    %rdi,%rdx
106
107
108         movq    %rsi,64+8(%rsp)
109         movq    %rdx,64+16(%rsp)
110
111         movq    %r8,64+32(%rsp)
112         movq    %r9,64+40(%rsp)
113         movq    %r10,64+48(%rsp)
114         movq    %rax,120(%rsp)
115 .cfi_escape     0x0f,0x06,0x77,0xf8,0x00,0x06,0x23,0x08
116 .Lprologue_xop:
117         vzeroall
118
119         movq    %rdi,%r12
120         leaq    128(%rcx),%rdi
121         leaq    K256+544(%rip),%r13
122         movl    240-128(%rdi),%r14d
123         movq    %r9,%r15
124         movq    %r10,%rsi
125         vmovdqu (%r8),%xmm8
126         subq    $9,%r14
127
128         movl    0(%r15),%eax
129         movl    4(%r15),%ebx
130         movl    8(%r15),%ecx
131         movl    12(%r15),%edx
132         movl    16(%r15),%r8d
133         movl    20(%r15),%r9d
134         movl    24(%r15),%r10d
135         movl    28(%r15),%r11d
136
137         vmovdqa 0(%r13,%r14,8),%xmm14
138         vmovdqa 16(%r13,%r14,8),%xmm13
139         vmovdqa 32(%r13,%r14,8),%xmm12
140         vmovdqu 0-128(%rdi),%xmm10
141         jmp     .Lloop_xop
142 .align  16
143 .Lloop_xop:
144         vmovdqa K256+512(%rip),%xmm7
145         vmovdqu 0(%rsi,%r12,1),%xmm0
146         vmovdqu 16(%rsi,%r12,1),%xmm1
147         vmovdqu 32(%rsi,%r12,1),%xmm2
148         vmovdqu 48(%rsi,%r12,1),%xmm3
149         vpshufb %xmm7,%xmm0,%xmm0
150         leaq    K256(%rip),%rbp
151         vpshufb %xmm7,%xmm1,%xmm1
152         vpshufb %xmm7,%xmm2,%xmm2
153         vpaddd  0(%rbp),%xmm0,%xmm4
154         vpshufb %xmm7,%xmm3,%xmm3
155         vpaddd  32(%rbp),%xmm1,%xmm5
156         vpaddd  64(%rbp),%xmm2,%xmm6
157         vpaddd  96(%rbp),%xmm3,%xmm7
158         vmovdqa %xmm4,0(%rsp)
159         movl    %eax,%r14d
160         vmovdqa %xmm5,16(%rsp)
161         movl    %ebx,%esi
162         vmovdqa %xmm6,32(%rsp)
163         xorl    %ecx,%esi
164         vmovdqa %xmm7,48(%rsp)
165         movl    %r8d,%r13d
166         jmp     .Lxop_00_47
167
168 .align  16
169 .Lxop_00_47:
170         subq    $-32*4,%rbp
171         vmovdqu (%r12),%xmm9
172         movq    %r12,64+0(%rsp)
173         vpalignr        $4,%xmm0,%xmm1,%xmm4
174         rorl    $14,%r13d
175         movl    %r14d,%eax
176         vpalignr        $4,%xmm2,%xmm3,%xmm7
177         movl    %r9d,%r12d
178         xorl    %r8d,%r13d
179 .byte   143,232,120,194,236,14
180         rorl    $9,%r14d
181         xorl    %r10d,%r12d
182         vpsrld  $3,%xmm4,%xmm4
183         rorl    $5,%r13d
184         xorl    %eax,%r14d
185         vpaddd  %xmm7,%xmm0,%xmm0
186         andl    %r8d,%r12d
187         vpxor   %xmm10,%xmm9,%xmm9
188         vmovdqu 16-128(%rdi),%xmm10
189         xorl    %r8d,%r13d
190         addl    0(%rsp),%r11d
191         movl    %eax,%r15d
192 .byte   143,232,120,194,245,11
193         rorl    $11,%r14d
194         xorl    %r10d,%r12d
195         vpxor   %xmm5,%xmm4,%xmm4
196         xorl    %ebx,%r15d
197         rorl    $6,%r13d
198         addl    %r12d,%r11d
199         andl    %r15d,%esi
200 .byte   143,232,120,194,251,13
201         xorl    %eax,%r14d
202         addl    %r13d,%r11d
203         vpxor   %xmm6,%xmm4,%xmm4
204         xorl    %ebx,%esi
205         addl    %r11d,%edx
206         vpsrld  $10,%xmm3,%xmm6
207         rorl    $2,%r14d
208         addl    %esi,%r11d
209         vpaddd  %xmm4,%xmm0,%xmm0
210         movl    %edx,%r13d
211         addl    %r11d,%r14d
212 .byte   143,232,120,194,239,2
213         rorl    $14,%r13d
214         movl    %r14d,%r11d
215         vpxor   %xmm6,%xmm7,%xmm7
216         movl    %r8d,%r12d
217         xorl    %edx,%r13d
218         rorl    $9,%r14d
219         xorl    %r9d,%r12d
220         vpxor   %xmm5,%xmm7,%xmm7
221         rorl    $5,%r13d
222         xorl    %r11d,%r14d
223         andl    %edx,%r12d
224         vpxor   %xmm8,%xmm9,%xmm9
225         xorl    %edx,%r13d
226         vpsrldq $8,%xmm7,%xmm7
227         addl    4(%rsp),%r10d
228         movl    %r11d,%esi
229         rorl    $11,%r14d
230         xorl    %r9d,%r12d
231         vpaddd  %xmm7,%xmm0,%xmm0
232         xorl    %eax,%esi
233         rorl    $6,%r13d
234         addl    %r12d,%r10d
235         andl    %esi,%r15d
236 .byte   143,232,120,194,248,13
237         xorl    %r11d,%r14d
238         addl    %r13d,%r10d
239         vpsrld  $10,%xmm0,%xmm6
240         xorl    %eax,%r15d
241         addl    %r10d,%ecx
242 .byte   143,232,120,194,239,2
243         rorl    $2,%r14d
244         addl    %r15d,%r10d
245         vpxor   %xmm6,%xmm7,%xmm7
246         movl    %ecx,%r13d
247         addl    %r10d,%r14d
248         rorl    $14,%r13d
249         movl    %r14d,%r10d
250         vpxor   %xmm5,%xmm7,%xmm7
251         movl    %edx,%r12d
252         xorl    %ecx,%r13d
253         rorl    $9,%r14d
254         xorl    %r8d,%r12d
255         vpslldq $8,%xmm7,%xmm7
256         rorl    $5,%r13d
257         xorl    %r10d,%r14d
258         andl    %ecx,%r12d
259         vaesenc %xmm10,%xmm9,%xmm9
260         vmovdqu 32-128(%rdi),%xmm10
261         xorl    %ecx,%r13d
262         vpaddd  %xmm7,%xmm0,%xmm0
263         addl    8(%rsp),%r9d
264         movl    %r10d,%r15d
265         rorl    $11,%r14d
266         xorl    %r8d,%r12d
267         vpaddd  0(%rbp),%xmm0,%xmm6
268         xorl    %r11d,%r15d
269         rorl    $6,%r13d
270         addl    %r12d,%r9d
271         andl    %r15d,%esi
272         xorl    %r10d,%r14d
273         addl    %r13d,%r9d
274         xorl    %r11d,%esi
275         addl    %r9d,%ebx
276         rorl    $2,%r14d
277         addl    %esi,%r9d
278         movl    %ebx,%r13d
279         addl    %r9d,%r14d
280         rorl    $14,%r13d
281         movl    %r14d,%r9d
282         movl    %ecx,%r12d
283         xorl    %ebx,%r13d
284         rorl    $9,%r14d
285         xorl    %edx,%r12d
286         rorl    $5,%r13d
287         xorl    %r9d,%r14d
288         andl    %ebx,%r12d
289         vaesenc %xmm10,%xmm9,%xmm9
290         vmovdqu 48-128(%rdi),%xmm10
291         xorl    %ebx,%r13d
292         addl    12(%rsp),%r8d
293         movl    %r9d,%esi
294         rorl    $11,%r14d
295         xorl    %edx,%r12d
296         xorl    %r10d,%esi
297         rorl    $6,%r13d
298         addl    %r12d,%r8d
299         andl    %esi,%r15d
300         xorl    %r9d,%r14d
301         addl    %r13d,%r8d
302         xorl    %r10d,%r15d
303         addl    %r8d,%eax
304         rorl    $2,%r14d
305         addl    %r15d,%r8d
306         movl    %eax,%r13d
307         addl    %r8d,%r14d
308         vmovdqa %xmm6,0(%rsp)
309         vpalignr        $4,%xmm1,%xmm2,%xmm4
310         rorl    $14,%r13d
311         movl    %r14d,%r8d
312         vpalignr        $4,%xmm3,%xmm0,%xmm7
313         movl    %ebx,%r12d
314         xorl    %eax,%r13d
315 .byte   143,232,120,194,236,14
316         rorl    $9,%r14d
317         xorl    %ecx,%r12d
318         vpsrld  $3,%xmm4,%xmm4
319         rorl    $5,%r13d
320         xorl    %r8d,%r14d
321         vpaddd  %xmm7,%xmm1,%xmm1
322         andl    %eax,%r12d
323         vaesenc %xmm10,%xmm9,%xmm9
324         vmovdqu 64-128(%rdi),%xmm10
325         xorl    %eax,%r13d
326         addl    16(%rsp),%edx
327         movl    %r8d,%r15d
328 .byte   143,232,120,194,245,11
329         rorl    $11,%r14d
330         xorl    %ecx,%r12d
331         vpxor   %xmm5,%xmm4,%xmm4
332         xorl    %r9d,%r15d
333         rorl    $6,%r13d
334         addl    %r12d,%edx
335         andl    %r15d,%esi
336 .byte   143,232,120,194,248,13
337         xorl    %r8d,%r14d
338         addl    %r13d,%edx
339         vpxor   %xmm6,%xmm4,%xmm4
340         xorl    %r9d,%esi
341         addl    %edx,%r11d
342         vpsrld  $10,%xmm0,%xmm6
343         rorl    $2,%r14d
344         addl    %esi,%edx
345         vpaddd  %xmm4,%xmm1,%xmm1
346         movl    %r11d,%r13d
347         addl    %edx,%r14d
348 .byte   143,232,120,194,239,2
349         rorl    $14,%r13d
350         movl    %r14d,%edx
351         vpxor   %xmm6,%xmm7,%xmm7
352         movl    %eax,%r12d
353         xorl    %r11d,%r13d
354         rorl    $9,%r14d
355         xorl    %ebx,%r12d
356         vpxor   %xmm5,%xmm7,%xmm7
357         rorl    $5,%r13d
358         xorl    %edx,%r14d
359         andl    %r11d,%r12d
360         vaesenc %xmm10,%xmm9,%xmm9
361         vmovdqu 80-128(%rdi),%xmm10
362         xorl    %r11d,%r13d
363         vpsrldq $8,%xmm7,%xmm7
364         addl    20(%rsp),%ecx
365         movl    %edx,%esi
366         rorl    $11,%r14d
367         xorl    %ebx,%r12d
368         vpaddd  %xmm7,%xmm1,%xmm1
369         xorl    %r8d,%esi
370         rorl    $6,%r13d
371         addl    %r12d,%ecx
372         andl    %esi,%r15d
373 .byte   143,232,120,194,249,13
374         xorl    %edx,%r14d
375         addl    %r13d,%ecx
376         vpsrld  $10,%xmm1,%xmm6
377         xorl    %r8d,%r15d
378         addl    %ecx,%r10d
379 .byte   143,232,120,194,239,2
380         rorl    $2,%r14d
381         addl    %r15d,%ecx
382         vpxor   %xmm6,%xmm7,%xmm7
383         movl    %r10d,%r13d
384         addl    %ecx,%r14d
385         rorl    $14,%r13d
386         movl    %r14d,%ecx
387         vpxor   %xmm5,%xmm7,%xmm7
388         movl    %r11d,%r12d
389         xorl    %r10d,%r13d
390         rorl    $9,%r14d
391         xorl    %eax,%r12d
392         vpslldq $8,%xmm7,%xmm7
393         rorl    $5,%r13d
394         xorl    %ecx,%r14d
395         andl    %r10d,%r12d
396         vaesenc %xmm10,%xmm9,%xmm9
397         vmovdqu 96-128(%rdi),%xmm10
398         xorl    %r10d,%r13d
399         vpaddd  %xmm7,%xmm1,%xmm1
400         addl    24(%rsp),%ebx
401         movl    %ecx,%r15d
402         rorl    $11,%r14d
403         xorl    %eax,%r12d
404         vpaddd  32(%rbp),%xmm1,%xmm6
405         xorl    %edx,%r15d
406         rorl    $6,%r13d
407         addl    %r12d,%ebx
408         andl    %r15d,%esi
409         xorl    %ecx,%r14d
410         addl    %r13d,%ebx
411         xorl    %edx,%esi
412         addl    %ebx,%r9d
413         rorl    $2,%r14d
414         addl    %esi,%ebx
415         movl    %r9d,%r13d
416         addl    %ebx,%r14d
417         rorl    $14,%r13d
418         movl    %r14d,%ebx
419         movl    %r10d,%r12d
420         xorl    %r9d,%r13d
421         rorl    $9,%r14d
422         xorl    %r11d,%r12d
423         rorl    $5,%r13d
424         xorl    %ebx,%r14d
425         andl    %r9d,%r12d
426         vaesenc %xmm10,%xmm9,%xmm9
427         vmovdqu 112-128(%rdi),%xmm10
428         xorl    %r9d,%r13d
429         addl    28(%rsp),%eax
430         movl    %ebx,%esi
431         rorl    $11,%r14d
432         xorl    %r11d,%r12d
433         xorl    %ecx,%esi
434         rorl    $6,%r13d
435         addl    %r12d,%eax
436         andl    %esi,%r15d
437         xorl    %ebx,%r14d
438         addl    %r13d,%eax
439         xorl    %ecx,%r15d
440         addl    %eax,%r8d
441         rorl    $2,%r14d
442         addl    %r15d,%eax
443         movl    %r8d,%r13d
444         addl    %eax,%r14d
445         vmovdqa %xmm6,16(%rsp)
446         vpalignr        $4,%xmm2,%xmm3,%xmm4
447         rorl    $14,%r13d
448         movl    %r14d,%eax
449         vpalignr        $4,%xmm0,%xmm1,%xmm7
450         movl    %r9d,%r12d
451         xorl    %r8d,%r13d
452 .byte   143,232,120,194,236,14
453         rorl    $9,%r14d
454         xorl    %r10d,%r12d
455         vpsrld  $3,%xmm4,%xmm4
456         rorl    $5,%r13d
457         xorl    %eax,%r14d
458         vpaddd  %xmm7,%xmm2,%xmm2
459         andl    %r8d,%r12d
460         vaesenc %xmm10,%xmm9,%xmm9
461         vmovdqu 128-128(%rdi),%xmm10
462         xorl    %r8d,%r13d
463         addl    32(%rsp),%r11d
464         movl    %eax,%r15d
465 .byte   143,232,120,194,245,11
466         rorl    $11,%r14d
467         xorl    %r10d,%r12d
468         vpxor   %xmm5,%xmm4,%xmm4
469         xorl    %ebx,%r15d
470         rorl    $6,%r13d
471         addl    %r12d,%r11d
472         andl    %r15d,%esi
473 .byte   143,232,120,194,249,13
474         xorl    %eax,%r14d
475         addl    %r13d,%r11d
476         vpxor   %xmm6,%xmm4,%xmm4
477         xorl    %ebx,%esi
478         addl    %r11d,%edx
479         vpsrld  $10,%xmm1,%xmm6
480         rorl    $2,%r14d
481         addl    %esi,%r11d
482         vpaddd  %xmm4,%xmm2,%xmm2
483         movl    %edx,%r13d
484         addl    %r11d,%r14d
485 .byte   143,232,120,194,239,2
486         rorl    $14,%r13d
487         movl    %r14d,%r11d
488         vpxor   %xmm6,%xmm7,%xmm7
489         movl    %r8d,%r12d
490         xorl    %edx,%r13d
491         rorl    $9,%r14d
492         xorl    %r9d,%r12d
493         vpxor   %xmm5,%xmm7,%xmm7
494         rorl    $5,%r13d
495         xorl    %r11d,%r14d
496         andl    %edx,%r12d
497         vaesenc %xmm10,%xmm9,%xmm9
498         vmovdqu 144-128(%rdi),%xmm10
499         xorl    %edx,%r13d
500         vpsrldq $8,%xmm7,%xmm7
501         addl    36(%rsp),%r10d
502         movl    %r11d,%esi
503         rorl    $11,%r14d
504         xorl    %r9d,%r12d
505         vpaddd  %xmm7,%xmm2,%xmm2
506         xorl    %eax,%esi
507         rorl    $6,%r13d
508         addl    %r12d,%r10d
509         andl    %esi,%r15d
510 .byte   143,232,120,194,250,13
511         xorl    %r11d,%r14d
512         addl    %r13d,%r10d
513         vpsrld  $10,%xmm2,%xmm6
514         xorl    %eax,%r15d
515         addl    %r10d,%ecx
516 .byte   143,232,120,194,239,2
517         rorl    $2,%r14d
518         addl    %r15d,%r10d
519         vpxor   %xmm6,%xmm7,%xmm7
520         movl    %ecx,%r13d
521         addl    %r10d,%r14d
522         rorl    $14,%r13d
523         movl    %r14d,%r10d
524         vpxor   %xmm5,%xmm7,%xmm7
525         movl    %edx,%r12d
526         xorl    %ecx,%r13d
527         rorl    $9,%r14d
528         xorl    %r8d,%r12d
529         vpslldq $8,%xmm7,%xmm7
530         rorl    $5,%r13d
531         xorl    %r10d,%r14d
532         andl    %ecx,%r12d
533         vaesenc %xmm10,%xmm9,%xmm9
534         vmovdqu 160-128(%rdi),%xmm10
535         xorl    %ecx,%r13d
536         vpaddd  %xmm7,%xmm2,%xmm2
537         addl    40(%rsp),%r9d
538         movl    %r10d,%r15d
539         rorl    $11,%r14d
540         xorl    %r8d,%r12d
541         vpaddd  64(%rbp),%xmm2,%xmm6
542         xorl    %r11d,%r15d
543         rorl    $6,%r13d
544         addl    %r12d,%r9d
545         andl    %r15d,%esi
546         xorl    %r10d,%r14d
547         addl    %r13d,%r9d
548         xorl    %r11d,%esi
549         addl    %r9d,%ebx
550         rorl    $2,%r14d
551         addl    %esi,%r9d
552         movl    %ebx,%r13d
553         addl    %r9d,%r14d
554         rorl    $14,%r13d
555         movl    %r14d,%r9d
556         movl    %ecx,%r12d
557         xorl    %ebx,%r13d
558         rorl    $9,%r14d
559         xorl    %edx,%r12d
560         rorl    $5,%r13d
561         xorl    %r9d,%r14d
562         andl    %ebx,%r12d
563         vaesenclast     %xmm10,%xmm9,%xmm11
564         vaesenc %xmm10,%xmm9,%xmm9
565         vmovdqu 176-128(%rdi),%xmm10
566         xorl    %ebx,%r13d
567         addl    44(%rsp),%r8d
568         movl    %r9d,%esi
569         rorl    $11,%r14d
570         xorl    %edx,%r12d
571         xorl    %r10d,%esi
572         rorl    $6,%r13d
573         addl    %r12d,%r8d
574         andl    %esi,%r15d
575         xorl    %r9d,%r14d
576         addl    %r13d,%r8d
577         xorl    %r10d,%r15d
578         addl    %r8d,%eax
579         rorl    $2,%r14d
580         addl    %r15d,%r8d
581         movl    %eax,%r13d
582         addl    %r8d,%r14d
583         vmovdqa %xmm6,32(%rsp)
584         vpalignr        $4,%xmm3,%xmm0,%xmm4
585         rorl    $14,%r13d
586         movl    %r14d,%r8d
587         vpalignr        $4,%xmm1,%xmm2,%xmm7
588         movl    %ebx,%r12d
589         xorl    %eax,%r13d
590 .byte   143,232,120,194,236,14
591         rorl    $9,%r14d
592         xorl    %ecx,%r12d
593         vpsrld  $3,%xmm4,%xmm4
594         rorl    $5,%r13d
595         xorl    %r8d,%r14d
596         vpaddd  %xmm7,%xmm3,%xmm3
597         andl    %eax,%r12d
598         vpand   %xmm12,%xmm11,%xmm8
599         vaesenc %xmm10,%xmm9,%xmm9
600         vmovdqu 192-128(%rdi),%xmm10
601         xorl    %eax,%r13d
602         addl    48(%rsp),%edx
603         movl    %r8d,%r15d
604 .byte   143,232,120,194,245,11
605         rorl    $11,%r14d
606         xorl    %ecx,%r12d
607         vpxor   %xmm5,%xmm4,%xmm4
608         xorl    %r9d,%r15d
609         rorl    $6,%r13d
610         addl    %r12d,%edx
611         andl    %r15d,%esi
612 .byte   143,232,120,194,250,13
613         xorl    %r8d,%r14d
614         addl    %r13d,%edx
615         vpxor   %xmm6,%xmm4,%xmm4
616         xorl    %r9d,%esi
617         addl    %edx,%r11d
618         vpsrld  $10,%xmm2,%xmm6
619         rorl    $2,%r14d
620         addl    %esi,%edx
621         vpaddd  %xmm4,%xmm3,%xmm3
622         movl    %r11d,%r13d
623         addl    %edx,%r14d
624 .byte   143,232,120,194,239,2
625         rorl    $14,%r13d
626         movl    %r14d,%edx
627         vpxor   %xmm6,%xmm7,%xmm7
628         movl    %eax,%r12d
629         xorl    %r11d,%r13d
630         rorl    $9,%r14d
631         xorl    %ebx,%r12d
632         vpxor   %xmm5,%xmm7,%xmm7
633         rorl    $5,%r13d
634         xorl    %edx,%r14d
635         andl    %r11d,%r12d
636         vaesenclast     %xmm10,%xmm9,%xmm11
637         vaesenc %xmm10,%xmm9,%xmm9
638         vmovdqu 208-128(%rdi),%xmm10
639         xorl    %r11d,%r13d
640         vpsrldq $8,%xmm7,%xmm7
641         addl    52(%rsp),%ecx
642         movl    %edx,%esi
643         rorl    $11,%r14d
644         xorl    %ebx,%r12d
645         vpaddd  %xmm7,%xmm3,%xmm3
646         xorl    %r8d,%esi
647         rorl    $6,%r13d
648         addl    %r12d,%ecx
649         andl    %esi,%r15d
650 .byte   143,232,120,194,251,13
651         xorl    %edx,%r14d
652         addl    %r13d,%ecx
653         vpsrld  $10,%xmm3,%xmm6
654         xorl    %r8d,%r15d
655         addl    %ecx,%r10d
656 .byte   143,232,120,194,239,2
657         rorl    $2,%r14d
658         addl    %r15d,%ecx
659         vpxor   %xmm6,%xmm7,%xmm7
660         movl    %r10d,%r13d
661         addl    %ecx,%r14d
662         rorl    $14,%r13d
663         movl    %r14d,%ecx
664         vpxor   %xmm5,%xmm7,%xmm7
665         movl    %r11d,%r12d
666         xorl    %r10d,%r13d
667         rorl    $9,%r14d
668         xorl    %eax,%r12d
669         vpslldq $8,%xmm7,%xmm7
670         rorl    $5,%r13d
671         xorl    %ecx,%r14d
672         andl    %r10d,%r12d
673         vpand   %xmm13,%xmm11,%xmm11
674         vaesenc %xmm10,%xmm9,%xmm9
675         vmovdqu 224-128(%rdi),%xmm10
676         xorl    %r10d,%r13d
677         vpaddd  %xmm7,%xmm3,%xmm3
678         addl    56(%rsp),%ebx
679         movl    %ecx,%r15d
680         rorl    $11,%r14d
681         xorl    %eax,%r12d
682         vpaddd  96(%rbp),%xmm3,%xmm6
683         xorl    %edx,%r15d
684         rorl    $6,%r13d
685         addl    %r12d,%ebx
686         andl    %r15d,%esi
687         xorl    %ecx,%r14d
688         addl    %r13d,%ebx
689         xorl    %edx,%esi
690         addl    %ebx,%r9d
691         rorl    $2,%r14d
692         addl    %esi,%ebx
693         movl    %r9d,%r13d
694         addl    %ebx,%r14d
695         rorl    $14,%r13d
696         movl    %r14d,%ebx
697         movl    %r10d,%r12d
698         xorl    %r9d,%r13d
699         rorl    $9,%r14d
700         xorl    %r11d,%r12d
701         rorl    $5,%r13d
702         xorl    %ebx,%r14d
703         andl    %r9d,%r12d
704         vpor    %xmm11,%xmm8,%xmm8
705         vaesenclast     %xmm10,%xmm9,%xmm11
706         vmovdqu 0-128(%rdi),%xmm10
707         xorl    %r9d,%r13d
708         addl    60(%rsp),%eax
709         movl    %ebx,%esi
710         rorl    $11,%r14d
711         xorl    %r11d,%r12d
712         xorl    %ecx,%esi
713         rorl    $6,%r13d
714         addl    %r12d,%eax
715         andl    %esi,%r15d
716         xorl    %ebx,%r14d
717         addl    %r13d,%eax
718         xorl    %ecx,%r15d
719         addl    %eax,%r8d
720         rorl    $2,%r14d
721         addl    %r15d,%eax
722         movl    %r8d,%r13d
723         addl    %eax,%r14d
724         vmovdqa %xmm6,48(%rsp)
725         movq    64+0(%rsp),%r12
726         vpand   %xmm14,%xmm11,%xmm11
727         movq    64+8(%rsp),%r15
728         vpor    %xmm11,%xmm8,%xmm8
729         vmovdqu %xmm8,(%r15,%r12,1)
730         leaq    16(%r12),%r12
731         cmpb    $0,131(%rbp)
732         jne     .Lxop_00_47
733         vmovdqu (%r12),%xmm9
734         movq    %r12,64+0(%rsp)
735         rorl    $14,%r13d
736         movl    %r14d,%eax
737         movl    %r9d,%r12d
738         xorl    %r8d,%r13d
739         rorl    $9,%r14d
740         xorl    %r10d,%r12d
741         rorl    $5,%r13d
742         xorl    %eax,%r14d
743         andl    %r8d,%r12d
744         vpxor   %xmm10,%xmm9,%xmm9
745         vmovdqu 16-128(%rdi),%xmm10
746         xorl    %r8d,%r13d
747         addl    0(%rsp),%r11d
748         movl    %eax,%r15d
749         rorl    $11,%r14d
750         xorl    %r10d,%r12d
751         xorl    %ebx,%r15d
752         rorl    $6,%r13d
753         addl    %r12d,%r11d
754         andl    %r15d,%esi
755         xorl    %eax,%r14d
756         addl    %r13d,%r11d
757         xorl    %ebx,%esi
758         addl    %r11d,%edx
759         rorl    $2,%r14d
760         addl    %esi,%r11d
761         movl    %edx,%r13d
762         addl    %r11d,%r14d
763         rorl    $14,%r13d
764         movl    %r14d,%r11d
765         movl    %r8d,%r12d
766         xorl    %edx,%r13d
767         rorl    $9,%r14d
768         xorl    %r9d,%r12d
769         rorl    $5,%r13d
770         xorl    %r11d,%r14d
771         andl    %edx,%r12d
772         vpxor   %xmm8,%xmm9,%xmm9
773         xorl    %edx,%r13d
774         addl    4(%rsp),%r10d
775         movl    %r11d,%esi
776         rorl    $11,%r14d
777         xorl    %r9d,%r12d
778         xorl    %eax,%esi
779         rorl    $6,%r13d
780         addl    %r12d,%r10d
781         andl    %esi,%r15d
782         xorl    %r11d,%r14d
783         addl    %r13d,%r10d
784         xorl    %eax,%r15d
785         addl    %r10d,%ecx
786         rorl    $2,%r14d
787         addl    %r15d,%r10d
788         movl    %ecx,%r13d
789         addl    %r10d,%r14d
790         rorl    $14,%r13d
791         movl    %r14d,%r10d
792         movl    %edx,%r12d
793         xorl    %ecx,%r13d
794         rorl    $9,%r14d
795         xorl    %r8d,%r12d
796         rorl    $5,%r13d
797         xorl    %r10d,%r14d
798         andl    %ecx,%r12d
799         vaesenc %xmm10,%xmm9,%xmm9
800         vmovdqu 32-128(%rdi),%xmm10
801         xorl    %ecx,%r13d
802         addl    8(%rsp),%r9d
803         movl    %r10d,%r15d
804         rorl    $11,%r14d
805         xorl    %r8d,%r12d
806         xorl    %r11d,%r15d
807         rorl    $6,%r13d
808         addl    %r12d,%r9d
809         andl    %r15d,%esi
810         xorl    %r10d,%r14d
811         addl    %r13d,%r9d
812         xorl    %r11d,%esi
813         addl    %r9d,%ebx
814         rorl    $2,%r14d
815         addl    %esi,%r9d
816         movl    %ebx,%r13d
817         addl    %r9d,%r14d
818         rorl    $14,%r13d
819         movl    %r14d,%r9d
820         movl    %ecx,%r12d
821         xorl    %ebx,%r13d
822         rorl    $9,%r14d
823         xorl    %edx,%r12d
824         rorl    $5,%r13d
825         xorl    %r9d,%r14d
826         andl    %ebx,%r12d
827         vaesenc %xmm10,%xmm9,%xmm9
828         vmovdqu 48-128(%rdi),%xmm10
829         xorl    %ebx,%r13d
830         addl    12(%rsp),%r8d
831         movl    %r9d,%esi
832         rorl    $11,%r14d
833         xorl    %edx,%r12d
834         xorl    %r10d,%esi
835         rorl    $6,%r13d
836         addl    %r12d,%r8d
837         andl    %esi,%r15d
838         xorl    %r9d,%r14d
839         addl    %r13d,%r8d
840         xorl    %r10d,%r15d
841         addl    %r8d,%eax
842         rorl    $2,%r14d
843         addl    %r15d,%r8d
844         movl    %eax,%r13d
845         addl    %r8d,%r14d
846         rorl    $14,%r13d
847         movl    %r14d,%r8d
848         movl    %ebx,%r12d
849         xorl    %eax,%r13d
850         rorl    $9,%r14d
851         xorl    %ecx,%r12d
852         rorl    $5,%r13d
853         xorl    %r8d,%r14d
854         andl    %eax,%r12d
855         vaesenc %xmm10,%xmm9,%xmm9
856         vmovdqu 64-128(%rdi),%xmm10
857         xorl    %eax,%r13d
858         addl    16(%rsp),%edx
859         movl    %r8d,%r15d
860         rorl    $11,%r14d
861         xorl    %ecx,%r12d
862         xorl    %r9d,%r15d
863         rorl    $6,%r13d
864         addl    %r12d,%edx
865         andl    %r15d,%esi
866         xorl    %r8d,%r14d
867         addl    %r13d,%edx
868         xorl    %r9d,%esi
869         addl    %edx,%r11d
870         rorl    $2,%r14d
871         addl    %esi,%edx
872         movl    %r11d,%r13d
873         addl    %edx,%r14d
874         rorl    $14,%r13d
875         movl    %r14d,%edx
876         movl    %eax,%r12d
877         xorl    %r11d,%r13d
878         rorl    $9,%r14d
879         xorl    %ebx,%r12d
880         rorl    $5,%r13d
881         xorl    %edx,%r14d
882         andl    %r11d,%r12d
883         vaesenc %xmm10,%xmm9,%xmm9
884         vmovdqu 80-128(%rdi),%xmm10
885         xorl    %r11d,%r13d
886         addl    20(%rsp),%ecx
887         movl    %edx,%esi
888         rorl    $11,%r14d
889         xorl    %ebx,%r12d
890         xorl    %r8d,%esi
891         rorl    $6,%r13d
892         addl    %r12d,%ecx
893         andl    %esi,%r15d
894         xorl    %edx,%r14d
895         addl    %r13d,%ecx
896         xorl    %r8d,%r15d
897         addl    %ecx,%r10d
898         rorl    $2,%r14d
899         addl    %r15d,%ecx
900         movl    %r10d,%r13d
901         addl    %ecx,%r14d
902         rorl    $14,%r13d
903         movl    %r14d,%ecx
904         movl    %r11d,%r12d
905         xorl    %r10d,%r13d
906         rorl    $9,%r14d
907         xorl    %eax,%r12d
908         rorl    $5,%r13d
909         xorl    %ecx,%r14d
910         andl    %r10d,%r12d
911         vaesenc %xmm10,%xmm9,%xmm9
912         vmovdqu 96-128(%rdi),%xmm10
913         xorl    %r10d,%r13d
914         addl    24(%rsp),%ebx
915         movl    %ecx,%r15d
916         rorl    $11,%r14d
917         xorl    %eax,%r12d
918         xorl    %edx,%r15d
919         rorl    $6,%r13d
920         addl    %r12d,%ebx
921         andl    %r15d,%esi
922         xorl    %ecx,%r14d
923         addl    %r13d,%ebx
924         xorl    %edx,%esi
925         addl    %ebx,%r9d
926         rorl    $2,%r14d
927         addl    %esi,%ebx
928         movl    %r9d,%r13d
929         addl    %ebx,%r14d
930         rorl    $14,%r13d
931         movl    %r14d,%ebx
932         movl    %r10d,%r12d
933         xorl    %r9d,%r13d
934         rorl    $9,%r14d
935         xorl    %r11d,%r12d
936         rorl    $5,%r13d
937         xorl    %ebx,%r14d
938         andl    %r9d,%r12d
939         vaesenc %xmm10,%xmm9,%xmm9
940         vmovdqu 112-128(%rdi),%xmm10
941         xorl    %r9d,%r13d
942         addl    28(%rsp),%eax
943         movl    %ebx,%esi
944         rorl    $11,%r14d
945         xorl    %r11d,%r12d
946         xorl    %ecx,%esi
947         rorl    $6,%r13d
948         addl    %r12d,%eax
949         andl    %esi,%r15d
950         xorl    %ebx,%r14d
951         addl    %r13d,%eax
952         xorl    %ecx,%r15d
953         addl    %eax,%r8d
954         rorl    $2,%r14d
955         addl    %r15d,%eax
956         movl    %r8d,%r13d
957         addl    %eax,%r14d
958         rorl    $14,%r13d
959         movl    %r14d,%eax
960         movl    %r9d,%r12d
961         xorl    %r8d,%r13d
962         rorl    $9,%r14d
963         xorl    %r10d,%r12d
964         rorl    $5,%r13d
965         xorl    %eax,%r14d
966         andl    %r8d,%r12d
967         vaesenc %xmm10,%xmm9,%xmm9
968         vmovdqu 128-128(%rdi),%xmm10
969         xorl    %r8d,%r13d
970         addl    32(%rsp),%r11d
971         movl    %eax,%r15d
972         rorl    $11,%r14d
973         xorl    %r10d,%r12d
974         xorl    %ebx,%r15d
975         rorl    $6,%r13d
976         addl    %r12d,%r11d
977         andl    %r15d,%esi
978         xorl    %eax,%r14d
979         addl    %r13d,%r11d
980         xorl    %ebx,%esi
981         addl    %r11d,%edx
982         rorl    $2,%r14d
983         addl    %esi,%r11d
984         movl    %edx,%r13d
985         addl    %r11d,%r14d
986         rorl    $14,%r13d
987         movl    %r14d,%r11d
988         movl    %r8d,%r12d
989         xorl    %edx,%r13d
990         rorl    $9,%r14d
991         xorl    %r9d,%r12d
992         rorl    $5,%r13d
993         xorl    %r11d,%r14d
994         andl    %edx,%r12d
995         vaesenc %xmm10,%xmm9,%xmm9
996         vmovdqu 144-128(%rdi),%xmm10
997         xorl    %edx,%r13d
998         addl    36(%rsp),%r10d
999         movl    %r11d,%esi
1000         rorl    $11,%r14d
1001         xorl    %r9d,%r12d
1002         xorl    %eax,%esi
1003         rorl    $6,%r13d
1004         addl    %r12d,%r10d
1005         andl    %esi,%r15d
1006         xorl    %r11d,%r14d
1007         addl    %r13d,%r10d
1008         xorl    %eax,%r15d
1009         addl    %r10d,%ecx
1010         rorl    $2,%r14d
1011         addl    %r15d,%r10d
1012         movl    %ecx,%r13d
1013         addl    %r10d,%r14d
1014         rorl    $14,%r13d
1015         movl    %r14d,%r10d
1016         movl    %edx,%r12d
1017         xorl    %ecx,%r13d
1018         rorl    $9,%r14d
1019         xorl    %r8d,%r12d
1020         rorl    $5,%r13d
1021         xorl    %r10d,%r14d
1022         andl    %ecx,%r12d
1023         vaesenc %xmm10,%xmm9,%xmm9
1024         vmovdqu 160-128(%rdi),%xmm10
1025         xorl    %ecx,%r13d
1026         addl    40(%rsp),%r9d
1027         movl    %r10d,%r15d
1028         rorl    $11,%r14d
1029         xorl    %r8d,%r12d
1030         xorl    %r11d,%r15d
1031         rorl    $6,%r13d
1032         addl    %r12d,%r9d
1033         andl    %r15d,%esi
1034         xorl    %r10d,%r14d
1035         addl    %r13d,%r9d
1036         xorl    %r11d,%esi
1037         addl    %r9d,%ebx
1038         rorl    $2,%r14d
1039         addl    %esi,%r9d
1040         movl    %ebx,%r13d
1041         addl    %r9d,%r14d
1042         rorl    $14,%r13d
1043         movl    %r14d,%r9d
1044         movl    %ecx,%r12d
1045         xorl    %ebx,%r13d
1046         rorl    $9,%r14d
1047         xorl    %edx,%r12d
1048         rorl    $5,%r13d
1049         xorl    %r9d,%r14d
1050         andl    %ebx,%r12d
1051         vaesenclast     %xmm10,%xmm9,%xmm11
1052         vaesenc %xmm10,%xmm9,%xmm9
1053         vmovdqu 176-128(%rdi),%xmm10
1054         xorl    %ebx,%r13d
1055         addl    44(%rsp),%r8d
1056         movl    %r9d,%esi
1057         rorl    $11,%r14d
1058         xorl    %edx,%r12d
1059         xorl    %r10d,%esi
1060         rorl    $6,%r13d
1061         addl    %r12d,%r8d
1062         andl    %esi,%r15d
1063         xorl    %r9d,%r14d
1064         addl    %r13d,%r8d
1065         xorl    %r10d,%r15d
1066         addl    %r8d,%eax
1067         rorl    $2,%r14d
1068         addl    %r15d,%r8d
1069         movl    %eax,%r13d
1070         addl    %r8d,%r14d
1071         rorl    $14,%r13d
1072         movl    %r14d,%r8d
1073         movl    %ebx,%r12d
1074         xorl    %eax,%r13d
1075         rorl    $9,%r14d
1076         xorl    %ecx,%r12d
1077         rorl    $5,%r13d
1078         xorl    %r8d,%r14d
1079         andl    %eax,%r12d
1080         vpand   %xmm12,%xmm11,%xmm8
1081         vaesenc %xmm10,%xmm9,%xmm9
1082         vmovdqu 192-128(%rdi),%xmm10
1083         xorl    %eax,%r13d
1084         addl    48(%rsp),%edx
1085         movl    %r8d,%r15d
1086         rorl    $11,%r14d
1087         xorl    %ecx,%r12d
1088         xorl    %r9d,%r15d
1089         rorl    $6,%r13d
1090         addl    %r12d,%edx
1091         andl    %r15d,%esi
1092         xorl    %r8d,%r14d
1093         addl    %r13d,%edx
1094         xorl    %r9d,%esi
1095         addl    %edx,%r11d
1096         rorl    $2,%r14d
1097         addl    %esi,%edx
1098         movl    %r11d,%r13d
1099         addl    %edx,%r14d
1100         rorl    $14,%r13d
1101         movl    %r14d,%edx
1102         movl    %eax,%r12d
1103         xorl    %r11d,%r13d
1104         rorl    $9,%r14d
1105         xorl    %ebx,%r12d
1106         rorl    $5,%r13d
1107         xorl    %edx,%r14d
1108         andl    %r11d,%r12d
1109         vaesenclast     %xmm10,%xmm9,%xmm11
1110         vaesenc %xmm10,%xmm9,%xmm9
1111         vmovdqu 208-128(%rdi),%xmm10
1112         xorl    %r11d,%r13d
1113         addl    52(%rsp),%ecx
1114         movl    %edx,%esi
1115         rorl    $11,%r14d
1116         xorl    %ebx,%r12d
1117         xorl    %r8d,%esi
1118         rorl    $6,%r13d
1119         addl    %r12d,%ecx
1120         andl    %esi,%r15d
1121         xorl    %edx,%r14d
1122         addl    %r13d,%ecx
1123         xorl    %r8d,%r15d
1124         addl    %ecx,%r10d
1125         rorl    $2,%r14d
1126         addl    %r15d,%ecx
1127         movl    %r10d,%r13d
1128         addl    %ecx,%r14d
1129         rorl    $14,%r13d
1130         movl    %r14d,%ecx
1131         movl    %r11d,%r12d
1132         xorl    %r10d,%r13d
1133         rorl    $9,%r14d
1134         xorl    %eax,%r12d
1135         rorl    $5,%r13d
1136         xorl    %ecx,%r14d
1137         andl    %r10d,%r12d
1138         vpand   %xmm13,%xmm11,%xmm11
1139         vaesenc %xmm10,%xmm9,%xmm9
1140         vmovdqu 224-128(%rdi),%xmm10
1141         xorl    %r10d,%r13d
1142         addl    56(%rsp),%ebx
1143         movl    %ecx,%r15d
1144         rorl    $11,%r14d
1145         xorl    %eax,%r12d
1146         xorl    %edx,%r15d
1147         rorl    $6,%r13d
1148         addl    %r12d,%ebx
1149         andl    %r15d,%esi
1150         xorl    %ecx,%r14d
1151         addl    %r13d,%ebx
1152         xorl    %edx,%esi
1153         addl    %ebx,%r9d
1154         rorl    $2,%r14d
1155         addl    %esi,%ebx
1156         movl    %r9d,%r13d
1157         addl    %ebx,%r14d
1158         rorl    $14,%r13d
1159         movl    %r14d,%ebx
1160         movl    %r10d,%r12d
1161         xorl    %r9d,%r13d
1162         rorl    $9,%r14d
1163         xorl    %r11d,%r12d
1164         rorl    $5,%r13d
1165         xorl    %ebx,%r14d
1166         andl    %r9d,%r12d
1167         vpor    %xmm11,%xmm8,%xmm8
1168         vaesenclast     %xmm10,%xmm9,%xmm11
1169         vmovdqu 0-128(%rdi),%xmm10
1170         xorl    %r9d,%r13d
1171         addl    60(%rsp),%eax
1172         movl    %ebx,%esi
1173         rorl    $11,%r14d
1174         xorl    %r11d,%r12d
1175         xorl    %ecx,%esi
1176         rorl    $6,%r13d
1177         addl    %r12d,%eax
1178         andl    %esi,%r15d
1179         xorl    %ebx,%r14d
1180         addl    %r13d,%eax
1181         xorl    %ecx,%r15d
1182         addl    %eax,%r8d
1183         rorl    $2,%r14d
1184         addl    %r15d,%eax
1185         movl    %r8d,%r13d
1186         addl    %eax,%r14d
1187         movq    64+0(%rsp),%r12
1188         movq    64+8(%rsp),%r13
1189         movq    64+40(%rsp),%r15
1190         movq    64+48(%rsp),%rsi
1191
1192         vpand   %xmm14,%xmm11,%xmm11
1193         movl    %r14d,%eax
1194         vpor    %xmm11,%xmm8,%xmm8
1195         vmovdqu %xmm8,(%r12,%r13,1)
1196         leaq    16(%r12),%r12
1197
1198         addl    0(%r15),%eax
1199         addl    4(%r15),%ebx
1200         addl    8(%r15),%ecx
1201         addl    12(%r15),%edx
1202         addl    16(%r15),%r8d
1203         addl    20(%r15),%r9d
1204         addl    24(%r15),%r10d
1205         addl    28(%r15),%r11d
1206
1207         cmpq    64+16(%rsp),%r12
1208
1209         movl    %eax,0(%r15)
1210         movl    %ebx,4(%r15)
1211         movl    %ecx,8(%r15)
1212         movl    %edx,12(%r15)
1213         movl    %r8d,16(%r15)
1214         movl    %r9d,20(%r15)
1215         movl    %r10d,24(%r15)
1216         movl    %r11d,28(%r15)
1217
1218         jb      .Lloop_xop
1219
1220         movq    64+32(%rsp),%r8
1221         movq    120(%rsp),%rsi
1222 .cfi_def_cfa    %rsi,8
1223         vmovdqu %xmm8,(%r8)
1224         vzeroall
1225         movq    -48(%rsi),%r15
1226 .cfi_restore    %r15
1227         movq    -40(%rsi),%r14
1228 .cfi_restore    %r14
1229         movq    -32(%rsi),%r13
1230 .cfi_restore    %r13
1231         movq    -24(%rsi),%r12
1232 .cfi_restore    %r12
1233         movq    -16(%rsi),%rbp
1234 .cfi_restore    %rbp
1235         movq    -8(%rsi),%rbx
1236 .cfi_restore    %rbx
1237         leaq    (%rsi),%rsp
1238 .cfi_def_cfa_register   %rsp
1239 .Lepilogue_xop:
1240         .byte   0xf3,0xc3
1241 .cfi_endproc    
1242 .size   aesni_cbc_sha256_enc_xop,.-aesni_cbc_sha256_enc_xop
1243 .type   aesni_cbc_sha256_enc_avx,@function
1244 .align  64
1245 aesni_cbc_sha256_enc_avx:
1246 .cfi_startproc  
1247 .Lavx_shortcut:
1248         movq    8(%rsp),%r10
1249         movq    %rsp,%rax
1250 .cfi_def_cfa_register   %rax
1251         pushq   %rbx
1252 .cfi_offset     %rbx,-16
1253         pushq   %rbp
1254 .cfi_offset     %rbp,-24
1255         pushq   %r12
1256 .cfi_offset     %r12,-32
1257         pushq   %r13
1258 .cfi_offset     %r13,-40
1259         pushq   %r14
1260 .cfi_offset     %r14,-48
1261         pushq   %r15
1262 .cfi_offset     %r15,-56
1263         subq    $128,%rsp
1264         andq    $-64,%rsp
1265
1266         shlq    $6,%rdx
1267         subq    %rdi,%rsi
1268         subq    %rdi,%r10
1269         addq    %rdi,%rdx
1270
1271
1272         movq    %rsi,64+8(%rsp)
1273         movq    %rdx,64+16(%rsp)
1274
1275         movq    %r8,64+32(%rsp)
1276         movq    %r9,64+40(%rsp)
1277         movq    %r10,64+48(%rsp)
1278         movq    %rax,120(%rsp)
1279 .cfi_escape     0x0f,0x06,0x77,0xf8,0x00,0x06,0x23,0x08
1280 .Lprologue_avx:
1281         vzeroall
1282
1283         movq    %rdi,%r12
1284         leaq    128(%rcx),%rdi
1285         leaq    K256+544(%rip),%r13
1286         movl    240-128(%rdi),%r14d
1287         movq    %r9,%r15
1288         movq    %r10,%rsi
1289         vmovdqu (%r8),%xmm8
1290         subq    $9,%r14
1291
1292         movl    0(%r15),%eax
1293         movl    4(%r15),%ebx
1294         movl    8(%r15),%ecx
1295         movl    12(%r15),%edx
1296         movl    16(%r15),%r8d
1297         movl    20(%r15),%r9d
1298         movl    24(%r15),%r10d
1299         movl    28(%r15),%r11d
1300
1301         vmovdqa 0(%r13,%r14,8),%xmm14
1302         vmovdqa 16(%r13,%r14,8),%xmm13
1303         vmovdqa 32(%r13,%r14,8),%xmm12
1304         vmovdqu 0-128(%rdi),%xmm10
1305         jmp     .Lloop_avx
1306 .align  16
1307 .Lloop_avx:
1308         vmovdqa K256+512(%rip),%xmm7
1309         vmovdqu 0(%rsi,%r12,1),%xmm0
1310         vmovdqu 16(%rsi,%r12,1),%xmm1
1311         vmovdqu 32(%rsi,%r12,1),%xmm2
1312         vmovdqu 48(%rsi,%r12,1),%xmm3
1313         vpshufb %xmm7,%xmm0,%xmm0
1314         leaq    K256(%rip),%rbp
1315         vpshufb %xmm7,%xmm1,%xmm1
1316         vpshufb %xmm7,%xmm2,%xmm2
1317         vpaddd  0(%rbp),%xmm0,%xmm4
1318         vpshufb %xmm7,%xmm3,%xmm3
1319         vpaddd  32(%rbp),%xmm1,%xmm5
1320         vpaddd  64(%rbp),%xmm2,%xmm6
1321         vpaddd  96(%rbp),%xmm3,%xmm7
1322         vmovdqa %xmm4,0(%rsp)
1323         movl    %eax,%r14d
1324         vmovdqa %xmm5,16(%rsp)
1325         movl    %ebx,%esi
1326         vmovdqa %xmm6,32(%rsp)
1327         xorl    %ecx,%esi
1328         vmovdqa %xmm7,48(%rsp)
1329         movl    %r8d,%r13d
1330         jmp     .Lavx_00_47
1331
1332 .align  16
1333 .Lavx_00_47:
1334         subq    $-32*4,%rbp
1335         vmovdqu (%r12),%xmm9
1336         movq    %r12,64+0(%rsp)
1337         vpalignr        $4,%xmm0,%xmm1,%xmm4
1338         shrdl   $14,%r13d,%r13d
1339         movl    %r14d,%eax
1340         movl    %r9d,%r12d
1341         vpalignr        $4,%xmm2,%xmm3,%xmm7
1342         xorl    %r8d,%r13d
1343         shrdl   $9,%r14d,%r14d
1344         xorl    %r10d,%r12d
1345         vpsrld  $7,%xmm4,%xmm6
1346         shrdl   $5,%r13d,%r13d
1347         xorl    %eax,%r14d
1348         andl    %r8d,%r12d
1349         vpaddd  %xmm7,%xmm0,%xmm0
1350         vpxor   %xmm10,%xmm9,%xmm9
1351         vmovdqu 16-128(%rdi),%xmm10
1352         xorl    %r8d,%r13d
1353         addl    0(%rsp),%r11d
1354         movl    %eax,%r15d
1355         vpsrld  $3,%xmm4,%xmm7
1356         shrdl   $11,%r14d,%r14d
1357         xorl    %r10d,%r12d
1358         xorl    %ebx,%r15d
1359         vpslld  $14,%xmm4,%xmm5
1360         shrdl   $6,%r13d,%r13d
1361         addl    %r12d,%r11d
1362         andl    %r15d,%esi
1363         vpxor   %xmm6,%xmm7,%xmm4
1364         xorl    %eax,%r14d
1365         addl    %r13d,%r11d
1366         xorl    %ebx,%esi
1367         vpshufd $250,%xmm3,%xmm7
1368         addl    %r11d,%edx
1369         shrdl   $2,%r14d,%r14d
1370         addl    %esi,%r11d
1371         vpsrld  $11,%xmm6,%xmm6
1372         movl    %edx,%r13d
1373         addl    %r11d,%r14d
1374         shrdl   $14,%r13d,%r13d
1375         vpxor   %xmm5,%xmm4,%xmm4
1376         movl    %r14d,%r11d
1377         movl    %r8d,%r12d
1378         xorl    %edx,%r13d
1379         vpslld  $11,%xmm5,%xmm5
1380         shrdl   $9,%r14d,%r14d
1381         xorl    %r9d,%r12d
1382         shrdl   $5,%r13d,%r13d
1383         vpxor   %xmm6,%xmm4,%xmm4
1384         xorl    %r11d,%r14d
1385         andl    %edx,%r12d
1386         vpxor   %xmm8,%xmm9,%xmm9
1387         xorl    %edx,%r13d
1388         vpsrld  $10,%xmm7,%xmm6
1389         addl    4(%rsp),%r10d
1390         movl    %r11d,%esi
1391         shrdl   $11,%r14d,%r14d
1392         vpxor   %xmm5,%xmm4,%xmm4
1393         xorl    %r9d,%r12d
1394         xorl    %eax,%esi
1395         shrdl   $6,%r13d,%r13d
1396         vpsrlq  $17,%xmm7,%xmm7
1397         addl    %r12d,%r10d
1398         andl    %esi,%r15d
1399         xorl    %r11d,%r14d
1400         vpaddd  %xmm4,%xmm0,%xmm0
1401         addl    %r13d,%r10d
1402         xorl    %eax,%r15d
1403         addl    %r10d,%ecx
1404         vpxor   %xmm7,%xmm6,%xmm6
1405         shrdl   $2,%r14d,%r14d
1406         addl    %r15d,%r10d
1407         movl    %ecx,%r13d
1408         vpsrlq  $2,%xmm7,%xmm7
1409         addl    %r10d,%r14d
1410         shrdl   $14,%r13d,%r13d
1411         movl    %r14d,%r10d
1412         vpxor   %xmm7,%xmm6,%xmm6
1413         movl    %edx,%r12d
1414         xorl    %ecx,%r13d
1415         shrdl   $9,%r14d,%r14d
1416         vpshufd $132,%xmm6,%xmm6
1417         xorl    %r8d,%r12d
1418         shrdl   $5,%r13d,%r13d
1419         xorl    %r10d,%r14d
1420         vpsrldq $8,%xmm6,%xmm6
1421         andl    %ecx,%r12d
1422         vaesenc %xmm10,%xmm9,%xmm9
1423         vmovdqu 32-128(%rdi),%xmm10
1424         xorl    %ecx,%r13d
1425         addl    8(%rsp),%r9d
1426         vpaddd  %xmm6,%xmm0,%xmm0
1427         movl    %r10d,%r15d
1428         shrdl   $11,%r14d,%r14d
1429         xorl    %r8d,%r12d
1430         vpshufd $80,%xmm0,%xmm7
1431         xorl    %r11d,%r15d
1432         shrdl   $6,%r13d,%r13d
1433         addl    %r12d,%r9d
1434         vpsrld  $10,%xmm7,%xmm6
1435         andl    %r15d,%esi
1436         xorl    %r10d,%r14d
1437         addl    %r13d,%r9d
1438         vpsrlq  $17,%xmm7,%xmm7
1439         xorl    %r11d,%esi
1440         addl    %r9d,%ebx
1441         shrdl   $2,%r14d,%r14d
1442         vpxor   %xmm7,%xmm6,%xmm6
1443         addl    %esi,%r9d
1444         movl    %ebx,%r13d
1445         addl    %r9d,%r14d
1446         vpsrlq  $2,%xmm7,%xmm7
1447         shrdl   $14,%r13d,%r13d
1448         movl    %r14d,%r9d
1449         movl    %ecx,%r12d
1450         vpxor   %xmm7,%xmm6,%xmm6
1451         xorl    %ebx,%r13d
1452         shrdl   $9,%r14d,%r14d
1453         xorl    %edx,%r12d
1454         vpshufd $232,%xmm6,%xmm6
1455         shrdl   $5,%r13d,%r13d
1456         xorl    %r9d,%r14d
1457         andl    %ebx,%r12d
1458         vpslldq $8,%xmm6,%xmm6
1459         vaesenc %xmm10,%xmm9,%xmm9
1460         vmovdqu 48-128(%rdi),%xmm10
1461         xorl    %ebx,%r13d
1462         addl    12(%rsp),%r8d
1463         movl    %r9d,%esi
1464         vpaddd  %xmm6,%xmm0,%xmm0
1465         shrdl   $11,%r14d,%r14d
1466         xorl    %edx,%r12d
1467         xorl    %r10d,%esi
1468         vpaddd  0(%rbp),%xmm0,%xmm6
1469         shrdl   $6,%r13d,%r13d
1470         addl    %r12d,%r8d
1471         andl    %esi,%r15d
1472         xorl    %r9d,%r14d
1473         addl    %r13d,%r8d
1474         xorl    %r10d,%r15d
1475         addl    %r8d,%eax
1476         shrdl   $2,%r14d,%r14d
1477         addl    %r15d,%r8d
1478         movl    %eax,%r13d
1479         addl    %r8d,%r14d
1480         vmovdqa %xmm6,0(%rsp)
1481         vpalignr        $4,%xmm1,%xmm2,%xmm4
1482         shrdl   $14,%r13d,%r13d
1483         movl    %r14d,%r8d
1484         movl    %ebx,%r12d
1485         vpalignr        $4,%xmm3,%xmm0,%xmm7
1486         xorl    %eax,%r13d
1487         shrdl   $9,%r14d,%r14d
1488         xorl    %ecx,%r12d
1489         vpsrld  $7,%xmm4,%xmm6
1490         shrdl   $5,%r13d,%r13d
1491         xorl    %r8d,%r14d
1492         andl    %eax,%r12d
1493         vpaddd  %xmm7,%xmm1,%xmm1
1494         vaesenc %xmm10,%xmm9,%xmm9
1495         vmovdqu 64-128(%rdi),%xmm10
1496         xorl    %eax,%r13d
1497         addl    16(%rsp),%edx
1498         movl    %r8d,%r15d
1499         vpsrld  $3,%xmm4,%xmm7
1500         shrdl   $11,%r14d,%r14d
1501         xorl    %ecx,%r12d
1502         xorl    %r9d,%r15d
1503         vpslld  $14,%xmm4,%xmm5
1504         shrdl   $6,%r13d,%r13d
1505         addl    %r12d,%edx
1506         andl    %r15d,%esi
1507         vpxor   %xmm6,%xmm7,%xmm4
1508         xorl    %r8d,%r14d
1509         addl    %r13d,%edx
1510         xorl    %r9d,%esi
1511         vpshufd $250,%xmm0,%xmm7
1512         addl    %edx,%r11d
1513         shrdl   $2,%r14d,%r14d
1514         addl    %esi,%edx
1515         vpsrld  $11,%xmm6,%xmm6
1516         movl    %r11d,%r13d
1517         addl    %edx,%r14d
1518         shrdl   $14,%r13d,%r13d
1519         vpxor   %xmm5,%xmm4,%xmm4
1520         movl    %r14d,%edx
1521         movl    %eax,%r12d
1522         xorl    %r11d,%r13d
1523         vpslld  $11,%xmm5,%xmm5
1524         shrdl   $9,%r14d,%r14d
1525         xorl    %ebx,%r12d
1526         shrdl   $5,%r13d,%r13d
1527         vpxor   %xmm6,%xmm4,%xmm4
1528         xorl    %edx,%r14d
1529         andl    %r11d,%r12d
1530         vaesenc %xmm10,%xmm9,%xmm9
1531         vmovdqu 80-128(%rdi),%xmm10
1532         xorl    %r11d,%r13d
1533         vpsrld  $10,%xmm7,%xmm6
1534         addl    20(%rsp),%ecx
1535         movl    %edx,%esi
1536         shrdl   $11,%r14d,%r14d
1537         vpxor   %xmm5,%xmm4,%xmm4
1538         xorl    %ebx,%r12d
1539         xorl    %r8d,%esi
1540         shrdl   $6,%r13d,%r13d
1541         vpsrlq  $17,%xmm7,%xmm7
1542         addl    %r12d,%ecx
1543         andl    %esi,%r15d
1544         xorl    %edx,%r14d
1545         vpaddd  %xmm4,%xmm1,%xmm1
1546         addl    %r13d,%ecx
1547         xorl    %r8d,%r15d
1548         addl    %ecx,%r10d
1549         vpxor   %xmm7,%xmm6,%xmm6
1550         shrdl   $2,%r14d,%r14d
1551         addl    %r15d,%ecx
1552         movl    %r10d,%r13d
1553         vpsrlq  $2,%xmm7,%xmm7
1554         addl    %ecx,%r14d
1555         shrdl   $14,%r13d,%r13d
1556         movl    %r14d,%ecx
1557         vpxor   %xmm7,%xmm6,%xmm6
1558         movl    %r11d,%r12d
1559         xorl    %r10d,%r13d
1560         shrdl   $9,%r14d,%r14d
1561         vpshufd $132,%xmm6,%xmm6
1562         xorl    %eax,%r12d
1563         shrdl   $5,%r13d,%r13d
1564         xorl    %ecx,%r14d
1565         vpsrldq $8,%xmm6,%xmm6
1566         andl    %r10d,%r12d
1567         vaesenc %xmm10,%xmm9,%xmm9
1568         vmovdqu 96-128(%rdi),%xmm10
1569         xorl    %r10d,%r13d
1570         addl    24(%rsp),%ebx
1571         vpaddd  %xmm6,%xmm1,%xmm1
1572         movl    %ecx,%r15d
1573         shrdl   $11,%r14d,%r14d
1574         xorl    %eax,%r12d
1575         vpshufd $80,%xmm1,%xmm7
1576         xorl    %edx,%r15d
1577         shrdl   $6,%r13d,%r13d
1578         addl    %r12d,%ebx
1579         vpsrld  $10,%xmm7,%xmm6
1580         andl    %r15d,%esi
1581         xorl    %ecx,%r14d
1582         addl    %r13d,%ebx
1583         vpsrlq  $17,%xmm7,%xmm7
1584         xorl    %edx,%esi
1585         addl    %ebx,%r9d
1586         shrdl   $2,%r14d,%r14d
1587         vpxor   %xmm7,%xmm6,%xmm6
1588         addl    %esi,%ebx
1589         movl    %r9d,%r13d
1590         addl    %ebx,%r14d
1591         vpsrlq  $2,%xmm7,%xmm7
1592         shrdl   $14,%r13d,%r13d
1593         movl    %r14d,%ebx
1594         movl    %r10d,%r12d
1595         vpxor   %xmm7,%xmm6,%xmm6
1596         xorl    %r9d,%r13d
1597         shrdl   $9,%r14d,%r14d
1598         xorl    %r11d,%r12d
1599         vpshufd $232,%xmm6,%xmm6
1600         shrdl   $5,%r13d,%r13d
1601         xorl    %ebx,%r14d
1602         andl    %r9d,%r12d
1603         vpslldq $8,%xmm6,%xmm6
1604         vaesenc %xmm10,%xmm9,%xmm9
1605         vmovdqu 112-128(%rdi),%xmm10
1606         xorl    %r9d,%r13d
1607         addl    28(%rsp),%eax
1608         movl    %ebx,%esi
1609         vpaddd  %xmm6,%xmm1,%xmm1
1610         shrdl   $11,%r14d,%r14d
1611         xorl    %r11d,%r12d
1612         xorl    %ecx,%esi
1613         vpaddd  32(%rbp),%xmm1,%xmm6
1614         shrdl   $6,%r13d,%r13d
1615         addl    %r12d,%eax
1616         andl    %esi,%r15d
1617         xorl    %ebx,%r14d
1618         addl    %r13d,%eax
1619         xorl    %ecx,%r15d
1620         addl    %eax,%r8d
1621         shrdl   $2,%r14d,%r14d
1622         addl    %r15d,%eax
1623         movl    %r8d,%r13d
1624         addl    %eax,%r14d
1625         vmovdqa %xmm6,16(%rsp)
1626         vpalignr        $4,%xmm2,%xmm3,%xmm4
1627         shrdl   $14,%r13d,%r13d
1628         movl    %r14d,%eax
1629         movl    %r9d,%r12d
1630         vpalignr        $4,%xmm0,%xmm1,%xmm7
1631         xorl    %r8d,%r13d
1632         shrdl   $9,%r14d,%r14d
1633         xorl    %r10d,%r12d
1634         vpsrld  $7,%xmm4,%xmm6
1635         shrdl   $5,%r13d,%r13d
1636         xorl    %eax,%r14d
1637         andl    %r8d,%r12d
1638         vpaddd  %xmm7,%xmm2,%xmm2
1639         vaesenc %xmm10,%xmm9,%xmm9
1640         vmovdqu 128-128(%rdi),%xmm10
1641         xorl    %r8d,%r13d
1642         addl    32(%rsp),%r11d
1643         movl    %eax,%r15d
1644         vpsrld  $3,%xmm4,%xmm7
1645         shrdl   $11,%r14d,%r14d
1646         xorl    %r10d,%r12d
1647         xorl    %ebx,%r15d
1648         vpslld  $14,%xmm4,%xmm5
1649         shrdl   $6,%r13d,%r13d
1650         addl    %r12d,%r11d
1651         andl    %r15d,%esi
1652         vpxor   %xmm6,%xmm7,%xmm4
1653         xorl    %eax,%r14d
1654         addl    %r13d,%r11d
1655         xorl    %ebx,%esi
1656         vpshufd $250,%xmm1,%xmm7
1657         addl    %r11d,%edx
1658         shrdl   $2,%r14d,%r14d
1659         addl    %esi,%r11d
1660         vpsrld  $11,%xmm6,%xmm6
1661         movl    %edx,%r13d
1662         addl    %r11d,%r14d
1663         shrdl   $14,%r13d,%r13d
1664         vpxor   %xmm5,%xmm4,%xmm4
1665         movl    %r14d,%r11d
1666         movl    %r8d,%r12d
1667         xorl    %edx,%r13d
1668         vpslld  $11,%xmm5,%xmm5
1669         shrdl   $9,%r14d,%r14d
1670         xorl    %r9d,%r12d
1671         shrdl   $5,%r13d,%r13d
1672         vpxor   %xmm6,%xmm4,%xmm4
1673         xorl    %r11d,%r14d
1674         andl    %edx,%r12d
1675         vaesenc %xmm10,%xmm9,%xmm9
1676         vmovdqu 144-128(%rdi),%xmm10
1677         xorl    %edx,%r13d
1678         vpsrld  $10,%xmm7,%xmm6
1679         addl    36(%rsp),%r10d
1680         movl    %r11d,%esi
1681         shrdl   $11,%r14d,%r14d
1682         vpxor   %xmm5,%xmm4,%xmm4
1683         xorl    %r9d,%r12d
1684         xorl    %eax,%esi
1685         shrdl   $6,%r13d,%r13d
1686         vpsrlq  $17,%xmm7,%xmm7
1687         addl    %r12d,%r10d
1688         andl    %esi,%r15d
1689         xorl    %r11d,%r14d
1690         vpaddd  %xmm4,%xmm2,%xmm2
1691         addl    %r13d,%r10d
1692         xorl    %eax,%r15d
1693         addl    %r10d,%ecx
1694         vpxor   %xmm7,%xmm6,%xmm6
1695         shrdl   $2,%r14d,%r14d
1696         addl    %r15d,%r10d
1697         movl    %ecx,%r13d
1698         vpsrlq  $2,%xmm7,%xmm7
1699         addl    %r10d,%r14d
1700         shrdl   $14,%r13d,%r13d
1701         movl    %r14d,%r10d
1702         vpxor   %xmm7,%xmm6,%xmm6
1703         movl    %edx,%r12d
1704         xorl    %ecx,%r13d
1705         shrdl   $9,%r14d,%r14d
1706         vpshufd $132,%xmm6,%xmm6
1707         xorl    %r8d,%r12d
1708         shrdl   $5,%r13d,%r13d
1709         xorl    %r10d,%r14d
1710         vpsrldq $8,%xmm6,%xmm6
1711         andl    %ecx,%r12d
1712         vaesenc %xmm10,%xmm9,%xmm9
1713         vmovdqu 160-128(%rdi),%xmm10
1714         xorl    %ecx,%r13d
1715         addl    40(%rsp),%r9d
1716         vpaddd  %xmm6,%xmm2,%xmm2
1717         movl    %r10d,%r15d
1718         shrdl   $11,%r14d,%r14d
1719         xorl    %r8d,%r12d
1720         vpshufd $80,%xmm2,%xmm7
1721         xorl    %r11d,%r15d
1722         shrdl   $6,%r13d,%r13d
1723         addl    %r12d,%r9d
1724         vpsrld  $10,%xmm7,%xmm6
1725         andl    %r15d,%esi
1726         xorl    %r10d,%r14d
1727         addl    %r13d,%r9d
1728         vpsrlq  $17,%xmm7,%xmm7
1729         xorl    %r11d,%esi
1730         addl    %r9d,%ebx
1731         shrdl   $2,%r14d,%r14d
1732         vpxor   %xmm7,%xmm6,%xmm6
1733         addl    %esi,%r9d
1734         movl    %ebx,%r13d
1735         addl    %r9d,%r14d
1736         vpsrlq  $2,%xmm7,%xmm7
1737         shrdl   $14,%r13d,%r13d
1738         movl    %r14d,%r9d
1739         movl    %ecx,%r12d
1740         vpxor   %xmm7,%xmm6,%xmm6
1741         xorl    %ebx,%r13d
1742         shrdl   $9,%r14d,%r14d
1743         xorl    %edx,%r12d
1744         vpshufd $232,%xmm6,%xmm6
1745         shrdl   $5,%r13d,%r13d
1746         xorl    %r9d,%r14d
1747         andl    %ebx,%r12d
1748         vpslldq $8,%xmm6,%xmm6
1749         vaesenclast     %xmm10,%xmm9,%xmm11
1750         vaesenc %xmm10,%xmm9,%xmm9
1751         vmovdqu 176-128(%rdi),%xmm10
1752         xorl    %ebx,%r13d
1753         addl    44(%rsp),%r8d
1754         movl    %r9d,%esi
1755         vpaddd  %xmm6,%xmm2,%xmm2
1756         shrdl   $11,%r14d,%r14d
1757         xorl    %edx,%r12d
1758         xorl    %r10d,%esi
1759         vpaddd  64(%rbp),%xmm2,%xmm6
1760         shrdl   $6,%r13d,%r13d
1761         addl    %r12d,%r8d
1762         andl    %esi,%r15d
1763         xorl    %r9d,%r14d
1764         addl    %r13d,%r8d
1765         xorl    %r10d,%r15d
1766         addl    %r8d,%eax
1767         shrdl   $2,%r14d,%r14d
1768         addl    %r15d,%r8d
1769         movl    %eax,%r13d
1770         addl    %r8d,%r14d
1771         vmovdqa %xmm6,32(%rsp)
1772         vpalignr        $4,%xmm3,%xmm0,%xmm4
1773         shrdl   $14,%r13d,%r13d
1774         movl    %r14d,%r8d
1775         movl    %ebx,%r12d
1776         vpalignr        $4,%xmm1,%xmm2,%xmm7
1777         xorl    %eax,%r13d
1778         shrdl   $9,%r14d,%r14d
1779         xorl    %ecx,%r12d
1780         vpsrld  $7,%xmm4,%xmm6
1781         shrdl   $5,%r13d,%r13d
1782         xorl    %r8d,%r14d
1783         andl    %eax,%r12d
1784         vpaddd  %xmm7,%xmm3,%xmm3
1785         vpand   %xmm12,%xmm11,%xmm8
1786         vaesenc %xmm10,%xmm9,%xmm9
1787         vmovdqu 192-128(%rdi),%xmm10
1788         xorl    %eax,%r13d
1789         addl    48(%rsp),%edx
1790         movl    %r8d,%r15d
1791         vpsrld  $3,%xmm4,%xmm7
1792         shrdl   $11,%r14d,%r14d
1793         xorl    %ecx,%r12d
1794         xorl    %r9d,%r15d
1795         vpslld  $14,%xmm4,%xmm5
1796         shrdl   $6,%r13d,%r13d
1797         addl    %r12d,%edx
1798         andl    %r15d,%esi
1799         vpxor   %xmm6,%xmm7,%xmm4
1800         xorl    %r8d,%r14d
1801         addl    %r13d,%edx
1802         xorl    %r9d,%esi
1803         vpshufd $250,%xmm2,%xmm7
1804         addl    %edx,%r11d
1805         shrdl   $2,%r14d,%r14d
1806         addl    %esi,%edx
1807         vpsrld  $11,%xmm6,%xmm6
1808         movl    %r11d,%r13d
1809         addl    %edx,%r14d
1810         shrdl   $14,%r13d,%r13d
1811         vpxor   %xmm5,%xmm4,%xmm4
1812         movl    %r14d,%edx
1813         movl    %eax,%r12d
1814         xorl    %r11d,%r13d
1815         vpslld  $11,%xmm5,%xmm5
1816         shrdl   $9,%r14d,%r14d
1817         xorl    %ebx,%r12d
1818         shrdl   $5,%r13d,%r13d
1819         vpxor   %xmm6,%xmm4,%xmm4
1820         xorl    %edx,%r14d
1821         andl    %r11d,%r12d
1822         vaesenclast     %xmm10,%xmm9,%xmm11
1823         vaesenc %xmm10,%xmm9,%xmm9
1824         vmovdqu 208-128(%rdi),%xmm10
1825         xorl    %r11d,%r13d
1826         vpsrld  $10,%xmm7,%xmm6
1827         addl    52(%rsp),%ecx
1828         movl    %edx,%esi
1829         shrdl   $11,%r14d,%r14d
1830         vpxor   %xmm5,%xmm4,%xmm4
1831         xorl    %ebx,%r12d
1832         xorl    %r8d,%esi
1833         shrdl   $6,%r13d,%r13d
1834         vpsrlq  $17,%xmm7,%xmm7
1835         addl    %r12d,%ecx
1836         andl    %esi,%r15d
1837         xorl    %edx,%r14d
1838         vpaddd  %xmm4,%xmm3,%xmm3
1839         addl    %r13d,%ecx
1840         xorl    %r8d,%r15d
1841         addl    %ecx,%r10d
1842         vpxor   %xmm7,%xmm6,%xmm6
1843         shrdl   $2,%r14d,%r14d
1844         addl    %r15d,%ecx
1845         movl    %r10d,%r13d
1846         vpsrlq  $2,%xmm7,%xmm7
1847         addl    %ecx,%r14d
1848         shrdl   $14,%r13d,%r13d
1849         movl    %r14d,%ecx
1850         vpxor   %xmm7,%xmm6,%xmm6
1851         movl    %r11d,%r12d
1852         xorl    %r10d,%r13d
1853         shrdl   $9,%r14d,%r14d
1854         vpshufd $132,%xmm6,%xmm6
1855         xorl    %eax,%r12d
1856         shrdl   $5,%r13d,%r13d
1857         xorl    %ecx,%r14d
1858         vpsrldq $8,%xmm6,%xmm6
1859         andl    %r10d,%r12d
1860         vpand   %xmm13,%xmm11,%xmm11
1861         vaesenc %xmm10,%xmm9,%xmm9
1862         vmovdqu 224-128(%rdi),%xmm10
1863         xorl    %r10d,%r13d
1864         addl    56(%rsp),%ebx
1865         vpaddd  %xmm6,%xmm3,%xmm3
1866         movl    %ecx,%r15d
1867         shrdl   $11,%r14d,%r14d
1868         xorl    %eax,%r12d
1869         vpshufd $80,%xmm3,%xmm7
1870         xorl    %edx,%r15d
1871         shrdl   $6,%r13d,%r13d
1872         addl    %r12d,%ebx
1873         vpsrld  $10,%xmm7,%xmm6
1874         andl    %r15d,%esi
1875         xorl    %ecx,%r14d
1876         addl    %r13d,%ebx
1877         vpsrlq  $17,%xmm7,%xmm7
1878         xorl    %edx,%esi
1879         addl    %ebx,%r9d
1880         shrdl   $2,%r14d,%r14d
1881         vpxor   %xmm7,%xmm6,%xmm6
1882         addl    %esi,%ebx
1883         movl    %r9d,%r13d
1884         addl    %ebx,%r14d
1885         vpsrlq  $2,%xmm7,%xmm7
1886         shrdl   $14,%r13d,%r13d
1887         movl    %r14d,%ebx
1888         movl    %r10d,%r12d
1889         vpxor   %xmm7,%xmm6,%xmm6
1890         xorl    %r9d,%r13d
1891         shrdl   $9,%r14d,%r14d
1892         xorl    %r11d,%r12d
1893         vpshufd $232,%xmm6,%xmm6
1894         shrdl   $5,%r13d,%r13d
1895         xorl    %ebx,%r14d
1896         andl    %r9d,%r12d
1897         vpslldq $8,%xmm6,%xmm6
1898         vpor    %xmm11,%xmm8,%xmm8
1899         vaesenclast     %xmm10,%xmm9,%xmm11
1900         vmovdqu 0-128(%rdi),%xmm10
1901         xorl    %r9d,%r13d
1902         addl    60(%rsp),%eax
1903         movl    %ebx,%esi
1904         vpaddd  %xmm6,%xmm3,%xmm3
1905         shrdl   $11,%r14d,%r14d
1906         xorl    %r11d,%r12d
1907         xorl    %ecx,%esi
1908         vpaddd  96(%rbp),%xmm3,%xmm6
1909         shrdl   $6,%r13d,%r13d
1910         addl    %r12d,%eax
1911         andl    %esi,%r15d
1912         xorl    %ebx,%r14d
1913         addl    %r13d,%eax
1914         xorl    %ecx,%r15d
1915         addl    %eax,%r8d
1916         shrdl   $2,%r14d,%r14d
1917         addl    %r15d,%eax
1918         movl    %r8d,%r13d
1919         addl    %eax,%r14d
1920         vmovdqa %xmm6,48(%rsp)
1921         movq    64+0(%rsp),%r12
1922         vpand   %xmm14,%xmm11,%xmm11
1923         movq    64+8(%rsp),%r15
1924         vpor    %xmm11,%xmm8,%xmm8
1925         vmovdqu %xmm8,(%r15,%r12,1)
1926         leaq    16(%r12),%r12
1927         cmpb    $0,131(%rbp)
1928         jne     .Lavx_00_47
1929         vmovdqu (%r12),%xmm9
1930         movq    %r12,64+0(%rsp)
1931         shrdl   $14,%r13d,%r13d
1932         movl    %r14d,%eax
1933         movl    %r9d,%r12d
1934         xorl    %r8d,%r13d
1935         shrdl   $9,%r14d,%r14d
1936         xorl    %r10d,%r12d
1937         shrdl   $5,%r13d,%r13d
1938         xorl    %eax,%r14d
1939         andl    %r8d,%r12d
1940         vpxor   %xmm10,%xmm9,%xmm9
1941         vmovdqu 16-128(%rdi),%xmm10
1942         xorl    %r8d,%r13d
1943         addl    0(%rsp),%r11d
1944         movl    %eax,%r15d
1945         shrdl   $11,%r14d,%r14d
1946         xorl    %r10d,%r12d
1947         xorl    %ebx,%r15d
1948         shrdl   $6,%r13d,%r13d
1949         addl    %r12d,%r11d
1950         andl    %r15d,%esi
1951         xorl    %eax,%r14d
1952         addl    %r13d,%r11d
1953         xorl    %ebx,%esi
1954         addl    %r11d,%edx
1955         shrdl   $2,%r14d,%r14d
1956         addl    %esi,%r11d
1957         movl    %edx,%r13d
1958         addl    %r11d,%r14d
1959         shrdl   $14,%r13d,%r13d
1960         movl    %r14d,%r11d
1961         movl    %r8d,%r12d
1962         xorl    %edx,%r13d
1963         shrdl   $9,%r14d,%r14d
1964         xorl    %r9d,%r12d
1965         shrdl   $5,%r13d,%r13d
1966         xorl    %r11d,%r14d
1967         andl    %edx,%r12d
1968         vpxor   %xmm8,%xmm9,%xmm9
1969         xorl    %edx,%r13d
1970         addl    4(%rsp),%r10d
1971         movl    %r11d,%esi
1972         shrdl   $11,%r14d,%r14d
1973         xorl    %r9d,%r12d
1974         xorl    %eax,%esi
1975         shrdl   $6,%r13d,%r13d
1976         addl    %r12d,%r10d
1977         andl    %esi,%r15d
1978         xorl    %r11d,%r14d
1979         addl    %r13d,%r10d
1980         xorl    %eax,%r15d
1981         addl    %r10d,%ecx
1982         shrdl   $2,%r14d,%r14d
1983         addl    %r15d,%r10d
1984         movl    %ecx,%r13d
1985         addl    %r10d,%r14d
1986         shrdl   $14,%r13d,%r13d
1987         movl    %r14d,%r10d
1988         movl    %edx,%r12d
1989         xorl    %ecx,%r13d
1990         shrdl   $9,%r14d,%r14d
1991         xorl    %r8d,%r12d
1992         shrdl   $5,%r13d,%r13d
1993         xorl    %r10d,%r14d
1994         andl    %ecx,%r12d
1995         vaesenc %xmm10,%xmm9,%xmm9
1996         vmovdqu 32-128(%rdi),%xmm10
1997         xorl    %ecx,%r13d
1998         addl    8(%rsp),%r9d
1999         movl    %r10d,%r15d
2000         shrdl   $11,%r14d,%r14d
2001         xorl    %r8d,%r12d
2002         xorl    %r11d,%r15d
2003         shrdl   $6,%r13d,%r13d
2004         addl    %r12d,%r9d
2005         andl    %r15d,%esi
2006         xorl    %r10d,%r14d
2007         addl    %r13d,%r9d
2008         xorl    %r11d,%esi
2009         addl    %r9d,%ebx
2010         shrdl   $2,%r14d,%r14d
2011         addl    %esi,%r9d
2012         movl    %ebx,%r13d
2013         addl    %r9d,%r14d
2014         shrdl   $14,%r13d,%r13d
2015         movl    %r14d,%r9d
2016         movl    %ecx,%r12d
2017         xorl    %ebx,%r13d
2018         shrdl   $9,%r14d,%r14d
2019         xorl    %edx,%r12d
2020         shrdl   $5,%r13d,%r13d
2021         xorl    %r9d,%r14d
2022         andl    %ebx,%r12d
2023         vaesenc %xmm10,%xmm9,%xmm9
2024         vmovdqu 48-128(%rdi),%xmm10
2025         xorl    %ebx,%r13d
2026         addl    12(%rsp),%r8d
2027         movl    %r9d,%esi
2028         shrdl   $11,%r14d,%r14d
2029         xorl    %edx,%r12d
2030         xorl    %r10d,%esi
2031         shrdl   $6,%r13d,%r13d
2032         addl    %r12d,%r8d
2033         andl    %esi,%r15d
2034         xorl    %r9d,%r14d
2035         addl    %r13d,%r8d
2036         xorl    %r10d,%r15d
2037         addl    %r8d,%eax
2038         shrdl   $2,%r14d,%r14d
2039         addl    %r15d,%r8d
2040         movl    %eax,%r13d
2041         addl    %r8d,%r14d
2042         shrdl   $14,%r13d,%r13d
2043         movl    %r14d,%r8d
2044         movl    %ebx,%r12d
2045         xorl    %eax,%r13d
2046         shrdl   $9,%r14d,%r14d
2047         xorl    %ecx,%r12d
2048         shrdl   $5,%r13d,%r13d
2049         xorl    %r8d,%r14d
2050         andl    %eax,%r12d
2051         vaesenc %xmm10,%xmm9,%xmm9
2052         vmovdqu 64-128(%rdi),%xmm10
2053         xorl    %eax,%r13d
2054         addl    16(%rsp),%edx
2055         movl    %r8d,%r15d
2056         shrdl   $11,%r14d,%r14d
2057         xorl    %ecx,%r12d
2058         xorl    %r9d,%r15d
2059         shrdl   $6,%r13d,%r13d
2060         addl    %r12d,%edx
2061         andl    %r15d,%esi
2062         xorl    %r8d,%r14d
2063         addl    %r13d,%edx
2064         xorl    %r9d,%esi
2065         addl    %edx,%r11d
2066         shrdl   $2,%r14d,%r14d
2067         addl    %esi,%edx
2068         movl    %r11d,%r13d
2069         addl    %edx,%r14d
2070         shrdl   $14,%r13d,%r13d
2071         movl    %r14d,%edx
2072         movl    %eax,%r12d
2073         xorl    %r11d,%r13d
2074         shrdl   $9,%r14d,%r14d
2075         xorl    %ebx,%r12d
2076         shrdl   $5,%r13d,%r13d
2077         xorl    %edx,%r14d
2078         andl    %r11d,%r12d
2079         vaesenc %xmm10,%xmm9,%xmm9
2080         vmovdqu 80-128(%rdi),%xmm10
2081         xorl    %r11d,%r13d
2082         addl    20(%rsp),%ecx
2083         movl    %edx,%esi
2084         shrdl   $11,%r14d,%r14d
2085         xorl    %ebx,%r12d
2086         xorl    %r8d,%esi
2087         shrdl   $6,%r13d,%r13d
2088         addl    %r12d,%ecx
2089         andl    %esi,%r15d
2090         xorl    %edx,%r14d
2091         addl    %r13d,%ecx
2092         xorl    %r8d,%r15d
2093         addl    %ecx,%r10d
2094         shrdl   $2,%r14d,%r14d
2095         addl    %r15d,%ecx
2096         movl    %r10d,%r13d
2097         addl    %ecx,%r14d
2098         shrdl   $14,%r13d,%r13d
2099         movl    %r14d,%ecx
2100         movl    %r11d,%r12d
2101         xorl    %r10d,%r13d
2102         shrdl   $9,%r14d,%r14d
2103         xorl    %eax,%r12d
2104         shrdl   $5,%r13d,%r13d
2105         xorl    %ecx,%r14d
2106         andl    %r10d,%r12d
2107         vaesenc %xmm10,%xmm9,%xmm9
2108         vmovdqu 96-128(%rdi),%xmm10
2109         xorl    %r10d,%r13d
2110         addl    24(%rsp),%ebx
2111         movl    %ecx,%r15d
2112         shrdl   $11,%r14d,%r14d
2113         xorl    %eax,%r12d
2114         xorl    %edx,%r15d
2115         shrdl   $6,%r13d,%r13d
2116         addl    %r12d,%ebx
2117         andl    %r15d,%esi
2118         xorl    %ecx,%r14d
2119         addl    %r13d,%ebx
2120         xorl    %edx,%esi
2121         addl    %ebx,%r9d
2122         shrdl   $2,%r14d,%r14d
2123         addl    %esi,%ebx
2124         movl    %r9d,%r13d
2125         addl    %ebx,%r14d
2126         shrdl   $14,%r13d,%r13d
2127         movl    %r14d,%ebx
2128         movl    %r10d,%r12d
2129         xorl    %r9d,%r13d
2130         shrdl   $9,%r14d,%r14d
2131         xorl    %r11d,%r12d
2132         shrdl   $5,%r13d,%r13d
2133         xorl    %ebx,%r14d
2134         andl    %r9d,%r12d
2135         vaesenc %xmm10,%xmm9,%xmm9
2136         vmovdqu 112-128(%rdi),%xmm10
2137         xorl    %r9d,%r13d
2138         addl    28(%rsp),%eax
2139         movl    %ebx,%esi
2140         shrdl   $11,%r14d,%r14d
2141         xorl    %r11d,%r12d
2142         xorl    %ecx,%esi
2143         shrdl   $6,%r13d,%r13d
2144         addl    %r12d,%eax
2145         andl    %esi,%r15d
2146         xorl    %ebx,%r14d
2147         addl    %r13d,%eax
2148         xorl    %ecx,%r15d
2149         addl    %eax,%r8d
2150         shrdl   $2,%r14d,%r14d
2151         addl    %r15d,%eax
2152         movl    %r8d,%r13d
2153         addl    %eax,%r14d
2154         shrdl   $14,%r13d,%r13d
2155         movl    %r14d,%eax
2156         movl    %r9d,%r12d
2157         xorl    %r8d,%r13d
2158         shrdl   $9,%r14d,%r14d
2159         xorl    %r10d,%r12d
2160         shrdl   $5,%r13d,%r13d
2161         xorl    %eax,%r14d
2162         andl    %r8d,%r12d
2163         vaesenc %xmm10,%xmm9,%xmm9
2164         vmovdqu 128-128(%rdi),%xmm10
2165         xorl    %r8d,%r13d
2166         addl    32(%rsp),%r11d
2167         movl    %eax,%r15d
2168         shrdl   $11,%r14d,%r14d
2169         xorl    %r10d,%r12d
2170         xorl    %ebx,%r15d
2171         shrdl   $6,%r13d,%r13d
2172         addl    %r12d,%r11d
2173         andl    %r15d,%esi
2174         xorl    %eax,%r14d
2175         addl    %r13d,%r11d
2176         xorl    %ebx,%esi
2177         addl    %r11d,%edx
2178         shrdl   $2,%r14d,%r14d
2179         addl    %esi,%r11d
2180         movl    %edx,%r13d
2181         addl    %r11d,%r14d
2182         shrdl   $14,%r13d,%r13d
2183         movl    %r14d,%r11d
2184         movl    %r8d,%r12d
2185         xorl    %edx,%r13d
2186         shrdl   $9,%r14d,%r14d
2187         xorl    %r9d,%r12d
2188         shrdl   $5,%r13d,%r13d
2189         xorl    %r11d,%r14d
2190         andl    %edx,%r12d
2191         vaesenc %xmm10,%xmm9,%xmm9
2192         vmovdqu 144-128(%rdi),%xmm10
2193         xorl    %edx,%r13d
2194         addl    36(%rsp),%r10d
2195         movl    %r11d,%esi
2196         shrdl   $11,%r14d,%r14d
2197         xorl    %r9d,%r12d
2198         xorl    %eax,%esi
2199         shrdl   $6,%r13d,%r13d
2200         addl    %r12d,%r10d
2201         andl    %esi,%r15d
2202         xorl    %r11d,%r14d
2203         addl    %r13d,%r10d
2204         xorl    %eax,%r15d
2205         addl    %r10d,%ecx
2206         shrdl   $2,%r14d,%r14d
2207         addl    %r15d,%r10d
2208         movl    %ecx,%r13d
2209         addl    %r10d,%r14d
2210         shrdl   $14,%r13d,%r13d
2211         movl    %r14d,%r10d
2212         movl    %edx,%r12d
2213         xorl    %ecx,%r13d
2214         shrdl   $9,%r14d,%r14d
2215         xorl    %r8d,%r12d
2216         shrdl   $5,%r13d,%r13d
2217         xorl    %r10d,%r14d
2218         andl    %ecx,%r12d
2219         vaesenc %xmm10,%xmm9,%xmm9
2220         vmovdqu 160-128(%rdi),%xmm10
2221         xorl    %ecx,%r13d
2222         addl    40(%rsp),%r9d
2223         movl    %r10d,%r15d
2224         shrdl   $11,%r14d,%r14d
2225         xorl    %r8d,%r12d
2226         xorl    %r11d,%r15d
2227         shrdl   $6,%r13d,%r13d
2228         addl    %r12d,%r9d
2229         andl    %r15d,%esi
2230         xorl    %r10d,%r14d
2231         addl    %r13d,%r9d
2232         xorl    %r11d,%esi
2233         addl    %r9d,%ebx
2234         shrdl   $2,%r14d,%r14d
2235         addl    %esi,%r9d
2236         movl    %ebx,%r13d
2237         addl    %r9d,%r14d
2238         shrdl   $14,%r13d,%r13d
2239         movl    %r14d,%r9d
2240         movl    %ecx,%r12d
2241         xorl    %ebx,%r13d
2242         shrdl   $9,%r14d,%r14d
2243         xorl    %edx,%r12d
2244         shrdl   $5,%r13d,%r13d
2245         xorl    %r9d,%r14d
2246         andl    %ebx,%r12d
2247         vaesenclast     %xmm10,%xmm9,%xmm11
2248         vaesenc %xmm10,%xmm9,%xmm9
2249         vmovdqu 176-128(%rdi),%xmm10
2250         xorl    %ebx,%r13d
2251         addl    44(%rsp),%r8d
2252         movl    %r9d,%esi
2253         shrdl   $11,%r14d,%r14d
2254         xorl    %edx,%r12d
2255         xorl    %r10d,%esi
2256         shrdl   $6,%r13d,%r13d
2257         addl    %r12d,%r8d
2258         andl    %esi,%r15d
2259         xorl    %r9d,%r14d
2260         addl    %r13d,%r8d
2261         xorl    %r10d,%r15d
2262         addl    %r8d,%eax
2263         shrdl   $2,%r14d,%r14d
2264         addl    %r15d,%r8d
2265         movl    %eax,%r13d
2266         addl    %r8d,%r14d
2267         shrdl   $14,%r13d,%r13d
2268         movl    %r14d,%r8d
2269         movl    %ebx,%r12d
2270         xorl    %eax,%r13d
2271         shrdl   $9,%r14d,%r14d
2272         xorl    %ecx,%r12d
2273         shrdl   $5,%r13d,%r13d
2274         xorl    %r8d,%r14d
2275         andl    %eax,%r12d
2276         vpand   %xmm12,%xmm11,%xmm8
2277         vaesenc %xmm10,%xmm9,%xmm9
2278         vmovdqu 192-128(%rdi),%xmm10
2279         xorl    %eax,%r13d
2280         addl    48(%rsp),%edx
2281         movl    %r8d,%r15d
2282         shrdl   $11,%r14d,%r14d
2283         xorl    %ecx,%r12d
2284         xorl    %r9d,%r15d
2285         shrdl   $6,%r13d,%r13d
2286         addl    %r12d,%edx
2287         andl    %r15d,%esi
2288         xorl    %r8d,%r14d
2289         addl    %r13d,%edx
2290         xorl    %r9d,%esi
2291         addl    %edx,%r11d
2292         shrdl   $2,%r14d,%r14d
2293         addl    %esi,%edx
2294         movl    %r11d,%r13d
2295         addl    %edx,%r14d
2296         shrdl   $14,%r13d,%r13d
2297         movl    %r14d,%edx
2298         movl    %eax,%r12d
2299         xorl    %r11d,%r13d
2300         shrdl   $9,%r14d,%r14d
2301         xorl    %ebx,%r12d
2302         shrdl   $5,%r13d,%r13d
2303         xorl    %edx,%r14d
2304         andl    %r11d,%r12d
2305         vaesenclast     %xmm10,%xmm9,%xmm11
2306         vaesenc %xmm10,%xmm9,%xmm9
2307         vmovdqu 208-128(%rdi),%xmm10
2308         xorl    %r11d,%r13d
2309         addl    52(%rsp),%ecx
2310         movl    %edx,%esi
2311         shrdl   $11,%r14d,%r14d
2312         xorl    %ebx,%r12d
2313         xorl    %r8d,%esi
2314         shrdl   $6,%r13d,%r13d
2315         addl    %r12d,%ecx
2316         andl    %esi,%r15d
2317         xorl    %edx,%r14d
2318         addl    %r13d,%ecx
2319         xorl    %r8d,%r15d
2320         addl    %ecx,%r10d
2321         shrdl   $2,%r14d,%r14d
2322         addl    %r15d,%ecx
2323         movl    %r10d,%r13d
2324         addl    %ecx,%r14d
2325         shrdl   $14,%r13d,%r13d
2326         movl    %r14d,%ecx
2327         movl    %r11d,%r12d
2328         xorl    %r10d,%r13d
2329         shrdl   $9,%r14d,%r14d
2330         xorl    %eax,%r12d
2331         shrdl   $5,%r13d,%r13d
2332         xorl    %ecx,%r14d
2333         andl    %r10d,%r12d
2334         vpand   %xmm13,%xmm11,%xmm11
2335         vaesenc %xmm10,%xmm9,%xmm9
2336         vmovdqu 224-128(%rdi),%xmm10
2337         xorl    %r10d,%r13d
2338         addl    56(%rsp),%ebx
2339         movl    %ecx,%r15d
2340         shrdl   $11,%r14d,%r14d
2341         xorl    %eax,%r12d
2342         xorl    %edx,%r15d
2343         shrdl   $6,%r13d,%r13d
2344         addl    %r12d,%ebx
2345         andl    %r15d,%esi
2346         xorl    %ecx,%r14d
2347         addl    %r13d,%ebx
2348         xorl    %edx,%esi
2349         addl    %ebx,%r9d
2350         shrdl   $2,%r14d,%r14d
2351         addl    %esi,%ebx
2352         movl    %r9d,%r13d
2353         addl    %ebx,%r14d
2354         shrdl   $14,%r13d,%r13d
2355         movl    %r14d,%ebx
2356         movl    %r10d,%r12d
2357         xorl    %r9d,%r13d
2358         shrdl   $9,%r14d,%r14d
2359         xorl    %r11d,%r12d
2360         shrdl   $5,%r13d,%r13d
2361         xorl    %ebx,%r14d
2362         andl    %r9d,%r12d
2363         vpor    %xmm11,%xmm8,%xmm8
2364         vaesenclast     %xmm10,%xmm9,%xmm11
2365         vmovdqu 0-128(%rdi),%xmm10
2366         xorl    %r9d,%r13d
2367         addl    60(%rsp),%eax
2368         movl    %ebx,%esi
2369         shrdl   $11,%r14d,%r14d
2370         xorl    %r11d,%r12d
2371         xorl    %ecx,%esi
2372         shrdl   $6,%r13d,%r13d
2373         addl    %r12d,%eax
2374         andl    %esi,%r15d
2375         xorl    %ebx,%r14d
2376         addl    %r13d,%eax
2377         xorl    %ecx,%r15d
2378         addl    %eax,%r8d
2379         shrdl   $2,%r14d,%r14d
2380         addl    %r15d,%eax
2381         movl    %r8d,%r13d
2382         addl    %eax,%r14d
2383         movq    64+0(%rsp),%r12
2384         movq    64+8(%rsp),%r13
2385         movq    64+40(%rsp),%r15
2386         movq    64+48(%rsp),%rsi
2387
2388         vpand   %xmm14,%xmm11,%xmm11
2389         movl    %r14d,%eax
2390         vpor    %xmm11,%xmm8,%xmm8
2391         vmovdqu %xmm8,(%r12,%r13,1)
2392         leaq    16(%r12),%r12
2393
2394         addl    0(%r15),%eax
2395         addl    4(%r15),%ebx
2396         addl    8(%r15),%ecx
2397         addl    12(%r15),%edx
2398         addl    16(%r15),%r8d
2399         addl    20(%r15),%r9d
2400         addl    24(%r15),%r10d
2401         addl    28(%r15),%r11d
2402
2403         cmpq    64+16(%rsp),%r12
2404
2405         movl    %eax,0(%r15)
2406         movl    %ebx,4(%r15)
2407         movl    %ecx,8(%r15)
2408         movl    %edx,12(%r15)
2409         movl    %r8d,16(%r15)
2410         movl    %r9d,20(%r15)
2411         movl    %r10d,24(%r15)
2412         movl    %r11d,28(%r15)
2413         jb      .Lloop_avx
2414
2415         movq    64+32(%rsp),%r8
2416         movq    120(%rsp),%rsi
2417 .cfi_def_cfa    %rsi,8
2418         vmovdqu %xmm8,(%r8)
2419         vzeroall
2420         movq    -48(%rsi),%r15
2421 .cfi_restore    %r15
2422         movq    -40(%rsi),%r14
2423 .cfi_restore    %r14
2424         movq    -32(%rsi),%r13
2425 .cfi_restore    %r13
2426         movq    -24(%rsi),%r12
2427 .cfi_restore    %r12
2428         movq    -16(%rsi),%rbp
2429 .cfi_restore    %rbp
2430         movq    -8(%rsi),%rbx
2431 .cfi_restore    %rbx
2432         leaq    (%rsi),%rsp
2433 .cfi_def_cfa_register   %rsp
2434 .Lepilogue_avx:
2435         .byte   0xf3,0xc3
2436 .cfi_endproc    
2437 .size   aesni_cbc_sha256_enc_avx,.-aesni_cbc_sha256_enc_avx
2438 .type   aesni_cbc_sha256_enc_avx2,@function
2439 .align  64
2440 aesni_cbc_sha256_enc_avx2:
2441 .cfi_startproc  
2442 .Lavx2_shortcut:
2443         movq    8(%rsp),%r10
2444         movq    %rsp,%rax
2445 .cfi_def_cfa_register   %rax
2446         pushq   %rbx
2447 .cfi_offset     %rbx,-16
2448         pushq   %rbp
2449 .cfi_offset     %rbp,-24
2450         pushq   %r12
2451 .cfi_offset     %r12,-32
2452         pushq   %r13
2453 .cfi_offset     %r13,-40
2454         pushq   %r14
2455 .cfi_offset     %r14,-48
2456         pushq   %r15
2457 .cfi_offset     %r15,-56
2458         subq    $576,%rsp
2459         andq    $-1024,%rsp
2460         addq    $448,%rsp
2461
2462         shlq    $6,%rdx
2463         subq    %rdi,%rsi
2464         subq    %rdi,%r10
2465         addq    %rdi,%rdx
2466
2467
2468
2469         movq    %rdx,64+16(%rsp)
2470
2471         movq    %r8,64+32(%rsp)
2472         movq    %r9,64+40(%rsp)
2473         movq    %r10,64+48(%rsp)
2474         movq    %rax,120(%rsp)
2475 .cfi_escape     0x0f,0x06,0x77,0xf8,0x00,0x06,0x23,0x08
2476 .Lprologue_avx2:
2477         vzeroall
2478
2479         movq    %rdi,%r13
2480         vpinsrq $1,%rsi,%xmm15,%xmm15
2481         leaq    128(%rcx),%rdi
2482         leaq    K256+544(%rip),%r12
2483         movl    240-128(%rdi),%r14d
2484         movq    %r9,%r15
2485         movq    %r10,%rsi
2486         vmovdqu (%r8),%xmm8
2487         leaq    -9(%r14),%r14
2488
2489         vmovdqa 0(%r12,%r14,8),%xmm14
2490         vmovdqa 16(%r12,%r14,8),%xmm13
2491         vmovdqa 32(%r12,%r14,8),%xmm12
2492
2493         subq    $-64,%r13
2494         movl    0(%r15),%eax
2495         leaq    (%rsi,%r13,1),%r12
2496         movl    4(%r15),%ebx
2497         cmpq    %rdx,%r13
2498         movl    8(%r15),%ecx
2499         cmoveq  %rsp,%r12
2500         movl    12(%r15),%edx
2501         movl    16(%r15),%r8d
2502         movl    20(%r15),%r9d
2503         movl    24(%r15),%r10d
2504         movl    28(%r15),%r11d
2505         vmovdqu 0-128(%rdi),%xmm10
2506         jmp     .Loop_avx2
2507 .align  16
2508 .Loop_avx2:
2509         vmovdqa K256+512(%rip),%ymm7
2510         vmovdqu -64+0(%rsi,%r13,1),%xmm0
2511         vmovdqu -64+16(%rsi,%r13,1),%xmm1
2512         vmovdqu -64+32(%rsi,%r13,1),%xmm2
2513         vmovdqu -64+48(%rsi,%r13,1),%xmm3
2514
2515         vinserti128     $1,(%r12),%ymm0,%ymm0
2516         vinserti128     $1,16(%r12),%ymm1,%ymm1
2517         vpshufb %ymm7,%ymm0,%ymm0
2518         vinserti128     $1,32(%r12),%ymm2,%ymm2
2519         vpshufb %ymm7,%ymm1,%ymm1
2520         vinserti128     $1,48(%r12),%ymm3,%ymm3
2521
2522         leaq    K256(%rip),%rbp
2523         vpshufb %ymm7,%ymm2,%ymm2
2524         leaq    -64(%r13),%r13
2525         vpaddd  0(%rbp),%ymm0,%ymm4
2526         vpshufb %ymm7,%ymm3,%ymm3
2527         vpaddd  32(%rbp),%ymm1,%ymm5
2528         vpaddd  64(%rbp),%ymm2,%ymm6
2529         vpaddd  96(%rbp),%ymm3,%ymm7
2530         vmovdqa %ymm4,0(%rsp)
2531         xorl    %r14d,%r14d
2532         vmovdqa %ymm5,32(%rsp)
2533         leaq    -64(%rsp),%rsp
2534         movl    %ebx,%esi
2535         vmovdqa %ymm6,0(%rsp)
2536         xorl    %ecx,%esi
2537         vmovdqa %ymm7,32(%rsp)
2538         movl    %r9d,%r12d
2539         subq    $-32*4,%rbp
2540         jmp     .Lavx2_00_47
2541
2542 .align  16
2543 .Lavx2_00_47:
2544         vmovdqu (%r13),%xmm9
2545         vpinsrq $0,%r13,%xmm15,%xmm15
2546         leaq    -64(%rsp),%rsp
2547         vpalignr        $4,%ymm0,%ymm1,%ymm4
2548         addl    0+128(%rsp),%r11d
2549         andl    %r8d,%r12d
2550         rorxl   $25,%r8d,%r13d
2551         vpalignr        $4,%ymm2,%ymm3,%ymm7
2552         rorxl   $11,%r8d,%r15d
2553         leal    (%rax,%r14,1),%eax
2554         leal    (%r11,%r12,1),%r11d
2555         vpsrld  $7,%ymm4,%ymm6
2556         andnl   %r10d,%r8d,%r12d
2557         xorl    %r15d,%r13d
2558         rorxl   $6,%r8d,%r14d
2559         vpaddd  %ymm7,%ymm0,%ymm0
2560         leal    (%r11,%r12,1),%r11d
2561         xorl    %r14d,%r13d
2562         movl    %eax,%r15d
2563         vpsrld  $3,%ymm4,%ymm7
2564         rorxl   $22,%eax,%r12d
2565         leal    (%r11,%r13,1),%r11d
2566         xorl    %ebx,%r15d
2567         vpslld  $14,%ymm4,%ymm5
2568         rorxl   $13,%eax,%r14d
2569         rorxl   $2,%eax,%r13d
2570         leal    (%rdx,%r11,1),%edx
2571         vpxor   %ymm6,%ymm7,%ymm4
2572         andl    %r15d,%esi
2573         vpxor   %xmm10,%xmm9,%xmm9
2574         vmovdqu 16-128(%rdi),%xmm10
2575         xorl    %r12d,%r14d
2576         xorl    %ebx,%esi
2577         vpshufd $250,%ymm3,%ymm7
2578         xorl    %r13d,%r14d
2579         leal    (%r11,%rsi,1),%r11d
2580         movl    %r8d,%r12d
2581         vpsrld  $11,%ymm6,%ymm6
2582         addl    4+128(%rsp),%r10d
2583         andl    %edx,%r12d
2584         rorxl   $25,%edx,%r13d
2585         vpxor   %ymm5,%ymm4,%ymm4
2586         rorxl   $11,%edx,%esi
2587         leal    (%r11,%r14,1),%r11d
2588         leal    (%r10,%r12,1),%r10d
2589         vpslld  $11,%ymm5,%ymm5
2590         andnl   %r9d,%edx,%r12d
2591         xorl    %esi,%r13d
2592         rorxl   $6,%edx,%r14d
2593         vpxor   %ymm6,%ymm4,%ymm4
2594         leal    (%r10,%r12,1),%r10d
2595         xorl    %r14d,%r13d
2596         movl    %r11d,%esi
2597         vpsrld  $10,%ymm7,%ymm6
2598         rorxl   $22,%r11d,%r12d
2599         leal    (%r10,%r13,1),%r10d
2600         xorl    %eax,%esi
2601         vpxor   %ymm5,%ymm4,%ymm4
2602         rorxl   $13,%r11d,%r14d
2603         rorxl   $2,%r11d,%r13d
2604         leal    (%rcx,%r10,1),%ecx
2605         vpsrlq  $17,%ymm7,%ymm7
2606         andl    %esi,%r15d
2607         vpxor   %xmm8,%xmm9,%xmm9
2608         xorl    %r12d,%r14d
2609         xorl    %eax,%r15d
2610         vpaddd  %ymm4,%ymm0,%ymm0
2611         xorl    %r13d,%r14d
2612         leal    (%r10,%r15,1),%r10d
2613         movl    %edx,%r12d
2614         vpxor   %ymm7,%ymm6,%ymm6
2615         addl    8+128(%rsp),%r9d
2616         andl    %ecx,%r12d
2617         rorxl   $25,%ecx,%r13d
2618         vpsrlq  $2,%ymm7,%ymm7
2619         rorxl   $11,%ecx,%r15d
2620         leal    (%r10,%r14,1),%r10d
2621         leal    (%r9,%r12,1),%r9d
2622         vpxor   %ymm7,%ymm6,%ymm6
2623         andnl   %r8d,%ecx,%r12d
2624         xorl    %r15d,%r13d
2625         rorxl   $6,%ecx,%r14d
2626         vpshufd $132,%ymm6,%ymm6
2627         leal    (%r9,%r12,1),%r9d
2628         xorl    %r14d,%r13d
2629         movl    %r10d,%r15d
2630         vpsrldq $8,%ymm6,%ymm6
2631         rorxl   $22,%r10d,%r12d
2632         leal    (%r9,%r13,1),%r9d
2633         xorl    %r11d,%r15d
2634         vpaddd  %ymm6,%ymm0,%ymm0
2635         rorxl   $13,%r10d,%r14d
2636         rorxl   $2,%r10d,%r13d
2637         leal    (%rbx,%r9,1),%ebx
2638         vpshufd $80,%ymm0,%ymm7
2639         andl    %r15d,%esi
2640         vaesenc %xmm10,%xmm9,%xmm9
2641         vmovdqu 32-128(%rdi),%xmm10
2642         xorl    %r12d,%r14d
2643         xorl    %r11d,%esi
2644         vpsrld  $10,%ymm7,%ymm6
2645         xorl    %r13d,%r14d
2646         leal    (%r9,%rsi,1),%r9d
2647         movl    %ecx,%r12d
2648         vpsrlq  $17,%ymm7,%ymm7
2649         addl    12+128(%rsp),%r8d
2650         andl    %ebx,%r12d
2651         rorxl   $25,%ebx,%r13d
2652         vpxor   %ymm7,%ymm6,%ymm6
2653         rorxl   $11,%ebx,%esi
2654         leal    (%r9,%r14,1),%r9d
2655         leal    (%r8,%r12,1),%r8d
2656         vpsrlq  $2,%ymm7,%ymm7
2657         andnl   %edx,%ebx,%r12d
2658         xorl    %esi,%r13d
2659         rorxl   $6,%ebx,%r14d
2660         vpxor   %ymm7,%ymm6,%ymm6
2661         leal    (%r8,%r12,1),%r8d
2662         xorl    %r14d,%r13d
2663         movl    %r9d,%esi
2664         vpshufd $232,%ymm6,%ymm6
2665         rorxl   $22,%r9d,%r12d
2666         leal    (%r8,%r13,1),%r8d
2667         xorl    %r10d,%esi
2668         vpslldq $8,%ymm6,%ymm6
2669         rorxl   $13,%r9d,%r14d
2670         rorxl   $2,%r9d,%r13d
2671         leal    (%rax,%r8,1),%eax
2672         vpaddd  %ymm6,%ymm0,%ymm0
2673         andl    %esi,%r15d
2674         vaesenc %xmm10,%xmm9,%xmm9
2675         vmovdqu 48-128(%rdi),%xmm10
2676         xorl    %r12d,%r14d
2677         xorl    %r10d,%r15d
2678         vpaddd  0(%rbp),%ymm0,%ymm6
2679         xorl    %r13d,%r14d
2680         leal    (%r8,%r15,1),%r8d
2681         movl    %ebx,%r12d
2682         vmovdqa %ymm6,0(%rsp)
2683         vpalignr        $4,%ymm1,%ymm2,%ymm4
2684         addl    32+128(%rsp),%edx
2685         andl    %eax,%r12d
2686         rorxl   $25,%eax,%r13d
2687         vpalignr        $4,%ymm3,%ymm0,%ymm7
2688         rorxl   $11,%eax,%r15d
2689         leal    (%r8,%r14,1),%r8d
2690         leal    (%rdx,%r12,1),%edx
2691         vpsrld  $7,%ymm4,%ymm6
2692         andnl   %ecx,%eax,%r12d
2693         xorl    %r15d,%r13d
2694         rorxl   $6,%eax,%r14d
2695         vpaddd  %ymm7,%ymm1,%ymm1
2696         leal    (%rdx,%r12,1),%edx
2697         xorl    %r14d,%r13d
2698         movl    %r8d,%r15d
2699         vpsrld  $3,%ymm4,%ymm7
2700         rorxl   $22,%r8d,%r12d
2701         leal    (%rdx,%r13,1),%edx
2702         xorl    %r9d,%r15d
2703         vpslld  $14,%ymm4,%ymm5
2704         rorxl   $13,%r8d,%r14d
2705         rorxl   $2,%r8d,%r13d
2706         leal    (%r11,%rdx,1),%r11d
2707         vpxor   %ymm6,%ymm7,%ymm4
2708         andl    %r15d,%esi
2709         vaesenc %xmm10,%xmm9,%xmm9
2710         vmovdqu 64-128(%rdi),%xmm10
2711         xorl    %r12d,%r14d
2712         xorl    %r9d,%esi
2713         vpshufd $250,%ymm0,%ymm7
2714         xorl    %r13d,%r14d
2715         leal    (%rdx,%rsi,1),%edx
2716         movl    %eax,%r12d
2717         vpsrld  $11,%ymm6,%ymm6
2718         addl    36+128(%rsp),%ecx
2719         andl    %r11d,%r12d
2720         rorxl   $25,%r11d,%r13d
2721         vpxor   %ymm5,%ymm4,%ymm4
2722         rorxl   $11,%r11d,%esi
2723         leal    (%rdx,%r14,1),%edx
2724         leal    (%rcx,%r12,1),%ecx
2725         vpslld  $11,%ymm5,%ymm5
2726         andnl   %ebx,%r11d,%r12d
2727         xorl    %esi,%r13d
2728         rorxl   $6,%r11d,%r14d
2729         vpxor   %ymm6,%ymm4,%ymm4
2730         leal    (%rcx,%r12,1),%ecx
2731         xorl    %r14d,%r13d
2732         movl    %edx,%esi
2733         vpsrld  $10,%ymm7,%ymm6
2734         rorxl   $22,%edx,%r12d
2735         leal    (%rcx,%r13,1),%ecx
2736         xorl    %r8d,%esi
2737         vpxor   %ymm5,%ymm4,%ymm4
2738         rorxl   $13,%edx,%r14d
2739         rorxl   $2,%edx,%r13d
2740         leal    (%r10,%rcx,1),%r10d
2741         vpsrlq  $17,%ymm7,%ymm7
2742         andl    %esi,%r15d
2743         vaesenc %xmm10,%xmm9,%xmm9
2744         vmovdqu 80-128(%rdi),%xmm10
2745         xorl    %r12d,%r14d
2746         xorl    %r8d,%r15d
2747         vpaddd  %ymm4,%ymm1,%ymm1
2748         xorl    %r13d,%r14d
2749         leal    (%rcx,%r15,1),%ecx
2750         movl    %r11d,%r12d
2751         vpxor   %ymm7,%ymm6,%ymm6
2752         addl    40+128(%rsp),%ebx
2753         andl    %r10d,%r12d
2754         rorxl   $25,%r10d,%r13d
2755         vpsrlq  $2,%ymm7,%ymm7
2756         rorxl   $11,%r10d,%r15d
2757         leal    (%rcx,%r14,1),%ecx
2758         leal    (%rbx,%r12,1),%ebx
2759         vpxor   %ymm7,%ymm6,%ymm6
2760         andnl   %eax,%r10d,%r12d
2761         xorl    %r15d,%r13d
2762         rorxl   $6,%r10d,%r14d
2763         vpshufd $132,%ymm6,%ymm6
2764         leal    (%rbx,%r12,1),%ebx
2765         xorl    %r14d,%r13d
2766         movl    %ecx,%r15d
2767         vpsrldq $8,%ymm6,%ymm6
2768         rorxl   $22,%ecx,%r12d
2769         leal    (%rbx,%r13,1),%ebx
2770         xorl    %edx,%r15d
2771         vpaddd  %ymm6,%ymm1,%ymm1
2772         rorxl   $13,%ecx,%r14d
2773         rorxl   $2,%ecx,%r13d
2774         leal    (%r9,%rbx,1),%r9d
2775         vpshufd $80,%ymm1,%ymm7
2776         andl    %r15d,%esi
2777         vaesenc %xmm10,%xmm9,%xmm9
2778         vmovdqu 96-128(%rdi),%xmm10
2779         xorl    %r12d,%r14d
2780         xorl    %edx,%esi
2781         vpsrld  $10,%ymm7,%ymm6
2782         xorl    %r13d,%r14d
2783         leal    (%rbx,%rsi,1),%ebx
2784         movl    %r10d,%r12d
2785         vpsrlq  $17,%ymm7,%ymm7
2786         addl    44+128(%rsp),%eax
2787         andl    %r9d,%r12d
2788         rorxl   $25,%r9d,%r13d
2789         vpxor   %ymm7,%ymm6,%ymm6
2790         rorxl   $11,%r9d,%esi
2791         leal    (%rbx,%r14,1),%ebx
2792         leal    (%rax,%r12,1),%eax
2793         vpsrlq  $2,%ymm7,%ymm7
2794         andnl   %r11d,%r9d,%r12d
2795         xorl    %esi,%r13d
2796         rorxl   $6,%r9d,%r14d
2797         vpxor   %ymm7,%ymm6,%ymm6
2798         leal    (%rax,%r12,1),%eax
2799         xorl    %r14d,%r13d
2800         movl    %ebx,%esi
2801         vpshufd $232,%ymm6,%ymm6
2802         rorxl   $22,%ebx,%r12d
2803         leal    (%rax,%r13,1),%eax
2804         xorl    %ecx,%esi
2805         vpslldq $8,%ymm6,%ymm6
2806         rorxl   $13,%ebx,%r14d
2807         rorxl   $2,%ebx,%r13d
2808         leal    (%r8,%rax,1),%r8d
2809         vpaddd  %ymm6,%ymm1,%ymm1
2810         andl    %esi,%r15d
2811         vaesenc %xmm10,%xmm9,%xmm9
2812         vmovdqu 112-128(%rdi),%xmm10
2813         xorl    %r12d,%r14d
2814         xorl    %ecx,%r15d
2815         vpaddd  32(%rbp),%ymm1,%ymm6
2816         xorl    %r13d,%r14d
2817         leal    (%rax,%r15,1),%eax
2818         movl    %r9d,%r12d
2819         vmovdqa %ymm6,32(%rsp)
2820         leaq    -64(%rsp),%rsp
2821         vpalignr        $4,%ymm2,%ymm3,%ymm4
2822         addl    0+128(%rsp),%r11d
2823         andl    %r8d,%r12d
2824         rorxl   $25,%r8d,%r13d
2825         vpalignr        $4,%ymm0,%ymm1,%ymm7
2826         rorxl   $11,%r8d,%r15d
2827         leal    (%rax,%r14,1),%eax
2828         leal    (%r11,%r12,1),%r11d
2829         vpsrld  $7,%ymm4,%ymm6
2830         andnl   %r10d,%r8d,%r12d
2831         xorl    %r15d,%r13d
2832         rorxl   $6,%r8d,%r14d
2833         vpaddd  %ymm7,%ymm2,%ymm2
2834         leal    (%r11,%r12,1),%r11d
2835         xorl    %r14d,%r13d
2836         movl    %eax,%r15d
2837         vpsrld  $3,%ymm4,%ymm7
2838         rorxl   $22,%eax,%r12d
2839         leal    (%r11,%r13,1),%r11d
2840         xorl    %ebx,%r15d
2841         vpslld  $14,%ymm4,%ymm5
2842         rorxl   $13,%eax,%r14d
2843         rorxl   $2,%eax,%r13d
2844         leal    (%rdx,%r11,1),%edx
2845         vpxor   %ymm6,%ymm7,%ymm4
2846         andl    %r15d,%esi
2847         vaesenc %xmm10,%xmm9,%xmm9
2848         vmovdqu 128-128(%rdi),%xmm10
2849         xorl    %r12d,%r14d
2850         xorl    %ebx,%esi
2851         vpshufd $250,%ymm1,%ymm7
2852         xorl    %r13d,%r14d
2853         leal    (%r11,%rsi,1),%r11d
2854         movl    %r8d,%r12d
2855         vpsrld  $11,%ymm6,%ymm6
2856         addl    4+128(%rsp),%r10d
2857         andl    %edx,%r12d
2858         rorxl   $25,%edx,%r13d
2859         vpxor   %ymm5,%ymm4,%ymm4
2860         rorxl   $11,%edx,%esi
2861         leal    (%r11,%r14,1),%r11d
2862         leal    (%r10,%r12,1),%r10d
2863         vpslld  $11,%ymm5,%ymm5
2864         andnl   %r9d,%edx,%r12d
2865         xorl    %esi,%r13d
2866         rorxl   $6,%edx,%r14d
2867         vpxor   %ymm6,%ymm4,%ymm4
2868         leal    (%r10,%r12,1),%r10d
2869         xorl    %r14d,%r13d
2870         movl    %r11d,%esi
2871         vpsrld  $10,%ymm7,%ymm6
2872         rorxl   $22,%r11d,%r12d
2873         leal    (%r10,%r13,1),%r10d
2874         xorl    %eax,%esi
2875         vpxor   %ymm5,%ymm4,%ymm4
2876         rorxl   $13,%r11d,%r14d
2877         rorxl   $2,%r11d,%r13d
2878         leal    (%rcx,%r10,1),%ecx
2879         vpsrlq  $17,%ymm7,%ymm7
2880         andl    %esi,%r15d
2881         vaesenc %xmm10,%xmm9,%xmm9
2882         vmovdqu 144-128(%rdi),%xmm10
2883         xorl    %r12d,%r14d
2884         xorl    %eax,%r15d
2885         vpaddd  %ymm4,%ymm2,%ymm2
2886         xorl    %r13d,%r14d
2887         leal    (%r10,%r15,1),%r10d
2888         movl    %edx,%r12d
2889         vpxor   %ymm7,%ymm6,%ymm6
2890         addl    8+128(%rsp),%r9d
2891         andl    %ecx,%r12d
2892         rorxl   $25,%ecx,%r13d
2893         vpsrlq  $2,%ymm7,%ymm7
2894         rorxl   $11,%ecx,%r15d
2895         leal    (%r10,%r14,1),%r10d
2896         leal    (%r9,%r12,1),%r9d
2897         vpxor   %ymm7,%ymm6,%ymm6
2898         andnl   %r8d,%ecx,%r12d
2899         xorl    %r15d,%r13d
2900         rorxl   $6,%ecx,%r14d
2901         vpshufd $132,%ymm6,%ymm6
2902         leal    (%r9,%r12,1),%r9d
2903         xorl    %r14d,%r13d
2904         movl    %r10d,%r15d
2905         vpsrldq $8,%ymm6,%ymm6
2906         rorxl   $22,%r10d,%r12d
2907         leal    (%r9,%r13,1),%r9d
2908         xorl    %r11d,%r15d
2909         vpaddd  %ymm6,%ymm2,%ymm2
2910         rorxl   $13,%r10d,%r14d
2911         rorxl   $2,%r10d,%r13d
2912         leal    (%rbx,%r9,1),%ebx
2913         vpshufd $80,%ymm2,%ymm7
2914         andl    %r15d,%esi
2915         vaesenc %xmm10,%xmm9,%xmm9
2916         vmovdqu 160-128(%rdi),%xmm10
2917         xorl    %r12d,%r14d
2918         xorl    %r11d,%esi
2919         vpsrld  $10,%ymm7,%ymm6
2920         xorl    %r13d,%r14d
2921         leal    (%r9,%rsi,1),%r9d
2922         movl    %ecx,%r12d
2923         vpsrlq  $17,%ymm7,%ymm7
2924         addl    12+128(%rsp),%r8d
2925         andl    %ebx,%r12d
2926         rorxl   $25,%ebx,%r13d
2927         vpxor   %ymm7,%ymm6,%ymm6
2928         rorxl   $11,%ebx,%esi
2929         leal    (%r9,%r14,1),%r9d
2930         leal    (%r8,%r12,1),%r8d
2931         vpsrlq  $2,%ymm7,%ymm7
2932         andnl   %edx,%ebx,%r12d
2933         xorl    %esi,%r13d
2934         rorxl   $6,%ebx,%r14d
2935         vpxor   %ymm7,%ymm6,%ymm6
2936         leal    (%r8,%r12,1),%r8d
2937         xorl    %r14d,%r13d
2938         movl    %r9d,%esi
2939         vpshufd $232,%ymm6,%ymm6
2940         rorxl   $22,%r9d,%r12d
2941         leal    (%r8,%r13,1),%r8d
2942         xorl    %r10d,%esi
2943         vpslldq $8,%ymm6,%ymm6
2944         rorxl   $13,%r9d,%r14d
2945         rorxl   $2,%r9d,%r13d
2946         leal    (%rax,%r8,1),%eax
2947         vpaddd  %ymm6,%ymm2,%ymm2
2948         andl    %esi,%r15d
2949         vaesenclast     %xmm10,%xmm9,%xmm11
2950         vaesenc %xmm10,%xmm9,%xmm9
2951         vmovdqu 176-128(%rdi),%xmm10
2952         xorl    %r12d,%r14d
2953         xorl    %r10d,%r15d
2954         vpaddd  64(%rbp),%ymm2,%ymm6
2955         xorl    %r13d,%r14d
2956         leal    (%r8,%r15,1),%r8d
2957         movl    %ebx,%r12d
2958         vmovdqa %ymm6,0(%rsp)
2959         vpalignr        $4,%ymm3,%ymm0,%ymm4
2960         addl    32+128(%rsp),%edx
2961         andl    %eax,%r12d
2962         rorxl   $25,%eax,%r13d
2963         vpalignr        $4,%ymm1,%ymm2,%ymm7
2964         rorxl   $11,%eax,%r15d
2965         leal    (%r8,%r14,1),%r8d
2966         leal    (%rdx,%r12,1),%edx
2967         vpsrld  $7,%ymm4,%ymm6
2968         andnl   %ecx,%eax,%r12d
2969         xorl    %r15d,%r13d
2970         rorxl   $6,%eax,%r14d
2971         vpaddd  %ymm7,%ymm3,%ymm3
2972         leal    (%rdx,%r12,1),%edx
2973         xorl    %r14d,%r13d
2974         movl    %r8d,%r15d
2975         vpsrld  $3,%ymm4,%ymm7
2976         rorxl   $22,%r8d,%r12d
2977         leal    (%rdx,%r13,1),%edx
2978         xorl    %r9d,%r15d
2979         vpslld  $14,%ymm4,%ymm5
2980         rorxl   $13,%r8d,%r14d
2981         rorxl   $2,%r8d,%r13d
2982         leal    (%r11,%rdx,1),%r11d
2983         vpxor   %ymm6,%ymm7,%ymm4
2984         andl    %r15d,%esi
2985         vpand   %xmm12,%xmm11,%xmm8
2986         vaesenc %xmm10,%xmm9,%xmm9
2987         vmovdqu 192-128(%rdi),%xmm10
2988         xorl    %r12d,%r14d
2989         xorl    %r9d,%esi
2990         vpshufd $250,%ymm2,%ymm7
2991         xorl    %r13d,%r14d
2992         leal    (%rdx,%rsi,1),%edx
2993         movl    %eax,%r12d
2994         vpsrld  $11,%ymm6,%ymm6
2995         addl    36+128(%rsp),%ecx
2996         andl    %r11d,%r12d
2997         rorxl   $25,%r11d,%r13d
2998         vpxor   %ymm5,%ymm4,%ymm4
2999         rorxl   $11,%r11d,%esi
3000         leal    (%rdx,%r14,1),%edx
3001         leal    (%rcx,%r12,1),%ecx
3002         vpslld  $11,%ymm5,%ymm5
3003         andnl   %ebx,%r11d,%r12d
3004         xorl    %esi,%r13d
3005         rorxl   $6,%r11d,%r14d
3006         vpxor   %ymm6,%ymm4,%ymm4
3007         leal    (%rcx,%r12,1),%ecx
3008         xorl    %r14d,%r13d
3009         movl    %edx,%esi
3010         vpsrld  $10,%ymm7,%ymm6
3011         rorxl   $22,%edx,%r12d
3012         leal    (%rcx,%r13,1),%ecx
3013         xorl    %r8d,%esi
3014         vpxor   %ymm5,%ymm4,%ymm4
3015         rorxl   $13,%edx,%r14d
3016         rorxl   $2,%edx,%r13d
3017         leal    (%r10,%rcx,1),%r10d
3018         vpsrlq  $17,%ymm7,%ymm7
3019         andl    %esi,%r15d
3020         vaesenclast     %xmm10,%xmm9,%xmm11
3021         vaesenc %xmm10,%xmm9,%xmm9
3022         vmovdqu 208-128(%rdi),%xmm10
3023         xorl    %r12d,%r14d
3024         xorl    %r8d,%r15d
3025         vpaddd  %ymm4,%ymm3,%ymm3
3026         xorl    %r13d,%r14d
3027         leal    (%rcx,%r15,1),%ecx
3028         movl    %r11d,%r12d
3029         vpxor   %ymm7,%ymm6,%ymm6
3030         addl    40+128(%rsp),%ebx
3031         andl    %r10d,%r12d
3032         rorxl   $25,%r10d,%r13d
3033         vpsrlq  $2,%ymm7,%ymm7
3034         rorxl   $11,%r10d,%r15d
3035         leal    (%rcx,%r14,1),%ecx
3036         leal    (%rbx,%r12,1),%ebx
3037         vpxor   %ymm7,%ymm6,%ymm6
3038         andnl   %eax,%r10d,%r12d
3039         xorl    %r15d,%r13d
3040         rorxl   $6,%r10d,%r14d
3041         vpshufd $132,%ymm6,%ymm6
3042         leal    (%rbx,%r12,1),%ebx
3043         xorl    %r14d,%r13d
3044         movl    %ecx,%r15d
3045         vpsrldq $8,%ymm6,%ymm6
3046         rorxl   $22,%ecx,%r12d
3047         leal    (%rbx,%r13,1),%ebx
3048         xorl    %edx,%r15d
3049         vpaddd  %ymm6,%ymm3,%ymm3
3050         rorxl   $13,%ecx,%r14d
3051         rorxl   $2,%ecx,%r13d
3052         leal    (%r9,%rbx,1),%r9d
3053         vpshufd $80,%ymm3,%ymm7
3054         andl    %r15d,%esi
3055         vpand   %xmm13,%xmm11,%xmm11
3056         vaesenc %xmm10,%xmm9,%xmm9
3057         vmovdqu 224-128(%rdi),%xmm10
3058         xorl    %r12d,%r14d
3059         xorl    %edx,%esi
3060         vpsrld  $10,%ymm7,%ymm6
3061         xorl    %r13d,%r14d
3062         leal    (%rbx,%rsi,1),%ebx
3063         movl    %r10d,%r12d
3064         vpsrlq  $17,%ymm7,%ymm7
3065         addl    44+128(%rsp),%eax
3066         andl    %r9d,%r12d
3067         rorxl   $25,%r9d,%r13d
3068         vpxor   %ymm7,%ymm6,%ymm6
3069         rorxl   $11,%r9d,%esi
3070         leal    (%rbx,%r14,1),%ebx
3071         leal    (%rax,%r12,1),%eax
3072         vpsrlq  $2,%ymm7,%ymm7
3073         andnl   %r11d,%r9d,%r12d
3074         xorl    %esi,%r13d
3075         rorxl   $6,%r9d,%r14d
3076         vpxor   %ymm7,%ymm6,%ymm6
3077         leal    (%rax,%r12,1),%eax
3078         xorl    %r14d,%r13d
3079         movl    %ebx,%esi
3080         vpshufd $232,%ymm6,%ymm6
3081         rorxl   $22,%ebx,%r12d
3082         leal    (%rax,%r13,1),%eax
3083         xorl    %ecx,%esi
3084         vpslldq $8,%ymm6,%ymm6
3085         rorxl   $13,%ebx,%r14d
3086         rorxl   $2,%ebx,%r13d
3087         leal    (%r8,%rax,1),%r8d
3088         vpaddd  %ymm6,%ymm3,%ymm3
3089         andl    %esi,%r15d
3090         vpor    %xmm11,%xmm8,%xmm8
3091         vaesenclast     %xmm10,%xmm9,%xmm11
3092         vmovdqu 0-128(%rdi),%xmm10
3093         xorl    %r12d,%r14d
3094         xorl    %ecx,%r15d
3095         vpaddd  96(%rbp),%ymm3,%ymm6
3096         xorl    %r13d,%r14d
3097         leal    (%rax,%r15,1),%eax
3098         movl    %r9d,%r12d
3099         vmovdqa %ymm6,32(%rsp)
3100         vmovq   %xmm15,%r13
3101         vpextrq $1,%xmm15,%r15
3102         vpand   %xmm14,%xmm11,%xmm11
3103         vpor    %xmm11,%xmm8,%xmm8
3104         vmovdqu %xmm8,(%r15,%r13,1)
3105         leaq    16(%r13),%r13
3106         leaq    128(%rbp),%rbp
3107         cmpb    $0,3(%rbp)
3108         jne     .Lavx2_00_47
3109         vmovdqu (%r13),%xmm9
3110         vpinsrq $0,%r13,%xmm15,%xmm15
3111         addl    0+64(%rsp),%r11d
3112         andl    %r8d,%r12d
3113         rorxl   $25,%r8d,%r13d
3114         rorxl   $11,%r8d,%r15d
3115         leal    (%rax,%r14,1),%eax
3116         leal    (%r11,%r12,1),%r11d
3117         andnl   %r10d,%r8d,%r12d
3118         xorl    %r15d,%r13d
3119         rorxl   $6,%r8d,%r14d
3120         leal    (%r11,%r12,1),%r11d
3121         xorl    %r14d,%r13d
3122         movl    %eax,%r15d
3123         rorxl   $22,%eax,%r12d
3124         leal    (%r11,%r13,1),%r11d
3125         xorl    %ebx,%r15d
3126         rorxl   $13,%eax,%r14d
3127         rorxl   $2,%eax,%r13d
3128         leal    (%rdx,%r11,1),%edx
3129         andl    %r15d,%esi
3130         vpxor   %xmm10,%xmm9,%xmm9
3131         vmovdqu 16-128(%rdi),%xmm10
3132         xorl    %r12d,%r14d
3133         xorl    %ebx,%esi
3134         xorl    %r13d,%r14d
3135         leal    (%r11,%rsi,1),%r11d
3136         movl    %r8d,%r12d
3137         addl    4+64(%rsp),%r10d
3138         andl    %edx,%r12d
3139         rorxl   $25,%edx,%r13d
3140         rorxl   $11,%edx,%esi
3141         leal    (%r11,%r14,1),%r11d
3142         leal    (%r10,%r12,1),%r10d
3143         andnl   %r9d,%edx,%r12d
3144         xorl    %esi,%r13d
3145         rorxl   $6,%edx,%r14d
3146         leal    (%r10,%r12,1),%r10d
3147         xorl    %r14d,%r13d
3148         movl    %r11d,%esi
3149         rorxl   $22,%r11d,%r12d
3150         leal    (%r10,%r13,1),%r10d
3151         xorl    %eax,%esi
3152         rorxl   $13,%r11d,%r14d
3153         rorxl   $2,%r11d,%r13d
3154         leal    (%rcx,%r10,1),%ecx
3155         andl    %esi,%r15d
3156         vpxor   %xmm8,%xmm9,%xmm9
3157         xorl    %r12d,%r14d
3158         xorl    %eax,%r15d
3159         xorl    %r13d,%r14d
3160         leal    (%r10,%r15,1),%r10d
3161         movl    %edx,%r12d
3162         addl    8+64(%rsp),%r9d
3163         andl    %ecx,%r12d
3164         rorxl   $25,%ecx,%r13d
3165         rorxl   $11,%ecx,%r15d
3166         leal    (%r10,%r14,1),%r10d
3167         leal    (%r9,%r12,1),%r9d
3168         andnl   %r8d,%ecx,%r12d
3169         xorl    %r15d,%r13d
3170         rorxl   $6,%ecx,%r14d
3171         leal    (%r9,%r12,1),%r9d
3172         xorl    %r14d,%r13d
3173         movl    %r10d,%r15d
3174         rorxl   $22,%r10d,%r12d
3175         leal    (%r9,%r13,1),%r9d
3176         xorl    %r11d,%r15d
3177         rorxl   $13,%r10d,%r14d
3178         rorxl   $2,%r10d,%r13d
3179         leal    (%rbx,%r9,1),%ebx
3180         andl    %r15d,%esi
3181         vaesenc %xmm10,%xmm9,%xmm9
3182         vmovdqu 32-128(%rdi),%xmm10
3183         xorl    %r12d,%r14d
3184         xorl    %r11d,%esi
3185         xorl    %r13d,%r14d
3186         leal    (%r9,%rsi,1),%r9d
3187         movl    %ecx,%r12d
3188         addl    12+64(%rsp),%r8d
3189         andl    %ebx,%r12d
3190         rorxl   $25,%ebx,%r13d
3191         rorxl   $11,%ebx,%esi
3192         leal    (%r9,%r14,1),%r9d
3193         leal    (%r8,%r12,1),%r8d
3194         andnl   %edx,%ebx,%r12d
3195         xorl    %esi,%r13d
3196         rorxl   $6,%ebx,%r14d
3197         leal    (%r8,%r12,1),%r8d
3198         xorl    %r14d,%r13d
3199         movl    %r9d,%esi
3200         rorxl   $22,%r9d,%r12d
3201         leal    (%r8,%r13,1),%r8d
3202         xorl    %r10d,%esi
3203         rorxl   $13,%r9d,%r14d
3204         rorxl   $2,%r9d,%r13d
3205         leal    (%rax,%r8,1),%eax
3206         andl    %esi,%r15d
3207         vaesenc %xmm10,%xmm9,%xmm9
3208         vmovdqu 48-128(%rdi),%xmm10
3209         xorl    %r12d,%r14d
3210         xorl    %r10d,%r15d
3211         xorl    %r13d,%r14d
3212         leal    (%r8,%r15,1),%r8d
3213         movl    %ebx,%r12d
3214         addl    32+64(%rsp),%edx
3215         andl    %eax,%r12d
3216         rorxl   $25,%eax,%r13d
3217         rorxl   $11,%eax,%r15d
3218         leal    (%r8,%r14,1),%r8d
3219         leal    (%rdx,%r12,1),%edx
3220         andnl   %ecx,%eax,%r12d
3221         xorl    %r15d,%r13d
3222         rorxl   $6,%eax,%r14d
3223         leal    (%rdx,%r12,1),%edx
3224         xorl    %r14d,%r13d
3225         movl    %r8d,%r15d
3226         rorxl   $22,%r8d,%r12d
3227         leal    (%rdx,%r13,1),%edx
3228         xorl    %r9d,%r15d
3229         rorxl   $13,%r8d,%r14d
3230         rorxl   $2,%r8d,%r13d
3231         leal    (%r11,%rdx,1),%r11d
3232         andl    %r15d,%esi
3233         vaesenc %xmm10,%xmm9,%xmm9
3234         vmovdqu 64-128(%rdi),%xmm10
3235         xorl    %r12d,%r14d
3236         xorl    %r9d,%esi
3237         xorl    %r13d,%r14d
3238         leal    (%rdx,%rsi,1),%edx
3239         movl    %eax,%r12d
3240         addl    36+64(%rsp),%ecx
3241         andl    %r11d,%r12d
3242         rorxl   $25,%r11d,%r13d
3243         rorxl   $11,%r11d,%esi
3244         leal    (%rdx,%r14,1),%edx
3245         leal    (%rcx,%r12,1),%ecx
3246         andnl   %ebx,%r11d,%r12d
3247         xorl    %esi,%r13d
3248         rorxl   $6,%r11d,%r14d
3249         leal    (%rcx,%r12,1),%ecx
3250         xorl    %r14d,%r13d
3251         movl    %edx,%esi
3252         rorxl   $22,%edx,%r12d
3253         leal    (%rcx,%r13,1),%ecx
3254         xorl    %r8d,%esi
3255         rorxl   $13,%edx,%r14d
3256         rorxl   $2,%edx,%r13d
3257         leal    (%r10,%rcx,1),%r10d
3258         andl    %esi,%r15d
3259         vaesenc %xmm10,%xmm9,%xmm9
3260         vmovdqu 80-128(%rdi),%xmm10
3261         xorl    %r12d,%r14d
3262         xorl    %r8d,%r15d
3263         xorl    %r13d,%r14d
3264         leal    (%rcx,%r15,1),%ecx
3265         movl    %r11d,%r12d
3266         addl    40+64(%rsp),%ebx
3267         andl    %r10d,%r12d
3268         rorxl   $25,%r10d,%r13d
3269         rorxl   $11,%r10d,%r15d
3270         leal    (%rcx,%r14,1),%ecx
3271         leal    (%rbx,%r12,1),%ebx
3272         andnl   %eax,%r10d,%r12d
3273         xorl    %r15d,%r13d
3274         rorxl   $6,%r10d,%r14d
3275         leal    (%rbx,%r12,1),%ebx
3276         xorl    %r14d,%r13d
3277         movl    %ecx,%r15d
3278         rorxl   $22,%ecx,%r12d
3279         leal    (%rbx,%r13,1),%ebx
3280         xorl    %edx,%r15d
3281         rorxl   $13,%ecx,%r14d
3282         rorxl   $2,%ecx,%r13d
3283         leal    (%r9,%rbx,1),%r9d
3284         andl    %r15d,%esi
3285         vaesenc %xmm10,%xmm9,%xmm9
3286         vmovdqu 96-128(%rdi),%xmm10
3287         xorl    %r12d,%r14d
3288         xorl    %edx,%esi
3289         xorl    %r13d,%r14d
3290         leal    (%rbx,%rsi,1),%ebx
3291         movl    %r10d,%r12d
3292         addl    44+64(%rsp),%eax
3293         andl    %r9d,%r12d
3294         rorxl   $25,%r9d,%r13d
3295         rorxl   $11,%r9d,%esi
3296         leal    (%rbx,%r14,1),%ebx
3297         leal    (%rax,%r12,1),%eax
3298         andnl   %r11d,%r9d,%r12d
3299         xorl    %esi,%r13d
3300         rorxl   $6,%r9d,%r14d
3301         leal    (%rax,%r12,1),%eax
3302         xorl    %r14d,%r13d
3303         movl    %ebx,%esi
3304         rorxl   $22,%ebx,%r12d
3305         leal    (%rax,%r13,1),%eax
3306         xorl    %ecx,%esi
3307         rorxl   $13,%ebx,%r14d
3308         rorxl   $2,%ebx,%r13d
3309         leal    (%r8,%rax,1),%r8d
3310         andl    %esi,%r15d
3311         vaesenc %xmm10,%xmm9,%xmm9
3312         vmovdqu 112-128(%rdi),%xmm10
3313         xorl    %r12d,%r14d
3314         xorl    %ecx,%r15d
3315         xorl    %r13d,%r14d
3316         leal    (%rax,%r15,1),%eax
3317         movl    %r9d,%r12d
3318         addl    0(%rsp),%r11d
3319         andl    %r8d,%r12d
3320         rorxl   $25,%r8d,%r13d
3321         rorxl   $11,%r8d,%r15d
3322         leal    (%rax,%r14,1),%eax
3323         leal    (%r11,%r12,1),%r11d
3324         andnl   %r10d,%r8d,%r12d
3325         xorl    %r15d,%r13d
3326         rorxl   $6,%r8d,%r14d
3327         leal    (%r11,%r12,1),%r11d
3328         xorl    %r14d,%r13d
3329         movl    %eax,%r15d
3330         rorxl   $22,%eax,%r12d
3331         leal    (%r11,%r13,1),%r11d
3332         xorl    %ebx,%r15d
3333         rorxl   $13,%eax,%r14d
3334         rorxl   $2,%eax,%r13d
3335         leal    (%rdx,%r11,1),%edx
3336         andl    %r15d,%esi
3337         vaesenc %xmm10,%xmm9,%xmm9
3338         vmovdqu 128-128(%rdi),%xmm10
3339         xorl    %r12d,%r14d
3340         xorl    %ebx,%esi
3341         xorl    %r13d,%r14d
3342         leal    (%r11,%rsi,1),%r11d
3343         movl    %r8d,%r12d
3344         addl    4(%rsp),%r10d
3345         andl    %edx,%r12d
3346         rorxl   $25,%edx,%r13d
3347         rorxl   $11,%edx,%esi
3348         leal    (%r11,%r14,1),%r11d
3349         leal    (%r10,%r12,1),%r10d
3350         andnl   %r9d,%edx,%r12d
3351         xorl    %esi,%r13d
3352         rorxl   $6,%edx,%r14d
3353         leal    (%r10,%r12,1),%r10d
3354         xorl    %r14d,%r13d
3355         movl    %r11d,%esi
3356         rorxl   $22,%r11d,%r12d
3357         leal    (%r10,%r13,1),%r10d
3358         xorl    %eax,%esi
3359         rorxl   $13,%r11d,%r14d
3360         rorxl   $2,%r11d,%r13d
3361         leal    (%rcx,%r10,1),%ecx
3362         andl    %esi,%r15d
3363         vaesenc %xmm10,%xmm9,%xmm9
3364         vmovdqu 144-128(%rdi),%xmm10
3365         xorl    %r12d,%r14d
3366         xorl    %eax,%r15d
3367         xorl    %r13d,%r14d
3368         leal    (%r10,%r15,1),%r10d
3369         movl    %edx,%r12d
3370         addl    8(%rsp),%r9d
3371         andl    %ecx,%r12d
3372         rorxl   $25,%ecx,%r13d
3373         rorxl   $11,%ecx,%r15d
3374         leal    (%r10,%r14,1),%r10d
3375         leal    (%r9,%r12,1),%r9d
3376         andnl   %r8d,%ecx,%r12d
3377         xorl    %r15d,%r13d
3378         rorxl   $6,%ecx,%r14d
3379         leal    (%r9,%r12,1),%r9d
3380         xorl    %r14d,%r13d
3381         movl    %r10d,%r15d
3382         rorxl   $22,%r10d,%r12d
3383         leal    (%r9,%r13,1),%r9d
3384         xorl    %r11d,%r15d
3385         rorxl   $13,%r10d,%r14d
3386         rorxl   $2,%r10d,%r13d
3387         leal    (%rbx,%r9,1),%ebx
3388         andl    %r15d,%esi
3389         vaesenc %xmm10,%xmm9,%xmm9
3390         vmovdqu 160-128(%rdi),%xmm10
3391         xorl    %r12d,%r14d
3392         xorl    %r11d,%esi
3393         xorl    %r13d,%r14d
3394         leal    (%r9,%rsi,1),%r9d
3395         movl    %ecx,%r12d
3396         addl    12(%rsp),%r8d
3397         andl    %ebx,%r12d
3398         rorxl   $25,%ebx,%r13d
3399         rorxl   $11,%ebx,%esi
3400         leal    (%r9,%r14,1),%r9d
3401         leal    (%r8,%r12,1),%r8d
3402         andnl   %edx,%ebx,%r12d
3403         xorl    %esi,%r13d
3404         rorxl   $6,%ebx,%r14d
3405         leal    (%r8,%r12,1),%r8d
3406         xorl    %r14d,%r13d
3407         movl    %r9d,%esi
3408         rorxl   $22,%r9d,%r12d
3409         leal    (%r8,%r13,1),%r8d
3410         xorl    %r10d,%esi
3411         rorxl   $13,%r9d,%r14d
3412         rorxl   $2,%r9d,%r13d
3413         leal    (%rax,%r8,1),%eax
3414         andl    %esi,%r15d
3415         vaesenclast     %xmm10,%xmm9,%xmm11
3416         vaesenc %xmm10,%xmm9,%xmm9
3417         vmovdqu 176-128(%rdi),%xmm10
3418         xorl    %r12d,%r14d
3419         xorl    %r10d,%r15d
3420         xorl    %r13d,%r14d
3421         leal    (%r8,%r15,1),%r8d
3422         movl    %ebx,%r12d
3423         addl    32(%rsp),%edx
3424         andl    %eax,%r12d
3425         rorxl   $25,%eax,%r13d
3426         rorxl   $11,%eax,%r15d
3427         leal    (%r8,%r14,1),%r8d
3428         leal    (%rdx,%r12,1),%edx
3429         andnl   %ecx,%eax,%r12d
3430         xorl    %r15d,%r13d
3431         rorxl   $6,%eax,%r14d
3432         leal    (%rdx,%r12,1),%edx
3433         xorl    %r14d,%r13d
3434         movl    %r8d,%r15d
3435         rorxl   $22,%r8d,%r12d
3436         leal    (%rdx,%r13,1),%edx
3437         xorl    %r9d,%r15d
3438         rorxl   $13,%r8d,%r14d
3439         rorxl   $2,%r8d,%r13d
3440         leal    (%r11,%rdx,1),%r11d
3441         andl    %r15d,%esi
3442         vpand   %xmm12,%xmm11,%xmm8
3443         vaesenc %xmm10,%xmm9,%xmm9
3444         vmovdqu 192-128(%rdi),%xmm10
3445         xorl    %r12d,%r14d
3446         xorl    %r9d,%esi
3447         xorl    %r13d,%r14d
3448         leal    (%rdx,%rsi,1),%edx
3449         movl    %eax,%r12d
3450         addl    36(%rsp),%ecx
3451         andl    %r11d,%r12d
3452         rorxl   $25,%r11d,%r13d
3453         rorxl   $11,%r11d,%esi
3454         leal    (%rdx,%r14,1),%edx
3455         leal    (%rcx,%r12,1),%ecx
3456         andnl   %ebx,%r11d,%r12d
3457         xorl    %esi,%r13d
3458         rorxl   $6,%r11d,%r14d
3459         leal    (%rcx,%r12,1),%ecx
3460         xorl    %r14d,%r13d
3461         movl    %edx,%esi
3462         rorxl   $22,%edx,%r12d
3463         leal    (%rcx,%r13,1),%ecx
3464         xorl    %r8d,%esi
3465         rorxl   $13,%edx,%r14d
3466         rorxl   $2,%edx,%r13d
3467         leal    (%r10,%rcx,1),%r10d
3468         andl    %esi,%r15d
3469         vaesenclast     %xmm10,%xmm9,%xmm11
3470         vaesenc %xmm10,%xmm9,%xmm9
3471         vmovdqu 208-128(%rdi),%xmm10
3472         xorl    %r12d,%r14d
3473         xorl    %r8d,%r15d
3474         xorl    %r13d,%r14d
3475         leal    (%rcx,%r15,1),%ecx
3476         movl    %r11d,%r12d
3477         addl    40(%rsp),%ebx
3478         andl    %r10d,%r12d
3479         rorxl   $25,%r10d,%r13d
3480         rorxl   $11,%r10d,%r15d
3481         leal    (%rcx,%r14,1),%ecx
3482         leal    (%rbx,%r12,1),%ebx
3483         andnl   %eax,%r10d,%r12d
3484         xorl    %r15d,%r13d
3485         rorxl   $6,%r10d,%r14d
3486         leal    (%rbx,%r12,1),%ebx
3487         xorl    %r14d,%r13d
3488         movl    %ecx,%r15d
3489         rorxl   $22,%ecx,%r12d
3490         leal    (%rbx,%r13,1),%ebx
3491         xorl    %edx,%r15d
3492         rorxl   $13,%ecx,%r14d
3493         rorxl   $2,%ecx,%r13d
3494         leal    (%r9,%rbx,1),%r9d
3495         andl    %r15d,%esi
3496         vpand   %xmm13,%xmm11,%xmm11
3497         vaesenc %xmm10,%xmm9,%xmm9
3498         vmovdqu 224-128(%rdi),%xmm10
3499         xorl    %r12d,%r14d
3500         xorl    %edx,%esi
3501         xorl    %r13d,%r14d
3502         leal    (%rbx,%rsi,1),%ebx
3503         movl    %r10d,%r12d
3504         addl    44(%rsp),%eax
3505         andl    %r9d,%r12d
3506         rorxl   $25,%r9d,%r13d
3507         rorxl   $11,%r9d,%esi
3508         leal    (%rbx,%r14,1),%ebx
3509         leal    (%rax,%r12,1),%eax
3510         andnl   %r11d,%r9d,%r12d
3511         xorl    %esi,%r13d
3512         rorxl   $6,%r9d,%r14d
3513         leal    (%rax,%r12,1),%eax
3514         xorl    %r14d,%r13d
3515         movl    %ebx,%esi
3516         rorxl   $22,%ebx,%r12d
3517         leal    (%rax,%r13,1),%eax
3518         xorl    %ecx,%esi
3519         rorxl   $13,%ebx,%r14d
3520         rorxl   $2,%ebx,%r13d
3521         leal    (%r8,%rax,1),%r8d
3522         andl    %esi,%r15d
3523         vpor    %xmm11,%xmm8,%xmm8
3524         vaesenclast     %xmm10,%xmm9,%xmm11
3525         vmovdqu 0-128(%rdi),%xmm10
3526         xorl    %r12d,%r14d
3527         xorl    %ecx,%r15d
3528         xorl    %r13d,%r14d
3529         leal    (%rax,%r15,1),%eax
3530         movl    %r9d,%r12d
3531         vpextrq $1,%xmm15,%r12
3532         vmovq   %xmm15,%r13
3533         movq    552(%rsp),%r15
3534         addl    %r14d,%eax
3535         leaq    448(%rsp),%rbp
3536
3537         vpand   %xmm14,%xmm11,%xmm11
3538         vpor    %xmm11,%xmm8,%xmm8
3539         vmovdqu %xmm8,(%r12,%r13,1)
3540         leaq    16(%r13),%r13
3541
3542         addl    0(%r15),%eax
3543         addl    4(%r15),%ebx
3544         addl    8(%r15),%ecx
3545         addl    12(%r15),%edx
3546         addl    16(%r15),%r8d
3547         addl    20(%r15),%r9d
3548         addl    24(%r15),%r10d
3549         addl    28(%r15),%r11d
3550
3551         movl    %eax,0(%r15)
3552         movl    %ebx,4(%r15)
3553         movl    %ecx,8(%r15)
3554         movl    %edx,12(%r15)
3555         movl    %r8d,16(%r15)
3556         movl    %r9d,20(%r15)
3557         movl    %r10d,24(%r15)
3558         movl    %r11d,28(%r15)
3559
3560         cmpq    80(%rbp),%r13
3561         je      .Ldone_avx2
3562
3563         xorl    %r14d,%r14d
3564         movl    %ebx,%esi
3565         movl    %r9d,%r12d
3566         xorl    %ecx,%esi
3567         jmp     .Lower_avx2
3568 .align  16
3569 .Lower_avx2:
3570         vmovdqu (%r13),%xmm9
3571         vpinsrq $0,%r13,%xmm15,%xmm15
3572         addl    0+16(%rbp),%r11d
3573         andl    %r8d,%r12d
3574         rorxl   $25,%r8d,%r13d
3575         rorxl   $11,%r8d,%r15d
3576         leal    (%rax,%r14,1),%eax
3577         leal    (%r11,%r12,1),%r11d
3578         andnl   %r10d,%r8d,%r12d
3579         xorl    %r15d,%r13d
3580         rorxl   $6,%r8d,%r14d
3581         leal    (%r11,%r12,1),%r11d
3582         xorl    %r14d,%r13d
3583         movl    %eax,%r15d
3584         rorxl   $22,%eax,%r12d
3585         leal    (%r11,%r13,1),%r11d
3586         xorl    %ebx,%r15d
3587         rorxl   $13,%eax,%r14d
3588         rorxl   $2,%eax,%r13d
3589         leal    (%rdx,%r11,1),%edx
3590         andl    %r15d,%esi
3591         vpxor   %xmm10,%xmm9,%xmm9
3592         vmovdqu 16-128(%rdi),%xmm10
3593         xorl    %r12d,%r14d
3594         xorl    %ebx,%esi
3595         xorl    %r13d,%r14d
3596         leal    (%r11,%rsi,1),%r11d
3597         movl    %r8d,%r12d
3598         addl    4+16(%rbp),%r10d
3599         andl    %edx,%r12d
3600         rorxl   $25,%edx,%r13d
3601         rorxl   $11,%edx,%esi
3602         leal    (%r11,%r14,1),%r11d
3603         leal    (%r10,%r12,1),%r10d
3604         andnl   %r9d,%edx,%r12d
3605         xorl    %esi,%r13d
3606         rorxl   $6,%edx,%r14d
3607         leal    (%r10,%r12,1),%r10d
3608         xorl    %r14d,%r13d
3609         movl    %r11d,%esi
3610         rorxl   $22,%r11d,%r12d
3611         leal    (%r10,%r13,1),%r10d
3612         xorl    %eax,%esi
3613         rorxl   $13,%r11d,%r14d
3614         rorxl   $2,%r11d,%r13d
3615         leal    (%rcx,%r10,1),%ecx
3616         andl    %esi,%r15d
3617         vpxor   %xmm8,%xmm9,%xmm9
3618         xorl    %r12d,%r14d
3619         xorl    %eax,%r15d
3620         xorl    %r13d,%r14d
3621         leal    (%r10,%r15,1),%r10d
3622         movl    %edx,%r12d
3623         addl    8+16(%rbp),%r9d
3624         andl    %ecx,%r12d
3625         rorxl   $25,%ecx,%r13d
3626         rorxl   $11,%ecx,%r15d
3627         leal    (%r10,%r14,1),%r10d
3628         leal    (%r9,%r12,1),%r9d
3629         andnl   %r8d,%ecx,%r12d
3630         xorl    %r15d,%r13d
3631         rorxl   $6,%ecx,%r14d
3632         leal    (%r9,%r12,1),%r9d
3633         xorl    %r14d,%r13d
3634         movl    %r10d,%r15d
3635         rorxl   $22,%r10d,%r12d
3636         leal    (%r9,%r13,1),%r9d
3637         xorl    %r11d,%r15d
3638         rorxl   $13,%r10d,%r14d
3639         rorxl   $2,%r10d,%r13d
3640         leal    (%rbx,%r9,1),%ebx
3641         andl    %r15d,%esi
3642         vaesenc %xmm10,%xmm9,%xmm9
3643         vmovdqu 32-128(%rdi),%xmm10
3644         xorl    %r12d,%r14d
3645         xorl    %r11d,%esi
3646         xorl    %r13d,%r14d
3647         leal    (%r9,%rsi,1),%r9d
3648         movl    %ecx,%r12d
3649         addl    12+16(%rbp),%r8d
3650         andl    %ebx,%r12d
3651         rorxl   $25,%ebx,%r13d
3652         rorxl   $11,%ebx,%esi
3653         leal    (%r9,%r14,1),%r9d
3654         leal    (%r8,%r12,1),%r8d
3655         andnl   %edx,%ebx,%r12d
3656         xorl    %esi,%r13d
3657         rorxl   $6,%ebx,%r14d
3658         leal    (%r8,%r12,1),%r8d
3659         xorl    %r14d,%r13d
3660         movl    %r9d,%esi
3661         rorxl   $22,%r9d,%r12d
3662         leal    (%r8,%r13,1),%r8d
3663         xorl    %r10d,%esi
3664         rorxl   $13,%r9d,%r14d
3665         rorxl   $2,%r9d,%r13d
3666         leal    (%rax,%r8,1),%eax
3667         andl    %esi,%r15d
3668         vaesenc %xmm10,%xmm9,%xmm9
3669         vmovdqu 48-128(%rdi),%xmm10
3670         xorl    %r12d,%r14d
3671         xorl    %r10d,%r15d
3672         xorl    %r13d,%r14d
3673         leal    (%r8,%r15,1),%r8d
3674         movl    %ebx,%r12d
3675         addl    32+16(%rbp),%edx
3676         andl    %eax,%r12d
3677         rorxl   $25,%eax,%r13d
3678         rorxl   $11,%eax,%r15d
3679         leal    (%r8,%r14,1),%r8d
3680         leal    (%rdx,%r12,1),%edx
3681         andnl   %ecx,%eax,%r12d
3682         xorl    %r15d,%r13d
3683         rorxl   $6,%eax,%r14d
3684         leal    (%rdx,%r12,1),%edx
3685         xorl    %r14d,%r13d
3686         movl    %r8d,%r15d
3687         rorxl   $22,%r8d,%r12d
3688         leal    (%rdx,%r13,1),%edx
3689         xorl    %r9d,%r15d
3690         rorxl   $13,%r8d,%r14d
3691         rorxl   $2,%r8d,%r13d
3692         leal    (%r11,%rdx,1),%r11d
3693         andl    %r15d,%esi
3694         vaesenc %xmm10,%xmm9,%xmm9
3695         vmovdqu 64-128(%rdi),%xmm10
3696         xorl    %r12d,%r14d
3697         xorl    %r9d,%esi
3698         xorl    %r13d,%r14d
3699         leal    (%rdx,%rsi,1),%edx
3700         movl    %eax,%r12d
3701         addl    36+16(%rbp),%ecx
3702         andl    %r11d,%r12d
3703         rorxl   $25,%r11d,%r13d
3704         rorxl   $11,%r11d,%esi
3705         leal    (%rdx,%r14,1),%edx
3706         leal    (%rcx,%r12,1),%ecx
3707         andnl   %ebx,%r11d,%r12d
3708         xorl    %esi,%r13d
3709         rorxl   $6,%r11d,%r14d
3710         leal    (%rcx,%r12,1),%ecx
3711         xorl    %r14d,%r13d
3712         movl    %edx,%esi
3713         rorxl   $22,%edx,%r12d
3714         leal    (%rcx,%r13,1),%ecx
3715         xorl    %r8d,%esi
3716         rorxl   $13,%edx,%r14d
3717         rorxl   $2,%edx,%r13d
3718         leal    (%r10,%rcx,1),%r10d
3719         andl    %esi,%r15d
3720         vaesenc %xmm10,%xmm9,%xmm9
3721         vmovdqu 80-128(%rdi),%xmm10
3722         xorl    %r12d,%r14d
3723         xorl    %r8d,%r15d
3724         xorl    %r13d,%r14d
3725         leal    (%rcx,%r15,1),%ecx
3726         movl    %r11d,%r12d
3727         addl    40+16(%rbp),%ebx
3728         andl    %r10d,%r12d
3729         rorxl   $25,%r10d,%r13d
3730         rorxl   $11,%r10d,%r15d
3731         leal    (%rcx,%r14,1),%ecx
3732         leal    (%rbx,%r12,1),%ebx
3733         andnl   %eax,%r10d,%r12d
3734         xorl    %r15d,%r13d
3735         rorxl   $6,%r10d,%r14d
3736         leal    (%rbx,%r12,1),%ebx
3737         xorl    %r14d,%r13d
3738         movl    %ecx,%r15d
3739         rorxl   $22,%ecx,%r12d
3740         leal    (%rbx,%r13,1),%ebx
3741         xorl    %edx,%r15d
3742         rorxl   $13,%ecx,%r14d
3743         rorxl   $2,%ecx,%r13d
3744         leal    (%r9,%rbx,1),%r9d
3745         andl    %r15d,%esi
3746         vaesenc %xmm10,%xmm9,%xmm9
3747         vmovdqu 96-128(%rdi),%xmm10
3748         xorl    %r12d,%r14d
3749         xorl    %edx,%esi
3750         xorl    %r13d,%r14d
3751         leal    (%rbx,%rsi,1),%ebx
3752         movl    %r10d,%r12d
3753         addl    44+16(%rbp),%eax
3754         andl    %r9d,%r12d
3755         rorxl   $25,%r9d,%r13d
3756         rorxl   $11,%r9d,%esi
3757         leal    (%rbx,%r14,1),%ebx
3758         leal    (%rax,%r12,1),%eax
3759         andnl   %r11d,%r9d,%r12d
3760         xorl    %esi,%r13d
3761         rorxl   $6,%r9d,%r14d
3762         leal    (%rax,%r12,1),%eax
3763         xorl    %r14d,%r13d
3764         movl    %ebx,%esi
3765         rorxl   $22,%ebx,%r12d
3766         leal    (%rax,%r13,1),%eax
3767         xorl    %ecx,%esi
3768         rorxl   $13,%ebx,%r14d
3769         rorxl   $2,%ebx,%r13d
3770         leal    (%r8,%rax,1),%r8d
3771         andl    %esi,%r15d
3772         vaesenc %xmm10,%xmm9,%xmm9
3773         vmovdqu 112-128(%rdi),%xmm10
3774         xorl    %r12d,%r14d
3775         xorl    %ecx,%r15d
3776         xorl    %r13d,%r14d
3777         leal    (%rax,%r15,1),%eax
3778         movl    %r9d,%r12d
3779         leaq    -64(%rbp),%rbp
3780         addl    0+16(%rbp),%r11d
3781         andl    %r8d,%r12d
3782         rorxl   $25,%r8d,%r13d
3783         rorxl   $11,%r8d,%r15d
3784         leal    (%rax,%r14,1),%eax
3785         leal    (%r11,%r12,1),%r11d
3786         andnl   %r10d,%r8d,%r12d
3787         xorl    %r15d,%r13d
3788         rorxl   $6,%r8d,%r14d
3789         leal    (%r11,%r12,1),%r11d
3790         xorl    %r14d,%r13d
3791         movl    %eax,%r15d
3792         rorxl   $22,%eax,%r12d
3793         leal    (%r11,%r13,1),%r11d
3794         xorl    %ebx,%r15d
3795         rorxl   $13,%eax,%r14d
3796         rorxl   $2,%eax,%r13d
3797         leal    (%rdx,%r11,1),%edx
3798         andl    %r15d,%esi
3799         vaesenc %xmm10,%xmm9,%xmm9
3800         vmovdqu 128-128(%rdi),%xmm10
3801         xorl    %r12d,%r14d
3802         xorl    %ebx,%esi
3803         xorl    %r13d,%r14d
3804         leal    (%r11,%rsi,1),%r11d
3805         movl    %r8d,%r12d
3806         addl    4+16(%rbp),%r10d
3807         andl    %edx,%r12d
3808         rorxl   $25,%edx,%r13d
3809         rorxl   $11,%edx,%esi
3810         leal    (%r11,%r14,1),%r11d
3811         leal    (%r10,%r12,1),%r10d
3812         andnl   %r9d,%edx,%r12d
3813         xorl    %esi,%r13d
3814         rorxl   $6,%edx,%r14d
3815         leal    (%r10,%r12,1),%r10d
3816         xorl    %r14d,%r13d
3817         movl    %r11d,%esi
3818         rorxl   $22,%r11d,%r12d
3819         leal    (%r10,%r13,1),%r10d
3820         xorl    %eax,%esi
3821         rorxl   $13,%r11d,%r14d
3822         rorxl   $2,%r11d,%r13d
3823         leal    (%rcx,%r10,1),%ecx
3824         andl    %esi,%r15d
3825         vaesenc %xmm10,%xmm9,%xmm9
3826         vmovdqu 144-128(%rdi),%xmm10
3827         xorl    %r12d,%r14d
3828         xorl    %eax,%r15d
3829         xorl    %r13d,%r14d
3830         leal    (%r10,%r15,1),%r10d
3831         movl    %edx,%r12d
3832         addl    8+16(%rbp),%r9d
3833         andl    %ecx,%r12d
3834         rorxl   $25,%ecx,%r13d
3835         rorxl   $11,%ecx,%r15d
3836         leal    (%r10,%r14,1),%r10d
3837         leal    (%r9,%r12,1),%r9d
3838         andnl   %r8d,%ecx,%r12d
3839         xorl    %r15d,%r13d
3840         rorxl   $6,%ecx,%r14d
3841         leal    (%r9,%r12,1),%r9d
3842         xorl    %r14d,%r13d
3843         movl    %r10d,%r15d
3844         rorxl   $22,%r10d,%r12d
3845         leal    (%r9,%r13,1),%r9d
3846         xorl    %r11d,%r15d
3847         rorxl   $13,%r10d,%r14d
3848         rorxl   $2,%r10d,%r13d
3849         leal    (%rbx,%r9,1),%ebx
3850         andl    %r15d,%esi
3851         vaesenc %xmm10,%xmm9,%xmm9
3852         vmovdqu 160-128(%rdi),%xmm10
3853         xorl    %r12d,%r14d
3854         xorl    %r11d,%esi
3855         xorl    %r13d,%r14d
3856         leal    (%r9,%rsi,1),%r9d
3857         movl    %ecx,%r12d
3858         addl    12+16(%rbp),%r8d
3859         andl    %ebx,%r12d
3860         rorxl   $25,%ebx,%r13d
3861         rorxl   $11,%ebx,%esi
3862         leal    (%r9,%r14,1),%r9d
3863         leal    (%r8,%r12,1),%r8d
3864         andnl   %edx,%ebx,%r12d
3865         xorl    %esi,%r13d
3866         rorxl   $6,%ebx,%r14d
3867         leal    (%r8,%r12,1),%r8d
3868         xorl    %r14d,%r13d
3869         movl    %r9d,%esi
3870         rorxl   $22,%r9d,%r12d
3871         leal    (%r8,%r13,1),%r8d
3872         xorl    %r10d,%esi
3873         rorxl   $13,%r9d,%r14d
3874         rorxl   $2,%r9d,%r13d
3875         leal    (%rax,%r8,1),%eax
3876         andl    %esi,%r15d
3877         vaesenclast     %xmm10,%xmm9,%xmm11
3878         vaesenc %xmm10,%xmm9,%xmm9
3879         vmovdqu 176-128(%rdi),%xmm10
3880         xorl    %r12d,%r14d
3881         xorl    %r10d,%r15d
3882         xorl    %r13d,%r14d
3883         leal    (%r8,%r15,1),%r8d
3884         movl    %ebx,%r12d
3885         addl    32+16(%rbp),%edx
3886         andl    %eax,%r12d
3887         rorxl   $25,%eax,%r13d
3888         rorxl   $11,%eax,%r15d
3889         leal    (%r8,%r14,1),%r8d
3890         leal    (%rdx,%r12,1),%edx
3891         andnl   %ecx,%eax,%r12d
3892         xorl    %r15d,%r13d
3893         rorxl   $6,%eax,%r14d
3894         leal    (%rdx,%r12,1),%edx
3895         xorl    %r14d,%r13d
3896         movl    %r8d,%r15d
3897         rorxl   $22,%r8d,%r12d
3898         leal    (%rdx,%r13,1),%edx
3899         xorl    %r9d,%r15d
3900         rorxl   $13,%r8d,%r14d
3901         rorxl   $2,%r8d,%r13d
3902         leal    (%r11,%rdx,1),%r11d
3903         andl    %r15d,%esi
3904         vpand   %xmm12,%xmm11,%xmm8
3905         vaesenc %xmm10,%xmm9,%xmm9
3906         vmovdqu 192-128(%rdi),%xmm10
3907         xorl    %r12d,%r14d
3908         xorl    %r9d,%esi
3909         xorl    %r13d,%r14d
3910         leal    (%rdx,%rsi,1),%edx
3911         movl    %eax,%r12d
3912         addl    36+16(%rbp),%ecx
3913         andl    %r11d,%r12d
3914         rorxl   $25,%r11d,%r13d
3915         rorxl   $11,%r11d,%esi
3916         leal    (%rdx,%r14,1),%edx
3917         leal    (%rcx,%r12,1),%ecx
3918         andnl   %ebx,%r11d,%r12d
3919         xorl    %esi,%r13d
3920         rorxl   $6,%r11d,%r14d
3921         leal    (%rcx,%r12,1),%ecx
3922         xorl    %r14d,%r13d
3923         movl    %edx,%esi
3924         rorxl   $22,%edx,%r12d
3925         leal    (%rcx,%r13,1),%ecx
3926         xorl    %r8d,%esi
3927         rorxl   $13,%edx,%r14d
3928         rorxl   $2,%edx,%r13d
3929         leal    (%r10,%rcx,1),%r10d
3930         andl    %esi,%r15d
3931         vaesenclast     %xmm10,%xmm9,%xmm11
3932         vaesenc %xmm10,%xmm9,%xmm9
3933         vmovdqu 208-128(%rdi),%xmm10
3934         xorl    %r12d,%r14d
3935         xorl    %r8d,%r15d
3936         xorl    %r13d,%r14d
3937         leal    (%rcx,%r15,1),%ecx
3938         movl    %r11d,%r12d
3939         addl    40+16(%rbp),%ebx
3940         andl    %r10d,%r12d
3941         rorxl   $25,%r10d,%r13d
3942         rorxl   $11,%r10d,%r15d
3943         leal    (%rcx,%r14,1),%ecx
3944         leal    (%rbx,%r12,1),%ebx
3945         andnl   %eax,%r10d,%r12d
3946         xorl    %r15d,%r13d
3947         rorxl   $6,%r10d,%r14d
3948         leal    (%rbx,%r12,1),%ebx
3949         xorl    %r14d,%r13d
3950         movl    %ecx,%r15d
3951         rorxl   $22,%ecx,%r12d
3952         leal    (%rbx,%r13,1),%ebx
3953         xorl    %edx,%r15d
3954         rorxl   $13,%ecx,%r14d
3955         rorxl   $2,%ecx,%r13d
3956         leal    (%r9,%rbx,1),%r9d
3957         andl    %r15d,%esi
3958         vpand   %xmm13,%xmm11,%xmm11
3959         vaesenc %xmm10,%xmm9,%xmm9
3960         vmovdqu 224-128(%rdi),%xmm10
3961         xorl    %r12d,%r14d
3962         xorl    %edx,%esi
3963         xorl    %r13d,%r14d
3964         leal    (%rbx,%rsi,1),%ebx
3965         movl    %r10d,%r12d
3966         addl    44+16(%rbp),%eax
3967         andl    %r9d,%r12d
3968         rorxl   $25,%r9d,%r13d
3969         rorxl   $11,%r9d,%esi
3970         leal    (%rbx,%r14,1),%ebx
3971         leal    (%rax,%r12,1),%eax
3972         andnl   %r11d,%r9d,%r12d
3973         xorl    %esi,%r13d
3974         rorxl   $6,%r9d,%r14d
3975         leal    (%rax,%r12,1),%eax
3976         xorl    %r14d,%r13d
3977         movl    %ebx,%esi
3978         rorxl   $22,%ebx,%r12d
3979         leal    (%rax,%r13,1),%eax
3980         xorl    %ecx,%esi
3981         rorxl   $13,%ebx,%r14d
3982         rorxl   $2,%ebx,%r13d
3983         leal    (%r8,%rax,1),%r8d
3984         andl    %esi,%r15d
3985         vpor    %xmm11,%xmm8,%xmm8
3986         vaesenclast     %xmm10,%xmm9,%xmm11
3987         vmovdqu 0-128(%rdi),%xmm10
3988         xorl    %r12d,%r14d
3989         xorl    %ecx,%r15d
3990         xorl    %r13d,%r14d
3991         leal    (%rax,%r15,1),%eax
3992         movl    %r9d,%r12d
3993         vmovq   %xmm15,%r13
3994         vpextrq $1,%xmm15,%r15
3995         vpand   %xmm14,%xmm11,%xmm11
3996         vpor    %xmm11,%xmm8,%xmm8
3997         leaq    -64(%rbp),%rbp
3998         vmovdqu %xmm8,(%r15,%r13,1)
3999         leaq    16(%r13),%r13
4000         cmpq    %rsp,%rbp
4001         jae     .Lower_avx2
4002
4003         movq    552(%rsp),%r15
4004         leaq    64(%r13),%r13
4005         movq    560(%rsp),%rsi
4006         addl    %r14d,%eax
4007         leaq    448(%rsp),%rsp
4008
4009         addl    0(%r15),%eax
4010         addl    4(%r15),%ebx
4011         addl    8(%r15),%ecx
4012         addl    12(%r15),%edx
4013         addl    16(%r15),%r8d
4014         addl    20(%r15),%r9d
4015         addl    24(%r15),%r10d
4016         leaq    (%rsi,%r13,1),%r12
4017         addl    28(%r15),%r11d
4018
4019         cmpq    64+16(%rsp),%r13
4020
4021         movl    %eax,0(%r15)
4022         cmoveq  %rsp,%r12
4023         movl    %ebx,4(%r15)
4024         movl    %ecx,8(%r15)
4025         movl    %edx,12(%r15)
4026         movl    %r8d,16(%r15)
4027         movl    %r9d,20(%r15)
4028         movl    %r10d,24(%r15)
4029         movl    %r11d,28(%r15)
4030
4031         jbe     .Loop_avx2
4032         leaq    (%rsp),%rbp
4033
4034 .Ldone_avx2:
4035         leaq    (%rbp),%rsp
4036         movq    64+32(%rsp),%r8
4037         movq    120(%rsp),%rsi
4038 .cfi_def_cfa    %rsi,8
4039         vmovdqu %xmm8,(%r8)
4040         vzeroall
4041         movq    -48(%rsi),%r15
4042 .cfi_restore    %r15
4043         movq    -40(%rsi),%r14
4044 .cfi_restore    %r14
4045         movq    -32(%rsi),%r13
4046 .cfi_restore    %r13
4047         movq    -24(%rsi),%r12
4048 .cfi_restore    %r12
4049         movq    -16(%rsi),%rbp
4050 .cfi_restore    %rbp
4051         movq    -8(%rsi),%rbx
4052 .cfi_restore    %rbx
4053         leaq    (%rsi),%rsp
4054 .cfi_def_cfa_register   %rsp
4055 .Lepilogue_avx2:
4056         .byte   0xf3,0xc3
4057 .cfi_endproc    
4058 .size   aesni_cbc_sha256_enc_avx2,.-aesni_cbc_sha256_enc_avx2
4059 .type   aesni_cbc_sha256_enc_shaext,@function
4060 .align  32
4061 aesni_cbc_sha256_enc_shaext:
4062         movq    8(%rsp),%r10
4063         leaq    K256+128(%rip),%rax
4064         movdqu  (%r9),%xmm1
4065         movdqu  16(%r9),%xmm2
4066         movdqa  512-128(%rax),%xmm3
4067
4068         movl    240(%rcx),%r11d
4069         subq    %rdi,%rsi
4070         movups  (%rcx),%xmm15
4071         movups  (%r8),%xmm6
4072         movups  16(%rcx),%xmm4
4073         leaq    112(%rcx),%rcx
4074
4075         pshufd  $0x1b,%xmm1,%xmm0
4076         pshufd  $0xb1,%xmm1,%xmm1
4077         pshufd  $0x1b,%xmm2,%xmm2
4078         movdqa  %xmm3,%xmm7
4079 .byte   102,15,58,15,202,8
4080         punpcklqdq      %xmm0,%xmm2
4081
4082         jmp     .Loop_shaext
4083
4084 .align  16
4085 .Loop_shaext:
4086         movdqu  (%r10),%xmm10
4087         movdqu  16(%r10),%xmm11
4088         movdqu  32(%r10),%xmm12
4089 .byte   102,68,15,56,0,211
4090         movdqu  48(%r10),%xmm13
4091
4092         movdqa  0-128(%rax),%xmm0
4093         paddd   %xmm10,%xmm0
4094 .byte   102,68,15,56,0,219
4095         movdqa  %xmm2,%xmm9
4096         movdqa  %xmm1,%xmm8
4097         movups  0(%rdi),%xmm14
4098         xorps   %xmm15,%xmm14
4099         xorps   %xmm14,%xmm6
4100         movups  -80(%rcx),%xmm5
4101         aesenc  %xmm4,%xmm6
4102 .byte   15,56,203,209
4103         pshufd  $0x0e,%xmm0,%xmm0
4104         movups  -64(%rcx),%xmm4
4105         aesenc  %xmm5,%xmm6
4106 .byte   15,56,203,202
4107
4108         movdqa  32-128(%rax),%xmm0
4109         paddd   %xmm11,%xmm0
4110 .byte   102,68,15,56,0,227
4111         leaq    64(%r10),%r10
4112         movups  -48(%rcx),%xmm5
4113         aesenc  %xmm4,%xmm6
4114 .byte   15,56,203,209
4115         pshufd  $0x0e,%xmm0,%xmm0
4116         movups  -32(%rcx),%xmm4
4117         aesenc  %xmm5,%xmm6
4118 .byte   15,56,203,202
4119
4120         movdqa  64-128(%rax),%xmm0
4121         paddd   %xmm12,%xmm0
4122 .byte   102,68,15,56,0,235
4123 .byte   69,15,56,204,211
4124         movups  -16(%rcx),%xmm5
4125         aesenc  %xmm4,%xmm6
4126 .byte   15,56,203,209
4127         pshufd  $0x0e,%xmm0,%xmm0
4128         movdqa  %xmm13,%xmm3
4129 .byte   102,65,15,58,15,220,4
4130         paddd   %xmm3,%xmm10
4131         movups  0(%rcx),%xmm4
4132         aesenc  %xmm5,%xmm6
4133 .byte   15,56,203,202
4134
4135         movdqa  96-128(%rax),%xmm0
4136         paddd   %xmm13,%xmm0
4137 .byte   69,15,56,205,213
4138 .byte   69,15,56,204,220
4139         movups  16(%rcx),%xmm5
4140         aesenc  %xmm4,%xmm6
4141 .byte   15,56,203,209
4142         pshufd  $0x0e,%xmm0,%xmm0
4143         movups  32(%rcx),%xmm4
4144         aesenc  %xmm5,%xmm6
4145         movdqa  %xmm10,%xmm3
4146 .byte   102,65,15,58,15,221,4
4147         paddd   %xmm3,%xmm11
4148 .byte   15,56,203,202
4149         movdqa  128-128(%rax),%xmm0
4150         paddd   %xmm10,%xmm0
4151 .byte   69,15,56,205,218
4152 .byte   69,15,56,204,229
4153         movups  48(%rcx),%xmm5
4154         aesenc  %xmm4,%xmm6
4155 .byte   15,56,203,209
4156         pshufd  $0x0e,%xmm0,%xmm0
4157         movdqa  %xmm11,%xmm3
4158 .byte   102,65,15,58,15,218,4
4159         paddd   %xmm3,%xmm12
4160         cmpl    $11,%r11d
4161         jb      .Laesenclast1
4162         movups  64(%rcx),%xmm4
4163         aesenc  %xmm5,%xmm6
4164         movups  80(%rcx),%xmm5
4165         aesenc  %xmm4,%xmm6
4166         je      .Laesenclast1
4167         movups  96(%rcx),%xmm4
4168         aesenc  %xmm5,%xmm6
4169         movups  112(%rcx),%xmm5
4170         aesenc  %xmm4,%xmm6
4171 .Laesenclast1:
4172         aesenclast      %xmm5,%xmm6
4173         movups  16-112(%rcx),%xmm4
4174         nop
4175 .byte   15,56,203,202
4176         movups  16(%rdi),%xmm14
4177         xorps   %xmm15,%xmm14
4178         movups  %xmm6,0(%rsi,%rdi,1)
4179         xorps   %xmm14,%xmm6
4180         movups  -80(%rcx),%xmm5
4181         aesenc  %xmm4,%xmm6
4182         movdqa  160-128(%rax),%xmm0
4183         paddd   %xmm11,%xmm0
4184 .byte   69,15,56,205,227
4185 .byte   69,15,56,204,234
4186         movups  -64(%rcx),%xmm4
4187         aesenc  %xmm5,%xmm6
4188 .byte   15,56,203,209
4189         pshufd  $0x0e,%xmm0,%xmm0
4190         movdqa  %xmm12,%xmm3
4191 .byte   102,65,15,58,15,219,4
4192         paddd   %xmm3,%xmm13
4193         movups  -48(%rcx),%xmm5
4194         aesenc  %xmm4,%xmm6
4195 .byte   15,56,203,202
4196         movdqa  192-128(%rax),%xmm0
4197         paddd   %xmm12,%xmm0
4198 .byte   69,15,56,205,236
4199 .byte   69,15,56,204,211
4200         movups  -32(%rcx),%xmm4
4201         aesenc  %xmm5,%xmm6
4202 .byte   15,56,203,209
4203         pshufd  $0x0e,%xmm0,%xmm0
4204         movdqa  %xmm13,%xmm3
4205 .byte   102,65,15,58,15,220,4
4206         paddd   %xmm3,%xmm10
4207         movups  -16(%rcx),%xmm5
4208         aesenc  %xmm4,%xmm6
4209 .byte   15,56,203,202
4210         movdqa  224-128(%rax),%xmm0
4211         paddd   %xmm13,%xmm0
4212 .byte   69,15,56,205,213
4213 .byte   69,15,56,204,220
4214         movups  0(%rcx),%xmm4
4215         aesenc  %xmm5,%xmm6
4216 .byte   15,56,203,209
4217         pshufd  $0x0e,%xmm0,%xmm0
4218         movdqa  %xmm10,%xmm3
4219 .byte   102,65,15,58,15,221,4
4220         paddd   %xmm3,%xmm11
4221         movups  16(%rcx),%xmm5
4222         aesenc  %xmm4,%xmm6
4223 .byte   15,56,203,202
4224         movdqa  256-128(%rax),%xmm0
4225         paddd   %xmm10,%xmm0
4226 .byte   69,15,56,205,218
4227 .byte   69,15,56,204,229
4228         movups  32(%rcx),%xmm4
4229         aesenc  %xmm5,%xmm6
4230 .byte   15,56,203,209
4231         pshufd  $0x0e,%xmm0,%xmm0
4232         movdqa  %xmm11,%xmm3
4233 .byte   102,65,15,58,15,218,4
4234         paddd   %xmm3,%xmm12
4235         movups  48(%rcx),%xmm5
4236         aesenc  %xmm4,%xmm6
4237         cmpl    $11,%r11d
4238         jb      .Laesenclast2
4239         movups  64(%rcx),%xmm4
4240         aesenc  %xmm5,%xmm6
4241         movups  80(%rcx),%xmm5
4242         aesenc  %xmm4,%xmm6
4243         je      .Laesenclast2
4244         movups  96(%rcx),%xmm4
4245         aesenc  %xmm5,%xmm6
4246         movups  112(%rcx),%xmm5
4247         aesenc  %xmm4,%xmm6
4248 .Laesenclast2:
4249         aesenclast      %xmm5,%xmm6
4250         movups  16-112(%rcx),%xmm4
4251         nop
4252 .byte   15,56,203,202
4253         movups  32(%rdi),%xmm14
4254         xorps   %xmm15,%xmm14
4255         movups  %xmm6,16(%rsi,%rdi,1)
4256         xorps   %xmm14,%xmm6
4257         movups  -80(%rcx),%xmm5
4258         aesenc  %xmm4,%xmm6
4259         movdqa  288-128(%rax),%xmm0
4260         paddd   %xmm11,%xmm0
4261 .byte   69,15,56,205,227
4262 .byte   69,15,56,204,234
4263         movups  -64(%rcx),%xmm4
4264         aesenc  %xmm5,%xmm6
4265 .byte   15,56,203,209
4266         pshufd  $0x0e,%xmm0,%xmm0
4267         movdqa  %xmm12,%xmm3
4268 .byte   102,65,15,58,15,219,4
4269         paddd   %xmm3,%xmm13
4270         movups  -48(%rcx),%xmm5
4271         aesenc  %xmm4,%xmm6
4272 .byte   15,56,203,202
4273         movdqa  320-128(%rax),%xmm0
4274         paddd   %xmm12,%xmm0
4275 .byte   69,15,56,205,236
4276 .byte   69,15,56,204,211
4277         movups  -32(%rcx),%xmm4
4278         aesenc  %xmm5,%xmm6
4279 .byte   15,56,203,209
4280         pshufd  $0x0e,%xmm0,%xmm0
4281         movdqa  %xmm13,%xmm3
4282 .byte   102,65,15,58,15,220,4
4283         paddd   %xmm3,%xmm10
4284         movups  -16(%rcx),%xmm5
4285         aesenc  %xmm4,%xmm6
4286 .byte   15,56,203,202
4287         movdqa  352-128(%rax),%xmm0
4288         paddd   %xmm13,%xmm0
4289 .byte   69,15,56,205,213
4290 .byte   69,15,56,204,220
4291         movups  0(%rcx),%xmm4
4292         aesenc  %xmm5,%xmm6
4293 .byte   15,56,203,209
4294         pshufd  $0x0e,%xmm0,%xmm0
4295         movdqa  %xmm10,%xmm3
4296 .byte   102,65,15,58,15,221,4
4297         paddd   %xmm3,%xmm11
4298         movups  16(%rcx),%xmm5
4299         aesenc  %xmm4,%xmm6
4300 .byte   15,56,203,202
4301         movdqa  384-128(%rax),%xmm0
4302         paddd   %xmm10,%xmm0
4303 .byte   69,15,56,205,218
4304 .byte   69,15,56,204,229
4305         movups  32(%rcx),%xmm4
4306         aesenc  %xmm5,%xmm6
4307 .byte   15,56,203,209
4308         pshufd  $0x0e,%xmm0,%xmm0
4309         movdqa  %xmm11,%xmm3
4310 .byte   102,65,15,58,15,218,4
4311         paddd   %xmm3,%xmm12
4312         movups  48(%rcx),%xmm5
4313         aesenc  %xmm4,%xmm6
4314 .byte   15,56,203,202
4315         movdqa  416-128(%rax),%xmm0
4316         paddd   %xmm11,%xmm0
4317 .byte   69,15,56,205,227
4318 .byte   69,15,56,204,234
4319         cmpl    $11,%r11d
4320         jb      .Laesenclast3
4321         movups  64(%rcx),%xmm4
4322         aesenc  %xmm5,%xmm6
4323         movups  80(%rcx),%xmm5
4324         aesenc  %xmm4,%xmm6
4325         je      .Laesenclast3
4326         movups  96(%rcx),%xmm4
4327         aesenc  %xmm5,%xmm6
4328         movups  112(%rcx),%xmm5
4329         aesenc  %xmm4,%xmm6
4330 .Laesenclast3:
4331         aesenclast      %xmm5,%xmm6
4332         movups  16-112(%rcx),%xmm4
4333         nop
4334 .byte   15,56,203,209
4335         pshufd  $0x0e,%xmm0,%xmm0
4336         movdqa  %xmm12,%xmm3
4337 .byte   102,65,15,58,15,219,4
4338         paddd   %xmm3,%xmm13
4339         movups  48(%rdi),%xmm14
4340         xorps   %xmm15,%xmm14
4341         movups  %xmm6,32(%rsi,%rdi,1)
4342         xorps   %xmm14,%xmm6
4343         movups  -80(%rcx),%xmm5
4344         aesenc  %xmm4,%xmm6
4345         movups  -64(%rcx),%xmm4
4346         aesenc  %xmm5,%xmm6
4347 .byte   15,56,203,202
4348
4349         movdqa  448-128(%rax),%xmm0
4350         paddd   %xmm12,%xmm0
4351 .byte   69,15,56,205,236
4352         movdqa  %xmm7,%xmm3
4353         movups  -48(%rcx),%xmm5
4354         aesenc  %xmm4,%xmm6
4355 .byte   15,56,203,209
4356         pshufd  $0x0e,%xmm0,%xmm0
4357         movups  -32(%rcx),%xmm4
4358         aesenc  %xmm5,%xmm6
4359 .byte   15,56,203,202
4360
4361         movdqa  480-128(%rax),%xmm0
4362         paddd   %xmm13,%xmm0
4363         movups  -16(%rcx),%xmm5
4364         aesenc  %xmm4,%xmm6
4365         movups  0(%rcx),%xmm4
4366         aesenc  %xmm5,%xmm6
4367 .byte   15,56,203,209
4368         pshufd  $0x0e,%xmm0,%xmm0
4369         movups  16(%rcx),%xmm5
4370         aesenc  %xmm4,%xmm6
4371 .byte   15,56,203,202
4372
4373         movups  32(%rcx),%xmm4
4374         aesenc  %xmm5,%xmm6
4375         movups  48(%rcx),%xmm5
4376         aesenc  %xmm4,%xmm6
4377         cmpl    $11,%r11d
4378         jb      .Laesenclast4
4379         movups  64(%rcx),%xmm4
4380         aesenc  %xmm5,%xmm6
4381         movups  80(%rcx),%xmm5
4382         aesenc  %xmm4,%xmm6
4383         je      .Laesenclast4
4384         movups  96(%rcx),%xmm4
4385         aesenc  %xmm5,%xmm6
4386         movups  112(%rcx),%xmm5
4387         aesenc  %xmm4,%xmm6
4388 .Laesenclast4:
4389         aesenclast      %xmm5,%xmm6
4390         movups  16-112(%rcx),%xmm4
4391         nop
4392
4393         paddd   %xmm9,%xmm2
4394         paddd   %xmm8,%xmm1
4395
4396         decq    %rdx
4397         movups  %xmm6,48(%rsi,%rdi,1)
4398         leaq    64(%rdi),%rdi
4399         jnz     .Loop_shaext
4400
4401         pshufd  $0xb1,%xmm2,%xmm2
4402         pshufd  $0x1b,%xmm1,%xmm3
4403         pshufd  $0xb1,%xmm1,%xmm1
4404         punpckhqdq      %xmm2,%xmm1
4405 .byte   102,15,58,15,211,8
4406
4407         movups  %xmm6,(%r8)
4408         movdqu  %xmm1,(%r9)
4409         movdqu  %xmm2,16(%r9)
4410         .byte   0xf3,0xc3
4411 .size   aesni_cbc_sha256_enc_shaext,.-aesni_cbc_sha256_enc_shaext