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