1 OPTION DOTNAME 2 .text$ SEGMENT ALIGN(256) 'CODE' 3 4 EXTERN OPENSSL_ia32cap_P:NEAR 5 PUBLIC sha512_block_data_order 6 7 ALIGN 16 8 sha512_block_data_order PROC PUBLIC 9 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue 10 mov QWORD PTR[16+rsp],rsi 11 mov rax,rsp 12 $L$SEH_begin_sha512_block_data_order:: 13 mov rdi,rcx 14 mov rsi,rdx 15 mov rdx,r8 16 17 18 push rbx 19 push rbp 20 push r12 21 push r13 22 push r14 23 push r15 24 mov r11,rsp 25 shl rdx,4 26 sub rsp,16*8+4*8 27 lea rdx,QWORD PTR[rdx*8+rsi] 28 and rsp,-64 29 mov QWORD PTR[((128+0))+rsp],rdi 30 mov QWORD PTR[((128+8))+rsp],rsi 31 mov QWORD PTR[((128+16))+rsp],rdx 32 mov QWORD PTR[((128+24))+rsp],r11 33 $L$prologue:: 34 35 mov rax,QWORD PTR[rdi] 36 mov rbx,QWORD PTR[8+rdi] 37 mov rcx,QWORD PTR[16+rdi] 38 mov rdx,QWORD PTR[24+rdi] 39 mov r8,QWORD PTR[32+rdi] 40 mov r9,QWORD PTR[40+rdi] 41 mov r10,QWORD PTR[48+rdi] 42 mov r11,QWORD PTR[56+rdi] 43 jmp $L$loop 44 45 ALIGN 16 46 $L$loop:: 47 mov rdi,rbx 48 lea rbp,QWORD PTR[K512] 49 xor rdi,rcx 50 mov r12,QWORD PTR[rsi] 51 mov r13,r8 52 mov r14,rax 53 bswap r12 54 ror r13,23 55 mov r15,r9 56 57 xor r13,r8 58 ror r14,5 59 xor r15,r10 60 61 mov QWORD PTR[rsp],r12 62 xor r14,rax 63 and r15,r8 64 65 ror r13,4 66 add r12,r11 67 xor r15,r10 68 69 ror r14,6 70 xor r13,r8 71 add r12,r15 72 73 mov r15,rax 74 add r12,QWORD PTR[rbp] 75 xor r14,rax 76 77 xor r15,rbx 78 ror r13,14 79 mov r11,rbx 80 81 and rdi,r15 82 ror r14,28 83 add r12,r13 84 85 xor r11,rdi 86 add rdx,r12 87 add r11,r12 88 89 lea rbp,QWORD PTR[8+rbp] 90 add r11,r14 91 mov r12,QWORD PTR[8+rsi] 92 mov r13,rdx 93 mov r14,r11 94 bswap r12 95 ror r13,23 96 mov rdi,r8 97 98 xor r13,rdx 99 ror r14,5 100 xor rdi,r9 101 102 mov QWORD PTR[8+rsp],r12 103 xor r14,r11 104 and rdi,rdx 105 106 ror r13,4 107 add r12,r10 108 xor rdi,r9 109 110 ror r14,6 111 xor r13,rdx 112 add r12,rdi 113 114 mov rdi,r11 115 add r12,QWORD PTR[rbp] 116 xor r14,r11 117 118 xor rdi,rax 119 ror r13,14 120 mov r10,rax 121 122 and r15,rdi 123 ror r14,28 124 add r12,r13 125 126 xor r10,r15 127 add rcx,r12 128 add r10,r12 129 130 lea rbp,QWORD PTR[24+rbp] 131 add r10,r14 132 mov r12,QWORD PTR[16+rsi] 133 mov r13,rcx 134 mov r14,r10 135 bswap r12 136 ror r13,23 137 mov r15,rdx 138 139 xor r13,rcx 140 ror r14,5 141 xor r15,r8 142 143 mov QWORD PTR[16+rsp],r12 144 xor r14,r10 145 and r15,rcx 146 147 ror r13,4 148 add r12,r9 149 xor r15,r8 150 151 ror r14,6 152 xor r13,rcx 153 add r12,r15 154 155 mov r15,r10 156 add r12,QWORD PTR[rbp] 157 xor r14,r10 158 159 xor r15,r11 160 ror r13,14 161 mov r9,r11 162 163 and rdi,r15 164 ror r14,28 165 add r12,r13 166 167 xor r9,rdi 168 add rbx,r12 169 add r9,r12 170 171 lea rbp,QWORD PTR[8+rbp] 172 add r9,r14 173 mov r12,QWORD PTR[24+rsi] 174 mov r13,rbx 175 mov r14,r9 176 bswap r12 177 ror r13,23 178 mov rdi,rcx 179 180 xor r13,rbx 181 ror r14,5 182 xor rdi,rdx 183 184 mov QWORD PTR[24+rsp],r12 185 xor r14,r9 186 and rdi,rbx 187 188 ror r13,4 189 add r12,r8 190 xor rdi,rdx 191 192 ror r14,6 193 xor r13,rbx 194 add r12,rdi 195 196 mov rdi,r9 197 add r12,QWORD PTR[rbp] 198 xor r14,r9 199 200 xor rdi,r10 201 ror r13,14 202 mov r8,r10 203 204 and r15,rdi 205 ror r14,28 206 add r12,r13 207 208 xor r8,r15 209 add rax,r12 210 add r8,r12 211 212 lea rbp,QWORD PTR[24+rbp] 213 add r8,r14 214 mov r12,QWORD PTR[32+rsi] 215 mov r13,rax 216 mov r14,r8 217 bswap r12 218 ror r13,23 219 mov r15,rbx 220 221 xor r13,rax 222 ror r14,5 223 xor r15,rcx 224 225 mov QWORD PTR[32+rsp],r12 226 xor r14,r8 227 and r15,rax 228 229 ror r13,4 230 add r12,rdx 231 xor r15,rcx 232 233 ror r14,6 234 xor r13,rax 235 add r12,r15 236 237 mov r15,r8 238 add r12,QWORD PTR[rbp] 239 xor r14,r8 240 241 xor r15,r9 242 ror r13,14 243 mov rdx,r9 244 245 and rdi,r15 246 ror r14,28 247 add r12,r13 248 249 xor rdx,rdi 250 add r11,r12 251 add rdx,r12 252 253 lea rbp,QWORD PTR[8+rbp] 254 add rdx,r14 255 mov r12,QWORD PTR[40+rsi] 256 mov r13,r11 257 mov r14,rdx 258 bswap r12 259 ror r13,23 260 mov rdi,rax 261 262 xor r13,r11 263 ror r14,5 264 xor rdi,rbx 265 266 mov QWORD PTR[40+rsp],r12 267 xor r14,rdx 268 and rdi,r11 269 270 ror r13,4 271 add r12,rcx 272 xor rdi,rbx 273 274 ror r14,6 275 xor r13,r11 276 add r12,rdi 277 278 mov rdi,rdx 279 add r12,QWORD PTR[rbp] 280 xor r14,rdx 281 282 xor rdi,r8 283 ror r13,14 284 mov rcx,r8 285 286 and r15,rdi 287 ror r14,28 288 add r12,r13 289 290 xor rcx,r15 291 add r10,r12 292 add rcx,r12 293 294 lea rbp,QWORD PTR[24+rbp] 295 add rcx,r14 296 mov r12,QWORD PTR[48+rsi] 297 mov r13,r10 298 mov r14,rcx 299 bswap r12 300 ror r13,23 301 mov r15,r11 302 303 xor r13,r10 304 ror r14,5 305 xor r15,rax 306 307 mov QWORD PTR[48+rsp],r12 308 xor r14,rcx 309 and r15,r10 310 311 ror r13,4 312 add r12,rbx 313 xor r15,rax 314 315 ror r14,6 316 xor r13,r10 317 add r12,r15 318 319 mov r15,rcx 320 add r12,QWORD PTR[rbp] 321 xor r14,rcx 322 323 xor r15,rdx 324 ror r13,14 325 mov rbx,rdx 326 327 and rdi,r15 328 ror r14,28 329 add r12,r13 330 331 xor rbx,rdi 332 add r9,r12 333 add rbx,r12 334 335 lea rbp,QWORD PTR[8+rbp] 336 add rbx,r14 337 mov r12,QWORD PTR[56+rsi] 338 mov r13,r9 339 mov r14,rbx 340 bswap r12 341 ror r13,23 342 mov rdi,r10 343 344 xor r13,r9 345 ror r14,5 346 xor rdi,r11 347 348 mov QWORD PTR[56+rsp],r12 349 xor r14,rbx 350 and rdi,r9 351 352 ror r13,4 353 add r12,rax 354 xor rdi,r11 355 356 ror r14,6 357 xor r13,r9 358 add r12,rdi 359 360 mov rdi,rbx 361 add r12,QWORD PTR[rbp] 362 xor r14,rbx 363 364 xor rdi,rcx 365 ror r13,14 366 mov rax,rcx 367 368 and r15,rdi 369 ror r14,28 370 add r12,r13 371 372 xor rax,r15 373 add r8,r12 374 add rax,r12 375 376 lea rbp,QWORD PTR[24+rbp] 377 add rax,r14 378 mov r12,QWORD PTR[64+rsi] 379 mov r13,r8 380 mov r14,rax 381 bswap r12 382 ror r13,23 383 mov r15,r9 384 385 xor r13,r8 386 ror r14,5 387 xor r15,r10 388 389 mov QWORD PTR[64+rsp],r12 390 xor r14,rax 391 and r15,r8 392 393 ror r13,4 394 add r12,r11 395 xor r15,r10 396 397 ror r14,6 398 xor r13,r8 399 add r12,r15 400 401 mov r15,rax 402 add r12,QWORD PTR[rbp] 403 xor r14,rax 404 405 xor r15,rbx 406 ror r13,14 407 mov r11,rbx 408 409 and rdi,r15 410 ror r14,28 411 add r12,r13 412 413 xor r11,rdi 414 add rdx,r12 415 add r11,r12 416 417 lea rbp,QWORD PTR[8+rbp] 418 add r11,r14 419 mov r12,QWORD PTR[72+rsi] 420 mov r13,rdx 421 mov r14,r11 422 bswap r12 423 ror r13,23 424 mov rdi,r8 425 426 xor r13,rdx 427 ror r14,5 428 xor rdi,r9 429 430 mov QWORD PTR[72+rsp],r12 431 xor r14,r11 432 and rdi,rdx 433 434 ror r13,4 435 add r12,r10 436 xor rdi,r9 437 438 ror r14,6 439 xor r13,rdx 440 add r12,rdi 441 442 mov rdi,r11 443 add r12,QWORD PTR[rbp] 444 xor r14,r11 445 446 xor rdi,rax 447 ror r13,14 448 mov r10,rax 449 450 and r15,rdi 451 ror r14,28 452 add r12,r13 453 454 xor r10,r15 455 add rcx,r12 456 add r10,r12 457 458 lea rbp,QWORD PTR[24+rbp] 459 add r10,r14 460 mov r12,QWORD PTR[80+rsi] 461 mov r13,rcx 462 mov r14,r10 463 bswap r12 464 ror r13,23 465 mov r15,rdx 466 467 xor r13,rcx 468 ror r14,5 469 xor r15,r8 470 471 mov QWORD PTR[80+rsp],r12 472 xor r14,r10 473 and r15,rcx 474 475 ror r13,4 476 add r12,r9 477 xor r15,r8 478 479 ror r14,6 480 xor r13,rcx 481 add r12,r15 482 483 mov r15,r10 484 add r12,QWORD PTR[rbp] 485 xor r14,r10 486 487 xor r15,r11 488 ror r13,14 489 mov r9,r11 490 491 and rdi,r15 492 ror r14,28 493 add r12,r13 494 495 xor r9,rdi 496 add rbx,r12 497 add r9,r12 498 499 lea rbp,QWORD PTR[8+rbp] 500 add r9,r14 501 mov r12,QWORD PTR[88+rsi] 502 mov r13,rbx 503 mov r14,r9 504 bswap r12 505 ror r13,23 506 mov rdi,rcx 507 508 xor r13,rbx 509 ror r14,5 510 xor rdi,rdx 511 512 mov QWORD PTR[88+rsp],r12 513 xor r14,r9 514 and rdi,rbx 515 516 ror r13,4 517 add r12,r8 518 xor rdi,rdx 519 520 ror r14,6 521 xor r13,rbx 522 add r12,rdi 523 524 mov rdi,r9 525 add r12,QWORD PTR[rbp] 526 xor r14,r9 527 528 xor rdi,r10 529 ror r13,14 530 mov r8,r10 531 532 and r15,rdi 533 ror r14,28 534 add r12,r13 535 536 xor r8,r15 537 add rax,r12 538 add r8,r12 539 540 lea rbp,QWORD PTR[24+rbp] 541 add r8,r14 542 mov r12,QWORD PTR[96+rsi] 543 mov r13,rax 544 mov r14,r8 545 bswap r12 546 ror r13,23 547 mov r15,rbx 548 549 xor r13,rax 550 ror r14,5 551 xor r15,rcx 552 553 mov QWORD PTR[96+rsp],r12 554 xor r14,r8 555 and r15,rax 556 557 ror r13,4 558 add r12,rdx 559 xor r15,rcx 560 561 ror r14,6 562 xor r13,rax 563 add r12,r15 564 565 mov r15,r8 566 add r12,QWORD PTR[rbp] 567 xor r14,r8 568 569 xor r15,r9 570 ror r13,14 571 mov rdx,r9 572 573 and rdi,r15 574 ror r14,28 575 add r12,r13 576 577 xor rdx,rdi 578 add r11,r12 579 add rdx,r12 580 581 lea rbp,QWORD PTR[8+rbp] 582 add rdx,r14 583 mov r12,QWORD PTR[104+rsi] 584 mov r13,r11 585 mov r14,rdx 586 bswap r12 587 ror r13,23 588 mov rdi,rax 589 590 xor r13,r11 591 ror r14,5 592 xor rdi,rbx 593 594 mov QWORD PTR[104+rsp],r12 595 xor r14,rdx 596 and rdi,r11 597 598 ror r13,4 599 add r12,rcx 600 xor rdi,rbx 601 602 ror r14,6 603 xor r13,r11 604 add r12,rdi 605 606 mov rdi,rdx 607 add r12,QWORD PTR[rbp] 608 xor r14,rdx 609 610 xor rdi,r8 611 ror r13,14 612 mov rcx,r8 613 614 and r15,rdi 615 ror r14,28 616 add r12,r13 617 618 xor rcx,r15 619 add r10,r12 620 add rcx,r12 621 622 lea rbp,QWORD PTR[24+rbp] 623 add rcx,r14 624 mov r12,QWORD PTR[112+rsi] 625 mov r13,r10 626 mov r14,rcx 627 bswap r12 628 ror r13,23 629 mov r15,r11 630 631 xor r13,r10 632 ror r14,5 633 xor r15,rax 634 635 mov QWORD PTR[112+rsp],r12 636 xor r14,rcx 637 and r15,r10 638 639 ror r13,4 640 add r12,rbx 641 xor r15,rax 642 643 ror r14,6 644 xor r13,r10 645 add r12,r15 646 647 mov r15,rcx 648 add r12,QWORD PTR[rbp] 649 xor r14,rcx 650 651 xor r15,rdx 652 ror r13,14 653 mov rbx,rdx 654 655 and rdi,r15 656 ror r14,28 657 add r12,r13 658 659 xor rbx,rdi 660 add r9,r12 661 add rbx,r12 662 663 lea rbp,QWORD PTR[8+rbp] 664 add rbx,r14 665 mov r12,QWORD PTR[120+rsi] 666 mov r13,r9 667 mov r14,rbx 668 bswap r12 669 ror r13,23 670 mov rdi,r10 671 672 xor r13,r9 673 ror r14,5 674 xor rdi,r11 675 676 mov QWORD PTR[120+rsp],r12 677 xor r14,rbx 678 and rdi,r9 679 680 ror r13,4 681 add r12,rax 682 xor rdi,r11 683 684 ror r14,6 685 xor r13,r9 686 add r12,rdi 687 688 mov rdi,rbx 689 add r12,QWORD PTR[rbp] 690 xor r14,rbx 691 692 xor rdi,rcx 693 ror r13,14 694 mov rax,rcx 695 696 and r15,rdi 697 ror r14,28 698 add r12,r13 699 700 xor rax,r15 701 add r8,r12 702 add rax,r12 703 704 lea rbp,QWORD PTR[24+rbp] 705 jmp $L$rounds_16_xx 706 ALIGN 16 707 $L$rounds_16_xx:: 708 mov r13,QWORD PTR[8+rsp] 709 mov r15,QWORD PTR[112+rsp] 710 711 mov r12,r13 712 ror r13,7 713 add rax,r14 714 mov r14,r15 715 ror r15,42 716 717 xor r13,r12 718 shr r12,7 719 ror r13,1 720 xor r15,r14 721 shr r14,6 722 723 ror r15,19 724 xor r12,r13 725 xor r15,r14 726 add r12,QWORD PTR[72+rsp] 727 728 add r12,QWORD PTR[rsp] 729 mov r13,r8 730 add r12,r15 731 mov r14,rax 732 ror r13,23 733 mov r15,r9 734 735 xor r13,r8 736 ror r14,5 737 xor r15,r10 738 739 mov QWORD PTR[rsp],r12 740 xor r14,rax 741 and r15,r8 742 743 ror r13,4 744 add r12,r11 745 xor r15,r10 746 747 ror r14,6 748 xor r13,r8 749 add r12,r15 750 751 mov r15,rax 752 add r12,QWORD PTR[rbp] 753 xor r14,rax 754 755 xor r15,rbx 756 ror r13,14 757 mov r11,rbx 758 759 and rdi,r15 760 ror r14,28 761 add r12,r13 762 763 xor r11,rdi 764 add rdx,r12 765 add r11,r12 766 767 lea rbp,QWORD PTR[8+rbp] 768 mov r13,QWORD PTR[16+rsp] 769 mov rdi,QWORD PTR[120+rsp] 770 771 mov r12,r13 772 ror r13,7 773 add r11,r14 774 mov r14,rdi 775 ror rdi,42 776 777 xor r13,r12 778 shr r12,7 779 ror r13,1 780 xor rdi,r14 781 shr r14,6 782 783 ror rdi,19 784 xor r12,r13 785 xor rdi,r14 786 add r12,QWORD PTR[80+rsp] 787 788 add r12,QWORD PTR[8+rsp] 789 mov r13,rdx 790 add r12,rdi 791 mov r14,r11 792 ror r13,23 793 mov rdi,r8 794 795 xor r13,rdx 796 ror r14,5 797 xor rdi,r9 798 799 mov QWORD PTR[8+rsp],r12 800 xor r14,r11 801 and rdi,rdx 802 803 ror r13,4 804 add r12,r10 805 xor rdi,r9 806 807 ror r14,6 808 xor r13,rdx 809 add r12,rdi 810 811 mov rdi,r11 812 add r12,QWORD PTR[rbp] 813 xor r14,r11 814 815 xor rdi,rax 816 ror r13,14 817 mov r10,rax 818 819 and r15,rdi 820 ror r14,28 821 add r12,r13 822 823 xor r10,r15 824 add rcx,r12 825 add r10,r12 826 827 lea rbp,QWORD PTR[24+rbp] 828 mov r13,QWORD PTR[24+rsp] 829 mov r15,QWORD PTR[rsp] 830 831 mov r12,r13 832 ror r13,7 833 add r10,r14 834 mov r14,r15 835 ror r15,42 836 837 xor r13,r12 838 shr r12,7 839 ror r13,1 840 xor r15,r14 841 shr r14,6 842 843 ror r15,19 844 xor r12,r13 845 xor r15,r14 846 add r12,QWORD PTR[88+rsp] 847 848 add r12,QWORD PTR[16+rsp] 849 mov r13,rcx 850 add r12,r15 851 mov r14,r10 852 ror r13,23 853 mov r15,rdx 854 855 xor r13,rcx 856 ror r14,5 857 xor r15,r8 858 859 mov QWORD PTR[16+rsp],r12 860 xor r14,r10 861 and r15,rcx 862 863 ror r13,4 864 add r12,r9 865 xor r15,r8 866 867 ror r14,6 868 xor r13,rcx 869 add r12,r15 870 871 mov r15,r10 872 add r12,QWORD PTR[rbp] 873 xor r14,r10 874 875 xor r15,r11 876 ror r13,14 877 mov r9,r11 878 879 and rdi,r15 880 ror r14,28 881 add r12,r13 882 883 xor r9,rdi 884 add rbx,r12 885 add r9,r12 886 887 lea rbp,QWORD PTR[8+rbp] 888 mov r13,QWORD PTR[32+rsp] 889 mov rdi,QWORD PTR[8+rsp] 890 891 mov r12,r13 892 ror r13,7 893 add r9,r14 894 mov r14,rdi 895 ror rdi,42 896 897 xor r13,r12 898 shr r12,7 899 ror r13,1 900 xor rdi,r14 901 shr r14,6 902 903 ror rdi,19 904 xor r12,r13 905 xor rdi,r14 906 add r12,QWORD PTR[96+rsp] 907 908 add r12,QWORD PTR[24+rsp] 909 mov r13,rbx 910 add r12,rdi 911 mov r14,r9 912 ror r13,23 913 mov rdi,rcx 914 915 xor r13,rbx 916 ror r14,5 917 xor rdi,rdx 918 919 mov QWORD PTR[24+rsp],r12 920 xor r14,r9 921 and rdi,rbx 922 923 ror r13,4 924 add r12,r8 925 xor rdi,rdx 926 927 ror r14,6 928 xor r13,rbx 929 add r12,rdi 930 931 mov rdi,r9 932 add r12,QWORD PTR[rbp] 933 xor r14,r9 934 935 xor rdi,r10 936 ror r13,14 937 mov r8,r10 938 939 and r15,rdi 940 ror r14,28 941 add r12,r13 942 943 xor r8,r15 944 add rax,r12 945 add r8,r12 946 947 lea rbp,QWORD PTR[24+rbp] 948 mov r13,QWORD PTR[40+rsp] 949 mov r15,QWORD PTR[16+rsp] 950 951 mov r12,r13 952 ror r13,7 953 add r8,r14 954 mov r14,r15 955 ror r15,42 956 957 xor r13,r12 958 shr r12,7 959 ror r13,1 960 xor r15,r14 961 shr r14,6 962 963 ror r15,19 964 xor r12,r13 965 xor r15,r14 966 add r12,QWORD PTR[104+rsp] 967 968 add r12,QWORD PTR[32+rsp] 969 mov r13,rax 970 add r12,r15 971 mov r14,r8 972 ror r13,23 973 mov r15,rbx 974 975 xor r13,rax 976 ror r14,5 977 xor r15,rcx 978 979 mov QWORD PTR[32+rsp],r12 980 xor r14,r8 981 and r15,rax 982 983 ror r13,4 984 add r12,rdx 985 xor r15,rcx 986 987 ror r14,6 988 xor r13,rax 989 add r12,r15 990 991 mov r15,r8 992 add r12,QWORD PTR[rbp] 993 xor r14,r8 994 995 xor r15,r9 996 ror r13,14 997 mov rdx,r9 998 999 and rdi,r15 1000 ror r14,28 1001 add r12,r13 1002 1003 xor rdx,rdi 1004 add r11,r12 1005 add rdx,r12 1006 1007 lea rbp,QWORD PTR[8+rbp] 1008 mov r13,QWORD PTR[48+rsp] 1009 mov rdi,QWORD PTR[24+rsp] 1010 1011 mov r12,r13 1012 ror r13,7 1013 add rdx,r14 1014 mov r14,rdi 1015 ror rdi,42 1016 1017 xor r13,r12 1018 shr r12,7 1019 ror r13,1 1020 xor rdi,r14 1021 shr r14,6 1022 1023 ror rdi,19 1024 xor r12,r13 1025 xor rdi,r14 1026 add r12,QWORD PTR[112+rsp] 1027 1028 add r12,QWORD PTR[40+rsp] 1029 mov r13,r11 1030 add r12,rdi 1031 mov r14,rdx 1032 ror r13,23 1033 mov rdi,rax 1034 1035 xor r13,r11 1036 ror r14,5 1037 xor rdi,rbx 1038 1039 mov QWORD PTR[40+rsp],r12 1040 xor r14,rdx 1041 and rdi,r11 1042 1043 ror r13,4 1044 add r12,rcx 1045 xor rdi,rbx 1046 1047 ror r14,6 1048 xor r13,r11 1049 add r12,rdi 1050 1051 mov rdi,rdx 1052 add r12,QWORD PTR[rbp] 1053 xor r14,rdx 1054 1055 xor rdi,r8 1056 ror r13,14 1057 mov rcx,r8 1058 1059 and r15,rdi 1060 ror r14,28 1061 add r12,r13 1062 1063 xor rcx,r15 1064 add r10,r12 1065 add rcx,r12 1066 1067 lea rbp,QWORD PTR[24+rbp] 1068 mov r13,QWORD PTR[56+rsp] 1069 mov r15,QWORD PTR[32+rsp] 1070 1071 mov r12,r13 1072 ror r13,7 1073 add rcx,r14 1074 mov r14,r15 1075 ror r15,42 1076 1077 xor r13,r12 1078 shr r12,7 1079 ror r13,1 1080 xor r15,r14 1081 shr r14,6 1082 1083 ror r15,19 1084 xor r12,r13 1085 xor r15,r14 1086 add r12,QWORD PTR[120+rsp] 1087 1088 add r12,QWORD PTR[48+rsp] 1089 mov r13,r10 1090 add r12,r15 1091 mov r14,rcx 1092 ror r13,23 1093 mov r15,r11 1094 1095 xor r13,r10 1096 ror r14,5 1097 xor r15,rax 1098 1099 mov QWORD PTR[48+rsp],r12 1100 xor r14,rcx 1101 and r15,r10 1102 1103 ror r13,4 1104 add r12,rbx 1105 xor r15,rax 1106 1107 ror r14,6 1108 xor r13,r10 1109 add r12,r15 1110 1111 mov r15,rcx 1112 add r12,QWORD PTR[rbp] 1113 xor r14,rcx 1114 1115 xor r15,rdx 1116 ror r13,14 1117 mov rbx,rdx 1118 1119 and rdi,r15 1120 ror r14,28 1121 add r12,r13 1122 1123 xor rbx,rdi 1124 add r9,r12 1125 add rbx,r12 1126 1127 lea rbp,QWORD PTR[8+rbp] 1128 mov r13,QWORD PTR[64+rsp] 1129 mov rdi,QWORD PTR[40+rsp] 1130 1131 mov r12,r13 1132 ror r13,7 1133 add rbx,r14 1134 mov r14,rdi 1135 ror rdi,42 1136 1137 xor r13,r12 1138 shr r12,7 1139 ror r13,1 1140 xor rdi,r14 1141 shr r14,6 1142 1143 ror rdi,19 1144 xor r12,r13 1145 xor rdi,r14 1146 add r12,QWORD PTR[rsp] 1147 1148 add r12,QWORD PTR[56+rsp] 1149 mov r13,r9 1150 add r12,rdi 1151 mov r14,rbx 1152 ror r13,23 1153 mov rdi,r10 1154 1155 xor r13,r9 1156 ror r14,5 1157 xor rdi,r11 1158 1159 mov QWORD PTR[56+rsp],r12 1160 xor r14,rbx 1161 and rdi,r9 1162 1163 ror r13,4 1164 add r12,rax 1165 xor rdi,r11 1166 1167 ror r14,6 1168 xor r13,r9 1169 add r12,rdi 1170 1171 mov rdi,rbx 1172 add r12,QWORD PTR[rbp] 1173 xor r14,rbx 1174 1175 xor rdi,rcx 1176 ror r13,14 1177 mov rax,rcx 1178 1179 and r15,rdi 1180 ror r14,28 1181 add r12,r13 1182 1183 xor rax,r15 1184 add r8,r12 1185 add rax,r12 1186 1187 lea rbp,QWORD PTR[24+rbp] 1188 mov r13,QWORD PTR[72+rsp] 1189 mov r15,QWORD PTR[48+rsp] 1190 1191 mov r12,r13 1192 ror r13,7 1193 add rax,r14 1194 mov r14,r15 1195 ror r15,42 1196 1197 xor r13,r12 1198 shr r12,7 1199 ror r13,1 1200 xor r15,r14 1201 shr r14,6 1202 1203 ror r15,19 1204 xor r12,r13 1205 xor r15,r14 1206 add r12,QWORD PTR[8+rsp] 1207 1208 add r12,QWORD PTR[64+rsp] 1209 mov r13,r8 1210 add r12,r15 1211 mov r14,rax 1212 ror r13,23 1213 mov r15,r9 1214 1215 xor r13,r8 1216 ror r14,5 1217 xor r15,r10 1218 1219 mov QWORD PTR[64+rsp],r12 1220 xor r14,rax 1221 and r15,r8 1222 1223 ror r13,4 1224 add r12,r11 1225 xor r15,r10 1226 1227 ror r14,6 1228 xor r13,r8 1229 add r12,r15 1230 1231 mov r15,rax 1232 add r12,QWORD PTR[rbp] 1233 xor r14,rax 1234 1235 xor r15,rbx 1236 ror r13,14 1237 mov r11,rbx 1238 1239 and rdi,r15 1240 ror r14,28 1241 add r12,r13 1242 1243 xor r11,rdi 1244 add rdx,r12 1245 add r11,r12 1246 1247 lea rbp,QWORD PTR[8+rbp] 1248 mov r13,QWORD PTR[80+rsp] 1249 mov rdi,QWORD PTR[56+rsp] 1250 1251 mov r12,r13 1252 ror r13,7 1253 add r11,r14 1254 mov r14,rdi 1255 ror rdi,42 1256 1257 xor r13,r12 1258 shr r12,7 1259 ror r13,1 1260 xor rdi,r14 1261 shr r14,6 1262 1263 ror rdi,19 1264 xor r12,r13 1265 xor rdi,r14 1266 add r12,QWORD PTR[16+rsp] 1267 1268 add r12,QWORD PTR[72+rsp] 1269 mov r13,rdx 1270 add r12,rdi 1271 mov r14,r11 1272 ror r13,23 1273 mov rdi,r8 1274 1275 xor r13,rdx 1276 ror r14,5 1277 xor rdi,r9 1278 1279 mov QWORD PTR[72+rsp],r12 1280 xor r14,r11 1281 and rdi,rdx 1282 1283 ror r13,4 1284 add r12,r10 1285 xor rdi,r9 1286 1287 ror r14,6 1288 xor r13,rdx 1289 add r12,rdi 1290 1291 mov rdi,r11 1292 add r12,QWORD PTR[rbp] 1293 xor r14,r11 1294 1295 xor rdi,rax 1296 ror r13,14 1297 mov r10,rax 1298 1299 and r15,rdi 1300 ror r14,28 1301 add r12,r13 1302 1303 xor r10,r15 1304 add rcx,r12 1305 add r10,r12 1306 1307 lea rbp,QWORD PTR[24+rbp] 1308 mov r13,QWORD PTR[88+rsp] 1309 mov r15,QWORD PTR[64+rsp] 1310 1311 mov r12,r13 1312 ror r13,7 1313 add r10,r14 1314 mov r14,r15 1315 ror r15,42 1316 1317 xor r13,r12 1318 shr r12,7 1319 ror r13,1 1320 xor r15,r14 1321 shr r14,6 1322 1323 ror r15,19 1324 xor r12,r13 1325 xor r15,r14 1326 add r12,QWORD PTR[24+rsp] 1327 1328 add r12,QWORD PTR[80+rsp] 1329 mov r13,rcx 1330 add r12,r15 1331 mov r14,r10 1332 ror r13,23 1333 mov r15,rdx 1334 1335 xor r13,rcx 1336 ror r14,5 1337 xor r15,r8 1338 1339 mov QWORD PTR[80+rsp],r12 1340 xor r14,r10 1341 and r15,rcx 1342 1343 ror r13,4 1344 add r12,r9 1345 xor r15,r8 1346 1347 ror r14,6 1348 xor r13,rcx 1349 add r12,r15 1350 1351 mov r15,r10 1352 add r12,QWORD PTR[rbp] 1353 xor r14,r10 1354 1355 xor r15,r11 1356 ror r13,14 1357 mov r9,r11 1358 1359 and rdi,r15 1360 ror r14,28 1361 add r12,r13 1362 1363 xor r9,rdi 1364 add rbx,r12 1365 add r9,r12 1366 1367 lea rbp,QWORD PTR[8+rbp] 1368 mov r13,QWORD PTR[96+rsp] 1369 mov rdi,QWORD PTR[72+rsp] 1370 1371 mov r12,r13 1372 ror r13,7 1373 add r9,r14 1374 mov r14,rdi 1375 ror rdi,42 1376 1377 xor r13,r12 1378 shr r12,7 1379 ror r13,1 1380 xor rdi,r14 1381 shr r14,6 1382 1383 ror rdi,19 1384 xor r12,r13 1385 xor rdi,r14 1386 add r12,QWORD PTR[32+rsp] 1387 1388 add r12,QWORD PTR[88+rsp] 1389 mov r13,rbx 1390 add r12,rdi 1391 mov r14,r9 1392 ror r13,23 1393 mov rdi,rcx 1394 1395 xor r13,rbx 1396 ror r14,5 1397 xor rdi,rdx 1398 1399 mov QWORD PTR[88+rsp],r12 1400 xor r14,r9 1401 and rdi,rbx 1402 1403 ror r13,4 1404 add r12,r8 1405 xor rdi,rdx 1406 1407 ror r14,6 1408 xor r13,rbx 1409 add r12,rdi 1410 1411 mov rdi,r9 1412 add r12,QWORD PTR[rbp] 1413 xor r14,r9 1414 1415 xor rdi,r10 1416 ror r13,14 1417 mov r8,r10 1418 1419 and r15,rdi 1420 ror r14,28 1421 add r12,r13 1422 1423 xor r8,r15 1424 add rax,r12 1425 add r8,r12 1426 1427 lea rbp,QWORD PTR[24+rbp] 1428 mov r13,QWORD PTR[104+rsp] 1429 mov r15,QWORD PTR[80+rsp] 1430 1431 mov r12,r13 1432 ror r13,7 1433 add r8,r14 1434 mov r14,r15 1435 ror r15,42 1436 1437 xor r13,r12 1438 shr r12,7 1439 ror r13,1 1440 xor r15,r14 1441 shr r14,6 1442 1443 ror r15,19 1444 xor r12,r13 1445 xor r15,r14 1446 add r12,QWORD PTR[40+rsp] 1447 1448 add r12,QWORD PTR[96+rsp] 1449 mov r13,rax 1450 add r12,r15 1451 mov r14,r8 1452 ror r13,23 1453 mov r15,rbx 1454 1455 xor r13,rax 1456 ror r14,5 1457 xor r15,rcx 1458 1459 mov QWORD PTR[96+rsp],r12 1460 xor r14,r8 1461 and r15,rax 1462 1463 ror r13,4 1464 add r12,rdx 1465 xor r15,rcx 1466 1467 ror r14,6 1468 xor r13,rax 1469 add r12,r15 1470 1471 mov r15,r8 1472 add r12,QWORD PTR[rbp] 1473 xor r14,r8 1474 1475 xor r15,r9 1476 ror r13,14 1477 mov rdx,r9 1478 1479 and rdi,r15 1480 ror r14,28 1481 add r12,r13 1482 1483 xor rdx,rdi 1484 add r11,r12 1485 add rdx,r12 1486 1487 lea rbp,QWORD PTR[8+rbp] 1488 mov r13,QWORD PTR[112+rsp] 1489 mov rdi,QWORD PTR[88+rsp] 1490 1491 mov r12,r13 1492 ror r13,7 1493 add rdx,r14 1494 mov r14,rdi 1495 ror rdi,42 1496 1497 xor r13,r12 1498 shr r12,7 1499 ror r13,1 1500 xor rdi,r14 1501 shr r14,6 1502 1503 ror rdi,19 1504 xor r12,r13 1505 xor rdi,r14 1506 add r12,QWORD PTR[48+rsp] 1507 1508 add r12,QWORD PTR[104+rsp] 1509 mov r13,r11 1510 add r12,rdi 1511 mov r14,rdx 1512 ror r13,23 1513 mov rdi,rax 1514 1515 xor r13,r11 1516 ror r14,5 1517 xor rdi,rbx 1518 1519 mov QWORD PTR[104+rsp],r12 1520 xor r14,rdx 1521 and rdi,r11 1522 1523 ror r13,4 1524 add r12,rcx 1525 xor rdi,rbx 1526 1527 ror r14,6 1528 xor r13,r11 1529 add r12,rdi 1530 1531 mov rdi,rdx 1532 add r12,QWORD PTR[rbp] 1533 xor r14,rdx 1534 1535 xor rdi,r8 1536 ror r13,14 1537 mov rcx,r8 1538 1539 and r15,rdi 1540 ror r14,28 1541 add r12,r13 1542 1543 xor rcx,r15 1544 add r10,r12 1545 add rcx,r12 1546 1547 lea rbp,QWORD PTR[24+rbp] 1548 mov r13,QWORD PTR[120+rsp] 1549 mov r15,QWORD PTR[96+rsp] 1550 1551 mov r12,r13 1552 ror r13,7 1553 add rcx,r14 1554 mov r14,r15 1555 ror r15,42 1556 1557 xor r13,r12 1558 shr r12,7 1559 ror r13,1 1560 xor r15,r14 1561 shr r14,6 1562 1563 ror r15,19 1564 xor r12,r13 1565 xor r15,r14 1566 add r12,QWORD PTR[56+rsp] 1567 1568 add r12,QWORD PTR[112+rsp] 1569 mov r13,r10 1570 add r12,r15 1571 mov r14,rcx 1572 ror r13,23 1573 mov r15,r11 1574 1575 xor r13,r10 1576 ror r14,5 1577 xor r15,rax 1578 1579 mov QWORD PTR[112+rsp],r12 1580 xor r14,rcx 1581 and r15,r10 1582 1583 ror r13,4 1584 add r12,rbx 1585 xor r15,rax 1586 1587 ror r14,6 1588 xor r13,r10 1589 add r12,r15 1590 1591 mov r15,rcx 1592 add r12,QWORD PTR[rbp] 1593 xor r14,rcx 1594 1595 xor r15,rdx 1596 ror r13,14 1597 mov rbx,rdx 1598 1599 and rdi,r15 1600 ror r14,28 1601 add r12,r13 1602 1603 xor rbx,rdi 1604 add r9,r12 1605 add rbx,r12 1606 1607 lea rbp,QWORD PTR[8+rbp] 1608 mov r13,QWORD PTR[rsp] 1609 mov rdi,QWORD PTR[104+rsp] 1610 1611 mov r12,r13 1612 ror r13,7 1613 add rbx,r14 1614 mov r14,rdi 1615 ror rdi,42 1616 1617 xor r13,r12 1618 shr r12,7 1619 ror r13,1 1620 xor rdi,r14 1621 shr r14,6 1622 1623 ror rdi,19 1624 xor r12,r13 1625 xor rdi,r14 1626 add r12,QWORD PTR[64+rsp] 1627 1628 add r12,QWORD PTR[120+rsp] 1629 mov r13,r9 1630 add r12,rdi 1631 mov r14,rbx 1632 ror r13,23 1633 mov rdi,r10 1634 1635 xor r13,r9 1636 ror r14,5 1637 xor rdi,r11 1638 1639 mov QWORD PTR[120+rsp],r12 1640 xor r14,rbx 1641 and rdi,r9 1642 1643 ror r13,4 1644 add r12,rax 1645 xor rdi,r11 1646 1647 ror r14,6 1648 xor r13,r9 1649 add r12,rdi 1650 1651 mov rdi,rbx 1652 add r12,QWORD PTR[rbp] 1653 xor r14,rbx 1654 1655 xor rdi,rcx 1656 ror r13,14 1657 mov rax,rcx 1658 1659 and r15,rdi 1660 ror r14,28 1661 add r12,r13 1662 1663 xor rax,r15 1664 add r8,r12 1665 add rax,r12 1666 1667 lea rbp,QWORD PTR[24+rbp] 1668 cmp BYTE PTR[7+rbp],0 1669 jnz $L$rounds_16_xx 1670 1671 mov rdi,QWORD PTR[((128+0))+rsp] 1672 add rax,r14 1673 lea rsi,QWORD PTR[128+rsi] 1674 1675 add rax,QWORD PTR[rdi] 1676 add rbx,QWORD PTR[8+rdi] 1677 add rcx,QWORD PTR[16+rdi] 1678 add rdx,QWORD PTR[24+rdi] 1679 add r8,QWORD PTR[32+rdi] 1680 add r9,QWORD PTR[40+rdi] 1681 add r10,QWORD PTR[48+rdi] 1682 add r11,QWORD PTR[56+rdi] 1683 1684 cmp rsi,QWORD PTR[((128+16))+rsp] 1685 1686 mov QWORD PTR[rdi],rax 1687 mov QWORD PTR[8+rdi],rbx 1688 mov QWORD PTR[16+rdi],rcx 1689 mov QWORD PTR[24+rdi],rdx 1690 mov QWORD PTR[32+rdi],r8 1691 mov QWORD PTR[40+rdi],r9 1692 mov QWORD PTR[48+rdi],r10 1693 mov QWORD PTR[56+rdi],r11 1694 jb $L$loop 1695 1696 mov rsi,QWORD PTR[((128+24))+rsp] 1697 mov r15,QWORD PTR[rsi] 1698 mov r14,QWORD PTR[8+rsi] 1699 mov r13,QWORD PTR[16+rsi] 1700 mov r12,QWORD PTR[24+rsi] 1701 mov rbp,QWORD PTR[32+rsi] 1702 mov rbx,QWORD PTR[40+rsi] 1703 lea rsp,QWORD PTR[48+rsi] 1704 $L$epilogue:: 1705 mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue 1706 mov rsi,QWORD PTR[16+rsp] 1707 DB 0F3h,0C3h ;repret 1708 $L$SEH_end_sha512_block_data_order:: 1709 sha512_block_data_order ENDP 1710 ALIGN 64 1711 1712 K512:: 1713 DQ 0428a2f98d728ae22h,07137449123ef65cdh 1714 DQ 0428a2f98d728ae22h,07137449123ef65cdh 1715 DQ 0b5c0fbcfec4d3b2fh,0e9b5dba58189dbbch 1716 DQ 0b5c0fbcfec4d3b2fh,0e9b5dba58189dbbch 1717 DQ 03956c25bf348b538h,059f111f1b605d019h 1718 DQ 03956c25bf348b538h,059f111f1b605d019h 1719 DQ 0923f82a4af194f9bh,0ab1c5ed5da6d8118h 1720 DQ 0923f82a4af194f9bh,0ab1c5ed5da6d8118h 1721 DQ 0d807aa98a3030242h,012835b0145706fbeh 1722 DQ 0d807aa98a3030242h,012835b0145706fbeh 1723 DQ 0243185be4ee4b28ch,0550c7dc3d5ffb4e2h 1724 DQ 0243185be4ee4b28ch,0550c7dc3d5ffb4e2h 1725 DQ 072be5d74f27b896fh,080deb1fe3b1696b1h 1726 DQ 072be5d74f27b896fh,080deb1fe3b1696b1h 1727 DQ 09bdc06a725c71235h,0c19bf174cf692694h 1728 DQ 09bdc06a725c71235h,0c19bf174cf692694h 1729 DQ 0e49b69c19ef14ad2h,0efbe4786384f25e3h 1730 DQ 0e49b69c19ef14ad2h,0efbe4786384f25e3h 1731 DQ 00fc19dc68b8cd5b5h,0240ca1cc77ac9c65h 1732 DQ 00fc19dc68b8cd5b5h,0240ca1cc77ac9c65h 1733 DQ 02de92c6f592b0275h,04a7484aa6ea6e483h 1734 DQ 02de92c6f592b0275h,04a7484aa6ea6e483h 1735 DQ 05cb0a9dcbd41fbd4h,076f988da831153b5h 1736 DQ 05cb0a9dcbd41fbd4h,076f988da831153b5h 1737 DQ 0983e5152ee66dfabh,0a831c66d2db43210h 1738 DQ 0983e5152ee66dfabh,0a831c66d2db43210h 1739 DQ 0b00327c898fb213fh,0bf597fc7beef0ee4h 1740 DQ 0b00327c898fb213fh,0bf597fc7beef0ee4h 1741 DQ 0c6e00bf33da88fc2h,0d5a79147930aa725h 1742 DQ 0c6e00bf33da88fc2h,0d5a79147930aa725h 1743 DQ 006ca6351e003826fh,0142929670a0e6e70h 1744 DQ 006ca6351e003826fh,0142929670a0e6e70h 1745 DQ 027b70a8546d22ffch,02e1b21385c26c926h 1746 DQ 027b70a8546d22ffch,02e1b21385c26c926h 1747 DQ 04d2c6dfc5ac42aedh,053380d139d95b3dfh 1748 DQ 04d2c6dfc5ac42aedh,053380d139d95b3dfh 1749 DQ 0650a73548baf63deh,0766a0abb3c77b2a8h 1750 DQ 0650a73548baf63deh,0766a0abb3c77b2a8h 1751 DQ 081c2c92e47edaee6h,092722c851482353bh 1752 DQ 081c2c92e47edaee6h,092722c851482353bh 1753 DQ 0a2bfe8a14cf10364h,0a81a664bbc423001h 1754 DQ 0a2bfe8a14cf10364h,0a81a664bbc423001h 1755 DQ 0c24b8b70d0f89791h,0c76c51a30654be30h 1756 DQ 0c24b8b70d0f89791h,0c76c51a30654be30h 1757 DQ 0d192e819d6ef5218h,0d69906245565a910h 1758 DQ 0d192e819d6ef5218h,0d69906245565a910h 1759 DQ 0f40e35855771202ah,0106aa07032bbd1b8h 1760 DQ 0f40e35855771202ah,0106aa07032bbd1b8h 1761 DQ 019a4c116b8d2d0c8h,01e376c085141ab53h 1762 DQ 019a4c116b8d2d0c8h,01e376c085141ab53h 1763 DQ 02748774cdf8eeb99h,034b0bcb5e19b48a8h 1764 DQ 02748774cdf8eeb99h,034b0bcb5e19b48a8h 1765 DQ 0391c0cb3c5c95a63h,04ed8aa4ae3418acbh 1766 DQ 0391c0cb3c5c95a63h,04ed8aa4ae3418acbh 1767 DQ 05b9cca4f7763e373h,0682e6ff3d6b2b8a3h 1768 DQ 05b9cca4f7763e373h,0682e6ff3d6b2b8a3h 1769 DQ 0748f82ee5defb2fch,078a5636f43172f60h 1770 DQ 0748f82ee5defb2fch,078a5636f43172f60h 1771 DQ 084c87814a1f0ab72h,08cc702081a6439ech 1772 DQ 084c87814a1f0ab72h,08cc702081a6439ech 1773 DQ 090befffa23631e28h,0a4506cebde82bde9h 1774 DQ 090befffa23631e28h,0a4506cebde82bde9h 1775 DQ 0bef9a3f7b2c67915h,0c67178f2e372532bh 1776 DQ 0bef9a3f7b2c67915h,0c67178f2e372532bh 1777 DQ 0ca273eceea26619ch,0d186b8c721c0c207h 1778 DQ 0ca273eceea26619ch,0d186b8c721c0c207h 1779 DQ 0eada7dd6cde0eb1eh,0f57d4f7fee6ed178h 1780 DQ 0eada7dd6cde0eb1eh,0f57d4f7fee6ed178h 1781 DQ 006f067aa72176fbah,00a637dc5a2c898a6h 1782 DQ 006f067aa72176fbah,00a637dc5a2c898a6h 1783 DQ 0113f9804bef90daeh,01b710b35131c471bh 1784 DQ 0113f9804bef90daeh,01b710b35131c471bh 1785 DQ 028db77f523047d84h,032caab7b40c72493h 1786 DQ 028db77f523047d84h,032caab7b40c72493h 1787 DQ 03c9ebe0a15c9bebch,0431d67c49c100d4ch 1788 DQ 03c9ebe0a15c9bebch,0431d67c49c100d4ch 1789 DQ 04cc5d4becb3e42b6h,0597f299cfc657e2ah 1790 DQ 04cc5d4becb3e42b6h,0597f299cfc657e2ah 1791 DQ 05fcb6fab3ad6faech,06c44198c4a475817h 1792 DQ 05fcb6fab3ad6faech,06c44198c4a475817h 1793 1794 DQ 00001020304050607h,008090a0b0c0d0e0fh 1795 DQ 00001020304050607h,008090a0b0c0d0e0fh 1796 DB 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97 1797 DB 110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54 1798 DB 52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 1799 DB 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 1800 DB 111,114,103,62,0 1801 EXTERN __imp_RtlVirtualUnwind:NEAR 1802 1803 ALIGN 16 1804 se_handler PROC PRIVATE 1805 push rsi 1806 push rdi 1807 push rbx 1808 push rbp 1809 push r12 1810 push r13 1811 push r14 1812 push r15 1813 pushfq 1814 sub rsp,64 1815 1816 mov rax,QWORD PTR[120+r8] 1817 mov rbx,QWORD PTR[248+r8] 1818 1819 mov rsi,QWORD PTR[8+r9] 1820 mov r11,QWORD PTR[56+r9] 1821 1822 mov r10d,DWORD PTR[r11] 1823 lea r10,QWORD PTR[r10*1+rsi] 1824 cmp rbx,r10 1825 jb $L$in_prologue 1826 1827 mov rax,QWORD PTR[152+r8] 1828 1829 mov r10d,DWORD PTR[4+r11] 1830 lea r10,QWORD PTR[r10*1+rsi] 1831 cmp rbx,r10 1832 jae $L$in_prologue 1833 mov rsi,rax 1834 mov rax,QWORD PTR[((128+24))+rax] 1835 lea rax,QWORD PTR[48+rax] 1836 1837 mov rbx,QWORD PTR[((-8))+rax] 1838 mov rbp,QWORD PTR[((-16))+rax] 1839 mov r12,QWORD PTR[((-24))+rax] 1840 mov r13,QWORD PTR[((-32))+rax] 1841 mov r14,QWORD PTR[((-40))+rax] 1842 mov r15,QWORD PTR[((-48))+rax] 1843 mov QWORD PTR[144+r8],rbx 1844 mov QWORD PTR[160+r8],rbp 1845 mov QWORD PTR[216+r8],r12 1846 mov QWORD PTR[224+r8],r13 1847 mov QWORD PTR[232+r8],r14 1848 mov QWORD PTR[240+r8],r15 1849 1850 lea r10,QWORD PTR[$L$epilogue] 1851 cmp rbx,r10 1852 jb $L$in_prologue 1853 1854 lea rsi,QWORD PTR[((128+32))+rsi] 1855 lea rdi,QWORD PTR[512+r8] 1856 mov ecx,12 1857 DD 0a548f3fch 1858 1859 $L$in_prologue:: 1860 mov rdi,QWORD PTR[8+rax] 1861 mov rsi,QWORD PTR[16+rax] 1862 mov QWORD PTR[152+r8],rax 1863 mov QWORD PTR[168+r8],rsi 1864 mov QWORD PTR[176+r8],rdi 1865 1866 mov rdi,QWORD PTR[40+r9] 1867 mov rsi,r8 1868 mov ecx,154 1869 DD 0a548f3fch 1870 1871 mov rsi,r9 1872 xor rcx,rcx 1873 mov rdx,QWORD PTR[8+rsi] 1874 mov r8,QWORD PTR[rsi] 1875 mov r9,QWORD PTR[16+rsi] 1876 mov r10,QWORD PTR[40+rsi] 1877 lea r11,QWORD PTR[56+rsi] 1878 lea r12,QWORD PTR[24+rsi] 1879 mov QWORD PTR[32+rsp],r10 1880 mov QWORD PTR[40+rsp],r11 1881 mov QWORD PTR[48+rsp],r12 1882 mov QWORD PTR[56+rsp],rcx 1883 call QWORD PTR[__imp_RtlVirtualUnwind] 1884 1885 mov eax,1 1886 add rsp,64 1887 popfq 1888 pop r15 1889 pop r14 1890 pop r13 1891 pop r12 1892 pop rbp 1893 pop rbx 1894 pop rdi 1895 pop rsi 1896 DB 0F3h,0C3h ;repret 1897 se_handler ENDP 1898 .text$ ENDS 1899 .pdata SEGMENT READONLY ALIGN(4) 1900 ALIGN 4 1901 DD imagerel $L$SEH_begin_sha512_block_data_order 1902 DD imagerel $L$SEH_end_sha512_block_data_order 1903 DD imagerel $L$SEH_info_sha512_block_data_order 1904 .pdata ENDS 1905 .xdata SEGMENT READONLY ALIGN(8) 1906 ALIGN 8 1907 $L$SEH_info_sha512_block_data_order:: 1908 DB 9,0,0,0 1909 DD imagerel se_handler 1910 DD imagerel $L$prologue,imagerel $L$epilogue 1911 1912 .xdata ENDS 1913 END 1914