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