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