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