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