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