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