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