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