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