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