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