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