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