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