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