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