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