aes-586.S revision 305153
1/* $FreeBSD: stable/11/secure/lib/libcrypto/i386/aes-586.S 305153 2016-08-31 20:33:59Z jkim $ */
2/* Do not modify. This file is auto-generated from aes-586.pl. */
3#ifdef PIC
4.file	"aes-586.S"
5.text
6.type	_x86_AES_encrypt_compact,@function
7.align	16
8_x86_AES_encrypt_compact:
9	movl	%edi,20(%esp)
10	xorl	(%edi),%eax
11	xorl	4(%edi),%ebx
12	xorl	8(%edi),%ecx
13	xorl	12(%edi),%edx
14	movl	240(%edi),%esi
15	leal	-2(%esi,%esi,1),%esi
16	leal	(%edi,%esi,8),%esi
17	movl	%esi,24(%esp)
18	movl	-128(%ebp),%edi
19	movl	-96(%ebp),%esi
20	movl	-64(%ebp),%edi
21	movl	-32(%ebp),%esi
22	movl	(%ebp),%edi
23	movl	32(%ebp),%esi
24	movl	64(%ebp),%edi
25	movl	96(%ebp),%esi
26.align	16
27.L000loop:
28	movl	%eax,%esi
29	andl	$255,%esi
30	movzbl	-128(%ebp,%esi,1),%esi
31	movzbl	%bh,%edi
32	movzbl	-128(%ebp,%edi,1),%edi
33	shll	$8,%edi
34	xorl	%edi,%esi
35	movl	%ecx,%edi
36	shrl	$16,%edi
37	andl	$255,%edi
38	movzbl	-128(%ebp,%edi,1),%edi
39	shll	$16,%edi
40	xorl	%edi,%esi
41	movl	%edx,%edi
42	shrl	$24,%edi
43	movzbl	-128(%ebp,%edi,1),%edi
44	shll	$24,%edi
45	xorl	%edi,%esi
46	movl	%esi,4(%esp)
47
48	movl	%ebx,%esi
49	andl	$255,%esi
50	shrl	$16,%ebx
51	movzbl	-128(%ebp,%esi,1),%esi
52	movzbl	%ch,%edi
53	movzbl	-128(%ebp,%edi,1),%edi
54	shll	$8,%edi
55	xorl	%edi,%esi
56	movl	%edx,%edi
57	shrl	$16,%edi
58	andl	$255,%edi
59	movzbl	-128(%ebp,%edi,1),%edi
60	shll	$16,%edi
61	xorl	%edi,%esi
62	movl	%eax,%edi
63	shrl	$24,%edi
64	movzbl	-128(%ebp,%edi,1),%edi
65	shll	$24,%edi
66	xorl	%edi,%esi
67	movl	%esi,8(%esp)
68
69	movl	%ecx,%esi
70	andl	$255,%esi
71	shrl	$24,%ecx
72	movzbl	-128(%ebp,%esi,1),%esi
73	movzbl	%dh,%edi
74	movzbl	-128(%ebp,%edi,1),%edi
75	shll	$8,%edi
76	xorl	%edi,%esi
77	movl	%eax,%edi
78	shrl	$16,%edi
79	andl	$255,%edx
80	andl	$255,%edi
81	movzbl	-128(%ebp,%edi,1),%edi
82	shll	$16,%edi
83	xorl	%edi,%esi
84	movzbl	%bh,%edi
85	movzbl	-128(%ebp,%edi,1),%edi
86	shll	$24,%edi
87	xorl	%edi,%esi
88
89	andl	$255,%edx
90	movzbl	-128(%ebp,%edx,1),%edx
91	movzbl	%ah,%eax
92	movzbl	-128(%ebp,%eax,1),%eax
93	shll	$8,%eax
94	xorl	%eax,%edx
95	movl	4(%esp),%eax
96	andl	$255,%ebx
97	movzbl	-128(%ebp,%ebx,1),%ebx
98	shll	$16,%ebx
99	xorl	%ebx,%edx
100	movl	8(%esp),%ebx
101	movzbl	-128(%ebp,%ecx,1),%ecx
102	shll	$24,%ecx
103	xorl	%ecx,%edx
104	movl	%esi,%ecx
105
106	movl	$2155905152,%ebp
107	andl	%ecx,%ebp
108	leal	(%ecx,%ecx,1),%edi
109	movl	%ebp,%esi
110	shrl	$7,%ebp
111	andl	$4278124286,%edi
112	subl	%ebp,%esi
113	movl	%ecx,%ebp
114	andl	$454761243,%esi
115	rorl	$16,%ebp
116	xorl	%edi,%esi
117	movl	%ecx,%edi
118	xorl	%esi,%ecx
119	rorl	$24,%edi
120	xorl	%ebp,%esi
121	roll	$24,%ecx
122	xorl	%edi,%esi
123	movl	$2155905152,%ebp
124	xorl	%esi,%ecx
125	andl	%edx,%ebp
126	leal	(%edx,%edx,1),%edi
127	movl	%ebp,%esi
128	shrl	$7,%ebp
129	andl	$4278124286,%edi
130	subl	%ebp,%esi
131	movl	%edx,%ebp
132	andl	$454761243,%esi
133	rorl	$16,%ebp
134	xorl	%edi,%esi
135	movl	%edx,%edi
136	xorl	%esi,%edx
137	rorl	$24,%edi
138	xorl	%ebp,%esi
139	roll	$24,%edx
140	xorl	%edi,%esi
141	movl	$2155905152,%ebp
142	xorl	%esi,%edx
143	andl	%eax,%ebp
144	leal	(%eax,%eax,1),%edi
145	movl	%ebp,%esi
146	shrl	$7,%ebp
147	andl	$4278124286,%edi
148	subl	%ebp,%esi
149	movl	%eax,%ebp
150	andl	$454761243,%esi
151	rorl	$16,%ebp
152	xorl	%edi,%esi
153	movl	%eax,%edi
154	xorl	%esi,%eax
155	rorl	$24,%edi
156	xorl	%ebp,%esi
157	roll	$24,%eax
158	xorl	%edi,%esi
159	movl	$2155905152,%ebp
160	xorl	%esi,%eax
161	andl	%ebx,%ebp
162	leal	(%ebx,%ebx,1),%edi
163	movl	%ebp,%esi
164	shrl	$7,%ebp
165	andl	$4278124286,%edi
166	subl	%ebp,%esi
167	movl	%ebx,%ebp
168	andl	$454761243,%esi
169	rorl	$16,%ebp
170	xorl	%edi,%esi
171	movl	%ebx,%edi
172	xorl	%esi,%ebx
173	rorl	$24,%edi
174	xorl	%ebp,%esi
175	roll	$24,%ebx
176	xorl	%edi,%esi
177	xorl	%esi,%ebx
178	movl	20(%esp),%edi
179	movl	28(%esp),%ebp
180	addl	$16,%edi
181	xorl	(%edi),%eax
182	xorl	4(%edi),%ebx
183	xorl	8(%edi),%ecx
184	xorl	12(%edi),%edx
185	cmpl	24(%esp),%edi
186	movl	%edi,20(%esp)
187	jb	.L000loop
188	movl	%eax,%esi
189	andl	$255,%esi
190	movzbl	-128(%ebp,%esi,1),%esi
191	movzbl	%bh,%edi
192	movzbl	-128(%ebp,%edi,1),%edi
193	shll	$8,%edi
194	xorl	%edi,%esi
195	movl	%ecx,%edi
196	shrl	$16,%edi
197	andl	$255,%edi
198	movzbl	-128(%ebp,%edi,1),%edi
199	shll	$16,%edi
200	xorl	%edi,%esi
201	movl	%edx,%edi
202	shrl	$24,%edi
203	movzbl	-128(%ebp,%edi,1),%edi
204	shll	$24,%edi
205	xorl	%edi,%esi
206	movl	%esi,4(%esp)
207
208	movl	%ebx,%esi
209	andl	$255,%esi
210	shrl	$16,%ebx
211	movzbl	-128(%ebp,%esi,1),%esi
212	movzbl	%ch,%edi
213	movzbl	-128(%ebp,%edi,1),%edi
214	shll	$8,%edi
215	xorl	%edi,%esi
216	movl	%edx,%edi
217	shrl	$16,%edi
218	andl	$255,%edi
219	movzbl	-128(%ebp,%edi,1),%edi
220	shll	$16,%edi
221	xorl	%edi,%esi
222	movl	%eax,%edi
223	shrl	$24,%edi
224	movzbl	-128(%ebp,%edi,1),%edi
225	shll	$24,%edi
226	xorl	%edi,%esi
227	movl	%esi,8(%esp)
228
229	movl	%ecx,%esi
230	andl	$255,%esi
231	shrl	$24,%ecx
232	movzbl	-128(%ebp,%esi,1),%esi
233	movzbl	%dh,%edi
234	movzbl	-128(%ebp,%edi,1),%edi
235	shll	$8,%edi
236	xorl	%edi,%esi
237	movl	%eax,%edi
238	shrl	$16,%edi
239	andl	$255,%edx
240	andl	$255,%edi
241	movzbl	-128(%ebp,%edi,1),%edi
242	shll	$16,%edi
243	xorl	%edi,%esi
244	movzbl	%bh,%edi
245	movzbl	-128(%ebp,%edi,1),%edi
246	shll	$24,%edi
247	xorl	%edi,%esi
248
249	movl	20(%esp),%edi
250	andl	$255,%edx
251	movzbl	-128(%ebp,%edx,1),%edx
252	movzbl	%ah,%eax
253	movzbl	-128(%ebp,%eax,1),%eax
254	shll	$8,%eax
255	xorl	%eax,%edx
256	movl	4(%esp),%eax
257	andl	$255,%ebx
258	movzbl	-128(%ebp,%ebx,1),%ebx
259	shll	$16,%ebx
260	xorl	%ebx,%edx
261	movl	8(%esp),%ebx
262	movzbl	-128(%ebp,%ecx,1),%ecx
263	shll	$24,%ecx
264	xorl	%ecx,%edx
265	movl	%esi,%ecx
266
267	xorl	16(%edi),%eax
268	xorl	20(%edi),%ebx
269	xorl	24(%edi),%ecx
270	xorl	28(%edi),%edx
271	ret
272.size	_x86_AES_encrypt_compact,.-_x86_AES_encrypt_compact
273.type	_sse_AES_encrypt_compact,@function
274.align	16
275_sse_AES_encrypt_compact:
276	pxor	(%edi),%mm0
277	pxor	8(%edi),%mm4
278	movl	240(%edi),%esi
279	leal	-2(%esi,%esi,1),%esi
280	leal	(%edi,%esi,8),%esi
281	movl	%esi,24(%esp)
282	movl	$454761243,%eax
283	movl	%eax,8(%esp)
284	movl	%eax,12(%esp)
285	movl	-128(%ebp),%eax
286	movl	-96(%ebp),%ebx
287	movl	-64(%ebp),%ecx
288	movl	-32(%ebp),%edx
289	movl	(%ebp),%eax
290	movl	32(%ebp),%ebx
291	movl	64(%ebp),%ecx
292	movl	96(%ebp),%edx
293.align	16
294.L001loop:
295	pshufw	$8,%mm0,%mm1
296	pshufw	$13,%mm4,%mm5
297	movd	%mm1,%eax
298	movd	%mm5,%ebx
299	movl	%edi,20(%esp)
300	movzbl	%al,%esi
301	movzbl	%ah,%edx
302	pshufw	$13,%mm0,%mm2
303	movzbl	-128(%ebp,%esi,1),%ecx
304	movzbl	%bl,%edi
305	movzbl	-128(%ebp,%edx,1),%edx
306	shrl	$16,%eax
307	shll	$8,%edx
308	movzbl	-128(%ebp,%edi,1),%esi
309	movzbl	%bh,%edi
310	shll	$16,%esi
311	pshufw	$8,%mm4,%mm6
312	orl	%esi,%ecx
313	movzbl	-128(%ebp,%edi,1),%esi
314	movzbl	%ah,%edi
315	shll	$24,%esi
316	shrl	$16,%ebx
317	orl	%esi,%edx
318	movzbl	-128(%ebp,%edi,1),%esi
319	movzbl	%bh,%edi
320	shll	$8,%esi
321	orl	%esi,%ecx
322	movzbl	-128(%ebp,%edi,1),%esi
323	movzbl	%al,%edi
324	shll	$24,%esi
325	orl	%esi,%ecx
326	movzbl	-128(%ebp,%edi,1),%esi
327	movzbl	%bl,%edi
328	movd	%mm2,%eax
329	movd	%ecx,%mm0
330	movzbl	-128(%ebp,%edi,1),%ecx
331	movzbl	%ah,%edi
332	shll	$16,%ecx
333	movd	%mm6,%ebx
334	orl	%esi,%ecx
335	movzbl	-128(%ebp,%edi,1),%esi
336	movzbl	%bh,%edi
337	shll	$24,%esi
338	orl	%esi,%ecx
339	movzbl	-128(%ebp,%edi,1),%esi
340	movzbl	%bl,%edi
341	shll	$8,%esi
342	shrl	$16,%ebx
343	orl	%esi,%ecx
344	movzbl	-128(%ebp,%edi,1),%esi
345	movzbl	%al,%edi
346	shrl	$16,%eax
347	movd	%ecx,%mm1
348	movzbl	-128(%ebp,%edi,1),%ecx
349	movzbl	%ah,%edi
350	shll	$16,%ecx
351	andl	$255,%eax
352	orl	%esi,%ecx
353	punpckldq	%mm1,%mm0
354	movzbl	-128(%ebp,%edi,1),%esi
355	movzbl	%bh,%edi
356	shll	$24,%esi
357	andl	$255,%ebx
358	movzbl	-128(%ebp,%eax,1),%eax
359	orl	%esi,%ecx
360	shll	$16,%eax
361	movzbl	-128(%ebp,%edi,1),%esi
362	orl	%eax,%edx
363	shll	$8,%esi
364	movzbl	-128(%ebp,%ebx,1),%ebx
365	orl	%esi,%ecx
366	orl	%ebx,%edx
367	movl	20(%esp),%edi
368	movd	%ecx,%mm4
369	movd	%edx,%mm5
370	punpckldq	%mm5,%mm4
371	addl	$16,%edi
372	cmpl	24(%esp),%edi
373	ja	.L002out
374	movq	8(%esp),%mm2
375	pxor	%mm3,%mm3
376	pxor	%mm7,%mm7
377	movq	%mm0,%mm1
378	movq	%mm4,%mm5
379	pcmpgtb	%mm0,%mm3
380	pcmpgtb	%mm4,%mm7
381	pand	%mm2,%mm3
382	pand	%mm2,%mm7
383	pshufw	$177,%mm0,%mm2
384	pshufw	$177,%mm4,%mm6
385	paddb	%mm0,%mm0
386	paddb	%mm4,%mm4
387	pxor	%mm3,%mm0
388	pxor	%mm7,%mm4
389	pshufw	$177,%mm2,%mm3
390	pshufw	$177,%mm6,%mm7
391	pxor	%mm0,%mm1
392	pxor	%mm4,%mm5
393	pxor	%mm2,%mm0
394	pxor	%mm6,%mm4
395	movq	%mm3,%mm2
396	movq	%mm7,%mm6
397	pslld	$8,%mm3
398	pslld	$8,%mm7
399	psrld	$24,%mm2
400	psrld	$24,%mm6
401	pxor	%mm3,%mm0
402	pxor	%mm7,%mm4
403	pxor	%mm2,%mm0
404	pxor	%mm6,%mm4
405	movq	%mm1,%mm3
406	movq	%mm5,%mm7
407	movq	(%edi),%mm2
408	movq	8(%edi),%mm6
409	psrld	$8,%mm1
410	psrld	$8,%mm5
411	movl	-128(%ebp),%eax
412	pslld	$24,%mm3
413	pslld	$24,%mm7
414	movl	-64(%ebp),%ebx
415	pxor	%mm1,%mm0
416	pxor	%mm5,%mm4
417	movl	(%ebp),%ecx
418	pxor	%mm3,%mm0
419	pxor	%mm7,%mm4
420	movl	64(%ebp),%edx
421	pxor	%mm2,%mm0
422	pxor	%mm6,%mm4
423	jmp	.L001loop
424.align	16
425.L002out:
426	pxor	(%edi),%mm0
427	pxor	8(%edi),%mm4
428	ret
429.size	_sse_AES_encrypt_compact,.-_sse_AES_encrypt_compact
430.type	_x86_AES_encrypt,@function
431.align	16
432_x86_AES_encrypt:
433	movl	%edi,20(%esp)
434	xorl	(%edi),%eax
435	xorl	4(%edi),%ebx
436	xorl	8(%edi),%ecx
437	xorl	12(%edi),%edx
438	movl	240(%edi),%esi
439	leal	-2(%esi,%esi,1),%esi
440	leal	(%edi,%esi,8),%esi
441	movl	%esi,24(%esp)
442.align	16
443.L003loop:
444	movl	%eax,%esi
445	andl	$255,%esi
446	movl	(%ebp,%esi,8),%esi
447	movzbl	%bh,%edi
448	xorl	3(%ebp,%edi,8),%esi
449	movl	%ecx,%edi
450	shrl	$16,%edi
451	andl	$255,%edi
452	xorl	2(%ebp,%edi,8),%esi
453	movl	%edx,%edi
454	shrl	$24,%edi
455	xorl	1(%ebp,%edi,8),%esi
456	movl	%esi,4(%esp)
457
458	movl	%ebx,%esi
459	andl	$255,%esi
460	shrl	$16,%ebx
461	movl	(%ebp,%esi,8),%esi
462	movzbl	%ch,%edi
463	xorl	3(%ebp,%edi,8),%esi
464	movl	%edx,%edi
465	shrl	$16,%edi
466	andl	$255,%edi
467	xorl	2(%ebp,%edi,8),%esi
468	movl	%eax,%edi
469	shrl	$24,%edi
470	xorl	1(%ebp,%edi,8),%esi
471	movl	%esi,8(%esp)
472
473	movl	%ecx,%esi
474	andl	$255,%esi
475	shrl	$24,%ecx
476	movl	(%ebp,%esi,8),%esi
477	movzbl	%dh,%edi
478	xorl	3(%ebp,%edi,8),%esi
479	movl	%eax,%edi
480	shrl	$16,%edi
481	andl	$255,%edx
482	andl	$255,%edi
483	xorl	2(%ebp,%edi,8),%esi
484	movzbl	%bh,%edi
485	xorl	1(%ebp,%edi,8),%esi
486
487	movl	20(%esp),%edi
488	movl	(%ebp,%edx,8),%edx
489	movzbl	%ah,%eax
490	xorl	3(%ebp,%eax,8),%edx
491	movl	4(%esp),%eax
492	andl	$255,%ebx
493	xorl	2(%ebp,%ebx,8),%edx
494	movl	8(%esp),%ebx
495	xorl	1(%ebp,%ecx,8),%edx
496	movl	%esi,%ecx
497
498	addl	$16,%edi
499	xorl	(%edi),%eax
500	xorl	4(%edi),%ebx
501	xorl	8(%edi),%ecx
502	xorl	12(%edi),%edx
503	cmpl	24(%esp),%edi
504	movl	%edi,20(%esp)
505	jb	.L003loop
506	movl	%eax,%esi
507	andl	$255,%esi
508	movl	2(%ebp,%esi,8),%esi
509	andl	$255,%esi
510	movzbl	%bh,%edi
511	movl	(%ebp,%edi,8),%edi
512	andl	$65280,%edi
513	xorl	%edi,%esi
514	movl	%ecx,%edi
515	shrl	$16,%edi
516	andl	$255,%edi
517	movl	(%ebp,%edi,8),%edi
518	andl	$16711680,%edi
519	xorl	%edi,%esi
520	movl	%edx,%edi
521	shrl	$24,%edi
522	movl	2(%ebp,%edi,8),%edi
523	andl	$4278190080,%edi
524	xorl	%edi,%esi
525	movl	%esi,4(%esp)
526	movl	%ebx,%esi
527	andl	$255,%esi
528	shrl	$16,%ebx
529	movl	2(%ebp,%esi,8),%esi
530	andl	$255,%esi
531	movzbl	%ch,%edi
532	movl	(%ebp,%edi,8),%edi
533	andl	$65280,%edi
534	xorl	%edi,%esi
535	movl	%edx,%edi
536	shrl	$16,%edi
537	andl	$255,%edi
538	movl	(%ebp,%edi,8),%edi
539	andl	$16711680,%edi
540	xorl	%edi,%esi
541	movl	%eax,%edi
542	shrl	$24,%edi
543	movl	2(%ebp,%edi,8),%edi
544	andl	$4278190080,%edi
545	xorl	%edi,%esi
546	movl	%esi,8(%esp)
547	movl	%ecx,%esi
548	andl	$255,%esi
549	shrl	$24,%ecx
550	movl	2(%ebp,%esi,8),%esi
551	andl	$255,%esi
552	movzbl	%dh,%edi
553	movl	(%ebp,%edi,8),%edi
554	andl	$65280,%edi
555	xorl	%edi,%esi
556	movl	%eax,%edi
557	shrl	$16,%edi
558	andl	$255,%edx
559	andl	$255,%edi
560	movl	(%ebp,%edi,8),%edi
561	andl	$16711680,%edi
562	xorl	%edi,%esi
563	movzbl	%bh,%edi
564	movl	2(%ebp,%edi,8),%edi
565	andl	$4278190080,%edi
566	xorl	%edi,%esi
567	movl	20(%esp),%edi
568	andl	$255,%edx
569	movl	2(%ebp,%edx,8),%edx
570	andl	$255,%edx
571	movzbl	%ah,%eax
572	movl	(%ebp,%eax,8),%eax
573	andl	$65280,%eax
574	xorl	%eax,%edx
575	movl	4(%esp),%eax
576	andl	$255,%ebx
577	movl	(%ebp,%ebx,8),%ebx
578	andl	$16711680,%ebx
579	xorl	%ebx,%edx
580	movl	8(%esp),%ebx
581	movl	2(%ebp,%ecx,8),%ecx
582	andl	$4278190080,%ecx
583	xorl	%ecx,%edx
584	movl	%esi,%ecx
585	addl	$16,%edi
586	xorl	(%edi),%eax
587	xorl	4(%edi),%ebx
588	xorl	8(%edi),%ecx
589	xorl	12(%edi),%edx
590	ret
591.align	64
592.LAES_Te:
593.long	2774754246,2774754246
594.long	2222750968,2222750968
595.long	2574743534,2574743534
596.long	2373680118,2373680118
597.long	234025727,234025727
598.long	3177933782,3177933782
599.long	2976870366,2976870366
600.long	1422247313,1422247313
601.long	1345335392,1345335392
602.long	50397442,50397442
603.long	2842126286,2842126286
604.long	2099981142,2099981142
605.long	436141799,436141799
606.long	1658312629,1658312629
607.long	3870010189,3870010189
608.long	2591454956,2591454956
609.long	1170918031,1170918031
610.long	2642575903,2642575903
611.long	1086966153,1086966153
612.long	2273148410,2273148410
613.long	368769775,368769775
614.long	3948501426,3948501426
615.long	3376891790,3376891790
616.long	200339707,200339707
617.long	3970805057,3970805057
618.long	1742001331,1742001331
619.long	4255294047,4255294047
620.long	3937382213,3937382213
621.long	3214711843,3214711843
622.long	4154762323,4154762323
623.long	2524082916,2524082916
624.long	1539358875,1539358875
625.long	3266819957,3266819957
626.long	486407649,486407649
627.long	2928907069,2928907069
628.long	1780885068,1780885068
629.long	1513502316,1513502316
630.long	1094664062,1094664062
631.long	49805301,49805301
632.long	1338821763,1338821763
633.long	1546925160,1546925160
634.long	4104496465,4104496465
635.long	887481809,887481809
636.long	150073849,150073849
637.long	2473685474,2473685474
638.long	1943591083,1943591083
639.long	1395732834,1395732834
640.long	1058346282,1058346282
641.long	201589768,201589768
642.long	1388824469,1388824469
643.long	1696801606,1696801606
644.long	1589887901,1589887901
645.long	672667696,672667696
646.long	2711000631,2711000631
647.long	251987210,251987210
648.long	3046808111,3046808111
649.long	151455502,151455502
650.long	907153956,907153956
651.long	2608889883,2608889883
652.long	1038279391,1038279391
653.long	652995533,652995533
654.long	1764173646,1764173646
655.long	3451040383,3451040383
656.long	2675275242,2675275242
657.long	453576978,453576978
658.long	2659418909,2659418909
659.long	1949051992,1949051992
660.long	773462580,773462580
661.long	756751158,756751158
662.long	2993581788,2993581788
663.long	3998898868,3998898868
664.long	4221608027,4221608027
665.long	4132590244,4132590244
666.long	1295727478,1295727478
667.long	1641469623,1641469623
668.long	3467883389,3467883389
669.long	2066295122,2066295122
670.long	1055122397,1055122397
671.long	1898917726,1898917726
672.long	2542044179,2542044179
673.long	4115878822,4115878822
674.long	1758581177,1758581177
675.long	0,0
676.long	753790401,753790401
677.long	1612718144,1612718144
678.long	536673507,536673507
679.long	3367088505,3367088505
680.long	3982187446,3982187446
681.long	3194645204,3194645204
682.long	1187761037,1187761037
683.long	3653156455,3653156455
684.long	1262041458,1262041458
685.long	3729410708,3729410708
686.long	3561770136,3561770136
687.long	3898103984,3898103984
688.long	1255133061,1255133061
689.long	1808847035,1808847035
690.long	720367557,720367557
691.long	3853167183,3853167183
692.long	385612781,385612781
693.long	3309519750,3309519750
694.long	3612167578,3612167578
695.long	1429418854,1429418854
696.long	2491778321,2491778321
697.long	3477423498,3477423498
698.long	284817897,284817897
699.long	100794884,100794884
700.long	2172616702,2172616702
701.long	4031795360,4031795360
702.long	1144798328,1144798328
703.long	3131023141,3131023141
704.long	3819481163,3819481163
705.long	4082192802,4082192802
706.long	4272137053,4272137053
707.long	3225436288,3225436288
708.long	2324664069,2324664069
709.long	2912064063,2912064063
710.long	3164445985,3164445985
711.long	1211644016,1211644016
712.long	83228145,83228145
713.long	3753688163,3753688163
714.long	3249976951,3249976951
715.long	1977277103,1977277103
716.long	1663115586,1663115586
717.long	806359072,806359072
718.long	452984805,452984805
719.long	250868733,250868733
720.long	1842533055,1842533055
721.long	1288555905,1288555905
722.long	336333848,336333848
723.long	890442534,890442534
724.long	804056259,804056259
725.long	3781124030,3781124030
726.long	2727843637,2727843637
727.long	3427026056,3427026056
728.long	957814574,957814574
729.long	1472513171,1472513171
730.long	4071073621,4071073621
731.long	2189328124,2189328124
732.long	1195195770,1195195770
733.long	2892260552,2892260552
734.long	3881655738,3881655738
735.long	723065138,723065138
736.long	2507371494,2507371494
737.long	2690670784,2690670784
738.long	2558624025,2558624025
739.long	3511635870,3511635870
740.long	2145180835,2145180835
741.long	1713513028,1713513028
742.long	2116692564,2116692564
743.long	2878378043,2878378043
744.long	2206763019,2206763019
745.long	3393603212,3393603212
746.long	703524551,703524551
747.long	3552098411,3552098411
748.long	1007948840,1007948840
749.long	2044649127,2044649127
750.long	3797835452,3797835452
751.long	487262998,487262998
752.long	1994120109,1994120109
753.long	1004593371,1004593371
754.long	1446130276,1446130276
755.long	1312438900,1312438900
756.long	503974420,503974420
757.long	3679013266,3679013266
758.long	168166924,168166924
759.long	1814307912,1814307912
760.long	3831258296,3831258296
761.long	1573044895,1573044895
762.long	1859376061,1859376061
763.long	4021070915,4021070915
764.long	2791465668,2791465668
765.long	2828112185,2828112185
766.long	2761266481,2761266481
767.long	937747667,937747667
768.long	2339994098,2339994098
769.long	854058965,854058965
770.long	1137232011,1137232011
771.long	1496790894,1496790894
772.long	3077402074,3077402074
773.long	2358086913,2358086913
774.long	1691735473,1691735473
775.long	3528347292,3528347292
776.long	3769215305,3769215305
777.long	3027004632,3027004632
778.long	4199962284,4199962284
779.long	133494003,133494003
780.long	636152527,636152527
781.long	2942657994,2942657994
782.long	2390391540,2390391540
783.long	3920539207,3920539207
784.long	403179536,403179536
785.long	3585784431,3585784431
786.long	2289596656,2289596656
787.long	1864705354,1864705354
788.long	1915629148,1915629148
789.long	605822008,605822008
790.long	4054230615,4054230615
791.long	3350508659,3350508659
792.long	1371981463,1371981463
793.long	602466507,602466507
794.long	2094914977,2094914977
795.long	2624877800,2624877800
796.long	555687742,555687742
797.long	3712699286,3712699286
798.long	3703422305,3703422305
799.long	2257292045,2257292045
800.long	2240449039,2240449039
801.long	2423288032,2423288032
802.long	1111375484,1111375484
803.long	3300242801,3300242801
804.long	2858837708,2858837708
805.long	3628615824,3628615824
806.long	84083462,84083462
807.long	32962295,32962295
808.long	302911004,302911004
809.long	2741068226,2741068226
810.long	1597322602,1597322602
811.long	4183250862,4183250862
812.long	3501832553,3501832553
813.long	2441512471,2441512471
814.long	1489093017,1489093017
815.long	656219450,656219450
816.long	3114180135,3114180135
817.long	954327513,954327513
818.long	335083755,335083755
819.long	3013122091,3013122091
820.long	856756514,856756514
821.long	3144247762,3144247762
822.long	1893325225,1893325225
823.long	2307821063,2307821063
824.long	2811532339,2811532339
825.long	3063651117,3063651117
826.long	572399164,572399164
827.long	2458355477,2458355477
828.long	552200649,552200649
829.long	1238290055,1238290055
830.long	4283782570,4283782570
831.long	2015897680,2015897680
832.long	2061492133,2061492133
833.long	2408352771,2408352771
834.long	4171342169,4171342169
835.long	2156497161,2156497161
836.long	386731290,386731290
837.long	3669999461,3669999461
838.long	837215959,837215959
839.long	3326231172,3326231172
840.long	3093850320,3093850320
841.long	3275833730,3275833730
842.long	2962856233,2962856233
843.long	1999449434,1999449434
844.long	286199582,286199582
845.long	3417354363,3417354363
846.long	4233385128,4233385128
847.long	3602627437,3602627437
848.long	974525996,974525996
849.byte	99,124,119,123,242,107,111,197
850.byte	48,1,103,43,254,215,171,118
851.byte	202,130,201,125,250,89,71,240
852.byte	173,212,162,175,156,164,114,192
853.byte	183,253,147,38,54,63,247,204
854.byte	52,165,229,241,113,216,49,21
855.byte	4,199,35,195,24,150,5,154
856.byte	7,18,128,226,235,39,178,117
857.byte	9,131,44,26,27,110,90,160
858.byte	82,59,214,179,41,227,47,132
859.byte	83,209,0,237,32,252,177,91
860.byte	106,203,190,57,74,76,88,207
861.byte	208,239,170,251,67,77,51,133
862.byte	69,249,2,127,80,60,159,168
863.byte	81,163,64,143,146,157,56,245
864.byte	188,182,218,33,16,255,243,210
865.byte	205,12,19,236,95,151,68,23
866.byte	196,167,126,61,100,93,25,115
867.byte	96,129,79,220,34,42,144,136
868.byte	70,238,184,20,222,94,11,219
869.byte	224,50,58,10,73,6,36,92
870.byte	194,211,172,98,145,149,228,121
871.byte	231,200,55,109,141,213,78,169
872.byte	108,86,244,234,101,122,174,8
873.byte	186,120,37,46,28,166,180,198
874.byte	232,221,116,31,75,189,139,138
875.byte	112,62,181,102,72,3,246,14
876.byte	97,53,87,185,134,193,29,158
877.byte	225,248,152,17,105,217,142,148
878.byte	155,30,135,233,206,85,40,223
879.byte	140,161,137,13,191,230,66,104
880.byte	65,153,45,15,176,84,187,22
881.byte	99,124,119,123,242,107,111,197
882.byte	48,1,103,43,254,215,171,118
883.byte	202,130,201,125,250,89,71,240
884.byte	173,212,162,175,156,164,114,192
885.byte	183,253,147,38,54,63,247,204
886.byte	52,165,229,241,113,216,49,21
887.byte	4,199,35,195,24,150,5,154
888.byte	7,18,128,226,235,39,178,117
889.byte	9,131,44,26,27,110,90,160
890.byte	82,59,214,179,41,227,47,132
891.byte	83,209,0,237,32,252,177,91
892.byte	106,203,190,57,74,76,88,207
893.byte	208,239,170,251,67,77,51,133
894.byte	69,249,2,127,80,60,159,168
895.byte	81,163,64,143,146,157,56,245
896.byte	188,182,218,33,16,255,243,210
897.byte	205,12,19,236,95,151,68,23
898.byte	196,167,126,61,100,93,25,115
899.byte	96,129,79,220,34,42,144,136
900.byte	70,238,184,20,222,94,11,219
901.byte	224,50,58,10,73,6,36,92
902.byte	194,211,172,98,145,149,228,121
903.byte	231,200,55,109,141,213,78,169
904.byte	108,86,244,234,101,122,174,8
905.byte	186,120,37,46,28,166,180,198
906.byte	232,221,116,31,75,189,139,138
907.byte	112,62,181,102,72,3,246,14
908.byte	97,53,87,185,134,193,29,158
909.byte	225,248,152,17,105,217,142,148
910.byte	155,30,135,233,206,85,40,223
911.byte	140,161,137,13,191,230,66,104
912.byte	65,153,45,15,176,84,187,22
913.byte	99,124,119,123,242,107,111,197
914.byte	48,1,103,43,254,215,171,118
915.byte	202,130,201,125,250,89,71,240
916.byte	173,212,162,175,156,164,114,192
917.byte	183,253,147,38,54,63,247,204
918.byte	52,165,229,241,113,216,49,21
919.byte	4,199,35,195,24,150,5,154
920.byte	7,18,128,226,235,39,178,117
921.byte	9,131,44,26,27,110,90,160
922.byte	82,59,214,179,41,227,47,132
923.byte	83,209,0,237,32,252,177,91
924.byte	106,203,190,57,74,76,88,207
925.byte	208,239,170,251,67,77,51,133
926.byte	69,249,2,127,80,60,159,168
927.byte	81,163,64,143,146,157,56,245
928.byte	188,182,218,33,16,255,243,210
929.byte	205,12,19,236,95,151,68,23
930.byte	196,167,126,61,100,93,25,115
931.byte	96,129,79,220,34,42,144,136
932.byte	70,238,184,20,222,94,11,219
933.byte	224,50,58,10,73,6,36,92
934.byte	194,211,172,98,145,149,228,121
935.byte	231,200,55,109,141,213,78,169
936.byte	108,86,244,234,101,122,174,8
937.byte	186,120,37,46,28,166,180,198
938.byte	232,221,116,31,75,189,139,138
939.byte	112,62,181,102,72,3,246,14
940.byte	97,53,87,185,134,193,29,158
941.byte	225,248,152,17,105,217,142,148
942.byte	155,30,135,233,206,85,40,223
943.byte	140,161,137,13,191,230,66,104
944.byte	65,153,45,15,176,84,187,22
945.byte	99,124,119,123,242,107,111,197
946.byte	48,1,103,43,254,215,171,118
947.byte	202,130,201,125,250,89,71,240
948.byte	173,212,162,175,156,164,114,192
949.byte	183,253,147,38,54,63,247,204
950.byte	52,165,229,241,113,216,49,21
951.byte	4,199,35,195,24,150,5,154
952.byte	7,18,128,226,235,39,178,117
953.byte	9,131,44,26,27,110,90,160
954.byte	82,59,214,179,41,227,47,132
955.byte	83,209,0,237,32,252,177,91
956.byte	106,203,190,57,74,76,88,207
957.byte	208,239,170,251,67,77,51,133
958.byte	69,249,2,127,80,60,159,168
959.byte	81,163,64,143,146,157,56,245
960.byte	188,182,218,33,16,255,243,210
961.byte	205,12,19,236,95,151,68,23
962.byte	196,167,126,61,100,93,25,115
963.byte	96,129,79,220,34,42,144,136
964.byte	70,238,184,20,222,94,11,219
965.byte	224,50,58,10,73,6,36,92
966.byte	194,211,172,98,145,149,228,121
967.byte	231,200,55,109,141,213,78,169
968.byte	108,86,244,234,101,122,174,8
969.byte	186,120,37,46,28,166,180,198
970.byte	232,221,116,31,75,189,139,138
971.byte	112,62,181,102,72,3,246,14
972.byte	97,53,87,185,134,193,29,158
973.byte	225,248,152,17,105,217,142,148
974.byte	155,30,135,233,206,85,40,223
975.byte	140,161,137,13,191,230,66,104
976.byte	65,153,45,15,176,84,187,22
977.long	1,2,4,8
978.long	16,32,64,128
979.long	27,54,0,0
980.long	0,0,0,0
981.size	_x86_AES_encrypt,.-_x86_AES_encrypt
982.globl	AES_encrypt
983.type	AES_encrypt,@function
984.align	16
985AES_encrypt:
986.L_AES_encrypt_begin:
987	pushl	%ebp
988	pushl	%ebx
989	pushl	%esi
990	pushl	%edi
991	movl	20(%esp),%esi
992	movl	28(%esp),%edi
993	movl	%esp,%eax
994	subl	$36,%esp
995	andl	$-64,%esp
996	leal	-127(%edi),%ebx
997	subl	%esp,%ebx
998	negl	%ebx
999	andl	$960,%ebx
1000	subl	%ebx,%esp
1001	addl	$4,%esp
1002	movl	%eax,28(%esp)
1003	call	.L004pic_point
1004.L004pic_point:
1005	popl	%ebp
1006	leal	OPENSSL_ia32cap_P-.L004pic_point(%ebp),%eax
1007	leal	.LAES_Te-.L004pic_point(%ebp),%ebp
1008	leal	764(%esp),%ebx
1009	subl	%ebp,%ebx
1010	andl	$768,%ebx
1011	leal	2176(%ebp,%ebx,1),%ebp
1012	btl	$25,(%eax)
1013	jnc	.L005x86
1014	movq	(%esi),%mm0
1015	movq	8(%esi),%mm4
1016	call	_sse_AES_encrypt_compact
1017	movl	28(%esp),%esp
1018	movl	24(%esp),%esi
1019	movq	%mm0,(%esi)
1020	movq	%mm4,8(%esi)
1021	emms
1022	popl	%edi
1023	popl	%esi
1024	popl	%ebx
1025	popl	%ebp
1026	ret
1027.align	16
1028.L005x86:
1029	movl	%ebp,24(%esp)
1030	movl	(%esi),%eax
1031	movl	4(%esi),%ebx
1032	movl	8(%esi),%ecx
1033	movl	12(%esi),%edx
1034	call	_x86_AES_encrypt_compact
1035	movl	28(%esp),%esp
1036	movl	24(%esp),%esi
1037	movl	%eax,(%esi)
1038	movl	%ebx,4(%esi)
1039	movl	%ecx,8(%esi)
1040	movl	%edx,12(%esi)
1041	popl	%edi
1042	popl	%esi
1043	popl	%ebx
1044	popl	%ebp
1045	ret
1046.size	AES_encrypt,.-.L_AES_encrypt_begin
1047.type	_x86_AES_decrypt_compact,@function
1048.align	16
1049_x86_AES_decrypt_compact:
1050	movl	%edi,20(%esp)
1051	xorl	(%edi),%eax
1052	xorl	4(%edi),%ebx
1053	xorl	8(%edi),%ecx
1054	xorl	12(%edi),%edx
1055	movl	240(%edi),%esi
1056	leal	-2(%esi,%esi,1),%esi
1057	leal	(%edi,%esi,8),%esi
1058	movl	%esi,24(%esp)
1059	movl	-128(%ebp),%edi
1060	movl	-96(%ebp),%esi
1061	movl	-64(%ebp),%edi
1062	movl	-32(%ebp),%esi
1063	movl	(%ebp),%edi
1064	movl	32(%ebp),%esi
1065	movl	64(%ebp),%edi
1066	movl	96(%ebp),%esi
1067.align	16
1068.L006loop:
1069	movl	%eax,%esi
1070	andl	$255,%esi
1071	movzbl	-128(%ebp,%esi,1),%esi
1072	movzbl	%dh,%edi
1073	movzbl	-128(%ebp,%edi,1),%edi
1074	shll	$8,%edi
1075	xorl	%edi,%esi
1076	movl	%ecx,%edi
1077	shrl	$16,%edi
1078	andl	$255,%edi
1079	movzbl	-128(%ebp,%edi,1),%edi
1080	shll	$16,%edi
1081	xorl	%edi,%esi
1082	movl	%ebx,%edi
1083	shrl	$24,%edi
1084	movzbl	-128(%ebp,%edi,1),%edi
1085	shll	$24,%edi
1086	xorl	%edi,%esi
1087	movl	%esi,4(%esp)
1088	movl	%ebx,%esi
1089	andl	$255,%esi
1090	movzbl	-128(%ebp,%esi,1),%esi
1091	movzbl	%ah,%edi
1092	movzbl	-128(%ebp,%edi,1),%edi
1093	shll	$8,%edi
1094	xorl	%edi,%esi
1095	movl	%edx,%edi
1096	shrl	$16,%edi
1097	andl	$255,%edi
1098	movzbl	-128(%ebp,%edi,1),%edi
1099	shll	$16,%edi
1100	xorl	%edi,%esi
1101	movl	%ecx,%edi
1102	shrl	$24,%edi
1103	movzbl	-128(%ebp,%edi,1),%edi
1104	shll	$24,%edi
1105	xorl	%edi,%esi
1106	movl	%esi,8(%esp)
1107	movl	%ecx,%esi
1108	andl	$255,%esi
1109	movzbl	-128(%ebp,%esi,1),%esi
1110	movzbl	%bh,%edi
1111	movzbl	-128(%ebp,%edi,1),%edi
1112	shll	$8,%edi
1113	xorl	%edi,%esi
1114	movl	%eax,%edi
1115	shrl	$16,%edi
1116	andl	$255,%edi
1117	movzbl	-128(%ebp,%edi,1),%edi
1118	shll	$16,%edi
1119	xorl	%edi,%esi
1120	movl	%edx,%edi
1121	shrl	$24,%edi
1122	movzbl	-128(%ebp,%edi,1),%edi
1123	shll	$24,%edi
1124	xorl	%edi,%esi
1125	andl	$255,%edx
1126	movzbl	-128(%ebp,%edx,1),%edx
1127	movzbl	%ch,%ecx
1128	movzbl	-128(%ebp,%ecx,1),%ecx
1129	shll	$8,%ecx
1130	xorl	%ecx,%edx
1131	movl	%esi,%ecx
1132	shrl	$16,%ebx
1133	andl	$255,%ebx
1134	movzbl	-128(%ebp,%ebx,1),%ebx
1135	shll	$16,%ebx
1136	xorl	%ebx,%edx
1137	shrl	$24,%eax
1138	movzbl	-128(%ebp,%eax,1),%eax
1139	shll	$24,%eax
1140	xorl	%eax,%edx
1141	movl	$2155905152,%edi
1142	andl	%ecx,%edi
1143	movl	%edi,%esi
1144	shrl	$7,%edi
1145	leal	(%ecx,%ecx,1),%eax
1146	subl	%edi,%esi
1147	andl	$4278124286,%eax
1148	andl	$454761243,%esi
1149	xorl	%esi,%eax
1150	movl	$2155905152,%edi
1151	andl	%eax,%edi
1152	movl	%edi,%esi
1153	shrl	$7,%edi
1154	leal	(%eax,%eax,1),%ebx
1155	subl	%edi,%esi
1156	andl	$4278124286,%ebx
1157	andl	$454761243,%esi
1158	xorl	%ecx,%eax
1159	xorl	%esi,%ebx
1160	movl	$2155905152,%edi
1161	andl	%ebx,%edi
1162	movl	%edi,%esi
1163	shrl	$7,%edi
1164	leal	(%ebx,%ebx,1),%ebp
1165	subl	%edi,%esi
1166	andl	$4278124286,%ebp
1167	andl	$454761243,%esi
1168	xorl	%ecx,%ebx
1169	roll	$8,%ecx
1170	xorl	%esi,%ebp
1171	xorl	%eax,%ecx
1172	xorl	%ebp,%eax
1173	xorl	%ebx,%ecx
1174	xorl	%ebp,%ebx
1175	roll	$24,%eax
1176	xorl	%ebp,%ecx
1177	roll	$16,%ebx
1178	xorl	%eax,%ecx
1179	roll	$8,%ebp
1180	xorl	%ebx,%ecx
1181	movl	4(%esp),%eax
1182	xorl	%ebp,%ecx
1183	movl	%ecx,12(%esp)
1184	movl	$2155905152,%edi
1185	andl	%edx,%edi
1186	movl	%edi,%esi
1187	shrl	$7,%edi
1188	leal	(%edx,%edx,1),%ebx
1189	subl	%edi,%esi
1190	andl	$4278124286,%ebx
1191	andl	$454761243,%esi
1192	xorl	%esi,%ebx
1193	movl	$2155905152,%edi
1194	andl	%ebx,%edi
1195	movl	%edi,%esi
1196	shrl	$7,%edi
1197	leal	(%ebx,%ebx,1),%ecx
1198	subl	%edi,%esi
1199	andl	$4278124286,%ecx
1200	andl	$454761243,%esi
1201	xorl	%edx,%ebx
1202	xorl	%esi,%ecx
1203	movl	$2155905152,%edi
1204	andl	%ecx,%edi
1205	movl	%edi,%esi
1206	shrl	$7,%edi
1207	leal	(%ecx,%ecx,1),%ebp
1208	subl	%edi,%esi
1209	andl	$4278124286,%ebp
1210	andl	$454761243,%esi
1211	xorl	%edx,%ecx
1212	roll	$8,%edx
1213	xorl	%esi,%ebp
1214	xorl	%ebx,%edx
1215	xorl	%ebp,%ebx
1216	xorl	%ecx,%edx
1217	xorl	%ebp,%ecx
1218	roll	$24,%ebx
1219	xorl	%ebp,%edx
1220	roll	$16,%ecx
1221	xorl	%ebx,%edx
1222	roll	$8,%ebp
1223	xorl	%ecx,%edx
1224	movl	8(%esp),%ebx
1225	xorl	%ebp,%edx
1226	movl	%edx,16(%esp)
1227	movl	$2155905152,%edi
1228	andl	%eax,%edi
1229	movl	%edi,%esi
1230	shrl	$7,%edi
1231	leal	(%eax,%eax,1),%ecx
1232	subl	%edi,%esi
1233	andl	$4278124286,%ecx
1234	andl	$454761243,%esi
1235	xorl	%esi,%ecx
1236	movl	$2155905152,%edi
1237	andl	%ecx,%edi
1238	movl	%edi,%esi
1239	shrl	$7,%edi
1240	leal	(%ecx,%ecx,1),%edx
1241	subl	%edi,%esi
1242	andl	$4278124286,%edx
1243	andl	$454761243,%esi
1244	xorl	%eax,%ecx
1245	xorl	%esi,%edx
1246	movl	$2155905152,%edi
1247	andl	%edx,%edi
1248	movl	%edi,%esi
1249	shrl	$7,%edi
1250	leal	(%edx,%edx,1),%ebp
1251	subl	%edi,%esi
1252	andl	$4278124286,%ebp
1253	andl	$454761243,%esi
1254	xorl	%eax,%edx
1255	roll	$8,%eax
1256	xorl	%esi,%ebp
1257	xorl	%ecx,%eax
1258	xorl	%ebp,%ecx
1259	xorl	%edx,%eax
1260	xorl	%ebp,%edx
1261	roll	$24,%ecx
1262	xorl	%ebp,%eax
1263	roll	$16,%edx
1264	xorl	%ecx,%eax
1265	roll	$8,%ebp
1266	xorl	%edx,%eax
1267	xorl	%ebp,%eax
1268	movl	$2155905152,%edi
1269	andl	%ebx,%edi
1270	movl	%edi,%esi
1271	shrl	$7,%edi
1272	leal	(%ebx,%ebx,1),%ecx
1273	subl	%edi,%esi
1274	andl	$4278124286,%ecx
1275	andl	$454761243,%esi
1276	xorl	%esi,%ecx
1277	movl	$2155905152,%edi
1278	andl	%ecx,%edi
1279	movl	%edi,%esi
1280	shrl	$7,%edi
1281	leal	(%ecx,%ecx,1),%edx
1282	subl	%edi,%esi
1283	andl	$4278124286,%edx
1284	andl	$454761243,%esi
1285	xorl	%ebx,%ecx
1286	xorl	%esi,%edx
1287	movl	$2155905152,%edi
1288	andl	%edx,%edi
1289	movl	%edi,%esi
1290	shrl	$7,%edi
1291	leal	(%edx,%edx,1),%ebp
1292	subl	%edi,%esi
1293	andl	$4278124286,%ebp
1294	andl	$454761243,%esi
1295	xorl	%ebx,%edx
1296	roll	$8,%ebx
1297	xorl	%esi,%ebp
1298	xorl	%ecx,%ebx
1299	xorl	%ebp,%ecx
1300	xorl	%edx,%ebx
1301	xorl	%ebp,%edx
1302	roll	$24,%ecx
1303	xorl	%ebp,%ebx
1304	roll	$16,%edx
1305	xorl	%ecx,%ebx
1306	roll	$8,%ebp
1307	xorl	%edx,%ebx
1308	movl	12(%esp),%ecx
1309	xorl	%ebp,%ebx
1310	movl	16(%esp),%edx
1311	movl	20(%esp),%edi
1312	movl	28(%esp),%ebp
1313	addl	$16,%edi
1314	xorl	(%edi),%eax
1315	xorl	4(%edi),%ebx
1316	xorl	8(%edi),%ecx
1317	xorl	12(%edi),%edx
1318	cmpl	24(%esp),%edi
1319	movl	%edi,20(%esp)
1320	jb	.L006loop
1321	movl	%eax,%esi
1322	andl	$255,%esi
1323	movzbl	-128(%ebp,%esi,1),%esi
1324	movzbl	%dh,%edi
1325	movzbl	-128(%ebp,%edi,1),%edi
1326	shll	$8,%edi
1327	xorl	%edi,%esi
1328	movl	%ecx,%edi
1329	shrl	$16,%edi
1330	andl	$255,%edi
1331	movzbl	-128(%ebp,%edi,1),%edi
1332	shll	$16,%edi
1333	xorl	%edi,%esi
1334	movl	%ebx,%edi
1335	shrl	$24,%edi
1336	movzbl	-128(%ebp,%edi,1),%edi
1337	shll	$24,%edi
1338	xorl	%edi,%esi
1339	movl	%esi,4(%esp)
1340	movl	%ebx,%esi
1341	andl	$255,%esi
1342	movzbl	-128(%ebp,%esi,1),%esi
1343	movzbl	%ah,%edi
1344	movzbl	-128(%ebp,%edi,1),%edi
1345	shll	$8,%edi
1346	xorl	%edi,%esi
1347	movl	%edx,%edi
1348	shrl	$16,%edi
1349	andl	$255,%edi
1350	movzbl	-128(%ebp,%edi,1),%edi
1351	shll	$16,%edi
1352	xorl	%edi,%esi
1353	movl	%ecx,%edi
1354	shrl	$24,%edi
1355	movzbl	-128(%ebp,%edi,1),%edi
1356	shll	$24,%edi
1357	xorl	%edi,%esi
1358	movl	%esi,8(%esp)
1359	movl	%ecx,%esi
1360	andl	$255,%esi
1361	movzbl	-128(%ebp,%esi,1),%esi
1362	movzbl	%bh,%edi
1363	movzbl	-128(%ebp,%edi,1),%edi
1364	shll	$8,%edi
1365	xorl	%edi,%esi
1366	movl	%eax,%edi
1367	shrl	$16,%edi
1368	andl	$255,%edi
1369	movzbl	-128(%ebp,%edi,1),%edi
1370	shll	$16,%edi
1371	xorl	%edi,%esi
1372	movl	%edx,%edi
1373	shrl	$24,%edi
1374	movzbl	-128(%ebp,%edi,1),%edi
1375	shll	$24,%edi
1376	xorl	%edi,%esi
1377	movl	20(%esp),%edi
1378	andl	$255,%edx
1379	movzbl	-128(%ebp,%edx,1),%edx
1380	movzbl	%ch,%ecx
1381	movzbl	-128(%ebp,%ecx,1),%ecx
1382	shll	$8,%ecx
1383	xorl	%ecx,%edx
1384	movl	%esi,%ecx
1385	shrl	$16,%ebx
1386	andl	$255,%ebx
1387	movzbl	-128(%ebp,%ebx,1),%ebx
1388	shll	$16,%ebx
1389	xorl	%ebx,%edx
1390	movl	8(%esp),%ebx
1391	shrl	$24,%eax
1392	movzbl	-128(%ebp,%eax,1),%eax
1393	shll	$24,%eax
1394	xorl	%eax,%edx
1395	movl	4(%esp),%eax
1396	xorl	16(%edi),%eax
1397	xorl	20(%edi),%ebx
1398	xorl	24(%edi),%ecx
1399	xorl	28(%edi),%edx
1400	ret
1401.size	_x86_AES_decrypt_compact,.-_x86_AES_decrypt_compact
1402.type	_sse_AES_decrypt_compact,@function
1403.align	16
1404_sse_AES_decrypt_compact:
1405	pxor	(%edi),%mm0
1406	pxor	8(%edi),%mm4
1407	movl	240(%edi),%esi
1408	leal	-2(%esi,%esi,1),%esi
1409	leal	(%edi,%esi,8),%esi
1410	movl	%esi,24(%esp)
1411	movl	$454761243,%eax
1412	movl	%eax,8(%esp)
1413	movl	%eax,12(%esp)
1414	movl	-128(%ebp),%eax
1415	movl	-96(%ebp),%ebx
1416	movl	-64(%ebp),%ecx
1417	movl	-32(%ebp),%edx
1418	movl	(%ebp),%eax
1419	movl	32(%ebp),%ebx
1420	movl	64(%ebp),%ecx
1421	movl	96(%ebp),%edx
1422.align	16
1423.L007loop:
1424	pshufw	$12,%mm0,%mm1
1425	pshufw	$9,%mm4,%mm5
1426	movd	%mm1,%eax
1427	movd	%mm5,%ebx
1428	movl	%edi,20(%esp)
1429	movzbl	%al,%esi
1430	movzbl	%ah,%edx
1431	pshufw	$6,%mm0,%mm2
1432	movzbl	-128(%ebp,%esi,1),%ecx
1433	movzbl	%bl,%edi
1434	movzbl	-128(%ebp,%edx,1),%edx
1435	shrl	$16,%eax
1436	shll	$8,%edx
1437	movzbl	-128(%ebp,%edi,1),%esi
1438	movzbl	%bh,%edi
1439	shll	$16,%esi
1440	pshufw	$3,%mm4,%mm6
1441	orl	%esi,%ecx
1442	movzbl	-128(%ebp,%edi,1),%esi
1443	movzbl	%ah,%edi
1444	shll	$24,%esi
1445	shrl	$16,%ebx
1446	orl	%esi,%edx
1447	movzbl	-128(%ebp,%edi,1),%esi
1448	movzbl	%bh,%edi
1449	shll	$24,%esi
1450	orl	%esi,%ecx
1451	movzbl	-128(%ebp,%edi,1),%esi
1452	movzbl	%al,%edi
1453	shll	$8,%esi
1454	movd	%mm2,%eax
1455	orl	%esi,%ecx
1456	movzbl	-128(%ebp,%edi,1),%esi
1457	movzbl	%bl,%edi
1458	shll	$16,%esi
1459	movd	%mm6,%ebx
1460	movd	%ecx,%mm0
1461	movzbl	-128(%ebp,%edi,1),%ecx
1462	movzbl	%al,%edi
1463	orl	%esi,%ecx
1464	movzbl	-128(%ebp,%edi,1),%esi
1465	movzbl	%bl,%edi
1466	orl	%esi,%edx
1467	movzbl	-128(%ebp,%edi,1),%esi
1468	movzbl	%ah,%edi
1469	shll	$16,%esi
1470	shrl	$16,%eax
1471	orl	%esi,%edx
1472	movzbl	-128(%ebp,%edi,1),%esi
1473	movzbl	%bh,%edi
1474	shrl	$16,%ebx
1475	shll	$8,%esi
1476	movd	%edx,%mm1
1477	movzbl	-128(%ebp,%edi,1),%edx
1478	movzbl	%bh,%edi
1479	shll	$24,%edx
1480	andl	$255,%ebx
1481	orl	%esi,%edx
1482	punpckldq	%mm1,%mm0
1483	movzbl	-128(%ebp,%edi,1),%esi
1484	movzbl	%al,%edi
1485	shll	$8,%esi
1486	movzbl	%ah,%eax
1487	movzbl	-128(%ebp,%ebx,1),%ebx
1488	orl	%esi,%ecx
1489	movzbl	-128(%ebp,%edi,1),%esi
1490	orl	%ebx,%edx
1491	shll	$16,%esi
1492	movzbl	-128(%ebp,%eax,1),%eax
1493	orl	%esi,%edx
1494	shll	$24,%eax
1495	orl	%eax,%ecx
1496	movl	20(%esp),%edi
1497	movd	%edx,%mm4
1498	movd	%ecx,%mm5
1499	punpckldq	%mm5,%mm4
1500	addl	$16,%edi
1501	cmpl	24(%esp),%edi
1502	ja	.L008out
1503	movq	%mm0,%mm3
1504	movq	%mm4,%mm7
1505	pshufw	$228,%mm0,%mm2
1506	pshufw	$228,%mm4,%mm6
1507	movq	%mm0,%mm1
1508	movq	%mm4,%mm5
1509	pshufw	$177,%mm0,%mm0
1510	pshufw	$177,%mm4,%mm4
1511	pslld	$8,%mm2
1512	pslld	$8,%mm6
1513	psrld	$8,%mm3
1514	psrld	$8,%mm7
1515	pxor	%mm2,%mm0
1516	pxor	%mm6,%mm4
1517	pxor	%mm3,%mm0
1518	pxor	%mm7,%mm4
1519	pslld	$16,%mm2
1520	pslld	$16,%mm6
1521	psrld	$16,%mm3
1522	psrld	$16,%mm7
1523	pxor	%mm2,%mm0
1524	pxor	%mm6,%mm4
1525	pxor	%mm3,%mm0
1526	pxor	%mm7,%mm4
1527	movq	8(%esp),%mm3
1528	pxor	%mm2,%mm2
1529	pxor	%mm6,%mm6
1530	pcmpgtb	%mm1,%mm2
1531	pcmpgtb	%mm5,%mm6
1532	pand	%mm3,%mm2
1533	pand	%mm3,%mm6
1534	paddb	%mm1,%mm1
1535	paddb	%mm5,%mm5
1536	pxor	%mm2,%mm1
1537	pxor	%mm6,%mm5
1538	movq	%mm1,%mm3
1539	movq	%mm5,%mm7
1540	movq	%mm1,%mm2
1541	movq	%mm5,%mm6
1542	pxor	%mm1,%mm0
1543	pxor	%mm5,%mm4
1544	pslld	$24,%mm3
1545	pslld	$24,%mm7
1546	psrld	$8,%mm2
1547	psrld	$8,%mm6
1548	pxor	%mm3,%mm0
1549	pxor	%mm7,%mm4
1550	pxor	%mm2,%mm0
1551	pxor	%mm6,%mm4
1552	movq	8(%esp),%mm2
1553	pxor	%mm3,%mm3
1554	pxor	%mm7,%mm7
1555	pcmpgtb	%mm1,%mm3
1556	pcmpgtb	%mm5,%mm7
1557	pand	%mm2,%mm3
1558	pand	%mm2,%mm7
1559	paddb	%mm1,%mm1
1560	paddb	%mm5,%mm5
1561	pxor	%mm3,%mm1
1562	pxor	%mm7,%mm5
1563	pshufw	$177,%mm1,%mm3
1564	pshufw	$177,%mm5,%mm7
1565	pxor	%mm1,%mm0
1566	pxor	%mm5,%mm4
1567	pxor	%mm3,%mm0
1568	pxor	%mm7,%mm4
1569	pxor	%mm3,%mm3
1570	pxor	%mm7,%mm7
1571	pcmpgtb	%mm1,%mm3
1572	pcmpgtb	%mm5,%mm7
1573	pand	%mm2,%mm3
1574	pand	%mm2,%mm7
1575	paddb	%mm1,%mm1
1576	paddb	%mm5,%mm5
1577	pxor	%mm3,%mm1
1578	pxor	%mm7,%mm5
1579	pxor	%mm1,%mm0
1580	pxor	%mm5,%mm4
1581	movq	%mm1,%mm3
1582	movq	%mm5,%mm7
1583	pshufw	$177,%mm1,%mm2
1584	pshufw	$177,%mm5,%mm6
1585	pxor	%mm2,%mm0
1586	pxor	%mm6,%mm4
1587	pslld	$8,%mm1
1588	pslld	$8,%mm5
1589	psrld	$8,%mm3
1590	psrld	$8,%mm7
1591	movq	(%edi),%mm2
1592	movq	8(%edi),%mm6
1593	pxor	%mm1,%mm0
1594	pxor	%mm5,%mm4
1595	pxor	%mm3,%mm0
1596	pxor	%mm7,%mm4
1597	movl	-128(%ebp),%eax
1598	pslld	$16,%mm1
1599	pslld	$16,%mm5
1600	movl	-64(%ebp),%ebx
1601	psrld	$16,%mm3
1602	psrld	$16,%mm7
1603	movl	(%ebp),%ecx
1604	pxor	%mm1,%mm0
1605	pxor	%mm5,%mm4
1606	movl	64(%ebp),%edx
1607	pxor	%mm3,%mm0
1608	pxor	%mm7,%mm4
1609	pxor	%mm2,%mm0
1610	pxor	%mm6,%mm4
1611	jmp	.L007loop
1612.align	16
1613.L008out:
1614	pxor	(%edi),%mm0
1615	pxor	8(%edi),%mm4
1616	ret
1617.size	_sse_AES_decrypt_compact,.-_sse_AES_decrypt_compact
1618.type	_x86_AES_decrypt,@function
1619.align	16
1620_x86_AES_decrypt:
1621	movl	%edi,20(%esp)
1622	xorl	(%edi),%eax
1623	xorl	4(%edi),%ebx
1624	xorl	8(%edi),%ecx
1625	xorl	12(%edi),%edx
1626	movl	240(%edi),%esi
1627	leal	-2(%esi,%esi,1),%esi
1628	leal	(%edi,%esi,8),%esi
1629	movl	%esi,24(%esp)
1630.align	16
1631.L009loop:
1632	movl	%eax,%esi
1633	andl	$255,%esi
1634	movl	(%ebp,%esi,8),%esi
1635	movzbl	%dh,%edi
1636	xorl	3(%ebp,%edi,8),%esi
1637	movl	%ecx,%edi
1638	shrl	$16,%edi
1639	andl	$255,%edi
1640	xorl	2(%ebp,%edi,8),%esi
1641	movl	%ebx,%edi
1642	shrl	$24,%edi
1643	xorl	1(%ebp,%edi,8),%esi
1644	movl	%esi,4(%esp)
1645
1646	movl	%ebx,%esi
1647	andl	$255,%esi
1648	movl	(%ebp,%esi,8),%esi
1649	movzbl	%ah,%edi
1650	xorl	3(%ebp,%edi,8),%esi
1651	movl	%edx,%edi
1652	shrl	$16,%edi
1653	andl	$255,%edi
1654	xorl	2(%ebp,%edi,8),%esi
1655	movl	%ecx,%edi
1656	shrl	$24,%edi
1657	xorl	1(%ebp,%edi,8),%esi
1658	movl	%esi,8(%esp)
1659
1660	movl	%ecx,%esi
1661	andl	$255,%esi
1662	movl	(%ebp,%esi,8),%esi
1663	movzbl	%bh,%edi
1664	xorl	3(%ebp,%edi,8),%esi
1665	movl	%eax,%edi
1666	shrl	$16,%edi
1667	andl	$255,%edi
1668	xorl	2(%ebp,%edi,8),%esi
1669	movl	%edx,%edi
1670	shrl	$24,%edi
1671	xorl	1(%ebp,%edi,8),%esi
1672
1673	movl	20(%esp),%edi
1674	andl	$255,%edx
1675	movl	(%ebp,%edx,8),%edx
1676	movzbl	%ch,%ecx
1677	xorl	3(%ebp,%ecx,8),%edx
1678	movl	%esi,%ecx
1679	shrl	$16,%ebx
1680	andl	$255,%ebx
1681	xorl	2(%ebp,%ebx,8),%edx
1682	movl	8(%esp),%ebx
1683	shrl	$24,%eax
1684	xorl	1(%ebp,%eax,8),%edx
1685	movl	4(%esp),%eax
1686
1687	addl	$16,%edi
1688	xorl	(%edi),%eax
1689	xorl	4(%edi),%ebx
1690	xorl	8(%edi),%ecx
1691	xorl	12(%edi),%edx
1692	cmpl	24(%esp),%edi
1693	movl	%edi,20(%esp)
1694	jb	.L009loop
1695	leal	2176(%ebp),%ebp
1696	movl	-128(%ebp),%edi
1697	movl	-96(%ebp),%esi
1698	movl	-64(%ebp),%edi
1699	movl	-32(%ebp),%esi
1700	movl	(%ebp),%edi
1701	movl	32(%ebp),%esi
1702	movl	64(%ebp),%edi
1703	movl	96(%ebp),%esi
1704	leal	-128(%ebp),%ebp
1705	movl	%eax,%esi
1706	andl	$255,%esi
1707	movzbl	(%ebp,%esi,1),%esi
1708	movzbl	%dh,%edi
1709	movzbl	(%ebp,%edi,1),%edi
1710	shll	$8,%edi
1711	xorl	%edi,%esi
1712	movl	%ecx,%edi
1713	shrl	$16,%edi
1714	andl	$255,%edi
1715	movzbl	(%ebp,%edi,1),%edi
1716	shll	$16,%edi
1717	xorl	%edi,%esi
1718	movl	%ebx,%edi
1719	shrl	$24,%edi
1720	movzbl	(%ebp,%edi,1),%edi
1721	shll	$24,%edi
1722	xorl	%edi,%esi
1723	movl	%esi,4(%esp)
1724	movl	%ebx,%esi
1725	andl	$255,%esi
1726	movzbl	(%ebp,%esi,1),%esi
1727	movzbl	%ah,%edi
1728	movzbl	(%ebp,%edi,1),%edi
1729	shll	$8,%edi
1730	xorl	%edi,%esi
1731	movl	%edx,%edi
1732	shrl	$16,%edi
1733	andl	$255,%edi
1734	movzbl	(%ebp,%edi,1),%edi
1735	shll	$16,%edi
1736	xorl	%edi,%esi
1737	movl	%ecx,%edi
1738	shrl	$24,%edi
1739	movzbl	(%ebp,%edi,1),%edi
1740	shll	$24,%edi
1741	xorl	%edi,%esi
1742	movl	%esi,8(%esp)
1743	movl	%ecx,%esi
1744	andl	$255,%esi
1745	movzbl	(%ebp,%esi,1),%esi
1746	movzbl	%bh,%edi
1747	movzbl	(%ebp,%edi,1),%edi
1748	shll	$8,%edi
1749	xorl	%edi,%esi
1750	movl	%eax,%edi
1751	shrl	$16,%edi
1752	andl	$255,%edi
1753	movzbl	(%ebp,%edi,1),%edi
1754	shll	$16,%edi
1755	xorl	%edi,%esi
1756	movl	%edx,%edi
1757	shrl	$24,%edi
1758	movzbl	(%ebp,%edi,1),%edi
1759	shll	$24,%edi
1760	xorl	%edi,%esi
1761	movl	20(%esp),%edi
1762	andl	$255,%edx
1763	movzbl	(%ebp,%edx,1),%edx
1764	movzbl	%ch,%ecx
1765	movzbl	(%ebp,%ecx,1),%ecx
1766	shll	$8,%ecx
1767	xorl	%ecx,%edx
1768	movl	%esi,%ecx
1769	shrl	$16,%ebx
1770	andl	$255,%ebx
1771	movzbl	(%ebp,%ebx,1),%ebx
1772	shll	$16,%ebx
1773	xorl	%ebx,%edx
1774	movl	8(%esp),%ebx
1775	shrl	$24,%eax
1776	movzbl	(%ebp,%eax,1),%eax
1777	shll	$24,%eax
1778	xorl	%eax,%edx
1779	movl	4(%esp),%eax
1780	leal	-2048(%ebp),%ebp
1781	addl	$16,%edi
1782	xorl	(%edi),%eax
1783	xorl	4(%edi),%ebx
1784	xorl	8(%edi),%ecx
1785	xorl	12(%edi),%edx
1786	ret
1787.align	64
1788.LAES_Td:
1789.long	1353184337,1353184337
1790.long	1399144830,1399144830
1791.long	3282310938,3282310938
1792.long	2522752826,2522752826
1793.long	3412831035,3412831035
1794.long	4047871263,4047871263
1795.long	2874735276,2874735276
1796.long	2466505547,2466505547
1797.long	1442459680,1442459680
1798.long	4134368941,4134368941
1799.long	2440481928,2440481928
1800.long	625738485,625738485
1801.long	4242007375,4242007375
1802.long	3620416197,3620416197
1803.long	2151953702,2151953702
1804.long	2409849525,2409849525
1805.long	1230680542,1230680542
1806.long	1729870373,1729870373
1807.long	2551114309,2551114309
1808.long	3787521629,3787521629
1809.long	41234371,41234371
1810.long	317738113,317738113
1811.long	2744600205,2744600205
1812.long	3338261355,3338261355
1813.long	3881799427,3881799427
1814.long	2510066197,2510066197
1815.long	3950669247,3950669247
1816.long	3663286933,3663286933
1817.long	763608788,763608788
1818.long	3542185048,3542185048
1819.long	694804553,694804553
1820.long	1154009486,1154009486
1821.long	1787413109,1787413109
1822.long	2021232372,2021232372
1823.long	1799248025,1799248025
1824.long	3715217703,3715217703
1825.long	3058688446,3058688446
1826.long	397248752,397248752
1827.long	1722556617,1722556617
1828.long	3023752829,3023752829
1829.long	407560035,407560035
1830.long	2184256229,2184256229
1831.long	1613975959,1613975959
1832.long	1165972322,1165972322
1833.long	3765920945,3765920945
1834.long	2226023355,2226023355
1835.long	480281086,480281086
1836.long	2485848313,2485848313
1837.long	1483229296,1483229296
1838.long	436028815,436028815
1839.long	2272059028,2272059028
1840.long	3086515026,3086515026
1841.long	601060267,601060267
1842.long	3791801202,3791801202
1843.long	1468997603,1468997603
1844.long	715871590,715871590
1845.long	120122290,120122290
1846.long	63092015,63092015
1847.long	2591802758,2591802758
1848.long	2768779219,2768779219
1849.long	4068943920,4068943920
1850.long	2997206819,2997206819
1851.long	3127509762,3127509762
1852.long	1552029421,1552029421
1853.long	723308426,723308426
1854.long	2461301159,2461301159
1855.long	4042393587,4042393587
1856.long	2715969870,2715969870
1857.long	3455375973,3455375973
1858.long	3586000134,3586000134
1859.long	526529745,526529745
1860.long	2331944644,2331944644
1861.long	2639474228,2639474228
1862.long	2689987490,2689987490
1863.long	853641733,853641733
1864.long	1978398372,1978398372
1865.long	971801355,971801355
1866.long	2867814464,2867814464
1867.long	111112542,111112542
1868.long	1360031421,1360031421
1869.long	4186579262,4186579262
1870.long	1023860118,1023860118
1871.long	2919579357,2919579357
1872.long	1186850381,1186850381
1873.long	3045938321,3045938321
1874.long	90031217,90031217
1875.long	1876166148,1876166148
1876.long	4279586912,4279586912
1877.long	620468249,620468249
1878.long	2548678102,2548678102
1879.long	3426959497,3426959497
1880.long	2006899047,2006899047
1881.long	3175278768,3175278768
1882.long	2290845959,2290845959
1883.long	945494503,945494503
1884.long	3689859193,3689859193
1885.long	1191869601,1191869601
1886.long	3910091388,3910091388
1887.long	3374220536,3374220536
1888.long	0,0
1889.long	2206629897,2206629897
1890.long	1223502642,1223502642
1891.long	2893025566,2893025566
1892.long	1316117100,1316117100
1893.long	4227796733,4227796733
1894.long	1446544655,1446544655
1895.long	517320253,517320253
1896.long	658058550,658058550
1897.long	1691946762,1691946762
1898.long	564550760,564550760
1899.long	3511966619,3511966619
1900.long	976107044,976107044
1901.long	2976320012,2976320012
1902.long	266819475,266819475
1903.long	3533106868,3533106868
1904.long	2660342555,2660342555
1905.long	1338359936,1338359936
1906.long	2720062561,2720062561
1907.long	1766553434,1766553434
1908.long	370807324,370807324
1909.long	179999714,179999714
1910.long	3844776128,3844776128
1911.long	1138762300,1138762300
1912.long	488053522,488053522
1913.long	185403662,185403662
1914.long	2915535858,2915535858
1915.long	3114841645,3114841645
1916.long	3366526484,3366526484
1917.long	2233069911,2233069911
1918.long	1275557295,1275557295
1919.long	3151862254,3151862254
1920.long	4250959779,4250959779
1921.long	2670068215,2670068215
1922.long	3170202204,3170202204
1923.long	3309004356,3309004356
1924.long	880737115,880737115
1925.long	1982415755,1982415755
1926.long	3703972811,3703972811
1927.long	1761406390,1761406390
1928.long	1676797112,1676797112
1929.long	3403428311,3403428311
1930.long	277177154,277177154
1931.long	1076008723,1076008723
1932.long	538035844,538035844
1933.long	2099530373,2099530373
1934.long	4164795346,4164795346
1935.long	288553390,288553390
1936.long	1839278535,1839278535
1937.long	1261411869,1261411869
1938.long	4080055004,4080055004
1939.long	3964831245,3964831245
1940.long	3504587127,3504587127
1941.long	1813426987,1813426987
1942.long	2579067049,2579067049
1943.long	4199060497,4199060497
1944.long	577038663,577038663
1945.long	3297574056,3297574056
1946.long	440397984,440397984
1947.long	3626794326,3626794326
1948.long	4019204898,4019204898
1949.long	3343796615,3343796615
1950.long	3251714265,3251714265
1951.long	4272081548,4272081548
1952.long	906744984,906744984
1953.long	3481400742,3481400742
1954.long	685669029,685669029
1955.long	646887386,646887386
1956.long	2764025151,2764025151
1957.long	3835509292,3835509292
1958.long	227702864,227702864
1959.long	2613862250,2613862250
1960.long	1648787028,1648787028
1961.long	3256061430,3256061430
1962.long	3904428176,3904428176
1963.long	1593260334,1593260334
1964.long	4121936770,4121936770
1965.long	3196083615,3196083615
1966.long	2090061929,2090061929
1967.long	2838353263,2838353263
1968.long	3004310991,3004310991
1969.long	999926984,999926984
1970.long	2809993232,2809993232
1971.long	1852021992,1852021992
1972.long	2075868123,2075868123
1973.long	158869197,158869197
1974.long	4095236462,4095236462
1975.long	28809964,28809964
1976.long	2828685187,2828685187
1977.long	1701746150,1701746150
1978.long	2129067946,2129067946
1979.long	147831841,147831841
1980.long	3873969647,3873969647
1981.long	3650873274,3650873274
1982.long	3459673930,3459673930
1983.long	3557400554,3557400554
1984.long	3598495785,3598495785
1985.long	2947720241,2947720241
1986.long	824393514,824393514
1987.long	815048134,815048134
1988.long	3227951669,3227951669
1989.long	935087732,935087732
1990.long	2798289660,2798289660
1991.long	2966458592,2966458592
1992.long	366520115,366520115
1993.long	1251476721,1251476721
1994.long	4158319681,4158319681
1995.long	240176511,240176511
1996.long	804688151,804688151
1997.long	2379631990,2379631990
1998.long	1303441219,1303441219
1999.long	1414376140,1414376140
2000.long	3741619940,3741619940
2001.long	3820343710,3820343710
2002.long	461924940,461924940
2003.long	3089050817,3089050817
2004.long	2136040774,2136040774
2005.long	82468509,82468509
2006.long	1563790337,1563790337
2007.long	1937016826,1937016826
2008.long	776014843,776014843
2009.long	1511876531,1511876531
2010.long	1389550482,1389550482
2011.long	861278441,861278441
2012.long	323475053,323475053
2013.long	2355222426,2355222426
2014.long	2047648055,2047648055
2015.long	2383738969,2383738969
2016.long	2302415851,2302415851
2017.long	3995576782,3995576782
2018.long	902390199,902390199
2019.long	3991215329,3991215329
2020.long	1018251130,1018251130
2021.long	1507840668,1507840668
2022.long	1064563285,1064563285
2023.long	2043548696,2043548696
2024.long	3208103795,3208103795
2025.long	3939366739,3939366739
2026.long	1537932639,1537932639
2027.long	342834655,342834655
2028.long	2262516856,2262516856
2029.long	2180231114,2180231114
2030.long	1053059257,1053059257
2031.long	741614648,741614648
2032.long	1598071746,1598071746
2033.long	1925389590,1925389590
2034.long	203809468,203809468
2035.long	2336832552,2336832552
2036.long	1100287487,1100287487
2037.long	1895934009,1895934009
2038.long	3736275976,3736275976
2039.long	2632234200,2632234200
2040.long	2428589668,2428589668
2041.long	1636092795,1636092795
2042.long	1890988757,1890988757
2043.long	1952214088,1952214088
2044.long	1113045200,1113045200
2045.byte	82,9,106,213,48,54,165,56
2046.byte	191,64,163,158,129,243,215,251
2047.byte	124,227,57,130,155,47,255,135
2048.byte	52,142,67,68,196,222,233,203
2049.byte	84,123,148,50,166,194,35,61
2050.byte	238,76,149,11,66,250,195,78
2051.byte	8,46,161,102,40,217,36,178
2052.byte	118,91,162,73,109,139,209,37
2053.byte	114,248,246,100,134,104,152,22
2054.byte	212,164,92,204,93,101,182,146
2055.byte	108,112,72,80,253,237,185,218
2056.byte	94,21,70,87,167,141,157,132
2057.byte	144,216,171,0,140,188,211,10
2058.byte	247,228,88,5,184,179,69,6
2059.byte	208,44,30,143,202,63,15,2
2060.byte	193,175,189,3,1,19,138,107
2061.byte	58,145,17,65,79,103,220,234
2062.byte	151,242,207,206,240,180,230,115
2063.byte	150,172,116,34,231,173,53,133
2064.byte	226,249,55,232,28,117,223,110
2065.byte	71,241,26,113,29,41,197,137
2066.byte	111,183,98,14,170,24,190,27
2067.byte	252,86,62,75,198,210,121,32
2068.byte	154,219,192,254,120,205,90,244
2069.byte	31,221,168,51,136,7,199,49
2070.byte	177,18,16,89,39,128,236,95
2071.byte	96,81,127,169,25,181,74,13
2072.byte	45,229,122,159,147,201,156,239
2073.byte	160,224,59,77,174,42,245,176
2074.byte	200,235,187,60,131,83,153,97
2075.byte	23,43,4,126,186,119,214,38
2076.byte	225,105,20,99,85,33,12,125
2077.byte	82,9,106,213,48,54,165,56
2078.byte	191,64,163,158,129,243,215,251
2079.byte	124,227,57,130,155,47,255,135
2080.byte	52,142,67,68,196,222,233,203
2081.byte	84,123,148,50,166,194,35,61
2082.byte	238,76,149,11,66,250,195,78
2083.byte	8,46,161,102,40,217,36,178
2084.byte	118,91,162,73,109,139,209,37
2085.byte	114,248,246,100,134,104,152,22
2086.byte	212,164,92,204,93,101,182,146
2087.byte	108,112,72,80,253,237,185,218
2088.byte	94,21,70,87,167,141,157,132
2089.byte	144,216,171,0,140,188,211,10
2090.byte	247,228,88,5,184,179,69,6
2091.byte	208,44,30,143,202,63,15,2
2092.byte	193,175,189,3,1,19,138,107
2093.byte	58,145,17,65,79,103,220,234
2094.byte	151,242,207,206,240,180,230,115
2095.byte	150,172,116,34,231,173,53,133
2096.byte	226,249,55,232,28,117,223,110
2097.byte	71,241,26,113,29,41,197,137
2098.byte	111,183,98,14,170,24,190,27
2099.byte	252,86,62,75,198,210,121,32
2100.byte	154,219,192,254,120,205,90,244
2101.byte	31,221,168,51,136,7,199,49
2102.byte	177,18,16,89,39,128,236,95
2103.byte	96,81,127,169,25,181,74,13
2104.byte	45,229,122,159,147,201,156,239
2105.byte	160,224,59,77,174,42,245,176
2106.byte	200,235,187,60,131,83,153,97
2107.byte	23,43,4,126,186,119,214,38
2108.byte	225,105,20,99,85,33,12,125
2109.byte	82,9,106,213,48,54,165,56
2110.byte	191,64,163,158,129,243,215,251
2111.byte	124,227,57,130,155,47,255,135
2112.byte	52,142,67,68,196,222,233,203
2113.byte	84,123,148,50,166,194,35,61
2114.byte	238,76,149,11,66,250,195,78
2115.byte	8,46,161,102,40,217,36,178
2116.byte	118,91,162,73,109,139,209,37
2117.byte	114,248,246,100,134,104,152,22
2118.byte	212,164,92,204,93,101,182,146
2119.byte	108,112,72,80,253,237,185,218
2120.byte	94,21,70,87,167,141,157,132
2121.byte	144,216,171,0,140,188,211,10
2122.byte	247,228,88,5,184,179,69,6
2123.byte	208,44,30,143,202,63,15,2
2124.byte	193,175,189,3,1,19,138,107
2125.byte	58,145,17,65,79,103,220,234
2126.byte	151,242,207,206,240,180,230,115
2127.byte	150,172,116,34,231,173,53,133
2128.byte	226,249,55,232,28,117,223,110
2129.byte	71,241,26,113,29,41,197,137
2130.byte	111,183,98,14,170,24,190,27
2131.byte	252,86,62,75,198,210,121,32
2132.byte	154,219,192,254,120,205,90,244
2133.byte	31,221,168,51,136,7,199,49
2134.byte	177,18,16,89,39,128,236,95
2135.byte	96,81,127,169,25,181,74,13
2136.byte	45,229,122,159,147,201,156,239
2137.byte	160,224,59,77,174,42,245,176
2138.byte	200,235,187,60,131,83,153,97
2139.byte	23,43,4,126,186,119,214,38
2140.byte	225,105,20,99,85,33,12,125
2141.byte	82,9,106,213,48,54,165,56
2142.byte	191,64,163,158,129,243,215,251
2143.byte	124,227,57,130,155,47,255,135
2144.byte	52,142,67,68,196,222,233,203
2145.byte	84,123,148,50,166,194,35,61
2146.byte	238,76,149,11,66,250,195,78
2147.byte	8,46,161,102,40,217,36,178
2148.byte	118,91,162,73,109,139,209,37
2149.byte	114,248,246,100,134,104,152,22
2150.byte	212,164,92,204,93,101,182,146
2151.byte	108,112,72,80,253,237,185,218
2152.byte	94,21,70,87,167,141,157,132
2153.byte	144,216,171,0,140,188,211,10
2154.byte	247,228,88,5,184,179,69,6
2155.byte	208,44,30,143,202,63,15,2
2156.byte	193,175,189,3,1,19,138,107
2157.byte	58,145,17,65,79,103,220,234
2158.byte	151,242,207,206,240,180,230,115
2159.byte	150,172,116,34,231,173,53,133
2160.byte	226,249,55,232,28,117,223,110
2161.byte	71,241,26,113,29,41,197,137
2162.byte	111,183,98,14,170,24,190,27
2163.byte	252,86,62,75,198,210,121,32
2164.byte	154,219,192,254,120,205,90,244
2165.byte	31,221,168,51,136,7,199,49
2166.byte	177,18,16,89,39,128,236,95
2167.byte	96,81,127,169,25,181,74,13
2168.byte	45,229,122,159,147,201,156,239
2169.byte	160,224,59,77,174,42,245,176
2170.byte	200,235,187,60,131,83,153,97
2171.byte	23,43,4,126,186,119,214,38
2172.byte	225,105,20,99,85,33,12,125
2173.size	_x86_AES_decrypt,.-_x86_AES_decrypt
2174.globl	AES_decrypt
2175.type	AES_decrypt,@function
2176.align	16
2177AES_decrypt:
2178.L_AES_decrypt_begin:
2179	pushl	%ebp
2180	pushl	%ebx
2181	pushl	%esi
2182	pushl	%edi
2183	movl	20(%esp),%esi
2184	movl	28(%esp),%edi
2185	movl	%esp,%eax
2186	subl	$36,%esp
2187	andl	$-64,%esp
2188	leal	-127(%edi),%ebx
2189	subl	%esp,%ebx
2190	negl	%ebx
2191	andl	$960,%ebx
2192	subl	%ebx,%esp
2193	addl	$4,%esp
2194	movl	%eax,28(%esp)
2195	call	.L010pic_point
2196.L010pic_point:
2197	popl	%ebp
2198	leal	OPENSSL_ia32cap_P-.L010pic_point(%ebp),%eax
2199	leal	.LAES_Td-.L010pic_point(%ebp),%ebp
2200	leal	764(%esp),%ebx
2201	subl	%ebp,%ebx
2202	andl	$768,%ebx
2203	leal	2176(%ebp,%ebx,1),%ebp
2204	btl	$25,(%eax)
2205	jnc	.L011x86
2206	movq	(%esi),%mm0
2207	movq	8(%esi),%mm4
2208	call	_sse_AES_decrypt_compact
2209	movl	28(%esp),%esp
2210	movl	24(%esp),%esi
2211	movq	%mm0,(%esi)
2212	movq	%mm4,8(%esi)
2213	emms
2214	popl	%edi
2215	popl	%esi
2216	popl	%ebx
2217	popl	%ebp
2218	ret
2219.align	16
2220.L011x86:
2221	movl	%ebp,24(%esp)
2222	movl	(%esi),%eax
2223	movl	4(%esi),%ebx
2224	movl	8(%esi),%ecx
2225	movl	12(%esi),%edx
2226	call	_x86_AES_decrypt_compact
2227	movl	28(%esp),%esp
2228	movl	24(%esp),%esi
2229	movl	%eax,(%esi)
2230	movl	%ebx,4(%esi)
2231	movl	%ecx,8(%esi)
2232	movl	%edx,12(%esi)
2233	popl	%edi
2234	popl	%esi
2235	popl	%ebx
2236	popl	%ebp
2237	ret
2238.size	AES_decrypt,.-.L_AES_decrypt_begin
2239.globl	AES_cbc_encrypt
2240.type	AES_cbc_encrypt,@function
2241.align	16
2242AES_cbc_encrypt:
2243.L_AES_cbc_encrypt_begin:
2244	pushl	%ebp
2245	pushl	%ebx
2246	pushl	%esi
2247	pushl	%edi
2248	movl	28(%esp),%ecx
2249	cmpl	$0,%ecx
2250	je	.L012drop_out
2251	call	.L013pic_point
2252.L013pic_point:
2253	popl	%ebp
2254	leal	OPENSSL_ia32cap_P-.L013pic_point(%ebp),%eax
2255	cmpl	$0,40(%esp)
2256	leal	.LAES_Te-.L013pic_point(%ebp),%ebp
2257	jne	.L014picked_te
2258	leal	.LAES_Td-.LAES_Te(%ebp),%ebp
2259.L014picked_te:
2260	pushfl
2261	cld
2262	cmpl	$512,%ecx
2263	jb	.L015slow_way
2264	testl	$15,%ecx
2265	jnz	.L015slow_way
2266	btl	$28,(%eax)
2267	jc	.L015slow_way
2268	leal	-324(%esp),%esi
2269	andl	$-64,%esi
2270	movl	%ebp,%eax
2271	leal	2304(%ebp),%ebx
2272	movl	%esi,%edx
2273	andl	$4095,%eax
2274	andl	$4095,%ebx
2275	andl	$4095,%edx
2276	cmpl	%ebx,%edx
2277	jb	.L016tbl_break_out
2278	subl	%ebx,%edx
2279	subl	%edx,%esi
2280	jmp	.L017tbl_ok
2281.align	4
2282.L016tbl_break_out:
2283	subl	%eax,%edx
2284	andl	$4095,%edx
2285	addl	$384,%edx
2286	subl	%edx,%esi
2287.align	4
2288.L017tbl_ok:
2289	leal	24(%esp),%edx
2290	xchgl	%esi,%esp
2291	addl	$4,%esp
2292	movl	%ebp,24(%esp)
2293	movl	%esi,28(%esp)
2294	movl	(%edx),%eax
2295	movl	4(%edx),%ebx
2296	movl	12(%edx),%edi
2297	movl	16(%edx),%esi
2298	movl	20(%edx),%edx
2299	movl	%eax,32(%esp)
2300	movl	%ebx,36(%esp)
2301	movl	%ecx,40(%esp)
2302	movl	%edi,44(%esp)
2303	movl	%esi,48(%esp)
2304	movl	$0,316(%esp)
2305	movl	%edi,%ebx
2306	movl	$61,%ecx
2307	subl	%ebp,%ebx
2308	movl	%edi,%esi
2309	andl	$4095,%ebx
2310	leal	76(%esp),%edi
2311	cmpl	$2304,%ebx
2312	jb	.L018do_copy
2313	cmpl	$3852,%ebx
2314	jb	.L019skip_copy
2315.align	4
2316.L018do_copy:
2317	movl	%edi,44(%esp)
2318.long	2784229001
2319.L019skip_copy:
2320	movl	$16,%edi
2321.align	4
2322.L020prefetch_tbl:
2323	movl	(%ebp),%eax
2324	movl	32(%ebp),%ebx
2325	movl	64(%ebp),%ecx
2326	movl	96(%ebp),%esi
2327	leal	128(%ebp),%ebp
2328	subl	$1,%edi
2329	jnz	.L020prefetch_tbl
2330	subl	$2048,%ebp
2331	movl	32(%esp),%esi
2332	movl	48(%esp),%edi
2333	cmpl	$0,%edx
2334	je	.L021fast_decrypt
2335	movl	(%edi),%eax
2336	movl	4(%edi),%ebx
2337.align	16
2338.L022fast_enc_loop:
2339	movl	8(%edi),%ecx
2340	movl	12(%edi),%edx
2341	xorl	(%esi),%eax
2342	xorl	4(%esi),%ebx
2343	xorl	8(%esi),%ecx
2344	xorl	12(%esi),%edx
2345	movl	44(%esp),%edi
2346	call	_x86_AES_encrypt
2347	movl	32(%esp),%esi
2348	movl	36(%esp),%edi
2349	movl	%eax,(%edi)
2350	movl	%ebx,4(%edi)
2351	movl	%ecx,8(%edi)
2352	movl	%edx,12(%edi)
2353	leal	16(%esi),%esi
2354	movl	40(%esp),%ecx
2355	movl	%esi,32(%esp)
2356	leal	16(%edi),%edx
2357	movl	%edx,36(%esp)
2358	subl	$16,%ecx
2359	movl	%ecx,40(%esp)
2360	jnz	.L022fast_enc_loop
2361	movl	48(%esp),%esi
2362	movl	8(%edi),%ecx
2363	movl	12(%edi),%edx
2364	movl	%eax,(%esi)
2365	movl	%ebx,4(%esi)
2366	movl	%ecx,8(%esi)
2367	movl	%edx,12(%esi)
2368	cmpl	$0,316(%esp)
2369	movl	44(%esp),%edi
2370	je	.L023skip_ezero
2371	movl	$60,%ecx
2372	xorl	%eax,%eax
2373.align	4
2374.long	2884892297
2375.L023skip_ezero:
2376	movl	28(%esp),%esp
2377	popfl
2378.L012drop_out:
2379	popl	%edi
2380	popl	%esi
2381	popl	%ebx
2382	popl	%ebp
2383	ret
2384	pushfl
2385.align	16
2386.L021fast_decrypt:
2387	cmpl	36(%esp),%esi
2388	je	.L024fast_dec_in_place
2389	movl	%edi,52(%esp)
2390.align	4
2391.align	16
2392.L025fast_dec_loop:
2393	movl	(%esi),%eax
2394	movl	4(%esi),%ebx
2395	movl	8(%esi),%ecx
2396	movl	12(%esi),%edx
2397	movl	44(%esp),%edi
2398	call	_x86_AES_decrypt
2399	movl	52(%esp),%edi
2400	movl	40(%esp),%esi
2401	xorl	(%edi),%eax
2402	xorl	4(%edi),%ebx
2403	xorl	8(%edi),%ecx
2404	xorl	12(%edi),%edx
2405	movl	36(%esp),%edi
2406	movl	32(%esp),%esi
2407	movl	%eax,(%edi)
2408	movl	%ebx,4(%edi)
2409	movl	%ecx,8(%edi)
2410	movl	%edx,12(%edi)
2411	movl	40(%esp),%ecx
2412	movl	%esi,52(%esp)
2413	leal	16(%esi),%esi
2414	movl	%esi,32(%esp)
2415	leal	16(%edi),%edi
2416	movl	%edi,36(%esp)
2417	subl	$16,%ecx
2418	movl	%ecx,40(%esp)
2419	jnz	.L025fast_dec_loop
2420	movl	52(%esp),%edi
2421	movl	48(%esp),%esi
2422	movl	(%edi),%eax
2423	movl	4(%edi),%ebx
2424	movl	8(%edi),%ecx
2425	movl	12(%edi),%edx
2426	movl	%eax,(%esi)
2427	movl	%ebx,4(%esi)
2428	movl	%ecx,8(%esi)
2429	movl	%edx,12(%esi)
2430	jmp	.L026fast_dec_out
2431.align	16
2432.L024fast_dec_in_place:
2433.L027fast_dec_in_place_loop:
2434	movl	(%esi),%eax
2435	movl	4(%esi),%ebx
2436	movl	8(%esi),%ecx
2437	movl	12(%esi),%edx
2438	leal	60(%esp),%edi
2439	movl	%eax,(%edi)
2440	movl	%ebx,4(%edi)
2441	movl	%ecx,8(%edi)
2442	movl	%edx,12(%edi)
2443	movl	44(%esp),%edi
2444	call	_x86_AES_decrypt
2445	movl	48(%esp),%edi
2446	movl	36(%esp),%esi
2447	xorl	(%edi),%eax
2448	xorl	4(%edi),%ebx
2449	xorl	8(%edi),%ecx
2450	xorl	12(%edi),%edx
2451	movl	%eax,(%esi)
2452	movl	%ebx,4(%esi)
2453	movl	%ecx,8(%esi)
2454	movl	%edx,12(%esi)
2455	leal	16(%esi),%esi
2456	movl	%esi,36(%esp)
2457	leal	60(%esp),%esi
2458	movl	(%esi),%eax
2459	movl	4(%esi),%ebx
2460	movl	8(%esi),%ecx
2461	movl	12(%esi),%edx
2462	movl	%eax,(%edi)
2463	movl	%ebx,4(%edi)
2464	movl	%ecx,8(%edi)
2465	movl	%edx,12(%edi)
2466	movl	32(%esp),%esi
2467	movl	40(%esp),%ecx
2468	leal	16(%esi),%esi
2469	movl	%esi,32(%esp)
2470	subl	$16,%ecx
2471	movl	%ecx,40(%esp)
2472	jnz	.L027fast_dec_in_place_loop
2473.align	4
2474.L026fast_dec_out:
2475	cmpl	$0,316(%esp)
2476	movl	44(%esp),%edi
2477	je	.L028skip_dzero
2478	movl	$60,%ecx
2479	xorl	%eax,%eax
2480.align	4
2481.long	2884892297
2482.L028skip_dzero:
2483	movl	28(%esp),%esp
2484	popfl
2485	popl	%edi
2486	popl	%esi
2487	popl	%ebx
2488	popl	%ebp
2489	ret
2490	pushfl
2491.align	16
2492.L015slow_way:
2493	movl	(%eax),%eax
2494	movl	36(%esp),%edi
2495	leal	-80(%esp),%esi
2496	andl	$-64,%esi
2497	leal	-143(%edi),%ebx
2498	subl	%esi,%ebx
2499	negl	%ebx
2500	andl	$960,%ebx
2501	subl	%ebx,%esi
2502	leal	768(%esi),%ebx
2503	subl	%ebp,%ebx
2504	andl	$768,%ebx
2505	leal	2176(%ebp,%ebx,1),%ebp
2506	leal	24(%esp),%edx
2507	xchgl	%esi,%esp
2508	addl	$4,%esp
2509	movl	%ebp,24(%esp)
2510	movl	%esi,28(%esp)
2511	movl	%eax,52(%esp)
2512	movl	(%edx),%eax
2513	movl	4(%edx),%ebx
2514	movl	16(%edx),%esi
2515	movl	20(%edx),%edx
2516	movl	%eax,32(%esp)
2517	movl	%ebx,36(%esp)
2518	movl	%ecx,40(%esp)
2519	movl	%edi,44(%esp)
2520	movl	%esi,48(%esp)
2521	movl	%esi,%edi
2522	movl	%eax,%esi
2523	cmpl	$0,%edx
2524	je	.L029slow_decrypt
2525	cmpl	$16,%ecx
2526	movl	%ebx,%edx
2527	jb	.L030slow_enc_tail
2528	btl	$25,52(%esp)
2529	jnc	.L031slow_enc_x86
2530	movq	(%edi),%mm0
2531	movq	8(%edi),%mm4
2532.align	16
2533.L032slow_enc_loop_sse:
2534	pxor	(%esi),%mm0
2535	pxor	8(%esi),%mm4
2536	movl	44(%esp),%edi
2537	call	_sse_AES_encrypt_compact
2538	movl	32(%esp),%esi
2539	movl	36(%esp),%edi
2540	movl	40(%esp),%ecx
2541	movq	%mm0,(%edi)
2542	movq	%mm4,8(%edi)
2543	leal	16(%esi),%esi
2544	movl	%esi,32(%esp)
2545	leal	16(%edi),%edx
2546	movl	%edx,36(%esp)
2547	subl	$16,%ecx
2548	cmpl	$16,%ecx
2549	movl	%ecx,40(%esp)
2550	jae	.L032slow_enc_loop_sse
2551	testl	$15,%ecx
2552	jnz	.L030slow_enc_tail
2553	movl	48(%esp),%esi
2554	movq	%mm0,(%esi)
2555	movq	%mm4,8(%esi)
2556	emms
2557	movl	28(%esp),%esp
2558	popfl
2559	popl	%edi
2560	popl	%esi
2561	popl	%ebx
2562	popl	%ebp
2563	ret
2564	pushfl
2565.align	16
2566.L031slow_enc_x86:
2567	movl	(%edi),%eax
2568	movl	4(%edi),%ebx
2569.align	4
2570.L033slow_enc_loop_x86:
2571	movl	8(%edi),%ecx
2572	movl	12(%edi),%edx
2573	xorl	(%esi),%eax
2574	xorl	4(%esi),%ebx
2575	xorl	8(%esi),%ecx
2576	xorl	12(%esi),%edx
2577	movl	44(%esp),%edi
2578	call	_x86_AES_encrypt_compact
2579	movl	32(%esp),%esi
2580	movl	36(%esp),%edi
2581	movl	%eax,(%edi)
2582	movl	%ebx,4(%edi)
2583	movl	%ecx,8(%edi)
2584	movl	%edx,12(%edi)
2585	movl	40(%esp),%ecx
2586	leal	16(%esi),%esi
2587	movl	%esi,32(%esp)
2588	leal	16(%edi),%edx
2589	movl	%edx,36(%esp)
2590	subl	$16,%ecx
2591	cmpl	$16,%ecx
2592	movl	%ecx,40(%esp)
2593	jae	.L033slow_enc_loop_x86
2594	testl	$15,%ecx
2595	jnz	.L030slow_enc_tail
2596	movl	48(%esp),%esi
2597	movl	8(%edi),%ecx
2598	movl	12(%edi),%edx
2599	movl	%eax,(%esi)
2600	movl	%ebx,4(%esi)
2601	movl	%ecx,8(%esi)
2602	movl	%edx,12(%esi)
2603	movl	28(%esp),%esp
2604	popfl
2605	popl	%edi
2606	popl	%esi
2607	popl	%ebx
2608	popl	%ebp
2609	ret
2610	pushfl
2611.align	16
2612.L030slow_enc_tail:
2613	emms
2614	movl	%edx,%edi
2615	movl	$16,%ebx
2616	subl	%ecx,%ebx
2617	cmpl	%esi,%edi
2618	je	.L034enc_in_place
2619.align	4
2620.long	2767451785
2621	jmp	.L035enc_skip_in_place
2622.L034enc_in_place:
2623	leal	(%edi,%ecx,1),%edi
2624.L035enc_skip_in_place:
2625	movl	%ebx,%ecx
2626	xorl	%eax,%eax
2627.align	4
2628.long	2868115081
2629	movl	48(%esp),%edi
2630	movl	%edx,%esi
2631	movl	(%edi),%eax
2632	movl	4(%edi),%ebx
2633	movl	$16,40(%esp)
2634	jmp	.L033slow_enc_loop_x86
2635.align	16
2636.L029slow_decrypt:
2637	btl	$25,52(%esp)
2638	jnc	.L036slow_dec_loop_x86
2639.align	4
2640.L037slow_dec_loop_sse:
2641	movq	(%esi),%mm0
2642	movq	8(%esi),%mm4
2643	movl	44(%esp),%edi
2644	call	_sse_AES_decrypt_compact
2645	movl	32(%esp),%esi
2646	leal	60(%esp),%eax
2647	movl	36(%esp),%ebx
2648	movl	40(%esp),%ecx
2649	movl	48(%esp),%edi
2650	movq	(%esi),%mm1
2651	movq	8(%esi),%mm5
2652	pxor	(%edi),%mm0
2653	pxor	8(%edi),%mm4
2654	movq	%mm1,(%edi)
2655	movq	%mm5,8(%edi)
2656	subl	$16,%ecx
2657	jc	.L038slow_dec_partial_sse
2658	movq	%mm0,(%ebx)
2659	movq	%mm4,8(%ebx)
2660	leal	16(%ebx),%ebx
2661	movl	%ebx,36(%esp)
2662	leal	16(%esi),%esi
2663	movl	%esi,32(%esp)
2664	movl	%ecx,40(%esp)
2665	jnz	.L037slow_dec_loop_sse
2666	emms
2667	movl	28(%esp),%esp
2668	popfl
2669	popl	%edi
2670	popl	%esi
2671	popl	%ebx
2672	popl	%ebp
2673	ret
2674	pushfl
2675.align	16
2676.L038slow_dec_partial_sse:
2677	movq	%mm0,(%eax)
2678	movq	%mm4,8(%eax)
2679	emms
2680	addl	$16,%ecx
2681	movl	%ebx,%edi
2682	movl	%eax,%esi
2683.align	4
2684.long	2767451785
2685	movl	28(%esp),%esp
2686	popfl
2687	popl	%edi
2688	popl	%esi
2689	popl	%ebx
2690	popl	%ebp
2691	ret
2692	pushfl
2693.align	16
2694.L036slow_dec_loop_x86:
2695	movl	(%esi),%eax
2696	movl	4(%esi),%ebx
2697	movl	8(%esi),%ecx
2698	movl	12(%esi),%edx
2699	leal	60(%esp),%edi
2700	movl	%eax,(%edi)
2701	movl	%ebx,4(%edi)
2702	movl	%ecx,8(%edi)
2703	movl	%edx,12(%edi)
2704	movl	44(%esp),%edi
2705	call	_x86_AES_decrypt_compact
2706	movl	48(%esp),%edi
2707	movl	40(%esp),%esi
2708	xorl	(%edi),%eax
2709	xorl	4(%edi),%ebx
2710	xorl	8(%edi),%ecx
2711	xorl	12(%edi),%edx
2712	subl	$16,%esi
2713	jc	.L039slow_dec_partial_x86
2714	movl	%esi,40(%esp)
2715	movl	36(%esp),%esi
2716	movl	%eax,(%esi)
2717	movl	%ebx,4(%esi)
2718	movl	%ecx,8(%esi)
2719	movl	%edx,12(%esi)
2720	leal	16(%esi),%esi
2721	movl	%esi,36(%esp)
2722	leal	60(%esp),%esi
2723	movl	(%esi),%eax
2724	movl	4(%esi),%ebx
2725	movl	8(%esi),%ecx
2726	movl	12(%esi),%edx
2727	movl	%eax,(%edi)
2728	movl	%ebx,4(%edi)
2729	movl	%ecx,8(%edi)
2730	movl	%edx,12(%edi)
2731	movl	32(%esp),%esi
2732	leal	16(%esi),%esi
2733	movl	%esi,32(%esp)
2734	jnz	.L036slow_dec_loop_x86
2735	movl	28(%esp),%esp
2736	popfl
2737	popl	%edi
2738	popl	%esi
2739	popl	%ebx
2740	popl	%ebp
2741	ret
2742	pushfl
2743.align	16
2744.L039slow_dec_partial_x86:
2745	leal	60(%esp),%esi
2746	movl	%eax,(%esi)
2747	movl	%ebx,4(%esi)
2748	movl	%ecx,8(%esi)
2749	movl	%edx,12(%esi)
2750	movl	32(%esp),%esi
2751	movl	(%esi),%eax
2752	movl	4(%esi),%ebx
2753	movl	8(%esi),%ecx
2754	movl	12(%esi),%edx
2755	movl	%eax,(%edi)
2756	movl	%ebx,4(%edi)
2757	movl	%ecx,8(%edi)
2758	movl	%edx,12(%edi)
2759	movl	40(%esp),%ecx
2760	movl	36(%esp),%edi
2761	leal	60(%esp),%esi
2762.align	4
2763.long	2767451785
2764	movl	28(%esp),%esp
2765	popfl
2766	popl	%edi
2767	popl	%esi
2768	popl	%ebx
2769	popl	%ebp
2770	ret
2771.size	AES_cbc_encrypt,.-.L_AES_cbc_encrypt_begin
2772.type	_x86_AES_set_encrypt_key,@function
2773.align	16
2774_x86_AES_set_encrypt_key:
2775	pushl	%ebp
2776	pushl	%ebx
2777	pushl	%esi
2778	pushl	%edi
2779	movl	24(%esp),%esi
2780	movl	32(%esp),%edi
2781	testl	$-1,%esi
2782	jz	.L040badpointer
2783	testl	$-1,%edi
2784	jz	.L040badpointer
2785	call	.L041pic_point
2786.L041pic_point:
2787	popl	%ebp
2788	leal	.LAES_Te-.L041pic_point(%ebp),%ebp
2789	leal	2176(%ebp),%ebp
2790	movl	-128(%ebp),%eax
2791	movl	-96(%ebp),%ebx
2792	movl	-64(%ebp),%ecx
2793	movl	-32(%ebp),%edx
2794	movl	(%ebp),%eax
2795	movl	32(%ebp),%ebx
2796	movl	64(%ebp),%ecx
2797	movl	96(%ebp),%edx
2798	movl	28(%esp),%ecx
2799	cmpl	$128,%ecx
2800	je	.L04210rounds
2801	cmpl	$192,%ecx
2802	je	.L04312rounds
2803	cmpl	$256,%ecx
2804	je	.L04414rounds
2805	movl	$-2,%eax
2806	jmp	.L045exit
2807.L04210rounds:
2808	movl	(%esi),%eax
2809	movl	4(%esi),%ebx
2810	movl	8(%esi),%ecx
2811	movl	12(%esi),%edx
2812	movl	%eax,(%edi)
2813	movl	%ebx,4(%edi)
2814	movl	%ecx,8(%edi)
2815	movl	%edx,12(%edi)
2816	xorl	%ecx,%ecx
2817	jmp	.L04610shortcut
2818.align	4
2819.L04710loop:
2820	movl	(%edi),%eax
2821	movl	12(%edi),%edx
2822.L04610shortcut:
2823	movzbl	%dl,%esi
2824	movzbl	-128(%ebp,%esi,1),%ebx
2825	movzbl	%dh,%esi
2826	shll	$24,%ebx
2827	xorl	%ebx,%eax
2828	movzbl	-128(%ebp,%esi,1),%ebx
2829	shrl	$16,%edx
2830	movzbl	%dl,%esi
2831	xorl	%ebx,%eax
2832	movzbl	-128(%ebp,%esi,1),%ebx
2833	movzbl	%dh,%esi
2834	shll	$8,%ebx
2835	xorl	%ebx,%eax
2836	movzbl	-128(%ebp,%esi,1),%ebx
2837	shll	$16,%ebx
2838	xorl	%ebx,%eax
2839	xorl	896(%ebp,%ecx,4),%eax
2840	movl	%eax,16(%edi)
2841	xorl	4(%edi),%eax
2842	movl	%eax,20(%edi)
2843	xorl	8(%edi),%eax
2844	movl	%eax,24(%edi)
2845	xorl	12(%edi),%eax
2846	movl	%eax,28(%edi)
2847	incl	%ecx
2848	addl	$16,%edi
2849	cmpl	$10,%ecx
2850	jl	.L04710loop
2851	movl	$10,80(%edi)
2852	xorl	%eax,%eax
2853	jmp	.L045exit
2854.L04312rounds:
2855	movl	(%esi),%eax
2856	movl	4(%esi),%ebx
2857	movl	8(%esi),%ecx
2858	movl	12(%esi),%edx
2859	movl	%eax,(%edi)
2860	movl	%ebx,4(%edi)
2861	movl	%ecx,8(%edi)
2862	movl	%edx,12(%edi)
2863	movl	16(%esi),%ecx
2864	movl	20(%esi),%edx
2865	movl	%ecx,16(%edi)
2866	movl	%edx,20(%edi)
2867	xorl	%ecx,%ecx
2868	jmp	.L04812shortcut
2869.align	4
2870.L04912loop:
2871	movl	(%edi),%eax
2872	movl	20(%edi),%edx
2873.L04812shortcut:
2874	movzbl	%dl,%esi
2875	movzbl	-128(%ebp,%esi,1),%ebx
2876	movzbl	%dh,%esi
2877	shll	$24,%ebx
2878	xorl	%ebx,%eax
2879	movzbl	-128(%ebp,%esi,1),%ebx
2880	shrl	$16,%edx
2881	movzbl	%dl,%esi
2882	xorl	%ebx,%eax
2883	movzbl	-128(%ebp,%esi,1),%ebx
2884	movzbl	%dh,%esi
2885	shll	$8,%ebx
2886	xorl	%ebx,%eax
2887	movzbl	-128(%ebp,%esi,1),%ebx
2888	shll	$16,%ebx
2889	xorl	%ebx,%eax
2890	xorl	896(%ebp,%ecx,4),%eax
2891	movl	%eax,24(%edi)
2892	xorl	4(%edi),%eax
2893	movl	%eax,28(%edi)
2894	xorl	8(%edi),%eax
2895	movl	%eax,32(%edi)
2896	xorl	12(%edi),%eax
2897	movl	%eax,36(%edi)
2898	cmpl	$7,%ecx
2899	je	.L05012break
2900	incl	%ecx
2901	xorl	16(%edi),%eax
2902	movl	%eax,40(%edi)
2903	xorl	20(%edi),%eax
2904	movl	%eax,44(%edi)
2905	addl	$24,%edi
2906	jmp	.L04912loop
2907.L05012break:
2908	movl	$12,72(%edi)
2909	xorl	%eax,%eax
2910	jmp	.L045exit
2911.L04414rounds:
2912	movl	(%esi),%eax
2913	movl	4(%esi),%ebx
2914	movl	8(%esi),%ecx
2915	movl	12(%esi),%edx
2916	movl	%eax,(%edi)
2917	movl	%ebx,4(%edi)
2918	movl	%ecx,8(%edi)
2919	movl	%edx,12(%edi)
2920	movl	16(%esi),%eax
2921	movl	20(%esi),%ebx
2922	movl	24(%esi),%ecx
2923	movl	28(%esi),%edx
2924	movl	%eax,16(%edi)
2925	movl	%ebx,20(%edi)
2926	movl	%ecx,24(%edi)
2927	movl	%edx,28(%edi)
2928	xorl	%ecx,%ecx
2929	jmp	.L05114shortcut
2930.align	4
2931.L05214loop:
2932	movl	28(%edi),%edx
2933.L05114shortcut:
2934	movl	(%edi),%eax
2935	movzbl	%dl,%esi
2936	movzbl	-128(%ebp,%esi,1),%ebx
2937	movzbl	%dh,%esi
2938	shll	$24,%ebx
2939	xorl	%ebx,%eax
2940	movzbl	-128(%ebp,%esi,1),%ebx
2941	shrl	$16,%edx
2942	movzbl	%dl,%esi
2943	xorl	%ebx,%eax
2944	movzbl	-128(%ebp,%esi,1),%ebx
2945	movzbl	%dh,%esi
2946	shll	$8,%ebx
2947	xorl	%ebx,%eax
2948	movzbl	-128(%ebp,%esi,1),%ebx
2949	shll	$16,%ebx
2950	xorl	%ebx,%eax
2951	xorl	896(%ebp,%ecx,4),%eax
2952	movl	%eax,32(%edi)
2953	xorl	4(%edi),%eax
2954	movl	%eax,36(%edi)
2955	xorl	8(%edi),%eax
2956	movl	%eax,40(%edi)
2957	xorl	12(%edi),%eax
2958	movl	%eax,44(%edi)
2959	cmpl	$6,%ecx
2960	je	.L05314break
2961	incl	%ecx
2962	movl	%eax,%edx
2963	movl	16(%edi),%eax
2964	movzbl	%dl,%esi
2965	movzbl	-128(%ebp,%esi,1),%ebx
2966	movzbl	%dh,%esi
2967	xorl	%ebx,%eax
2968	movzbl	-128(%ebp,%esi,1),%ebx
2969	shrl	$16,%edx
2970	shll	$8,%ebx
2971	movzbl	%dl,%esi
2972	xorl	%ebx,%eax
2973	movzbl	-128(%ebp,%esi,1),%ebx
2974	movzbl	%dh,%esi
2975	shll	$16,%ebx
2976	xorl	%ebx,%eax
2977	movzbl	-128(%ebp,%esi,1),%ebx
2978	shll	$24,%ebx
2979	xorl	%ebx,%eax
2980	movl	%eax,48(%edi)
2981	xorl	20(%edi),%eax
2982	movl	%eax,52(%edi)
2983	xorl	24(%edi),%eax
2984	movl	%eax,56(%edi)
2985	xorl	28(%edi),%eax
2986	movl	%eax,60(%edi)
2987	addl	$32,%edi
2988	jmp	.L05214loop
2989.L05314break:
2990	movl	$14,48(%edi)
2991	xorl	%eax,%eax
2992	jmp	.L045exit
2993.L040badpointer:
2994	movl	$-1,%eax
2995.L045exit:
2996	popl	%edi
2997	popl	%esi
2998	popl	%ebx
2999	popl	%ebp
3000	ret
3001.size	_x86_AES_set_encrypt_key,.-_x86_AES_set_encrypt_key
3002.globl	private_AES_set_encrypt_key
3003.type	private_AES_set_encrypt_key,@function
3004.align	16
3005private_AES_set_encrypt_key:
3006.L_private_AES_set_encrypt_key_begin:
3007	call	_x86_AES_set_encrypt_key
3008	ret
3009.size	private_AES_set_encrypt_key,.-.L_private_AES_set_encrypt_key_begin
3010.globl	private_AES_set_decrypt_key
3011.type	private_AES_set_decrypt_key,@function
3012.align	16
3013private_AES_set_decrypt_key:
3014.L_private_AES_set_decrypt_key_begin:
3015	call	_x86_AES_set_encrypt_key
3016	cmpl	$0,%eax
3017	je	.L054proceed
3018	ret
3019.L054proceed:
3020	pushl	%ebp
3021	pushl	%ebx
3022	pushl	%esi
3023	pushl	%edi
3024	movl	28(%esp),%esi
3025	movl	240(%esi),%ecx
3026	leal	(,%ecx,4),%ecx
3027	leal	(%esi,%ecx,4),%edi
3028.align	4
3029.L055invert:
3030	movl	(%esi),%eax
3031	movl	4(%esi),%ebx
3032	movl	(%edi),%ecx
3033	movl	4(%edi),%edx
3034	movl	%eax,(%edi)
3035	movl	%ebx,4(%edi)
3036	movl	%ecx,(%esi)
3037	movl	%edx,4(%esi)
3038	movl	8(%esi),%eax
3039	movl	12(%esi),%ebx
3040	movl	8(%edi),%ecx
3041	movl	12(%edi),%edx
3042	movl	%eax,8(%edi)
3043	movl	%ebx,12(%edi)
3044	movl	%ecx,8(%esi)
3045	movl	%edx,12(%esi)
3046	addl	$16,%esi
3047	subl	$16,%edi
3048	cmpl	%edi,%esi
3049	jne	.L055invert
3050	movl	28(%esp),%edi
3051	movl	240(%edi),%esi
3052	leal	-2(%esi,%esi,1),%esi
3053	leal	(%edi,%esi,8),%esi
3054	movl	%esi,28(%esp)
3055	movl	16(%edi),%eax
3056.align	4
3057.L056permute:
3058	addl	$16,%edi
3059	movl	$2155905152,%ebp
3060	andl	%eax,%ebp
3061	leal	(%eax,%eax,1),%ebx
3062	movl	%ebp,%esi
3063	shrl	$7,%ebp
3064	subl	%ebp,%esi
3065	andl	$4278124286,%ebx
3066	andl	$454761243,%esi
3067	xorl	%esi,%ebx
3068	movl	$2155905152,%ebp
3069	andl	%ebx,%ebp
3070	leal	(%ebx,%ebx,1),%ecx
3071	movl	%ebp,%esi
3072	shrl	$7,%ebp
3073	subl	%ebp,%esi
3074	andl	$4278124286,%ecx
3075	andl	$454761243,%esi
3076	xorl	%eax,%ebx
3077	xorl	%esi,%ecx
3078	movl	$2155905152,%ebp
3079	andl	%ecx,%ebp
3080	leal	(%ecx,%ecx,1),%edx
3081	movl	%ebp,%esi
3082	shrl	$7,%ebp
3083	xorl	%eax,%ecx
3084	subl	%ebp,%esi
3085	andl	$4278124286,%edx
3086	andl	$454761243,%esi
3087	roll	$8,%eax
3088	xorl	%esi,%edx
3089	movl	4(%edi),%ebp
3090	xorl	%ebx,%eax
3091	xorl	%edx,%ebx
3092	xorl	%ecx,%eax
3093	roll	$24,%ebx
3094	xorl	%edx,%ecx
3095	xorl	%edx,%eax
3096	roll	$16,%ecx
3097	xorl	%ebx,%eax
3098	roll	$8,%edx
3099	xorl	%ecx,%eax
3100	movl	%ebp,%ebx
3101	xorl	%edx,%eax
3102	movl	%eax,(%edi)
3103	movl	$2155905152,%ebp
3104	andl	%ebx,%ebp
3105	leal	(%ebx,%ebx,1),%ecx
3106	movl	%ebp,%esi
3107	shrl	$7,%ebp
3108	subl	%ebp,%esi
3109	andl	$4278124286,%ecx
3110	andl	$454761243,%esi
3111	xorl	%esi,%ecx
3112	movl	$2155905152,%ebp
3113	andl	%ecx,%ebp
3114	leal	(%ecx,%ecx,1),%edx
3115	movl	%ebp,%esi
3116	shrl	$7,%ebp
3117	subl	%ebp,%esi
3118	andl	$4278124286,%edx
3119	andl	$454761243,%esi
3120	xorl	%ebx,%ecx
3121	xorl	%esi,%edx
3122	movl	$2155905152,%ebp
3123	andl	%edx,%ebp
3124	leal	(%edx,%edx,1),%eax
3125	movl	%ebp,%esi
3126	shrl	$7,%ebp
3127	xorl	%ebx,%edx
3128	subl	%ebp,%esi
3129	andl	$4278124286,%eax
3130	andl	$454761243,%esi
3131	roll	$8,%ebx
3132	xorl	%esi,%eax
3133	movl	8(%edi),%ebp
3134	xorl	%ecx,%ebx
3135	xorl	%eax,%ecx
3136	xorl	%edx,%ebx
3137	roll	$24,%ecx
3138	xorl	%eax,%edx
3139	xorl	%eax,%ebx
3140	roll	$16,%edx
3141	xorl	%ecx,%ebx
3142	roll	$8,%eax
3143	xorl	%edx,%ebx
3144	movl	%ebp,%ecx
3145	xorl	%eax,%ebx
3146	movl	%ebx,4(%edi)
3147	movl	$2155905152,%ebp
3148	andl	%ecx,%ebp
3149	leal	(%ecx,%ecx,1),%edx
3150	movl	%ebp,%esi
3151	shrl	$7,%ebp
3152	subl	%ebp,%esi
3153	andl	$4278124286,%edx
3154	andl	$454761243,%esi
3155	xorl	%esi,%edx
3156	movl	$2155905152,%ebp
3157	andl	%edx,%ebp
3158	leal	(%edx,%edx,1),%eax
3159	movl	%ebp,%esi
3160	shrl	$7,%ebp
3161	subl	%ebp,%esi
3162	andl	$4278124286,%eax
3163	andl	$454761243,%esi
3164	xorl	%ecx,%edx
3165	xorl	%esi,%eax
3166	movl	$2155905152,%ebp
3167	andl	%eax,%ebp
3168	leal	(%eax,%eax,1),%ebx
3169	movl	%ebp,%esi
3170	shrl	$7,%ebp
3171	xorl	%ecx,%eax
3172	subl	%ebp,%esi
3173	andl	$4278124286,%ebx
3174	andl	$454761243,%esi
3175	roll	$8,%ecx
3176	xorl	%esi,%ebx
3177	movl	12(%edi),%ebp
3178	xorl	%edx,%ecx
3179	xorl	%ebx,%edx
3180	xorl	%eax,%ecx
3181	roll	$24,%edx
3182	xorl	%ebx,%eax
3183	xorl	%ebx,%ecx
3184	roll	$16,%eax
3185	xorl	%edx,%ecx
3186	roll	$8,%ebx
3187	xorl	%eax,%ecx
3188	movl	%ebp,%edx
3189	xorl	%ebx,%ecx
3190	movl	%ecx,8(%edi)
3191	movl	$2155905152,%ebp
3192	andl	%edx,%ebp
3193	leal	(%edx,%edx,1),%eax
3194	movl	%ebp,%esi
3195	shrl	$7,%ebp
3196	subl	%ebp,%esi
3197	andl	$4278124286,%eax
3198	andl	$454761243,%esi
3199	xorl	%esi,%eax
3200	movl	$2155905152,%ebp
3201	andl	%eax,%ebp
3202	leal	(%eax,%eax,1),%ebx
3203	movl	%ebp,%esi
3204	shrl	$7,%ebp
3205	subl	%ebp,%esi
3206	andl	$4278124286,%ebx
3207	andl	$454761243,%esi
3208	xorl	%edx,%eax
3209	xorl	%esi,%ebx
3210	movl	$2155905152,%ebp
3211	andl	%ebx,%ebp
3212	leal	(%ebx,%ebx,1),%ecx
3213	movl	%ebp,%esi
3214	shrl	$7,%ebp
3215	xorl	%edx,%ebx
3216	subl	%ebp,%esi
3217	andl	$4278124286,%ecx
3218	andl	$454761243,%esi
3219	roll	$8,%edx
3220	xorl	%esi,%ecx
3221	movl	16(%edi),%ebp
3222	xorl	%eax,%edx
3223	xorl	%ecx,%eax
3224	xorl	%ebx,%edx
3225	roll	$24,%eax
3226	xorl	%ecx,%ebx
3227	xorl	%ecx,%edx
3228	roll	$16,%ebx
3229	xorl	%eax,%edx
3230	roll	$8,%ecx
3231	xorl	%ebx,%edx
3232	movl	%ebp,%eax
3233	xorl	%ecx,%edx
3234	movl	%edx,12(%edi)
3235	cmpl	28(%esp),%edi
3236	jb	.L056permute
3237	xorl	%eax,%eax
3238	popl	%edi
3239	popl	%esi
3240	popl	%ebx
3241	popl	%ebp
3242	ret
3243.size	private_AES_set_decrypt_key,.-.L_private_AES_set_decrypt_key_begin
3244.byte	65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89
3245.byte	80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
3246.byte	111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
3247.comm	OPENSSL_ia32cap_P,16,4
3248#else
3249.file	"aes-586.S"
3250.text
3251.type	_x86_AES_encrypt_compact,@function
3252.align	16
3253_x86_AES_encrypt_compact:
3254	movl	%edi,20(%esp)
3255	xorl	(%edi),%eax
3256	xorl	4(%edi),%ebx
3257	xorl	8(%edi),%ecx
3258	xorl	12(%edi),%edx
3259	movl	240(%edi),%esi
3260	leal	-2(%esi,%esi,1),%esi
3261	leal	(%edi,%esi,8),%esi
3262	movl	%esi,24(%esp)
3263	movl	-128(%ebp),%edi
3264	movl	-96(%ebp),%esi
3265	movl	-64(%ebp),%edi
3266	movl	-32(%ebp),%esi
3267	movl	(%ebp),%edi
3268	movl	32(%ebp),%esi
3269	movl	64(%ebp),%edi
3270	movl	96(%ebp),%esi
3271.align	16
3272.L000loop:
3273	movl	%eax,%esi
3274	andl	$255,%esi
3275	movzbl	-128(%ebp,%esi,1),%esi
3276	movzbl	%bh,%edi
3277	movzbl	-128(%ebp,%edi,1),%edi
3278	shll	$8,%edi
3279	xorl	%edi,%esi
3280	movl	%ecx,%edi
3281	shrl	$16,%edi
3282	andl	$255,%edi
3283	movzbl	-128(%ebp,%edi,1),%edi
3284	shll	$16,%edi
3285	xorl	%edi,%esi
3286	movl	%edx,%edi
3287	shrl	$24,%edi
3288	movzbl	-128(%ebp,%edi,1),%edi
3289	shll	$24,%edi
3290	xorl	%edi,%esi
3291	movl	%esi,4(%esp)
3292
3293	movl	%ebx,%esi
3294	andl	$255,%esi
3295	shrl	$16,%ebx
3296	movzbl	-128(%ebp,%esi,1),%esi
3297	movzbl	%ch,%edi
3298	movzbl	-128(%ebp,%edi,1),%edi
3299	shll	$8,%edi
3300	xorl	%edi,%esi
3301	movl	%edx,%edi
3302	shrl	$16,%edi
3303	andl	$255,%edi
3304	movzbl	-128(%ebp,%edi,1),%edi
3305	shll	$16,%edi
3306	xorl	%edi,%esi
3307	movl	%eax,%edi
3308	shrl	$24,%edi
3309	movzbl	-128(%ebp,%edi,1),%edi
3310	shll	$24,%edi
3311	xorl	%edi,%esi
3312	movl	%esi,8(%esp)
3313
3314	movl	%ecx,%esi
3315	andl	$255,%esi
3316	shrl	$24,%ecx
3317	movzbl	-128(%ebp,%esi,1),%esi
3318	movzbl	%dh,%edi
3319	movzbl	-128(%ebp,%edi,1),%edi
3320	shll	$8,%edi
3321	xorl	%edi,%esi
3322	movl	%eax,%edi
3323	shrl	$16,%edi
3324	andl	$255,%edx
3325	andl	$255,%edi
3326	movzbl	-128(%ebp,%edi,1),%edi
3327	shll	$16,%edi
3328	xorl	%edi,%esi
3329	movzbl	%bh,%edi
3330	movzbl	-128(%ebp,%edi,1),%edi
3331	shll	$24,%edi
3332	xorl	%edi,%esi
3333
3334	andl	$255,%edx
3335	movzbl	-128(%ebp,%edx,1),%edx
3336	movzbl	%ah,%eax
3337	movzbl	-128(%ebp,%eax,1),%eax
3338	shll	$8,%eax
3339	xorl	%eax,%edx
3340	movl	4(%esp),%eax
3341	andl	$255,%ebx
3342	movzbl	-128(%ebp,%ebx,1),%ebx
3343	shll	$16,%ebx
3344	xorl	%ebx,%edx
3345	movl	8(%esp),%ebx
3346	movzbl	-128(%ebp,%ecx,1),%ecx
3347	shll	$24,%ecx
3348	xorl	%ecx,%edx
3349	movl	%esi,%ecx
3350
3351	movl	$2155905152,%ebp
3352	andl	%ecx,%ebp
3353	leal	(%ecx,%ecx,1),%edi
3354	movl	%ebp,%esi
3355	shrl	$7,%ebp
3356	andl	$4278124286,%edi
3357	subl	%ebp,%esi
3358	movl	%ecx,%ebp
3359	andl	$454761243,%esi
3360	rorl	$16,%ebp
3361	xorl	%edi,%esi
3362	movl	%ecx,%edi
3363	xorl	%esi,%ecx
3364	rorl	$24,%edi
3365	xorl	%ebp,%esi
3366	roll	$24,%ecx
3367	xorl	%edi,%esi
3368	movl	$2155905152,%ebp
3369	xorl	%esi,%ecx
3370	andl	%edx,%ebp
3371	leal	(%edx,%edx,1),%edi
3372	movl	%ebp,%esi
3373	shrl	$7,%ebp
3374	andl	$4278124286,%edi
3375	subl	%ebp,%esi
3376	movl	%edx,%ebp
3377	andl	$454761243,%esi
3378	rorl	$16,%ebp
3379	xorl	%edi,%esi
3380	movl	%edx,%edi
3381	xorl	%esi,%edx
3382	rorl	$24,%edi
3383	xorl	%ebp,%esi
3384	roll	$24,%edx
3385	xorl	%edi,%esi
3386	movl	$2155905152,%ebp
3387	xorl	%esi,%edx
3388	andl	%eax,%ebp
3389	leal	(%eax,%eax,1),%edi
3390	movl	%ebp,%esi
3391	shrl	$7,%ebp
3392	andl	$4278124286,%edi
3393	subl	%ebp,%esi
3394	movl	%eax,%ebp
3395	andl	$454761243,%esi
3396	rorl	$16,%ebp
3397	xorl	%edi,%esi
3398	movl	%eax,%edi
3399	xorl	%esi,%eax
3400	rorl	$24,%edi
3401	xorl	%ebp,%esi
3402	roll	$24,%eax
3403	xorl	%edi,%esi
3404	movl	$2155905152,%ebp
3405	xorl	%esi,%eax
3406	andl	%ebx,%ebp
3407	leal	(%ebx,%ebx,1),%edi
3408	movl	%ebp,%esi
3409	shrl	$7,%ebp
3410	andl	$4278124286,%edi
3411	subl	%ebp,%esi
3412	movl	%ebx,%ebp
3413	andl	$454761243,%esi
3414	rorl	$16,%ebp
3415	xorl	%edi,%esi
3416	movl	%ebx,%edi
3417	xorl	%esi,%ebx
3418	rorl	$24,%edi
3419	xorl	%ebp,%esi
3420	roll	$24,%ebx
3421	xorl	%edi,%esi
3422	xorl	%esi,%ebx
3423	movl	20(%esp),%edi
3424	movl	28(%esp),%ebp
3425	addl	$16,%edi
3426	xorl	(%edi),%eax
3427	xorl	4(%edi),%ebx
3428	xorl	8(%edi),%ecx
3429	xorl	12(%edi),%edx
3430	cmpl	24(%esp),%edi
3431	movl	%edi,20(%esp)
3432	jb	.L000loop
3433	movl	%eax,%esi
3434	andl	$255,%esi
3435	movzbl	-128(%ebp,%esi,1),%esi
3436	movzbl	%bh,%edi
3437	movzbl	-128(%ebp,%edi,1),%edi
3438	shll	$8,%edi
3439	xorl	%edi,%esi
3440	movl	%ecx,%edi
3441	shrl	$16,%edi
3442	andl	$255,%edi
3443	movzbl	-128(%ebp,%edi,1),%edi
3444	shll	$16,%edi
3445	xorl	%edi,%esi
3446	movl	%edx,%edi
3447	shrl	$24,%edi
3448	movzbl	-128(%ebp,%edi,1),%edi
3449	shll	$24,%edi
3450	xorl	%edi,%esi
3451	movl	%esi,4(%esp)
3452
3453	movl	%ebx,%esi
3454	andl	$255,%esi
3455	shrl	$16,%ebx
3456	movzbl	-128(%ebp,%esi,1),%esi
3457	movzbl	%ch,%edi
3458	movzbl	-128(%ebp,%edi,1),%edi
3459	shll	$8,%edi
3460	xorl	%edi,%esi
3461	movl	%edx,%edi
3462	shrl	$16,%edi
3463	andl	$255,%edi
3464	movzbl	-128(%ebp,%edi,1),%edi
3465	shll	$16,%edi
3466	xorl	%edi,%esi
3467	movl	%eax,%edi
3468	shrl	$24,%edi
3469	movzbl	-128(%ebp,%edi,1),%edi
3470	shll	$24,%edi
3471	xorl	%edi,%esi
3472	movl	%esi,8(%esp)
3473
3474	movl	%ecx,%esi
3475	andl	$255,%esi
3476	shrl	$24,%ecx
3477	movzbl	-128(%ebp,%esi,1),%esi
3478	movzbl	%dh,%edi
3479	movzbl	-128(%ebp,%edi,1),%edi
3480	shll	$8,%edi
3481	xorl	%edi,%esi
3482	movl	%eax,%edi
3483	shrl	$16,%edi
3484	andl	$255,%edx
3485	andl	$255,%edi
3486	movzbl	-128(%ebp,%edi,1),%edi
3487	shll	$16,%edi
3488	xorl	%edi,%esi
3489	movzbl	%bh,%edi
3490	movzbl	-128(%ebp,%edi,1),%edi
3491	shll	$24,%edi
3492	xorl	%edi,%esi
3493
3494	movl	20(%esp),%edi
3495	andl	$255,%edx
3496	movzbl	-128(%ebp,%edx,1),%edx
3497	movzbl	%ah,%eax
3498	movzbl	-128(%ebp,%eax,1),%eax
3499	shll	$8,%eax
3500	xorl	%eax,%edx
3501	movl	4(%esp),%eax
3502	andl	$255,%ebx
3503	movzbl	-128(%ebp,%ebx,1),%ebx
3504	shll	$16,%ebx
3505	xorl	%ebx,%edx
3506	movl	8(%esp),%ebx
3507	movzbl	-128(%ebp,%ecx,1),%ecx
3508	shll	$24,%ecx
3509	xorl	%ecx,%edx
3510	movl	%esi,%ecx
3511
3512	xorl	16(%edi),%eax
3513	xorl	20(%edi),%ebx
3514	xorl	24(%edi),%ecx
3515	xorl	28(%edi),%edx
3516	ret
3517.size	_x86_AES_encrypt_compact,.-_x86_AES_encrypt_compact
3518.type	_sse_AES_encrypt_compact,@function
3519.align	16
3520_sse_AES_encrypt_compact:
3521	pxor	(%edi),%mm0
3522	pxor	8(%edi),%mm4
3523	movl	240(%edi),%esi
3524	leal	-2(%esi,%esi,1),%esi
3525	leal	(%edi,%esi,8),%esi
3526	movl	%esi,24(%esp)
3527	movl	$454761243,%eax
3528	movl	%eax,8(%esp)
3529	movl	%eax,12(%esp)
3530	movl	-128(%ebp),%eax
3531	movl	-96(%ebp),%ebx
3532	movl	-64(%ebp),%ecx
3533	movl	-32(%ebp),%edx
3534	movl	(%ebp),%eax
3535	movl	32(%ebp),%ebx
3536	movl	64(%ebp),%ecx
3537	movl	96(%ebp),%edx
3538.align	16
3539.L001loop:
3540	pshufw	$8,%mm0,%mm1
3541	pshufw	$13,%mm4,%mm5
3542	movd	%mm1,%eax
3543	movd	%mm5,%ebx
3544	movl	%edi,20(%esp)
3545	movzbl	%al,%esi
3546	movzbl	%ah,%edx
3547	pshufw	$13,%mm0,%mm2
3548	movzbl	-128(%ebp,%esi,1),%ecx
3549	movzbl	%bl,%edi
3550	movzbl	-128(%ebp,%edx,1),%edx
3551	shrl	$16,%eax
3552	shll	$8,%edx
3553	movzbl	-128(%ebp,%edi,1),%esi
3554	movzbl	%bh,%edi
3555	shll	$16,%esi
3556	pshufw	$8,%mm4,%mm6
3557	orl	%esi,%ecx
3558	movzbl	-128(%ebp,%edi,1),%esi
3559	movzbl	%ah,%edi
3560	shll	$24,%esi
3561	shrl	$16,%ebx
3562	orl	%esi,%edx
3563	movzbl	-128(%ebp,%edi,1),%esi
3564	movzbl	%bh,%edi
3565	shll	$8,%esi
3566	orl	%esi,%ecx
3567	movzbl	-128(%ebp,%edi,1),%esi
3568	movzbl	%al,%edi
3569	shll	$24,%esi
3570	orl	%esi,%ecx
3571	movzbl	-128(%ebp,%edi,1),%esi
3572	movzbl	%bl,%edi
3573	movd	%mm2,%eax
3574	movd	%ecx,%mm0
3575	movzbl	-128(%ebp,%edi,1),%ecx
3576	movzbl	%ah,%edi
3577	shll	$16,%ecx
3578	movd	%mm6,%ebx
3579	orl	%esi,%ecx
3580	movzbl	-128(%ebp,%edi,1),%esi
3581	movzbl	%bh,%edi
3582	shll	$24,%esi
3583	orl	%esi,%ecx
3584	movzbl	-128(%ebp,%edi,1),%esi
3585	movzbl	%bl,%edi
3586	shll	$8,%esi
3587	shrl	$16,%ebx
3588	orl	%esi,%ecx
3589	movzbl	-128(%ebp,%edi,1),%esi
3590	movzbl	%al,%edi
3591	shrl	$16,%eax
3592	movd	%ecx,%mm1
3593	movzbl	-128(%ebp,%edi,1),%ecx
3594	movzbl	%ah,%edi
3595	shll	$16,%ecx
3596	andl	$255,%eax
3597	orl	%esi,%ecx
3598	punpckldq	%mm1,%mm0
3599	movzbl	-128(%ebp,%edi,1),%esi
3600	movzbl	%bh,%edi
3601	shll	$24,%esi
3602	andl	$255,%ebx
3603	movzbl	-128(%ebp,%eax,1),%eax
3604	orl	%esi,%ecx
3605	shll	$16,%eax
3606	movzbl	-128(%ebp,%edi,1),%esi
3607	orl	%eax,%edx
3608	shll	$8,%esi
3609	movzbl	-128(%ebp,%ebx,1),%ebx
3610	orl	%esi,%ecx
3611	orl	%ebx,%edx
3612	movl	20(%esp),%edi
3613	movd	%ecx,%mm4
3614	movd	%edx,%mm5
3615	punpckldq	%mm5,%mm4
3616	addl	$16,%edi
3617	cmpl	24(%esp),%edi
3618	ja	.L002out
3619	movq	8(%esp),%mm2
3620	pxor	%mm3,%mm3
3621	pxor	%mm7,%mm7
3622	movq	%mm0,%mm1
3623	movq	%mm4,%mm5
3624	pcmpgtb	%mm0,%mm3
3625	pcmpgtb	%mm4,%mm7
3626	pand	%mm2,%mm3
3627	pand	%mm2,%mm7
3628	pshufw	$177,%mm0,%mm2
3629	pshufw	$177,%mm4,%mm6
3630	paddb	%mm0,%mm0
3631	paddb	%mm4,%mm4
3632	pxor	%mm3,%mm0
3633	pxor	%mm7,%mm4
3634	pshufw	$177,%mm2,%mm3
3635	pshufw	$177,%mm6,%mm7
3636	pxor	%mm0,%mm1
3637	pxor	%mm4,%mm5
3638	pxor	%mm2,%mm0
3639	pxor	%mm6,%mm4
3640	movq	%mm3,%mm2
3641	movq	%mm7,%mm6
3642	pslld	$8,%mm3
3643	pslld	$8,%mm7
3644	psrld	$24,%mm2
3645	psrld	$24,%mm6
3646	pxor	%mm3,%mm0
3647	pxor	%mm7,%mm4
3648	pxor	%mm2,%mm0
3649	pxor	%mm6,%mm4
3650	movq	%mm1,%mm3
3651	movq	%mm5,%mm7
3652	movq	(%edi),%mm2
3653	movq	8(%edi),%mm6
3654	psrld	$8,%mm1
3655	psrld	$8,%mm5
3656	movl	-128(%ebp),%eax
3657	pslld	$24,%mm3
3658	pslld	$24,%mm7
3659	movl	-64(%ebp),%ebx
3660	pxor	%mm1,%mm0
3661	pxor	%mm5,%mm4
3662	movl	(%ebp),%ecx
3663	pxor	%mm3,%mm0
3664	pxor	%mm7,%mm4
3665	movl	64(%ebp),%edx
3666	pxor	%mm2,%mm0
3667	pxor	%mm6,%mm4
3668	jmp	.L001loop
3669.align	16
3670.L002out:
3671	pxor	(%edi),%mm0
3672	pxor	8(%edi),%mm4
3673	ret
3674.size	_sse_AES_encrypt_compact,.-_sse_AES_encrypt_compact
3675.type	_x86_AES_encrypt,@function
3676.align	16
3677_x86_AES_encrypt:
3678	movl	%edi,20(%esp)
3679	xorl	(%edi),%eax
3680	xorl	4(%edi),%ebx
3681	xorl	8(%edi),%ecx
3682	xorl	12(%edi),%edx
3683	movl	240(%edi),%esi
3684	leal	-2(%esi,%esi,1),%esi
3685	leal	(%edi,%esi,8),%esi
3686	movl	%esi,24(%esp)
3687.align	16
3688.L003loop:
3689	movl	%eax,%esi
3690	andl	$255,%esi
3691	movl	(%ebp,%esi,8),%esi
3692	movzbl	%bh,%edi
3693	xorl	3(%ebp,%edi,8),%esi
3694	movl	%ecx,%edi
3695	shrl	$16,%edi
3696	andl	$255,%edi
3697	xorl	2(%ebp,%edi,8),%esi
3698	movl	%edx,%edi
3699	shrl	$24,%edi
3700	xorl	1(%ebp,%edi,8),%esi
3701	movl	%esi,4(%esp)
3702
3703	movl	%ebx,%esi
3704	andl	$255,%esi
3705	shrl	$16,%ebx
3706	movl	(%ebp,%esi,8),%esi
3707	movzbl	%ch,%edi
3708	xorl	3(%ebp,%edi,8),%esi
3709	movl	%edx,%edi
3710	shrl	$16,%edi
3711	andl	$255,%edi
3712	xorl	2(%ebp,%edi,8),%esi
3713	movl	%eax,%edi
3714	shrl	$24,%edi
3715	xorl	1(%ebp,%edi,8),%esi
3716	movl	%esi,8(%esp)
3717
3718	movl	%ecx,%esi
3719	andl	$255,%esi
3720	shrl	$24,%ecx
3721	movl	(%ebp,%esi,8),%esi
3722	movzbl	%dh,%edi
3723	xorl	3(%ebp,%edi,8),%esi
3724	movl	%eax,%edi
3725	shrl	$16,%edi
3726	andl	$255,%edx
3727	andl	$255,%edi
3728	xorl	2(%ebp,%edi,8),%esi
3729	movzbl	%bh,%edi
3730	xorl	1(%ebp,%edi,8),%esi
3731
3732	movl	20(%esp),%edi
3733	movl	(%ebp,%edx,8),%edx
3734	movzbl	%ah,%eax
3735	xorl	3(%ebp,%eax,8),%edx
3736	movl	4(%esp),%eax
3737	andl	$255,%ebx
3738	xorl	2(%ebp,%ebx,8),%edx
3739	movl	8(%esp),%ebx
3740	xorl	1(%ebp,%ecx,8),%edx
3741	movl	%esi,%ecx
3742
3743	addl	$16,%edi
3744	xorl	(%edi),%eax
3745	xorl	4(%edi),%ebx
3746	xorl	8(%edi),%ecx
3747	xorl	12(%edi),%edx
3748	cmpl	24(%esp),%edi
3749	movl	%edi,20(%esp)
3750	jb	.L003loop
3751	movl	%eax,%esi
3752	andl	$255,%esi
3753	movl	2(%ebp,%esi,8),%esi
3754	andl	$255,%esi
3755	movzbl	%bh,%edi
3756	movl	(%ebp,%edi,8),%edi
3757	andl	$65280,%edi
3758	xorl	%edi,%esi
3759	movl	%ecx,%edi
3760	shrl	$16,%edi
3761	andl	$255,%edi
3762	movl	(%ebp,%edi,8),%edi
3763	andl	$16711680,%edi
3764	xorl	%edi,%esi
3765	movl	%edx,%edi
3766	shrl	$24,%edi
3767	movl	2(%ebp,%edi,8),%edi
3768	andl	$4278190080,%edi
3769	xorl	%edi,%esi
3770	movl	%esi,4(%esp)
3771	movl	%ebx,%esi
3772	andl	$255,%esi
3773	shrl	$16,%ebx
3774	movl	2(%ebp,%esi,8),%esi
3775	andl	$255,%esi
3776	movzbl	%ch,%edi
3777	movl	(%ebp,%edi,8),%edi
3778	andl	$65280,%edi
3779	xorl	%edi,%esi
3780	movl	%edx,%edi
3781	shrl	$16,%edi
3782	andl	$255,%edi
3783	movl	(%ebp,%edi,8),%edi
3784	andl	$16711680,%edi
3785	xorl	%edi,%esi
3786	movl	%eax,%edi
3787	shrl	$24,%edi
3788	movl	2(%ebp,%edi,8),%edi
3789	andl	$4278190080,%edi
3790	xorl	%edi,%esi
3791	movl	%esi,8(%esp)
3792	movl	%ecx,%esi
3793	andl	$255,%esi
3794	shrl	$24,%ecx
3795	movl	2(%ebp,%esi,8),%esi
3796	andl	$255,%esi
3797	movzbl	%dh,%edi
3798	movl	(%ebp,%edi,8),%edi
3799	andl	$65280,%edi
3800	xorl	%edi,%esi
3801	movl	%eax,%edi
3802	shrl	$16,%edi
3803	andl	$255,%edx
3804	andl	$255,%edi
3805	movl	(%ebp,%edi,8),%edi
3806	andl	$16711680,%edi
3807	xorl	%edi,%esi
3808	movzbl	%bh,%edi
3809	movl	2(%ebp,%edi,8),%edi
3810	andl	$4278190080,%edi
3811	xorl	%edi,%esi
3812	movl	20(%esp),%edi
3813	andl	$255,%edx
3814	movl	2(%ebp,%edx,8),%edx
3815	andl	$255,%edx
3816	movzbl	%ah,%eax
3817	movl	(%ebp,%eax,8),%eax
3818	andl	$65280,%eax
3819	xorl	%eax,%edx
3820	movl	4(%esp),%eax
3821	andl	$255,%ebx
3822	movl	(%ebp,%ebx,8),%ebx
3823	andl	$16711680,%ebx
3824	xorl	%ebx,%edx
3825	movl	8(%esp),%ebx
3826	movl	2(%ebp,%ecx,8),%ecx
3827	andl	$4278190080,%ecx
3828	xorl	%ecx,%edx
3829	movl	%esi,%ecx
3830	addl	$16,%edi
3831	xorl	(%edi),%eax
3832	xorl	4(%edi),%ebx
3833	xorl	8(%edi),%ecx
3834	xorl	12(%edi),%edx
3835	ret
3836.align	64
3837.LAES_Te:
3838.long	2774754246,2774754246
3839.long	2222750968,2222750968
3840.long	2574743534,2574743534
3841.long	2373680118,2373680118
3842.long	234025727,234025727
3843.long	3177933782,3177933782
3844.long	2976870366,2976870366
3845.long	1422247313,1422247313
3846.long	1345335392,1345335392
3847.long	50397442,50397442
3848.long	2842126286,2842126286
3849.long	2099981142,2099981142
3850.long	436141799,436141799
3851.long	1658312629,1658312629
3852.long	3870010189,3870010189
3853.long	2591454956,2591454956
3854.long	1170918031,1170918031
3855.long	2642575903,2642575903
3856.long	1086966153,1086966153
3857.long	2273148410,2273148410
3858.long	368769775,368769775
3859.long	3948501426,3948501426
3860.long	3376891790,3376891790
3861.long	200339707,200339707
3862.long	3970805057,3970805057
3863.long	1742001331,1742001331
3864.long	4255294047,4255294047
3865.long	3937382213,3937382213
3866.long	3214711843,3214711843
3867.long	4154762323,4154762323
3868.long	2524082916,2524082916
3869.long	1539358875,1539358875
3870.long	3266819957,3266819957
3871.long	486407649,486407649
3872.long	2928907069,2928907069
3873.long	1780885068,1780885068
3874.long	1513502316,1513502316
3875.long	1094664062,1094664062
3876.long	49805301,49805301
3877.long	1338821763,1338821763
3878.long	1546925160,1546925160
3879.long	4104496465,4104496465
3880.long	887481809,887481809
3881.long	150073849,150073849
3882.long	2473685474,2473685474
3883.long	1943591083,1943591083
3884.long	1395732834,1395732834
3885.long	1058346282,1058346282
3886.long	201589768,201589768
3887.long	1388824469,1388824469
3888.long	1696801606,1696801606
3889.long	1589887901,1589887901
3890.long	672667696,672667696
3891.long	2711000631,2711000631
3892.long	251987210,251987210
3893.long	3046808111,3046808111
3894.long	151455502,151455502
3895.long	907153956,907153956
3896.long	2608889883,2608889883
3897.long	1038279391,1038279391
3898.long	652995533,652995533
3899.long	1764173646,1764173646
3900.long	3451040383,3451040383
3901.long	2675275242,2675275242
3902.long	453576978,453576978
3903.long	2659418909,2659418909
3904.long	1949051992,1949051992
3905.long	773462580,773462580
3906.long	756751158,756751158
3907.long	2993581788,2993581788
3908.long	3998898868,3998898868
3909.long	4221608027,4221608027
3910.long	4132590244,4132590244
3911.long	1295727478,1295727478
3912.long	1641469623,1641469623
3913.long	3467883389,3467883389
3914.long	2066295122,2066295122
3915.long	1055122397,1055122397
3916.long	1898917726,1898917726
3917.long	2542044179,2542044179
3918.long	4115878822,4115878822
3919.long	1758581177,1758581177
3920.long	0,0
3921.long	753790401,753790401
3922.long	1612718144,1612718144
3923.long	536673507,536673507
3924.long	3367088505,3367088505
3925.long	3982187446,3982187446
3926.long	3194645204,3194645204
3927.long	1187761037,1187761037
3928.long	3653156455,3653156455
3929.long	1262041458,1262041458
3930.long	3729410708,3729410708
3931.long	3561770136,3561770136
3932.long	3898103984,3898103984
3933.long	1255133061,1255133061
3934.long	1808847035,1808847035
3935.long	720367557,720367557
3936.long	3853167183,3853167183
3937.long	385612781,385612781
3938.long	3309519750,3309519750
3939.long	3612167578,3612167578
3940.long	1429418854,1429418854
3941.long	2491778321,2491778321
3942.long	3477423498,3477423498
3943.long	284817897,284817897
3944.long	100794884,100794884
3945.long	2172616702,2172616702
3946.long	4031795360,4031795360
3947.long	1144798328,1144798328
3948.long	3131023141,3131023141
3949.long	3819481163,3819481163
3950.long	4082192802,4082192802
3951.long	4272137053,4272137053
3952.long	3225436288,3225436288
3953.long	2324664069,2324664069
3954.long	2912064063,2912064063
3955.long	3164445985,3164445985
3956.long	1211644016,1211644016
3957.long	83228145,83228145
3958.long	3753688163,3753688163
3959.long	3249976951,3249976951
3960.long	1977277103,1977277103
3961.long	1663115586,1663115586
3962.long	806359072,806359072
3963.long	452984805,452984805
3964.long	250868733,250868733
3965.long	1842533055,1842533055
3966.long	1288555905,1288555905
3967.long	336333848,336333848
3968.long	890442534,890442534
3969.long	804056259,804056259
3970.long	3781124030,3781124030
3971.long	2727843637,2727843637
3972.long	3427026056,3427026056
3973.long	957814574,957814574
3974.long	1472513171,1472513171
3975.long	4071073621,4071073621
3976.long	2189328124,2189328124
3977.long	1195195770,1195195770
3978.long	2892260552,2892260552
3979.long	3881655738,3881655738
3980.long	723065138,723065138
3981.long	2507371494,2507371494
3982.long	2690670784,2690670784
3983.long	2558624025,2558624025
3984.long	3511635870,3511635870
3985.long	2145180835,2145180835
3986.long	1713513028,1713513028
3987.long	2116692564,2116692564
3988.long	2878378043,2878378043
3989.long	2206763019,2206763019
3990.long	3393603212,3393603212
3991.long	703524551,703524551
3992.long	3552098411,3552098411
3993.long	1007948840,1007948840
3994.long	2044649127,2044649127
3995.long	3797835452,3797835452
3996.long	487262998,487262998
3997.long	1994120109,1994120109
3998.long	1004593371,1004593371
3999.long	1446130276,1446130276
4000.long	1312438900,1312438900
4001.long	503974420,503974420
4002.long	3679013266,3679013266
4003.long	168166924,168166924
4004.long	1814307912,1814307912
4005.long	3831258296,3831258296
4006.long	1573044895,1573044895
4007.long	1859376061,1859376061
4008.long	4021070915,4021070915
4009.long	2791465668,2791465668
4010.long	2828112185,2828112185
4011.long	2761266481,2761266481
4012.long	937747667,937747667
4013.long	2339994098,2339994098
4014.long	854058965,854058965
4015.long	1137232011,1137232011
4016.long	1496790894,1496790894
4017.long	3077402074,3077402074
4018.long	2358086913,2358086913
4019.long	1691735473,1691735473
4020.long	3528347292,3528347292
4021.long	3769215305,3769215305
4022.long	3027004632,3027004632
4023.long	4199962284,4199962284
4024.long	133494003,133494003
4025.long	636152527,636152527
4026.long	2942657994,2942657994
4027.long	2390391540,2390391540
4028.long	3920539207,3920539207
4029.long	403179536,403179536
4030.long	3585784431,3585784431
4031.long	2289596656,2289596656
4032.long	1864705354,1864705354
4033.long	1915629148,1915629148
4034.long	605822008,605822008
4035.long	4054230615,4054230615
4036.long	3350508659,3350508659
4037.long	1371981463,1371981463
4038.long	602466507,602466507
4039.long	2094914977,2094914977
4040.long	2624877800,2624877800
4041.long	555687742,555687742
4042.long	3712699286,3712699286
4043.long	3703422305,3703422305
4044.long	2257292045,2257292045
4045.long	2240449039,2240449039
4046.long	2423288032,2423288032
4047.long	1111375484,1111375484
4048.long	3300242801,3300242801
4049.long	2858837708,2858837708
4050.long	3628615824,3628615824
4051.long	84083462,84083462
4052.long	32962295,32962295
4053.long	302911004,302911004
4054.long	2741068226,2741068226
4055.long	1597322602,1597322602
4056.long	4183250862,4183250862
4057.long	3501832553,3501832553
4058.long	2441512471,2441512471
4059.long	1489093017,1489093017
4060.long	656219450,656219450
4061.long	3114180135,3114180135
4062.long	954327513,954327513
4063.long	335083755,335083755
4064.long	3013122091,3013122091
4065.long	856756514,856756514
4066.long	3144247762,3144247762
4067.long	1893325225,1893325225
4068.long	2307821063,2307821063
4069.long	2811532339,2811532339
4070.long	3063651117,3063651117
4071.long	572399164,572399164
4072.long	2458355477,2458355477
4073.long	552200649,552200649
4074.long	1238290055,1238290055
4075.long	4283782570,4283782570
4076.long	2015897680,2015897680
4077.long	2061492133,2061492133
4078.long	2408352771,2408352771
4079.long	4171342169,4171342169
4080.long	2156497161,2156497161
4081.long	386731290,386731290
4082.long	3669999461,3669999461
4083.long	837215959,837215959
4084.long	3326231172,3326231172
4085.long	3093850320,3093850320
4086.long	3275833730,3275833730
4087.long	2962856233,2962856233
4088.long	1999449434,1999449434
4089.long	286199582,286199582
4090.long	3417354363,3417354363
4091.long	4233385128,4233385128
4092.long	3602627437,3602627437
4093.long	974525996,974525996
4094.byte	99,124,119,123,242,107,111,197
4095.byte	48,1,103,43,254,215,171,118
4096.byte	202,130,201,125,250,89,71,240
4097.byte	173,212,162,175,156,164,114,192
4098.byte	183,253,147,38,54,63,247,204
4099.byte	52,165,229,241,113,216,49,21
4100.byte	4,199,35,195,24,150,5,154
4101.byte	7,18,128,226,235,39,178,117
4102.byte	9,131,44,26,27,110,90,160
4103.byte	82,59,214,179,41,227,47,132
4104.byte	83,209,0,237,32,252,177,91
4105.byte	106,203,190,57,74,76,88,207
4106.byte	208,239,170,251,67,77,51,133
4107.byte	69,249,2,127,80,60,159,168
4108.byte	81,163,64,143,146,157,56,245
4109.byte	188,182,218,33,16,255,243,210
4110.byte	205,12,19,236,95,151,68,23
4111.byte	196,167,126,61,100,93,25,115
4112.byte	96,129,79,220,34,42,144,136
4113.byte	70,238,184,20,222,94,11,219
4114.byte	224,50,58,10,73,6,36,92
4115.byte	194,211,172,98,145,149,228,121
4116.byte	231,200,55,109,141,213,78,169
4117.byte	108,86,244,234,101,122,174,8
4118.byte	186,120,37,46,28,166,180,198
4119.byte	232,221,116,31,75,189,139,138
4120.byte	112,62,181,102,72,3,246,14
4121.byte	97,53,87,185,134,193,29,158
4122.byte	225,248,152,17,105,217,142,148
4123.byte	155,30,135,233,206,85,40,223
4124.byte	140,161,137,13,191,230,66,104
4125.byte	65,153,45,15,176,84,187,22
4126.byte	99,124,119,123,242,107,111,197
4127.byte	48,1,103,43,254,215,171,118
4128.byte	202,130,201,125,250,89,71,240
4129.byte	173,212,162,175,156,164,114,192
4130.byte	183,253,147,38,54,63,247,204
4131.byte	52,165,229,241,113,216,49,21
4132.byte	4,199,35,195,24,150,5,154
4133.byte	7,18,128,226,235,39,178,117
4134.byte	9,131,44,26,27,110,90,160
4135.byte	82,59,214,179,41,227,47,132
4136.byte	83,209,0,237,32,252,177,91
4137.byte	106,203,190,57,74,76,88,207
4138.byte	208,239,170,251,67,77,51,133
4139.byte	69,249,2,127,80,60,159,168
4140.byte	81,163,64,143,146,157,56,245
4141.byte	188,182,218,33,16,255,243,210
4142.byte	205,12,19,236,95,151,68,23
4143.byte	196,167,126,61,100,93,25,115
4144.byte	96,129,79,220,34,42,144,136
4145.byte	70,238,184,20,222,94,11,219
4146.byte	224,50,58,10,73,6,36,92
4147.byte	194,211,172,98,145,149,228,121
4148.byte	231,200,55,109,141,213,78,169
4149.byte	108,86,244,234,101,122,174,8
4150.byte	186,120,37,46,28,166,180,198
4151.byte	232,221,116,31,75,189,139,138
4152.byte	112,62,181,102,72,3,246,14
4153.byte	97,53,87,185,134,193,29,158
4154.byte	225,248,152,17,105,217,142,148
4155.byte	155,30,135,233,206,85,40,223
4156.byte	140,161,137,13,191,230,66,104
4157.byte	65,153,45,15,176,84,187,22
4158.byte	99,124,119,123,242,107,111,197
4159.byte	48,1,103,43,254,215,171,118
4160.byte	202,130,201,125,250,89,71,240
4161.byte	173,212,162,175,156,164,114,192
4162.byte	183,253,147,38,54,63,247,204
4163.byte	52,165,229,241,113,216,49,21
4164.byte	4,199,35,195,24,150,5,154
4165.byte	7,18,128,226,235,39,178,117
4166.byte	9,131,44,26,27,110,90,160
4167.byte	82,59,214,179,41,227,47,132
4168.byte	83,209,0,237,32,252,177,91
4169.byte	106,203,190,57,74,76,88,207
4170.byte	208,239,170,251,67,77,51,133
4171.byte	69,249,2,127,80,60,159,168
4172.byte	81,163,64,143,146,157,56,245
4173.byte	188,182,218,33,16,255,243,210
4174.byte	205,12,19,236,95,151,68,23
4175.byte	196,167,126,61,100,93,25,115
4176.byte	96,129,79,220,34,42,144,136
4177.byte	70,238,184,20,222,94,11,219
4178.byte	224,50,58,10,73,6,36,92
4179.byte	194,211,172,98,145,149,228,121
4180.byte	231,200,55,109,141,213,78,169
4181.byte	108,86,244,234,101,122,174,8
4182.byte	186,120,37,46,28,166,180,198
4183.byte	232,221,116,31,75,189,139,138
4184.byte	112,62,181,102,72,3,246,14
4185.byte	97,53,87,185,134,193,29,158
4186.byte	225,248,152,17,105,217,142,148
4187.byte	155,30,135,233,206,85,40,223
4188.byte	140,161,137,13,191,230,66,104
4189.byte	65,153,45,15,176,84,187,22
4190.byte	99,124,119,123,242,107,111,197
4191.byte	48,1,103,43,254,215,171,118
4192.byte	202,130,201,125,250,89,71,240
4193.byte	173,212,162,175,156,164,114,192
4194.byte	183,253,147,38,54,63,247,204
4195.byte	52,165,229,241,113,216,49,21
4196.byte	4,199,35,195,24,150,5,154
4197.byte	7,18,128,226,235,39,178,117
4198.byte	9,131,44,26,27,110,90,160
4199.byte	82,59,214,179,41,227,47,132
4200.byte	83,209,0,237,32,252,177,91
4201.byte	106,203,190,57,74,76,88,207
4202.byte	208,239,170,251,67,77,51,133
4203.byte	69,249,2,127,80,60,159,168
4204.byte	81,163,64,143,146,157,56,245
4205.byte	188,182,218,33,16,255,243,210
4206.byte	205,12,19,236,95,151,68,23
4207.byte	196,167,126,61,100,93,25,115
4208.byte	96,129,79,220,34,42,144,136
4209.byte	70,238,184,20,222,94,11,219
4210.byte	224,50,58,10,73,6,36,92
4211.byte	194,211,172,98,145,149,228,121
4212.byte	231,200,55,109,141,213,78,169
4213.byte	108,86,244,234,101,122,174,8
4214.byte	186,120,37,46,28,166,180,198
4215.byte	232,221,116,31,75,189,139,138
4216.byte	112,62,181,102,72,3,246,14
4217.byte	97,53,87,185,134,193,29,158
4218.byte	225,248,152,17,105,217,142,148
4219.byte	155,30,135,233,206,85,40,223
4220.byte	140,161,137,13,191,230,66,104
4221.byte	65,153,45,15,176,84,187,22
4222.long	1,2,4,8
4223.long	16,32,64,128
4224.long	27,54,0,0
4225.long	0,0,0,0
4226.size	_x86_AES_encrypt,.-_x86_AES_encrypt
4227.globl	AES_encrypt
4228.type	AES_encrypt,@function
4229.align	16
4230AES_encrypt:
4231.L_AES_encrypt_begin:
4232	pushl	%ebp
4233	pushl	%ebx
4234	pushl	%esi
4235	pushl	%edi
4236	movl	20(%esp),%esi
4237	movl	28(%esp),%edi
4238	movl	%esp,%eax
4239	subl	$36,%esp
4240	andl	$-64,%esp
4241	leal	-127(%edi),%ebx
4242	subl	%esp,%ebx
4243	negl	%ebx
4244	andl	$960,%ebx
4245	subl	%ebx,%esp
4246	addl	$4,%esp
4247	movl	%eax,28(%esp)
4248	call	.L004pic_point
4249.L004pic_point:
4250	popl	%ebp
4251	leal	OPENSSL_ia32cap_P,%eax
4252	leal	.LAES_Te-.L004pic_point(%ebp),%ebp
4253	leal	764(%esp),%ebx
4254	subl	%ebp,%ebx
4255	andl	$768,%ebx
4256	leal	2176(%ebp,%ebx,1),%ebp
4257	btl	$25,(%eax)
4258	jnc	.L005x86
4259	movq	(%esi),%mm0
4260	movq	8(%esi),%mm4
4261	call	_sse_AES_encrypt_compact
4262	movl	28(%esp),%esp
4263	movl	24(%esp),%esi
4264	movq	%mm0,(%esi)
4265	movq	%mm4,8(%esi)
4266	emms
4267	popl	%edi
4268	popl	%esi
4269	popl	%ebx
4270	popl	%ebp
4271	ret
4272.align	16
4273.L005x86:
4274	movl	%ebp,24(%esp)
4275	movl	(%esi),%eax
4276	movl	4(%esi),%ebx
4277	movl	8(%esi),%ecx
4278	movl	12(%esi),%edx
4279	call	_x86_AES_encrypt_compact
4280	movl	28(%esp),%esp
4281	movl	24(%esp),%esi
4282	movl	%eax,(%esi)
4283	movl	%ebx,4(%esi)
4284	movl	%ecx,8(%esi)
4285	movl	%edx,12(%esi)
4286	popl	%edi
4287	popl	%esi
4288	popl	%ebx
4289	popl	%ebp
4290	ret
4291.size	AES_encrypt,.-.L_AES_encrypt_begin
4292.type	_x86_AES_decrypt_compact,@function
4293.align	16
4294_x86_AES_decrypt_compact:
4295	movl	%edi,20(%esp)
4296	xorl	(%edi),%eax
4297	xorl	4(%edi),%ebx
4298	xorl	8(%edi),%ecx
4299	xorl	12(%edi),%edx
4300	movl	240(%edi),%esi
4301	leal	-2(%esi,%esi,1),%esi
4302	leal	(%edi,%esi,8),%esi
4303	movl	%esi,24(%esp)
4304	movl	-128(%ebp),%edi
4305	movl	-96(%ebp),%esi
4306	movl	-64(%ebp),%edi
4307	movl	-32(%ebp),%esi
4308	movl	(%ebp),%edi
4309	movl	32(%ebp),%esi
4310	movl	64(%ebp),%edi
4311	movl	96(%ebp),%esi
4312.align	16
4313.L006loop:
4314	movl	%eax,%esi
4315	andl	$255,%esi
4316	movzbl	-128(%ebp,%esi,1),%esi
4317	movzbl	%dh,%edi
4318	movzbl	-128(%ebp,%edi,1),%edi
4319	shll	$8,%edi
4320	xorl	%edi,%esi
4321	movl	%ecx,%edi
4322	shrl	$16,%edi
4323	andl	$255,%edi
4324	movzbl	-128(%ebp,%edi,1),%edi
4325	shll	$16,%edi
4326	xorl	%edi,%esi
4327	movl	%ebx,%edi
4328	shrl	$24,%edi
4329	movzbl	-128(%ebp,%edi,1),%edi
4330	shll	$24,%edi
4331	xorl	%edi,%esi
4332	movl	%esi,4(%esp)
4333	movl	%ebx,%esi
4334	andl	$255,%esi
4335	movzbl	-128(%ebp,%esi,1),%esi
4336	movzbl	%ah,%edi
4337	movzbl	-128(%ebp,%edi,1),%edi
4338	shll	$8,%edi
4339	xorl	%edi,%esi
4340	movl	%edx,%edi
4341	shrl	$16,%edi
4342	andl	$255,%edi
4343	movzbl	-128(%ebp,%edi,1),%edi
4344	shll	$16,%edi
4345	xorl	%edi,%esi
4346	movl	%ecx,%edi
4347	shrl	$24,%edi
4348	movzbl	-128(%ebp,%edi,1),%edi
4349	shll	$24,%edi
4350	xorl	%edi,%esi
4351	movl	%esi,8(%esp)
4352	movl	%ecx,%esi
4353	andl	$255,%esi
4354	movzbl	-128(%ebp,%esi,1),%esi
4355	movzbl	%bh,%edi
4356	movzbl	-128(%ebp,%edi,1),%edi
4357	shll	$8,%edi
4358	xorl	%edi,%esi
4359	movl	%eax,%edi
4360	shrl	$16,%edi
4361	andl	$255,%edi
4362	movzbl	-128(%ebp,%edi,1),%edi
4363	shll	$16,%edi
4364	xorl	%edi,%esi
4365	movl	%edx,%edi
4366	shrl	$24,%edi
4367	movzbl	-128(%ebp,%edi,1),%edi
4368	shll	$24,%edi
4369	xorl	%edi,%esi
4370	andl	$255,%edx
4371	movzbl	-128(%ebp,%edx,1),%edx
4372	movzbl	%ch,%ecx
4373	movzbl	-128(%ebp,%ecx,1),%ecx
4374	shll	$8,%ecx
4375	xorl	%ecx,%edx
4376	movl	%esi,%ecx
4377	shrl	$16,%ebx
4378	andl	$255,%ebx
4379	movzbl	-128(%ebp,%ebx,1),%ebx
4380	shll	$16,%ebx
4381	xorl	%ebx,%edx
4382	shrl	$24,%eax
4383	movzbl	-128(%ebp,%eax,1),%eax
4384	shll	$24,%eax
4385	xorl	%eax,%edx
4386	movl	$2155905152,%edi
4387	andl	%ecx,%edi
4388	movl	%edi,%esi
4389	shrl	$7,%edi
4390	leal	(%ecx,%ecx,1),%eax
4391	subl	%edi,%esi
4392	andl	$4278124286,%eax
4393	andl	$454761243,%esi
4394	xorl	%esi,%eax
4395	movl	$2155905152,%edi
4396	andl	%eax,%edi
4397	movl	%edi,%esi
4398	shrl	$7,%edi
4399	leal	(%eax,%eax,1),%ebx
4400	subl	%edi,%esi
4401	andl	$4278124286,%ebx
4402	andl	$454761243,%esi
4403	xorl	%ecx,%eax
4404	xorl	%esi,%ebx
4405	movl	$2155905152,%edi
4406	andl	%ebx,%edi
4407	movl	%edi,%esi
4408	shrl	$7,%edi
4409	leal	(%ebx,%ebx,1),%ebp
4410	subl	%edi,%esi
4411	andl	$4278124286,%ebp
4412	andl	$454761243,%esi
4413	xorl	%ecx,%ebx
4414	roll	$8,%ecx
4415	xorl	%esi,%ebp
4416	xorl	%eax,%ecx
4417	xorl	%ebp,%eax
4418	xorl	%ebx,%ecx
4419	xorl	%ebp,%ebx
4420	roll	$24,%eax
4421	xorl	%ebp,%ecx
4422	roll	$16,%ebx
4423	xorl	%eax,%ecx
4424	roll	$8,%ebp
4425	xorl	%ebx,%ecx
4426	movl	4(%esp),%eax
4427	xorl	%ebp,%ecx
4428	movl	%ecx,12(%esp)
4429	movl	$2155905152,%edi
4430	andl	%edx,%edi
4431	movl	%edi,%esi
4432	shrl	$7,%edi
4433	leal	(%edx,%edx,1),%ebx
4434	subl	%edi,%esi
4435	andl	$4278124286,%ebx
4436	andl	$454761243,%esi
4437	xorl	%esi,%ebx
4438	movl	$2155905152,%edi
4439	andl	%ebx,%edi
4440	movl	%edi,%esi
4441	shrl	$7,%edi
4442	leal	(%ebx,%ebx,1),%ecx
4443	subl	%edi,%esi
4444	andl	$4278124286,%ecx
4445	andl	$454761243,%esi
4446	xorl	%edx,%ebx
4447	xorl	%esi,%ecx
4448	movl	$2155905152,%edi
4449	andl	%ecx,%edi
4450	movl	%edi,%esi
4451	shrl	$7,%edi
4452	leal	(%ecx,%ecx,1),%ebp
4453	subl	%edi,%esi
4454	andl	$4278124286,%ebp
4455	andl	$454761243,%esi
4456	xorl	%edx,%ecx
4457	roll	$8,%edx
4458	xorl	%esi,%ebp
4459	xorl	%ebx,%edx
4460	xorl	%ebp,%ebx
4461	xorl	%ecx,%edx
4462	xorl	%ebp,%ecx
4463	roll	$24,%ebx
4464	xorl	%ebp,%edx
4465	roll	$16,%ecx
4466	xorl	%ebx,%edx
4467	roll	$8,%ebp
4468	xorl	%ecx,%edx
4469	movl	8(%esp),%ebx
4470	xorl	%ebp,%edx
4471	movl	%edx,16(%esp)
4472	movl	$2155905152,%edi
4473	andl	%eax,%edi
4474	movl	%edi,%esi
4475	shrl	$7,%edi
4476	leal	(%eax,%eax,1),%ecx
4477	subl	%edi,%esi
4478	andl	$4278124286,%ecx
4479	andl	$454761243,%esi
4480	xorl	%esi,%ecx
4481	movl	$2155905152,%edi
4482	andl	%ecx,%edi
4483	movl	%edi,%esi
4484	shrl	$7,%edi
4485	leal	(%ecx,%ecx,1),%edx
4486	subl	%edi,%esi
4487	andl	$4278124286,%edx
4488	andl	$454761243,%esi
4489	xorl	%eax,%ecx
4490	xorl	%esi,%edx
4491	movl	$2155905152,%edi
4492	andl	%edx,%edi
4493	movl	%edi,%esi
4494	shrl	$7,%edi
4495	leal	(%edx,%edx,1),%ebp
4496	subl	%edi,%esi
4497	andl	$4278124286,%ebp
4498	andl	$454761243,%esi
4499	xorl	%eax,%edx
4500	roll	$8,%eax
4501	xorl	%esi,%ebp
4502	xorl	%ecx,%eax
4503	xorl	%ebp,%ecx
4504	xorl	%edx,%eax
4505	xorl	%ebp,%edx
4506	roll	$24,%ecx
4507	xorl	%ebp,%eax
4508	roll	$16,%edx
4509	xorl	%ecx,%eax
4510	roll	$8,%ebp
4511	xorl	%edx,%eax
4512	xorl	%ebp,%eax
4513	movl	$2155905152,%edi
4514	andl	%ebx,%edi
4515	movl	%edi,%esi
4516	shrl	$7,%edi
4517	leal	(%ebx,%ebx,1),%ecx
4518	subl	%edi,%esi
4519	andl	$4278124286,%ecx
4520	andl	$454761243,%esi
4521	xorl	%esi,%ecx
4522	movl	$2155905152,%edi
4523	andl	%ecx,%edi
4524	movl	%edi,%esi
4525	shrl	$7,%edi
4526	leal	(%ecx,%ecx,1),%edx
4527	subl	%edi,%esi
4528	andl	$4278124286,%edx
4529	andl	$454761243,%esi
4530	xorl	%ebx,%ecx
4531	xorl	%esi,%edx
4532	movl	$2155905152,%edi
4533	andl	%edx,%edi
4534	movl	%edi,%esi
4535	shrl	$7,%edi
4536	leal	(%edx,%edx,1),%ebp
4537	subl	%edi,%esi
4538	andl	$4278124286,%ebp
4539	andl	$454761243,%esi
4540	xorl	%ebx,%edx
4541	roll	$8,%ebx
4542	xorl	%esi,%ebp
4543	xorl	%ecx,%ebx
4544	xorl	%ebp,%ecx
4545	xorl	%edx,%ebx
4546	xorl	%ebp,%edx
4547	roll	$24,%ecx
4548	xorl	%ebp,%ebx
4549	roll	$16,%edx
4550	xorl	%ecx,%ebx
4551	roll	$8,%ebp
4552	xorl	%edx,%ebx
4553	movl	12(%esp),%ecx
4554	xorl	%ebp,%ebx
4555	movl	16(%esp),%edx
4556	movl	20(%esp),%edi
4557	movl	28(%esp),%ebp
4558	addl	$16,%edi
4559	xorl	(%edi),%eax
4560	xorl	4(%edi),%ebx
4561	xorl	8(%edi),%ecx
4562	xorl	12(%edi),%edx
4563	cmpl	24(%esp),%edi
4564	movl	%edi,20(%esp)
4565	jb	.L006loop
4566	movl	%eax,%esi
4567	andl	$255,%esi
4568	movzbl	-128(%ebp,%esi,1),%esi
4569	movzbl	%dh,%edi
4570	movzbl	-128(%ebp,%edi,1),%edi
4571	shll	$8,%edi
4572	xorl	%edi,%esi
4573	movl	%ecx,%edi
4574	shrl	$16,%edi
4575	andl	$255,%edi
4576	movzbl	-128(%ebp,%edi,1),%edi
4577	shll	$16,%edi
4578	xorl	%edi,%esi
4579	movl	%ebx,%edi
4580	shrl	$24,%edi
4581	movzbl	-128(%ebp,%edi,1),%edi
4582	shll	$24,%edi
4583	xorl	%edi,%esi
4584	movl	%esi,4(%esp)
4585	movl	%ebx,%esi
4586	andl	$255,%esi
4587	movzbl	-128(%ebp,%esi,1),%esi
4588	movzbl	%ah,%edi
4589	movzbl	-128(%ebp,%edi,1),%edi
4590	shll	$8,%edi
4591	xorl	%edi,%esi
4592	movl	%edx,%edi
4593	shrl	$16,%edi
4594	andl	$255,%edi
4595	movzbl	-128(%ebp,%edi,1),%edi
4596	shll	$16,%edi
4597	xorl	%edi,%esi
4598	movl	%ecx,%edi
4599	shrl	$24,%edi
4600	movzbl	-128(%ebp,%edi,1),%edi
4601	shll	$24,%edi
4602	xorl	%edi,%esi
4603	movl	%esi,8(%esp)
4604	movl	%ecx,%esi
4605	andl	$255,%esi
4606	movzbl	-128(%ebp,%esi,1),%esi
4607	movzbl	%bh,%edi
4608	movzbl	-128(%ebp,%edi,1),%edi
4609	shll	$8,%edi
4610	xorl	%edi,%esi
4611	movl	%eax,%edi
4612	shrl	$16,%edi
4613	andl	$255,%edi
4614	movzbl	-128(%ebp,%edi,1),%edi
4615	shll	$16,%edi
4616	xorl	%edi,%esi
4617	movl	%edx,%edi
4618	shrl	$24,%edi
4619	movzbl	-128(%ebp,%edi,1),%edi
4620	shll	$24,%edi
4621	xorl	%edi,%esi
4622	movl	20(%esp),%edi
4623	andl	$255,%edx
4624	movzbl	-128(%ebp,%edx,1),%edx
4625	movzbl	%ch,%ecx
4626	movzbl	-128(%ebp,%ecx,1),%ecx
4627	shll	$8,%ecx
4628	xorl	%ecx,%edx
4629	movl	%esi,%ecx
4630	shrl	$16,%ebx
4631	andl	$255,%ebx
4632	movzbl	-128(%ebp,%ebx,1),%ebx
4633	shll	$16,%ebx
4634	xorl	%ebx,%edx
4635	movl	8(%esp),%ebx
4636	shrl	$24,%eax
4637	movzbl	-128(%ebp,%eax,1),%eax
4638	shll	$24,%eax
4639	xorl	%eax,%edx
4640	movl	4(%esp),%eax
4641	xorl	16(%edi),%eax
4642	xorl	20(%edi),%ebx
4643	xorl	24(%edi),%ecx
4644	xorl	28(%edi),%edx
4645	ret
4646.size	_x86_AES_decrypt_compact,.-_x86_AES_decrypt_compact
4647.type	_sse_AES_decrypt_compact,@function
4648.align	16
4649_sse_AES_decrypt_compact:
4650	pxor	(%edi),%mm0
4651	pxor	8(%edi),%mm4
4652	movl	240(%edi),%esi
4653	leal	-2(%esi,%esi,1),%esi
4654	leal	(%edi,%esi,8),%esi
4655	movl	%esi,24(%esp)
4656	movl	$454761243,%eax
4657	movl	%eax,8(%esp)
4658	movl	%eax,12(%esp)
4659	movl	-128(%ebp),%eax
4660	movl	-96(%ebp),%ebx
4661	movl	-64(%ebp),%ecx
4662	movl	-32(%ebp),%edx
4663	movl	(%ebp),%eax
4664	movl	32(%ebp),%ebx
4665	movl	64(%ebp),%ecx
4666	movl	96(%ebp),%edx
4667.align	16
4668.L007loop:
4669	pshufw	$12,%mm0,%mm1
4670	pshufw	$9,%mm4,%mm5
4671	movd	%mm1,%eax
4672	movd	%mm5,%ebx
4673	movl	%edi,20(%esp)
4674	movzbl	%al,%esi
4675	movzbl	%ah,%edx
4676	pshufw	$6,%mm0,%mm2
4677	movzbl	-128(%ebp,%esi,1),%ecx
4678	movzbl	%bl,%edi
4679	movzbl	-128(%ebp,%edx,1),%edx
4680	shrl	$16,%eax
4681	shll	$8,%edx
4682	movzbl	-128(%ebp,%edi,1),%esi
4683	movzbl	%bh,%edi
4684	shll	$16,%esi
4685	pshufw	$3,%mm4,%mm6
4686	orl	%esi,%ecx
4687	movzbl	-128(%ebp,%edi,1),%esi
4688	movzbl	%ah,%edi
4689	shll	$24,%esi
4690	shrl	$16,%ebx
4691	orl	%esi,%edx
4692	movzbl	-128(%ebp,%edi,1),%esi
4693	movzbl	%bh,%edi
4694	shll	$24,%esi
4695	orl	%esi,%ecx
4696	movzbl	-128(%ebp,%edi,1),%esi
4697	movzbl	%al,%edi
4698	shll	$8,%esi
4699	movd	%mm2,%eax
4700	orl	%esi,%ecx
4701	movzbl	-128(%ebp,%edi,1),%esi
4702	movzbl	%bl,%edi
4703	shll	$16,%esi
4704	movd	%mm6,%ebx
4705	movd	%ecx,%mm0
4706	movzbl	-128(%ebp,%edi,1),%ecx
4707	movzbl	%al,%edi
4708	orl	%esi,%ecx
4709	movzbl	-128(%ebp,%edi,1),%esi
4710	movzbl	%bl,%edi
4711	orl	%esi,%edx
4712	movzbl	-128(%ebp,%edi,1),%esi
4713	movzbl	%ah,%edi
4714	shll	$16,%esi
4715	shrl	$16,%eax
4716	orl	%esi,%edx
4717	movzbl	-128(%ebp,%edi,1),%esi
4718	movzbl	%bh,%edi
4719	shrl	$16,%ebx
4720	shll	$8,%esi
4721	movd	%edx,%mm1
4722	movzbl	-128(%ebp,%edi,1),%edx
4723	movzbl	%bh,%edi
4724	shll	$24,%edx
4725	andl	$255,%ebx
4726	orl	%esi,%edx
4727	punpckldq	%mm1,%mm0
4728	movzbl	-128(%ebp,%edi,1),%esi
4729	movzbl	%al,%edi
4730	shll	$8,%esi
4731	movzbl	%ah,%eax
4732	movzbl	-128(%ebp,%ebx,1),%ebx
4733	orl	%esi,%ecx
4734	movzbl	-128(%ebp,%edi,1),%esi
4735	orl	%ebx,%edx
4736	shll	$16,%esi
4737	movzbl	-128(%ebp,%eax,1),%eax
4738	orl	%esi,%edx
4739	shll	$24,%eax
4740	orl	%eax,%ecx
4741	movl	20(%esp),%edi
4742	movd	%edx,%mm4
4743	movd	%ecx,%mm5
4744	punpckldq	%mm5,%mm4
4745	addl	$16,%edi
4746	cmpl	24(%esp),%edi
4747	ja	.L008out
4748	movq	%mm0,%mm3
4749	movq	%mm4,%mm7
4750	pshufw	$228,%mm0,%mm2
4751	pshufw	$228,%mm4,%mm6
4752	movq	%mm0,%mm1
4753	movq	%mm4,%mm5
4754	pshufw	$177,%mm0,%mm0
4755	pshufw	$177,%mm4,%mm4
4756	pslld	$8,%mm2
4757	pslld	$8,%mm6
4758	psrld	$8,%mm3
4759	psrld	$8,%mm7
4760	pxor	%mm2,%mm0
4761	pxor	%mm6,%mm4
4762	pxor	%mm3,%mm0
4763	pxor	%mm7,%mm4
4764	pslld	$16,%mm2
4765	pslld	$16,%mm6
4766	psrld	$16,%mm3
4767	psrld	$16,%mm7
4768	pxor	%mm2,%mm0
4769	pxor	%mm6,%mm4
4770	pxor	%mm3,%mm0
4771	pxor	%mm7,%mm4
4772	movq	8(%esp),%mm3
4773	pxor	%mm2,%mm2
4774	pxor	%mm6,%mm6
4775	pcmpgtb	%mm1,%mm2
4776	pcmpgtb	%mm5,%mm6
4777	pand	%mm3,%mm2
4778	pand	%mm3,%mm6
4779	paddb	%mm1,%mm1
4780	paddb	%mm5,%mm5
4781	pxor	%mm2,%mm1
4782	pxor	%mm6,%mm5
4783	movq	%mm1,%mm3
4784	movq	%mm5,%mm7
4785	movq	%mm1,%mm2
4786	movq	%mm5,%mm6
4787	pxor	%mm1,%mm0
4788	pxor	%mm5,%mm4
4789	pslld	$24,%mm3
4790	pslld	$24,%mm7
4791	psrld	$8,%mm2
4792	psrld	$8,%mm6
4793	pxor	%mm3,%mm0
4794	pxor	%mm7,%mm4
4795	pxor	%mm2,%mm0
4796	pxor	%mm6,%mm4
4797	movq	8(%esp),%mm2
4798	pxor	%mm3,%mm3
4799	pxor	%mm7,%mm7
4800	pcmpgtb	%mm1,%mm3
4801	pcmpgtb	%mm5,%mm7
4802	pand	%mm2,%mm3
4803	pand	%mm2,%mm7
4804	paddb	%mm1,%mm1
4805	paddb	%mm5,%mm5
4806	pxor	%mm3,%mm1
4807	pxor	%mm7,%mm5
4808	pshufw	$177,%mm1,%mm3
4809	pshufw	$177,%mm5,%mm7
4810	pxor	%mm1,%mm0
4811	pxor	%mm5,%mm4
4812	pxor	%mm3,%mm0
4813	pxor	%mm7,%mm4
4814	pxor	%mm3,%mm3
4815	pxor	%mm7,%mm7
4816	pcmpgtb	%mm1,%mm3
4817	pcmpgtb	%mm5,%mm7
4818	pand	%mm2,%mm3
4819	pand	%mm2,%mm7
4820	paddb	%mm1,%mm1
4821	paddb	%mm5,%mm5
4822	pxor	%mm3,%mm1
4823	pxor	%mm7,%mm5
4824	pxor	%mm1,%mm0
4825	pxor	%mm5,%mm4
4826	movq	%mm1,%mm3
4827	movq	%mm5,%mm7
4828	pshufw	$177,%mm1,%mm2
4829	pshufw	$177,%mm5,%mm6
4830	pxor	%mm2,%mm0
4831	pxor	%mm6,%mm4
4832	pslld	$8,%mm1
4833	pslld	$8,%mm5
4834	psrld	$8,%mm3
4835	psrld	$8,%mm7
4836	movq	(%edi),%mm2
4837	movq	8(%edi),%mm6
4838	pxor	%mm1,%mm0
4839	pxor	%mm5,%mm4
4840	pxor	%mm3,%mm0
4841	pxor	%mm7,%mm4
4842	movl	-128(%ebp),%eax
4843	pslld	$16,%mm1
4844	pslld	$16,%mm5
4845	movl	-64(%ebp),%ebx
4846	psrld	$16,%mm3
4847	psrld	$16,%mm7
4848	movl	(%ebp),%ecx
4849	pxor	%mm1,%mm0
4850	pxor	%mm5,%mm4
4851	movl	64(%ebp),%edx
4852	pxor	%mm3,%mm0
4853	pxor	%mm7,%mm4
4854	pxor	%mm2,%mm0
4855	pxor	%mm6,%mm4
4856	jmp	.L007loop
4857.align	16
4858.L008out:
4859	pxor	(%edi),%mm0
4860	pxor	8(%edi),%mm4
4861	ret
4862.size	_sse_AES_decrypt_compact,.-_sse_AES_decrypt_compact
4863.type	_x86_AES_decrypt,@function
4864.align	16
4865_x86_AES_decrypt:
4866	movl	%edi,20(%esp)
4867	xorl	(%edi),%eax
4868	xorl	4(%edi),%ebx
4869	xorl	8(%edi),%ecx
4870	xorl	12(%edi),%edx
4871	movl	240(%edi),%esi
4872	leal	-2(%esi,%esi,1),%esi
4873	leal	(%edi,%esi,8),%esi
4874	movl	%esi,24(%esp)
4875.align	16
4876.L009loop:
4877	movl	%eax,%esi
4878	andl	$255,%esi
4879	movl	(%ebp,%esi,8),%esi
4880	movzbl	%dh,%edi
4881	xorl	3(%ebp,%edi,8),%esi
4882	movl	%ecx,%edi
4883	shrl	$16,%edi
4884	andl	$255,%edi
4885	xorl	2(%ebp,%edi,8),%esi
4886	movl	%ebx,%edi
4887	shrl	$24,%edi
4888	xorl	1(%ebp,%edi,8),%esi
4889	movl	%esi,4(%esp)
4890
4891	movl	%ebx,%esi
4892	andl	$255,%esi
4893	movl	(%ebp,%esi,8),%esi
4894	movzbl	%ah,%edi
4895	xorl	3(%ebp,%edi,8),%esi
4896	movl	%edx,%edi
4897	shrl	$16,%edi
4898	andl	$255,%edi
4899	xorl	2(%ebp,%edi,8),%esi
4900	movl	%ecx,%edi
4901	shrl	$24,%edi
4902	xorl	1(%ebp,%edi,8),%esi
4903	movl	%esi,8(%esp)
4904
4905	movl	%ecx,%esi
4906	andl	$255,%esi
4907	movl	(%ebp,%esi,8),%esi
4908	movzbl	%bh,%edi
4909	xorl	3(%ebp,%edi,8),%esi
4910	movl	%eax,%edi
4911	shrl	$16,%edi
4912	andl	$255,%edi
4913	xorl	2(%ebp,%edi,8),%esi
4914	movl	%edx,%edi
4915	shrl	$24,%edi
4916	xorl	1(%ebp,%edi,8),%esi
4917
4918	movl	20(%esp),%edi
4919	andl	$255,%edx
4920	movl	(%ebp,%edx,8),%edx
4921	movzbl	%ch,%ecx
4922	xorl	3(%ebp,%ecx,8),%edx
4923	movl	%esi,%ecx
4924	shrl	$16,%ebx
4925	andl	$255,%ebx
4926	xorl	2(%ebp,%ebx,8),%edx
4927	movl	8(%esp),%ebx
4928	shrl	$24,%eax
4929	xorl	1(%ebp,%eax,8),%edx
4930	movl	4(%esp),%eax
4931
4932	addl	$16,%edi
4933	xorl	(%edi),%eax
4934	xorl	4(%edi),%ebx
4935	xorl	8(%edi),%ecx
4936	xorl	12(%edi),%edx
4937	cmpl	24(%esp),%edi
4938	movl	%edi,20(%esp)
4939	jb	.L009loop
4940	leal	2176(%ebp),%ebp
4941	movl	-128(%ebp),%edi
4942	movl	-96(%ebp),%esi
4943	movl	-64(%ebp),%edi
4944	movl	-32(%ebp),%esi
4945	movl	(%ebp),%edi
4946	movl	32(%ebp),%esi
4947	movl	64(%ebp),%edi
4948	movl	96(%ebp),%esi
4949	leal	-128(%ebp),%ebp
4950	movl	%eax,%esi
4951	andl	$255,%esi
4952	movzbl	(%ebp,%esi,1),%esi
4953	movzbl	%dh,%edi
4954	movzbl	(%ebp,%edi,1),%edi
4955	shll	$8,%edi
4956	xorl	%edi,%esi
4957	movl	%ecx,%edi
4958	shrl	$16,%edi
4959	andl	$255,%edi
4960	movzbl	(%ebp,%edi,1),%edi
4961	shll	$16,%edi
4962	xorl	%edi,%esi
4963	movl	%ebx,%edi
4964	shrl	$24,%edi
4965	movzbl	(%ebp,%edi,1),%edi
4966	shll	$24,%edi
4967	xorl	%edi,%esi
4968	movl	%esi,4(%esp)
4969	movl	%ebx,%esi
4970	andl	$255,%esi
4971	movzbl	(%ebp,%esi,1),%esi
4972	movzbl	%ah,%edi
4973	movzbl	(%ebp,%edi,1),%edi
4974	shll	$8,%edi
4975	xorl	%edi,%esi
4976	movl	%edx,%edi
4977	shrl	$16,%edi
4978	andl	$255,%edi
4979	movzbl	(%ebp,%edi,1),%edi
4980	shll	$16,%edi
4981	xorl	%edi,%esi
4982	movl	%ecx,%edi
4983	shrl	$24,%edi
4984	movzbl	(%ebp,%edi,1),%edi
4985	shll	$24,%edi
4986	xorl	%edi,%esi
4987	movl	%esi,8(%esp)
4988	movl	%ecx,%esi
4989	andl	$255,%esi
4990	movzbl	(%ebp,%esi,1),%esi
4991	movzbl	%bh,%edi
4992	movzbl	(%ebp,%edi,1),%edi
4993	shll	$8,%edi
4994	xorl	%edi,%esi
4995	movl	%eax,%edi
4996	shrl	$16,%edi
4997	andl	$255,%edi
4998	movzbl	(%ebp,%edi,1),%edi
4999	shll	$16,%edi
5000	xorl	%edi,%esi
5001	movl	%edx,%edi
5002	shrl	$24,%edi
5003	movzbl	(%ebp,%edi,1),%edi
5004	shll	$24,%edi
5005	xorl	%edi,%esi
5006	movl	20(%esp),%edi
5007	andl	$255,%edx
5008	movzbl	(%ebp,%edx,1),%edx
5009	movzbl	%ch,%ecx
5010	movzbl	(%ebp,%ecx,1),%ecx
5011	shll	$8,%ecx
5012	xorl	%ecx,%edx
5013	movl	%esi,%ecx
5014	shrl	$16,%ebx
5015	andl	$255,%ebx
5016	movzbl	(%ebp,%ebx,1),%ebx
5017	shll	$16,%ebx
5018	xorl	%ebx,%edx
5019	movl	8(%esp),%ebx
5020	shrl	$24,%eax
5021	movzbl	(%ebp,%eax,1),%eax
5022	shll	$24,%eax
5023	xorl	%eax,%edx
5024	movl	4(%esp),%eax
5025	leal	-2048(%ebp),%ebp
5026	addl	$16,%edi
5027	xorl	(%edi),%eax
5028	xorl	4(%edi),%ebx
5029	xorl	8(%edi),%ecx
5030	xorl	12(%edi),%edx
5031	ret
5032.align	64
5033.LAES_Td:
5034.long	1353184337,1353184337
5035.long	1399144830,1399144830
5036.long	3282310938,3282310938
5037.long	2522752826,2522752826
5038.long	3412831035,3412831035
5039.long	4047871263,4047871263
5040.long	2874735276,2874735276
5041.long	2466505547,2466505547
5042.long	1442459680,1442459680
5043.long	4134368941,4134368941
5044.long	2440481928,2440481928
5045.long	625738485,625738485
5046.long	4242007375,4242007375
5047.long	3620416197,3620416197
5048.long	2151953702,2151953702
5049.long	2409849525,2409849525
5050.long	1230680542,1230680542
5051.long	1729870373,1729870373
5052.long	2551114309,2551114309
5053.long	3787521629,3787521629
5054.long	41234371,41234371
5055.long	317738113,317738113
5056.long	2744600205,2744600205
5057.long	3338261355,3338261355
5058.long	3881799427,3881799427
5059.long	2510066197,2510066197
5060.long	3950669247,3950669247
5061.long	3663286933,3663286933
5062.long	763608788,763608788
5063.long	3542185048,3542185048
5064.long	694804553,694804553
5065.long	1154009486,1154009486
5066.long	1787413109,1787413109
5067.long	2021232372,2021232372
5068.long	1799248025,1799248025
5069.long	3715217703,3715217703
5070.long	3058688446,3058688446
5071.long	397248752,397248752
5072.long	1722556617,1722556617
5073.long	3023752829,3023752829
5074.long	407560035,407560035
5075.long	2184256229,2184256229
5076.long	1613975959,1613975959
5077.long	1165972322,1165972322
5078.long	3765920945,3765920945
5079.long	2226023355,2226023355
5080.long	480281086,480281086
5081.long	2485848313,2485848313
5082.long	1483229296,1483229296
5083.long	436028815,436028815
5084.long	2272059028,2272059028
5085.long	3086515026,3086515026
5086.long	601060267,601060267
5087.long	3791801202,3791801202
5088.long	1468997603,1468997603
5089.long	715871590,715871590
5090.long	120122290,120122290
5091.long	63092015,63092015
5092.long	2591802758,2591802758
5093.long	2768779219,2768779219
5094.long	4068943920,4068943920
5095.long	2997206819,2997206819
5096.long	3127509762,3127509762
5097.long	1552029421,1552029421
5098.long	723308426,723308426
5099.long	2461301159,2461301159
5100.long	4042393587,4042393587
5101.long	2715969870,2715969870
5102.long	3455375973,3455375973
5103.long	3586000134,3586000134
5104.long	526529745,526529745
5105.long	2331944644,2331944644
5106.long	2639474228,2639474228
5107.long	2689987490,2689987490
5108.long	853641733,853641733
5109.long	1978398372,1978398372
5110.long	971801355,971801355
5111.long	2867814464,2867814464
5112.long	111112542,111112542
5113.long	1360031421,1360031421
5114.long	4186579262,4186579262
5115.long	1023860118,1023860118
5116.long	2919579357,2919579357
5117.long	1186850381,1186850381
5118.long	3045938321,3045938321
5119.long	90031217,90031217
5120.long	1876166148,1876166148
5121.long	4279586912,4279586912
5122.long	620468249,620468249
5123.long	2548678102,2548678102
5124.long	3426959497,3426959497
5125.long	2006899047,2006899047
5126.long	3175278768,3175278768
5127.long	2290845959,2290845959
5128.long	945494503,945494503
5129.long	3689859193,3689859193
5130.long	1191869601,1191869601
5131.long	3910091388,3910091388
5132.long	3374220536,3374220536
5133.long	0,0
5134.long	2206629897,2206629897
5135.long	1223502642,1223502642
5136.long	2893025566,2893025566
5137.long	1316117100,1316117100
5138.long	4227796733,4227796733
5139.long	1446544655,1446544655
5140.long	517320253,517320253
5141.long	658058550,658058550
5142.long	1691946762,1691946762
5143.long	564550760,564550760
5144.long	3511966619,3511966619
5145.long	976107044,976107044
5146.long	2976320012,2976320012
5147.long	266819475,266819475
5148.long	3533106868,3533106868
5149.long	2660342555,2660342555
5150.long	1338359936,1338359936
5151.long	2720062561,2720062561
5152.long	1766553434,1766553434
5153.long	370807324,370807324
5154.long	179999714,179999714
5155.long	3844776128,3844776128
5156.long	1138762300,1138762300
5157.long	488053522,488053522
5158.long	185403662,185403662
5159.long	2915535858,2915535858
5160.long	3114841645,3114841645
5161.long	3366526484,3366526484
5162.long	2233069911,2233069911
5163.long	1275557295,1275557295
5164.long	3151862254,3151862254
5165.long	4250959779,4250959779
5166.long	2670068215,2670068215
5167.long	3170202204,3170202204
5168.long	3309004356,3309004356
5169.long	880737115,880737115
5170.long	1982415755,1982415755
5171.long	3703972811,3703972811
5172.long	1761406390,1761406390
5173.long	1676797112,1676797112
5174.long	3403428311,3403428311
5175.long	277177154,277177154
5176.long	1076008723,1076008723
5177.long	538035844,538035844
5178.long	2099530373,2099530373
5179.long	4164795346,4164795346
5180.long	288553390,288553390
5181.long	1839278535,1839278535
5182.long	1261411869,1261411869
5183.long	4080055004,4080055004
5184.long	3964831245,3964831245
5185.long	3504587127,3504587127
5186.long	1813426987,1813426987
5187.long	2579067049,2579067049
5188.long	4199060497,4199060497
5189.long	577038663,577038663
5190.long	3297574056,3297574056
5191.long	440397984,440397984
5192.long	3626794326,3626794326
5193.long	4019204898,4019204898
5194.long	3343796615,3343796615
5195.long	3251714265,3251714265
5196.long	4272081548,4272081548
5197.long	906744984,906744984
5198.long	3481400742,3481400742
5199.long	685669029,685669029
5200.long	646887386,646887386
5201.long	2764025151,2764025151
5202.long	3835509292,3835509292
5203.long	227702864,227702864
5204.long	2613862250,2613862250
5205.long	1648787028,1648787028
5206.long	3256061430,3256061430
5207.long	3904428176,3904428176
5208.long	1593260334,1593260334
5209.long	4121936770,4121936770
5210.long	3196083615,3196083615
5211.long	2090061929,2090061929
5212.long	2838353263,2838353263
5213.long	3004310991,3004310991
5214.long	999926984,999926984
5215.long	2809993232,2809993232
5216.long	1852021992,1852021992
5217.long	2075868123,2075868123
5218.long	158869197,158869197
5219.long	4095236462,4095236462
5220.long	28809964,28809964
5221.long	2828685187,2828685187
5222.long	1701746150,1701746150
5223.long	2129067946,2129067946
5224.long	147831841,147831841
5225.long	3873969647,3873969647
5226.long	3650873274,3650873274
5227.long	3459673930,3459673930
5228.long	3557400554,3557400554
5229.long	3598495785,3598495785
5230.long	2947720241,2947720241
5231.long	824393514,824393514
5232.long	815048134,815048134
5233.long	3227951669,3227951669
5234.long	935087732,935087732
5235.long	2798289660,2798289660
5236.long	2966458592,2966458592
5237.long	366520115,366520115
5238.long	1251476721,1251476721
5239.long	4158319681,4158319681
5240.long	240176511,240176511
5241.long	804688151,804688151
5242.long	2379631990,2379631990
5243.long	1303441219,1303441219
5244.long	1414376140,1414376140
5245.long	3741619940,3741619940
5246.long	3820343710,3820343710
5247.long	461924940,461924940
5248.long	3089050817,3089050817
5249.long	2136040774,2136040774
5250.long	82468509,82468509
5251.long	1563790337,1563790337
5252.long	1937016826,1937016826
5253.long	776014843,776014843
5254.long	1511876531,1511876531
5255.long	1389550482,1389550482
5256.long	861278441,861278441
5257.long	323475053,323475053
5258.long	2355222426,2355222426
5259.long	2047648055,2047648055
5260.long	2383738969,2383738969
5261.long	2302415851,2302415851
5262.long	3995576782,3995576782
5263.long	902390199,902390199
5264.long	3991215329,3991215329
5265.long	1018251130,1018251130
5266.long	1507840668,1507840668
5267.long	1064563285,1064563285
5268.long	2043548696,2043548696
5269.long	3208103795,3208103795
5270.long	3939366739,3939366739
5271.long	1537932639,1537932639
5272.long	342834655,342834655
5273.long	2262516856,2262516856
5274.long	2180231114,2180231114
5275.long	1053059257,1053059257
5276.long	741614648,741614648
5277.long	1598071746,1598071746
5278.long	1925389590,1925389590
5279.long	203809468,203809468
5280.long	2336832552,2336832552
5281.long	1100287487,1100287487
5282.long	1895934009,1895934009
5283.long	3736275976,3736275976
5284.long	2632234200,2632234200
5285.long	2428589668,2428589668
5286.long	1636092795,1636092795
5287.long	1890988757,1890988757
5288.long	1952214088,1952214088
5289.long	1113045200,1113045200
5290.byte	82,9,106,213,48,54,165,56
5291.byte	191,64,163,158,129,243,215,251
5292.byte	124,227,57,130,155,47,255,135
5293.byte	52,142,67,68,196,222,233,203
5294.byte	84,123,148,50,166,194,35,61
5295.byte	238,76,149,11,66,250,195,78
5296.byte	8,46,161,102,40,217,36,178
5297.byte	118,91,162,73,109,139,209,37
5298.byte	114,248,246,100,134,104,152,22
5299.byte	212,164,92,204,93,101,182,146
5300.byte	108,112,72,80,253,237,185,218
5301.byte	94,21,70,87,167,141,157,132
5302.byte	144,216,171,0,140,188,211,10
5303.byte	247,228,88,5,184,179,69,6
5304.byte	208,44,30,143,202,63,15,2
5305.byte	193,175,189,3,1,19,138,107
5306.byte	58,145,17,65,79,103,220,234
5307.byte	151,242,207,206,240,180,230,115
5308.byte	150,172,116,34,231,173,53,133
5309.byte	226,249,55,232,28,117,223,110
5310.byte	71,241,26,113,29,41,197,137
5311.byte	111,183,98,14,170,24,190,27
5312.byte	252,86,62,75,198,210,121,32
5313.byte	154,219,192,254,120,205,90,244
5314.byte	31,221,168,51,136,7,199,49
5315.byte	177,18,16,89,39,128,236,95
5316.byte	96,81,127,169,25,181,74,13
5317.byte	45,229,122,159,147,201,156,239
5318.byte	160,224,59,77,174,42,245,176
5319.byte	200,235,187,60,131,83,153,97
5320.byte	23,43,4,126,186,119,214,38
5321.byte	225,105,20,99,85,33,12,125
5322.byte	82,9,106,213,48,54,165,56
5323.byte	191,64,163,158,129,243,215,251
5324.byte	124,227,57,130,155,47,255,135
5325.byte	52,142,67,68,196,222,233,203
5326.byte	84,123,148,50,166,194,35,61
5327.byte	238,76,149,11,66,250,195,78
5328.byte	8,46,161,102,40,217,36,178
5329.byte	118,91,162,73,109,139,209,37
5330.byte	114,248,246,100,134,104,152,22
5331.byte	212,164,92,204,93,101,182,146
5332.byte	108,112,72,80,253,237,185,218
5333.byte	94,21,70,87,167,141,157,132
5334.byte	144,216,171,0,140,188,211,10
5335.byte	247,228,88,5,184,179,69,6
5336.byte	208,44,30,143,202,63,15,2
5337.byte	193,175,189,3,1,19,138,107
5338.byte	58,145,17,65,79,103,220,234
5339.byte	151,242,207,206,240,180,230,115
5340.byte	150,172,116,34,231,173,53,133
5341.byte	226,249,55,232,28,117,223,110
5342.byte	71,241,26,113,29,41,197,137
5343.byte	111,183,98,14,170,24,190,27
5344.byte	252,86,62,75,198,210,121,32
5345.byte	154,219,192,254,120,205,90,244
5346.byte	31,221,168,51,136,7,199,49
5347.byte	177,18,16,89,39,128,236,95
5348.byte	96,81,127,169,25,181,74,13
5349.byte	45,229,122,159,147,201,156,239
5350.byte	160,224,59,77,174,42,245,176
5351.byte	200,235,187,60,131,83,153,97
5352.byte	23,43,4,126,186,119,214,38
5353.byte	225,105,20,99,85,33,12,125
5354.byte	82,9,106,213,48,54,165,56
5355.byte	191,64,163,158,129,243,215,251
5356.byte	124,227,57,130,155,47,255,135
5357.byte	52,142,67,68,196,222,233,203
5358.byte	84,123,148,50,166,194,35,61
5359.byte	238,76,149,11,66,250,195,78
5360.byte	8,46,161,102,40,217,36,178
5361.byte	118,91,162,73,109,139,209,37
5362.byte	114,248,246,100,134,104,152,22
5363.byte	212,164,92,204,93,101,182,146
5364.byte	108,112,72,80,253,237,185,218
5365.byte	94,21,70,87,167,141,157,132
5366.byte	144,216,171,0,140,188,211,10
5367.byte	247,228,88,5,184,179,69,6
5368.byte	208,44,30,143,202,63,15,2
5369.byte	193,175,189,3,1,19,138,107
5370.byte	58,145,17,65,79,103,220,234
5371.byte	151,242,207,206,240,180,230,115
5372.byte	150,172,116,34,231,173,53,133
5373.byte	226,249,55,232,28,117,223,110
5374.byte	71,241,26,113,29,41,197,137
5375.byte	111,183,98,14,170,24,190,27
5376.byte	252,86,62,75,198,210,121,32
5377.byte	154,219,192,254,120,205,90,244
5378.byte	31,221,168,51,136,7,199,49
5379.byte	177,18,16,89,39,128,236,95
5380.byte	96,81,127,169,25,181,74,13
5381.byte	45,229,122,159,147,201,156,239
5382.byte	160,224,59,77,174,42,245,176
5383.byte	200,235,187,60,131,83,153,97
5384.byte	23,43,4,126,186,119,214,38
5385.byte	225,105,20,99,85,33,12,125
5386.byte	82,9,106,213,48,54,165,56
5387.byte	191,64,163,158,129,243,215,251
5388.byte	124,227,57,130,155,47,255,135
5389.byte	52,142,67,68,196,222,233,203
5390.byte	84,123,148,50,166,194,35,61
5391.byte	238,76,149,11,66,250,195,78
5392.byte	8,46,161,102,40,217,36,178
5393.byte	118,91,162,73,109,139,209,37
5394.byte	114,248,246,100,134,104,152,22
5395.byte	212,164,92,204,93,101,182,146
5396.byte	108,112,72,80,253,237,185,218
5397.byte	94,21,70,87,167,141,157,132
5398.byte	144,216,171,0,140,188,211,10
5399.byte	247,228,88,5,184,179,69,6
5400.byte	208,44,30,143,202,63,15,2
5401.byte	193,175,189,3,1,19,138,107
5402.byte	58,145,17,65,79,103,220,234
5403.byte	151,242,207,206,240,180,230,115
5404.byte	150,172,116,34,231,173,53,133
5405.byte	226,249,55,232,28,117,223,110
5406.byte	71,241,26,113,29,41,197,137
5407.byte	111,183,98,14,170,24,190,27
5408.byte	252,86,62,75,198,210,121,32
5409.byte	154,219,192,254,120,205,90,244
5410.byte	31,221,168,51,136,7,199,49
5411.byte	177,18,16,89,39,128,236,95
5412.byte	96,81,127,169,25,181,74,13
5413.byte	45,229,122,159,147,201,156,239
5414.byte	160,224,59,77,174,42,245,176
5415.byte	200,235,187,60,131,83,153,97
5416.byte	23,43,4,126,186,119,214,38
5417.byte	225,105,20,99,85,33,12,125
5418.size	_x86_AES_decrypt,.-_x86_AES_decrypt
5419.globl	AES_decrypt
5420.type	AES_decrypt,@function
5421.align	16
5422AES_decrypt:
5423.L_AES_decrypt_begin:
5424	pushl	%ebp
5425	pushl	%ebx
5426	pushl	%esi
5427	pushl	%edi
5428	movl	20(%esp),%esi
5429	movl	28(%esp),%edi
5430	movl	%esp,%eax
5431	subl	$36,%esp
5432	andl	$-64,%esp
5433	leal	-127(%edi),%ebx
5434	subl	%esp,%ebx
5435	negl	%ebx
5436	andl	$960,%ebx
5437	subl	%ebx,%esp
5438	addl	$4,%esp
5439	movl	%eax,28(%esp)
5440	call	.L010pic_point
5441.L010pic_point:
5442	popl	%ebp
5443	leal	OPENSSL_ia32cap_P,%eax
5444	leal	.LAES_Td-.L010pic_point(%ebp),%ebp
5445	leal	764(%esp),%ebx
5446	subl	%ebp,%ebx
5447	andl	$768,%ebx
5448	leal	2176(%ebp,%ebx,1),%ebp
5449	btl	$25,(%eax)
5450	jnc	.L011x86
5451	movq	(%esi),%mm0
5452	movq	8(%esi),%mm4
5453	call	_sse_AES_decrypt_compact
5454	movl	28(%esp),%esp
5455	movl	24(%esp),%esi
5456	movq	%mm0,(%esi)
5457	movq	%mm4,8(%esi)
5458	emms
5459	popl	%edi
5460	popl	%esi
5461	popl	%ebx
5462	popl	%ebp
5463	ret
5464.align	16
5465.L011x86:
5466	movl	%ebp,24(%esp)
5467	movl	(%esi),%eax
5468	movl	4(%esi),%ebx
5469	movl	8(%esi),%ecx
5470	movl	12(%esi),%edx
5471	call	_x86_AES_decrypt_compact
5472	movl	28(%esp),%esp
5473	movl	24(%esp),%esi
5474	movl	%eax,(%esi)
5475	movl	%ebx,4(%esi)
5476	movl	%ecx,8(%esi)
5477	movl	%edx,12(%esi)
5478	popl	%edi
5479	popl	%esi
5480	popl	%ebx
5481	popl	%ebp
5482	ret
5483.size	AES_decrypt,.-.L_AES_decrypt_begin
5484.globl	AES_cbc_encrypt
5485.type	AES_cbc_encrypt,@function
5486.align	16
5487AES_cbc_encrypt:
5488.L_AES_cbc_encrypt_begin:
5489	pushl	%ebp
5490	pushl	%ebx
5491	pushl	%esi
5492	pushl	%edi
5493	movl	28(%esp),%ecx
5494	cmpl	$0,%ecx
5495	je	.L012drop_out
5496	call	.L013pic_point
5497.L013pic_point:
5498	popl	%ebp
5499	leal	OPENSSL_ia32cap_P,%eax
5500	cmpl	$0,40(%esp)
5501	leal	.LAES_Te-.L013pic_point(%ebp),%ebp
5502	jne	.L014picked_te
5503	leal	.LAES_Td-.LAES_Te(%ebp),%ebp
5504.L014picked_te:
5505	pushfl
5506	cld
5507	cmpl	$512,%ecx
5508	jb	.L015slow_way
5509	testl	$15,%ecx
5510	jnz	.L015slow_way
5511	btl	$28,(%eax)
5512	jc	.L015slow_way
5513	leal	-324(%esp),%esi
5514	andl	$-64,%esi
5515	movl	%ebp,%eax
5516	leal	2304(%ebp),%ebx
5517	movl	%esi,%edx
5518	andl	$4095,%eax
5519	andl	$4095,%ebx
5520	andl	$4095,%edx
5521	cmpl	%ebx,%edx
5522	jb	.L016tbl_break_out
5523	subl	%ebx,%edx
5524	subl	%edx,%esi
5525	jmp	.L017tbl_ok
5526.align	4
5527.L016tbl_break_out:
5528	subl	%eax,%edx
5529	andl	$4095,%edx
5530	addl	$384,%edx
5531	subl	%edx,%esi
5532.align	4
5533.L017tbl_ok:
5534	leal	24(%esp),%edx
5535	xchgl	%esi,%esp
5536	addl	$4,%esp
5537	movl	%ebp,24(%esp)
5538	movl	%esi,28(%esp)
5539	movl	(%edx),%eax
5540	movl	4(%edx),%ebx
5541	movl	12(%edx),%edi
5542	movl	16(%edx),%esi
5543	movl	20(%edx),%edx
5544	movl	%eax,32(%esp)
5545	movl	%ebx,36(%esp)
5546	movl	%ecx,40(%esp)
5547	movl	%edi,44(%esp)
5548	movl	%esi,48(%esp)
5549	movl	$0,316(%esp)
5550	movl	%edi,%ebx
5551	movl	$61,%ecx
5552	subl	%ebp,%ebx
5553	movl	%edi,%esi
5554	andl	$4095,%ebx
5555	leal	76(%esp),%edi
5556	cmpl	$2304,%ebx
5557	jb	.L018do_copy
5558	cmpl	$3852,%ebx
5559	jb	.L019skip_copy
5560.align	4
5561.L018do_copy:
5562	movl	%edi,44(%esp)
5563.long	2784229001
5564.L019skip_copy:
5565	movl	$16,%edi
5566.align	4
5567.L020prefetch_tbl:
5568	movl	(%ebp),%eax
5569	movl	32(%ebp),%ebx
5570	movl	64(%ebp),%ecx
5571	movl	96(%ebp),%esi
5572	leal	128(%ebp),%ebp
5573	subl	$1,%edi
5574	jnz	.L020prefetch_tbl
5575	subl	$2048,%ebp
5576	movl	32(%esp),%esi
5577	movl	48(%esp),%edi
5578	cmpl	$0,%edx
5579	je	.L021fast_decrypt
5580	movl	(%edi),%eax
5581	movl	4(%edi),%ebx
5582.align	16
5583.L022fast_enc_loop:
5584	movl	8(%edi),%ecx
5585	movl	12(%edi),%edx
5586	xorl	(%esi),%eax
5587	xorl	4(%esi),%ebx
5588	xorl	8(%esi),%ecx
5589	xorl	12(%esi),%edx
5590	movl	44(%esp),%edi
5591	call	_x86_AES_encrypt
5592	movl	32(%esp),%esi
5593	movl	36(%esp),%edi
5594	movl	%eax,(%edi)
5595	movl	%ebx,4(%edi)
5596	movl	%ecx,8(%edi)
5597	movl	%edx,12(%edi)
5598	leal	16(%esi),%esi
5599	movl	40(%esp),%ecx
5600	movl	%esi,32(%esp)
5601	leal	16(%edi),%edx
5602	movl	%edx,36(%esp)
5603	subl	$16,%ecx
5604	movl	%ecx,40(%esp)
5605	jnz	.L022fast_enc_loop
5606	movl	48(%esp),%esi
5607	movl	8(%edi),%ecx
5608	movl	12(%edi),%edx
5609	movl	%eax,(%esi)
5610	movl	%ebx,4(%esi)
5611	movl	%ecx,8(%esi)
5612	movl	%edx,12(%esi)
5613	cmpl	$0,316(%esp)
5614	movl	44(%esp),%edi
5615	je	.L023skip_ezero
5616	movl	$60,%ecx
5617	xorl	%eax,%eax
5618.align	4
5619.long	2884892297
5620.L023skip_ezero:
5621	movl	28(%esp),%esp
5622	popfl
5623.L012drop_out:
5624	popl	%edi
5625	popl	%esi
5626	popl	%ebx
5627	popl	%ebp
5628	ret
5629	pushfl
5630.align	16
5631.L021fast_decrypt:
5632	cmpl	36(%esp),%esi
5633	je	.L024fast_dec_in_place
5634	movl	%edi,52(%esp)
5635.align	4
5636.align	16
5637.L025fast_dec_loop:
5638	movl	(%esi),%eax
5639	movl	4(%esi),%ebx
5640	movl	8(%esi),%ecx
5641	movl	12(%esi),%edx
5642	movl	44(%esp),%edi
5643	call	_x86_AES_decrypt
5644	movl	52(%esp),%edi
5645	movl	40(%esp),%esi
5646	xorl	(%edi),%eax
5647	xorl	4(%edi),%ebx
5648	xorl	8(%edi),%ecx
5649	xorl	12(%edi),%edx
5650	movl	36(%esp),%edi
5651	movl	32(%esp),%esi
5652	movl	%eax,(%edi)
5653	movl	%ebx,4(%edi)
5654	movl	%ecx,8(%edi)
5655	movl	%edx,12(%edi)
5656	movl	40(%esp),%ecx
5657	movl	%esi,52(%esp)
5658	leal	16(%esi),%esi
5659	movl	%esi,32(%esp)
5660	leal	16(%edi),%edi
5661	movl	%edi,36(%esp)
5662	subl	$16,%ecx
5663	movl	%ecx,40(%esp)
5664	jnz	.L025fast_dec_loop
5665	movl	52(%esp),%edi
5666	movl	48(%esp),%esi
5667	movl	(%edi),%eax
5668	movl	4(%edi),%ebx
5669	movl	8(%edi),%ecx
5670	movl	12(%edi),%edx
5671	movl	%eax,(%esi)
5672	movl	%ebx,4(%esi)
5673	movl	%ecx,8(%esi)
5674	movl	%edx,12(%esi)
5675	jmp	.L026fast_dec_out
5676.align	16
5677.L024fast_dec_in_place:
5678.L027fast_dec_in_place_loop:
5679	movl	(%esi),%eax
5680	movl	4(%esi),%ebx
5681	movl	8(%esi),%ecx
5682	movl	12(%esi),%edx
5683	leal	60(%esp),%edi
5684	movl	%eax,(%edi)
5685	movl	%ebx,4(%edi)
5686	movl	%ecx,8(%edi)
5687	movl	%edx,12(%edi)
5688	movl	44(%esp),%edi
5689	call	_x86_AES_decrypt
5690	movl	48(%esp),%edi
5691	movl	36(%esp),%esi
5692	xorl	(%edi),%eax
5693	xorl	4(%edi),%ebx
5694	xorl	8(%edi),%ecx
5695	xorl	12(%edi),%edx
5696	movl	%eax,(%esi)
5697	movl	%ebx,4(%esi)
5698	movl	%ecx,8(%esi)
5699	movl	%edx,12(%esi)
5700	leal	16(%esi),%esi
5701	movl	%esi,36(%esp)
5702	leal	60(%esp),%esi
5703	movl	(%esi),%eax
5704	movl	4(%esi),%ebx
5705	movl	8(%esi),%ecx
5706	movl	12(%esi),%edx
5707	movl	%eax,(%edi)
5708	movl	%ebx,4(%edi)
5709	movl	%ecx,8(%edi)
5710	movl	%edx,12(%edi)
5711	movl	32(%esp),%esi
5712	movl	40(%esp),%ecx
5713	leal	16(%esi),%esi
5714	movl	%esi,32(%esp)
5715	subl	$16,%ecx
5716	movl	%ecx,40(%esp)
5717	jnz	.L027fast_dec_in_place_loop
5718.align	4
5719.L026fast_dec_out:
5720	cmpl	$0,316(%esp)
5721	movl	44(%esp),%edi
5722	je	.L028skip_dzero
5723	movl	$60,%ecx
5724	xorl	%eax,%eax
5725.align	4
5726.long	2884892297
5727.L028skip_dzero:
5728	movl	28(%esp),%esp
5729	popfl
5730	popl	%edi
5731	popl	%esi
5732	popl	%ebx
5733	popl	%ebp
5734	ret
5735	pushfl
5736.align	16
5737.L015slow_way:
5738	movl	(%eax),%eax
5739	movl	36(%esp),%edi
5740	leal	-80(%esp),%esi
5741	andl	$-64,%esi
5742	leal	-143(%edi),%ebx
5743	subl	%esi,%ebx
5744	negl	%ebx
5745	andl	$960,%ebx
5746	subl	%ebx,%esi
5747	leal	768(%esi),%ebx
5748	subl	%ebp,%ebx
5749	andl	$768,%ebx
5750	leal	2176(%ebp,%ebx,1),%ebp
5751	leal	24(%esp),%edx
5752	xchgl	%esi,%esp
5753	addl	$4,%esp
5754	movl	%ebp,24(%esp)
5755	movl	%esi,28(%esp)
5756	movl	%eax,52(%esp)
5757	movl	(%edx),%eax
5758	movl	4(%edx),%ebx
5759	movl	16(%edx),%esi
5760	movl	20(%edx),%edx
5761	movl	%eax,32(%esp)
5762	movl	%ebx,36(%esp)
5763	movl	%ecx,40(%esp)
5764	movl	%edi,44(%esp)
5765	movl	%esi,48(%esp)
5766	movl	%esi,%edi
5767	movl	%eax,%esi
5768	cmpl	$0,%edx
5769	je	.L029slow_decrypt
5770	cmpl	$16,%ecx
5771	movl	%ebx,%edx
5772	jb	.L030slow_enc_tail
5773	btl	$25,52(%esp)
5774	jnc	.L031slow_enc_x86
5775	movq	(%edi),%mm0
5776	movq	8(%edi),%mm4
5777.align	16
5778.L032slow_enc_loop_sse:
5779	pxor	(%esi),%mm0
5780	pxor	8(%esi),%mm4
5781	movl	44(%esp),%edi
5782	call	_sse_AES_encrypt_compact
5783	movl	32(%esp),%esi
5784	movl	36(%esp),%edi
5785	movl	40(%esp),%ecx
5786	movq	%mm0,(%edi)
5787	movq	%mm4,8(%edi)
5788	leal	16(%esi),%esi
5789	movl	%esi,32(%esp)
5790	leal	16(%edi),%edx
5791	movl	%edx,36(%esp)
5792	subl	$16,%ecx
5793	cmpl	$16,%ecx
5794	movl	%ecx,40(%esp)
5795	jae	.L032slow_enc_loop_sse
5796	testl	$15,%ecx
5797	jnz	.L030slow_enc_tail
5798	movl	48(%esp),%esi
5799	movq	%mm0,(%esi)
5800	movq	%mm4,8(%esi)
5801	emms
5802	movl	28(%esp),%esp
5803	popfl
5804	popl	%edi
5805	popl	%esi
5806	popl	%ebx
5807	popl	%ebp
5808	ret
5809	pushfl
5810.align	16
5811.L031slow_enc_x86:
5812	movl	(%edi),%eax
5813	movl	4(%edi),%ebx
5814.align	4
5815.L033slow_enc_loop_x86:
5816	movl	8(%edi),%ecx
5817	movl	12(%edi),%edx
5818	xorl	(%esi),%eax
5819	xorl	4(%esi),%ebx
5820	xorl	8(%esi),%ecx
5821	xorl	12(%esi),%edx
5822	movl	44(%esp),%edi
5823	call	_x86_AES_encrypt_compact
5824	movl	32(%esp),%esi
5825	movl	36(%esp),%edi
5826	movl	%eax,(%edi)
5827	movl	%ebx,4(%edi)
5828	movl	%ecx,8(%edi)
5829	movl	%edx,12(%edi)
5830	movl	40(%esp),%ecx
5831	leal	16(%esi),%esi
5832	movl	%esi,32(%esp)
5833	leal	16(%edi),%edx
5834	movl	%edx,36(%esp)
5835	subl	$16,%ecx
5836	cmpl	$16,%ecx
5837	movl	%ecx,40(%esp)
5838	jae	.L033slow_enc_loop_x86
5839	testl	$15,%ecx
5840	jnz	.L030slow_enc_tail
5841	movl	48(%esp),%esi
5842	movl	8(%edi),%ecx
5843	movl	12(%edi),%edx
5844	movl	%eax,(%esi)
5845	movl	%ebx,4(%esi)
5846	movl	%ecx,8(%esi)
5847	movl	%edx,12(%esi)
5848	movl	28(%esp),%esp
5849	popfl
5850	popl	%edi
5851	popl	%esi
5852	popl	%ebx
5853	popl	%ebp
5854	ret
5855	pushfl
5856.align	16
5857.L030slow_enc_tail:
5858	emms
5859	movl	%edx,%edi
5860	movl	$16,%ebx
5861	subl	%ecx,%ebx
5862	cmpl	%esi,%edi
5863	je	.L034enc_in_place
5864.align	4
5865.long	2767451785
5866	jmp	.L035enc_skip_in_place
5867.L034enc_in_place:
5868	leal	(%edi,%ecx,1),%edi
5869.L035enc_skip_in_place:
5870	movl	%ebx,%ecx
5871	xorl	%eax,%eax
5872.align	4
5873.long	2868115081
5874	movl	48(%esp),%edi
5875	movl	%edx,%esi
5876	movl	(%edi),%eax
5877	movl	4(%edi),%ebx
5878	movl	$16,40(%esp)
5879	jmp	.L033slow_enc_loop_x86
5880.align	16
5881.L029slow_decrypt:
5882	btl	$25,52(%esp)
5883	jnc	.L036slow_dec_loop_x86
5884.align	4
5885.L037slow_dec_loop_sse:
5886	movq	(%esi),%mm0
5887	movq	8(%esi),%mm4
5888	movl	44(%esp),%edi
5889	call	_sse_AES_decrypt_compact
5890	movl	32(%esp),%esi
5891	leal	60(%esp),%eax
5892	movl	36(%esp),%ebx
5893	movl	40(%esp),%ecx
5894	movl	48(%esp),%edi
5895	movq	(%esi),%mm1
5896	movq	8(%esi),%mm5
5897	pxor	(%edi),%mm0
5898	pxor	8(%edi),%mm4
5899	movq	%mm1,(%edi)
5900	movq	%mm5,8(%edi)
5901	subl	$16,%ecx
5902	jc	.L038slow_dec_partial_sse
5903	movq	%mm0,(%ebx)
5904	movq	%mm4,8(%ebx)
5905	leal	16(%ebx),%ebx
5906	movl	%ebx,36(%esp)
5907	leal	16(%esi),%esi
5908	movl	%esi,32(%esp)
5909	movl	%ecx,40(%esp)
5910	jnz	.L037slow_dec_loop_sse
5911	emms
5912	movl	28(%esp),%esp
5913	popfl
5914	popl	%edi
5915	popl	%esi
5916	popl	%ebx
5917	popl	%ebp
5918	ret
5919	pushfl
5920.align	16
5921.L038slow_dec_partial_sse:
5922	movq	%mm0,(%eax)
5923	movq	%mm4,8(%eax)
5924	emms
5925	addl	$16,%ecx
5926	movl	%ebx,%edi
5927	movl	%eax,%esi
5928.align	4
5929.long	2767451785
5930	movl	28(%esp),%esp
5931	popfl
5932	popl	%edi
5933	popl	%esi
5934	popl	%ebx
5935	popl	%ebp
5936	ret
5937	pushfl
5938.align	16
5939.L036slow_dec_loop_x86:
5940	movl	(%esi),%eax
5941	movl	4(%esi),%ebx
5942	movl	8(%esi),%ecx
5943	movl	12(%esi),%edx
5944	leal	60(%esp),%edi
5945	movl	%eax,(%edi)
5946	movl	%ebx,4(%edi)
5947	movl	%ecx,8(%edi)
5948	movl	%edx,12(%edi)
5949	movl	44(%esp),%edi
5950	call	_x86_AES_decrypt_compact
5951	movl	48(%esp),%edi
5952	movl	40(%esp),%esi
5953	xorl	(%edi),%eax
5954	xorl	4(%edi),%ebx
5955	xorl	8(%edi),%ecx
5956	xorl	12(%edi),%edx
5957	subl	$16,%esi
5958	jc	.L039slow_dec_partial_x86
5959	movl	%esi,40(%esp)
5960	movl	36(%esp),%esi
5961	movl	%eax,(%esi)
5962	movl	%ebx,4(%esi)
5963	movl	%ecx,8(%esi)
5964	movl	%edx,12(%esi)
5965	leal	16(%esi),%esi
5966	movl	%esi,36(%esp)
5967	leal	60(%esp),%esi
5968	movl	(%esi),%eax
5969	movl	4(%esi),%ebx
5970	movl	8(%esi),%ecx
5971	movl	12(%esi),%edx
5972	movl	%eax,(%edi)
5973	movl	%ebx,4(%edi)
5974	movl	%ecx,8(%edi)
5975	movl	%edx,12(%edi)
5976	movl	32(%esp),%esi
5977	leal	16(%esi),%esi
5978	movl	%esi,32(%esp)
5979	jnz	.L036slow_dec_loop_x86
5980	movl	28(%esp),%esp
5981	popfl
5982	popl	%edi
5983	popl	%esi
5984	popl	%ebx
5985	popl	%ebp
5986	ret
5987	pushfl
5988.align	16
5989.L039slow_dec_partial_x86:
5990	leal	60(%esp),%esi
5991	movl	%eax,(%esi)
5992	movl	%ebx,4(%esi)
5993	movl	%ecx,8(%esi)
5994	movl	%edx,12(%esi)
5995	movl	32(%esp),%esi
5996	movl	(%esi),%eax
5997	movl	4(%esi),%ebx
5998	movl	8(%esi),%ecx
5999	movl	12(%esi),%edx
6000	movl	%eax,(%edi)
6001	movl	%ebx,4(%edi)
6002	movl	%ecx,8(%edi)
6003	movl	%edx,12(%edi)
6004	movl	40(%esp),%ecx
6005	movl	36(%esp),%edi
6006	leal	60(%esp),%esi
6007.align	4
6008.long	2767451785
6009	movl	28(%esp),%esp
6010	popfl
6011	popl	%edi
6012	popl	%esi
6013	popl	%ebx
6014	popl	%ebp
6015	ret
6016.size	AES_cbc_encrypt,.-.L_AES_cbc_encrypt_begin
6017.type	_x86_AES_set_encrypt_key,@function
6018.align	16
6019_x86_AES_set_encrypt_key:
6020	pushl	%ebp
6021	pushl	%ebx
6022	pushl	%esi
6023	pushl	%edi
6024	movl	24(%esp),%esi
6025	movl	32(%esp),%edi
6026	testl	$-1,%esi
6027	jz	.L040badpointer
6028	testl	$-1,%edi
6029	jz	.L040badpointer
6030	call	.L041pic_point
6031.L041pic_point:
6032	popl	%ebp
6033	leal	.LAES_Te-.L041pic_point(%ebp),%ebp
6034	leal	2176(%ebp),%ebp
6035	movl	-128(%ebp),%eax
6036	movl	-96(%ebp),%ebx
6037	movl	-64(%ebp),%ecx
6038	movl	-32(%ebp),%edx
6039	movl	(%ebp),%eax
6040	movl	32(%ebp),%ebx
6041	movl	64(%ebp),%ecx
6042	movl	96(%ebp),%edx
6043	movl	28(%esp),%ecx
6044	cmpl	$128,%ecx
6045	je	.L04210rounds
6046	cmpl	$192,%ecx
6047	je	.L04312rounds
6048	cmpl	$256,%ecx
6049	je	.L04414rounds
6050	movl	$-2,%eax
6051	jmp	.L045exit
6052.L04210rounds:
6053	movl	(%esi),%eax
6054	movl	4(%esi),%ebx
6055	movl	8(%esi),%ecx
6056	movl	12(%esi),%edx
6057	movl	%eax,(%edi)
6058	movl	%ebx,4(%edi)
6059	movl	%ecx,8(%edi)
6060	movl	%edx,12(%edi)
6061	xorl	%ecx,%ecx
6062	jmp	.L04610shortcut
6063.align	4
6064.L04710loop:
6065	movl	(%edi),%eax
6066	movl	12(%edi),%edx
6067.L04610shortcut:
6068	movzbl	%dl,%esi
6069	movzbl	-128(%ebp,%esi,1),%ebx
6070	movzbl	%dh,%esi
6071	shll	$24,%ebx
6072	xorl	%ebx,%eax
6073	movzbl	-128(%ebp,%esi,1),%ebx
6074	shrl	$16,%edx
6075	movzbl	%dl,%esi
6076	xorl	%ebx,%eax
6077	movzbl	-128(%ebp,%esi,1),%ebx
6078	movzbl	%dh,%esi
6079	shll	$8,%ebx
6080	xorl	%ebx,%eax
6081	movzbl	-128(%ebp,%esi,1),%ebx
6082	shll	$16,%ebx
6083	xorl	%ebx,%eax
6084	xorl	896(%ebp,%ecx,4),%eax
6085	movl	%eax,16(%edi)
6086	xorl	4(%edi),%eax
6087	movl	%eax,20(%edi)
6088	xorl	8(%edi),%eax
6089	movl	%eax,24(%edi)
6090	xorl	12(%edi),%eax
6091	movl	%eax,28(%edi)
6092	incl	%ecx
6093	addl	$16,%edi
6094	cmpl	$10,%ecx
6095	jl	.L04710loop
6096	movl	$10,80(%edi)
6097	xorl	%eax,%eax
6098	jmp	.L045exit
6099.L04312rounds:
6100	movl	(%esi),%eax
6101	movl	4(%esi),%ebx
6102	movl	8(%esi),%ecx
6103	movl	12(%esi),%edx
6104	movl	%eax,(%edi)
6105	movl	%ebx,4(%edi)
6106	movl	%ecx,8(%edi)
6107	movl	%edx,12(%edi)
6108	movl	16(%esi),%ecx
6109	movl	20(%esi),%edx
6110	movl	%ecx,16(%edi)
6111	movl	%edx,20(%edi)
6112	xorl	%ecx,%ecx
6113	jmp	.L04812shortcut
6114.align	4
6115.L04912loop:
6116	movl	(%edi),%eax
6117	movl	20(%edi),%edx
6118.L04812shortcut:
6119	movzbl	%dl,%esi
6120	movzbl	-128(%ebp,%esi,1),%ebx
6121	movzbl	%dh,%esi
6122	shll	$24,%ebx
6123	xorl	%ebx,%eax
6124	movzbl	-128(%ebp,%esi,1),%ebx
6125	shrl	$16,%edx
6126	movzbl	%dl,%esi
6127	xorl	%ebx,%eax
6128	movzbl	-128(%ebp,%esi,1),%ebx
6129	movzbl	%dh,%esi
6130	shll	$8,%ebx
6131	xorl	%ebx,%eax
6132	movzbl	-128(%ebp,%esi,1),%ebx
6133	shll	$16,%ebx
6134	xorl	%ebx,%eax
6135	xorl	896(%ebp,%ecx,4),%eax
6136	movl	%eax,24(%edi)
6137	xorl	4(%edi),%eax
6138	movl	%eax,28(%edi)
6139	xorl	8(%edi),%eax
6140	movl	%eax,32(%edi)
6141	xorl	12(%edi),%eax
6142	movl	%eax,36(%edi)
6143	cmpl	$7,%ecx
6144	je	.L05012break
6145	incl	%ecx
6146	xorl	16(%edi),%eax
6147	movl	%eax,40(%edi)
6148	xorl	20(%edi),%eax
6149	movl	%eax,44(%edi)
6150	addl	$24,%edi
6151	jmp	.L04912loop
6152.L05012break:
6153	movl	$12,72(%edi)
6154	xorl	%eax,%eax
6155	jmp	.L045exit
6156.L04414rounds:
6157	movl	(%esi),%eax
6158	movl	4(%esi),%ebx
6159	movl	8(%esi),%ecx
6160	movl	12(%esi),%edx
6161	movl	%eax,(%edi)
6162	movl	%ebx,4(%edi)
6163	movl	%ecx,8(%edi)
6164	movl	%edx,12(%edi)
6165	movl	16(%esi),%eax
6166	movl	20(%esi),%ebx
6167	movl	24(%esi),%ecx
6168	movl	28(%esi),%edx
6169	movl	%eax,16(%edi)
6170	movl	%ebx,20(%edi)
6171	movl	%ecx,24(%edi)
6172	movl	%edx,28(%edi)
6173	xorl	%ecx,%ecx
6174	jmp	.L05114shortcut
6175.align	4
6176.L05214loop:
6177	movl	28(%edi),%edx
6178.L05114shortcut:
6179	movl	(%edi),%eax
6180	movzbl	%dl,%esi
6181	movzbl	-128(%ebp,%esi,1),%ebx
6182	movzbl	%dh,%esi
6183	shll	$24,%ebx
6184	xorl	%ebx,%eax
6185	movzbl	-128(%ebp,%esi,1),%ebx
6186	shrl	$16,%edx
6187	movzbl	%dl,%esi
6188	xorl	%ebx,%eax
6189	movzbl	-128(%ebp,%esi,1),%ebx
6190	movzbl	%dh,%esi
6191	shll	$8,%ebx
6192	xorl	%ebx,%eax
6193	movzbl	-128(%ebp,%esi,1),%ebx
6194	shll	$16,%ebx
6195	xorl	%ebx,%eax
6196	xorl	896(%ebp,%ecx,4),%eax
6197	movl	%eax,32(%edi)
6198	xorl	4(%edi),%eax
6199	movl	%eax,36(%edi)
6200	xorl	8(%edi),%eax
6201	movl	%eax,40(%edi)
6202	xorl	12(%edi),%eax
6203	movl	%eax,44(%edi)
6204	cmpl	$6,%ecx
6205	je	.L05314break
6206	incl	%ecx
6207	movl	%eax,%edx
6208	movl	16(%edi),%eax
6209	movzbl	%dl,%esi
6210	movzbl	-128(%ebp,%esi,1),%ebx
6211	movzbl	%dh,%esi
6212	xorl	%ebx,%eax
6213	movzbl	-128(%ebp,%esi,1),%ebx
6214	shrl	$16,%edx
6215	shll	$8,%ebx
6216	movzbl	%dl,%esi
6217	xorl	%ebx,%eax
6218	movzbl	-128(%ebp,%esi,1),%ebx
6219	movzbl	%dh,%esi
6220	shll	$16,%ebx
6221	xorl	%ebx,%eax
6222	movzbl	-128(%ebp,%esi,1),%ebx
6223	shll	$24,%ebx
6224	xorl	%ebx,%eax
6225	movl	%eax,48(%edi)
6226	xorl	20(%edi),%eax
6227	movl	%eax,52(%edi)
6228	xorl	24(%edi),%eax
6229	movl	%eax,56(%edi)
6230	xorl	28(%edi),%eax
6231	movl	%eax,60(%edi)
6232	addl	$32,%edi
6233	jmp	.L05214loop
6234.L05314break:
6235	movl	$14,48(%edi)
6236	xorl	%eax,%eax
6237	jmp	.L045exit
6238.L040badpointer:
6239	movl	$-1,%eax
6240.L045exit:
6241	popl	%edi
6242	popl	%esi
6243	popl	%ebx
6244	popl	%ebp
6245	ret
6246.size	_x86_AES_set_encrypt_key,.-_x86_AES_set_encrypt_key
6247.globl	private_AES_set_encrypt_key
6248.type	private_AES_set_encrypt_key,@function
6249.align	16
6250private_AES_set_encrypt_key:
6251.L_private_AES_set_encrypt_key_begin:
6252	call	_x86_AES_set_encrypt_key
6253	ret
6254.size	private_AES_set_encrypt_key,.-.L_private_AES_set_encrypt_key_begin
6255.globl	private_AES_set_decrypt_key
6256.type	private_AES_set_decrypt_key,@function
6257.align	16
6258private_AES_set_decrypt_key:
6259.L_private_AES_set_decrypt_key_begin:
6260	call	_x86_AES_set_encrypt_key
6261	cmpl	$0,%eax
6262	je	.L054proceed
6263	ret
6264.L054proceed:
6265	pushl	%ebp
6266	pushl	%ebx
6267	pushl	%esi
6268	pushl	%edi
6269	movl	28(%esp),%esi
6270	movl	240(%esi),%ecx
6271	leal	(,%ecx,4),%ecx
6272	leal	(%esi,%ecx,4),%edi
6273.align	4
6274.L055invert:
6275	movl	(%esi),%eax
6276	movl	4(%esi),%ebx
6277	movl	(%edi),%ecx
6278	movl	4(%edi),%edx
6279	movl	%eax,(%edi)
6280	movl	%ebx,4(%edi)
6281	movl	%ecx,(%esi)
6282	movl	%edx,4(%esi)
6283	movl	8(%esi),%eax
6284	movl	12(%esi),%ebx
6285	movl	8(%edi),%ecx
6286	movl	12(%edi),%edx
6287	movl	%eax,8(%edi)
6288	movl	%ebx,12(%edi)
6289	movl	%ecx,8(%esi)
6290	movl	%edx,12(%esi)
6291	addl	$16,%esi
6292	subl	$16,%edi
6293	cmpl	%edi,%esi
6294	jne	.L055invert
6295	movl	28(%esp),%edi
6296	movl	240(%edi),%esi
6297	leal	-2(%esi,%esi,1),%esi
6298	leal	(%edi,%esi,8),%esi
6299	movl	%esi,28(%esp)
6300	movl	16(%edi),%eax
6301.align	4
6302.L056permute:
6303	addl	$16,%edi
6304	movl	$2155905152,%ebp
6305	andl	%eax,%ebp
6306	leal	(%eax,%eax,1),%ebx
6307	movl	%ebp,%esi
6308	shrl	$7,%ebp
6309	subl	%ebp,%esi
6310	andl	$4278124286,%ebx
6311	andl	$454761243,%esi
6312	xorl	%esi,%ebx
6313	movl	$2155905152,%ebp
6314	andl	%ebx,%ebp
6315	leal	(%ebx,%ebx,1),%ecx
6316	movl	%ebp,%esi
6317	shrl	$7,%ebp
6318	subl	%ebp,%esi
6319	andl	$4278124286,%ecx
6320	andl	$454761243,%esi
6321	xorl	%eax,%ebx
6322	xorl	%esi,%ecx
6323	movl	$2155905152,%ebp
6324	andl	%ecx,%ebp
6325	leal	(%ecx,%ecx,1),%edx
6326	movl	%ebp,%esi
6327	shrl	$7,%ebp
6328	xorl	%eax,%ecx
6329	subl	%ebp,%esi
6330	andl	$4278124286,%edx
6331	andl	$454761243,%esi
6332	roll	$8,%eax
6333	xorl	%esi,%edx
6334	movl	4(%edi),%ebp
6335	xorl	%ebx,%eax
6336	xorl	%edx,%ebx
6337	xorl	%ecx,%eax
6338	roll	$24,%ebx
6339	xorl	%edx,%ecx
6340	xorl	%edx,%eax
6341	roll	$16,%ecx
6342	xorl	%ebx,%eax
6343	roll	$8,%edx
6344	xorl	%ecx,%eax
6345	movl	%ebp,%ebx
6346	xorl	%edx,%eax
6347	movl	%eax,(%edi)
6348	movl	$2155905152,%ebp
6349	andl	%ebx,%ebp
6350	leal	(%ebx,%ebx,1),%ecx
6351	movl	%ebp,%esi
6352	shrl	$7,%ebp
6353	subl	%ebp,%esi
6354	andl	$4278124286,%ecx
6355	andl	$454761243,%esi
6356	xorl	%esi,%ecx
6357	movl	$2155905152,%ebp
6358	andl	%ecx,%ebp
6359	leal	(%ecx,%ecx,1),%edx
6360	movl	%ebp,%esi
6361	shrl	$7,%ebp
6362	subl	%ebp,%esi
6363	andl	$4278124286,%edx
6364	andl	$454761243,%esi
6365	xorl	%ebx,%ecx
6366	xorl	%esi,%edx
6367	movl	$2155905152,%ebp
6368	andl	%edx,%ebp
6369	leal	(%edx,%edx,1),%eax
6370	movl	%ebp,%esi
6371	shrl	$7,%ebp
6372	xorl	%ebx,%edx
6373	subl	%ebp,%esi
6374	andl	$4278124286,%eax
6375	andl	$454761243,%esi
6376	roll	$8,%ebx
6377	xorl	%esi,%eax
6378	movl	8(%edi),%ebp
6379	xorl	%ecx,%ebx
6380	xorl	%eax,%ecx
6381	xorl	%edx,%ebx
6382	roll	$24,%ecx
6383	xorl	%eax,%edx
6384	xorl	%eax,%ebx
6385	roll	$16,%edx
6386	xorl	%ecx,%ebx
6387	roll	$8,%eax
6388	xorl	%edx,%ebx
6389	movl	%ebp,%ecx
6390	xorl	%eax,%ebx
6391	movl	%ebx,4(%edi)
6392	movl	$2155905152,%ebp
6393	andl	%ecx,%ebp
6394	leal	(%ecx,%ecx,1),%edx
6395	movl	%ebp,%esi
6396	shrl	$7,%ebp
6397	subl	%ebp,%esi
6398	andl	$4278124286,%edx
6399	andl	$454761243,%esi
6400	xorl	%esi,%edx
6401	movl	$2155905152,%ebp
6402	andl	%edx,%ebp
6403	leal	(%edx,%edx,1),%eax
6404	movl	%ebp,%esi
6405	shrl	$7,%ebp
6406	subl	%ebp,%esi
6407	andl	$4278124286,%eax
6408	andl	$454761243,%esi
6409	xorl	%ecx,%edx
6410	xorl	%esi,%eax
6411	movl	$2155905152,%ebp
6412	andl	%eax,%ebp
6413	leal	(%eax,%eax,1),%ebx
6414	movl	%ebp,%esi
6415	shrl	$7,%ebp
6416	xorl	%ecx,%eax
6417	subl	%ebp,%esi
6418	andl	$4278124286,%ebx
6419	andl	$454761243,%esi
6420	roll	$8,%ecx
6421	xorl	%esi,%ebx
6422	movl	12(%edi),%ebp
6423	xorl	%edx,%ecx
6424	xorl	%ebx,%edx
6425	xorl	%eax,%ecx
6426	roll	$24,%edx
6427	xorl	%ebx,%eax
6428	xorl	%ebx,%ecx
6429	roll	$16,%eax
6430	xorl	%edx,%ecx
6431	roll	$8,%ebx
6432	xorl	%eax,%ecx
6433	movl	%ebp,%edx
6434	xorl	%ebx,%ecx
6435	movl	%ecx,8(%edi)
6436	movl	$2155905152,%ebp
6437	andl	%edx,%ebp
6438	leal	(%edx,%edx,1),%eax
6439	movl	%ebp,%esi
6440	shrl	$7,%ebp
6441	subl	%ebp,%esi
6442	andl	$4278124286,%eax
6443	andl	$454761243,%esi
6444	xorl	%esi,%eax
6445	movl	$2155905152,%ebp
6446	andl	%eax,%ebp
6447	leal	(%eax,%eax,1),%ebx
6448	movl	%ebp,%esi
6449	shrl	$7,%ebp
6450	subl	%ebp,%esi
6451	andl	$4278124286,%ebx
6452	andl	$454761243,%esi
6453	xorl	%edx,%eax
6454	xorl	%esi,%ebx
6455	movl	$2155905152,%ebp
6456	andl	%ebx,%ebp
6457	leal	(%ebx,%ebx,1),%ecx
6458	movl	%ebp,%esi
6459	shrl	$7,%ebp
6460	xorl	%edx,%ebx
6461	subl	%ebp,%esi
6462	andl	$4278124286,%ecx
6463	andl	$454761243,%esi
6464	roll	$8,%edx
6465	xorl	%esi,%ecx
6466	movl	16(%edi),%ebp
6467	xorl	%eax,%edx
6468	xorl	%ecx,%eax
6469	xorl	%ebx,%edx
6470	roll	$24,%eax
6471	xorl	%ecx,%ebx
6472	xorl	%ecx,%edx
6473	roll	$16,%ebx
6474	xorl	%eax,%edx
6475	roll	$8,%ecx
6476	xorl	%ebx,%edx
6477	movl	%ebp,%eax
6478	xorl	%ecx,%edx
6479	movl	%edx,12(%edi)
6480	cmpl	28(%esp),%edi
6481	jb	.L056permute
6482	xorl	%eax,%eax
6483	popl	%edi
6484	popl	%esi
6485	popl	%ebx
6486	popl	%ebp
6487	ret
6488.size	private_AES_set_decrypt_key,.-.L_private_AES_set_decrypt_key_begin
6489.byte	65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89
6490.byte	80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
6491.byte	111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
6492.comm	OPENSSL_ia32cap_P,16,4
6493#endif
6494