18 .type _vpaes_encrypt_core,@function
25 movdqa .Lk_ipt(%rip),%xmm2
31 movdqa .Lk_ipt+16(%rip),%xmm0
36 leaq .Lk_mc_backward(%rip),%r10
50 movdqa -64(%r11,%r10,1),%xmm1
54 movdqa (%r11,%r10,1),%xmm4
92 movdqa -96(%r10),%xmm4
93 movdqa -80(%r10),%xmm0
97 movdqa 64(%r11,%r10,1),%xmm1
101 .size _vpaes_encrypt_core,.-_vpaes_encrypt_core
108 .type _vpaes_decrypt_core,@function
114 movdqa .Lk_dipt(%rip),%xmm2
121 .byte 102,15,56,0,208
122 movdqa .Lk_dipt+16(%rip),%xmm0
124 leaq .Lk_dsbd(%rip),%r10
125 .byte 102,15,56,0,193
128 movdqa .Lk_mc_forward+48(%rip),%xmm5
139 movdqa -32(%r10),%xmm4
140 .byte 102,15,56,0,226
142 movdqa -16(%r10),%xmm0
143 .byte 102,15,56,0,195
147 .byte 102,15,56,0,197
149 .byte 102,15,56,0,226
151 movdqa 16(%r10),%xmm0
152 .byte 102,15,56,0,195
156 .byte 102,15,56,0,197
157 movdqa 32(%r10),%xmm4
158 .byte 102,15,56,0,226
160 movdqa 48(%r10),%xmm0
161 .byte 102,15,56,0,195
164 .byte 102,15,56,0,197
165 movdqa 64(%r10),%xmm4
166 .byte 102,15,56,0,226
168 movdqa 80(%r10),%xmm0
169 .byte 102,15,56,0,195
172 .byte 102,15,58,15,237,12
181 .byte 102,15,56,0,208
184 .byte 102,15,56,0,217
187 .byte 102,15,56,0,224
190 .byte 102,15,56,0,211
193 .byte 102,15,56,0,220
199 movdqa 96(%r10),%xmm4
200 .byte 102,15,56,0,226
202 movdqa 112(%r10),%xmm0
203 movdqa -352(%r11),%xmm2
204 .byte 102,15,56,0,195
206 .byte 102,15,56,0,194
208 .size _vpaes_decrypt_core,.-_vpaes_decrypt_core
215 .type _vpaes_schedule_core,@function
217 _vpaes_schedule_core:
224 movdqa .Lk_rcon(%rip),%xmm8
229 leaq .Lk_ipt(%rip),%r11
230 call _vpaes_schedule_transform
233 leaq .Lk_sr(%rip),%r10
235 jnz .Lschedule_am_decrypting
241 .Lschedule_am_decrypting:
243 movdqa (%r8,%r10,1),%xmm1
244 .byte 102,15,56,0,217
266 call _vpaes_schedule_round
268 jz .Lschedule_mangle_last
269 call _vpaes_schedule_mangle
270 jmp .Loop_schedule_128
290 call _vpaes_schedule_transform
297 call _vpaes_schedule_round
298 .byte 102,15,58,15,198,8
299 call _vpaes_schedule_mangle
300 call _vpaes_schedule_192_smear
301 call _vpaes_schedule_mangle
302 call _vpaes_schedule_round
304 jz .Lschedule_mangle_last
305 call _vpaes_schedule_mangle
306 call _vpaes_schedule_192_smear
307 jmp .Loop_schedule_192
321 movdqu 16(%rdi),%xmm0
322 call _vpaes_schedule_transform
326 call _vpaes_schedule_mangle
330 call _vpaes_schedule_round
332 jz .Lschedule_mangle_last
333 call _vpaes_schedule_mangle
336 pshufd $255,%xmm0,%xmm0
339 call _vpaes_schedule_low_round
342 jmp .Loop_schedule_256
356 .Lschedule_mangle_last:
358 leaq .Lk_deskew(%rip),%r11
360 jnz .Lschedule_mangle_last_dec
363 movdqa (%r8,%r10,1),%xmm1
364 .byte 102,15,56,0,193
365 leaq .Lk_opt(%rip),%r11
368 .Lschedule_mangle_last_dec:
370 pxor .Lk_s63(%rip),%xmm0
371 call _vpaes_schedule_transform
384 .size _vpaes_schedule_core,.-_vpaes_schedule_core
400 .type _vpaes_schedule_192_smear,@function
402 _vpaes_schedule_192_smear:
403 pshufd $128,%xmm6,%xmm0
405 pshufd $254,%xmm7,%xmm0
411 .size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
431 .type _vpaes_schedule_round,@function
433 _vpaes_schedule_round:
436 .byte 102,65,15,58,15,200,15
437 .byte 102,69,15,58,15,192,15
441 pshufd $255,%xmm0,%xmm0
442 .byte 102,15,58,15,192,1
447 _vpaes_schedule_low_round:
455 pxor .Lk_s63(%rip),%xmm7
463 .byte 102,15,56,0,208
466 .byte 102,15,56,0,217
469 .byte 102,15,56,0,224
472 .byte 102,15,56,0,211
475 .byte 102,15,56,0,220
478 .byte 102,15,56,0,226
480 .byte 102,15,56,0,195
487 .size _vpaes_schedule_round,.-_vpaes_schedule_round
498 .type _vpaes_schedule_transform,@function
500 _vpaes_schedule_transform:
506 .byte 102,15,56,0,208
507 movdqa 16(%r11),%xmm0
508 .byte 102,15,56,0,193
511 .size _vpaes_schedule_transform,.-_vpaes_schedule_transform
536 .type _vpaes_schedule_mangle,@function
538 _vpaes_schedule_mangle:
540 movdqa .Lk_mc_forward(%rip),%xmm5
542 jnz .Lschedule_mangle_dec
546 pxor .Lk_s63(%rip),%xmm4
547 .byte 102,15,56,0,229
549 .byte 102,15,56,0,229
551 .byte 102,15,56,0,229
554 jmp .Lschedule_mangle_both
556 .Lschedule_mangle_dec:
558 leaq .Lk_dksd(%rip),%r11
565 .byte 102,15,56,0,212
566 movdqa 16(%r11),%xmm3
567 .byte 102,15,56,0,217
569 .byte 102,15,56,0,221
571 movdqa 32(%r11),%xmm2
572 .byte 102,15,56,0,212
574 movdqa 48(%r11),%xmm3
575 .byte 102,15,56,0,217
577 .byte 102,15,56,0,221
579 movdqa 64(%r11),%xmm2
580 .byte 102,15,56,0,212
582 movdqa 80(%r11),%xmm3
583 .byte 102,15,56,0,217
585 .byte 102,15,56,0,221
587 movdqa 96(%r11),%xmm2
588 .byte 102,15,56,0,212
590 movdqa 112(%r11),%xmm3
591 .byte 102,15,56,0,217
596 .Lschedule_mangle_both:
597 movdqa (%r8,%r10,1),%xmm1
598 .byte 102,15,56,0,217
603 .size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle
608 .globl vpaes_set_encrypt_key
609 .type vpaes_set_encrypt_key,@function
611 vpaes_set_encrypt_key:
619 call _vpaes_schedule_core
622 .size vpaes_set_encrypt_key,.-vpaes_set_encrypt_key
624 .globl vpaes_set_decrypt_key
625 .type vpaes_set_decrypt_key,@function
627 vpaes_set_decrypt_key:
633 leaq 16(%rdx,%rax,1),%rdx
640 call _vpaes_schedule_core
643 .size vpaes_set_decrypt_key,.-vpaes_set_decrypt_key
646 .type vpaes_encrypt,@function
651 call _vpaes_encrypt_core
654 .size vpaes_encrypt,.-vpaes_encrypt
657 .type vpaes_decrypt,@function
662 call _vpaes_decrypt_core
665 .size vpaes_decrypt,.-vpaes_decrypt
666 .globl vpaes_cbc_encrypt
667 .type vpaes_cbc_encrypt,@function
683 call _vpaes_encrypt_core
685 movdqu %xmm0,(%rsi,%rdi,1)
694 call _vpaes_decrypt_core
697 movdqu %xmm0,(%rsi,%rdi,1)
705 .size vpaes_cbc_encrypt,.-vpaes_cbc_encrypt
712 .type _vpaes_preheat,@function
715 leaq .Lk_s0F(%rip),%r10
716 movdqa -32(%r10),%xmm10
717 movdqa -16(%r10),%xmm11
719 movdqa 48(%r10),%xmm13
720 movdqa 64(%r10),%xmm12
721 movdqa 80(%r10),%xmm15
722 movdqa 96(%r10),%xmm14
724 .size _vpaes_preheat,.-_vpaes_preheat
730 .type _vpaes_consts,@object
734 .quad 0x0E05060F0D080180, 0x040703090A0B0C02
735 .quad 0x01040A060F0B0780, 0x030D0E0C02050809
738 .quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F
741 .quad 0xC2B2E8985A2A7000, 0xCABAE09052227808
742 .quad 0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81
745 .quad 0xB19BE18FCB503E00, 0xA5DF7A6E142AF544
746 .quad 0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF
748 .quad 0xE27A93C60B712400, 0x5EB7E955BC982FCD
749 .quad 0x69EB88400AE12900, 0xC2A163C8AB82234A
751 .quad 0xD0D26D176FBDC700, 0x15AABF7AC502A878
752 .quad 0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA
755 .quad 0x0407060500030201, 0x0C0F0E0D080B0A09
756 .quad 0x080B0A0904070605, 0x000302010C0F0E0D
757 .quad 0x0C0F0E0D080B0A09, 0x0407060500030201
758 .quad 0x000302010C0F0E0D, 0x080B0A0904070605
761 .quad 0x0605040702010003, 0x0E0D0C0F0A09080B
762 .quad 0x020100030E0D0C0F, 0x0A09080B06050407
763 .quad 0x0E0D0C0F0A09080B, 0x0605040702010003
764 .quad 0x0A09080B06050407, 0x020100030E0D0C0F
767 .quad 0x0706050403020100, 0x0F0E0D0C0B0A0908
768 .quad 0x030E09040F0A0500, 0x0B06010C07020D08
769 .quad 0x0F060D040B020900, 0x070E050C030A0108
770 .quad 0x0B0E0104070A0D00, 0x0306090C0F020508
773 .quad 0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81
776 .quad 0x5B5B5B5B5B5B5B5B, 0x5B5B5B5B5B5B5B5B
779 .quad 0xFF9F4929D6B66000, 0xF7974121DEBE6808
780 .quad 0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0
783 .quad 0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A
784 .quad 0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77
791 .quad 0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9
792 .quad 0x41C277F4B5368300, 0x5FDC69EAAB289D1E
794 .quad 0x9A4FCA1F8550D500, 0x03D653861CC94C99
795 .quad 0x115BEDA7B6FC4A00, 0xD993256F7E3482C8
797 .quad 0xD5031CCA1FC9D600, 0x53859A4C994F5086
798 .quad 0xA23196054FDC7BE8, 0xCD5EF96A20B31487
800 .quad 0xB6116FC87ED9A700, 0x4AED933482255BFC
801 .quad 0x4576516227143300, 0x8BB89FACE9DAFDCE
808 .quad 0x0F505B040B545F00, 0x154A411E114E451A
809 .quad 0x86E383E660056500, 0x12771772F491F194
812 .quad 0x851C03539A86D600, 0xCAD51F504F994CC9
813 .quad 0xC03B1789ECD74900, 0x725E2C9EB2FBA565
815 .quad 0x7D57CCDFE6B1A200, 0xF56E9B13882A4439
816 .quad 0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3
818 .quad 0xD022649296B44200, 0x602646F6B0F2D404
819 .quad 0xC19498A6CD596700, 0xF3FF0C3E3255AA6B
821 .quad 0x46F2929626D4D000, 0x2242600464B4F6B0
822 .quad 0x0C55A6CDFFAAC100, 0x9467F36B98593E32
824 .quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
825 .quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C
826 .byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
828 .size _vpaes_consts,.-_vpaes_consts