• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#if defined(__i386__)
2.text
3.private_extern	__x86_AES_encrypt_compact
4.align	4
5__x86_AES_encrypt_compact:
6	movl	%edi,20(%esp)
7	xorl	(%edi),%eax
8	xorl	4(%edi),%ebx
9	xorl	8(%edi),%ecx
10	xorl	12(%edi),%edx
11	movl	240(%edi),%esi
12	leal	-2(%esi,%esi,1),%esi
13	leal	(%edi,%esi,8),%esi
14	movl	%esi,24(%esp)
15	movl	-128(%ebp),%edi
16	movl	-96(%ebp),%esi
17	movl	-64(%ebp),%edi
18	movl	-32(%ebp),%esi
19	movl	(%ebp),%edi
20	movl	32(%ebp),%esi
21	movl	64(%ebp),%edi
22	movl	96(%ebp),%esi
23.align	4,0x90
24L000loop:
25	movl	%eax,%esi
26	andl	$255,%esi
27	movzbl	-128(%ebp,%esi,1),%esi
28	movzbl	%bh,%edi
29	movzbl	-128(%ebp,%edi,1),%edi
30	shll	$8,%edi
31	xorl	%edi,%esi
32	movl	%ecx,%edi
33	shrl	$16,%edi
34	andl	$255,%edi
35	movzbl	-128(%ebp,%edi,1),%edi
36	shll	$16,%edi
37	xorl	%edi,%esi
38	movl	%edx,%edi
39	shrl	$24,%edi
40	movzbl	-128(%ebp,%edi,1),%edi
41	shll	$24,%edi
42	xorl	%edi,%esi
43	movl	%esi,4(%esp)
44	movl	%ebx,%esi
45	andl	$255,%esi
46	shrl	$16,%ebx
47	movzbl	-128(%ebp,%esi,1),%esi
48	movzbl	%ch,%edi
49	movzbl	-128(%ebp,%edi,1),%edi
50	shll	$8,%edi
51	xorl	%edi,%esi
52	movl	%edx,%edi
53	shrl	$16,%edi
54	andl	$255,%edi
55	movzbl	-128(%ebp,%edi,1),%edi
56	shll	$16,%edi
57	xorl	%edi,%esi
58	movl	%eax,%edi
59	shrl	$24,%edi
60	movzbl	-128(%ebp,%edi,1),%edi
61	shll	$24,%edi
62	xorl	%edi,%esi
63	movl	%esi,8(%esp)
64	movl	%ecx,%esi
65	andl	$255,%esi
66	shrl	$24,%ecx
67	movzbl	-128(%ebp,%esi,1),%esi
68	movzbl	%dh,%edi
69	movzbl	-128(%ebp,%edi,1),%edi
70	shll	$8,%edi
71	xorl	%edi,%esi
72	movl	%eax,%edi
73	shrl	$16,%edi
74	andl	$255,%edx
75	andl	$255,%edi
76	movzbl	-128(%ebp,%edi,1),%edi
77	shll	$16,%edi
78	xorl	%edi,%esi
79	movzbl	%bh,%edi
80	movzbl	-128(%ebp,%edi,1),%edi
81	shll	$24,%edi
82	xorl	%edi,%esi
83	andl	$255,%edx
84	movzbl	-128(%ebp,%edx,1),%edx
85	movzbl	%ah,%eax
86	movzbl	-128(%ebp,%eax,1),%eax
87	shll	$8,%eax
88	xorl	%eax,%edx
89	movl	4(%esp),%eax
90	andl	$255,%ebx
91	movzbl	-128(%ebp,%ebx,1),%ebx
92	shll	$16,%ebx
93	xorl	%ebx,%edx
94	movl	8(%esp),%ebx
95	movzbl	-128(%ebp,%ecx,1),%ecx
96	shll	$24,%ecx
97	xorl	%ecx,%edx
98	movl	%esi,%ecx
99	movl	$2155905152,%ebp
100	andl	%ecx,%ebp
101	leal	(%ecx,%ecx,1),%edi
102	movl	%ebp,%esi
103	shrl	$7,%ebp
104	andl	$4278124286,%edi
105	subl	%ebp,%esi
106	movl	%ecx,%ebp
107	andl	$454761243,%esi
108	rorl	$16,%ebp
109	xorl	%edi,%esi
110	movl	%ecx,%edi
111	xorl	%esi,%ecx
112	rorl	$24,%edi
113	xorl	%ebp,%esi
114	roll	$24,%ecx
115	xorl	%edi,%esi
116	movl	$2155905152,%ebp
117	xorl	%esi,%ecx
118	andl	%edx,%ebp
119	leal	(%edx,%edx,1),%edi
120	movl	%ebp,%esi
121	shrl	$7,%ebp
122	andl	$4278124286,%edi
123	subl	%ebp,%esi
124	movl	%edx,%ebp
125	andl	$454761243,%esi
126	rorl	$16,%ebp
127	xorl	%edi,%esi
128	movl	%edx,%edi
129	xorl	%esi,%edx
130	rorl	$24,%edi
131	xorl	%ebp,%esi
132	roll	$24,%edx
133	xorl	%edi,%esi
134	movl	$2155905152,%ebp
135	xorl	%esi,%edx
136	andl	%eax,%ebp
137	leal	(%eax,%eax,1),%edi
138	movl	%ebp,%esi
139	shrl	$7,%ebp
140	andl	$4278124286,%edi
141	subl	%ebp,%esi
142	movl	%eax,%ebp
143	andl	$454761243,%esi
144	rorl	$16,%ebp
145	xorl	%edi,%esi
146	movl	%eax,%edi
147	xorl	%esi,%eax
148	rorl	$24,%edi
149	xorl	%ebp,%esi
150	roll	$24,%eax
151	xorl	%edi,%esi
152	movl	$2155905152,%ebp
153	xorl	%esi,%eax
154	andl	%ebx,%ebp
155	leal	(%ebx,%ebx,1),%edi
156	movl	%ebp,%esi
157	shrl	$7,%ebp
158	andl	$4278124286,%edi
159	subl	%ebp,%esi
160	movl	%ebx,%ebp
161	andl	$454761243,%esi
162	rorl	$16,%ebp
163	xorl	%edi,%esi
164	movl	%ebx,%edi
165	xorl	%esi,%ebx
166	rorl	$24,%edi
167	xorl	%ebp,%esi
168	roll	$24,%ebx
169	xorl	%edi,%esi
170	xorl	%esi,%ebx
171	movl	20(%esp),%edi
172	movl	28(%esp),%ebp
173	addl	$16,%edi
174	xorl	(%edi),%eax
175	xorl	4(%edi),%ebx
176	xorl	8(%edi),%ecx
177	xorl	12(%edi),%edx
178	cmpl	24(%esp),%edi
179	movl	%edi,20(%esp)
180	jb	L000loop
181	movl	%eax,%esi
182	andl	$255,%esi
183	movzbl	-128(%ebp,%esi,1),%esi
184	movzbl	%bh,%edi
185	movzbl	-128(%ebp,%edi,1),%edi
186	shll	$8,%edi
187	xorl	%edi,%esi
188	movl	%ecx,%edi
189	shrl	$16,%edi
190	andl	$255,%edi
191	movzbl	-128(%ebp,%edi,1),%edi
192	shll	$16,%edi
193	xorl	%edi,%esi
194	movl	%edx,%edi
195	shrl	$24,%edi
196	movzbl	-128(%ebp,%edi,1),%edi
197	shll	$24,%edi
198	xorl	%edi,%esi
199	movl	%esi,4(%esp)
200	movl	%ebx,%esi
201	andl	$255,%esi
202	shrl	$16,%ebx
203	movzbl	-128(%ebp,%esi,1),%esi
204	movzbl	%ch,%edi
205	movzbl	-128(%ebp,%edi,1),%edi
206	shll	$8,%edi
207	xorl	%edi,%esi
208	movl	%edx,%edi
209	shrl	$16,%edi
210	andl	$255,%edi
211	movzbl	-128(%ebp,%edi,1),%edi
212	shll	$16,%edi
213	xorl	%edi,%esi
214	movl	%eax,%edi
215	shrl	$24,%edi
216	movzbl	-128(%ebp,%edi,1),%edi
217	shll	$24,%edi
218	xorl	%edi,%esi
219	movl	%esi,8(%esp)
220	movl	%ecx,%esi
221	andl	$255,%esi
222	shrl	$24,%ecx
223	movzbl	-128(%ebp,%esi,1),%esi
224	movzbl	%dh,%edi
225	movzbl	-128(%ebp,%edi,1),%edi
226	shll	$8,%edi
227	xorl	%edi,%esi
228	movl	%eax,%edi
229	shrl	$16,%edi
230	andl	$255,%edx
231	andl	$255,%edi
232	movzbl	-128(%ebp,%edi,1),%edi
233	shll	$16,%edi
234	xorl	%edi,%esi
235	movzbl	%bh,%edi
236	movzbl	-128(%ebp,%edi,1),%edi
237	shll	$24,%edi
238	xorl	%edi,%esi
239	movl	20(%esp),%edi
240	andl	$255,%edx
241	movzbl	-128(%ebp,%edx,1),%edx
242	movzbl	%ah,%eax
243	movzbl	-128(%ebp,%eax,1),%eax
244	shll	$8,%eax
245	xorl	%eax,%edx
246	movl	4(%esp),%eax
247	andl	$255,%ebx
248	movzbl	-128(%ebp,%ebx,1),%ebx
249	shll	$16,%ebx
250	xorl	%ebx,%edx
251	movl	8(%esp),%ebx
252	movzbl	-128(%ebp,%ecx,1),%ecx
253	shll	$24,%ecx
254	xorl	%ecx,%edx
255	movl	%esi,%ecx
256	xorl	16(%edi),%eax
257	xorl	20(%edi),%ebx
258	xorl	24(%edi),%ecx
259	xorl	28(%edi),%edx
260	ret
261.private_extern	__sse_AES_encrypt_compact
262.align	4
263__sse_AES_encrypt_compact:
264	pxor	(%edi),%mm0
265	pxor	8(%edi),%mm4
266	movl	240(%edi),%esi
267	leal	-2(%esi,%esi,1),%esi
268	leal	(%edi,%esi,8),%esi
269	movl	%esi,24(%esp)
270	movl	$454761243,%eax
271	movl	%eax,8(%esp)
272	movl	%eax,12(%esp)
273	movl	-128(%ebp),%eax
274	movl	-96(%ebp),%ebx
275	movl	-64(%ebp),%ecx
276	movl	-32(%ebp),%edx
277	movl	(%ebp),%eax
278	movl	32(%ebp),%ebx
279	movl	64(%ebp),%ecx
280	movl	96(%ebp),%edx
281.align	4,0x90
282L001loop:
283	pshufw	$8,%mm0,%mm1
284	pshufw	$13,%mm4,%mm5
285	movd	%mm1,%eax
286	movd	%mm5,%ebx
287	movl	%edi,20(%esp)
288	movzbl	%al,%esi
289	movzbl	%ah,%edx
290	pshufw	$13,%mm0,%mm2
291	movzbl	-128(%ebp,%esi,1),%ecx
292	movzbl	%bl,%edi
293	movzbl	-128(%ebp,%edx,1),%edx
294	shrl	$16,%eax
295	shll	$8,%edx
296	movzbl	-128(%ebp,%edi,1),%esi
297	movzbl	%bh,%edi
298	shll	$16,%esi
299	pshufw	$8,%mm4,%mm6
300	orl	%esi,%ecx
301	movzbl	-128(%ebp,%edi,1),%esi
302	movzbl	%ah,%edi
303	shll	$24,%esi
304	shrl	$16,%ebx
305	orl	%esi,%edx
306	movzbl	-128(%ebp,%edi,1),%esi
307	movzbl	%bh,%edi
308	shll	$8,%esi
309	orl	%esi,%ecx
310	movzbl	-128(%ebp,%edi,1),%esi
311	movzbl	%al,%edi
312	shll	$24,%esi
313	orl	%esi,%ecx
314	movzbl	-128(%ebp,%edi,1),%esi
315	movzbl	%bl,%edi
316	movd	%mm2,%eax
317	movd	%ecx,%mm0
318	movzbl	-128(%ebp,%edi,1),%ecx
319	movzbl	%ah,%edi
320	shll	$16,%ecx
321	movd	%mm6,%ebx
322	orl	%esi,%ecx
323	movzbl	-128(%ebp,%edi,1),%esi
324	movzbl	%bh,%edi
325	shll	$24,%esi
326	orl	%esi,%ecx
327	movzbl	-128(%ebp,%edi,1),%esi
328	movzbl	%bl,%edi
329	shll	$8,%esi
330	shrl	$16,%ebx
331	orl	%esi,%ecx
332	movzbl	-128(%ebp,%edi,1),%esi
333	movzbl	%al,%edi
334	shrl	$16,%eax
335	movd	%ecx,%mm1
336	movzbl	-128(%ebp,%edi,1),%ecx
337	movzbl	%ah,%edi
338	shll	$16,%ecx
339	andl	$255,%eax
340	orl	%esi,%ecx
341	punpckldq	%mm1,%mm0
342	movzbl	-128(%ebp,%edi,1),%esi
343	movzbl	%bh,%edi
344	shll	$24,%esi
345	andl	$255,%ebx
346	movzbl	-128(%ebp,%eax,1),%eax
347	orl	%esi,%ecx
348	shll	$16,%eax
349	movzbl	-128(%ebp,%edi,1),%esi
350	orl	%eax,%edx
351	shll	$8,%esi
352	movzbl	-128(%ebp,%ebx,1),%ebx
353	orl	%esi,%ecx
354	orl	%ebx,%edx
355	movl	20(%esp),%edi
356	movd	%ecx,%mm4
357	movd	%edx,%mm5
358	punpckldq	%mm5,%mm4
359	addl	$16,%edi
360	cmpl	24(%esp),%edi
361	ja	L002out
362	movq	8(%esp),%mm2
363	pxor	%mm3,%mm3
364	pxor	%mm7,%mm7
365	movq	%mm0,%mm1
366	movq	%mm4,%mm5
367	pcmpgtb	%mm0,%mm3
368	pcmpgtb	%mm4,%mm7
369	pand	%mm2,%mm3
370	pand	%mm2,%mm7
371	pshufw	$177,%mm0,%mm2
372	pshufw	$177,%mm4,%mm6
373	paddb	%mm0,%mm0
374	paddb	%mm4,%mm4
375	pxor	%mm3,%mm0
376	pxor	%mm7,%mm4
377	pshufw	$177,%mm2,%mm3
378	pshufw	$177,%mm6,%mm7
379	pxor	%mm0,%mm1
380	pxor	%mm4,%mm5
381	pxor	%mm2,%mm0
382	pxor	%mm6,%mm4
383	movq	%mm3,%mm2
384	movq	%mm7,%mm6
385	pslld	$8,%mm3
386	pslld	$8,%mm7
387	psrld	$24,%mm2
388	psrld	$24,%mm6
389	pxor	%mm3,%mm0
390	pxor	%mm7,%mm4
391	pxor	%mm2,%mm0
392	pxor	%mm6,%mm4
393	movq	%mm1,%mm3
394	movq	%mm5,%mm7
395	movq	(%edi),%mm2
396	movq	8(%edi),%mm6
397	psrld	$8,%mm1
398	psrld	$8,%mm5
399	movl	-128(%ebp),%eax
400	pslld	$24,%mm3
401	pslld	$24,%mm7
402	movl	-64(%ebp),%ebx
403	pxor	%mm1,%mm0
404	pxor	%mm5,%mm4
405	movl	(%ebp),%ecx
406	pxor	%mm3,%mm0
407	pxor	%mm7,%mm4
408	movl	64(%ebp),%edx
409	pxor	%mm2,%mm0
410	pxor	%mm6,%mm4
411	jmp	L001loop
412.align	4,0x90
413L002out:
414	pxor	(%edi),%mm0
415	pxor	8(%edi),%mm4
416	ret
417.private_extern	__x86_AES_encrypt
418.align	4
419__x86_AES_encrypt:
420	movl	%edi,20(%esp)
421	xorl	(%edi),%eax
422	xorl	4(%edi),%ebx
423	xorl	8(%edi),%ecx
424	xorl	12(%edi),%edx
425	movl	240(%edi),%esi
426	leal	-2(%esi,%esi,1),%esi
427	leal	(%edi,%esi,8),%esi
428	movl	%esi,24(%esp)
429.align	4,0x90
430L003loop:
431	movl	%eax,%esi
432	andl	$255,%esi
433	movl	(%ebp,%esi,8),%esi
434	movzbl	%bh,%edi
435	xorl	3(%ebp,%edi,8),%esi
436	movl	%ecx,%edi
437	shrl	$16,%edi
438	andl	$255,%edi
439	xorl	2(%ebp,%edi,8),%esi
440	movl	%edx,%edi
441	shrl	$24,%edi
442	xorl	1(%ebp,%edi,8),%esi
443	movl	%esi,4(%esp)
444	movl	%ebx,%esi
445	andl	$255,%esi
446	shrl	$16,%ebx
447	movl	(%ebp,%esi,8),%esi
448	movzbl	%ch,%edi
449	xorl	3(%ebp,%edi,8),%esi
450	movl	%edx,%edi
451	shrl	$16,%edi
452	andl	$255,%edi
453	xorl	2(%ebp,%edi,8),%esi
454	movl	%eax,%edi
455	shrl	$24,%edi
456	xorl	1(%ebp,%edi,8),%esi
457	movl	%esi,8(%esp)
458	movl	%ecx,%esi
459	andl	$255,%esi
460	shrl	$24,%ecx
461	movl	(%ebp,%esi,8),%esi
462	movzbl	%dh,%edi
463	xorl	3(%ebp,%edi,8),%esi
464	movl	%eax,%edi
465	shrl	$16,%edi
466	andl	$255,%edx
467	andl	$255,%edi
468	xorl	2(%ebp,%edi,8),%esi
469	movzbl	%bh,%edi
470	xorl	1(%ebp,%edi,8),%esi
471	movl	20(%esp),%edi
472	movl	(%ebp,%edx,8),%edx
473	movzbl	%ah,%eax
474	xorl	3(%ebp,%eax,8),%edx
475	movl	4(%esp),%eax
476	andl	$255,%ebx
477	xorl	2(%ebp,%ebx,8),%edx
478	movl	8(%esp),%ebx
479	xorl	1(%ebp,%ecx,8),%edx
480	movl	%esi,%ecx
481	addl	$16,%edi
482	xorl	(%edi),%eax
483	xorl	4(%edi),%ebx
484	xorl	8(%edi),%ecx
485	xorl	12(%edi),%edx
486	cmpl	24(%esp),%edi
487	movl	%edi,20(%esp)
488	jb	L003loop
489	movl	%eax,%esi
490	andl	$255,%esi
491	movl	2(%ebp,%esi,8),%esi
492	andl	$255,%esi
493	movzbl	%bh,%edi
494	movl	(%ebp,%edi,8),%edi
495	andl	$65280,%edi
496	xorl	%edi,%esi
497	movl	%ecx,%edi
498	shrl	$16,%edi
499	andl	$255,%edi
500	movl	(%ebp,%edi,8),%edi
501	andl	$16711680,%edi
502	xorl	%edi,%esi
503	movl	%edx,%edi
504	shrl	$24,%edi
505	movl	2(%ebp,%edi,8),%edi
506	andl	$4278190080,%edi
507	xorl	%edi,%esi
508	movl	%esi,4(%esp)
509	movl	%ebx,%esi
510	andl	$255,%esi
511	shrl	$16,%ebx
512	movl	2(%ebp,%esi,8),%esi
513	andl	$255,%esi
514	movzbl	%ch,%edi
515	movl	(%ebp,%edi,8),%edi
516	andl	$65280,%edi
517	xorl	%edi,%esi
518	movl	%edx,%edi
519	shrl	$16,%edi
520	andl	$255,%edi
521	movl	(%ebp,%edi,8),%edi
522	andl	$16711680,%edi
523	xorl	%edi,%esi
524	movl	%eax,%edi
525	shrl	$24,%edi
526	movl	2(%ebp,%edi,8),%edi
527	andl	$4278190080,%edi
528	xorl	%edi,%esi
529	movl	%esi,8(%esp)
530	movl	%ecx,%esi
531	andl	$255,%esi
532	shrl	$24,%ecx
533	movl	2(%ebp,%esi,8),%esi
534	andl	$255,%esi
535	movzbl	%dh,%edi
536	movl	(%ebp,%edi,8),%edi
537	andl	$65280,%edi
538	xorl	%edi,%esi
539	movl	%eax,%edi
540	shrl	$16,%edi
541	andl	$255,%edx
542	andl	$255,%edi
543	movl	(%ebp,%edi,8),%edi
544	andl	$16711680,%edi
545	xorl	%edi,%esi
546	movzbl	%bh,%edi
547	movl	2(%ebp,%edi,8),%edi
548	andl	$4278190080,%edi
549	xorl	%edi,%esi
550	movl	20(%esp),%edi
551	andl	$255,%edx
552	movl	2(%ebp,%edx,8),%edx
553	andl	$255,%edx
554	movzbl	%ah,%eax
555	movl	(%ebp,%eax,8),%eax
556	andl	$65280,%eax
557	xorl	%eax,%edx
558	movl	4(%esp),%eax
559	andl	$255,%ebx
560	movl	(%ebp,%ebx,8),%ebx
561	andl	$16711680,%ebx
562	xorl	%ebx,%edx
563	movl	8(%esp),%ebx
564	movl	2(%ebp,%ecx,8),%ecx
565	andl	$4278190080,%ecx
566	xorl	%ecx,%edx
567	movl	%esi,%ecx
568	addl	$16,%edi
569	xorl	(%edi),%eax
570	xorl	4(%edi),%ebx
571	xorl	8(%edi),%ecx
572	xorl	12(%edi),%edx
573	ret
574.align	6,0x90
575LAES_Te:
576.long	2774754246,2774754246
577.long	2222750968,2222750968
578.long	2574743534,2574743534
579.long	2373680118,2373680118
580.long	234025727,234025727
581.long	3177933782,3177933782
582.long	2976870366,2976870366
583.long	1422247313,1422247313
584.long	1345335392,1345335392
585.long	50397442,50397442
586.long	2842126286,2842126286
587.long	2099981142,2099981142
588.long	436141799,436141799
589.long	1658312629,1658312629
590.long	3870010189,3870010189
591.long	2591454956,2591454956
592.long	1170918031,1170918031
593.long	2642575903,2642575903
594.long	1086966153,1086966153
595.long	2273148410,2273148410
596.long	368769775,368769775
597.long	3948501426,3948501426
598.long	3376891790,3376891790
599.long	200339707,200339707
600.long	3970805057,3970805057
601.long	1742001331,1742001331
602.long	4255294047,4255294047
603.long	3937382213,3937382213
604.long	3214711843,3214711843
605.long	4154762323,4154762323
606.long	2524082916,2524082916
607.long	1539358875,1539358875
608.long	3266819957,3266819957
609.long	486407649,486407649
610.long	2928907069,2928907069
611.long	1780885068,1780885068
612.long	1513502316,1513502316
613.long	1094664062,1094664062
614.long	49805301,49805301
615.long	1338821763,1338821763
616.long	1546925160,1546925160
617.long	4104496465,4104496465
618.long	887481809,887481809
619.long	150073849,150073849
620.long	2473685474,2473685474
621.long	1943591083,1943591083
622.long	1395732834,1395732834
623.long	1058346282,1058346282
624.long	201589768,201589768
625.long	1388824469,1388824469
626.long	1696801606,1696801606
627.long	1589887901,1589887901
628.long	672667696,672667696
629.long	2711000631,2711000631
630.long	251987210,251987210
631.long	3046808111,3046808111
632.long	151455502,151455502
633.long	907153956,907153956
634.long	2608889883,2608889883
635.long	1038279391,1038279391
636.long	652995533,652995533
637.long	1764173646,1764173646
638.long	3451040383,3451040383
639.long	2675275242,2675275242
640.long	453576978,453576978
641.long	2659418909,2659418909
642.long	1949051992,1949051992
643.long	773462580,773462580
644.long	756751158,756751158
645.long	2993581788,2993581788
646.long	3998898868,3998898868
647.long	4221608027,4221608027
648.long	4132590244,4132590244
649.long	1295727478,1295727478
650.long	1641469623,1641469623
651.long	3467883389,3467883389
652.long	2066295122,2066295122
653.long	1055122397,1055122397
654.long	1898917726,1898917726
655.long	2542044179,2542044179
656.long	4115878822,4115878822
657.long	1758581177,1758581177
658.long	0,0
659.long	753790401,753790401
660.long	1612718144,1612718144
661.long	536673507,536673507
662.long	3367088505,3367088505
663.long	3982187446,3982187446
664.long	3194645204,3194645204
665.long	1187761037,1187761037
666.long	3653156455,3653156455
667.long	1262041458,1262041458
668.long	3729410708,3729410708
669.long	3561770136,3561770136
670.long	3898103984,3898103984
671.long	1255133061,1255133061
672.long	1808847035,1808847035
673.long	720367557,720367557
674.long	3853167183,3853167183
675.long	385612781,385612781
676.long	3309519750,3309519750
677.long	3612167578,3612167578
678.long	1429418854,1429418854
679.long	2491778321,2491778321
680.long	3477423498,3477423498
681.long	284817897,284817897
682.long	100794884,100794884
683.long	2172616702,2172616702
684.long	4031795360,4031795360
685.long	1144798328,1144798328
686.long	3131023141,3131023141
687.long	3819481163,3819481163
688.long	4082192802,4082192802
689.long	4272137053,4272137053
690.long	3225436288,3225436288
691.long	2324664069,2324664069
692.long	2912064063,2912064063
693.long	3164445985,3164445985
694.long	1211644016,1211644016
695.long	83228145,83228145
696.long	3753688163,3753688163
697.long	3249976951,3249976951
698.long	1977277103,1977277103
699.long	1663115586,1663115586
700.long	806359072,806359072
701.long	452984805,452984805
702.long	250868733,250868733
703.long	1842533055,1842533055
704.long	1288555905,1288555905
705.long	336333848,336333848
706.long	890442534,890442534
707.long	804056259,804056259
708.long	3781124030,3781124030
709.long	2727843637,2727843637
710.long	3427026056,3427026056
711.long	957814574,957814574
712.long	1472513171,1472513171
713.long	4071073621,4071073621
714.long	2189328124,2189328124
715.long	1195195770,1195195770
716.long	2892260552,2892260552
717.long	3881655738,3881655738
718.long	723065138,723065138
719.long	2507371494,2507371494
720.long	2690670784,2690670784
721.long	2558624025,2558624025
722.long	3511635870,3511635870
723.long	2145180835,2145180835
724.long	1713513028,1713513028
725.long	2116692564,2116692564
726.long	2878378043,2878378043
727.long	2206763019,2206763019
728.long	3393603212,3393603212
729.long	703524551,703524551
730.long	3552098411,3552098411
731.long	1007948840,1007948840
732.long	2044649127,2044649127
733.long	3797835452,3797835452
734.long	487262998,487262998
735.long	1994120109,1994120109
736.long	1004593371,1004593371
737.long	1446130276,1446130276
738.long	1312438900,1312438900
739.long	503974420,503974420
740.long	3679013266,3679013266
741.long	168166924,168166924
742.long	1814307912,1814307912
743.long	3831258296,3831258296
744.long	1573044895,1573044895
745.long	1859376061,1859376061
746.long	4021070915,4021070915
747.long	2791465668,2791465668
748.long	2828112185,2828112185
749.long	2761266481,2761266481
750.long	937747667,937747667
751.long	2339994098,2339994098
752.long	854058965,854058965
753.long	1137232011,1137232011
754.long	1496790894,1496790894
755.long	3077402074,3077402074
756.long	2358086913,2358086913
757.long	1691735473,1691735473
758.long	3528347292,3528347292
759.long	3769215305,3769215305
760.long	3027004632,3027004632
761.long	4199962284,4199962284
762.long	133494003,133494003
763.long	636152527,636152527
764.long	2942657994,2942657994
765.long	2390391540,2390391540
766.long	3920539207,3920539207
767.long	403179536,403179536
768.long	3585784431,3585784431
769.long	2289596656,2289596656
770.long	1864705354,1864705354
771.long	1915629148,1915629148
772.long	605822008,605822008
773.long	4054230615,4054230615
774.long	3350508659,3350508659
775.long	1371981463,1371981463
776.long	602466507,602466507
777.long	2094914977,2094914977
778.long	2624877800,2624877800
779.long	555687742,555687742
780.long	3712699286,3712699286
781.long	3703422305,3703422305
782.long	2257292045,2257292045
783.long	2240449039,2240449039
784.long	2423288032,2423288032
785.long	1111375484,1111375484
786.long	3300242801,3300242801
787.long	2858837708,2858837708
788.long	3628615824,3628615824
789.long	84083462,84083462
790.long	32962295,32962295
791.long	302911004,302911004
792.long	2741068226,2741068226
793.long	1597322602,1597322602
794.long	4183250862,4183250862
795.long	3501832553,3501832553
796.long	2441512471,2441512471
797.long	1489093017,1489093017
798.long	656219450,656219450
799.long	3114180135,3114180135
800.long	954327513,954327513
801.long	335083755,335083755
802.long	3013122091,3013122091
803.long	856756514,856756514
804.long	3144247762,3144247762
805.long	1893325225,1893325225
806.long	2307821063,2307821063
807.long	2811532339,2811532339
808.long	3063651117,3063651117
809.long	572399164,572399164
810.long	2458355477,2458355477
811.long	552200649,552200649
812.long	1238290055,1238290055
813.long	4283782570,4283782570
814.long	2015897680,2015897680
815.long	2061492133,2061492133
816.long	2408352771,2408352771
817.long	4171342169,4171342169
818.long	2156497161,2156497161
819.long	386731290,386731290
820.long	3669999461,3669999461
821.long	837215959,837215959
822.long	3326231172,3326231172
823.long	3093850320,3093850320
824.long	3275833730,3275833730
825.long	2962856233,2962856233
826.long	1999449434,1999449434
827.long	286199582,286199582
828.long	3417354363,3417354363
829.long	4233385128,4233385128
830.long	3602627437,3602627437
831.long	974525996,974525996
832.byte	99,124,119,123,242,107,111,197
833.byte	48,1,103,43,254,215,171,118
834.byte	202,130,201,125,250,89,71,240
835.byte	173,212,162,175,156,164,114,192
836.byte	183,253,147,38,54,63,247,204
837.byte	52,165,229,241,113,216,49,21
838.byte	4,199,35,195,24,150,5,154
839.byte	7,18,128,226,235,39,178,117
840.byte	9,131,44,26,27,110,90,160
841.byte	82,59,214,179,41,227,47,132
842.byte	83,209,0,237,32,252,177,91
843.byte	106,203,190,57,74,76,88,207
844.byte	208,239,170,251,67,77,51,133
845.byte	69,249,2,127,80,60,159,168
846.byte	81,163,64,143,146,157,56,245
847.byte	188,182,218,33,16,255,243,210
848.byte	205,12,19,236,95,151,68,23
849.byte	196,167,126,61,100,93,25,115
850.byte	96,129,79,220,34,42,144,136
851.byte	70,238,184,20,222,94,11,219
852.byte	224,50,58,10,73,6,36,92
853.byte	194,211,172,98,145,149,228,121
854.byte	231,200,55,109,141,213,78,169
855.byte	108,86,244,234,101,122,174,8
856.byte	186,120,37,46,28,166,180,198
857.byte	232,221,116,31,75,189,139,138
858.byte	112,62,181,102,72,3,246,14
859.byte	97,53,87,185,134,193,29,158
860.byte	225,248,152,17,105,217,142,148
861.byte	155,30,135,233,206,85,40,223
862.byte	140,161,137,13,191,230,66,104
863.byte	65,153,45,15,176,84,187,22
864.byte	99,124,119,123,242,107,111,197
865.byte	48,1,103,43,254,215,171,118
866.byte	202,130,201,125,250,89,71,240
867.byte	173,212,162,175,156,164,114,192
868.byte	183,253,147,38,54,63,247,204
869.byte	52,165,229,241,113,216,49,21
870.byte	4,199,35,195,24,150,5,154
871.byte	7,18,128,226,235,39,178,117
872.byte	9,131,44,26,27,110,90,160
873.byte	82,59,214,179,41,227,47,132
874.byte	83,209,0,237,32,252,177,91
875.byte	106,203,190,57,74,76,88,207
876.byte	208,239,170,251,67,77,51,133
877.byte	69,249,2,127,80,60,159,168
878.byte	81,163,64,143,146,157,56,245
879.byte	188,182,218,33,16,255,243,210
880.byte	205,12,19,236,95,151,68,23
881.byte	196,167,126,61,100,93,25,115
882.byte	96,129,79,220,34,42,144,136
883.byte	70,238,184,20,222,94,11,219
884.byte	224,50,58,10,73,6,36,92
885.byte	194,211,172,98,145,149,228,121
886.byte	231,200,55,109,141,213,78,169
887.byte	108,86,244,234,101,122,174,8
888.byte	186,120,37,46,28,166,180,198
889.byte	232,221,116,31,75,189,139,138
890.byte	112,62,181,102,72,3,246,14
891.byte	97,53,87,185,134,193,29,158
892.byte	225,248,152,17,105,217,142,148
893.byte	155,30,135,233,206,85,40,223
894.byte	140,161,137,13,191,230,66,104
895.byte	65,153,45,15,176,84,187,22
896.byte	99,124,119,123,242,107,111,197
897.byte	48,1,103,43,254,215,171,118
898.byte	202,130,201,125,250,89,71,240
899.byte	173,212,162,175,156,164,114,192
900.byte	183,253,147,38,54,63,247,204
901.byte	52,165,229,241,113,216,49,21
902.byte	4,199,35,195,24,150,5,154
903.byte	7,18,128,226,235,39,178,117
904.byte	9,131,44,26,27,110,90,160
905.byte	82,59,214,179,41,227,47,132
906.byte	83,209,0,237,32,252,177,91
907.byte	106,203,190,57,74,76,88,207
908.byte	208,239,170,251,67,77,51,133
909.byte	69,249,2,127,80,60,159,168
910.byte	81,163,64,143,146,157,56,245
911.byte	188,182,218,33,16,255,243,210
912.byte	205,12,19,236,95,151,68,23
913.byte	196,167,126,61,100,93,25,115
914.byte	96,129,79,220,34,42,144,136
915.byte	70,238,184,20,222,94,11,219
916.byte	224,50,58,10,73,6,36,92
917.byte	194,211,172,98,145,149,228,121
918.byte	231,200,55,109,141,213,78,169
919.byte	108,86,244,234,101,122,174,8
920.byte	186,120,37,46,28,166,180,198
921.byte	232,221,116,31,75,189,139,138
922.byte	112,62,181,102,72,3,246,14
923.byte	97,53,87,185,134,193,29,158
924.byte	225,248,152,17,105,217,142,148
925.byte	155,30,135,233,206,85,40,223
926.byte	140,161,137,13,191,230,66,104
927.byte	65,153,45,15,176,84,187,22
928.byte	99,124,119,123,242,107,111,197
929.byte	48,1,103,43,254,215,171,118
930.byte	202,130,201,125,250,89,71,240
931.byte	173,212,162,175,156,164,114,192
932.byte	183,253,147,38,54,63,247,204
933.byte	52,165,229,241,113,216,49,21
934.byte	4,199,35,195,24,150,5,154
935.byte	7,18,128,226,235,39,178,117
936.byte	9,131,44,26,27,110,90,160
937.byte	82,59,214,179,41,227,47,132
938.byte	83,209,0,237,32,252,177,91
939.byte	106,203,190,57,74,76,88,207
940.byte	208,239,170,251,67,77,51,133
941.byte	69,249,2,127,80,60,159,168
942.byte	81,163,64,143,146,157,56,245
943.byte	188,182,218,33,16,255,243,210
944.byte	205,12,19,236,95,151,68,23
945.byte	196,167,126,61,100,93,25,115
946.byte	96,129,79,220,34,42,144,136
947.byte	70,238,184,20,222,94,11,219
948.byte	224,50,58,10,73,6,36,92
949.byte	194,211,172,98,145,149,228,121
950.byte	231,200,55,109,141,213,78,169
951.byte	108,86,244,234,101,122,174,8
952.byte	186,120,37,46,28,166,180,198
953.byte	232,221,116,31,75,189,139,138
954.byte	112,62,181,102,72,3,246,14
955.byte	97,53,87,185,134,193,29,158
956.byte	225,248,152,17,105,217,142,148
957.byte	155,30,135,233,206,85,40,223
958.byte	140,161,137,13,191,230,66,104
959.byte	65,153,45,15,176,84,187,22
960.long	1,2,4,8
961.long	16,32,64,128
962.long	27,54,0,0
963.long	0,0,0,0
964.globl	_asm_AES_encrypt
965.private_extern	_asm_AES_encrypt
966.align	4
967_asm_AES_encrypt:
968L_asm_AES_encrypt_begin:
969	pushl	%ebp
970	pushl	%ebx
971	pushl	%esi
972	pushl	%edi
973	movl	20(%esp),%esi
974	movl	28(%esp),%edi
975	movl	%esp,%eax
976	subl	$36,%esp
977	andl	$-64,%esp
978	leal	-127(%edi),%ebx
979	subl	%esp,%ebx
980	negl	%ebx
981	andl	$960,%ebx
982	subl	%ebx,%esp
983	addl	$4,%esp
984	movl	%eax,28(%esp)
985	call	L004pic_point
986L004pic_point:
987	popl	%ebp
988	movl	L_OPENSSL_ia32cap_P$non_lazy_ptr-L004pic_point(%ebp),%eax
989	leal	LAES_Te-L004pic_point(%ebp),%ebp
990	leal	764(%esp),%ebx
991	subl	%ebp,%ebx
992	andl	$768,%ebx
993	leal	2176(%ebp,%ebx,1),%ebp
994	btl	$25,(%eax)
995	jnc	L005x86
996	movq	(%esi),%mm0
997	movq	8(%esi),%mm4
998	call	__sse_AES_encrypt_compact
999	movl	28(%esp),%esp
1000	movl	24(%esp),%esi
1001	movq	%mm0,(%esi)
1002	movq	%mm4,8(%esi)
1003	emms
1004	popl	%edi
1005	popl	%esi
1006	popl	%ebx
1007	popl	%ebp
1008	ret
1009.align	4,0x90
1010L005x86:
1011	movl	%ebp,24(%esp)
1012	movl	(%esi),%eax
1013	movl	4(%esi),%ebx
1014	movl	8(%esi),%ecx
1015	movl	12(%esi),%edx
1016	call	__x86_AES_encrypt_compact
1017	movl	28(%esp),%esp
1018	movl	24(%esp),%esi
1019	movl	%eax,(%esi)
1020	movl	%ebx,4(%esi)
1021	movl	%ecx,8(%esi)
1022	movl	%edx,12(%esi)
1023	popl	%edi
1024	popl	%esi
1025	popl	%ebx
1026	popl	%ebp
1027	ret
1028.private_extern	__x86_AES_decrypt_compact
1029.align	4
1030__x86_AES_decrypt_compact:
1031	movl	%edi,20(%esp)
1032	xorl	(%edi),%eax
1033	xorl	4(%edi),%ebx
1034	xorl	8(%edi),%ecx
1035	xorl	12(%edi),%edx
1036	movl	240(%edi),%esi
1037	leal	-2(%esi,%esi,1),%esi
1038	leal	(%edi,%esi,8),%esi
1039	movl	%esi,24(%esp)
1040	movl	-128(%ebp),%edi
1041	movl	-96(%ebp),%esi
1042	movl	-64(%ebp),%edi
1043	movl	-32(%ebp),%esi
1044	movl	(%ebp),%edi
1045	movl	32(%ebp),%esi
1046	movl	64(%ebp),%edi
1047	movl	96(%ebp),%esi
1048.align	4,0x90
1049L006loop:
1050	movl	%eax,%esi
1051	andl	$255,%esi
1052	movzbl	-128(%ebp,%esi,1),%esi
1053	movzbl	%dh,%edi
1054	movzbl	-128(%ebp,%edi,1),%edi
1055	shll	$8,%edi
1056	xorl	%edi,%esi
1057	movl	%ecx,%edi
1058	shrl	$16,%edi
1059	andl	$255,%edi
1060	movzbl	-128(%ebp,%edi,1),%edi
1061	shll	$16,%edi
1062	xorl	%edi,%esi
1063	movl	%ebx,%edi
1064	shrl	$24,%edi
1065	movzbl	-128(%ebp,%edi,1),%edi
1066	shll	$24,%edi
1067	xorl	%edi,%esi
1068	movl	%esi,4(%esp)
1069	movl	%ebx,%esi
1070	andl	$255,%esi
1071	movzbl	-128(%ebp,%esi,1),%esi
1072	movzbl	%ah,%edi
1073	movzbl	-128(%ebp,%edi,1),%edi
1074	shll	$8,%edi
1075	xorl	%edi,%esi
1076	movl	%edx,%edi
1077	shrl	$16,%edi
1078	andl	$255,%edi
1079	movzbl	-128(%ebp,%edi,1),%edi
1080	shll	$16,%edi
1081	xorl	%edi,%esi
1082	movl	%ecx,%edi
1083	shrl	$24,%edi
1084	movzbl	-128(%ebp,%edi,1),%edi
1085	shll	$24,%edi
1086	xorl	%edi,%esi
1087	movl	%esi,8(%esp)
1088	movl	%ecx,%esi
1089	andl	$255,%esi
1090	movzbl	-128(%ebp,%esi,1),%esi
1091	movzbl	%bh,%edi
1092	movzbl	-128(%ebp,%edi,1),%edi
1093	shll	$8,%edi
1094	xorl	%edi,%esi
1095	movl	%eax,%edi
1096	shrl	$16,%edi
1097	andl	$255,%edi
1098	movzbl	-128(%ebp,%edi,1),%edi
1099	shll	$16,%edi
1100	xorl	%edi,%esi
1101	movl	%edx,%edi
1102	shrl	$24,%edi
1103	movzbl	-128(%ebp,%edi,1),%edi
1104	shll	$24,%edi
1105	xorl	%edi,%esi
1106	andl	$255,%edx
1107	movzbl	-128(%ebp,%edx,1),%edx
1108	movzbl	%ch,%ecx
1109	movzbl	-128(%ebp,%ecx,1),%ecx
1110	shll	$8,%ecx
1111	xorl	%ecx,%edx
1112	movl	%esi,%ecx
1113	shrl	$16,%ebx
1114	andl	$255,%ebx
1115	movzbl	-128(%ebp,%ebx,1),%ebx
1116	shll	$16,%ebx
1117	xorl	%ebx,%edx
1118	shrl	$24,%eax
1119	movzbl	-128(%ebp,%eax,1),%eax
1120	shll	$24,%eax
1121	xorl	%eax,%edx
1122	movl	$2155905152,%edi
1123	andl	%ecx,%edi
1124	movl	%edi,%esi
1125	shrl	$7,%edi
1126	leal	(%ecx,%ecx,1),%eax
1127	subl	%edi,%esi
1128	andl	$4278124286,%eax
1129	andl	$454761243,%esi
1130	xorl	%esi,%eax
1131	movl	$2155905152,%edi
1132	andl	%eax,%edi
1133	movl	%edi,%esi
1134	shrl	$7,%edi
1135	leal	(%eax,%eax,1),%ebx
1136	subl	%edi,%esi
1137	andl	$4278124286,%ebx
1138	andl	$454761243,%esi
1139	xorl	%ecx,%eax
1140	xorl	%esi,%ebx
1141	movl	$2155905152,%edi
1142	andl	%ebx,%edi
1143	movl	%edi,%esi
1144	shrl	$7,%edi
1145	leal	(%ebx,%ebx,1),%ebp
1146	subl	%edi,%esi
1147	andl	$4278124286,%ebp
1148	andl	$454761243,%esi
1149	xorl	%ecx,%ebx
1150	roll	$8,%ecx
1151	xorl	%esi,%ebp
1152	xorl	%eax,%ecx
1153	xorl	%ebp,%eax
1154	xorl	%ebx,%ecx
1155	xorl	%ebp,%ebx
1156	roll	$24,%eax
1157	xorl	%ebp,%ecx
1158	roll	$16,%ebx
1159	xorl	%eax,%ecx
1160	roll	$8,%ebp
1161	xorl	%ebx,%ecx
1162	movl	4(%esp),%eax
1163	xorl	%ebp,%ecx
1164	movl	%ecx,12(%esp)
1165	movl	$2155905152,%edi
1166	andl	%edx,%edi
1167	movl	%edi,%esi
1168	shrl	$7,%edi
1169	leal	(%edx,%edx,1),%ebx
1170	subl	%edi,%esi
1171	andl	$4278124286,%ebx
1172	andl	$454761243,%esi
1173	xorl	%esi,%ebx
1174	movl	$2155905152,%edi
1175	andl	%ebx,%edi
1176	movl	%edi,%esi
1177	shrl	$7,%edi
1178	leal	(%ebx,%ebx,1),%ecx
1179	subl	%edi,%esi
1180	andl	$4278124286,%ecx
1181	andl	$454761243,%esi
1182	xorl	%edx,%ebx
1183	xorl	%esi,%ecx
1184	movl	$2155905152,%edi
1185	andl	%ecx,%edi
1186	movl	%edi,%esi
1187	shrl	$7,%edi
1188	leal	(%ecx,%ecx,1),%ebp
1189	subl	%edi,%esi
1190	andl	$4278124286,%ebp
1191	andl	$454761243,%esi
1192	xorl	%edx,%ecx
1193	roll	$8,%edx
1194	xorl	%esi,%ebp
1195	xorl	%ebx,%edx
1196	xorl	%ebp,%ebx
1197	xorl	%ecx,%edx
1198	xorl	%ebp,%ecx
1199	roll	$24,%ebx
1200	xorl	%ebp,%edx
1201	roll	$16,%ecx
1202	xorl	%ebx,%edx
1203	roll	$8,%ebp
1204	xorl	%ecx,%edx
1205	movl	8(%esp),%ebx
1206	xorl	%ebp,%edx
1207	movl	%edx,16(%esp)
1208	movl	$2155905152,%edi
1209	andl	%eax,%edi
1210	movl	%edi,%esi
1211	shrl	$7,%edi
1212	leal	(%eax,%eax,1),%ecx
1213	subl	%edi,%esi
1214	andl	$4278124286,%ecx
1215	andl	$454761243,%esi
1216	xorl	%esi,%ecx
1217	movl	$2155905152,%edi
1218	andl	%ecx,%edi
1219	movl	%edi,%esi
1220	shrl	$7,%edi
1221	leal	(%ecx,%ecx,1),%edx
1222	subl	%edi,%esi
1223	andl	$4278124286,%edx
1224	andl	$454761243,%esi
1225	xorl	%eax,%ecx
1226	xorl	%esi,%edx
1227	movl	$2155905152,%edi
1228	andl	%edx,%edi
1229	movl	%edi,%esi
1230	shrl	$7,%edi
1231	leal	(%edx,%edx,1),%ebp
1232	subl	%edi,%esi
1233	andl	$4278124286,%ebp
1234	andl	$454761243,%esi
1235	xorl	%eax,%edx
1236	roll	$8,%eax
1237	xorl	%esi,%ebp
1238	xorl	%ecx,%eax
1239	xorl	%ebp,%ecx
1240	xorl	%edx,%eax
1241	xorl	%ebp,%edx
1242	roll	$24,%ecx
1243	xorl	%ebp,%eax
1244	roll	$16,%edx
1245	xorl	%ecx,%eax
1246	roll	$8,%ebp
1247	xorl	%edx,%eax
1248	xorl	%ebp,%eax
1249	movl	$2155905152,%edi
1250	andl	%ebx,%edi
1251	movl	%edi,%esi
1252	shrl	$7,%edi
1253	leal	(%ebx,%ebx,1),%ecx
1254	subl	%edi,%esi
1255	andl	$4278124286,%ecx
1256	andl	$454761243,%esi
1257	xorl	%esi,%ecx
1258	movl	$2155905152,%edi
1259	andl	%ecx,%edi
1260	movl	%edi,%esi
1261	shrl	$7,%edi
1262	leal	(%ecx,%ecx,1),%edx
1263	subl	%edi,%esi
1264	andl	$4278124286,%edx
1265	andl	$454761243,%esi
1266	xorl	%ebx,%ecx
1267	xorl	%esi,%edx
1268	movl	$2155905152,%edi
1269	andl	%edx,%edi
1270	movl	%edi,%esi
1271	shrl	$7,%edi
1272	leal	(%edx,%edx,1),%ebp
1273	subl	%edi,%esi
1274	andl	$4278124286,%ebp
1275	andl	$454761243,%esi
1276	xorl	%ebx,%edx
1277	roll	$8,%ebx
1278	xorl	%esi,%ebp
1279	xorl	%ecx,%ebx
1280	xorl	%ebp,%ecx
1281	xorl	%edx,%ebx
1282	xorl	%ebp,%edx
1283	roll	$24,%ecx
1284	xorl	%ebp,%ebx
1285	roll	$16,%edx
1286	xorl	%ecx,%ebx
1287	roll	$8,%ebp
1288	xorl	%edx,%ebx
1289	movl	12(%esp),%ecx
1290	xorl	%ebp,%ebx
1291	movl	16(%esp),%edx
1292	movl	20(%esp),%edi
1293	movl	28(%esp),%ebp
1294	addl	$16,%edi
1295	xorl	(%edi),%eax
1296	xorl	4(%edi),%ebx
1297	xorl	8(%edi),%ecx
1298	xorl	12(%edi),%edx
1299	cmpl	24(%esp),%edi
1300	movl	%edi,20(%esp)
1301	jb	L006loop
1302	movl	%eax,%esi
1303	andl	$255,%esi
1304	movzbl	-128(%ebp,%esi,1),%esi
1305	movzbl	%dh,%edi
1306	movzbl	-128(%ebp,%edi,1),%edi
1307	shll	$8,%edi
1308	xorl	%edi,%esi
1309	movl	%ecx,%edi
1310	shrl	$16,%edi
1311	andl	$255,%edi
1312	movzbl	-128(%ebp,%edi,1),%edi
1313	shll	$16,%edi
1314	xorl	%edi,%esi
1315	movl	%ebx,%edi
1316	shrl	$24,%edi
1317	movzbl	-128(%ebp,%edi,1),%edi
1318	shll	$24,%edi
1319	xorl	%edi,%esi
1320	movl	%esi,4(%esp)
1321	movl	%ebx,%esi
1322	andl	$255,%esi
1323	movzbl	-128(%ebp,%esi,1),%esi
1324	movzbl	%ah,%edi
1325	movzbl	-128(%ebp,%edi,1),%edi
1326	shll	$8,%edi
1327	xorl	%edi,%esi
1328	movl	%edx,%edi
1329	shrl	$16,%edi
1330	andl	$255,%edi
1331	movzbl	-128(%ebp,%edi,1),%edi
1332	shll	$16,%edi
1333	xorl	%edi,%esi
1334	movl	%ecx,%edi
1335	shrl	$24,%edi
1336	movzbl	-128(%ebp,%edi,1),%edi
1337	shll	$24,%edi
1338	xorl	%edi,%esi
1339	movl	%esi,8(%esp)
1340	movl	%ecx,%esi
1341	andl	$255,%esi
1342	movzbl	-128(%ebp,%esi,1),%esi
1343	movzbl	%bh,%edi
1344	movzbl	-128(%ebp,%edi,1),%edi
1345	shll	$8,%edi
1346	xorl	%edi,%esi
1347	movl	%eax,%edi
1348	shrl	$16,%edi
1349	andl	$255,%edi
1350	movzbl	-128(%ebp,%edi,1),%edi
1351	shll	$16,%edi
1352	xorl	%edi,%esi
1353	movl	%edx,%edi
1354	shrl	$24,%edi
1355	movzbl	-128(%ebp,%edi,1),%edi
1356	shll	$24,%edi
1357	xorl	%edi,%esi
1358	movl	20(%esp),%edi
1359	andl	$255,%edx
1360	movzbl	-128(%ebp,%edx,1),%edx
1361	movzbl	%ch,%ecx
1362	movzbl	-128(%ebp,%ecx,1),%ecx
1363	shll	$8,%ecx
1364	xorl	%ecx,%edx
1365	movl	%esi,%ecx
1366	shrl	$16,%ebx
1367	andl	$255,%ebx
1368	movzbl	-128(%ebp,%ebx,1),%ebx
1369	shll	$16,%ebx
1370	xorl	%ebx,%edx
1371	movl	8(%esp),%ebx
1372	shrl	$24,%eax
1373	movzbl	-128(%ebp,%eax,1),%eax
1374	shll	$24,%eax
1375	xorl	%eax,%edx
1376	movl	4(%esp),%eax
1377	xorl	16(%edi),%eax
1378	xorl	20(%edi),%ebx
1379	xorl	24(%edi),%ecx
1380	xorl	28(%edi),%edx
1381	ret
1382.private_extern	__sse_AES_decrypt_compact
1383.align	4
1384__sse_AES_decrypt_compact:
1385	pxor	(%edi),%mm0
1386	pxor	8(%edi),%mm4
1387	movl	240(%edi),%esi
1388	leal	-2(%esi,%esi,1),%esi
1389	leal	(%edi,%esi,8),%esi
1390	movl	%esi,24(%esp)
1391	movl	$454761243,%eax
1392	movl	%eax,8(%esp)
1393	movl	%eax,12(%esp)
1394	movl	-128(%ebp),%eax
1395	movl	-96(%ebp),%ebx
1396	movl	-64(%ebp),%ecx
1397	movl	-32(%ebp),%edx
1398	movl	(%ebp),%eax
1399	movl	32(%ebp),%ebx
1400	movl	64(%ebp),%ecx
1401	movl	96(%ebp),%edx
1402.align	4,0x90
1403L007loop:
1404	pshufw	$12,%mm0,%mm1
1405	pshufw	$9,%mm4,%mm5
1406	movd	%mm1,%eax
1407	movd	%mm5,%ebx
1408	movl	%edi,20(%esp)
1409	movzbl	%al,%esi
1410	movzbl	%ah,%edx
1411	pshufw	$6,%mm0,%mm2
1412	movzbl	-128(%ebp,%esi,1),%ecx
1413	movzbl	%bl,%edi
1414	movzbl	-128(%ebp,%edx,1),%edx
1415	shrl	$16,%eax
1416	shll	$8,%edx
1417	movzbl	-128(%ebp,%edi,1),%esi
1418	movzbl	%bh,%edi
1419	shll	$16,%esi
1420	pshufw	$3,%mm4,%mm6
1421	orl	%esi,%ecx
1422	movzbl	-128(%ebp,%edi,1),%esi
1423	movzbl	%ah,%edi
1424	shll	$24,%esi
1425	shrl	$16,%ebx
1426	orl	%esi,%edx
1427	movzbl	-128(%ebp,%edi,1),%esi
1428	movzbl	%bh,%edi
1429	shll	$24,%esi
1430	orl	%esi,%ecx
1431	movzbl	-128(%ebp,%edi,1),%esi
1432	movzbl	%al,%edi
1433	shll	$8,%esi
1434	movd	%mm2,%eax
1435	orl	%esi,%ecx
1436	movzbl	-128(%ebp,%edi,1),%esi
1437	movzbl	%bl,%edi
1438	shll	$16,%esi
1439	movd	%mm6,%ebx
1440	movd	%ecx,%mm0
1441	movzbl	-128(%ebp,%edi,1),%ecx
1442	movzbl	%al,%edi
1443	orl	%esi,%ecx
1444	movzbl	-128(%ebp,%edi,1),%esi
1445	movzbl	%bl,%edi
1446	orl	%esi,%edx
1447	movzbl	-128(%ebp,%edi,1),%esi
1448	movzbl	%ah,%edi
1449	shll	$16,%esi
1450	shrl	$16,%eax
1451	orl	%esi,%edx
1452	movzbl	-128(%ebp,%edi,1),%esi
1453	movzbl	%bh,%edi
1454	shrl	$16,%ebx
1455	shll	$8,%esi
1456	movd	%edx,%mm1
1457	movzbl	-128(%ebp,%edi,1),%edx
1458	movzbl	%bh,%edi
1459	shll	$24,%edx
1460	andl	$255,%ebx
1461	orl	%esi,%edx
1462	punpckldq	%mm1,%mm0
1463	movzbl	-128(%ebp,%edi,1),%esi
1464	movzbl	%al,%edi
1465	shll	$8,%esi
1466	movzbl	%ah,%eax
1467	movzbl	-128(%ebp,%ebx,1),%ebx
1468	orl	%esi,%ecx
1469	movzbl	-128(%ebp,%edi,1),%esi
1470	orl	%ebx,%edx
1471	shll	$16,%esi
1472	movzbl	-128(%ebp,%eax,1),%eax
1473	orl	%esi,%edx
1474	shll	$24,%eax
1475	orl	%eax,%ecx
1476	movl	20(%esp),%edi
1477	movd	%edx,%mm4
1478	movd	%ecx,%mm5
1479	punpckldq	%mm5,%mm4
1480	addl	$16,%edi
1481	cmpl	24(%esp),%edi
1482	ja	L008out
1483	movq	%mm0,%mm3
1484	movq	%mm4,%mm7
1485	pshufw	$228,%mm0,%mm2
1486	pshufw	$228,%mm4,%mm6
1487	movq	%mm0,%mm1
1488	movq	%mm4,%mm5
1489	pshufw	$177,%mm0,%mm0
1490	pshufw	$177,%mm4,%mm4
1491	pslld	$8,%mm2
1492	pslld	$8,%mm6
1493	psrld	$8,%mm3
1494	psrld	$8,%mm7
1495	pxor	%mm2,%mm0
1496	pxor	%mm6,%mm4
1497	pxor	%mm3,%mm0
1498	pxor	%mm7,%mm4
1499	pslld	$16,%mm2
1500	pslld	$16,%mm6
1501	psrld	$16,%mm3
1502	psrld	$16,%mm7
1503	pxor	%mm2,%mm0
1504	pxor	%mm6,%mm4
1505	pxor	%mm3,%mm0
1506	pxor	%mm7,%mm4
1507	movq	8(%esp),%mm3
1508	pxor	%mm2,%mm2
1509	pxor	%mm6,%mm6
1510	pcmpgtb	%mm1,%mm2
1511	pcmpgtb	%mm5,%mm6
1512	pand	%mm3,%mm2
1513	pand	%mm3,%mm6
1514	paddb	%mm1,%mm1
1515	paddb	%mm5,%mm5
1516	pxor	%mm2,%mm1
1517	pxor	%mm6,%mm5
1518	movq	%mm1,%mm3
1519	movq	%mm5,%mm7
1520	movq	%mm1,%mm2
1521	movq	%mm5,%mm6
1522	pxor	%mm1,%mm0
1523	pxor	%mm5,%mm4
1524	pslld	$24,%mm3
1525	pslld	$24,%mm7
1526	psrld	$8,%mm2
1527	psrld	$8,%mm6
1528	pxor	%mm3,%mm0
1529	pxor	%mm7,%mm4
1530	pxor	%mm2,%mm0
1531	pxor	%mm6,%mm4
1532	movq	8(%esp),%mm2
1533	pxor	%mm3,%mm3
1534	pxor	%mm7,%mm7
1535	pcmpgtb	%mm1,%mm3
1536	pcmpgtb	%mm5,%mm7
1537	pand	%mm2,%mm3
1538	pand	%mm2,%mm7
1539	paddb	%mm1,%mm1
1540	paddb	%mm5,%mm5
1541	pxor	%mm3,%mm1
1542	pxor	%mm7,%mm5
1543	pshufw	$177,%mm1,%mm3
1544	pshufw	$177,%mm5,%mm7
1545	pxor	%mm1,%mm0
1546	pxor	%mm5,%mm4
1547	pxor	%mm3,%mm0
1548	pxor	%mm7,%mm4
1549	pxor	%mm3,%mm3
1550	pxor	%mm7,%mm7
1551	pcmpgtb	%mm1,%mm3
1552	pcmpgtb	%mm5,%mm7
1553	pand	%mm2,%mm3
1554	pand	%mm2,%mm7
1555	paddb	%mm1,%mm1
1556	paddb	%mm5,%mm5
1557	pxor	%mm3,%mm1
1558	pxor	%mm7,%mm5
1559	pxor	%mm1,%mm0
1560	pxor	%mm5,%mm4
1561	movq	%mm1,%mm3
1562	movq	%mm5,%mm7
1563	pshufw	$177,%mm1,%mm2
1564	pshufw	$177,%mm5,%mm6
1565	pxor	%mm2,%mm0
1566	pxor	%mm6,%mm4
1567	pslld	$8,%mm1
1568	pslld	$8,%mm5
1569	psrld	$8,%mm3
1570	psrld	$8,%mm7
1571	movq	(%edi),%mm2
1572	movq	8(%edi),%mm6
1573	pxor	%mm1,%mm0
1574	pxor	%mm5,%mm4
1575	pxor	%mm3,%mm0
1576	pxor	%mm7,%mm4
1577	movl	-128(%ebp),%eax
1578	pslld	$16,%mm1
1579	pslld	$16,%mm5
1580	movl	-64(%ebp),%ebx
1581	psrld	$16,%mm3
1582	psrld	$16,%mm7
1583	movl	(%ebp),%ecx
1584	pxor	%mm1,%mm0
1585	pxor	%mm5,%mm4
1586	movl	64(%ebp),%edx
1587	pxor	%mm3,%mm0
1588	pxor	%mm7,%mm4
1589	pxor	%mm2,%mm0
1590	pxor	%mm6,%mm4
1591	jmp	L007loop
1592.align	4,0x90
1593L008out:
1594	pxor	(%edi),%mm0
1595	pxor	8(%edi),%mm4
1596	ret
1597.private_extern	__x86_AES_decrypt
1598.align	4
1599__x86_AES_decrypt:
1600	movl	%edi,20(%esp)
1601	xorl	(%edi),%eax
1602	xorl	4(%edi),%ebx
1603	xorl	8(%edi),%ecx
1604	xorl	12(%edi),%edx
1605	movl	240(%edi),%esi
1606	leal	-2(%esi,%esi,1),%esi
1607	leal	(%edi,%esi,8),%esi
1608	movl	%esi,24(%esp)
1609.align	4,0x90
1610L009loop:
1611	movl	%eax,%esi
1612	andl	$255,%esi
1613	movl	(%ebp,%esi,8),%esi
1614	movzbl	%dh,%edi
1615	xorl	3(%ebp,%edi,8),%esi
1616	movl	%ecx,%edi
1617	shrl	$16,%edi
1618	andl	$255,%edi
1619	xorl	2(%ebp,%edi,8),%esi
1620	movl	%ebx,%edi
1621	shrl	$24,%edi
1622	xorl	1(%ebp,%edi,8),%esi
1623	movl	%esi,4(%esp)
1624	movl	%ebx,%esi
1625	andl	$255,%esi
1626	movl	(%ebp,%esi,8),%esi
1627	movzbl	%ah,%edi
1628	xorl	3(%ebp,%edi,8),%esi
1629	movl	%edx,%edi
1630	shrl	$16,%edi
1631	andl	$255,%edi
1632	xorl	2(%ebp,%edi,8),%esi
1633	movl	%ecx,%edi
1634	shrl	$24,%edi
1635	xorl	1(%ebp,%edi,8),%esi
1636	movl	%esi,8(%esp)
1637	movl	%ecx,%esi
1638	andl	$255,%esi
1639	movl	(%ebp,%esi,8),%esi
1640	movzbl	%bh,%edi
1641	xorl	3(%ebp,%edi,8),%esi
1642	movl	%eax,%edi
1643	shrl	$16,%edi
1644	andl	$255,%edi
1645	xorl	2(%ebp,%edi,8),%esi
1646	movl	%edx,%edi
1647	shrl	$24,%edi
1648	xorl	1(%ebp,%edi,8),%esi
1649	movl	20(%esp),%edi
1650	andl	$255,%edx
1651	movl	(%ebp,%edx,8),%edx
1652	movzbl	%ch,%ecx
1653	xorl	3(%ebp,%ecx,8),%edx
1654	movl	%esi,%ecx
1655	shrl	$16,%ebx
1656	andl	$255,%ebx
1657	xorl	2(%ebp,%ebx,8),%edx
1658	movl	8(%esp),%ebx
1659	shrl	$24,%eax
1660	xorl	1(%ebp,%eax,8),%edx
1661	movl	4(%esp),%eax
1662	addl	$16,%edi
1663	xorl	(%edi),%eax
1664	xorl	4(%edi),%ebx
1665	xorl	8(%edi),%ecx
1666	xorl	12(%edi),%edx
1667	cmpl	24(%esp),%edi
1668	movl	%edi,20(%esp)
1669	jb	L009loop
1670	leal	2176(%ebp),%ebp
1671	movl	-128(%ebp),%edi
1672	movl	-96(%ebp),%esi
1673	movl	-64(%ebp),%edi
1674	movl	-32(%ebp),%esi
1675	movl	(%ebp),%edi
1676	movl	32(%ebp),%esi
1677	movl	64(%ebp),%edi
1678	movl	96(%ebp),%esi
1679	leal	-128(%ebp),%ebp
1680	movl	%eax,%esi
1681	andl	$255,%esi
1682	movzbl	(%ebp,%esi,1),%esi
1683	movzbl	%dh,%edi
1684	movzbl	(%ebp,%edi,1),%edi
1685	shll	$8,%edi
1686	xorl	%edi,%esi
1687	movl	%ecx,%edi
1688	shrl	$16,%edi
1689	andl	$255,%edi
1690	movzbl	(%ebp,%edi,1),%edi
1691	shll	$16,%edi
1692	xorl	%edi,%esi
1693	movl	%ebx,%edi
1694	shrl	$24,%edi
1695	movzbl	(%ebp,%edi,1),%edi
1696	shll	$24,%edi
1697	xorl	%edi,%esi
1698	movl	%esi,4(%esp)
1699	movl	%ebx,%esi
1700	andl	$255,%esi
1701	movzbl	(%ebp,%esi,1),%esi
1702	movzbl	%ah,%edi
1703	movzbl	(%ebp,%edi,1),%edi
1704	shll	$8,%edi
1705	xorl	%edi,%esi
1706	movl	%edx,%edi
1707	shrl	$16,%edi
1708	andl	$255,%edi
1709	movzbl	(%ebp,%edi,1),%edi
1710	shll	$16,%edi
1711	xorl	%edi,%esi
1712	movl	%ecx,%edi
1713	shrl	$24,%edi
1714	movzbl	(%ebp,%edi,1),%edi
1715	shll	$24,%edi
1716	xorl	%edi,%esi
1717	movl	%esi,8(%esp)
1718	movl	%ecx,%esi
1719	andl	$255,%esi
1720	movzbl	(%ebp,%esi,1),%esi
1721	movzbl	%bh,%edi
1722	movzbl	(%ebp,%edi,1),%edi
1723	shll	$8,%edi
1724	xorl	%edi,%esi
1725	movl	%eax,%edi
1726	shrl	$16,%edi
1727	andl	$255,%edi
1728	movzbl	(%ebp,%edi,1),%edi
1729	shll	$16,%edi
1730	xorl	%edi,%esi
1731	movl	%edx,%edi
1732	shrl	$24,%edi
1733	movzbl	(%ebp,%edi,1),%edi
1734	shll	$24,%edi
1735	xorl	%edi,%esi
1736	movl	20(%esp),%edi
1737	andl	$255,%edx
1738	movzbl	(%ebp,%edx,1),%edx
1739	movzbl	%ch,%ecx
1740	movzbl	(%ebp,%ecx,1),%ecx
1741	shll	$8,%ecx
1742	xorl	%ecx,%edx
1743	movl	%esi,%ecx
1744	shrl	$16,%ebx
1745	andl	$255,%ebx
1746	movzbl	(%ebp,%ebx,1),%ebx
1747	shll	$16,%ebx
1748	xorl	%ebx,%edx
1749	movl	8(%esp),%ebx
1750	shrl	$24,%eax
1751	movzbl	(%ebp,%eax,1),%eax
1752	shll	$24,%eax
1753	xorl	%eax,%edx
1754	movl	4(%esp),%eax
1755	leal	-2048(%ebp),%ebp
1756	addl	$16,%edi
1757	xorl	(%edi),%eax
1758	xorl	4(%edi),%ebx
1759	xorl	8(%edi),%ecx
1760	xorl	12(%edi),%edx
1761	ret
1762.align	6,0x90
1763LAES_Td:
1764.long	1353184337,1353184337
1765.long	1399144830,1399144830
1766.long	3282310938,3282310938
1767.long	2522752826,2522752826
1768.long	3412831035,3412831035
1769.long	4047871263,4047871263
1770.long	2874735276,2874735276
1771.long	2466505547,2466505547
1772.long	1442459680,1442459680
1773.long	4134368941,4134368941
1774.long	2440481928,2440481928
1775.long	625738485,625738485
1776.long	4242007375,4242007375
1777.long	3620416197,3620416197
1778.long	2151953702,2151953702
1779.long	2409849525,2409849525
1780.long	1230680542,1230680542
1781.long	1729870373,1729870373
1782.long	2551114309,2551114309
1783.long	3787521629,3787521629
1784.long	41234371,41234371
1785.long	317738113,317738113
1786.long	2744600205,2744600205
1787.long	3338261355,3338261355
1788.long	3881799427,3881799427
1789.long	2510066197,2510066197
1790.long	3950669247,3950669247
1791.long	3663286933,3663286933
1792.long	763608788,763608788
1793.long	3542185048,3542185048
1794.long	694804553,694804553
1795.long	1154009486,1154009486
1796.long	1787413109,1787413109
1797.long	2021232372,2021232372
1798.long	1799248025,1799248025
1799.long	3715217703,3715217703
1800.long	3058688446,3058688446
1801.long	397248752,397248752
1802.long	1722556617,1722556617
1803.long	3023752829,3023752829
1804.long	407560035,407560035
1805.long	2184256229,2184256229
1806.long	1613975959,1613975959
1807.long	1165972322,1165972322
1808.long	3765920945,3765920945
1809.long	2226023355,2226023355
1810.long	480281086,480281086
1811.long	2485848313,2485848313
1812.long	1483229296,1483229296
1813.long	436028815,436028815
1814.long	2272059028,2272059028
1815.long	3086515026,3086515026
1816.long	601060267,601060267
1817.long	3791801202,3791801202
1818.long	1468997603,1468997603
1819.long	715871590,715871590
1820.long	120122290,120122290
1821.long	63092015,63092015
1822.long	2591802758,2591802758
1823.long	2768779219,2768779219
1824.long	4068943920,4068943920
1825.long	2997206819,2997206819
1826.long	3127509762,3127509762
1827.long	1552029421,1552029421
1828.long	723308426,723308426
1829.long	2461301159,2461301159
1830.long	4042393587,4042393587
1831.long	2715969870,2715969870
1832.long	3455375973,3455375973
1833.long	3586000134,3586000134
1834.long	526529745,526529745
1835.long	2331944644,2331944644
1836.long	2639474228,2639474228
1837.long	2689987490,2689987490
1838.long	853641733,853641733
1839.long	1978398372,1978398372
1840.long	971801355,971801355
1841.long	2867814464,2867814464
1842.long	111112542,111112542
1843.long	1360031421,1360031421
1844.long	4186579262,4186579262
1845.long	1023860118,1023860118
1846.long	2919579357,2919579357
1847.long	1186850381,1186850381
1848.long	3045938321,3045938321
1849.long	90031217,90031217
1850.long	1876166148,1876166148
1851.long	4279586912,4279586912
1852.long	620468249,620468249
1853.long	2548678102,2548678102
1854.long	3426959497,3426959497
1855.long	2006899047,2006899047
1856.long	3175278768,3175278768
1857.long	2290845959,2290845959
1858.long	945494503,945494503
1859.long	3689859193,3689859193
1860.long	1191869601,1191869601
1861.long	3910091388,3910091388
1862.long	3374220536,3374220536
1863.long	0,0
1864.long	2206629897,2206629897
1865.long	1223502642,1223502642
1866.long	2893025566,2893025566
1867.long	1316117100,1316117100
1868.long	4227796733,4227796733
1869.long	1446544655,1446544655
1870.long	517320253,517320253
1871.long	658058550,658058550
1872.long	1691946762,1691946762
1873.long	564550760,564550760
1874.long	3511966619,3511966619
1875.long	976107044,976107044
1876.long	2976320012,2976320012
1877.long	266819475,266819475
1878.long	3533106868,3533106868
1879.long	2660342555,2660342555
1880.long	1338359936,1338359936
1881.long	2720062561,2720062561
1882.long	1766553434,1766553434
1883.long	370807324,370807324
1884.long	179999714,179999714
1885.long	3844776128,3844776128
1886.long	1138762300,1138762300
1887.long	488053522,488053522
1888.long	185403662,185403662
1889.long	2915535858,2915535858
1890.long	3114841645,3114841645
1891.long	3366526484,3366526484
1892.long	2233069911,2233069911
1893.long	1275557295,1275557295
1894.long	3151862254,3151862254
1895.long	4250959779,4250959779
1896.long	2670068215,2670068215
1897.long	3170202204,3170202204
1898.long	3309004356,3309004356
1899.long	880737115,880737115
1900.long	1982415755,1982415755
1901.long	3703972811,3703972811
1902.long	1761406390,1761406390
1903.long	1676797112,1676797112
1904.long	3403428311,3403428311
1905.long	277177154,277177154
1906.long	1076008723,1076008723
1907.long	538035844,538035844
1908.long	2099530373,2099530373
1909.long	4164795346,4164795346
1910.long	288553390,288553390
1911.long	1839278535,1839278535
1912.long	1261411869,1261411869
1913.long	4080055004,4080055004
1914.long	3964831245,3964831245
1915.long	3504587127,3504587127
1916.long	1813426987,1813426987
1917.long	2579067049,2579067049
1918.long	4199060497,4199060497
1919.long	577038663,577038663
1920.long	3297574056,3297574056
1921.long	440397984,440397984
1922.long	3626794326,3626794326
1923.long	4019204898,4019204898
1924.long	3343796615,3343796615
1925.long	3251714265,3251714265
1926.long	4272081548,4272081548
1927.long	906744984,906744984
1928.long	3481400742,3481400742
1929.long	685669029,685669029
1930.long	646887386,646887386
1931.long	2764025151,2764025151
1932.long	3835509292,3835509292
1933.long	227702864,227702864
1934.long	2613862250,2613862250
1935.long	1648787028,1648787028
1936.long	3256061430,3256061430
1937.long	3904428176,3904428176
1938.long	1593260334,1593260334
1939.long	4121936770,4121936770
1940.long	3196083615,3196083615
1941.long	2090061929,2090061929
1942.long	2838353263,2838353263
1943.long	3004310991,3004310991
1944.long	999926984,999926984
1945.long	2809993232,2809993232
1946.long	1852021992,1852021992
1947.long	2075868123,2075868123
1948.long	158869197,158869197
1949.long	4095236462,4095236462
1950.long	28809964,28809964
1951.long	2828685187,2828685187
1952.long	1701746150,1701746150
1953.long	2129067946,2129067946
1954.long	147831841,147831841
1955.long	3873969647,3873969647
1956.long	3650873274,3650873274
1957.long	3459673930,3459673930
1958.long	3557400554,3557400554
1959.long	3598495785,3598495785
1960.long	2947720241,2947720241
1961.long	824393514,824393514
1962.long	815048134,815048134
1963.long	3227951669,3227951669
1964.long	935087732,935087732
1965.long	2798289660,2798289660
1966.long	2966458592,2966458592
1967.long	366520115,366520115
1968.long	1251476721,1251476721
1969.long	4158319681,4158319681
1970.long	240176511,240176511
1971.long	804688151,804688151
1972.long	2379631990,2379631990
1973.long	1303441219,1303441219
1974.long	1414376140,1414376140
1975.long	3741619940,3741619940
1976.long	3820343710,3820343710
1977.long	461924940,461924940
1978.long	3089050817,3089050817
1979.long	2136040774,2136040774
1980.long	82468509,82468509
1981.long	1563790337,1563790337
1982.long	1937016826,1937016826
1983.long	776014843,776014843
1984.long	1511876531,1511876531
1985.long	1389550482,1389550482
1986.long	861278441,861278441
1987.long	323475053,323475053
1988.long	2355222426,2355222426
1989.long	2047648055,2047648055
1990.long	2383738969,2383738969
1991.long	2302415851,2302415851
1992.long	3995576782,3995576782
1993.long	902390199,902390199
1994.long	3991215329,3991215329
1995.long	1018251130,1018251130
1996.long	1507840668,1507840668
1997.long	1064563285,1064563285
1998.long	2043548696,2043548696
1999.long	3208103795,3208103795
2000.long	3939366739,3939366739
2001.long	1537932639,1537932639
2002.long	342834655,342834655
2003.long	2262516856,2262516856
2004.long	2180231114,2180231114
2005.long	1053059257,1053059257
2006.long	741614648,741614648
2007.long	1598071746,1598071746
2008.long	1925389590,1925389590
2009.long	203809468,203809468
2010.long	2336832552,2336832552
2011.long	1100287487,1100287487
2012.long	1895934009,1895934009
2013.long	3736275976,3736275976
2014.long	2632234200,2632234200
2015.long	2428589668,2428589668
2016.long	1636092795,1636092795
2017.long	1890988757,1890988757
2018.long	1952214088,1952214088
2019.long	1113045200,1113045200
2020.byte	82,9,106,213,48,54,165,56
2021.byte	191,64,163,158,129,243,215,251
2022.byte	124,227,57,130,155,47,255,135
2023.byte	52,142,67,68,196,222,233,203
2024.byte	84,123,148,50,166,194,35,61
2025.byte	238,76,149,11,66,250,195,78
2026.byte	8,46,161,102,40,217,36,178
2027.byte	118,91,162,73,109,139,209,37
2028.byte	114,248,246,100,134,104,152,22
2029.byte	212,164,92,204,93,101,182,146
2030.byte	108,112,72,80,253,237,185,218
2031.byte	94,21,70,87,167,141,157,132
2032.byte	144,216,171,0,140,188,211,10
2033.byte	247,228,88,5,184,179,69,6
2034.byte	208,44,30,143,202,63,15,2
2035.byte	193,175,189,3,1,19,138,107
2036.byte	58,145,17,65,79,103,220,234
2037.byte	151,242,207,206,240,180,230,115
2038.byte	150,172,116,34,231,173,53,133
2039.byte	226,249,55,232,28,117,223,110
2040.byte	71,241,26,113,29,41,197,137
2041.byte	111,183,98,14,170,24,190,27
2042.byte	252,86,62,75,198,210,121,32
2043.byte	154,219,192,254,120,205,90,244
2044.byte	31,221,168,51,136,7,199,49
2045.byte	177,18,16,89,39,128,236,95
2046.byte	96,81,127,169,25,181,74,13
2047.byte	45,229,122,159,147,201,156,239
2048.byte	160,224,59,77,174,42,245,176
2049.byte	200,235,187,60,131,83,153,97
2050.byte	23,43,4,126,186,119,214,38
2051.byte	225,105,20,99,85,33,12,125
2052.byte	82,9,106,213,48,54,165,56
2053.byte	191,64,163,158,129,243,215,251
2054.byte	124,227,57,130,155,47,255,135
2055.byte	52,142,67,68,196,222,233,203
2056.byte	84,123,148,50,166,194,35,61
2057.byte	238,76,149,11,66,250,195,78
2058.byte	8,46,161,102,40,217,36,178
2059.byte	118,91,162,73,109,139,209,37
2060.byte	114,248,246,100,134,104,152,22
2061.byte	212,164,92,204,93,101,182,146
2062.byte	108,112,72,80,253,237,185,218
2063.byte	94,21,70,87,167,141,157,132
2064.byte	144,216,171,0,140,188,211,10
2065.byte	247,228,88,5,184,179,69,6
2066.byte	208,44,30,143,202,63,15,2
2067.byte	193,175,189,3,1,19,138,107
2068.byte	58,145,17,65,79,103,220,234
2069.byte	151,242,207,206,240,180,230,115
2070.byte	150,172,116,34,231,173,53,133
2071.byte	226,249,55,232,28,117,223,110
2072.byte	71,241,26,113,29,41,197,137
2073.byte	111,183,98,14,170,24,190,27
2074.byte	252,86,62,75,198,210,121,32
2075.byte	154,219,192,254,120,205,90,244
2076.byte	31,221,168,51,136,7,199,49
2077.byte	177,18,16,89,39,128,236,95
2078.byte	96,81,127,169,25,181,74,13
2079.byte	45,229,122,159,147,201,156,239
2080.byte	160,224,59,77,174,42,245,176
2081.byte	200,235,187,60,131,83,153,97
2082.byte	23,43,4,126,186,119,214,38
2083.byte	225,105,20,99,85,33,12,125
2084.byte	82,9,106,213,48,54,165,56
2085.byte	191,64,163,158,129,243,215,251
2086.byte	124,227,57,130,155,47,255,135
2087.byte	52,142,67,68,196,222,233,203
2088.byte	84,123,148,50,166,194,35,61
2089.byte	238,76,149,11,66,250,195,78
2090.byte	8,46,161,102,40,217,36,178
2091.byte	118,91,162,73,109,139,209,37
2092.byte	114,248,246,100,134,104,152,22
2093.byte	212,164,92,204,93,101,182,146
2094.byte	108,112,72,80,253,237,185,218
2095.byte	94,21,70,87,167,141,157,132
2096.byte	144,216,171,0,140,188,211,10
2097.byte	247,228,88,5,184,179,69,6
2098.byte	208,44,30,143,202,63,15,2
2099.byte	193,175,189,3,1,19,138,107
2100.byte	58,145,17,65,79,103,220,234
2101.byte	151,242,207,206,240,180,230,115
2102.byte	150,172,116,34,231,173,53,133
2103.byte	226,249,55,232,28,117,223,110
2104.byte	71,241,26,113,29,41,197,137
2105.byte	111,183,98,14,170,24,190,27
2106.byte	252,86,62,75,198,210,121,32
2107.byte	154,219,192,254,120,205,90,244
2108.byte	31,221,168,51,136,7,199,49
2109.byte	177,18,16,89,39,128,236,95
2110.byte	96,81,127,169,25,181,74,13
2111.byte	45,229,122,159,147,201,156,239
2112.byte	160,224,59,77,174,42,245,176
2113.byte	200,235,187,60,131,83,153,97
2114.byte	23,43,4,126,186,119,214,38
2115.byte	225,105,20,99,85,33,12,125
2116.byte	82,9,106,213,48,54,165,56
2117.byte	191,64,163,158,129,243,215,251
2118.byte	124,227,57,130,155,47,255,135
2119.byte	52,142,67,68,196,222,233,203
2120.byte	84,123,148,50,166,194,35,61
2121.byte	238,76,149,11,66,250,195,78
2122.byte	8,46,161,102,40,217,36,178
2123.byte	118,91,162,73,109,139,209,37
2124.byte	114,248,246,100,134,104,152,22
2125.byte	212,164,92,204,93,101,182,146
2126.byte	108,112,72,80,253,237,185,218
2127.byte	94,21,70,87,167,141,157,132
2128.byte	144,216,171,0,140,188,211,10
2129.byte	247,228,88,5,184,179,69,6
2130.byte	208,44,30,143,202,63,15,2
2131.byte	193,175,189,3,1,19,138,107
2132.byte	58,145,17,65,79,103,220,234
2133.byte	151,242,207,206,240,180,230,115
2134.byte	150,172,116,34,231,173,53,133
2135.byte	226,249,55,232,28,117,223,110
2136.byte	71,241,26,113,29,41,197,137
2137.byte	111,183,98,14,170,24,190,27
2138.byte	252,86,62,75,198,210,121,32
2139.byte	154,219,192,254,120,205,90,244
2140.byte	31,221,168,51,136,7,199,49
2141.byte	177,18,16,89,39,128,236,95
2142.byte	96,81,127,169,25,181,74,13
2143.byte	45,229,122,159,147,201,156,239
2144.byte	160,224,59,77,174,42,245,176
2145.byte	200,235,187,60,131,83,153,97
2146.byte	23,43,4,126,186,119,214,38
2147.byte	225,105,20,99,85,33,12,125
2148.globl	_asm_AES_decrypt
2149.private_extern	_asm_AES_decrypt
2150.align	4
2151_asm_AES_decrypt:
2152L_asm_AES_decrypt_begin:
2153	pushl	%ebp
2154	pushl	%ebx
2155	pushl	%esi
2156	pushl	%edi
2157	movl	20(%esp),%esi
2158	movl	28(%esp),%edi
2159	movl	%esp,%eax
2160	subl	$36,%esp
2161	andl	$-64,%esp
2162	leal	-127(%edi),%ebx
2163	subl	%esp,%ebx
2164	negl	%ebx
2165	andl	$960,%ebx
2166	subl	%ebx,%esp
2167	addl	$4,%esp
2168	movl	%eax,28(%esp)
2169	call	L010pic_point
2170L010pic_point:
2171	popl	%ebp
2172	movl	L_OPENSSL_ia32cap_P$non_lazy_ptr-L010pic_point(%ebp),%eax
2173	leal	LAES_Td-L010pic_point(%ebp),%ebp
2174	leal	764(%esp),%ebx
2175	subl	%ebp,%ebx
2176	andl	$768,%ebx
2177	leal	2176(%ebp,%ebx,1),%ebp
2178	btl	$25,(%eax)
2179	jnc	L011x86
2180	movq	(%esi),%mm0
2181	movq	8(%esi),%mm4
2182	call	__sse_AES_decrypt_compact
2183	movl	28(%esp),%esp
2184	movl	24(%esp),%esi
2185	movq	%mm0,(%esi)
2186	movq	%mm4,8(%esi)
2187	emms
2188	popl	%edi
2189	popl	%esi
2190	popl	%ebx
2191	popl	%ebp
2192	ret
2193.align	4,0x90
2194L011x86:
2195	movl	%ebp,24(%esp)
2196	movl	(%esi),%eax
2197	movl	4(%esi),%ebx
2198	movl	8(%esi),%ecx
2199	movl	12(%esi),%edx
2200	call	__x86_AES_decrypt_compact
2201	movl	28(%esp),%esp
2202	movl	24(%esp),%esi
2203	movl	%eax,(%esi)
2204	movl	%ebx,4(%esi)
2205	movl	%ecx,8(%esi)
2206	movl	%edx,12(%esi)
2207	popl	%edi
2208	popl	%esi
2209	popl	%ebx
2210	popl	%ebp
2211	ret
2212.globl	_asm_AES_cbc_encrypt
2213.private_extern	_asm_AES_cbc_encrypt
2214.align	4
2215_asm_AES_cbc_encrypt:
2216L_asm_AES_cbc_encrypt_begin:
2217	pushl	%ebp
2218	pushl	%ebx
2219	pushl	%esi
2220	pushl	%edi
2221	movl	28(%esp),%ecx
2222	cmpl	$0,%ecx
2223	je	L012drop_out
2224	call	L013pic_point
2225L013pic_point:
2226	popl	%ebp
2227	movl	L_OPENSSL_ia32cap_P$non_lazy_ptr-L013pic_point(%ebp),%eax
2228	cmpl	$0,40(%esp)
2229	leal	LAES_Te-L013pic_point(%ebp),%ebp
2230	jne	L014picked_te
2231	leal	LAES_Td-LAES_Te(%ebp),%ebp
2232L014picked_te:
2233	pushfl
2234	cld
2235	cmpl	$512,%ecx
2236	jb	L015slow_way
2237	testl	$15,%ecx
2238	jnz	L015slow_way
2239	btl	$28,(%eax)
2240	jc	L015slow_way
2241	leal	-324(%esp),%esi
2242	andl	$-64,%esi
2243	movl	%ebp,%eax
2244	leal	2304(%ebp),%ebx
2245	movl	%esi,%edx
2246	andl	$4095,%eax
2247	andl	$4095,%ebx
2248	andl	$4095,%edx
2249	cmpl	%ebx,%edx
2250	jb	L016tbl_break_out
2251	subl	%ebx,%edx
2252	subl	%edx,%esi
2253	jmp	L017tbl_ok
2254.align	2,0x90
2255L016tbl_break_out:
2256	subl	%eax,%edx
2257	andl	$4095,%edx
2258	addl	$384,%edx
2259	subl	%edx,%esi
2260.align	2,0x90
2261L017tbl_ok:
2262	leal	24(%esp),%edx
2263	xchgl	%esi,%esp
2264	addl	$4,%esp
2265	movl	%ebp,24(%esp)
2266	movl	%esi,28(%esp)
2267	movl	(%edx),%eax
2268	movl	4(%edx),%ebx
2269	movl	12(%edx),%edi
2270	movl	16(%edx),%esi
2271	movl	20(%edx),%edx
2272	movl	%eax,32(%esp)
2273	movl	%ebx,36(%esp)
2274	movl	%ecx,40(%esp)
2275	movl	%edi,44(%esp)
2276	movl	%esi,48(%esp)
2277	movl	$0,316(%esp)
2278	movl	%edi,%ebx
2279	movl	$61,%ecx
2280	subl	%ebp,%ebx
2281	movl	%edi,%esi
2282	andl	$4095,%ebx
2283	leal	76(%esp),%edi
2284	cmpl	$2304,%ebx
2285	jb	L018do_copy
2286	cmpl	$3852,%ebx
2287	jb	L019skip_copy
2288.align	2,0x90
2289L018do_copy:
2290	movl	%edi,44(%esp)
2291.long	2784229001
2292L019skip_copy:
2293	movl	$16,%edi
2294.align	2,0x90
2295L020prefetch_tbl:
2296	movl	(%ebp),%eax
2297	movl	32(%ebp),%ebx
2298	movl	64(%ebp),%ecx
2299	movl	96(%ebp),%esi
2300	leal	128(%ebp),%ebp
2301	subl	$1,%edi
2302	jnz	L020prefetch_tbl
2303	subl	$2048,%ebp
2304	movl	32(%esp),%esi
2305	movl	48(%esp),%edi
2306	cmpl	$0,%edx
2307	je	L021fast_decrypt
2308	movl	(%edi),%eax
2309	movl	4(%edi),%ebx
2310.align	4,0x90
2311L022fast_enc_loop:
2312	movl	8(%edi),%ecx
2313	movl	12(%edi),%edx
2314	xorl	(%esi),%eax
2315	xorl	4(%esi),%ebx
2316	xorl	8(%esi),%ecx
2317	xorl	12(%esi),%edx
2318	movl	44(%esp),%edi
2319	call	__x86_AES_encrypt
2320	movl	32(%esp),%esi
2321	movl	36(%esp),%edi
2322	movl	%eax,(%edi)
2323	movl	%ebx,4(%edi)
2324	movl	%ecx,8(%edi)
2325	movl	%edx,12(%edi)
2326	leal	16(%esi),%esi
2327	movl	40(%esp),%ecx
2328	movl	%esi,32(%esp)
2329	leal	16(%edi),%edx
2330	movl	%edx,36(%esp)
2331	subl	$16,%ecx
2332	movl	%ecx,40(%esp)
2333	jnz	L022fast_enc_loop
2334	movl	48(%esp),%esi
2335	movl	8(%edi),%ecx
2336	movl	12(%edi),%edx
2337	movl	%eax,(%esi)
2338	movl	%ebx,4(%esi)
2339	movl	%ecx,8(%esi)
2340	movl	%edx,12(%esi)
2341	cmpl	$0,316(%esp)
2342	movl	44(%esp),%edi
2343	je	L023skip_ezero
2344	movl	$60,%ecx
2345	xorl	%eax,%eax
2346.align	2,0x90
2347.long	2884892297
2348L023skip_ezero:
2349	movl	28(%esp),%esp
2350	popfl
2351L012drop_out:
2352	popl	%edi
2353	popl	%esi
2354	popl	%ebx
2355	popl	%ebp
2356	ret
2357	pushfl
2358.align	4,0x90
2359L021fast_decrypt:
2360	cmpl	36(%esp),%esi
2361	je	L024fast_dec_in_place
2362	movl	%edi,52(%esp)
2363.align	2,0x90
2364.align	4,0x90
2365L025fast_dec_loop:
2366	movl	(%esi),%eax
2367	movl	4(%esi),%ebx
2368	movl	8(%esi),%ecx
2369	movl	12(%esi),%edx
2370	movl	44(%esp),%edi
2371	call	__x86_AES_decrypt
2372	movl	52(%esp),%edi
2373	movl	40(%esp),%esi
2374	xorl	(%edi),%eax
2375	xorl	4(%edi),%ebx
2376	xorl	8(%edi),%ecx
2377	xorl	12(%edi),%edx
2378	movl	36(%esp),%edi
2379	movl	32(%esp),%esi
2380	movl	%eax,(%edi)
2381	movl	%ebx,4(%edi)
2382	movl	%ecx,8(%edi)
2383	movl	%edx,12(%edi)
2384	movl	40(%esp),%ecx
2385	movl	%esi,52(%esp)
2386	leal	16(%esi),%esi
2387	movl	%esi,32(%esp)
2388	leal	16(%edi),%edi
2389	movl	%edi,36(%esp)
2390	subl	$16,%ecx
2391	movl	%ecx,40(%esp)
2392	jnz	L025fast_dec_loop
2393	movl	52(%esp),%edi
2394	movl	48(%esp),%esi
2395	movl	(%edi),%eax
2396	movl	4(%edi),%ebx
2397	movl	8(%edi),%ecx
2398	movl	12(%edi),%edx
2399	movl	%eax,(%esi)
2400	movl	%ebx,4(%esi)
2401	movl	%ecx,8(%esi)
2402	movl	%edx,12(%esi)
2403	jmp	L026fast_dec_out
2404.align	4,0x90
2405L024fast_dec_in_place:
2406L027fast_dec_in_place_loop:
2407	movl	(%esi),%eax
2408	movl	4(%esi),%ebx
2409	movl	8(%esi),%ecx
2410	movl	12(%esi),%edx
2411	leal	60(%esp),%edi
2412	movl	%eax,(%edi)
2413	movl	%ebx,4(%edi)
2414	movl	%ecx,8(%edi)
2415	movl	%edx,12(%edi)
2416	movl	44(%esp),%edi
2417	call	__x86_AES_decrypt
2418	movl	48(%esp),%edi
2419	movl	36(%esp),%esi
2420	xorl	(%edi),%eax
2421	xorl	4(%edi),%ebx
2422	xorl	8(%edi),%ecx
2423	xorl	12(%edi),%edx
2424	movl	%eax,(%esi)
2425	movl	%ebx,4(%esi)
2426	movl	%ecx,8(%esi)
2427	movl	%edx,12(%esi)
2428	leal	16(%esi),%esi
2429	movl	%esi,36(%esp)
2430	leal	60(%esp),%esi
2431	movl	(%esi),%eax
2432	movl	4(%esi),%ebx
2433	movl	8(%esi),%ecx
2434	movl	12(%esi),%edx
2435	movl	%eax,(%edi)
2436	movl	%ebx,4(%edi)
2437	movl	%ecx,8(%edi)
2438	movl	%edx,12(%edi)
2439	movl	32(%esp),%esi
2440	movl	40(%esp),%ecx
2441	leal	16(%esi),%esi
2442	movl	%esi,32(%esp)
2443	subl	$16,%ecx
2444	movl	%ecx,40(%esp)
2445	jnz	L027fast_dec_in_place_loop
2446.align	2,0x90
2447L026fast_dec_out:
2448	cmpl	$0,316(%esp)
2449	movl	44(%esp),%edi
2450	je	L028skip_dzero
2451	movl	$60,%ecx
2452	xorl	%eax,%eax
2453.align	2,0x90
2454.long	2884892297
2455L028skip_dzero:
2456	movl	28(%esp),%esp
2457	popfl
2458	popl	%edi
2459	popl	%esi
2460	popl	%ebx
2461	popl	%ebp
2462	ret
2463	pushfl
2464.align	4,0x90
2465L015slow_way:
2466	movl	(%eax),%eax
2467	movl	36(%esp),%edi
2468	leal	-80(%esp),%esi
2469	andl	$-64,%esi
2470	leal	-143(%edi),%ebx
2471	subl	%esi,%ebx
2472	negl	%ebx
2473	andl	$960,%ebx
2474	subl	%ebx,%esi
2475	leal	768(%esi),%ebx
2476	subl	%ebp,%ebx
2477	andl	$768,%ebx
2478	leal	2176(%ebp,%ebx,1),%ebp
2479	leal	24(%esp),%edx
2480	xchgl	%esi,%esp
2481	addl	$4,%esp
2482	movl	%ebp,24(%esp)
2483	movl	%esi,28(%esp)
2484	movl	%eax,52(%esp)
2485	movl	(%edx),%eax
2486	movl	4(%edx),%ebx
2487	movl	16(%edx),%esi
2488	movl	20(%edx),%edx
2489	movl	%eax,32(%esp)
2490	movl	%ebx,36(%esp)
2491	movl	%ecx,40(%esp)
2492	movl	%edi,44(%esp)
2493	movl	%esi,48(%esp)
2494	movl	%esi,%edi
2495	movl	%eax,%esi
2496	cmpl	$0,%edx
2497	je	L029slow_decrypt
2498	cmpl	$16,%ecx
2499	movl	%ebx,%edx
2500	jb	L030slow_enc_tail
2501	btl	$25,52(%esp)
2502	jnc	L031slow_enc_x86
2503	movq	(%edi),%mm0
2504	movq	8(%edi),%mm4
2505.align	4,0x90
2506L032slow_enc_loop_sse:
2507	pxor	(%esi),%mm0
2508	pxor	8(%esi),%mm4
2509	movl	44(%esp),%edi
2510	call	__sse_AES_encrypt_compact
2511	movl	32(%esp),%esi
2512	movl	36(%esp),%edi
2513	movl	40(%esp),%ecx
2514	movq	%mm0,(%edi)
2515	movq	%mm4,8(%edi)
2516	leal	16(%esi),%esi
2517	movl	%esi,32(%esp)
2518	leal	16(%edi),%edx
2519	movl	%edx,36(%esp)
2520	subl	$16,%ecx
2521	cmpl	$16,%ecx
2522	movl	%ecx,40(%esp)
2523	jae	L032slow_enc_loop_sse
2524	testl	$15,%ecx
2525	jnz	L030slow_enc_tail
2526	movl	48(%esp),%esi
2527	movq	%mm0,(%esi)
2528	movq	%mm4,8(%esi)
2529	emms
2530	movl	28(%esp),%esp
2531	popfl
2532	popl	%edi
2533	popl	%esi
2534	popl	%ebx
2535	popl	%ebp
2536	ret
2537	pushfl
2538.align	4,0x90
2539L031slow_enc_x86:
2540	movl	(%edi),%eax
2541	movl	4(%edi),%ebx
2542.align	2,0x90
2543L033slow_enc_loop_x86:
2544	movl	8(%edi),%ecx
2545	movl	12(%edi),%edx
2546	xorl	(%esi),%eax
2547	xorl	4(%esi),%ebx
2548	xorl	8(%esi),%ecx
2549	xorl	12(%esi),%edx
2550	movl	44(%esp),%edi
2551	call	__x86_AES_encrypt_compact
2552	movl	32(%esp),%esi
2553	movl	36(%esp),%edi
2554	movl	%eax,(%edi)
2555	movl	%ebx,4(%edi)
2556	movl	%ecx,8(%edi)
2557	movl	%edx,12(%edi)
2558	movl	40(%esp),%ecx
2559	leal	16(%esi),%esi
2560	movl	%esi,32(%esp)
2561	leal	16(%edi),%edx
2562	movl	%edx,36(%esp)
2563	subl	$16,%ecx
2564	cmpl	$16,%ecx
2565	movl	%ecx,40(%esp)
2566	jae	L033slow_enc_loop_x86
2567	testl	$15,%ecx
2568	jnz	L030slow_enc_tail
2569	movl	48(%esp),%esi
2570	movl	8(%edi),%ecx
2571	movl	12(%edi),%edx
2572	movl	%eax,(%esi)
2573	movl	%ebx,4(%esi)
2574	movl	%ecx,8(%esi)
2575	movl	%edx,12(%esi)
2576	movl	28(%esp),%esp
2577	popfl
2578	popl	%edi
2579	popl	%esi
2580	popl	%ebx
2581	popl	%ebp
2582	ret
2583	pushfl
2584.align	4,0x90
2585L030slow_enc_tail:
2586	emms
2587	movl	%edx,%edi
2588	movl	$16,%ebx
2589	subl	%ecx,%ebx
2590	cmpl	%esi,%edi
2591	je	L034enc_in_place
2592.align	2,0x90
2593.long	2767451785
2594	jmp	L035enc_skip_in_place
2595L034enc_in_place:
2596	leal	(%edi,%ecx,1),%edi
2597L035enc_skip_in_place:
2598	movl	%ebx,%ecx
2599	xorl	%eax,%eax
2600.align	2,0x90
2601.long	2868115081
2602	movl	48(%esp),%edi
2603	movl	%edx,%esi
2604	movl	(%edi),%eax
2605	movl	4(%edi),%ebx
2606	movl	$16,40(%esp)
2607	jmp	L033slow_enc_loop_x86
2608.align	4,0x90
2609L029slow_decrypt:
2610	btl	$25,52(%esp)
2611	jnc	L036slow_dec_loop_x86
2612.align	2,0x90
2613L037slow_dec_loop_sse:
2614	movq	(%esi),%mm0
2615	movq	8(%esi),%mm4
2616	movl	44(%esp),%edi
2617	call	__sse_AES_decrypt_compact
2618	movl	32(%esp),%esi
2619	leal	60(%esp),%eax
2620	movl	36(%esp),%ebx
2621	movl	40(%esp),%ecx
2622	movl	48(%esp),%edi
2623	movq	(%esi),%mm1
2624	movq	8(%esi),%mm5
2625	pxor	(%edi),%mm0
2626	pxor	8(%edi),%mm4
2627	movq	%mm1,(%edi)
2628	movq	%mm5,8(%edi)
2629	subl	$16,%ecx
2630	jc	L038slow_dec_partial_sse
2631	movq	%mm0,(%ebx)
2632	movq	%mm4,8(%ebx)
2633	leal	16(%ebx),%ebx
2634	movl	%ebx,36(%esp)
2635	leal	16(%esi),%esi
2636	movl	%esi,32(%esp)
2637	movl	%ecx,40(%esp)
2638	jnz	L037slow_dec_loop_sse
2639	emms
2640	movl	28(%esp),%esp
2641	popfl
2642	popl	%edi
2643	popl	%esi
2644	popl	%ebx
2645	popl	%ebp
2646	ret
2647	pushfl
2648.align	4,0x90
2649L038slow_dec_partial_sse:
2650	movq	%mm0,(%eax)
2651	movq	%mm4,8(%eax)
2652	emms
2653	addl	$16,%ecx
2654	movl	%ebx,%edi
2655	movl	%eax,%esi
2656.align	2,0x90
2657.long	2767451785
2658	movl	28(%esp),%esp
2659	popfl
2660	popl	%edi
2661	popl	%esi
2662	popl	%ebx
2663	popl	%ebp
2664	ret
2665	pushfl
2666.align	4,0x90
2667L036slow_dec_loop_x86:
2668	movl	(%esi),%eax
2669	movl	4(%esi),%ebx
2670	movl	8(%esi),%ecx
2671	movl	12(%esi),%edx
2672	leal	60(%esp),%edi
2673	movl	%eax,(%edi)
2674	movl	%ebx,4(%edi)
2675	movl	%ecx,8(%edi)
2676	movl	%edx,12(%edi)
2677	movl	44(%esp),%edi
2678	call	__x86_AES_decrypt_compact
2679	movl	48(%esp),%edi
2680	movl	40(%esp),%esi
2681	xorl	(%edi),%eax
2682	xorl	4(%edi),%ebx
2683	xorl	8(%edi),%ecx
2684	xorl	12(%edi),%edx
2685	subl	$16,%esi
2686	jc	L039slow_dec_partial_x86
2687	movl	%esi,40(%esp)
2688	movl	36(%esp),%esi
2689	movl	%eax,(%esi)
2690	movl	%ebx,4(%esi)
2691	movl	%ecx,8(%esi)
2692	movl	%edx,12(%esi)
2693	leal	16(%esi),%esi
2694	movl	%esi,36(%esp)
2695	leal	60(%esp),%esi
2696	movl	(%esi),%eax
2697	movl	4(%esi),%ebx
2698	movl	8(%esi),%ecx
2699	movl	12(%esi),%edx
2700	movl	%eax,(%edi)
2701	movl	%ebx,4(%edi)
2702	movl	%ecx,8(%edi)
2703	movl	%edx,12(%edi)
2704	movl	32(%esp),%esi
2705	leal	16(%esi),%esi
2706	movl	%esi,32(%esp)
2707	jnz	L036slow_dec_loop_x86
2708	movl	28(%esp),%esp
2709	popfl
2710	popl	%edi
2711	popl	%esi
2712	popl	%ebx
2713	popl	%ebp
2714	ret
2715	pushfl
2716.align	4,0x90
2717L039slow_dec_partial_x86:
2718	leal	60(%esp),%esi
2719	movl	%eax,(%esi)
2720	movl	%ebx,4(%esi)
2721	movl	%ecx,8(%esi)
2722	movl	%edx,12(%esi)
2723	movl	32(%esp),%esi
2724	movl	(%esi),%eax
2725	movl	4(%esi),%ebx
2726	movl	8(%esi),%ecx
2727	movl	12(%esi),%edx
2728	movl	%eax,(%edi)
2729	movl	%ebx,4(%edi)
2730	movl	%ecx,8(%edi)
2731	movl	%edx,12(%edi)
2732	movl	40(%esp),%ecx
2733	movl	36(%esp),%edi
2734	leal	60(%esp),%esi
2735.align	2,0x90
2736.long	2767451785
2737	movl	28(%esp),%esp
2738	popfl
2739	popl	%edi
2740	popl	%esi
2741	popl	%ebx
2742	popl	%ebp
2743	ret
2744.private_extern	__x86_AES_set_encrypt_key
2745.align	4
2746__x86_AES_set_encrypt_key:
2747	pushl	%ebp
2748	pushl	%ebx
2749	pushl	%esi
2750	pushl	%edi
2751	movl	24(%esp),%esi
2752	movl	32(%esp),%edi
2753	testl	$-1,%esi
2754	jz	L040badpointer
2755	testl	$-1,%edi
2756	jz	L040badpointer
2757	call	L041pic_point
2758L041pic_point:
2759	popl	%ebp
2760	leal	LAES_Te-L041pic_point(%ebp),%ebp
2761	leal	2176(%ebp),%ebp
2762	movl	-128(%ebp),%eax
2763	movl	-96(%ebp),%ebx
2764	movl	-64(%ebp),%ecx
2765	movl	-32(%ebp),%edx
2766	movl	(%ebp),%eax
2767	movl	32(%ebp),%ebx
2768	movl	64(%ebp),%ecx
2769	movl	96(%ebp),%edx
2770	movl	28(%esp),%ecx
2771	cmpl	$128,%ecx
2772	je	L04210rounds
2773	cmpl	$192,%ecx
2774	je	L04312rounds
2775	cmpl	$256,%ecx
2776	je	L04414rounds
2777	movl	$-2,%eax
2778	jmp	L045exit
2779L04210rounds:
2780	movl	(%esi),%eax
2781	movl	4(%esi),%ebx
2782	movl	8(%esi),%ecx
2783	movl	12(%esi),%edx
2784	movl	%eax,(%edi)
2785	movl	%ebx,4(%edi)
2786	movl	%ecx,8(%edi)
2787	movl	%edx,12(%edi)
2788	xorl	%ecx,%ecx
2789	jmp	L04610shortcut
2790.align	2,0x90
2791L04710loop:
2792	movl	(%edi),%eax
2793	movl	12(%edi),%edx
2794L04610shortcut:
2795	movzbl	%dl,%esi
2796	movzbl	-128(%ebp,%esi,1),%ebx
2797	movzbl	%dh,%esi
2798	shll	$24,%ebx
2799	xorl	%ebx,%eax
2800	movzbl	-128(%ebp,%esi,1),%ebx
2801	shrl	$16,%edx
2802	movzbl	%dl,%esi
2803	xorl	%ebx,%eax
2804	movzbl	-128(%ebp,%esi,1),%ebx
2805	movzbl	%dh,%esi
2806	shll	$8,%ebx
2807	xorl	%ebx,%eax
2808	movzbl	-128(%ebp,%esi,1),%ebx
2809	shll	$16,%ebx
2810	xorl	%ebx,%eax
2811	xorl	896(%ebp,%ecx,4),%eax
2812	movl	%eax,16(%edi)
2813	xorl	4(%edi),%eax
2814	movl	%eax,20(%edi)
2815	xorl	8(%edi),%eax
2816	movl	%eax,24(%edi)
2817	xorl	12(%edi),%eax
2818	movl	%eax,28(%edi)
2819	incl	%ecx
2820	addl	$16,%edi
2821	cmpl	$10,%ecx
2822	jl	L04710loop
2823	movl	$10,80(%edi)
2824	xorl	%eax,%eax
2825	jmp	L045exit
2826L04312rounds:
2827	movl	(%esi),%eax
2828	movl	4(%esi),%ebx
2829	movl	8(%esi),%ecx
2830	movl	12(%esi),%edx
2831	movl	%eax,(%edi)
2832	movl	%ebx,4(%edi)
2833	movl	%ecx,8(%edi)
2834	movl	%edx,12(%edi)
2835	movl	16(%esi),%ecx
2836	movl	20(%esi),%edx
2837	movl	%ecx,16(%edi)
2838	movl	%edx,20(%edi)
2839	xorl	%ecx,%ecx
2840	jmp	L04812shortcut
2841.align	2,0x90
2842L04912loop:
2843	movl	(%edi),%eax
2844	movl	20(%edi),%edx
2845L04812shortcut:
2846	movzbl	%dl,%esi
2847	movzbl	-128(%ebp,%esi,1),%ebx
2848	movzbl	%dh,%esi
2849	shll	$24,%ebx
2850	xorl	%ebx,%eax
2851	movzbl	-128(%ebp,%esi,1),%ebx
2852	shrl	$16,%edx
2853	movzbl	%dl,%esi
2854	xorl	%ebx,%eax
2855	movzbl	-128(%ebp,%esi,1),%ebx
2856	movzbl	%dh,%esi
2857	shll	$8,%ebx
2858	xorl	%ebx,%eax
2859	movzbl	-128(%ebp,%esi,1),%ebx
2860	shll	$16,%ebx
2861	xorl	%ebx,%eax
2862	xorl	896(%ebp,%ecx,4),%eax
2863	movl	%eax,24(%edi)
2864	xorl	4(%edi),%eax
2865	movl	%eax,28(%edi)
2866	xorl	8(%edi),%eax
2867	movl	%eax,32(%edi)
2868	xorl	12(%edi),%eax
2869	movl	%eax,36(%edi)
2870	cmpl	$7,%ecx
2871	je	L05012break
2872	incl	%ecx
2873	xorl	16(%edi),%eax
2874	movl	%eax,40(%edi)
2875	xorl	20(%edi),%eax
2876	movl	%eax,44(%edi)
2877	addl	$24,%edi
2878	jmp	L04912loop
2879L05012break:
2880	movl	$12,72(%edi)
2881	xorl	%eax,%eax
2882	jmp	L045exit
2883L04414rounds:
2884	movl	(%esi),%eax
2885	movl	4(%esi),%ebx
2886	movl	8(%esi),%ecx
2887	movl	12(%esi),%edx
2888	movl	%eax,(%edi)
2889	movl	%ebx,4(%edi)
2890	movl	%ecx,8(%edi)
2891	movl	%edx,12(%edi)
2892	movl	16(%esi),%eax
2893	movl	20(%esi),%ebx
2894	movl	24(%esi),%ecx
2895	movl	28(%esi),%edx
2896	movl	%eax,16(%edi)
2897	movl	%ebx,20(%edi)
2898	movl	%ecx,24(%edi)
2899	movl	%edx,28(%edi)
2900	xorl	%ecx,%ecx
2901	jmp	L05114shortcut
2902.align	2,0x90
2903L05214loop:
2904	movl	28(%edi),%edx
2905L05114shortcut:
2906	movl	(%edi),%eax
2907	movzbl	%dl,%esi
2908	movzbl	-128(%ebp,%esi,1),%ebx
2909	movzbl	%dh,%esi
2910	shll	$24,%ebx
2911	xorl	%ebx,%eax
2912	movzbl	-128(%ebp,%esi,1),%ebx
2913	shrl	$16,%edx
2914	movzbl	%dl,%esi
2915	xorl	%ebx,%eax
2916	movzbl	-128(%ebp,%esi,1),%ebx
2917	movzbl	%dh,%esi
2918	shll	$8,%ebx
2919	xorl	%ebx,%eax
2920	movzbl	-128(%ebp,%esi,1),%ebx
2921	shll	$16,%ebx
2922	xorl	%ebx,%eax
2923	xorl	896(%ebp,%ecx,4),%eax
2924	movl	%eax,32(%edi)
2925	xorl	4(%edi),%eax
2926	movl	%eax,36(%edi)
2927	xorl	8(%edi),%eax
2928	movl	%eax,40(%edi)
2929	xorl	12(%edi),%eax
2930	movl	%eax,44(%edi)
2931	cmpl	$6,%ecx
2932	je	L05314break
2933	incl	%ecx
2934	movl	%eax,%edx
2935	movl	16(%edi),%eax
2936	movzbl	%dl,%esi
2937	movzbl	-128(%ebp,%esi,1),%ebx
2938	movzbl	%dh,%esi
2939	xorl	%ebx,%eax
2940	movzbl	-128(%ebp,%esi,1),%ebx
2941	shrl	$16,%edx
2942	shll	$8,%ebx
2943	movzbl	%dl,%esi
2944	xorl	%ebx,%eax
2945	movzbl	-128(%ebp,%esi,1),%ebx
2946	movzbl	%dh,%esi
2947	shll	$16,%ebx
2948	xorl	%ebx,%eax
2949	movzbl	-128(%ebp,%esi,1),%ebx
2950	shll	$24,%ebx
2951	xorl	%ebx,%eax
2952	movl	%eax,48(%edi)
2953	xorl	20(%edi),%eax
2954	movl	%eax,52(%edi)
2955	xorl	24(%edi),%eax
2956	movl	%eax,56(%edi)
2957	xorl	28(%edi),%eax
2958	movl	%eax,60(%edi)
2959	addl	$32,%edi
2960	jmp	L05214loop
2961L05314break:
2962	movl	$14,48(%edi)
2963	xorl	%eax,%eax
2964	jmp	L045exit
2965L040badpointer:
2966	movl	$-1,%eax
2967L045exit:
2968	popl	%edi
2969	popl	%esi
2970	popl	%ebx
2971	popl	%ebp
2972	ret
2973.globl	_asm_AES_set_encrypt_key
2974.private_extern	_asm_AES_set_encrypt_key
2975.align	4
2976_asm_AES_set_encrypt_key:
2977L_asm_AES_set_encrypt_key_begin:
2978	call	__x86_AES_set_encrypt_key
2979	ret
2980.globl	_asm_AES_set_decrypt_key
2981.private_extern	_asm_AES_set_decrypt_key
2982.align	4
2983_asm_AES_set_decrypt_key:
2984L_asm_AES_set_decrypt_key_begin:
2985	call	__x86_AES_set_encrypt_key
2986	cmpl	$0,%eax
2987	je	L054proceed
2988	ret
2989L054proceed:
2990	pushl	%ebp
2991	pushl	%ebx
2992	pushl	%esi
2993	pushl	%edi
2994	movl	28(%esp),%esi
2995	movl	240(%esi),%ecx
2996	leal	(,%ecx,4),%ecx
2997	leal	(%esi,%ecx,4),%edi
2998.align	2,0x90
2999L055invert:
3000	movl	(%esi),%eax
3001	movl	4(%esi),%ebx
3002	movl	(%edi),%ecx
3003	movl	4(%edi),%edx
3004	movl	%eax,(%edi)
3005	movl	%ebx,4(%edi)
3006	movl	%ecx,(%esi)
3007	movl	%edx,4(%esi)
3008	movl	8(%esi),%eax
3009	movl	12(%esi),%ebx
3010	movl	8(%edi),%ecx
3011	movl	12(%edi),%edx
3012	movl	%eax,8(%edi)
3013	movl	%ebx,12(%edi)
3014	movl	%ecx,8(%esi)
3015	movl	%edx,12(%esi)
3016	addl	$16,%esi
3017	subl	$16,%edi
3018	cmpl	%edi,%esi
3019	jne	L055invert
3020	movl	28(%esp),%edi
3021	movl	240(%edi),%esi
3022	leal	-2(%esi,%esi,1),%esi
3023	leal	(%edi,%esi,8),%esi
3024	movl	%esi,28(%esp)
3025	movl	16(%edi),%eax
3026.align	2,0x90
3027L056permute:
3028	addl	$16,%edi
3029	movl	$2155905152,%ebp
3030	andl	%eax,%ebp
3031	leal	(%eax,%eax,1),%ebx
3032	movl	%ebp,%esi
3033	shrl	$7,%ebp
3034	subl	%ebp,%esi
3035	andl	$4278124286,%ebx
3036	andl	$454761243,%esi
3037	xorl	%esi,%ebx
3038	movl	$2155905152,%ebp
3039	andl	%ebx,%ebp
3040	leal	(%ebx,%ebx,1),%ecx
3041	movl	%ebp,%esi
3042	shrl	$7,%ebp
3043	subl	%ebp,%esi
3044	andl	$4278124286,%ecx
3045	andl	$454761243,%esi
3046	xorl	%eax,%ebx
3047	xorl	%esi,%ecx
3048	movl	$2155905152,%ebp
3049	andl	%ecx,%ebp
3050	leal	(%ecx,%ecx,1),%edx
3051	movl	%ebp,%esi
3052	shrl	$7,%ebp
3053	xorl	%eax,%ecx
3054	subl	%ebp,%esi
3055	andl	$4278124286,%edx
3056	andl	$454761243,%esi
3057	roll	$8,%eax
3058	xorl	%esi,%edx
3059	movl	4(%edi),%ebp
3060	xorl	%ebx,%eax
3061	xorl	%edx,%ebx
3062	xorl	%ecx,%eax
3063	roll	$24,%ebx
3064	xorl	%edx,%ecx
3065	xorl	%edx,%eax
3066	roll	$16,%ecx
3067	xorl	%ebx,%eax
3068	roll	$8,%edx
3069	xorl	%ecx,%eax
3070	movl	%ebp,%ebx
3071	xorl	%edx,%eax
3072	movl	%eax,(%edi)
3073	movl	$2155905152,%ebp
3074	andl	%ebx,%ebp
3075	leal	(%ebx,%ebx,1),%ecx
3076	movl	%ebp,%esi
3077	shrl	$7,%ebp
3078	subl	%ebp,%esi
3079	andl	$4278124286,%ecx
3080	andl	$454761243,%esi
3081	xorl	%esi,%ecx
3082	movl	$2155905152,%ebp
3083	andl	%ecx,%ebp
3084	leal	(%ecx,%ecx,1),%edx
3085	movl	%ebp,%esi
3086	shrl	$7,%ebp
3087	subl	%ebp,%esi
3088	andl	$4278124286,%edx
3089	andl	$454761243,%esi
3090	xorl	%ebx,%ecx
3091	xorl	%esi,%edx
3092	movl	$2155905152,%ebp
3093	andl	%edx,%ebp
3094	leal	(%edx,%edx,1),%eax
3095	movl	%ebp,%esi
3096	shrl	$7,%ebp
3097	xorl	%ebx,%edx
3098	subl	%ebp,%esi
3099	andl	$4278124286,%eax
3100	andl	$454761243,%esi
3101	roll	$8,%ebx
3102	xorl	%esi,%eax
3103	movl	8(%edi),%ebp
3104	xorl	%ecx,%ebx
3105	xorl	%eax,%ecx
3106	xorl	%edx,%ebx
3107	roll	$24,%ecx
3108	xorl	%eax,%edx
3109	xorl	%eax,%ebx
3110	roll	$16,%edx
3111	xorl	%ecx,%ebx
3112	roll	$8,%eax
3113	xorl	%edx,%ebx
3114	movl	%ebp,%ecx
3115	xorl	%eax,%ebx
3116	movl	%ebx,4(%edi)
3117	movl	$2155905152,%ebp
3118	andl	%ecx,%ebp
3119	leal	(%ecx,%ecx,1),%edx
3120	movl	%ebp,%esi
3121	shrl	$7,%ebp
3122	subl	%ebp,%esi
3123	andl	$4278124286,%edx
3124	andl	$454761243,%esi
3125	xorl	%esi,%edx
3126	movl	$2155905152,%ebp
3127	andl	%edx,%ebp
3128	leal	(%edx,%edx,1),%eax
3129	movl	%ebp,%esi
3130	shrl	$7,%ebp
3131	subl	%ebp,%esi
3132	andl	$4278124286,%eax
3133	andl	$454761243,%esi
3134	xorl	%ecx,%edx
3135	xorl	%esi,%eax
3136	movl	$2155905152,%ebp
3137	andl	%eax,%ebp
3138	leal	(%eax,%eax,1),%ebx
3139	movl	%ebp,%esi
3140	shrl	$7,%ebp
3141	xorl	%ecx,%eax
3142	subl	%ebp,%esi
3143	andl	$4278124286,%ebx
3144	andl	$454761243,%esi
3145	roll	$8,%ecx
3146	xorl	%esi,%ebx
3147	movl	12(%edi),%ebp
3148	xorl	%edx,%ecx
3149	xorl	%ebx,%edx
3150	xorl	%eax,%ecx
3151	roll	$24,%edx
3152	xorl	%ebx,%eax
3153	xorl	%ebx,%ecx
3154	roll	$16,%eax
3155	xorl	%edx,%ecx
3156	roll	$8,%ebx
3157	xorl	%eax,%ecx
3158	movl	%ebp,%edx
3159	xorl	%ebx,%ecx
3160	movl	%ecx,8(%edi)
3161	movl	$2155905152,%ebp
3162	andl	%edx,%ebp
3163	leal	(%edx,%edx,1),%eax
3164	movl	%ebp,%esi
3165	shrl	$7,%ebp
3166	subl	%ebp,%esi
3167	andl	$4278124286,%eax
3168	andl	$454761243,%esi
3169	xorl	%esi,%eax
3170	movl	$2155905152,%ebp
3171	andl	%eax,%ebp
3172	leal	(%eax,%eax,1),%ebx
3173	movl	%ebp,%esi
3174	shrl	$7,%ebp
3175	subl	%ebp,%esi
3176	andl	$4278124286,%ebx
3177	andl	$454761243,%esi
3178	xorl	%edx,%eax
3179	xorl	%esi,%ebx
3180	movl	$2155905152,%ebp
3181	andl	%ebx,%ebp
3182	leal	(%ebx,%ebx,1),%ecx
3183	movl	%ebp,%esi
3184	shrl	$7,%ebp
3185	xorl	%edx,%ebx
3186	subl	%ebp,%esi
3187	andl	$4278124286,%ecx
3188	andl	$454761243,%esi
3189	roll	$8,%edx
3190	xorl	%esi,%ecx
3191	movl	16(%edi),%ebp
3192	xorl	%eax,%edx
3193	xorl	%ecx,%eax
3194	xorl	%ebx,%edx
3195	roll	$24,%eax
3196	xorl	%ecx,%ebx
3197	xorl	%ecx,%edx
3198	roll	$16,%ebx
3199	xorl	%eax,%edx
3200	roll	$8,%ecx
3201	xorl	%ebx,%edx
3202	movl	%ebp,%eax
3203	xorl	%ecx,%edx
3204	movl	%edx,12(%edi)
3205	cmpl	28(%esp),%edi
3206	jb	L056permute
3207	xorl	%eax,%eax
3208	popl	%edi
3209	popl	%esi
3210	popl	%ebx
3211	popl	%ebp
3212	ret
3213.byte	65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89
3214.byte	80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
3215.byte	111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
3216.section __IMPORT,__pointers,non_lazy_symbol_pointers
3217L_OPENSSL_ia32cap_P$non_lazy_ptr:
3218.indirect_symbol	_OPENSSL_ia32cap_P
3219.long	0
3220#endif
3221