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