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