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