aesni-sha1-x86_64.S revision 299966
1# $FreeBSD: stable/10/secure/lib/libcrypto/amd64/aesni-sha1-x86_64.S 299966 2016-05-16 19:30:27Z jkim $
2# Do not modify. This file is auto-generated from aesni-sha1-x86_64.pl.
3.text
4
5
6.globl	aesni_cbc_sha1_enc
7.type	aesni_cbc_sha1_enc,@function
8.align	16
9aesni_cbc_sha1_enc:
10
11	movl	OPENSSL_ia32cap_P+0(%rip),%r10d
12	movl	OPENSSL_ia32cap_P+4(%rip),%r11d
13	andl	$268435456,%r11d
14	andl	$1073741824,%r10d
15	orl	%r11d,%r10d
16	cmpl	$1342177280,%r10d
17	je	aesni_cbc_sha1_enc_avx
18	jmp	aesni_cbc_sha1_enc_ssse3
19	.byte	0xf3,0xc3
20.size	aesni_cbc_sha1_enc,.-aesni_cbc_sha1_enc
21.type	aesni_cbc_sha1_enc_ssse3,@function
22.align	16
23aesni_cbc_sha1_enc_ssse3:
24	movq	8(%rsp),%r10
25
26
27	pushq	%rbx
28	pushq	%rbp
29	pushq	%r12
30	pushq	%r13
31	pushq	%r14
32	pushq	%r15
33	leaq	-104(%rsp),%rsp
34
35
36	movq	%rdi,%r12
37	movq	%rsi,%r13
38	movq	%rdx,%r14
39	movq	%rcx,%r15
40	movdqu	(%r8),%xmm11
41	movq	%r8,88(%rsp)
42	shlq	$6,%r14
43	subq	%r12,%r13
44	movl	240(%r15),%r8d
45	addq	%r10,%r14
46
47	leaq	K_XX_XX(%rip),%r11
48	movl	0(%r9),%eax
49	movl	4(%r9),%ebx
50	movl	8(%r9),%ecx
51	movl	12(%r9),%edx
52	movl	%ebx,%esi
53	movl	16(%r9),%ebp
54
55	movdqa	64(%r11),%xmm6
56	movdqa	0(%r11),%xmm9
57	movdqu	0(%r10),%xmm0
58	movdqu	16(%r10),%xmm1
59	movdqu	32(%r10),%xmm2
60	movdqu	48(%r10),%xmm3
61.byte	102,15,56,0,198
62	addq	$64,%r10
63.byte	102,15,56,0,206
64.byte	102,15,56,0,214
65.byte	102,15,56,0,222
66	paddd	%xmm9,%xmm0
67	paddd	%xmm9,%xmm1
68	paddd	%xmm9,%xmm2
69	movdqa	%xmm0,0(%rsp)
70	psubd	%xmm9,%xmm0
71	movdqa	%xmm1,16(%rsp)
72	psubd	%xmm9,%xmm1
73	movdqa	%xmm2,32(%rsp)
74	psubd	%xmm9,%xmm2
75	movups	(%r15),%xmm13
76	movups	16(%r15),%xmm14
77	jmp	.Loop_ssse3
78.align	16
79.Loop_ssse3:
80	movdqa	%xmm1,%xmm4
81	addl	0(%rsp),%ebp
82	movups	0(%r12),%xmm12
83	xorps	%xmm13,%xmm12
84	xorps	%xmm12,%xmm11
85.byte	102,69,15,56,220,222
86	movups	32(%r15),%xmm15
87	xorl	%edx,%ecx
88	movdqa	%xmm3,%xmm8
89.byte	102,15,58,15,224,8
90	movl	%eax,%edi
91	roll	$5,%eax
92	paddd	%xmm3,%xmm9
93	andl	%ecx,%esi
94	xorl	%edx,%ecx
95	psrldq	$4,%xmm8
96	xorl	%edx,%esi
97	addl	%eax,%ebp
98	pxor	%xmm0,%xmm4
99	rorl	$2,%ebx
100	addl	%esi,%ebp
101	pxor	%xmm2,%xmm8
102	addl	4(%rsp),%edx
103	xorl	%ecx,%ebx
104	movl	%ebp,%esi
105	roll	$5,%ebp
106	pxor	%xmm8,%xmm4
107	andl	%ebx,%edi
108	xorl	%ecx,%ebx
109	movdqa	%xmm9,48(%rsp)
110	xorl	%ecx,%edi
111.byte	102,69,15,56,220,223
112	movups	48(%r15),%xmm14
113	addl	%ebp,%edx
114	movdqa	%xmm4,%xmm10
115	movdqa	%xmm4,%xmm8
116	rorl	$7,%eax
117	addl	%edi,%edx
118	addl	8(%rsp),%ecx
119	xorl	%ebx,%eax
120	pslldq	$12,%xmm10
121	paddd	%xmm4,%xmm4
122	movl	%edx,%edi
123	roll	$5,%edx
124	andl	%eax,%esi
125	xorl	%ebx,%eax
126	psrld	$31,%xmm8
127	xorl	%ebx,%esi
128	addl	%edx,%ecx
129	movdqa	%xmm10,%xmm9
130	rorl	$7,%ebp
131	addl	%esi,%ecx
132	psrld	$30,%xmm10
133	por	%xmm8,%xmm4
134	addl	12(%rsp),%ebx
135	xorl	%eax,%ebp
136	movl	%ecx,%esi
137	roll	$5,%ecx
138.byte	102,69,15,56,220,222
139	movups	64(%r15),%xmm15
140	pslld	$2,%xmm9
141	pxor	%xmm10,%xmm4
142	andl	%ebp,%edi
143	xorl	%eax,%ebp
144	movdqa	0(%r11),%xmm10
145	xorl	%eax,%edi
146	addl	%ecx,%ebx
147	pxor	%xmm9,%xmm4
148	rorl	$7,%edx
149	addl	%edi,%ebx
150	movdqa	%xmm2,%xmm5
151	addl	16(%rsp),%eax
152	xorl	%ebp,%edx
153	movdqa	%xmm4,%xmm9
154.byte	102,15,58,15,233,8
155	movl	%ebx,%edi
156	roll	$5,%ebx
157	paddd	%xmm4,%xmm10
158	andl	%edx,%esi
159	xorl	%ebp,%edx
160	psrldq	$4,%xmm9
161	xorl	%ebp,%esi
162	addl	%ebx,%eax
163	pxor	%xmm1,%xmm5
164	rorl	$7,%ecx
165	addl	%esi,%eax
166	pxor	%xmm3,%xmm9
167	addl	20(%rsp),%ebp
168.byte	102,69,15,56,220,223
169	movups	80(%r15),%xmm14
170	xorl	%edx,%ecx
171	movl	%eax,%esi
172	roll	$5,%eax
173	pxor	%xmm9,%xmm5
174	andl	%ecx,%edi
175	xorl	%edx,%ecx
176	movdqa	%xmm10,0(%rsp)
177	xorl	%edx,%edi
178	addl	%eax,%ebp
179	movdqa	%xmm5,%xmm8
180	movdqa	%xmm5,%xmm9
181	rorl	$7,%ebx
182	addl	%edi,%ebp
183	addl	24(%rsp),%edx
184	xorl	%ecx,%ebx
185	pslldq	$12,%xmm8
186	paddd	%xmm5,%xmm5
187	movl	%ebp,%edi
188	roll	$5,%ebp
189	andl	%ebx,%esi
190	xorl	%ecx,%ebx
191	psrld	$31,%xmm9
192	xorl	%ecx,%esi
193.byte	102,69,15,56,220,222
194	movups	96(%r15),%xmm15
195	addl	%ebp,%edx
196	movdqa	%xmm8,%xmm10
197	rorl	$7,%eax
198	addl	%esi,%edx
199	psrld	$30,%xmm8
200	por	%xmm9,%xmm5
201	addl	28(%rsp),%ecx
202	xorl	%ebx,%eax
203	movl	%edx,%esi
204	roll	$5,%edx
205	pslld	$2,%xmm10
206	pxor	%xmm8,%xmm5
207	andl	%eax,%edi
208	xorl	%ebx,%eax
209	movdqa	16(%r11),%xmm8
210	xorl	%ebx,%edi
211	addl	%edx,%ecx
212	pxor	%xmm10,%xmm5
213	rorl	$7,%ebp
214	addl	%edi,%ecx
215	movdqa	%xmm3,%xmm6
216	addl	32(%rsp),%ebx
217	xorl	%eax,%ebp
218	movdqa	%xmm5,%xmm10
219.byte	102,15,58,15,242,8
220	movl	%ecx,%edi
221	roll	$5,%ecx
222.byte	102,69,15,56,220,223
223	movups	112(%r15),%xmm14
224	paddd	%xmm5,%xmm8
225	andl	%ebp,%esi
226	xorl	%eax,%ebp
227	psrldq	$4,%xmm10
228	xorl	%eax,%esi
229	addl	%ecx,%ebx
230	pxor	%xmm2,%xmm6
231	rorl	$7,%edx
232	addl	%esi,%ebx
233	pxor	%xmm4,%xmm10
234	addl	36(%rsp),%eax
235	xorl	%ebp,%edx
236	movl	%ebx,%esi
237	roll	$5,%ebx
238	pxor	%xmm10,%xmm6
239	andl	%edx,%edi
240	xorl	%ebp,%edx
241	movdqa	%xmm8,16(%rsp)
242	xorl	%ebp,%edi
243	addl	%ebx,%eax
244	movdqa	%xmm6,%xmm9
245	movdqa	%xmm6,%xmm10
246	rorl	$7,%ecx
247	addl	%edi,%eax
248	addl	40(%rsp),%ebp
249.byte	102,69,15,56,220,222
250	movups	128(%r15),%xmm15
251	xorl	%edx,%ecx
252	pslldq	$12,%xmm9
253	paddd	%xmm6,%xmm6
254	movl	%eax,%edi
255	roll	$5,%eax
256	andl	%ecx,%esi
257	xorl	%edx,%ecx
258	psrld	$31,%xmm10
259	xorl	%edx,%esi
260	addl	%eax,%ebp
261	movdqa	%xmm9,%xmm8
262	rorl	$7,%ebx
263	addl	%esi,%ebp
264	psrld	$30,%xmm9
265	por	%xmm10,%xmm6
266	addl	44(%rsp),%edx
267	xorl	%ecx,%ebx
268	movl	%ebp,%esi
269	roll	$5,%ebp
270	pslld	$2,%xmm8
271	pxor	%xmm9,%xmm6
272	andl	%ebx,%edi
273	xorl	%ecx,%ebx
274	movdqa	16(%r11),%xmm9
275	xorl	%ecx,%edi
276.byte	102,69,15,56,220,223
277	movups	144(%r15),%xmm14
278	addl	%ebp,%edx
279	pxor	%xmm8,%xmm6
280	rorl	$7,%eax
281	addl	%edi,%edx
282	movdqa	%xmm4,%xmm7
283	addl	48(%rsp),%ecx
284	xorl	%ebx,%eax
285	movdqa	%xmm6,%xmm8
286.byte	102,15,58,15,251,8
287	movl	%edx,%edi
288	roll	$5,%edx
289	paddd	%xmm6,%xmm9
290	andl	%eax,%esi
291	xorl	%ebx,%eax
292	psrldq	$4,%xmm8
293	xorl	%ebx,%esi
294	addl	%edx,%ecx
295	pxor	%xmm3,%xmm7
296	rorl	$7,%ebp
297	addl	%esi,%ecx
298	pxor	%xmm5,%xmm8
299	addl	52(%rsp),%ebx
300	xorl	%eax,%ebp
301	movl	%ecx,%esi
302	roll	$5,%ecx
303.byte	102,69,15,56,220,222
304	movups	160(%r15),%xmm15
305	pxor	%xmm8,%xmm7
306	andl	%ebp,%edi
307	xorl	%eax,%ebp
308	movdqa	%xmm9,32(%rsp)
309	xorl	%eax,%edi
310	addl	%ecx,%ebx
311	movdqa	%xmm7,%xmm10
312	movdqa	%xmm7,%xmm8
313	rorl	$7,%edx
314	addl	%edi,%ebx
315	addl	56(%rsp),%eax
316	xorl	%ebp,%edx
317	pslldq	$12,%xmm10
318	paddd	%xmm7,%xmm7
319	movl	%ebx,%edi
320	roll	$5,%ebx
321	andl	%edx,%esi
322	xorl	%ebp,%edx
323	psrld	$31,%xmm8
324	xorl	%ebp,%esi
325	addl	%ebx,%eax
326	movdqa	%xmm10,%xmm9
327	rorl	$7,%ecx
328	addl	%esi,%eax
329	psrld	$30,%xmm10
330	por	%xmm8,%xmm7
331	addl	60(%rsp),%ebp
332	cmpl	$11,%r8d
333	jb	.Laesenclast1
334	movups	176(%r15),%xmm14
335.byte	102,69,15,56,220,223
336	movups	192(%r15),%xmm15
337.byte	102,69,15,56,220,222
338	je	.Laesenclast1
339	movups	208(%r15),%xmm14
340.byte	102,69,15,56,220,223
341	movups	224(%r15),%xmm15
342.byte	102,69,15,56,220,222
343.Laesenclast1:
344.byte	102,69,15,56,221,223
345	movups	16(%r15),%xmm14
346	xorl	%edx,%ecx
347	movl	%eax,%esi
348	roll	$5,%eax
349	pslld	$2,%xmm9
350	pxor	%xmm10,%xmm7
351	andl	%ecx,%edi
352	xorl	%edx,%ecx
353	movdqa	16(%r11),%xmm10
354	xorl	%edx,%edi
355	addl	%eax,%ebp
356	pxor	%xmm9,%xmm7
357	rorl	$7,%ebx
358	addl	%edi,%ebp
359	movdqa	%xmm7,%xmm9
360	addl	0(%rsp),%edx
361	pxor	%xmm4,%xmm0
362.byte	102,68,15,58,15,206,8
363	xorl	%ecx,%ebx
364	movl	%ebp,%edi
365	roll	$5,%ebp
366	pxor	%xmm1,%xmm0
367	andl	%ebx,%esi
368	xorl	%ecx,%ebx
369	movdqa	%xmm10,%xmm8
370	paddd	%xmm7,%xmm10
371	xorl	%ecx,%esi
372	movups	16(%r12),%xmm12
373	xorps	%xmm13,%xmm12
374	movups	%xmm11,0(%r13,%r12,1)
375	xorps	%xmm12,%xmm11
376.byte	102,69,15,56,220,222
377	movups	32(%r15),%xmm15
378	addl	%ebp,%edx
379	pxor	%xmm9,%xmm0
380	rorl	$7,%eax
381	addl	%esi,%edx
382	addl	4(%rsp),%ecx
383	xorl	%ebx,%eax
384	movdqa	%xmm0,%xmm9
385	movdqa	%xmm10,48(%rsp)
386	movl	%edx,%esi
387	roll	$5,%edx
388	andl	%eax,%edi
389	xorl	%ebx,%eax
390	pslld	$2,%xmm0
391	xorl	%ebx,%edi
392	addl	%edx,%ecx
393	psrld	$30,%xmm9
394	rorl	$7,%ebp
395	addl	%edi,%ecx
396	addl	8(%rsp),%ebx
397	xorl	%eax,%ebp
398	movl	%ecx,%edi
399	roll	$5,%ecx
400.byte	102,69,15,56,220,223
401	movups	48(%r15),%xmm14
402	por	%xmm9,%xmm0
403	andl	%ebp,%esi
404	xorl	%eax,%ebp
405	movdqa	%xmm0,%xmm10
406	xorl	%eax,%esi
407	addl	%ecx,%ebx
408	rorl	$7,%edx
409	addl	%esi,%ebx
410	addl	12(%rsp),%eax
411	xorl	%ebp,%edx
412	movl	%ebx,%esi
413	roll	$5,%ebx
414	andl	%edx,%edi
415	xorl	%ebp,%edx
416	xorl	%ebp,%edi
417	addl	%ebx,%eax
418	rorl	$7,%ecx
419	addl	%edi,%eax
420	addl	16(%rsp),%ebp
421.byte	102,69,15,56,220,222
422	movups	64(%r15),%xmm15
423	pxor	%xmm5,%xmm1
424.byte	102,68,15,58,15,215,8
425	xorl	%edx,%esi
426	movl	%eax,%edi
427	roll	$5,%eax
428	pxor	%xmm2,%xmm1
429	xorl	%ecx,%esi
430	addl	%eax,%ebp
431	movdqa	%xmm8,%xmm9
432	paddd	%xmm0,%xmm8
433	rorl	$7,%ebx
434	addl	%esi,%ebp
435	pxor	%xmm10,%xmm1
436	addl	20(%rsp),%edx
437	xorl	%ecx,%edi
438	movl	%ebp,%esi
439	roll	$5,%ebp
440	movdqa	%xmm1,%xmm10
441	movdqa	%xmm8,0(%rsp)
442	xorl	%ebx,%edi
443	addl	%ebp,%edx
444	rorl	$7,%eax
445	addl	%edi,%edx
446	pslld	$2,%xmm1
447	addl	24(%rsp),%ecx
448	xorl	%ebx,%esi
449	psrld	$30,%xmm10
450	movl	%edx,%edi
451	roll	$5,%edx
452	xorl	%eax,%esi
453.byte	102,69,15,56,220,223
454	movups	80(%r15),%xmm14
455	addl	%edx,%ecx
456	rorl	$7,%ebp
457	addl	%esi,%ecx
458	por	%xmm10,%xmm1
459	addl	28(%rsp),%ebx
460	xorl	%eax,%edi
461	movdqa	%xmm1,%xmm8
462	movl	%ecx,%esi
463	roll	$5,%ecx
464	xorl	%ebp,%edi
465	addl	%ecx,%ebx
466	rorl	$7,%edx
467	addl	%edi,%ebx
468	addl	32(%rsp),%eax
469	pxor	%xmm6,%xmm2
470.byte	102,68,15,58,15,192,8
471	xorl	%ebp,%esi
472	movl	%ebx,%edi
473	roll	$5,%ebx
474	pxor	%xmm3,%xmm2
475	xorl	%edx,%esi
476	addl	%ebx,%eax
477	movdqa	32(%r11),%xmm10
478	paddd	%xmm1,%xmm9
479	rorl	$7,%ecx
480	addl	%esi,%eax
481	pxor	%xmm8,%xmm2
482	addl	36(%rsp),%ebp
483.byte	102,69,15,56,220,222
484	movups	96(%r15),%xmm15
485	xorl	%edx,%edi
486	movl	%eax,%esi
487	roll	$5,%eax
488	movdqa	%xmm2,%xmm8
489	movdqa	%xmm9,16(%rsp)
490	xorl	%ecx,%edi
491	addl	%eax,%ebp
492	rorl	$7,%ebx
493	addl	%edi,%ebp
494	pslld	$2,%xmm2
495	addl	40(%rsp),%edx
496	xorl	%ecx,%esi
497	psrld	$30,%xmm8
498	movl	%ebp,%edi
499	roll	$5,%ebp
500	xorl	%ebx,%esi
501	addl	%ebp,%edx
502	rorl	$7,%eax
503	addl	%esi,%edx
504	por	%xmm8,%xmm2
505	addl	44(%rsp),%ecx
506	xorl	%ebx,%edi
507	movdqa	%xmm2,%xmm9
508	movl	%edx,%esi
509	roll	$5,%edx
510	xorl	%eax,%edi
511.byte	102,69,15,56,220,223
512	movups	112(%r15),%xmm14
513	addl	%edx,%ecx
514	rorl	$7,%ebp
515	addl	%edi,%ecx
516	addl	48(%rsp),%ebx
517	pxor	%xmm7,%xmm3
518.byte	102,68,15,58,15,201,8
519	xorl	%eax,%esi
520	movl	%ecx,%edi
521	roll	$5,%ecx
522	pxor	%xmm4,%xmm3
523	xorl	%ebp,%esi
524	addl	%ecx,%ebx
525	movdqa	%xmm10,%xmm8
526	paddd	%xmm2,%xmm10
527	rorl	$7,%edx
528	addl	%esi,%ebx
529	pxor	%xmm9,%xmm3
530	addl	52(%rsp),%eax
531	xorl	%ebp,%edi
532	movl	%ebx,%esi
533	roll	$5,%ebx
534	movdqa	%xmm3,%xmm9
535	movdqa	%xmm10,32(%rsp)
536	xorl	%edx,%edi
537	addl	%ebx,%eax
538	rorl	$7,%ecx
539	addl	%edi,%eax
540	pslld	$2,%xmm3
541	addl	56(%rsp),%ebp
542.byte	102,69,15,56,220,222
543	movups	128(%r15),%xmm15
544	xorl	%edx,%esi
545	psrld	$30,%xmm9
546	movl	%eax,%edi
547	roll	$5,%eax
548	xorl	%ecx,%esi
549	addl	%eax,%ebp
550	rorl	$7,%ebx
551	addl	%esi,%ebp
552	por	%xmm9,%xmm3
553	addl	60(%rsp),%edx
554	xorl	%ecx,%edi
555	movdqa	%xmm3,%xmm10
556	movl	%ebp,%esi
557	roll	$5,%ebp
558	xorl	%ebx,%edi
559	addl	%ebp,%edx
560	rorl	$7,%eax
561	addl	%edi,%edx
562	addl	0(%rsp),%ecx
563	pxor	%xmm0,%xmm4
564.byte	102,68,15,58,15,210,8
565	xorl	%ebx,%esi
566	movl	%edx,%edi
567	roll	$5,%edx
568	pxor	%xmm5,%xmm4
569	xorl	%eax,%esi
570.byte	102,69,15,56,220,223
571	movups	144(%r15),%xmm14
572	addl	%edx,%ecx
573	movdqa	%xmm8,%xmm9
574	paddd	%xmm3,%xmm8
575	rorl	$7,%ebp
576	addl	%esi,%ecx
577	pxor	%xmm10,%xmm4
578	addl	4(%rsp),%ebx
579	xorl	%eax,%edi
580	movl	%ecx,%esi
581	roll	$5,%ecx
582	movdqa	%xmm4,%xmm10
583	movdqa	%xmm8,48(%rsp)
584	xorl	%ebp,%edi
585	addl	%ecx,%ebx
586	rorl	$7,%edx
587	addl	%edi,%ebx
588	pslld	$2,%xmm4
589	addl	8(%rsp),%eax
590	xorl	%ebp,%esi
591	psrld	$30,%xmm10
592	movl	%ebx,%edi
593	roll	$5,%ebx
594	xorl	%edx,%esi
595	addl	%ebx,%eax
596	rorl	$7,%ecx
597	addl	%esi,%eax
598	por	%xmm10,%xmm4
599	addl	12(%rsp),%ebp
600.byte	102,69,15,56,220,222
601	movups	160(%r15),%xmm15
602	xorl	%edx,%edi
603	movdqa	%xmm4,%xmm8
604	movl	%eax,%esi
605	roll	$5,%eax
606	xorl	%ecx,%edi
607	addl	%eax,%ebp
608	rorl	$7,%ebx
609	addl	%edi,%ebp
610	addl	16(%rsp),%edx
611	pxor	%xmm1,%xmm5
612.byte	102,68,15,58,15,195,8
613	xorl	%ecx,%esi
614	movl	%ebp,%edi
615	roll	$5,%ebp
616	pxor	%xmm6,%xmm5
617	xorl	%ebx,%esi
618	addl	%ebp,%edx
619	movdqa	%xmm9,%xmm10
620	paddd	%xmm4,%xmm9
621	rorl	$7,%eax
622	addl	%esi,%edx
623	pxor	%xmm8,%xmm5
624	addl	20(%rsp),%ecx
625	xorl	%ebx,%edi
626	movl	%edx,%esi
627	roll	$5,%edx
628	movdqa	%xmm5,%xmm8
629	movdqa	%xmm9,0(%rsp)
630	xorl	%eax,%edi
631	cmpl	$11,%r8d
632	jb	.Laesenclast2
633	movups	176(%r15),%xmm14
634.byte	102,69,15,56,220,223
635	movups	192(%r15),%xmm15
636.byte	102,69,15,56,220,222
637	je	.Laesenclast2
638	movups	208(%r15),%xmm14
639.byte	102,69,15,56,220,223
640	movups	224(%r15),%xmm15
641.byte	102,69,15,56,220,222
642.Laesenclast2:
643.byte	102,69,15,56,221,223
644	movups	16(%r15),%xmm14
645	addl	%edx,%ecx
646	rorl	$7,%ebp
647	addl	%edi,%ecx
648	pslld	$2,%xmm5
649	addl	24(%rsp),%ebx
650	xorl	%eax,%esi
651	psrld	$30,%xmm8
652	movl	%ecx,%edi
653	roll	$5,%ecx
654	xorl	%ebp,%esi
655	addl	%ecx,%ebx
656	rorl	$7,%edx
657	addl	%esi,%ebx
658	por	%xmm8,%xmm5
659	addl	28(%rsp),%eax
660	xorl	%ebp,%edi
661	movdqa	%xmm5,%xmm9
662	movl	%ebx,%esi
663	roll	$5,%ebx
664	xorl	%edx,%edi
665	addl	%ebx,%eax
666	rorl	$7,%ecx
667	addl	%edi,%eax
668	movl	%ecx,%edi
669	movups	32(%r12),%xmm12
670	xorps	%xmm13,%xmm12
671	movups	%xmm11,16(%r13,%r12,1)
672	xorps	%xmm12,%xmm11
673.byte	102,69,15,56,220,222
674	movups	32(%r15),%xmm15
675	pxor	%xmm2,%xmm6
676.byte	102,68,15,58,15,204,8
677	xorl	%edx,%ecx
678	addl	32(%rsp),%ebp
679	andl	%edx,%edi
680	pxor	%xmm7,%xmm6
681	andl	%ecx,%esi
682	rorl	$7,%ebx
683	movdqa	%xmm10,%xmm8
684	paddd	%xmm5,%xmm10
685	addl	%edi,%ebp
686	movl	%eax,%edi
687	pxor	%xmm9,%xmm6
688	roll	$5,%eax
689	addl	%esi,%ebp
690	xorl	%edx,%ecx
691	addl	%eax,%ebp
692	movdqa	%xmm6,%xmm9
693	movdqa	%xmm10,16(%rsp)
694	movl	%ebx,%esi
695	xorl	%ecx,%ebx
696	addl	36(%rsp),%edx
697	andl	%ecx,%esi
698	pslld	$2,%xmm6
699	andl	%ebx,%edi
700	rorl	$7,%eax
701	psrld	$30,%xmm9
702	addl	%esi,%edx
703	movl	%ebp,%esi
704	roll	$5,%ebp
705.byte	102,69,15,56,220,223
706	movups	48(%r15),%xmm14
707	addl	%edi,%edx
708	xorl	%ecx,%ebx
709	addl	%ebp,%edx
710	por	%xmm9,%xmm6
711	movl	%eax,%edi
712	xorl	%ebx,%eax
713	movdqa	%xmm6,%xmm10
714	addl	40(%rsp),%ecx
715	andl	%ebx,%edi
716	andl	%eax,%esi
717	rorl	$7,%ebp
718	addl	%edi,%ecx
719	movl	%edx,%edi
720	roll	$5,%edx
721	addl	%esi,%ecx
722	xorl	%ebx,%eax
723	addl	%edx,%ecx
724	movl	%ebp,%esi
725	xorl	%eax,%ebp
726	addl	44(%rsp),%ebx
727	andl	%eax,%esi
728	andl	%ebp,%edi
729.byte	102,69,15,56,220,222
730	movups	64(%r15),%xmm15
731	rorl	$7,%edx
732	addl	%esi,%ebx
733	movl	%ecx,%esi
734	roll	$5,%ecx
735	addl	%edi,%ebx
736	xorl	%eax,%ebp
737	addl	%ecx,%ebx
738	movl	%edx,%edi
739	pxor	%xmm3,%xmm7
740.byte	102,68,15,58,15,213,8
741	xorl	%ebp,%edx
742	addl	48(%rsp),%eax
743	andl	%ebp,%edi
744	pxor	%xmm0,%xmm7
745	andl	%edx,%esi
746	rorl	$7,%ecx
747	movdqa	48(%r11),%xmm9
748	paddd	%xmm6,%xmm8
749	addl	%edi,%eax
750	movl	%ebx,%edi
751	pxor	%xmm10,%xmm7
752	roll	$5,%ebx
753	addl	%esi,%eax
754	xorl	%ebp,%edx
755	addl	%ebx,%eax
756	movdqa	%xmm7,%xmm10
757	movdqa	%xmm8,32(%rsp)
758	movl	%ecx,%esi
759.byte	102,69,15,56,220,223
760	movups	80(%r15),%xmm14
761	xorl	%edx,%ecx
762	addl	52(%rsp),%ebp
763	andl	%edx,%esi
764	pslld	$2,%xmm7
765	andl	%ecx,%edi
766	rorl	$7,%ebx
767	psrld	$30,%xmm10
768	addl	%esi,%ebp
769	movl	%eax,%esi
770	roll	$5,%eax
771	addl	%edi,%ebp
772	xorl	%edx,%ecx
773	addl	%eax,%ebp
774	por	%xmm10,%xmm7
775	movl	%ebx,%edi
776	xorl	%ecx,%ebx
777	movdqa	%xmm7,%xmm8
778	addl	56(%rsp),%edx
779	andl	%ecx,%edi
780	andl	%ebx,%esi
781	rorl	$7,%eax
782	addl	%edi,%edx
783	movl	%ebp,%edi
784	roll	$5,%ebp
785.byte	102,69,15,56,220,222
786	movups	96(%r15),%xmm15
787	addl	%esi,%edx
788	xorl	%ecx,%ebx
789	addl	%ebp,%edx
790	movl	%eax,%esi
791	xorl	%ebx,%eax
792	addl	60(%rsp),%ecx
793	andl	%ebx,%esi
794	andl	%eax,%edi
795	rorl	$7,%ebp
796	addl	%esi,%ecx
797	movl	%edx,%esi
798	roll	$5,%edx
799	addl	%edi,%ecx
800	xorl	%ebx,%eax
801	addl	%edx,%ecx
802	movl	%ebp,%edi
803	pxor	%xmm4,%xmm0
804.byte	102,68,15,58,15,198,8
805	xorl	%eax,%ebp
806	addl	0(%rsp),%ebx
807	andl	%eax,%edi
808	pxor	%xmm1,%xmm0
809	andl	%ebp,%esi
810.byte	102,69,15,56,220,223
811	movups	112(%r15),%xmm14
812	rorl	$7,%edx
813	movdqa	%xmm9,%xmm10
814	paddd	%xmm7,%xmm9
815	addl	%edi,%ebx
816	movl	%ecx,%edi
817	pxor	%xmm8,%xmm0
818	roll	$5,%ecx
819	addl	%esi,%ebx
820	xorl	%eax,%ebp
821	addl	%ecx,%ebx
822	movdqa	%xmm0,%xmm8
823	movdqa	%xmm9,48(%rsp)
824	movl	%edx,%esi
825	xorl	%ebp,%edx
826	addl	4(%rsp),%eax
827	andl	%ebp,%esi
828	pslld	$2,%xmm0
829	andl	%edx,%edi
830	rorl	$7,%ecx
831	psrld	$30,%xmm8
832	addl	%esi,%eax
833	movl	%ebx,%esi
834	roll	$5,%ebx
835	addl	%edi,%eax
836	xorl	%ebp,%edx
837	addl	%ebx,%eax
838	por	%xmm8,%xmm0
839	movl	%ecx,%edi
840.byte	102,69,15,56,220,222
841	movups	128(%r15),%xmm15
842	xorl	%edx,%ecx
843	movdqa	%xmm0,%xmm9
844	addl	8(%rsp),%ebp
845	andl	%edx,%edi
846	andl	%ecx,%esi
847	rorl	$7,%ebx
848	addl	%edi,%ebp
849	movl	%eax,%edi
850	roll	$5,%eax
851	addl	%esi,%ebp
852	xorl	%edx,%ecx
853	addl	%eax,%ebp
854	movl	%ebx,%esi
855	xorl	%ecx,%ebx
856	addl	12(%rsp),%edx
857	andl	%ecx,%esi
858	andl	%ebx,%edi
859	rorl	$7,%eax
860	addl	%esi,%edx
861	movl	%ebp,%esi
862	roll	$5,%ebp
863.byte	102,69,15,56,220,223
864	movups	144(%r15),%xmm14
865	addl	%edi,%edx
866	xorl	%ecx,%ebx
867	addl	%ebp,%edx
868	movl	%eax,%edi
869	pxor	%xmm5,%xmm1
870.byte	102,68,15,58,15,207,8
871	xorl	%ebx,%eax
872	addl	16(%rsp),%ecx
873	andl	%ebx,%edi
874	pxor	%xmm2,%xmm1
875	andl	%eax,%esi
876	rorl	$7,%ebp
877	movdqa	%xmm10,%xmm8
878	paddd	%xmm0,%xmm10
879	addl	%edi,%ecx
880	movl	%edx,%edi
881	pxor	%xmm9,%xmm1
882	roll	$5,%edx
883	addl	%esi,%ecx
884	xorl	%ebx,%eax
885	addl	%edx,%ecx
886	movdqa	%xmm1,%xmm9
887	movdqa	%xmm10,0(%rsp)
888	movl	%ebp,%esi
889	xorl	%eax,%ebp
890	addl	20(%rsp),%ebx
891	andl	%eax,%esi
892	pslld	$2,%xmm1
893	andl	%ebp,%edi
894.byte	102,69,15,56,220,222
895	movups	160(%r15),%xmm15
896	rorl	$7,%edx
897	psrld	$30,%xmm9
898	addl	%esi,%ebx
899	movl	%ecx,%esi
900	roll	$5,%ecx
901	addl	%edi,%ebx
902	xorl	%eax,%ebp
903	addl	%ecx,%ebx
904	por	%xmm9,%xmm1
905	movl	%edx,%edi
906	xorl	%ebp,%edx
907	movdqa	%xmm1,%xmm10
908	addl	24(%rsp),%eax
909	andl	%ebp,%edi
910	andl	%edx,%esi
911	rorl	$7,%ecx
912	addl	%edi,%eax
913	movl	%ebx,%edi
914	roll	$5,%ebx
915	addl	%esi,%eax
916	xorl	%ebp,%edx
917	addl	%ebx,%eax
918	movl	%ecx,%esi
919	cmpl	$11,%r8d
920	jb	.Laesenclast3
921	movups	176(%r15),%xmm14
922.byte	102,69,15,56,220,223
923	movups	192(%r15),%xmm15
924.byte	102,69,15,56,220,222
925	je	.Laesenclast3
926	movups	208(%r15),%xmm14
927.byte	102,69,15,56,220,223
928	movups	224(%r15),%xmm15
929.byte	102,69,15,56,220,222
930.Laesenclast3:
931.byte	102,69,15,56,221,223
932	movups	16(%r15),%xmm14
933	xorl	%edx,%ecx
934	addl	28(%rsp),%ebp
935	andl	%edx,%esi
936	andl	%ecx,%edi
937	rorl	$7,%ebx
938	addl	%esi,%ebp
939	movl	%eax,%esi
940	roll	$5,%eax
941	addl	%edi,%ebp
942	xorl	%edx,%ecx
943	addl	%eax,%ebp
944	movl	%ebx,%edi
945	pxor	%xmm6,%xmm2
946.byte	102,68,15,58,15,208,8
947	xorl	%ecx,%ebx
948	addl	32(%rsp),%edx
949	andl	%ecx,%edi
950	pxor	%xmm3,%xmm2
951	andl	%ebx,%esi
952	rorl	$7,%eax
953	movdqa	%xmm8,%xmm9
954	paddd	%xmm1,%xmm8
955	addl	%edi,%edx
956	movl	%ebp,%edi
957	pxor	%xmm10,%xmm2
958	roll	$5,%ebp
959	movups	48(%r12),%xmm12
960	xorps	%xmm13,%xmm12
961	movups	%xmm11,32(%r13,%r12,1)
962	xorps	%xmm12,%xmm11
963.byte	102,69,15,56,220,222
964	movups	32(%r15),%xmm15
965	addl	%esi,%edx
966	xorl	%ecx,%ebx
967	addl	%ebp,%edx
968	movdqa	%xmm2,%xmm10
969	movdqa	%xmm8,16(%rsp)
970	movl	%eax,%esi
971	xorl	%ebx,%eax
972	addl	36(%rsp),%ecx
973	andl	%ebx,%esi
974	pslld	$2,%xmm2
975	andl	%eax,%edi
976	rorl	$7,%ebp
977	psrld	$30,%xmm10
978	addl	%esi,%ecx
979	movl	%edx,%esi
980	roll	$5,%edx
981	addl	%edi,%ecx
982	xorl	%ebx,%eax
983	addl	%edx,%ecx
984	por	%xmm10,%xmm2
985	movl	%ebp,%edi
986	xorl	%eax,%ebp
987	movdqa	%xmm2,%xmm8
988	addl	40(%rsp),%ebx
989	andl	%eax,%edi
990	andl	%ebp,%esi
991.byte	102,69,15,56,220,223
992	movups	48(%r15),%xmm14
993	rorl	$7,%edx
994	addl	%edi,%ebx
995	movl	%ecx,%edi
996	roll	$5,%ecx
997	addl	%esi,%ebx
998	xorl	%eax,%ebp
999	addl	%ecx,%ebx
1000	movl	%edx,%esi
1001	xorl	%ebp,%edx
1002	addl	44(%rsp),%eax
1003	andl	%ebp,%esi
1004	andl	%edx,%edi
1005	rorl	$7,%ecx
1006	addl	%esi,%eax
1007	movl	%ebx,%esi
1008	roll	$5,%ebx
1009	addl	%edi,%eax
1010	xorl	%ebp,%edx
1011	addl	%ebx,%eax
1012	addl	48(%rsp),%ebp
1013.byte	102,69,15,56,220,222
1014	movups	64(%r15),%xmm15
1015	pxor	%xmm7,%xmm3
1016.byte	102,68,15,58,15,193,8
1017	xorl	%edx,%esi
1018	movl	%eax,%edi
1019	roll	$5,%eax
1020	pxor	%xmm4,%xmm3
1021	xorl	%ecx,%esi
1022	addl	%eax,%ebp
1023	movdqa	%xmm9,%xmm10
1024	paddd	%xmm2,%xmm9
1025	rorl	$7,%ebx
1026	addl	%esi,%ebp
1027	pxor	%xmm8,%xmm3
1028	addl	52(%rsp),%edx
1029	xorl	%ecx,%edi
1030	movl	%ebp,%esi
1031	roll	$5,%ebp
1032	movdqa	%xmm3,%xmm8
1033	movdqa	%xmm9,32(%rsp)
1034	xorl	%ebx,%edi
1035	addl	%ebp,%edx
1036	rorl	$7,%eax
1037	addl	%edi,%edx
1038	pslld	$2,%xmm3
1039	addl	56(%rsp),%ecx
1040	xorl	%ebx,%esi
1041	psrld	$30,%xmm8
1042	movl	%edx,%edi
1043	roll	$5,%edx
1044	xorl	%eax,%esi
1045.byte	102,69,15,56,220,223
1046	movups	80(%r15),%xmm14
1047	addl	%edx,%ecx
1048	rorl	$7,%ebp
1049	addl	%esi,%ecx
1050	por	%xmm8,%xmm3
1051	addl	60(%rsp),%ebx
1052	xorl	%eax,%edi
1053	movl	%ecx,%esi
1054	roll	$5,%ecx
1055	xorl	%ebp,%edi
1056	addl	%ecx,%ebx
1057	rorl	$7,%edx
1058	addl	%edi,%ebx
1059	addl	0(%rsp),%eax
1060	paddd	%xmm3,%xmm10
1061	xorl	%ebp,%esi
1062	movl	%ebx,%edi
1063	roll	$5,%ebx
1064	xorl	%edx,%esi
1065	movdqa	%xmm10,48(%rsp)
1066	addl	%ebx,%eax
1067	rorl	$7,%ecx
1068	addl	%esi,%eax
1069	addl	4(%rsp),%ebp
1070.byte	102,69,15,56,220,222
1071	movups	96(%r15),%xmm15
1072	xorl	%edx,%edi
1073	movl	%eax,%esi
1074	roll	$5,%eax
1075	xorl	%ecx,%edi
1076	addl	%eax,%ebp
1077	rorl	$7,%ebx
1078	addl	%edi,%ebp
1079	addl	8(%rsp),%edx
1080	xorl	%ecx,%esi
1081	movl	%ebp,%edi
1082	roll	$5,%ebp
1083	xorl	%ebx,%esi
1084	addl	%ebp,%edx
1085	rorl	$7,%eax
1086	addl	%esi,%edx
1087	addl	12(%rsp),%ecx
1088	xorl	%ebx,%edi
1089	movl	%edx,%esi
1090	roll	$5,%edx
1091	xorl	%eax,%edi
1092.byte	102,69,15,56,220,223
1093	movups	112(%r15),%xmm14
1094	addl	%edx,%ecx
1095	rorl	$7,%ebp
1096	addl	%edi,%ecx
1097	cmpq	%r14,%r10
1098	je	.Ldone_ssse3
1099	movdqa	64(%r11),%xmm6
1100	movdqa	0(%r11),%xmm9
1101	movdqu	0(%r10),%xmm0
1102	movdqu	16(%r10),%xmm1
1103	movdqu	32(%r10),%xmm2
1104	movdqu	48(%r10),%xmm3
1105.byte	102,15,56,0,198
1106	addq	$64,%r10
1107	addl	16(%rsp),%ebx
1108	xorl	%eax,%esi
1109.byte	102,15,56,0,206
1110	movl	%ecx,%edi
1111	roll	$5,%ecx
1112	paddd	%xmm9,%xmm0
1113	xorl	%ebp,%esi
1114	addl	%ecx,%ebx
1115	rorl	$7,%edx
1116	addl	%esi,%ebx
1117	movdqa	%xmm0,0(%rsp)
1118	addl	20(%rsp),%eax
1119	xorl	%ebp,%edi
1120	psubd	%xmm9,%xmm0
1121	movl	%ebx,%esi
1122	roll	$5,%ebx
1123	xorl	%edx,%edi
1124	addl	%ebx,%eax
1125	rorl	$7,%ecx
1126	addl	%edi,%eax
1127	addl	24(%rsp),%ebp
1128.byte	102,69,15,56,220,222
1129	movups	128(%r15),%xmm15
1130	xorl	%edx,%esi
1131	movl	%eax,%edi
1132	roll	$5,%eax
1133	xorl	%ecx,%esi
1134	addl	%eax,%ebp
1135	rorl	$7,%ebx
1136	addl	%esi,%ebp
1137	addl	28(%rsp),%edx
1138	xorl	%ecx,%edi
1139	movl	%ebp,%esi
1140	roll	$5,%ebp
1141	xorl	%ebx,%edi
1142	addl	%ebp,%edx
1143	rorl	$7,%eax
1144	addl	%edi,%edx
1145	addl	32(%rsp),%ecx
1146	xorl	%ebx,%esi
1147.byte	102,15,56,0,214
1148	movl	%edx,%edi
1149	roll	$5,%edx
1150	paddd	%xmm9,%xmm1
1151	xorl	%eax,%esi
1152.byte	102,69,15,56,220,223
1153	movups	144(%r15),%xmm14
1154	addl	%edx,%ecx
1155	rorl	$7,%ebp
1156	addl	%esi,%ecx
1157	movdqa	%xmm1,16(%rsp)
1158	addl	36(%rsp),%ebx
1159	xorl	%eax,%edi
1160	psubd	%xmm9,%xmm1
1161	movl	%ecx,%esi
1162	roll	$5,%ecx
1163	xorl	%ebp,%edi
1164	addl	%ecx,%ebx
1165	rorl	$7,%edx
1166	addl	%edi,%ebx
1167	addl	40(%rsp),%eax
1168	xorl	%ebp,%esi
1169	movl	%ebx,%edi
1170	roll	$5,%ebx
1171	xorl	%edx,%esi
1172	addl	%ebx,%eax
1173	rorl	$7,%ecx
1174	addl	%esi,%eax
1175	addl	44(%rsp),%ebp
1176.byte	102,69,15,56,220,222
1177	movups	160(%r15),%xmm15
1178	xorl	%edx,%edi
1179	movl	%eax,%esi
1180	roll	$5,%eax
1181	xorl	%ecx,%edi
1182	addl	%eax,%ebp
1183	rorl	$7,%ebx
1184	addl	%edi,%ebp
1185	addl	48(%rsp),%edx
1186	xorl	%ecx,%esi
1187.byte	102,15,56,0,222
1188	movl	%ebp,%edi
1189	roll	$5,%ebp
1190	paddd	%xmm9,%xmm2
1191	xorl	%ebx,%esi
1192	addl	%ebp,%edx
1193	rorl	$7,%eax
1194	addl	%esi,%edx
1195	movdqa	%xmm2,32(%rsp)
1196	addl	52(%rsp),%ecx
1197	xorl	%ebx,%edi
1198	psubd	%xmm9,%xmm2
1199	movl	%edx,%esi
1200	roll	$5,%edx
1201	xorl	%eax,%edi
1202	cmpl	$11,%r8d
1203	jb	.Laesenclast4
1204	movups	176(%r15),%xmm14
1205.byte	102,69,15,56,220,223
1206	movups	192(%r15),%xmm15
1207.byte	102,69,15,56,220,222
1208	je	.Laesenclast4
1209	movups	208(%r15),%xmm14
1210.byte	102,69,15,56,220,223
1211	movups	224(%r15),%xmm15
1212.byte	102,69,15,56,220,222
1213.Laesenclast4:
1214.byte	102,69,15,56,221,223
1215	movups	16(%r15),%xmm14
1216	addl	%edx,%ecx
1217	rorl	$7,%ebp
1218	addl	%edi,%ecx
1219	addl	56(%rsp),%ebx
1220	xorl	%eax,%esi
1221	movl	%ecx,%edi
1222	roll	$5,%ecx
1223	xorl	%ebp,%esi
1224	addl	%ecx,%ebx
1225	rorl	$7,%edx
1226	addl	%esi,%ebx
1227	addl	60(%rsp),%eax
1228	xorl	%ebp,%edi
1229	movl	%ebx,%esi
1230	roll	$5,%ebx
1231	xorl	%edx,%edi
1232	addl	%ebx,%eax
1233	rorl	$7,%ecx
1234	addl	%edi,%eax
1235	movups	%xmm11,48(%r13,%r12,1)
1236	leaq	64(%r12),%r12
1237
1238	addl	0(%r9),%eax
1239	addl	4(%r9),%esi
1240	addl	8(%r9),%ecx
1241	addl	12(%r9),%edx
1242	movl	%eax,0(%r9)
1243	addl	16(%r9),%ebp
1244	movl	%esi,4(%r9)
1245	movl	%esi,%ebx
1246	movl	%ecx,8(%r9)
1247	movl	%edx,12(%r9)
1248	movl	%ebp,16(%r9)
1249	jmp	.Loop_ssse3
1250
1251.align	16
1252.Ldone_ssse3:
1253	addl	16(%rsp),%ebx
1254	xorl	%eax,%esi
1255	movl	%ecx,%edi
1256	roll	$5,%ecx
1257	xorl	%ebp,%esi
1258	addl	%ecx,%ebx
1259	rorl	$7,%edx
1260	addl	%esi,%ebx
1261	addl	20(%rsp),%eax
1262	xorl	%ebp,%edi
1263	movl	%ebx,%esi
1264	roll	$5,%ebx
1265	xorl	%edx,%edi
1266	addl	%ebx,%eax
1267	rorl	$7,%ecx
1268	addl	%edi,%eax
1269	addl	24(%rsp),%ebp
1270.byte	102,69,15,56,220,222
1271	movups	128(%r15),%xmm15
1272	xorl	%edx,%esi
1273	movl	%eax,%edi
1274	roll	$5,%eax
1275	xorl	%ecx,%esi
1276	addl	%eax,%ebp
1277	rorl	$7,%ebx
1278	addl	%esi,%ebp
1279	addl	28(%rsp),%edx
1280	xorl	%ecx,%edi
1281	movl	%ebp,%esi
1282	roll	$5,%ebp
1283	xorl	%ebx,%edi
1284	addl	%ebp,%edx
1285	rorl	$7,%eax
1286	addl	%edi,%edx
1287	addl	32(%rsp),%ecx
1288	xorl	%ebx,%esi
1289	movl	%edx,%edi
1290	roll	$5,%edx
1291	xorl	%eax,%esi
1292.byte	102,69,15,56,220,223
1293	movups	144(%r15),%xmm14
1294	addl	%edx,%ecx
1295	rorl	$7,%ebp
1296	addl	%esi,%ecx
1297	addl	36(%rsp),%ebx
1298	xorl	%eax,%edi
1299	movl	%ecx,%esi
1300	roll	$5,%ecx
1301	xorl	%ebp,%edi
1302	addl	%ecx,%ebx
1303	rorl	$7,%edx
1304	addl	%edi,%ebx
1305	addl	40(%rsp),%eax
1306	xorl	%ebp,%esi
1307	movl	%ebx,%edi
1308	roll	$5,%ebx
1309	xorl	%edx,%esi
1310	addl	%ebx,%eax
1311	rorl	$7,%ecx
1312	addl	%esi,%eax
1313	addl	44(%rsp),%ebp
1314.byte	102,69,15,56,220,222
1315	movups	160(%r15),%xmm15
1316	xorl	%edx,%edi
1317	movl	%eax,%esi
1318	roll	$5,%eax
1319	xorl	%ecx,%edi
1320	addl	%eax,%ebp
1321	rorl	$7,%ebx
1322	addl	%edi,%ebp
1323	addl	48(%rsp),%edx
1324	xorl	%ecx,%esi
1325	movl	%ebp,%edi
1326	roll	$5,%ebp
1327	xorl	%ebx,%esi
1328	addl	%ebp,%edx
1329	rorl	$7,%eax
1330	addl	%esi,%edx
1331	addl	52(%rsp),%ecx
1332	xorl	%ebx,%edi
1333	movl	%edx,%esi
1334	roll	$5,%edx
1335	xorl	%eax,%edi
1336	cmpl	$11,%r8d
1337	jb	.Laesenclast5
1338	movups	176(%r15),%xmm14
1339.byte	102,69,15,56,220,223
1340	movups	192(%r15),%xmm15
1341.byte	102,69,15,56,220,222
1342	je	.Laesenclast5
1343	movups	208(%r15),%xmm14
1344.byte	102,69,15,56,220,223
1345	movups	224(%r15),%xmm15
1346.byte	102,69,15,56,220,222
1347.Laesenclast5:
1348.byte	102,69,15,56,221,223
1349	movups	16(%r15),%xmm14
1350	addl	%edx,%ecx
1351	rorl	$7,%ebp
1352	addl	%edi,%ecx
1353	addl	56(%rsp),%ebx
1354	xorl	%eax,%esi
1355	movl	%ecx,%edi
1356	roll	$5,%ecx
1357	xorl	%ebp,%esi
1358	addl	%ecx,%ebx
1359	rorl	$7,%edx
1360	addl	%esi,%ebx
1361	addl	60(%rsp),%eax
1362	xorl	%ebp,%edi
1363	movl	%ebx,%esi
1364	roll	$5,%ebx
1365	xorl	%edx,%edi
1366	addl	%ebx,%eax
1367	rorl	$7,%ecx
1368	addl	%edi,%eax
1369	movups	%xmm11,48(%r13,%r12,1)
1370	movq	88(%rsp),%r8
1371
1372	addl	0(%r9),%eax
1373	addl	4(%r9),%esi
1374	addl	8(%r9),%ecx
1375	movl	%eax,0(%r9)
1376	addl	12(%r9),%edx
1377	movl	%esi,4(%r9)
1378	addl	16(%r9),%ebp
1379	movl	%ecx,8(%r9)
1380	movl	%edx,12(%r9)
1381	movl	%ebp,16(%r9)
1382	movups	%xmm11,(%r8)
1383	leaq	104(%rsp),%rsi
1384	movq	0(%rsi),%r15
1385	movq	8(%rsi),%r14
1386	movq	16(%rsi),%r13
1387	movq	24(%rsi),%r12
1388	movq	32(%rsi),%rbp
1389	movq	40(%rsi),%rbx
1390	leaq	48(%rsi),%rsp
1391.Lepilogue_ssse3:
1392	.byte	0xf3,0xc3
1393.size	aesni_cbc_sha1_enc_ssse3,.-aesni_cbc_sha1_enc_ssse3
1394.type	aesni_cbc_sha1_enc_avx,@function
1395.align	16
1396aesni_cbc_sha1_enc_avx:
1397	movq	8(%rsp),%r10
1398
1399
1400	pushq	%rbx
1401	pushq	%rbp
1402	pushq	%r12
1403	pushq	%r13
1404	pushq	%r14
1405	pushq	%r15
1406	leaq	-104(%rsp),%rsp
1407
1408
1409	vzeroall
1410	movq	%rdi,%r12
1411	movq	%rsi,%r13
1412	movq	%rdx,%r14
1413	movq	%rcx,%r15
1414	vmovdqu	(%r8),%xmm11
1415	movq	%r8,88(%rsp)
1416	shlq	$6,%r14
1417	subq	%r12,%r13
1418	movl	240(%r15),%r8d
1419	addq	$112,%r15
1420	addq	%r10,%r14
1421
1422	leaq	K_XX_XX(%rip),%r11
1423	movl	0(%r9),%eax
1424	movl	4(%r9),%ebx
1425	movl	8(%r9),%ecx
1426	movl	12(%r9),%edx
1427	movl	%ebx,%esi
1428	movl	16(%r9),%ebp
1429
1430	vmovdqa	64(%r11),%xmm6
1431	vmovdqa	0(%r11),%xmm9
1432	vmovdqu	0(%r10),%xmm0
1433	vmovdqu	16(%r10),%xmm1
1434	vmovdqu	32(%r10),%xmm2
1435	vmovdqu	48(%r10),%xmm3
1436	vpshufb	%xmm6,%xmm0,%xmm0
1437	addq	$64,%r10
1438	vpshufb	%xmm6,%xmm1,%xmm1
1439	vpshufb	%xmm6,%xmm2,%xmm2
1440	vpshufb	%xmm6,%xmm3,%xmm3
1441	vpaddd	%xmm9,%xmm0,%xmm4
1442	vpaddd	%xmm9,%xmm1,%xmm5
1443	vpaddd	%xmm9,%xmm2,%xmm6
1444	vmovdqa	%xmm4,0(%rsp)
1445	vmovdqa	%xmm5,16(%rsp)
1446	vmovdqa	%xmm6,32(%rsp)
1447	vmovups	-112(%r15),%xmm13
1448	vmovups	16-112(%r15),%xmm14
1449	jmp	.Loop_avx
1450.align	16
1451.Loop_avx:
1452	addl	0(%rsp),%ebp
1453	vmovups	0(%r12),%xmm12
1454	vxorps	%xmm13,%xmm12,%xmm12
1455	vxorps	%xmm12,%xmm11,%xmm11
1456	vaesenc	%xmm14,%xmm11,%xmm11
1457	vmovups	-80(%r15),%xmm15
1458	xorl	%edx,%ecx
1459	vpalignr	$8,%xmm0,%xmm1,%xmm4
1460	movl	%eax,%edi
1461	shldl	$5,%eax,%eax
1462	vpaddd	%xmm3,%xmm9,%xmm9
1463	andl	%ecx,%esi
1464	xorl	%edx,%ecx
1465	vpsrldq	$4,%xmm3,%xmm8
1466	xorl	%edx,%esi
1467	addl	%eax,%ebp
1468	vpxor	%xmm0,%xmm4,%xmm4
1469	shrdl	$2,%ebx,%ebx
1470	addl	%esi,%ebp
1471	vpxor	%xmm2,%xmm8,%xmm8
1472	addl	4(%rsp),%edx
1473	xorl	%ecx,%ebx
1474	movl	%ebp,%esi
1475	shldl	$5,%ebp,%ebp
1476	vpxor	%xmm8,%xmm4,%xmm4
1477	andl	%ebx,%edi
1478	xorl	%ecx,%ebx
1479	vmovdqa	%xmm9,48(%rsp)
1480	xorl	%ecx,%edi
1481	vaesenc	%xmm15,%xmm11,%xmm11
1482	vmovups	-64(%r15),%xmm14
1483	addl	%ebp,%edx
1484	vpsrld	$31,%xmm4,%xmm8
1485	shrdl	$7,%eax,%eax
1486	addl	%edi,%edx
1487	addl	8(%rsp),%ecx
1488	xorl	%ebx,%eax
1489	vpslldq	$12,%xmm4,%xmm10
1490	vpaddd	%xmm4,%xmm4,%xmm4
1491	movl	%edx,%edi
1492	shldl	$5,%edx,%edx
1493	andl	%eax,%esi
1494	xorl	%ebx,%eax
1495	vpsrld	$30,%xmm10,%xmm9
1496	vpor	%xmm8,%xmm4,%xmm4
1497	xorl	%ebx,%esi
1498	addl	%edx,%ecx
1499	shrdl	$7,%ebp,%ebp
1500	addl	%esi,%ecx
1501	vpslld	$2,%xmm10,%xmm10
1502	vpxor	%xmm9,%xmm4,%xmm4
1503	addl	12(%rsp),%ebx
1504	xorl	%eax,%ebp
1505	movl	%ecx,%esi
1506	shldl	$5,%ecx,%ecx
1507	vaesenc	%xmm14,%xmm11,%xmm11
1508	vmovups	-48(%r15),%xmm15
1509	vpxor	%xmm10,%xmm4,%xmm4
1510	andl	%ebp,%edi
1511	xorl	%eax,%ebp
1512	vmovdqa	0(%r11),%xmm10
1513	xorl	%eax,%edi
1514	addl	%ecx,%ebx
1515	shrdl	$7,%edx,%edx
1516	addl	%edi,%ebx
1517	addl	16(%rsp),%eax
1518	xorl	%ebp,%edx
1519	vpalignr	$8,%xmm1,%xmm2,%xmm5
1520	movl	%ebx,%edi
1521	shldl	$5,%ebx,%ebx
1522	vpaddd	%xmm4,%xmm10,%xmm10
1523	andl	%edx,%esi
1524	xorl	%ebp,%edx
1525	vpsrldq	$4,%xmm4,%xmm9
1526	xorl	%ebp,%esi
1527	addl	%ebx,%eax
1528	vpxor	%xmm1,%xmm5,%xmm5
1529	shrdl	$7,%ecx,%ecx
1530	addl	%esi,%eax
1531	vpxor	%xmm3,%xmm9,%xmm9
1532	addl	20(%rsp),%ebp
1533	vaesenc	%xmm15,%xmm11,%xmm11
1534	vmovups	-32(%r15),%xmm14
1535	xorl	%edx,%ecx
1536	movl	%eax,%esi
1537	shldl	$5,%eax,%eax
1538	vpxor	%xmm9,%xmm5,%xmm5
1539	andl	%ecx,%edi
1540	xorl	%edx,%ecx
1541	vmovdqa	%xmm10,0(%rsp)
1542	xorl	%edx,%edi
1543	addl	%eax,%ebp
1544	vpsrld	$31,%xmm5,%xmm9
1545	shrdl	$7,%ebx,%ebx
1546	addl	%edi,%ebp
1547	addl	24(%rsp),%edx
1548	xorl	%ecx,%ebx
1549	vpslldq	$12,%xmm5,%xmm8
1550	vpaddd	%xmm5,%xmm5,%xmm5
1551	movl	%ebp,%edi
1552	shldl	$5,%ebp,%ebp
1553	andl	%ebx,%esi
1554	xorl	%ecx,%ebx
1555	vpsrld	$30,%xmm8,%xmm10
1556	vpor	%xmm9,%xmm5,%xmm5
1557	xorl	%ecx,%esi
1558	vaesenc	%xmm14,%xmm11,%xmm11
1559	vmovups	-16(%r15),%xmm15
1560	addl	%ebp,%edx
1561	shrdl	$7,%eax,%eax
1562	addl	%esi,%edx
1563	vpslld	$2,%xmm8,%xmm8
1564	vpxor	%xmm10,%xmm5,%xmm5
1565	addl	28(%rsp),%ecx
1566	xorl	%ebx,%eax
1567	movl	%edx,%esi
1568	shldl	$5,%edx,%edx
1569	vpxor	%xmm8,%xmm5,%xmm5
1570	andl	%eax,%edi
1571	xorl	%ebx,%eax
1572	vmovdqa	16(%r11),%xmm8
1573	xorl	%ebx,%edi
1574	addl	%edx,%ecx
1575	shrdl	$7,%ebp,%ebp
1576	addl	%edi,%ecx
1577	addl	32(%rsp),%ebx
1578	xorl	%eax,%ebp
1579	vpalignr	$8,%xmm2,%xmm3,%xmm6
1580	movl	%ecx,%edi
1581	shldl	$5,%ecx,%ecx
1582	vaesenc	%xmm15,%xmm11,%xmm11
1583	vmovups	0(%r15),%xmm14
1584	vpaddd	%xmm5,%xmm8,%xmm8
1585	andl	%ebp,%esi
1586	xorl	%eax,%ebp
1587	vpsrldq	$4,%xmm5,%xmm10
1588	xorl	%eax,%esi
1589	addl	%ecx,%ebx
1590	vpxor	%xmm2,%xmm6,%xmm6
1591	shrdl	$7,%edx,%edx
1592	addl	%esi,%ebx
1593	vpxor	%xmm4,%xmm10,%xmm10
1594	addl	36(%rsp),%eax
1595	xorl	%ebp,%edx
1596	movl	%ebx,%esi
1597	shldl	$5,%ebx,%ebx
1598	vpxor	%xmm10,%xmm6,%xmm6
1599	andl	%edx,%edi
1600	xorl	%ebp,%edx
1601	vmovdqa	%xmm8,16(%rsp)
1602	xorl	%ebp,%edi
1603	addl	%ebx,%eax
1604	vpsrld	$31,%xmm6,%xmm10
1605	shrdl	$7,%ecx,%ecx
1606	addl	%edi,%eax
1607	addl	40(%rsp),%ebp
1608	vaesenc	%xmm14,%xmm11,%xmm11
1609	vmovups	16(%r15),%xmm15
1610	xorl	%edx,%ecx
1611	vpslldq	$12,%xmm6,%xmm9
1612	vpaddd	%xmm6,%xmm6,%xmm6
1613	movl	%eax,%edi
1614	shldl	$5,%eax,%eax
1615	andl	%ecx,%esi
1616	xorl	%edx,%ecx
1617	vpsrld	$30,%xmm9,%xmm8
1618	vpor	%xmm10,%xmm6,%xmm6
1619	xorl	%edx,%esi
1620	addl	%eax,%ebp
1621	shrdl	$7,%ebx,%ebx
1622	addl	%esi,%ebp
1623	vpslld	$2,%xmm9,%xmm9
1624	vpxor	%xmm8,%xmm6,%xmm6
1625	addl	44(%rsp),%edx
1626	xorl	%ecx,%ebx
1627	movl	%ebp,%esi
1628	shldl	$5,%ebp,%ebp
1629	vpxor	%xmm9,%xmm6,%xmm6
1630	andl	%ebx,%edi
1631	xorl	%ecx,%ebx
1632	vmovdqa	16(%r11),%xmm9
1633	xorl	%ecx,%edi
1634	vaesenc	%xmm15,%xmm11,%xmm11
1635	vmovups	32(%r15),%xmm14
1636	addl	%ebp,%edx
1637	shrdl	$7,%eax,%eax
1638	addl	%edi,%edx
1639	addl	48(%rsp),%ecx
1640	xorl	%ebx,%eax
1641	vpalignr	$8,%xmm3,%xmm4,%xmm7
1642	movl	%edx,%edi
1643	shldl	$5,%edx,%edx
1644	vpaddd	%xmm6,%xmm9,%xmm9
1645	andl	%eax,%esi
1646	xorl	%ebx,%eax
1647	vpsrldq	$4,%xmm6,%xmm8
1648	xorl	%ebx,%esi
1649	addl	%edx,%ecx
1650	vpxor	%xmm3,%xmm7,%xmm7
1651	shrdl	$7,%ebp,%ebp
1652	addl	%esi,%ecx
1653	vpxor	%xmm5,%xmm8,%xmm8
1654	addl	52(%rsp),%ebx
1655	xorl	%eax,%ebp
1656	movl	%ecx,%esi
1657	shldl	$5,%ecx,%ecx
1658	vaesenc	%xmm14,%xmm11,%xmm11
1659	vmovups	48(%r15),%xmm15
1660	vpxor	%xmm8,%xmm7,%xmm7
1661	andl	%ebp,%edi
1662	xorl	%eax,%ebp
1663	vmovdqa	%xmm9,32(%rsp)
1664	xorl	%eax,%edi
1665	addl	%ecx,%ebx
1666	vpsrld	$31,%xmm7,%xmm8
1667	shrdl	$7,%edx,%edx
1668	addl	%edi,%ebx
1669	addl	56(%rsp),%eax
1670	xorl	%ebp,%edx
1671	vpslldq	$12,%xmm7,%xmm10
1672	vpaddd	%xmm7,%xmm7,%xmm7
1673	movl	%ebx,%edi
1674	shldl	$5,%ebx,%ebx
1675	andl	%edx,%esi
1676	xorl	%ebp,%edx
1677	vpsrld	$30,%xmm10,%xmm9
1678	vpor	%xmm8,%xmm7,%xmm7
1679	xorl	%ebp,%esi
1680	addl	%ebx,%eax
1681	shrdl	$7,%ecx,%ecx
1682	addl	%esi,%eax
1683	vpslld	$2,%xmm10,%xmm10
1684	vpxor	%xmm9,%xmm7,%xmm7
1685	addl	60(%rsp),%ebp
1686	cmpl	$11,%r8d
1687	jb	.Lvaesenclast1
1688	vaesenc	%xmm15,%xmm11,%xmm11
1689	vmovups	64(%r15),%xmm14
1690	vaesenc	%xmm14,%xmm11,%xmm11
1691	vmovups	80(%r15),%xmm15
1692	je	.Lvaesenclast1
1693	vaesenc	%xmm15,%xmm11,%xmm11
1694	vmovups	96(%r15),%xmm14
1695	vaesenc	%xmm14,%xmm11,%xmm11
1696	vmovups	112(%r15),%xmm15
1697.Lvaesenclast1:
1698	vaesenclast	%xmm15,%xmm11,%xmm11
1699	vmovups	16-112(%r15),%xmm14
1700	xorl	%edx,%ecx
1701	movl	%eax,%esi
1702	shldl	$5,%eax,%eax
1703	vpxor	%xmm10,%xmm7,%xmm7
1704	andl	%ecx,%edi
1705	xorl	%edx,%ecx
1706	vmovdqa	16(%r11),%xmm10
1707	xorl	%edx,%edi
1708	addl	%eax,%ebp
1709	shrdl	$7,%ebx,%ebx
1710	addl	%edi,%ebp
1711	vpalignr	$8,%xmm6,%xmm7,%xmm9
1712	vpxor	%xmm4,%xmm0,%xmm0
1713	addl	0(%rsp),%edx
1714	xorl	%ecx,%ebx
1715	movl	%ebp,%edi
1716	shldl	$5,%ebp,%ebp
1717	vpxor	%xmm1,%xmm0,%xmm0
1718	andl	%ebx,%esi
1719	xorl	%ecx,%ebx
1720	vmovdqa	%xmm10,%xmm8
1721	vpaddd	%xmm7,%xmm10,%xmm10
1722	xorl	%ecx,%esi
1723	vmovups	16(%r12),%xmm12
1724	vxorps	%xmm13,%xmm12,%xmm12
1725	vmovups	%xmm11,0(%r13,%r12,1)
1726	vxorps	%xmm12,%xmm11,%xmm11
1727	vaesenc	%xmm14,%xmm11,%xmm11
1728	vmovups	-80(%r15),%xmm15
1729	addl	%ebp,%edx
1730	vpxor	%xmm9,%xmm0,%xmm0
1731	shrdl	$7,%eax,%eax
1732	addl	%esi,%edx
1733	addl	4(%rsp),%ecx
1734	xorl	%ebx,%eax
1735	vpsrld	$30,%xmm0,%xmm9
1736	vmovdqa	%xmm10,48(%rsp)
1737	movl	%edx,%esi
1738	shldl	$5,%edx,%edx
1739	andl	%eax,%edi
1740	xorl	%ebx,%eax
1741	vpslld	$2,%xmm0,%xmm0
1742	xorl	%ebx,%edi
1743	addl	%edx,%ecx
1744	shrdl	$7,%ebp,%ebp
1745	addl	%edi,%ecx
1746	addl	8(%rsp),%ebx
1747	xorl	%eax,%ebp
1748	movl	%ecx,%edi
1749	shldl	$5,%ecx,%ecx
1750	vaesenc	%xmm15,%xmm11,%xmm11
1751	vmovups	-64(%r15),%xmm14
1752	vpor	%xmm9,%xmm0,%xmm0
1753	andl	%ebp,%esi
1754	xorl	%eax,%ebp
1755	vmovdqa	%xmm0,%xmm10
1756	xorl	%eax,%esi
1757	addl	%ecx,%ebx
1758	shrdl	$7,%edx,%edx
1759	addl	%esi,%ebx
1760	addl	12(%rsp),%eax
1761	xorl	%ebp,%edx
1762	movl	%ebx,%esi
1763	shldl	$5,%ebx,%ebx
1764	andl	%edx,%edi
1765	xorl	%ebp,%edx
1766	xorl	%ebp,%edi
1767	addl	%ebx,%eax
1768	shrdl	$7,%ecx,%ecx
1769	addl	%edi,%eax
1770	vpalignr	$8,%xmm7,%xmm0,%xmm10
1771	vpxor	%xmm5,%xmm1,%xmm1
1772	addl	16(%rsp),%ebp
1773	vaesenc	%xmm14,%xmm11,%xmm11
1774	vmovups	-48(%r15),%xmm15
1775	xorl	%edx,%esi
1776	movl	%eax,%edi
1777	shldl	$5,%eax,%eax
1778	vpxor	%xmm2,%xmm1,%xmm1
1779	xorl	%ecx,%esi
1780	addl	%eax,%ebp
1781	vmovdqa	%xmm8,%xmm9
1782	vpaddd	%xmm0,%xmm8,%xmm8
1783	shrdl	$7,%ebx,%ebx
1784	addl	%esi,%ebp
1785	vpxor	%xmm10,%xmm1,%xmm1
1786	addl	20(%rsp),%edx
1787	xorl	%ecx,%edi
1788	movl	%ebp,%esi
1789	shldl	$5,%ebp,%ebp
1790	vpsrld	$30,%xmm1,%xmm10
1791	vmovdqa	%xmm8,0(%rsp)
1792	xorl	%ebx,%edi
1793	addl	%ebp,%edx
1794	shrdl	$7,%eax,%eax
1795	addl	%edi,%edx
1796	vpslld	$2,%xmm1,%xmm1
1797	addl	24(%rsp),%ecx
1798	xorl	%ebx,%esi
1799	movl	%edx,%edi
1800	shldl	$5,%edx,%edx
1801	xorl	%eax,%esi
1802	vaesenc	%xmm15,%xmm11,%xmm11
1803	vmovups	-32(%r15),%xmm14
1804	addl	%edx,%ecx
1805	shrdl	$7,%ebp,%ebp
1806	addl	%esi,%ecx
1807	vpor	%xmm10,%xmm1,%xmm1
1808	addl	28(%rsp),%ebx
1809	xorl	%eax,%edi
1810	vmovdqa	%xmm1,%xmm8
1811	movl	%ecx,%esi
1812	shldl	$5,%ecx,%ecx
1813	xorl	%ebp,%edi
1814	addl	%ecx,%ebx
1815	shrdl	$7,%edx,%edx
1816	addl	%edi,%ebx
1817	vpalignr	$8,%xmm0,%xmm1,%xmm8
1818	vpxor	%xmm6,%xmm2,%xmm2
1819	addl	32(%rsp),%eax
1820	xorl	%ebp,%esi
1821	movl	%ebx,%edi
1822	shldl	$5,%ebx,%ebx
1823	vpxor	%xmm3,%xmm2,%xmm2
1824	xorl	%edx,%esi
1825	addl	%ebx,%eax
1826	vmovdqa	32(%r11),%xmm10
1827	vpaddd	%xmm1,%xmm9,%xmm9
1828	shrdl	$7,%ecx,%ecx
1829	addl	%esi,%eax
1830	vpxor	%xmm8,%xmm2,%xmm2
1831	addl	36(%rsp),%ebp
1832	vaesenc	%xmm14,%xmm11,%xmm11
1833	vmovups	-16(%r15),%xmm15
1834	xorl	%edx,%edi
1835	movl	%eax,%esi
1836	shldl	$5,%eax,%eax
1837	vpsrld	$30,%xmm2,%xmm8
1838	vmovdqa	%xmm9,16(%rsp)
1839	xorl	%ecx,%edi
1840	addl	%eax,%ebp
1841	shrdl	$7,%ebx,%ebx
1842	addl	%edi,%ebp
1843	vpslld	$2,%xmm2,%xmm2
1844	addl	40(%rsp),%edx
1845	xorl	%ecx,%esi
1846	movl	%ebp,%edi
1847	shldl	$5,%ebp,%ebp
1848	xorl	%ebx,%esi
1849	addl	%ebp,%edx
1850	shrdl	$7,%eax,%eax
1851	addl	%esi,%edx
1852	vpor	%xmm8,%xmm2,%xmm2
1853	addl	44(%rsp),%ecx
1854	xorl	%ebx,%edi
1855	vmovdqa	%xmm2,%xmm9
1856	movl	%edx,%esi
1857	shldl	$5,%edx,%edx
1858	xorl	%eax,%edi
1859	vaesenc	%xmm15,%xmm11,%xmm11
1860	vmovups	0(%r15),%xmm14
1861	addl	%edx,%ecx
1862	shrdl	$7,%ebp,%ebp
1863	addl	%edi,%ecx
1864	vpalignr	$8,%xmm1,%xmm2,%xmm9
1865	vpxor	%xmm7,%xmm3,%xmm3
1866	addl	48(%rsp),%ebx
1867	xorl	%eax,%esi
1868	movl	%ecx,%edi
1869	shldl	$5,%ecx,%ecx
1870	vpxor	%xmm4,%xmm3,%xmm3
1871	xorl	%ebp,%esi
1872	addl	%ecx,%ebx
1873	vmovdqa	%xmm10,%xmm8
1874	vpaddd	%xmm2,%xmm10,%xmm10
1875	shrdl	$7,%edx,%edx
1876	addl	%esi,%ebx
1877	vpxor	%xmm9,%xmm3,%xmm3
1878	addl	52(%rsp),%eax
1879	xorl	%ebp,%edi
1880	movl	%ebx,%esi
1881	shldl	$5,%ebx,%ebx
1882	vpsrld	$30,%xmm3,%xmm9
1883	vmovdqa	%xmm10,32(%rsp)
1884	xorl	%edx,%edi
1885	addl	%ebx,%eax
1886	shrdl	$7,%ecx,%ecx
1887	addl	%edi,%eax
1888	vpslld	$2,%xmm3,%xmm3
1889	addl	56(%rsp),%ebp
1890	vaesenc	%xmm14,%xmm11,%xmm11
1891	vmovups	16(%r15),%xmm15
1892	xorl	%edx,%esi
1893	movl	%eax,%edi
1894	shldl	$5,%eax,%eax
1895	xorl	%ecx,%esi
1896	addl	%eax,%ebp
1897	shrdl	$7,%ebx,%ebx
1898	addl	%esi,%ebp
1899	vpor	%xmm9,%xmm3,%xmm3
1900	addl	60(%rsp),%edx
1901	xorl	%ecx,%edi
1902	vmovdqa	%xmm3,%xmm10
1903	movl	%ebp,%esi
1904	shldl	$5,%ebp,%ebp
1905	xorl	%ebx,%edi
1906	addl	%ebp,%edx
1907	shrdl	$7,%eax,%eax
1908	addl	%edi,%edx
1909	vpalignr	$8,%xmm2,%xmm3,%xmm10
1910	vpxor	%xmm0,%xmm4,%xmm4
1911	addl	0(%rsp),%ecx
1912	xorl	%ebx,%esi
1913	movl	%edx,%edi
1914	shldl	$5,%edx,%edx
1915	vpxor	%xmm5,%xmm4,%xmm4
1916	xorl	%eax,%esi
1917	vaesenc	%xmm15,%xmm11,%xmm11
1918	vmovups	32(%r15),%xmm14
1919	addl	%edx,%ecx
1920	vmovdqa	%xmm8,%xmm9
1921	vpaddd	%xmm3,%xmm8,%xmm8
1922	shrdl	$7,%ebp,%ebp
1923	addl	%esi,%ecx
1924	vpxor	%xmm10,%xmm4,%xmm4
1925	addl	4(%rsp),%ebx
1926	xorl	%eax,%edi
1927	movl	%ecx,%esi
1928	shldl	$5,%ecx,%ecx
1929	vpsrld	$30,%xmm4,%xmm10
1930	vmovdqa	%xmm8,48(%rsp)
1931	xorl	%ebp,%edi
1932	addl	%ecx,%ebx
1933	shrdl	$7,%edx,%edx
1934	addl	%edi,%ebx
1935	vpslld	$2,%xmm4,%xmm4
1936	addl	8(%rsp),%eax
1937	xorl	%ebp,%esi
1938	movl	%ebx,%edi
1939	shldl	$5,%ebx,%ebx
1940	xorl	%edx,%esi
1941	addl	%ebx,%eax
1942	shrdl	$7,%ecx,%ecx
1943	addl	%esi,%eax
1944	vpor	%xmm10,%xmm4,%xmm4
1945	addl	12(%rsp),%ebp
1946	vaesenc	%xmm14,%xmm11,%xmm11
1947	vmovups	48(%r15),%xmm15
1948	xorl	%edx,%edi
1949	vmovdqa	%xmm4,%xmm8
1950	movl	%eax,%esi
1951	shldl	$5,%eax,%eax
1952	xorl	%ecx,%edi
1953	addl	%eax,%ebp
1954	shrdl	$7,%ebx,%ebx
1955	addl	%edi,%ebp
1956	vpalignr	$8,%xmm3,%xmm4,%xmm8
1957	vpxor	%xmm1,%xmm5,%xmm5
1958	addl	16(%rsp),%edx
1959	xorl	%ecx,%esi
1960	movl	%ebp,%edi
1961	shldl	$5,%ebp,%ebp
1962	vpxor	%xmm6,%xmm5,%xmm5
1963	xorl	%ebx,%esi
1964	addl	%ebp,%edx
1965	vmovdqa	%xmm9,%xmm10
1966	vpaddd	%xmm4,%xmm9,%xmm9
1967	shrdl	$7,%eax,%eax
1968	addl	%esi,%edx
1969	vpxor	%xmm8,%xmm5,%xmm5
1970	addl	20(%rsp),%ecx
1971	xorl	%ebx,%edi
1972	movl	%edx,%esi
1973	shldl	$5,%edx,%edx
1974	vpsrld	$30,%xmm5,%xmm8
1975	vmovdqa	%xmm9,0(%rsp)
1976	xorl	%eax,%edi
1977	cmpl	$11,%r8d
1978	jb	.Lvaesenclast2
1979	vaesenc	%xmm15,%xmm11,%xmm11
1980	vmovups	64(%r15),%xmm14
1981	vaesenc	%xmm14,%xmm11,%xmm11
1982	vmovups	80(%r15),%xmm15
1983	je	.Lvaesenclast2
1984	vaesenc	%xmm15,%xmm11,%xmm11
1985	vmovups	96(%r15),%xmm14
1986	vaesenc	%xmm14,%xmm11,%xmm11
1987	vmovups	112(%r15),%xmm15
1988.Lvaesenclast2:
1989	vaesenclast	%xmm15,%xmm11,%xmm11
1990	vmovups	16-112(%r15),%xmm14
1991	addl	%edx,%ecx
1992	shrdl	$7,%ebp,%ebp
1993	addl	%edi,%ecx
1994	vpslld	$2,%xmm5,%xmm5
1995	addl	24(%rsp),%ebx
1996	xorl	%eax,%esi
1997	movl	%ecx,%edi
1998	shldl	$5,%ecx,%ecx
1999	xorl	%ebp,%esi
2000	addl	%ecx,%ebx
2001	shrdl	$7,%edx,%edx
2002	addl	%esi,%ebx
2003	vpor	%xmm8,%xmm5,%xmm5
2004	addl	28(%rsp),%eax
2005	xorl	%ebp,%edi
2006	vmovdqa	%xmm5,%xmm9
2007	movl	%ebx,%esi
2008	shldl	$5,%ebx,%ebx
2009	xorl	%edx,%edi
2010	addl	%ebx,%eax
2011	shrdl	$7,%ecx,%ecx
2012	addl	%edi,%eax
2013	vpalignr	$8,%xmm4,%xmm5,%xmm9
2014	vpxor	%xmm2,%xmm6,%xmm6
2015	movl	%ecx,%edi
2016	vmovups	32(%r12),%xmm12
2017	vxorps	%xmm13,%xmm12,%xmm12
2018	vmovups	%xmm11,16(%r13,%r12,1)
2019	vxorps	%xmm12,%xmm11,%xmm11
2020	vaesenc	%xmm14,%xmm11,%xmm11
2021	vmovups	-80(%r15),%xmm15
2022	xorl	%edx,%ecx
2023	addl	32(%rsp),%ebp
2024	andl	%edx,%edi
2025	vpxor	%xmm7,%xmm6,%xmm6
2026	andl	%ecx,%esi
2027	shrdl	$7,%ebx,%ebx
2028	vmovdqa	%xmm10,%xmm8
2029	vpaddd	%xmm5,%xmm10,%xmm10
2030	addl	%edi,%ebp
2031	movl	%eax,%edi
2032	vpxor	%xmm9,%xmm6,%xmm6
2033	shldl	$5,%eax,%eax
2034	addl	%esi,%ebp
2035	xorl	%edx,%ecx
2036	addl	%eax,%ebp
2037	vpsrld	$30,%xmm6,%xmm9
2038	vmovdqa	%xmm10,16(%rsp)
2039	movl	%ebx,%esi
2040	xorl	%ecx,%ebx
2041	addl	36(%rsp),%edx
2042	andl	%ecx,%esi
2043	vpslld	$2,%xmm6,%xmm6
2044	andl	%ebx,%edi
2045	shrdl	$7,%eax,%eax
2046	addl	%esi,%edx
2047	movl	%ebp,%esi
2048	shldl	$5,%ebp,%ebp
2049	vaesenc	%xmm15,%xmm11,%xmm11
2050	vmovups	-64(%r15),%xmm14
2051	addl	%edi,%edx
2052	xorl	%ecx,%ebx
2053	addl	%ebp,%edx
2054	vpor	%xmm9,%xmm6,%xmm6
2055	movl	%eax,%edi
2056	xorl	%ebx,%eax
2057	vmovdqa	%xmm6,%xmm10
2058	addl	40(%rsp),%ecx
2059	andl	%ebx,%edi
2060	andl	%eax,%esi
2061	shrdl	$7,%ebp,%ebp
2062	addl	%edi,%ecx
2063	movl	%edx,%edi
2064	shldl	$5,%edx,%edx
2065	addl	%esi,%ecx
2066	xorl	%ebx,%eax
2067	addl	%edx,%ecx
2068	movl	%ebp,%esi
2069	xorl	%eax,%ebp
2070	addl	44(%rsp),%ebx
2071	andl	%eax,%esi
2072	andl	%ebp,%edi
2073	vaesenc	%xmm14,%xmm11,%xmm11
2074	vmovups	-48(%r15),%xmm15
2075	shrdl	$7,%edx,%edx
2076	addl	%esi,%ebx
2077	movl	%ecx,%esi
2078	shldl	$5,%ecx,%ecx
2079	addl	%edi,%ebx
2080	xorl	%eax,%ebp
2081	addl	%ecx,%ebx
2082	vpalignr	$8,%xmm5,%xmm6,%xmm10
2083	vpxor	%xmm3,%xmm7,%xmm7
2084	movl	%edx,%edi
2085	xorl	%ebp,%edx
2086	addl	48(%rsp),%eax
2087	andl	%ebp,%edi
2088	vpxor	%xmm0,%xmm7,%xmm7
2089	andl	%edx,%esi
2090	shrdl	$7,%ecx,%ecx
2091	vmovdqa	48(%r11),%xmm9
2092	vpaddd	%xmm6,%xmm8,%xmm8
2093	addl	%edi,%eax
2094	movl	%ebx,%edi
2095	vpxor	%xmm10,%xmm7,%xmm7
2096	shldl	$5,%ebx,%ebx
2097	addl	%esi,%eax
2098	xorl	%ebp,%edx
2099	addl	%ebx,%eax
2100	vpsrld	$30,%xmm7,%xmm10
2101	vmovdqa	%xmm8,32(%rsp)
2102	movl	%ecx,%esi
2103	vaesenc	%xmm15,%xmm11,%xmm11
2104	vmovups	-32(%r15),%xmm14
2105	xorl	%edx,%ecx
2106	addl	52(%rsp),%ebp
2107	andl	%edx,%esi
2108	vpslld	$2,%xmm7,%xmm7
2109	andl	%ecx,%edi
2110	shrdl	$7,%ebx,%ebx
2111	addl	%esi,%ebp
2112	movl	%eax,%esi
2113	shldl	$5,%eax,%eax
2114	addl	%edi,%ebp
2115	xorl	%edx,%ecx
2116	addl	%eax,%ebp
2117	vpor	%xmm10,%xmm7,%xmm7
2118	movl	%ebx,%edi
2119	xorl	%ecx,%ebx
2120	vmovdqa	%xmm7,%xmm8
2121	addl	56(%rsp),%edx
2122	andl	%ecx,%edi
2123	andl	%ebx,%esi
2124	shrdl	$7,%eax,%eax
2125	addl	%edi,%edx
2126	movl	%ebp,%edi
2127	shldl	$5,%ebp,%ebp
2128	vaesenc	%xmm14,%xmm11,%xmm11
2129	vmovups	-16(%r15),%xmm15
2130	addl	%esi,%edx
2131	xorl	%ecx,%ebx
2132	addl	%ebp,%edx
2133	movl	%eax,%esi
2134	xorl	%ebx,%eax
2135	addl	60(%rsp),%ecx
2136	andl	%ebx,%esi
2137	andl	%eax,%edi
2138	shrdl	$7,%ebp,%ebp
2139	addl	%esi,%ecx
2140	movl	%edx,%esi
2141	shldl	$5,%edx,%edx
2142	addl	%edi,%ecx
2143	xorl	%ebx,%eax
2144	addl	%edx,%ecx
2145	vpalignr	$8,%xmm6,%xmm7,%xmm8
2146	vpxor	%xmm4,%xmm0,%xmm0
2147	movl	%ebp,%edi
2148	xorl	%eax,%ebp
2149	addl	0(%rsp),%ebx
2150	andl	%eax,%edi
2151	vpxor	%xmm1,%xmm0,%xmm0
2152	andl	%ebp,%esi
2153	vaesenc	%xmm15,%xmm11,%xmm11
2154	vmovups	0(%r15),%xmm14
2155	shrdl	$7,%edx,%edx
2156	vmovdqa	%xmm9,%xmm10
2157	vpaddd	%xmm7,%xmm9,%xmm9
2158	addl	%edi,%ebx
2159	movl	%ecx,%edi
2160	vpxor	%xmm8,%xmm0,%xmm0
2161	shldl	$5,%ecx,%ecx
2162	addl	%esi,%ebx
2163	xorl	%eax,%ebp
2164	addl	%ecx,%ebx
2165	vpsrld	$30,%xmm0,%xmm8
2166	vmovdqa	%xmm9,48(%rsp)
2167	movl	%edx,%esi
2168	xorl	%ebp,%edx
2169	addl	4(%rsp),%eax
2170	andl	%ebp,%esi
2171	vpslld	$2,%xmm0,%xmm0
2172	andl	%edx,%edi
2173	shrdl	$7,%ecx,%ecx
2174	addl	%esi,%eax
2175	movl	%ebx,%esi
2176	shldl	$5,%ebx,%ebx
2177	addl	%edi,%eax
2178	xorl	%ebp,%edx
2179	addl	%ebx,%eax
2180	vpor	%xmm8,%xmm0,%xmm0
2181	movl	%ecx,%edi
2182	vaesenc	%xmm14,%xmm11,%xmm11
2183	vmovups	16(%r15),%xmm15
2184	xorl	%edx,%ecx
2185	vmovdqa	%xmm0,%xmm9
2186	addl	8(%rsp),%ebp
2187	andl	%edx,%edi
2188	andl	%ecx,%esi
2189	shrdl	$7,%ebx,%ebx
2190	addl	%edi,%ebp
2191	movl	%eax,%edi
2192	shldl	$5,%eax,%eax
2193	addl	%esi,%ebp
2194	xorl	%edx,%ecx
2195	addl	%eax,%ebp
2196	movl	%ebx,%esi
2197	xorl	%ecx,%ebx
2198	addl	12(%rsp),%edx
2199	andl	%ecx,%esi
2200	andl	%ebx,%edi
2201	shrdl	$7,%eax,%eax
2202	addl	%esi,%edx
2203	movl	%ebp,%esi
2204	shldl	$5,%ebp,%ebp
2205	vaesenc	%xmm15,%xmm11,%xmm11
2206	vmovups	32(%r15),%xmm14
2207	addl	%edi,%edx
2208	xorl	%ecx,%ebx
2209	addl	%ebp,%edx
2210	vpalignr	$8,%xmm7,%xmm0,%xmm9
2211	vpxor	%xmm5,%xmm1,%xmm1
2212	movl	%eax,%edi
2213	xorl	%ebx,%eax
2214	addl	16(%rsp),%ecx
2215	andl	%ebx,%edi
2216	vpxor	%xmm2,%xmm1,%xmm1
2217	andl	%eax,%esi
2218	shrdl	$7,%ebp,%ebp
2219	vmovdqa	%xmm10,%xmm8
2220	vpaddd	%xmm0,%xmm10,%xmm10
2221	addl	%edi,%ecx
2222	movl	%edx,%edi
2223	vpxor	%xmm9,%xmm1,%xmm1
2224	shldl	$5,%edx,%edx
2225	addl	%esi,%ecx
2226	xorl	%ebx,%eax
2227	addl	%edx,%ecx
2228	vpsrld	$30,%xmm1,%xmm9
2229	vmovdqa	%xmm10,0(%rsp)
2230	movl	%ebp,%esi
2231	xorl	%eax,%ebp
2232	addl	20(%rsp),%ebx
2233	andl	%eax,%esi
2234	vpslld	$2,%xmm1,%xmm1
2235	andl	%ebp,%edi
2236	vaesenc	%xmm14,%xmm11,%xmm11
2237	vmovups	48(%r15),%xmm15
2238	shrdl	$7,%edx,%edx
2239	addl	%esi,%ebx
2240	movl	%ecx,%esi
2241	shldl	$5,%ecx,%ecx
2242	addl	%edi,%ebx
2243	xorl	%eax,%ebp
2244	addl	%ecx,%ebx
2245	vpor	%xmm9,%xmm1,%xmm1
2246	movl	%edx,%edi
2247	xorl	%ebp,%edx
2248	vmovdqa	%xmm1,%xmm10
2249	addl	24(%rsp),%eax
2250	andl	%ebp,%edi
2251	andl	%edx,%esi
2252	shrdl	$7,%ecx,%ecx
2253	addl	%edi,%eax
2254	movl	%ebx,%edi
2255	shldl	$5,%ebx,%ebx
2256	addl	%esi,%eax
2257	xorl	%ebp,%edx
2258	addl	%ebx,%eax
2259	movl	%ecx,%esi
2260	cmpl	$11,%r8d
2261	jb	.Lvaesenclast3
2262	vaesenc	%xmm15,%xmm11,%xmm11
2263	vmovups	64(%r15),%xmm14
2264	vaesenc	%xmm14,%xmm11,%xmm11
2265	vmovups	80(%r15),%xmm15
2266	je	.Lvaesenclast3
2267	vaesenc	%xmm15,%xmm11,%xmm11
2268	vmovups	96(%r15),%xmm14
2269	vaesenc	%xmm14,%xmm11,%xmm11
2270	vmovups	112(%r15),%xmm15
2271.Lvaesenclast3:
2272	vaesenclast	%xmm15,%xmm11,%xmm11
2273	vmovups	16-112(%r15),%xmm14
2274	xorl	%edx,%ecx
2275	addl	28(%rsp),%ebp
2276	andl	%edx,%esi
2277	andl	%ecx,%edi
2278	shrdl	$7,%ebx,%ebx
2279	addl	%esi,%ebp
2280	movl	%eax,%esi
2281	shldl	$5,%eax,%eax
2282	addl	%edi,%ebp
2283	xorl	%edx,%ecx
2284	addl	%eax,%ebp
2285	vpalignr	$8,%xmm0,%xmm1,%xmm10
2286	vpxor	%xmm6,%xmm2,%xmm2
2287	movl	%ebx,%edi
2288	xorl	%ecx,%ebx
2289	addl	32(%rsp),%edx
2290	andl	%ecx,%edi
2291	vpxor	%xmm3,%xmm2,%xmm2
2292	andl	%ebx,%esi
2293	shrdl	$7,%eax,%eax
2294	vmovdqa	%xmm8,%xmm9
2295	vpaddd	%xmm1,%xmm8,%xmm8
2296	addl	%edi,%edx
2297	movl	%ebp,%edi
2298	vpxor	%xmm10,%xmm2,%xmm2
2299	shldl	$5,%ebp,%ebp
2300	vmovups	48(%r12),%xmm12
2301	vxorps	%xmm13,%xmm12,%xmm12
2302	vmovups	%xmm11,32(%r13,%r12,1)
2303	vxorps	%xmm12,%xmm11,%xmm11
2304	vaesenc	%xmm14,%xmm11,%xmm11
2305	vmovups	-80(%r15),%xmm15
2306	addl	%esi,%edx
2307	xorl	%ecx,%ebx
2308	addl	%ebp,%edx
2309	vpsrld	$30,%xmm2,%xmm10
2310	vmovdqa	%xmm8,16(%rsp)
2311	movl	%eax,%esi
2312	xorl	%ebx,%eax
2313	addl	36(%rsp),%ecx
2314	andl	%ebx,%esi
2315	vpslld	$2,%xmm2,%xmm2
2316	andl	%eax,%edi
2317	shrdl	$7,%ebp,%ebp
2318	addl	%esi,%ecx
2319	movl	%edx,%esi
2320	shldl	$5,%edx,%edx
2321	addl	%edi,%ecx
2322	xorl	%ebx,%eax
2323	addl	%edx,%ecx
2324	vpor	%xmm10,%xmm2,%xmm2
2325	movl	%ebp,%edi
2326	xorl	%eax,%ebp
2327	vmovdqa	%xmm2,%xmm8
2328	addl	40(%rsp),%ebx
2329	andl	%eax,%edi
2330	andl	%ebp,%esi
2331	vaesenc	%xmm15,%xmm11,%xmm11
2332	vmovups	-64(%r15),%xmm14
2333	shrdl	$7,%edx,%edx
2334	addl	%edi,%ebx
2335	movl	%ecx,%edi
2336	shldl	$5,%ecx,%ecx
2337	addl	%esi,%ebx
2338	xorl	%eax,%ebp
2339	addl	%ecx,%ebx
2340	movl	%edx,%esi
2341	xorl	%ebp,%edx
2342	addl	44(%rsp),%eax
2343	andl	%ebp,%esi
2344	andl	%edx,%edi
2345	shrdl	$7,%ecx,%ecx
2346	addl	%esi,%eax
2347	movl	%ebx,%esi
2348	shldl	$5,%ebx,%ebx
2349	addl	%edi,%eax
2350	xorl	%ebp,%edx
2351	addl	%ebx,%eax
2352	vpalignr	$8,%xmm1,%xmm2,%xmm8
2353	vpxor	%xmm7,%xmm3,%xmm3
2354	addl	48(%rsp),%ebp
2355	vaesenc	%xmm14,%xmm11,%xmm11
2356	vmovups	-48(%r15),%xmm15
2357	xorl	%edx,%esi
2358	movl	%eax,%edi
2359	shldl	$5,%eax,%eax
2360	vpxor	%xmm4,%xmm3,%xmm3
2361	xorl	%ecx,%esi
2362	addl	%eax,%ebp
2363	vmovdqa	%xmm9,%xmm10
2364	vpaddd	%xmm2,%xmm9,%xmm9
2365	shrdl	$7,%ebx,%ebx
2366	addl	%esi,%ebp
2367	vpxor	%xmm8,%xmm3,%xmm3
2368	addl	52(%rsp),%edx
2369	xorl	%ecx,%edi
2370	movl	%ebp,%esi
2371	shldl	$5,%ebp,%ebp
2372	vpsrld	$30,%xmm3,%xmm8
2373	vmovdqa	%xmm9,32(%rsp)
2374	xorl	%ebx,%edi
2375	addl	%ebp,%edx
2376	shrdl	$7,%eax,%eax
2377	addl	%edi,%edx
2378	vpslld	$2,%xmm3,%xmm3
2379	addl	56(%rsp),%ecx
2380	xorl	%ebx,%esi
2381	movl	%edx,%edi
2382	shldl	$5,%edx,%edx
2383	xorl	%eax,%esi
2384	vaesenc	%xmm15,%xmm11,%xmm11
2385	vmovups	-32(%r15),%xmm14
2386	addl	%edx,%ecx
2387	shrdl	$7,%ebp,%ebp
2388	addl	%esi,%ecx
2389	vpor	%xmm8,%xmm3,%xmm3
2390	addl	60(%rsp),%ebx
2391	xorl	%eax,%edi
2392	movl	%ecx,%esi
2393	shldl	$5,%ecx,%ecx
2394	xorl	%ebp,%edi
2395	addl	%ecx,%ebx
2396	shrdl	$7,%edx,%edx
2397	addl	%edi,%ebx
2398	addl	0(%rsp),%eax
2399	vpaddd	%xmm3,%xmm10,%xmm10
2400	xorl	%ebp,%esi
2401	movl	%ebx,%edi
2402	shldl	$5,%ebx,%ebx
2403	xorl	%edx,%esi
2404	movdqa	%xmm10,48(%rsp)
2405	addl	%ebx,%eax
2406	shrdl	$7,%ecx,%ecx
2407	addl	%esi,%eax
2408	addl	4(%rsp),%ebp
2409	vaesenc	%xmm14,%xmm11,%xmm11
2410	vmovups	-16(%r15),%xmm15
2411	xorl	%edx,%edi
2412	movl	%eax,%esi
2413	shldl	$5,%eax,%eax
2414	xorl	%ecx,%edi
2415	addl	%eax,%ebp
2416	shrdl	$7,%ebx,%ebx
2417	addl	%edi,%ebp
2418	addl	8(%rsp),%edx
2419	xorl	%ecx,%esi
2420	movl	%ebp,%edi
2421	shldl	$5,%ebp,%ebp
2422	xorl	%ebx,%esi
2423	addl	%ebp,%edx
2424	shrdl	$7,%eax,%eax
2425	addl	%esi,%edx
2426	addl	12(%rsp),%ecx
2427	xorl	%ebx,%edi
2428	movl	%edx,%esi
2429	shldl	$5,%edx,%edx
2430	xorl	%eax,%edi
2431	vaesenc	%xmm15,%xmm11,%xmm11
2432	vmovups	0(%r15),%xmm14
2433	addl	%edx,%ecx
2434	shrdl	$7,%ebp,%ebp
2435	addl	%edi,%ecx
2436	cmpq	%r14,%r10
2437	je	.Ldone_avx
2438	vmovdqa	64(%r11),%xmm6
2439	vmovdqa	0(%r11),%xmm9
2440	vmovdqu	0(%r10),%xmm0
2441	vmovdqu	16(%r10),%xmm1
2442	vmovdqu	32(%r10),%xmm2
2443	vmovdqu	48(%r10),%xmm3
2444	vpshufb	%xmm6,%xmm0,%xmm0
2445	addq	$64,%r10
2446	addl	16(%rsp),%ebx
2447	xorl	%eax,%esi
2448	vpshufb	%xmm6,%xmm1,%xmm1
2449	movl	%ecx,%edi
2450	shldl	$5,%ecx,%ecx
2451	vpaddd	%xmm9,%xmm0,%xmm4
2452	xorl	%ebp,%esi
2453	addl	%ecx,%ebx
2454	shrdl	$7,%edx,%edx
2455	addl	%esi,%ebx
2456	vmovdqa	%xmm4,0(%rsp)
2457	addl	20(%rsp),%eax
2458	xorl	%ebp,%edi
2459	movl	%ebx,%esi
2460	shldl	$5,%ebx,%ebx
2461	xorl	%edx,%edi
2462	addl	%ebx,%eax
2463	shrdl	$7,%ecx,%ecx
2464	addl	%edi,%eax
2465	addl	24(%rsp),%ebp
2466	vaesenc	%xmm14,%xmm11,%xmm11
2467	vmovups	16(%r15),%xmm15
2468	xorl	%edx,%esi
2469	movl	%eax,%edi
2470	shldl	$5,%eax,%eax
2471	xorl	%ecx,%esi
2472	addl	%eax,%ebp
2473	shrdl	$7,%ebx,%ebx
2474	addl	%esi,%ebp
2475	addl	28(%rsp),%edx
2476	xorl	%ecx,%edi
2477	movl	%ebp,%esi
2478	shldl	$5,%ebp,%ebp
2479	xorl	%ebx,%edi
2480	addl	%ebp,%edx
2481	shrdl	$7,%eax,%eax
2482	addl	%edi,%edx
2483	addl	32(%rsp),%ecx
2484	xorl	%ebx,%esi
2485	vpshufb	%xmm6,%xmm2,%xmm2
2486	movl	%edx,%edi
2487	shldl	$5,%edx,%edx
2488	vpaddd	%xmm9,%xmm1,%xmm5
2489	xorl	%eax,%esi
2490	vaesenc	%xmm15,%xmm11,%xmm11
2491	vmovups	32(%r15),%xmm14
2492	addl	%edx,%ecx
2493	shrdl	$7,%ebp,%ebp
2494	addl	%esi,%ecx
2495	vmovdqa	%xmm5,16(%rsp)
2496	addl	36(%rsp),%ebx
2497	xorl	%eax,%edi
2498	movl	%ecx,%esi
2499	shldl	$5,%ecx,%ecx
2500	xorl	%ebp,%edi
2501	addl	%ecx,%ebx
2502	shrdl	$7,%edx,%edx
2503	addl	%edi,%ebx
2504	addl	40(%rsp),%eax
2505	xorl	%ebp,%esi
2506	movl	%ebx,%edi
2507	shldl	$5,%ebx,%ebx
2508	xorl	%edx,%esi
2509	addl	%ebx,%eax
2510	shrdl	$7,%ecx,%ecx
2511	addl	%esi,%eax
2512	addl	44(%rsp),%ebp
2513	vaesenc	%xmm14,%xmm11,%xmm11
2514	vmovups	48(%r15),%xmm15
2515	xorl	%edx,%edi
2516	movl	%eax,%esi
2517	shldl	$5,%eax,%eax
2518	xorl	%ecx,%edi
2519	addl	%eax,%ebp
2520	shrdl	$7,%ebx,%ebx
2521	addl	%edi,%ebp
2522	addl	48(%rsp),%edx
2523	xorl	%ecx,%esi
2524	vpshufb	%xmm6,%xmm3,%xmm3
2525	movl	%ebp,%edi
2526	shldl	$5,%ebp,%ebp
2527	vpaddd	%xmm9,%xmm2,%xmm6
2528	xorl	%ebx,%esi
2529	addl	%ebp,%edx
2530	shrdl	$7,%eax,%eax
2531	addl	%esi,%edx
2532	vmovdqa	%xmm6,32(%rsp)
2533	addl	52(%rsp),%ecx
2534	xorl	%ebx,%edi
2535	movl	%edx,%esi
2536	shldl	$5,%edx,%edx
2537	xorl	%eax,%edi
2538	cmpl	$11,%r8d
2539	jb	.Lvaesenclast4
2540	vaesenc	%xmm15,%xmm11,%xmm11
2541	vmovups	64(%r15),%xmm14
2542	vaesenc	%xmm14,%xmm11,%xmm11
2543	vmovups	80(%r15),%xmm15
2544	je	.Lvaesenclast4
2545	vaesenc	%xmm15,%xmm11,%xmm11
2546	vmovups	96(%r15),%xmm14
2547	vaesenc	%xmm14,%xmm11,%xmm11
2548	vmovups	112(%r15),%xmm15
2549.Lvaesenclast4:
2550	vaesenclast	%xmm15,%xmm11,%xmm11
2551	vmovups	16-112(%r15),%xmm14
2552	addl	%edx,%ecx
2553	shrdl	$7,%ebp,%ebp
2554	addl	%edi,%ecx
2555	addl	56(%rsp),%ebx
2556	xorl	%eax,%esi
2557	movl	%ecx,%edi
2558	shldl	$5,%ecx,%ecx
2559	xorl	%ebp,%esi
2560	addl	%ecx,%ebx
2561	shrdl	$7,%edx,%edx
2562	addl	%esi,%ebx
2563	addl	60(%rsp),%eax
2564	xorl	%ebp,%edi
2565	movl	%ebx,%esi
2566	shldl	$5,%ebx,%ebx
2567	xorl	%edx,%edi
2568	addl	%ebx,%eax
2569	shrdl	$7,%ecx,%ecx
2570	addl	%edi,%eax
2571	vmovups	%xmm11,48(%r13,%r12,1)
2572	leaq	64(%r12),%r12
2573
2574	addl	0(%r9),%eax
2575	addl	4(%r9),%esi
2576	addl	8(%r9),%ecx
2577	addl	12(%r9),%edx
2578	movl	%eax,0(%r9)
2579	addl	16(%r9),%ebp
2580	movl	%esi,4(%r9)
2581	movl	%esi,%ebx
2582	movl	%ecx,8(%r9)
2583	movl	%edx,12(%r9)
2584	movl	%ebp,16(%r9)
2585	jmp	.Loop_avx
2586
2587.align	16
2588.Ldone_avx:
2589	addl	16(%rsp),%ebx
2590	xorl	%eax,%esi
2591	movl	%ecx,%edi
2592	shldl	$5,%ecx,%ecx
2593	xorl	%ebp,%esi
2594	addl	%ecx,%ebx
2595	shrdl	$7,%edx,%edx
2596	addl	%esi,%ebx
2597	addl	20(%rsp),%eax
2598	xorl	%ebp,%edi
2599	movl	%ebx,%esi
2600	shldl	$5,%ebx,%ebx
2601	xorl	%edx,%edi
2602	addl	%ebx,%eax
2603	shrdl	$7,%ecx,%ecx
2604	addl	%edi,%eax
2605	addl	24(%rsp),%ebp
2606	vaesenc	%xmm14,%xmm11,%xmm11
2607	vmovups	16(%r15),%xmm15
2608	xorl	%edx,%esi
2609	movl	%eax,%edi
2610	shldl	$5,%eax,%eax
2611	xorl	%ecx,%esi
2612	addl	%eax,%ebp
2613	shrdl	$7,%ebx,%ebx
2614	addl	%esi,%ebp
2615	addl	28(%rsp),%edx
2616	xorl	%ecx,%edi
2617	movl	%ebp,%esi
2618	shldl	$5,%ebp,%ebp
2619	xorl	%ebx,%edi
2620	addl	%ebp,%edx
2621	shrdl	$7,%eax,%eax
2622	addl	%edi,%edx
2623	addl	32(%rsp),%ecx
2624	xorl	%ebx,%esi
2625	movl	%edx,%edi
2626	shldl	$5,%edx,%edx
2627	xorl	%eax,%esi
2628	vaesenc	%xmm15,%xmm11,%xmm11
2629	vmovups	32(%r15),%xmm14
2630	addl	%edx,%ecx
2631	shrdl	$7,%ebp,%ebp
2632	addl	%esi,%ecx
2633	addl	36(%rsp),%ebx
2634	xorl	%eax,%edi
2635	movl	%ecx,%esi
2636	shldl	$5,%ecx,%ecx
2637	xorl	%ebp,%edi
2638	addl	%ecx,%ebx
2639	shrdl	$7,%edx,%edx
2640	addl	%edi,%ebx
2641	addl	40(%rsp),%eax
2642	xorl	%ebp,%esi
2643	movl	%ebx,%edi
2644	shldl	$5,%ebx,%ebx
2645	xorl	%edx,%esi
2646	addl	%ebx,%eax
2647	shrdl	$7,%ecx,%ecx
2648	addl	%esi,%eax
2649	addl	44(%rsp),%ebp
2650	vaesenc	%xmm14,%xmm11,%xmm11
2651	vmovups	48(%r15),%xmm15
2652	xorl	%edx,%edi
2653	movl	%eax,%esi
2654	shldl	$5,%eax,%eax
2655	xorl	%ecx,%edi
2656	addl	%eax,%ebp
2657	shrdl	$7,%ebx,%ebx
2658	addl	%edi,%ebp
2659	addl	48(%rsp),%edx
2660	xorl	%ecx,%esi
2661	movl	%ebp,%edi
2662	shldl	$5,%ebp,%ebp
2663	xorl	%ebx,%esi
2664	addl	%ebp,%edx
2665	shrdl	$7,%eax,%eax
2666	addl	%esi,%edx
2667	addl	52(%rsp),%ecx
2668	xorl	%ebx,%edi
2669	movl	%edx,%esi
2670	shldl	$5,%edx,%edx
2671	xorl	%eax,%edi
2672	cmpl	$11,%r8d
2673	jb	.Lvaesenclast5
2674	vaesenc	%xmm15,%xmm11,%xmm11
2675	vmovups	64(%r15),%xmm14
2676	vaesenc	%xmm14,%xmm11,%xmm11
2677	vmovups	80(%r15),%xmm15
2678	je	.Lvaesenclast5
2679	vaesenc	%xmm15,%xmm11,%xmm11
2680	vmovups	96(%r15),%xmm14
2681	vaesenc	%xmm14,%xmm11,%xmm11
2682	vmovups	112(%r15),%xmm15
2683.Lvaesenclast5:
2684	vaesenclast	%xmm15,%xmm11,%xmm11
2685	vmovups	16-112(%r15),%xmm14
2686	addl	%edx,%ecx
2687	shrdl	$7,%ebp,%ebp
2688	addl	%edi,%ecx
2689	addl	56(%rsp),%ebx
2690	xorl	%eax,%esi
2691	movl	%ecx,%edi
2692	shldl	$5,%ecx,%ecx
2693	xorl	%ebp,%esi
2694	addl	%ecx,%ebx
2695	shrdl	$7,%edx,%edx
2696	addl	%esi,%ebx
2697	addl	60(%rsp),%eax
2698	xorl	%ebp,%edi
2699	movl	%ebx,%esi
2700	shldl	$5,%ebx,%ebx
2701	xorl	%edx,%edi
2702	addl	%ebx,%eax
2703	shrdl	$7,%ecx,%ecx
2704	addl	%edi,%eax
2705	vmovups	%xmm11,48(%r13,%r12,1)
2706	movq	88(%rsp),%r8
2707
2708	addl	0(%r9),%eax
2709	addl	4(%r9),%esi
2710	addl	8(%r9),%ecx
2711	movl	%eax,0(%r9)
2712	addl	12(%r9),%edx
2713	movl	%esi,4(%r9)
2714	addl	16(%r9),%ebp
2715	movl	%ecx,8(%r9)
2716	movl	%edx,12(%r9)
2717	movl	%ebp,16(%r9)
2718	vmovups	%xmm11,(%r8)
2719	vzeroall
2720	leaq	104(%rsp),%rsi
2721	movq	0(%rsi),%r15
2722	movq	8(%rsi),%r14
2723	movq	16(%rsi),%r13
2724	movq	24(%rsi),%r12
2725	movq	32(%rsi),%rbp
2726	movq	40(%rsi),%rbx
2727	leaq	48(%rsi),%rsp
2728.Lepilogue_avx:
2729	.byte	0xf3,0xc3
2730.size	aesni_cbc_sha1_enc_avx,.-aesni_cbc_sha1_enc_avx
2731.align	64
2732K_XX_XX:
2733.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999
2734.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
2735.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
2736.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
2737.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
2738
2739.byte	65,69,83,78,73,45,67,66,67,43,83,72,65,49,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
2740.align	64
2741