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