1default rel 2%define XMMWORD 3%define YMMWORD 4%define ZMMWORD 5section .text code align=64 6 7 8EXTERN OPENSSL_ia32cap_P 9global sha256_block_data_order 10 11ALIGN 16 12sha256_block_data_order: 13 mov QWORD[8+rsp],rdi ;WIN64 prologue 14 mov QWORD[16+rsp],rsi 15 mov rax,rsp 16$L$SEH_begin_sha256_block_data_order: 17 mov rdi,rcx 18 mov rsi,rdx 19 mov rdx,r8 20 21 22 lea r11,[OPENSSL_ia32cap_P] 23 mov r9d,DWORD[r11] 24 mov r10d,DWORD[4+r11] 25 mov r11d,DWORD[8+r11] 26 and r9d,1073741824 27 and r10d,268435968 28 or r10d,r9d 29 cmp r10d,1342177792 30 je NEAR $L$avx_shortcut 31 test r10d,512 32 jnz NEAR $L$ssse3_shortcut 33 mov rax,rsp 34 push rbx 35 push rbp 36 push r12 37 push r13 38 push r14 39 push r15 40 shl rdx,4 41 sub rsp,16*4+4*8 42 lea rdx,[rdx*4+rsi] 43 and rsp,-64 44 mov QWORD[((64+0))+rsp],rdi 45 mov QWORD[((64+8))+rsp],rsi 46 mov QWORD[((64+16))+rsp],rdx 47 mov QWORD[((64+24))+rsp],rax 48$L$prologue: 49 50 mov eax,DWORD[rdi] 51 mov ebx,DWORD[4+rdi] 52 mov ecx,DWORD[8+rdi] 53 mov edx,DWORD[12+rdi] 54 mov r8d,DWORD[16+rdi] 55 mov r9d,DWORD[20+rdi] 56 mov r10d,DWORD[24+rdi] 57 mov r11d,DWORD[28+rdi] 58 59 jmp NEAR $L$loop 60 61ALIGN 16 62$L$loop: 63 mov edi,ebx 64 lea rbp,[K256] 65 xor edi,ecx 66 mov r12d,DWORD[rsi] 67 mov r13d,r8d 68 mov r14d,eax 69 bswap r12d 70 ror r13d,14 71 mov r15d,r9d 72 73 xor r13d,r8d 74 ror r14d,9 75 xor r15d,r10d 76 77 mov DWORD[rsp],r12d 78 xor r14d,eax 79 and r15d,r8d 80 81 ror r13d,5 82 add r12d,r11d 83 xor r15d,r10d 84 85 ror r14d,11 86 xor r13d,r8d 87 add r12d,r15d 88 89 mov r15d,eax 90 add r12d,DWORD[rbp] 91 xor r14d,eax 92 93 xor r15d,ebx 94 ror r13d,6 95 mov r11d,ebx 96 97 and edi,r15d 98 ror r14d,2 99 add r12d,r13d 100 101 xor r11d,edi 102 add edx,r12d 103 add r11d,r12d 104 105 lea rbp,[4+rbp] 106 add r11d,r14d 107 mov r12d,DWORD[4+rsi] 108 mov r13d,edx 109 mov r14d,r11d 110 bswap r12d 111 ror r13d,14 112 mov edi,r8d 113 114 xor r13d,edx 115 ror r14d,9 116 xor edi,r9d 117 118 mov DWORD[4+rsp],r12d 119 xor r14d,r11d 120 and edi,edx 121 122 ror r13d,5 123 add r12d,r10d 124 xor edi,r9d 125 126 ror r14d,11 127 xor r13d,edx 128 add r12d,edi 129 130 mov edi,r11d 131 add r12d,DWORD[rbp] 132 xor r14d,r11d 133 134 xor edi,eax 135 ror r13d,6 136 mov r10d,eax 137 138 and r15d,edi 139 ror r14d,2 140 add r12d,r13d 141 142 xor r10d,r15d 143 add ecx,r12d 144 add r10d,r12d 145 146 lea rbp,[4+rbp] 147 add r10d,r14d 148 mov r12d,DWORD[8+rsi] 149 mov r13d,ecx 150 mov r14d,r10d 151 bswap r12d 152 ror r13d,14 153 mov r15d,edx 154 155 xor r13d,ecx 156 ror r14d,9 157 xor r15d,r8d 158 159 mov DWORD[8+rsp],r12d 160 xor r14d,r10d 161 and r15d,ecx 162 163 ror r13d,5 164 add r12d,r9d 165 xor r15d,r8d 166 167 ror r14d,11 168 xor r13d,ecx 169 add r12d,r15d 170 171 mov r15d,r10d 172 add r12d,DWORD[rbp] 173 xor r14d,r10d 174 175 xor r15d,r11d 176 ror r13d,6 177 mov r9d,r11d 178 179 and edi,r15d 180 ror r14d,2 181 add r12d,r13d 182 183 xor r9d,edi 184 add ebx,r12d 185 add r9d,r12d 186 187 lea rbp,[4+rbp] 188 add r9d,r14d 189 mov r12d,DWORD[12+rsi] 190 mov r13d,ebx 191 mov r14d,r9d 192 bswap r12d 193 ror r13d,14 194 mov edi,ecx 195 196 xor r13d,ebx 197 ror r14d,9 198 xor edi,edx 199 200 mov DWORD[12+rsp],r12d 201 xor r14d,r9d 202 and edi,ebx 203 204 ror r13d,5 205 add r12d,r8d 206 xor edi,edx 207 208 ror r14d,11 209 xor r13d,ebx 210 add r12d,edi 211 212 mov edi,r9d 213 add r12d,DWORD[rbp] 214 xor r14d,r9d 215 216 xor edi,r10d 217 ror r13d,6 218 mov r8d,r10d 219 220 and r15d,edi 221 ror r14d,2 222 add r12d,r13d 223 224 xor r8d,r15d 225 add eax,r12d 226 add r8d,r12d 227 228 lea rbp,[20+rbp] 229 add r8d,r14d 230 mov r12d,DWORD[16+rsi] 231 mov r13d,eax 232 mov r14d,r8d 233 bswap r12d 234 ror r13d,14 235 mov r15d,ebx 236 237 xor r13d,eax 238 ror r14d,9 239 xor r15d,ecx 240 241 mov DWORD[16+rsp],r12d 242 xor r14d,r8d 243 and r15d,eax 244 245 ror r13d,5 246 add r12d,edx 247 xor r15d,ecx 248 249 ror r14d,11 250 xor r13d,eax 251 add r12d,r15d 252 253 mov r15d,r8d 254 add r12d,DWORD[rbp] 255 xor r14d,r8d 256 257 xor r15d,r9d 258 ror r13d,6 259 mov edx,r9d 260 261 and edi,r15d 262 ror r14d,2 263 add r12d,r13d 264 265 xor edx,edi 266 add r11d,r12d 267 add edx,r12d 268 269 lea rbp,[4+rbp] 270 add edx,r14d 271 mov r12d,DWORD[20+rsi] 272 mov r13d,r11d 273 mov r14d,edx 274 bswap r12d 275 ror r13d,14 276 mov edi,eax 277 278 xor r13d,r11d 279 ror r14d,9 280 xor edi,ebx 281 282 mov DWORD[20+rsp],r12d 283 xor r14d,edx 284 and edi,r11d 285 286 ror r13d,5 287 add r12d,ecx 288 xor edi,ebx 289 290 ror r14d,11 291 xor r13d,r11d 292 add r12d,edi 293 294 mov edi,edx 295 add r12d,DWORD[rbp] 296 xor r14d,edx 297 298 xor edi,r8d 299 ror r13d,6 300 mov ecx,r8d 301 302 and r15d,edi 303 ror r14d,2 304 add r12d,r13d 305 306 xor ecx,r15d 307 add r10d,r12d 308 add ecx,r12d 309 310 lea rbp,[4+rbp] 311 add ecx,r14d 312 mov r12d,DWORD[24+rsi] 313 mov r13d,r10d 314 mov r14d,ecx 315 bswap r12d 316 ror r13d,14 317 mov r15d,r11d 318 319 xor r13d,r10d 320 ror r14d,9 321 xor r15d,eax 322 323 mov DWORD[24+rsp],r12d 324 xor r14d,ecx 325 and r15d,r10d 326 327 ror r13d,5 328 add r12d,ebx 329 xor r15d,eax 330 331 ror r14d,11 332 xor r13d,r10d 333 add r12d,r15d 334 335 mov r15d,ecx 336 add r12d,DWORD[rbp] 337 xor r14d,ecx 338 339 xor r15d,edx 340 ror r13d,6 341 mov ebx,edx 342 343 and edi,r15d 344 ror r14d,2 345 add r12d,r13d 346 347 xor ebx,edi 348 add r9d,r12d 349 add ebx,r12d 350 351 lea rbp,[4+rbp] 352 add ebx,r14d 353 mov r12d,DWORD[28+rsi] 354 mov r13d,r9d 355 mov r14d,ebx 356 bswap r12d 357 ror r13d,14 358 mov edi,r10d 359 360 xor r13d,r9d 361 ror r14d,9 362 xor edi,r11d 363 364 mov DWORD[28+rsp],r12d 365 xor r14d,ebx 366 and edi,r9d 367 368 ror r13d,5 369 add r12d,eax 370 xor edi,r11d 371 372 ror r14d,11 373 xor r13d,r9d 374 add r12d,edi 375 376 mov edi,ebx 377 add r12d,DWORD[rbp] 378 xor r14d,ebx 379 380 xor edi,ecx 381 ror r13d,6 382 mov eax,ecx 383 384 and r15d,edi 385 ror r14d,2 386 add r12d,r13d 387 388 xor eax,r15d 389 add r8d,r12d 390 add eax,r12d 391 392 lea rbp,[20+rbp] 393 add eax,r14d 394 mov r12d,DWORD[32+rsi] 395 mov r13d,r8d 396 mov r14d,eax 397 bswap r12d 398 ror r13d,14 399 mov r15d,r9d 400 401 xor r13d,r8d 402 ror r14d,9 403 xor r15d,r10d 404 405 mov DWORD[32+rsp],r12d 406 xor r14d,eax 407 and r15d,r8d 408 409 ror r13d,5 410 add r12d,r11d 411 xor r15d,r10d 412 413 ror r14d,11 414 xor r13d,r8d 415 add r12d,r15d 416 417 mov r15d,eax 418 add r12d,DWORD[rbp] 419 xor r14d,eax 420 421 xor r15d,ebx 422 ror r13d,6 423 mov r11d,ebx 424 425 and edi,r15d 426 ror r14d,2 427 add r12d,r13d 428 429 xor r11d,edi 430 add edx,r12d 431 add r11d,r12d 432 433 lea rbp,[4+rbp] 434 add r11d,r14d 435 mov r12d,DWORD[36+rsi] 436 mov r13d,edx 437 mov r14d,r11d 438 bswap r12d 439 ror r13d,14 440 mov edi,r8d 441 442 xor r13d,edx 443 ror r14d,9 444 xor edi,r9d 445 446 mov DWORD[36+rsp],r12d 447 xor r14d,r11d 448 and edi,edx 449 450 ror r13d,5 451 add r12d,r10d 452 xor edi,r9d 453 454 ror r14d,11 455 xor r13d,edx 456 add r12d,edi 457 458 mov edi,r11d 459 add r12d,DWORD[rbp] 460 xor r14d,r11d 461 462 xor edi,eax 463 ror r13d,6 464 mov r10d,eax 465 466 and r15d,edi 467 ror r14d,2 468 add r12d,r13d 469 470 xor r10d,r15d 471 add ecx,r12d 472 add r10d,r12d 473 474 lea rbp,[4+rbp] 475 add r10d,r14d 476 mov r12d,DWORD[40+rsi] 477 mov r13d,ecx 478 mov r14d,r10d 479 bswap r12d 480 ror r13d,14 481 mov r15d,edx 482 483 xor r13d,ecx 484 ror r14d,9 485 xor r15d,r8d 486 487 mov DWORD[40+rsp],r12d 488 xor r14d,r10d 489 and r15d,ecx 490 491 ror r13d,5 492 add r12d,r9d 493 xor r15d,r8d 494 495 ror r14d,11 496 xor r13d,ecx 497 add r12d,r15d 498 499 mov r15d,r10d 500 add r12d,DWORD[rbp] 501 xor r14d,r10d 502 503 xor r15d,r11d 504 ror r13d,6 505 mov r9d,r11d 506 507 and edi,r15d 508 ror r14d,2 509 add r12d,r13d 510 511 xor r9d,edi 512 add ebx,r12d 513 add r9d,r12d 514 515 lea rbp,[4+rbp] 516 add r9d,r14d 517 mov r12d,DWORD[44+rsi] 518 mov r13d,ebx 519 mov r14d,r9d 520 bswap r12d 521 ror r13d,14 522 mov edi,ecx 523 524 xor r13d,ebx 525 ror r14d,9 526 xor edi,edx 527 528 mov DWORD[44+rsp],r12d 529 xor r14d,r9d 530 and edi,ebx 531 532 ror r13d,5 533 add r12d,r8d 534 xor edi,edx 535 536 ror r14d,11 537 xor r13d,ebx 538 add r12d,edi 539 540 mov edi,r9d 541 add r12d,DWORD[rbp] 542 xor r14d,r9d 543 544 xor edi,r10d 545 ror r13d,6 546 mov r8d,r10d 547 548 and r15d,edi 549 ror r14d,2 550 add r12d,r13d 551 552 xor r8d,r15d 553 add eax,r12d 554 add r8d,r12d 555 556 lea rbp,[20+rbp] 557 add r8d,r14d 558 mov r12d,DWORD[48+rsi] 559 mov r13d,eax 560 mov r14d,r8d 561 bswap r12d 562 ror r13d,14 563 mov r15d,ebx 564 565 xor r13d,eax 566 ror r14d,9 567 xor r15d,ecx 568 569 mov DWORD[48+rsp],r12d 570 xor r14d,r8d 571 and r15d,eax 572 573 ror r13d,5 574 add r12d,edx 575 xor r15d,ecx 576 577 ror r14d,11 578 xor r13d,eax 579 add r12d,r15d 580 581 mov r15d,r8d 582 add r12d,DWORD[rbp] 583 xor r14d,r8d 584 585 xor r15d,r9d 586 ror r13d,6 587 mov edx,r9d 588 589 and edi,r15d 590 ror r14d,2 591 add r12d,r13d 592 593 xor edx,edi 594 add r11d,r12d 595 add edx,r12d 596 597 lea rbp,[4+rbp] 598 add edx,r14d 599 mov r12d,DWORD[52+rsi] 600 mov r13d,r11d 601 mov r14d,edx 602 bswap r12d 603 ror r13d,14 604 mov edi,eax 605 606 xor r13d,r11d 607 ror r14d,9 608 xor edi,ebx 609 610 mov DWORD[52+rsp],r12d 611 xor r14d,edx 612 and edi,r11d 613 614 ror r13d,5 615 add r12d,ecx 616 xor edi,ebx 617 618 ror r14d,11 619 xor r13d,r11d 620 add r12d,edi 621 622 mov edi,edx 623 add r12d,DWORD[rbp] 624 xor r14d,edx 625 626 xor edi,r8d 627 ror r13d,6 628 mov ecx,r8d 629 630 and r15d,edi 631 ror r14d,2 632 add r12d,r13d 633 634 xor ecx,r15d 635 add r10d,r12d 636 add ecx,r12d 637 638 lea rbp,[4+rbp] 639 add ecx,r14d 640 mov r12d,DWORD[56+rsi] 641 mov r13d,r10d 642 mov r14d,ecx 643 bswap r12d 644 ror r13d,14 645 mov r15d,r11d 646 647 xor r13d,r10d 648 ror r14d,9 649 xor r15d,eax 650 651 mov DWORD[56+rsp],r12d 652 xor r14d,ecx 653 and r15d,r10d 654 655 ror r13d,5 656 add r12d,ebx 657 xor r15d,eax 658 659 ror r14d,11 660 xor r13d,r10d 661 add r12d,r15d 662 663 mov r15d,ecx 664 add r12d,DWORD[rbp] 665 xor r14d,ecx 666 667 xor r15d,edx 668 ror r13d,6 669 mov ebx,edx 670 671 and edi,r15d 672 ror r14d,2 673 add r12d,r13d 674 675 xor ebx,edi 676 add r9d,r12d 677 add ebx,r12d 678 679 lea rbp,[4+rbp] 680 add ebx,r14d 681 mov r12d,DWORD[60+rsi] 682 mov r13d,r9d 683 mov r14d,ebx 684 bswap r12d 685 ror r13d,14 686 mov edi,r10d 687 688 xor r13d,r9d 689 ror r14d,9 690 xor edi,r11d 691 692 mov DWORD[60+rsp],r12d 693 xor r14d,ebx 694 and edi,r9d 695 696 ror r13d,5 697 add r12d,eax 698 xor edi,r11d 699 700 ror r14d,11 701 xor r13d,r9d 702 add r12d,edi 703 704 mov edi,ebx 705 add r12d,DWORD[rbp] 706 xor r14d,ebx 707 708 xor edi,ecx 709 ror r13d,6 710 mov eax,ecx 711 712 and r15d,edi 713 ror r14d,2 714 add r12d,r13d 715 716 xor eax,r15d 717 add r8d,r12d 718 add eax,r12d 719 720 lea rbp,[20+rbp] 721 jmp NEAR $L$rounds_16_xx 722ALIGN 16 723$L$rounds_16_xx: 724 mov r13d,DWORD[4+rsp] 725 mov r15d,DWORD[56+rsp] 726 727 mov r12d,r13d 728 ror r13d,11 729 add eax,r14d 730 mov r14d,r15d 731 ror r15d,2 732 733 xor r13d,r12d 734 shr r12d,3 735 ror r13d,7 736 xor r15d,r14d 737 shr r14d,10 738 739 ror r15d,17 740 xor r12d,r13d 741 xor r15d,r14d 742 add r12d,DWORD[36+rsp] 743 744 add r12d,DWORD[rsp] 745 mov r13d,r8d 746 add r12d,r15d 747 mov r14d,eax 748 ror r13d,14 749 mov r15d,r9d 750 751 xor r13d,r8d 752 ror r14d,9 753 xor r15d,r10d 754 755 mov DWORD[rsp],r12d 756 xor r14d,eax 757 and r15d,r8d 758 759 ror r13d,5 760 add r12d,r11d 761 xor r15d,r10d 762 763 ror r14d,11 764 xor r13d,r8d 765 add r12d,r15d 766 767 mov r15d,eax 768 add r12d,DWORD[rbp] 769 xor r14d,eax 770 771 xor r15d,ebx 772 ror r13d,6 773 mov r11d,ebx 774 775 and edi,r15d 776 ror r14d,2 777 add r12d,r13d 778 779 xor r11d,edi 780 add edx,r12d 781 add r11d,r12d 782 783 lea rbp,[4+rbp] 784 mov r13d,DWORD[8+rsp] 785 mov edi,DWORD[60+rsp] 786 787 mov r12d,r13d 788 ror r13d,11 789 add r11d,r14d 790 mov r14d,edi 791 ror edi,2 792 793 xor r13d,r12d 794 shr r12d,3 795 ror r13d,7 796 xor edi,r14d 797 shr r14d,10 798 799 ror edi,17 800 xor r12d,r13d 801 xor edi,r14d 802 add r12d,DWORD[40+rsp] 803 804 add r12d,DWORD[4+rsp] 805 mov r13d,edx 806 add r12d,edi 807 mov r14d,r11d 808 ror r13d,14 809 mov edi,r8d 810 811 xor r13d,edx 812 ror r14d,9 813 xor edi,r9d 814 815 mov DWORD[4+rsp],r12d 816 xor r14d,r11d 817 and edi,edx 818 819 ror r13d,5 820 add r12d,r10d 821 xor edi,r9d 822 823 ror r14d,11 824 xor r13d,edx 825 add r12d,edi 826 827 mov edi,r11d 828 add r12d,DWORD[rbp] 829 xor r14d,r11d 830 831 xor edi,eax 832 ror r13d,6 833 mov r10d,eax 834 835 and r15d,edi 836 ror r14d,2 837 add r12d,r13d 838 839 xor r10d,r15d 840 add ecx,r12d 841 add r10d,r12d 842 843 lea rbp,[4+rbp] 844 mov r13d,DWORD[12+rsp] 845 mov r15d,DWORD[rsp] 846 847 mov r12d,r13d 848 ror r13d,11 849 add r10d,r14d 850 mov r14d,r15d 851 ror r15d,2 852 853 xor r13d,r12d 854 shr r12d,3 855 ror r13d,7 856 xor r15d,r14d 857 shr r14d,10 858 859 ror r15d,17 860 xor r12d,r13d 861 xor r15d,r14d 862 add r12d,DWORD[44+rsp] 863 864 add r12d,DWORD[8+rsp] 865 mov r13d,ecx 866 add r12d,r15d 867 mov r14d,r10d 868 ror r13d,14 869 mov r15d,edx 870 871 xor r13d,ecx 872 ror r14d,9 873 xor r15d,r8d 874 875 mov DWORD[8+rsp],r12d 876 xor r14d,r10d 877 and r15d,ecx 878 879 ror r13d,5 880 add r12d,r9d 881 xor r15d,r8d 882 883 ror r14d,11 884 xor r13d,ecx 885 add r12d,r15d 886 887 mov r15d,r10d 888 add r12d,DWORD[rbp] 889 xor r14d,r10d 890 891 xor r15d,r11d 892 ror r13d,6 893 mov r9d,r11d 894 895 and edi,r15d 896 ror r14d,2 897 add r12d,r13d 898 899 xor r9d,edi 900 add ebx,r12d 901 add r9d,r12d 902 903 lea rbp,[4+rbp] 904 mov r13d,DWORD[16+rsp] 905 mov edi,DWORD[4+rsp] 906 907 mov r12d,r13d 908 ror r13d,11 909 add r9d,r14d 910 mov r14d,edi 911 ror edi,2 912 913 xor r13d,r12d 914 shr r12d,3 915 ror r13d,7 916 xor edi,r14d 917 shr r14d,10 918 919 ror edi,17 920 xor r12d,r13d 921 xor edi,r14d 922 add r12d,DWORD[48+rsp] 923 924 add r12d,DWORD[12+rsp] 925 mov r13d,ebx 926 add r12d,edi 927 mov r14d,r9d 928 ror r13d,14 929 mov edi,ecx 930 931 xor r13d,ebx 932 ror r14d,9 933 xor edi,edx 934 935 mov DWORD[12+rsp],r12d 936 xor r14d,r9d 937 and edi,ebx 938 939 ror r13d,5 940 add r12d,r8d 941 xor edi,edx 942 943 ror r14d,11 944 xor r13d,ebx 945 add r12d,edi 946 947 mov edi,r9d 948 add r12d,DWORD[rbp] 949 xor r14d,r9d 950 951 xor edi,r10d 952 ror r13d,6 953 mov r8d,r10d 954 955 and r15d,edi 956 ror r14d,2 957 add r12d,r13d 958 959 xor r8d,r15d 960 add eax,r12d 961 add r8d,r12d 962 963 lea rbp,[20+rbp] 964 mov r13d,DWORD[20+rsp] 965 mov r15d,DWORD[8+rsp] 966 967 mov r12d,r13d 968 ror r13d,11 969 add r8d,r14d 970 mov r14d,r15d 971 ror r15d,2 972 973 xor r13d,r12d 974 shr r12d,3 975 ror r13d,7 976 xor r15d,r14d 977 shr r14d,10 978 979 ror r15d,17 980 xor r12d,r13d 981 xor r15d,r14d 982 add r12d,DWORD[52+rsp] 983 984 add r12d,DWORD[16+rsp] 985 mov r13d,eax 986 add r12d,r15d 987 mov r14d,r8d 988 ror r13d,14 989 mov r15d,ebx 990 991 xor r13d,eax 992 ror r14d,9 993 xor r15d,ecx 994 995 mov DWORD[16+rsp],r12d 996 xor r14d,r8d 997 and r15d,eax 998 999 ror r13d,5 1000 add r12d,edx 1001 xor r15d,ecx 1002 1003 ror r14d,11 1004 xor r13d,eax 1005 add r12d,r15d 1006 1007 mov r15d,r8d 1008 add r12d,DWORD[rbp] 1009 xor r14d,r8d 1010 1011 xor r15d,r9d 1012 ror r13d,6 1013 mov edx,r9d 1014 1015 and edi,r15d 1016 ror r14d,2 1017 add r12d,r13d 1018 1019 xor edx,edi 1020 add r11d,r12d 1021 add edx,r12d 1022 1023 lea rbp,[4+rbp] 1024 mov r13d,DWORD[24+rsp] 1025 mov edi,DWORD[12+rsp] 1026 1027 mov r12d,r13d 1028 ror r13d,11 1029 add edx,r14d 1030 mov r14d,edi 1031 ror edi,2 1032 1033 xor r13d,r12d 1034 shr r12d,3 1035 ror r13d,7 1036 xor edi,r14d 1037 shr r14d,10 1038 1039 ror edi,17 1040 xor r12d,r13d 1041 xor edi,r14d 1042 add r12d,DWORD[56+rsp] 1043 1044 add r12d,DWORD[20+rsp] 1045 mov r13d,r11d 1046 add r12d,edi 1047 mov r14d,edx 1048 ror r13d,14 1049 mov edi,eax 1050 1051 xor r13d,r11d 1052 ror r14d,9 1053 xor edi,ebx 1054 1055 mov DWORD[20+rsp],r12d 1056 xor r14d,edx 1057 and edi,r11d 1058 1059 ror r13d,5 1060 add r12d,ecx 1061 xor edi,ebx 1062 1063 ror r14d,11 1064 xor r13d,r11d 1065 add r12d,edi 1066 1067 mov edi,edx 1068 add r12d,DWORD[rbp] 1069 xor r14d,edx 1070 1071 xor edi,r8d 1072 ror r13d,6 1073 mov ecx,r8d 1074 1075 and r15d,edi 1076 ror r14d,2 1077 add r12d,r13d 1078 1079 xor ecx,r15d 1080 add r10d,r12d 1081 add ecx,r12d 1082 1083 lea rbp,[4+rbp] 1084 mov r13d,DWORD[28+rsp] 1085 mov r15d,DWORD[16+rsp] 1086 1087 mov r12d,r13d 1088 ror r13d,11 1089 add ecx,r14d 1090 mov r14d,r15d 1091 ror r15d,2 1092 1093 xor r13d,r12d 1094 shr r12d,3 1095 ror r13d,7 1096 xor r15d,r14d 1097 shr r14d,10 1098 1099 ror r15d,17 1100 xor r12d,r13d 1101 xor r15d,r14d 1102 add r12d,DWORD[60+rsp] 1103 1104 add r12d,DWORD[24+rsp] 1105 mov r13d,r10d 1106 add r12d,r15d 1107 mov r14d,ecx 1108 ror r13d,14 1109 mov r15d,r11d 1110 1111 xor r13d,r10d 1112 ror r14d,9 1113 xor r15d,eax 1114 1115 mov DWORD[24+rsp],r12d 1116 xor r14d,ecx 1117 and r15d,r10d 1118 1119 ror r13d,5 1120 add r12d,ebx 1121 xor r15d,eax 1122 1123 ror r14d,11 1124 xor r13d,r10d 1125 add r12d,r15d 1126 1127 mov r15d,ecx 1128 add r12d,DWORD[rbp] 1129 xor r14d,ecx 1130 1131 xor r15d,edx 1132 ror r13d,6 1133 mov ebx,edx 1134 1135 and edi,r15d 1136 ror r14d,2 1137 add r12d,r13d 1138 1139 xor ebx,edi 1140 add r9d,r12d 1141 add ebx,r12d 1142 1143 lea rbp,[4+rbp] 1144 mov r13d,DWORD[32+rsp] 1145 mov edi,DWORD[20+rsp] 1146 1147 mov r12d,r13d 1148 ror r13d,11 1149 add ebx,r14d 1150 mov r14d,edi 1151 ror edi,2 1152 1153 xor r13d,r12d 1154 shr r12d,3 1155 ror r13d,7 1156 xor edi,r14d 1157 shr r14d,10 1158 1159 ror edi,17 1160 xor r12d,r13d 1161 xor edi,r14d 1162 add r12d,DWORD[rsp] 1163 1164 add r12d,DWORD[28+rsp] 1165 mov r13d,r9d 1166 add r12d,edi 1167 mov r14d,ebx 1168 ror r13d,14 1169 mov edi,r10d 1170 1171 xor r13d,r9d 1172 ror r14d,9 1173 xor edi,r11d 1174 1175 mov DWORD[28+rsp],r12d 1176 xor r14d,ebx 1177 and edi,r9d 1178 1179 ror r13d,5 1180 add r12d,eax 1181 xor edi,r11d 1182 1183 ror r14d,11 1184 xor r13d,r9d 1185 add r12d,edi 1186 1187 mov edi,ebx 1188 add r12d,DWORD[rbp] 1189 xor r14d,ebx 1190 1191 xor edi,ecx 1192 ror r13d,6 1193 mov eax,ecx 1194 1195 and r15d,edi 1196 ror r14d,2 1197 add r12d,r13d 1198 1199 xor eax,r15d 1200 add r8d,r12d 1201 add eax,r12d 1202 1203 lea rbp,[20+rbp] 1204 mov r13d,DWORD[36+rsp] 1205 mov r15d,DWORD[24+rsp] 1206 1207 mov r12d,r13d 1208 ror r13d,11 1209 add eax,r14d 1210 mov r14d,r15d 1211 ror r15d,2 1212 1213 xor r13d,r12d 1214 shr r12d,3 1215 ror r13d,7 1216 xor r15d,r14d 1217 shr r14d,10 1218 1219 ror r15d,17 1220 xor r12d,r13d 1221 xor r15d,r14d 1222 add r12d,DWORD[4+rsp] 1223 1224 add r12d,DWORD[32+rsp] 1225 mov r13d,r8d 1226 add r12d,r15d 1227 mov r14d,eax 1228 ror r13d,14 1229 mov r15d,r9d 1230 1231 xor r13d,r8d 1232 ror r14d,9 1233 xor r15d,r10d 1234 1235 mov DWORD[32+rsp],r12d 1236 xor r14d,eax 1237 and r15d,r8d 1238 1239 ror r13d,5 1240 add r12d,r11d 1241 xor r15d,r10d 1242 1243 ror r14d,11 1244 xor r13d,r8d 1245 add r12d,r15d 1246 1247 mov r15d,eax 1248 add r12d,DWORD[rbp] 1249 xor r14d,eax 1250 1251 xor r15d,ebx 1252 ror r13d,6 1253 mov r11d,ebx 1254 1255 and edi,r15d 1256 ror r14d,2 1257 add r12d,r13d 1258 1259 xor r11d,edi 1260 add edx,r12d 1261 add r11d,r12d 1262 1263 lea rbp,[4+rbp] 1264 mov r13d,DWORD[40+rsp] 1265 mov edi,DWORD[28+rsp] 1266 1267 mov r12d,r13d 1268 ror r13d,11 1269 add r11d,r14d 1270 mov r14d,edi 1271 ror edi,2 1272 1273 xor r13d,r12d 1274 shr r12d,3 1275 ror r13d,7 1276 xor edi,r14d 1277 shr r14d,10 1278 1279 ror edi,17 1280 xor r12d,r13d 1281 xor edi,r14d 1282 add r12d,DWORD[8+rsp] 1283 1284 add r12d,DWORD[36+rsp] 1285 mov r13d,edx 1286 add r12d,edi 1287 mov r14d,r11d 1288 ror r13d,14 1289 mov edi,r8d 1290 1291 xor r13d,edx 1292 ror r14d,9 1293 xor edi,r9d 1294 1295 mov DWORD[36+rsp],r12d 1296 xor r14d,r11d 1297 and edi,edx 1298 1299 ror r13d,5 1300 add r12d,r10d 1301 xor edi,r9d 1302 1303 ror r14d,11 1304 xor r13d,edx 1305 add r12d,edi 1306 1307 mov edi,r11d 1308 add r12d,DWORD[rbp] 1309 xor r14d,r11d 1310 1311 xor edi,eax 1312 ror r13d,6 1313 mov r10d,eax 1314 1315 and r15d,edi 1316 ror r14d,2 1317 add r12d,r13d 1318 1319 xor r10d,r15d 1320 add ecx,r12d 1321 add r10d,r12d 1322 1323 lea rbp,[4+rbp] 1324 mov r13d,DWORD[44+rsp] 1325 mov r15d,DWORD[32+rsp] 1326 1327 mov r12d,r13d 1328 ror r13d,11 1329 add r10d,r14d 1330 mov r14d,r15d 1331 ror r15d,2 1332 1333 xor r13d,r12d 1334 shr r12d,3 1335 ror r13d,7 1336 xor r15d,r14d 1337 shr r14d,10 1338 1339 ror r15d,17 1340 xor r12d,r13d 1341 xor r15d,r14d 1342 add r12d,DWORD[12+rsp] 1343 1344 add r12d,DWORD[40+rsp] 1345 mov r13d,ecx 1346 add r12d,r15d 1347 mov r14d,r10d 1348 ror r13d,14 1349 mov r15d,edx 1350 1351 xor r13d,ecx 1352 ror r14d,9 1353 xor r15d,r8d 1354 1355 mov DWORD[40+rsp],r12d 1356 xor r14d,r10d 1357 and r15d,ecx 1358 1359 ror r13d,5 1360 add r12d,r9d 1361 xor r15d,r8d 1362 1363 ror r14d,11 1364 xor r13d,ecx 1365 add r12d,r15d 1366 1367 mov r15d,r10d 1368 add r12d,DWORD[rbp] 1369 xor r14d,r10d 1370 1371 xor r15d,r11d 1372 ror r13d,6 1373 mov r9d,r11d 1374 1375 and edi,r15d 1376 ror r14d,2 1377 add r12d,r13d 1378 1379 xor r9d,edi 1380 add ebx,r12d 1381 add r9d,r12d 1382 1383 lea rbp,[4+rbp] 1384 mov r13d,DWORD[48+rsp] 1385 mov edi,DWORD[36+rsp] 1386 1387 mov r12d,r13d 1388 ror r13d,11 1389 add r9d,r14d 1390 mov r14d,edi 1391 ror edi,2 1392 1393 xor r13d,r12d 1394 shr r12d,3 1395 ror r13d,7 1396 xor edi,r14d 1397 shr r14d,10 1398 1399 ror edi,17 1400 xor r12d,r13d 1401 xor edi,r14d 1402 add r12d,DWORD[16+rsp] 1403 1404 add r12d,DWORD[44+rsp] 1405 mov r13d,ebx 1406 add r12d,edi 1407 mov r14d,r9d 1408 ror r13d,14 1409 mov edi,ecx 1410 1411 xor r13d,ebx 1412 ror r14d,9 1413 xor edi,edx 1414 1415 mov DWORD[44+rsp],r12d 1416 xor r14d,r9d 1417 and edi,ebx 1418 1419 ror r13d,5 1420 add r12d,r8d 1421 xor edi,edx 1422 1423 ror r14d,11 1424 xor r13d,ebx 1425 add r12d,edi 1426 1427 mov edi,r9d 1428 add r12d,DWORD[rbp] 1429 xor r14d,r9d 1430 1431 xor edi,r10d 1432 ror r13d,6 1433 mov r8d,r10d 1434 1435 and r15d,edi 1436 ror r14d,2 1437 add r12d,r13d 1438 1439 xor r8d,r15d 1440 add eax,r12d 1441 add r8d,r12d 1442 1443 lea rbp,[20+rbp] 1444 mov r13d,DWORD[52+rsp] 1445 mov r15d,DWORD[40+rsp] 1446 1447 mov r12d,r13d 1448 ror r13d,11 1449 add r8d,r14d 1450 mov r14d,r15d 1451 ror r15d,2 1452 1453 xor r13d,r12d 1454 shr r12d,3 1455 ror r13d,7 1456 xor r15d,r14d 1457 shr r14d,10 1458 1459 ror r15d,17 1460 xor r12d,r13d 1461 xor r15d,r14d 1462 add r12d,DWORD[20+rsp] 1463 1464 add r12d,DWORD[48+rsp] 1465 mov r13d,eax 1466 add r12d,r15d 1467 mov r14d,r8d 1468 ror r13d,14 1469 mov r15d,ebx 1470 1471 xor r13d,eax 1472 ror r14d,9 1473 xor r15d,ecx 1474 1475 mov DWORD[48+rsp],r12d 1476 xor r14d,r8d 1477 and r15d,eax 1478 1479 ror r13d,5 1480 add r12d,edx 1481 xor r15d,ecx 1482 1483 ror r14d,11 1484 xor r13d,eax 1485 add r12d,r15d 1486 1487 mov r15d,r8d 1488 add r12d,DWORD[rbp] 1489 xor r14d,r8d 1490 1491 xor r15d,r9d 1492 ror r13d,6 1493 mov edx,r9d 1494 1495 and edi,r15d 1496 ror r14d,2 1497 add r12d,r13d 1498 1499 xor edx,edi 1500 add r11d,r12d 1501 add edx,r12d 1502 1503 lea rbp,[4+rbp] 1504 mov r13d,DWORD[56+rsp] 1505 mov edi,DWORD[44+rsp] 1506 1507 mov r12d,r13d 1508 ror r13d,11 1509 add edx,r14d 1510 mov r14d,edi 1511 ror edi,2 1512 1513 xor r13d,r12d 1514 shr r12d,3 1515 ror r13d,7 1516 xor edi,r14d 1517 shr r14d,10 1518 1519 ror edi,17 1520 xor r12d,r13d 1521 xor edi,r14d 1522 add r12d,DWORD[24+rsp] 1523 1524 add r12d,DWORD[52+rsp] 1525 mov r13d,r11d 1526 add r12d,edi 1527 mov r14d,edx 1528 ror r13d,14 1529 mov edi,eax 1530 1531 xor r13d,r11d 1532 ror r14d,9 1533 xor edi,ebx 1534 1535 mov DWORD[52+rsp],r12d 1536 xor r14d,edx 1537 and edi,r11d 1538 1539 ror r13d,5 1540 add r12d,ecx 1541 xor edi,ebx 1542 1543 ror r14d,11 1544 xor r13d,r11d 1545 add r12d,edi 1546 1547 mov edi,edx 1548 add r12d,DWORD[rbp] 1549 xor r14d,edx 1550 1551 xor edi,r8d 1552 ror r13d,6 1553 mov ecx,r8d 1554 1555 and r15d,edi 1556 ror r14d,2 1557 add r12d,r13d 1558 1559 xor ecx,r15d 1560 add r10d,r12d 1561 add ecx,r12d 1562 1563 lea rbp,[4+rbp] 1564 mov r13d,DWORD[60+rsp] 1565 mov r15d,DWORD[48+rsp] 1566 1567 mov r12d,r13d 1568 ror r13d,11 1569 add ecx,r14d 1570 mov r14d,r15d 1571 ror r15d,2 1572 1573 xor r13d,r12d 1574 shr r12d,3 1575 ror r13d,7 1576 xor r15d,r14d 1577 shr r14d,10 1578 1579 ror r15d,17 1580 xor r12d,r13d 1581 xor r15d,r14d 1582 add r12d,DWORD[28+rsp] 1583 1584 add r12d,DWORD[56+rsp] 1585 mov r13d,r10d 1586 add r12d,r15d 1587 mov r14d,ecx 1588 ror r13d,14 1589 mov r15d,r11d 1590 1591 xor r13d,r10d 1592 ror r14d,9 1593 xor r15d,eax 1594 1595 mov DWORD[56+rsp],r12d 1596 xor r14d,ecx 1597 and r15d,r10d 1598 1599 ror r13d,5 1600 add r12d,ebx 1601 xor r15d,eax 1602 1603 ror r14d,11 1604 xor r13d,r10d 1605 add r12d,r15d 1606 1607 mov r15d,ecx 1608 add r12d,DWORD[rbp] 1609 xor r14d,ecx 1610 1611 xor r15d,edx 1612 ror r13d,6 1613 mov ebx,edx 1614 1615 and edi,r15d 1616 ror r14d,2 1617 add r12d,r13d 1618 1619 xor ebx,edi 1620 add r9d,r12d 1621 add ebx,r12d 1622 1623 lea rbp,[4+rbp] 1624 mov r13d,DWORD[rsp] 1625 mov edi,DWORD[52+rsp] 1626 1627 mov r12d,r13d 1628 ror r13d,11 1629 add ebx,r14d 1630 mov r14d,edi 1631 ror edi,2 1632 1633 xor r13d,r12d 1634 shr r12d,3 1635 ror r13d,7 1636 xor edi,r14d 1637 shr r14d,10 1638 1639 ror edi,17 1640 xor r12d,r13d 1641 xor edi,r14d 1642 add r12d,DWORD[32+rsp] 1643 1644 add r12d,DWORD[60+rsp] 1645 mov r13d,r9d 1646 add r12d,edi 1647 mov r14d,ebx 1648 ror r13d,14 1649 mov edi,r10d 1650 1651 xor r13d,r9d 1652 ror r14d,9 1653 xor edi,r11d 1654 1655 mov DWORD[60+rsp],r12d 1656 xor r14d,ebx 1657 and edi,r9d 1658 1659 ror r13d,5 1660 add r12d,eax 1661 xor edi,r11d 1662 1663 ror r14d,11 1664 xor r13d,r9d 1665 add r12d,edi 1666 1667 mov edi,ebx 1668 add r12d,DWORD[rbp] 1669 xor r14d,ebx 1670 1671 xor edi,ecx 1672 ror r13d,6 1673 mov eax,ecx 1674 1675 and r15d,edi 1676 ror r14d,2 1677 add r12d,r13d 1678 1679 xor eax,r15d 1680 add r8d,r12d 1681 add eax,r12d 1682 1683 lea rbp,[20+rbp] 1684 cmp BYTE[3+rbp],0 1685 jnz NEAR $L$rounds_16_xx 1686 1687 mov rdi,QWORD[((64+0))+rsp] 1688 add eax,r14d 1689 lea rsi,[64+rsi] 1690 1691 add eax,DWORD[rdi] 1692 add ebx,DWORD[4+rdi] 1693 add ecx,DWORD[8+rdi] 1694 add edx,DWORD[12+rdi] 1695 add r8d,DWORD[16+rdi] 1696 add r9d,DWORD[20+rdi] 1697 add r10d,DWORD[24+rdi] 1698 add r11d,DWORD[28+rdi] 1699 1700 cmp rsi,QWORD[((64+16))+rsp] 1701 1702 mov DWORD[rdi],eax 1703 mov DWORD[4+rdi],ebx 1704 mov DWORD[8+rdi],ecx 1705 mov DWORD[12+rdi],edx 1706 mov DWORD[16+rdi],r8d 1707 mov DWORD[20+rdi],r9d 1708 mov DWORD[24+rdi],r10d 1709 mov DWORD[28+rdi],r11d 1710 jb NEAR $L$loop 1711 1712 mov rsi,QWORD[((64+24))+rsp] 1713 mov r15,QWORD[((-48))+rsi] 1714 mov r14,QWORD[((-40))+rsi] 1715 mov r13,QWORD[((-32))+rsi] 1716 mov r12,QWORD[((-24))+rsi] 1717 mov rbp,QWORD[((-16))+rsi] 1718 mov rbx,QWORD[((-8))+rsi] 1719 lea rsp,[rsi] 1720$L$epilogue: 1721 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 1722 mov rsi,QWORD[16+rsp] 1723 DB 0F3h,0C3h ;repret 1724$L$SEH_end_sha256_block_data_order: 1725ALIGN 64 1726 1727K256: 1728 DD 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 1729 DD 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 1730 DD 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 1731 DD 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 1732 DD 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 1733 DD 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 1734 DD 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 1735 DD 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 1736 DD 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc 1737 DD 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc 1738 DD 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da 1739 DD 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da 1740 DD 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 1741 DD 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 1742 DD 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 1743 DD 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 1744 DD 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 1745 DD 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 1746 DD 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 1747 DD 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 1748 DD 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 1749 DD 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 1750 DD 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 1751 DD 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 1752 DD 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 1753 DD 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 1754 DD 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 1755 DD 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 1756 DD 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 1757 DD 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 1758 DD 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 1759 DD 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 1760 1761 DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f 1762 DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f 1763 DD 0x03020100,0x0b0a0908,0xffffffff,0xffffffff 1764 DD 0x03020100,0x0b0a0908,0xffffffff,0xffffffff 1765 DD 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 1766 DD 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 1767DB 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97 1768DB 110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54 1769DB 52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 1770DB 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 1771DB 111,114,103,62,0 1772 1773ALIGN 64 1774sha256_block_data_order_ssse3: 1775 mov QWORD[8+rsp],rdi ;WIN64 prologue 1776 mov QWORD[16+rsp],rsi 1777 mov rax,rsp 1778$L$SEH_begin_sha256_block_data_order_ssse3: 1779 mov rdi,rcx 1780 mov rsi,rdx 1781 mov rdx,r8 1782 1783 1784$L$ssse3_shortcut: 1785 mov rax,rsp 1786 push rbx 1787 push rbp 1788 push r12 1789 push r13 1790 push r14 1791 push r15 1792 shl rdx,4 1793 sub rsp,160 1794 lea rdx,[rdx*4+rsi] 1795 and rsp,-64 1796 mov QWORD[((64+0))+rsp],rdi 1797 mov QWORD[((64+8))+rsp],rsi 1798 mov QWORD[((64+16))+rsp],rdx 1799 mov QWORD[((64+24))+rsp],rax 1800 movaps XMMWORD[(64+32)+rsp],xmm6 1801 movaps XMMWORD[(64+48)+rsp],xmm7 1802 movaps XMMWORD[(64+64)+rsp],xmm8 1803 movaps XMMWORD[(64+80)+rsp],xmm9 1804$L$prologue_ssse3: 1805 1806 mov eax,DWORD[rdi] 1807 mov ebx,DWORD[4+rdi] 1808 mov ecx,DWORD[8+rdi] 1809 mov edx,DWORD[12+rdi] 1810 mov r8d,DWORD[16+rdi] 1811 mov r9d,DWORD[20+rdi] 1812 mov r10d,DWORD[24+rdi] 1813 mov r11d,DWORD[28+rdi] 1814 1815 1816 jmp NEAR $L$loop_ssse3 1817ALIGN 16 1818$L$loop_ssse3: 1819 movdqa xmm7,XMMWORD[((K256+512))] 1820 movdqu xmm0,XMMWORD[rsi] 1821 movdqu xmm1,XMMWORD[16+rsi] 1822 movdqu xmm2,XMMWORD[32+rsi] 1823DB 102,15,56,0,199 1824 movdqu xmm3,XMMWORD[48+rsi] 1825 lea rbp,[K256] 1826DB 102,15,56,0,207 1827 movdqa xmm4,XMMWORD[rbp] 1828 movdqa xmm5,XMMWORD[32+rbp] 1829DB 102,15,56,0,215 1830 paddd xmm4,xmm0 1831 movdqa xmm6,XMMWORD[64+rbp] 1832DB 102,15,56,0,223 1833 movdqa xmm7,XMMWORD[96+rbp] 1834 paddd xmm5,xmm1 1835 paddd xmm6,xmm2 1836 paddd xmm7,xmm3 1837 movdqa XMMWORD[rsp],xmm4 1838 mov r14d,eax 1839 movdqa XMMWORD[16+rsp],xmm5 1840 mov edi,ebx 1841 movdqa XMMWORD[32+rsp],xmm6 1842 xor edi,ecx 1843 movdqa XMMWORD[48+rsp],xmm7 1844 mov r13d,r8d 1845 jmp NEAR $L$ssse3_00_47 1846 1847ALIGN 16 1848$L$ssse3_00_47: 1849 sub rbp,-128 1850 ror r13d,14 1851 movdqa xmm4,xmm1 1852 mov eax,r14d 1853 mov r12d,r9d 1854 movdqa xmm7,xmm3 1855 ror r14d,9 1856 xor r13d,r8d 1857 xor r12d,r10d 1858 ror r13d,5 1859 xor r14d,eax 1860DB 102,15,58,15,224,4 1861 and r12d,r8d 1862 xor r13d,r8d 1863DB 102,15,58,15,250,4 1864 add r11d,DWORD[rsp] 1865 mov r15d,eax 1866 xor r12d,r10d 1867 ror r14d,11 1868 movdqa xmm5,xmm4 1869 xor r15d,ebx 1870 add r11d,r12d 1871 movdqa xmm6,xmm4 1872 ror r13d,6 1873 and edi,r15d 1874 psrld xmm4,3 1875 xor r14d,eax 1876 add r11d,r13d 1877 xor edi,ebx 1878 paddd xmm0,xmm7 1879 ror r14d,2 1880 add edx,r11d 1881 psrld xmm6,7 1882 add r11d,edi 1883 mov r13d,edx 1884 pshufd xmm7,xmm3,250 1885 add r14d,r11d 1886 ror r13d,14 1887 pslld xmm5,14 1888 mov r11d,r14d 1889 mov r12d,r8d 1890 pxor xmm4,xmm6 1891 ror r14d,9 1892 xor r13d,edx 1893 xor r12d,r9d 1894 ror r13d,5 1895 psrld xmm6,11 1896 xor r14d,r11d 1897 pxor xmm4,xmm5 1898 and r12d,edx 1899 xor r13d,edx 1900 pslld xmm5,11 1901 add r10d,DWORD[4+rsp] 1902 mov edi,r11d 1903 pxor xmm4,xmm6 1904 xor r12d,r9d 1905 ror r14d,11 1906 movdqa xmm6,xmm7 1907 xor edi,eax 1908 add r10d,r12d 1909 pxor xmm4,xmm5 1910 ror r13d,6 1911 and r15d,edi 1912 xor r14d,r11d 1913 psrld xmm7,10 1914 add r10d,r13d 1915 xor r15d,eax 1916 paddd xmm0,xmm4 1917 ror r14d,2 1918 add ecx,r10d 1919 psrlq xmm6,17 1920 add r10d,r15d 1921 mov r13d,ecx 1922 add r14d,r10d 1923 pxor xmm7,xmm6 1924 ror r13d,14 1925 mov r10d,r14d 1926 mov r12d,edx 1927 ror r14d,9 1928 psrlq xmm6,2 1929 xor r13d,ecx 1930 xor r12d,r8d 1931 pxor xmm7,xmm6 1932 ror r13d,5 1933 xor r14d,r10d 1934 and r12d,ecx 1935 pshufd xmm7,xmm7,128 1936 xor r13d,ecx 1937 add r9d,DWORD[8+rsp] 1938 mov r15d,r10d 1939 psrldq xmm7,8 1940 xor r12d,r8d 1941 ror r14d,11 1942 xor r15d,r11d 1943 add r9d,r12d 1944 ror r13d,6 1945 paddd xmm0,xmm7 1946 and edi,r15d 1947 xor r14d,r10d 1948 add r9d,r13d 1949 pshufd xmm7,xmm0,80 1950 xor edi,r11d 1951 ror r14d,2 1952 add ebx,r9d 1953 movdqa xmm6,xmm7 1954 add r9d,edi 1955 mov r13d,ebx 1956 psrld xmm7,10 1957 add r14d,r9d 1958 ror r13d,14 1959 psrlq xmm6,17 1960 mov r9d,r14d 1961 mov r12d,ecx 1962 pxor xmm7,xmm6 1963 ror r14d,9 1964 xor r13d,ebx 1965 xor r12d,edx 1966 ror r13d,5 1967 xor r14d,r9d 1968 psrlq xmm6,2 1969 and r12d,ebx 1970 xor r13d,ebx 1971 add r8d,DWORD[12+rsp] 1972 pxor xmm7,xmm6 1973 mov edi,r9d 1974 xor r12d,edx 1975 ror r14d,11 1976 pshufd xmm7,xmm7,8 1977 xor edi,r10d 1978 add r8d,r12d 1979 movdqa xmm6,XMMWORD[rbp] 1980 ror r13d,6 1981 and r15d,edi 1982 pslldq xmm7,8 1983 xor r14d,r9d 1984 add r8d,r13d 1985 xor r15d,r10d 1986 paddd xmm0,xmm7 1987 ror r14d,2 1988 add eax,r8d 1989 add r8d,r15d 1990 paddd xmm6,xmm0 1991 mov r13d,eax 1992 add r14d,r8d 1993 movdqa XMMWORD[rsp],xmm6 1994 ror r13d,14 1995 movdqa xmm4,xmm2 1996 mov r8d,r14d 1997 mov r12d,ebx 1998 movdqa xmm7,xmm0 1999 ror r14d,9 2000 xor r13d,eax 2001 xor r12d,ecx 2002 ror r13d,5 2003 xor r14d,r8d 2004DB 102,15,58,15,225,4 2005 and r12d,eax 2006 xor r13d,eax 2007DB 102,15,58,15,251,4 2008 add edx,DWORD[16+rsp] 2009 mov r15d,r8d 2010 xor r12d,ecx 2011 ror r14d,11 2012 movdqa xmm5,xmm4 2013 xor r15d,r9d 2014 add edx,r12d 2015 movdqa xmm6,xmm4 2016 ror r13d,6 2017 and edi,r15d 2018 psrld xmm4,3 2019 xor r14d,r8d 2020 add edx,r13d 2021 xor edi,r9d 2022 paddd xmm1,xmm7 2023 ror r14d,2 2024 add r11d,edx 2025 psrld xmm6,7 2026 add edx,edi 2027 mov r13d,r11d 2028 pshufd xmm7,xmm0,250 2029 add r14d,edx 2030 ror r13d,14 2031 pslld xmm5,14 2032 mov edx,r14d 2033 mov r12d,eax 2034 pxor xmm4,xmm6 2035 ror r14d,9 2036 xor r13d,r11d 2037 xor r12d,ebx 2038 ror r13d,5 2039 psrld xmm6,11 2040 xor r14d,edx 2041 pxor xmm4,xmm5 2042 and r12d,r11d 2043 xor r13d,r11d 2044 pslld xmm5,11 2045 add ecx,DWORD[20+rsp] 2046 mov edi,edx 2047 pxor xmm4,xmm6 2048 xor r12d,ebx 2049 ror r14d,11 2050 movdqa xmm6,xmm7 2051 xor edi,r8d 2052 add ecx,r12d 2053 pxor xmm4,xmm5 2054 ror r13d,6 2055 and r15d,edi 2056 xor r14d,edx 2057 psrld xmm7,10 2058 add ecx,r13d 2059 xor r15d,r8d 2060 paddd xmm1,xmm4 2061 ror r14d,2 2062 add r10d,ecx 2063 psrlq xmm6,17 2064 add ecx,r15d 2065 mov r13d,r10d 2066 add r14d,ecx 2067 pxor xmm7,xmm6 2068 ror r13d,14 2069 mov ecx,r14d 2070 mov r12d,r11d 2071 ror r14d,9 2072 psrlq xmm6,2 2073 xor r13d,r10d 2074 xor r12d,eax 2075 pxor xmm7,xmm6 2076 ror r13d,5 2077 xor r14d,ecx 2078 and r12d,r10d 2079 pshufd xmm7,xmm7,128 2080 xor r13d,r10d 2081 add ebx,DWORD[24+rsp] 2082 mov r15d,ecx 2083 psrldq xmm7,8 2084 xor r12d,eax 2085 ror r14d,11 2086 xor r15d,edx 2087 add ebx,r12d 2088 ror r13d,6 2089 paddd xmm1,xmm7 2090 and edi,r15d 2091 xor r14d,ecx 2092 add ebx,r13d 2093 pshufd xmm7,xmm1,80 2094 xor edi,edx 2095 ror r14d,2 2096 add r9d,ebx 2097 movdqa xmm6,xmm7 2098 add ebx,edi 2099 mov r13d,r9d 2100 psrld xmm7,10 2101 add r14d,ebx 2102 ror r13d,14 2103 psrlq xmm6,17 2104 mov ebx,r14d 2105 mov r12d,r10d 2106 pxor xmm7,xmm6 2107 ror r14d,9 2108 xor r13d,r9d 2109 xor r12d,r11d 2110 ror r13d,5 2111 xor r14d,ebx 2112 psrlq xmm6,2 2113 and r12d,r9d 2114 xor r13d,r9d 2115 add eax,DWORD[28+rsp] 2116 pxor xmm7,xmm6 2117 mov edi,ebx 2118 xor r12d,r11d 2119 ror r14d,11 2120 pshufd xmm7,xmm7,8 2121 xor edi,ecx 2122 add eax,r12d 2123 movdqa xmm6,XMMWORD[32+rbp] 2124 ror r13d,6 2125 and r15d,edi 2126 pslldq xmm7,8 2127 xor r14d,ebx 2128 add eax,r13d 2129 xor r15d,ecx 2130 paddd xmm1,xmm7 2131 ror r14d,2 2132 add r8d,eax 2133 add eax,r15d 2134 paddd xmm6,xmm1 2135 mov r13d,r8d 2136 add r14d,eax 2137 movdqa XMMWORD[16+rsp],xmm6 2138 ror r13d,14 2139 movdqa xmm4,xmm3 2140 mov eax,r14d 2141 mov r12d,r9d 2142 movdqa xmm7,xmm1 2143 ror r14d,9 2144 xor r13d,r8d 2145 xor r12d,r10d 2146 ror r13d,5 2147 xor r14d,eax 2148DB 102,15,58,15,226,4 2149 and r12d,r8d 2150 xor r13d,r8d 2151DB 102,15,58,15,248,4 2152 add r11d,DWORD[32+rsp] 2153 mov r15d,eax 2154 xor r12d,r10d 2155 ror r14d,11 2156 movdqa xmm5,xmm4 2157 xor r15d,ebx 2158 add r11d,r12d 2159 movdqa xmm6,xmm4 2160 ror r13d,6 2161 and edi,r15d 2162 psrld xmm4,3 2163 xor r14d,eax 2164 add r11d,r13d 2165 xor edi,ebx 2166 paddd xmm2,xmm7 2167 ror r14d,2 2168 add edx,r11d 2169 psrld xmm6,7 2170 add r11d,edi 2171 mov r13d,edx 2172 pshufd xmm7,xmm1,250 2173 add r14d,r11d 2174 ror r13d,14 2175 pslld xmm5,14 2176 mov r11d,r14d 2177 mov r12d,r8d 2178 pxor xmm4,xmm6 2179 ror r14d,9 2180 xor r13d,edx 2181 xor r12d,r9d 2182 ror r13d,5 2183 psrld xmm6,11 2184 xor r14d,r11d 2185 pxor xmm4,xmm5 2186 and r12d,edx 2187 xor r13d,edx 2188 pslld xmm5,11 2189 add r10d,DWORD[36+rsp] 2190 mov edi,r11d 2191 pxor xmm4,xmm6 2192 xor r12d,r9d 2193 ror r14d,11 2194 movdqa xmm6,xmm7 2195 xor edi,eax 2196 add r10d,r12d 2197 pxor xmm4,xmm5 2198 ror r13d,6 2199 and r15d,edi 2200 xor r14d,r11d 2201 psrld xmm7,10 2202 add r10d,r13d 2203 xor r15d,eax 2204 paddd xmm2,xmm4 2205 ror r14d,2 2206 add ecx,r10d 2207 psrlq xmm6,17 2208 add r10d,r15d 2209 mov r13d,ecx 2210 add r14d,r10d 2211 pxor xmm7,xmm6 2212 ror r13d,14 2213 mov r10d,r14d 2214 mov r12d,edx 2215 ror r14d,9 2216 psrlq xmm6,2 2217 xor r13d,ecx 2218 xor r12d,r8d 2219 pxor xmm7,xmm6 2220 ror r13d,5 2221 xor r14d,r10d 2222 and r12d,ecx 2223 pshufd xmm7,xmm7,128 2224 xor r13d,ecx 2225 add r9d,DWORD[40+rsp] 2226 mov r15d,r10d 2227 psrldq xmm7,8 2228 xor r12d,r8d 2229 ror r14d,11 2230 xor r15d,r11d 2231 add r9d,r12d 2232 ror r13d,6 2233 paddd xmm2,xmm7 2234 and edi,r15d 2235 xor r14d,r10d 2236 add r9d,r13d 2237 pshufd xmm7,xmm2,80 2238 xor edi,r11d 2239 ror r14d,2 2240 add ebx,r9d 2241 movdqa xmm6,xmm7 2242 add r9d,edi 2243 mov r13d,ebx 2244 psrld xmm7,10 2245 add r14d,r9d 2246 ror r13d,14 2247 psrlq xmm6,17 2248 mov r9d,r14d 2249 mov r12d,ecx 2250 pxor xmm7,xmm6 2251 ror r14d,9 2252 xor r13d,ebx 2253 xor r12d,edx 2254 ror r13d,5 2255 xor r14d,r9d 2256 psrlq xmm6,2 2257 and r12d,ebx 2258 xor r13d,ebx 2259 add r8d,DWORD[44+rsp] 2260 pxor xmm7,xmm6 2261 mov edi,r9d 2262 xor r12d,edx 2263 ror r14d,11 2264 pshufd xmm7,xmm7,8 2265 xor edi,r10d 2266 add r8d,r12d 2267 movdqa xmm6,XMMWORD[64+rbp] 2268 ror r13d,6 2269 and r15d,edi 2270 pslldq xmm7,8 2271 xor r14d,r9d 2272 add r8d,r13d 2273 xor r15d,r10d 2274 paddd xmm2,xmm7 2275 ror r14d,2 2276 add eax,r8d 2277 add r8d,r15d 2278 paddd xmm6,xmm2 2279 mov r13d,eax 2280 add r14d,r8d 2281 movdqa XMMWORD[32+rsp],xmm6 2282 ror r13d,14 2283 movdqa xmm4,xmm0 2284 mov r8d,r14d 2285 mov r12d,ebx 2286 movdqa xmm7,xmm2 2287 ror r14d,9 2288 xor r13d,eax 2289 xor r12d,ecx 2290 ror r13d,5 2291 xor r14d,r8d 2292DB 102,15,58,15,227,4 2293 and r12d,eax 2294 xor r13d,eax 2295DB 102,15,58,15,249,4 2296 add edx,DWORD[48+rsp] 2297 mov r15d,r8d 2298 xor r12d,ecx 2299 ror r14d,11 2300 movdqa xmm5,xmm4 2301 xor r15d,r9d 2302 add edx,r12d 2303 movdqa xmm6,xmm4 2304 ror r13d,6 2305 and edi,r15d 2306 psrld xmm4,3 2307 xor r14d,r8d 2308 add edx,r13d 2309 xor edi,r9d 2310 paddd xmm3,xmm7 2311 ror r14d,2 2312 add r11d,edx 2313 psrld xmm6,7 2314 add edx,edi 2315 mov r13d,r11d 2316 pshufd xmm7,xmm2,250 2317 add r14d,edx 2318 ror r13d,14 2319 pslld xmm5,14 2320 mov edx,r14d 2321 mov r12d,eax 2322 pxor xmm4,xmm6 2323 ror r14d,9 2324 xor r13d,r11d 2325 xor r12d,ebx 2326 ror r13d,5 2327 psrld xmm6,11 2328 xor r14d,edx 2329 pxor xmm4,xmm5 2330 and r12d,r11d 2331 xor r13d,r11d 2332 pslld xmm5,11 2333 add ecx,DWORD[52+rsp] 2334 mov edi,edx 2335 pxor xmm4,xmm6 2336 xor r12d,ebx 2337 ror r14d,11 2338 movdqa xmm6,xmm7 2339 xor edi,r8d 2340 add ecx,r12d 2341 pxor xmm4,xmm5 2342 ror r13d,6 2343 and r15d,edi 2344 xor r14d,edx 2345 psrld xmm7,10 2346 add ecx,r13d 2347 xor r15d,r8d 2348 paddd xmm3,xmm4 2349 ror r14d,2 2350 add r10d,ecx 2351 psrlq xmm6,17 2352 add ecx,r15d 2353 mov r13d,r10d 2354 add r14d,ecx 2355 pxor xmm7,xmm6 2356 ror r13d,14 2357 mov ecx,r14d 2358 mov r12d,r11d 2359 ror r14d,9 2360 psrlq xmm6,2 2361 xor r13d,r10d 2362 xor r12d,eax 2363 pxor xmm7,xmm6 2364 ror r13d,5 2365 xor r14d,ecx 2366 and r12d,r10d 2367 pshufd xmm7,xmm7,128 2368 xor r13d,r10d 2369 add ebx,DWORD[56+rsp] 2370 mov r15d,ecx 2371 psrldq xmm7,8 2372 xor r12d,eax 2373 ror r14d,11 2374 xor r15d,edx 2375 add ebx,r12d 2376 ror r13d,6 2377 paddd xmm3,xmm7 2378 and edi,r15d 2379 xor r14d,ecx 2380 add ebx,r13d 2381 pshufd xmm7,xmm3,80 2382 xor edi,edx 2383 ror r14d,2 2384 add r9d,ebx 2385 movdqa xmm6,xmm7 2386 add ebx,edi 2387 mov r13d,r9d 2388 psrld xmm7,10 2389 add r14d,ebx 2390 ror r13d,14 2391 psrlq xmm6,17 2392 mov ebx,r14d 2393 mov r12d,r10d 2394 pxor xmm7,xmm6 2395 ror r14d,9 2396 xor r13d,r9d 2397 xor r12d,r11d 2398 ror r13d,5 2399 xor r14d,ebx 2400 psrlq xmm6,2 2401 and r12d,r9d 2402 xor r13d,r9d 2403 add eax,DWORD[60+rsp] 2404 pxor xmm7,xmm6 2405 mov edi,ebx 2406 xor r12d,r11d 2407 ror r14d,11 2408 pshufd xmm7,xmm7,8 2409 xor edi,ecx 2410 add eax,r12d 2411 movdqa xmm6,XMMWORD[96+rbp] 2412 ror r13d,6 2413 and r15d,edi 2414 pslldq xmm7,8 2415 xor r14d,ebx 2416 add eax,r13d 2417 xor r15d,ecx 2418 paddd xmm3,xmm7 2419 ror r14d,2 2420 add r8d,eax 2421 add eax,r15d 2422 paddd xmm6,xmm3 2423 mov r13d,r8d 2424 add r14d,eax 2425 movdqa XMMWORD[48+rsp],xmm6 2426 cmp BYTE[131+rbp],0 2427 jne NEAR $L$ssse3_00_47 2428 ror r13d,14 2429 mov eax,r14d 2430 mov r12d,r9d 2431 ror r14d,9 2432 xor r13d,r8d 2433 xor r12d,r10d 2434 ror r13d,5 2435 xor r14d,eax 2436 and r12d,r8d 2437 xor r13d,r8d 2438 add r11d,DWORD[rsp] 2439 mov r15d,eax 2440 xor r12d,r10d 2441 ror r14d,11 2442 xor r15d,ebx 2443 add r11d,r12d 2444 ror r13d,6 2445 and edi,r15d 2446 xor r14d,eax 2447 add r11d,r13d 2448 xor edi,ebx 2449 ror r14d,2 2450 add edx,r11d 2451 add r11d,edi 2452 mov r13d,edx 2453 add r14d,r11d 2454 ror r13d,14 2455 mov r11d,r14d 2456 mov r12d,r8d 2457 ror r14d,9 2458 xor r13d,edx 2459 xor r12d,r9d 2460 ror r13d,5 2461 xor r14d,r11d 2462 and r12d,edx 2463 xor r13d,edx 2464 add r10d,DWORD[4+rsp] 2465 mov edi,r11d 2466 xor r12d,r9d 2467 ror r14d,11 2468 xor edi,eax 2469 add r10d,r12d 2470 ror r13d,6 2471 and r15d,edi 2472 xor r14d,r11d 2473 add r10d,r13d 2474 xor r15d,eax 2475 ror r14d,2 2476 add ecx,r10d 2477 add r10d,r15d 2478 mov r13d,ecx 2479 add r14d,r10d 2480 ror r13d,14 2481 mov r10d,r14d 2482 mov r12d,edx 2483 ror r14d,9 2484 xor r13d,ecx 2485 xor r12d,r8d 2486 ror r13d,5 2487 xor r14d,r10d 2488 and r12d,ecx 2489 xor r13d,ecx 2490 add r9d,DWORD[8+rsp] 2491 mov r15d,r10d 2492 xor r12d,r8d 2493 ror r14d,11 2494 xor r15d,r11d 2495 add r9d,r12d 2496 ror r13d,6 2497 and edi,r15d 2498 xor r14d,r10d 2499 add r9d,r13d 2500 xor edi,r11d 2501 ror r14d,2 2502 add ebx,r9d 2503 add r9d,edi 2504 mov r13d,ebx 2505 add r14d,r9d 2506 ror r13d,14 2507 mov r9d,r14d 2508 mov r12d,ecx 2509 ror r14d,9 2510 xor r13d,ebx 2511 xor r12d,edx 2512 ror r13d,5 2513 xor r14d,r9d 2514 and r12d,ebx 2515 xor r13d,ebx 2516 add r8d,DWORD[12+rsp] 2517 mov edi,r9d 2518 xor r12d,edx 2519 ror r14d,11 2520 xor edi,r10d 2521 add r8d,r12d 2522 ror r13d,6 2523 and r15d,edi 2524 xor r14d,r9d 2525 add r8d,r13d 2526 xor r15d,r10d 2527 ror r14d,2 2528 add eax,r8d 2529 add r8d,r15d 2530 mov r13d,eax 2531 add r14d,r8d 2532 ror r13d,14 2533 mov r8d,r14d 2534 mov r12d,ebx 2535 ror r14d,9 2536 xor r13d,eax 2537 xor r12d,ecx 2538 ror r13d,5 2539 xor r14d,r8d 2540 and r12d,eax 2541 xor r13d,eax 2542 add edx,DWORD[16+rsp] 2543 mov r15d,r8d 2544 xor r12d,ecx 2545 ror r14d,11 2546 xor r15d,r9d 2547 add edx,r12d 2548 ror r13d,6 2549 and edi,r15d 2550 xor r14d,r8d 2551 add edx,r13d 2552 xor edi,r9d 2553 ror r14d,2 2554 add r11d,edx 2555 add edx,edi 2556 mov r13d,r11d 2557 add r14d,edx 2558 ror r13d,14 2559 mov edx,r14d 2560 mov r12d,eax 2561 ror r14d,9 2562 xor r13d,r11d 2563 xor r12d,ebx 2564 ror r13d,5 2565 xor r14d,edx 2566 and r12d,r11d 2567 xor r13d,r11d 2568 add ecx,DWORD[20+rsp] 2569 mov edi,edx 2570 xor r12d,ebx 2571 ror r14d,11 2572 xor edi,r8d 2573 add ecx,r12d 2574 ror r13d,6 2575 and r15d,edi 2576 xor r14d,edx 2577 add ecx,r13d 2578 xor r15d,r8d 2579 ror r14d,2 2580 add r10d,ecx 2581 add ecx,r15d 2582 mov r13d,r10d 2583 add r14d,ecx 2584 ror r13d,14 2585 mov ecx,r14d 2586 mov r12d,r11d 2587 ror r14d,9 2588 xor r13d,r10d 2589 xor r12d,eax 2590 ror r13d,5 2591 xor r14d,ecx 2592 and r12d,r10d 2593 xor r13d,r10d 2594 add ebx,DWORD[24+rsp] 2595 mov r15d,ecx 2596 xor r12d,eax 2597 ror r14d,11 2598 xor r15d,edx 2599 add ebx,r12d 2600 ror r13d,6 2601 and edi,r15d 2602 xor r14d,ecx 2603 add ebx,r13d 2604 xor edi,edx 2605 ror r14d,2 2606 add r9d,ebx 2607 add ebx,edi 2608 mov r13d,r9d 2609 add r14d,ebx 2610 ror r13d,14 2611 mov ebx,r14d 2612 mov r12d,r10d 2613 ror r14d,9 2614 xor r13d,r9d 2615 xor r12d,r11d 2616 ror r13d,5 2617 xor r14d,ebx 2618 and r12d,r9d 2619 xor r13d,r9d 2620 add eax,DWORD[28+rsp] 2621 mov edi,ebx 2622 xor r12d,r11d 2623 ror r14d,11 2624 xor edi,ecx 2625 add eax,r12d 2626 ror r13d,6 2627 and r15d,edi 2628 xor r14d,ebx 2629 add eax,r13d 2630 xor r15d,ecx 2631 ror r14d,2 2632 add r8d,eax 2633 add eax,r15d 2634 mov r13d,r8d 2635 add r14d,eax 2636 ror r13d,14 2637 mov eax,r14d 2638 mov r12d,r9d 2639 ror r14d,9 2640 xor r13d,r8d 2641 xor r12d,r10d 2642 ror r13d,5 2643 xor r14d,eax 2644 and r12d,r8d 2645 xor r13d,r8d 2646 add r11d,DWORD[32+rsp] 2647 mov r15d,eax 2648 xor r12d,r10d 2649 ror r14d,11 2650 xor r15d,ebx 2651 add r11d,r12d 2652 ror r13d,6 2653 and edi,r15d 2654 xor r14d,eax 2655 add r11d,r13d 2656 xor edi,ebx 2657 ror r14d,2 2658 add edx,r11d 2659 add r11d,edi 2660 mov r13d,edx 2661 add r14d,r11d 2662 ror r13d,14 2663 mov r11d,r14d 2664 mov r12d,r8d 2665 ror r14d,9 2666 xor r13d,edx 2667 xor r12d,r9d 2668 ror r13d,5 2669 xor r14d,r11d 2670 and r12d,edx 2671 xor r13d,edx 2672 add r10d,DWORD[36+rsp] 2673 mov edi,r11d 2674 xor r12d,r9d 2675 ror r14d,11 2676 xor edi,eax 2677 add r10d,r12d 2678 ror r13d,6 2679 and r15d,edi 2680 xor r14d,r11d 2681 add r10d,r13d 2682 xor r15d,eax 2683 ror r14d,2 2684 add ecx,r10d 2685 add r10d,r15d 2686 mov r13d,ecx 2687 add r14d,r10d 2688 ror r13d,14 2689 mov r10d,r14d 2690 mov r12d,edx 2691 ror r14d,9 2692 xor r13d,ecx 2693 xor r12d,r8d 2694 ror r13d,5 2695 xor r14d,r10d 2696 and r12d,ecx 2697 xor r13d,ecx 2698 add r9d,DWORD[40+rsp] 2699 mov r15d,r10d 2700 xor r12d,r8d 2701 ror r14d,11 2702 xor r15d,r11d 2703 add r9d,r12d 2704 ror r13d,6 2705 and edi,r15d 2706 xor r14d,r10d 2707 add r9d,r13d 2708 xor edi,r11d 2709 ror r14d,2 2710 add ebx,r9d 2711 add r9d,edi 2712 mov r13d,ebx 2713 add r14d,r9d 2714 ror r13d,14 2715 mov r9d,r14d 2716 mov r12d,ecx 2717 ror r14d,9 2718 xor r13d,ebx 2719 xor r12d,edx 2720 ror r13d,5 2721 xor r14d,r9d 2722 and r12d,ebx 2723 xor r13d,ebx 2724 add r8d,DWORD[44+rsp] 2725 mov edi,r9d 2726 xor r12d,edx 2727 ror r14d,11 2728 xor edi,r10d 2729 add r8d,r12d 2730 ror r13d,6 2731 and r15d,edi 2732 xor r14d,r9d 2733 add r8d,r13d 2734 xor r15d,r10d 2735 ror r14d,2 2736 add eax,r8d 2737 add r8d,r15d 2738 mov r13d,eax 2739 add r14d,r8d 2740 ror r13d,14 2741 mov r8d,r14d 2742 mov r12d,ebx 2743 ror r14d,9 2744 xor r13d,eax 2745 xor r12d,ecx 2746 ror r13d,5 2747 xor r14d,r8d 2748 and r12d,eax 2749 xor r13d,eax 2750 add edx,DWORD[48+rsp] 2751 mov r15d,r8d 2752 xor r12d,ecx 2753 ror r14d,11 2754 xor r15d,r9d 2755 add edx,r12d 2756 ror r13d,6 2757 and edi,r15d 2758 xor r14d,r8d 2759 add edx,r13d 2760 xor edi,r9d 2761 ror r14d,2 2762 add r11d,edx 2763 add edx,edi 2764 mov r13d,r11d 2765 add r14d,edx 2766 ror r13d,14 2767 mov edx,r14d 2768 mov r12d,eax 2769 ror r14d,9 2770 xor r13d,r11d 2771 xor r12d,ebx 2772 ror r13d,5 2773 xor r14d,edx 2774 and r12d,r11d 2775 xor r13d,r11d 2776 add ecx,DWORD[52+rsp] 2777 mov edi,edx 2778 xor r12d,ebx 2779 ror r14d,11 2780 xor edi,r8d 2781 add ecx,r12d 2782 ror r13d,6 2783 and r15d,edi 2784 xor r14d,edx 2785 add ecx,r13d 2786 xor r15d,r8d 2787 ror r14d,2 2788 add r10d,ecx 2789 add ecx,r15d 2790 mov r13d,r10d 2791 add r14d,ecx 2792 ror r13d,14 2793 mov ecx,r14d 2794 mov r12d,r11d 2795 ror r14d,9 2796 xor r13d,r10d 2797 xor r12d,eax 2798 ror r13d,5 2799 xor r14d,ecx 2800 and r12d,r10d 2801 xor r13d,r10d 2802 add ebx,DWORD[56+rsp] 2803 mov r15d,ecx 2804 xor r12d,eax 2805 ror r14d,11 2806 xor r15d,edx 2807 add ebx,r12d 2808 ror r13d,6 2809 and edi,r15d 2810 xor r14d,ecx 2811 add ebx,r13d 2812 xor edi,edx 2813 ror r14d,2 2814 add r9d,ebx 2815 add ebx,edi 2816 mov r13d,r9d 2817 add r14d,ebx 2818 ror r13d,14 2819 mov ebx,r14d 2820 mov r12d,r10d 2821 ror r14d,9 2822 xor r13d,r9d 2823 xor r12d,r11d 2824 ror r13d,5 2825 xor r14d,ebx 2826 and r12d,r9d 2827 xor r13d,r9d 2828 add eax,DWORD[60+rsp] 2829 mov edi,ebx 2830 xor r12d,r11d 2831 ror r14d,11 2832 xor edi,ecx 2833 add eax,r12d 2834 ror r13d,6 2835 and r15d,edi 2836 xor r14d,ebx 2837 add eax,r13d 2838 xor r15d,ecx 2839 ror r14d,2 2840 add r8d,eax 2841 add eax,r15d 2842 mov r13d,r8d 2843 add r14d,eax 2844 mov rdi,QWORD[((64+0))+rsp] 2845 mov eax,r14d 2846 2847 add eax,DWORD[rdi] 2848 lea rsi,[64+rsi] 2849 add ebx,DWORD[4+rdi] 2850 add ecx,DWORD[8+rdi] 2851 add edx,DWORD[12+rdi] 2852 add r8d,DWORD[16+rdi] 2853 add r9d,DWORD[20+rdi] 2854 add r10d,DWORD[24+rdi] 2855 add r11d,DWORD[28+rdi] 2856 2857 cmp rsi,QWORD[((64+16))+rsp] 2858 2859 mov DWORD[rdi],eax 2860 mov DWORD[4+rdi],ebx 2861 mov DWORD[8+rdi],ecx 2862 mov DWORD[12+rdi],edx 2863 mov DWORD[16+rdi],r8d 2864 mov DWORD[20+rdi],r9d 2865 mov DWORD[24+rdi],r10d 2866 mov DWORD[28+rdi],r11d 2867 jb NEAR $L$loop_ssse3 2868 2869 mov rsi,QWORD[((64+24))+rsp] 2870 movaps xmm6,XMMWORD[((64+32))+rsp] 2871 movaps xmm7,XMMWORD[((64+48))+rsp] 2872 movaps xmm8,XMMWORD[((64+64))+rsp] 2873 movaps xmm9,XMMWORD[((64+80))+rsp] 2874 mov r15,QWORD[((-48))+rsi] 2875 mov r14,QWORD[((-40))+rsi] 2876 mov r13,QWORD[((-32))+rsi] 2877 mov r12,QWORD[((-24))+rsi] 2878 mov rbp,QWORD[((-16))+rsi] 2879 mov rbx,QWORD[((-8))+rsi] 2880 lea rsp,[rsi] 2881$L$epilogue_ssse3: 2882 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 2883 mov rsi,QWORD[16+rsp] 2884 DB 0F3h,0C3h ;repret 2885$L$SEH_end_sha256_block_data_order_ssse3: 2886 2887ALIGN 64 2888sha256_block_data_order_avx: 2889 mov QWORD[8+rsp],rdi ;WIN64 prologue 2890 mov QWORD[16+rsp],rsi 2891 mov rax,rsp 2892$L$SEH_begin_sha256_block_data_order_avx: 2893 mov rdi,rcx 2894 mov rsi,rdx 2895 mov rdx,r8 2896 2897 2898$L$avx_shortcut: 2899 mov rax,rsp 2900 push rbx 2901 push rbp 2902 push r12 2903 push r13 2904 push r14 2905 push r15 2906 shl rdx,4 2907 sub rsp,160 2908 lea rdx,[rdx*4+rsi] 2909 and rsp,-64 2910 mov QWORD[((64+0))+rsp],rdi 2911 mov QWORD[((64+8))+rsp],rsi 2912 mov QWORD[((64+16))+rsp],rdx 2913 mov QWORD[((64+24))+rsp],rax 2914 movaps XMMWORD[(64+32)+rsp],xmm6 2915 movaps XMMWORD[(64+48)+rsp],xmm7 2916 movaps XMMWORD[(64+64)+rsp],xmm8 2917 movaps XMMWORD[(64+80)+rsp],xmm9 2918$L$prologue_avx: 2919 2920 vzeroupper 2921 mov eax,DWORD[rdi] 2922 mov ebx,DWORD[4+rdi] 2923 mov ecx,DWORD[8+rdi] 2924 mov edx,DWORD[12+rdi] 2925 mov r8d,DWORD[16+rdi] 2926 mov r9d,DWORD[20+rdi] 2927 mov r10d,DWORD[24+rdi] 2928 mov r11d,DWORD[28+rdi] 2929 vmovdqa xmm8,XMMWORD[((K256+512+32))] 2930 vmovdqa xmm9,XMMWORD[((K256+512+64))] 2931 jmp NEAR $L$loop_avx 2932ALIGN 16 2933$L$loop_avx: 2934 vmovdqa xmm7,XMMWORD[((K256+512))] 2935 vmovdqu xmm0,XMMWORD[rsi] 2936 vmovdqu xmm1,XMMWORD[16+rsi] 2937 vmovdqu xmm2,XMMWORD[32+rsi] 2938 vmovdqu xmm3,XMMWORD[48+rsi] 2939 vpshufb xmm0,xmm0,xmm7 2940 lea rbp,[K256] 2941 vpshufb xmm1,xmm1,xmm7 2942 vpshufb xmm2,xmm2,xmm7 2943 vpaddd xmm4,xmm0,XMMWORD[rbp] 2944 vpshufb xmm3,xmm3,xmm7 2945 vpaddd xmm5,xmm1,XMMWORD[32+rbp] 2946 vpaddd xmm6,xmm2,XMMWORD[64+rbp] 2947 vpaddd xmm7,xmm3,XMMWORD[96+rbp] 2948 vmovdqa XMMWORD[rsp],xmm4 2949 mov r14d,eax 2950 vmovdqa XMMWORD[16+rsp],xmm5 2951 mov edi,ebx 2952 vmovdqa XMMWORD[32+rsp],xmm6 2953 xor edi,ecx 2954 vmovdqa XMMWORD[48+rsp],xmm7 2955 mov r13d,r8d 2956 jmp NEAR $L$avx_00_47 2957 2958ALIGN 16 2959$L$avx_00_47: 2960 sub rbp,-128 2961 vpalignr xmm4,xmm1,xmm0,4 2962 shrd r13d,r13d,14 2963 mov eax,r14d 2964 mov r12d,r9d 2965 vpalignr xmm7,xmm3,xmm2,4 2966 shrd r14d,r14d,9 2967 xor r13d,r8d 2968 xor r12d,r10d 2969 vpsrld xmm6,xmm4,7 2970 shrd r13d,r13d,5 2971 xor r14d,eax 2972 and r12d,r8d 2973 vpaddd xmm0,xmm0,xmm7 2974 xor r13d,r8d 2975 add r11d,DWORD[rsp] 2976 mov r15d,eax 2977 vpsrld xmm7,xmm4,3 2978 xor r12d,r10d 2979 shrd r14d,r14d,11 2980 xor r15d,ebx 2981 vpslld xmm5,xmm4,14 2982 add r11d,r12d 2983 shrd r13d,r13d,6 2984 and edi,r15d 2985 vpxor xmm4,xmm7,xmm6 2986 xor r14d,eax 2987 add r11d,r13d 2988 xor edi,ebx 2989 vpshufd xmm7,xmm3,250 2990 shrd r14d,r14d,2 2991 add edx,r11d 2992 add r11d,edi 2993 vpsrld xmm6,xmm6,11 2994 mov r13d,edx 2995 add r14d,r11d 2996 shrd r13d,r13d,14 2997 vpxor xmm4,xmm4,xmm5 2998 mov r11d,r14d 2999 mov r12d,r8d 3000 shrd r14d,r14d,9 3001 vpslld xmm5,xmm5,11 3002 xor r13d,edx 3003 xor r12d,r9d 3004 shrd r13d,r13d,5 3005 vpxor xmm4,xmm4,xmm6 3006 xor r14d,r11d 3007 and r12d,edx 3008 xor r13d,edx 3009 vpsrld xmm6,xmm7,10 3010 add r10d,DWORD[4+rsp] 3011 mov edi,r11d 3012 xor r12d,r9d 3013 vpxor xmm4,xmm4,xmm5 3014 shrd r14d,r14d,11 3015 xor edi,eax 3016 add r10d,r12d 3017 vpsrlq xmm7,xmm7,17 3018 shrd r13d,r13d,6 3019 and r15d,edi 3020 xor r14d,r11d 3021 vpaddd xmm0,xmm0,xmm4 3022 add r10d,r13d 3023 xor r15d,eax 3024 shrd r14d,r14d,2 3025 vpxor xmm6,xmm6,xmm7 3026 add ecx,r10d 3027 add r10d,r15d 3028 mov r13d,ecx 3029 vpsrlq xmm7,xmm7,2 3030 add r14d,r10d 3031 shrd r13d,r13d,14 3032 mov r10d,r14d 3033 vpxor xmm6,xmm6,xmm7 3034 mov r12d,edx 3035 shrd r14d,r14d,9 3036 xor r13d,ecx 3037 vpshufb xmm6,xmm6,xmm8 3038 xor r12d,r8d 3039 shrd r13d,r13d,5 3040 xor r14d,r10d 3041 vpaddd xmm0,xmm0,xmm6 3042 and r12d,ecx 3043 xor r13d,ecx 3044 add r9d,DWORD[8+rsp] 3045 vpshufd xmm7,xmm0,80 3046 mov r15d,r10d 3047 xor r12d,r8d 3048 shrd r14d,r14d,11 3049 vpsrld xmm6,xmm7,10 3050 xor r15d,r11d 3051 add r9d,r12d 3052 shrd r13d,r13d,6 3053 vpsrlq xmm7,xmm7,17 3054 and edi,r15d 3055 xor r14d,r10d 3056 add r9d,r13d 3057 vpxor xmm6,xmm6,xmm7 3058 xor edi,r11d 3059 shrd r14d,r14d,2 3060 add ebx,r9d 3061 vpsrlq xmm7,xmm7,2 3062 add r9d,edi 3063 mov r13d,ebx 3064 add r14d,r9d 3065 vpxor xmm6,xmm6,xmm7 3066 shrd r13d,r13d,14 3067 mov r9d,r14d 3068 mov r12d,ecx 3069 vpshufb xmm6,xmm6,xmm9 3070 shrd r14d,r14d,9 3071 xor r13d,ebx 3072 xor r12d,edx 3073 vpaddd xmm0,xmm0,xmm6 3074 shrd r13d,r13d,5 3075 xor r14d,r9d 3076 and r12d,ebx 3077 vpaddd xmm6,xmm0,XMMWORD[rbp] 3078 xor r13d,ebx 3079 add r8d,DWORD[12+rsp] 3080 mov edi,r9d 3081 xor r12d,edx 3082 shrd r14d,r14d,11 3083 xor edi,r10d 3084 add r8d,r12d 3085 shrd r13d,r13d,6 3086 and r15d,edi 3087 xor r14d,r9d 3088 add r8d,r13d 3089 xor r15d,r10d 3090 shrd r14d,r14d,2 3091 add eax,r8d 3092 add r8d,r15d 3093 mov r13d,eax 3094 add r14d,r8d 3095 vmovdqa XMMWORD[rsp],xmm6 3096 vpalignr xmm4,xmm2,xmm1,4 3097 shrd r13d,r13d,14 3098 mov r8d,r14d 3099 mov r12d,ebx 3100 vpalignr xmm7,xmm0,xmm3,4 3101 shrd r14d,r14d,9 3102 xor r13d,eax 3103 xor r12d,ecx 3104 vpsrld xmm6,xmm4,7 3105 shrd r13d,r13d,5 3106 xor r14d,r8d 3107 and r12d,eax 3108 vpaddd xmm1,xmm1,xmm7 3109 xor r13d,eax 3110 add edx,DWORD[16+rsp] 3111 mov r15d,r8d 3112 vpsrld xmm7,xmm4,3 3113 xor r12d,ecx 3114 shrd r14d,r14d,11 3115 xor r15d,r9d 3116 vpslld xmm5,xmm4,14 3117 add edx,r12d 3118 shrd r13d,r13d,6 3119 and edi,r15d 3120 vpxor xmm4,xmm7,xmm6 3121 xor r14d,r8d 3122 add edx,r13d 3123 xor edi,r9d 3124 vpshufd xmm7,xmm0,250 3125 shrd r14d,r14d,2 3126 add r11d,edx 3127 add edx,edi 3128 vpsrld xmm6,xmm6,11 3129 mov r13d,r11d 3130 add r14d,edx 3131 shrd r13d,r13d,14 3132 vpxor xmm4,xmm4,xmm5 3133 mov edx,r14d 3134 mov r12d,eax 3135 shrd r14d,r14d,9 3136 vpslld xmm5,xmm5,11 3137 xor r13d,r11d 3138 xor r12d,ebx 3139 shrd r13d,r13d,5 3140 vpxor xmm4,xmm4,xmm6 3141 xor r14d,edx 3142 and r12d,r11d 3143 xor r13d,r11d 3144 vpsrld xmm6,xmm7,10 3145 add ecx,DWORD[20+rsp] 3146 mov edi,edx 3147 xor r12d,ebx 3148 vpxor xmm4,xmm4,xmm5 3149 shrd r14d,r14d,11 3150 xor edi,r8d 3151 add ecx,r12d 3152 vpsrlq xmm7,xmm7,17 3153 shrd r13d,r13d,6 3154 and r15d,edi 3155 xor r14d,edx 3156 vpaddd xmm1,xmm1,xmm4 3157 add ecx,r13d 3158 xor r15d,r8d 3159 shrd r14d,r14d,2 3160 vpxor xmm6,xmm6,xmm7 3161 add r10d,ecx 3162 add ecx,r15d 3163 mov r13d,r10d 3164 vpsrlq xmm7,xmm7,2 3165 add r14d,ecx 3166 shrd r13d,r13d,14 3167 mov ecx,r14d 3168 vpxor xmm6,xmm6,xmm7 3169 mov r12d,r11d 3170 shrd r14d,r14d,9 3171 xor r13d,r10d 3172 vpshufb xmm6,xmm6,xmm8 3173 xor r12d,eax 3174 shrd r13d,r13d,5 3175 xor r14d,ecx 3176 vpaddd xmm1,xmm1,xmm6 3177 and r12d,r10d 3178 xor r13d,r10d 3179 add ebx,DWORD[24+rsp] 3180 vpshufd xmm7,xmm1,80 3181 mov r15d,ecx 3182 xor r12d,eax 3183 shrd r14d,r14d,11 3184 vpsrld xmm6,xmm7,10 3185 xor r15d,edx 3186 add ebx,r12d 3187 shrd r13d,r13d,6 3188 vpsrlq xmm7,xmm7,17 3189 and edi,r15d 3190 xor r14d,ecx 3191 add ebx,r13d 3192 vpxor xmm6,xmm6,xmm7 3193 xor edi,edx 3194 shrd r14d,r14d,2 3195 add r9d,ebx 3196 vpsrlq xmm7,xmm7,2 3197 add ebx,edi 3198 mov r13d,r9d 3199 add r14d,ebx 3200 vpxor xmm6,xmm6,xmm7 3201 shrd r13d,r13d,14 3202 mov ebx,r14d 3203 mov r12d,r10d 3204 vpshufb xmm6,xmm6,xmm9 3205 shrd r14d,r14d,9 3206 xor r13d,r9d 3207 xor r12d,r11d 3208 vpaddd xmm1,xmm1,xmm6 3209 shrd r13d,r13d,5 3210 xor r14d,ebx 3211 and r12d,r9d 3212 vpaddd xmm6,xmm1,XMMWORD[32+rbp] 3213 xor r13d,r9d 3214 add eax,DWORD[28+rsp] 3215 mov edi,ebx 3216 xor r12d,r11d 3217 shrd r14d,r14d,11 3218 xor edi,ecx 3219 add eax,r12d 3220 shrd r13d,r13d,6 3221 and r15d,edi 3222 xor r14d,ebx 3223 add eax,r13d 3224 xor r15d,ecx 3225 shrd r14d,r14d,2 3226 add r8d,eax 3227 add eax,r15d 3228 mov r13d,r8d 3229 add r14d,eax 3230 vmovdqa XMMWORD[16+rsp],xmm6 3231 vpalignr xmm4,xmm3,xmm2,4 3232 shrd r13d,r13d,14 3233 mov eax,r14d 3234 mov r12d,r9d 3235 vpalignr xmm7,xmm1,xmm0,4 3236 shrd r14d,r14d,9 3237 xor r13d,r8d 3238 xor r12d,r10d 3239 vpsrld xmm6,xmm4,7 3240 shrd r13d,r13d,5 3241 xor r14d,eax 3242 and r12d,r8d 3243 vpaddd xmm2,xmm2,xmm7 3244 xor r13d,r8d 3245 add r11d,DWORD[32+rsp] 3246 mov r15d,eax 3247 vpsrld xmm7,xmm4,3 3248 xor r12d,r10d 3249 shrd r14d,r14d,11 3250 xor r15d,ebx 3251 vpslld xmm5,xmm4,14 3252 add r11d,r12d 3253 shrd r13d,r13d,6 3254 and edi,r15d 3255 vpxor xmm4,xmm7,xmm6 3256 xor r14d,eax 3257 add r11d,r13d 3258 xor edi,ebx 3259 vpshufd xmm7,xmm1,250 3260 shrd r14d,r14d,2 3261 add edx,r11d 3262 add r11d,edi 3263 vpsrld xmm6,xmm6,11 3264 mov r13d,edx 3265 add r14d,r11d 3266 shrd r13d,r13d,14 3267 vpxor xmm4,xmm4,xmm5 3268 mov r11d,r14d 3269 mov r12d,r8d 3270 shrd r14d,r14d,9 3271 vpslld xmm5,xmm5,11 3272 xor r13d,edx 3273 xor r12d,r9d 3274 shrd r13d,r13d,5 3275 vpxor xmm4,xmm4,xmm6 3276 xor r14d,r11d 3277 and r12d,edx 3278 xor r13d,edx 3279 vpsrld xmm6,xmm7,10 3280 add r10d,DWORD[36+rsp] 3281 mov edi,r11d 3282 xor r12d,r9d 3283 vpxor xmm4,xmm4,xmm5 3284 shrd r14d,r14d,11 3285 xor edi,eax 3286 add r10d,r12d 3287 vpsrlq xmm7,xmm7,17 3288 shrd r13d,r13d,6 3289 and r15d,edi 3290 xor r14d,r11d 3291 vpaddd xmm2,xmm2,xmm4 3292 add r10d,r13d 3293 xor r15d,eax 3294 shrd r14d,r14d,2 3295 vpxor xmm6,xmm6,xmm7 3296 add ecx,r10d 3297 add r10d,r15d 3298 mov r13d,ecx 3299 vpsrlq xmm7,xmm7,2 3300 add r14d,r10d 3301 shrd r13d,r13d,14 3302 mov r10d,r14d 3303 vpxor xmm6,xmm6,xmm7 3304 mov r12d,edx 3305 shrd r14d,r14d,9 3306 xor r13d,ecx 3307 vpshufb xmm6,xmm6,xmm8 3308 xor r12d,r8d 3309 shrd r13d,r13d,5 3310 xor r14d,r10d 3311 vpaddd xmm2,xmm2,xmm6 3312 and r12d,ecx 3313 xor r13d,ecx 3314 add r9d,DWORD[40+rsp] 3315 vpshufd xmm7,xmm2,80 3316 mov r15d,r10d 3317 xor r12d,r8d 3318 shrd r14d,r14d,11 3319 vpsrld xmm6,xmm7,10 3320 xor r15d,r11d 3321 add r9d,r12d 3322 shrd r13d,r13d,6 3323 vpsrlq xmm7,xmm7,17 3324 and edi,r15d 3325 xor r14d,r10d 3326 add r9d,r13d 3327 vpxor xmm6,xmm6,xmm7 3328 xor edi,r11d 3329 shrd r14d,r14d,2 3330 add ebx,r9d 3331 vpsrlq xmm7,xmm7,2 3332 add r9d,edi 3333 mov r13d,ebx 3334 add r14d,r9d 3335 vpxor xmm6,xmm6,xmm7 3336 shrd r13d,r13d,14 3337 mov r9d,r14d 3338 mov r12d,ecx 3339 vpshufb xmm6,xmm6,xmm9 3340 shrd r14d,r14d,9 3341 xor r13d,ebx 3342 xor r12d,edx 3343 vpaddd xmm2,xmm2,xmm6 3344 shrd r13d,r13d,5 3345 xor r14d,r9d 3346 and r12d,ebx 3347 vpaddd xmm6,xmm2,XMMWORD[64+rbp] 3348 xor r13d,ebx 3349 add r8d,DWORD[44+rsp] 3350 mov edi,r9d 3351 xor r12d,edx 3352 shrd r14d,r14d,11 3353 xor edi,r10d 3354 add r8d,r12d 3355 shrd r13d,r13d,6 3356 and r15d,edi 3357 xor r14d,r9d 3358 add r8d,r13d 3359 xor r15d,r10d 3360 shrd r14d,r14d,2 3361 add eax,r8d 3362 add r8d,r15d 3363 mov r13d,eax 3364 add r14d,r8d 3365 vmovdqa XMMWORD[32+rsp],xmm6 3366 vpalignr xmm4,xmm0,xmm3,4 3367 shrd r13d,r13d,14 3368 mov r8d,r14d 3369 mov r12d,ebx 3370 vpalignr xmm7,xmm2,xmm1,4 3371 shrd r14d,r14d,9 3372 xor r13d,eax 3373 xor r12d,ecx 3374 vpsrld xmm6,xmm4,7 3375 shrd r13d,r13d,5 3376 xor r14d,r8d 3377 and r12d,eax 3378 vpaddd xmm3,xmm3,xmm7 3379 xor r13d,eax 3380 add edx,DWORD[48+rsp] 3381 mov r15d,r8d 3382 vpsrld xmm7,xmm4,3 3383 xor r12d,ecx 3384 shrd r14d,r14d,11 3385 xor r15d,r9d 3386 vpslld xmm5,xmm4,14 3387 add edx,r12d 3388 shrd r13d,r13d,6 3389 and edi,r15d 3390 vpxor xmm4,xmm7,xmm6 3391 xor r14d,r8d 3392 add edx,r13d 3393 xor edi,r9d 3394 vpshufd xmm7,xmm2,250 3395 shrd r14d,r14d,2 3396 add r11d,edx 3397 add edx,edi 3398 vpsrld xmm6,xmm6,11 3399 mov r13d,r11d 3400 add r14d,edx 3401 shrd r13d,r13d,14 3402 vpxor xmm4,xmm4,xmm5 3403 mov edx,r14d 3404 mov r12d,eax 3405 shrd r14d,r14d,9 3406 vpslld xmm5,xmm5,11 3407 xor r13d,r11d 3408 xor r12d,ebx 3409 shrd r13d,r13d,5 3410 vpxor xmm4,xmm4,xmm6 3411 xor r14d,edx 3412 and r12d,r11d 3413 xor r13d,r11d 3414 vpsrld xmm6,xmm7,10 3415 add ecx,DWORD[52+rsp] 3416 mov edi,edx 3417 xor r12d,ebx 3418 vpxor xmm4,xmm4,xmm5 3419 shrd r14d,r14d,11 3420 xor edi,r8d 3421 add ecx,r12d 3422 vpsrlq xmm7,xmm7,17 3423 shrd r13d,r13d,6 3424 and r15d,edi 3425 xor r14d,edx 3426 vpaddd xmm3,xmm3,xmm4 3427 add ecx,r13d 3428 xor r15d,r8d 3429 shrd r14d,r14d,2 3430 vpxor xmm6,xmm6,xmm7 3431 add r10d,ecx 3432 add ecx,r15d 3433 mov r13d,r10d 3434 vpsrlq xmm7,xmm7,2 3435 add r14d,ecx 3436 shrd r13d,r13d,14 3437 mov ecx,r14d 3438 vpxor xmm6,xmm6,xmm7 3439 mov r12d,r11d 3440 shrd r14d,r14d,9 3441 xor r13d,r10d 3442 vpshufb xmm6,xmm6,xmm8 3443 xor r12d,eax 3444 shrd r13d,r13d,5 3445 xor r14d,ecx 3446 vpaddd xmm3,xmm3,xmm6 3447 and r12d,r10d 3448 xor r13d,r10d 3449 add ebx,DWORD[56+rsp] 3450 vpshufd xmm7,xmm3,80 3451 mov r15d,ecx 3452 xor r12d,eax 3453 shrd r14d,r14d,11 3454 vpsrld xmm6,xmm7,10 3455 xor r15d,edx 3456 add ebx,r12d 3457 shrd r13d,r13d,6 3458 vpsrlq xmm7,xmm7,17 3459 and edi,r15d 3460 xor r14d,ecx 3461 add ebx,r13d 3462 vpxor xmm6,xmm6,xmm7 3463 xor edi,edx 3464 shrd r14d,r14d,2 3465 add r9d,ebx 3466 vpsrlq xmm7,xmm7,2 3467 add ebx,edi 3468 mov r13d,r9d 3469 add r14d,ebx 3470 vpxor xmm6,xmm6,xmm7 3471 shrd r13d,r13d,14 3472 mov ebx,r14d 3473 mov r12d,r10d 3474 vpshufb xmm6,xmm6,xmm9 3475 shrd r14d,r14d,9 3476 xor r13d,r9d 3477 xor r12d,r11d 3478 vpaddd xmm3,xmm3,xmm6 3479 shrd r13d,r13d,5 3480 xor r14d,ebx 3481 and r12d,r9d 3482 vpaddd xmm6,xmm3,XMMWORD[96+rbp] 3483 xor r13d,r9d 3484 add eax,DWORD[60+rsp] 3485 mov edi,ebx 3486 xor r12d,r11d 3487 shrd r14d,r14d,11 3488 xor edi,ecx 3489 add eax,r12d 3490 shrd r13d,r13d,6 3491 and r15d,edi 3492 xor r14d,ebx 3493 add eax,r13d 3494 xor r15d,ecx 3495 shrd r14d,r14d,2 3496 add r8d,eax 3497 add eax,r15d 3498 mov r13d,r8d 3499 add r14d,eax 3500 vmovdqa XMMWORD[48+rsp],xmm6 3501 cmp BYTE[131+rbp],0 3502 jne NEAR $L$avx_00_47 3503 shrd r13d,r13d,14 3504 mov eax,r14d 3505 mov r12d,r9d 3506 shrd r14d,r14d,9 3507 xor r13d,r8d 3508 xor r12d,r10d 3509 shrd r13d,r13d,5 3510 xor r14d,eax 3511 and r12d,r8d 3512 xor r13d,r8d 3513 add r11d,DWORD[rsp] 3514 mov r15d,eax 3515 xor r12d,r10d 3516 shrd r14d,r14d,11 3517 xor r15d,ebx 3518 add r11d,r12d 3519 shrd r13d,r13d,6 3520 and edi,r15d 3521 xor r14d,eax 3522 add r11d,r13d 3523 xor edi,ebx 3524 shrd r14d,r14d,2 3525 add edx,r11d 3526 add r11d,edi 3527 mov r13d,edx 3528 add r14d,r11d 3529 shrd r13d,r13d,14 3530 mov r11d,r14d 3531 mov r12d,r8d 3532 shrd r14d,r14d,9 3533 xor r13d,edx 3534 xor r12d,r9d 3535 shrd r13d,r13d,5 3536 xor r14d,r11d 3537 and r12d,edx 3538 xor r13d,edx 3539 add r10d,DWORD[4+rsp] 3540 mov edi,r11d 3541 xor r12d,r9d 3542 shrd r14d,r14d,11 3543 xor edi,eax 3544 add r10d,r12d 3545 shrd r13d,r13d,6 3546 and r15d,edi 3547 xor r14d,r11d 3548 add r10d,r13d 3549 xor r15d,eax 3550 shrd r14d,r14d,2 3551 add ecx,r10d 3552 add r10d,r15d 3553 mov r13d,ecx 3554 add r14d,r10d 3555 shrd r13d,r13d,14 3556 mov r10d,r14d 3557 mov r12d,edx 3558 shrd r14d,r14d,9 3559 xor r13d,ecx 3560 xor r12d,r8d 3561 shrd r13d,r13d,5 3562 xor r14d,r10d 3563 and r12d,ecx 3564 xor r13d,ecx 3565 add r9d,DWORD[8+rsp] 3566 mov r15d,r10d 3567 xor r12d,r8d 3568 shrd r14d,r14d,11 3569 xor r15d,r11d 3570 add r9d,r12d 3571 shrd r13d,r13d,6 3572 and edi,r15d 3573 xor r14d,r10d 3574 add r9d,r13d 3575 xor edi,r11d 3576 shrd r14d,r14d,2 3577 add ebx,r9d 3578 add r9d,edi 3579 mov r13d,ebx 3580 add r14d,r9d 3581 shrd r13d,r13d,14 3582 mov r9d,r14d 3583 mov r12d,ecx 3584 shrd r14d,r14d,9 3585 xor r13d,ebx 3586 xor r12d,edx 3587 shrd r13d,r13d,5 3588 xor r14d,r9d 3589 and r12d,ebx 3590 xor r13d,ebx 3591 add r8d,DWORD[12+rsp] 3592 mov edi,r9d 3593 xor r12d,edx 3594 shrd r14d,r14d,11 3595 xor edi,r10d 3596 add r8d,r12d 3597 shrd r13d,r13d,6 3598 and r15d,edi 3599 xor r14d,r9d 3600 add r8d,r13d 3601 xor r15d,r10d 3602 shrd r14d,r14d,2 3603 add eax,r8d 3604 add r8d,r15d 3605 mov r13d,eax 3606 add r14d,r8d 3607 shrd r13d,r13d,14 3608 mov r8d,r14d 3609 mov r12d,ebx 3610 shrd r14d,r14d,9 3611 xor r13d,eax 3612 xor r12d,ecx 3613 shrd r13d,r13d,5 3614 xor r14d,r8d 3615 and r12d,eax 3616 xor r13d,eax 3617 add edx,DWORD[16+rsp] 3618 mov r15d,r8d 3619 xor r12d,ecx 3620 shrd r14d,r14d,11 3621 xor r15d,r9d 3622 add edx,r12d 3623 shrd r13d,r13d,6 3624 and edi,r15d 3625 xor r14d,r8d 3626 add edx,r13d 3627 xor edi,r9d 3628 shrd r14d,r14d,2 3629 add r11d,edx 3630 add edx,edi 3631 mov r13d,r11d 3632 add r14d,edx 3633 shrd r13d,r13d,14 3634 mov edx,r14d 3635 mov r12d,eax 3636 shrd r14d,r14d,9 3637 xor r13d,r11d 3638 xor r12d,ebx 3639 shrd r13d,r13d,5 3640 xor r14d,edx 3641 and r12d,r11d 3642 xor r13d,r11d 3643 add ecx,DWORD[20+rsp] 3644 mov edi,edx 3645 xor r12d,ebx 3646 shrd r14d,r14d,11 3647 xor edi,r8d 3648 add ecx,r12d 3649 shrd r13d,r13d,6 3650 and r15d,edi 3651 xor r14d,edx 3652 add ecx,r13d 3653 xor r15d,r8d 3654 shrd r14d,r14d,2 3655 add r10d,ecx 3656 add ecx,r15d 3657 mov r13d,r10d 3658 add r14d,ecx 3659 shrd r13d,r13d,14 3660 mov ecx,r14d 3661 mov r12d,r11d 3662 shrd r14d,r14d,9 3663 xor r13d,r10d 3664 xor r12d,eax 3665 shrd r13d,r13d,5 3666 xor r14d,ecx 3667 and r12d,r10d 3668 xor r13d,r10d 3669 add ebx,DWORD[24+rsp] 3670 mov r15d,ecx 3671 xor r12d,eax 3672 shrd r14d,r14d,11 3673 xor r15d,edx 3674 add ebx,r12d 3675 shrd r13d,r13d,6 3676 and edi,r15d 3677 xor r14d,ecx 3678 add ebx,r13d 3679 xor edi,edx 3680 shrd r14d,r14d,2 3681 add r9d,ebx 3682 add ebx,edi 3683 mov r13d,r9d 3684 add r14d,ebx 3685 shrd r13d,r13d,14 3686 mov ebx,r14d 3687 mov r12d,r10d 3688 shrd r14d,r14d,9 3689 xor r13d,r9d 3690 xor r12d,r11d 3691 shrd r13d,r13d,5 3692 xor r14d,ebx 3693 and r12d,r9d 3694 xor r13d,r9d 3695 add eax,DWORD[28+rsp] 3696 mov edi,ebx 3697 xor r12d,r11d 3698 shrd r14d,r14d,11 3699 xor edi,ecx 3700 add eax,r12d 3701 shrd r13d,r13d,6 3702 and r15d,edi 3703 xor r14d,ebx 3704 add eax,r13d 3705 xor r15d,ecx 3706 shrd r14d,r14d,2 3707 add r8d,eax 3708 add eax,r15d 3709 mov r13d,r8d 3710 add r14d,eax 3711 shrd r13d,r13d,14 3712 mov eax,r14d 3713 mov r12d,r9d 3714 shrd r14d,r14d,9 3715 xor r13d,r8d 3716 xor r12d,r10d 3717 shrd r13d,r13d,5 3718 xor r14d,eax 3719 and r12d,r8d 3720 xor r13d,r8d 3721 add r11d,DWORD[32+rsp] 3722 mov r15d,eax 3723 xor r12d,r10d 3724 shrd r14d,r14d,11 3725 xor r15d,ebx 3726 add r11d,r12d 3727 shrd r13d,r13d,6 3728 and edi,r15d 3729 xor r14d,eax 3730 add r11d,r13d 3731 xor edi,ebx 3732 shrd r14d,r14d,2 3733 add edx,r11d 3734 add r11d,edi 3735 mov r13d,edx 3736 add r14d,r11d 3737 shrd r13d,r13d,14 3738 mov r11d,r14d 3739 mov r12d,r8d 3740 shrd r14d,r14d,9 3741 xor r13d,edx 3742 xor r12d,r9d 3743 shrd r13d,r13d,5 3744 xor r14d,r11d 3745 and r12d,edx 3746 xor r13d,edx 3747 add r10d,DWORD[36+rsp] 3748 mov edi,r11d 3749 xor r12d,r9d 3750 shrd r14d,r14d,11 3751 xor edi,eax 3752 add r10d,r12d 3753 shrd r13d,r13d,6 3754 and r15d,edi 3755 xor r14d,r11d 3756 add r10d,r13d 3757 xor r15d,eax 3758 shrd r14d,r14d,2 3759 add ecx,r10d 3760 add r10d,r15d 3761 mov r13d,ecx 3762 add r14d,r10d 3763 shrd r13d,r13d,14 3764 mov r10d,r14d 3765 mov r12d,edx 3766 shrd r14d,r14d,9 3767 xor r13d,ecx 3768 xor r12d,r8d 3769 shrd r13d,r13d,5 3770 xor r14d,r10d 3771 and r12d,ecx 3772 xor r13d,ecx 3773 add r9d,DWORD[40+rsp] 3774 mov r15d,r10d 3775 xor r12d,r8d 3776 shrd r14d,r14d,11 3777 xor r15d,r11d 3778 add r9d,r12d 3779 shrd r13d,r13d,6 3780 and edi,r15d 3781 xor r14d,r10d 3782 add r9d,r13d 3783 xor edi,r11d 3784 shrd r14d,r14d,2 3785 add ebx,r9d 3786 add r9d,edi 3787 mov r13d,ebx 3788 add r14d,r9d 3789 shrd r13d,r13d,14 3790 mov r9d,r14d 3791 mov r12d,ecx 3792 shrd r14d,r14d,9 3793 xor r13d,ebx 3794 xor r12d,edx 3795 shrd r13d,r13d,5 3796 xor r14d,r9d 3797 and r12d,ebx 3798 xor r13d,ebx 3799 add r8d,DWORD[44+rsp] 3800 mov edi,r9d 3801 xor r12d,edx 3802 shrd r14d,r14d,11 3803 xor edi,r10d 3804 add r8d,r12d 3805 shrd r13d,r13d,6 3806 and r15d,edi 3807 xor r14d,r9d 3808 add r8d,r13d 3809 xor r15d,r10d 3810 shrd r14d,r14d,2 3811 add eax,r8d 3812 add r8d,r15d 3813 mov r13d,eax 3814 add r14d,r8d 3815 shrd r13d,r13d,14 3816 mov r8d,r14d 3817 mov r12d,ebx 3818 shrd r14d,r14d,9 3819 xor r13d,eax 3820 xor r12d,ecx 3821 shrd r13d,r13d,5 3822 xor r14d,r8d 3823 and r12d,eax 3824 xor r13d,eax 3825 add edx,DWORD[48+rsp] 3826 mov r15d,r8d 3827 xor r12d,ecx 3828 shrd r14d,r14d,11 3829 xor r15d,r9d 3830 add edx,r12d 3831 shrd r13d,r13d,6 3832 and edi,r15d 3833 xor r14d,r8d 3834 add edx,r13d 3835 xor edi,r9d 3836 shrd r14d,r14d,2 3837 add r11d,edx 3838 add edx,edi 3839 mov r13d,r11d 3840 add r14d,edx 3841 shrd r13d,r13d,14 3842 mov edx,r14d 3843 mov r12d,eax 3844 shrd r14d,r14d,9 3845 xor r13d,r11d 3846 xor r12d,ebx 3847 shrd r13d,r13d,5 3848 xor r14d,edx 3849 and r12d,r11d 3850 xor r13d,r11d 3851 add ecx,DWORD[52+rsp] 3852 mov edi,edx 3853 xor r12d,ebx 3854 shrd r14d,r14d,11 3855 xor edi,r8d 3856 add ecx,r12d 3857 shrd r13d,r13d,6 3858 and r15d,edi 3859 xor r14d,edx 3860 add ecx,r13d 3861 xor r15d,r8d 3862 shrd r14d,r14d,2 3863 add r10d,ecx 3864 add ecx,r15d 3865 mov r13d,r10d 3866 add r14d,ecx 3867 shrd r13d,r13d,14 3868 mov ecx,r14d 3869 mov r12d,r11d 3870 shrd r14d,r14d,9 3871 xor r13d,r10d 3872 xor r12d,eax 3873 shrd r13d,r13d,5 3874 xor r14d,ecx 3875 and r12d,r10d 3876 xor r13d,r10d 3877 add ebx,DWORD[56+rsp] 3878 mov r15d,ecx 3879 xor r12d,eax 3880 shrd r14d,r14d,11 3881 xor r15d,edx 3882 add ebx,r12d 3883 shrd r13d,r13d,6 3884 and edi,r15d 3885 xor r14d,ecx 3886 add ebx,r13d 3887 xor edi,edx 3888 shrd r14d,r14d,2 3889 add r9d,ebx 3890 add ebx,edi 3891 mov r13d,r9d 3892 add r14d,ebx 3893 shrd r13d,r13d,14 3894 mov ebx,r14d 3895 mov r12d,r10d 3896 shrd r14d,r14d,9 3897 xor r13d,r9d 3898 xor r12d,r11d 3899 shrd r13d,r13d,5 3900 xor r14d,ebx 3901 and r12d,r9d 3902 xor r13d,r9d 3903 add eax,DWORD[60+rsp] 3904 mov edi,ebx 3905 xor r12d,r11d 3906 shrd r14d,r14d,11 3907 xor edi,ecx 3908 add eax,r12d 3909 shrd r13d,r13d,6 3910 and r15d,edi 3911 xor r14d,ebx 3912 add eax,r13d 3913 xor r15d,ecx 3914 shrd r14d,r14d,2 3915 add r8d,eax 3916 add eax,r15d 3917 mov r13d,r8d 3918 add r14d,eax 3919 mov rdi,QWORD[((64+0))+rsp] 3920 mov eax,r14d 3921 3922 add eax,DWORD[rdi] 3923 lea rsi,[64+rsi] 3924 add ebx,DWORD[4+rdi] 3925 add ecx,DWORD[8+rdi] 3926 add edx,DWORD[12+rdi] 3927 add r8d,DWORD[16+rdi] 3928 add r9d,DWORD[20+rdi] 3929 add r10d,DWORD[24+rdi] 3930 add r11d,DWORD[28+rdi] 3931 3932 cmp rsi,QWORD[((64+16))+rsp] 3933 3934 mov DWORD[rdi],eax 3935 mov DWORD[4+rdi],ebx 3936 mov DWORD[8+rdi],ecx 3937 mov DWORD[12+rdi],edx 3938 mov DWORD[16+rdi],r8d 3939 mov DWORD[20+rdi],r9d 3940 mov DWORD[24+rdi],r10d 3941 mov DWORD[28+rdi],r11d 3942 jb NEAR $L$loop_avx 3943 3944 mov rsi,QWORD[((64+24))+rsp] 3945 vzeroupper 3946 movaps xmm6,XMMWORD[((64+32))+rsp] 3947 movaps xmm7,XMMWORD[((64+48))+rsp] 3948 movaps xmm8,XMMWORD[((64+64))+rsp] 3949 movaps xmm9,XMMWORD[((64+80))+rsp] 3950 mov r15,QWORD[((-48))+rsi] 3951 mov r14,QWORD[((-40))+rsi] 3952 mov r13,QWORD[((-32))+rsi] 3953 mov r12,QWORD[((-24))+rsi] 3954 mov rbp,QWORD[((-16))+rsi] 3955 mov rbx,QWORD[((-8))+rsi] 3956 lea rsp,[rsi] 3957$L$epilogue_avx: 3958 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 3959 mov rsi,QWORD[16+rsp] 3960 DB 0F3h,0C3h ;repret 3961$L$SEH_end_sha256_block_data_order_avx: 3962EXTERN __imp_RtlVirtualUnwind 3963 3964ALIGN 16 3965se_handler: 3966 push rsi 3967 push rdi 3968 push rbx 3969 push rbp 3970 push r12 3971 push r13 3972 push r14 3973 push r15 3974 pushfq 3975 sub rsp,64 3976 3977 mov rax,QWORD[120+r8] 3978 mov rbx,QWORD[248+r8] 3979 3980 mov rsi,QWORD[8+r9] 3981 mov r11,QWORD[56+r9] 3982 3983 mov r10d,DWORD[r11] 3984 lea r10,[r10*1+rsi] 3985 cmp rbx,r10 3986 jb NEAR $L$in_prologue 3987 3988 mov rax,QWORD[152+r8] 3989 3990 mov r10d,DWORD[4+r11] 3991 lea r10,[r10*1+rsi] 3992 cmp rbx,r10 3993 jae NEAR $L$in_prologue 3994 mov rsi,rax 3995 mov rax,QWORD[((64+24))+rax] 3996 3997 mov rbx,QWORD[((-8))+rax] 3998 mov rbp,QWORD[((-16))+rax] 3999 mov r12,QWORD[((-24))+rax] 4000 mov r13,QWORD[((-32))+rax] 4001 mov r14,QWORD[((-40))+rax] 4002 mov r15,QWORD[((-48))+rax] 4003 mov QWORD[144+r8],rbx 4004 mov QWORD[160+r8],rbp 4005 mov QWORD[216+r8],r12 4006 mov QWORD[224+r8],r13 4007 mov QWORD[232+r8],r14 4008 mov QWORD[240+r8],r15 4009 4010 lea r10,[$L$epilogue] 4011 cmp rbx,r10 4012 jb NEAR $L$in_prologue 4013 4014 lea rsi,[((64+32))+rsi] 4015 lea rdi,[512+r8] 4016 mov ecx,8 4017 DD 0xa548f3fc 4018 4019$L$in_prologue: 4020 mov rdi,QWORD[8+rax] 4021 mov rsi,QWORD[16+rax] 4022 mov QWORD[152+r8],rax 4023 mov QWORD[168+r8],rsi 4024 mov QWORD[176+r8],rdi 4025 4026 mov rdi,QWORD[40+r9] 4027 mov rsi,r8 4028 mov ecx,154 4029 DD 0xa548f3fc 4030 4031 mov rsi,r9 4032 xor rcx,rcx 4033 mov rdx,QWORD[8+rsi] 4034 mov r8,QWORD[rsi] 4035 mov r9,QWORD[16+rsi] 4036 mov r10,QWORD[40+rsi] 4037 lea r11,[56+rsi] 4038 lea r12,[24+rsi] 4039 mov QWORD[32+rsp],r10 4040 mov QWORD[40+rsp],r11 4041 mov QWORD[48+rsp],r12 4042 mov QWORD[56+rsp],rcx 4043 call QWORD[__imp_RtlVirtualUnwind] 4044 4045 mov eax,1 4046 add rsp,64 4047 popfq 4048 pop r15 4049 pop r14 4050 pop r13 4051 pop r12 4052 pop rbp 4053 pop rbx 4054 pop rdi 4055 pop rsi 4056 DB 0F3h,0C3h ;repret 4057 4058section .pdata rdata align=4 4059ALIGN 4 4060 DD $L$SEH_begin_sha256_block_data_order wrt ..imagebase 4061 DD $L$SEH_end_sha256_block_data_order wrt ..imagebase 4062 DD $L$SEH_info_sha256_block_data_order wrt ..imagebase 4063 DD $L$SEH_begin_sha256_block_data_order_ssse3 wrt ..imagebase 4064 DD $L$SEH_end_sha256_block_data_order_ssse3 wrt ..imagebase 4065 DD $L$SEH_info_sha256_block_data_order_ssse3 wrt ..imagebase 4066 DD $L$SEH_begin_sha256_block_data_order_avx wrt ..imagebase 4067 DD $L$SEH_end_sha256_block_data_order_avx wrt ..imagebase 4068 DD $L$SEH_info_sha256_block_data_order_avx wrt ..imagebase 4069section .xdata rdata align=8 4070ALIGN 8 4071$L$SEH_info_sha256_block_data_order: 4072DB 9,0,0,0 4073 DD se_handler wrt ..imagebase 4074 DD $L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase 4075$L$SEH_info_sha256_block_data_order_ssse3: 4076DB 9,0,0,0 4077 DD se_handler wrt ..imagebase 4078 DD $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase 4079$L$SEH_info_sha256_block_data_order_avx: 4080DB 9,0,0,0 4081 DD se_handler wrt ..imagebase 4082 DD $L$prologue_avx wrt ..imagebase,$L$epilogue_avx wrt ..imagebase 4083