1238405Sjkim	# $FreeBSD$
2238405Sjkim.file	"aes-586.s"
3238405Sjkim.text
4238405Sjkim.type	_x86_AES_encrypt_compact,@function
5238405Sjkim.align	16
6238405Sjkim_x86_AES_encrypt_compact:
7238405Sjkim	movl	%edi,20(%esp)
8238405Sjkim	xorl	(%edi),%eax
9238405Sjkim	xorl	4(%edi),%ebx
10238405Sjkim	xorl	8(%edi),%ecx
11238405Sjkim	xorl	12(%edi),%edx
12238405Sjkim	movl	240(%edi),%esi
13238405Sjkim	leal	-2(%esi,%esi,1),%esi
14238405Sjkim	leal	(%edi,%esi,8),%esi
15238405Sjkim	movl	%esi,24(%esp)
16238405Sjkim	movl	-128(%ebp),%edi
17238405Sjkim	movl	-96(%ebp),%esi
18238405Sjkim	movl	-64(%ebp),%edi
19238405Sjkim	movl	-32(%ebp),%esi
20238405Sjkim	movl	(%ebp),%edi
21238405Sjkim	movl	32(%ebp),%esi
22238405Sjkim	movl	64(%ebp),%edi
23238405Sjkim	movl	96(%ebp),%esi
24238405Sjkim.align	16
25238405Sjkim.L000loop:
26238405Sjkim	movl	%eax,%esi
27238405Sjkim	andl	$255,%esi
28238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
29238405Sjkim	movzbl	%bh,%edi
30238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
31238405Sjkim	shll	$8,%edi
32238405Sjkim	xorl	%edi,%esi
33238405Sjkim	movl	%ecx,%edi
34238405Sjkim	shrl	$16,%edi
35238405Sjkim	andl	$255,%edi
36238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
37238405Sjkim	shll	$16,%edi
38238405Sjkim	xorl	%edi,%esi
39238405Sjkim	movl	%edx,%edi
40238405Sjkim	shrl	$24,%edi
41238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
42238405Sjkim	shll	$24,%edi
43238405Sjkim	xorl	%edi,%esi
44238405Sjkim	movl	%esi,4(%esp)
45238405Sjkim
46238405Sjkim	movl	%ebx,%esi
47238405Sjkim	andl	$255,%esi
48238405Sjkim	shrl	$16,%ebx
49238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
50238405Sjkim	movzbl	%ch,%edi
51238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
52238405Sjkim	shll	$8,%edi
53238405Sjkim	xorl	%edi,%esi
54238405Sjkim	movl	%edx,%edi
55238405Sjkim	shrl	$16,%edi
56238405Sjkim	andl	$255,%edi
57238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
58238405Sjkim	shll	$16,%edi
59238405Sjkim	xorl	%edi,%esi
60238405Sjkim	movl	%eax,%edi
61238405Sjkim	shrl	$24,%edi
62238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
63238405Sjkim	shll	$24,%edi
64238405Sjkim	xorl	%edi,%esi
65238405Sjkim	movl	%esi,8(%esp)
66238405Sjkim
67238405Sjkim	movl	%ecx,%esi
68238405Sjkim	andl	$255,%esi
69238405Sjkim	shrl	$24,%ecx
70238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
71238405Sjkim	movzbl	%dh,%edi
72238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
73238405Sjkim	shll	$8,%edi
74238405Sjkim	xorl	%edi,%esi
75238405Sjkim	movl	%eax,%edi
76238405Sjkim	shrl	$16,%edi
77238405Sjkim	andl	$255,%edx
78238405Sjkim	andl	$255,%edi
79238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
80238405Sjkim	shll	$16,%edi
81238405Sjkim	xorl	%edi,%esi
82238405Sjkim	movzbl	%bh,%edi
83238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
84238405Sjkim	shll	$24,%edi
85238405Sjkim	xorl	%edi,%esi
86238405Sjkim
87238405Sjkim	andl	$255,%edx
88238405Sjkim	movzbl	-128(%ebp,%edx,1),%edx
89238405Sjkim	movzbl	%ah,%eax
90238405Sjkim	movzbl	-128(%ebp,%eax,1),%eax
91238405Sjkim	shll	$8,%eax
92238405Sjkim	xorl	%eax,%edx
93238405Sjkim	movl	4(%esp),%eax
94238405Sjkim	andl	$255,%ebx
95238405Sjkim	movzbl	-128(%ebp,%ebx,1),%ebx
96238405Sjkim	shll	$16,%ebx
97238405Sjkim	xorl	%ebx,%edx
98238405Sjkim	movl	8(%esp),%ebx
99238405Sjkim	movzbl	-128(%ebp,%ecx,1),%ecx
100238405Sjkim	shll	$24,%ecx
101238405Sjkim	xorl	%ecx,%edx
102238405Sjkim	movl	%esi,%ecx
103238405Sjkim
104238405Sjkim	movl	%ecx,%esi
105238405Sjkim	andl	$2155905152,%esi
106238405Sjkim	movl	%esi,%ebp
107238405Sjkim	shrl	$7,%ebp
108238405Sjkim	leal	(%ecx,%ecx,1),%edi
109238405Sjkim	subl	%ebp,%esi
110238405Sjkim	andl	$4278124286,%edi
111238405Sjkim	andl	$454761243,%esi
112238405Sjkim	movl	%ecx,%ebp
113238405Sjkim	xorl	%edi,%esi
114238405Sjkim	xorl	%esi,%ecx
115238405Sjkim	roll	$24,%ecx
116238405Sjkim	xorl	%esi,%ecx
117238405Sjkim	rorl	$16,%ebp
118238405Sjkim	xorl	%ebp,%ecx
119238405Sjkim	rorl	$8,%ebp
120238405Sjkim	xorl	%ebp,%ecx
121238405Sjkim	movl	%edx,%esi
122238405Sjkim	andl	$2155905152,%esi
123238405Sjkim	movl	%esi,%ebp
124238405Sjkim	shrl	$7,%ebp
125238405Sjkim	leal	(%edx,%edx,1),%edi
126238405Sjkim	subl	%ebp,%esi
127238405Sjkim	andl	$4278124286,%edi
128238405Sjkim	andl	$454761243,%esi
129238405Sjkim	movl	%edx,%ebp
130238405Sjkim	xorl	%edi,%esi
131238405Sjkim	xorl	%esi,%edx
132238405Sjkim	roll	$24,%edx
133238405Sjkim	xorl	%esi,%edx
134238405Sjkim	rorl	$16,%ebp
135238405Sjkim	xorl	%ebp,%edx
136238405Sjkim	rorl	$8,%ebp
137238405Sjkim	xorl	%ebp,%edx
138238405Sjkim	movl	%eax,%esi
139238405Sjkim	andl	$2155905152,%esi
140238405Sjkim	movl	%esi,%ebp
141238405Sjkim	shrl	$7,%ebp
142238405Sjkim	leal	(%eax,%eax,1),%edi
143238405Sjkim	subl	%ebp,%esi
144238405Sjkim	andl	$4278124286,%edi
145238405Sjkim	andl	$454761243,%esi
146238405Sjkim	movl	%eax,%ebp
147238405Sjkim	xorl	%edi,%esi
148238405Sjkim	xorl	%esi,%eax
149238405Sjkim	roll	$24,%eax
150238405Sjkim	xorl	%esi,%eax
151238405Sjkim	rorl	$16,%ebp
152238405Sjkim	xorl	%ebp,%eax
153238405Sjkim	rorl	$8,%ebp
154238405Sjkim	xorl	%ebp,%eax
155238405Sjkim	movl	%ebx,%esi
156238405Sjkim	andl	$2155905152,%esi
157238405Sjkim	movl	%esi,%ebp
158238405Sjkim	shrl	$7,%ebp
159238405Sjkim	leal	(%ebx,%ebx,1),%edi
160238405Sjkim	subl	%ebp,%esi
161238405Sjkim	andl	$4278124286,%edi
162238405Sjkim	andl	$454761243,%esi
163238405Sjkim	movl	%ebx,%ebp
164238405Sjkim	xorl	%edi,%esi
165238405Sjkim	xorl	%esi,%ebx
166238405Sjkim	roll	$24,%ebx
167238405Sjkim	xorl	%esi,%ebx
168238405Sjkim	rorl	$16,%ebp
169238405Sjkim	xorl	%ebp,%ebx
170238405Sjkim	rorl	$8,%ebp
171238405Sjkim	xorl	%ebp,%ebx
172238405Sjkim	movl	20(%esp),%edi
173238405Sjkim	movl	28(%esp),%ebp
174238405Sjkim	addl	$16,%edi
175238405Sjkim	xorl	(%edi),%eax
176238405Sjkim	xorl	4(%edi),%ebx
177238405Sjkim	xorl	8(%edi),%ecx
178238405Sjkim	xorl	12(%edi),%edx
179238405Sjkim	cmpl	24(%esp),%edi
180238405Sjkim	movl	%edi,20(%esp)
181238405Sjkim	jb	.L000loop
182238405Sjkim	movl	%eax,%esi
183238405Sjkim	andl	$255,%esi
184238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
185238405Sjkim	movzbl	%bh,%edi
186238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
187238405Sjkim	shll	$8,%edi
188238405Sjkim	xorl	%edi,%esi
189238405Sjkim	movl	%ecx,%edi
190238405Sjkim	shrl	$16,%edi
191238405Sjkim	andl	$255,%edi
192238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
193238405Sjkim	shll	$16,%edi
194238405Sjkim	xorl	%edi,%esi
195238405Sjkim	movl	%edx,%edi
196238405Sjkim	shrl	$24,%edi
197238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
198238405Sjkim	shll	$24,%edi
199238405Sjkim	xorl	%edi,%esi
200238405Sjkim	movl	%esi,4(%esp)
201238405Sjkim
202238405Sjkim	movl	%ebx,%esi
203238405Sjkim	andl	$255,%esi
204238405Sjkim	shrl	$16,%ebx
205238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
206238405Sjkim	movzbl	%ch,%edi
207238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
208238405Sjkim	shll	$8,%edi
209238405Sjkim	xorl	%edi,%esi
210238405Sjkim	movl	%edx,%edi
211238405Sjkim	shrl	$16,%edi
212238405Sjkim	andl	$255,%edi
213238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
214238405Sjkim	shll	$16,%edi
215238405Sjkim	xorl	%edi,%esi
216238405Sjkim	movl	%eax,%edi
217238405Sjkim	shrl	$24,%edi
218238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
219238405Sjkim	shll	$24,%edi
220238405Sjkim	xorl	%edi,%esi
221238405Sjkim	movl	%esi,8(%esp)
222238405Sjkim
223238405Sjkim	movl	%ecx,%esi
224238405Sjkim	andl	$255,%esi
225238405Sjkim	shrl	$24,%ecx
226238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
227238405Sjkim	movzbl	%dh,%edi
228238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
229238405Sjkim	shll	$8,%edi
230238405Sjkim	xorl	%edi,%esi
231238405Sjkim	movl	%eax,%edi
232238405Sjkim	shrl	$16,%edi
233238405Sjkim	andl	$255,%edx
234238405Sjkim	andl	$255,%edi
235238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
236238405Sjkim	shll	$16,%edi
237238405Sjkim	xorl	%edi,%esi
238238405Sjkim	movzbl	%bh,%edi
239238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
240238405Sjkim	shll	$24,%edi
241238405Sjkim	xorl	%edi,%esi
242238405Sjkim
243238405Sjkim	movl	20(%esp),%edi
244238405Sjkim	andl	$255,%edx
245238405Sjkim	movzbl	-128(%ebp,%edx,1),%edx
246238405Sjkim	movzbl	%ah,%eax
247238405Sjkim	movzbl	-128(%ebp,%eax,1),%eax
248238405Sjkim	shll	$8,%eax
249238405Sjkim	xorl	%eax,%edx
250238405Sjkim	movl	4(%esp),%eax
251238405Sjkim	andl	$255,%ebx
252238405Sjkim	movzbl	-128(%ebp,%ebx,1),%ebx
253238405Sjkim	shll	$16,%ebx
254238405Sjkim	xorl	%ebx,%edx
255238405Sjkim	movl	8(%esp),%ebx
256238405Sjkim	movzbl	-128(%ebp,%ecx,1),%ecx
257238405Sjkim	shll	$24,%ecx
258238405Sjkim	xorl	%ecx,%edx
259238405Sjkim	movl	%esi,%ecx
260238405Sjkim
261238405Sjkim	xorl	16(%edi),%eax
262238405Sjkim	xorl	20(%edi),%ebx
263238405Sjkim	xorl	24(%edi),%ecx
264238405Sjkim	xorl	28(%edi),%edx
265238405Sjkim	ret
266238405Sjkim.size	_x86_AES_encrypt_compact,.-_x86_AES_encrypt_compact
267238405Sjkim.type	_sse_AES_encrypt_compact,@function
268238405Sjkim.align	16
269238405Sjkim_sse_AES_encrypt_compact:
270238405Sjkim	pxor	(%edi),%mm0
271238405Sjkim	pxor	8(%edi),%mm4
272238405Sjkim	movl	240(%edi),%esi
273238405Sjkim	leal	-2(%esi,%esi,1),%esi
274238405Sjkim	leal	(%edi,%esi,8),%esi
275238405Sjkim	movl	%esi,24(%esp)
276238405Sjkim	movl	$454761243,%eax
277238405Sjkim	movl	%eax,8(%esp)
278238405Sjkim	movl	%eax,12(%esp)
279238405Sjkim	movl	-128(%ebp),%eax
280238405Sjkim	movl	-96(%ebp),%ebx
281238405Sjkim	movl	-64(%ebp),%ecx
282238405Sjkim	movl	-32(%ebp),%edx
283238405Sjkim	movl	(%ebp),%eax
284238405Sjkim	movl	32(%ebp),%ebx
285238405Sjkim	movl	64(%ebp),%ecx
286238405Sjkim	movl	96(%ebp),%edx
287238405Sjkim.align	16
288238405Sjkim.L001loop:
289238405Sjkim	pshufw	$8,%mm0,%mm1
290238405Sjkim	pshufw	$13,%mm4,%mm5
291238405Sjkim	movd	%mm1,%eax
292238405Sjkim	movd	%mm5,%ebx
293238405Sjkim	movzbl	%al,%esi
294238405Sjkim	movzbl	-128(%ebp,%esi,1),%ecx
295238405Sjkim	pshufw	$13,%mm0,%mm2
296238405Sjkim	movzbl	%ah,%edx
297238405Sjkim	movzbl	-128(%ebp,%edx,1),%edx
298238405Sjkim	shll	$8,%edx
299238405Sjkim	shrl	$16,%eax
300238405Sjkim	movzbl	%bl,%esi
301238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
302238405Sjkim	shll	$16,%esi
303238405Sjkim	orl	%esi,%ecx
304238405Sjkim	pshufw	$8,%mm4,%mm6
305238405Sjkim	movzbl	%bh,%esi
306238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
307238405Sjkim	shll	$24,%esi
308238405Sjkim	orl	%esi,%edx
309238405Sjkim	shrl	$16,%ebx
310238405Sjkim	movzbl	%ah,%esi
311238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
312238405Sjkim	shll	$8,%esi
313238405Sjkim	orl	%esi,%ecx
314238405Sjkim	movzbl	%bh,%esi
315238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
316238405Sjkim	shll	$24,%esi
317238405Sjkim	orl	%esi,%ecx
318238405Sjkim	movd	%ecx,%mm0
319238405Sjkim	movzbl	%al,%esi
320238405Sjkim	movzbl	-128(%ebp,%esi,1),%ecx
321238405Sjkim	movd	%mm2,%eax
322238405Sjkim	movzbl	%bl,%esi
323238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
324238405Sjkim	shll	$16,%esi
325238405Sjkim	orl	%esi,%ecx
326238405Sjkim	movd	%mm6,%ebx
327238405Sjkim	movzbl	%ah,%esi
328238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
329238405Sjkim	shll	$24,%esi
330238405Sjkim	orl	%esi,%ecx
331238405Sjkim	movzbl	%bh,%esi
332238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
333238405Sjkim	shll	$8,%esi
334238405Sjkim	orl	%esi,%ecx
335238405Sjkim	movd	%ecx,%mm1
336238405Sjkim	movzbl	%bl,%esi
337238405Sjkim	movzbl	-128(%ebp,%esi,1),%ecx
338238405Sjkim	shrl	$16,%ebx
339238405Sjkim	movzbl	%al,%esi
340238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
341238405Sjkim	shll	$16,%esi
342238405Sjkim	orl	%esi,%ecx
343238405Sjkim	shrl	$16,%eax
344238405Sjkim	punpckldq	%mm1,%mm0
345238405Sjkim	movzbl	%ah,%esi
346238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
347238405Sjkim	shll	$24,%esi
348238405Sjkim	orl	%esi,%ecx
349238405Sjkim	andl	$255,%eax
350238405Sjkim	movzbl	-128(%ebp,%eax,1),%eax
351238405Sjkim	shll	$16,%eax
352238405Sjkim	orl	%eax,%edx
353238405Sjkim	movzbl	%bh,%esi
354238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
355238405Sjkim	shll	$8,%esi
356238405Sjkim	orl	%esi,%ecx
357238405Sjkim	movd	%ecx,%mm4
358238405Sjkim	andl	$255,%ebx
359238405Sjkim	movzbl	-128(%ebp,%ebx,1),%ebx
360238405Sjkim	orl	%ebx,%edx
361238405Sjkim	movd	%edx,%mm5
362238405Sjkim	punpckldq	%mm5,%mm4
363238405Sjkim	addl	$16,%edi
364238405Sjkim	cmpl	24(%esp),%edi
365238405Sjkim	ja	.L002out
366238405Sjkim	movq	8(%esp),%mm2
367238405Sjkim	pxor	%mm3,%mm3
368238405Sjkim	pxor	%mm7,%mm7
369238405Sjkim	movq	%mm0,%mm1
370238405Sjkim	movq	%mm4,%mm5
371238405Sjkim	pcmpgtb	%mm0,%mm3
372238405Sjkim	pcmpgtb	%mm4,%mm7
373238405Sjkim	pand	%mm2,%mm3
374238405Sjkim	pand	%mm2,%mm7
375238405Sjkim	pshufw	$177,%mm0,%mm2
376238405Sjkim	pshufw	$177,%mm4,%mm6
377238405Sjkim	paddb	%mm0,%mm0
378238405Sjkim	paddb	%mm4,%mm4
379238405Sjkim	pxor	%mm3,%mm0
380238405Sjkim	pxor	%mm7,%mm4
381238405Sjkim	pshufw	$177,%mm2,%mm3
382238405Sjkim	pshufw	$177,%mm6,%mm7
383238405Sjkim	pxor	%mm0,%mm1
384238405Sjkim	pxor	%mm4,%mm5
385238405Sjkim	pxor	%mm2,%mm0
386238405Sjkim	pxor	%mm6,%mm4
387238405Sjkim	movq	%mm3,%mm2
388238405Sjkim	movq	%mm7,%mm6
389238405Sjkim	pslld	$8,%mm3
390238405Sjkim	pslld	$8,%mm7
391238405Sjkim	psrld	$24,%mm2
392238405Sjkim	psrld	$24,%mm6
393238405Sjkim	pxor	%mm3,%mm0
394238405Sjkim	pxor	%mm7,%mm4
395238405Sjkim	pxor	%mm2,%mm0
396238405Sjkim	pxor	%mm6,%mm4
397238405Sjkim	movq	%mm1,%mm3
398238405Sjkim	movq	%mm5,%mm7
399238405Sjkim	movq	(%edi),%mm2
400238405Sjkim	movq	8(%edi),%mm6
401238405Sjkim	psrld	$8,%mm1
402238405Sjkim	psrld	$8,%mm5
403238405Sjkim	movl	-128(%ebp),%eax
404238405Sjkim	pslld	$24,%mm3
405238405Sjkim	pslld	$24,%mm7
406238405Sjkim	movl	-64(%ebp),%ebx
407238405Sjkim	pxor	%mm1,%mm0
408238405Sjkim	pxor	%mm5,%mm4
409238405Sjkim	movl	(%ebp),%ecx
410238405Sjkim	pxor	%mm3,%mm0
411238405Sjkim	pxor	%mm7,%mm4
412238405Sjkim	movl	64(%ebp),%edx
413238405Sjkim	pxor	%mm2,%mm0
414238405Sjkim	pxor	%mm6,%mm4
415238405Sjkim	jmp	.L001loop
416238405Sjkim.align	16
417238405Sjkim.L002out:
418238405Sjkim	pxor	(%edi),%mm0
419238405Sjkim	pxor	8(%edi),%mm4
420238405Sjkim	ret
421238405Sjkim.size	_sse_AES_encrypt_compact,.-_sse_AES_encrypt_compact
422238405Sjkim.type	_x86_AES_encrypt,@function
423238405Sjkim.align	16
424238405Sjkim_x86_AES_encrypt:
425238405Sjkim	movl	%edi,20(%esp)
426238405Sjkim	xorl	(%edi),%eax
427238405Sjkim	xorl	4(%edi),%ebx
428238405Sjkim	xorl	8(%edi),%ecx
429238405Sjkim	xorl	12(%edi),%edx
430238405Sjkim	movl	240(%edi),%esi
431238405Sjkim	leal	-2(%esi,%esi,1),%esi
432238405Sjkim	leal	(%edi,%esi,8),%esi
433238405Sjkim	movl	%esi,24(%esp)
434238405Sjkim.align	16
435238405Sjkim.L003loop:
436238405Sjkim	movl	%eax,%esi
437238405Sjkim	andl	$255,%esi
438238405Sjkim	movl	(%ebp,%esi,8),%esi
439238405Sjkim	movzbl	%bh,%edi
440238405Sjkim	xorl	3(%ebp,%edi,8),%esi
441238405Sjkim	movl	%ecx,%edi
442238405Sjkim	shrl	$16,%edi
443238405Sjkim	andl	$255,%edi
444238405Sjkim	xorl	2(%ebp,%edi,8),%esi
445238405Sjkim	movl	%edx,%edi
446238405Sjkim	shrl	$24,%edi
447238405Sjkim	xorl	1(%ebp,%edi,8),%esi
448238405Sjkim	movl	%esi,4(%esp)
449238405Sjkim
450238405Sjkim	movl	%ebx,%esi
451238405Sjkim	andl	$255,%esi
452238405Sjkim	shrl	$16,%ebx
453238405Sjkim	movl	(%ebp,%esi,8),%esi
454238405Sjkim	movzbl	%ch,%edi
455238405Sjkim	xorl	3(%ebp,%edi,8),%esi
456238405Sjkim	movl	%edx,%edi
457238405Sjkim	shrl	$16,%edi
458238405Sjkim	andl	$255,%edi
459238405Sjkim	xorl	2(%ebp,%edi,8),%esi
460238405Sjkim	movl	%eax,%edi
461238405Sjkim	shrl	$24,%edi
462238405Sjkim	xorl	1(%ebp,%edi,8),%esi
463238405Sjkim	movl	%esi,8(%esp)
464238405Sjkim
465238405Sjkim	movl	%ecx,%esi
466238405Sjkim	andl	$255,%esi
467238405Sjkim	shrl	$24,%ecx
468238405Sjkim	movl	(%ebp,%esi,8),%esi
469238405Sjkim	movzbl	%dh,%edi
470238405Sjkim	xorl	3(%ebp,%edi,8),%esi
471238405Sjkim	movl	%eax,%edi
472238405Sjkim	shrl	$16,%edi
473238405Sjkim	andl	$255,%edx
474238405Sjkim	andl	$255,%edi
475238405Sjkim	xorl	2(%ebp,%edi,8),%esi
476238405Sjkim	movzbl	%bh,%edi
477238405Sjkim	xorl	1(%ebp,%edi,8),%esi
478238405Sjkim
479238405Sjkim	movl	20(%esp),%edi
480238405Sjkim	movl	(%ebp,%edx,8),%edx
481238405Sjkim	movzbl	%ah,%eax
482238405Sjkim	xorl	3(%ebp,%eax,8),%edx
483238405Sjkim	movl	4(%esp),%eax
484238405Sjkim	andl	$255,%ebx
485238405Sjkim	xorl	2(%ebp,%ebx,8),%edx
486238405Sjkim	movl	8(%esp),%ebx
487238405Sjkim	xorl	1(%ebp,%ecx,8),%edx
488238405Sjkim	movl	%esi,%ecx
489238405Sjkim
490238405Sjkim	addl	$16,%edi
491238405Sjkim	xorl	(%edi),%eax
492238405Sjkim	xorl	4(%edi),%ebx
493238405Sjkim	xorl	8(%edi),%ecx
494238405Sjkim	xorl	12(%edi),%edx
495238405Sjkim	cmpl	24(%esp),%edi
496238405Sjkim	movl	%edi,20(%esp)
497238405Sjkim	jb	.L003loop
498238405Sjkim	movl	%eax,%esi
499238405Sjkim	andl	$255,%esi
500238405Sjkim	movl	2(%ebp,%esi,8),%esi
501238405Sjkim	andl	$255,%esi
502238405Sjkim	movzbl	%bh,%edi
503238405Sjkim	movl	(%ebp,%edi,8),%edi
504238405Sjkim	andl	$65280,%edi
505238405Sjkim	xorl	%edi,%esi
506238405Sjkim	movl	%ecx,%edi
507238405Sjkim	shrl	$16,%edi
508238405Sjkim	andl	$255,%edi
509238405Sjkim	movl	(%ebp,%edi,8),%edi
510238405Sjkim	andl	$16711680,%edi
511238405Sjkim	xorl	%edi,%esi
512238405Sjkim	movl	%edx,%edi
513238405Sjkim	shrl	$24,%edi
514238405Sjkim	movl	2(%ebp,%edi,8),%edi
515238405Sjkim	andl	$4278190080,%edi
516238405Sjkim	xorl	%edi,%esi
517238405Sjkim	movl	%esi,4(%esp)
518238405Sjkim	movl	%ebx,%esi
519238405Sjkim	andl	$255,%esi
520238405Sjkim	shrl	$16,%ebx
521238405Sjkim	movl	2(%ebp,%esi,8),%esi
522238405Sjkim	andl	$255,%esi
523238405Sjkim	movzbl	%ch,%edi
524238405Sjkim	movl	(%ebp,%edi,8),%edi
525238405Sjkim	andl	$65280,%edi
526238405Sjkim	xorl	%edi,%esi
527238405Sjkim	movl	%edx,%edi
528238405Sjkim	shrl	$16,%edi
529238405Sjkim	andl	$255,%edi
530238405Sjkim	movl	(%ebp,%edi,8),%edi
531238405Sjkim	andl	$16711680,%edi
532238405Sjkim	xorl	%edi,%esi
533238405Sjkim	movl	%eax,%edi
534238405Sjkim	shrl	$24,%edi
535238405Sjkim	movl	2(%ebp,%edi,8),%edi
536238405Sjkim	andl	$4278190080,%edi
537238405Sjkim	xorl	%edi,%esi
538238405Sjkim	movl	%esi,8(%esp)
539238405Sjkim	movl	%ecx,%esi
540238405Sjkim	andl	$255,%esi
541238405Sjkim	shrl	$24,%ecx
542238405Sjkim	movl	2(%ebp,%esi,8),%esi
543238405Sjkim	andl	$255,%esi
544238405Sjkim	movzbl	%dh,%edi
545238405Sjkim	movl	(%ebp,%edi,8),%edi
546238405Sjkim	andl	$65280,%edi
547238405Sjkim	xorl	%edi,%esi
548238405Sjkim	movl	%eax,%edi
549238405Sjkim	shrl	$16,%edi
550238405Sjkim	andl	$255,%edx
551238405Sjkim	andl	$255,%edi
552238405Sjkim	movl	(%ebp,%edi,8),%edi
553238405Sjkim	andl	$16711680,%edi
554238405Sjkim	xorl	%edi,%esi
555238405Sjkim	movzbl	%bh,%edi
556238405Sjkim	movl	2(%ebp,%edi,8),%edi
557238405Sjkim	andl	$4278190080,%edi
558238405Sjkim	xorl	%edi,%esi
559238405Sjkim	movl	20(%esp),%edi
560238405Sjkim	andl	$255,%edx
561238405Sjkim	movl	2(%ebp,%edx,8),%edx
562238405Sjkim	andl	$255,%edx
563238405Sjkim	movzbl	%ah,%eax
564238405Sjkim	movl	(%ebp,%eax,8),%eax
565238405Sjkim	andl	$65280,%eax
566238405Sjkim	xorl	%eax,%edx
567238405Sjkim	movl	4(%esp),%eax
568238405Sjkim	andl	$255,%ebx
569238405Sjkim	movl	(%ebp,%ebx,8),%ebx
570238405Sjkim	andl	$16711680,%ebx
571238405Sjkim	xorl	%ebx,%edx
572238405Sjkim	movl	8(%esp),%ebx
573238405Sjkim	movl	2(%ebp,%ecx,8),%ecx
574238405Sjkim	andl	$4278190080,%ecx
575238405Sjkim	xorl	%ecx,%edx
576238405Sjkim	movl	%esi,%ecx
577238405Sjkim	addl	$16,%edi
578238405Sjkim	xorl	(%edi),%eax
579238405Sjkim	xorl	4(%edi),%ebx
580238405Sjkim	xorl	8(%edi),%ecx
581238405Sjkim	xorl	12(%edi),%edx
582238405Sjkim	ret
583238405Sjkim.align	64
584238405Sjkim.LAES_Te:
585238405Sjkim.long	2774754246,2774754246
586238405Sjkim.long	2222750968,2222750968
587238405Sjkim.long	2574743534,2574743534
588238405Sjkim.long	2373680118,2373680118
589238405Sjkim.long	234025727,234025727
590238405Sjkim.long	3177933782,3177933782
591238405Sjkim.long	2976870366,2976870366
592238405Sjkim.long	1422247313,1422247313
593238405Sjkim.long	1345335392,1345335392
594238405Sjkim.long	50397442,50397442
595238405Sjkim.long	2842126286,2842126286
596238405Sjkim.long	2099981142,2099981142
597238405Sjkim.long	436141799,436141799
598238405Sjkim.long	1658312629,1658312629
599238405Sjkim.long	3870010189,3870010189
600238405Sjkim.long	2591454956,2591454956
601238405Sjkim.long	1170918031,1170918031
602238405Sjkim.long	2642575903,2642575903
603238405Sjkim.long	1086966153,1086966153
604238405Sjkim.long	2273148410,2273148410
605238405Sjkim.long	368769775,368769775
606238405Sjkim.long	3948501426,3948501426
607238405Sjkim.long	3376891790,3376891790
608238405Sjkim.long	200339707,200339707
609238405Sjkim.long	3970805057,3970805057
610238405Sjkim.long	1742001331,1742001331
611238405Sjkim.long	4255294047,4255294047
612238405Sjkim.long	3937382213,3937382213
613238405Sjkim.long	3214711843,3214711843
614238405Sjkim.long	4154762323,4154762323
615238405Sjkim.long	2524082916,2524082916
616238405Sjkim.long	1539358875,1539358875
617238405Sjkim.long	3266819957,3266819957
618238405Sjkim.long	486407649,486407649
619238405Sjkim.long	2928907069,2928907069
620238405Sjkim.long	1780885068,1780885068
621238405Sjkim.long	1513502316,1513502316
622238405Sjkim.long	1094664062,1094664062
623238405Sjkim.long	49805301,49805301
624238405Sjkim.long	1338821763,1338821763
625238405Sjkim.long	1546925160,1546925160
626238405Sjkim.long	4104496465,4104496465
627238405Sjkim.long	887481809,887481809
628238405Sjkim.long	150073849,150073849
629238405Sjkim.long	2473685474,2473685474
630238405Sjkim.long	1943591083,1943591083
631238405Sjkim.long	1395732834,1395732834
632238405Sjkim.long	1058346282,1058346282
633238405Sjkim.long	201589768,201589768
634238405Sjkim.long	1388824469,1388824469
635238405Sjkim.long	1696801606,1696801606
636238405Sjkim.long	1589887901,1589887901
637238405Sjkim.long	672667696,672667696
638238405Sjkim.long	2711000631,2711000631
639238405Sjkim.long	251987210,251987210
640238405Sjkim.long	3046808111,3046808111
641238405Sjkim.long	151455502,151455502
642238405Sjkim.long	907153956,907153956
643238405Sjkim.long	2608889883,2608889883
644238405Sjkim.long	1038279391,1038279391
645238405Sjkim.long	652995533,652995533
646238405Sjkim.long	1764173646,1764173646
647238405Sjkim.long	3451040383,3451040383
648238405Sjkim.long	2675275242,2675275242
649238405Sjkim.long	453576978,453576978
650238405Sjkim.long	2659418909,2659418909
651238405Sjkim.long	1949051992,1949051992
652238405Sjkim.long	773462580,773462580
653238405Sjkim.long	756751158,756751158
654238405Sjkim.long	2993581788,2993581788
655238405Sjkim.long	3998898868,3998898868
656238405Sjkim.long	4221608027,4221608027
657238405Sjkim.long	4132590244,4132590244
658238405Sjkim.long	1295727478,1295727478
659238405Sjkim.long	1641469623,1641469623
660238405Sjkim.long	3467883389,3467883389
661238405Sjkim.long	2066295122,2066295122
662238405Sjkim.long	1055122397,1055122397
663238405Sjkim.long	1898917726,1898917726
664238405Sjkim.long	2542044179,2542044179
665238405Sjkim.long	4115878822,4115878822
666238405Sjkim.long	1758581177,1758581177
667238405Sjkim.long	0,0
668238405Sjkim.long	753790401,753790401
669238405Sjkim.long	1612718144,1612718144
670238405Sjkim.long	536673507,536673507
671238405Sjkim.long	3367088505,3367088505
672238405Sjkim.long	3982187446,3982187446
673238405Sjkim.long	3194645204,3194645204
674238405Sjkim.long	1187761037,1187761037
675238405Sjkim.long	3653156455,3653156455
676238405Sjkim.long	1262041458,1262041458
677238405Sjkim.long	3729410708,3729410708
678238405Sjkim.long	3561770136,3561770136
679238405Sjkim.long	3898103984,3898103984
680238405Sjkim.long	1255133061,1255133061
681238405Sjkim.long	1808847035,1808847035
682238405Sjkim.long	720367557,720367557
683238405Sjkim.long	3853167183,3853167183
684238405Sjkim.long	385612781,385612781
685238405Sjkim.long	3309519750,3309519750
686238405Sjkim.long	3612167578,3612167578
687238405Sjkim.long	1429418854,1429418854
688238405Sjkim.long	2491778321,2491778321
689238405Sjkim.long	3477423498,3477423498
690238405Sjkim.long	284817897,284817897
691238405Sjkim.long	100794884,100794884
692238405Sjkim.long	2172616702,2172616702
693238405Sjkim.long	4031795360,4031795360
694238405Sjkim.long	1144798328,1144798328
695238405Sjkim.long	3131023141,3131023141
696238405Sjkim.long	3819481163,3819481163
697238405Sjkim.long	4082192802,4082192802
698238405Sjkim.long	4272137053,4272137053
699238405Sjkim.long	3225436288,3225436288
700238405Sjkim.long	2324664069,2324664069
701238405Sjkim.long	2912064063,2912064063
702238405Sjkim.long	3164445985,3164445985
703238405Sjkim.long	1211644016,1211644016
704238405Sjkim.long	83228145,83228145
705238405Sjkim.long	3753688163,3753688163
706238405Sjkim.long	3249976951,3249976951
707238405Sjkim.long	1977277103,1977277103
708238405Sjkim.long	1663115586,1663115586
709238405Sjkim.long	806359072,806359072
710238405Sjkim.long	452984805,452984805
711238405Sjkim.long	250868733,250868733
712238405Sjkim.long	1842533055,1842533055
713238405Sjkim.long	1288555905,1288555905
714238405Sjkim.long	336333848,336333848
715238405Sjkim.long	890442534,890442534
716238405Sjkim.long	804056259,804056259
717238405Sjkim.long	3781124030,3781124030
718238405Sjkim.long	2727843637,2727843637
719238405Sjkim.long	3427026056,3427026056
720238405Sjkim.long	957814574,957814574
721238405Sjkim.long	1472513171,1472513171
722238405Sjkim.long	4071073621,4071073621
723238405Sjkim.long	2189328124,2189328124
724238405Sjkim.long	1195195770,1195195770
725238405Sjkim.long	2892260552,2892260552
726238405Sjkim.long	3881655738,3881655738
727238405Sjkim.long	723065138,723065138
728238405Sjkim.long	2507371494,2507371494
729238405Sjkim.long	2690670784,2690670784
730238405Sjkim.long	2558624025,2558624025
731238405Sjkim.long	3511635870,3511635870
732238405Sjkim.long	2145180835,2145180835
733238405Sjkim.long	1713513028,1713513028
734238405Sjkim.long	2116692564,2116692564
735238405Sjkim.long	2878378043,2878378043
736238405Sjkim.long	2206763019,2206763019
737238405Sjkim.long	3393603212,3393603212
738238405Sjkim.long	703524551,703524551
739238405Sjkim.long	3552098411,3552098411
740238405Sjkim.long	1007948840,1007948840
741238405Sjkim.long	2044649127,2044649127
742238405Sjkim.long	3797835452,3797835452
743238405Sjkim.long	487262998,487262998
744238405Sjkim.long	1994120109,1994120109
745238405Sjkim.long	1004593371,1004593371
746238405Sjkim.long	1446130276,1446130276
747238405Sjkim.long	1312438900,1312438900
748238405Sjkim.long	503974420,503974420
749238405Sjkim.long	3679013266,3679013266
750238405Sjkim.long	168166924,168166924
751238405Sjkim.long	1814307912,1814307912
752238405Sjkim.long	3831258296,3831258296
753238405Sjkim.long	1573044895,1573044895
754238405Sjkim.long	1859376061,1859376061
755238405Sjkim.long	4021070915,4021070915
756238405Sjkim.long	2791465668,2791465668
757238405Sjkim.long	2828112185,2828112185
758238405Sjkim.long	2761266481,2761266481
759238405Sjkim.long	937747667,937747667
760238405Sjkim.long	2339994098,2339994098
761238405Sjkim.long	854058965,854058965
762238405Sjkim.long	1137232011,1137232011
763238405Sjkim.long	1496790894,1496790894
764238405Sjkim.long	3077402074,3077402074
765238405Sjkim.long	2358086913,2358086913
766238405Sjkim.long	1691735473,1691735473
767238405Sjkim.long	3528347292,3528347292
768238405Sjkim.long	3769215305,3769215305
769238405Sjkim.long	3027004632,3027004632
770238405Sjkim.long	4199962284,4199962284
771238405Sjkim.long	133494003,133494003
772238405Sjkim.long	636152527,636152527
773238405Sjkim.long	2942657994,2942657994
774238405Sjkim.long	2390391540,2390391540
775238405Sjkim.long	3920539207,3920539207
776238405Sjkim.long	403179536,403179536
777238405Sjkim.long	3585784431,3585784431
778238405Sjkim.long	2289596656,2289596656
779238405Sjkim.long	1864705354,1864705354
780238405Sjkim.long	1915629148,1915629148
781238405Sjkim.long	605822008,605822008
782238405Sjkim.long	4054230615,4054230615
783238405Sjkim.long	3350508659,3350508659
784238405Sjkim.long	1371981463,1371981463
785238405Sjkim.long	602466507,602466507
786238405Sjkim.long	2094914977,2094914977
787238405Sjkim.long	2624877800,2624877800
788238405Sjkim.long	555687742,555687742
789238405Sjkim.long	3712699286,3712699286
790238405Sjkim.long	3703422305,3703422305
791238405Sjkim.long	2257292045,2257292045
792238405Sjkim.long	2240449039,2240449039
793238405Sjkim.long	2423288032,2423288032
794238405Sjkim.long	1111375484,1111375484
795238405Sjkim.long	3300242801,3300242801
796238405Sjkim.long	2858837708,2858837708
797238405Sjkim.long	3628615824,3628615824
798238405Sjkim.long	84083462,84083462
799238405Sjkim.long	32962295,32962295
800238405Sjkim.long	302911004,302911004
801238405Sjkim.long	2741068226,2741068226
802238405Sjkim.long	1597322602,1597322602
803238405Sjkim.long	4183250862,4183250862
804238405Sjkim.long	3501832553,3501832553
805238405Sjkim.long	2441512471,2441512471
806238405Sjkim.long	1489093017,1489093017
807238405Sjkim.long	656219450,656219450
808238405Sjkim.long	3114180135,3114180135
809238405Sjkim.long	954327513,954327513
810238405Sjkim.long	335083755,335083755
811238405Sjkim.long	3013122091,3013122091
812238405Sjkim.long	856756514,856756514
813238405Sjkim.long	3144247762,3144247762
814238405Sjkim.long	1893325225,1893325225
815238405Sjkim.long	2307821063,2307821063
816238405Sjkim.long	2811532339,2811532339
817238405Sjkim.long	3063651117,3063651117
818238405Sjkim.long	572399164,572399164
819238405Sjkim.long	2458355477,2458355477
820238405Sjkim.long	552200649,552200649
821238405Sjkim.long	1238290055,1238290055
822238405Sjkim.long	4283782570,4283782570
823238405Sjkim.long	2015897680,2015897680
824238405Sjkim.long	2061492133,2061492133
825238405Sjkim.long	2408352771,2408352771
826238405Sjkim.long	4171342169,4171342169
827238405Sjkim.long	2156497161,2156497161
828238405Sjkim.long	386731290,386731290
829238405Sjkim.long	3669999461,3669999461
830238405Sjkim.long	837215959,837215959
831238405Sjkim.long	3326231172,3326231172
832238405Sjkim.long	3093850320,3093850320
833238405Sjkim.long	3275833730,3275833730
834238405Sjkim.long	2962856233,2962856233
835238405Sjkim.long	1999449434,1999449434
836238405Sjkim.long	286199582,286199582
837238405Sjkim.long	3417354363,3417354363
838238405Sjkim.long	4233385128,4233385128
839238405Sjkim.long	3602627437,3602627437
840238405Sjkim.long	974525996,974525996
841238405Sjkim.byte	99,124,119,123,242,107,111,197
842238405Sjkim.byte	48,1,103,43,254,215,171,118
843238405Sjkim.byte	202,130,201,125,250,89,71,240
844238405Sjkim.byte	173,212,162,175,156,164,114,192
845238405Sjkim.byte	183,253,147,38,54,63,247,204
846238405Sjkim.byte	52,165,229,241,113,216,49,21
847238405Sjkim.byte	4,199,35,195,24,150,5,154
848238405Sjkim.byte	7,18,128,226,235,39,178,117
849238405Sjkim.byte	9,131,44,26,27,110,90,160
850238405Sjkim.byte	82,59,214,179,41,227,47,132
851238405Sjkim.byte	83,209,0,237,32,252,177,91
852238405Sjkim.byte	106,203,190,57,74,76,88,207
853238405Sjkim.byte	208,239,170,251,67,77,51,133
854238405Sjkim.byte	69,249,2,127,80,60,159,168
855238405Sjkim.byte	81,163,64,143,146,157,56,245
856238405Sjkim.byte	188,182,218,33,16,255,243,210
857238405Sjkim.byte	205,12,19,236,95,151,68,23
858238405Sjkim.byte	196,167,126,61,100,93,25,115
859238405Sjkim.byte	96,129,79,220,34,42,144,136
860238405Sjkim.byte	70,238,184,20,222,94,11,219
861238405Sjkim.byte	224,50,58,10,73,6,36,92
862238405Sjkim.byte	194,211,172,98,145,149,228,121
863238405Sjkim.byte	231,200,55,109,141,213,78,169
864238405Sjkim.byte	108,86,244,234,101,122,174,8
865238405Sjkim.byte	186,120,37,46,28,166,180,198
866238405Sjkim.byte	232,221,116,31,75,189,139,138
867238405Sjkim.byte	112,62,181,102,72,3,246,14
868238405Sjkim.byte	97,53,87,185,134,193,29,158
869238405Sjkim.byte	225,248,152,17,105,217,142,148
870238405Sjkim.byte	155,30,135,233,206,85,40,223
871238405Sjkim.byte	140,161,137,13,191,230,66,104
872238405Sjkim.byte	65,153,45,15,176,84,187,22
873238405Sjkim.byte	99,124,119,123,242,107,111,197
874238405Sjkim.byte	48,1,103,43,254,215,171,118
875238405Sjkim.byte	202,130,201,125,250,89,71,240
876238405Sjkim.byte	173,212,162,175,156,164,114,192
877238405Sjkim.byte	183,253,147,38,54,63,247,204
878238405Sjkim.byte	52,165,229,241,113,216,49,21
879238405Sjkim.byte	4,199,35,195,24,150,5,154
880238405Sjkim.byte	7,18,128,226,235,39,178,117
881238405Sjkim.byte	9,131,44,26,27,110,90,160
882238405Sjkim.byte	82,59,214,179,41,227,47,132
883238405Sjkim.byte	83,209,0,237,32,252,177,91
884238405Sjkim.byte	106,203,190,57,74,76,88,207
885238405Sjkim.byte	208,239,170,251,67,77,51,133
886238405Sjkim.byte	69,249,2,127,80,60,159,168
887238405Sjkim.byte	81,163,64,143,146,157,56,245
888238405Sjkim.byte	188,182,218,33,16,255,243,210
889238405Sjkim.byte	205,12,19,236,95,151,68,23
890238405Sjkim.byte	196,167,126,61,100,93,25,115
891238405Sjkim.byte	96,129,79,220,34,42,144,136
892238405Sjkim.byte	70,238,184,20,222,94,11,219
893238405Sjkim.byte	224,50,58,10,73,6,36,92
894238405Sjkim.byte	194,211,172,98,145,149,228,121
895238405Sjkim.byte	231,200,55,109,141,213,78,169
896238405Sjkim.byte	108,86,244,234,101,122,174,8
897238405Sjkim.byte	186,120,37,46,28,166,180,198
898238405Sjkim.byte	232,221,116,31,75,189,139,138
899238405Sjkim.byte	112,62,181,102,72,3,246,14
900238405Sjkim.byte	97,53,87,185,134,193,29,158
901238405Sjkim.byte	225,248,152,17,105,217,142,148
902238405Sjkim.byte	155,30,135,233,206,85,40,223
903238405Sjkim.byte	140,161,137,13,191,230,66,104
904238405Sjkim.byte	65,153,45,15,176,84,187,22
905238405Sjkim.byte	99,124,119,123,242,107,111,197
906238405Sjkim.byte	48,1,103,43,254,215,171,118
907238405Sjkim.byte	202,130,201,125,250,89,71,240
908238405Sjkim.byte	173,212,162,175,156,164,114,192
909238405Sjkim.byte	183,253,147,38,54,63,247,204
910238405Sjkim.byte	52,165,229,241,113,216,49,21
911238405Sjkim.byte	4,199,35,195,24,150,5,154
912238405Sjkim.byte	7,18,128,226,235,39,178,117
913238405Sjkim.byte	9,131,44,26,27,110,90,160
914238405Sjkim.byte	82,59,214,179,41,227,47,132
915238405Sjkim.byte	83,209,0,237,32,252,177,91
916238405Sjkim.byte	106,203,190,57,74,76,88,207
917238405Sjkim.byte	208,239,170,251,67,77,51,133
918238405Sjkim.byte	69,249,2,127,80,60,159,168
919238405Sjkim.byte	81,163,64,143,146,157,56,245
920238405Sjkim.byte	188,182,218,33,16,255,243,210
921238405Sjkim.byte	205,12,19,236,95,151,68,23
922238405Sjkim.byte	196,167,126,61,100,93,25,115
923238405Sjkim.byte	96,129,79,220,34,42,144,136
924238405Sjkim.byte	70,238,184,20,222,94,11,219
925238405Sjkim.byte	224,50,58,10,73,6,36,92
926238405Sjkim.byte	194,211,172,98,145,149,228,121
927238405Sjkim.byte	231,200,55,109,141,213,78,169
928238405Sjkim.byte	108,86,244,234,101,122,174,8
929238405Sjkim.byte	186,120,37,46,28,166,180,198
930238405Sjkim.byte	232,221,116,31,75,189,139,138
931238405Sjkim.byte	112,62,181,102,72,3,246,14
932238405Sjkim.byte	97,53,87,185,134,193,29,158
933238405Sjkim.byte	225,248,152,17,105,217,142,148
934238405Sjkim.byte	155,30,135,233,206,85,40,223
935238405Sjkim.byte	140,161,137,13,191,230,66,104
936238405Sjkim.byte	65,153,45,15,176,84,187,22
937238405Sjkim.byte	99,124,119,123,242,107,111,197
938238405Sjkim.byte	48,1,103,43,254,215,171,118
939238405Sjkim.byte	202,130,201,125,250,89,71,240
940238405Sjkim.byte	173,212,162,175,156,164,114,192
941238405Sjkim.byte	183,253,147,38,54,63,247,204
942238405Sjkim.byte	52,165,229,241,113,216,49,21
943238405Sjkim.byte	4,199,35,195,24,150,5,154
944238405Sjkim.byte	7,18,128,226,235,39,178,117
945238405Sjkim.byte	9,131,44,26,27,110,90,160
946238405Sjkim.byte	82,59,214,179,41,227,47,132
947238405Sjkim.byte	83,209,0,237,32,252,177,91
948238405Sjkim.byte	106,203,190,57,74,76,88,207
949238405Sjkim.byte	208,239,170,251,67,77,51,133
950238405Sjkim.byte	69,249,2,127,80,60,159,168
951238405Sjkim.byte	81,163,64,143,146,157,56,245
952238405Sjkim.byte	188,182,218,33,16,255,243,210
953238405Sjkim.byte	205,12,19,236,95,151,68,23
954238405Sjkim.byte	196,167,126,61,100,93,25,115
955238405Sjkim.byte	96,129,79,220,34,42,144,136
956238405Sjkim.byte	70,238,184,20,222,94,11,219
957238405Sjkim.byte	224,50,58,10,73,6,36,92
958238405Sjkim.byte	194,211,172,98,145,149,228,121
959238405Sjkim.byte	231,200,55,109,141,213,78,169
960238405Sjkim.byte	108,86,244,234,101,122,174,8
961238405Sjkim.byte	186,120,37,46,28,166,180,198
962238405Sjkim.byte	232,221,116,31,75,189,139,138
963238405Sjkim.byte	112,62,181,102,72,3,246,14
964238405Sjkim.byte	97,53,87,185,134,193,29,158
965238405Sjkim.byte	225,248,152,17,105,217,142,148
966238405Sjkim.byte	155,30,135,233,206,85,40,223
967238405Sjkim.byte	140,161,137,13,191,230,66,104
968238405Sjkim.byte	65,153,45,15,176,84,187,22
969238405Sjkim.long	1,2,4,8
970238405Sjkim.long	16,32,64,128
971238405Sjkim.long	27,54,0,0
972238405Sjkim.long	0,0,0,0
973238405Sjkim.size	_x86_AES_encrypt,.-_x86_AES_encrypt
974238405Sjkim.globl	AES_encrypt
975238405Sjkim.type	AES_encrypt,@function
976238405Sjkim.align	16
977238405SjkimAES_encrypt:
978238405Sjkim.L_AES_encrypt_begin:
979238405Sjkim	pushl	%ebp
980238405Sjkim	pushl	%ebx
981238405Sjkim	pushl	%esi
982238405Sjkim	pushl	%edi
983238405Sjkim	movl	20(%esp),%esi
984238405Sjkim	movl	28(%esp),%edi
985238405Sjkim	movl	%esp,%eax
986238405Sjkim	subl	$36,%esp
987238405Sjkim	andl	$-64,%esp
988238405Sjkim	leal	-127(%edi),%ebx
989238405Sjkim	subl	%esp,%ebx
990238405Sjkim	negl	%ebx
991238405Sjkim	andl	$960,%ebx
992238405Sjkim	subl	%ebx,%esp
993238405Sjkim	addl	$4,%esp
994238405Sjkim	movl	%eax,28(%esp)
995238405Sjkim	call	.L004pic_point
996238405Sjkim.L004pic_point:
997238405Sjkim	popl	%ebp
998238405Sjkim	leal	OPENSSL_ia32cap_P,%eax
999238405Sjkim	leal	.LAES_Te-.L004pic_point(%ebp),%ebp
1000238405Sjkim	leal	764(%esp),%ebx
1001238405Sjkim	subl	%ebp,%ebx
1002238405Sjkim	andl	$768,%ebx
1003238405Sjkim	leal	2176(%ebp,%ebx,1),%ebp
1004238405Sjkim	btl	$25,(%eax)
1005238405Sjkim	jnc	.L005x86
1006238405Sjkim	movq	(%esi),%mm0
1007238405Sjkim	movq	8(%esi),%mm4
1008238405Sjkim	call	_sse_AES_encrypt_compact
1009238405Sjkim	movl	28(%esp),%esp
1010238405Sjkim	movl	24(%esp),%esi
1011238405Sjkim	movq	%mm0,(%esi)
1012238405Sjkim	movq	%mm4,8(%esi)
1013238405Sjkim	emms
1014238405Sjkim	popl	%edi
1015238405Sjkim	popl	%esi
1016238405Sjkim	popl	%ebx
1017238405Sjkim	popl	%ebp
1018238405Sjkim	ret
1019238405Sjkim.align	16
1020238405Sjkim.L005x86:
1021238405Sjkim	movl	%ebp,24(%esp)
1022238405Sjkim	movl	(%esi),%eax
1023238405Sjkim	movl	4(%esi),%ebx
1024238405Sjkim	movl	8(%esi),%ecx
1025238405Sjkim	movl	12(%esi),%edx
1026238405Sjkim	call	_x86_AES_encrypt_compact
1027238405Sjkim	movl	28(%esp),%esp
1028238405Sjkim	movl	24(%esp),%esi
1029238405Sjkim	movl	%eax,(%esi)
1030238405Sjkim	movl	%ebx,4(%esi)
1031238405Sjkim	movl	%ecx,8(%esi)
1032238405Sjkim	movl	%edx,12(%esi)
1033238405Sjkim	popl	%edi
1034238405Sjkim	popl	%esi
1035238405Sjkim	popl	%ebx
1036238405Sjkim	popl	%ebp
1037238405Sjkim	ret
1038238405Sjkim.size	AES_encrypt,.-.L_AES_encrypt_begin
1039238405Sjkim.type	_x86_AES_decrypt_compact,@function
1040238405Sjkim.align	16
1041238405Sjkim_x86_AES_decrypt_compact:
1042238405Sjkim	movl	%edi,20(%esp)
1043238405Sjkim	xorl	(%edi),%eax
1044238405Sjkim	xorl	4(%edi),%ebx
1045238405Sjkim	xorl	8(%edi),%ecx
1046238405Sjkim	xorl	12(%edi),%edx
1047238405Sjkim	movl	240(%edi),%esi
1048238405Sjkim	leal	-2(%esi,%esi,1),%esi
1049238405Sjkim	leal	(%edi,%esi,8),%esi
1050238405Sjkim	movl	%esi,24(%esp)
1051238405Sjkim	movl	-128(%ebp),%edi
1052238405Sjkim	movl	-96(%ebp),%esi
1053238405Sjkim	movl	-64(%ebp),%edi
1054238405Sjkim	movl	-32(%ebp),%esi
1055238405Sjkim	movl	(%ebp),%edi
1056238405Sjkim	movl	32(%ebp),%esi
1057238405Sjkim	movl	64(%ebp),%edi
1058238405Sjkim	movl	96(%ebp),%esi
1059238405Sjkim.align	16
1060238405Sjkim.L006loop:
1061238405Sjkim	movl	%eax,%esi
1062238405Sjkim	andl	$255,%esi
1063238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
1064238405Sjkim	movzbl	%dh,%edi
1065238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1066238405Sjkim	shll	$8,%edi
1067238405Sjkim	xorl	%edi,%esi
1068238405Sjkim	movl	%ecx,%edi
1069238405Sjkim	shrl	$16,%edi
1070238405Sjkim	andl	$255,%edi
1071238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1072238405Sjkim	shll	$16,%edi
1073238405Sjkim	xorl	%edi,%esi
1074238405Sjkim	movl	%ebx,%edi
1075238405Sjkim	shrl	$24,%edi
1076238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1077238405Sjkim	shll	$24,%edi
1078238405Sjkim	xorl	%edi,%esi
1079238405Sjkim	movl	%esi,4(%esp)
1080238405Sjkim	movl	%ebx,%esi
1081238405Sjkim	andl	$255,%esi
1082238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
1083238405Sjkim	movzbl	%ah,%edi
1084238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1085238405Sjkim	shll	$8,%edi
1086238405Sjkim	xorl	%edi,%esi
1087238405Sjkim	movl	%edx,%edi
1088238405Sjkim	shrl	$16,%edi
1089238405Sjkim	andl	$255,%edi
1090238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1091238405Sjkim	shll	$16,%edi
1092238405Sjkim	xorl	%edi,%esi
1093238405Sjkim	movl	%ecx,%edi
1094238405Sjkim	shrl	$24,%edi
1095238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1096238405Sjkim	shll	$24,%edi
1097238405Sjkim	xorl	%edi,%esi
1098238405Sjkim	movl	%esi,8(%esp)
1099238405Sjkim	movl	%ecx,%esi
1100238405Sjkim	andl	$255,%esi
1101238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
1102238405Sjkim	movzbl	%bh,%edi
1103238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1104238405Sjkim	shll	$8,%edi
1105238405Sjkim	xorl	%edi,%esi
1106238405Sjkim	movl	%eax,%edi
1107238405Sjkim	shrl	$16,%edi
1108238405Sjkim	andl	$255,%edi
1109238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1110238405Sjkim	shll	$16,%edi
1111238405Sjkim	xorl	%edi,%esi
1112238405Sjkim	movl	%edx,%edi
1113238405Sjkim	shrl	$24,%edi
1114238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1115238405Sjkim	shll	$24,%edi
1116238405Sjkim	xorl	%edi,%esi
1117238405Sjkim	andl	$255,%edx
1118238405Sjkim	movzbl	-128(%ebp,%edx,1),%edx
1119238405Sjkim	movzbl	%ch,%ecx
1120238405Sjkim	movzbl	-128(%ebp,%ecx,1),%ecx
1121238405Sjkim	shll	$8,%ecx
1122238405Sjkim	xorl	%ecx,%edx
1123238405Sjkim	movl	%esi,%ecx
1124238405Sjkim	shrl	$16,%ebx
1125238405Sjkim	andl	$255,%ebx
1126238405Sjkim	movzbl	-128(%ebp,%ebx,1),%ebx
1127238405Sjkim	shll	$16,%ebx
1128238405Sjkim	xorl	%ebx,%edx
1129238405Sjkim	shrl	$24,%eax
1130238405Sjkim	movzbl	-128(%ebp,%eax,1),%eax
1131238405Sjkim	shll	$24,%eax
1132238405Sjkim	xorl	%eax,%edx
1133238405Sjkim	movl	%ecx,%esi
1134238405Sjkim	andl	$2155905152,%esi
1135238405Sjkim	movl	%esi,%edi
1136238405Sjkim	shrl	$7,%edi
1137238405Sjkim	leal	(%ecx,%ecx,1),%eax
1138238405Sjkim	subl	%edi,%esi
1139238405Sjkim	andl	$4278124286,%eax
1140238405Sjkim	andl	$454761243,%esi
1141238405Sjkim	xorl	%eax,%esi
1142238405Sjkim	movl	%esi,%eax
1143238405Sjkim	andl	$2155905152,%esi
1144238405Sjkim	movl	%esi,%edi
1145238405Sjkim	shrl	$7,%edi
1146238405Sjkim	leal	(%eax,%eax,1),%ebx
1147238405Sjkim	subl	%edi,%esi
1148238405Sjkim	andl	$4278124286,%ebx
1149238405Sjkim	andl	$454761243,%esi
1150238405Sjkim	xorl	%ecx,%eax
1151238405Sjkim	xorl	%ebx,%esi
1152238405Sjkim	movl	%esi,%ebx
1153238405Sjkim	andl	$2155905152,%esi
1154238405Sjkim	movl	%esi,%edi
1155238405Sjkim	shrl	$7,%edi
1156238405Sjkim	leal	(%ebx,%ebx,1),%ebp
1157238405Sjkim	subl	%edi,%esi
1158238405Sjkim	andl	$4278124286,%ebp
1159238405Sjkim	andl	$454761243,%esi
1160238405Sjkim	xorl	%ecx,%ebx
1161238405Sjkim	roll	$8,%ecx
1162238405Sjkim	xorl	%esi,%ebp
1163238405Sjkim	xorl	%eax,%ecx
1164238405Sjkim	xorl	%ebp,%eax
1165238405Sjkim	roll	$24,%eax
1166238405Sjkim	xorl	%ebx,%ecx
1167238405Sjkim	xorl	%ebp,%ebx
1168238405Sjkim	roll	$16,%ebx
1169238405Sjkim	xorl	%ebp,%ecx
1170238405Sjkim	roll	$8,%ebp
1171238405Sjkim	xorl	%eax,%ecx
1172238405Sjkim	xorl	%ebx,%ecx
1173238405Sjkim	movl	4(%esp),%eax
1174238405Sjkim	xorl	%ebp,%ecx
1175238405Sjkim	movl	%ecx,12(%esp)
1176238405Sjkim	movl	%edx,%esi
1177238405Sjkim	andl	$2155905152,%esi
1178238405Sjkim	movl	%esi,%edi
1179238405Sjkim	shrl	$7,%edi
1180238405Sjkim	leal	(%edx,%edx,1),%ebx
1181238405Sjkim	subl	%edi,%esi
1182238405Sjkim	andl	$4278124286,%ebx
1183238405Sjkim	andl	$454761243,%esi
1184238405Sjkim	xorl	%ebx,%esi
1185238405Sjkim	movl	%esi,%ebx
1186238405Sjkim	andl	$2155905152,%esi
1187238405Sjkim	movl	%esi,%edi
1188238405Sjkim	shrl	$7,%edi
1189238405Sjkim	leal	(%ebx,%ebx,1),%ecx
1190238405Sjkim	subl	%edi,%esi
1191238405Sjkim	andl	$4278124286,%ecx
1192238405Sjkim	andl	$454761243,%esi
1193238405Sjkim	xorl	%edx,%ebx
1194238405Sjkim	xorl	%ecx,%esi
1195238405Sjkim	movl	%esi,%ecx
1196238405Sjkim	andl	$2155905152,%esi
1197238405Sjkim	movl	%esi,%edi
1198238405Sjkim	shrl	$7,%edi
1199238405Sjkim	leal	(%ecx,%ecx,1),%ebp
1200238405Sjkim	subl	%edi,%esi
1201238405Sjkim	andl	$4278124286,%ebp
1202238405Sjkim	andl	$454761243,%esi
1203238405Sjkim	xorl	%edx,%ecx
1204238405Sjkim	roll	$8,%edx
1205238405Sjkim	xorl	%esi,%ebp
1206238405Sjkim	xorl	%ebx,%edx
1207238405Sjkim	xorl	%ebp,%ebx
1208238405Sjkim	roll	$24,%ebx
1209238405Sjkim	xorl	%ecx,%edx
1210238405Sjkim	xorl	%ebp,%ecx
1211238405Sjkim	roll	$16,%ecx
1212238405Sjkim	xorl	%ebp,%edx
1213238405Sjkim	roll	$8,%ebp
1214238405Sjkim	xorl	%ebx,%edx
1215238405Sjkim	xorl	%ecx,%edx
1216238405Sjkim	movl	8(%esp),%ebx
1217238405Sjkim	xorl	%ebp,%edx
1218238405Sjkim	movl	%edx,16(%esp)
1219238405Sjkim	movl	%eax,%esi
1220238405Sjkim	andl	$2155905152,%esi
1221238405Sjkim	movl	%esi,%edi
1222238405Sjkim	shrl	$7,%edi
1223238405Sjkim	leal	(%eax,%eax,1),%ecx
1224238405Sjkim	subl	%edi,%esi
1225238405Sjkim	andl	$4278124286,%ecx
1226238405Sjkim	andl	$454761243,%esi
1227238405Sjkim	xorl	%ecx,%esi
1228238405Sjkim	movl	%esi,%ecx
1229238405Sjkim	andl	$2155905152,%esi
1230238405Sjkim	movl	%esi,%edi
1231238405Sjkim	shrl	$7,%edi
1232238405Sjkim	leal	(%ecx,%ecx,1),%edx
1233238405Sjkim	subl	%edi,%esi
1234238405Sjkim	andl	$4278124286,%edx
1235238405Sjkim	andl	$454761243,%esi
1236238405Sjkim	xorl	%eax,%ecx
1237238405Sjkim	xorl	%edx,%esi
1238238405Sjkim	movl	%esi,%edx
1239238405Sjkim	andl	$2155905152,%esi
1240238405Sjkim	movl	%esi,%edi
1241238405Sjkim	shrl	$7,%edi
1242238405Sjkim	leal	(%edx,%edx,1),%ebp
1243238405Sjkim	subl	%edi,%esi
1244238405Sjkim	andl	$4278124286,%ebp
1245238405Sjkim	andl	$454761243,%esi
1246238405Sjkim	xorl	%eax,%edx
1247238405Sjkim	roll	$8,%eax
1248238405Sjkim	xorl	%esi,%ebp
1249238405Sjkim	xorl	%ecx,%eax
1250238405Sjkim	xorl	%ebp,%ecx
1251238405Sjkim	roll	$24,%ecx
1252238405Sjkim	xorl	%edx,%eax
1253238405Sjkim	xorl	%ebp,%edx
1254238405Sjkim	roll	$16,%edx
1255238405Sjkim	xorl	%ebp,%eax
1256238405Sjkim	roll	$8,%ebp
1257238405Sjkim	xorl	%ecx,%eax
1258238405Sjkim	xorl	%edx,%eax
1259238405Sjkim	xorl	%ebp,%eax
1260238405Sjkim	movl	%ebx,%esi
1261238405Sjkim	andl	$2155905152,%esi
1262238405Sjkim	movl	%esi,%edi
1263238405Sjkim	shrl	$7,%edi
1264238405Sjkim	leal	(%ebx,%ebx,1),%ecx
1265238405Sjkim	subl	%edi,%esi
1266238405Sjkim	andl	$4278124286,%ecx
1267238405Sjkim	andl	$454761243,%esi
1268238405Sjkim	xorl	%ecx,%esi
1269238405Sjkim	movl	%esi,%ecx
1270238405Sjkim	andl	$2155905152,%esi
1271238405Sjkim	movl	%esi,%edi
1272238405Sjkim	shrl	$7,%edi
1273238405Sjkim	leal	(%ecx,%ecx,1),%edx
1274238405Sjkim	subl	%edi,%esi
1275238405Sjkim	andl	$4278124286,%edx
1276238405Sjkim	andl	$454761243,%esi
1277238405Sjkim	xorl	%ebx,%ecx
1278238405Sjkim	xorl	%edx,%esi
1279238405Sjkim	movl	%esi,%edx
1280238405Sjkim	andl	$2155905152,%esi
1281238405Sjkim	movl	%esi,%edi
1282238405Sjkim	shrl	$7,%edi
1283238405Sjkim	leal	(%edx,%edx,1),%ebp
1284238405Sjkim	subl	%edi,%esi
1285238405Sjkim	andl	$4278124286,%ebp
1286238405Sjkim	andl	$454761243,%esi
1287238405Sjkim	xorl	%ebx,%edx
1288238405Sjkim	roll	$8,%ebx
1289238405Sjkim	xorl	%esi,%ebp
1290238405Sjkim	xorl	%ecx,%ebx
1291238405Sjkim	xorl	%ebp,%ecx
1292238405Sjkim	roll	$24,%ecx
1293238405Sjkim	xorl	%edx,%ebx
1294238405Sjkim	xorl	%ebp,%edx
1295238405Sjkim	roll	$16,%edx
1296238405Sjkim	xorl	%ebp,%ebx
1297238405Sjkim	roll	$8,%ebp
1298238405Sjkim	xorl	%ecx,%ebx
1299238405Sjkim	xorl	%edx,%ebx
1300238405Sjkim	movl	12(%esp),%ecx
1301238405Sjkim	xorl	%ebp,%ebx
1302238405Sjkim	movl	16(%esp),%edx
1303238405Sjkim	movl	20(%esp),%edi
1304238405Sjkim	movl	28(%esp),%ebp
1305238405Sjkim	addl	$16,%edi
1306238405Sjkim	xorl	(%edi),%eax
1307238405Sjkim	xorl	4(%edi),%ebx
1308238405Sjkim	xorl	8(%edi),%ecx
1309238405Sjkim	xorl	12(%edi),%edx
1310238405Sjkim	cmpl	24(%esp),%edi
1311238405Sjkim	movl	%edi,20(%esp)
1312238405Sjkim	jb	.L006loop
1313238405Sjkim	movl	%eax,%esi
1314238405Sjkim	andl	$255,%esi
1315238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
1316238405Sjkim	movzbl	%dh,%edi
1317238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1318238405Sjkim	shll	$8,%edi
1319238405Sjkim	xorl	%edi,%esi
1320238405Sjkim	movl	%ecx,%edi
1321238405Sjkim	shrl	$16,%edi
1322238405Sjkim	andl	$255,%edi
1323238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1324238405Sjkim	shll	$16,%edi
1325238405Sjkim	xorl	%edi,%esi
1326238405Sjkim	movl	%ebx,%edi
1327238405Sjkim	shrl	$24,%edi
1328238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1329238405Sjkim	shll	$24,%edi
1330238405Sjkim	xorl	%edi,%esi
1331238405Sjkim	movl	%esi,4(%esp)
1332238405Sjkim	movl	%ebx,%esi
1333238405Sjkim	andl	$255,%esi
1334238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
1335238405Sjkim	movzbl	%ah,%edi
1336238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1337238405Sjkim	shll	$8,%edi
1338238405Sjkim	xorl	%edi,%esi
1339238405Sjkim	movl	%edx,%edi
1340238405Sjkim	shrl	$16,%edi
1341238405Sjkim	andl	$255,%edi
1342238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1343238405Sjkim	shll	$16,%edi
1344238405Sjkim	xorl	%edi,%esi
1345238405Sjkim	movl	%ecx,%edi
1346238405Sjkim	shrl	$24,%edi
1347238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1348238405Sjkim	shll	$24,%edi
1349238405Sjkim	xorl	%edi,%esi
1350238405Sjkim	movl	%esi,8(%esp)
1351238405Sjkim	movl	%ecx,%esi
1352238405Sjkim	andl	$255,%esi
1353238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
1354238405Sjkim	movzbl	%bh,%edi
1355238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1356238405Sjkim	shll	$8,%edi
1357238405Sjkim	xorl	%edi,%esi
1358238405Sjkim	movl	%eax,%edi
1359238405Sjkim	shrl	$16,%edi
1360238405Sjkim	andl	$255,%edi
1361238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1362238405Sjkim	shll	$16,%edi
1363238405Sjkim	xorl	%edi,%esi
1364238405Sjkim	movl	%edx,%edi
1365238405Sjkim	shrl	$24,%edi
1366238405Sjkim	movzbl	-128(%ebp,%edi,1),%edi
1367238405Sjkim	shll	$24,%edi
1368238405Sjkim	xorl	%edi,%esi
1369238405Sjkim	movl	20(%esp),%edi
1370238405Sjkim	andl	$255,%edx
1371238405Sjkim	movzbl	-128(%ebp,%edx,1),%edx
1372238405Sjkim	movzbl	%ch,%ecx
1373238405Sjkim	movzbl	-128(%ebp,%ecx,1),%ecx
1374238405Sjkim	shll	$8,%ecx
1375238405Sjkim	xorl	%ecx,%edx
1376238405Sjkim	movl	%esi,%ecx
1377238405Sjkim	shrl	$16,%ebx
1378238405Sjkim	andl	$255,%ebx
1379238405Sjkim	movzbl	-128(%ebp,%ebx,1),%ebx
1380238405Sjkim	shll	$16,%ebx
1381238405Sjkim	xorl	%ebx,%edx
1382238405Sjkim	movl	8(%esp),%ebx
1383238405Sjkim	shrl	$24,%eax
1384238405Sjkim	movzbl	-128(%ebp,%eax,1),%eax
1385238405Sjkim	shll	$24,%eax
1386238405Sjkim	xorl	%eax,%edx
1387238405Sjkim	movl	4(%esp),%eax
1388238405Sjkim	xorl	16(%edi),%eax
1389238405Sjkim	xorl	20(%edi),%ebx
1390238405Sjkim	xorl	24(%edi),%ecx
1391238405Sjkim	xorl	28(%edi),%edx
1392238405Sjkim	ret
1393238405Sjkim.size	_x86_AES_decrypt_compact,.-_x86_AES_decrypt_compact
1394238405Sjkim.type	_sse_AES_decrypt_compact,@function
1395238405Sjkim.align	16
1396238405Sjkim_sse_AES_decrypt_compact:
1397238405Sjkim	pxor	(%edi),%mm0
1398238405Sjkim	pxor	8(%edi),%mm4
1399238405Sjkim	movl	240(%edi),%esi
1400238405Sjkim	leal	-2(%esi,%esi,1),%esi
1401238405Sjkim	leal	(%edi,%esi,8),%esi
1402238405Sjkim	movl	%esi,24(%esp)
1403238405Sjkim	movl	$454761243,%eax
1404238405Sjkim	movl	%eax,8(%esp)
1405238405Sjkim	movl	%eax,12(%esp)
1406238405Sjkim	movl	-128(%ebp),%eax
1407238405Sjkim	movl	-96(%ebp),%ebx
1408238405Sjkim	movl	-64(%ebp),%ecx
1409238405Sjkim	movl	-32(%ebp),%edx
1410238405Sjkim	movl	(%ebp),%eax
1411238405Sjkim	movl	32(%ebp),%ebx
1412238405Sjkim	movl	64(%ebp),%ecx
1413238405Sjkim	movl	96(%ebp),%edx
1414238405Sjkim.align	16
1415238405Sjkim.L007loop:
1416238405Sjkim	pshufw	$12,%mm0,%mm1
1417238405Sjkim	movd	%mm1,%eax
1418238405Sjkim	pshufw	$9,%mm4,%mm5
1419238405Sjkim	movzbl	%al,%esi
1420238405Sjkim	movzbl	-128(%ebp,%esi,1),%ecx
1421238405Sjkim	movd	%mm5,%ebx
1422238405Sjkim	movzbl	%ah,%edx
1423238405Sjkim	movzbl	-128(%ebp,%edx,1),%edx
1424238405Sjkim	shll	$8,%edx
1425238405Sjkim	pshufw	$6,%mm0,%mm2
1426238405Sjkim	movzbl	%bl,%esi
1427238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
1428238405Sjkim	shll	$16,%esi
1429238405Sjkim	orl	%esi,%ecx
1430238405Sjkim	shrl	$16,%eax
1431238405Sjkim	movzbl	%bh,%esi
1432238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
1433238405Sjkim	shll	$24,%esi
1434238405Sjkim	orl	%esi,%edx
1435238405Sjkim	shrl	$16,%ebx
1436238405Sjkim	pshufw	$3,%mm4,%mm6
1437238405Sjkim	movzbl	%ah,%esi
1438238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
1439238405Sjkim	shll	$24,%esi
1440238405Sjkim	orl	%esi,%ecx
1441238405Sjkim	movzbl	%bh,%esi
1442238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
1443238405Sjkim	shll	$8,%esi
1444238405Sjkim	orl	%esi,%ecx
1445238405Sjkim	movd	%ecx,%mm0
1446238405Sjkim	movzbl	%al,%esi
1447238405Sjkim	movd	%mm2,%eax
1448238405Sjkim	movzbl	-128(%ebp,%esi,1),%ecx
1449238405Sjkim	shll	$16,%ecx
1450238405Sjkim	movzbl	%bl,%esi
1451238405Sjkim	movd	%mm6,%ebx
1452238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
1453238405Sjkim	orl	%esi,%ecx
1454238405Sjkim	movzbl	%al,%esi
1455238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
1456238405Sjkim	orl	%esi,%edx
1457238405Sjkim	movzbl	%bl,%esi
1458238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
1459238405Sjkim	shll	$16,%esi
1460238405Sjkim	orl	%esi,%edx
1461238405Sjkim	movd	%edx,%mm1
1462238405Sjkim	movzbl	%ah,%esi
1463238405Sjkim	movzbl	-128(%ebp,%esi,1),%edx
1464238405Sjkim	shll	$8,%edx
1465238405Sjkim	movzbl	%bh,%esi
1466238405Sjkim	shrl	$16,%eax
1467238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
1468238405Sjkim	shll	$24,%esi
1469238405Sjkim	orl	%esi,%edx
1470238405Sjkim	shrl	$16,%ebx
1471238405Sjkim	punpckldq	%mm1,%mm0
1472238405Sjkim	movzbl	%bh,%esi
1473238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
1474238405Sjkim	shll	$8,%esi
1475238405Sjkim	orl	%esi,%ecx
1476238405Sjkim	andl	$255,%ebx
1477238405Sjkim	movzbl	-128(%ebp,%ebx,1),%ebx
1478238405Sjkim	orl	%ebx,%edx
1479238405Sjkim	movzbl	%al,%esi
1480238405Sjkim	movzbl	-128(%ebp,%esi,1),%esi
1481238405Sjkim	shll	$16,%esi
1482238405Sjkim	orl	%esi,%edx
1483238405Sjkim	movd	%edx,%mm4
1484238405Sjkim	movzbl	%ah,%eax
1485238405Sjkim	movzbl	-128(%ebp,%eax,1),%eax
1486238405Sjkim	shll	$24,%eax
1487238405Sjkim	orl	%eax,%ecx
1488238405Sjkim	movd	%ecx,%mm5
1489238405Sjkim	punpckldq	%mm5,%mm4
1490238405Sjkim	addl	$16,%edi
1491238405Sjkim	cmpl	24(%esp),%edi
1492238405Sjkim	ja	.L008out
1493238405Sjkim	movq	%mm0,%mm3
1494238405Sjkim	movq	%mm4,%mm7
1495238405Sjkim	pshufw	$228,%mm0,%mm2
1496238405Sjkim	pshufw	$228,%mm4,%mm6
1497238405Sjkim	movq	%mm0,%mm1
1498238405Sjkim	movq	%mm4,%mm5
1499238405Sjkim	pshufw	$177,%mm0,%mm0
1500238405Sjkim	pshufw	$177,%mm4,%mm4
1501238405Sjkim	pslld	$8,%mm2
1502238405Sjkim	pslld	$8,%mm6
1503238405Sjkim	psrld	$8,%mm3
1504238405Sjkim	psrld	$8,%mm7
1505238405Sjkim	pxor	%mm2,%mm0
1506238405Sjkim	pxor	%mm6,%mm4
1507238405Sjkim	pxor	%mm3,%mm0
1508238405Sjkim	pxor	%mm7,%mm4
1509238405Sjkim	pslld	$16,%mm2
1510238405Sjkim	pslld	$16,%mm6
1511238405Sjkim	psrld	$16,%mm3
1512238405Sjkim	psrld	$16,%mm7
1513238405Sjkim	pxor	%mm2,%mm0
1514238405Sjkim	pxor	%mm6,%mm4
1515238405Sjkim	pxor	%mm3,%mm0
1516238405Sjkim	pxor	%mm7,%mm4
1517238405Sjkim	movq	8(%esp),%mm3
1518238405Sjkim	pxor	%mm2,%mm2
1519238405Sjkim	pxor	%mm6,%mm6
1520238405Sjkim	pcmpgtb	%mm1,%mm2
1521238405Sjkim	pcmpgtb	%mm5,%mm6
1522238405Sjkim	pand	%mm3,%mm2
1523238405Sjkim	pand	%mm3,%mm6
1524238405Sjkim	paddb	%mm1,%mm1
1525238405Sjkim	paddb	%mm5,%mm5
1526238405Sjkim	pxor	%mm2,%mm1
1527238405Sjkim	pxor	%mm6,%mm5
1528238405Sjkim	movq	%mm1,%mm3
1529238405Sjkim	movq	%mm5,%mm7
1530238405Sjkim	movq	%mm1,%mm2
1531238405Sjkim	movq	%mm5,%mm6
1532238405Sjkim	pxor	%mm1,%mm0
1533238405Sjkim	pxor	%mm5,%mm4
1534238405Sjkim	pslld	$24,%mm3
1535238405Sjkim	pslld	$24,%mm7
1536238405Sjkim	psrld	$8,%mm2
1537238405Sjkim	psrld	$8,%mm6
1538238405Sjkim	pxor	%mm3,%mm0
1539238405Sjkim	pxor	%mm7,%mm4
1540238405Sjkim	pxor	%mm2,%mm0
1541238405Sjkim	pxor	%mm6,%mm4
1542238405Sjkim	movq	8(%esp),%mm2
1543238405Sjkim	pxor	%mm3,%mm3
1544238405Sjkim	pxor	%mm7,%mm7
1545238405Sjkim	pcmpgtb	%mm1,%mm3
1546238405Sjkim	pcmpgtb	%mm5,%mm7
1547238405Sjkim	pand	%mm2,%mm3
1548238405Sjkim	pand	%mm2,%mm7
1549238405Sjkim	paddb	%mm1,%mm1
1550238405Sjkim	paddb	%mm5,%mm5
1551238405Sjkim	pxor	%mm3,%mm1
1552238405Sjkim	pxor	%mm7,%mm5
1553238405Sjkim	pshufw	$177,%mm1,%mm3
1554238405Sjkim	pshufw	$177,%mm5,%mm7
1555238405Sjkim	pxor	%mm1,%mm0
1556238405Sjkim	pxor	%mm5,%mm4
1557238405Sjkim	pxor	%mm3,%mm0
1558238405Sjkim	pxor	%mm7,%mm4
1559238405Sjkim	pxor	%mm3,%mm3
1560238405Sjkim	pxor	%mm7,%mm7
1561238405Sjkim	pcmpgtb	%mm1,%mm3
1562238405Sjkim	pcmpgtb	%mm5,%mm7
1563238405Sjkim	pand	%mm2,%mm3
1564238405Sjkim	pand	%mm2,%mm7
1565238405Sjkim	paddb	%mm1,%mm1
1566238405Sjkim	paddb	%mm5,%mm5
1567238405Sjkim	pxor	%mm3,%mm1
1568238405Sjkim	pxor	%mm7,%mm5
1569238405Sjkim	pxor	%mm1,%mm0
1570238405Sjkim	pxor	%mm5,%mm4
1571238405Sjkim	movq	%mm1,%mm3
1572238405Sjkim	movq	%mm5,%mm7
1573238405Sjkim	pshufw	$177,%mm1,%mm2
1574238405Sjkim	pshufw	$177,%mm5,%mm6
1575238405Sjkim	pxor	%mm2,%mm0
1576238405Sjkim	pxor	%mm6,%mm4
1577238405Sjkim	pslld	$8,%mm1
1578238405Sjkim	pslld	$8,%mm5
1579238405Sjkim	psrld	$8,%mm3
1580238405Sjkim	psrld	$8,%mm7
1581238405Sjkim	movq	(%edi),%mm2
1582238405Sjkim	movq	8(%edi),%mm6
1583238405Sjkim	pxor	%mm1,%mm0
1584238405Sjkim	pxor	%mm5,%mm4
1585238405Sjkim	pxor	%mm3,%mm0
1586238405Sjkim	pxor	%mm7,%mm4
1587238405Sjkim	movl	-128(%ebp),%eax
1588238405Sjkim	pslld	$16,%mm1
1589238405Sjkim	pslld	$16,%mm5
1590238405Sjkim	movl	-64(%ebp),%ebx
1591238405Sjkim	psrld	$16,%mm3
1592238405Sjkim	psrld	$16,%mm7
1593238405Sjkim	movl	(%ebp),%ecx
1594238405Sjkim	pxor	%mm1,%mm0
1595238405Sjkim	pxor	%mm5,%mm4
1596238405Sjkim	movl	64(%ebp),%edx
1597238405Sjkim	pxor	%mm3,%mm0
1598238405Sjkim	pxor	%mm7,%mm4
1599238405Sjkim	pxor	%mm2,%mm0
1600238405Sjkim	pxor	%mm6,%mm4
1601238405Sjkim	jmp	.L007loop
1602238405Sjkim.align	16
1603238405Sjkim.L008out:
1604238405Sjkim	pxor	(%edi),%mm0
1605238405Sjkim	pxor	8(%edi),%mm4
1606238405Sjkim	ret
1607238405Sjkim.size	_sse_AES_decrypt_compact,.-_sse_AES_decrypt_compact
1608238405Sjkim.type	_x86_AES_decrypt,@function
1609238405Sjkim.align	16
1610238405Sjkim_x86_AES_decrypt:
1611238405Sjkim	movl	%edi,20(%esp)
1612238405Sjkim	xorl	(%edi),%eax
1613238405Sjkim	xorl	4(%edi),%ebx
1614238405Sjkim	xorl	8(%edi),%ecx
1615238405Sjkim	xorl	12(%edi),%edx
1616238405Sjkim	movl	240(%edi),%esi
1617238405Sjkim	leal	-2(%esi,%esi,1),%esi
1618238405Sjkim	leal	(%edi,%esi,8),%esi
1619238405Sjkim	movl	%esi,24(%esp)
1620238405Sjkim.align	16
1621238405Sjkim.L009loop:
1622238405Sjkim	movl	%eax,%esi
1623238405Sjkim	andl	$255,%esi
1624238405Sjkim	movl	(%ebp,%esi,8),%esi
1625238405Sjkim	movzbl	%dh,%edi
1626238405Sjkim	xorl	3(%ebp,%edi,8),%esi
1627238405Sjkim	movl	%ecx,%edi
1628238405Sjkim	shrl	$16,%edi
1629238405Sjkim	andl	$255,%edi
1630238405Sjkim	xorl	2(%ebp,%edi,8),%esi
1631238405Sjkim	movl	%ebx,%edi
1632238405Sjkim	shrl	$24,%edi
1633238405Sjkim	xorl	1(%ebp,%edi,8),%esi
1634238405Sjkim	movl	%esi,4(%esp)
1635238405Sjkim
1636238405Sjkim	movl	%ebx,%esi
1637238405Sjkim	andl	$255,%esi
1638238405Sjkim	movl	(%ebp,%esi,8),%esi
1639238405Sjkim	movzbl	%ah,%edi
1640238405Sjkim	xorl	3(%ebp,%edi,8),%esi
1641238405Sjkim	movl	%edx,%edi
1642238405Sjkim	shrl	$16,%edi
1643238405Sjkim	andl	$255,%edi
1644238405Sjkim	xorl	2(%ebp,%edi,8),%esi
1645238405Sjkim	movl	%ecx,%edi
1646238405Sjkim	shrl	$24,%edi
1647238405Sjkim	xorl	1(%ebp,%edi,8),%esi
1648238405Sjkim	movl	%esi,8(%esp)
1649238405Sjkim
1650238405Sjkim	movl	%ecx,%esi
1651238405Sjkim	andl	$255,%esi
1652238405Sjkim	movl	(%ebp,%esi,8),%esi
1653238405Sjkim	movzbl	%bh,%edi
1654238405Sjkim	xorl	3(%ebp,%edi,8),%esi
1655238405Sjkim	movl	%eax,%edi
1656238405Sjkim	shrl	$16,%edi
1657238405Sjkim	andl	$255,%edi
1658238405Sjkim	xorl	2(%ebp,%edi,8),%esi
1659238405Sjkim	movl	%edx,%edi
1660238405Sjkim	shrl	$24,%edi
1661238405Sjkim	xorl	1(%ebp,%edi,8),%esi
1662238405Sjkim
1663238405Sjkim	movl	20(%esp),%edi
1664238405Sjkim	andl	$255,%edx
1665238405Sjkim	movl	(%ebp,%edx,8),%edx
1666238405Sjkim	movzbl	%ch,%ecx
1667238405Sjkim	xorl	3(%ebp,%ecx,8),%edx
1668238405Sjkim	movl	%esi,%ecx
1669238405Sjkim	shrl	$16,%ebx
1670238405Sjkim	andl	$255,%ebx
1671238405Sjkim	xorl	2(%ebp,%ebx,8),%edx
1672238405Sjkim	movl	8(%esp),%ebx
1673238405Sjkim	shrl	$24,%eax
1674238405Sjkim	xorl	1(%ebp,%eax,8),%edx
1675238405Sjkim	movl	4(%esp),%eax
1676238405Sjkim
1677238405Sjkim	addl	$16,%edi
1678238405Sjkim	xorl	(%edi),%eax
1679238405Sjkim	xorl	4(%edi),%ebx
1680238405Sjkim	xorl	8(%edi),%ecx
1681238405Sjkim	xorl	12(%edi),%edx
1682238405Sjkim	cmpl	24(%esp),%edi
1683238405Sjkim	movl	%edi,20(%esp)
1684238405Sjkim	jb	.L009loop
1685238405Sjkim	leal	2176(%ebp),%ebp
1686238405Sjkim	movl	-128(%ebp),%edi
1687238405Sjkim	movl	-96(%ebp),%esi
1688238405Sjkim	movl	-64(%ebp),%edi
1689238405Sjkim	movl	-32(%ebp),%esi
1690238405Sjkim	movl	(%ebp),%edi
1691238405Sjkim	movl	32(%ebp),%esi
1692238405Sjkim	movl	64(%ebp),%edi
1693238405Sjkim	movl	96(%ebp),%esi
1694238405Sjkim	leal	-128(%ebp),%ebp
1695238405Sjkim	movl	%eax,%esi
1696238405Sjkim	andl	$255,%esi
1697238405Sjkim	movzbl	(%ebp,%esi,1),%esi
1698238405Sjkim	movzbl	%dh,%edi
1699238405Sjkim	movzbl	(%ebp,%edi,1),%edi
1700238405Sjkim	shll	$8,%edi
1701238405Sjkim	xorl	%edi,%esi
1702238405Sjkim	movl	%ecx,%edi
1703238405Sjkim	shrl	$16,%edi
1704238405Sjkim	andl	$255,%edi
1705238405Sjkim	movzbl	(%ebp,%edi,1),%edi
1706238405Sjkim	shll	$16,%edi
1707238405Sjkim	xorl	%edi,%esi
1708238405Sjkim	movl	%ebx,%edi
1709238405Sjkim	shrl	$24,%edi
1710238405Sjkim	movzbl	(%ebp,%edi,1),%edi
1711238405Sjkim	shll	$24,%edi
1712238405Sjkim	xorl	%edi,%esi
1713238405Sjkim	movl	%esi,4(%esp)
1714238405Sjkim	movl	%ebx,%esi
1715238405Sjkim	andl	$255,%esi
1716238405Sjkim	movzbl	(%ebp,%esi,1),%esi
1717238405Sjkim	movzbl	%ah,%edi
1718238405Sjkim	movzbl	(%ebp,%edi,1),%edi
1719238405Sjkim	shll	$8,%edi
1720238405Sjkim	xorl	%edi,%esi
1721238405Sjkim	movl	%edx,%edi
1722238405Sjkim	shrl	$16,%edi
1723238405Sjkim	andl	$255,%edi
1724238405Sjkim	movzbl	(%ebp,%edi,1),%edi
1725238405Sjkim	shll	$16,%edi
1726238405Sjkim	xorl	%edi,%esi
1727238405Sjkim	movl	%ecx,%edi
1728238405Sjkim	shrl	$24,%edi
1729238405Sjkim	movzbl	(%ebp,%edi,1),%edi
1730238405Sjkim	shll	$24,%edi
1731238405Sjkim	xorl	%edi,%esi
1732238405Sjkim	movl	%esi,8(%esp)
1733238405Sjkim	movl	%ecx,%esi
1734238405Sjkim	andl	$255,%esi
1735238405Sjkim	movzbl	(%ebp,%esi,1),%esi
1736238405Sjkim	movzbl	%bh,%edi
1737238405Sjkim	movzbl	(%ebp,%edi,1),%edi
1738238405Sjkim	shll	$8,%edi
1739238405Sjkim	xorl	%edi,%esi
1740238405Sjkim	movl	%eax,%edi
1741238405Sjkim	shrl	$16,%edi
1742238405Sjkim	andl	$255,%edi
1743238405Sjkim	movzbl	(%ebp,%edi,1),%edi
1744238405Sjkim	shll	$16,%edi
1745238405Sjkim	xorl	%edi,%esi
1746238405Sjkim	movl	%edx,%edi
1747238405Sjkim	shrl	$24,%edi
1748238405Sjkim	movzbl	(%ebp,%edi,1),%edi
1749238405Sjkim	shll	$24,%edi
1750238405Sjkim	xorl	%edi,%esi
1751238405Sjkim	movl	20(%esp),%edi
1752238405Sjkim	andl	$255,%edx
1753238405Sjkim	movzbl	(%ebp,%edx,1),%edx
1754238405Sjkim	movzbl	%ch,%ecx
1755238405Sjkim	movzbl	(%ebp,%ecx,1),%ecx
1756238405Sjkim	shll	$8,%ecx
1757238405Sjkim	xorl	%ecx,%edx
1758238405Sjkim	movl	%esi,%ecx
1759238405Sjkim	shrl	$16,%ebx
1760238405Sjkim	andl	$255,%ebx
1761238405Sjkim	movzbl	(%ebp,%ebx,1),%ebx
1762238405Sjkim	shll	$16,%ebx
1763238405Sjkim	xorl	%ebx,%edx
1764238405Sjkim	movl	8(%esp),%ebx
1765238405Sjkim	shrl	$24,%eax
1766238405Sjkim	movzbl	(%ebp,%eax,1),%eax
1767238405Sjkim	shll	$24,%eax
1768238405Sjkim	xorl	%eax,%edx
1769238405Sjkim	movl	4(%esp),%eax
1770238405Sjkim	leal	-2048(%ebp),%ebp
1771238405Sjkim	addl	$16,%edi
1772238405Sjkim	xorl	(%edi),%eax
1773238405Sjkim	xorl	4(%edi),%ebx
1774238405Sjkim	xorl	8(%edi),%ecx
1775238405Sjkim	xorl	12(%edi),%edx
1776238405Sjkim	ret
1777238405Sjkim.align	64
1778238405Sjkim.LAES_Td:
1779238405Sjkim.long	1353184337,1353184337
1780238405Sjkim.long	1399144830,1399144830
1781238405Sjkim.long	3282310938,3282310938
1782238405Sjkim.long	2522752826,2522752826
1783238405Sjkim.long	3412831035,3412831035
1784238405Sjkim.long	4047871263,4047871263
1785238405Sjkim.long	2874735276,2874735276
1786238405Sjkim.long	2466505547,2466505547
1787238405Sjkim.long	1442459680,1442459680
1788238405Sjkim.long	4134368941,4134368941
1789238405Sjkim.long	2440481928,2440481928
1790238405Sjkim.long	625738485,625738485
1791238405Sjkim.long	4242007375,4242007375
1792238405Sjkim.long	3620416197,3620416197
1793238405Sjkim.long	2151953702,2151953702
1794238405Sjkim.long	2409849525,2409849525
1795238405Sjkim.long	1230680542,1230680542
1796238405Sjkim.long	1729870373,1729870373
1797238405Sjkim.long	2551114309,2551114309
1798238405Sjkim.long	3787521629,3787521629
1799238405Sjkim.long	41234371,41234371
1800238405Sjkim.long	317738113,317738113
1801238405Sjkim.long	2744600205,2744600205
1802238405Sjkim.long	3338261355,3338261355
1803238405Sjkim.long	3881799427,3881799427
1804238405Sjkim.long	2510066197,2510066197
1805238405Sjkim.long	3950669247,3950669247
1806238405Sjkim.long	3663286933,3663286933
1807238405Sjkim.long	763608788,763608788
1808238405Sjkim.long	3542185048,3542185048
1809238405Sjkim.long	694804553,694804553
1810238405Sjkim.long	1154009486,1154009486
1811238405Sjkim.long	1787413109,1787413109
1812238405Sjkim.long	2021232372,2021232372
1813238405Sjkim.long	1799248025,1799248025
1814238405Sjkim.long	3715217703,3715217703
1815238405Sjkim.long	3058688446,3058688446
1816238405Sjkim.long	397248752,397248752
1817238405Sjkim.long	1722556617,1722556617
1818238405Sjkim.long	3023752829,3023752829
1819238405Sjkim.long	407560035,407560035
1820238405Sjkim.long	2184256229,2184256229
1821238405Sjkim.long	1613975959,1613975959
1822238405Sjkim.long	1165972322,1165972322
1823238405Sjkim.long	3765920945,3765920945
1824238405Sjkim.long	2226023355,2226023355
1825238405Sjkim.long	480281086,480281086
1826238405Sjkim.long	2485848313,2485848313
1827238405Sjkim.long	1483229296,1483229296
1828238405Sjkim.long	436028815,436028815
1829238405Sjkim.long	2272059028,2272059028
1830238405Sjkim.long	3086515026,3086515026
1831238405Sjkim.long	601060267,601060267
1832238405Sjkim.long	3791801202,3791801202
1833238405Sjkim.long	1468997603,1468997603
1834238405Sjkim.long	715871590,715871590
1835238405Sjkim.long	120122290,120122290
1836238405Sjkim.long	63092015,63092015
1837238405Sjkim.long	2591802758,2591802758
1838238405Sjkim.long	2768779219,2768779219
1839238405Sjkim.long	4068943920,4068943920
1840238405Sjkim.long	2997206819,2997206819
1841238405Sjkim.long	3127509762,3127509762
1842238405Sjkim.long	1552029421,1552029421
1843238405Sjkim.long	723308426,723308426
1844238405Sjkim.long	2461301159,2461301159
1845238405Sjkim.long	4042393587,4042393587
1846238405Sjkim.long	2715969870,2715969870
1847238405Sjkim.long	3455375973,3455375973
1848238405Sjkim.long	3586000134,3586000134
1849238405Sjkim.long	526529745,526529745
1850238405Sjkim.long	2331944644,2331944644
1851238405Sjkim.long	2639474228,2639474228
1852238405Sjkim.long	2689987490,2689987490
1853238405Sjkim.long	853641733,853641733
1854238405Sjkim.long	1978398372,1978398372
1855238405Sjkim.long	971801355,971801355
1856238405Sjkim.long	2867814464,2867814464
1857238405Sjkim.long	111112542,111112542
1858238405Sjkim.long	1360031421,1360031421
1859238405Sjkim.long	4186579262,4186579262
1860238405Sjkim.long	1023860118,1023860118
1861238405Sjkim.long	2919579357,2919579357
1862238405Sjkim.long	1186850381,1186850381
1863238405Sjkim.long	3045938321,3045938321
1864238405Sjkim.long	90031217,90031217
1865238405Sjkim.long	1876166148,1876166148
1866238405Sjkim.long	4279586912,4279586912
1867238405Sjkim.long	620468249,620468249
1868238405Sjkim.long	2548678102,2548678102
1869238405Sjkim.long	3426959497,3426959497
1870238405Sjkim.long	2006899047,2006899047
1871238405Sjkim.long	3175278768,3175278768
1872238405Sjkim.long	2290845959,2290845959
1873238405Sjkim.long	945494503,945494503
1874238405Sjkim.long	3689859193,3689859193
1875238405Sjkim.long	1191869601,1191869601
1876238405Sjkim.long	3910091388,3910091388
1877238405Sjkim.long	3374220536,3374220536
1878238405Sjkim.long	0,0
1879238405Sjkim.long	2206629897,2206629897
1880238405Sjkim.long	1223502642,1223502642
1881238405Sjkim.long	2893025566,2893025566
1882238405Sjkim.long	1316117100,1316117100
1883238405Sjkim.long	4227796733,4227796733
1884238405Sjkim.long	1446544655,1446544655
1885238405Sjkim.long	517320253,517320253
1886238405Sjkim.long	658058550,658058550
1887238405Sjkim.long	1691946762,1691946762
1888238405Sjkim.long	564550760,564550760
1889238405Sjkim.long	3511966619,3511966619
1890238405Sjkim.long	976107044,976107044
1891238405Sjkim.long	2976320012,2976320012
1892238405Sjkim.long	266819475,266819475
1893238405Sjkim.long	3533106868,3533106868
1894238405Sjkim.long	2660342555,2660342555
1895238405Sjkim.long	1338359936,1338359936
1896238405Sjkim.long	2720062561,2720062561
1897238405Sjkim.long	1766553434,1766553434
1898238405Sjkim.long	370807324,370807324
1899238405Sjkim.long	179999714,179999714
1900238405Sjkim.long	3844776128,3844776128
1901238405Sjkim.long	1138762300,1138762300
1902238405Sjkim.long	488053522,488053522
1903238405Sjkim.long	185403662,185403662
1904238405Sjkim.long	2915535858,2915535858
1905238405Sjkim.long	3114841645,3114841645
1906238405Sjkim.long	3366526484,3366526484
1907238405Sjkim.long	2233069911,2233069911
1908238405Sjkim.long	1275557295,1275557295
1909238405Sjkim.long	3151862254,3151862254
1910238405Sjkim.long	4250959779,4250959779
1911238405Sjkim.long	2670068215,2670068215
1912238405Sjkim.long	3170202204,3170202204
1913238405Sjkim.long	3309004356,3309004356
1914238405Sjkim.long	880737115,880737115
1915238405Sjkim.long	1982415755,1982415755
1916238405Sjkim.long	3703972811,3703972811
1917238405Sjkim.long	1761406390,1761406390
1918238405Sjkim.long	1676797112,1676797112
1919238405Sjkim.long	3403428311,3403428311
1920238405Sjkim.long	277177154,277177154
1921238405Sjkim.long	1076008723,1076008723
1922238405Sjkim.long	538035844,538035844
1923238405Sjkim.long	2099530373,2099530373
1924238405Sjkim.long	4164795346,4164795346
1925238405Sjkim.long	288553390,288553390
1926238405Sjkim.long	1839278535,1839278535
1927238405Sjkim.long	1261411869,1261411869
1928238405Sjkim.long	4080055004,4080055004
1929238405Sjkim.long	3964831245,3964831245
1930238405Sjkim.long	3504587127,3504587127
1931238405Sjkim.long	1813426987,1813426987
1932238405Sjkim.long	2579067049,2579067049
1933238405Sjkim.long	4199060497,4199060497
1934238405Sjkim.long	577038663,577038663
1935238405Sjkim.long	3297574056,3297574056
1936238405Sjkim.long	440397984,440397984
1937238405Sjkim.long	3626794326,3626794326
1938238405Sjkim.long	4019204898,4019204898
1939238405Sjkim.long	3343796615,3343796615
1940238405Sjkim.long	3251714265,3251714265
1941238405Sjkim.long	4272081548,4272081548
1942238405Sjkim.long	906744984,906744984
1943238405Sjkim.long	3481400742,3481400742
1944238405Sjkim.long	685669029,685669029
1945238405Sjkim.long	646887386,646887386
1946238405Sjkim.long	2764025151,2764025151
1947238405Sjkim.long	3835509292,3835509292
1948238405Sjkim.long	227702864,227702864
1949238405Sjkim.long	2613862250,2613862250
1950238405Sjkim.long	1648787028,1648787028
1951238405Sjkim.long	3256061430,3256061430
1952238405Sjkim.long	3904428176,3904428176
1953238405Sjkim.long	1593260334,1593260334
1954238405Sjkim.long	4121936770,4121936770
1955238405Sjkim.long	3196083615,3196083615
1956238405Sjkim.long	2090061929,2090061929
1957238405Sjkim.long	2838353263,2838353263
1958238405Sjkim.long	3004310991,3004310991
1959238405Sjkim.long	999926984,999926984
1960238405Sjkim.long	2809993232,2809993232
1961238405Sjkim.long	1852021992,1852021992
1962238405Sjkim.long	2075868123,2075868123
1963238405Sjkim.long	158869197,158869197
1964238405Sjkim.long	4095236462,4095236462
1965238405Sjkim.long	28809964,28809964
1966238405Sjkim.long	2828685187,2828685187
1967238405Sjkim.long	1701746150,1701746150
1968238405Sjkim.long	2129067946,2129067946
1969238405Sjkim.long	147831841,147831841
1970238405Sjkim.long	3873969647,3873969647
1971238405Sjkim.long	3650873274,3650873274
1972238405Sjkim.long	3459673930,3459673930
1973238405Sjkim.long	3557400554,3557400554
1974238405Sjkim.long	3598495785,3598495785
1975238405Sjkim.long	2947720241,2947720241
1976238405Sjkim.long	824393514,824393514
1977238405Sjkim.long	815048134,815048134
1978238405Sjkim.long	3227951669,3227951669
1979238405Sjkim.long	935087732,935087732
1980238405Sjkim.long	2798289660,2798289660
1981238405Sjkim.long	2966458592,2966458592
1982238405Sjkim.long	366520115,366520115
1983238405Sjkim.long	1251476721,1251476721
1984238405Sjkim.long	4158319681,4158319681
1985238405Sjkim.long	240176511,240176511
1986238405Sjkim.long	804688151,804688151
1987238405Sjkim.long	2379631990,2379631990
1988238405Sjkim.long	1303441219,1303441219
1989238405Sjkim.long	1414376140,1414376140
1990238405Sjkim.long	3741619940,3741619940
1991238405Sjkim.long	3820343710,3820343710
1992238405Sjkim.long	461924940,461924940
1993238405Sjkim.long	3089050817,3089050817
1994238405Sjkim.long	2136040774,2136040774
1995238405Sjkim.long	82468509,82468509
1996238405Sjkim.long	1563790337,1563790337
1997238405Sjkim.long	1937016826,1937016826
1998238405Sjkim.long	776014843,776014843
1999238405Sjkim.long	1511876531,1511876531
2000238405Sjkim.long	1389550482,1389550482
2001238405Sjkim.long	861278441,861278441
2002238405Sjkim.long	323475053,323475053
2003238405Sjkim.long	2355222426,2355222426
2004238405Sjkim.long	2047648055,2047648055
2005238405Sjkim.long	2383738969,2383738969
2006238405Sjkim.long	2302415851,2302415851
2007238405Sjkim.long	3995576782,3995576782
2008238405Sjkim.long	902390199,902390199
2009238405Sjkim.long	3991215329,3991215329
2010238405Sjkim.long	1018251130,1018251130
2011238405Sjkim.long	1507840668,1507840668
2012238405Sjkim.long	1064563285,1064563285
2013238405Sjkim.long	2043548696,2043548696
2014238405Sjkim.long	3208103795,3208103795
2015238405Sjkim.long	3939366739,3939366739
2016238405Sjkim.long	1537932639,1537932639
2017238405Sjkim.long	342834655,342834655
2018238405Sjkim.long	2262516856,2262516856
2019238405Sjkim.long	2180231114,2180231114
2020238405Sjkim.long	1053059257,1053059257
2021238405Sjkim.long	741614648,741614648
2022238405Sjkim.long	1598071746,1598071746
2023238405Sjkim.long	1925389590,1925389590
2024238405Sjkim.long	203809468,203809468
2025238405Sjkim.long	2336832552,2336832552
2026238405Sjkim.long	1100287487,1100287487
2027238405Sjkim.long	1895934009,1895934009
2028238405Sjkim.long	3736275976,3736275976
2029238405Sjkim.long	2632234200,2632234200
2030238405Sjkim.long	2428589668,2428589668
2031238405Sjkim.long	1636092795,1636092795
2032238405Sjkim.long	1890988757,1890988757
2033238405Sjkim.long	1952214088,1952214088
2034238405Sjkim.long	1113045200,1113045200
2035238405Sjkim.byte	82,9,106,213,48,54,165,56
2036238405Sjkim.byte	191,64,163,158,129,243,215,251
2037238405Sjkim.byte	124,227,57,130,155,47,255,135
2038238405Sjkim.byte	52,142,67,68,196,222,233,203
2039238405Sjkim.byte	84,123,148,50,166,194,35,61
2040238405Sjkim.byte	238,76,149,11,66,250,195,78
2041238405Sjkim.byte	8,46,161,102,40,217,36,178
2042238405Sjkim.byte	118,91,162,73,109,139,209,37
2043238405Sjkim.byte	114,248,246,100,134,104,152,22
2044238405Sjkim.byte	212,164,92,204,93,101,182,146
2045238405Sjkim.byte	108,112,72,80,253,237,185,218
2046238405Sjkim.byte	94,21,70,87,167,141,157,132
2047238405Sjkim.byte	144,216,171,0,140,188,211,10
2048238405Sjkim.byte	247,228,88,5,184,179,69,6
2049238405Sjkim.byte	208,44,30,143,202,63,15,2
2050238405Sjkim.byte	193,175,189,3,1,19,138,107
2051238405Sjkim.byte	58,145,17,65,79,103,220,234
2052238405Sjkim.byte	151,242,207,206,240,180,230,115
2053238405Sjkim.byte	150,172,116,34,231,173,53,133
2054238405Sjkim.byte	226,249,55,232,28,117,223,110
2055238405Sjkim.byte	71,241,26,113,29,41,197,137
2056238405Sjkim.byte	111,183,98,14,170,24,190,27
2057238405Sjkim.byte	252,86,62,75,198,210,121,32
2058238405Sjkim.byte	154,219,192,254,120,205,90,244
2059238405Sjkim.byte	31,221,168,51,136,7,199,49
2060238405Sjkim.byte	177,18,16,89,39,128,236,95
2061238405Sjkim.byte	96,81,127,169,25,181,74,13
2062238405Sjkim.byte	45,229,122,159,147,201,156,239
2063238405Sjkim.byte	160,224,59,77,174,42,245,176
2064238405Sjkim.byte	200,235,187,60,131,83,153,97
2065238405Sjkim.byte	23,43,4,126,186,119,214,38
2066238405Sjkim.byte	225,105,20,99,85,33,12,125
2067238405Sjkim.byte	82,9,106,213,48,54,165,56
2068238405Sjkim.byte	191,64,163,158,129,243,215,251
2069238405Sjkim.byte	124,227,57,130,155,47,255,135
2070238405Sjkim.byte	52,142,67,68,196,222,233,203
2071238405Sjkim.byte	84,123,148,50,166,194,35,61
2072238405Sjkim.byte	238,76,149,11,66,250,195,78
2073238405Sjkim.byte	8,46,161,102,40,217,36,178
2074238405Sjkim.byte	118,91,162,73,109,139,209,37
2075238405Sjkim.byte	114,248,246,100,134,104,152,22
2076238405Sjkim.byte	212,164,92,204,93,101,182,146
2077238405Sjkim.byte	108,112,72,80,253,237,185,218
2078238405Sjkim.byte	94,21,70,87,167,141,157,132
2079238405Sjkim.byte	144,216,171,0,140,188,211,10
2080238405Sjkim.byte	247,228,88,5,184,179,69,6
2081238405Sjkim.byte	208,44,30,143,202,63,15,2
2082238405Sjkim.byte	193,175,189,3,1,19,138,107
2083238405Sjkim.byte	58,145,17,65,79,103,220,234
2084238405Sjkim.byte	151,242,207,206,240,180,230,115
2085238405Sjkim.byte	150,172,116,34,231,173,53,133
2086238405Sjkim.byte	226,249,55,232,28,117,223,110
2087238405Sjkim.byte	71,241,26,113,29,41,197,137
2088238405Sjkim.byte	111,183,98,14,170,24,190,27
2089238405Sjkim.byte	252,86,62,75,198,210,121,32
2090238405Sjkim.byte	154,219,192,254,120,205,90,244
2091238405Sjkim.byte	31,221,168,51,136,7,199,49
2092238405Sjkim.byte	177,18,16,89,39,128,236,95
2093238405Sjkim.byte	96,81,127,169,25,181,74,13
2094238405Sjkim.byte	45,229,122,159,147,201,156,239
2095238405Sjkim.byte	160,224,59,77,174,42,245,176
2096238405Sjkim.byte	200,235,187,60,131,83,153,97
2097238405Sjkim.byte	23,43,4,126,186,119,214,38
2098238405Sjkim.byte	225,105,20,99,85,33,12,125
2099238405Sjkim.byte	82,9,106,213,48,54,165,56
2100238405Sjkim.byte	191,64,163,158,129,243,215,251
2101238405Sjkim.byte	124,227,57,130,155,47,255,135
2102238405Sjkim.byte	52,142,67,68,196,222,233,203
2103238405Sjkim.byte	84,123,148,50,166,194,35,61
2104238405Sjkim.byte	238,76,149,11,66,250,195,78
2105238405Sjkim.byte	8,46,161,102,40,217,36,178
2106238405Sjkim.byte	118,91,162,73,109,139,209,37
2107238405Sjkim.byte	114,248,246,100,134,104,152,22
2108238405Sjkim.byte	212,164,92,204,93,101,182,146
2109238405Sjkim.byte	108,112,72,80,253,237,185,218
2110238405Sjkim.byte	94,21,70,87,167,141,157,132
2111238405Sjkim.byte	144,216,171,0,140,188,211,10
2112238405Sjkim.byte	247,228,88,5,184,179,69,6
2113238405Sjkim.byte	208,44,30,143,202,63,15,2
2114238405Sjkim.byte	193,175,189,3,1,19,138,107
2115238405Sjkim.byte	58,145,17,65,79,103,220,234
2116238405Sjkim.byte	151,242,207,206,240,180,230,115
2117238405Sjkim.byte	150,172,116,34,231,173,53,133
2118238405Sjkim.byte	226,249,55,232,28,117,223,110
2119238405Sjkim.byte	71,241,26,113,29,41,197,137
2120238405Sjkim.byte	111,183,98,14,170,24,190,27
2121238405Sjkim.byte	252,86,62,75,198,210,121,32
2122238405Sjkim.byte	154,219,192,254,120,205,90,244
2123238405Sjkim.byte	31,221,168,51,136,7,199,49
2124238405Sjkim.byte	177,18,16,89,39,128,236,95
2125238405Sjkim.byte	96,81,127,169,25,181,74,13
2126238405Sjkim.byte	45,229,122,159,147,201,156,239
2127238405Sjkim.byte	160,224,59,77,174,42,245,176
2128238405Sjkim.byte	200,235,187,60,131,83,153,97
2129238405Sjkim.byte	23,43,4,126,186,119,214,38
2130238405Sjkim.byte	225,105,20,99,85,33,12,125
2131238405Sjkim.byte	82,9,106,213,48,54,165,56
2132238405Sjkim.byte	191,64,163,158,129,243,215,251
2133238405Sjkim.byte	124,227,57,130,155,47,255,135
2134238405Sjkim.byte	52,142,67,68,196,222,233,203
2135238405Sjkim.byte	84,123,148,50,166,194,35,61
2136238405Sjkim.byte	238,76,149,11,66,250,195,78
2137238405Sjkim.byte	8,46,161,102,40,217,36,178
2138238405Sjkim.byte	118,91,162,73,109,139,209,37
2139238405Sjkim.byte	114,248,246,100,134,104,152,22
2140238405Sjkim.byte	212,164,92,204,93,101,182,146
2141238405Sjkim.byte	108,112,72,80,253,237,185,218
2142238405Sjkim.byte	94,21,70,87,167,141,157,132
2143238405Sjkim.byte	144,216,171,0,140,188,211,10
2144238405Sjkim.byte	247,228,88,5,184,179,69,6
2145238405Sjkim.byte	208,44,30,143,202,63,15,2
2146238405Sjkim.byte	193,175,189,3,1,19,138,107
2147238405Sjkim.byte	58,145,17,65,79,103,220,234
2148238405Sjkim.byte	151,242,207,206,240,180,230,115
2149238405Sjkim.byte	150,172,116,34,231,173,53,133
2150238405Sjkim.byte	226,249,55,232,28,117,223,110
2151238405Sjkim.byte	71,241,26,113,29,41,197,137
2152238405Sjkim.byte	111,183,98,14,170,24,190,27
2153238405Sjkim.byte	252,86,62,75,198,210,121,32
2154238405Sjkim.byte	154,219,192,254,120,205,90,244
2155238405Sjkim.byte	31,221,168,51,136,7,199,49
2156238405Sjkim.byte	177,18,16,89,39,128,236,95
2157238405Sjkim.byte	96,81,127,169,25,181,74,13
2158238405Sjkim.byte	45,229,122,159,147,201,156,239
2159238405Sjkim.byte	160,224,59,77,174,42,245,176
2160238405Sjkim.byte	200,235,187,60,131,83,153,97
2161238405Sjkim.byte	23,43,4,126,186,119,214,38
2162238405Sjkim.byte	225,105,20,99,85,33,12,125
2163238405Sjkim.size	_x86_AES_decrypt,.-_x86_AES_decrypt
2164238405Sjkim.globl	AES_decrypt
2165238405Sjkim.type	AES_decrypt,@function
2166238405Sjkim.align	16
2167238405SjkimAES_decrypt:
2168238405Sjkim.L_AES_decrypt_begin:
2169238405Sjkim	pushl	%ebp
2170238405Sjkim	pushl	%ebx
2171238405Sjkim	pushl	%esi
2172238405Sjkim	pushl	%edi
2173238405Sjkim	movl	20(%esp),%esi
2174238405Sjkim	movl	28(%esp),%edi
2175238405Sjkim	movl	%esp,%eax
2176238405Sjkim	subl	$36,%esp
2177238405Sjkim	andl	$-64,%esp
2178238405Sjkim	leal	-127(%edi),%ebx
2179238405Sjkim	subl	%esp,%ebx
2180238405Sjkim	negl	%ebx
2181238405Sjkim	andl	$960,%ebx
2182238405Sjkim	subl	%ebx,%esp
2183238405Sjkim	addl	$4,%esp
2184238405Sjkim	movl	%eax,28(%esp)
2185238405Sjkim	call	.L010pic_point
2186238405Sjkim.L010pic_point:
2187238405Sjkim	popl	%ebp
2188238405Sjkim	leal	OPENSSL_ia32cap_P,%eax
2189238405Sjkim	leal	.LAES_Td-.L010pic_point(%ebp),%ebp
2190238405Sjkim	leal	764(%esp),%ebx
2191238405Sjkim	subl	%ebp,%ebx
2192238405Sjkim	andl	$768,%ebx
2193238405Sjkim	leal	2176(%ebp,%ebx,1),%ebp
2194238405Sjkim	btl	$25,(%eax)
2195238405Sjkim	jnc	.L011x86
2196238405Sjkim	movq	(%esi),%mm0
2197238405Sjkim	movq	8(%esi),%mm4
2198238405Sjkim	call	_sse_AES_decrypt_compact
2199238405Sjkim	movl	28(%esp),%esp
2200238405Sjkim	movl	24(%esp),%esi
2201238405Sjkim	movq	%mm0,(%esi)
2202238405Sjkim	movq	%mm4,8(%esi)
2203238405Sjkim	emms
2204238405Sjkim	popl	%edi
2205238405Sjkim	popl	%esi
2206238405Sjkim	popl	%ebx
2207238405Sjkim	popl	%ebp
2208238405Sjkim	ret
2209238405Sjkim.align	16
2210238405Sjkim.L011x86:
2211238405Sjkim	movl	%ebp,24(%esp)
2212238405Sjkim	movl	(%esi),%eax
2213238405Sjkim	movl	4(%esi),%ebx
2214238405Sjkim	movl	8(%esi),%ecx
2215238405Sjkim	movl	12(%esi),%edx
2216238405Sjkim	call	_x86_AES_decrypt_compact
2217238405Sjkim	movl	28(%esp),%esp
2218238405Sjkim	movl	24(%esp),%esi
2219238405Sjkim	movl	%eax,(%esi)
2220238405Sjkim	movl	%ebx,4(%esi)
2221238405Sjkim	movl	%ecx,8(%esi)
2222238405Sjkim	movl	%edx,12(%esi)
2223238405Sjkim	popl	%edi
2224238405Sjkim	popl	%esi
2225238405Sjkim	popl	%ebx
2226238405Sjkim	popl	%ebp
2227238405Sjkim	ret
2228238405Sjkim.size	AES_decrypt,.-.L_AES_decrypt_begin
2229238405Sjkim.globl	AES_cbc_encrypt
2230238405Sjkim.type	AES_cbc_encrypt,@function
2231238405Sjkim.align	16
2232238405SjkimAES_cbc_encrypt:
2233238405Sjkim.L_AES_cbc_encrypt_begin:
2234238405Sjkim	pushl	%ebp
2235238405Sjkim	pushl	%ebx
2236238405Sjkim	pushl	%esi
2237238405Sjkim	pushl	%edi
2238238405Sjkim	movl	28(%esp),%ecx
2239238405Sjkim	cmpl	$0,%ecx
2240238405Sjkim	je	.L012drop_out
2241238405Sjkim	call	.L013pic_point
2242238405Sjkim.L013pic_point:
2243238405Sjkim	popl	%ebp
2244238405Sjkim	leal	OPENSSL_ia32cap_P,%eax
2245238405Sjkim	cmpl	$0,40(%esp)
2246238405Sjkim	leal	.LAES_Te-.L013pic_point(%ebp),%ebp
2247238405Sjkim	jne	.L014picked_te
2248238405Sjkim	leal	.LAES_Td-.LAES_Te(%ebp),%ebp
2249238405Sjkim.L014picked_te:
2250238405Sjkim	pushfl
2251238405Sjkim	cld
2252238405Sjkim	cmpl	$512,%ecx
2253238405Sjkim	jb	.L015slow_way
2254238405Sjkim	testl	$15,%ecx
2255238405Sjkim	jnz	.L015slow_way
2256238405Sjkim	btl	$28,(%eax)
2257238405Sjkim	jc	.L015slow_way
2258238405Sjkim	leal	-324(%esp),%esi
2259238405Sjkim	andl	$-64,%esi
2260238405Sjkim	movl	%ebp,%eax
2261238405Sjkim	leal	2304(%ebp),%ebx
2262238405Sjkim	movl	%esi,%edx
2263238405Sjkim	andl	$4095,%eax
2264238405Sjkim	andl	$4095,%ebx
2265238405Sjkim	andl	$4095,%edx
2266238405Sjkim	cmpl	%ebx,%edx
2267238405Sjkim	jb	.L016tbl_break_out
2268238405Sjkim	subl	%ebx,%edx
2269238405Sjkim	subl	%edx,%esi
2270238405Sjkim	jmp	.L017tbl_ok
2271238405Sjkim.align	4
2272238405Sjkim.L016tbl_break_out:
2273238405Sjkim	subl	%eax,%edx
2274238405Sjkim	andl	$4095,%edx
2275238405Sjkim	addl	$384,%edx
2276238405Sjkim	subl	%edx,%esi
2277238405Sjkim.align	4
2278238405Sjkim.L017tbl_ok:
2279238405Sjkim	leal	24(%esp),%edx
2280238405Sjkim	xchgl	%esi,%esp
2281238405Sjkim	addl	$4,%esp
2282238405Sjkim	movl	%ebp,24(%esp)
2283238405Sjkim	movl	%esi,28(%esp)
2284238405Sjkim	movl	(%edx),%eax
2285238405Sjkim	movl	4(%edx),%ebx
2286238405Sjkim	movl	12(%edx),%edi
2287238405Sjkim	movl	16(%edx),%esi
2288238405Sjkim	movl	20(%edx),%edx
2289238405Sjkim	movl	%eax,32(%esp)
2290238405Sjkim	movl	%ebx,36(%esp)
2291238405Sjkim	movl	%ecx,40(%esp)
2292238405Sjkim	movl	%edi,44(%esp)
2293238405Sjkim	movl	%esi,48(%esp)
2294238405Sjkim	movl	$0,316(%esp)
2295238405Sjkim	movl	%edi,%ebx
2296238405Sjkim	movl	$61,%ecx
2297238405Sjkim	subl	%ebp,%ebx
2298238405Sjkim	movl	%edi,%esi
2299238405Sjkim	andl	$4095,%ebx
2300238405Sjkim	leal	76(%esp),%edi
2301238405Sjkim	cmpl	$2304,%ebx
2302238405Sjkim	jb	.L018do_copy
2303238405Sjkim	cmpl	$3852,%ebx
2304238405Sjkim	jb	.L019skip_copy
2305238405Sjkim.align	4
2306238405Sjkim.L018do_copy:
2307238405Sjkim	movl	%edi,44(%esp)
2308238405Sjkim.long	2784229001
2309238405Sjkim.L019skip_copy:
2310238405Sjkim	movl	$16,%edi
2311238405Sjkim.align	4
2312238405Sjkim.L020prefetch_tbl:
2313238405Sjkim	movl	(%ebp),%eax
2314238405Sjkim	movl	32(%ebp),%ebx
2315238405Sjkim	movl	64(%ebp),%ecx
2316238405Sjkim	movl	96(%ebp),%esi
2317238405Sjkim	leal	128(%ebp),%ebp
2318238405Sjkim	subl	$1,%edi
2319238405Sjkim	jnz	.L020prefetch_tbl
2320238405Sjkim	subl	$2048,%ebp
2321238405Sjkim	movl	32(%esp),%esi
2322238405Sjkim	movl	48(%esp),%edi
2323238405Sjkim	cmpl	$0,%edx
2324238405Sjkim	je	.L021fast_decrypt
2325238405Sjkim	movl	(%edi),%eax
2326238405Sjkim	movl	4(%edi),%ebx
2327238405Sjkim.align	16
2328238405Sjkim.L022fast_enc_loop:
2329238405Sjkim	movl	8(%edi),%ecx
2330238405Sjkim	movl	12(%edi),%edx
2331238405Sjkim	xorl	(%esi),%eax
2332238405Sjkim	xorl	4(%esi),%ebx
2333238405Sjkim	xorl	8(%esi),%ecx
2334238405Sjkim	xorl	12(%esi),%edx
2335238405Sjkim	movl	44(%esp),%edi
2336238405Sjkim	call	_x86_AES_encrypt
2337238405Sjkim	movl	32(%esp),%esi
2338238405Sjkim	movl	36(%esp),%edi
2339238405Sjkim	movl	%eax,(%edi)
2340238405Sjkim	movl	%ebx,4(%edi)
2341238405Sjkim	movl	%ecx,8(%edi)
2342238405Sjkim	movl	%edx,12(%edi)
2343238405Sjkim	leal	16(%esi),%esi
2344238405Sjkim	movl	40(%esp),%ecx
2345238405Sjkim	movl	%esi,32(%esp)
2346238405Sjkim	leal	16(%edi),%edx
2347238405Sjkim	movl	%edx,36(%esp)
2348238405Sjkim	subl	$16,%ecx
2349238405Sjkim	movl	%ecx,40(%esp)
2350238405Sjkim	jnz	.L022fast_enc_loop
2351238405Sjkim	movl	48(%esp),%esi
2352238405Sjkim	movl	8(%edi),%ecx
2353238405Sjkim	movl	12(%edi),%edx
2354238405Sjkim	movl	%eax,(%esi)
2355238405Sjkim	movl	%ebx,4(%esi)
2356238405Sjkim	movl	%ecx,8(%esi)
2357238405Sjkim	movl	%edx,12(%esi)
2358238405Sjkim	cmpl	$0,316(%esp)
2359238405Sjkim	movl	44(%esp),%edi
2360238405Sjkim	je	.L023skip_ezero
2361238405Sjkim	movl	$60,%ecx
2362238405Sjkim	xorl	%eax,%eax
2363238405Sjkim.align	4
2364238405Sjkim.long	2884892297
2365238405Sjkim.L023skip_ezero:
2366238405Sjkim	movl	28(%esp),%esp
2367238405Sjkim	popfl
2368238405Sjkim.L012drop_out:
2369238405Sjkim	popl	%edi
2370238405Sjkim	popl	%esi
2371238405Sjkim	popl	%ebx
2372238405Sjkim	popl	%ebp
2373238405Sjkim	ret
2374238405Sjkim	pushfl
2375238405Sjkim.align	16
2376238405Sjkim.L021fast_decrypt:
2377238405Sjkim	cmpl	36(%esp),%esi
2378238405Sjkim	je	.L024fast_dec_in_place
2379238405Sjkim	movl	%edi,52(%esp)
2380238405Sjkim.align	4
2381238405Sjkim.align	16
2382238405Sjkim.L025fast_dec_loop:
2383238405Sjkim	movl	(%esi),%eax
2384238405Sjkim	movl	4(%esi),%ebx
2385238405Sjkim	movl	8(%esi),%ecx
2386238405Sjkim	movl	12(%esi),%edx
2387238405Sjkim	movl	44(%esp),%edi
2388238405Sjkim	call	_x86_AES_decrypt
2389238405Sjkim	movl	52(%esp),%edi
2390238405Sjkim	movl	40(%esp),%esi
2391238405Sjkim	xorl	(%edi),%eax
2392238405Sjkim	xorl	4(%edi),%ebx
2393238405Sjkim	xorl	8(%edi),%ecx
2394238405Sjkim	xorl	12(%edi),%edx
2395238405Sjkim	movl	36(%esp),%edi
2396238405Sjkim	movl	32(%esp),%esi
2397238405Sjkim	movl	%eax,(%edi)
2398238405Sjkim	movl	%ebx,4(%edi)
2399238405Sjkim	movl	%ecx,8(%edi)
2400238405Sjkim	movl	%edx,12(%edi)
2401238405Sjkim	movl	40(%esp),%ecx
2402238405Sjkim	movl	%esi,52(%esp)
2403238405Sjkim	leal	16(%esi),%esi
2404238405Sjkim	movl	%esi,32(%esp)
2405238405Sjkim	leal	16(%edi),%edi
2406238405Sjkim	movl	%edi,36(%esp)
2407238405Sjkim	subl	$16,%ecx
2408238405Sjkim	movl	%ecx,40(%esp)
2409238405Sjkim	jnz	.L025fast_dec_loop
2410238405Sjkim	movl	52(%esp),%edi
2411238405Sjkim	movl	48(%esp),%esi
2412238405Sjkim	movl	(%edi),%eax
2413238405Sjkim	movl	4(%edi),%ebx
2414238405Sjkim	movl	8(%edi),%ecx
2415238405Sjkim	movl	12(%edi),%edx
2416238405Sjkim	movl	%eax,(%esi)
2417238405Sjkim	movl	%ebx,4(%esi)
2418238405Sjkim	movl	%ecx,8(%esi)
2419238405Sjkim	movl	%edx,12(%esi)
2420238405Sjkim	jmp	.L026fast_dec_out
2421238405Sjkim.align	16
2422238405Sjkim.L024fast_dec_in_place:
2423238405Sjkim.L027fast_dec_in_place_loop:
2424238405Sjkim	movl	(%esi),%eax
2425238405Sjkim	movl	4(%esi),%ebx
2426238405Sjkim	movl	8(%esi),%ecx
2427238405Sjkim	movl	12(%esi),%edx
2428238405Sjkim	leal	60(%esp),%edi
2429238405Sjkim	movl	%eax,(%edi)
2430238405Sjkim	movl	%ebx,4(%edi)
2431238405Sjkim	movl	%ecx,8(%edi)
2432238405Sjkim	movl	%edx,12(%edi)
2433238405Sjkim	movl	44(%esp),%edi
2434238405Sjkim	call	_x86_AES_decrypt
2435238405Sjkim	movl	48(%esp),%edi
2436238405Sjkim	movl	36(%esp),%esi
2437238405Sjkim	xorl	(%edi),%eax
2438238405Sjkim	xorl	4(%edi),%ebx
2439238405Sjkim	xorl	8(%edi),%ecx
2440238405Sjkim	xorl	12(%edi),%edx
2441238405Sjkim	movl	%eax,(%esi)
2442238405Sjkim	movl	%ebx,4(%esi)
2443238405Sjkim	movl	%ecx,8(%esi)
2444238405Sjkim	movl	%edx,12(%esi)
2445238405Sjkim	leal	16(%esi),%esi
2446238405Sjkim	movl	%esi,36(%esp)
2447238405Sjkim	leal	60(%esp),%esi
2448238405Sjkim	movl	(%esi),%eax
2449238405Sjkim	movl	4(%esi),%ebx
2450238405Sjkim	movl	8(%esi),%ecx
2451238405Sjkim	movl	12(%esi),%edx
2452238405Sjkim	movl	%eax,(%edi)
2453238405Sjkim	movl	%ebx,4(%edi)
2454238405Sjkim	movl	%ecx,8(%edi)
2455238405Sjkim	movl	%edx,12(%edi)
2456238405Sjkim	movl	32(%esp),%esi
2457238405Sjkim	movl	40(%esp),%ecx
2458238405Sjkim	leal	16(%esi),%esi
2459238405Sjkim	movl	%esi,32(%esp)
2460238405Sjkim	subl	$16,%ecx
2461238405Sjkim	movl	%ecx,40(%esp)
2462238405Sjkim	jnz	.L027fast_dec_in_place_loop
2463238405Sjkim.align	4
2464238405Sjkim.L026fast_dec_out:
2465238405Sjkim	cmpl	$0,316(%esp)
2466238405Sjkim	movl	44(%esp),%edi
2467238405Sjkim	je	.L028skip_dzero
2468238405Sjkim	movl	$60,%ecx
2469238405Sjkim	xorl	%eax,%eax
2470238405Sjkim.align	4
2471238405Sjkim.long	2884892297
2472238405Sjkim.L028skip_dzero:
2473238405Sjkim	movl	28(%esp),%esp
2474238405Sjkim	popfl
2475238405Sjkim	popl	%edi
2476238405Sjkim	popl	%esi
2477238405Sjkim	popl	%ebx
2478238405Sjkim	popl	%ebp
2479238405Sjkim	ret
2480238405Sjkim	pushfl
2481238405Sjkim.align	16
2482238405Sjkim.L015slow_way:
2483238405Sjkim	movl	(%eax),%eax
2484238405Sjkim	movl	36(%esp),%edi
2485238405Sjkim	leal	-80(%esp),%esi
2486238405Sjkim	andl	$-64,%esi
2487238405Sjkim	leal	-143(%edi),%ebx
2488238405Sjkim	subl	%esi,%ebx
2489238405Sjkim	negl	%ebx
2490238405Sjkim	andl	$960,%ebx
2491238405Sjkim	subl	%ebx,%esi
2492238405Sjkim	leal	768(%esi),%ebx
2493238405Sjkim	subl	%ebp,%ebx
2494238405Sjkim	andl	$768,%ebx
2495238405Sjkim	leal	2176(%ebp,%ebx,1),%ebp
2496238405Sjkim	leal	24(%esp),%edx
2497238405Sjkim	xchgl	%esi,%esp
2498238405Sjkim	addl	$4,%esp
2499238405Sjkim	movl	%ebp,24(%esp)
2500238405Sjkim	movl	%esi,28(%esp)
2501238405Sjkim	movl	%eax,52(%esp)
2502238405Sjkim	movl	(%edx),%eax
2503238405Sjkim	movl	4(%edx),%ebx
2504238405Sjkim	movl	16(%edx),%esi
2505238405Sjkim	movl	20(%edx),%edx
2506238405Sjkim	movl	%eax,32(%esp)
2507238405Sjkim	movl	%ebx,36(%esp)
2508238405Sjkim	movl	%ecx,40(%esp)
2509238405Sjkim	movl	%edi,44(%esp)
2510238405Sjkim	movl	%esi,48(%esp)
2511238405Sjkim	movl	%esi,%edi
2512238405Sjkim	movl	%eax,%esi
2513238405Sjkim	cmpl	$0,%edx
2514238405Sjkim	je	.L029slow_decrypt
2515238405Sjkim	cmpl	$16,%ecx
2516238405Sjkim	movl	%ebx,%edx
2517238405Sjkim	jb	.L030slow_enc_tail
2518238405Sjkim	btl	$25,52(%esp)
2519238405Sjkim	jnc	.L031slow_enc_x86
2520238405Sjkim	movq	(%edi),%mm0
2521238405Sjkim	movq	8(%edi),%mm4
2522238405Sjkim.align	16
2523238405Sjkim.L032slow_enc_loop_sse:
2524238405Sjkim	pxor	(%esi),%mm0
2525238405Sjkim	pxor	8(%esi),%mm4
2526238405Sjkim	movl	44(%esp),%edi
2527238405Sjkim	call	_sse_AES_encrypt_compact
2528238405Sjkim	movl	32(%esp),%esi
2529238405Sjkim	movl	36(%esp),%edi
2530238405Sjkim	movl	40(%esp),%ecx
2531238405Sjkim	movq	%mm0,(%edi)
2532238405Sjkim	movq	%mm4,8(%edi)
2533238405Sjkim	leal	16(%esi),%esi
2534238405Sjkim	movl	%esi,32(%esp)
2535238405Sjkim	leal	16(%edi),%edx
2536238405Sjkim	movl	%edx,36(%esp)
2537238405Sjkim	subl	$16,%ecx
2538238405Sjkim	cmpl	$16,%ecx
2539238405Sjkim	movl	%ecx,40(%esp)
2540238405Sjkim	jae	.L032slow_enc_loop_sse
2541238405Sjkim	testl	$15,%ecx
2542238405Sjkim	jnz	.L030slow_enc_tail
2543238405Sjkim	movl	48(%esp),%esi
2544238405Sjkim	movq	%mm0,(%esi)
2545238405Sjkim	movq	%mm4,8(%esi)
2546238405Sjkim	emms
2547238405Sjkim	movl	28(%esp),%esp
2548238405Sjkim	popfl
2549238405Sjkim	popl	%edi
2550238405Sjkim	popl	%esi
2551238405Sjkim	popl	%ebx
2552238405Sjkim	popl	%ebp
2553238405Sjkim	ret
2554238405Sjkim	pushfl
2555238405Sjkim.align	16
2556238405Sjkim.L031slow_enc_x86:
2557238405Sjkim	movl	(%edi),%eax
2558238405Sjkim	movl	4(%edi),%ebx
2559238405Sjkim.align	4
2560238405Sjkim.L033slow_enc_loop_x86:
2561238405Sjkim	movl	8(%edi),%ecx
2562238405Sjkim	movl	12(%edi),%edx
2563238405Sjkim	xorl	(%esi),%eax
2564238405Sjkim	xorl	4(%esi),%ebx
2565238405Sjkim	xorl	8(%esi),%ecx
2566238405Sjkim	xorl	12(%esi),%edx
2567238405Sjkim	movl	44(%esp),%edi
2568238405Sjkim	call	_x86_AES_encrypt_compact
2569238405Sjkim	movl	32(%esp),%esi
2570238405Sjkim	movl	36(%esp),%edi
2571238405Sjkim	movl	%eax,(%edi)
2572238405Sjkim	movl	%ebx,4(%edi)
2573238405Sjkim	movl	%ecx,8(%edi)
2574238405Sjkim	movl	%edx,12(%edi)
2575238405Sjkim	movl	40(%esp),%ecx
2576238405Sjkim	leal	16(%esi),%esi
2577238405Sjkim	movl	%esi,32(%esp)
2578238405Sjkim	leal	16(%edi),%edx
2579238405Sjkim	movl	%edx,36(%esp)
2580238405Sjkim	subl	$16,%ecx
2581238405Sjkim	cmpl	$16,%ecx
2582238405Sjkim	movl	%ecx,40(%esp)
2583238405Sjkim	jae	.L033slow_enc_loop_x86
2584238405Sjkim	testl	$15,%ecx
2585238405Sjkim	jnz	.L030slow_enc_tail
2586238405Sjkim	movl	48(%esp),%esi
2587238405Sjkim	movl	8(%edi),%ecx
2588238405Sjkim	movl	12(%edi),%edx
2589238405Sjkim	movl	%eax,(%esi)
2590238405Sjkim	movl	%ebx,4(%esi)
2591238405Sjkim	movl	%ecx,8(%esi)
2592238405Sjkim	movl	%edx,12(%esi)
2593238405Sjkim	movl	28(%esp),%esp
2594238405Sjkim	popfl
2595238405Sjkim	popl	%edi
2596238405Sjkim	popl	%esi
2597238405Sjkim	popl	%ebx
2598238405Sjkim	popl	%ebp
2599238405Sjkim	ret
2600238405Sjkim	pushfl
2601238405Sjkim.align	16
2602238405Sjkim.L030slow_enc_tail:
2603238405Sjkim	emms
2604238405Sjkim	movl	%edx,%edi
2605238405Sjkim	movl	$16,%ebx
2606238405Sjkim	subl	%ecx,%ebx
2607238405Sjkim	cmpl	%esi,%edi
2608238405Sjkim	je	.L034enc_in_place
2609238405Sjkim.align	4
2610238405Sjkim.long	2767451785
2611238405Sjkim	jmp	.L035enc_skip_in_place
2612238405Sjkim.L034enc_in_place:
2613238405Sjkim	leal	(%edi,%ecx,1),%edi
2614238405Sjkim.L035enc_skip_in_place:
2615238405Sjkim	movl	%ebx,%ecx
2616238405Sjkim	xorl	%eax,%eax
2617238405Sjkim.align	4
2618238405Sjkim.long	2868115081
2619238405Sjkim	movl	48(%esp),%edi
2620238405Sjkim	movl	%edx,%esi
2621238405Sjkim	movl	(%edi),%eax
2622238405Sjkim	movl	4(%edi),%ebx
2623238405Sjkim	movl	$16,40(%esp)
2624238405Sjkim	jmp	.L033slow_enc_loop_x86
2625238405Sjkim.align	16
2626238405Sjkim.L029slow_decrypt:
2627238405Sjkim	btl	$25,52(%esp)
2628238405Sjkim	jnc	.L036slow_dec_loop_x86
2629238405Sjkim.align	4
2630238405Sjkim.L037slow_dec_loop_sse:
2631238405Sjkim	movq	(%esi),%mm0
2632238405Sjkim	movq	8(%esi),%mm4
2633238405Sjkim	movl	44(%esp),%edi
2634238405Sjkim	call	_sse_AES_decrypt_compact
2635238405Sjkim	movl	32(%esp),%esi
2636238405Sjkim	leal	60(%esp),%eax
2637238405Sjkim	movl	36(%esp),%ebx
2638238405Sjkim	movl	40(%esp),%ecx
2639238405Sjkim	movl	48(%esp),%edi
2640238405Sjkim	movq	(%esi),%mm1
2641238405Sjkim	movq	8(%esi),%mm5
2642238405Sjkim	pxor	(%edi),%mm0
2643238405Sjkim	pxor	8(%edi),%mm4
2644238405Sjkim	movq	%mm1,(%edi)
2645238405Sjkim	movq	%mm5,8(%edi)
2646238405Sjkim	subl	$16,%ecx
2647238405Sjkim	jc	.L038slow_dec_partial_sse
2648238405Sjkim	movq	%mm0,(%ebx)
2649238405Sjkim	movq	%mm4,8(%ebx)
2650238405Sjkim	leal	16(%ebx),%ebx
2651238405Sjkim	movl	%ebx,36(%esp)
2652238405Sjkim	leal	16(%esi),%esi
2653238405Sjkim	movl	%esi,32(%esp)
2654238405Sjkim	movl	%ecx,40(%esp)
2655238405Sjkim	jnz	.L037slow_dec_loop_sse
2656238405Sjkim	emms
2657238405Sjkim	movl	28(%esp),%esp
2658238405Sjkim	popfl
2659238405Sjkim	popl	%edi
2660238405Sjkim	popl	%esi
2661238405Sjkim	popl	%ebx
2662238405Sjkim	popl	%ebp
2663238405Sjkim	ret
2664238405Sjkim	pushfl
2665238405Sjkim.align	16
2666238405Sjkim.L038slow_dec_partial_sse:
2667238405Sjkim	movq	%mm0,(%eax)
2668238405Sjkim	movq	%mm4,8(%eax)
2669238405Sjkim	emms
2670238405Sjkim	addl	$16,%ecx
2671238405Sjkim	movl	%ebx,%edi
2672238405Sjkim	movl	%eax,%esi
2673238405Sjkim.align	4
2674238405Sjkim.long	2767451785
2675238405Sjkim	movl	28(%esp),%esp
2676238405Sjkim	popfl
2677238405Sjkim	popl	%edi
2678238405Sjkim	popl	%esi
2679238405Sjkim	popl	%ebx
2680238405Sjkim	popl	%ebp
2681238405Sjkim	ret
2682238405Sjkim	pushfl
2683238405Sjkim.align	16
2684238405Sjkim.L036slow_dec_loop_x86:
2685238405Sjkim	movl	(%esi),%eax
2686238405Sjkim	movl	4(%esi),%ebx
2687238405Sjkim	movl	8(%esi),%ecx
2688238405Sjkim	movl	12(%esi),%edx
2689238405Sjkim	leal	60(%esp),%edi
2690238405Sjkim	movl	%eax,(%edi)
2691238405Sjkim	movl	%ebx,4(%edi)
2692238405Sjkim	movl	%ecx,8(%edi)
2693238405Sjkim	movl	%edx,12(%edi)
2694238405Sjkim	movl	44(%esp),%edi
2695238405Sjkim	call	_x86_AES_decrypt_compact
2696238405Sjkim	movl	48(%esp),%edi
2697238405Sjkim	movl	40(%esp),%esi
2698238405Sjkim	xorl	(%edi),%eax
2699238405Sjkim	xorl	4(%edi),%ebx
2700238405Sjkim	xorl	8(%edi),%ecx
2701238405Sjkim	xorl	12(%edi),%edx
2702238405Sjkim	subl	$16,%esi
2703238405Sjkim	jc	.L039slow_dec_partial_x86
2704238405Sjkim	movl	%esi,40(%esp)
2705238405Sjkim	movl	36(%esp),%esi
2706238405Sjkim	movl	%eax,(%esi)
2707238405Sjkim	movl	%ebx,4(%esi)
2708238405Sjkim	movl	%ecx,8(%esi)
2709238405Sjkim	movl	%edx,12(%esi)
2710238405Sjkim	leal	16(%esi),%esi
2711238405Sjkim	movl	%esi,36(%esp)
2712238405Sjkim	leal	60(%esp),%esi
2713238405Sjkim	movl	(%esi),%eax
2714238405Sjkim	movl	4(%esi),%ebx
2715238405Sjkim	movl	8(%esi),%ecx
2716238405Sjkim	movl	12(%esi),%edx
2717238405Sjkim	movl	%eax,(%edi)
2718238405Sjkim	movl	%ebx,4(%edi)
2719238405Sjkim	movl	%ecx,8(%edi)
2720238405Sjkim	movl	%edx,12(%edi)
2721238405Sjkim	movl	32(%esp),%esi
2722238405Sjkim	leal	16(%esi),%esi
2723238405Sjkim	movl	%esi,32(%esp)
2724238405Sjkim	jnz	.L036slow_dec_loop_x86
2725238405Sjkim	movl	28(%esp),%esp
2726238405Sjkim	popfl
2727238405Sjkim	popl	%edi
2728238405Sjkim	popl	%esi
2729238405Sjkim	popl	%ebx
2730238405Sjkim	popl	%ebp
2731238405Sjkim	ret
2732238405Sjkim	pushfl
2733238405Sjkim.align	16
2734238405Sjkim.L039slow_dec_partial_x86:
2735238405Sjkim	leal	60(%esp),%esi
2736238405Sjkim	movl	%eax,(%esi)
2737238405Sjkim	movl	%ebx,4(%esi)
2738238405Sjkim	movl	%ecx,8(%esi)
2739238405Sjkim	movl	%edx,12(%esi)
2740238405Sjkim	movl	32(%esp),%esi
2741238405Sjkim	movl	(%esi),%eax
2742238405Sjkim	movl	4(%esi),%ebx
2743238405Sjkim	movl	8(%esi),%ecx
2744238405Sjkim	movl	12(%esi),%edx
2745238405Sjkim	movl	%eax,(%edi)
2746238405Sjkim	movl	%ebx,4(%edi)
2747238405Sjkim	movl	%ecx,8(%edi)
2748238405Sjkim	movl	%edx,12(%edi)
2749238405Sjkim	movl	40(%esp),%ecx
2750238405Sjkim	movl	36(%esp),%edi
2751238405Sjkim	leal	60(%esp),%esi
2752238405Sjkim.align	4
2753238405Sjkim.long	2767451785
2754238405Sjkim	movl	28(%esp),%esp
2755238405Sjkim	popfl
2756238405Sjkim	popl	%edi
2757238405Sjkim	popl	%esi
2758238405Sjkim	popl	%ebx
2759238405Sjkim	popl	%ebp
2760238405Sjkim	ret
2761238405Sjkim.size	AES_cbc_encrypt,.-.L_AES_cbc_encrypt_begin
2762238405Sjkim.type	_x86_AES_set_encrypt_key,@function
2763238405Sjkim.align	16
2764238405Sjkim_x86_AES_set_encrypt_key:
2765238405Sjkim	pushl	%ebp
2766238405Sjkim	pushl	%ebx
2767238405Sjkim	pushl	%esi
2768238405Sjkim	pushl	%edi
2769238405Sjkim	movl	24(%esp),%esi
2770238405Sjkim	movl	32(%esp),%edi
2771238405Sjkim	testl	$-1,%esi
2772238405Sjkim	jz	.L040badpointer
2773238405Sjkim	testl	$-1,%edi
2774238405Sjkim	jz	.L040badpointer
2775238405Sjkim	call	.L041pic_point
2776238405Sjkim.L041pic_point:
2777238405Sjkim	popl	%ebp
2778238405Sjkim	leal	.LAES_Te-.L041pic_point(%ebp),%ebp
2779238405Sjkim	leal	2176(%ebp),%ebp
2780238405Sjkim	movl	-128(%ebp),%eax
2781238405Sjkim	movl	-96(%ebp),%ebx
2782238405Sjkim	movl	-64(%ebp),%ecx
2783238405Sjkim	movl	-32(%ebp),%edx
2784238405Sjkim	movl	(%ebp),%eax
2785238405Sjkim	movl	32(%ebp),%ebx
2786238405Sjkim	movl	64(%ebp),%ecx
2787238405Sjkim	movl	96(%ebp),%edx
2788238405Sjkim	movl	28(%esp),%ecx
2789238405Sjkim	cmpl	$128,%ecx
2790238405Sjkim	je	.L04210rounds
2791238405Sjkim	cmpl	$192,%ecx
2792238405Sjkim	je	.L04312rounds
2793238405Sjkim	cmpl	$256,%ecx
2794238405Sjkim	je	.L04414rounds
2795238405Sjkim	movl	$-2,%eax
2796238405Sjkim	jmp	.L045exit
2797238405Sjkim.L04210rounds:
2798238405Sjkim	movl	(%esi),%eax
2799238405Sjkim	movl	4(%esi),%ebx
2800238405Sjkim	movl	8(%esi),%ecx
2801238405Sjkim	movl	12(%esi),%edx
2802238405Sjkim	movl	%eax,(%edi)
2803238405Sjkim	movl	%ebx,4(%edi)
2804238405Sjkim	movl	%ecx,8(%edi)
2805238405Sjkim	movl	%edx,12(%edi)
2806238405Sjkim	xorl	%ecx,%ecx
2807238405Sjkim	jmp	.L04610shortcut
2808238405Sjkim.align	4
2809238405Sjkim.L04710loop:
2810238405Sjkim	movl	(%edi),%eax
2811238405Sjkim	movl	12(%edi),%edx
2812238405Sjkim.L04610shortcut:
2813238405Sjkim	movzbl	%dl,%esi
2814238405Sjkim	movzbl	-128(%ebp,%esi,1),%ebx
2815238405Sjkim	movzbl	%dh,%esi
2816238405Sjkim	shll	$24,%ebx
2817238405Sjkim	xorl	%ebx,%eax
2818238405Sjkim	movzbl	-128(%ebp,%esi,1),%ebx
2819238405Sjkim	shrl	$16,%edx
2820238405Sjkim	movzbl	%dl,%esi
2821238405Sjkim	xorl	%ebx,%eax
2822238405Sjkim	movzbl	-128(%ebp,%esi,1),%ebx
2823238405Sjkim	movzbl	%dh,%esi
2824238405Sjkim	shll	$8,%ebx
2825238405Sjkim	xorl	%ebx,%eax
2826238405Sjkim	movzbl	-128(%ebp,%esi,1),%ebx
2827238405Sjkim	shll	$16,%ebx
2828238405Sjkim	xorl	%ebx,%eax
2829238405Sjkim	xorl	896(%ebp,%ecx,4),%eax
2830238405Sjkim	movl	%eax,16(%edi)
2831238405Sjkim	xorl	4(%edi),%eax
2832238405Sjkim	movl	%eax,20(%edi)
2833238405Sjkim	xorl	8(%edi),%eax
2834238405Sjkim	movl	%eax,24(%edi)
2835238405Sjkim	xorl	12(%edi),%eax
2836238405Sjkim	movl	%eax,28(%edi)
2837238405Sjkim	incl	%ecx
2838238405Sjkim	addl	$16,%edi
2839238405Sjkim	cmpl	$10,%ecx
2840238405Sjkim	jl	.L04710loop
2841238405Sjkim	movl	$10,80(%edi)
2842238405Sjkim	xorl	%eax,%eax
2843238405Sjkim	jmp	.L045exit
2844238405Sjkim.L04312rounds:
2845238405Sjkim	movl	(%esi),%eax
2846238405Sjkim	movl	4(%esi),%ebx
2847238405Sjkim	movl	8(%esi),%ecx
2848238405Sjkim	movl	12(%esi),%edx
2849238405Sjkim	movl	%eax,(%edi)
2850238405Sjkim	movl	%ebx,4(%edi)
2851238405Sjkim	movl	%ecx,8(%edi)
2852238405Sjkim	movl	%edx,12(%edi)
2853238405Sjkim	movl	16(%esi),%ecx
2854238405Sjkim	movl	20(%esi),%edx
2855238405Sjkim	movl	%ecx,16(%edi)
2856238405Sjkim	movl	%edx,20(%edi)
2857238405Sjkim	xorl	%ecx,%ecx
2858238405Sjkim	jmp	.L04812shortcut
2859238405Sjkim.align	4
2860238405Sjkim.L04912loop:
2861238405Sjkim	movl	(%edi),%eax
2862238405Sjkim	movl	20(%edi),%edx
2863238405Sjkim.L04812shortcut:
2864238405Sjkim	movzbl	%dl,%esi
2865238405Sjkim	movzbl	-128(%ebp,%esi,1),%ebx
2866238405Sjkim	movzbl	%dh,%esi
2867238405Sjkim	shll	$24,%ebx
2868238405Sjkim	xorl	%ebx,%eax
2869238405Sjkim	movzbl	-128(%ebp,%esi,1),%ebx
2870238405Sjkim	shrl	$16,%edx
2871238405Sjkim	movzbl	%dl,%esi
2872238405Sjkim	xorl	%ebx,%eax
2873238405Sjkim	movzbl	-128(%ebp,%esi,1),%ebx
2874238405Sjkim	movzbl	%dh,%esi
2875238405Sjkim	shll	$8,%ebx
2876238405Sjkim	xorl	%ebx,%eax
2877238405Sjkim	movzbl	-128(%ebp,%esi,1),%ebx
2878238405Sjkim	shll	$16,%ebx
2879238405Sjkim	xorl	%ebx,%eax
2880238405Sjkim	xorl	896(%ebp,%ecx,4),%eax
2881238405Sjkim	movl	%eax,24(%edi)
2882238405Sjkim	xorl	4(%edi),%eax
2883238405Sjkim	movl	%eax,28(%edi)
2884238405Sjkim	xorl	8(%edi),%eax
2885238405Sjkim	movl	%eax,32(%edi)
2886238405Sjkim	xorl	12(%edi),%eax
2887238405Sjkim	movl	%eax,36(%edi)
2888238405Sjkim	cmpl	$7,%ecx
2889238405Sjkim	je	.L05012break
2890238405Sjkim	incl	%ecx
2891238405Sjkim	xorl	16(%edi),%eax
2892238405Sjkim	movl	%eax,40(%edi)
2893238405Sjkim	xorl	20(%edi),%eax
2894238405Sjkim	movl	%eax,44(%edi)
2895238405Sjkim	addl	$24,%edi
2896238405Sjkim	jmp	.L04912loop
2897238405Sjkim.L05012break:
2898238405Sjkim	movl	$12,72(%edi)
2899238405Sjkim	xorl	%eax,%eax
2900238405Sjkim	jmp	.L045exit
2901238405Sjkim.L04414rounds:
2902238405Sjkim	movl	(%esi),%eax
2903238405Sjkim	movl	4(%esi),%ebx
2904238405Sjkim	movl	8(%esi),%ecx
2905238405Sjkim	movl	12(%esi),%edx
2906238405Sjkim	movl	%eax,(%edi)
2907238405Sjkim	movl	%ebx,4(%edi)
2908238405Sjkim	movl	%ecx,8(%edi)
2909238405Sjkim	movl	%edx,12(%edi)
2910238405Sjkim	movl	16(%esi),%eax
2911238405Sjkim	movl	20(%esi),%ebx
2912238405Sjkim	movl	24(%esi),%ecx
2913238405Sjkim	movl	28(%esi),%edx
2914238405Sjkim	movl	%eax,16(%edi)
2915238405Sjkim	movl	%ebx,20(%edi)
2916238405Sjkim	movl	%ecx,24(%edi)
2917238405Sjkim	movl	%edx,28(%edi)
2918238405Sjkim	xorl	%ecx,%ecx
2919238405Sjkim	jmp	.L05114shortcut
2920238405Sjkim.align	4
2921238405Sjkim.L05214loop:
2922238405Sjkim	movl	28(%edi),%edx
2923238405Sjkim.L05114shortcut:
2924238405Sjkim	movl	(%edi),%eax
2925238405Sjkim	movzbl	%dl,%esi
2926238405Sjkim	movzbl	-128(%ebp,%esi,1),%ebx
2927238405Sjkim	movzbl	%dh,%esi
2928238405Sjkim	shll	$24,%ebx
2929238405Sjkim	xorl	%ebx,%eax
2930238405Sjkim	movzbl	-128(%ebp,%esi,1),%ebx
2931238405Sjkim	shrl	$16,%edx
2932238405Sjkim	movzbl	%dl,%esi
2933238405Sjkim	xorl	%ebx,%eax
2934238405Sjkim	movzbl	-128(%ebp,%esi,1),%ebx
2935238405Sjkim	movzbl	%dh,%esi
2936238405Sjkim	shll	$8,%ebx
2937238405Sjkim	xorl	%ebx,%eax
2938238405Sjkim	movzbl	-128(%ebp,%esi,1),%ebx
2939238405Sjkim	shll	$16,%ebx
2940238405Sjkim	xorl	%ebx,%eax
2941238405Sjkim	xorl	896(%ebp,%ecx,4),%eax
2942238405Sjkim	movl	%eax,32(%edi)
2943238405Sjkim	xorl	4(%edi),%eax
2944238405Sjkim	movl	%eax,36(%edi)
2945238405Sjkim	xorl	8(%edi),%eax
2946238405Sjkim	movl	%eax,40(%edi)
2947238405Sjkim	xorl	12(%edi),%eax
2948238405Sjkim	movl	%eax,44(%edi)
2949238405Sjkim	cmpl	$6,%ecx
2950238405Sjkim	je	.L05314break
2951238405Sjkim	incl	%ecx
2952238405Sjkim	movl	%eax,%edx
2953238405Sjkim	movl	16(%edi),%eax
2954238405Sjkim	movzbl	%dl,%esi
2955238405Sjkim	movzbl	-128(%ebp,%esi,1),%ebx
2956238405Sjkim	movzbl	%dh,%esi
2957238405Sjkim	xorl	%ebx,%eax
2958238405Sjkim	movzbl	-128(%ebp,%esi,1),%ebx
2959238405Sjkim	shrl	$16,%edx
2960238405Sjkim	shll	$8,%ebx
2961238405Sjkim	movzbl	%dl,%esi
2962238405Sjkim	xorl	%ebx,%eax
2963238405Sjkim	movzbl	-128(%ebp,%esi,1),%ebx
2964238405Sjkim	movzbl	%dh,%esi
2965238405Sjkim	shll	$16,%ebx
2966238405Sjkim	xorl	%ebx,%eax
2967238405Sjkim	movzbl	-128(%ebp,%esi,1),%ebx
2968238405Sjkim	shll	$24,%ebx
2969238405Sjkim	xorl	%ebx,%eax
2970238405Sjkim	movl	%eax,48(%edi)
2971238405Sjkim	xorl	20(%edi),%eax
2972238405Sjkim	movl	%eax,52(%edi)
2973238405Sjkim	xorl	24(%edi),%eax
2974238405Sjkim	movl	%eax,56(%edi)
2975238405Sjkim	xorl	28(%edi),%eax
2976238405Sjkim	movl	%eax,60(%edi)
2977238405Sjkim	addl	$32,%edi
2978238405Sjkim	jmp	.L05214loop
2979238405Sjkim.L05314break:
2980238405Sjkim	movl	$14,48(%edi)
2981238405Sjkim	xorl	%eax,%eax
2982238405Sjkim	jmp	.L045exit
2983238405Sjkim.L040badpointer:
2984238405Sjkim	movl	$-1,%eax
2985238405Sjkim.L045exit:
2986238405Sjkim	popl	%edi
2987238405Sjkim	popl	%esi
2988238405Sjkim	popl	%ebx
2989238405Sjkim	popl	%ebp
2990238405Sjkim	ret
2991238405Sjkim.size	_x86_AES_set_encrypt_key,.-_x86_AES_set_encrypt_key
2992238405Sjkim.globl	private_AES_set_encrypt_key
2993238405Sjkim.type	private_AES_set_encrypt_key,@function
2994238405Sjkim.align	16
2995238405Sjkimprivate_AES_set_encrypt_key:
2996238405Sjkim.L_private_AES_set_encrypt_key_begin:
2997238405Sjkim	call	_x86_AES_set_encrypt_key
2998238405Sjkim	ret
2999238405Sjkim.size	private_AES_set_encrypt_key,.-.L_private_AES_set_encrypt_key_begin
3000238405Sjkim.globl	private_AES_set_decrypt_key
3001238405Sjkim.type	private_AES_set_decrypt_key,@function
3002238405Sjkim.align	16
3003238405Sjkimprivate_AES_set_decrypt_key:
3004238405Sjkim.L_private_AES_set_decrypt_key_begin:
3005238405Sjkim	call	_x86_AES_set_encrypt_key
3006238405Sjkim	cmpl	$0,%eax
3007238405Sjkim	je	.L054proceed
3008238405Sjkim	ret
3009238405Sjkim.L054proceed:
3010238405Sjkim	pushl	%ebp
3011238405Sjkim	pushl	%ebx
3012238405Sjkim	pushl	%esi
3013238405Sjkim	pushl	%edi
3014238405Sjkim	movl	28(%esp),%esi
3015238405Sjkim	movl	240(%esi),%ecx
3016238405Sjkim	leal	(,%ecx,4),%ecx
3017238405Sjkim	leal	(%esi,%ecx,4),%edi
3018238405Sjkim.align	4
3019238405Sjkim.L055invert:
3020238405Sjkim	movl	(%esi),%eax
3021238405Sjkim	movl	4(%esi),%ebx
3022238405Sjkim	movl	(%edi),%ecx
3023238405Sjkim	movl	4(%edi),%edx
3024238405Sjkim	movl	%eax,(%edi)
3025238405Sjkim	movl	%ebx,4(%edi)
3026238405Sjkim	movl	%ecx,(%esi)
3027238405Sjkim	movl	%edx,4(%esi)
3028238405Sjkim	movl	8(%esi),%eax
3029238405Sjkim	movl	12(%esi),%ebx
3030238405Sjkim	movl	8(%edi),%ecx
3031238405Sjkim	movl	12(%edi),%edx
3032238405Sjkim	movl	%eax,8(%edi)
3033238405Sjkim	movl	%ebx,12(%edi)
3034238405Sjkim	movl	%ecx,8(%esi)
3035238405Sjkim	movl	%edx,12(%esi)
3036238405Sjkim	addl	$16,%esi
3037238405Sjkim	subl	$16,%edi
3038238405Sjkim	cmpl	%edi,%esi
3039238405Sjkim	jne	.L055invert
3040238405Sjkim	movl	28(%esp),%edi
3041238405Sjkim	movl	240(%edi),%esi
3042238405Sjkim	leal	-2(%esi,%esi,1),%esi
3043238405Sjkim	leal	(%edi,%esi,8),%esi
3044238405Sjkim	movl	%esi,28(%esp)
3045238405Sjkim	movl	16(%edi),%eax
3046238405Sjkim.align	4
3047238405Sjkim.L056permute:
3048238405Sjkim	addl	$16,%edi
3049238405Sjkim	movl	%eax,%esi
3050238405Sjkim	andl	$2155905152,%esi
3051238405Sjkim	movl	%esi,%ebp
3052238405Sjkim	shrl	$7,%ebp
3053238405Sjkim	leal	(%eax,%eax,1),%ebx
3054238405Sjkim	subl	%ebp,%esi
3055238405Sjkim	andl	$4278124286,%ebx
3056238405Sjkim	andl	$454761243,%esi
3057238405Sjkim	xorl	%ebx,%esi
3058238405Sjkim	movl	%esi,%ebx
3059238405Sjkim	andl	$2155905152,%esi
3060238405Sjkim	movl	%esi,%ebp
3061238405Sjkim	shrl	$7,%ebp
3062238405Sjkim	leal	(%ebx,%ebx,1),%ecx
3063238405Sjkim	subl	%ebp,%esi
3064238405Sjkim	andl	$4278124286,%ecx
3065238405Sjkim	andl	$454761243,%esi
3066238405Sjkim	xorl	%eax,%ebx
3067238405Sjkim	xorl	%ecx,%esi
3068238405Sjkim	movl	%esi,%ecx
3069238405Sjkim	andl	$2155905152,%esi
3070238405Sjkim	movl	%esi,%ebp
3071238405Sjkim	shrl	$7,%ebp
3072238405Sjkim	leal	(%ecx,%ecx,1),%edx
3073238405Sjkim	xorl	%eax,%ecx
3074238405Sjkim	subl	%ebp,%esi
3075238405Sjkim	andl	$4278124286,%edx
3076238405Sjkim	andl	$454761243,%esi
3077238405Sjkim	roll	$8,%eax
3078238405Sjkim	xorl	%esi,%edx
3079238405Sjkim	movl	4(%edi),%ebp
3080238405Sjkim	xorl	%ebx,%eax
3081238405Sjkim	xorl	%edx,%ebx
3082238405Sjkim	xorl	%ecx,%eax
3083238405Sjkim	roll	$24,%ebx
3084238405Sjkim	xorl	%edx,%ecx
3085238405Sjkim	xorl	%edx,%eax
3086238405Sjkim	roll	$16,%ecx
3087238405Sjkim	xorl	%ebx,%eax
3088238405Sjkim	roll	$8,%edx
3089238405Sjkim	xorl	%ecx,%eax
3090238405Sjkim	movl	%ebp,%ebx
3091238405Sjkim	xorl	%edx,%eax
3092238405Sjkim	movl	%eax,(%edi)
3093238405Sjkim	movl	%ebx,%esi
3094238405Sjkim	andl	$2155905152,%esi
3095238405Sjkim	movl	%esi,%ebp
3096238405Sjkim	shrl	$7,%ebp
3097238405Sjkim	leal	(%ebx,%ebx,1),%ecx
3098238405Sjkim	subl	%ebp,%esi
3099238405Sjkim	andl	$4278124286,%ecx
3100238405Sjkim	andl	$454761243,%esi
3101238405Sjkim	xorl	%ecx,%esi
3102238405Sjkim	movl	%esi,%ecx
3103238405Sjkim	andl	$2155905152,%esi
3104238405Sjkim	movl	%esi,%ebp
3105238405Sjkim	shrl	$7,%ebp
3106238405Sjkim	leal	(%ecx,%ecx,1),%edx
3107238405Sjkim	subl	%ebp,%esi
3108238405Sjkim	andl	$4278124286,%edx
3109238405Sjkim	andl	$454761243,%esi
3110238405Sjkim	xorl	%ebx,%ecx
3111238405Sjkim	xorl	%edx,%esi
3112238405Sjkim	movl	%esi,%edx
3113238405Sjkim	andl	$2155905152,%esi
3114238405Sjkim	movl	%esi,%ebp
3115238405Sjkim	shrl	$7,%ebp
3116238405Sjkim	leal	(%edx,%edx,1),%eax
3117238405Sjkim	xorl	%ebx,%edx
3118238405Sjkim	subl	%ebp,%esi
3119238405Sjkim	andl	$4278124286,%eax
3120238405Sjkim	andl	$454761243,%esi
3121238405Sjkim	roll	$8,%ebx
3122238405Sjkim	xorl	%esi,%eax
3123238405Sjkim	movl	8(%edi),%ebp
3124238405Sjkim	xorl	%ecx,%ebx
3125238405Sjkim	xorl	%eax,%ecx
3126238405Sjkim	xorl	%edx,%ebx
3127238405Sjkim	roll	$24,%ecx
3128238405Sjkim	xorl	%eax,%edx
3129238405Sjkim	xorl	%eax,%ebx
3130238405Sjkim	roll	$16,%edx
3131238405Sjkim	xorl	%ecx,%ebx
3132238405Sjkim	roll	$8,%eax
3133238405Sjkim	xorl	%edx,%ebx
3134238405Sjkim	movl	%ebp,%ecx
3135238405Sjkim	xorl	%eax,%ebx
3136238405Sjkim	movl	%ebx,4(%edi)
3137238405Sjkim	movl	%ecx,%esi
3138238405Sjkim	andl	$2155905152,%esi
3139238405Sjkim	movl	%esi,%ebp
3140238405Sjkim	shrl	$7,%ebp
3141238405Sjkim	leal	(%ecx,%ecx,1),%edx
3142238405Sjkim	subl	%ebp,%esi
3143238405Sjkim	andl	$4278124286,%edx
3144238405Sjkim	andl	$454761243,%esi
3145238405Sjkim	xorl	%edx,%esi
3146238405Sjkim	movl	%esi,%edx
3147238405Sjkim	andl	$2155905152,%esi
3148238405Sjkim	movl	%esi,%ebp
3149238405Sjkim	shrl	$7,%ebp
3150238405Sjkim	leal	(%edx,%edx,1),%eax
3151238405Sjkim	subl	%ebp,%esi
3152238405Sjkim	andl	$4278124286,%eax
3153238405Sjkim	andl	$454761243,%esi
3154238405Sjkim	xorl	%ecx,%edx
3155238405Sjkim	xorl	%eax,%esi
3156238405Sjkim	movl	%esi,%eax
3157238405Sjkim	andl	$2155905152,%esi
3158238405Sjkim	movl	%esi,%ebp
3159238405Sjkim	shrl	$7,%ebp
3160238405Sjkim	leal	(%eax,%eax,1),%ebx
3161238405Sjkim	xorl	%ecx,%eax
3162238405Sjkim	subl	%ebp,%esi
3163238405Sjkim	andl	$4278124286,%ebx
3164238405Sjkim	andl	$454761243,%esi
3165238405Sjkim	roll	$8,%ecx
3166238405Sjkim	xorl	%esi,%ebx
3167238405Sjkim	movl	12(%edi),%ebp
3168238405Sjkim	xorl	%edx,%ecx
3169238405Sjkim	xorl	%ebx,%edx
3170238405Sjkim	xorl	%eax,%ecx
3171238405Sjkim	roll	$24,%edx
3172238405Sjkim	xorl	%ebx,%eax
3173238405Sjkim	xorl	%ebx,%ecx
3174238405Sjkim	roll	$16,%eax
3175238405Sjkim	xorl	%edx,%ecx
3176238405Sjkim	roll	$8,%ebx
3177238405Sjkim	xorl	%eax,%ecx
3178238405Sjkim	movl	%ebp,%edx
3179238405Sjkim	xorl	%ebx,%ecx
3180238405Sjkim	movl	%ecx,8(%edi)
3181238405Sjkim	movl	%edx,%esi
3182238405Sjkim	andl	$2155905152,%esi
3183238405Sjkim	movl	%esi,%ebp
3184238405Sjkim	shrl	$7,%ebp
3185238405Sjkim	leal	(%edx,%edx,1),%eax
3186238405Sjkim	subl	%ebp,%esi
3187238405Sjkim	andl	$4278124286,%eax
3188238405Sjkim	andl	$454761243,%esi
3189238405Sjkim	xorl	%eax,%esi
3190238405Sjkim	movl	%esi,%eax
3191238405Sjkim	andl	$2155905152,%esi
3192238405Sjkim	movl	%esi,%ebp
3193238405Sjkim	shrl	$7,%ebp
3194238405Sjkim	leal	(%eax,%eax,1),%ebx
3195238405Sjkim	subl	%ebp,%esi
3196238405Sjkim	andl	$4278124286,%ebx
3197238405Sjkim	andl	$454761243,%esi
3198238405Sjkim	xorl	%edx,%eax
3199238405Sjkim	xorl	%ebx,%esi
3200238405Sjkim	movl	%esi,%ebx
3201238405Sjkim	andl	$2155905152,%esi
3202238405Sjkim	movl	%esi,%ebp
3203238405Sjkim	shrl	$7,%ebp
3204238405Sjkim	leal	(%ebx,%ebx,1),%ecx
3205238405Sjkim	xorl	%edx,%ebx
3206238405Sjkim	subl	%ebp,%esi
3207238405Sjkim	andl	$4278124286,%ecx
3208238405Sjkim	andl	$454761243,%esi
3209238405Sjkim	roll	$8,%edx
3210238405Sjkim	xorl	%esi,%ecx
3211238405Sjkim	movl	16(%edi),%ebp
3212238405Sjkim	xorl	%eax,%edx
3213238405Sjkim	xorl	%ecx,%eax
3214238405Sjkim	xorl	%ebx,%edx
3215238405Sjkim	roll	$24,%eax
3216238405Sjkim	xorl	%ecx,%ebx
3217238405Sjkim	xorl	%ecx,%edx
3218238405Sjkim	roll	$16,%ebx
3219238405Sjkim	xorl	%eax,%edx
3220238405Sjkim	roll	$8,%ecx
3221238405Sjkim	xorl	%ebx,%edx
3222238405Sjkim	movl	%ebp,%eax
3223238405Sjkim	xorl	%ecx,%edx
3224238405Sjkim	movl	%edx,12(%edi)
3225238405Sjkim	cmpl	28(%esp),%edi
3226238405Sjkim	jb	.L056permute
3227238405Sjkim	xorl	%eax,%eax
3228238405Sjkim	popl	%edi
3229238405Sjkim	popl	%esi
3230238405Sjkim	popl	%ebx
3231238405Sjkim	popl	%ebp
3232238405Sjkim	ret
3233238405Sjkim.size	private_AES_set_decrypt_key,.-.L_private_AES_set_decrypt_key_begin
3234238405Sjkim.byte	65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89
3235238405Sjkim.byte	80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
3236238405Sjkim.byte	111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
3237238405Sjkim.comm	OPENSSL_ia32cap_P,8,4
3238