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