Sync usage with man page.
[netbsd-mini2440.git] / crypto / external / bsd / openssl / lib / libcrypto / arch / x86_64 / aes-x86_64.S
blob370d14271ea8312bcc1a70206fb7582256c63c5b
1 .text
2 .type   _x86_64_AES_encrypt,@function
3 .align  16
4 _x86_64_AES_encrypt:
5         xorl    0(%r15),%eax
6         xorl    4(%r15),%ebx
7         xorl    8(%r15),%ecx
8         xorl    12(%r15),%edx
10         movl    240(%r15),%r13d
11         subl    $1,%r13d
12         jmp     .Lenc_loop
13 .align  16
14 .Lenc_loop:
16         movzbl  %al,%esi
17         movzbl  %bl,%edi
18         movzbl  %cl,%ebp
19         movl    0(%r14,%rsi,8),%r10d
20         movl    0(%r14,%rdi,8),%r11d
21         movl    0(%r14,%rbp,8),%r12d
23         movzbl  %bh,%esi
24         movzbl  %ch,%edi
25         movzbl  %dl,%ebp
26         xorl    3(%r14,%rsi,8),%r10d
27         xorl    3(%r14,%rdi,8),%r11d
28         movl    0(%r14,%rbp,8),%r8d
30         movzbl  %dh,%esi
31         shrl    $16,%ecx
32         movzbl  %ah,%ebp
33         xorl    3(%r14,%rsi,8),%r12d
34         shrl    $16,%edx
35         xorl    3(%r14,%rbp,8),%r8d
37         shrl    $16,%ebx
38         leaq    16(%r15),%r15
39         shrl    $16,%eax
41         movzbl  %cl,%esi
42         movzbl  %dl,%edi
43         movzbl  %al,%ebp
44         xorl    2(%r14,%rsi,8),%r10d
45         xorl    2(%r14,%rdi,8),%r11d
46         xorl    2(%r14,%rbp,8),%r12d
48         movzbl  %dh,%esi
49         movzbl  %ah,%edi
50         movzbl  %bl,%ebp
51         xorl    1(%r14,%rsi,8),%r10d
52         xorl    1(%r14,%rdi,8),%r11d
53         xorl    2(%r14,%rbp,8),%r8d
55         movl    12(%r15),%edx
56         movzbl  %bh,%edi
57         movzbl  %ch,%ebp
58         movl    0(%r15),%eax
59         xorl    1(%r14,%rdi,8),%r12d
60         xorl    1(%r14,%rbp,8),%r8d
62         movl    4(%r15),%ebx
63         movl    8(%r15),%ecx
64         xorl    %r10d,%eax
65         xorl    %r11d,%ebx
66         xorl    %r12d,%ecx
67         xorl    %r8d,%edx
68         subl    $1,%r13d
69         jnz     .Lenc_loop
70         movzbl  %al,%esi
71         movzbl  %bl,%edi
72         movzbl  %cl,%ebp
73         movzbl  2(%r14,%rsi,8),%r10d
74         movzbl  2(%r14,%rdi,8),%r11d
75         movzbl  2(%r14,%rbp,8),%r12d
77         movzbl  %dl,%esi
78         movzbl  %bh,%edi
79         movzbl  %ch,%ebp
80         movzbl  2(%r14,%rsi,8),%r8d
81         movl    0(%r14,%rdi,8),%edi
82         movl    0(%r14,%rbp,8),%ebp
84         andl    $65280,%edi
85         andl    $65280,%ebp
87         xorl    %edi,%r10d
88         xorl    %ebp,%r11d
89         shrl    $16,%ecx
91         movzbl  %dh,%esi
92         movzbl  %ah,%edi
93         shrl    $16,%edx
94         movl    0(%r14,%rsi,8),%esi
95         movl    0(%r14,%rdi,8),%edi
97         andl    $65280,%esi
98         andl    $65280,%edi
99         shrl    $16,%ebx
100         xorl    %esi,%r12d
101         xorl    %edi,%r8d
102         shrl    $16,%eax
104         movzbl  %cl,%esi
105         movzbl  %dl,%edi
106         movzbl  %al,%ebp
107         movl    0(%r14,%rsi,8),%esi
108         movl    0(%r14,%rdi,8),%edi
109         movl    0(%r14,%rbp,8),%ebp
111         andl    $16711680,%esi
112         andl    $16711680,%edi
113         andl    $16711680,%ebp
115         xorl    %esi,%r10d
116         xorl    %edi,%r11d
117         xorl    %ebp,%r12d
119         movzbl  %bl,%esi
120         movzbl  %dh,%edi
121         movzbl  %ah,%ebp
122         movl    0(%r14,%rsi,8),%esi
123         movl    2(%r14,%rdi,8),%edi
124         movl    2(%r14,%rbp,8),%ebp
126         andl    $16711680,%esi
127         andl    $4278190080,%edi
128         andl    $4278190080,%ebp
130         xorl    %esi,%r8d
131         xorl    %edi,%r10d
132         xorl    %ebp,%r11d
134         movzbl  %bh,%esi
135         movzbl  %ch,%edi
136         movl    16+12(%r15),%edx
137         movl    2(%r14,%rsi,8),%esi
138         movl    2(%r14,%rdi,8),%edi
139         movl    16+0(%r15),%eax
141         andl    $4278190080,%esi
142         andl    $4278190080,%edi
144         xorl    %esi,%r12d
145         xorl    %edi,%r8d
147         movl    16+4(%r15),%ebx
148         movl    16+8(%r15),%ecx
149         xorl    %r10d,%eax
150         xorl    %r11d,%ebx
151         xorl    %r12d,%ecx
152         xorl    %r8d,%edx
153 .byte   0xf3,0xc3                       
154 .size   _x86_64_AES_encrypt,.-_x86_64_AES_encrypt
155 .type   _x86_64_AES_encrypt_compact,@function
156 .align  16
157 _x86_64_AES_encrypt_compact:
158         leaq    128(%r14),%r8
159         movl    0-128(%r8),%edi
160         movl    32-128(%r8),%ebp
161         movl    64-128(%r8),%r10d
162         movl    96-128(%r8),%r11d
163         movl    128-128(%r8),%edi
164         movl    160-128(%r8),%ebp
165         movl    192-128(%r8),%r10d
166         movl    224-128(%r8),%r11d
167         jmp     .Lenc_loop_compact
168 .align  16
169 .Lenc_loop_compact:
170         xorl    0(%r15),%eax
171         xorl    4(%r15),%ebx
172         xorl    8(%r15),%ecx
173         xorl    12(%r15),%edx
174         leaq    16(%r15),%r15
175         movzbl  %al,%r10d
176         movzbl  %bl,%r11d
177         movzbl  %cl,%r12d
178         movzbl  (%r14,%r10,1),%r10d
179         movzbl  (%r14,%r11,1),%r11d
180         movzbl  (%r14,%r12,1),%r12d
182         movzbl  %dl,%r8d
183         movzbl  %bh,%esi
184         movzbl  %ch,%edi
185         movzbl  (%r14,%r8,1),%r8d
186         movzbl  (%r14,%rsi,1),%r9d
187         movzbl  (%r14,%rdi,1),%r13d
189         movzbl  %dh,%ebp
190         movzbl  %ah,%esi
191         shrl    $16,%ecx
192         movzbl  (%r14,%rbp,1),%ebp
193         movzbl  (%r14,%rsi,1),%esi
194         shrl    $16,%edx
196         movzbl  %cl,%edi
197         shll    $8,%r9d
198         shll    $8,%r13d
199         movzbl  (%r14,%rdi,1),%edi
200         xorl    %r9d,%r10d
201         xorl    %r13d,%r11d
203         movzbl  %dl,%r9d
204         shrl    $16,%eax
205         shrl    $16,%ebx
206         movzbl  %al,%r13d
207         shll    $8,%ebp
208         shll    $8,%esi
209         movzbl  (%r14,%r9,1),%r9d
210         movzbl  (%r14,%r13,1),%r13d
211         xorl    %ebp,%r12d
212         xorl    %esi,%r8d
214         movzbl  %bl,%ebp
215         movzbl  %dh,%esi
216         shll    $16,%edi
217         movzbl  (%r14,%rbp,1),%ebp
218         movzbl  (%r14,%rsi,1),%esi
219         xorl    %edi,%r10d
221         movzbl  %ah,%edi
222         shrl    $8,%ecx
223         shrl    $8,%ebx
224         movzbl  (%r14,%rdi,1),%edi
225         movzbl  (%r14,%rcx,1),%edx
226         movzbl  (%r14,%rbx,1),%ecx
227         shll    $16,%r9d
228         shll    $16,%r13d
229         shll    $16,%ebp
230         xorl    %r9d,%r11d
231         xorl    %r13d,%r12d
232         xorl    %ebp,%r8d
234         shll    $24,%esi
235         shll    $24,%edi
236         shll    $24,%edx
237         xorl    %esi,%r10d
238         shll    $24,%ecx
239         xorl    %edi,%r11d
240         movl    %r10d,%eax
241         movl    %r11d,%ebx
242         xorl    %r12d,%ecx
243         xorl    %r8d,%edx
244         cmpq    16(%rsp),%r15
245         je      .Lenc_compact_done
246         movl    %eax,%esi
247         movl    %ebx,%edi
248         andl    $2155905152,%esi
249         andl    $2155905152,%edi
250         movl    %esi,%r10d
251         movl    %edi,%r11d
252         shrl    $7,%r10d
253         leal    (%rax,%rax,1),%r8d
254         shrl    $7,%r11d
255         leal    (%rbx,%rbx,1),%r9d
256         subl    %r10d,%esi
257         subl    %r11d,%edi
258         andl    $4278124286,%r8d
259         andl    $4278124286,%r9d
260         andl    $454761243,%esi
261         andl    $454761243,%edi
262         movl    %eax,%r10d
263         movl    %ebx,%r11d
264         xorl    %esi,%r8d
265         xorl    %edi,%r9d
267         xorl    %r8d,%eax
268         xorl    %r9d,%ebx
269         movl    %ecx,%esi
270         movl    %edx,%edi
271         roll    $24,%eax
272         roll    $24,%ebx
273         andl    $2155905152,%esi
274         andl    $2155905152,%edi
275         xorl    %r8d,%eax
276         xorl    %r9d,%ebx
277         movl    %esi,%r12d
278         movl    %edi,%ebp
279         rorl    $16,%r10d
280         rorl    $16,%r11d
281         shrl    $7,%r12d
282         leal    (%rcx,%rcx,1),%r8d
283         xorl    %r10d,%eax
284         xorl    %r11d,%ebx
285         shrl    $7,%ebp
286         leal    (%rdx,%rdx,1),%r9d
287         rorl    $8,%r10d
288         rorl    $8,%r11d
289         subl    %r12d,%esi
290         subl    %ebp,%edi
291         xorl    %r10d,%eax
292         xorl    %r11d,%ebx
294         andl    $4278124286,%r8d
295         andl    $4278124286,%r9d
296         andl    $454761243,%esi
297         andl    $454761243,%edi
298         movl    %ecx,%r12d
299         movl    %edx,%ebp
300         xorl    %esi,%r8d
301         xorl    %edi,%r9d
303         xorl    %r8d,%ecx
304         xorl    %r9d,%edx
305         roll    $24,%ecx
306         roll    $24,%edx
307         xorl    %r8d,%ecx
308         xorl    %r9d,%edx
309         movl    0(%r14),%esi
310         rorl    $16,%r12d
311         rorl    $16,%ebp
312         movl    64(%r14),%edi
313         xorl    %r12d,%ecx
314         xorl    %ebp,%edx
315         movl    128(%r14),%r8d
316         rorl    $8,%r12d
317         rorl    $8,%ebp
318         movl    192(%r14),%r9d
319         xorl    %r12d,%ecx
320         xorl    %ebp,%edx
321         jmp     .Lenc_loop_compact
322 .align  16
323 .Lenc_compact_done:
324         xorl    0(%r15),%eax
325         xorl    4(%r15),%ebx
326         xorl    8(%r15),%ecx
327         xorl    12(%r15),%edx
328 .byte   0xf3,0xc3                       
329 .size   _x86_64_AES_encrypt_compact,.-_x86_64_AES_encrypt_compact
330 .globl  AES_encrypt
331 .type   AES_encrypt,@function
332 .align  16
333 AES_encrypt:
334         pushq   %rbx
335         pushq   %rbp
336         pushq   %r12
337         pushq   %r13
338         pushq   %r14
339         pushq   %r15
342         movq    %rsp,%rax
343         movq    %rdx,%r15
344         leaq    -63(%rdx),%rcx
345         andq    $-64,%rsp
346         subq    %rsp,%rcx
347         negq    %rcx
348         andq    $960,%rcx
349         subq    %rcx,%rsp
351         pushq   %rax
352         pushq   %rsi
354         movl    240(%r15),%r13d
356         movl    0(%rdi),%eax
357         movl    4(%rdi),%ebx
358         movl    8(%rdi),%ecx
359         movl    12(%rdi),%edx
361         shll    $4,%r13d
362         leaq    (%r15,%r13,1),%rbp
363         pushq   %rbp
364         pushq   %r15
367         .long   0x1358d4c,0x90000000
368         leaq    AES_Te+2048-.(%r14),%r14
369         leaq    768(%rsp),%rbp
370         subq    %r14,%rbp
371         andq    $768,%rbp
372         leaq    (%r14,%rbp,1),%r14
374         call    _x86_64_AES_encrypt_compact
376         movq    16(%rsp),%r9
377         movq    24(%rsp),%rsp
378         movl    %eax,0(%r9)
379         movl    %ebx,4(%r9)
380         movl    %ecx,8(%r9)
381         movl    %edx,12(%r9)
383         popq    %r15
384         popq    %r14
385         popq    %r13
386         popq    %r12
387         popq    %rbp
388         popq    %rbx
389         .byte   0xf3,0xc3
390 .size   AES_encrypt,.-AES_encrypt
391 .type   _x86_64_AES_decrypt,@function
392 .align  16
393 _x86_64_AES_decrypt:
394         xorl    0(%r15),%eax
395         xorl    4(%r15),%ebx
396         xorl    8(%r15),%ecx
397         xorl    12(%r15),%edx
399         movl    240(%r15),%r13d
400         subl    $1,%r13d
401         jmp     .Ldec_loop
402 .align  16
403 .Ldec_loop:
405         movzbl  %al,%esi
406         movzbl  %bl,%edi
407         movzbl  %cl,%ebp
408         movl    0(%r14,%rsi,8),%r10d
409         movl    0(%r14,%rdi,8),%r11d
410         movl    0(%r14,%rbp,8),%r12d
412         movzbl  %dh,%esi
413         movzbl  %ah,%edi
414         movzbl  %dl,%ebp
415         xorl    3(%r14,%rsi,8),%r10d
416         xorl    3(%r14,%rdi,8),%r11d
417         movl    0(%r14,%rbp,8),%r8d
419         movzbl  %bh,%esi
420         shrl    $16,%eax
421         movzbl  %ch,%ebp
422         xorl    3(%r14,%rsi,8),%r12d
423         shrl    $16,%edx
424         xorl    3(%r14,%rbp,8),%r8d
426         shrl    $16,%ebx
427         leaq    16(%r15),%r15
428         shrl    $16,%ecx
430         movzbl  %cl,%esi
431         movzbl  %dl,%edi
432         movzbl  %al,%ebp
433         xorl    2(%r14,%rsi,8),%r10d
434         xorl    2(%r14,%rdi,8),%r11d
435         xorl    2(%r14,%rbp,8),%r12d
437         movzbl  %bh,%esi
438         movzbl  %ch,%edi
439         movzbl  %bl,%ebp
440         xorl    1(%r14,%rsi,8),%r10d
441         xorl    1(%r14,%rdi,8),%r11d
442         xorl    2(%r14,%rbp,8),%r8d
444         movzbl  %dh,%esi
445         movl    12(%r15),%edx
446         movzbl  %ah,%ebp
447         xorl    1(%r14,%rsi,8),%r12d
448         movl    0(%r15),%eax
449         xorl    1(%r14,%rbp,8),%r8d
451         xorl    %r10d,%eax
452         movl    4(%r15),%ebx
453         movl    8(%r15),%ecx
454         xorl    %r12d,%ecx
455         xorl    %r11d,%ebx
456         xorl    %r8d,%edx
457         subl    $1,%r13d
458         jnz     .Ldec_loop
459         leaq    2048(%r14),%r14
460         movzbl  %al,%esi
461         movzbl  %bl,%edi
462         movzbl  %cl,%ebp
463         movzbl  (%r14,%rsi,1),%r10d
464         movzbl  (%r14,%rdi,1),%r11d
465         movzbl  (%r14,%rbp,1),%r12d
467         movzbl  %dl,%esi
468         movzbl  %dh,%edi
469         movzbl  %ah,%ebp
470         movzbl  (%r14,%rsi,1),%r8d
471         movzbl  (%r14,%rdi,1),%edi
472         movzbl  (%r14,%rbp,1),%ebp
474         shll    $8,%edi
475         shll    $8,%ebp
477         xorl    %edi,%r10d
478         xorl    %ebp,%r11d
479         shrl    $16,%edx
481         movzbl  %bh,%esi
482         movzbl  %ch,%edi
483         shrl    $16,%eax
484         movzbl  (%r14,%rsi,1),%esi
485         movzbl  (%r14,%rdi,1),%edi
487         shll    $8,%esi
488         shll    $8,%edi
489         shrl    $16,%ebx
490         xorl    %esi,%r12d
491         xorl    %edi,%r8d
492         shrl    $16,%ecx
494         movzbl  %cl,%esi
495         movzbl  %dl,%edi
496         movzbl  %al,%ebp
497         movzbl  (%r14,%rsi,1),%esi
498         movzbl  (%r14,%rdi,1),%edi
499         movzbl  (%r14,%rbp,1),%ebp
501         shll    $16,%esi
502         shll    $16,%edi
503         shll    $16,%ebp
505         xorl    %esi,%r10d
506         xorl    %edi,%r11d
507         xorl    %ebp,%r12d
509         movzbl  %bl,%esi
510         movzbl  %bh,%edi
511         movzbl  %ch,%ebp
512         movzbl  (%r14,%rsi,1),%esi
513         movzbl  (%r14,%rdi,1),%edi
514         movzbl  (%r14,%rbp,1),%ebp
516         shll    $16,%esi
517         shll    $24,%edi
518         shll    $24,%ebp
520         xorl    %esi,%r8d
521         xorl    %edi,%r10d
522         xorl    %ebp,%r11d
524         movzbl  %dh,%esi
525         movzbl  %ah,%edi
526         movl    16+12(%r15),%edx
527         movzbl  (%r14,%rsi,1),%esi
528         movzbl  (%r14,%rdi,1),%edi
529         movl    16+0(%r15),%eax
531         shll    $24,%esi
532         shll    $24,%edi
534         xorl    %esi,%r12d
535         xorl    %edi,%r8d
537         movl    16+4(%r15),%ebx
538         movl    16+8(%r15),%ecx
539         leaq    -2048(%r14),%r14
540         xorl    %r10d,%eax
541         xorl    %r11d,%ebx
542         xorl    %r12d,%ecx
543         xorl    %r8d,%edx
544 .byte   0xf3,0xc3                       
545 .size   _x86_64_AES_decrypt,.-_x86_64_AES_decrypt
546 .type   _x86_64_AES_decrypt_compact,@function
547 .align  16
548 _x86_64_AES_decrypt_compact:
549         leaq    128(%r14),%r8
550         movl    0-128(%r8),%edi
551         movl    32-128(%r8),%ebp
552         movl    64-128(%r8),%r10d
553         movl    96-128(%r8),%r11d
554         movl    128-128(%r8),%edi
555         movl    160-128(%r8),%ebp
556         movl    192-128(%r8),%r10d
557         movl    224-128(%r8),%r11d
558         jmp     .Ldec_loop_compact
560 .align  16
561 .Ldec_loop_compact:
562         xorl    0(%r15),%eax
563         xorl    4(%r15),%ebx
564         xorl    8(%r15),%ecx
565         xorl    12(%r15),%edx
566         leaq    16(%r15),%r15
567         movzbl  %al,%r10d
568         movzbl  %bl,%r11d
569         movzbl  %cl,%r12d
570         movzbl  (%r14,%r10,1),%r10d
571         movzbl  (%r14,%r11,1),%r11d
572         movzbl  (%r14,%r12,1),%r12d
574         movzbl  %dl,%r8d
575         movzbl  %dh,%esi
576         movzbl  %ah,%edi
577         movzbl  (%r14,%r8,1),%r8d
578         movzbl  (%r14,%rsi,1),%r9d
579         movzbl  (%r14,%rdi,1),%r13d
581         movzbl  %bh,%ebp
582         movzbl  %ch,%esi
583         shrl    $16,%ecx
584         movzbl  (%r14,%rbp,1),%ebp
585         movzbl  (%r14,%rsi,1),%esi
586         shrl    $16,%edx
588         movzbl  %cl,%edi
589         shll    $8,%r9d
590         shll    $8,%r13d
591         movzbl  (%r14,%rdi,1),%edi
592         xorl    %r9d,%r10d
593         xorl    %r13d,%r11d
595         movzbl  %dl,%r9d
596         shrl    $16,%eax
597         shrl    $16,%ebx
598         movzbl  %al,%r13d
599         shll    $8,%ebp
600         shll    $8,%esi
601         movzbl  (%r14,%r9,1),%r9d
602         movzbl  (%r14,%r13,1),%r13d
603         xorl    %ebp,%r12d
604         xorl    %esi,%r8d
606         movzbl  %bl,%ebp
607         movzbl  %bh,%esi
608         shll    $16,%edi
609         movzbl  (%r14,%rbp,1),%ebp
610         movzbl  (%r14,%rsi,1),%esi
611         xorl    %edi,%r10d
613         movzbl  %ch,%edi
614         shll    $16,%r9d
615         shll    $16,%r13d
616         movzbl  (%r14,%rdi,1),%ebx
617         xorl    %r9d,%r11d
618         xorl    %r13d,%r12d
620         movzbl  %dh,%edi
621         shrl    $8,%eax
622         shll    $16,%ebp
623         movzbl  (%r14,%rdi,1),%ecx
624         movzbl  (%r14,%rax,1),%edx
625         xorl    %ebp,%r8d
627         shll    $24,%esi
628         shll    $24,%ebx
629         shll    $24,%ecx
630         xorl    %esi,%r10d
631         shll    $24,%edx
632         xorl    %r11d,%ebx
633         movl    %r10d,%eax
634         xorl    %r12d,%ecx
635         xorl    %r8d,%edx
636         cmpq    16(%rsp),%r15
637         je      .Ldec_compact_done
639         movq    256+0(%r14),%rsi
640         shlq    $32,%rbx
641         shlq    $32,%rdx
642         movq    256+8(%r14),%rdi
643         orq     %rbx,%rax
644         orq     %rdx,%rcx
645         movq    256+16(%r14),%rbp
646         movq    %rax,%rbx
647         movq    %rcx,%rdx
648         andq    %rsi,%rbx
649         andq    %rsi,%rdx
650         movq    %rbx,%r9
651         movq    %rdx,%r12
652         shrq    $7,%r9
653         leaq    (%rax,%rax,1),%r8
654         shrq    $7,%r12
655         leaq    (%rcx,%rcx,1),%r11
656         subq    %r9,%rbx
657         subq    %r12,%rdx
658         andq    %rdi,%r8
659         andq    %rdi,%r11
660         andq    %rbp,%rbx
661         andq    %rbp,%rdx
662         xorq    %r8,%rbx
663         xorq    %r11,%rdx
664         movq    %rbx,%r8
665         movq    %rdx,%r11
667         andq    %rsi,%rbx
668         andq    %rsi,%rdx
669         movq    %rbx,%r10
670         movq    %rdx,%r13
671         shrq    $7,%r10
672         leaq    (%r8,%r8,1),%r9
673         shrq    $7,%r13
674         leaq    (%r11,%r11,1),%r12
675         subq    %r10,%rbx
676         subq    %r13,%rdx
677         andq    %rdi,%r9
678         andq    %rdi,%r12
679         andq    %rbp,%rbx
680         andq    %rbp,%rdx
681         xorq    %r9,%rbx
682         xorq    %r12,%rdx
683         movq    %rbx,%r9
684         movq    %rdx,%r12
686         andq    %rsi,%rbx
687         andq    %rsi,%rdx
688         movq    %rbx,%r10
689         movq    %rdx,%r13
690         shrq    $7,%r10
691         xorq    %rax,%r8
692         shrq    $7,%r13
693         xorq    %rcx,%r11
694         subq    %r10,%rbx
695         subq    %r13,%rdx
696         leaq    (%r9,%r9,1),%r10
697         leaq    (%r12,%r12,1),%r13
698         xorq    %rax,%r9
699         xorq    %rcx,%r12
700         andq    %rdi,%r10
701         andq    %rdi,%r13
702         andq    %rbp,%rbx
703         andq    %rbp,%rdx
704         xorq    %rbx,%r10
705         xorq    %rdx,%r13
707         xorq    %r10,%rax
708         xorq    %r13,%rcx
709         xorq    %r10,%r8
710         xorq    %r13,%r11
711         movq    %rax,%rbx
712         movq    %rcx,%rdx
713         xorq    %r10,%r9
714         xorq    %r13,%r12
715         shrq    $32,%rbx
716         shrq    $32,%rdx
717         xorq    %r8,%r10
718         xorq    %r11,%r13
719         roll    $8,%eax
720         roll    $8,%ecx
721         xorq    %r9,%r10
722         xorq    %r12,%r13
724         roll    $8,%ebx
725         roll    $8,%edx
726         xorl    %r10d,%eax
727         xorl    %r13d,%ecx
728         shrq    $32,%r10
729         shrq    $32,%r13
730         xorl    %r10d,%ebx
731         xorl    %r13d,%edx
733         movq    %r8,%r10
734         movq    %r11,%r13
735         shrq    $32,%r10
736         shrq    $32,%r13
737         roll    $24,%r8d
738         roll    $24,%r11d
739         roll    $24,%r10d
740         roll    $24,%r13d
741         xorl    %r8d,%eax
742         xorl    %r11d,%ecx
743         movq    %r9,%r8
744         movq    %r12,%r11
745         xorl    %r10d,%ebx
746         xorl    %r13d,%edx
748         movq    0(%r14),%rsi
749         shrq    $32,%r8
750         shrq    $32,%r11
751         movq    64(%r14),%rdi
752         roll    $16,%r9d
753         roll    $16,%r12d
754         movq    128(%r14),%rbp
755         roll    $16,%r8d
756         roll    $16,%r11d
757         movq    192(%r14),%r10
758         xorl    %r9d,%eax
759         xorl    %r12d,%ecx
760         movq    256(%r14),%r13
761         xorl    %r8d,%ebx
762         xorl    %r11d,%edx
763         jmp     .Ldec_loop_compact
764 .align  16
765 .Ldec_compact_done:
766         xorl    0(%r15),%eax
767         xorl    4(%r15),%ebx
768         xorl    8(%r15),%ecx
769         xorl    12(%r15),%edx
770 .byte   0xf3,0xc3                       
771 .size   _x86_64_AES_decrypt_compact,.-_x86_64_AES_decrypt_compact
772 .globl  AES_decrypt
773 .type   AES_decrypt,@function
774 .align  16
775 AES_decrypt:
776         pushq   %rbx
777         pushq   %rbp
778         pushq   %r12
779         pushq   %r13
780         pushq   %r14
781         pushq   %r15
784         movq    %rsp,%rax
785         movq    %rdx,%r15
786         leaq    -63(%rdx),%rcx
787         andq    $-64,%rsp
788         subq    %rsp,%rcx
789         negq    %rcx
790         andq    $960,%rcx
791         subq    %rcx,%rsp
793         pushq   %rax
794         pushq   %rsi
796         movl    240(%r15),%r13d
798         movl    0(%rdi),%eax
799         movl    4(%rdi),%ebx
800         movl    8(%rdi),%ecx
801         movl    12(%rdi),%edx
803         shll    $4,%r13d
804         leaq    (%r15,%r13,1),%rbp
805         pushq   %rbp
806         pushq   %r15
809         .long   0x1358d4c,0x90000000
810         leaq    AES_Td+2048-.(%r14),%r14
811         leaq    768(%rsp),%rbp
812         subq    %r14,%rbp
813         andq    $768,%rbp
814         leaq    (%r14,%rbp,1),%r14
815         shrq    $3,%rbp
816         addq    %rbp,%r14
818         call    _x86_64_AES_decrypt_compact
820         movq    16(%rsp),%r9
821         movq    24(%rsp),%rsp
822         movl    %eax,0(%r9)
823         movl    %ebx,4(%r9)
824         movl    %ecx,8(%r9)
825         movl    %edx,12(%r9)
827         popq    %r15
828         popq    %r14
829         popq    %r13
830         popq    %r12
831         popq    %rbp
832         popq    %rbx
833         .byte   0xf3,0xc3
834 .size   AES_decrypt,.-AES_decrypt
835 .globl  AES_set_encrypt_key
836 .type   AES_set_encrypt_key,@function
837 .align  16
838 AES_set_encrypt_key:
839         call    _x86_64_AES_set_encrypt_key
840         .byte   0xf3,0xc3
841 .size   AES_set_encrypt_key,.-AES_set_encrypt_key
843 .type   _x86_64_AES_set_encrypt_key,@function
844 .align  16
845 _x86_64_AES_set_encrypt_key:
846         pushq   %rbx
847         pushq   %rbp
849         movl    %esi,%ecx
850         movq    %rdi,%rsi
851         movq    %rdx,%rdi
853         testq   $-1,%rsi
854         jz      .Lbadpointer
855         testq   $-1,%rdi
856         jz      .Lbadpointer
858         .long   0x12d8d48,0x90000000
859         leaq    AES_Te-.(%rbp),%rbp
860         leaq    2048+128(%rbp),%rbp
863         movl    0-128(%rbp),%eax
864         movl    32-128(%rbp),%ebx
865         movl    64-128(%rbp),%r8d
866         movl    96-128(%rbp),%edx
867         movl    128-128(%rbp),%eax
868         movl    160-128(%rbp),%ebx
869         movl    192-128(%rbp),%r8d
870         movl    224-128(%rbp),%edx
872         cmpl    $128,%ecx
873         je      .L10rounds
874         cmpl    $192,%ecx
875         je      .L12rounds
876         cmpl    $256,%ecx
877         je      .L14rounds
878         movq    $-2,%rax
879         jmp     .Lexit
881 .L10rounds:
882         movq    0(%rsi),%rax
883         movq    8(%rsi),%rdx
884         movq    %rax,0(%rdi)
885         movq    %rdx,8(%rdi)
887         shrq    $32,%rdx
888         xorl    %ecx,%ecx
889         jmp     .L10shortcut
890 .align  4
891 .L10loop:
892         movl    0(%rdi),%eax
893         movl    12(%rdi),%edx
894 .L10shortcut:
895         movzbl  %dl,%esi
896         movzbl  -128(%rbp,%rsi,1),%ebx
897         movzbl  %dh,%esi
898         shll    $24,%ebx
899         xorl    %ebx,%eax
901         movzbl  -128(%rbp,%rsi,1),%ebx
902         shrl    $16,%edx
903         movzbl  %dl,%esi
904         xorl    %ebx,%eax
906         movzbl  -128(%rbp,%rsi,1),%ebx
907         movzbl  %dh,%esi
908         shll    $8,%ebx
909         xorl    %ebx,%eax
911         movzbl  -128(%rbp,%rsi,1),%ebx
912         shll    $16,%ebx
913         xorl    %ebx,%eax
915         xorl    1024-128(%rbp,%rcx,4),%eax
916         movl    %eax,16(%rdi)
917         xorl    4(%rdi),%eax
918         movl    %eax,20(%rdi)
919         xorl    8(%rdi),%eax
920         movl    %eax,24(%rdi)
921         xorl    12(%rdi),%eax
922         movl    %eax,28(%rdi)
923         addl    $1,%ecx
924         leaq    16(%rdi),%rdi
925         cmpl    $10,%ecx
926         jl      .L10loop
928         movl    $10,80(%rdi)
929         xorq    %rax,%rax
930         jmp     .Lexit
932 .L12rounds:
933         movq    0(%rsi),%rax
934         movq    8(%rsi),%rbx
935         movq    16(%rsi),%rdx
936         movq    %rax,0(%rdi)
937         movq    %rbx,8(%rdi)
938         movq    %rdx,16(%rdi)
940         shrq    $32,%rdx
941         xorl    %ecx,%ecx
942         jmp     .L12shortcut
943 .align  4
944 .L12loop:
945         movl    0(%rdi),%eax
946         movl    20(%rdi),%edx
947 .L12shortcut:
948         movzbl  %dl,%esi
949         movzbl  -128(%rbp,%rsi,1),%ebx
950         movzbl  %dh,%esi
951         shll    $24,%ebx
952         xorl    %ebx,%eax
954         movzbl  -128(%rbp,%rsi,1),%ebx
955         shrl    $16,%edx
956         movzbl  %dl,%esi
957         xorl    %ebx,%eax
959         movzbl  -128(%rbp,%rsi,1),%ebx
960         movzbl  %dh,%esi
961         shll    $8,%ebx
962         xorl    %ebx,%eax
964         movzbl  -128(%rbp,%rsi,1),%ebx
965         shll    $16,%ebx
966         xorl    %ebx,%eax
968         xorl    1024-128(%rbp,%rcx,4),%eax
969         movl    %eax,24(%rdi)
970         xorl    4(%rdi),%eax
971         movl    %eax,28(%rdi)
972         xorl    8(%rdi),%eax
973         movl    %eax,32(%rdi)
974         xorl    12(%rdi),%eax
975         movl    %eax,36(%rdi)
977         cmpl    $7,%ecx
978         je      .L12break
979         addl    $1,%ecx
981         xorl    16(%rdi),%eax
982         movl    %eax,40(%rdi)
983         xorl    20(%rdi),%eax
984         movl    %eax,44(%rdi)
986         leaq    24(%rdi),%rdi
987         jmp     .L12loop
988 .L12break:
989         movl    $12,72(%rdi)
990         xorq    %rax,%rax
991         jmp     .Lexit
993 .L14rounds:
994         movq    0(%rsi),%rax
995         movq    8(%rsi),%rbx
996         movq    16(%rsi),%rcx
997         movq    24(%rsi),%rdx
998         movq    %rax,0(%rdi)
999         movq    %rbx,8(%rdi)
1000         movq    %rcx,16(%rdi)
1001         movq    %rdx,24(%rdi)
1003         shrq    $32,%rdx
1004         xorl    %ecx,%ecx
1005         jmp     .L14shortcut
1006 .align  4
1007 .L14loop:
1008         movl    0(%rdi),%eax
1009         movl    28(%rdi),%edx
1010 .L14shortcut:
1011         movzbl  %dl,%esi
1012         movzbl  -128(%rbp,%rsi,1),%ebx
1013         movzbl  %dh,%esi
1014         shll    $24,%ebx
1015         xorl    %ebx,%eax
1017         movzbl  -128(%rbp,%rsi,1),%ebx
1018         shrl    $16,%edx
1019         movzbl  %dl,%esi
1020         xorl    %ebx,%eax
1022         movzbl  -128(%rbp,%rsi,1),%ebx
1023         movzbl  %dh,%esi
1024         shll    $8,%ebx
1025         xorl    %ebx,%eax
1027         movzbl  -128(%rbp,%rsi,1),%ebx
1028         shll    $16,%ebx
1029         xorl    %ebx,%eax
1031         xorl    1024-128(%rbp,%rcx,4),%eax
1032         movl    %eax,32(%rdi)
1033         xorl    4(%rdi),%eax
1034         movl    %eax,36(%rdi)
1035         xorl    8(%rdi),%eax
1036         movl    %eax,40(%rdi)
1037         xorl    12(%rdi),%eax
1038         movl    %eax,44(%rdi)
1040         cmpl    $6,%ecx
1041         je      .L14break
1042         addl    $1,%ecx
1044         movl    %eax,%edx
1045         movl    16(%rdi),%eax
1046         movzbl  %dl,%esi
1047         movzbl  -128(%rbp,%rsi,1),%ebx
1048         movzbl  %dh,%esi
1049         xorl    %ebx,%eax
1051         movzbl  -128(%rbp,%rsi,1),%ebx
1052         shrl    $16,%edx
1053         shll    $8,%ebx
1054         movzbl  %dl,%esi
1055         xorl    %ebx,%eax
1057         movzbl  -128(%rbp,%rsi,1),%ebx
1058         movzbl  %dh,%esi
1059         shll    $16,%ebx
1060         xorl    %ebx,%eax
1062         movzbl  -128(%rbp,%rsi,1),%ebx
1063         shll    $24,%ebx
1064         xorl    %ebx,%eax
1066         movl    %eax,48(%rdi)
1067         xorl    20(%rdi),%eax
1068         movl    %eax,52(%rdi)
1069         xorl    24(%rdi),%eax
1070         movl    %eax,56(%rdi)
1071         xorl    28(%rdi),%eax
1072         movl    %eax,60(%rdi)
1074         leaq    32(%rdi),%rdi
1075         jmp     .L14loop
1076 .L14break:
1077         movl    $14,48(%rdi)
1078         xorq    %rax,%rax
1079         jmp     .Lexit
1081 .Lbadpointer:
1082         movq    $-1,%rax
1083 .Lexit:
1084         popq    %rbp
1085         popq    %rbx
1086 .byte   0xf3,0xc3                       
1087 .size   _x86_64_AES_set_encrypt_key,.-_x86_64_AES_set_encrypt_key
1088 .globl  AES_set_decrypt_key
1089 .type   AES_set_decrypt_key,@function
1090 .align  16
1091 AES_set_decrypt_key:
1092         pushq   %rdx
1093         call    _x86_64_AES_set_encrypt_key
1094         cmpl    $0,%eax
1095         popq    %r8
1096         jne     .Labort
1098         pushq   %rbx
1099         pushq   %rbp
1100         pushq   %r12
1101         pushq   %r13
1102         pushq   %r14
1103         pushq   %r15
1105         movl    240(%r8),%r14d
1106         xorq    %rdi,%rdi
1107         leaq    (%rdi,%r14,4),%rcx
1108         movq    %r8,%rsi
1109         leaq    (%r8,%rcx,4),%rdi
1110 .align  4
1111 .Linvert:
1112         movq    0(%rsi),%rax
1113         movq    8(%rsi),%rbx
1114         movq    0(%rdi),%rcx
1115         movq    8(%rdi),%rdx
1116         movq    %rax,0(%rdi)
1117         movq    %rbx,8(%rdi)
1118         movq    %rcx,0(%rsi)
1119         movq    %rdx,8(%rsi)
1120         leaq    16(%rsi),%rsi
1121         leaq    -16(%rdi),%rdi
1122         cmpq    %rsi,%rdi
1123         jne     .Linvert
1125         .long   0x1058d48,0x90000000
1126         leaq    AES_Te+2048+1024-.(%rax),%rax
1128         movq    40(%rax),%rsi
1129         movq    48(%rax),%rdi
1130         movq    56(%rax),%rbp
1132         movq    %r8,%r15
1133         subl    $1,%r14d
1134 .align  4
1135 .Lpermute:
1136         leaq    16(%r15),%r15
1137         movq    0(%r15),%rax
1138         movq    8(%r15),%rcx
1139         movq    %rax,%rbx
1140         movq    %rcx,%rdx
1141         andq    %rsi,%rbx
1142         andq    %rsi,%rdx
1143         movq    %rbx,%r9
1144         movq    %rdx,%r12
1145         shrq    $7,%r9
1146         leaq    (%rax,%rax,1),%r8
1147         shrq    $7,%r12
1148         leaq    (%rcx,%rcx,1),%r11
1149         subq    %r9,%rbx
1150         subq    %r12,%rdx
1151         andq    %rdi,%r8
1152         andq    %rdi,%r11
1153         andq    %rbp,%rbx
1154         andq    %rbp,%rdx
1155         xorq    %r8,%rbx
1156         xorq    %r11,%rdx
1157         movq    %rbx,%r8
1158         movq    %rdx,%r11
1160         andq    %rsi,%rbx
1161         andq    %rsi,%rdx
1162         movq    %rbx,%r10
1163         movq    %rdx,%r13
1164         shrq    $7,%r10
1165         leaq    (%r8,%r8,1),%r9
1166         shrq    $7,%r13
1167         leaq    (%r11,%r11,1),%r12
1168         subq    %r10,%rbx
1169         subq    %r13,%rdx
1170         andq    %rdi,%r9
1171         andq    %rdi,%r12
1172         andq    %rbp,%rbx
1173         andq    %rbp,%rdx
1174         xorq    %r9,%rbx
1175         xorq    %r12,%rdx
1176         movq    %rbx,%r9
1177         movq    %rdx,%r12
1179         andq    %rsi,%rbx
1180         andq    %rsi,%rdx
1181         movq    %rbx,%r10
1182         movq    %rdx,%r13
1183         shrq    $7,%r10
1184         xorq    %rax,%r8
1185         shrq    $7,%r13
1186         xorq    %rcx,%r11
1187         subq    %r10,%rbx
1188         subq    %r13,%rdx
1189         leaq    (%r9,%r9,1),%r10
1190         leaq    (%r12,%r12,1),%r13
1191         xorq    %rax,%r9
1192         xorq    %rcx,%r12
1193         andq    %rdi,%r10
1194         andq    %rdi,%r13
1195         andq    %rbp,%rbx
1196         andq    %rbp,%rdx
1197         xorq    %rbx,%r10
1198         xorq    %rdx,%r13
1200         xorq    %r10,%rax
1201         xorq    %r13,%rcx
1202         xorq    %r10,%r8
1203         xorq    %r13,%r11
1204         movq    %rax,%rbx
1205         movq    %rcx,%rdx
1206         xorq    %r10,%r9
1207         xorq    %r13,%r12
1208         shrq    $32,%rbx
1209         shrq    $32,%rdx
1210         xorq    %r8,%r10
1211         xorq    %r11,%r13
1212         roll    $8,%eax
1213         roll    $8,%ecx
1214         xorq    %r9,%r10
1215         xorq    %r12,%r13
1217         roll    $8,%ebx
1218         roll    $8,%edx
1219         xorl    %r10d,%eax
1220         xorl    %r13d,%ecx
1221         shrq    $32,%r10
1222         shrq    $32,%r13
1223         xorl    %r10d,%ebx
1224         xorl    %r13d,%edx
1226         movq    %r8,%r10
1227         movq    %r11,%r13
1228         shrq    $32,%r10
1229         shrq    $32,%r13
1230         roll    $24,%r8d
1231         roll    $24,%r11d
1232         roll    $24,%r10d
1233         roll    $24,%r13d
1234         xorl    %r8d,%eax
1235         xorl    %r11d,%ecx
1236         movq    %r9,%r8
1237         movq    %r12,%r11
1238         xorl    %r10d,%ebx
1239         xorl    %r13d,%edx
1242         shrq    $32,%r8
1243         shrq    $32,%r11
1245         roll    $16,%r9d
1246         roll    $16,%r12d
1248         roll    $16,%r8d
1249         roll    $16,%r11d
1251         xorl    %r9d,%eax
1252         xorl    %r12d,%ecx
1254         xorl    %r8d,%ebx
1255         xorl    %r11d,%edx
1256         movl    %eax,0(%r15)
1257         movl    %ebx,4(%r15)
1258         movl    %ecx,8(%r15)
1259         movl    %edx,12(%r15)
1260         subl    $1,%r14d
1261         jnz     .Lpermute
1263         xorq    %rax,%rax
1264         popq    %r15
1265         popq    %r14
1266         popq    %r13
1267         popq    %r12
1268         popq    %rbp
1269         popq    %rbx
1270 .Labort:
1271         .byte   0xf3,0xc3
1272 .size   AES_set_decrypt_key,.-AES_set_decrypt_key
1273 .globl  AES_cbc_encrypt
1274 .type   AES_cbc_encrypt,@function
1275 .align  16
1277 AES_cbc_encrypt:
1278         cmpq    $0,%rdx
1279         je      .Lcbc_just_ret
1280         pushq   %rbx
1281         pushq   %rbp
1282         pushq   %r12
1283         pushq   %r13
1284         pushq   %r14
1285         pushq   %r15
1286         pushfq
1287         cld
1288         movl    %r9d,%r9d
1290         .long   0x1358d4c,0x90000000
1291         leaq    AES_Te-.(%r14),%r14
1292         cmpq    $0,%r9
1293         jne     .Lcbc_picked_te
1294         leaq    AES_Td-AES_Te(%r14),%r14
1295 .Lcbc_picked_te:
1297         movl    OPENSSL_ia32cap_P@GOTPCREL(%rip),%eax
1298         cmpq    $512,%rdx
1299         jb      .Lcbc_slow_way
1300         testq   $15,%rdx
1301         jnz     .Lcbc_slow_way
1302         btl     $28,%eax
1303         jc      .Lcbc_slow_way
1306         leaq    -88-248(%rsp),%r15
1307         andq    $-64,%r15
1310         movq    %r14,%r10
1311         leaq    2304(%r14),%r11
1312         movq    %r15,%r12
1313         andq    $4095,%r10
1314         andq    $4095,%r11
1315         andq    $4095,%r12
1317         cmpq    %r11,%r12
1318         jb      .Lcbc_te_break_out
1319         subq    %r11,%r12
1320         subq    %r12,%r15
1321         jmp     .Lcbc_te_ok
1322 .Lcbc_te_break_out:
1323         subq    %r10,%r12
1324         andq    $4095,%r12
1325         addq    $320,%r12
1326         subq    %r12,%r15
1327 .align  4
1328 .Lcbc_te_ok:
1330         xchgq   %rsp,%r15
1331         addq    $8,%rsp
1332         movq    %r15,16(%rsp)
1333         movq    %rdi,24(%rsp)
1334         movq    %rsi,32(%rsp)
1335         movq    %rdx,40(%rsp)
1336         movq    %rcx,48(%rsp)
1337         movq    %r8,56(%rsp)
1338         movl    $0,80+240(%rsp)
1339         movq    %r8,%rbp
1340         movq    %r9,%rbx
1341         movq    %rsi,%r9
1342         movq    %rdi,%r8
1343         movq    %rcx,%r15
1345         movl    240(%r15),%eax
1347         movq    %r15,%r10
1348         subq    %r14,%r10
1349         andq    $4095,%r10
1350         cmpq    $2304,%r10
1351         jb      .Lcbc_do_ecopy
1352         cmpq    $4096-248,%r10
1353         jb      .Lcbc_skip_ecopy
1354 .align  4
1355 .Lcbc_do_ecopy:
1356         movq    %r15,%rsi
1357         leaq    80(%rsp),%rdi
1358         leaq    80(%rsp),%r15
1359         movl    $30,%ecx
1360 .long   0x90A548F3      
1361         movl    %eax,(%rdi)
1362 .Lcbc_skip_ecopy:
1363         movq    %r15,0(%rsp)
1365         movl    $18,%ecx
1366 .align  4
1367 .Lcbc_prefetch_te:
1368         movq    0(%r14),%r10
1369         movq    32(%r14),%r11
1370         movq    64(%r14),%r12
1371         movq    96(%r14),%r13
1372         leaq    128(%r14),%r14
1373         subl    $1,%ecx
1374         jnz     .Lcbc_prefetch_te
1375         leaq    -2304(%r14),%r14
1377         cmpq    $0,%rbx
1378         je      .LFAST_DECRYPT
1381         movl    0(%rbp),%eax
1382         movl    4(%rbp),%ebx
1383         movl    8(%rbp),%ecx
1384         movl    12(%rbp),%edx
1386 .align  4
1387 .Lcbc_fast_enc_loop:
1388         xorl    0(%r8),%eax
1389         xorl    4(%r8),%ebx
1390         xorl    8(%r8),%ecx
1391         xorl    12(%r8),%edx
1392         movq    0(%rsp),%r15
1393         movq    %r8,24(%rsp)
1395         call    _x86_64_AES_encrypt
1397         movq    24(%rsp),%r8
1398         movq    40(%rsp),%r10
1399         movl    %eax,0(%r9)
1400         movl    %ebx,4(%r9)
1401         movl    %ecx,8(%r9)
1402         movl    %edx,12(%r9)
1404         leaq    16(%r8),%r8
1405         leaq    16(%r9),%r9
1406         subq    $16,%r10
1407         testq   $-16,%r10
1408         movq    %r10,40(%rsp)
1409         jnz     .Lcbc_fast_enc_loop
1410         movq    56(%rsp),%rbp
1411         movl    %eax,0(%rbp)
1412         movl    %ebx,4(%rbp)
1413         movl    %ecx,8(%rbp)
1414         movl    %edx,12(%rbp)
1416 .align  4
1417 .Lcbc_cleanup:
1418         cmpl    $0,80+240(%rsp)
1419         leaq    80(%rsp),%rdi
1420         je      .Lcbc_exit
1421         movl    $30,%ecx
1422         xorq    %rax,%rax
1423 .long   0x90AB48F3      
1424 .Lcbc_exit:
1425         movq    16(%rsp),%rsp
1426         popfq
1427         popq    %r15
1428         popq    %r14
1429         popq    %r13
1430         popq    %r12
1431         popq    %rbp
1432         popq    %rbx
1433 .Lcbc_just_ret:
1434         .byte   0xf3,0xc3
1437 .align  16
1438 .LFAST_DECRYPT:
1439         cmpq    %r8,%r9
1440         je      .Lcbc_fast_dec_in_place
1442         movq    %rbp,64(%rsp)
1443 .align  4
1444 .Lcbc_fast_dec_loop:
1445         movl    0(%r8),%eax
1446         movl    4(%r8),%ebx
1447         movl    8(%r8),%ecx
1448         movl    12(%r8),%edx
1449         movq    0(%rsp),%r15
1450         movq    %r8,24(%rsp)
1452         call    _x86_64_AES_decrypt
1454         movq    64(%rsp),%rbp
1455         movq    24(%rsp),%r8
1456         movq    40(%rsp),%r10
1457         xorl    0(%rbp),%eax
1458         xorl    4(%rbp),%ebx
1459         xorl    8(%rbp),%ecx
1460         xorl    12(%rbp),%edx
1461         movq    %r8,%rbp
1463         subq    $16,%r10
1464         movq    %r10,40(%rsp)
1465         movq    %rbp,64(%rsp)
1467         movl    %eax,0(%r9)
1468         movl    %ebx,4(%r9)
1469         movl    %ecx,8(%r9)
1470         movl    %edx,12(%r9)
1472         leaq    16(%r8),%r8
1473         leaq    16(%r9),%r9
1474         jnz     .Lcbc_fast_dec_loop
1475         movq    56(%rsp),%r12
1476         movq    0(%rbp),%r10
1477         movq    8(%rbp),%r11
1478         movq    %r10,0(%r12)
1479         movq    %r11,8(%r12)
1480         jmp     .Lcbc_cleanup
1482 .align  16
1483 .Lcbc_fast_dec_in_place:
1484         movq    0(%rbp),%r10
1485         movq    8(%rbp),%r11
1486         movq    %r10,0+64(%rsp)
1487         movq    %r11,8+64(%rsp)
1488 .align  4
1489 .Lcbc_fast_dec_in_place_loop:
1490         movl    0(%r8),%eax
1491         movl    4(%r8),%ebx
1492         movl    8(%r8),%ecx
1493         movl    12(%r8),%edx
1494         movq    0(%rsp),%r15
1495         movq    %r8,24(%rsp)
1497         call    _x86_64_AES_decrypt
1499         movq    24(%rsp),%r8
1500         movq    40(%rsp),%r10
1501         xorl    0+64(%rsp),%eax
1502         xorl    4+64(%rsp),%ebx
1503         xorl    8+64(%rsp),%ecx
1504         xorl    12+64(%rsp),%edx
1506         movq    0(%r8),%r11
1507         movq    8(%r8),%r12
1508         subq    $16,%r10
1509         jz      .Lcbc_fast_dec_in_place_done
1511         movq    %r11,0+64(%rsp)
1512         movq    %r12,8+64(%rsp)
1514         movl    %eax,0(%r9)
1515         movl    %ebx,4(%r9)
1516         movl    %ecx,8(%r9)
1517         movl    %edx,12(%r9)
1519         leaq    16(%r8),%r8
1520         leaq    16(%r9),%r9
1521         movq    %r10,40(%rsp)
1522         jmp     .Lcbc_fast_dec_in_place_loop
1523 .Lcbc_fast_dec_in_place_done:
1524         movq    56(%rsp),%rdi
1525         movq    %r11,0(%rdi)
1526         movq    %r12,8(%rdi)
1528         movl    %eax,0(%r9)
1529         movl    %ebx,4(%r9)
1530         movl    %ecx,8(%r9)
1531         movl    %edx,12(%r9)
1533         jmp     .Lcbc_cleanup
1536 .align  16
1537 .Lcbc_slow_way:
1539         leaq    -88(%rsp),%rbp
1540         andq    $-64,%rbp
1542         leaq    -88-63(%rcx),%rax
1543         subq    %rbp,%rax
1544         negq    %rax
1545         andq    $960,%rax
1546         subq    %rax,%rbp
1548         xchgq   %rsp,%rbp
1549         addq    $8,%rsp
1550         movq    %rbp,16(%rsp)
1555         movq    %r8,56(%rsp)
1556         movq    %r8,%rbp
1557         movq    %r9,%rbx
1558         movq    %rsi,%r9
1559         movq    %rdi,%r8
1560         movq    %rcx,%r15
1561         movq    %rdx,%r10
1563         movl    240(%r15),%eax
1564         movq    %r15,0(%rsp)
1565         shll    $4,%eax
1566         leaq    (%r15,%rax,1),%rax
1567         movq    %rax,8(%rsp)
1570         leaq    2048(%r14),%r14
1571         leaq    768-8(%rsp),%rax
1572         subq    %r14,%rax
1573         andq    $768,%rax
1574         leaq    (%r14,%rax,1),%r14
1576         cmpq    $0,%rbx
1577         je      .LSLOW_DECRYPT
1580         testq   $-16,%r10
1581         movl    0(%rbp),%eax
1582         movl    4(%rbp),%ebx
1583         movl    8(%rbp),%ecx
1584         movl    12(%rbp),%edx
1585         jz      .Lcbc_slow_enc_tail     
1587 .align  4
1588 .Lcbc_slow_enc_loop:
1589         xorl    0(%r8),%eax
1590         xorl    4(%r8),%ebx
1591         xorl    8(%r8),%ecx
1592         xorl    12(%r8),%edx
1593         movq    0(%rsp),%r15
1594         movq    %r8,24(%rsp)
1595         movq    %r9,32(%rsp)
1596         movq    %r10,40(%rsp)
1598         call    _x86_64_AES_encrypt_compact
1600         movq    24(%rsp),%r8
1601         movq    32(%rsp),%r9
1602         movq    40(%rsp),%r10
1603         movl    %eax,0(%r9)
1604         movl    %ebx,4(%r9)
1605         movl    %ecx,8(%r9)
1606         movl    %edx,12(%r9)
1608         leaq    16(%r8),%r8
1609         leaq    16(%r9),%r9
1610         subq    $16,%r10
1611         testq   $-16,%r10
1612         jnz     .Lcbc_slow_enc_loop
1613         testq   $15,%r10
1614         jnz     .Lcbc_slow_enc_tail
1615         movq    56(%rsp),%rbp
1616         movl    %eax,0(%rbp)
1617         movl    %ebx,4(%rbp)
1618         movl    %ecx,8(%rbp)
1619         movl    %edx,12(%rbp)
1621         jmp     .Lcbc_exit
1622 .align  4
1623 .Lcbc_slow_enc_tail:
1624         cmpq    %r8,%r9
1625         je      .Lcbc_slow_enc_in_place
1626         movq    %r10,%rcx
1627         movq    %r8,%rsi
1628         movq    %r9,%rdi
1629 .long   0x9066A4F3              
1630 .Lcbc_slow_enc_in_place:
1631         movq    $16,%rcx
1632         subq    %r10,%rcx
1633         xorq    %rax,%rax
1634 .long   0x9066AAF3              
1635         movq    %r9,%r8
1636         movq    $16,40(%rsp)
1637         jmp     .Lcbc_slow_enc_loop     
1639 .align  16
1640 .LSLOW_DECRYPT:
1641         shrq    $3,%rax
1642         addq    %rax,%r14
1644         movq    0(%rbp),%r11
1645         movq    8(%rbp),%r12
1646         movq    %r11,0+64(%rsp)
1647         movq    %r12,8+64(%rsp)
1649 .align  4
1650 .Lcbc_slow_dec_loop:
1651         movl    0(%r8),%eax
1652         movl    4(%r8),%ebx
1653         movl    8(%r8),%ecx
1654         movl    12(%r8),%edx
1655         movq    0(%rsp),%r15
1656         movq    %r8,24(%rsp)
1657         movq    %r9,32(%rsp)
1658         movq    %r10,40(%rsp)
1660         call    _x86_64_AES_decrypt_compact
1662         movq    24(%rsp),%r8
1663         movq    32(%rsp),%r9
1664         movq    40(%rsp),%r10
1665         xorl    0+64(%rsp),%eax
1666         xorl    4+64(%rsp),%ebx
1667         xorl    8+64(%rsp),%ecx
1668         xorl    12+64(%rsp),%edx
1670         movq    0(%r8),%r11
1671         movq    8(%r8),%r12
1672         subq    $16,%r10
1673         jc      .Lcbc_slow_dec_partial
1674         jz      .Lcbc_slow_dec_done
1676         movq    %r11,0+64(%rsp)
1677         movq    %r12,8+64(%rsp)
1679         movl    %eax,0(%r9)
1680         movl    %ebx,4(%r9)
1681         movl    %ecx,8(%r9)
1682         movl    %edx,12(%r9)
1684         leaq    16(%r8),%r8
1685         leaq    16(%r9),%r9
1686         jmp     .Lcbc_slow_dec_loop
1687 .Lcbc_slow_dec_done:
1688         movq    56(%rsp),%rdi
1689         movq    %r11,0(%rdi)
1690         movq    %r12,8(%rdi)
1692         movl    %eax,0(%r9)
1693         movl    %ebx,4(%r9)
1694         movl    %ecx,8(%r9)
1695         movl    %edx,12(%r9)
1697         jmp     .Lcbc_exit
1699 .align  4
1700 .Lcbc_slow_dec_partial:
1701         movq    56(%rsp),%rdi
1702         movq    %r11,0(%rdi)
1703         movq    %r12,8(%rdi)
1705         movl    %eax,0+64(%rsp)
1706         movl    %ebx,4+64(%rsp)
1707         movl    %ecx,8+64(%rsp)
1708         movl    %edx,12+64(%rsp)
1710         movq    %r9,%rdi
1711         leaq    64(%rsp),%rsi
1712         leaq    16(%r10),%rcx
1713 .long   0x9066A4F3      
1714         jmp     .Lcbc_exit
1715 .size   AES_cbc_encrypt,.-AES_cbc_encrypt
1716 .globl  AES_Te
1717 .align  64
1718 AES_Te:
1719 .long   0xa56363c6,0xa56363c6
1720 .long   0x847c7cf8,0x847c7cf8
1721 .long   0x997777ee,0x997777ee
1722 .long   0x8d7b7bf6,0x8d7b7bf6
1723 .long   0x0df2f2ff,0x0df2f2ff
1724 .long   0xbd6b6bd6,0xbd6b6bd6
1725 .long   0xb16f6fde,0xb16f6fde
1726 .long   0x54c5c591,0x54c5c591
1727 .long   0x50303060,0x50303060
1728 .long   0x03010102,0x03010102
1729 .long   0xa96767ce,0xa96767ce
1730 .long   0x7d2b2b56,0x7d2b2b56
1731 .long   0x19fefee7,0x19fefee7
1732 .long   0x62d7d7b5,0x62d7d7b5
1733 .long   0xe6abab4d,0xe6abab4d
1734 .long   0x9a7676ec,0x9a7676ec
1735 .long   0x45caca8f,0x45caca8f
1736 .long   0x9d82821f,0x9d82821f
1737 .long   0x40c9c989,0x40c9c989
1738 .long   0x877d7dfa,0x877d7dfa
1739 .long   0x15fafaef,0x15fafaef
1740 .long   0xeb5959b2,0xeb5959b2
1741 .long   0xc947478e,0xc947478e
1742 .long   0x0bf0f0fb,0x0bf0f0fb
1743 .long   0xecadad41,0xecadad41
1744 .long   0x67d4d4b3,0x67d4d4b3
1745 .long   0xfda2a25f,0xfda2a25f
1746 .long   0xeaafaf45,0xeaafaf45
1747 .long   0xbf9c9c23,0xbf9c9c23
1748 .long   0xf7a4a453,0xf7a4a453
1749 .long   0x967272e4,0x967272e4
1750 .long   0x5bc0c09b,0x5bc0c09b
1751 .long   0xc2b7b775,0xc2b7b775
1752 .long   0x1cfdfde1,0x1cfdfde1
1753 .long   0xae93933d,0xae93933d
1754 .long   0x6a26264c,0x6a26264c
1755 .long   0x5a36366c,0x5a36366c
1756 .long   0x413f3f7e,0x413f3f7e
1757 .long   0x02f7f7f5,0x02f7f7f5
1758 .long   0x4fcccc83,0x4fcccc83
1759 .long   0x5c343468,0x5c343468
1760 .long   0xf4a5a551,0xf4a5a551
1761 .long   0x34e5e5d1,0x34e5e5d1
1762 .long   0x08f1f1f9,0x08f1f1f9
1763 .long   0x937171e2,0x937171e2
1764 .long   0x73d8d8ab,0x73d8d8ab
1765 .long   0x53313162,0x53313162
1766 .long   0x3f15152a,0x3f15152a
1767 .long   0x0c040408,0x0c040408
1768 .long   0x52c7c795,0x52c7c795
1769 .long   0x65232346,0x65232346
1770 .long   0x5ec3c39d,0x5ec3c39d
1771 .long   0x28181830,0x28181830
1772 .long   0xa1969637,0xa1969637
1773 .long   0x0f05050a,0x0f05050a
1774 .long   0xb59a9a2f,0xb59a9a2f
1775 .long   0x0907070e,0x0907070e
1776 .long   0x36121224,0x36121224
1777 .long   0x9b80801b,0x9b80801b
1778 .long   0x3de2e2df,0x3de2e2df
1779 .long   0x26ebebcd,0x26ebebcd
1780 .long   0x6927274e,0x6927274e
1781 .long   0xcdb2b27f,0xcdb2b27f
1782 .long   0x9f7575ea,0x9f7575ea
1783 .long   0x1b090912,0x1b090912
1784 .long   0x9e83831d,0x9e83831d
1785 .long   0x742c2c58,0x742c2c58
1786 .long   0x2e1a1a34,0x2e1a1a34
1787 .long   0x2d1b1b36,0x2d1b1b36
1788 .long   0xb26e6edc,0xb26e6edc
1789 .long   0xee5a5ab4,0xee5a5ab4
1790 .long   0xfba0a05b,0xfba0a05b
1791 .long   0xf65252a4,0xf65252a4
1792 .long   0x4d3b3b76,0x4d3b3b76
1793 .long   0x61d6d6b7,0x61d6d6b7
1794 .long   0xceb3b37d,0xceb3b37d
1795 .long   0x7b292952,0x7b292952
1796 .long   0x3ee3e3dd,0x3ee3e3dd
1797 .long   0x712f2f5e,0x712f2f5e
1798 .long   0x97848413,0x97848413
1799 .long   0xf55353a6,0xf55353a6
1800 .long   0x68d1d1b9,0x68d1d1b9
1801 .long   0x00000000,0x00000000
1802 .long   0x2cededc1,0x2cededc1
1803 .long   0x60202040,0x60202040
1804 .long   0x1ffcfce3,0x1ffcfce3
1805 .long   0xc8b1b179,0xc8b1b179
1806 .long   0xed5b5bb6,0xed5b5bb6
1807 .long   0xbe6a6ad4,0xbe6a6ad4
1808 .long   0x46cbcb8d,0x46cbcb8d
1809 .long   0xd9bebe67,0xd9bebe67
1810 .long   0x4b393972,0x4b393972
1811 .long   0xde4a4a94,0xde4a4a94
1812 .long   0xd44c4c98,0xd44c4c98
1813 .long   0xe85858b0,0xe85858b0
1814 .long   0x4acfcf85,0x4acfcf85
1815 .long   0x6bd0d0bb,0x6bd0d0bb
1816 .long   0x2aefefc5,0x2aefefc5
1817 .long   0xe5aaaa4f,0xe5aaaa4f
1818 .long   0x16fbfbed,0x16fbfbed
1819 .long   0xc5434386,0xc5434386
1820 .long   0xd74d4d9a,0xd74d4d9a
1821 .long   0x55333366,0x55333366
1822 .long   0x94858511,0x94858511
1823 .long   0xcf45458a,0xcf45458a
1824 .long   0x10f9f9e9,0x10f9f9e9
1825 .long   0x06020204,0x06020204
1826 .long   0x817f7ffe,0x817f7ffe
1827 .long   0xf05050a0,0xf05050a0
1828 .long   0x443c3c78,0x443c3c78
1829 .long   0xba9f9f25,0xba9f9f25
1830 .long   0xe3a8a84b,0xe3a8a84b
1831 .long   0xf35151a2,0xf35151a2
1832 .long   0xfea3a35d,0xfea3a35d
1833 .long   0xc0404080,0xc0404080
1834 .long   0x8a8f8f05,0x8a8f8f05
1835 .long   0xad92923f,0xad92923f
1836 .long   0xbc9d9d21,0xbc9d9d21
1837 .long   0x48383870,0x48383870
1838 .long   0x04f5f5f1,0x04f5f5f1
1839 .long   0xdfbcbc63,0xdfbcbc63
1840 .long   0xc1b6b677,0xc1b6b677
1841 .long   0x75dadaaf,0x75dadaaf
1842 .long   0x63212142,0x63212142
1843 .long   0x30101020,0x30101020
1844 .long   0x1affffe5,0x1affffe5
1845 .long   0x0ef3f3fd,0x0ef3f3fd
1846 .long   0x6dd2d2bf,0x6dd2d2bf
1847 .long   0x4ccdcd81,0x4ccdcd81
1848 .long   0x140c0c18,0x140c0c18
1849 .long   0x35131326,0x35131326
1850 .long   0x2fececc3,0x2fececc3
1851 .long   0xe15f5fbe,0xe15f5fbe
1852 .long   0xa2979735,0xa2979735
1853 .long   0xcc444488,0xcc444488
1854 .long   0x3917172e,0x3917172e
1855 .long   0x57c4c493,0x57c4c493
1856 .long   0xf2a7a755,0xf2a7a755
1857 .long   0x827e7efc,0x827e7efc
1858 .long   0x473d3d7a,0x473d3d7a
1859 .long   0xac6464c8,0xac6464c8
1860 .long   0xe75d5dba,0xe75d5dba
1861 .long   0x2b191932,0x2b191932
1862 .long   0x957373e6,0x957373e6
1863 .long   0xa06060c0,0xa06060c0
1864 .long   0x98818119,0x98818119
1865 .long   0xd14f4f9e,0xd14f4f9e
1866 .long   0x7fdcdca3,0x7fdcdca3
1867 .long   0x66222244,0x66222244
1868 .long   0x7e2a2a54,0x7e2a2a54
1869 .long   0xab90903b,0xab90903b
1870 .long   0x8388880b,0x8388880b
1871 .long   0xca46468c,0xca46468c
1872 .long   0x29eeeec7,0x29eeeec7
1873 .long   0xd3b8b86b,0xd3b8b86b
1874 .long   0x3c141428,0x3c141428
1875 .long   0x79dedea7,0x79dedea7
1876 .long   0xe25e5ebc,0xe25e5ebc
1877 .long   0x1d0b0b16,0x1d0b0b16
1878 .long   0x76dbdbad,0x76dbdbad
1879 .long   0x3be0e0db,0x3be0e0db
1880 .long   0x56323264,0x56323264
1881 .long   0x4e3a3a74,0x4e3a3a74
1882 .long   0x1e0a0a14,0x1e0a0a14
1883 .long   0xdb494992,0xdb494992
1884 .long   0x0a06060c,0x0a06060c
1885 .long   0x6c242448,0x6c242448
1886 .long   0xe45c5cb8,0xe45c5cb8
1887 .long   0x5dc2c29f,0x5dc2c29f
1888 .long   0x6ed3d3bd,0x6ed3d3bd
1889 .long   0xefacac43,0xefacac43
1890 .long   0xa66262c4,0xa66262c4
1891 .long   0xa8919139,0xa8919139
1892 .long   0xa4959531,0xa4959531
1893 .long   0x37e4e4d3,0x37e4e4d3
1894 .long   0x8b7979f2,0x8b7979f2
1895 .long   0x32e7e7d5,0x32e7e7d5
1896 .long   0x43c8c88b,0x43c8c88b
1897 .long   0x5937376e,0x5937376e
1898 .long   0xb76d6dda,0xb76d6dda
1899 .long   0x8c8d8d01,0x8c8d8d01
1900 .long   0x64d5d5b1,0x64d5d5b1
1901 .long   0xd24e4e9c,0xd24e4e9c
1902 .long   0xe0a9a949,0xe0a9a949
1903 .long   0xb46c6cd8,0xb46c6cd8
1904 .long   0xfa5656ac,0xfa5656ac
1905 .long   0x07f4f4f3,0x07f4f4f3
1906 .long   0x25eaeacf,0x25eaeacf
1907 .long   0xaf6565ca,0xaf6565ca
1908 .long   0x8e7a7af4,0x8e7a7af4
1909 .long   0xe9aeae47,0xe9aeae47
1910 .long   0x18080810,0x18080810
1911 .long   0xd5baba6f,0xd5baba6f
1912 .long   0x887878f0,0x887878f0
1913 .long   0x6f25254a,0x6f25254a
1914 .long   0x722e2e5c,0x722e2e5c
1915 .long   0x241c1c38,0x241c1c38
1916 .long   0xf1a6a657,0xf1a6a657
1917 .long   0xc7b4b473,0xc7b4b473
1918 .long   0x51c6c697,0x51c6c697
1919 .long   0x23e8e8cb,0x23e8e8cb
1920 .long   0x7cdddda1,0x7cdddda1
1921 .long   0x9c7474e8,0x9c7474e8
1922 .long   0x211f1f3e,0x211f1f3e
1923 .long   0xdd4b4b96,0xdd4b4b96
1924 .long   0xdcbdbd61,0xdcbdbd61
1925 .long   0x868b8b0d,0x868b8b0d
1926 .long   0x858a8a0f,0x858a8a0f
1927 .long   0x907070e0,0x907070e0
1928 .long   0x423e3e7c,0x423e3e7c
1929 .long   0xc4b5b571,0xc4b5b571
1930 .long   0xaa6666cc,0xaa6666cc
1931 .long   0xd8484890,0xd8484890
1932 .long   0x05030306,0x05030306
1933 .long   0x01f6f6f7,0x01f6f6f7
1934 .long   0x120e0e1c,0x120e0e1c
1935 .long   0xa36161c2,0xa36161c2
1936 .long   0x5f35356a,0x5f35356a
1937 .long   0xf95757ae,0xf95757ae
1938 .long   0xd0b9b969,0xd0b9b969
1939 .long   0x91868617,0x91868617
1940 .long   0x58c1c199,0x58c1c199
1941 .long   0x271d1d3a,0x271d1d3a
1942 .long   0xb99e9e27,0xb99e9e27
1943 .long   0x38e1e1d9,0x38e1e1d9
1944 .long   0x13f8f8eb,0x13f8f8eb
1945 .long   0xb398982b,0xb398982b
1946 .long   0x33111122,0x33111122
1947 .long   0xbb6969d2,0xbb6969d2
1948 .long   0x70d9d9a9,0x70d9d9a9
1949 .long   0x898e8e07,0x898e8e07
1950 .long   0xa7949433,0xa7949433
1951 .long   0xb69b9b2d,0xb69b9b2d
1952 .long   0x221e1e3c,0x221e1e3c
1953 .long   0x92878715,0x92878715
1954 .long   0x20e9e9c9,0x20e9e9c9
1955 .long   0x49cece87,0x49cece87
1956 .long   0xff5555aa,0xff5555aa
1957 .long   0x78282850,0x78282850
1958 .long   0x7adfdfa5,0x7adfdfa5
1959 .long   0x8f8c8c03,0x8f8c8c03
1960 .long   0xf8a1a159,0xf8a1a159
1961 .long   0x80898909,0x80898909
1962 .long   0x170d0d1a,0x170d0d1a
1963 .long   0xdabfbf65,0xdabfbf65
1964 .long   0x31e6e6d7,0x31e6e6d7
1965 .long   0xc6424284,0xc6424284
1966 .long   0xb86868d0,0xb86868d0
1967 .long   0xc3414182,0xc3414182
1968 .long   0xb0999929,0xb0999929
1969 .long   0x772d2d5a,0x772d2d5a
1970 .long   0x110f0f1e,0x110f0f1e
1971 .long   0xcbb0b07b,0xcbb0b07b
1972 .long   0xfc5454a8,0xfc5454a8
1973 .long   0xd6bbbb6d,0xd6bbbb6d
1974 .long   0x3a16162c,0x3a16162c
1975 .byte   0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
1976 .byte   0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
1977 .byte   0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
1978 .byte   0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
1979 .byte   0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
1980 .byte   0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
1981 .byte   0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
1982 .byte   0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
1983 .byte   0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
1984 .byte   0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
1985 .byte   0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
1986 .byte   0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
1987 .byte   0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
1988 .byte   0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
1989 .byte   0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
1990 .byte   0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
1991 .byte   0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
1992 .byte   0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
1993 .byte   0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
1994 .byte   0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
1995 .byte   0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
1996 .byte   0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
1997 .byte   0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
1998 .byte   0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
1999 .byte   0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
2000 .byte   0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
2001 .byte   0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
2002 .byte   0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
2003 .byte   0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
2004 .byte   0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
2005 .byte   0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
2006 .byte   0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
2007 .byte   0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
2008 .byte   0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
2009 .byte   0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
2010 .byte   0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
2011 .byte   0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
2012 .byte   0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
2013 .byte   0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
2014 .byte   0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
2015 .byte   0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
2016 .byte   0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
2017 .byte   0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
2018 .byte   0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
2019 .byte   0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
2020 .byte   0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
2021 .byte   0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
2022 .byte   0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
2023 .byte   0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
2024 .byte   0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
2025 .byte   0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
2026 .byte   0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
2027 .byte   0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
2028 .byte   0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
2029 .byte   0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
2030 .byte   0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
2031 .byte   0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
2032 .byte   0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
2033 .byte   0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
2034 .byte   0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
2035 .byte   0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
2036 .byte   0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
2037 .byte   0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
2038 .byte   0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
2039 .byte   0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
2040 .byte   0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
2041 .byte   0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
2042 .byte   0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
2043 .byte   0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
2044 .byte   0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
2045 .byte   0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
2046 .byte   0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
2047 .byte   0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
2048 .byte   0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
2049 .byte   0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
2050 .byte   0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
2051 .byte   0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
2052 .byte   0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
2053 .byte   0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
2054 .byte   0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
2055 .byte   0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
2056 .byte   0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
2057 .byte   0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
2058 .byte   0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
2059 .byte   0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
2060 .byte   0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
2061 .byte   0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
2062 .byte   0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
2063 .byte   0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
2064 .byte   0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
2065 .byte   0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
2066 .byte   0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
2067 .byte   0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
2068 .byte   0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
2069 .byte   0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
2070 .byte   0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
2071 .byte   0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
2072 .byte   0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
2073 .byte   0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
2074 .byte   0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
2075 .byte   0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
2076 .byte   0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
2077 .byte   0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
2078 .byte   0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
2079 .byte   0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
2080 .byte   0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
2081 .byte   0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
2082 .byte   0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
2083 .byte   0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
2084 .byte   0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
2085 .byte   0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
2086 .byte   0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
2087 .byte   0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
2088 .byte   0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
2089 .byte   0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
2090 .byte   0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
2091 .byte   0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
2092 .byte   0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
2093 .byte   0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
2094 .byte   0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
2095 .byte   0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
2096 .byte   0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
2097 .byte   0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
2098 .byte   0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
2099 .byte   0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
2100 .byte   0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
2101 .byte   0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
2102 .byte   0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
2103 .long   0x00000001, 0x00000002, 0x00000004, 0x00000008
2104 .long   0x00000010, 0x00000020, 0x00000040, 0x00000080
2105 .long   0x0000001b, 0x00000036, 0x80808080, 0x80808080
2106 .long   0xfefefefe, 0xfefefefe, 0x1b1b1b1b, 0x1b1b1b1b
2107 .globl  AES_Td
2108 .align  64
2109 AES_Td:
2110 .long   0x50a7f451,0x50a7f451
2111 .long   0x5365417e,0x5365417e
2112 .long   0xc3a4171a,0xc3a4171a
2113 .long   0x965e273a,0x965e273a
2114 .long   0xcb6bab3b,0xcb6bab3b
2115 .long   0xf1459d1f,0xf1459d1f
2116 .long   0xab58faac,0xab58faac
2117 .long   0x9303e34b,0x9303e34b
2118 .long   0x55fa3020,0x55fa3020
2119 .long   0xf66d76ad,0xf66d76ad
2120 .long   0x9176cc88,0x9176cc88
2121 .long   0x254c02f5,0x254c02f5
2122 .long   0xfcd7e54f,0xfcd7e54f
2123 .long   0xd7cb2ac5,0xd7cb2ac5
2124 .long   0x80443526,0x80443526
2125 .long   0x8fa362b5,0x8fa362b5
2126 .long   0x495ab1de,0x495ab1de
2127 .long   0x671bba25,0x671bba25
2128 .long   0x980eea45,0x980eea45
2129 .long   0xe1c0fe5d,0xe1c0fe5d
2130 .long   0x02752fc3,0x02752fc3
2131 .long   0x12f04c81,0x12f04c81
2132 .long   0xa397468d,0xa397468d
2133 .long   0xc6f9d36b,0xc6f9d36b
2134 .long   0xe75f8f03,0xe75f8f03
2135 .long   0x959c9215,0x959c9215
2136 .long   0xeb7a6dbf,0xeb7a6dbf
2137 .long   0xda595295,0xda595295
2138 .long   0x2d83bed4,0x2d83bed4
2139 .long   0xd3217458,0xd3217458
2140 .long   0x2969e049,0x2969e049
2141 .long   0x44c8c98e,0x44c8c98e
2142 .long   0x6a89c275,0x6a89c275
2143 .long   0x78798ef4,0x78798ef4
2144 .long   0x6b3e5899,0x6b3e5899
2145 .long   0xdd71b927,0xdd71b927
2146 .long   0xb64fe1be,0xb64fe1be
2147 .long   0x17ad88f0,0x17ad88f0
2148 .long   0x66ac20c9,0x66ac20c9
2149 .long   0xb43ace7d,0xb43ace7d
2150 .long   0x184adf63,0x184adf63
2151 .long   0x82311ae5,0x82311ae5
2152 .long   0x60335197,0x60335197
2153 .long   0x457f5362,0x457f5362
2154 .long   0xe07764b1,0xe07764b1
2155 .long   0x84ae6bbb,0x84ae6bbb
2156 .long   0x1ca081fe,0x1ca081fe
2157 .long   0x942b08f9,0x942b08f9
2158 .long   0x58684870,0x58684870
2159 .long   0x19fd458f,0x19fd458f
2160 .long   0x876cde94,0x876cde94
2161 .long   0xb7f87b52,0xb7f87b52
2162 .long   0x23d373ab,0x23d373ab
2163 .long   0xe2024b72,0xe2024b72
2164 .long   0x578f1fe3,0x578f1fe3
2165 .long   0x2aab5566,0x2aab5566
2166 .long   0x0728ebb2,0x0728ebb2
2167 .long   0x03c2b52f,0x03c2b52f
2168 .long   0x9a7bc586,0x9a7bc586
2169 .long   0xa50837d3,0xa50837d3
2170 .long   0xf2872830,0xf2872830
2171 .long   0xb2a5bf23,0xb2a5bf23
2172 .long   0xba6a0302,0xba6a0302
2173 .long   0x5c8216ed,0x5c8216ed
2174 .long   0x2b1ccf8a,0x2b1ccf8a
2175 .long   0x92b479a7,0x92b479a7
2176 .long   0xf0f207f3,0xf0f207f3
2177 .long   0xa1e2694e,0xa1e2694e
2178 .long   0xcdf4da65,0xcdf4da65
2179 .long   0xd5be0506,0xd5be0506
2180 .long   0x1f6234d1,0x1f6234d1
2181 .long   0x8afea6c4,0x8afea6c4
2182 .long   0x9d532e34,0x9d532e34
2183 .long   0xa055f3a2,0xa055f3a2
2184 .long   0x32e18a05,0x32e18a05
2185 .long   0x75ebf6a4,0x75ebf6a4
2186 .long   0x39ec830b,0x39ec830b
2187 .long   0xaaef6040,0xaaef6040
2188 .long   0x069f715e,0x069f715e
2189 .long   0x51106ebd,0x51106ebd
2190 .long   0xf98a213e,0xf98a213e
2191 .long   0x3d06dd96,0x3d06dd96
2192 .long   0xae053edd,0xae053edd
2193 .long   0x46bde64d,0x46bde64d
2194 .long   0xb58d5491,0xb58d5491
2195 .long   0x055dc471,0x055dc471
2196 .long   0x6fd40604,0x6fd40604
2197 .long   0xff155060,0xff155060
2198 .long   0x24fb9819,0x24fb9819
2199 .long   0x97e9bdd6,0x97e9bdd6
2200 .long   0xcc434089,0xcc434089
2201 .long   0x779ed967,0x779ed967
2202 .long   0xbd42e8b0,0xbd42e8b0
2203 .long   0x888b8907,0x888b8907
2204 .long   0x385b19e7,0x385b19e7
2205 .long   0xdbeec879,0xdbeec879
2206 .long   0x470a7ca1,0x470a7ca1
2207 .long   0xe90f427c,0xe90f427c
2208 .long   0xc91e84f8,0xc91e84f8
2209 .long   0x00000000,0x00000000
2210 .long   0x83868009,0x83868009
2211 .long   0x48ed2b32,0x48ed2b32
2212 .long   0xac70111e,0xac70111e
2213 .long   0x4e725a6c,0x4e725a6c
2214 .long   0xfbff0efd,0xfbff0efd
2215 .long   0x5638850f,0x5638850f
2216 .long   0x1ed5ae3d,0x1ed5ae3d
2217 .long   0x27392d36,0x27392d36
2218 .long   0x64d90f0a,0x64d90f0a
2219 .long   0x21a65c68,0x21a65c68
2220 .long   0xd1545b9b,0xd1545b9b
2221 .long   0x3a2e3624,0x3a2e3624
2222 .long   0xb1670a0c,0xb1670a0c
2223 .long   0x0fe75793,0x0fe75793
2224 .long   0xd296eeb4,0xd296eeb4
2225 .long   0x9e919b1b,0x9e919b1b
2226 .long   0x4fc5c080,0x4fc5c080
2227 .long   0xa220dc61,0xa220dc61
2228 .long   0x694b775a,0x694b775a
2229 .long   0x161a121c,0x161a121c
2230 .long   0x0aba93e2,0x0aba93e2
2231 .long   0xe52aa0c0,0xe52aa0c0
2232 .long   0x43e0223c,0x43e0223c
2233 .long   0x1d171b12,0x1d171b12
2234 .long   0x0b0d090e,0x0b0d090e
2235 .long   0xadc78bf2,0xadc78bf2
2236 .long   0xb9a8b62d,0xb9a8b62d
2237 .long   0xc8a91e14,0xc8a91e14
2238 .long   0x8519f157,0x8519f157
2239 .long   0x4c0775af,0x4c0775af
2240 .long   0xbbdd99ee,0xbbdd99ee
2241 .long   0xfd607fa3,0xfd607fa3
2242 .long   0x9f2601f7,0x9f2601f7
2243 .long   0xbcf5725c,0xbcf5725c
2244 .long   0xc53b6644,0xc53b6644
2245 .long   0x347efb5b,0x347efb5b
2246 .long   0x7629438b,0x7629438b
2247 .long   0xdcc623cb,0xdcc623cb
2248 .long   0x68fcedb6,0x68fcedb6
2249 .long   0x63f1e4b8,0x63f1e4b8
2250 .long   0xcadc31d7,0xcadc31d7
2251 .long   0x10856342,0x10856342
2252 .long   0x40229713,0x40229713
2253 .long   0x2011c684,0x2011c684
2254 .long   0x7d244a85,0x7d244a85
2255 .long   0xf83dbbd2,0xf83dbbd2
2256 .long   0x1132f9ae,0x1132f9ae
2257 .long   0x6da129c7,0x6da129c7
2258 .long   0x4b2f9e1d,0x4b2f9e1d
2259 .long   0xf330b2dc,0xf330b2dc
2260 .long   0xec52860d,0xec52860d
2261 .long   0xd0e3c177,0xd0e3c177
2262 .long   0x6c16b32b,0x6c16b32b
2263 .long   0x99b970a9,0x99b970a9
2264 .long   0xfa489411,0xfa489411
2265 .long   0x2264e947,0x2264e947
2266 .long   0xc48cfca8,0xc48cfca8
2267 .long   0x1a3ff0a0,0x1a3ff0a0
2268 .long   0xd82c7d56,0xd82c7d56
2269 .long   0xef903322,0xef903322
2270 .long   0xc74e4987,0xc74e4987
2271 .long   0xc1d138d9,0xc1d138d9
2272 .long   0xfea2ca8c,0xfea2ca8c
2273 .long   0x360bd498,0x360bd498
2274 .long   0xcf81f5a6,0xcf81f5a6
2275 .long   0x28de7aa5,0x28de7aa5
2276 .long   0x268eb7da,0x268eb7da
2277 .long   0xa4bfad3f,0xa4bfad3f
2278 .long   0xe49d3a2c,0xe49d3a2c
2279 .long   0x0d927850,0x0d927850
2280 .long   0x9bcc5f6a,0x9bcc5f6a
2281 .long   0x62467e54,0x62467e54
2282 .long   0xc2138df6,0xc2138df6
2283 .long   0xe8b8d890,0xe8b8d890
2284 .long   0x5ef7392e,0x5ef7392e
2285 .long   0xf5afc382,0xf5afc382
2286 .long   0xbe805d9f,0xbe805d9f
2287 .long   0x7c93d069,0x7c93d069
2288 .long   0xa92dd56f,0xa92dd56f
2289 .long   0xb31225cf,0xb31225cf
2290 .long   0x3b99acc8,0x3b99acc8
2291 .long   0xa77d1810,0xa77d1810
2292 .long   0x6e639ce8,0x6e639ce8
2293 .long   0x7bbb3bdb,0x7bbb3bdb
2294 .long   0x097826cd,0x097826cd
2295 .long   0xf418596e,0xf418596e
2296 .long   0x01b79aec,0x01b79aec
2297 .long   0xa89a4f83,0xa89a4f83
2298 .long   0x656e95e6,0x656e95e6
2299 .long   0x7ee6ffaa,0x7ee6ffaa
2300 .long   0x08cfbc21,0x08cfbc21
2301 .long   0xe6e815ef,0xe6e815ef
2302 .long   0xd99be7ba,0xd99be7ba
2303 .long   0xce366f4a,0xce366f4a
2304 .long   0xd4099fea,0xd4099fea
2305 .long   0xd67cb029,0xd67cb029
2306 .long   0xafb2a431,0xafb2a431
2307 .long   0x31233f2a,0x31233f2a
2308 .long   0x3094a5c6,0x3094a5c6
2309 .long   0xc066a235,0xc066a235
2310 .long   0x37bc4e74,0x37bc4e74
2311 .long   0xa6ca82fc,0xa6ca82fc
2312 .long   0xb0d090e0,0xb0d090e0
2313 .long   0x15d8a733,0x15d8a733
2314 .long   0x4a9804f1,0x4a9804f1
2315 .long   0xf7daec41,0xf7daec41
2316 .long   0x0e50cd7f,0x0e50cd7f
2317 .long   0x2ff69117,0x2ff69117
2318 .long   0x8dd64d76,0x8dd64d76
2319 .long   0x4db0ef43,0x4db0ef43
2320 .long   0x544daacc,0x544daacc
2321 .long   0xdf0496e4,0xdf0496e4
2322 .long   0xe3b5d19e,0xe3b5d19e
2323 .long   0x1b886a4c,0x1b886a4c
2324 .long   0xb81f2cc1,0xb81f2cc1
2325 .long   0x7f516546,0x7f516546
2326 .long   0x04ea5e9d,0x04ea5e9d
2327 .long   0x5d358c01,0x5d358c01
2328 .long   0x737487fa,0x737487fa
2329 .long   0x2e410bfb,0x2e410bfb
2330 .long   0x5a1d67b3,0x5a1d67b3
2331 .long   0x52d2db92,0x52d2db92
2332 .long   0x335610e9,0x335610e9
2333 .long   0x1347d66d,0x1347d66d
2334 .long   0x8c61d79a,0x8c61d79a
2335 .long   0x7a0ca137,0x7a0ca137
2336 .long   0x8e14f859,0x8e14f859
2337 .long   0x893c13eb,0x893c13eb
2338 .long   0xee27a9ce,0xee27a9ce
2339 .long   0x35c961b7,0x35c961b7
2340 .long   0xede51ce1,0xede51ce1
2341 .long   0x3cb1477a,0x3cb1477a
2342 .long   0x59dfd29c,0x59dfd29c
2343 .long   0x3f73f255,0x3f73f255
2344 .long   0x79ce1418,0x79ce1418
2345 .long   0xbf37c773,0xbf37c773
2346 .long   0xeacdf753,0xeacdf753
2347 .long   0x5baafd5f,0x5baafd5f
2348 .long   0x146f3ddf,0x146f3ddf
2349 .long   0x86db4478,0x86db4478
2350 .long   0x81f3afca,0x81f3afca
2351 .long   0x3ec468b9,0x3ec468b9
2352 .long   0x2c342438,0x2c342438
2353 .long   0x5f40a3c2,0x5f40a3c2
2354 .long   0x72c31d16,0x72c31d16
2355 .long   0x0c25e2bc,0x0c25e2bc
2356 .long   0x8b493c28,0x8b493c28
2357 .long   0x41950dff,0x41950dff
2358 .long   0x7101a839,0x7101a839
2359 .long   0xdeb30c08,0xdeb30c08
2360 .long   0x9ce4b4d8,0x9ce4b4d8
2361 .long   0x90c15664,0x90c15664
2362 .long   0x6184cb7b,0x6184cb7b
2363 .long   0x70b632d5,0x70b632d5
2364 .long   0x745c6c48,0x745c6c48
2365 .long   0x4257b8d0,0x4257b8d0
2366 .byte   0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
2367 .byte   0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
2368 .byte   0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
2369 .byte   0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
2370 .byte   0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
2371 .byte   0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
2372 .byte   0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
2373 .byte   0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
2374 .byte   0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
2375 .byte   0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
2376 .byte   0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
2377 .byte   0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
2378 .byte   0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
2379 .byte   0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
2380 .byte   0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
2381 .byte   0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
2382 .byte   0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
2383 .byte   0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
2384 .byte   0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
2385 .byte   0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
2386 .byte   0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
2387 .byte   0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
2388 .byte   0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
2389 .byte   0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
2390 .byte   0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
2391 .byte   0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
2392 .byte   0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
2393 .byte   0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
2394 .byte   0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
2395 .byte   0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
2396 .byte   0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
2397 .byte   0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
2398 .long   0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe
2399 .long   0x1b1b1b1b, 0x1b1b1b1b, 0, 0
2400 .byte   0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
2401 .byte   0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
2402 .byte   0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
2403 .byte   0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
2404 .byte   0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
2405 .byte   0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
2406 .byte   0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
2407 .byte   0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
2408 .byte   0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
2409 .byte   0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
2410 .byte   0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
2411 .byte   0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
2412 .byte   0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
2413 .byte   0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
2414 .byte   0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
2415 .byte   0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
2416 .byte   0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
2417 .byte   0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
2418 .byte   0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
2419 .byte   0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
2420 .byte   0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
2421 .byte   0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
2422 .byte   0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
2423 .byte   0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
2424 .byte   0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
2425 .byte   0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
2426 .byte   0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
2427 .byte   0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
2428 .byte   0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
2429 .byte   0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
2430 .byte   0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
2431 .byte   0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
2432 .long   0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe
2433 .long   0x1b1b1b1b, 0x1b1b1b1b, 0, 0
2434 .byte   0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
2435 .byte   0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
2436 .byte   0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
2437 .byte   0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
2438 .byte   0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
2439 .byte   0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
2440 .byte   0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
2441 .byte   0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
2442 .byte   0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
2443 .byte   0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
2444 .byte   0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
2445 .byte   0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
2446 .byte   0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
2447 .byte   0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
2448 .byte   0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
2449 .byte   0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
2450 .byte   0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
2451 .byte   0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
2452 .byte   0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
2453 .byte   0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
2454 .byte   0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
2455 .byte   0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
2456 .byte   0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
2457 .byte   0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
2458 .byte   0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
2459 .byte   0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
2460 .byte   0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
2461 .byte   0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
2462 .byte   0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
2463 .byte   0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
2464 .byte   0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
2465 .byte   0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
2466 .long   0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe
2467 .long   0x1b1b1b1b, 0x1b1b1b1b, 0, 0
2468 .byte   0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
2469 .byte   0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
2470 .byte   0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
2471 .byte   0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
2472 .byte   0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
2473 .byte   0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
2474 .byte   0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
2475 .byte   0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
2476 .byte   0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
2477 .byte   0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
2478 .byte   0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
2479 .byte   0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
2480 .byte   0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
2481 .byte   0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
2482 .byte   0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
2483 .byte   0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
2484 .byte   0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
2485 .byte   0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
2486 .byte   0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
2487 .byte   0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
2488 .byte   0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
2489 .byte   0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
2490 .byte   0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
2491 .byte   0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
2492 .byte   0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
2493 .byte   0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
2494 .byte   0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
2495 .byte   0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
2496 .byte   0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
2497 .byte   0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
2498 .byte   0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
2499 .byte   0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
2500 .long   0x80808080, 0x80808080, 0xfefefefe, 0xfefefefe
2501 .long   0x1b1b1b1b, 0x1b1b1b1b, 0, 0
2502 .byte   65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
2503 .align  64