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