1; This file is generated from a similarly-named Perl script in the BoringSSL 2; source tree. Do not edit by hand. 3 4default rel 5%define XMMWORD 6%define YMMWORD 7%define ZMMWORD 8 9%ifdef BORINGSSL_PREFIX 10%include "boringssl_prefix_symbols_nasm.inc" 11%endif 12section .text code align=64 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31ALIGN 16 32_vpaes_encrypt_core: 33 34 mov r9,rdx 35 mov r11,16 36 mov eax,DWORD[240+rdx] 37 movdqa xmm1,xmm9 38 movdqa xmm2,XMMWORD[$L$k_ipt] 39 pandn xmm1,xmm0 40 movdqu xmm5,XMMWORD[r9] 41 psrld xmm1,4 42 pand xmm0,xmm9 43DB 102,15,56,0,208 44 movdqa xmm0,XMMWORD[(($L$k_ipt+16))] 45DB 102,15,56,0,193 46 pxor xmm2,xmm5 47 add r9,16 48 pxor xmm0,xmm2 49 lea r10,[$L$k_mc_backward] 50 jmp NEAR $L$enc_entry 51 52ALIGN 16 53$L$enc_loop: 54 55 movdqa xmm4,xmm13 56 movdqa xmm0,xmm12 57DB 102,15,56,0,226 58DB 102,15,56,0,195 59 pxor xmm4,xmm5 60 movdqa xmm5,xmm15 61 pxor xmm0,xmm4 62 movdqa xmm1,XMMWORD[((-64))+r10*1+r11] 63DB 102,15,56,0,234 64 movdqa xmm4,XMMWORD[r10*1+r11] 65 movdqa xmm2,xmm14 66DB 102,15,56,0,211 67 movdqa xmm3,xmm0 68 pxor xmm2,xmm5 69DB 102,15,56,0,193 70 add r9,16 71 pxor xmm0,xmm2 72DB 102,15,56,0,220 73 add r11,16 74 pxor xmm3,xmm0 75DB 102,15,56,0,193 76 and r11,0x30 77 sub rax,1 78 pxor xmm0,xmm3 79 80$L$enc_entry: 81 82 movdqa xmm1,xmm9 83 movdqa xmm5,xmm11 84 pandn xmm1,xmm0 85 psrld xmm1,4 86 pand xmm0,xmm9 87DB 102,15,56,0,232 88 movdqa xmm3,xmm10 89 pxor xmm0,xmm1 90DB 102,15,56,0,217 91 movdqa xmm4,xmm10 92 pxor xmm3,xmm5 93DB 102,15,56,0,224 94 movdqa xmm2,xmm10 95 pxor xmm4,xmm5 96DB 102,15,56,0,211 97 movdqa xmm3,xmm10 98 pxor xmm2,xmm0 99DB 102,15,56,0,220 100 movdqu xmm5,XMMWORD[r9] 101 pxor xmm3,xmm1 102 jnz NEAR $L$enc_loop 103 104 105 movdqa xmm4,XMMWORD[((-96))+r10] 106 movdqa xmm0,XMMWORD[((-80))+r10] 107DB 102,15,56,0,226 108 pxor xmm4,xmm5 109DB 102,15,56,0,195 110 movdqa xmm1,XMMWORD[64+r10*1+r11] 111 pxor xmm0,xmm4 112DB 102,15,56,0,193 113 DB 0F3h,0C3h ;repret 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147ALIGN 16 148_vpaes_encrypt_core_2x: 149 150 mov r9,rdx 151 mov r11,16 152 mov eax,DWORD[240+rdx] 153 movdqa xmm1,xmm9 154 movdqa xmm7,xmm9 155 movdqa xmm2,XMMWORD[$L$k_ipt] 156 movdqa xmm8,xmm2 157 pandn xmm1,xmm0 158 pandn xmm7,xmm6 159 movdqu xmm5,XMMWORD[r9] 160 161 psrld xmm1,4 162 psrld xmm7,4 163 pand xmm0,xmm9 164 pand xmm6,xmm9 165DB 102,15,56,0,208 166DB 102,68,15,56,0,198 167 movdqa xmm0,XMMWORD[(($L$k_ipt+16))] 168 movdqa xmm6,xmm0 169DB 102,15,56,0,193 170DB 102,15,56,0,247 171 pxor xmm2,xmm5 172 pxor xmm8,xmm5 173 add r9,16 174 pxor xmm0,xmm2 175 pxor xmm6,xmm8 176 lea r10,[$L$k_mc_backward] 177 jmp NEAR $L$enc2x_entry 178 179ALIGN 16 180$L$enc2x_loop: 181 182 movdqa xmm4,XMMWORD[$L$k_sb1] 183 movdqa xmm0,XMMWORD[(($L$k_sb1+16))] 184 movdqa xmm12,xmm4 185 movdqa xmm6,xmm0 186DB 102,15,56,0,226 187DB 102,69,15,56,0,224 188DB 102,15,56,0,195 189DB 102,65,15,56,0,243 190 pxor xmm4,xmm5 191 pxor xmm12,xmm5 192 movdqa xmm5,XMMWORD[$L$k_sb2] 193 movdqa xmm13,xmm5 194 pxor xmm0,xmm4 195 pxor xmm6,xmm12 196 movdqa xmm1,XMMWORD[((-64))+r10*1+r11] 197 198DB 102,15,56,0,234 199DB 102,69,15,56,0,232 200 movdqa xmm4,XMMWORD[r10*1+r11] 201 202 movdqa xmm2,XMMWORD[(($L$k_sb2+16))] 203 movdqa xmm8,xmm2 204DB 102,15,56,0,211 205DB 102,69,15,56,0,195 206 movdqa xmm3,xmm0 207 movdqa xmm11,xmm6 208 pxor xmm2,xmm5 209 pxor xmm8,xmm13 210DB 102,15,56,0,193 211DB 102,15,56,0,241 212 add r9,16 213 pxor xmm0,xmm2 214 pxor xmm6,xmm8 215DB 102,15,56,0,220 216DB 102,68,15,56,0,220 217 add r11,16 218 pxor xmm3,xmm0 219 pxor xmm11,xmm6 220DB 102,15,56,0,193 221DB 102,15,56,0,241 222 and r11,0x30 223 sub rax,1 224 pxor xmm0,xmm3 225 pxor xmm6,xmm11 226 227$L$enc2x_entry: 228 229 movdqa xmm1,xmm9 230 movdqa xmm7,xmm9 231 movdqa xmm5,XMMWORD[(($L$k_inv+16))] 232 movdqa xmm13,xmm5 233 pandn xmm1,xmm0 234 pandn xmm7,xmm6 235 psrld xmm1,4 236 psrld xmm7,4 237 pand xmm0,xmm9 238 pand xmm6,xmm9 239DB 102,15,56,0,232 240DB 102,68,15,56,0,238 241 movdqa xmm3,xmm10 242 movdqa xmm11,xmm10 243 pxor xmm0,xmm1 244 pxor xmm6,xmm7 245DB 102,15,56,0,217 246DB 102,68,15,56,0,223 247 movdqa xmm4,xmm10 248 movdqa xmm12,xmm10 249 pxor xmm3,xmm5 250 pxor xmm11,xmm13 251DB 102,15,56,0,224 252DB 102,68,15,56,0,230 253 movdqa xmm2,xmm10 254 movdqa xmm8,xmm10 255 pxor xmm4,xmm5 256 pxor xmm12,xmm13 257DB 102,15,56,0,211 258DB 102,69,15,56,0,195 259 movdqa xmm3,xmm10 260 movdqa xmm11,xmm10 261 pxor xmm2,xmm0 262 pxor xmm8,xmm6 263DB 102,15,56,0,220 264DB 102,69,15,56,0,220 265 movdqu xmm5,XMMWORD[r9] 266 267 pxor xmm3,xmm1 268 pxor xmm11,xmm7 269 jnz NEAR $L$enc2x_loop 270 271 272 movdqa xmm4,XMMWORD[((-96))+r10] 273 movdqa xmm0,XMMWORD[((-80))+r10] 274 movdqa xmm12,xmm4 275 movdqa xmm6,xmm0 276DB 102,15,56,0,226 277DB 102,69,15,56,0,224 278 pxor xmm4,xmm5 279 pxor xmm12,xmm5 280DB 102,15,56,0,195 281DB 102,65,15,56,0,243 282 movdqa xmm1,XMMWORD[64+r10*1+r11] 283 284 pxor xmm0,xmm4 285 pxor xmm6,xmm12 286DB 102,15,56,0,193 287DB 102,15,56,0,241 288 DB 0F3h,0C3h ;repret 289 290 291 292 293 294 295 296 297 298ALIGN 16 299_vpaes_decrypt_core: 300 301 mov r9,rdx 302 mov eax,DWORD[240+rdx] 303 movdqa xmm1,xmm9 304 movdqa xmm2,XMMWORD[$L$k_dipt] 305 pandn xmm1,xmm0 306 mov r11,rax 307 psrld xmm1,4 308 movdqu xmm5,XMMWORD[r9] 309 shl r11,4 310 pand xmm0,xmm9 311DB 102,15,56,0,208 312 movdqa xmm0,XMMWORD[(($L$k_dipt+16))] 313 xor r11,0x30 314 lea r10,[$L$k_dsbd] 315DB 102,15,56,0,193 316 and r11,0x30 317 pxor xmm2,xmm5 318 movdqa xmm5,XMMWORD[(($L$k_mc_forward+48))] 319 pxor xmm0,xmm2 320 add r9,16 321 add r11,r10 322 jmp NEAR $L$dec_entry 323 324ALIGN 16 325$L$dec_loop: 326 327 328 329 movdqa xmm4,XMMWORD[((-32))+r10] 330 movdqa xmm1,XMMWORD[((-16))+r10] 331DB 102,15,56,0,226 332DB 102,15,56,0,203 333 pxor xmm0,xmm4 334 movdqa xmm4,XMMWORD[r10] 335 pxor xmm0,xmm1 336 movdqa xmm1,XMMWORD[16+r10] 337 338DB 102,15,56,0,226 339DB 102,15,56,0,197 340DB 102,15,56,0,203 341 pxor xmm0,xmm4 342 movdqa xmm4,XMMWORD[32+r10] 343 pxor xmm0,xmm1 344 movdqa xmm1,XMMWORD[48+r10] 345 346DB 102,15,56,0,226 347DB 102,15,56,0,197 348DB 102,15,56,0,203 349 pxor xmm0,xmm4 350 movdqa xmm4,XMMWORD[64+r10] 351 pxor xmm0,xmm1 352 movdqa xmm1,XMMWORD[80+r10] 353 354DB 102,15,56,0,226 355DB 102,15,56,0,197 356DB 102,15,56,0,203 357 pxor xmm0,xmm4 358 add r9,16 359DB 102,15,58,15,237,12 360 pxor xmm0,xmm1 361 sub rax,1 362 363$L$dec_entry: 364 365 movdqa xmm1,xmm9 366 pandn xmm1,xmm0 367 movdqa xmm2,xmm11 368 psrld xmm1,4 369 pand xmm0,xmm9 370DB 102,15,56,0,208 371 movdqa xmm3,xmm10 372 pxor xmm0,xmm1 373DB 102,15,56,0,217 374 movdqa xmm4,xmm10 375 pxor xmm3,xmm2 376DB 102,15,56,0,224 377 pxor xmm4,xmm2 378 movdqa xmm2,xmm10 379DB 102,15,56,0,211 380 movdqa xmm3,xmm10 381 pxor xmm2,xmm0 382DB 102,15,56,0,220 383 movdqu xmm0,XMMWORD[r9] 384 pxor xmm3,xmm1 385 jnz NEAR $L$dec_loop 386 387 388 movdqa xmm4,XMMWORD[96+r10] 389DB 102,15,56,0,226 390 pxor xmm4,xmm0 391 movdqa xmm0,XMMWORD[112+r10] 392 movdqa xmm2,XMMWORD[((-352))+r11] 393DB 102,15,56,0,195 394 pxor xmm0,xmm4 395DB 102,15,56,0,194 396 DB 0F3h,0C3h ;repret 397 398 399 400 401 402 403 404 405 406ALIGN 16 407_vpaes_schedule_core: 408 409 410 411 412 413 414 call _vpaes_preheat 415 movdqa xmm8,XMMWORD[$L$k_rcon] 416 movdqu xmm0,XMMWORD[rdi] 417 418 419 movdqa xmm3,xmm0 420 lea r11,[$L$k_ipt] 421 call _vpaes_schedule_transform 422 movdqa xmm7,xmm0 423 424 lea r10,[$L$k_sr] 425 test rcx,rcx 426 jnz NEAR $L$schedule_am_decrypting 427 428 429 movdqu XMMWORD[rdx],xmm0 430 jmp NEAR $L$schedule_go 431 432$L$schedule_am_decrypting: 433 434 movdqa xmm1,XMMWORD[r10*1+r8] 435DB 102,15,56,0,217 436 movdqu XMMWORD[rdx],xmm3 437 xor r8,0x30 438 439$L$schedule_go: 440 cmp esi,192 441 ja NEAR $L$schedule_256 442 je NEAR $L$schedule_192 443 444 445 446 447 448 449 450 451 452 453$L$schedule_128: 454 mov esi,10 455 456$L$oop_schedule_128: 457 call _vpaes_schedule_round 458 dec rsi 459 jz NEAR $L$schedule_mangle_last 460 call _vpaes_schedule_mangle 461 jmp NEAR $L$oop_schedule_128 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478ALIGN 16 479$L$schedule_192: 480 movdqu xmm0,XMMWORD[8+rdi] 481 call _vpaes_schedule_transform 482 movdqa xmm6,xmm0 483 pxor xmm4,xmm4 484 movhlps xmm6,xmm4 485 mov esi,4 486 487$L$oop_schedule_192: 488 call _vpaes_schedule_round 489DB 102,15,58,15,198,8 490 call _vpaes_schedule_mangle 491 call _vpaes_schedule_192_smear 492 call _vpaes_schedule_mangle 493 call _vpaes_schedule_round 494 dec rsi 495 jz NEAR $L$schedule_mangle_last 496 call _vpaes_schedule_mangle 497 call _vpaes_schedule_192_smear 498 jmp NEAR $L$oop_schedule_192 499 500 501 502 503 504 505 506 507 508 509 510ALIGN 16 511$L$schedule_256: 512 movdqu xmm0,XMMWORD[16+rdi] 513 call _vpaes_schedule_transform 514 mov esi,7 515 516$L$oop_schedule_256: 517 call _vpaes_schedule_mangle 518 movdqa xmm6,xmm0 519 520 521 call _vpaes_schedule_round 522 dec rsi 523 jz NEAR $L$schedule_mangle_last 524 call _vpaes_schedule_mangle 525 526 527 pshufd xmm0,xmm0,0xFF 528 movdqa xmm5,xmm7 529 movdqa xmm7,xmm6 530 call _vpaes_schedule_low_round 531 movdqa xmm7,xmm5 532 533 jmp NEAR $L$oop_schedule_256 534 535 536 537 538 539 540 541 542 543 544 545 546ALIGN 16 547$L$schedule_mangle_last: 548 549 lea r11,[$L$k_deskew] 550 test rcx,rcx 551 jnz NEAR $L$schedule_mangle_last_dec 552 553 554 movdqa xmm1,XMMWORD[r10*1+r8] 555DB 102,15,56,0,193 556 lea r11,[$L$k_opt] 557 add rdx,32 558 559$L$schedule_mangle_last_dec: 560 add rdx,-16 561 pxor xmm0,XMMWORD[$L$k_s63] 562 call _vpaes_schedule_transform 563 movdqu XMMWORD[rdx],xmm0 564 565 566 pxor xmm0,xmm0 567 pxor xmm1,xmm1 568 pxor xmm2,xmm2 569 pxor xmm3,xmm3 570 pxor xmm4,xmm4 571 pxor xmm5,xmm5 572 pxor xmm6,xmm6 573 pxor xmm7,xmm7 574 DB 0F3h,0C3h ;repret 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593ALIGN 16 594_vpaes_schedule_192_smear: 595 596 pshufd xmm1,xmm6,0x80 597 pshufd xmm0,xmm7,0xFE 598 pxor xmm6,xmm1 599 pxor xmm1,xmm1 600 pxor xmm6,xmm0 601 movdqa xmm0,xmm6 602 movhlps xmm6,xmm1 603 DB 0F3h,0C3h ;repret 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626ALIGN 16 627_vpaes_schedule_round: 628 629 630 pxor xmm1,xmm1 631DB 102,65,15,58,15,200,15 632DB 102,69,15,58,15,192,15 633 pxor xmm7,xmm1 634 635 636 pshufd xmm0,xmm0,0xFF 637DB 102,15,58,15,192,1 638 639 640 641 642_vpaes_schedule_low_round: 643 644 movdqa xmm1,xmm7 645 pslldq xmm7,4 646 pxor xmm7,xmm1 647 movdqa xmm1,xmm7 648 pslldq xmm7,8 649 pxor xmm7,xmm1 650 pxor xmm7,XMMWORD[$L$k_s63] 651 652 653 movdqa xmm1,xmm9 654 pandn xmm1,xmm0 655 psrld xmm1,4 656 pand xmm0,xmm9 657 movdqa xmm2,xmm11 658DB 102,15,56,0,208 659 pxor xmm0,xmm1 660 movdqa xmm3,xmm10 661DB 102,15,56,0,217 662 pxor xmm3,xmm2 663 movdqa xmm4,xmm10 664DB 102,15,56,0,224 665 pxor xmm4,xmm2 666 movdqa xmm2,xmm10 667DB 102,15,56,0,211 668 pxor xmm2,xmm0 669 movdqa xmm3,xmm10 670DB 102,15,56,0,220 671 pxor xmm3,xmm1 672 movdqa xmm4,xmm13 673DB 102,15,56,0,226 674 movdqa xmm0,xmm12 675DB 102,15,56,0,195 676 pxor xmm0,xmm4 677 678 679 pxor xmm0,xmm7 680 movdqa xmm7,xmm0 681 DB 0F3h,0C3h ;repret 682 683 684 685 686 687 688 689 690 691 692 693 694 695ALIGN 16 696_vpaes_schedule_transform: 697 698 movdqa xmm1,xmm9 699 pandn xmm1,xmm0 700 psrld xmm1,4 701 pand xmm0,xmm9 702 movdqa xmm2,XMMWORD[r11] 703DB 102,15,56,0,208 704 movdqa xmm0,XMMWORD[16+r11] 705DB 102,15,56,0,193 706 pxor xmm0,xmm2 707 DB 0F3h,0C3h ;repret 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735ALIGN 16 736_vpaes_schedule_mangle: 737 738 movdqa xmm4,xmm0 739 movdqa xmm5,XMMWORD[$L$k_mc_forward] 740 test rcx,rcx 741 jnz NEAR $L$schedule_mangle_dec 742 743 744 add rdx,16 745 pxor xmm4,XMMWORD[$L$k_s63] 746DB 102,15,56,0,229 747 movdqa xmm3,xmm4 748DB 102,15,56,0,229 749 pxor xmm3,xmm4 750DB 102,15,56,0,229 751 pxor xmm3,xmm4 752 753 jmp NEAR $L$schedule_mangle_both 754ALIGN 16 755$L$schedule_mangle_dec: 756 757 lea r11,[$L$k_dksd] 758 movdqa xmm1,xmm9 759 pandn xmm1,xmm4 760 psrld xmm1,4 761 pand xmm4,xmm9 762 763 movdqa xmm2,XMMWORD[r11] 764DB 102,15,56,0,212 765 movdqa xmm3,XMMWORD[16+r11] 766DB 102,15,56,0,217 767 pxor xmm3,xmm2 768DB 102,15,56,0,221 769 770 movdqa xmm2,XMMWORD[32+r11] 771DB 102,15,56,0,212 772 pxor xmm2,xmm3 773 movdqa xmm3,XMMWORD[48+r11] 774DB 102,15,56,0,217 775 pxor xmm3,xmm2 776DB 102,15,56,0,221 777 778 movdqa xmm2,XMMWORD[64+r11] 779DB 102,15,56,0,212 780 pxor xmm2,xmm3 781 movdqa xmm3,XMMWORD[80+r11] 782DB 102,15,56,0,217 783 pxor xmm3,xmm2 784DB 102,15,56,0,221 785 786 movdqa xmm2,XMMWORD[96+r11] 787DB 102,15,56,0,212 788 pxor xmm2,xmm3 789 movdqa xmm3,XMMWORD[112+r11] 790DB 102,15,56,0,217 791 pxor xmm3,xmm2 792 793 add rdx,-16 794 795$L$schedule_mangle_both: 796 movdqa xmm1,XMMWORD[r10*1+r8] 797DB 102,15,56,0,217 798 add r8,-16 799 and r8,0x30 800 movdqu XMMWORD[rdx],xmm3 801 DB 0F3h,0C3h ;repret 802 803 804 805 806 807 808global vpaes_set_encrypt_key 809 810ALIGN 16 811vpaes_set_encrypt_key: 812 mov QWORD[8+rsp],rdi ;WIN64 prologue 813 mov QWORD[16+rsp],rsi 814 mov rax,rsp 815$L$SEH_begin_vpaes_set_encrypt_key: 816 mov rdi,rcx 817 mov rsi,rdx 818 mov rdx,r8 819 820 821 822%ifdef BORINGSSL_DISPATCH_TEST 823EXTERN BORINGSSL_function_hit 824 mov BYTE[((BORINGSSL_function_hit+5))],1 825%endif 826 827 lea rsp,[((-184))+rsp] 828 movaps XMMWORD[16+rsp],xmm6 829 movaps XMMWORD[32+rsp],xmm7 830 movaps XMMWORD[48+rsp],xmm8 831 movaps XMMWORD[64+rsp],xmm9 832 movaps XMMWORD[80+rsp],xmm10 833 movaps XMMWORD[96+rsp],xmm11 834 movaps XMMWORD[112+rsp],xmm12 835 movaps XMMWORD[128+rsp],xmm13 836 movaps XMMWORD[144+rsp],xmm14 837 movaps XMMWORD[160+rsp],xmm15 838$L$enc_key_body: 839 mov eax,esi 840 shr eax,5 841 add eax,5 842 mov DWORD[240+rdx],eax 843 844 mov ecx,0 845 mov r8d,0x30 846 call _vpaes_schedule_core 847 movaps xmm6,XMMWORD[16+rsp] 848 movaps xmm7,XMMWORD[32+rsp] 849 movaps xmm8,XMMWORD[48+rsp] 850 movaps xmm9,XMMWORD[64+rsp] 851 movaps xmm10,XMMWORD[80+rsp] 852 movaps xmm11,XMMWORD[96+rsp] 853 movaps xmm12,XMMWORD[112+rsp] 854 movaps xmm13,XMMWORD[128+rsp] 855 movaps xmm14,XMMWORD[144+rsp] 856 movaps xmm15,XMMWORD[160+rsp] 857 lea rsp,[184+rsp] 858$L$enc_key_epilogue: 859 xor eax,eax 860 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 861 mov rsi,QWORD[16+rsp] 862 DB 0F3h,0C3h ;repret 863 864$L$SEH_end_vpaes_set_encrypt_key: 865 866global vpaes_set_decrypt_key 867 868ALIGN 16 869vpaes_set_decrypt_key: 870 mov QWORD[8+rsp],rdi ;WIN64 prologue 871 mov QWORD[16+rsp],rsi 872 mov rax,rsp 873$L$SEH_begin_vpaes_set_decrypt_key: 874 mov rdi,rcx 875 mov rsi,rdx 876 mov rdx,r8 877 878 879 880 lea rsp,[((-184))+rsp] 881 movaps XMMWORD[16+rsp],xmm6 882 movaps XMMWORD[32+rsp],xmm7 883 movaps XMMWORD[48+rsp],xmm8 884 movaps XMMWORD[64+rsp],xmm9 885 movaps XMMWORD[80+rsp],xmm10 886 movaps XMMWORD[96+rsp],xmm11 887 movaps XMMWORD[112+rsp],xmm12 888 movaps XMMWORD[128+rsp],xmm13 889 movaps XMMWORD[144+rsp],xmm14 890 movaps XMMWORD[160+rsp],xmm15 891$L$dec_key_body: 892 mov eax,esi 893 shr eax,5 894 add eax,5 895 mov DWORD[240+rdx],eax 896 shl eax,4 897 lea rdx,[16+rax*1+rdx] 898 899 mov ecx,1 900 mov r8d,esi 901 shr r8d,1 902 and r8d,32 903 xor r8d,32 904 call _vpaes_schedule_core 905 movaps xmm6,XMMWORD[16+rsp] 906 movaps xmm7,XMMWORD[32+rsp] 907 movaps xmm8,XMMWORD[48+rsp] 908 movaps xmm9,XMMWORD[64+rsp] 909 movaps xmm10,XMMWORD[80+rsp] 910 movaps xmm11,XMMWORD[96+rsp] 911 movaps xmm12,XMMWORD[112+rsp] 912 movaps xmm13,XMMWORD[128+rsp] 913 movaps xmm14,XMMWORD[144+rsp] 914 movaps xmm15,XMMWORD[160+rsp] 915 lea rsp,[184+rsp] 916$L$dec_key_epilogue: 917 xor eax,eax 918 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 919 mov rsi,QWORD[16+rsp] 920 DB 0F3h,0C3h ;repret 921 922$L$SEH_end_vpaes_set_decrypt_key: 923 924global vpaes_encrypt 925 926ALIGN 16 927vpaes_encrypt: 928 mov QWORD[8+rsp],rdi ;WIN64 prologue 929 mov QWORD[16+rsp],rsi 930 mov rax,rsp 931$L$SEH_begin_vpaes_encrypt: 932 mov rdi,rcx 933 mov rsi,rdx 934 mov rdx,r8 935 936 937 938%ifdef BORINGSSL_DISPATCH_TEST 939EXTERN BORINGSSL_function_hit 940 mov BYTE[((BORINGSSL_function_hit+4))],1 941%endif 942 lea rsp,[((-184))+rsp] 943 movaps XMMWORD[16+rsp],xmm6 944 movaps XMMWORD[32+rsp],xmm7 945 movaps XMMWORD[48+rsp],xmm8 946 movaps XMMWORD[64+rsp],xmm9 947 movaps XMMWORD[80+rsp],xmm10 948 movaps XMMWORD[96+rsp],xmm11 949 movaps XMMWORD[112+rsp],xmm12 950 movaps XMMWORD[128+rsp],xmm13 951 movaps XMMWORD[144+rsp],xmm14 952 movaps XMMWORD[160+rsp],xmm15 953$L$enc_body: 954 movdqu xmm0,XMMWORD[rdi] 955 call _vpaes_preheat 956 call _vpaes_encrypt_core 957 movdqu XMMWORD[rsi],xmm0 958 movaps xmm6,XMMWORD[16+rsp] 959 movaps xmm7,XMMWORD[32+rsp] 960 movaps xmm8,XMMWORD[48+rsp] 961 movaps xmm9,XMMWORD[64+rsp] 962 movaps xmm10,XMMWORD[80+rsp] 963 movaps xmm11,XMMWORD[96+rsp] 964 movaps xmm12,XMMWORD[112+rsp] 965 movaps xmm13,XMMWORD[128+rsp] 966 movaps xmm14,XMMWORD[144+rsp] 967 movaps xmm15,XMMWORD[160+rsp] 968 lea rsp,[184+rsp] 969$L$enc_epilogue: 970 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 971 mov rsi,QWORD[16+rsp] 972 DB 0F3h,0C3h ;repret 973 974$L$SEH_end_vpaes_encrypt: 975 976global vpaes_decrypt 977 978ALIGN 16 979vpaes_decrypt: 980 mov QWORD[8+rsp],rdi ;WIN64 prologue 981 mov QWORD[16+rsp],rsi 982 mov rax,rsp 983$L$SEH_begin_vpaes_decrypt: 984 mov rdi,rcx 985 mov rsi,rdx 986 mov rdx,r8 987 988 989 990 lea rsp,[((-184))+rsp] 991 movaps XMMWORD[16+rsp],xmm6 992 movaps XMMWORD[32+rsp],xmm7 993 movaps XMMWORD[48+rsp],xmm8 994 movaps XMMWORD[64+rsp],xmm9 995 movaps XMMWORD[80+rsp],xmm10 996 movaps XMMWORD[96+rsp],xmm11 997 movaps XMMWORD[112+rsp],xmm12 998 movaps XMMWORD[128+rsp],xmm13 999 movaps XMMWORD[144+rsp],xmm14 1000 movaps XMMWORD[160+rsp],xmm15 1001$L$dec_body: 1002 movdqu xmm0,XMMWORD[rdi] 1003 call _vpaes_preheat 1004 call _vpaes_decrypt_core 1005 movdqu XMMWORD[rsi],xmm0 1006 movaps xmm6,XMMWORD[16+rsp] 1007 movaps xmm7,XMMWORD[32+rsp] 1008 movaps xmm8,XMMWORD[48+rsp] 1009 movaps xmm9,XMMWORD[64+rsp] 1010 movaps xmm10,XMMWORD[80+rsp] 1011 movaps xmm11,XMMWORD[96+rsp] 1012 movaps xmm12,XMMWORD[112+rsp] 1013 movaps xmm13,XMMWORD[128+rsp] 1014 movaps xmm14,XMMWORD[144+rsp] 1015 movaps xmm15,XMMWORD[160+rsp] 1016 lea rsp,[184+rsp] 1017$L$dec_epilogue: 1018 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 1019 mov rsi,QWORD[16+rsp] 1020 DB 0F3h,0C3h ;repret 1021 1022$L$SEH_end_vpaes_decrypt: 1023global vpaes_cbc_encrypt 1024 1025ALIGN 16 1026vpaes_cbc_encrypt: 1027 mov QWORD[8+rsp],rdi ;WIN64 prologue 1028 mov QWORD[16+rsp],rsi 1029 mov rax,rsp 1030$L$SEH_begin_vpaes_cbc_encrypt: 1031 mov rdi,rcx 1032 mov rsi,rdx 1033 mov rdx,r8 1034 mov rcx,r9 1035 mov r8,QWORD[40+rsp] 1036 mov r9,QWORD[48+rsp] 1037 1038 1039 1040 xchg rdx,rcx 1041 sub rcx,16 1042 jc NEAR $L$cbc_abort 1043 lea rsp,[((-184))+rsp] 1044 movaps XMMWORD[16+rsp],xmm6 1045 movaps XMMWORD[32+rsp],xmm7 1046 movaps XMMWORD[48+rsp],xmm8 1047 movaps XMMWORD[64+rsp],xmm9 1048 movaps XMMWORD[80+rsp],xmm10 1049 movaps XMMWORD[96+rsp],xmm11 1050 movaps XMMWORD[112+rsp],xmm12 1051 movaps XMMWORD[128+rsp],xmm13 1052 movaps XMMWORD[144+rsp],xmm14 1053 movaps XMMWORD[160+rsp],xmm15 1054$L$cbc_body: 1055 movdqu xmm6,XMMWORD[r8] 1056 sub rsi,rdi 1057 call _vpaes_preheat 1058 cmp r9d,0 1059 je NEAR $L$cbc_dec_loop 1060 jmp NEAR $L$cbc_enc_loop 1061ALIGN 16 1062$L$cbc_enc_loop: 1063 movdqu xmm0,XMMWORD[rdi] 1064 pxor xmm0,xmm6 1065 call _vpaes_encrypt_core 1066 movdqa xmm6,xmm0 1067 movdqu XMMWORD[rdi*1+rsi],xmm0 1068 lea rdi,[16+rdi] 1069 sub rcx,16 1070 jnc NEAR $L$cbc_enc_loop 1071 jmp NEAR $L$cbc_done 1072ALIGN 16 1073$L$cbc_dec_loop: 1074 movdqu xmm0,XMMWORD[rdi] 1075 movdqa xmm7,xmm0 1076 call _vpaes_decrypt_core 1077 pxor xmm0,xmm6 1078 movdqa xmm6,xmm7 1079 movdqu XMMWORD[rdi*1+rsi],xmm0 1080 lea rdi,[16+rdi] 1081 sub rcx,16 1082 jnc NEAR $L$cbc_dec_loop 1083$L$cbc_done: 1084 movdqu XMMWORD[r8],xmm6 1085 movaps xmm6,XMMWORD[16+rsp] 1086 movaps xmm7,XMMWORD[32+rsp] 1087 movaps xmm8,XMMWORD[48+rsp] 1088 movaps xmm9,XMMWORD[64+rsp] 1089 movaps xmm10,XMMWORD[80+rsp] 1090 movaps xmm11,XMMWORD[96+rsp] 1091 movaps xmm12,XMMWORD[112+rsp] 1092 movaps xmm13,XMMWORD[128+rsp] 1093 movaps xmm14,XMMWORD[144+rsp] 1094 movaps xmm15,XMMWORD[160+rsp] 1095 lea rsp,[184+rsp] 1096$L$cbc_epilogue: 1097$L$cbc_abort: 1098 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 1099 mov rsi,QWORD[16+rsp] 1100 DB 0F3h,0C3h ;repret 1101 1102$L$SEH_end_vpaes_cbc_encrypt: 1103global vpaes_ctr32_encrypt_blocks 1104 1105ALIGN 16 1106vpaes_ctr32_encrypt_blocks: 1107 mov QWORD[8+rsp],rdi ;WIN64 prologue 1108 mov QWORD[16+rsp],rsi 1109 mov rax,rsp 1110$L$SEH_begin_vpaes_ctr32_encrypt_blocks: 1111 mov rdi,rcx 1112 mov rsi,rdx 1113 mov rdx,r8 1114 mov rcx,r9 1115 mov r8,QWORD[40+rsp] 1116 1117 1118 1119 1120 xchg rdx,rcx 1121 test rcx,rcx 1122 jz NEAR $L$ctr32_abort 1123 lea rsp,[((-184))+rsp] 1124 movaps XMMWORD[16+rsp],xmm6 1125 movaps XMMWORD[32+rsp],xmm7 1126 movaps XMMWORD[48+rsp],xmm8 1127 movaps XMMWORD[64+rsp],xmm9 1128 movaps XMMWORD[80+rsp],xmm10 1129 movaps XMMWORD[96+rsp],xmm11 1130 movaps XMMWORD[112+rsp],xmm12 1131 movaps XMMWORD[128+rsp],xmm13 1132 movaps XMMWORD[144+rsp],xmm14 1133 movaps XMMWORD[160+rsp],xmm15 1134$L$ctr32_body: 1135 movdqu xmm0,XMMWORD[r8] 1136 movdqa xmm8,XMMWORD[$L$ctr_add_one] 1137 sub rsi,rdi 1138 call _vpaes_preheat 1139 movdqa xmm6,xmm0 1140 pshufb xmm6,XMMWORD[$L$rev_ctr] 1141 1142 test rcx,1 1143 jz NEAR $L$ctr32_prep_loop 1144 1145 1146 1147 movdqu xmm7,XMMWORD[rdi] 1148 call _vpaes_encrypt_core 1149 pxor xmm0,xmm7 1150 paddd xmm6,xmm8 1151 movdqu XMMWORD[rdi*1+rsi],xmm0 1152 sub rcx,1 1153 lea rdi,[16+rdi] 1154 jz NEAR $L$ctr32_done 1155 1156$L$ctr32_prep_loop: 1157 1158 1159 movdqa xmm14,xmm6 1160 movdqa xmm15,xmm6 1161 paddd xmm15,xmm8 1162 1163$L$ctr32_loop: 1164 movdqa xmm1,XMMWORD[$L$rev_ctr] 1165 movdqa xmm0,xmm14 1166 movdqa xmm6,xmm15 1167DB 102,15,56,0,193 1168DB 102,15,56,0,241 1169 call _vpaes_encrypt_core_2x 1170 movdqu xmm1,XMMWORD[rdi] 1171 movdqu xmm2,XMMWORD[16+rdi] 1172 movdqa xmm3,XMMWORD[$L$ctr_add_two] 1173 pxor xmm0,xmm1 1174 pxor xmm6,xmm2 1175 paddd xmm14,xmm3 1176 paddd xmm15,xmm3 1177 movdqu XMMWORD[rdi*1+rsi],xmm0 1178 movdqu XMMWORD[16+rdi*1+rsi],xmm6 1179 sub rcx,2 1180 lea rdi,[32+rdi] 1181 jnz NEAR $L$ctr32_loop 1182 1183$L$ctr32_done: 1184 movaps xmm6,XMMWORD[16+rsp] 1185 movaps xmm7,XMMWORD[32+rsp] 1186 movaps xmm8,XMMWORD[48+rsp] 1187 movaps xmm9,XMMWORD[64+rsp] 1188 movaps xmm10,XMMWORD[80+rsp] 1189 movaps xmm11,XMMWORD[96+rsp] 1190 movaps xmm12,XMMWORD[112+rsp] 1191 movaps xmm13,XMMWORD[128+rsp] 1192 movaps xmm14,XMMWORD[144+rsp] 1193 movaps xmm15,XMMWORD[160+rsp] 1194 lea rsp,[184+rsp] 1195$L$ctr32_epilogue: 1196$L$ctr32_abort: 1197 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 1198 mov rsi,QWORD[16+rsp] 1199 DB 0F3h,0C3h ;repret 1200 1201$L$SEH_end_vpaes_ctr32_encrypt_blocks: 1202 1203 1204 1205 1206 1207 1208 1209ALIGN 16 1210_vpaes_preheat: 1211 1212 lea r10,[$L$k_s0F] 1213 movdqa xmm10,XMMWORD[((-32))+r10] 1214 movdqa xmm11,XMMWORD[((-16))+r10] 1215 movdqa xmm9,XMMWORD[r10] 1216 movdqa xmm13,XMMWORD[48+r10] 1217 movdqa xmm12,XMMWORD[64+r10] 1218 movdqa xmm15,XMMWORD[80+r10] 1219 movdqa xmm14,XMMWORD[96+r10] 1220 DB 0F3h,0C3h ;repret 1221 1222 1223 1224 1225 1226 1227 1228 1229ALIGN 64 1230_vpaes_consts: 1231$L$k_inv: 1232 DQ 0x0E05060F0D080180,0x040703090A0B0C02 1233 DQ 0x01040A060F0B0780,0x030D0E0C02050809 1234 1235$L$k_s0F: 1236 DQ 0x0F0F0F0F0F0F0F0F,0x0F0F0F0F0F0F0F0F 1237 1238$L$k_ipt: 1239 DQ 0xC2B2E8985A2A7000,0xCABAE09052227808 1240 DQ 0x4C01307D317C4D00,0xCD80B1FCB0FDCC81 1241 1242$L$k_sb1: 1243 DQ 0xB19BE18FCB503E00,0xA5DF7A6E142AF544 1244 DQ 0x3618D415FAE22300,0x3BF7CCC10D2ED9EF 1245$L$k_sb2: 1246 DQ 0xE27A93C60B712400,0x5EB7E955BC982FCD 1247 DQ 0x69EB88400AE12900,0xC2A163C8AB82234A 1248$L$k_sbo: 1249 DQ 0xD0D26D176FBDC700,0x15AABF7AC502A878 1250 DQ 0xCFE474A55FBB6A00,0x8E1E90D1412B35FA 1251 1252$L$k_mc_forward: 1253 DQ 0x0407060500030201,0x0C0F0E0D080B0A09 1254 DQ 0x080B0A0904070605,0x000302010C0F0E0D 1255 DQ 0x0C0F0E0D080B0A09,0x0407060500030201 1256 DQ 0x000302010C0F0E0D,0x080B0A0904070605 1257 1258$L$k_mc_backward: 1259 DQ 0x0605040702010003,0x0E0D0C0F0A09080B 1260 DQ 0x020100030E0D0C0F,0x0A09080B06050407 1261 DQ 0x0E0D0C0F0A09080B,0x0605040702010003 1262 DQ 0x0A09080B06050407,0x020100030E0D0C0F 1263 1264$L$k_sr: 1265 DQ 0x0706050403020100,0x0F0E0D0C0B0A0908 1266 DQ 0x030E09040F0A0500,0x0B06010C07020D08 1267 DQ 0x0F060D040B020900,0x070E050C030A0108 1268 DQ 0x0B0E0104070A0D00,0x0306090C0F020508 1269 1270$L$k_rcon: 1271 DQ 0x1F8391B9AF9DEEB6,0x702A98084D7C7D81 1272 1273$L$k_s63: 1274 DQ 0x5B5B5B5B5B5B5B5B,0x5B5B5B5B5B5B5B5B 1275 1276$L$k_opt: 1277 DQ 0xFF9F4929D6B66000,0xF7974121DEBE6808 1278 DQ 0x01EDBD5150BCEC00,0xE10D5DB1B05C0CE0 1279 1280$L$k_deskew: 1281 DQ 0x07E4A34047A4E300,0x1DFEB95A5DBEF91A 1282 DQ 0x5F36B5DC83EA6900,0x2841C2ABF49D1E77 1283 1284 1285 1286 1287 1288$L$k_dksd: 1289 DQ 0xFEB91A5DA3E44700,0x0740E3A45A1DBEF9 1290 DQ 0x41C277F4B5368300,0x5FDC69EAAB289D1E 1291$L$k_dksb: 1292 DQ 0x9A4FCA1F8550D500,0x03D653861CC94C99 1293 DQ 0x115BEDA7B6FC4A00,0xD993256F7E3482C8 1294$L$k_dkse: 1295 DQ 0xD5031CCA1FC9D600,0x53859A4C994F5086 1296 DQ 0xA23196054FDC7BE8,0xCD5EF96A20B31487 1297$L$k_dks9: 1298 DQ 0xB6116FC87ED9A700,0x4AED933482255BFC 1299 DQ 0x4576516227143300,0x8BB89FACE9DAFDCE 1300 1301 1302 1303 1304 1305$L$k_dipt: 1306 DQ 0x0F505B040B545F00,0x154A411E114E451A 1307 DQ 0x86E383E660056500,0x12771772F491F194 1308 1309$L$k_dsb9: 1310 DQ 0x851C03539A86D600,0xCAD51F504F994CC9 1311 DQ 0xC03B1789ECD74900,0x725E2C9EB2FBA565 1312$L$k_dsbd: 1313 DQ 0x7D57CCDFE6B1A200,0xF56E9B13882A4439 1314 DQ 0x3CE2FAF724C6CB00,0x2931180D15DEEFD3 1315$L$k_dsbb: 1316 DQ 0xD022649296B44200,0x602646F6B0F2D404 1317 DQ 0xC19498A6CD596700,0xF3FF0C3E3255AA6B 1318$L$k_dsbe: 1319 DQ 0x46F2929626D4D000,0x2242600464B4F6B0 1320 DQ 0x0C55A6CDFFAAC100,0x9467F36B98593E32 1321$L$k_dsbo: 1322 DQ 0x1387EA537EF94000,0xC7AA6DB9D4943E2D 1323 DQ 0x12D7560F93441D00,0xCA4B8159D8C58E9C 1324 1325 1326$L$rev_ctr: 1327 DQ 0x0706050403020100,0x0c0d0e0f0b0a0908 1328 1329 1330$L$ctr_add_one: 1331 DQ 0x0000000000000000,0x0000000100000000 1332$L$ctr_add_two: 1333 DQ 0x0000000000000000,0x0000000200000000 1334 1335DB 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105 1336DB 111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54 1337DB 52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97 1338DB 109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32 1339DB 85,110,105,118,101,114,115,105,116,121,41,0 1340ALIGN 64 1341 1342EXTERN __imp_RtlVirtualUnwind 1343 1344ALIGN 16 1345se_handler: 1346 push rsi 1347 push rdi 1348 push rbx 1349 push rbp 1350 push r12 1351 push r13 1352 push r14 1353 push r15 1354 pushfq 1355 sub rsp,64 1356 1357 mov rax,QWORD[120+r8] 1358 mov rbx,QWORD[248+r8] 1359 1360 mov rsi,QWORD[8+r9] 1361 mov r11,QWORD[56+r9] 1362 1363 mov r10d,DWORD[r11] 1364 lea r10,[r10*1+rsi] 1365 cmp rbx,r10 1366 jb NEAR $L$in_prologue 1367 1368 mov rax,QWORD[152+r8] 1369 1370 mov r10d,DWORD[4+r11] 1371 lea r10,[r10*1+rsi] 1372 cmp rbx,r10 1373 jae NEAR $L$in_prologue 1374 1375 lea rsi,[16+rax] 1376 lea rdi,[512+r8] 1377 mov ecx,20 1378 DD 0xa548f3fc 1379 lea rax,[184+rax] 1380 1381$L$in_prologue: 1382 mov rdi,QWORD[8+rax] 1383 mov rsi,QWORD[16+rax] 1384 mov QWORD[152+r8],rax 1385 mov QWORD[168+r8],rsi 1386 mov QWORD[176+r8],rdi 1387 1388 mov rdi,QWORD[40+r9] 1389 mov rsi,r8 1390 mov ecx,154 1391 DD 0xa548f3fc 1392 1393 mov rsi,r9 1394 xor rcx,rcx 1395 mov rdx,QWORD[8+rsi] 1396 mov r8,QWORD[rsi] 1397 mov r9,QWORD[16+rsi] 1398 mov r10,QWORD[40+rsi] 1399 lea r11,[56+rsi] 1400 lea r12,[24+rsi] 1401 mov QWORD[32+rsp],r10 1402 mov QWORD[40+rsp],r11 1403 mov QWORD[48+rsp],r12 1404 mov QWORD[56+rsp],rcx 1405 call QWORD[__imp_RtlVirtualUnwind] 1406 1407 mov eax,1 1408 add rsp,64 1409 popfq 1410 pop r15 1411 pop r14 1412 pop r13 1413 pop r12 1414 pop rbp 1415 pop rbx 1416 pop rdi 1417 pop rsi 1418 DB 0F3h,0C3h ;repret 1419 1420 1421section .pdata rdata align=4 1422ALIGN 4 1423 DD $L$SEH_begin_vpaes_set_encrypt_key wrt ..imagebase 1424 DD $L$SEH_end_vpaes_set_encrypt_key wrt ..imagebase 1425 DD $L$SEH_info_vpaes_set_encrypt_key wrt ..imagebase 1426 1427 DD $L$SEH_begin_vpaes_set_decrypt_key wrt ..imagebase 1428 DD $L$SEH_end_vpaes_set_decrypt_key wrt ..imagebase 1429 DD $L$SEH_info_vpaes_set_decrypt_key wrt ..imagebase 1430 1431 DD $L$SEH_begin_vpaes_encrypt wrt ..imagebase 1432 DD $L$SEH_end_vpaes_encrypt wrt ..imagebase 1433 DD $L$SEH_info_vpaes_encrypt wrt ..imagebase 1434 1435 DD $L$SEH_begin_vpaes_decrypt wrt ..imagebase 1436 DD $L$SEH_end_vpaes_decrypt wrt ..imagebase 1437 DD $L$SEH_info_vpaes_decrypt wrt ..imagebase 1438 1439 DD $L$SEH_begin_vpaes_cbc_encrypt wrt ..imagebase 1440 DD $L$SEH_end_vpaes_cbc_encrypt wrt ..imagebase 1441 DD $L$SEH_info_vpaes_cbc_encrypt wrt ..imagebase 1442 1443 DD $L$SEH_begin_vpaes_ctr32_encrypt_blocks wrt ..imagebase 1444 DD $L$SEH_end_vpaes_ctr32_encrypt_blocks wrt ..imagebase 1445 DD $L$SEH_info_vpaes_ctr32_encrypt_blocks wrt ..imagebase 1446 1447section .xdata rdata align=8 1448ALIGN 8 1449$L$SEH_info_vpaes_set_encrypt_key: 1450DB 9,0,0,0 1451 DD se_handler wrt ..imagebase 1452 DD $L$enc_key_body wrt ..imagebase,$L$enc_key_epilogue wrt ..imagebase 1453$L$SEH_info_vpaes_set_decrypt_key: 1454DB 9,0,0,0 1455 DD se_handler wrt ..imagebase 1456 DD $L$dec_key_body wrt ..imagebase,$L$dec_key_epilogue wrt ..imagebase 1457$L$SEH_info_vpaes_encrypt: 1458DB 9,0,0,0 1459 DD se_handler wrt ..imagebase 1460 DD $L$enc_body wrt ..imagebase,$L$enc_epilogue wrt ..imagebase 1461$L$SEH_info_vpaes_decrypt: 1462DB 9,0,0,0 1463 DD se_handler wrt ..imagebase 1464 DD $L$dec_body wrt ..imagebase,$L$dec_epilogue wrt ..imagebase 1465$L$SEH_info_vpaes_cbc_encrypt: 1466DB 9,0,0,0 1467 DD se_handler wrt ..imagebase 1468 DD $L$cbc_body wrt ..imagebase,$L$cbc_epilogue wrt ..imagebase 1469$L$SEH_info_vpaes_ctr32_encrypt_blocks: 1470DB 9,0,0,0 1471 DD se_handler wrt ..imagebase 1472 DD $L$ctr32_body wrt ..imagebase,$L$ctr32_epilogue wrt ..imagebase 1473