1 default rel 2 %define XMMWORD 3 %define YMMWORD 4 %define ZMMWORD 5 section .text code align=64 6 7 EXTERN OPENSSL_ia32cap_P 8 9 global sha1_block_data_order 10 11 ALIGN 16 12 sha1_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 jmp NEAR _ssse3_shortcut 28 29 ALIGN 16 30 $L$ialu: 31 mov rax,rsp 32 push rbx 33 push rbp 34 push r12 35 push r13 36 push r14 37 mov r8,rdi 38 sub rsp,72 39 mov r9,rsi 40 and rsp,-64 41 mov r10,rdx 42 mov QWORD[64+rsp],rax 43 $L$prologue: 44 45 mov esi,DWORD[r8] 46 mov edi,DWORD[4+r8] 47 mov r11d,DWORD[8+r8] 48 mov r12d,DWORD[12+r8] 49 mov r13d,DWORD[16+r8] 50 jmp NEAR $L$loop 51 52 ALIGN 16 53 $L$loop: 54 mov edx,DWORD[r9] 55 bswap edx 56 mov ebp,DWORD[4+r9] 57 mov eax,r12d 58 mov DWORD[rsp],edx 59 mov ecx,esi 60 bswap ebp 61 xor eax,r11d 62 rol ecx,5 63 and eax,edi 64 lea r13d,[1518500249+r13*1+rdx] 65 add r13d,ecx 66 xor eax,r12d 67 rol edi,30 68 add r13d,eax 69 mov r14d,DWORD[8+r9] 70 mov eax,r11d 71 mov DWORD[4+rsp],ebp 72 mov ecx,r13d 73 bswap r14d 74 xor eax,edi 75 rol ecx,5 76 and eax,esi 77 lea r12d,[1518500249+r12*1+rbp] 78 add r12d,ecx 79 xor eax,r11d 80 rol esi,30 81 add r12d,eax 82 mov edx,DWORD[12+r9] 83 mov eax,edi 84 mov DWORD[8+rsp],r14d 85 mov ecx,r12d 86 bswap edx 87 xor eax,esi 88 rol ecx,5 89 and eax,r13d 90 lea r11d,[1518500249+r11*1+r14] 91 add r11d,ecx 92 xor eax,edi 93 rol r13d,30 94 add r11d,eax 95 mov ebp,DWORD[16+r9] 96 mov eax,esi 97 mov DWORD[12+rsp],edx 98 mov ecx,r11d 99 bswap ebp 100 xor eax,r13d 101 rol ecx,5 102 and eax,r12d 103 lea edi,[1518500249+rdi*1+rdx] 104 add edi,ecx 105 xor eax,esi 106 rol r12d,30 107 add edi,eax 108 mov r14d,DWORD[20+r9] 109 mov eax,r13d 110 mov DWORD[16+rsp],ebp 111 mov ecx,edi 112 bswap r14d 113 xor eax,r12d 114 rol ecx,5 115 and eax,r11d 116 lea esi,[1518500249+rsi*1+rbp] 117 add esi,ecx 118 xor eax,r13d 119 rol r11d,30 120 add esi,eax 121 mov edx,DWORD[24+r9] 122 mov eax,r12d 123 mov DWORD[20+rsp],r14d 124 mov ecx,esi 125 bswap edx 126 xor eax,r11d 127 rol ecx,5 128 and eax,edi 129 lea r13d,[1518500249+r13*1+r14] 130 add r13d,ecx 131 xor eax,r12d 132 rol edi,30 133 add r13d,eax 134 mov ebp,DWORD[28+r9] 135 mov eax,r11d 136 mov DWORD[24+rsp],edx 137 mov ecx,r13d 138 bswap ebp 139 xor eax,edi 140 rol ecx,5 141 and eax,esi 142 lea r12d,[1518500249+r12*1+rdx] 143 add r12d,ecx 144 xor eax,r11d 145 rol esi,30 146 add r12d,eax 147 mov r14d,DWORD[32+r9] 148 mov eax,edi 149 mov DWORD[28+rsp],ebp 150 mov ecx,r12d 151 bswap r14d 152 xor eax,esi 153 rol ecx,5 154 and eax,r13d 155 lea r11d,[1518500249+r11*1+rbp] 156 add r11d,ecx 157 xor eax,edi 158 rol r13d,30 159 add r11d,eax 160 mov edx,DWORD[36+r9] 161 mov eax,esi 162 mov DWORD[32+rsp],r14d 163 mov ecx,r11d 164 bswap edx 165 xor eax,r13d 166 rol ecx,5 167 and eax,r12d 168 lea edi,[1518500249+rdi*1+r14] 169 add edi,ecx 170 xor eax,esi 171 rol r12d,30 172 add edi,eax 173 mov ebp,DWORD[40+r9] 174 mov eax,r13d 175 mov DWORD[36+rsp],edx 176 mov ecx,edi 177 bswap ebp 178 xor eax,r12d 179 rol ecx,5 180 and eax,r11d 181 lea esi,[1518500249+rsi*1+rdx] 182 add esi,ecx 183 xor eax,r13d 184 rol r11d,30 185 add esi,eax 186 mov r14d,DWORD[44+r9] 187 mov eax,r12d 188 mov DWORD[40+rsp],ebp 189 mov ecx,esi 190 bswap r14d 191 xor eax,r11d 192 rol ecx,5 193 and eax,edi 194 lea r13d,[1518500249+r13*1+rbp] 195 add r13d,ecx 196 xor eax,r12d 197 rol edi,30 198 add r13d,eax 199 mov edx,DWORD[48+r9] 200 mov eax,r11d 201 mov DWORD[44+rsp],r14d 202 mov ecx,r13d 203 bswap edx 204 xor eax,edi 205 rol ecx,5 206 and eax,esi 207 lea r12d,[1518500249+r12*1+r14] 208 add r12d,ecx 209 xor eax,r11d 210 rol esi,30 211 add r12d,eax 212 mov ebp,DWORD[52+r9] 213 mov eax,edi 214 mov DWORD[48+rsp],edx 215 mov ecx,r12d 216 bswap ebp 217 xor eax,esi 218 rol ecx,5 219 and eax,r13d 220 lea r11d,[1518500249+r11*1+rdx] 221 add r11d,ecx 222 xor eax,edi 223 rol r13d,30 224 add r11d,eax 225 mov r14d,DWORD[56+r9] 226 mov eax,esi 227 mov DWORD[52+rsp],ebp 228 mov ecx,r11d 229 bswap r14d 230 xor eax,r13d 231 rol ecx,5 232 and eax,r12d 233 lea edi,[1518500249+rdi*1+rbp] 234 add edi,ecx 235 xor eax,esi 236 rol r12d,30 237 add edi,eax 238 mov edx,DWORD[60+r9] 239 mov eax,r13d 240 mov DWORD[56+rsp],r14d 241 mov ecx,edi 242 bswap edx 243 xor eax,r12d 244 rol ecx,5 245 and eax,r11d 246 lea esi,[1518500249+rsi*1+r14] 247 add esi,ecx 248 xor eax,r13d 249 rol r11d,30 250 add esi,eax 251 xor ebp,DWORD[rsp] 252 mov eax,r12d 253 mov DWORD[60+rsp],edx 254 mov ecx,esi 255 xor ebp,DWORD[8+rsp] 256 xor eax,r11d 257 rol ecx,5 258 xor ebp,DWORD[32+rsp] 259 and eax,edi 260 lea r13d,[1518500249+r13*1+rdx] 261 rol edi,30 262 xor eax,r12d 263 add r13d,ecx 264 rol ebp,1 265 add r13d,eax 266 xor r14d,DWORD[4+rsp] 267 mov eax,r11d 268 mov DWORD[rsp],ebp 269 mov ecx,r13d 270 xor r14d,DWORD[12+rsp] 271 xor eax,edi 272 rol ecx,5 273 xor r14d,DWORD[36+rsp] 274 and eax,esi 275 lea r12d,[1518500249+r12*1+rbp] 276 rol esi,30 277 xor eax,r11d 278 add r12d,ecx 279 rol r14d,1 280 add r12d,eax 281 xor edx,DWORD[8+rsp] 282 mov eax,edi 283 mov DWORD[4+rsp],r14d 284 mov ecx,r12d 285 xor edx,DWORD[16+rsp] 286 xor eax,esi 287 rol ecx,5 288 xor edx,DWORD[40+rsp] 289 and eax,r13d 290 lea r11d,[1518500249+r11*1+r14] 291 rol r13d,30 292 xor eax,edi 293 add r11d,ecx 294 rol edx,1 295 add r11d,eax 296 xor ebp,DWORD[12+rsp] 297 mov eax,esi 298 mov DWORD[8+rsp],edx 299 mov ecx,r11d 300 xor ebp,DWORD[20+rsp] 301 xor eax,r13d 302 rol ecx,5 303 xor ebp,DWORD[44+rsp] 304 and eax,r12d 305 lea edi,[1518500249+rdi*1+rdx] 306 rol r12d,30 307 xor eax,esi 308 add edi,ecx 309 rol ebp,1 310 add edi,eax 311 xor r14d,DWORD[16+rsp] 312 mov eax,r13d 313 mov DWORD[12+rsp],ebp 314 mov ecx,edi 315 xor r14d,DWORD[24+rsp] 316 xor eax,r12d 317 rol ecx,5 318 xor r14d,DWORD[48+rsp] 319 and eax,r11d 320 lea esi,[1518500249+rsi*1+rbp] 321 rol r11d,30 322 xor eax,r13d 323 add esi,ecx 324 rol r14d,1 325 add esi,eax 326 xor edx,DWORD[20+rsp] 327 mov eax,edi 328 mov DWORD[16+rsp],r14d 329 mov ecx,esi 330 xor edx,DWORD[28+rsp] 331 xor eax,r12d 332 rol ecx,5 333 xor edx,DWORD[52+rsp] 334 lea r13d,[1859775393+r13*1+r14] 335 xor eax,r11d 336 add r13d,ecx 337 rol edi,30 338 add r13d,eax 339 rol edx,1 340 xor ebp,DWORD[24+rsp] 341 mov eax,esi 342 mov DWORD[20+rsp],edx 343 mov ecx,r13d 344 xor ebp,DWORD[32+rsp] 345 xor eax,r11d 346 rol ecx,5 347 xor ebp,DWORD[56+rsp] 348 lea r12d,[1859775393+r12*1+rdx] 349 xor eax,edi 350 add r12d,ecx 351 rol esi,30 352 add r12d,eax 353 rol ebp,1 354 xor r14d,DWORD[28+rsp] 355 mov eax,r13d 356 mov DWORD[24+rsp],ebp 357 mov ecx,r12d 358 xor r14d,DWORD[36+rsp] 359 xor eax,edi 360 rol ecx,5 361 xor r14d,DWORD[60+rsp] 362 lea r11d,[1859775393+r11*1+rbp] 363 xor eax,esi 364 add r11d,ecx 365 rol r13d,30 366 add r11d,eax 367 rol r14d,1 368 xor edx,DWORD[32+rsp] 369 mov eax,r12d 370 mov DWORD[28+rsp],r14d 371 mov ecx,r11d 372 xor edx,DWORD[40+rsp] 373 xor eax,esi 374 rol ecx,5 375 xor edx,DWORD[rsp] 376 lea edi,[1859775393+rdi*1+r14] 377 xor eax,r13d 378 add edi,ecx 379 rol r12d,30 380 add edi,eax 381 rol edx,1 382 xor ebp,DWORD[36+rsp] 383 mov eax,r11d 384 mov DWORD[32+rsp],edx 385 mov ecx,edi 386 xor ebp,DWORD[44+rsp] 387 xor eax,r13d 388 rol ecx,5 389 xor ebp,DWORD[4+rsp] 390 lea esi,[1859775393+rsi*1+rdx] 391 xor eax,r12d 392 add esi,ecx 393 rol r11d,30 394 add esi,eax 395 rol ebp,1 396 xor r14d,DWORD[40+rsp] 397 mov eax,edi 398 mov DWORD[36+rsp],ebp 399 mov ecx,esi 400 xor r14d,DWORD[48+rsp] 401 xor eax,r12d 402 rol ecx,5 403 xor r14d,DWORD[8+rsp] 404 lea r13d,[1859775393+r13*1+rbp] 405 xor eax,r11d 406 add r13d,ecx 407 rol edi,30 408 add r13d,eax 409 rol r14d,1 410 xor edx,DWORD[44+rsp] 411 mov eax,esi 412 mov DWORD[40+rsp],r14d 413 mov ecx,r13d 414 xor edx,DWORD[52+rsp] 415 xor eax,r11d 416 rol ecx,5 417 xor edx,DWORD[12+rsp] 418 lea r12d,[1859775393+r12*1+r14] 419 xor eax,edi 420 add r12d,ecx 421 rol esi,30 422 add r12d,eax 423 rol edx,1 424 xor ebp,DWORD[48+rsp] 425 mov eax,r13d 426 mov DWORD[44+rsp],edx 427 mov ecx,r12d 428 xor ebp,DWORD[56+rsp] 429 xor eax,edi 430 rol ecx,5 431 xor ebp,DWORD[16+rsp] 432 lea r11d,[1859775393+r11*1+rdx] 433 xor eax,esi 434 add r11d,ecx 435 rol r13d,30 436 add r11d,eax 437 rol ebp,1 438 xor r14d,DWORD[52+rsp] 439 mov eax,r12d 440 mov DWORD[48+rsp],ebp 441 mov ecx,r11d 442 xor r14d,DWORD[60+rsp] 443 xor eax,esi 444 rol ecx,5 445 xor r14d,DWORD[20+rsp] 446 lea edi,[1859775393+rdi*1+rbp] 447 xor eax,r13d 448 add edi,ecx 449 rol r12d,30 450 add edi,eax 451 rol r14d,1 452 xor edx,DWORD[56+rsp] 453 mov eax,r11d 454 mov DWORD[52+rsp],r14d 455 mov ecx,edi 456 xor edx,DWORD[rsp] 457 xor eax,r13d 458 rol ecx,5 459 xor edx,DWORD[24+rsp] 460 lea esi,[1859775393+rsi*1+r14] 461 xor eax,r12d 462 add esi,ecx 463 rol r11d,30 464 add esi,eax 465 rol edx,1 466 xor ebp,DWORD[60+rsp] 467 mov eax,edi 468 mov DWORD[56+rsp],edx 469 mov ecx,esi 470 xor ebp,DWORD[4+rsp] 471 xor eax,r12d 472 rol ecx,5 473 xor ebp,DWORD[28+rsp] 474 lea r13d,[1859775393+r13*1+rdx] 475 xor eax,r11d 476 add r13d,ecx 477 rol edi,30 478 add r13d,eax 479 rol ebp,1 480 xor r14d,DWORD[rsp] 481 mov eax,esi 482 mov DWORD[60+rsp],ebp 483 mov ecx,r13d 484 xor r14d,DWORD[8+rsp] 485 xor eax,r11d 486 rol ecx,5 487 xor r14d,DWORD[32+rsp] 488 lea r12d,[1859775393+r12*1+rbp] 489 xor eax,edi 490 add r12d,ecx 491 rol esi,30 492 add r12d,eax 493 rol r14d,1 494 xor edx,DWORD[4+rsp] 495 mov eax,r13d 496 mov DWORD[rsp],r14d 497 mov ecx,r12d 498 xor edx,DWORD[12+rsp] 499 xor eax,edi 500 rol ecx,5 501 xor edx,DWORD[36+rsp] 502 lea r11d,[1859775393+r11*1+r14] 503 xor eax,esi 504 add r11d,ecx 505 rol r13d,30 506 add r11d,eax 507 rol edx,1 508 xor ebp,DWORD[8+rsp] 509 mov eax,r12d 510 mov DWORD[4+rsp],edx 511 mov ecx,r11d 512 xor ebp,DWORD[16+rsp] 513 xor eax,esi 514 rol ecx,5 515 xor ebp,DWORD[40+rsp] 516 lea edi,[1859775393+rdi*1+rdx] 517 xor eax,r13d 518 add edi,ecx 519 rol r12d,30 520 add edi,eax 521 rol ebp,1 522 xor r14d,DWORD[12+rsp] 523 mov eax,r11d 524 mov DWORD[8+rsp],ebp 525 mov ecx,edi 526 xor r14d,DWORD[20+rsp] 527 xor eax,r13d 528 rol ecx,5 529 xor r14d,DWORD[44+rsp] 530 lea esi,[1859775393+rsi*1+rbp] 531 xor eax,r12d 532 add esi,ecx 533 rol r11d,30 534 add esi,eax 535 rol r14d,1 536 xor edx,DWORD[16+rsp] 537 mov eax,edi 538 mov DWORD[12+rsp],r14d 539 mov ecx,esi 540 xor edx,DWORD[24+rsp] 541 xor eax,r12d 542 rol ecx,5 543 xor edx,DWORD[48+rsp] 544 lea r13d,[1859775393+r13*1+r14] 545 xor eax,r11d 546 add r13d,ecx 547 rol edi,30 548 add r13d,eax 549 rol edx,1 550 xor ebp,DWORD[20+rsp] 551 mov eax,esi 552 mov DWORD[16+rsp],edx 553 mov ecx,r13d 554 xor ebp,DWORD[28+rsp] 555 xor eax,r11d 556 rol ecx,5 557 xor ebp,DWORD[52+rsp] 558 lea r12d,[1859775393+r12*1+rdx] 559 xor eax,edi 560 add r12d,ecx 561 rol esi,30 562 add r12d,eax 563 rol ebp,1 564 xor r14d,DWORD[24+rsp] 565 mov eax,r13d 566 mov DWORD[20+rsp],ebp 567 mov ecx,r12d 568 xor r14d,DWORD[32+rsp] 569 xor eax,edi 570 rol ecx,5 571 xor r14d,DWORD[56+rsp] 572 lea r11d,[1859775393+r11*1+rbp] 573 xor eax,esi 574 add r11d,ecx 575 rol r13d,30 576 add r11d,eax 577 rol r14d,1 578 xor edx,DWORD[28+rsp] 579 mov eax,r12d 580 mov DWORD[24+rsp],r14d 581 mov ecx,r11d 582 xor edx,DWORD[36+rsp] 583 xor eax,esi 584 rol ecx,5 585 xor edx,DWORD[60+rsp] 586 lea edi,[1859775393+rdi*1+r14] 587 xor eax,r13d 588 add edi,ecx 589 rol r12d,30 590 add edi,eax 591 rol edx,1 592 xor ebp,DWORD[32+rsp] 593 mov eax,r11d 594 mov DWORD[28+rsp],edx 595 mov ecx,edi 596 xor ebp,DWORD[40+rsp] 597 xor eax,r13d 598 rol ecx,5 599 xor ebp,DWORD[rsp] 600 lea esi,[1859775393+rsi*1+rdx] 601 xor eax,r12d 602 add esi,ecx 603 rol r11d,30 604 add esi,eax 605 rol ebp,1 606 xor r14d,DWORD[36+rsp] 607 mov eax,r12d 608 mov DWORD[32+rsp],ebp 609 mov ebx,r12d 610 xor r14d,DWORD[44+rsp] 611 and eax,r11d 612 mov ecx,esi 613 xor r14d,DWORD[4+rsp] 614 lea r13d,[((-1894007588))+r13*1+rbp] 615 xor ebx,r11d 616 rol ecx,5 617 add r13d,eax 618 rol r14d,1 619 and ebx,edi 620 add r13d,ecx 621 rol edi,30 622 add r13d,ebx 623 xor edx,DWORD[40+rsp] 624 mov eax,r11d 625 mov DWORD[36+rsp],r14d 626 mov ebx,r11d 627 xor edx,DWORD[48+rsp] 628 and eax,edi 629 mov ecx,r13d 630 xor edx,DWORD[8+rsp] 631 lea r12d,[((-1894007588))+r12*1+r14] 632 xor ebx,edi 633 rol ecx,5 634 add r12d,eax 635 rol edx,1 636 and ebx,esi 637 add r12d,ecx 638 rol esi,30 639 add r12d,ebx 640 xor ebp,DWORD[44+rsp] 641 mov eax,edi 642 mov DWORD[40+rsp],edx 643 mov ebx,edi 644 xor ebp,DWORD[52+rsp] 645 and eax,esi 646 mov ecx,r12d 647 xor ebp,DWORD[12+rsp] 648 lea r11d,[((-1894007588))+r11*1+rdx] 649 xor ebx,esi 650 rol ecx,5 651 add r11d,eax 652 rol ebp,1 653 and ebx,r13d 654 add r11d,ecx 655 rol r13d,30 656 add r11d,ebx 657 xor r14d,DWORD[48+rsp] 658 mov eax,esi 659 mov DWORD[44+rsp],ebp 660 mov ebx,esi 661 xor r14d,DWORD[56+rsp] 662 and eax,r13d 663 mov ecx,r11d 664 xor r14d,DWORD[16+rsp] 665 lea edi,[((-1894007588))+rdi*1+rbp] 666 xor ebx,r13d 667 rol ecx,5 668 add edi,eax 669 rol r14d,1 670 and ebx,r12d 671 add edi,ecx 672 rol r12d,30 673 add edi,ebx 674 xor edx,DWORD[52+rsp] 675 mov eax,r13d 676 mov DWORD[48+rsp],r14d 677 mov ebx,r13d 678 xor edx,DWORD[60+rsp] 679 and eax,r12d 680 mov ecx,edi 681 xor edx,DWORD[20+rsp] 682 lea esi,[((-1894007588))+rsi*1+r14] 683 xor ebx,r12d 684 rol ecx,5 685 add esi,eax 686 rol edx,1 687 and ebx,r11d 688 add esi,ecx 689 rol r11d,30 690 add esi,ebx 691 xor ebp,DWORD[56+rsp] 692 mov eax,r12d 693 mov DWORD[52+rsp],edx 694 mov ebx,r12d 695 xor ebp,DWORD[rsp] 696 and eax,r11d 697 mov ecx,esi 698 xor ebp,DWORD[24+rsp] 699 lea r13d,[((-1894007588))+r13*1+rdx] 700 xor ebx,r11d 701 rol ecx,5 702 add r13d,eax 703 rol ebp,1 704 and ebx,edi 705 add r13d,ecx 706 rol edi,30 707 add r13d,ebx 708 xor r14d,DWORD[60+rsp] 709 mov eax,r11d 710 mov DWORD[56+rsp],ebp 711 mov ebx,r11d 712 xor r14d,DWORD[4+rsp] 713 and eax,edi 714 mov ecx,r13d 715 xor r14d,DWORD[28+rsp] 716 lea r12d,[((-1894007588))+r12*1+rbp] 717 xor ebx,edi 718 rol ecx,5 719 add r12d,eax 720 rol r14d,1 721 and ebx,esi 722 add r12d,ecx 723 rol esi,30 724 add r12d,ebx 725 xor edx,DWORD[rsp] 726 mov eax,edi 727 mov DWORD[60+rsp],r14d 728 mov ebx,edi 729 xor edx,DWORD[8+rsp] 730 and eax,esi 731 mov ecx,r12d 732 xor edx,DWORD[32+rsp] 733 lea r11d,[((-1894007588))+r11*1+r14] 734 xor ebx,esi 735 rol ecx,5 736 add r11d,eax 737 rol edx,1 738 and ebx,r13d 739 add r11d,ecx 740 rol r13d,30 741 add r11d,ebx 742 xor ebp,DWORD[4+rsp] 743 mov eax,esi 744 mov DWORD[rsp],edx 745 mov ebx,esi 746 xor ebp,DWORD[12+rsp] 747 and eax,r13d 748 mov ecx,r11d 749 xor ebp,DWORD[36+rsp] 750 lea edi,[((-1894007588))+rdi*1+rdx] 751 xor ebx,r13d 752 rol ecx,5 753 add edi,eax 754 rol ebp,1 755 and ebx,r12d 756 add edi,ecx 757 rol r12d,30 758 add edi,ebx 759 xor r14d,DWORD[8+rsp] 760 mov eax,r13d 761 mov DWORD[4+rsp],ebp 762 mov ebx,r13d 763 xor r14d,DWORD[16+rsp] 764 and eax,r12d 765 mov ecx,edi 766 xor r14d,DWORD[40+rsp] 767 lea esi,[((-1894007588))+rsi*1+rbp] 768 xor ebx,r12d 769 rol ecx,5 770 add esi,eax 771 rol r14d,1 772 and ebx,r11d 773 add esi,ecx 774 rol r11d,30 775 add esi,ebx 776 xor edx,DWORD[12+rsp] 777 mov eax,r12d 778 mov DWORD[8+rsp],r14d 779 mov ebx,r12d 780 xor edx,DWORD[20+rsp] 781 and eax,r11d 782 mov ecx,esi 783 xor edx,DWORD[44+rsp] 784 lea r13d,[((-1894007588))+r13*1+r14] 785 xor ebx,r11d 786 rol ecx,5 787 add r13d,eax 788 rol edx,1 789 and ebx,edi 790 add r13d,ecx 791 rol edi,30 792 add r13d,ebx 793 xor ebp,DWORD[16+rsp] 794 mov eax,r11d 795 mov DWORD[12+rsp],edx 796 mov ebx,r11d 797 xor ebp,DWORD[24+rsp] 798 and eax,edi 799 mov ecx,r13d 800 xor ebp,DWORD[48+rsp] 801 lea r12d,[((-1894007588))+r12*1+rdx] 802 xor ebx,edi 803 rol ecx,5 804 add r12d,eax 805 rol ebp,1 806 and ebx,esi 807 add r12d,ecx 808 rol esi,30 809 add r12d,ebx 810 xor r14d,DWORD[20+rsp] 811 mov eax,edi 812 mov DWORD[16+rsp],ebp 813 mov ebx,edi 814 xor r14d,DWORD[28+rsp] 815 and eax,esi 816 mov ecx,r12d 817 xor r14d,DWORD[52+rsp] 818 lea r11d,[((-1894007588))+r11*1+rbp] 819 xor ebx,esi 820 rol ecx,5 821 add r11d,eax 822 rol r14d,1 823 and ebx,r13d 824 add r11d,ecx 825 rol r13d,30 826 add r11d,ebx 827 xor edx,DWORD[24+rsp] 828 mov eax,esi 829 mov DWORD[20+rsp],r14d 830 mov ebx,esi 831 xor edx,DWORD[32+rsp] 832 and eax,r13d 833 mov ecx,r11d 834 xor edx,DWORD[56+rsp] 835 lea edi,[((-1894007588))+rdi*1+r14] 836 xor ebx,r13d 837 rol ecx,5 838 add edi,eax 839 rol edx,1 840 and ebx,r12d 841 add edi,ecx 842 rol r12d,30 843 add edi,ebx 844 xor ebp,DWORD[28+rsp] 845 mov eax,r13d 846 mov DWORD[24+rsp],edx 847 mov ebx,r13d 848 xor ebp,DWORD[36+rsp] 849 and eax,r12d 850 mov ecx,edi 851 xor ebp,DWORD[60+rsp] 852 lea esi,[((-1894007588))+rsi*1+rdx] 853 xor ebx,r12d 854 rol ecx,5 855 add esi,eax 856 rol ebp,1 857 and ebx,r11d 858 add esi,ecx 859 rol r11d,30 860 add esi,ebx 861 xor r14d,DWORD[32+rsp] 862 mov eax,r12d 863 mov DWORD[28+rsp],ebp 864 mov ebx,r12d 865 xor r14d,DWORD[40+rsp] 866 and eax,r11d 867 mov ecx,esi 868 xor r14d,DWORD[rsp] 869 lea r13d,[((-1894007588))+r13*1+rbp] 870 xor ebx,r11d 871 rol ecx,5 872 add r13d,eax 873 rol r14d,1 874 and ebx,edi 875 add r13d,ecx 876 rol edi,30 877 add r13d,ebx 878 xor edx,DWORD[36+rsp] 879 mov eax,r11d 880 mov DWORD[32+rsp],r14d 881 mov ebx,r11d 882 xor edx,DWORD[44+rsp] 883 and eax,edi 884 mov ecx,r13d 885 xor edx,DWORD[4+rsp] 886 lea r12d,[((-1894007588))+r12*1+r14] 887 xor ebx,edi 888 rol ecx,5 889 add r12d,eax 890 rol edx,1 891 and ebx,esi 892 add r12d,ecx 893 rol esi,30 894 add r12d,ebx 895 xor ebp,DWORD[40+rsp] 896 mov eax,edi 897 mov DWORD[36+rsp],edx 898 mov ebx,edi 899 xor ebp,DWORD[48+rsp] 900 and eax,esi 901 mov ecx,r12d 902 xor ebp,DWORD[8+rsp] 903 lea r11d,[((-1894007588))+r11*1+rdx] 904 xor ebx,esi 905 rol ecx,5 906 add r11d,eax 907 rol ebp,1 908 and ebx,r13d 909 add r11d,ecx 910 rol r13d,30 911 add r11d,ebx 912 xor r14d,DWORD[44+rsp] 913 mov eax,esi 914 mov DWORD[40+rsp],ebp 915 mov ebx,esi 916 xor r14d,DWORD[52+rsp] 917 and eax,r13d 918 mov ecx,r11d 919 xor r14d,DWORD[12+rsp] 920 lea edi,[((-1894007588))+rdi*1+rbp] 921 xor ebx,r13d 922 rol ecx,5 923 add edi,eax 924 rol r14d,1 925 and ebx,r12d 926 add edi,ecx 927 rol r12d,30 928 add edi,ebx 929 xor edx,DWORD[48+rsp] 930 mov eax,r13d 931 mov DWORD[44+rsp],r14d 932 mov ebx,r13d 933 xor edx,DWORD[56+rsp] 934 and eax,r12d 935 mov ecx,edi 936 xor edx,DWORD[16+rsp] 937 lea esi,[((-1894007588))+rsi*1+r14] 938 xor ebx,r12d 939 rol ecx,5 940 add esi,eax 941 rol edx,1 942 and ebx,r11d 943 add esi,ecx 944 rol r11d,30 945 add esi,ebx 946 xor ebp,DWORD[52+rsp] 947 mov eax,edi 948 mov DWORD[48+rsp],edx 949 mov ecx,esi 950 xor ebp,DWORD[60+rsp] 951 xor eax,r12d 952 rol ecx,5 953 xor ebp,DWORD[20+rsp] 954 lea r13d,[((-899497514))+r13*1+rdx] 955 xor eax,r11d 956 add r13d,ecx 957 rol edi,30 958 add r13d,eax 959 rol ebp,1 960 xor r14d,DWORD[56+rsp] 961 mov eax,esi 962 mov DWORD[52+rsp],ebp 963 mov ecx,r13d 964 xor r14d,DWORD[rsp] 965 xor eax,r11d 966 rol ecx,5 967 xor r14d,DWORD[24+rsp] 968 lea r12d,[((-899497514))+r12*1+rbp] 969 xor eax,edi 970 add r12d,ecx 971 rol esi,30 972 add r12d,eax 973 rol r14d,1 974 xor edx,DWORD[60+rsp] 975 mov eax,r13d 976 mov DWORD[56+rsp],r14d 977 mov ecx,r12d 978 xor edx,DWORD[4+rsp] 979 xor eax,edi 980 rol ecx,5 981 xor edx,DWORD[28+rsp] 982 lea r11d,[((-899497514))+r11*1+r14] 983 xor eax,esi 984 add r11d,ecx 985 rol r13d,30 986 add r11d,eax 987 rol edx,1 988 xor ebp,DWORD[rsp] 989 mov eax,r12d 990 mov DWORD[60+rsp],edx 991 mov ecx,r11d 992 xor ebp,DWORD[8+rsp] 993 xor eax,esi 994 rol ecx,5 995 xor ebp,DWORD[32+rsp] 996 lea edi,[((-899497514))+rdi*1+rdx] 997 xor eax,r13d 998 add edi,ecx 999 rol r12d,30 1000 add edi,eax 1001 rol ebp,1 1002 xor r14d,DWORD[4+rsp] 1003 mov eax,r11d 1004 mov DWORD[rsp],ebp 1005 mov ecx,edi 1006 xor r14d,DWORD[12+rsp] 1007 xor eax,r13d 1008 rol ecx,5 1009 xor r14d,DWORD[36+rsp] 1010 lea esi,[((-899497514))+rsi*1+rbp] 1011 xor eax,r12d 1012 add esi,ecx 1013 rol r11d,30 1014 add esi,eax 1015 rol r14d,1 1016 xor edx,DWORD[8+rsp] 1017 mov eax,edi 1018 mov DWORD[4+rsp],r14d 1019 mov ecx,esi 1020 xor edx,DWORD[16+rsp] 1021 xor eax,r12d 1022 rol ecx,5 1023 xor edx,DWORD[40+rsp] 1024 lea r13d,[((-899497514))+r13*1+r14] 1025 xor eax,r11d 1026 add r13d,ecx 1027 rol edi,30 1028 add r13d,eax 1029 rol edx,1 1030 xor ebp,DWORD[12+rsp] 1031 mov eax,esi 1032 mov DWORD[8+rsp],edx 1033 mov ecx,r13d 1034 xor ebp,DWORD[20+rsp] 1035 xor eax,r11d 1036 rol ecx,5 1037 xor ebp,DWORD[44+rsp] 1038 lea r12d,[((-899497514))+r12*1+rdx] 1039 xor eax,edi 1040 add r12d,ecx 1041 rol esi,30 1042 add r12d,eax 1043 rol ebp,1 1044 xor r14d,DWORD[16+rsp] 1045 mov eax,r13d 1046 mov DWORD[12+rsp],ebp 1047 mov ecx,r12d 1048 xor r14d,DWORD[24+rsp] 1049 xor eax,edi 1050 rol ecx,5 1051 xor r14d,DWORD[48+rsp] 1052 lea r11d,[((-899497514))+r11*1+rbp] 1053 xor eax,esi 1054 add r11d,ecx 1055 rol r13d,30 1056 add r11d,eax 1057 rol r14d,1 1058 xor edx,DWORD[20+rsp] 1059 mov eax,r12d 1060 mov DWORD[16+rsp],r14d 1061 mov ecx,r11d 1062 xor edx,DWORD[28+rsp] 1063 xor eax,esi 1064 rol ecx,5 1065 xor edx,DWORD[52+rsp] 1066 lea edi,[((-899497514))+rdi*1+r14] 1067 xor eax,r13d 1068 add edi,ecx 1069 rol r12d,30 1070 add edi,eax 1071 rol edx,1 1072 xor ebp,DWORD[24+rsp] 1073 mov eax,r11d 1074 mov DWORD[20+rsp],edx 1075 mov ecx,edi 1076 xor ebp,DWORD[32+rsp] 1077 xor eax,r13d 1078 rol ecx,5 1079 xor ebp,DWORD[56+rsp] 1080 lea esi,[((-899497514))+rsi*1+rdx] 1081 xor eax,r12d 1082 add esi,ecx 1083 rol r11d,30 1084 add esi,eax 1085 rol ebp,1 1086 xor r14d,DWORD[28+rsp] 1087 mov eax,edi 1088 mov DWORD[24+rsp],ebp 1089 mov ecx,esi 1090 xor r14d,DWORD[36+rsp] 1091 xor eax,r12d 1092 rol ecx,5 1093 xor r14d,DWORD[60+rsp] 1094 lea r13d,[((-899497514))+r13*1+rbp] 1095 xor eax,r11d 1096 add r13d,ecx 1097 rol edi,30 1098 add r13d,eax 1099 rol r14d,1 1100 xor edx,DWORD[32+rsp] 1101 mov eax,esi 1102 mov DWORD[28+rsp],r14d 1103 mov ecx,r13d 1104 xor edx,DWORD[40+rsp] 1105 xor eax,r11d 1106 rol ecx,5 1107 xor edx,DWORD[rsp] 1108 lea r12d,[((-899497514))+r12*1+r14] 1109 xor eax,edi 1110 add r12d,ecx 1111 rol esi,30 1112 add r12d,eax 1113 rol edx,1 1114 xor ebp,DWORD[36+rsp] 1115 mov eax,r13d 1116 1117 mov ecx,r12d 1118 xor ebp,DWORD[44+rsp] 1119 xor eax,edi 1120 rol ecx,5 1121 xor ebp,DWORD[4+rsp] 1122 lea r11d,[((-899497514))+r11*1+rdx] 1123 xor eax,esi 1124 add r11d,ecx 1125 rol r13d,30 1126 add r11d,eax 1127 rol ebp,1 1128 xor r14d,DWORD[40+rsp] 1129 mov eax,r12d 1130 1131 mov ecx,r11d 1132 xor r14d,DWORD[48+rsp] 1133 xor eax,esi 1134 rol ecx,5 1135 xor r14d,DWORD[8+rsp] 1136 lea edi,[((-899497514))+rdi*1+rbp] 1137 xor eax,r13d 1138 add edi,ecx 1139 rol r12d,30 1140 add edi,eax 1141 rol r14d,1 1142 xor edx,DWORD[44+rsp] 1143 mov eax,r11d 1144 1145 mov ecx,edi 1146 xor edx,DWORD[52+rsp] 1147 xor eax,r13d 1148 rol ecx,5 1149 xor edx,DWORD[12+rsp] 1150 lea esi,[((-899497514))+rsi*1+r14] 1151 xor eax,r12d 1152 add esi,ecx 1153 rol r11d,30 1154 add esi,eax 1155 rol edx,1 1156 xor ebp,DWORD[48+rsp] 1157 mov eax,edi 1158 1159 mov ecx,esi 1160 xor ebp,DWORD[56+rsp] 1161 xor eax,r12d 1162 rol ecx,5 1163 xor ebp,DWORD[16+rsp] 1164 lea r13d,[((-899497514))+r13*1+rdx] 1165 xor eax,r11d 1166 add r13d,ecx 1167 rol edi,30 1168 add r13d,eax 1169 rol ebp,1 1170 xor r14d,DWORD[52+rsp] 1171 mov eax,esi 1172 1173 mov ecx,r13d 1174 xor r14d,DWORD[60+rsp] 1175 xor eax,r11d 1176 rol ecx,5 1177 xor r14d,DWORD[20+rsp] 1178 lea r12d,[((-899497514))+r12*1+rbp] 1179 xor eax,edi 1180 add r12d,ecx 1181 rol esi,30 1182 add r12d,eax 1183 rol r14d,1 1184 xor edx,DWORD[56+rsp] 1185 mov eax,r13d 1186 1187 mov ecx,r12d 1188 xor edx,DWORD[rsp] 1189 xor eax,edi 1190 rol ecx,5 1191 xor edx,DWORD[24+rsp] 1192 lea r11d,[((-899497514))+r11*1+r14] 1193 xor eax,esi 1194 add r11d,ecx 1195 rol r13d,30 1196 add r11d,eax 1197 rol edx,1 1198 xor ebp,DWORD[60+rsp] 1199 mov eax,r12d 1200 1201 mov ecx,r11d 1202 xor ebp,DWORD[4+rsp] 1203 xor eax,esi 1204 rol ecx,5 1205 xor ebp,DWORD[28+rsp] 1206 lea edi,[((-899497514))+rdi*1+rdx] 1207 xor eax,r13d 1208 add edi,ecx 1209 rol r12d,30 1210 add edi,eax 1211 rol ebp,1 1212 mov eax,r11d 1213 mov ecx,edi 1214 xor eax,r13d 1215 lea esi,[((-899497514))+rsi*1+rbp] 1216 rol ecx,5 1217 xor eax,r12d 1218 add esi,ecx 1219 rol r11d,30 1220 add esi,eax 1221 add esi,DWORD[r8] 1222 add edi,DWORD[4+r8] 1223 add r11d,DWORD[8+r8] 1224 add r12d,DWORD[12+r8] 1225 add r13d,DWORD[16+r8] 1226 mov DWORD[r8],esi 1227 mov DWORD[4+r8],edi 1228 mov DWORD[8+r8],r11d 1229 mov DWORD[12+r8],r12d 1230 mov DWORD[16+r8],r13d 1231 1232 sub r10,1 1233 lea r9,[64+r9] 1234 jnz NEAR $L$loop 1235 1236 mov rsi,QWORD[64+rsp] 1237 mov r14,QWORD[((-40))+rsi] 1238 mov r13,QWORD[((-32))+rsi] 1239 mov r12,QWORD[((-24))+rsi] 1240 mov rbp,QWORD[((-16))+rsi] 1241 mov rbx,QWORD[((-8))+rsi] 1242 lea rsp,[rsi] 1243 $L$epilogue: 1244 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 1245 mov rsi,QWORD[16+rsp] 1246 DB 0F3h,0C3h ;repret 1247 $L$SEH_end_sha1_block_data_order: 1248 1249 ALIGN 16 1250 sha1_block_data_order_ssse3: 1251 mov QWORD[8+rsp],rdi ;WIN64 prologue 1252 mov QWORD[16+rsp],rsi 1253 mov rax,rsp 1254 $L$SEH_begin_sha1_block_data_order_ssse3: 1255 mov rdi,rcx 1256 mov rsi,rdx 1257 mov rdx,r8 1258 1259 1260 _ssse3_shortcut: 1261 mov rax,rsp 1262 push rbx 1263 push rbp 1264 push r12 1265 push r13 1266 push r14 1267 lea rsp,[((-160))+rsp] 1268 movaps XMMWORD[(-40-96)+rax],xmm6 1269 movaps XMMWORD[(-40-80)+rax],xmm7 1270 movaps XMMWORD[(-40-64)+rax],xmm8 1271 movaps XMMWORD[(-40-48)+rax],xmm9 1272 movaps XMMWORD[(-40-32)+rax],xmm10 1273 movaps XMMWORD[(-40-16)+rax],xmm11 1274 $L$prologue_ssse3: 1275 mov r14,rax 1276 and rsp,-64 1277 mov r8,rdi 1278 mov r9,rsi 1279 mov r10,rdx 1280 1281 shl r10,6 1282 add r10,r9 1283 lea r11,[((K_XX_XX+64))] 1284 1285 mov eax,DWORD[r8] 1286 mov ebx,DWORD[4+r8] 1287 mov ecx,DWORD[8+r8] 1288 mov edx,DWORD[12+r8] 1289 mov esi,ebx 1290 mov ebp,DWORD[16+r8] 1291 mov edi,ecx 1292 xor edi,edx 1293 and esi,edi 1294 1295 movdqa xmm6,XMMWORD[64+r11] 1296 movdqa xmm9,XMMWORD[((-64))+r11] 1297 movdqu xmm0,XMMWORD[r9] 1298 movdqu xmm1,XMMWORD[16+r9] 1299 movdqu xmm2,XMMWORD[32+r9] 1300 movdqu xmm3,XMMWORD[48+r9] 1301 DB 102,15,56,0,198 1302 DB 102,15,56,0,206 1303 DB 102,15,56,0,214 1304 add r9,64 1305 paddd xmm0,xmm9 1306 DB 102,15,56,0,222 1307 paddd xmm1,xmm9 1308 paddd xmm2,xmm9 1309 movdqa XMMWORD[rsp],xmm0 1310 psubd xmm0,xmm9 1311 movdqa XMMWORD[16+rsp],xmm1 1312 psubd xmm1,xmm9 1313 movdqa XMMWORD[32+rsp],xmm2 1314 psubd xmm2,xmm9 1315 jmp NEAR $L$oop_ssse3 1316 ALIGN 16 1317 $L$oop_ssse3: 1318 ror ebx,2 1319 pshufd xmm4,xmm0,238 1320 xor esi,edx 1321 movdqa xmm8,xmm3 1322 paddd xmm9,xmm3 1323 mov edi,eax 1324 add ebp,DWORD[rsp] 1325 punpcklqdq xmm4,xmm1 1326 xor ebx,ecx 1327 rol eax,5 1328 add ebp,esi 1329 psrldq xmm8,4 1330 and edi,ebx 1331 xor ebx,ecx 1332 pxor xmm4,xmm0 1333 add ebp,eax 1334 ror eax,7 1335 pxor xmm8,xmm2 1336 xor edi,ecx 1337 mov esi,ebp 1338 add edx,DWORD[4+rsp] 1339 pxor xmm4,xmm8 1340 xor eax,ebx 1341 rol ebp,5 1342 movdqa XMMWORD[48+rsp],xmm9 1343 add edx,edi 1344 and esi,eax 1345 movdqa xmm10,xmm4 1346 xor eax,ebx 1347 add edx,ebp 1348 ror ebp,7 1349 movdqa xmm8,xmm4 1350 xor esi,ebx 1351 pslldq xmm10,12 1352 paddd xmm4,xmm4 1353 mov edi,edx 1354 add ecx,DWORD[8+rsp] 1355 psrld xmm8,31 1356 xor ebp,eax 1357 rol edx,5 1358 add ecx,esi 1359 movdqa xmm9,xmm10 1360 and edi,ebp 1361 xor ebp,eax 1362 psrld xmm10,30 1363 add ecx,edx 1364 ror edx,7 1365 por xmm4,xmm8 1366 xor edi,eax 1367 mov esi,ecx 1368 add ebx,DWORD[12+rsp] 1369 pslld xmm9,2 1370 pxor xmm4,xmm10 1371 xor edx,ebp 1372 movdqa xmm10,XMMWORD[((-64))+r11] 1373 rol ecx,5 1374 add ebx,edi 1375 and esi,edx 1376 pxor xmm4,xmm9 1377 xor edx,ebp 1378 add ebx,ecx 1379 ror ecx,7 1380 pshufd xmm5,xmm1,238 1381 xor esi,ebp 1382 movdqa xmm9,xmm4 1383 paddd xmm10,xmm4 1384 mov edi,ebx 1385 add eax,DWORD[16+rsp] 1386 punpcklqdq xmm5,xmm2 1387 xor ecx,edx 1388 rol ebx,5 1389 add eax,esi 1390 psrldq xmm9,4 1391 and edi,ecx 1392 xor ecx,edx 1393 pxor xmm5,xmm1 1394 add eax,ebx 1395 ror ebx,7 1396 pxor xmm9,xmm3 1397 xor edi,edx 1398 mov esi,eax 1399 add ebp,DWORD[20+rsp] 1400 pxor xmm5,xmm9 1401 xor ebx,ecx 1402 rol eax,5 1403 movdqa XMMWORD[rsp],xmm10 1404 add ebp,edi 1405 and esi,ebx 1406 movdqa xmm8,xmm5 1407 xor ebx,ecx 1408 add ebp,eax 1409 ror eax,7 1410 movdqa xmm9,xmm5 1411 xor esi,ecx 1412 pslldq xmm8,12 1413 paddd xmm5,xmm5 1414 mov edi,ebp 1415 add edx,DWORD[24+rsp] 1416 psrld xmm9,31 1417 xor eax,ebx 1418 rol ebp,5 1419 add edx,esi 1420 movdqa xmm10,xmm8 1421 and edi,eax 1422 xor eax,ebx 1423 psrld xmm8,30 1424 add edx,ebp 1425 ror ebp,7 1426 por xmm5,xmm9 1427 xor edi,ebx 1428 mov esi,edx 1429 add ecx,DWORD[28+rsp] 1430 pslld xmm10,2 1431 pxor xmm5,xmm8 1432 xor ebp,eax 1433 movdqa xmm8,XMMWORD[((-32))+r11] 1434 rol edx,5 1435 add ecx,edi 1436 and esi,ebp 1437 pxor xmm5,xmm10 1438 xor ebp,eax 1439 add ecx,edx 1440 ror edx,7 1441 pshufd xmm6,xmm2,238 1442 xor esi,eax 1443 movdqa xmm10,xmm5 1444 paddd xmm8,xmm5 1445 mov edi,ecx 1446 add ebx,DWORD[32+rsp] 1447 punpcklqdq xmm6,xmm3 1448 xor edx,ebp 1449 rol ecx,5 1450 add ebx,esi 1451 psrldq xmm10,4 1452 and edi,edx 1453 xor edx,ebp 1454 pxor xmm6,xmm2 1455 add ebx,ecx 1456 ror ecx,7 1457 pxor xmm10,xmm4 1458 xor edi,ebp 1459 mov esi,ebx 1460 add eax,DWORD[36+rsp] 1461 pxor xmm6,xmm10 1462 xor ecx,edx 1463 rol ebx,5 1464 movdqa XMMWORD[16+rsp],xmm8 1465 add eax,edi 1466 and esi,ecx 1467 movdqa xmm9,xmm6 1468 xor ecx,edx 1469 add eax,ebx 1470 ror ebx,7 1471 movdqa xmm10,xmm6 1472 xor esi,edx 1473 pslldq xmm9,12 1474 paddd xmm6,xmm6 1475 mov edi,eax 1476 add ebp,DWORD[40+rsp] 1477 psrld xmm10,31 1478 xor ebx,ecx 1479 rol eax,5 1480 add ebp,esi 1481 movdqa xmm8,xmm9 1482 and edi,ebx 1483 xor ebx,ecx 1484 psrld xmm9,30 1485 add ebp,eax 1486 ror eax,7 1487 por xmm6,xmm10 1488 xor edi,ecx 1489 mov esi,ebp 1490 add edx,DWORD[44+rsp] 1491 pslld xmm8,2 1492 pxor xmm6,xmm9 1493 xor eax,ebx 1494 movdqa xmm9,XMMWORD[((-32))+r11] 1495 rol ebp,5 1496 add edx,edi 1497 and esi,eax 1498 pxor xmm6,xmm8 1499 xor eax,ebx 1500 add edx,ebp 1501 ror ebp,7 1502 pshufd xmm7,xmm3,238 1503 xor esi,ebx 1504 movdqa xmm8,xmm6 1505 paddd xmm9,xmm6 1506 mov edi,edx 1507 add ecx,DWORD[48+rsp] 1508 punpcklqdq xmm7,xmm4 1509 xor ebp,eax 1510 rol edx,5 1511 add ecx,esi 1512 psrldq xmm8,4 1513 and edi,ebp 1514 xor ebp,eax 1515 pxor xmm7,xmm3 1516 add ecx,edx 1517 ror edx,7 1518 pxor xmm8,xmm5 1519 xor edi,eax 1520 mov esi,ecx 1521 add ebx,DWORD[52+rsp] 1522 pxor xmm7,xmm8 1523 xor edx,ebp 1524 rol ecx,5 1525 movdqa XMMWORD[32+rsp],xmm9 1526 add ebx,edi 1527 and esi,edx 1528 movdqa xmm10,xmm7 1529 xor edx,ebp 1530 add ebx,ecx 1531 ror ecx,7 1532 movdqa xmm8,xmm7 1533 xor esi,ebp 1534 pslldq xmm10,12 1535 paddd xmm7,xmm7 1536 mov edi,ebx 1537 add eax,DWORD[56+rsp] 1538 psrld xmm8,31 1539 xor ecx,edx 1540 rol ebx,5 1541 add eax,esi 1542 movdqa xmm9,xmm10 1543 and edi,ecx 1544 xor ecx,edx 1545 psrld xmm10,30 1546 add eax,ebx 1547 ror ebx,7 1548 por xmm7,xmm8 1549 xor edi,edx 1550 mov esi,eax 1551 add ebp,DWORD[60+rsp] 1552 pslld xmm9,2 1553 pxor xmm7,xmm10 1554 xor ebx,ecx 1555 movdqa xmm10,XMMWORD[((-32))+r11] 1556 rol eax,5 1557 add ebp,edi 1558 and esi,ebx 1559 pxor xmm7,xmm9 1560 pshufd xmm9,xmm6,238 1561 xor ebx,ecx 1562 add ebp,eax 1563 ror eax,7 1564 pxor xmm0,xmm4 1565 xor esi,ecx 1566 mov edi,ebp 1567 add edx,DWORD[rsp] 1568 punpcklqdq xmm9,xmm7 1569 xor eax,ebx 1570 rol ebp,5 1571 pxor xmm0,xmm1 1572 add edx,esi 1573 and edi,eax 1574 movdqa xmm8,xmm10 1575 xor eax,ebx 1576 paddd xmm10,xmm7 1577 add edx,ebp 1578 pxor xmm0,xmm9 1579 ror ebp,7 1580 xor edi,ebx 1581 mov esi,edx 1582 add ecx,DWORD[4+rsp] 1583 movdqa xmm9,xmm0 1584 xor ebp,eax 1585 rol edx,5 1586 movdqa XMMWORD[48+rsp],xmm10 1587 add ecx,edi 1588 and esi,ebp 1589 xor ebp,eax 1590 pslld xmm0,2 1591 add ecx,edx 1592 ror edx,7 1593 psrld xmm9,30 1594 xor esi,eax 1595 mov edi,ecx 1596 add ebx,DWORD[8+rsp] 1597 por xmm0,xmm9 1598 xor edx,ebp 1599 rol ecx,5 1600 pshufd xmm10,xmm7,238 1601 add ebx,esi 1602 and edi,edx 1603 xor edx,ebp 1604 add ebx,ecx 1605 add eax,DWORD[12+rsp] 1606 xor edi,ebp 1607 mov esi,ebx 1608 rol ebx,5 1609 add eax,edi 1610 xor esi,edx 1611 ror ecx,7 1612 add eax,ebx 1613 pxor xmm1,xmm5 1614 add ebp,DWORD[16+rsp] 1615 xor esi,ecx 1616 punpcklqdq xmm10,xmm0 1617 mov edi,eax 1618 rol eax,5 1619 pxor xmm1,xmm2 1620 add ebp,esi 1621 xor edi,ecx 1622 movdqa xmm9,xmm8 1623 ror ebx,7 1624 paddd xmm8,xmm0 1625 add ebp,eax 1626 pxor xmm1,xmm10 1627 add edx,DWORD[20+rsp] 1628 xor edi,ebx 1629 mov esi,ebp 1630 rol ebp,5 1631 movdqa xmm10,xmm1 1632 add edx,edi 1633 xor esi,ebx 1634 movdqa XMMWORD[rsp],xmm8 1635 ror eax,7 1636 add edx,ebp 1637 add ecx,DWORD[24+rsp] 1638 pslld xmm1,2 1639 xor esi,eax 1640 mov edi,edx 1641 psrld xmm10,30 1642 rol edx,5 1643 add ecx,esi 1644 xor edi,eax 1645 ror ebp,7 1646 por xmm1,xmm10 1647 add ecx,edx 1648 add ebx,DWORD[28+rsp] 1649 pshufd xmm8,xmm0,238 1650 xor edi,ebp 1651 mov esi,ecx 1652 rol ecx,5 1653 add ebx,edi 1654 xor esi,ebp 1655 ror edx,7 1656 add ebx,ecx 1657 pxor xmm2,xmm6 1658 add eax,DWORD[32+rsp] 1659 xor esi,edx 1660 punpcklqdq xmm8,xmm1 1661 mov edi,ebx 1662 rol ebx,5 1663 pxor xmm2,xmm3 1664 add eax,esi 1665 xor edi,edx 1666 movdqa xmm10,XMMWORD[r11] 1667 ror ecx,7 1668 paddd xmm9,xmm1 1669 add eax,ebx 1670 pxor xmm2,xmm8 1671 add ebp,DWORD[36+rsp] 1672 xor edi,ecx 1673 mov esi,eax 1674 rol eax,5 1675 movdqa xmm8,xmm2 1676 add ebp,edi 1677 xor esi,ecx 1678 movdqa XMMWORD[16+rsp],xmm9 1679 ror ebx,7 1680 add ebp,eax 1681 add edx,DWORD[40+rsp] 1682 pslld xmm2,2 1683 xor esi,ebx 1684 mov edi,ebp 1685 psrld xmm8,30 1686 rol ebp,5 1687 add edx,esi 1688 xor edi,ebx 1689 ror eax,7 1690 por xmm2,xmm8 1691 add edx,ebp 1692 add ecx,DWORD[44+rsp] 1693 pshufd xmm9,xmm1,238 1694 xor edi,eax 1695 mov esi,edx 1696 rol edx,5 1697 add ecx,edi 1698 xor esi,eax 1699 ror ebp,7 1700 add ecx,edx 1701 pxor xmm3,xmm7 1702 add ebx,DWORD[48+rsp] 1703 xor esi,ebp 1704 punpcklqdq xmm9,xmm2 1705 mov edi,ecx 1706 rol ecx,5 1707 pxor xmm3,xmm4 1708 add ebx,esi 1709 xor edi,ebp 1710 movdqa xmm8,xmm10 1711 ror edx,7 1712 paddd xmm10,xmm2 1713 add ebx,ecx 1714 pxor xmm3,xmm9 1715 add eax,DWORD[52+rsp] 1716 xor edi,edx 1717 mov esi,ebx 1718 rol ebx,5 1719 movdqa xmm9,xmm3 1720 add eax,edi 1721 xor esi,edx 1722 movdqa XMMWORD[32+rsp],xmm10 1723 ror ecx,7 1724 add eax,ebx 1725 add ebp,DWORD[56+rsp] 1726 pslld xmm3,2 1727 xor esi,ecx 1728 mov edi,eax 1729 psrld xmm9,30 1730 rol eax,5 1731 add ebp,esi 1732 xor edi,ecx 1733 ror ebx,7 1734 por xmm3,xmm9 1735 add ebp,eax 1736 add edx,DWORD[60+rsp] 1737 pshufd xmm10,xmm2,238 1738 xor edi,ebx 1739 mov esi,ebp 1740 rol ebp,5 1741 add edx,edi 1742 xor esi,ebx 1743 ror eax,7 1744 add edx,ebp 1745 pxor xmm4,xmm0 1746 add ecx,DWORD[rsp] 1747 xor esi,eax 1748 punpcklqdq xmm10,xmm3 1749 mov edi,edx 1750 rol edx,5 1751 pxor xmm4,xmm5 1752 add ecx,esi 1753 xor edi,eax 1754 movdqa xmm9,xmm8 1755 ror ebp,7 1756 paddd xmm8,xmm3 1757 add ecx,edx 1758 pxor xmm4,xmm10 1759 add ebx,DWORD[4+rsp] 1760 xor edi,ebp 1761 mov esi,ecx 1762 rol ecx,5 1763 movdqa xmm10,xmm4 1764 add ebx,edi 1765 xor esi,ebp 1766 movdqa XMMWORD[48+rsp],xmm8 1767 ror edx,7 1768 add ebx,ecx 1769 add eax,DWORD[8+rsp] 1770 pslld xmm4,2 1771 xor esi,edx 1772 mov edi,ebx 1773 psrld xmm10,30 1774 rol ebx,5 1775 add eax,esi 1776 xor edi,edx 1777 ror ecx,7 1778 por xmm4,xmm10 1779 add eax,ebx 1780 add ebp,DWORD[12+rsp] 1781 pshufd xmm8,xmm3,238 1782 xor edi,ecx 1783 mov esi,eax 1784 rol eax,5 1785 add ebp,edi 1786 xor esi,ecx 1787 ror ebx,7 1788 add ebp,eax 1789 pxor xmm5,xmm1 1790 add edx,DWORD[16+rsp] 1791 xor esi,ebx 1792 punpcklqdq xmm8,xmm4 1793 mov edi,ebp 1794 rol ebp,5 1795 pxor xmm5,xmm6 1796 add edx,esi 1797 xor edi,ebx 1798 movdqa xmm10,xmm9 1799 ror eax,7 1800 paddd xmm9,xmm4 1801 add edx,ebp 1802 pxor xmm5,xmm8 1803 add ecx,DWORD[20+rsp] 1804 xor edi,eax 1805 mov esi,edx 1806 rol edx,5 1807 movdqa xmm8,xmm5 1808 add ecx,edi 1809 xor esi,eax 1810 movdqa XMMWORD[rsp],xmm9 1811 ror ebp,7 1812 add ecx,edx 1813 add ebx,DWORD[24+rsp] 1814 pslld xmm5,2 1815 xor esi,ebp 1816 mov edi,ecx 1817 psrld xmm8,30 1818 rol ecx,5 1819 add ebx,esi 1820 xor edi,ebp 1821 ror edx,7 1822 por xmm5,xmm8 1823 add ebx,ecx 1824 add eax,DWORD[28+rsp] 1825 pshufd xmm9,xmm4,238 1826 ror ecx,7 1827 mov esi,ebx 1828 xor edi,edx 1829 rol ebx,5 1830 add eax,edi 1831 xor esi,ecx 1832 xor ecx,edx 1833 add eax,ebx 1834 pxor xmm6,xmm2 1835 add ebp,DWORD[32+rsp] 1836 and esi,ecx 1837 xor ecx,edx 1838 ror ebx,7 1839 punpcklqdq xmm9,xmm5 1840 mov edi,eax 1841 xor esi,ecx 1842 pxor xmm6,xmm7 1843 rol eax,5 1844 add ebp,esi 1845 movdqa xmm8,xmm10 1846 xor edi,ebx 1847 paddd xmm10,xmm5 1848 xor ebx,ecx 1849 pxor xmm6,xmm9 1850 add ebp,eax 1851 add edx,DWORD[36+rsp] 1852 and edi,ebx 1853 xor ebx,ecx 1854 ror eax,7 1855 movdqa xmm9,xmm6 1856 mov esi,ebp 1857 xor edi,ebx 1858 movdqa XMMWORD[16+rsp],xmm10 1859 rol ebp,5 1860 add edx,edi 1861 xor esi,eax 1862 pslld xmm6,2 1863 xor eax,ebx 1864 add edx,ebp 1865 psrld xmm9,30 1866 add ecx,DWORD[40+rsp] 1867 and esi,eax 1868 xor eax,ebx 1869 por xmm6,xmm9 1870 ror ebp,7 1871 mov edi,edx 1872 xor esi,eax 1873 rol edx,5 1874 pshufd xmm10,xmm5,238 1875 add ecx,esi 1876 xor edi,ebp 1877 xor ebp,eax 1878 add ecx,edx 1879 add ebx,DWORD[44+rsp] 1880 and edi,ebp 1881 xor ebp,eax 1882 ror edx,7 1883 mov esi,ecx 1884 xor edi,ebp 1885 rol ecx,5 1886 add ebx,edi 1887 xor esi,edx 1888 xor edx,ebp 1889 add ebx,ecx 1890 pxor xmm7,xmm3 1891 add eax,DWORD[48+rsp] 1892 and esi,edx 1893 xor edx,ebp 1894 ror ecx,7 1895 punpcklqdq xmm10,xmm6 1896 mov edi,ebx 1897 xor esi,edx 1898 pxor xmm7,xmm0 1899 rol ebx,5 1900 add eax,esi 1901 movdqa xmm9,XMMWORD[32+r11] 1902 xor edi,ecx 1903 paddd xmm8,xmm6 1904 xor ecx,edx 1905 pxor xmm7,xmm10 1906 add eax,ebx 1907 add ebp,DWORD[52+rsp] 1908 and edi,ecx 1909 xor ecx,edx 1910 ror ebx,7 1911 movdqa xmm10,xmm7 1912 mov esi,eax 1913 xor edi,ecx 1914 movdqa XMMWORD[32+rsp],xmm8 1915 rol eax,5 1916 add ebp,edi 1917 xor esi,ebx 1918 pslld xmm7,2 1919 xor ebx,ecx 1920 add ebp,eax 1921 psrld xmm10,30 1922 add edx,DWORD[56+rsp] 1923 and esi,ebx 1924 xor ebx,ecx 1925 por xmm7,xmm10 1926 ror eax,7 1927 mov edi,ebp 1928 xor esi,ebx 1929 rol ebp,5 1930 pshufd xmm8,xmm6,238 1931 add edx,esi 1932 xor edi,eax 1933 xor eax,ebx 1934 add edx,ebp 1935 add ecx,DWORD[60+rsp] 1936 and edi,eax 1937 xor eax,ebx 1938 ror ebp,7 1939 mov esi,edx 1940 xor edi,eax 1941 rol edx,5 1942 add ecx,edi 1943 xor esi,ebp 1944 xor ebp,eax 1945 add ecx,edx 1946 pxor xmm0,xmm4 1947 add ebx,DWORD[rsp] 1948 and esi,ebp 1949 xor ebp,eax 1950 ror edx,7 1951 punpcklqdq xmm8,xmm7 1952 mov edi,ecx 1953 xor esi,ebp 1954 pxor xmm0,xmm1 1955 rol ecx,5 1956 add ebx,esi 1957 movdqa xmm10,xmm9 1958 xor edi,edx 1959 paddd xmm9,xmm7 1960 xor edx,ebp 1961 pxor xmm0,xmm8 1962 add ebx,ecx 1963 add eax,DWORD[4+rsp] 1964 and edi,edx 1965 xor edx,ebp 1966 ror ecx,7 1967 movdqa xmm8,xmm0 1968 mov esi,ebx 1969 xor edi,edx 1970 movdqa XMMWORD[48+rsp],xmm9 1971 rol ebx,5 1972 add eax,edi 1973 xor esi,ecx 1974 pslld xmm0,2 1975 xor ecx,edx 1976 add eax,ebx 1977 psrld xmm8,30 1978 add ebp,DWORD[8+rsp] 1979 and esi,ecx 1980 xor ecx,edx 1981 por xmm0,xmm8 1982 ror ebx,7 1983 mov edi,eax 1984 xor esi,ecx 1985 rol eax,5 1986 pshufd xmm9,xmm7,238 1987 add ebp,esi 1988 xor edi,ebx 1989 xor ebx,ecx 1990 add ebp,eax 1991 add edx,DWORD[12+rsp] 1992 and edi,ebx 1993 xor ebx,ecx 1994 ror eax,7 1995 mov esi,ebp 1996 xor edi,ebx 1997 rol ebp,5 1998 add edx,edi 1999 xor esi,eax 2000 xor eax,ebx 2001 add edx,ebp 2002 pxor xmm1,xmm5 2003 add ecx,DWORD[16+rsp] 2004 and esi,eax 2005 xor eax,ebx 2006 ror ebp,7 2007 punpcklqdq xmm9,xmm0 2008 mov edi,edx 2009 xor esi,eax 2010 pxor xmm1,xmm2 2011 rol edx,5 2012 add ecx,esi 2013 movdqa xmm8,xmm10 2014 xor edi,ebp 2015 paddd xmm10,xmm0 2016 xor ebp,eax 2017 pxor xmm1,xmm9 2018 add ecx,edx 2019 add ebx,DWORD[20+rsp] 2020 and edi,ebp 2021 xor ebp,eax 2022 ror edx,7 2023 movdqa xmm9,xmm1 2024 mov esi,ecx 2025 xor edi,ebp 2026 movdqa XMMWORD[rsp],xmm10 2027 rol ecx,5 2028 add ebx,edi 2029 xor esi,edx 2030 pslld xmm1,2 2031 xor edx,ebp 2032 add ebx,ecx 2033 psrld xmm9,30 2034 add eax,DWORD[24+rsp] 2035 and esi,edx 2036 xor edx,ebp 2037 por xmm1,xmm9 2038 ror ecx,7 2039 mov edi,ebx 2040 xor esi,edx 2041 rol ebx,5 2042 pshufd xmm10,xmm0,238 2043 add eax,esi 2044 xor edi,ecx 2045 xor ecx,edx 2046 add eax,ebx 2047 add ebp,DWORD[28+rsp] 2048 and edi,ecx 2049 xor ecx,edx 2050 ror ebx,7 2051 mov esi,eax 2052 xor edi,ecx 2053 rol eax,5 2054 add ebp,edi 2055 xor esi,ebx 2056 xor ebx,ecx 2057 add ebp,eax 2058 pxor xmm2,xmm6 2059 add edx,DWORD[32+rsp] 2060 and esi,ebx 2061 xor ebx,ecx 2062 ror eax,7 2063 punpcklqdq xmm10,xmm1 2064 mov edi,ebp 2065 xor esi,ebx 2066 pxor xmm2,xmm3 2067 rol ebp,5 2068 add edx,esi 2069 movdqa xmm9,xmm8 2070 xor edi,eax 2071 paddd xmm8,xmm1 2072 xor eax,ebx 2073 pxor xmm2,xmm10 2074 add edx,ebp 2075 add ecx,DWORD[36+rsp] 2076 and edi,eax 2077 xor eax,ebx 2078 ror ebp,7 2079 movdqa xmm10,xmm2 2080 mov esi,edx 2081 xor edi,eax 2082 movdqa XMMWORD[16+rsp],xmm8 2083 rol edx,5 2084 add ecx,edi 2085 xor esi,ebp 2086 pslld xmm2,2 2087 xor ebp,eax 2088 add ecx,edx 2089 psrld xmm10,30 2090 add ebx,DWORD[40+rsp] 2091 and esi,ebp 2092 xor ebp,eax 2093 por xmm2,xmm10 2094 ror edx,7 2095 mov edi,ecx 2096 xor esi,ebp 2097 rol ecx,5 2098 pshufd xmm8,xmm1,238 2099 add ebx,esi 2100 xor edi,edx 2101 xor edx,ebp 2102 add ebx,ecx 2103 add eax,DWORD[44+rsp] 2104 and edi,edx 2105 xor edx,ebp 2106 ror ecx,7 2107 mov esi,ebx 2108 xor edi,edx 2109 rol ebx,5 2110 add eax,edi 2111 xor esi,edx 2112 add eax,ebx 2113 pxor xmm3,xmm7 2114 add ebp,DWORD[48+rsp] 2115 xor esi,ecx 2116 punpcklqdq xmm8,xmm2 2117 mov edi,eax 2118 rol eax,5 2119 pxor xmm3,xmm4 2120 add ebp,esi 2121 xor edi,ecx 2122 movdqa xmm10,xmm9 2123 ror ebx,7 2124 paddd xmm9,xmm2 2125 add ebp,eax 2126 pxor xmm3,xmm8 2127 add edx,DWORD[52+rsp] 2128 xor edi,ebx 2129 mov esi,ebp 2130 rol ebp,5 2131 movdqa xmm8,xmm3 2132 add edx,edi 2133 xor esi,ebx 2134 movdqa XMMWORD[32+rsp],xmm9 2135 ror eax,7 2136 add edx,ebp 2137 add ecx,DWORD[56+rsp] 2138 pslld xmm3,2 2139 xor esi,eax 2140 mov edi,edx 2141 psrld xmm8,30 2142 rol edx,5 2143 add ecx,esi 2144 xor edi,eax 2145 ror ebp,7 2146 por xmm3,xmm8 2147 add ecx,edx 2148 add ebx,DWORD[60+rsp] 2149 xor edi,ebp 2150 mov esi,ecx 2151 rol ecx,5 2152 add ebx,edi 2153 xor esi,ebp 2154 ror edx,7 2155 add ebx,ecx 2156 add eax,DWORD[rsp] 2157 xor esi,edx 2158 mov edi,ebx 2159 rol ebx,5 2160 paddd xmm10,xmm3 2161 add eax,esi 2162 xor edi,edx 2163 movdqa XMMWORD[48+rsp],xmm10 2164 ror ecx,7 2165 add eax,ebx 2166 add ebp,DWORD[4+rsp] 2167 xor edi,ecx 2168 mov esi,eax 2169 rol eax,5 2170 add ebp,edi 2171 xor esi,ecx 2172 ror ebx,7 2173 add ebp,eax 2174 add edx,DWORD[8+rsp] 2175 xor esi,ebx 2176 mov edi,ebp 2177 rol ebp,5 2178 add edx,esi 2179 xor edi,ebx 2180 ror eax,7 2181 add edx,ebp 2182 add ecx,DWORD[12+rsp] 2183 xor edi,eax 2184 mov esi,edx 2185 rol edx,5 2186 add ecx,edi 2187 xor esi,eax 2188 ror ebp,7 2189 add ecx,edx 2190 cmp r9,r10 2191 je NEAR $L$done_ssse3 2192 movdqa xmm6,XMMWORD[64+r11] 2193 movdqa xmm9,XMMWORD[((-64))+r11] 2194 movdqu xmm0,XMMWORD[r9] 2195 movdqu xmm1,XMMWORD[16+r9] 2196 movdqu xmm2,XMMWORD[32+r9] 2197 movdqu xmm3,XMMWORD[48+r9] 2198 DB 102,15,56,0,198 2199 add r9,64 2200 add ebx,DWORD[16+rsp] 2201 xor esi,ebp 2202 mov edi,ecx 2203 DB 102,15,56,0,206 2204 rol ecx,5 2205 add ebx,esi 2206 xor edi,ebp 2207 ror edx,7 2208 paddd xmm0,xmm9 2209 add ebx,ecx 2210 add eax,DWORD[20+rsp] 2211 xor edi,edx 2212 mov esi,ebx 2213 movdqa XMMWORD[rsp],xmm0 2214 rol ebx,5 2215 add eax,edi 2216 xor esi,edx 2217 ror ecx,7 2218 psubd xmm0,xmm9 2219 add eax,ebx 2220 add ebp,DWORD[24+rsp] 2221 xor esi,ecx 2222 mov edi,eax 2223 rol eax,5 2224 add ebp,esi 2225 xor edi,ecx 2226 ror ebx,7 2227 add ebp,eax 2228 add edx,DWORD[28+rsp] 2229 xor edi,ebx 2230 mov esi,ebp 2231 rol ebp,5 2232 add edx,edi 2233 xor esi,ebx 2234 ror eax,7 2235 add edx,ebp 2236 add ecx,DWORD[32+rsp] 2237 xor esi,eax 2238 mov edi,edx 2239 DB 102,15,56,0,214 2240 rol edx,5 2241 add ecx,esi 2242 xor edi,eax 2243 ror ebp,7 2244 paddd xmm1,xmm9 2245 add ecx,edx 2246 add ebx,DWORD[36+rsp] 2247 xor edi,ebp 2248 mov esi,ecx 2249 movdqa XMMWORD[16+rsp],xmm1 2250 rol ecx,5 2251 add ebx,edi 2252 xor esi,ebp 2253 ror edx,7 2254 psubd xmm1,xmm9 2255 add ebx,ecx 2256 add eax,DWORD[40+rsp] 2257 xor esi,edx 2258 mov edi,ebx 2259 rol ebx,5 2260 add eax,esi 2261 xor edi,edx 2262 ror ecx,7 2263 add eax,ebx 2264 add ebp,DWORD[44+rsp] 2265 xor edi,ecx 2266 mov esi,eax 2267 rol eax,5 2268 add ebp,edi 2269 xor esi,ecx 2270 ror ebx,7 2271 add ebp,eax 2272 add edx,DWORD[48+rsp] 2273 xor esi,ebx 2274 mov edi,ebp 2275 DB 102,15,56,0,222 2276 rol ebp,5 2277 add edx,esi 2278 xor edi,ebx 2279 ror eax,7 2280 paddd xmm2,xmm9 2281 add edx,ebp 2282 add ecx,DWORD[52+rsp] 2283 xor edi,eax 2284 mov esi,edx 2285 movdqa XMMWORD[32+rsp],xmm2 2286 rol edx,5 2287 add ecx,edi 2288 xor esi,eax 2289 ror ebp,7 2290 psubd xmm2,xmm9 2291 add ecx,edx 2292 add ebx,DWORD[56+rsp] 2293 xor esi,ebp 2294 mov edi,ecx 2295 rol ecx,5 2296 add ebx,esi 2297 xor edi,ebp 2298 ror edx,7 2299 add ebx,ecx 2300 add eax,DWORD[60+rsp] 2301 xor edi,edx 2302 mov esi,ebx 2303 rol ebx,5 2304 add eax,edi 2305 ror ecx,7 2306 add eax,ebx 2307 add eax,DWORD[r8] 2308 add esi,DWORD[4+r8] 2309 add ecx,DWORD[8+r8] 2310 add edx,DWORD[12+r8] 2311 mov DWORD[r8],eax 2312 add ebp,DWORD[16+r8] 2313 mov DWORD[4+r8],esi 2314 mov ebx,esi 2315 mov DWORD[8+r8],ecx 2316 mov edi,ecx 2317 mov DWORD[12+r8],edx 2318 xor edi,edx 2319 mov DWORD[16+r8],ebp 2320 and esi,edi 2321 jmp NEAR $L$oop_ssse3 2322 2323 ALIGN 16 2324 $L$done_ssse3: 2325 add ebx,DWORD[16+rsp] 2326 xor esi,ebp 2327 mov edi,ecx 2328 rol ecx,5 2329 add ebx,esi 2330 xor edi,ebp 2331 ror edx,7 2332 add ebx,ecx 2333 add eax,DWORD[20+rsp] 2334 xor edi,edx 2335 mov esi,ebx 2336 rol ebx,5 2337 add eax,edi 2338 xor esi,edx 2339 ror ecx,7 2340 add eax,ebx 2341 add ebp,DWORD[24+rsp] 2342 xor esi,ecx 2343 mov edi,eax 2344 rol eax,5 2345 add ebp,esi 2346 xor edi,ecx 2347 ror ebx,7 2348 add ebp,eax 2349 add edx,DWORD[28+rsp] 2350 xor edi,ebx 2351 mov esi,ebp 2352 rol ebp,5 2353 add edx,edi 2354 xor esi,ebx 2355 ror eax,7 2356 add edx,ebp 2357 add ecx,DWORD[32+rsp] 2358 xor esi,eax 2359 mov edi,edx 2360 rol edx,5 2361 add ecx,esi 2362 xor edi,eax 2363 ror ebp,7 2364 add ecx,edx 2365 add ebx,DWORD[36+rsp] 2366 xor edi,ebp 2367 mov esi,ecx 2368 rol ecx,5 2369 add ebx,edi 2370 xor esi,ebp 2371 ror edx,7 2372 add ebx,ecx 2373 add eax,DWORD[40+rsp] 2374 xor esi,edx 2375 mov edi,ebx 2376 rol ebx,5 2377 add eax,esi 2378 xor edi,edx 2379 ror ecx,7 2380 add eax,ebx 2381 add ebp,DWORD[44+rsp] 2382 xor edi,ecx 2383 mov esi,eax 2384 rol eax,5 2385 add ebp,edi 2386 xor esi,ecx 2387 ror ebx,7 2388 add ebp,eax 2389 add edx,DWORD[48+rsp] 2390 xor esi,ebx 2391 mov edi,ebp 2392 rol ebp,5 2393 add edx,esi 2394 xor edi,ebx 2395 ror eax,7 2396 add edx,ebp 2397 add ecx,DWORD[52+rsp] 2398 xor edi,eax 2399 mov esi,edx 2400 rol edx,5 2401 add ecx,edi 2402 xor esi,eax 2403 ror ebp,7 2404 add ecx,edx 2405 add ebx,DWORD[56+rsp] 2406 xor esi,ebp 2407 mov edi,ecx 2408 rol ecx,5 2409 add ebx,esi 2410 xor edi,ebp 2411 ror edx,7 2412 add ebx,ecx 2413 add eax,DWORD[60+rsp] 2414 xor edi,edx 2415 mov esi,ebx 2416 rol ebx,5 2417 add eax,edi 2418 ror ecx,7 2419 add eax,ebx 2420 add eax,DWORD[r8] 2421 add esi,DWORD[4+r8] 2422 add ecx,DWORD[8+r8] 2423 mov DWORD[r8],eax 2424 add edx,DWORD[12+r8] 2425 mov DWORD[4+r8],esi 2426 add ebp,DWORD[16+r8] 2427 mov DWORD[8+r8],ecx 2428 mov DWORD[12+r8],edx 2429 mov DWORD[16+r8],ebp 2430 movaps xmm6,XMMWORD[((-40-96))+r14] 2431 movaps xmm7,XMMWORD[((-40-80))+r14] 2432 movaps xmm8,XMMWORD[((-40-64))+r14] 2433 movaps xmm9,XMMWORD[((-40-48))+r14] 2434 movaps xmm10,XMMWORD[((-40-32))+r14] 2435 movaps xmm11,XMMWORD[((-40-16))+r14] 2436 lea rsi,[r14] 2437 mov r14,QWORD[((-40))+rsi] 2438 mov r13,QWORD[((-32))+rsi] 2439 mov r12,QWORD[((-24))+rsi] 2440 mov rbp,QWORD[((-16))+rsi] 2441 mov rbx,QWORD[((-8))+rsi] 2442 lea rsp,[rsi] 2443 $L$epilogue_ssse3: 2444 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 2445 mov rsi,QWORD[16+rsp] 2446 DB 0F3h,0C3h ;repret 2447 $L$SEH_end_sha1_block_data_order_ssse3: 2448 ALIGN 64 2449 K_XX_XX: 2450 DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 2451 DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 2452 DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 2453 DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 2454 DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc 2455 DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc 2456 DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 2457 DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 2458 DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f 2459 DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f 2460 DB 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 2461 DB 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115 2462 DB 102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44 2463 DB 32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60 2464 DB 97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114 2465 DB 103,62,0 2466 ALIGN 64 2467 EXTERN __imp_RtlVirtualUnwind 2468 2469 ALIGN 16 2470 se_handler: 2471 push rsi 2472 push rdi 2473 push rbx 2474 push rbp 2475 push r12 2476 push r13 2477 push r14 2478 push r15 2479 pushfq 2480 sub rsp,64 2481 2482 mov rax,QWORD[120+r8] 2483 mov rbx,QWORD[248+r8] 2484 2485 lea r10,[$L$prologue] 2486 cmp rbx,r10 2487 jb NEAR $L$common_seh_tail 2488 2489 mov rax,QWORD[152+r8] 2490 2491 lea r10,[$L$epilogue] 2492 cmp rbx,r10 2493 jae NEAR $L$common_seh_tail 2494 2495 mov rax,QWORD[64+rax] 2496 2497 mov rbx,QWORD[((-8))+rax] 2498 mov rbp,QWORD[((-16))+rax] 2499 mov r12,QWORD[((-24))+rax] 2500 mov r13,QWORD[((-32))+rax] 2501 mov r14,QWORD[((-40))+rax] 2502 mov QWORD[144+r8],rbx 2503 mov QWORD[160+r8],rbp 2504 mov QWORD[216+r8],r12 2505 mov QWORD[224+r8],r13 2506 mov QWORD[232+r8],r14 2507 2508 jmp NEAR $L$common_seh_tail 2509 2510 2511 ALIGN 16 2512 ssse3_handler: 2513 push rsi 2514 push rdi 2515 push rbx 2516 push rbp 2517 push r12 2518 push r13 2519 push r14 2520 push r15 2521 pushfq 2522 sub rsp,64 2523 2524 mov rax,QWORD[120+r8] 2525 mov rbx,QWORD[248+r8] 2526 2527 mov rsi,QWORD[8+r9] 2528 mov r11,QWORD[56+r9] 2529 2530 mov r10d,DWORD[r11] 2531 lea r10,[r10*1+rsi] 2532 cmp rbx,r10 2533 jb NEAR $L$common_seh_tail 2534 2535 mov rax,QWORD[152+r8] 2536 2537 mov r10d,DWORD[4+r11] 2538 lea r10,[r10*1+rsi] 2539 cmp rbx,r10 2540 jae NEAR $L$common_seh_tail 2541 2542 mov rax,QWORD[232+r8] 2543 2544 lea rsi,[((-40-96))+rax] 2545 lea rdi,[512+r8] 2546 mov ecx,12 2547 DD 0xa548f3fc 2548 2549 mov rbx,QWORD[((-8))+rax] 2550 mov rbp,QWORD[((-16))+rax] 2551 mov r12,QWORD[((-24))+rax] 2552 mov r13,QWORD[((-32))+rax] 2553 mov r14,QWORD[((-40))+rax] 2554 mov QWORD[144+r8],rbx 2555 mov QWORD[160+r8],rbp 2556 mov QWORD[216+r8],r12 2557 mov QWORD[224+r8],r13 2558 mov QWORD[232+r8],r14 2559 2560 $L$common_seh_tail: 2561 mov rdi,QWORD[8+rax] 2562 mov rsi,QWORD[16+rax] 2563 mov QWORD[152+r8],rax 2564 mov QWORD[168+r8],rsi 2565 mov QWORD[176+r8],rdi 2566 2567 mov rdi,QWORD[40+r9] 2568 mov rsi,r8 2569 mov ecx,154 2570 DD 0xa548f3fc 2571 2572 mov rsi,r9 2573 xor rcx,rcx 2574 mov rdx,QWORD[8+rsi] 2575 mov r8,QWORD[rsi] 2576 mov r9,QWORD[16+rsi] 2577 mov r10,QWORD[40+rsi] 2578 lea r11,[56+rsi] 2579 lea r12,[24+rsi] 2580 mov QWORD[32+rsp],r10 2581 mov QWORD[40+rsp],r11 2582 mov QWORD[48+rsp],r12 2583 mov QWORD[56+rsp],rcx 2584 call QWORD[__imp_RtlVirtualUnwind] 2585 2586 mov eax,1 2587 add rsp,64 2588 popfq 2589 pop r15 2590 pop r14 2591 pop r13 2592 pop r12 2593 pop rbp 2594 pop rbx 2595 pop rdi 2596 pop rsi 2597 DB 0F3h,0C3h ;repret 2598 2599 2600 section .pdata rdata align=4 2601 ALIGN 4 2602 DD $L$SEH_begin_sha1_block_data_order wrt ..imagebase 2603 DD $L$SEH_end_sha1_block_data_order wrt ..imagebase 2604 DD $L$SEH_info_sha1_block_data_order wrt ..imagebase 2605 DD $L$SEH_begin_sha1_block_data_order_ssse3 wrt ..imagebase 2606 DD $L$SEH_end_sha1_block_data_order_ssse3 wrt ..imagebase 2607 DD $L$SEH_info_sha1_block_data_order_ssse3 wrt ..imagebase 2608 section .xdata rdata align=8 2609 ALIGN 8 2610 $L$SEH_info_sha1_block_data_order: 2611 DB 9,0,0,0 2612 DD se_handler wrt ..imagebase 2613 $L$SEH_info_sha1_block_data_order_ssse3: 2614 DB 9,0,0,0 2615 DD ssse3_handler wrt ..imagebase 2616 DD $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase 2617