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