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