1; This file is generated from a similarly-named Perl script in the BoringSSL 2; source tree. Do not edit by hand. 3 4%ifidn __OUTPUT_FORMAT__, win64 5default rel 6%define XMMWORD 7%define YMMWORD 8%define ZMMWORD 9%define _CET_ENDBR 10 11%ifdef BORINGSSL_PREFIX 12%include "boringssl_prefix_symbols_nasm.inc" 13%endif 14section .text code align=64 15 16 17global sha1_block_data_order_nohw 18 19ALIGN 16 20sha1_block_data_order_nohw: 21 mov QWORD[8+rsp],rdi ;WIN64 prologue 22 mov QWORD[16+rsp],rsi 23 mov rax,rsp 24$L$SEH_begin_sha1_block_data_order_nohw: 25 mov rdi,rcx 26 mov rsi,rdx 27 mov rdx,r8 28 29 30 31_CET_ENDBR 32 mov rax,rsp 33 34 push rbx 35 36 push rbp 37 38 push r12 39 40 push r13 41 42 push r14 43 44 mov r8,rdi 45 sub rsp,72 46 mov r9,rsi 47 and rsp,-64 48 mov r10,rdx 49 mov QWORD[64+rsp],rax 50 51$L$prologue: 52 53 mov esi,DWORD[r8] 54 mov edi,DWORD[4+r8] 55 mov r11d,DWORD[8+r8] 56 mov r12d,DWORD[12+r8] 57 mov r13d,DWORD[16+r8] 58 jmp NEAR $L$loop 59 60ALIGN 16 61$L$loop: 62 mov edx,DWORD[r9] 63 bswap edx 64 mov ebp,DWORD[4+r9] 65 mov eax,r12d 66 mov DWORD[rsp],edx 67 mov ecx,esi 68 bswap ebp 69 xor eax,r11d 70 rol ecx,5 71 and eax,edi 72 lea r13d,[1518500249+r13*1+rdx] 73 add r13d,ecx 74 xor eax,r12d 75 rol edi,30 76 add r13d,eax 77 mov r14d,DWORD[8+r9] 78 mov eax,r11d 79 mov DWORD[4+rsp],ebp 80 mov ecx,r13d 81 bswap r14d 82 xor eax,edi 83 rol ecx,5 84 and eax,esi 85 lea r12d,[1518500249+r12*1+rbp] 86 add r12d,ecx 87 xor eax,r11d 88 rol esi,30 89 add r12d,eax 90 mov edx,DWORD[12+r9] 91 mov eax,edi 92 mov DWORD[8+rsp],r14d 93 mov ecx,r12d 94 bswap edx 95 xor eax,esi 96 rol ecx,5 97 and eax,r13d 98 lea r11d,[1518500249+r11*1+r14] 99 add r11d,ecx 100 xor eax,edi 101 rol r13d,30 102 add r11d,eax 103 mov ebp,DWORD[16+r9] 104 mov eax,esi 105 mov DWORD[12+rsp],edx 106 mov ecx,r11d 107 bswap ebp 108 xor eax,r13d 109 rol ecx,5 110 and eax,r12d 111 lea edi,[1518500249+rdi*1+rdx] 112 add edi,ecx 113 xor eax,esi 114 rol r12d,30 115 add edi,eax 116 mov r14d,DWORD[20+r9] 117 mov eax,r13d 118 mov DWORD[16+rsp],ebp 119 mov ecx,edi 120 bswap r14d 121 xor eax,r12d 122 rol ecx,5 123 and eax,r11d 124 lea esi,[1518500249+rsi*1+rbp] 125 add esi,ecx 126 xor eax,r13d 127 rol r11d,30 128 add esi,eax 129 mov edx,DWORD[24+r9] 130 mov eax,r12d 131 mov DWORD[20+rsp],r14d 132 mov ecx,esi 133 bswap edx 134 xor eax,r11d 135 rol ecx,5 136 and eax,edi 137 lea r13d,[1518500249+r13*1+r14] 138 add r13d,ecx 139 xor eax,r12d 140 rol edi,30 141 add r13d,eax 142 mov ebp,DWORD[28+r9] 143 mov eax,r11d 144 mov DWORD[24+rsp],edx 145 mov ecx,r13d 146 bswap ebp 147 xor eax,edi 148 rol ecx,5 149 and eax,esi 150 lea r12d,[1518500249+r12*1+rdx] 151 add r12d,ecx 152 xor eax,r11d 153 rol esi,30 154 add r12d,eax 155 mov r14d,DWORD[32+r9] 156 mov eax,edi 157 mov DWORD[28+rsp],ebp 158 mov ecx,r12d 159 bswap r14d 160 xor eax,esi 161 rol ecx,5 162 and eax,r13d 163 lea r11d,[1518500249+r11*1+rbp] 164 add r11d,ecx 165 xor eax,edi 166 rol r13d,30 167 add r11d,eax 168 mov edx,DWORD[36+r9] 169 mov eax,esi 170 mov DWORD[32+rsp],r14d 171 mov ecx,r11d 172 bswap edx 173 xor eax,r13d 174 rol ecx,5 175 and eax,r12d 176 lea edi,[1518500249+rdi*1+r14] 177 add edi,ecx 178 xor eax,esi 179 rol r12d,30 180 add edi,eax 181 mov ebp,DWORD[40+r9] 182 mov eax,r13d 183 mov DWORD[36+rsp],edx 184 mov ecx,edi 185 bswap ebp 186 xor eax,r12d 187 rol ecx,5 188 and eax,r11d 189 lea esi,[1518500249+rsi*1+rdx] 190 add esi,ecx 191 xor eax,r13d 192 rol r11d,30 193 add esi,eax 194 mov r14d,DWORD[44+r9] 195 mov eax,r12d 196 mov DWORD[40+rsp],ebp 197 mov ecx,esi 198 bswap r14d 199 xor eax,r11d 200 rol ecx,5 201 and eax,edi 202 lea r13d,[1518500249+r13*1+rbp] 203 add r13d,ecx 204 xor eax,r12d 205 rol edi,30 206 add r13d,eax 207 mov edx,DWORD[48+r9] 208 mov eax,r11d 209 mov DWORD[44+rsp],r14d 210 mov ecx,r13d 211 bswap edx 212 xor eax,edi 213 rol ecx,5 214 and eax,esi 215 lea r12d,[1518500249+r12*1+r14] 216 add r12d,ecx 217 xor eax,r11d 218 rol esi,30 219 add r12d,eax 220 mov ebp,DWORD[52+r9] 221 mov eax,edi 222 mov DWORD[48+rsp],edx 223 mov ecx,r12d 224 bswap ebp 225 xor eax,esi 226 rol ecx,5 227 and eax,r13d 228 lea r11d,[1518500249+r11*1+rdx] 229 add r11d,ecx 230 xor eax,edi 231 rol r13d,30 232 add r11d,eax 233 mov r14d,DWORD[56+r9] 234 mov eax,esi 235 mov DWORD[52+rsp],ebp 236 mov ecx,r11d 237 bswap r14d 238 xor eax,r13d 239 rol ecx,5 240 and eax,r12d 241 lea edi,[1518500249+rdi*1+rbp] 242 add edi,ecx 243 xor eax,esi 244 rol r12d,30 245 add edi,eax 246 mov edx,DWORD[60+r9] 247 mov eax,r13d 248 mov DWORD[56+rsp],r14d 249 mov ecx,edi 250 bswap edx 251 xor eax,r12d 252 rol ecx,5 253 and eax,r11d 254 lea esi,[1518500249+rsi*1+r14] 255 add esi,ecx 256 xor eax,r13d 257 rol r11d,30 258 add esi,eax 259 xor ebp,DWORD[rsp] 260 mov eax,r12d 261 mov DWORD[60+rsp],edx 262 mov ecx,esi 263 xor ebp,DWORD[8+rsp] 264 xor eax,r11d 265 rol ecx,5 266 xor ebp,DWORD[32+rsp] 267 and eax,edi 268 lea r13d,[1518500249+r13*1+rdx] 269 rol edi,30 270 xor eax,r12d 271 add r13d,ecx 272 rol ebp,1 273 add r13d,eax 274 xor r14d,DWORD[4+rsp] 275 mov eax,r11d 276 mov DWORD[rsp],ebp 277 mov ecx,r13d 278 xor r14d,DWORD[12+rsp] 279 xor eax,edi 280 rol ecx,5 281 xor r14d,DWORD[36+rsp] 282 and eax,esi 283 lea r12d,[1518500249+r12*1+rbp] 284 rol esi,30 285 xor eax,r11d 286 add r12d,ecx 287 rol r14d,1 288 add r12d,eax 289 xor edx,DWORD[8+rsp] 290 mov eax,edi 291 mov DWORD[4+rsp],r14d 292 mov ecx,r12d 293 xor edx,DWORD[16+rsp] 294 xor eax,esi 295 rol ecx,5 296 xor edx,DWORD[40+rsp] 297 and eax,r13d 298 lea r11d,[1518500249+r11*1+r14] 299 rol r13d,30 300 xor eax,edi 301 add r11d,ecx 302 rol edx,1 303 add r11d,eax 304 xor ebp,DWORD[12+rsp] 305 mov eax,esi 306 mov DWORD[8+rsp],edx 307 mov ecx,r11d 308 xor ebp,DWORD[20+rsp] 309 xor eax,r13d 310 rol ecx,5 311 xor ebp,DWORD[44+rsp] 312 and eax,r12d 313 lea edi,[1518500249+rdi*1+rdx] 314 rol r12d,30 315 xor eax,esi 316 add edi,ecx 317 rol ebp,1 318 add edi,eax 319 xor r14d,DWORD[16+rsp] 320 mov eax,r13d 321 mov DWORD[12+rsp],ebp 322 mov ecx,edi 323 xor r14d,DWORD[24+rsp] 324 xor eax,r12d 325 rol ecx,5 326 xor r14d,DWORD[48+rsp] 327 and eax,r11d 328 lea esi,[1518500249+rsi*1+rbp] 329 rol r11d,30 330 xor eax,r13d 331 add esi,ecx 332 rol r14d,1 333 add esi,eax 334 xor edx,DWORD[20+rsp] 335 mov eax,edi 336 mov DWORD[16+rsp],r14d 337 mov ecx,esi 338 xor edx,DWORD[28+rsp] 339 xor eax,r12d 340 rol ecx,5 341 xor edx,DWORD[52+rsp] 342 lea r13d,[1859775393+r13*1+r14] 343 xor eax,r11d 344 add r13d,ecx 345 rol edi,30 346 add r13d,eax 347 rol edx,1 348 xor ebp,DWORD[24+rsp] 349 mov eax,esi 350 mov DWORD[20+rsp],edx 351 mov ecx,r13d 352 xor ebp,DWORD[32+rsp] 353 xor eax,r11d 354 rol ecx,5 355 xor ebp,DWORD[56+rsp] 356 lea r12d,[1859775393+r12*1+rdx] 357 xor eax,edi 358 add r12d,ecx 359 rol esi,30 360 add r12d,eax 361 rol ebp,1 362 xor r14d,DWORD[28+rsp] 363 mov eax,r13d 364 mov DWORD[24+rsp],ebp 365 mov ecx,r12d 366 xor r14d,DWORD[36+rsp] 367 xor eax,edi 368 rol ecx,5 369 xor r14d,DWORD[60+rsp] 370 lea r11d,[1859775393+r11*1+rbp] 371 xor eax,esi 372 add r11d,ecx 373 rol r13d,30 374 add r11d,eax 375 rol r14d,1 376 xor edx,DWORD[32+rsp] 377 mov eax,r12d 378 mov DWORD[28+rsp],r14d 379 mov ecx,r11d 380 xor edx,DWORD[40+rsp] 381 xor eax,esi 382 rol ecx,5 383 xor edx,DWORD[rsp] 384 lea edi,[1859775393+rdi*1+r14] 385 xor eax,r13d 386 add edi,ecx 387 rol r12d,30 388 add edi,eax 389 rol edx,1 390 xor ebp,DWORD[36+rsp] 391 mov eax,r11d 392 mov DWORD[32+rsp],edx 393 mov ecx,edi 394 xor ebp,DWORD[44+rsp] 395 xor eax,r13d 396 rol ecx,5 397 xor ebp,DWORD[4+rsp] 398 lea esi,[1859775393+rsi*1+rdx] 399 xor eax,r12d 400 add esi,ecx 401 rol r11d,30 402 add esi,eax 403 rol ebp,1 404 xor r14d,DWORD[40+rsp] 405 mov eax,edi 406 mov DWORD[36+rsp],ebp 407 mov ecx,esi 408 xor r14d,DWORD[48+rsp] 409 xor eax,r12d 410 rol ecx,5 411 xor r14d,DWORD[8+rsp] 412 lea r13d,[1859775393+r13*1+rbp] 413 xor eax,r11d 414 add r13d,ecx 415 rol edi,30 416 add r13d,eax 417 rol r14d,1 418 xor edx,DWORD[44+rsp] 419 mov eax,esi 420 mov DWORD[40+rsp],r14d 421 mov ecx,r13d 422 xor edx,DWORD[52+rsp] 423 xor eax,r11d 424 rol ecx,5 425 xor edx,DWORD[12+rsp] 426 lea r12d,[1859775393+r12*1+r14] 427 xor eax,edi 428 add r12d,ecx 429 rol esi,30 430 add r12d,eax 431 rol edx,1 432 xor ebp,DWORD[48+rsp] 433 mov eax,r13d 434 mov DWORD[44+rsp],edx 435 mov ecx,r12d 436 xor ebp,DWORD[56+rsp] 437 xor eax,edi 438 rol ecx,5 439 xor ebp,DWORD[16+rsp] 440 lea r11d,[1859775393+r11*1+rdx] 441 xor eax,esi 442 add r11d,ecx 443 rol r13d,30 444 add r11d,eax 445 rol ebp,1 446 xor r14d,DWORD[52+rsp] 447 mov eax,r12d 448 mov DWORD[48+rsp],ebp 449 mov ecx,r11d 450 xor r14d,DWORD[60+rsp] 451 xor eax,esi 452 rol ecx,5 453 xor r14d,DWORD[20+rsp] 454 lea edi,[1859775393+rdi*1+rbp] 455 xor eax,r13d 456 add edi,ecx 457 rol r12d,30 458 add edi,eax 459 rol r14d,1 460 xor edx,DWORD[56+rsp] 461 mov eax,r11d 462 mov DWORD[52+rsp],r14d 463 mov ecx,edi 464 xor edx,DWORD[rsp] 465 xor eax,r13d 466 rol ecx,5 467 xor edx,DWORD[24+rsp] 468 lea esi,[1859775393+rsi*1+r14] 469 xor eax,r12d 470 add esi,ecx 471 rol r11d,30 472 add esi,eax 473 rol edx,1 474 xor ebp,DWORD[60+rsp] 475 mov eax,edi 476 mov DWORD[56+rsp],edx 477 mov ecx,esi 478 xor ebp,DWORD[4+rsp] 479 xor eax,r12d 480 rol ecx,5 481 xor ebp,DWORD[28+rsp] 482 lea r13d,[1859775393+r13*1+rdx] 483 xor eax,r11d 484 add r13d,ecx 485 rol edi,30 486 add r13d,eax 487 rol ebp,1 488 xor r14d,DWORD[rsp] 489 mov eax,esi 490 mov DWORD[60+rsp],ebp 491 mov ecx,r13d 492 xor r14d,DWORD[8+rsp] 493 xor eax,r11d 494 rol ecx,5 495 xor r14d,DWORD[32+rsp] 496 lea r12d,[1859775393+r12*1+rbp] 497 xor eax,edi 498 add r12d,ecx 499 rol esi,30 500 add r12d,eax 501 rol r14d,1 502 xor edx,DWORD[4+rsp] 503 mov eax,r13d 504 mov DWORD[rsp],r14d 505 mov ecx,r12d 506 xor edx,DWORD[12+rsp] 507 xor eax,edi 508 rol ecx,5 509 xor edx,DWORD[36+rsp] 510 lea r11d,[1859775393+r11*1+r14] 511 xor eax,esi 512 add r11d,ecx 513 rol r13d,30 514 add r11d,eax 515 rol edx,1 516 xor ebp,DWORD[8+rsp] 517 mov eax,r12d 518 mov DWORD[4+rsp],edx 519 mov ecx,r11d 520 xor ebp,DWORD[16+rsp] 521 xor eax,esi 522 rol ecx,5 523 xor ebp,DWORD[40+rsp] 524 lea edi,[1859775393+rdi*1+rdx] 525 xor eax,r13d 526 add edi,ecx 527 rol r12d,30 528 add edi,eax 529 rol ebp,1 530 xor r14d,DWORD[12+rsp] 531 mov eax,r11d 532 mov DWORD[8+rsp],ebp 533 mov ecx,edi 534 xor r14d,DWORD[20+rsp] 535 xor eax,r13d 536 rol ecx,5 537 xor r14d,DWORD[44+rsp] 538 lea esi,[1859775393+rsi*1+rbp] 539 xor eax,r12d 540 add esi,ecx 541 rol r11d,30 542 add esi,eax 543 rol r14d,1 544 xor edx,DWORD[16+rsp] 545 mov eax,edi 546 mov DWORD[12+rsp],r14d 547 mov ecx,esi 548 xor edx,DWORD[24+rsp] 549 xor eax,r12d 550 rol ecx,5 551 xor edx,DWORD[48+rsp] 552 lea r13d,[1859775393+r13*1+r14] 553 xor eax,r11d 554 add r13d,ecx 555 rol edi,30 556 add r13d,eax 557 rol edx,1 558 xor ebp,DWORD[20+rsp] 559 mov eax,esi 560 mov DWORD[16+rsp],edx 561 mov ecx,r13d 562 xor ebp,DWORD[28+rsp] 563 xor eax,r11d 564 rol ecx,5 565 xor ebp,DWORD[52+rsp] 566 lea r12d,[1859775393+r12*1+rdx] 567 xor eax,edi 568 add r12d,ecx 569 rol esi,30 570 add r12d,eax 571 rol ebp,1 572 xor r14d,DWORD[24+rsp] 573 mov eax,r13d 574 mov DWORD[20+rsp],ebp 575 mov ecx,r12d 576 xor r14d,DWORD[32+rsp] 577 xor eax,edi 578 rol ecx,5 579 xor r14d,DWORD[56+rsp] 580 lea r11d,[1859775393+r11*1+rbp] 581 xor eax,esi 582 add r11d,ecx 583 rol r13d,30 584 add r11d,eax 585 rol r14d,1 586 xor edx,DWORD[28+rsp] 587 mov eax,r12d 588 mov DWORD[24+rsp],r14d 589 mov ecx,r11d 590 xor edx,DWORD[36+rsp] 591 xor eax,esi 592 rol ecx,5 593 xor edx,DWORD[60+rsp] 594 lea edi,[1859775393+rdi*1+r14] 595 xor eax,r13d 596 add edi,ecx 597 rol r12d,30 598 add edi,eax 599 rol edx,1 600 xor ebp,DWORD[32+rsp] 601 mov eax,r11d 602 mov DWORD[28+rsp],edx 603 mov ecx,edi 604 xor ebp,DWORD[40+rsp] 605 xor eax,r13d 606 rol ecx,5 607 xor ebp,DWORD[rsp] 608 lea esi,[1859775393+rsi*1+rdx] 609 xor eax,r12d 610 add esi,ecx 611 rol r11d,30 612 add esi,eax 613 rol ebp,1 614 xor r14d,DWORD[36+rsp] 615 mov eax,r12d 616 mov DWORD[32+rsp],ebp 617 mov ebx,r12d 618 xor r14d,DWORD[44+rsp] 619 and eax,r11d 620 mov ecx,esi 621 xor r14d,DWORD[4+rsp] 622 lea r13d,[((-1894007588))+r13*1+rbp] 623 xor ebx,r11d 624 rol ecx,5 625 add r13d,eax 626 rol r14d,1 627 and ebx,edi 628 add r13d,ecx 629 rol edi,30 630 add r13d,ebx 631 xor edx,DWORD[40+rsp] 632 mov eax,r11d 633 mov DWORD[36+rsp],r14d 634 mov ebx,r11d 635 xor edx,DWORD[48+rsp] 636 and eax,edi 637 mov ecx,r13d 638 xor edx,DWORD[8+rsp] 639 lea r12d,[((-1894007588))+r12*1+r14] 640 xor ebx,edi 641 rol ecx,5 642 add r12d,eax 643 rol edx,1 644 and ebx,esi 645 add r12d,ecx 646 rol esi,30 647 add r12d,ebx 648 xor ebp,DWORD[44+rsp] 649 mov eax,edi 650 mov DWORD[40+rsp],edx 651 mov ebx,edi 652 xor ebp,DWORD[52+rsp] 653 and eax,esi 654 mov ecx,r12d 655 xor ebp,DWORD[12+rsp] 656 lea r11d,[((-1894007588))+r11*1+rdx] 657 xor ebx,esi 658 rol ecx,5 659 add r11d,eax 660 rol ebp,1 661 and ebx,r13d 662 add r11d,ecx 663 rol r13d,30 664 add r11d,ebx 665 xor r14d,DWORD[48+rsp] 666 mov eax,esi 667 mov DWORD[44+rsp],ebp 668 mov ebx,esi 669 xor r14d,DWORD[56+rsp] 670 and eax,r13d 671 mov ecx,r11d 672 xor r14d,DWORD[16+rsp] 673 lea edi,[((-1894007588))+rdi*1+rbp] 674 xor ebx,r13d 675 rol ecx,5 676 add edi,eax 677 rol r14d,1 678 and ebx,r12d 679 add edi,ecx 680 rol r12d,30 681 add edi,ebx 682 xor edx,DWORD[52+rsp] 683 mov eax,r13d 684 mov DWORD[48+rsp],r14d 685 mov ebx,r13d 686 xor edx,DWORD[60+rsp] 687 and eax,r12d 688 mov ecx,edi 689 xor edx,DWORD[20+rsp] 690 lea esi,[((-1894007588))+rsi*1+r14] 691 xor ebx,r12d 692 rol ecx,5 693 add esi,eax 694 rol edx,1 695 and ebx,r11d 696 add esi,ecx 697 rol r11d,30 698 add esi,ebx 699 xor ebp,DWORD[56+rsp] 700 mov eax,r12d 701 mov DWORD[52+rsp],edx 702 mov ebx,r12d 703 xor ebp,DWORD[rsp] 704 and eax,r11d 705 mov ecx,esi 706 xor ebp,DWORD[24+rsp] 707 lea r13d,[((-1894007588))+r13*1+rdx] 708 xor ebx,r11d 709 rol ecx,5 710 add r13d,eax 711 rol ebp,1 712 and ebx,edi 713 add r13d,ecx 714 rol edi,30 715 add r13d,ebx 716 xor r14d,DWORD[60+rsp] 717 mov eax,r11d 718 mov DWORD[56+rsp],ebp 719 mov ebx,r11d 720 xor r14d,DWORD[4+rsp] 721 and eax,edi 722 mov ecx,r13d 723 xor r14d,DWORD[28+rsp] 724 lea r12d,[((-1894007588))+r12*1+rbp] 725 xor ebx,edi 726 rol ecx,5 727 add r12d,eax 728 rol r14d,1 729 and ebx,esi 730 add r12d,ecx 731 rol esi,30 732 add r12d,ebx 733 xor edx,DWORD[rsp] 734 mov eax,edi 735 mov DWORD[60+rsp],r14d 736 mov ebx,edi 737 xor edx,DWORD[8+rsp] 738 and eax,esi 739 mov ecx,r12d 740 xor edx,DWORD[32+rsp] 741 lea r11d,[((-1894007588))+r11*1+r14] 742 xor ebx,esi 743 rol ecx,5 744 add r11d,eax 745 rol edx,1 746 and ebx,r13d 747 add r11d,ecx 748 rol r13d,30 749 add r11d,ebx 750 xor ebp,DWORD[4+rsp] 751 mov eax,esi 752 mov DWORD[rsp],edx 753 mov ebx,esi 754 xor ebp,DWORD[12+rsp] 755 and eax,r13d 756 mov ecx,r11d 757 xor ebp,DWORD[36+rsp] 758 lea edi,[((-1894007588))+rdi*1+rdx] 759 xor ebx,r13d 760 rol ecx,5 761 add edi,eax 762 rol ebp,1 763 and ebx,r12d 764 add edi,ecx 765 rol r12d,30 766 add edi,ebx 767 xor r14d,DWORD[8+rsp] 768 mov eax,r13d 769 mov DWORD[4+rsp],ebp 770 mov ebx,r13d 771 xor r14d,DWORD[16+rsp] 772 and eax,r12d 773 mov ecx,edi 774 xor r14d,DWORD[40+rsp] 775 lea esi,[((-1894007588))+rsi*1+rbp] 776 xor ebx,r12d 777 rol ecx,5 778 add esi,eax 779 rol r14d,1 780 and ebx,r11d 781 add esi,ecx 782 rol r11d,30 783 add esi,ebx 784 xor edx,DWORD[12+rsp] 785 mov eax,r12d 786 mov DWORD[8+rsp],r14d 787 mov ebx,r12d 788 xor edx,DWORD[20+rsp] 789 and eax,r11d 790 mov ecx,esi 791 xor edx,DWORD[44+rsp] 792 lea r13d,[((-1894007588))+r13*1+r14] 793 xor ebx,r11d 794 rol ecx,5 795 add r13d,eax 796 rol edx,1 797 and ebx,edi 798 add r13d,ecx 799 rol edi,30 800 add r13d,ebx 801 xor ebp,DWORD[16+rsp] 802 mov eax,r11d 803 mov DWORD[12+rsp],edx 804 mov ebx,r11d 805 xor ebp,DWORD[24+rsp] 806 and eax,edi 807 mov ecx,r13d 808 xor ebp,DWORD[48+rsp] 809 lea r12d,[((-1894007588))+r12*1+rdx] 810 xor ebx,edi 811 rol ecx,5 812 add r12d,eax 813 rol ebp,1 814 and ebx,esi 815 add r12d,ecx 816 rol esi,30 817 add r12d,ebx 818 xor r14d,DWORD[20+rsp] 819 mov eax,edi 820 mov DWORD[16+rsp],ebp 821 mov ebx,edi 822 xor r14d,DWORD[28+rsp] 823 and eax,esi 824 mov ecx,r12d 825 xor r14d,DWORD[52+rsp] 826 lea r11d,[((-1894007588))+r11*1+rbp] 827 xor ebx,esi 828 rol ecx,5 829 add r11d,eax 830 rol r14d,1 831 and ebx,r13d 832 add r11d,ecx 833 rol r13d,30 834 add r11d,ebx 835 xor edx,DWORD[24+rsp] 836 mov eax,esi 837 mov DWORD[20+rsp],r14d 838 mov ebx,esi 839 xor edx,DWORD[32+rsp] 840 and eax,r13d 841 mov ecx,r11d 842 xor edx,DWORD[56+rsp] 843 lea edi,[((-1894007588))+rdi*1+r14] 844 xor ebx,r13d 845 rol ecx,5 846 add edi,eax 847 rol edx,1 848 and ebx,r12d 849 add edi,ecx 850 rol r12d,30 851 add edi,ebx 852 xor ebp,DWORD[28+rsp] 853 mov eax,r13d 854 mov DWORD[24+rsp],edx 855 mov ebx,r13d 856 xor ebp,DWORD[36+rsp] 857 and eax,r12d 858 mov ecx,edi 859 xor ebp,DWORD[60+rsp] 860 lea esi,[((-1894007588))+rsi*1+rdx] 861 xor ebx,r12d 862 rol ecx,5 863 add esi,eax 864 rol ebp,1 865 and ebx,r11d 866 add esi,ecx 867 rol r11d,30 868 add esi,ebx 869 xor r14d,DWORD[32+rsp] 870 mov eax,r12d 871 mov DWORD[28+rsp],ebp 872 mov ebx,r12d 873 xor r14d,DWORD[40+rsp] 874 and eax,r11d 875 mov ecx,esi 876 xor r14d,DWORD[rsp] 877 lea r13d,[((-1894007588))+r13*1+rbp] 878 xor ebx,r11d 879 rol ecx,5 880 add r13d,eax 881 rol r14d,1 882 and ebx,edi 883 add r13d,ecx 884 rol edi,30 885 add r13d,ebx 886 xor edx,DWORD[36+rsp] 887 mov eax,r11d 888 mov DWORD[32+rsp],r14d 889 mov ebx,r11d 890 xor edx,DWORD[44+rsp] 891 and eax,edi 892 mov ecx,r13d 893 xor edx,DWORD[4+rsp] 894 lea r12d,[((-1894007588))+r12*1+r14] 895 xor ebx,edi 896 rol ecx,5 897 add r12d,eax 898 rol edx,1 899 and ebx,esi 900 add r12d,ecx 901 rol esi,30 902 add r12d,ebx 903 xor ebp,DWORD[40+rsp] 904 mov eax,edi 905 mov DWORD[36+rsp],edx 906 mov ebx,edi 907 xor ebp,DWORD[48+rsp] 908 and eax,esi 909 mov ecx,r12d 910 xor ebp,DWORD[8+rsp] 911 lea r11d,[((-1894007588))+r11*1+rdx] 912 xor ebx,esi 913 rol ecx,5 914 add r11d,eax 915 rol ebp,1 916 and ebx,r13d 917 add r11d,ecx 918 rol r13d,30 919 add r11d,ebx 920 xor r14d,DWORD[44+rsp] 921 mov eax,esi 922 mov DWORD[40+rsp],ebp 923 mov ebx,esi 924 xor r14d,DWORD[52+rsp] 925 and eax,r13d 926 mov ecx,r11d 927 xor r14d,DWORD[12+rsp] 928 lea edi,[((-1894007588))+rdi*1+rbp] 929 xor ebx,r13d 930 rol ecx,5 931 add edi,eax 932 rol r14d,1 933 and ebx,r12d 934 add edi,ecx 935 rol r12d,30 936 add edi,ebx 937 xor edx,DWORD[48+rsp] 938 mov eax,r13d 939 mov DWORD[44+rsp],r14d 940 mov ebx,r13d 941 xor edx,DWORD[56+rsp] 942 and eax,r12d 943 mov ecx,edi 944 xor edx,DWORD[16+rsp] 945 lea esi,[((-1894007588))+rsi*1+r14] 946 xor ebx,r12d 947 rol ecx,5 948 add esi,eax 949 rol edx,1 950 and ebx,r11d 951 add esi,ecx 952 rol r11d,30 953 add esi,ebx 954 xor ebp,DWORD[52+rsp] 955 mov eax,edi 956 mov DWORD[48+rsp],edx 957 mov ecx,esi 958 xor ebp,DWORD[60+rsp] 959 xor eax,r12d 960 rol ecx,5 961 xor ebp,DWORD[20+rsp] 962 lea r13d,[((-899497514))+r13*1+rdx] 963 xor eax,r11d 964 add r13d,ecx 965 rol edi,30 966 add r13d,eax 967 rol ebp,1 968 xor r14d,DWORD[56+rsp] 969 mov eax,esi 970 mov DWORD[52+rsp],ebp 971 mov ecx,r13d 972 xor r14d,DWORD[rsp] 973 xor eax,r11d 974 rol ecx,5 975 xor r14d,DWORD[24+rsp] 976 lea r12d,[((-899497514))+r12*1+rbp] 977 xor eax,edi 978 add r12d,ecx 979 rol esi,30 980 add r12d,eax 981 rol r14d,1 982 xor edx,DWORD[60+rsp] 983 mov eax,r13d 984 mov DWORD[56+rsp],r14d 985 mov ecx,r12d 986 xor edx,DWORD[4+rsp] 987 xor eax,edi 988 rol ecx,5 989 xor edx,DWORD[28+rsp] 990 lea r11d,[((-899497514))+r11*1+r14] 991 xor eax,esi 992 add r11d,ecx 993 rol r13d,30 994 add r11d,eax 995 rol edx,1 996 xor ebp,DWORD[rsp] 997 mov eax,r12d 998 mov DWORD[60+rsp],edx 999 mov ecx,r11d 1000 xor ebp,DWORD[8+rsp] 1001 xor eax,esi 1002 rol ecx,5 1003 xor ebp,DWORD[32+rsp] 1004 lea edi,[((-899497514))+rdi*1+rdx] 1005 xor eax,r13d 1006 add edi,ecx 1007 rol r12d,30 1008 add edi,eax 1009 rol ebp,1 1010 xor r14d,DWORD[4+rsp] 1011 mov eax,r11d 1012 mov DWORD[rsp],ebp 1013 mov ecx,edi 1014 xor r14d,DWORD[12+rsp] 1015 xor eax,r13d 1016 rol ecx,5 1017 xor r14d,DWORD[36+rsp] 1018 lea esi,[((-899497514))+rsi*1+rbp] 1019 xor eax,r12d 1020 add esi,ecx 1021 rol r11d,30 1022 add esi,eax 1023 rol r14d,1 1024 xor edx,DWORD[8+rsp] 1025 mov eax,edi 1026 mov DWORD[4+rsp],r14d 1027 mov ecx,esi 1028 xor edx,DWORD[16+rsp] 1029 xor eax,r12d 1030 rol ecx,5 1031 xor edx,DWORD[40+rsp] 1032 lea r13d,[((-899497514))+r13*1+r14] 1033 xor eax,r11d 1034 add r13d,ecx 1035 rol edi,30 1036 add r13d,eax 1037 rol edx,1 1038 xor ebp,DWORD[12+rsp] 1039 mov eax,esi 1040 mov DWORD[8+rsp],edx 1041 mov ecx,r13d 1042 xor ebp,DWORD[20+rsp] 1043 xor eax,r11d 1044 rol ecx,5 1045 xor ebp,DWORD[44+rsp] 1046 lea r12d,[((-899497514))+r12*1+rdx] 1047 xor eax,edi 1048 add r12d,ecx 1049 rol esi,30 1050 add r12d,eax 1051 rol ebp,1 1052 xor r14d,DWORD[16+rsp] 1053 mov eax,r13d 1054 mov DWORD[12+rsp],ebp 1055 mov ecx,r12d 1056 xor r14d,DWORD[24+rsp] 1057 xor eax,edi 1058 rol ecx,5 1059 xor r14d,DWORD[48+rsp] 1060 lea r11d,[((-899497514))+r11*1+rbp] 1061 xor eax,esi 1062 add r11d,ecx 1063 rol r13d,30 1064 add r11d,eax 1065 rol r14d,1 1066 xor edx,DWORD[20+rsp] 1067 mov eax,r12d 1068 mov DWORD[16+rsp],r14d 1069 mov ecx,r11d 1070 xor edx,DWORD[28+rsp] 1071 xor eax,esi 1072 rol ecx,5 1073 xor edx,DWORD[52+rsp] 1074 lea edi,[((-899497514))+rdi*1+r14] 1075 xor eax,r13d 1076 add edi,ecx 1077 rol r12d,30 1078 add edi,eax 1079 rol edx,1 1080 xor ebp,DWORD[24+rsp] 1081 mov eax,r11d 1082 mov DWORD[20+rsp],edx 1083 mov ecx,edi 1084 xor ebp,DWORD[32+rsp] 1085 xor eax,r13d 1086 rol ecx,5 1087 xor ebp,DWORD[56+rsp] 1088 lea esi,[((-899497514))+rsi*1+rdx] 1089 xor eax,r12d 1090 add esi,ecx 1091 rol r11d,30 1092 add esi,eax 1093 rol ebp,1 1094 xor r14d,DWORD[28+rsp] 1095 mov eax,edi 1096 mov DWORD[24+rsp],ebp 1097 mov ecx,esi 1098 xor r14d,DWORD[36+rsp] 1099 xor eax,r12d 1100 rol ecx,5 1101 xor r14d,DWORD[60+rsp] 1102 lea r13d,[((-899497514))+r13*1+rbp] 1103 xor eax,r11d 1104 add r13d,ecx 1105 rol edi,30 1106 add r13d,eax 1107 rol r14d,1 1108 xor edx,DWORD[32+rsp] 1109 mov eax,esi 1110 mov DWORD[28+rsp],r14d 1111 mov ecx,r13d 1112 xor edx,DWORD[40+rsp] 1113 xor eax,r11d 1114 rol ecx,5 1115 xor edx,DWORD[rsp] 1116 lea r12d,[((-899497514))+r12*1+r14] 1117 xor eax,edi 1118 add r12d,ecx 1119 rol esi,30 1120 add r12d,eax 1121 rol edx,1 1122 xor ebp,DWORD[36+rsp] 1123 mov eax,r13d 1124 1125 mov ecx,r12d 1126 xor ebp,DWORD[44+rsp] 1127 xor eax,edi 1128 rol ecx,5 1129 xor ebp,DWORD[4+rsp] 1130 lea r11d,[((-899497514))+r11*1+rdx] 1131 xor eax,esi 1132 add r11d,ecx 1133 rol r13d,30 1134 add r11d,eax 1135 rol ebp,1 1136 xor r14d,DWORD[40+rsp] 1137 mov eax,r12d 1138 1139 mov ecx,r11d 1140 xor r14d,DWORD[48+rsp] 1141 xor eax,esi 1142 rol ecx,5 1143 xor r14d,DWORD[8+rsp] 1144 lea edi,[((-899497514))+rdi*1+rbp] 1145 xor eax,r13d 1146 add edi,ecx 1147 rol r12d,30 1148 add edi,eax 1149 rol r14d,1 1150 xor edx,DWORD[44+rsp] 1151 mov eax,r11d 1152 1153 mov ecx,edi 1154 xor edx,DWORD[52+rsp] 1155 xor eax,r13d 1156 rol ecx,5 1157 xor edx,DWORD[12+rsp] 1158 lea esi,[((-899497514))+rsi*1+r14] 1159 xor eax,r12d 1160 add esi,ecx 1161 rol r11d,30 1162 add esi,eax 1163 rol edx,1 1164 xor ebp,DWORD[48+rsp] 1165 mov eax,edi 1166 1167 mov ecx,esi 1168 xor ebp,DWORD[56+rsp] 1169 xor eax,r12d 1170 rol ecx,5 1171 xor ebp,DWORD[16+rsp] 1172 lea r13d,[((-899497514))+r13*1+rdx] 1173 xor eax,r11d 1174 add r13d,ecx 1175 rol edi,30 1176 add r13d,eax 1177 rol ebp,1 1178 xor r14d,DWORD[52+rsp] 1179 mov eax,esi 1180 1181 mov ecx,r13d 1182 xor r14d,DWORD[60+rsp] 1183 xor eax,r11d 1184 rol ecx,5 1185 xor r14d,DWORD[20+rsp] 1186 lea r12d,[((-899497514))+r12*1+rbp] 1187 xor eax,edi 1188 add r12d,ecx 1189 rol esi,30 1190 add r12d,eax 1191 rol r14d,1 1192 xor edx,DWORD[56+rsp] 1193 mov eax,r13d 1194 1195 mov ecx,r12d 1196 xor edx,DWORD[rsp] 1197 xor eax,edi 1198 rol ecx,5 1199 xor edx,DWORD[24+rsp] 1200 lea r11d,[((-899497514))+r11*1+r14] 1201 xor eax,esi 1202 add r11d,ecx 1203 rol r13d,30 1204 add r11d,eax 1205 rol edx,1 1206 xor ebp,DWORD[60+rsp] 1207 mov eax,r12d 1208 1209 mov ecx,r11d 1210 xor ebp,DWORD[4+rsp] 1211 xor eax,esi 1212 rol ecx,5 1213 xor ebp,DWORD[28+rsp] 1214 lea edi,[((-899497514))+rdi*1+rdx] 1215 xor eax,r13d 1216 add edi,ecx 1217 rol r12d,30 1218 add edi,eax 1219 rol ebp,1 1220 mov eax,r11d 1221 mov ecx,edi 1222 xor eax,r13d 1223 lea esi,[((-899497514))+rsi*1+rbp] 1224 rol ecx,5 1225 xor eax,r12d 1226 add esi,ecx 1227 rol r11d,30 1228 add esi,eax 1229 add esi,DWORD[r8] 1230 add edi,DWORD[4+r8] 1231 add r11d,DWORD[8+r8] 1232 add r12d,DWORD[12+r8] 1233 add r13d,DWORD[16+r8] 1234 mov DWORD[r8],esi 1235 mov DWORD[4+r8],edi 1236 mov DWORD[8+r8],r11d 1237 mov DWORD[12+r8],r12d 1238 mov DWORD[16+r8],r13d 1239 1240 sub r10,1 1241 lea r9,[64+r9] 1242 jnz NEAR $L$loop 1243 1244 mov rsi,QWORD[64+rsp] 1245 1246 mov r14,QWORD[((-40))+rsi] 1247 1248 mov r13,QWORD[((-32))+rsi] 1249 1250 mov r12,QWORD[((-24))+rsi] 1251 1252 mov rbp,QWORD[((-16))+rsi] 1253 1254 mov rbx,QWORD[((-8))+rsi] 1255 1256 lea rsp,[rsi] 1257 1258$L$epilogue: 1259 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 1260 mov rsi,QWORD[16+rsp] 1261 ret 1262 1263$L$SEH_end_sha1_block_data_order_nohw: 1264global sha1_block_data_order_hw 1265 1266ALIGN 32 1267sha1_block_data_order_hw: 1268 mov QWORD[8+rsp],rdi ;WIN64 prologue 1269 mov QWORD[16+rsp],rsi 1270 mov rax,rsp 1271$L$SEH_begin_sha1_block_data_order_hw: 1272 mov rdi,rcx 1273 mov rsi,rdx 1274 mov rdx,r8 1275 1276 1277 1278_CET_ENDBR 1279 lea rsp,[((-72))+rsp] 1280 movaps XMMWORD[(-8-64)+rax],xmm6 1281 movaps XMMWORD[(-8-48)+rax],xmm7 1282 movaps XMMWORD[(-8-32)+rax],xmm8 1283 movaps XMMWORD[(-8-16)+rax],xmm9 1284$L$prologue_shaext: 1285 movdqu xmm0,XMMWORD[rdi] 1286 movd xmm1,DWORD[16+rdi] 1287 movdqa xmm3,XMMWORD[((K_XX_XX+160))] 1288 1289 movdqu xmm4,XMMWORD[rsi] 1290 pshufd xmm0,xmm0,27 1291 movdqu xmm5,XMMWORD[16+rsi] 1292 pshufd xmm1,xmm1,27 1293 movdqu xmm6,XMMWORD[32+rsi] 1294DB 102,15,56,0,227 1295 movdqu xmm7,XMMWORD[48+rsi] 1296DB 102,15,56,0,235 1297DB 102,15,56,0,243 1298 movdqa xmm9,xmm1 1299DB 102,15,56,0,251 1300 jmp NEAR $L$oop_shaext 1301 1302ALIGN 16 1303$L$oop_shaext: 1304 dec rdx 1305 lea r8,[64+rsi] 1306 paddd xmm1,xmm4 1307 cmovne rsi,r8 1308 prefetcht0 [512+rsi] 1309 movdqa xmm8,xmm0 1310 DB 15,56,201,229 1311 movdqa xmm2,xmm0 1312 DB 15,58,204,193,0 1313 DB 15,56,200,213 1314 pxor xmm4,xmm6 1315 DB 15,56,201,238 1316 DB 15,56,202,231 1317 1318 movdqa xmm1,xmm0 1319 DB 15,58,204,194,0 1320 DB 15,56,200,206 1321 pxor xmm5,xmm7 1322 DB 15,56,202,236 1323 DB 15,56,201,247 1324 movdqa xmm2,xmm0 1325 DB 15,58,204,193,0 1326 DB 15,56,200,215 1327 pxor xmm6,xmm4 1328 DB 15,56,201,252 1329 DB 15,56,202,245 1330 1331 movdqa xmm1,xmm0 1332 DB 15,58,204,194,0 1333 DB 15,56,200,204 1334 pxor xmm7,xmm5 1335 DB 15,56,202,254 1336 DB 15,56,201,229 1337 movdqa xmm2,xmm0 1338 DB 15,58,204,193,0 1339 DB 15,56,200,213 1340 pxor xmm4,xmm6 1341 DB 15,56,201,238 1342 DB 15,56,202,231 1343 1344 movdqa xmm1,xmm0 1345 DB 15,58,204,194,1 1346 DB 15,56,200,206 1347 pxor xmm5,xmm7 1348 DB 15,56,202,236 1349 DB 15,56,201,247 1350 movdqa xmm2,xmm0 1351 DB 15,58,204,193,1 1352 DB 15,56,200,215 1353 pxor xmm6,xmm4 1354 DB 15,56,201,252 1355 DB 15,56,202,245 1356 1357 movdqa xmm1,xmm0 1358 DB 15,58,204,194,1 1359 DB 15,56,200,204 1360 pxor xmm7,xmm5 1361 DB 15,56,202,254 1362 DB 15,56,201,229 1363 movdqa xmm2,xmm0 1364 DB 15,58,204,193,1 1365 DB 15,56,200,213 1366 pxor xmm4,xmm6 1367 DB 15,56,201,238 1368 DB 15,56,202,231 1369 1370 movdqa xmm1,xmm0 1371 DB 15,58,204,194,1 1372 DB 15,56,200,206 1373 pxor xmm5,xmm7 1374 DB 15,56,202,236 1375 DB 15,56,201,247 1376 movdqa xmm2,xmm0 1377 DB 15,58,204,193,2 1378 DB 15,56,200,215 1379 pxor xmm6,xmm4 1380 DB 15,56,201,252 1381 DB 15,56,202,245 1382 1383 movdqa xmm1,xmm0 1384 DB 15,58,204,194,2 1385 DB 15,56,200,204 1386 pxor xmm7,xmm5 1387 DB 15,56,202,254 1388 DB 15,56,201,229 1389 movdqa xmm2,xmm0 1390 DB 15,58,204,193,2 1391 DB 15,56,200,213 1392 pxor xmm4,xmm6 1393 DB 15,56,201,238 1394 DB 15,56,202,231 1395 1396 movdqa xmm1,xmm0 1397 DB 15,58,204,194,2 1398 DB 15,56,200,206 1399 pxor xmm5,xmm7 1400 DB 15,56,202,236 1401 DB 15,56,201,247 1402 movdqa xmm2,xmm0 1403 DB 15,58,204,193,2 1404 DB 15,56,200,215 1405 pxor xmm6,xmm4 1406 DB 15,56,201,252 1407 DB 15,56,202,245 1408 1409 movdqa xmm1,xmm0 1410 DB 15,58,204,194,3 1411 DB 15,56,200,204 1412 pxor xmm7,xmm5 1413 DB 15,56,202,254 1414 movdqu xmm4,XMMWORD[rsi] 1415 movdqa xmm2,xmm0 1416 DB 15,58,204,193,3 1417 DB 15,56,200,213 1418 movdqu xmm5,XMMWORD[16+rsi] 1419DB 102,15,56,0,227 1420 1421 movdqa xmm1,xmm0 1422 DB 15,58,204,194,3 1423 DB 15,56,200,206 1424 movdqu xmm6,XMMWORD[32+rsi] 1425DB 102,15,56,0,235 1426 1427 movdqa xmm2,xmm0 1428 DB 15,58,204,193,3 1429 DB 15,56,200,215 1430 movdqu xmm7,XMMWORD[48+rsi] 1431DB 102,15,56,0,243 1432 1433 movdqa xmm1,xmm0 1434 DB 15,58,204,194,3 1435 DB 65,15,56,200,201 1436DB 102,15,56,0,251 1437 1438 paddd xmm0,xmm8 1439 movdqa xmm9,xmm1 1440 1441 jnz NEAR $L$oop_shaext 1442 1443 pshufd xmm0,xmm0,27 1444 pshufd xmm1,xmm1,27 1445 movdqu XMMWORD[rdi],xmm0 1446 movd DWORD[16+rdi],xmm1 1447 movaps xmm6,XMMWORD[((-8-64))+rax] 1448 movaps xmm7,XMMWORD[((-8-48))+rax] 1449 movaps xmm8,XMMWORD[((-8-32))+rax] 1450 movaps xmm9,XMMWORD[((-8-16))+rax] 1451 mov rsp,rax 1452$L$epilogue_shaext: 1453 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 1454 mov rsi,QWORD[16+rsp] 1455 ret 1456 1457$L$SEH_end_sha1_block_data_order_hw: 1458global sha1_block_data_order_ssse3 1459 1460ALIGN 16 1461sha1_block_data_order_ssse3: 1462 mov QWORD[8+rsp],rdi ;WIN64 prologue 1463 mov QWORD[16+rsp],rsi 1464 mov rax,rsp 1465$L$SEH_begin_sha1_block_data_order_ssse3: 1466 mov rdi,rcx 1467 mov rsi,rdx 1468 mov rdx,r8 1469 1470 1471 1472_CET_ENDBR 1473 mov r11,rsp 1474 1475 push rbx 1476 1477 push rbp 1478 1479 push r12 1480 1481 push r13 1482 1483 push r14 1484 1485 lea rsp,[((-160))+rsp] 1486 movaps XMMWORD[(-40-96)+r11],xmm6 1487 movaps XMMWORD[(-40-80)+r11],xmm7 1488 movaps XMMWORD[(-40-64)+r11],xmm8 1489 movaps XMMWORD[(-40-48)+r11],xmm9 1490 movaps XMMWORD[(-40-32)+r11],xmm10 1491 movaps XMMWORD[(-40-16)+r11],xmm11 1492$L$prologue_ssse3: 1493 and rsp,-64 1494 mov r8,rdi 1495 mov r9,rsi 1496 mov r10,rdx 1497 1498 shl r10,6 1499 add r10,r9 1500 lea r14,[((K_XX_XX+64))] 1501 1502 mov eax,DWORD[r8] 1503 mov ebx,DWORD[4+r8] 1504 mov ecx,DWORD[8+r8] 1505 mov edx,DWORD[12+r8] 1506 mov esi,ebx 1507 mov ebp,DWORD[16+r8] 1508 mov edi,ecx 1509 xor edi,edx 1510 and esi,edi 1511 1512 movdqa xmm6,XMMWORD[64+r14] 1513 movdqa xmm9,XMMWORD[((-64))+r14] 1514 movdqu xmm0,XMMWORD[r9] 1515 movdqu xmm1,XMMWORD[16+r9] 1516 movdqu xmm2,XMMWORD[32+r9] 1517 movdqu xmm3,XMMWORD[48+r9] 1518DB 102,15,56,0,198 1519DB 102,15,56,0,206 1520DB 102,15,56,0,214 1521 add r9,64 1522 paddd xmm0,xmm9 1523DB 102,15,56,0,222 1524 paddd xmm1,xmm9 1525 paddd xmm2,xmm9 1526 movdqa XMMWORD[rsp],xmm0 1527 psubd xmm0,xmm9 1528 movdqa XMMWORD[16+rsp],xmm1 1529 psubd xmm1,xmm9 1530 movdqa XMMWORD[32+rsp],xmm2 1531 psubd xmm2,xmm9 1532 jmp NEAR $L$oop_ssse3 1533ALIGN 16 1534$L$oop_ssse3: 1535 ror ebx,2 1536 pshufd xmm4,xmm0,238 1537 xor esi,edx 1538 movdqa xmm8,xmm3 1539 paddd xmm9,xmm3 1540 mov edi,eax 1541 add ebp,DWORD[rsp] 1542 punpcklqdq xmm4,xmm1 1543 xor ebx,ecx 1544 rol eax,5 1545 add ebp,esi 1546 psrldq xmm8,4 1547 and edi,ebx 1548 xor ebx,ecx 1549 pxor xmm4,xmm0 1550 add ebp,eax 1551 ror eax,7 1552 pxor xmm8,xmm2 1553 xor edi,ecx 1554 mov esi,ebp 1555 add edx,DWORD[4+rsp] 1556 pxor xmm4,xmm8 1557 xor eax,ebx 1558 rol ebp,5 1559 movdqa XMMWORD[48+rsp],xmm9 1560 add edx,edi 1561 and esi,eax 1562 movdqa xmm10,xmm4 1563 xor eax,ebx 1564 add edx,ebp 1565 ror ebp,7 1566 movdqa xmm8,xmm4 1567 xor esi,ebx 1568 pslldq xmm10,12 1569 paddd xmm4,xmm4 1570 mov edi,edx 1571 add ecx,DWORD[8+rsp] 1572 psrld xmm8,31 1573 xor ebp,eax 1574 rol edx,5 1575 add ecx,esi 1576 movdqa xmm9,xmm10 1577 and edi,ebp 1578 xor ebp,eax 1579 psrld xmm10,30 1580 add ecx,edx 1581 ror edx,7 1582 por xmm4,xmm8 1583 xor edi,eax 1584 mov esi,ecx 1585 add ebx,DWORD[12+rsp] 1586 pslld xmm9,2 1587 pxor xmm4,xmm10 1588 xor edx,ebp 1589 movdqa xmm10,XMMWORD[((-64))+r14] 1590 rol ecx,5 1591 add ebx,edi 1592 and esi,edx 1593 pxor xmm4,xmm9 1594 xor edx,ebp 1595 add ebx,ecx 1596 ror ecx,7 1597 pshufd xmm5,xmm1,238 1598 xor esi,ebp 1599 movdqa xmm9,xmm4 1600 paddd xmm10,xmm4 1601 mov edi,ebx 1602 add eax,DWORD[16+rsp] 1603 punpcklqdq xmm5,xmm2 1604 xor ecx,edx 1605 rol ebx,5 1606 add eax,esi 1607 psrldq xmm9,4 1608 and edi,ecx 1609 xor ecx,edx 1610 pxor xmm5,xmm1 1611 add eax,ebx 1612 ror ebx,7 1613 pxor xmm9,xmm3 1614 xor edi,edx 1615 mov esi,eax 1616 add ebp,DWORD[20+rsp] 1617 pxor xmm5,xmm9 1618 xor ebx,ecx 1619 rol eax,5 1620 movdqa XMMWORD[rsp],xmm10 1621 add ebp,edi 1622 and esi,ebx 1623 movdqa xmm8,xmm5 1624 xor ebx,ecx 1625 add ebp,eax 1626 ror eax,7 1627 movdqa xmm9,xmm5 1628 xor esi,ecx 1629 pslldq xmm8,12 1630 paddd xmm5,xmm5 1631 mov edi,ebp 1632 add edx,DWORD[24+rsp] 1633 psrld xmm9,31 1634 xor eax,ebx 1635 rol ebp,5 1636 add edx,esi 1637 movdqa xmm10,xmm8 1638 and edi,eax 1639 xor eax,ebx 1640 psrld xmm8,30 1641 add edx,ebp 1642 ror ebp,7 1643 por xmm5,xmm9 1644 xor edi,ebx 1645 mov esi,edx 1646 add ecx,DWORD[28+rsp] 1647 pslld xmm10,2 1648 pxor xmm5,xmm8 1649 xor ebp,eax 1650 movdqa xmm8,XMMWORD[((-32))+r14] 1651 rol edx,5 1652 add ecx,edi 1653 and esi,ebp 1654 pxor xmm5,xmm10 1655 xor ebp,eax 1656 add ecx,edx 1657 ror edx,7 1658 pshufd xmm6,xmm2,238 1659 xor esi,eax 1660 movdqa xmm10,xmm5 1661 paddd xmm8,xmm5 1662 mov edi,ecx 1663 add ebx,DWORD[32+rsp] 1664 punpcklqdq xmm6,xmm3 1665 xor edx,ebp 1666 rol ecx,5 1667 add ebx,esi 1668 psrldq xmm10,4 1669 and edi,edx 1670 xor edx,ebp 1671 pxor xmm6,xmm2 1672 add ebx,ecx 1673 ror ecx,7 1674 pxor xmm10,xmm4 1675 xor edi,ebp 1676 mov esi,ebx 1677 add eax,DWORD[36+rsp] 1678 pxor xmm6,xmm10 1679 xor ecx,edx 1680 rol ebx,5 1681 movdqa XMMWORD[16+rsp],xmm8 1682 add eax,edi 1683 and esi,ecx 1684 movdqa xmm9,xmm6 1685 xor ecx,edx 1686 add eax,ebx 1687 ror ebx,7 1688 movdqa xmm10,xmm6 1689 xor esi,edx 1690 pslldq xmm9,12 1691 paddd xmm6,xmm6 1692 mov edi,eax 1693 add ebp,DWORD[40+rsp] 1694 psrld xmm10,31 1695 xor ebx,ecx 1696 rol eax,5 1697 add ebp,esi 1698 movdqa xmm8,xmm9 1699 and edi,ebx 1700 xor ebx,ecx 1701 psrld xmm9,30 1702 add ebp,eax 1703 ror eax,7 1704 por xmm6,xmm10 1705 xor edi,ecx 1706 mov esi,ebp 1707 add edx,DWORD[44+rsp] 1708 pslld xmm8,2 1709 pxor xmm6,xmm9 1710 xor eax,ebx 1711 movdqa xmm9,XMMWORD[((-32))+r14] 1712 rol ebp,5 1713 add edx,edi 1714 and esi,eax 1715 pxor xmm6,xmm8 1716 xor eax,ebx 1717 add edx,ebp 1718 ror ebp,7 1719 pshufd xmm7,xmm3,238 1720 xor esi,ebx 1721 movdqa xmm8,xmm6 1722 paddd xmm9,xmm6 1723 mov edi,edx 1724 add ecx,DWORD[48+rsp] 1725 punpcklqdq xmm7,xmm4 1726 xor ebp,eax 1727 rol edx,5 1728 add ecx,esi 1729 psrldq xmm8,4 1730 and edi,ebp 1731 xor ebp,eax 1732 pxor xmm7,xmm3 1733 add ecx,edx 1734 ror edx,7 1735 pxor xmm8,xmm5 1736 xor edi,eax 1737 mov esi,ecx 1738 add ebx,DWORD[52+rsp] 1739 pxor xmm7,xmm8 1740 xor edx,ebp 1741 rol ecx,5 1742 movdqa XMMWORD[32+rsp],xmm9 1743 add ebx,edi 1744 and esi,edx 1745 movdqa xmm10,xmm7 1746 xor edx,ebp 1747 add ebx,ecx 1748 ror ecx,7 1749 movdqa xmm8,xmm7 1750 xor esi,ebp 1751 pslldq xmm10,12 1752 paddd xmm7,xmm7 1753 mov edi,ebx 1754 add eax,DWORD[56+rsp] 1755 psrld xmm8,31 1756 xor ecx,edx 1757 rol ebx,5 1758 add eax,esi 1759 movdqa xmm9,xmm10 1760 and edi,ecx 1761 xor ecx,edx 1762 psrld xmm10,30 1763 add eax,ebx 1764 ror ebx,7 1765 por xmm7,xmm8 1766 xor edi,edx 1767 mov esi,eax 1768 add ebp,DWORD[60+rsp] 1769 pslld xmm9,2 1770 pxor xmm7,xmm10 1771 xor ebx,ecx 1772 movdqa xmm10,XMMWORD[((-32))+r14] 1773 rol eax,5 1774 add ebp,edi 1775 and esi,ebx 1776 pxor xmm7,xmm9 1777 pshufd xmm9,xmm6,238 1778 xor ebx,ecx 1779 add ebp,eax 1780 ror eax,7 1781 pxor xmm0,xmm4 1782 xor esi,ecx 1783 mov edi,ebp 1784 add edx,DWORD[rsp] 1785 punpcklqdq xmm9,xmm7 1786 xor eax,ebx 1787 rol ebp,5 1788 pxor xmm0,xmm1 1789 add edx,esi 1790 and edi,eax 1791 movdqa xmm8,xmm10 1792 xor eax,ebx 1793 paddd xmm10,xmm7 1794 add edx,ebp 1795 pxor xmm0,xmm9 1796 ror ebp,7 1797 xor edi,ebx 1798 mov esi,edx 1799 add ecx,DWORD[4+rsp] 1800 movdqa xmm9,xmm0 1801 xor ebp,eax 1802 rol edx,5 1803 movdqa XMMWORD[48+rsp],xmm10 1804 add ecx,edi 1805 and esi,ebp 1806 xor ebp,eax 1807 pslld xmm0,2 1808 add ecx,edx 1809 ror edx,7 1810 psrld xmm9,30 1811 xor esi,eax 1812 mov edi,ecx 1813 add ebx,DWORD[8+rsp] 1814 por xmm0,xmm9 1815 xor edx,ebp 1816 rol ecx,5 1817 pshufd xmm10,xmm7,238 1818 add ebx,esi 1819 and edi,edx 1820 xor edx,ebp 1821 add ebx,ecx 1822 add eax,DWORD[12+rsp] 1823 xor edi,ebp 1824 mov esi,ebx 1825 rol ebx,5 1826 add eax,edi 1827 xor esi,edx 1828 ror ecx,7 1829 add eax,ebx 1830 pxor xmm1,xmm5 1831 add ebp,DWORD[16+rsp] 1832 xor esi,ecx 1833 punpcklqdq xmm10,xmm0 1834 mov edi,eax 1835 rol eax,5 1836 pxor xmm1,xmm2 1837 add ebp,esi 1838 xor edi,ecx 1839 movdqa xmm9,xmm8 1840 ror ebx,7 1841 paddd xmm8,xmm0 1842 add ebp,eax 1843 pxor xmm1,xmm10 1844 add edx,DWORD[20+rsp] 1845 xor edi,ebx 1846 mov esi,ebp 1847 rol ebp,5 1848 movdqa xmm10,xmm1 1849 add edx,edi 1850 xor esi,ebx 1851 movdqa XMMWORD[rsp],xmm8 1852 ror eax,7 1853 add edx,ebp 1854 add ecx,DWORD[24+rsp] 1855 pslld xmm1,2 1856 xor esi,eax 1857 mov edi,edx 1858 psrld xmm10,30 1859 rol edx,5 1860 add ecx,esi 1861 xor edi,eax 1862 ror ebp,7 1863 por xmm1,xmm10 1864 add ecx,edx 1865 add ebx,DWORD[28+rsp] 1866 pshufd xmm8,xmm0,238 1867 xor edi,ebp 1868 mov esi,ecx 1869 rol ecx,5 1870 add ebx,edi 1871 xor esi,ebp 1872 ror edx,7 1873 add ebx,ecx 1874 pxor xmm2,xmm6 1875 add eax,DWORD[32+rsp] 1876 xor esi,edx 1877 punpcklqdq xmm8,xmm1 1878 mov edi,ebx 1879 rol ebx,5 1880 pxor xmm2,xmm3 1881 add eax,esi 1882 xor edi,edx 1883 movdqa xmm10,XMMWORD[r14] 1884 ror ecx,7 1885 paddd xmm9,xmm1 1886 add eax,ebx 1887 pxor xmm2,xmm8 1888 add ebp,DWORD[36+rsp] 1889 xor edi,ecx 1890 mov esi,eax 1891 rol eax,5 1892 movdqa xmm8,xmm2 1893 add ebp,edi 1894 xor esi,ecx 1895 movdqa XMMWORD[16+rsp],xmm9 1896 ror ebx,7 1897 add ebp,eax 1898 add edx,DWORD[40+rsp] 1899 pslld xmm2,2 1900 xor esi,ebx 1901 mov edi,ebp 1902 psrld xmm8,30 1903 rol ebp,5 1904 add edx,esi 1905 xor edi,ebx 1906 ror eax,7 1907 por xmm2,xmm8 1908 add edx,ebp 1909 add ecx,DWORD[44+rsp] 1910 pshufd xmm9,xmm1,238 1911 xor edi,eax 1912 mov esi,edx 1913 rol edx,5 1914 add ecx,edi 1915 xor esi,eax 1916 ror ebp,7 1917 add ecx,edx 1918 pxor xmm3,xmm7 1919 add ebx,DWORD[48+rsp] 1920 xor esi,ebp 1921 punpcklqdq xmm9,xmm2 1922 mov edi,ecx 1923 rol ecx,5 1924 pxor xmm3,xmm4 1925 add ebx,esi 1926 xor edi,ebp 1927 movdqa xmm8,xmm10 1928 ror edx,7 1929 paddd xmm10,xmm2 1930 add ebx,ecx 1931 pxor xmm3,xmm9 1932 add eax,DWORD[52+rsp] 1933 xor edi,edx 1934 mov esi,ebx 1935 rol ebx,5 1936 movdqa xmm9,xmm3 1937 add eax,edi 1938 xor esi,edx 1939 movdqa XMMWORD[32+rsp],xmm10 1940 ror ecx,7 1941 add eax,ebx 1942 add ebp,DWORD[56+rsp] 1943 pslld xmm3,2 1944 xor esi,ecx 1945 mov edi,eax 1946 psrld xmm9,30 1947 rol eax,5 1948 add ebp,esi 1949 xor edi,ecx 1950 ror ebx,7 1951 por xmm3,xmm9 1952 add ebp,eax 1953 add edx,DWORD[60+rsp] 1954 pshufd xmm10,xmm2,238 1955 xor edi,ebx 1956 mov esi,ebp 1957 rol ebp,5 1958 add edx,edi 1959 xor esi,ebx 1960 ror eax,7 1961 add edx,ebp 1962 pxor xmm4,xmm0 1963 add ecx,DWORD[rsp] 1964 xor esi,eax 1965 punpcklqdq xmm10,xmm3 1966 mov edi,edx 1967 rol edx,5 1968 pxor xmm4,xmm5 1969 add ecx,esi 1970 xor edi,eax 1971 movdqa xmm9,xmm8 1972 ror ebp,7 1973 paddd xmm8,xmm3 1974 add ecx,edx 1975 pxor xmm4,xmm10 1976 add ebx,DWORD[4+rsp] 1977 xor edi,ebp 1978 mov esi,ecx 1979 rol ecx,5 1980 movdqa xmm10,xmm4 1981 add ebx,edi 1982 xor esi,ebp 1983 movdqa XMMWORD[48+rsp],xmm8 1984 ror edx,7 1985 add ebx,ecx 1986 add eax,DWORD[8+rsp] 1987 pslld xmm4,2 1988 xor esi,edx 1989 mov edi,ebx 1990 psrld xmm10,30 1991 rol ebx,5 1992 add eax,esi 1993 xor edi,edx 1994 ror ecx,7 1995 por xmm4,xmm10 1996 add eax,ebx 1997 add ebp,DWORD[12+rsp] 1998 pshufd xmm8,xmm3,238 1999 xor edi,ecx 2000 mov esi,eax 2001 rol eax,5 2002 add ebp,edi 2003 xor esi,ecx 2004 ror ebx,7 2005 add ebp,eax 2006 pxor xmm5,xmm1 2007 add edx,DWORD[16+rsp] 2008 xor esi,ebx 2009 punpcklqdq xmm8,xmm4 2010 mov edi,ebp 2011 rol ebp,5 2012 pxor xmm5,xmm6 2013 add edx,esi 2014 xor edi,ebx 2015 movdqa xmm10,xmm9 2016 ror eax,7 2017 paddd xmm9,xmm4 2018 add edx,ebp 2019 pxor xmm5,xmm8 2020 add ecx,DWORD[20+rsp] 2021 xor edi,eax 2022 mov esi,edx 2023 rol edx,5 2024 movdqa xmm8,xmm5 2025 add ecx,edi 2026 xor esi,eax 2027 movdqa XMMWORD[rsp],xmm9 2028 ror ebp,7 2029 add ecx,edx 2030 add ebx,DWORD[24+rsp] 2031 pslld xmm5,2 2032 xor esi,ebp 2033 mov edi,ecx 2034 psrld xmm8,30 2035 rol ecx,5 2036 add ebx,esi 2037 xor edi,ebp 2038 ror edx,7 2039 por xmm5,xmm8 2040 add ebx,ecx 2041 add eax,DWORD[28+rsp] 2042 pshufd xmm9,xmm4,238 2043 ror ecx,7 2044 mov esi,ebx 2045 xor edi,edx 2046 rol ebx,5 2047 add eax,edi 2048 xor esi,ecx 2049 xor ecx,edx 2050 add eax,ebx 2051 pxor xmm6,xmm2 2052 add ebp,DWORD[32+rsp] 2053 and esi,ecx 2054 xor ecx,edx 2055 ror ebx,7 2056 punpcklqdq xmm9,xmm5 2057 mov edi,eax 2058 xor esi,ecx 2059 pxor xmm6,xmm7 2060 rol eax,5 2061 add ebp,esi 2062 movdqa xmm8,xmm10 2063 xor edi,ebx 2064 paddd xmm10,xmm5 2065 xor ebx,ecx 2066 pxor xmm6,xmm9 2067 add ebp,eax 2068 add edx,DWORD[36+rsp] 2069 and edi,ebx 2070 xor ebx,ecx 2071 ror eax,7 2072 movdqa xmm9,xmm6 2073 mov esi,ebp 2074 xor edi,ebx 2075 movdqa XMMWORD[16+rsp],xmm10 2076 rol ebp,5 2077 add edx,edi 2078 xor esi,eax 2079 pslld xmm6,2 2080 xor eax,ebx 2081 add edx,ebp 2082 psrld xmm9,30 2083 add ecx,DWORD[40+rsp] 2084 and esi,eax 2085 xor eax,ebx 2086 por xmm6,xmm9 2087 ror ebp,7 2088 mov edi,edx 2089 xor esi,eax 2090 rol edx,5 2091 pshufd xmm10,xmm5,238 2092 add ecx,esi 2093 xor edi,ebp 2094 xor ebp,eax 2095 add ecx,edx 2096 add ebx,DWORD[44+rsp] 2097 and edi,ebp 2098 xor ebp,eax 2099 ror edx,7 2100 mov esi,ecx 2101 xor edi,ebp 2102 rol ecx,5 2103 add ebx,edi 2104 xor esi,edx 2105 xor edx,ebp 2106 add ebx,ecx 2107 pxor xmm7,xmm3 2108 add eax,DWORD[48+rsp] 2109 and esi,edx 2110 xor edx,ebp 2111 ror ecx,7 2112 punpcklqdq xmm10,xmm6 2113 mov edi,ebx 2114 xor esi,edx 2115 pxor xmm7,xmm0 2116 rol ebx,5 2117 add eax,esi 2118 movdqa xmm9,XMMWORD[32+r14] 2119 xor edi,ecx 2120 paddd xmm8,xmm6 2121 xor ecx,edx 2122 pxor xmm7,xmm10 2123 add eax,ebx 2124 add ebp,DWORD[52+rsp] 2125 and edi,ecx 2126 xor ecx,edx 2127 ror ebx,7 2128 movdqa xmm10,xmm7 2129 mov esi,eax 2130 xor edi,ecx 2131 movdqa XMMWORD[32+rsp],xmm8 2132 rol eax,5 2133 add ebp,edi 2134 xor esi,ebx 2135 pslld xmm7,2 2136 xor ebx,ecx 2137 add ebp,eax 2138 psrld xmm10,30 2139 add edx,DWORD[56+rsp] 2140 and esi,ebx 2141 xor ebx,ecx 2142 por xmm7,xmm10 2143 ror eax,7 2144 mov edi,ebp 2145 xor esi,ebx 2146 rol ebp,5 2147 pshufd xmm8,xmm6,238 2148 add edx,esi 2149 xor edi,eax 2150 xor eax,ebx 2151 add edx,ebp 2152 add ecx,DWORD[60+rsp] 2153 and edi,eax 2154 xor eax,ebx 2155 ror ebp,7 2156 mov esi,edx 2157 xor edi,eax 2158 rol edx,5 2159 add ecx,edi 2160 xor esi,ebp 2161 xor ebp,eax 2162 add ecx,edx 2163 pxor xmm0,xmm4 2164 add ebx,DWORD[rsp] 2165 and esi,ebp 2166 xor ebp,eax 2167 ror edx,7 2168 punpcklqdq xmm8,xmm7 2169 mov edi,ecx 2170 xor esi,ebp 2171 pxor xmm0,xmm1 2172 rol ecx,5 2173 add ebx,esi 2174 movdqa xmm10,xmm9 2175 xor edi,edx 2176 paddd xmm9,xmm7 2177 xor edx,ebp 2178 pxor xmm0,xmm8 2179 add ebx,ecx 2180 add eax,DWORD[4+rsp] 2181 and edi,edx 2182 xor edx,ebp 2183 ror ecx,7 2184 movdqa xmm8,xmm0 2185 mov esi,ebx 2186 xor edi,edx 2187 movdqa XMMWORD[48+rsp],xmm9 2188 rol ebx,5 2189 add eax,edi 2190 xor esi,ecx 2191 pslld xmm0,2 2192 xor ecx,edx 2193 add eax,ebx 2194 psrld xmm8,30 2195 add ebp,DWORD[8+rsp] 2196 and esi,ecx 2197 xor ecx,edx 2198 por xmm0,xmm8 2199 ror ebx,7 2200 mov edi,eax 2201 xor esi,ecx 2202 rol eax,5 2203 pshufd xmm9,xmm7,238 2204 add ebp,esi 2205 xor edi,ebx 2206 xor ebx,ecx 2207 add ebp,eax 2208 add edx,DWORD[12+rsp] 2209 and edi,ebx 2210 xor ebx,ecx 2211 ror eax,7 2212 mov esi,ebp 2213 xor edi,ebx 2214 rol ebp,5 2215 add edx,edi 2216 xor esi,eax 2217 xor eax,ebx 2218 add edx,ebp 2219 pxor xmm1,xmm5 2220 add ecx,DWORD[16+rsp] 2221 and esi,eax 2222 xor eax,ebx 2223 ror ebp,7 2224 punpcklqdq xmm9,xmm0 2225 mov edi,edx 2226 xor esi,eax 2227 pxor xmm1,xmm2 2228 rol edx,5 2229 add ecx,esi 2230 movdqa xmm8,xmm10 2231 xor edi,ebp 2232 paddd xmm10,xmm0 2233 xor ebp,eax 2234 pxor xmm1,xmm9 2235 add ecx,edx 2236 add ebx,DWORD[20+rsp] 2237 and edi,ebp 2238 xor ebp,eax 2239 ror edx,7 2240 movdqa xmm9,xmm1 2241 mov esi,ecx 2242 xor edi,ebp 2243 movdqa XMMWORD[rsp],xmm10 2244 rol ecx,5 2245 add ebx,edi 2246 xor esi,edx 2247 pslld xmm1,2 2248 xor edx,ebp 2249 add ebx,ecx 2250 psrld xmm9,30 2251 add eax,DWORD[24+rsp] 2252 and esi,edx 2253 xor edx,ebp 2254 por xmm1,xmm9 2255 ror ecx,7 2256 mov edi,ebx 2257 xor esi,edx 2258 rol ebx,5 2259 pshufd xmm10,xmm0,238 2260 add eax,esi 2261 xor edi,ecx 2262 xor ecx,edx 2263 add eax,ebx 2264 add ebp,DWORD[28+rsp] 2265 and edi,ecx 2266 xor ecx,edx 2267 ror ebx,7 2268 mov esi,eax 2269 xor edi,ecx 2270 rol eax,5 2271 add ebp,edi 2272 xor esi,ebx 2273 xor ebx,ecx 2274 add ebp,eax 2275 pxor xmm2,xmm6 2276 add edx,DWORD[32+rsp] 2277 and esi,ebx 2278 xor ebx,ecx 2279 ror eax,7 2280 punpcklqdq xmm10,xmm1 2281 mov edi,ebp 2282 xor esi,ebx 2283 pxor xmm2,xmm3 2284 rol ebp,5 2285 add edx,esi 2286 movdqa xmm9,xmm8 2287 xor edi,eax 2288 paddd xmm8,xmm1 2289 xor eax,ebx 2290 pxor xmm2,xmm10 2291 add edx,ebp 2292 add ecx,DWORD[36+rsp] 2293 and edi,eax 2294 xor eax,ebx 2295 ror ebp,7 2296 movdqa xmm10,xmm2 2297 mov esi,edx 2298 xor edi,eax 2299 movdqa XMMWORD[16+rsp],xmm8 2300 rol edx,5 2301 add ecx,edi 2302 xor esi,ebp 2303 pslld xmm2,2 2304 xor ebp,eax 2305 add ecx,edx 2306 psrld xmm10,30 2307 add ebx,DWORD[40+rsp] 2308 and esi,ebp 2309 xor ebp,eax 2310 por xmm2,xmm10 2311 ror edx,7 2312 mov edi,ecx 2313 xor esi,ebp 2314 rol ecx,5 2315 pshufd xmm8,xmm1,238 2316 add ebx,esi 2317 xor edi,edx 2318 xor edx,ebp 2319 add ebx,ecx 2320 add eax,DWORD[44+rsp] 2321 and edi,edx 2322 xor edx,ebp 2323 ror ecx,7 2324 mov esi,ebx 2325 xor edi,edx 2326 rol ebx,5 2327 add eax,edi 2328 xor esi,edx 2329 add eax,ebx 2330 pxor xmm3,xmm7 2331 add ebp,DWORD[48+rsp] 2332 xor esi,ecx 2333 punpcklqdq xmm8,xmm2 2334 mov edi,eax 2335 rol eax,5 2336 pxor xmm3,xmm4 2337 add ebp,esi 2338 xor edi,ecx 2339 movdqa xmm10,xmm9 2340 ror ebx,7 2341 paddd xmm9,xmm2 2342 add ebp,eax 2343 pxor xmm3,xmm8 2344 add edx,DWORD[52+rsp] 2345 xor edi,ebx 2346 mov esi,ebp 2347 rol ebp,5 2348 movdqa xmm8,xmm3 2349 add edx,edi 2350 xor esi,ebx 2351 movdqa XMMWORD[32+rsp],xmm9 2352 ror eax,7 2353 add edx,ebp 2354 add ecx,DWORD[56+rsp] 2355 pslld xmm3,2 2356 xor esi,eax 2357 mov edi,edx 2358 psrld xmm8,30 2359 rol edx,5 2360 add ecx,esi 2361 xor edi,eax 2362 ror ebp,7 2363 por xmm3,xmm8 2364 add ecx,edx 2365 add ebx,DWORD[60+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[rsp] 2374 xor esi,edx 2375 mov edi,ebx 2376 rol ebx,5 2377 paddd xmm10,xmm3 2378 add eax,esi 2379 xor edi,edx 2380 movdqa XMMWORD[48+rsp],xmm10 2381 ror ecx,7 2382 add eax,ebx 2383 add ebp,DWORD[4+rsp] 2384 xor edi,ecx 2385 mov esi,eax 2386 rol eax,5 2387 add ebp,edi 2388 xor esi,ecx 2389 ror ebx,7 2390 add ebp,eax 2391 add edx,DWORD[8+rsp] 2392 xor esi,ebx 2393 mov edi,ebp 2394 rol ebp,5 2395 add edx,esi 2396 xor edi,ebx 2397 ror eax,7 2398 add edx,ebp 2399 add ecx,DWORD[12+rsp] 2400 xor edi,eax 2401 mov esi,edx 2402 rol edx,5 2403 add ecx,edi 2404 xor esi,eax 2405 ror ebp,7 2406 add ecx,edx 2407 cmp r9,r10 2408 je NEAR $L$done_ssse3 2409 movdqa xmm6,XMMWORD[64+r14] 2410 movdqa xmm9,XMMWORD[((-64))+r14] 2411 movdqu xmm0,XMMWORD[r9] 2412 movdqu xmm1,XMMWORD[16+r9] 2413 movdqu xmm2,XMMWORD[32+r9] 2414 movdqu xmm3,XMMWORD[48+r9] 2415DB 102,15,56,0,198 2416 add r9,64 2417 add ebx,DWORD[16+rsp] 2418 xor esi,ebp 2419 mov edi,ecx 2420DB 102,15,56,0,206 2421 rol ecx,5 2422 add ebx,esi 2423 xor edi,ebp 2424 ror edx,7 2425 paddd xmm0,xmm9 2426 add ebx,ecx 2427 add eax,DWORD[20+rsp] 2428 xor edi,edx 2429 mov esi,ebx 2430 movdqa XMMWORD[rsp],xmm0 2431 rol ebx,5 2432 add eax,edi 2433 xor esi,edx 2434 ror ecx,7 2435 psubd xmm0,xmm9 2436 add eax,ebx 2437 add ebp,DWORD[24+rsp] 2438 xor esi,ecx 2439 mov edi,eax 2440 rol eax,5 2441 add ebp,esi 2442 xor edi,ecx 2443 ror ebx,7 2444 add ebp,eax 2445 add edx,DWORD[28+rsp] 2446 xor edi,ebx 2447 mov esi,ebp 2448 rol ebp,5 2449 add edx,edi 2450 xor esi,ebx 2451 ror eax,7 2452 add edx,ebp 2453 add ecx,DWORD[32+rsp] 2454 xor esi,eax 2455 mov edi,edx 2456DB 102,15,56,0,214 2457 rol edx,5 2458 add ecx,esi 2459 xor edi,eax 2460 ror ebp,7 2461 paddd xmm1,xmm9 2462 add ecx,edx 2463 add ebx,DWORD[36+rsp] 2464 xor edi,ebp 2465 mov esi,ecx 2466 movdqa XMMWORD[16+rsp],xmm1 2467 rol ecx,5 2468 add ebx,edi 2469 xor esi,ebp 2470 ror edx,7 2471 psubd xmm1,xmm9 2472 add ebx,ecx 2473 add eax,DWORD[40+rsp] 2474 xor esi,edx 2475 mov edi,ebx 2476 rol ebx,5 2477 add eax,esi 2478 xor edi,edx 2479 ror ecx,7 2480 add eax,ebx 2481 add ebp,DWORD[44+rsp] 2482 xor edi,ecx 2483 mov esi,eax 2484 rol eax,5 2485 add ebp,edi 2486 xor esi,ecx 2487 ror ebx,7 2488 add ebp,eax 2489 add edx,DWORD[48+rsp] 2490 xor esi,ebx 2491 mov edi,ebp 2492DB 102,15,56,0,222 2493 rol ebp,5 2494 add edx,esi 2495 xor edi,ebx 2496 ror eax,7 2497 paddd xmm2,xmm9 2498 add edx,ebp 2499 add ecx,DWORD[52+rsp] 2500 xor edi,eax 2501 mov esi,edx 2502 movdqa XMMWORD[32+rsp],xmm2 2503 rol edx,5 2504 add ecx,edi 2505 xor esi,eax 2506 ror ebp,7 2507 psubd xmm2,xmm9 2508 add ecx,edx 2509 add ebx,DWORD[56+rsp] 2510 xor esi,ebp 2511 mov edi,ecx 2512 rol ecx,5 2513 add ebx,esi 2514 xor edi,ebp 2515 ror edx,7 2516 add ebx,ecx 2517 add eax,DWORD[60+rsp] 2518 xor edi,edx 2519 mov esi,ebx 2520 rol ebx,5 2521 add eax,edi 2522 ror ecx,7 2523 add eax,ebx 2524 add eax,DWORD[r8] 2525 add esi,DWORD[4+r8] 2526 add ecx,DWORD[8+r8] 2527 add edx,DWORD[12+r8] 2528 mov DWORD[r8],eax 2529 add ebp,DWORD[16+r8] 2530 mov DWORD[4+r8],esi 2531 mov ebx,esi 2532 mov DWORD[8+r8],ecx 2533 mov edi,ecx 2534 mov DWORD[12+r8],edx 2535 xor edi,edx 2536 mov DWORD[16+r8],ebp 2537 and esi,edi 2538 jmp NEAR $L$oop_ssse3 2539 2540ALIGN 16 2541$L$done_ssse3: 2542 add ebx,DWORD[16+rsp] 2543 xor esi,ebp 2544 mov edi,ecx 2545 rol ecx,5 2546 add ebx,esi 2547 xor edi,ebp 2548 ror edx,7 2549 add ebx,ecx 2550 add eax,DWORD[20+rsp] 2551 xor edi,edx 2552 mov esi,ebx 2553 rol ebx,5 2554 add eax,edi 2555 xor esi,edx 2556 ror ecx,7 2557 add eax,ebx 2558 add ebp,DWORD[24+rsp] 2559 xor esi,ecx 2560 mov edi,eax 2561 rol eax,5 2562 add ebp,esi 2563 xor edi,ecx 2564 ror ebx,7 2565 add ebp,eax 2566 add edx,DWORD[28+rsp] 2567 xor edi,ebx 2568 mov esi,ebp 2569 rol ebp,5 2570 add edx,edi 2571 xor esi,ebx 2572 ror eax,7 2573 add edx,ebp 2574 add ecx,DWORD[32+rsp] 2575 xor esi,eax 2576 mov edi,edx 2577 rol edx,5 2578 add ecx,esi 2579 xor edi,eax 2580 ror ebp,7 2581 add ecx,edx 2582 add ebx,DWORD[36+rsp] 2583 xor edi,ebp 2584 mov esi,ecx 2585 rol ecx,5 2586 add ebx,edi 2587 xor esi,ebp 2588 ror edx,7 2589 add ebx,ecx 2590 add eax,DWORD[40+rsp] 2591 xor esi,edx 2592 mov edi,ebx 2593 rol ebx,5 2594 add eax,esi 2595 xor edi,edx 2596 ror ecx,7 2597 add eax,ebx 2598 add ebp,DWORD[44+rsp] 2599 xor edi,ecx 2600 mov esi,eax 2601 rol eax,5 2602 add ebp,edi 2603 xor esi,ecx 2604 ror ebx,7 2605 add ebp,eax 2606 add edx,DWORD[48+rsp] 2607 xor esi,ebx 2608 mov edi,ebp 2609 rol ebp,5 2610 add edx,esi 2611 xor edi,ebx 2612 ror eax,7 2613 add edx,ebp 2614 add ecx,DWORD[52+rsp] 2615 xor edi,eax 2616 mov esi,edx 2617 rol edx,5 2618 add ecx,edi 2619 xor esi,eax 2620 ror ebp,7 2621 add ecx,edx 2622 add ebx,DWORD[56+rsp] 2623 xor esi,ebp 2624 mov edi,ecx 2625 rol ecx,5 2626 add ebx,esi 2627 xor edi,ebp 2628 ror edx,7 2629 add ebx,ecx 2630 add eax,DWORD[60+rsp] 2631 xor edi,edx 2632 mov esi,ebx 2633 rol ebx,5 2634 add eax,edi 2635 ror ecx,7 2636 add eax,ebx 2637 add eax,DWORD[r8] 2638 add esi,DWORD[4+r8] 2639 add ecx,DWORD[8+r8] 2640 mov DWORD[r8],eax 2641 add edx,DWORD[12+r8] 2642 mov DWORD[4+r8],esi 2643 add ebp,DWORD[16+r8] 2644 mov DWORD[8+r8],ecx 2645 mov DWORD[12+r8],edx 2646 mov DWORD[16+r8],ebp 2647 movaps xmm6,XMMWORD[((-40-96))+r11] 2648 movaps xmm7,XMMWORD[((-40-80))+r11] 2649 movaps xmm8,XMMWORD[((-40-64))+r11] 2650 movaps xmm9,XMMWORD[((-40-48))+r11] 2651 movaps xmm10,XMMWORD[((-40-32))+r11] 2652 movaps xmm11,XMMWORD[((-40-16))+r11] 2653 mov r14,QWORD[((-40))+r11] 2654 2655 mov r13,QWORD[((-32))+r11] 2656 2657 mov r12,QWORD[((-24))+r11] 2658 2659 mov rbp,QWORD[((-16))+r11] 2660 2661 mov rbx,QWORD[((-8))+r11] 2662 2663 lea rsp,[r11] 2664 2665$L$epilogue_ssse3: 2666 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 2667 mov rsi,QWORD[16+rsp] 2668 ret 2669 2670$L$SEH_end_sha1_block_data_order_ssse3: 2671global sha1_block_data_order_avx 2672 2673ALIGN 16 2674sha1_block_data_order_avx: 2675 mov QWORD[8+rsp],rdi ;WIN64 prologue 2676 mov QWORD[16+rsp],rsi 2677 mov rax,rsp 2678$L$SEH_begin_sha1_block_data_order_avx: 2679 mov rdi,rcx 2680 mov rsi,rdx 2681 mov rdx,r8 2682 2683 2684 2685_CET_ENDBR 2686 mov r11,rsp 2687 2688 push rbx 2689 2690 push rbp 2691 2692 push r12 2693 2694 push r13 2695 2696 push r14 2697 2698 lea rsp,[((-160))+rsp] 2699 vzeroupper 2700 vmovaps XMMWORD[(-40-96)+r11],xmm6 2701 vmovaps XMMWORD[(-40-80)+r11],xmm7 2702 vmovaps XMMWORD[(-40-64)+r11],xmm8 2703 vmovaps XMMWORD[(-40-48)+r11],xmm9 2704 vmovaps XMMWORD[(-40-32)+r11],xmm10 2705 vmovaps XMMWORD[(-40-16)+r11],xmm11 2706$L$prologue_avx: 2707 and rsp,-64 2708 mov r8,rdi 2709 mov r9,rsi 2710 mov r10,rdx 2711 2712 shl r10,6 2713 add r10,r9 2714 lea r14,[((K_XX_XX+64))] 2715 2716 mov eax,DWORD[r8] 2717 mov ebx,DWORD[4+r8] 2718 mov ecx,DWORD[8+r8] 2719 mov edx,DWORD[12+r8] 2720 mov esi,ebx 2721 mov ebp,DWORD[16+r8] 2722 mov edi,ecx 2723 xor edi,edx 2724 and esi,edi 2725 2726 vmovdqa xmm6,XMMWORD[64+r14] 2727 vmovdqa xmm11,XMMWORD[((-64))+r14] 2728 vmovdqu xmm0,XMMWORD[r9] 2729 vmovdqu xmm1,XMMWORD[16+r9] 2730 vmovdqu xmm2,XMMWORD[32+r9] 2731 vmovdqu xmm3,XMMWORD[48+r9] 2732 vpshufb xmm0,xmm0,xmm6 2733 add r9,64 2734 vpshufb xmm1,xmm1,xmm6 2735 vpshufb xmm2,xmm2,xmm6 2736 vpshufb xmm3,xmm3,xmm6 2737 vpaddd xmm4,xmm0,xmm11 2738 vpaddd xmm5,xmm1,xmm11 2739 vpaddd xmm6,xmm2,xmm11 2740 vmovdqa XMMWORD[rsp],xmm4 2741 vmovdqa XMMWORD[16+rsp],xmm5 2742 vmovdqa XMMWORD[32+rsp],xmm6 2743 jmp NEAR $L$oop_avx 2744ALIGN 16 2745$L$oop_avx: 2746 shrd ebx,ebx,2 2747 xor esi,edx 2748 vpalignr xmm4,xmm1,xmm0,8 2749 mov edi,eax 2750 add ebp,DWORD[rsp] 2751 vpaddd xmm9,xmm11,xmm3 2752 xor ebx,ecx 2753 shld eax,eax,5 2754 vpsrldq xmm8,xmm3,4 2755 add ebp,esi 2756 and edi,ebx 2757 vpxor xmm4,xmm4,xmm0 2758 xor ebx,ecx 2759 add ebp,eax 2760 vpxor xmm8,xmm8,xmm2 2761 shrd eax,eax,7 2762 xor edi,ecx 2763 mov esi,ebp 2764 add edx,DWORD[4+rsp] 2765 vpxor xmm4,xmm4,xmm8 2766 xor eax,ebx 2767 shld ebp,ebp,5 2768 vmovdqa XMMWORD[48+rsp],xmm9 2769 add edx,edi 2770 and esi,eax 2771 vpsrld xmm8,xmm4,31 2772 xor eax,ebx 2773 add edx,ebp 2774 shrd ebp,ebp,7 2775 xor esi,ebx 2776 vpslldq xmm10,xmm4,12 2777 vpaddd xmm4,xmm4,xmm4 2778 mov edi,edx 2779 add ecx,DWORD[8+rsp] 2780 xor ebp,eax 2781 shld edx,edx,5 2782 vpsrld xmm9,xmm10,30 2783 vpor xmm4,xmm4,xmm8 2784 add ecx,esi 2785 and edi,ebp 2786 xor ebp,eax 2787 add ecx,edx 2788 vpslld xmm10,xmm10,2 2789 vpxor xmm4,xmm4,xmm9 2790 shrd edx,edx,7 2791 xor edi,eax 2792 mov esi,ecx 2793 add ebx,DWORD[12+rsp] 2794 vpxor xmm4,xmm4,xmm10 2795 xor edx,ebp 2796 shld ecx,ecx,5 2797 add ebx,edi 2798 and esi,edx 2799 xor edx,ebp 2800 add ebx,ecx 2801 shrd ecx,ecx,7 2802 xor esi,ebp 2803 vpalignr xmm5,xmm2,xmm1,8 2804 mov edi,ebx 2805 add eax,DWORD[16+rsp] 2806 vpaddd xmm9,xmm11,xmm4 2807 xor ecx,edx 2808 shld ebx,ebx,5 2809 vpsrldq xmm8,xmm4,4 2810 add eax,esi 2811 and edi,ecx 2812 vpxor xmm5,xmm5,xmm1 2813 xor ecx,edx 2814 add eax,ebx 2815 vpxor xmm8,xmm8,xmm3 2816 shrd ebx,ebx,7 2817 xor edi,edx 2818 mov esi,eax 2819 add ebp,DWORD[20+rsp] 2820 vpxor xmm5,xmm5,xmm8 2821 xor ebx,ecx 2822 shld eax,eax,5 2823 vmovdqa XMMWORD[rsp],xmm9 2824 add ebp,edi 2825 and esi,ebx 2826 vpsrld xmm8,xmm5,31 2827 xor ebx,ecx 2828 add ebp,eax 2829 shrd eax,eax,7 2830 xor esi,ecx 2831 vpslldq xmm10,xmm5,12 2832 vpaddd xmm5,xmm5,xmm5 2833 mov edi,ebp 2834 add edx,DWORD[24+rsp] 2835 xor eax,ebx 2836 shld ebp,ebp,5 2837 vpsrld xmm9,xmm10,30 2838 vpor xmm5,xmm5,xmm8 2839 add edx,esi 2840 and edi,eax 2841 xor eax,ebx 2842 add edx,ebp 2843 vpslld xmm10,xmm10,2 2844 vpxor xmm5,xmm5,xmm9 2845 shrd ebp,ebp,7 2846 xor edi,ebx 2847 mov esi,edx 2848 add ecx,DWORD[28+rsp] 2849 vpxor xmm5,xmm5,xmm10 2850 xor ebp,eax 2851 shld edx,edx,5 2852 vmovdqa xmm11,XMMWORD[((-32))+r14] 2853 add ecx,edi 2854 and esi,ebp 2855 xor ebp,eax 2856 add ecx,edx 2857 shrd edx,edx,7 2858 xor esi,eax 2859 vpalignr xmm6,xmm3,xmm2,8 2860 mov edi,ecx 2861 add ebx,DWORD[32+rsp] 2862 vpaddd xmm9,xmm11,xmm5 2863 xor edx,ebp 2864 shld ecx,ecx,5 2865 vpsrldq xmm8,xmm5,4 2866 add ebx,esi 2867 and edi,edx 2868 vpxor xmm6,xmm6,xmm2 2869 xor edx,ebp 2870 add ebx,ecx 2871 vpxor xmm8,xmm8,xmm4 2872 shrd ecx,ecx,7 2873 xor edi,ebp 2874 mov esi,ebx 2875 add eax,DWORD[36+rsp] 2876 vpxor xmm6,xmm6,xmm8 2877 xor ecx,edx 2878 shld ebx,ebx,5 2879 vmovdqa XMMWORD[16+rsp],xmm9 2880 add eax,edi 2881 and esi,ecx 2882 vpsrld xmm8,xmm6,31 2883 xor ecx,edx 2884 add eax,ebx 2885 shrd ebx,ebx,7 2886 xor esi,edx 2887 vpslldq xmm10,xmm6,12 2888 vpaddd xmm6,xmm6,xmm6 2889 mov edi,eax 2890 add ebp,DWORD[40+rsp] 2891 xor ebx,ecx 2892 shld eax,eax,5 2893 vpsrld xmm9,xmm10,30 2894 vpor xmm6,xmm6,xmm8 2895 add ebp,esi 2896 and edi,ebx 2897 xor ebx,ecx 2898 add ebp,eax 2899 vpslld xmm10,xmm10,2 2900 vpxor xmm6,xmm6,xmm9 2901 shrd eax,eax,7 2902 xor edi,ecx 2903 mov esi,ebp 2904 add edx,DWORD[44+rsp] 2905 vpxor xmm6,xmm6,xmm10 2906 xor eax,ebx 2907 shld ebp,ebp,5 2908 add edx,edi 2909 and esi,eax 2910 xor eax,ebx 2911 add edx,ebp 2912 shrd ebp,ebp,7 2913 xor esi,ebx 2914 vpalignr xmm7,xmm4,xmm3,8 2915 mov edi,edx 2916 add ecx,DWORD[48+rsp] 2917 vpaddd xmm9,xmm11,xmm6 2918 xor ebp,eax 2919 shld edx,edx,5 2920 vpsrldq xmm8,xmm6,4 2921 add ecx,esi 2922 and edi,ebp 2923 vpxor xmm7,xmm7,xmm3 2924 xor ebp,eax 2925 add ecx,edx 2926 vpxor xmm8,xmm8,xmm5 2927 shrd edx,edx,7 2928 xor edi,eax 2929 mov esi,ecx 2930 add ebx,DWORD[52+rsp] 2931 vpxor xmm7,xmm7,xmm8 2932 xor edx,ebp 2933 shld ecx,ecx,5 2934 vmovdqa XMMWORD[32+rsp],xmm9 2935 add ebx,edi 2936 and esi,edx 2937 vpsrld xmm8,xmm7,31 2938 xor edx,ebp 2939 add ebx,ecx 2940 shrd ecx,ecx,7 2941 xor esi,ebp 2942 vpslldq xmm10,xmm7,12 2943 vpaddd xmm7,xmm7,xmm7 2944 mov edi,ebx 2945 add eax,DWORD[56+rsp] 2946 xor ecx,edx 2947 shld ebx,ebx,5 2948 vpsrld xmm9,xmm10,30 2949 vpor xmm7,xmm7,xmm8 2950 add eax,esi 2951 and edi,ecx 2952 xor ecx,edx 2953 add eax,ebx 2954 vpslld xmm10,xmm10,2 2955 vpxor xmm7,xmm7,xmm9 2956 shrd ebx,ebx,7 2957 xor edi,edx 2958 mov esi,eax 2959 add ebp,DWORD[60+rsp] 2960 vpxor xmm7,xmm7,xmm10 2961 xor ebx,ecx 2962 shld eax,eax,5 2963 add ebp,edi 2964 and esi,ebx 2965 xor ebx,ecx 2966 add ebp,eax 2967 vpalignr xmm8,xmm7,xmm6,8 2968 vpxor xmm0,xmm0,xmm4 2969 shrd eax,eax,7 2970 xor esi,ecx 2971 mov edi,ebp 2972 add edx,DWORD[rsp] 2973 vpxor xmm0,xmm0,xmm1 2974 xor eax,ebx 2975 shld ebp,ebp,5 2976 vpaddd xmm9,xmm11,xmm7 2977 add edx,esi 2978 and edi,eax 2979 vpxor xmm0,xmm0,xmm8 2980 xor eax,ebx 2981 add edx,ebp 2982 shrd ebp,ebp,7 2983 xor edi,ebx 2984 vpsrld xmm8,xmm0,30 2985 vmovdqa XMMWORD[48+rsp],xmm9 2986 mov esi,edx 2987 add ecx,DWORD[4+rsp] 2988 xor ebp,eax 2989 shld edx,edx,5 2990 vpslld xmm0,xmm0,2 2991 add ecx,edi 2992 and esi,ebp 2993 xor ebp,eax 2994 add ecx,edx 2995 shrd edx,edx,7 2996 xor esi,eax 2997 mov edi,ecx 2998 add ebx,DWORD[8+rsp] 2999 vpor xmm0,xmm0,xmm8 3000 xor edx,ebp 3001 shld ecx,ecx,5 3002 add ebx,esi 3003 and edi,edx 3004 xor edx,ebp 3005 add ebx,ecx 3006 add eax,DWORD[12+rsp] 3007 xor edi,ebp 3008 mov esi,ebx 3009 shld ebx,ebx,5 3010 add eax,edi 3011 xor esi,edx 3012 shrd ecx,ecx,7 3013 add eax,ebx 3014 vpalignr xmm8,xmm0,xmm7,8 3015 vpxor xmm1,xmm1,xmm5 3016 add ebp,DWORD[16+rsp] 3017 xor esi,ecx 3018 mov edi,eax 3019 shld eax,eax,5 3020 vpxor xmm1,xmm1,xmm2 3021 add ebp,esi 3022 xor edi,ecx 3023 vpaddd xmm9,xmm11,xmm0 3024 shrd ebx,ebx,7 3025 add ebp,eax 3026 vpxor xmm1,xmm1,xmm8 3027 add edx,DWORD[20+rsp] 3028 xor edi,ebx 3029 mov esi,ebp 3030 shld ebp,ebp,5 3031 vpsrld xmm8,xmm1,30 3032 vmovdqa XMMWORD[rsp],xmm9 3033 add edx,edi 3034 xor esi,ebx 3035 shrd eax,eax,7 3036 add edx,ebp 3037 vpslld xmm1,xmm1,2 3038 add ecx,DWORD[24+rsp] 3039 xor esi,eax 3040 mov edi,edx 3041 shld edx,edx,5 3042 add ecx,esi 3043 xor edi,eax 3044 shrd ebp,ebp,7 3045 add ecx,edx 3046 vpor xmm1,xmm1,xmm8 3047 add ebx,DWORD[28+rsp] 3048 xor edi,ebp 3049 mov esi,ecx 3050 shld ecx,ecx,5 3051 add ebx,edi 3052 xor esi,ebp 3053 shrd edx,edx,7 3054 add ebx,ecx 3055 vpalignr xmm8,xmm1,xmm0,8 3056 vpxor xmm2,xmm2,xmm6 3057 add eax,DWORD[32+rsp] 3058 xor esi,edx 3059 mov edi,ebx 3060 shld ebx,ebx,5 3061 vpxor xmm2,xmm2,xmm3 3062 add eax,esi 3063 xor edi,edx 3064 vpaddd xmm9,xmm11,xmm1 3065 vmovdqa xmm11,XMMWORD[r14] 3066 shrd ecx,ecx,7 3067 add eax,ebx 3068 vpxor xmm2,xmm2,xmm8 3069 add ebp,DWORD[36+rsp] 3070 xor edi,ecx 3071 mov esi,eax 3072 shld eax,eax,5 3073 vpsrld xmm8,xmm2,30 3074 vmovdqa XMMWORD[16+rsp],xmm9 3075 add ebp,edi 3076 xor esi,ecx 3077 shrd ebx,ebx,7 3078 add ebp,eax 3079 vpslld xmm2,xmm2,2 3080 add edx,DWORD[40+rsp] 3081 xor esi,ebx 3082 mov edi,ebp 3083 shld ebp,ebp,5 3084 add edx,esi 3085 xor edi,ebx 3086 shrd eax,eax,7 3087 add edx,ebp 3088 vpor xmm2,xmm2,xmm8 3089 add ecx,DWORD[44+rsp] 3090 xor edi,eax 3091 mov esi,edx 3092 shld edx,edx,5 3093 add ecx,edi 3094 xor esi,eax 3095 shrd ebp,ebp,7 3096 add ecx,edx 3097 vpalignr xmm8,xmm2,xmm1,8 3098 vpxor xmm3,xmm3,xmm7 3099 add ebx,DWORD[48+rsp] 3100 xor esi,ebp 3101 mov edi,ecx 3102 shld ecx,ecx,5 3103 vpxor xmm3,xmm3,xmm4 3104 add ebx,esi 3105 xor edi,ebp 3106 vpaddd xmm9,xmm11,xmm2 3107 shrd edx,edx,7 3108 add ebx,ecx 3109 vpxor xmm3,xmm3,xmm8 3110 add eax,DWORD[52+rsp] 3111 xor edi,edx 3112 mov esi,ebx 3113 shld ebx,ebx,5 3114 vpsrld xmm8,xmm3,30 3115 vmovdqa XMMWORD[32+rsp],xmm9 3116 add eax,edi 3117 xor esi,edx 3118 shrd ecx,ecx,7 3119 add eax,ebx 3120 vpslld xmm3,xmm3,2 3121 add ebp,DWORD[56+rsp] 3122 xor esi,ecx 3123 mov edi,eax 3124 shld eax,eax,5 3125 add ebp,esi 3126 xor edi,ecx 3127 shrd ebx,ebx,7 3128 add ebp,eax 3129 vpor xmm3,xmm3,xmm8 3130 add edx,DWORD[60+rsp] 3131 xor edi,ebx 3132 mov esi,ebp 3133 shld ebp,ebp,5 3134 add edx,edi 3135 xor esi,ebx 3136 shrd eax,eax,7 3137 add edx,ebp 3138 vpalignr xmm8,xmm3,xmm2,8 3139 vpxor xmm4,xmm4,xmm0 3140 add ecx,DWORD[rsp] 3141 xor esi,eax 3142 mov edi,edx 3143 shld edx,edx,5 3144 vpxor xmm4,xmm4,xmm5 3145 add ecx,esi 3146 xor edi,eax 3147 vpaddd xmm9,xmm11,xmm3 3148 shrd ebp,ebp,7 3149 add ecx,edx 3150 vpxor xmm4,xmm4,xmm8 3151 add ebx,DWORD[4+rsp] 3152 xor edi,ebp 3153 mov esi,ecx 3154 shld ecx,ecx,5 3155 vpsrld xmm8,xmm4,30 3156 vmovdqa XMMWORD[48+rsp],xmm9 3157 add ebx,edi 3158 xor esi,ebp 3159 shrd edx,edx,7 3160 add ebx,ecx 3161 vpslld xmm4,xmm4,2 3162 add eax,DWORD[8+rsp] 3163 xor esi,edx 3164 mov edi,ebx 3165 shld ebx,ebx,5 3166 add eax,esi 3167 xor edi,edx 3168 shrd ecx,ecx,7 3169 add eax,ebx 3170 vpor xmm4,xmm4,xmm8 3171 add ebp,DWORD[12+rsp] 3172 xor edi,ecx 3173 mov esi,eax 3174 shld eax,eax,5 3175 add ebp,edi 3176 xor esi,ecx 3177 shrd ebx,ebx,7 3178 add ebp,eax 3179 vpalignr xmm8,xmm4,xmm3,8 3180 vpxor xmm5,xmm5,xmm1 3181 add edx,DWORD[16+rsp] 3182 xor esi,ebx 3183 mov edi,ebp 3184 shld ebp,ebp,5 3185 vpxor xmm5,xmm5,xmm6 3186 add edx,esi 3187 xor edi,ebx 3188 vpaddd xmm9,xmm11,xmm4 3189 shrd eax,eax,7 3190 add edx,ebp 3191 vpxor xmm5,xmm5,xmm8 3192 add ecx,DWORD[20+rsp] 3193 xor edi,eax 3194 mov esi,edx 3195 shld edx,edx,5 3196 vpsrld xmm8,xmm5,30 3197 vmovdqa XMMWORD[rsp],xmm9 3198 add ecx,edi 3199 xor esi,eax 3200 shrd ebp,ebp,7 3201 add ecx,edx 3202 vpslld xmm5,xmm5,2 3203 add ebx,DWORD[24+rsp] 3204 xor esi,ebp 3205 mov edi,ecx 3206 shld ecx,ecx,5 3207 add ebx,esi 3208 xor edi,ebp 3209 shrd edx,edx,7 3210 add ebx,ecx 3211 vpor xmm5,xmm5,xmm8 3212 add eax,DWORD[28+rsp] 3213 shrd ecx,ecx,7 3214 mov esi,ebx 3215 xor edi,edx 3216 shld ebx,ebx,5 3217 add eax,edi 3218 xor esi,ecx 3219 xor ecx,edx 3220 add eax,ebx 3221 vpalignr xmm8,xmm5,xmm4,8 3222 vpxor xmm6,xmm6,xmm2 3223 add ebp,DWORD[32+rsp] 3224 and esi,ecx 3225 xor ecx,edx 3226 shrd ebx,ebx,7 3227 vpxor xmm6,xmm6,xmm7 3228 mov edi,eax 3229 xor esi,ecx 3230 vpaddd xmm9,xmm11,xmm5 3231 shld eax,eax,5 3232 add ebp,esi 3233 vpxor xmm6,xmm6,xmm8 3234 xor edi,ebx 3235 xor ebx,ecx 3236 add ebp,eax 3237 add edx,DWORD[36+rsp] 3238 vpsrld xmm8,xmm6,30 3239 vmovdqa XMMWORD[16+rsp],xmm9 3240 and edi,ebx 3241 xor ebx,ecx 3242 shrd eax,eax,7 3243 mov esi,ebp 3244 vpslld xmm6,xmm6,2 3245 xor edi,ebx 3246 shld ebp,ebp,5 3247 add edx,edi 3248 xor esi,eax 3249 xor eax,ebx 3250 add edx,ebp 3251 add ecx,DWORD[40+rsp] 3252 and esi,eax 3253 vpor xmm6,xmm6,xmm8 3254 xor eax,ebx 3255 shrd ebp,ebp,7 3256 mov edi,edx 3257 xor esi,eax 3258 shld edx,edx,5 3259 add ecx,esi 3260 xor edi,ebp 3261 xor ebp,eax 3262 add ecx,edx 3263 add ebx,DWORD[44+rsp] 3264 and edi,ebp 3265 xor ebp,eax 3266 shrd edx,edx,7 3267 mov esi,ecx 3268 xor edi,ebp 3269 shld ecx,ecx,5 3270 add ebx,edi 3271 xor esi,edx 3272 xor edx,ebp 3273 add ebx,ecx 3274 vpalignr xmm8,xmm6,xmm5,8 3275 vpxor xmm7,xmm7,xmm3 3276 add eax,DWORD[48+rsp] 3277 and esi,edx 3278 xor edx,ebp 3279 shrd ecx,ecx,7 3280 vpxor xmm7,xmm7,xmm0 3281 mov edi,ebx 3282 xor esi,edx 3283 vpaddd xmm9,xmm11,xmm6 3284 vmovdqa xmm11,XMMWORD[32+r14] 3285 shld ebx,ebx,5 3286 add eax,esi 3287 vpxor xmm7,xmm7,xmm8 3288 xor edi,ecx 3289 xor ecx,edx 3290 add eax,ebx 3291 add ebp,DWORD[52+rsp] 3292 vpsrld xmm8,xmm7,30 3293 vmovdqa XMMWORD[32+rsp],xmm9 3294 and edi,ecx 3295 xor ecx,edx 3296 shrd ebx,ebx,7 3297 mov esi,eax 3298 vpslld xmm7,xmm7,2 3299 xor edi,ecx 3300 shld eax,eax,5 3301 add ebp,edi 3302 xor esi,ebx 3303 xor ebx,ecx 3304 add ebp,eax 3305 add edx,DWORD[56+rsp] 3306 and esi,ebx 3307 vpor xmm7,xmm7,xmm8 3308 xor ebx,ecx 3309 shrd eax,eax,7 3310 mov edi,ebp 3311 xor esi,ebx 3312 shld ebp,ebp,5 3313 add edx,esi 3314 xor edi,eax 3315 xor eax,ebx 3316 add edx,ebp 3317 add ecx,DWORD[60+rsp] 3318 and edi,eax 3319 xor eax,ebx 3320 shrd ebp,ebp,7 3321 mov esi,edx 3322 xor edi,eax 3323 shld edx,edx,5 3324 add ecx,edi 3325 xor esi,ebp 3326 xor ebp,eax 3327 add ecx,edx 3328 vpalignr xmm8,xmm7,xmm6,8 3329 vpxor xmm0,xmm0,xmm4 3330 add ebx,DWORD[rsp] 3331 and esi,ebp 3332 xor ebp,eax 3333 shrd edx,edx,7 3334 vpxor xmm0,xmm0,xmm1 3335 mov edi,ecx 3336 xor esi,ebp 3337 vpaddd xmm9,xmm11,xmm7 3338 shld ecx,ecx,5 3339 add ebx,esi 3340 vpxor xmm0,xmm0,xmm8 3341 xor edi,edx 3342 xor edx,ebp 3343 add ebx,ecx 3344 add eax,DWORD[4+rsp] 3345 vpsrld xmm8,xmm0,30 3346 vmovdqa XMMWORD[48+rsp],xmm9 3347 and edi,edx 3348 xor edx,ebp 3349 shrd ecx,ecx,7 3350 mov esi,ebx 3351 vpslld xmm0,xmm0,2 3352 xor edi,edx 3353 shld ebx,ebx,5 3354 add eax,edi 3355 xor esi,ecx 3356 xor ecx,edx 3357 add eax,ebx 3358 add ebp,DWORD[8+rsp] 3359 and esi,ecx 3360 vpor xmm0,xmm0,xmm8 3361 xor ecx,edx 3362 shrd ebx,ebx,7 3363 mov edi,eax 3364 xor esi,ecx 3365 shld eax,eax,5 3366 add ebp,esi 3367 xor edi,ebx 3368 xor ebx,ecx 3369 add ebp,eax 3370 add edx,DWORD[12+rsp] 3371 and edi,ebx 3372 xor ebx,ecx 3373 shrd eax,eax,7 3374 mov esi,ebp 3375 xor edi,ebx 3376 shld ebp,ebp,5 3377 add edx,edi 3378 xor esi,eax 3379 xor eax,ebx 3380 add edx,ebp 3381 vpalignr xmm8,xmm0,xmm7,8 3382 vpxor xmm1,xmm1,xmm5 3383 add ecx,DWORD[16+rsp] 3384 and esi,eax 3385 xor eax,ebx 3386 shrd ebp,ebp,7 3387 vpxor xmm1,xmm1,xmm2 3388 mov edi,edx 3389 xor esi,eax 3390 vpaddd xmm9,xmm11,xmm0 3391 shld edx,edx,5 3392 add ecx,esi 3393 vpxor xmm1,xmm1,xmm8 3394 xor edi,ebp 3395 xor ebp,eax 3396 add ecx,edx 3397 add ebx,DWORD[20+rsp] 3398 vpsrld xmm8,xmm1,30 3399 vmovdqa XMMWORD[rsp],xmm9 3400 and edi,ebp 3401 xor ebp,eax 3402 shrd edx,edx,7 3403 mov esi,ecx 3404 vpslld xmm1,xmm1,2 3405 xor edi,ebp 3406 shld ecx,ecx,5 3407 add ebx,edi 3408 xor esi,edx 3409 xor edx,ebp 3410 add ebx,ecx 3411 add eax,DWORD[24+rsp] 3412 and esi,edx 3413 vpor xmm1,xmm1,xmm8 3414 xor edx,ebp 3415 shrd ecx,ecx,7 3416 mov edi,ebx 3417 xor esi,edx 3418 shld ebx,ebx,5 3419 add eax,esi 3420 xor edi,ecx 3421 xor ecx,edx 3422 add eax,ebx 3423 add ebp,DWORD[28+rsp] 3424 and edi,ecx 3425 xor ecx,edx 3426 shrd ebx,ebx,7 3427 mov esi,eax 3428 xor edi,ecx 3429 shld eax,eax,5 3430 add ebp,edi 3431 xor esi,ebx 3432 xor ebx,ecx 3433 add ebp,eax 3434 vpalignr xmm8,xmm1,xmm0,8 3435 vpxor xmm2,xmm2,xmm6 3436 add edx,DWORD[32+rsp] 3437 and esi,ebx 3438 xor ebx,ecx 3439 shrd eax,eax,7 3440 vpxor xmm2,xmm2,xmm3 3441 mov edi,ebp 3442 xor esi,ebx 3443 vpaddd xmm9,xmm11,xmm1 3444 shld ebp,ebp,5 3445 add edx,esi 3446 vpxor xmm2,xmm2,xmm8 3447 xor edi,eax 3448 xor eax,ebx 3449 add edx,ebp 3450 add ecx,DWORD[36+rsp] 3451 vpsrld xmm8,xmm2,30 3452 vmovdqa XMMWORD[16+rsp],xmm9 3453 and edi,eax 3454 xor eax,ebx 3455 shrd ebp,ebp,7 3456 mov esi,edx 3457 vpslld xmm2,xmm2,2 3458 xor edi,eax 3459 shld edx,edx,5 3460 add ecx,edi 3461 xor esi,ebp 3462 xor ebp,eax 3463 add ecx,edx 3464 add ebx,DWORD[40+rsp] 3465 and esi,ebp 3466 vpor xmm2,xmm2,xmm8 3467 xor ebp,eax 3468 shrd edx,edx,7 3469 mov edi,ecx 3470 xor esi,ebp 3471 shld ecx,ecx,5 3472 add ebx,esi 3473 xor edi,edx 3474 xor edx,ebp 3475 add ebx,ecx 3476 add eax,DWORD[44+rsp] 3477 and edi,edx 3478 xor edx,ebp 3479 shrd ecx,ecx,7 3480 mov esi,ebx 3481 xor edi,edx 3482 shld ebx,ebx,5 3483 add eax,edi 3484 xor esi,edx 3485 add eax,ebx 3486 vpalignr xmm8,xmm2,xmm1,8 3487 vpxor xmm3,xmm3,xmm7 3488 add ebp,DWORD[48+rsp] 3489 xor esi,ecx 3490 mov edi,eax 3491 shld eax,eax,5 3492 vpxor xmm3,xmm3,xmm4 3493 add ebp,esi 3494 xor edi,ecx 3495 vpaddd xmm9,xmm11,xmm2 3496 shrd ebx,ebx,7 3497 add ebp,eax 3498 vpxor xmm3,xmm3,xmm8 3499 add edx,DWORD[52+rsp] 3500 xor edi,ebx 3501 mov esi,ebp 3502 shld ebp,ebp,5 3503 vpsrld xmm8,xmm3,30 3504 vmovdqa XMMWORD[32+rsp],xmm9 3505 add edx,edi 3506 xor esi,ebx 3507 shrd eax,eax,7 3508 add edx,ebp 3509 vpslld xmm3,xmm3,2 3510 add ecx,DWORD[56+rsp] 3511 xor esi,eax 3512 mov edi,edx 3513 shld edx,edx,5 3514 add ecx,esi 3515 xor edi,eax 3516 shrd ebp,ebp,7 3517 add ecx,edx 3518 vpor xmm3,xmm3,xmm8 3519 add ebx,DWORD[60+rsp] 3520 xor edi,ebp 3521 mov esi,ecx 3522 shld ecx,ecx,5 3523 add ebx,edi 3524 xor esi,ebp 3525 shrd edx,edx,7 3526 add ebx,ecx 3527 add eax,DWORD[rsp] 3528 vpaddd xmm9,xmm11,xmm3 3529 xor esi,edx 3530 mov edi,ebx 3531 shld ebx,ebx,5 3532 add eax,esi 3533 vmovdqa XMMWORD[48+rsp],xmm9 3534 xor edi,edx 3535 shrd ecx,ecx,7 3536 add eax,ebx 3537 add ebp,DWORD[4+rsp] 3538 xor edi,ecx 3539 mov esi,eax 3540 shld eax,eax,5 3541 add ebp,edi 3542 xor esi,ecx 3543 shrd ebx,ebx,7 3544 add ebp,eax 3545 add edx,DWORD[8+rsp] 3546 xor esi,ebx 3547 mov edi,ebp 3548 shld ebp,ebp,5 3549 add edx,esi 3550 xor edi,ebx 3551 shrd eax,eax,7 3552 add edx,ebp 3553 add ecx,DWORD[12+rsp] 3554 xor edi,eax 3555 mov esi,edx 3556 shld edx,edx,5 3557 add ecx,edi 3558 xor esi,eax 3559 shrd ebp,ebp,7 3560 add ecx,edx 3561 cmp r9,r10 3562 je NEAR $L$done_avx 3563 vmovdqa xmm6,XMMWORD[64+r14] 3564 vmovdqa xmm11,XMMWORD[((-64))+r14] 3565 vmovdqu xmm0,XMMWORD[r9] 3566 vmovdqu xmm1,XMMWORD[16+r9] 3567 vmovdqu xmm2,XMMWORD[32+r9] 3568 vmovdqu xmm3,XMMWORD[48+r9] 3569 vpshufb xmm0,xmm0,xmm6 3570 add r9,64 3571 add ebx,DWORD[16+rsp] 3572 xor esi,ebp 3573 vpshufb xmm1,xmm1,xmm6 3574 mov edi,ecx 3575 shld ecx,ecx,5 3576 vpaddd xmm4,xmm0,xmm11 3577 add ebx,esi 3578 xor edi,ebp 3579 shrd edx,edx,7 3580 add ebx,ecx 3581 vmovdqa XMMWORD[rsp],xmm4 3582 add eax,DWORD[20+rsp] 3583 xor edi,edx 3584 mov esi,ebx 3585 shld ebx,ebx,5 3586 add eax,edi 3587 xor esi,edx 3588 shrd ecx,ecx,7 3589 add eax,ebx 3590 add ebp,DWORD[24+rsp] 3591 xor esi,ecx 3592 mov edi,eax 3593 shld eax,eax,5 3594 add ebp,esi 3595 xor edi,ecx 3596 shrd ebx,ebx,7 3597 add ebp,eax 3598 add edx,DWORD[28+rsp] 3599 xor edi,ebx 3600 mov esi,ebp 3601 shld ebp,ebp,5 3602 add edx,edi 3603 xor esi,ebx 3604 shrd eax,eax,7 3605 add edx,ebp 3606 add ecx,DWORD[32+rsp] 3607 xor esi,eax 3608 vpshufb xmm2,xmm2,xmm6 3609 mov edi,edx 3610 shld edx,edx,5 3611 vpaddd xmm5,xmm1,xmm11 3612 add ecx,esi 3613 xor edi,eax 3614 shrd ebp,ebp,7 3615 add ecx,edx 3616 vmovdqa XMMWORD[16+rsp],xmm5 3617 add ebx,DWORD[36+rsp] 3618 xor edi,ebp 3619 mov esi,ecx 3620 shld ecx,ecx,5 3621 add ebx,edi 3622 xor esi,ebp 3623 shrd edx,edx,7 3624 add ebx,ecx 3625 add eax,DWORD[40+rsp] 3626 xor esi,edx 3627 mov edi,ebx 3628 shld ebx,ebx,5 3629 add eax,esi 3630 xor edi,edx 3631 shrd ecx,ecx,7 3632 add eax,ebx 3633 add ebp,DWORD[44+rsp] 3634 xor edi,ecx 3635 mov esi,eax 3636 shld eax,eax,5 3637 add ebp,edi 3638 xor esi,ecx 3639 shrd ebx,ebx,7 3640 add ebp,eax 3641 add edx,DWORD[48+rsp] 3642 xor esi,ebx 3643 vpshufb xmm3,xmm3,xmm6 3644 mov edi,ebp 3645 shld ebp,ebp,5 3646 vpaddd xmm6,xmm2,xmm11 3647 add edx,esi 3648 xor edi,ebx 3649 shrd eax,eax,7 3650 add edx,ebp 3651 vmovdqa XMMWORD[32+rsp],xmm6 3652 add ecx,DWORD[52+rsp] 3653 xor edi,eax 3654 mov esi,edx 3655 shld edx,edx,5 3656 add ecx,edi 3657 xor esi,eax 3658 shrd ebp,ebp,7 3659 add ecx,edx 3660 add ebx,DWORD[56+rsp] 3661 xor esi,ebp 3662 mov edi,ecx 3663 shld ecx,ecx,5 3664 add ebx,esi 3665 xor edi,ebp 3666 shrd edx,edx,7 3667 add ebx,ecx 3668 add eax,DWORD[60+rsp] 3669 xor edi,edx 3670 mov esi,ebx 3671 shld ebx,ebx,5 3672 add eax,edi 3673 shrd ecx,ecx,7 3674 add eax,ebx 3675 add eax,DWORD[r8] 3676 add esi,DWORD[4+r8] 3677 add ecx,DWORD[8+r8] 3678 add edx,DWORD[12+r8] 3679 mov DWORD[r8],eax 3680 add ebp,DWORD[16+r8] 3681 mov DWORD[4+r8],esi 3682 mov ebx,esi 3683 mov DWORD[8+r8],ecx 3684 mov edi,ecx 3685 mov DWORD[12+r8],edx 3686 xor edi,edx 3687 mov DWORD[16+r8],ebp 3688 and esi,edi 3689 jmp NEAR $L$oop_avx 3690 3691ALIGN 16 3692$L$done_avx: 3693 add ebx,DWORD[16+rsp] 3694 xor esi,ebp 3695 mov edi,ecx 3696 shld ecx,ecx,5 3697 add ebx,esi 3698 xor edi,ebp 3699 shrd edx,edx,7 3700 add ebx,ecx 3701 add eax,DWORD[20+rsp] 3702 xor edi,edx 3703 mov esi,ebx 3704 shld ebx,ebx,5 3705 add eax,edi 3706 xor esi,edx 3707 shrd ecx,ecx,7 3708 add eax,ebx 3709 add ebp,DWORD[24+rsp] 3710 xor esi,ecx 3711 mov edi,eax 3712 shld eax,eax,5 3713 add ebp,esi 3714 xor edi,ecx 3715 shrd ebx,ebx,7 3716 add ebp,eax 3717 add edx,DWORD[28+rsp] 3718 xor edi,ebx 3719 mov esi,ebp 3720 shld ebp,ebp,5 3721 add edx,edi 3722 xor esi,ebx 3723 shrd eax,eax,7 3724 add edx,ebp 3725 add ecx,DWORD[32+rsp] 3726 xor esi,eax 3727 mov edi,edx 3728 shld edx,edx,5 3729 add ecx,esi 3730 xor edi,eax 3731 shrd ebp,ebp,7 3732 add ecx,edx 3733 add ebx,DWORD[36+rsp] 3734 xor edi,ebp 3735 mov esi,ecx 3736 shld ecx,ecx,5 3737 add ebx,edi 3738 xor esi,ebp 3739 shrd edx,edx,7 3740 add ebx,ecx 3741 add eax,DWORD[40+rsp] 3742 xor esi,edx 3743 mov edi,ebx 3744 shld ebx,ebx,5 3745 add eax,esi 3746 xor edi,edx 3747 shrd ecx,ecx,7 3748 add eax,ebx 3749 add ebp,DWORD[44+rsp] 3750 xor edi,ecx 3751 mov esi,eax 3752 shld eax,eax,5 3753 add ebp,edi 3754 xor esi,ecx 3755 shrd ebx,ebx,7 3756 add ebp,eax 3757 add edx,DWORD[48+rsp] 3758 xor esi,ebx 3759 mov edi,ebp 3760 shld ebp,ebp,5 3761 add edx,esi 3762 xor edi,ebx 3763 shrd eax,eax,7 3764 add edx,ebp 3765 add ecx,DWORD[52+rsp] 3766 xor edi,eax 3767 mov esi,edx 3768 shld edx,edx,5 3769 add ecx,edi 3770 xor esi,eax 3771 shrd ebp,ebp,7 3772 add ecx,edx 3773 add ebx,DWORD[56+rsp] 3774 xor esi,ebp 3775 mov edi,ecx 3776 shld ecx,ecx,5 3777 add ebx,esi 3778 xor edi,ebp 3779 shrd edx,edx,7 3780 add ebx,ecx 3781 add eax,DWORD[60+rsp] 3782 xor edi,edx 3783 mov esi,ebx 3784 shld ebx,ebx,5 3785 add eax,edi 3786 shrd ecx,ecx,7 3787 add eax,ebx 3788 vzeroupper 3789 3790 add eax,DWORD[r8] 3791 add esi,DWORD[4+r8] 3792 add ecx,DWORD[8+r8] 3793 mov DWORD[r8],eax 3794 add edx,DWORD[12+r8] 3795 mov DWORD[4+r8],esi 3796 add ebp,DWORD[16+r8] 3797 mov DWORD[8+r8],ecx 3798 mov DWORD[12+r8],edx 3799 mov DWORD[16+r8],ebp 3800 movaps xmm6,XMMWORD[((-40-96))+r11] 3801 movaps xmm7,XMMWORD[((-40-80))+r11] 3802 movaps xmm8,XMMWORD[((-40-64))+r11] 3803 movaps xmm9,XMMWORD[((-40-48))+r11] 3804 movaps xmm10,XMMWORD[((-40-32))+r11] 3805 movaps xmm11,XMMWORD[((-40-16))+r11] 3806 mov r14,QWORD[((-40))+r11] 3807 3808 mov r13,QWORD[((-32))+r11] 3809 3810 mov r12,QWORD[((-24))+r11] 3811 3812 mov rbp,QWORD[((-16))+r11] 3813 3814 mov rbx,QWORD[((-8))+r11] 3815 3816 lea rsp,[r11] 3817 3818$L$epilogue_avx: 3819 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 3820 mov rsi,QWORD[16+rsp] 3821 ret 3822 3823$L$SEH_end_sha1_block_data_order_avx: 3824global sha1_block_data_order_avx2 3825 3826ALIGN 16 3827sha1_block_data_order_avx2: 3828 mov QWORD[8+rsp],rdi ;WIN64 prologue 3829 mov QWORD[16+rsp],rsi 3830 mov rax,rsp 3831$L$SEH_begin_sha1_block_data_order_avx2: 3832 mov rdi,rcx 3833 mov rsi,rdx 3834 mov rdx,r8 3835 3836 3837 3838_CET_ENDBR 3839 mov r11,rsp 3840 3841 push rbx 3842 3843 push rbp 3844 3845 push r12 3846 3847 push r13 3848 3849 push r14 3850 3851 vzeroupper 3852 lea rsp,[((-96))+rsp] 3853 vmovaps XMMWORD[(-40-96)+r11],xmm6 3854 vmovaps XMMWORD[(-40-80)+r11],xmm7 3855 vmovaps XMMWORD[(-40-64)+r11],xmm8 3856 vmovaps XMMWORD[(-40-48)+r11],xmm9 3857 vmovaps XMMWORD[(-40-32)+r11],xmm10 3858 vmovaps XMMWORD[(-40-16)+r11],xmm11 3859$L$prologue_avx2: 3860 mov r8,rdi 3861 mov r9,rsi 3862 mov r10,rdx 3863 3864 lea rsp,[((-640))+rsp] 3865 shl r10,6 3866 lea r13,[64+r9] 3867 and rsp,-128 3868 add r10,r9 3869 lea r14,[((K_XX_XX+64))] 3870 3871 mov eax,DWORD[r8] 3872 cmp r13,r10 3873 cmovae r13,r9 3874 mov ebp,DWORD[4+r8] 3875 mov ecx,DWORD[8+r8] 3876 mov edx,DWORD[12+r8] 3877 mov esi,DWORD[16+r8] 3878 vmovdqu ymm6,YMMWORD[64+r14] 3879 3880 vmovdqu xmm0,XMMWORD[r9] 3881 vmovdqu xmm1,XMMWORD[16+r9] 3882 vmovdqu xmm2,XMMWORD[32+r9] 3883 vmovdqu xmm3,XMMWORD[48+r9] 3884 lea r9,[64+r9] 3885 vinserti128 ymm0,ymm0,XMMWORD[r13],1 3886 vinserti128 ymm1,ymm1,XMMWORD[16+r13],1 3887 vpshufb ymm0,ymm0,ymm6 3888 vinserti128 ymm2,ymm2,XMMWORD[32+r13],1 3889 vpshufb ymm1,ymm1,ymm6 3890 vinserti128 ymm3,ymm3,XMMWORD[48+r13],1 3891 vpshufb ymm2,ymm2,ymm6 3892 vmovdqu ymm11,YMMWORD[((-64))+r14] 3893 vpshufb ymm3,ymm3,ymm6 3894 3895 vpaddd ymm4,ymm0,ymm11 3896 vpaddd ymm5,ymm1,ymm11 3897 vmovdqu YMMWORD[rsp],ymm4 3898 vpaddd ymm6,ymm2,ymm11 3899 vmovdqu YMMWORD[32+rsp],ymm5 3900 vpaddd ymm7,ymm3,ymm11 3901 vmovdqu YMMWORD[64+rsp],ymm6 3902 vmovdqu YMMWORD[96+rsp],ymm7 3903 vpalignr ymm4,ymm1,ymm0,8 3904 vpsrldq ymm8,ymm3,4 3905 vpxor ymm4,ymm4,ymm0 3906 vpxor ymm8,ymm8,ymm2 3907 vpxor ymm4,ymm4,ymm8 3908 vpsrld ymm8,ymm4,31 3909 vpslldq ymm10,ymm4,12 3910 vpaddd ymm4,ymm4,ymm4 3911 vpsrld ymm9,ymm10,30 3912 vpor ymm4,ymm4,ymm8 3913 vpslld ymm10,ymm10,2 3914 vpxor ymm4,ymm4,ymm9 3915 vpxor ymm4,ymm4,ymm10 3916 vpaddd ymm9,ymm4,ymm11 3917 vmovdqu YMMWORD[128+rsp],ymm9 3918 vpalignr ymm5,ymm2,ymm1,8 3919 vpsrldq ymm8,ymm4,4 3920 vpxor ymm5,ymm5,ymm1 3921 vpxor ymm8,ymm8,ymm3 3922 vpxor ymm5,ymm5,ymm8 3923 vpsrld ymm8,ymm5,31 3924 vmovdqu ymm11,YMMWORD[((-32))+r14] 3925 vpslldq ymm10,ymm5,12 3926 vpaddd ymm5,ymm5,ymm5 3927 vpsrld ymm9,ymm10,30 3928 vpor ymm5,ymm5,ymm8 3929 vpslld ymm10,ymm10,2 3930 vpxor ymm5,ymm5,ymm9 3931 vpxor ymm5,ymm5,ymm10 3932 vpaddd ymm9,ymm5,ymm11 3933 vmovdqu YMMWORD[160+rsp],ymm9 3934 vpalignr ymm6,ymm3,ymm2,8 3935 vpsrldq ymm8,ymm5,4 3936 vpxor ymm6,ymm6,ymm2 3937 vpxor ymm8,ymm8,ymm4 3938 vpxor ymm6,ymm6,ymm8 3939 vpsrld ymm8,ymm6,31 3940 vpslldq ymm10,ymm6,12 3941 vpaddd ymm6,ymm6,ymm6 3942 vpsrld ymm9,ymm10,30 3943 vpor ymm6,ymm6,ymm8 3944 vpslld ymm10,ymm10,2 3945 vpxor ymm6,ymm6,ymm9 3946 vpxor ymm6,ymm6,ymm10 3947 vpaddd ymm9,ymm6,ymm11 3948 vmovdqu YMMWORD[192+rsp],ymm9 3949 vpalignr ymm7,ymm4,ymm3,8 3950 vpsrldq ymm8,ymm6,4 3951 vpxor ymm7,ymm7,ymm3 3952 vpxor ymm8,ymm8,ymm5 3953 vpxor ymm7,ymm7,ymm8 3954 vpsrld ymm8,ymm7,31 3955 vpslldq ymm10,ymm7,12 3956 vpaddd ymm7,ymm7,ymm7 3957 vpsrld ymm9,ymm10,30 3958 vpor ymm7,ymm7,ymm8 3959 vpslld ymm10,ymm10,2 3960 vpxor ymm7,ymm7,ymm9 3961 vpxor ymm7,ymm7,ymm10 3962 vpaddd ymm9,ymm7,ymm11 3963 vmovdqu YMMWORD[224+rsp],ymm9 3964 lea r13,[128+rsp] 3965 jmp NEAR $L$oop_avx2 3966ALIGN 32 3967$L$oop_avx2: 3968 rorx ebx,ebp,2 3969 andn edi,ebp,edx 3970 and ebp,ecx 3971 xor ebp,edi 3972 jmp NEAR $L$align32_1 3973ALIGN 32 3974$L$align32_1: 3975 vpalignr ymm8,ymm7,ymm6,8 3976 vpxor ymm0,ymm0,ymm4 3977 add esi,DWORD[((-128))+r13] 3978 andn edi,eax,ecx 3979 vpxor ymm0,ymm0,ymm1 3980 add esi,ebp 3981 rorx r12d,eax,27 3982 rorx ebp,eax,2 3983 vpxor ymm0,ymm0,ymm8 3984 and eax,ebx 3985 add esi,r12d 3986 xor eax,edi 3987 vpsrld ymm8,ymm0,30 3988 vpslld ymm0,ymm0,2 3989 add edx,DWORD[((-124))+r13] 3990 andn edi,esi,ebx 3991 add edx,eax 3992 rorx r12d,esi,27 3993 rorx eax,esi,2 3994 and esi,ebp 3995 vpor ymm0,ymm0,ymm8 3996 add edx,r12d 3997 xor esi,edi 3998 add ecx,DWORD[((-120))+r13] 3999 andn edi,edx,ebp 4000 vpaddd ymm9,ymm0,ymm11 4001 add ecx,esi 4002 rorx r12d,edx,27 4003 rorx esi,edx,2 4004 and edx,eax 4005 vmovdqu YMMWORD[256+rsp],ymm9 4006 add ecx,r12d 4007 xor edx,edi 4008 add ebx,DWORD[((-116))+r13] 4009 andn edi,ecx,eax 4010 add ebx,edx 4011 rorx r12d,ecx,27 4012 rorx edx,ecx,2 4013 and ecx,esi 4014 add ebx,r12d 4015 xor ecx,edi 4016 add ebp,DWORD[((-96))+r13] 4017 andn edi,ebx,esi 4018 add ebp,ecx 4019 rorx r12d,ebx,27 4020 rorx ecx,ebx,2 4021 and ebx,edx 4022 add ebp,r12d 4023 xor ebx,edi 4024 vpalignr ymm8,ymm0,ymm7,8 4025 vpxor ymm1,ymm1,ymm5 4026 add eax,DWORD[((-92))+r13] 4027 andn edi,ebp,edx 4028 vpxor ymm1,ymm1,ymm2 4029 add eax,ebx 4030 rorx r12d,ebp,27 4031 rorx ebx,ebp,2 4032 vpxor ymm1,ymm1,ymm8 4033 and ebp,ecx 4034 add eax,r12d 4035 xor ebp,edi 4036 vpsrld ymm8,ymm1,30 4037 vpslld ymm1,ymm1,2 4038 add esi,DWORD[((-88))+r13] 4039 andn edi,eax,ecx 4040 add esi,ebp 4041 rorx r12d,eax,27 4042 rorx ebp,eax,2 4043 and eax,ebx 4044 vpor ymm1,ymm1,ymm8 4045 add esi,r12d 4046 xor eax,edi 4047 add edx,DWORD[((-84))+r13] 4048 andn edi,esi,ebx 4049 vpaddd ymm9,ymm1,ymm11 4050 add edx,eax 4051 rorx r12d,esi,27 4052 rorx eax,esi,2 4053 and esi,ebp 4054 vmovdqu YMMWORD[288+rsp],ymm9 4055 add edx,r12d 4056 xor esi,edi 4057 add ecx,DWORD[((-64))+r13] 4058 andn edi,edx,ebp 4059 add ecx,esi 4060 rorx r12d,edx,27 4061 rorx esi,edx,2 4062 and edx,eax 4063 add ecx,r12d 4064 xor edx,edi 4065 add ebx,DWORD[((-60))+r13] 4066 andn edi,ecx,eax 4067 add ebx,edx 4068 rorx r12d,ecx,27 4069 rorx edx,ecx,2 4070 and ecx,esi 4071 add ebx,r12d 4072 xor ecx,edi 4073 vpalignr ymm8,ymm1,ymm0,8 4074 vpxor ymm2,ymm2,ymm6 4075 add ebp,DWORD[((-56))+r13] 4076 andn edi,ebx,esi 4077 vpxor ymm2,ymm2,ymm3 4078 vmovdqu ymm11,YMMWORD[r14] 4079 add ebp,ecx 4080 rorx r12d,ebx,27 4081 rorx ecx,ebx,2 4082 vpxor ymm2,ymm2,ymm8 4083 and ebx,edx 4084 add ebp,r12d 4085 xor ebx,edi 4086 vpsrld ymm8,ymm2,30 4087 vpslld ymm2,ymm2,2 4088 add eax,DWORD[((-52))+r13] 4089 andn edi,ebp,edx 4090 add eax,ebx 4091 rorx r12d,ebp,27 4092 rorx ebx,ebp,2 4093 and ebp,ecx 4094 vpor ymm2,ymm2,ymm8 4095 add eax,r12d 4096 xor ebp,edi 4097 add esi,DWORD[((-32))+r13] 4098 andn edi,eax,ecx 4099 vpaddd ymm9,ymm2,ymm11 4100 add esi,ebp 4101 rorx r12d,eax,27 4102 rorx ebp,eax,2 4103 and eax,ebx 4104 vmovdqu YMMWORD[320+rsp],ymm9 4105 add esi,r12d 4106 xor eax,edi 4107 add edx,DWORD[((-28))+r13] 4108 andn edi,esi,ebx 4109 add edx,eax 4110 rorx r12d,esi,27 4111 rorx eax,esi,2 4112 and esi,ebp 4113 add edx,r12d 4114 xor esi,edi 4115 add ecx,DWORD[((-24))+r13] 4116 andn edi,edx,ebp 4117 add ecx,esi 4118 rorx r12d,edx,27 4119 rorx esi,edx,2 4120 and edx,eax 4121 add ecx,r12d 4122 xor edx,edi 4123 vpalignr ymm8,ymm2,ymm1,8 4124 vpxor ymm3,ymm3,ymm7 4125 add ebx,DWORD[((-20))+r13] 4126 andn edi,ecx,eax 4127 vpxor ymm3,ymm3,ymm4 4128 add ebx,edx 4129 rorx r12d,ecx,27 4130 rorx edx,ecx,2 4131 vpxor ymm3,ymm3,ymm8 4132 and ecx,esi 4133 add ebx,r12d 4134 xor ecx,edi 4135 vpsrld ymm8,ymm3,30 4136 vpslld ymm3,ymm3,2 4137 add ebp,DWORD[r13] 4138 andn edi,ebx,esi 4139 add ebp,ecx 4140 rorx r12d,ebx,27 4141 rorx ecx,ebx,2 4142 and ebx,edx 4143 vpor ymm3,ymm3,ymm8 4144 add ebp,r12d 4145 xor ebx,edi 4146 add eax,DWORD[4+r13] 4147 andn edi,ebp,edx 4148 vpaddd ymm9,ymm3,ymm11 4149 add eax,ebx 4150 rorx r12d,ebp,27 4151 rorx ebx,ebp,2 4152 and ebp,ecx 4153 vmovdqu YMMWORD[352+rsp],ymm9 4154 add eax,r12d 4155 xor ebp,edi 4156 add esi,DWORD[8+r13] 4157 andn edi,eax,ecx 4158 add esi,ebp 4159 rorx r12d,eax,27 4160 rorx ebp,eax,2 4161 and eax,ebx 4162 add esi,r12d 4163 xor eax,edi 4164 add edx,DWORD[12+r13] 4165 lea edx,[rax*1+rdx] 4166 rorx r12d,esi,27 4167 rorx eax,esi,2 4168 xor esi,ebp 4169 add edx,r12d 4170 xor esi,ebx 4171 vpalignr ymm8,ymm3,ymm2,8 4172 vpxor ymm4,ymm4,ymm0 4173 add ecx,DWORD[32+r13] 4174 lea ecx,[rsi*1+rcx] 4175 vpxor ymm4,ymm4,ymm5 4176 rorx r12d,edx,27 4177 rorx esi,edx,2 4178 xor edx,eax 4179 vpxor ymm4,ymm4,ymm8 4180 add ecx,r12d 4181 xor edx,ebp 4182 add ebx,DWORD[36+r13] 4183 vpsrld ymm8,ymm4,30 4184 vpslld ymm4,ymm4,2 4185 lea ebx,[rdx*1+rbx] 4186 rorx r12d,ecx,27 4187 rorx edx,ecx,2 4188 xor ecx,esi 4189 add ebx,r12d 4190 xor ecx,eax 4191 vpor ymm4,ymm4,ymm8 4192 add ebp,DWORD[40+r13] 4193 lea ebp,[rbp*1+rcx] 4194 rorx r12d,ebx,27 4195 rorx ecx,ebx,2 4196 vpaddd ymm9,ymm4,ymm11 4197 xor ebx,edx 4198 add ebp,r12d 4199 xor ebx,esi 4200 add eax,DWORD[44+r13] 4201 vmovdqu YMMWORD[384+rsp],ymm9 4202 lea eax,[rbx*1+rax] 4203 rorx r12d,ebp,27 4204 rorx ebx,ebp,2 4205 xor ebp,ecx 4206 add eax,r12d 4207 xor ebp,edx 4208 add esi,DWORD[64+r13] 4209 lea esi,[rbp*1+rsi] 4210 rorx r12d,eax,27 4211 rorx ebp,eax,2 4212 xor eax,ebx 4213 add esi,r12d 4214 xor eax,ecx 4215 vpalignr ymm8,ymm4,ymm3,8 4216 vpxor ymm5,ymm5,ymm1 4217 add edx,DWORD[68+r13] 4218 lea edx,[rax*1+rdx] 4219 vpxor ymm5,ymm5,ymm6 4220 rorx r12d,esi,27 4221 rorx eax,esi,2 4222 xor esi,ebp 4223 vpxor ymm5,ymm5,ymm8 4224 add edx,r12d 4225 xor esi,ebx 4226 add ecx,DWORD[72+r13] 4227 vpsrld ymm8,ymm5,30 4228 vpslld ymm5,ymm5,2 4229 lea ecx,[rsi*1+rcx] 4230 rorx r12d,edx,27 4231 rorx esi,edx,2 4232 xor edx,eax 4233 add ecx,r12d 4234 xor edx,ebp 4235 vpor ymm5,ymm5,ymm8 4236 add ebx,DWORD[76+r13] 4237 lea ebx,[rdx*1+rbx] 4238 rorx r12d,ecx,27 4239 rorx edx,ecx,2 4240 vpaddd ymm9,ymm5,ymm11 4241 xor ecx,esi 4242 add ebx,r12d 4243 xor ecx,eax 4244 add ebp,DWORD[96+r13] 4245 vmovdqu YMMWORD[416+rsp],ymm9 4246 lea ebp,[rbp*1+rcx] 4247 rorx r12d,ebx,27 4248 rorx ecx,ebx,2 4249 xor ebx,edx 4250 add ebp,r12d 4251 xor ebx,esi 4252 add eax,DWORD[100+r13] 4253 lea eax,[rbx*1+rax] 4254 rorx r12d,ebp,27 4255 rorx ebx,ebp,2 4256 xor ebp,ecx 4257 add eax,r12d 4258 xor ebp,edx 4259 vpalignr ymm8,ymm5,ymm4,8 4260 vpxor ymm6,ymm6,ymm2 4261 add esi,DWORD[104+r13] 4262 lea esi,[rbp*1+rsi] 4263 vpxor ymm6,ymm6,ymm7 4264 rorx r12d,eax,27 4265 rorx ebp,eax,2 4266 xor eax,ebx 4267 vpxor ymm6,ymm6,ymm8 4268 add esi,r12d 4269 xor eax,ecx 4270 add edx,DWORD[108+r13] 4271 lea r13,[256+r13] 4272 vpsrld ymm8,ymm6,30 4273 vpslld ymm6,ymm6,2 4274 lea edx,[rax*1+rdx] 4275 rorx r12d,esi,27 4276 rorx eax,esi,2 4277 xor esi,ebp 4278 add edx,r12d 4279 xor esi,ebx 4280 vpor ymm6,ymm6,ymm8 4281 add ecx,DWORD[((-128))+r13] 4282 lea ecx,[rsi*1+rcx] 4283 rorx r12d,edx,27 4284 rorx esi,edx,2 4285 vpaddd ymm9,ymm6,ymm11 4286 xor edx,eax 4287 add ecx,r12d 4288 xor edx,ebp 4289 add ebx,DWORD[((-124))+r13] 4290 vmovdqu YMMWORD[448+rsp],ymm9 4291 lea ebx,[rdx*1+rbx] 4292 rorx r12d,ecx,27 4293 rorx edx,ecx,2 4294 xor ecx,esi 4295 add ebx,r12d 4296 xor ecx,eax 4297 add ebp,DWORD[((-120))+r13] 4298 lea ebp,[rbp*1+rcx] 4299 rorx r12d,ebx,27 4300 rorx ecx,ebx,2 4301 xor ebx,edx 4302 add ebp,r12d 4303 xor ebx,esi 4304 vpalignr ymm8,ymm6,ymm5,8 4305 vpxor ymm7,ymm7,ymm3 4306 add eax,DWORD[((-116))+r13] 4307 lea eax,[rbx*1+rax] 4308 vpxor ymm7,ymm7,ymm0 4309 vmovdqu ymm11,YMMWORD[32+r14] 4310 rorx r12d,ebp,27 4311 rorx ebx,ebp,2 4312 xor ebp,ecx 4313 vpxor ymm7,ymm7,ymm8 4314 add eax,r12d 4315 xor ebp,edx 4316 add esi,DWORD[((-96))+r13] 4317 vpsrld ymm8,ymm7,30 4318 vpslld ymm7,ymm7,2 4319 lea esi,[rbp*1+rsi] 4320 rorx r12d,eax,27 4321 rorx ebp,eax,2 4322 xor eax,ebx 4323 add esi,r12d 4324 xor eax,ecx 4325 vpor ymm7,ymm7,ymm8 4326 add edx,DWORD[((-92))+r13] 4327 lea edx,[rax*1+rdx] 4328 rorx r12d,esi,27 4329 rorx eax,esi,2 4330 vpaddd ymm9,ymm7,ymm11 4331 xor esi,ebp 4332 add edx,r12d 4333 xor esi,ebx 4334 add ecx,DWORD[((-88))+r13] 4335 vmovdqu YMMWORD[480+rsp],ymm9 4336 lea ecx,[rsi*1+rcx] 4337 rorx r12d,edx,27 4338 rorx esi,edx,2 4339 xor edx,eax 4340 add ecx,r12d 4341 xor edx,ebp 4342 add ebx,DWORD[((-84))+r13] 4343 mov edi,esi 4344 xor edi,eax 4345 lea ebx,[rdx*1+rbx] 4346 rorx r12d,ecx,27 4347 rorx edx,ecx,2 4348 xor ecx,esi 4349 add ebx,r12d 4350 and ecx,edi 4351 jmp NEAR $L$align32_2 4352ALIGN 32 4353$L$align32_2: 4354 vpalignr ymm8,ymm7,ymm6,8 4355 vpxor ymm0,ymm0,ymm4 4356 add ebp,DWORD[((-64))+r13] 4357 xor ecx,esi 4358 vpxor ymm0,ymm0,ymm1 4359 mov edi,edx 4360 xor edi,esi 4361 lea ebp,[rbp*1+rcx] 4362 vpxor ymm0,ymm0,ymm8 4363 rorx r12d,ebx,27 4364 rorx ecx,ebx,2 4365 xor ebx,edx 4366 vpsrld ymm8,ymm0,30 4367 vpslld ymm0,ymm0,2 4368 add ebp,r12d 4369 and ebx,edi 4370 add eax,DWORD[((-60))+r13] 4371 xor ebx,edx 4372 mov edi,ecx 4373 xor edi,edx 4374 vpor ymm0,ymm0,ymm8 4375 lea eax,[rbx*1+rax] 4376 rorx r12d,ebp,27 4377 rorx ebx,ebp,2 4378 xor ebp,ecx 4379 vpaddd ymm9,ymm0,ymm11 4380 add eax,r12d 4381 and ebp,edi 4382 add esi,DWORD[((-56))+r13] 4383 xor ebp,ecx 4384 vmovdqu YMMWORD[512+rsp],ymm9 4385 mov edi,ebx 4386 xor edi,ecx 4387 lea esi,[rbp*1+rsi] 4388 rorx r12d,eax,27 4389 rorx ebp,eax,2 4390 xor eax,ebx 4391 add esi,r12d 4392 and eax,edi 4393 add edx,DWORD[((-52))+r13] 4394 xor eax,ebx 4395 mov edi,ebp 4396 xor edi,ebx 4397 lea edx,[rax*1+rdx] 4398 rorx r12d,esi,27 4399 rorx eax,esi,2 4400 xor esi,ebp 4401 add edx,r12d 4402 and esi,edi 4403 add ecx,DWORD[((-32))+r13] 4404 xor esi,ebp 4405 mov edi,eax 4406 xor edi,ebp 4407 lea ecx,[rsi*1+rcx] 4408 rorx r12d,edx,27 4409 rorx esi,edx,2 4410 xor edx,eax 4411 add ecx,r12d 4412 and edx,edi 4413 vpalignr ymm8,ymm0,ymm7,8 4414 vpxor ymm1,ymm1,ymm5 4415 add ebx,DWORD[((-28))+r13] 4416 xor edx,eax 4417 vpxor ymm1,ymm1,ymm2 4418 mov edi,esi 4419 xor edi,eax 4420 lea ebx,[rdx*1+rbx] 4421 vpxor ymm1,ymm1,ymm8 4422 rorx r12d,ecx,27 4423 rorx edx,ecx,2 4424 xor ecx,esi 4425 vpsrld ymm8,ymm1,30 4426 vpslld ymm1,ymm1,2 4427 add ebx,r12d 4428 and ecx,edi 4429 add ebp,DWORD[((-24))+r13] 4430 xor ecx,esi 4431 mov edi,edx 4432 xor edi,esi 4433 vpor ymm1,ymm1,ymm8 4434 lea ebp,[rbp*1+rcx] 4435 rorx r12d,ebx,27 4436 rorx ecx,ebx,2 4437 xor ebx,edx 4438 vpaddd ymm9,ymm1,ymm11 4439 add ebp,r12d 4440 and ebx,edi 4441 add eax,DWORD[((-20))+r13] 4442 xor ebx,edx 4443 vmovdqu YMMWORD[544+rsp],ymm9 4444 mov edi,ecx 4445 xor edi,edx 4446 lea eax,[rbx*1+rax] 4447 rorx r12d,ebp,27 4448 rorx ebx,ebp,2 4449 xor ebp,ecx 4450 add eax,r12d 4451 and ebp,edi 4452 add esi,DWORD[r13] 4453 xor ebp,ecx 4454 mov edi,ebx 4455 xor edi,ecx 4456 lea esi,[rbp*1+rsi] 4457 rorx r12d,eax,27 4458 rorx ebp,eax,2 4459 xor eax,ebx 4460 add esi,r12d 4461 and eax,edi 4462 add edx,DWORD[4+r13] 4463 xor eax,ebx 4464 mov edi,ebp 4465 xor edi,ebx 4466 lea edx,[rax*1+rdx] 4467 rorx r12d,esi,27 4468 rorx eax,esi,2 4469 xor esi,ebp 4470 add edx,r12d 4471 and esi,edi 4472 vpalignr ymm8,ymm1,ymm0,8 4473 vpxor ymm2,ymm2,ymm6 4474 add ecx,DWORD[8+r13] 4475 xor esi,ebp 4476 vpxor ymm2,ymm2,ymm3 4477 mov edi,eax 4478 xor edi,ebp 4479 lea ecx,[rsi*1+rcx] 4480 vpxor ymm2,ymm2,ymm8 4481 rorx r12d,edx,27 4482 rorx esi,edx,2 4483 xor edx,eax 4484 vpsrld ymm8,ymm2,30 4485 vpslld ymm2,ymm2,2 4486 add ecx,r12d 4487 and edx,edi 4488 add ebx,DWORD[12+r13] 4489 xor edx,eax 4490 mov edi,esi 4491 xor edi,eax 4492 vpor ymm2,ymm2,ymm8 4493 lea ebx,[rdx*1+rbx] 4494 rorx r12d,ecx,27 4495 rorx edx,ecx,2 4496 xor ecx,esi 4497 vpaddd ymm9,ymm2,ymm11 4498 add ebx,r12d 4499 and ecx,edi 4500 add ebp,DWORD[32+r13] 4501 xor ecx,esi 4502 vmovdqu YMMWORD[576+rsp],ymm9 4503 mov edi,edx 4504 xor edi,esi 4505 lea ebp,[rbp*1+rcx] 4506 rorx r12d,ebx,27 4507 rorx ecx,ebx,2 4508 xor ebx,edx 4509 add ebp,r12d 4510 and ebx,edi 4511 add eax,DWORD[36+r13] 4512 xor ebx,edx 4513 mov edi,ecx 4514 xor edi,edx 4515 lea eax,[rbx*1+rax] 4516 rorx r12d,ebp,27 4517 rorx ebx,ebp,2 4518 xor ebp,ecx 4519 add eax,r12d 4520 and ebp,edi 4521 add esi,DWORD[40+r13] 4522 xor ebp,ecx 4523 mov edi,ebx 4524 xor edi,ecx 4525 lea esi,[rbp*1+rsi] 4526 rorx r12d,eax,27 4527 rorx ebp,eax,2 4528 xor eax,ebx 4529 add esi,r12d 4530 and eax,edi 4531 vpalignr ymm8,ymm2,ymm1,8 4532 vpxor ymm3,ymm3,ymm7 4533 add edx,DWORD[44+r13] 4534 xor eax,ebx 4535 vpxor ymm3,ymm3,ymm4 4536 mov edi,ebp 4537 xor edi,ebx 4538 lea edx,[rax*1+rdx] 4539 vpxor ymm3,ymm3,ymm8 4540 rorx r12d,esi,27 4541 rorx eax,esi,2 4542 xor esi,ebp 4543 vpsrld ymm8,ymm3,30 4544 vpslld ymm3,ymm3,2 4545 add edx,r12d 4546 and esi,edi 4547 add ecx,DWORD[64+r13] 4548 xor esi,ebp 4549 mov edi,eax 4550 xor edi,ebp 4551 vpor ymm3,ymm3,ymm8 4552 lea ecx,[rsi*1+rcx] 4553 rorx r12d,edx,27 4554 rorx esi,edx,2 4555 xor edx,eax 4556 vpaddd ymm9,ymm3,ymm11 4557 add ecx,r12d 4558 and edx,edi 4559 add ebx,DWORD[68+r13] 4560 xor edx,eax 4561 vmovdqu YMMWORD[608+rsp],ymm9 4562 mov edi,esi 4563 xor edi,eax 4564 lea ebx,[rdx*1+rbx] 4565 rorx r12d,ecx,27 4566 rorx edx,ecx,2 4567 xor ecx,esi 4568 add ebx,r12d 4569 and ecx,edi 4570 add ebp,DWORD[72+r13] 4571 xor ecx,esi 4572 mov edi,edx 4573 xor edi,esi 4574 lea ebp,[rbp*1+rcx] 4575 rorx r12d,ebx,27 4576 rorx ecx,ebx,2 4577 xor ebx,edx 4578 add ebp,r12d 4579 and ebx,edi 4580 add eax,DWORD[76+r13] 4581 xor ebx,edx 4582 lea eax,[rbx*1+rax] 4583 rorx r12d,ebp,27 4584 rorx ebx,ebp,2 4585 xor ebp,ecx 4586 add eax,r12d 4587 xor ebp,edx 4588 add esi,DWORD[96+r13] 4589 lea esi,[rbp*1+rsi] 4590 rorx r12d,eax,27 4591 rorx ebp,eax,2 4592 xor eax,ebx 4593 add esi,r12d 4594 xor eax,ecx 4595 add edx,DWORD[100+r13] 4596 lea edx,[rax*1+rdx] 4597 rorx r12d,esi,27 4598 rorx eax,esi,2 4599 xor esi,ebp 4600 add edx,r12d 4601 xor esi,ebx 4602 add ecx,DWORD[104+r13] 4603 lea ecx,[rsi*1+rcx] 4604 rorx r12d,edx,27 4605 rorx esi,edx,2 4606 xor edx,eax 4607 add ecx,r12d 4608 xor edx,ebp 4609 add ebx,DWORD[108+r13] 4610 lea r13,[256+r13] 4611 lea ebx,[rdx*1+rbx] 4612 rorx r12d,ecx,27 4613 rorx edx,ecx,2 4614 xor ecx,esi 4615 add ebx,r12d 4616 xor ecx,eax 4617 add ebp,DWORD[((-128))+r13] 4618 lea ebp,[rbp*1+rcx] 4619 rorx r12d,ebx,27 4620 rorx ecx,ebx,2 4621 xor ebx,edx 4622 add ebp,r12d 4623 xor ebx,esi 4624 add eax,DWORD[((-124))+r13] 4625 lea eax,[rbx*1+rax] 4626 rorx r12d,ebp,27 4627 rorx ebx,ebp,2 4628 xor ebp,ecx 4629 add eax,r12d 4630 xor ebp,edx 4631 add esi,DWORD[((-120))+r13] 4632 lea esi,[rbp*1+rsi] 4633 rorx r12d,eax,27 4634 rorx ebp,eax,2 4635 xor eax,ebx 4636 add esi,r12d 4637 xor eax,ecx 4638 add edx,DWORD[((-116))+r13] 4639 lea edx,[rax*1+rdx] 4640 rorx r12d,esi,27 4641 rorx eax,esi,2 4642 xor esi,ebp 4643 add edx,r12d 4644 xor esi,ebx 4645 add ecx,DWORD[((-96))+r13] 4646 lea ecx,[rsi*1+rcx] 4647 rorx r12d,edx,27 4648 rorx esi,edx,2 4649 xor edx,eax 4650 add ecx,r12d 4651 xor edx,ebp 4652 add ebx,DWORD[((-92))+r13] 4653 lea ebx,[rdx*1+rbx] 4654 rorx r12d,ecx,27 4655 rorx edx,ecx,2 4656 xor ecx,esi 4657 add ebx,r12d 4658 xor ecx,eax 4659 add ebp,DWORD[((-88))+r13] 4660 lea ebp,[rbp*1+rcx] 4661 rorx r12d,ebx,27 4662 rorx ecx,ebx,2 4663 xor ebx,edx 4664 add ebp,r12d 4665 xor ebx,esi 4666 add eax,DWORD[((-84))+r13] 4667 lea eax,[rbx*1+rax] 4668 rorx r12d,ebp,27 4669 rorx ebx,ebp,2 4670 xor ebp,ecx 4671 add eax,r12d 4672 xor ebp,edx 4673 add esi,DWORD[((-64))+r13] 4674 lea esi,[rbp*1+rsi] 4675 rorx r12d,eax,27 4676 rorx ebp,eax,2 4677 xor eax,ebx 4678 add esi,r12d 4679 xor eax,ecx 4680 add edx,DWORD[((-60))+r13] 4681 lea edx,[rax*1+rdx] 4682 rorx r12d,esi,27 4683 rorx eax,esi,2 4684 xor esi,ebp 4685 add edx,r12d 4686 xor esi,ebx 4687 add ecx,DWORD[((-56))+r13] 4688 lea ecx,[rsi*1+rcx] 4689 rorx r12d,edx,27 4690 rorx esi,edx,2 4691 xor edx,eax 4692 add ecx,r12d 4693 xor edx,ebp 4694 add ebx,DWORD[((-52))+r13] 4695 lea ebx,[rdx*1+rbx] 4696 rorx r12d,ecx,27 4697 rorx edx,ecx,2 4698 xor ecx,esi 4699 add ebx,r12d 4700 xor ecx,eax 4701 add ebp,DWORD[((-32))+r13] 4702 lea ebp,[rbp*1+rcx] 4703 rorx r12d,ebx,27 4704 rorx ecx,ebx,2 4705 xor ebx,edx 4706 add ebp,r12d 4707 xor ebx,esi 4708 add eax,DWORD[((-28))+r13] 4709 lea eax,[rbx*1+rax] 4710 rorx r12d,ebp,27 4711 rorx ebx,ebp,2 4712 xor ebp,ecx 4713 add eax,r12d 4714 xor ebp,edx 4715 add esi,DWORD[((-24))+r13] 4716 lea esi,[rbp*1+rsi] 4717 rorx r12d,eax,27 4718 rorx ebp,eax,2 4719 xor eax,ebx 4720 add esi,r12d 4721 xor eax,ecx 4722 add edx,DWORD[((-20))+r13] 4723 lea edx,[rax*1+rdx] 4724 rorx r12d,esi,27 4725 add edx,r12d 4726 lea r13,[128+r9] 4727 lea rdi,[128+r9] 4728 cmp r13,r10 4729 cmovae r13,r9 4730 4731 4732 add edx,DWORD[r8] 4733 add esi,DWORD[4+r8] 4734 add ebp,DWORD[8+r8] 4735 mov DWORD[r8],edx 4736 add ebx,DWORD[12+r8] 4737 mov DWORD[4+r8],esi 4738 mov eax,edx 4739 add ecx,DWORD[16+r8] 4740 mov r12d,ebp 4741 mov DWORD[8+r8],ebp 4742 mov edx,ebx 4743 4744 mov DWORD[12+r8],ebx 4745 mov ebp,esi 4746 mov DWORD[16+r8],ecx 4747 4748 mov esi,ecx 4749 mov ecx,r12d 4750 4751 4752 cmp r9,r10 4753 je NEAR $L$done_avx2 4754 vmovdqu ymm6,YMMWORD[64+r14] 4755 cmp rdi,r10 4756 ja NEAR $L$ast_avx2 4757 4758 vmovdqu xmm0,XMMWORD[((-64))+rdi] 4759 vmovdqu xmm1,XMMWORD[((-48))+rdi] 4760 vmovdqu xmm2,XMMWORD[((-32))+rdi] 4761 vmovdqu xmm3,XMMWORD[((-16))+rdi] 4762 vinserti128 ymm0,ymm0,XMMWORD[r13],1 4763 vinserti128 ymm1,ymm1,XMMWORD[16+r13],1 4764 vinserti128 ymm2,ymm2,XMMWORD[32+r13],1 4765 vinserti128 ymm3,ymm3,XMMWORD[48+r13],1 4766 jmp NEAR $L$ast_avx2 4767 4768ALIGN 32 4769$L$ast_avx2: 4770 lea r13,[((128+16))+rsp] 4771 rorx ebx,ebp,2 4772 andn edi,ebp,edx 4773 and ebp,ecx 4774 xor ebp,edi 4775 sub r9,-128 4776 add esi,DWORD[((-128))+r13] 4777 andn edi,eax,ecx 4778 add esi,ebp 4779 rorx r12d,eax,27 4780 rorx ebp,eax,2 4781 and eax,ebx 4782 add esi,r12d 4783 xor eax,edi 4784 add edx,DWORD[((-124))+r13] 4785 andn edi,esi,ebx 4786 add edx,eax 4787 rorx r12d,esi,27 4788 rorx eax,esi,2 4789 and esi,ebp 4790 add edx,r12d 4791 xor esi,edi 4792 add ecx,DWORD[((-120))+r13] 4793 andn edi,edx,ebp 4794 add ecx,esi 4795 rorx r12d,edx,27 4796 rorx esi,edx,2 4797 and edx,eax 4798 add ecx,r12d 4799 xor edx,edi 4800 add ebx,DWORD[((-116))+r13] 4801 andn edi,ecx,eax 4802 add ebx,edx 4803 rorx r12d,ecx,27 4804 rorx edx,ecx,2 4805 and ecx,esi 4806 add ebx,r12d 4807 xor ecx,edi 4808 add ebp,DWORD[((-96))+r13] 4809 andn edi,ebx,esi 4810 add ebp,ecx 4811 rorx r12d,ebx,27 4812 rorx ecx,ebx,2 4813 and ebx,edx 4814 add ebp,r12d 4815 xor ebx,edi 4816 add eax,DWORD[((-92))+r13] 4817 andn edi,ebp,edx 4818 add eax,ebx 4819 rorx r12d,ebp,27 4820 rorx ebx,ebp,2 4821 and ebp,ecx 4822 add eax,r12d 4823 xor ebp,edi 4824 add esi,DWORD[((-88))+r13] 4825 andn edi,eax,ecx 4826 add esi,ebp 4827 rorx r12d,eax,27 4828 rorx ebp,eax,2 4829 and eax,ebx 4830 add esi,r12d 4831 xor eax,edi 4832 add edx,DWORD[((-84))+r13] 4833 andn edi,esi,ebx 4834 add edx,eax 4835 rorx r12d,esi,27 4836 rorx eax,esi,2 4837 and esi,ebp 4838 add edx,r12d 4839 xor esi,edi 4840 add ecx,DWORD[((-64))+r13] 4841 andn edi,edx,ebp 4842 add ecx,esi 4843 rorx r12d,edx,27 4844 rorx esi,edx,2 4845 and edx,eax 4846 add ecx,r12d 4847 xor edx,edi 4848 add ebx,DWORD[((-60))+r13] 4849 andn edi,ecx,eax 4850 add ebx,edx 4851 rorx r12d,ecx,27 4852 rorx edx,ecx,2 4853 and ecx,esi 4854 add ebx,r12d 4855 xor ecx,edi 4856 add ebp,DWORD[((-56))+r13] 4857 andn edi,ebx,esi 4858 add ebp,ecx 4859 rorx r12d,ebx,27 4860 rorx ecx,ebx,2 4861 and ebx,edx 4862 add ebp,r12d 4863 xor ebx,edi 4864 add eax,DWORD[((-52))+r13] 4865 andn edi,ebp,edx 4866 add eax,ebx 4867 rorx r12d,ebp,27 4868 rorx ebx,ebp,2 4869 and ebp,ecx 4870 add eax,r12d 4871 xor ebp,edi 4872 add esi,DWORD[((-32))+r13] 4873 andn edi,eax,ecx 4874 add esi,ebp 4875 rorx r12d,eax,27 4876 rorx ebp,eax,2 4877 and eax,ebx 4878 add esi,r12d 4879 xor eax,edi 4880 add edx,DWORD[((-28))+r13] 4881 andn edi,esi,ebx 4882 add edx,eax 4883 rorx r12d,esi,27 4884 rorx eax,esi,2 4885 and esi,ebp 4886 add edx,r12d 4887 xor esi,edi 4888 add ecx,DWORD[((-24))+r13] 4889 andn edi,edx,ebp 4890 add ecx,esi 4891 rorx r12d,edx,27 4892 rorx esi,edx,2 4893 and edx,eax 4894 add ecx,r12d 4895 xor edx,edi 4896 add ebx,DWORD[((-20))+r13] 4897 andn edi,ecx,eax 4898 add ebx,edx 4899 rorx r12d,ecx,27 4900 rorx edx,ecx,2 4901 and ecx,esi 4902 add ebx,r12d 4903 xor ecx,edi 4904 add ebp,DWORD[r13] 4905 andn edi,ebx,esi 4906 add ebp,ecx 4907 rorx r12d,ebx,27 4908 rorx ecx,ebx,2 4909 and ebx,edx 4910 add ebp,r12d 4911 xor ebx,edi 4912 add eax,DWORD[4+r13] 4913 andn edi,ebp,edx 4914 add eax,ebx 4915 rorx r12d,ebp,27 4916 rorx ebx,ebp,2 4917 and ebp,ecx 4918 add eax,r12d 4919 xor ebp,edi 4920 add esi,DWORD[8+r13] 4921 andn edi,eax,ecx 4922 add esi,ebp 4923 rorx r12d,eax,27 4924 rorx ebp,eax,2 4925 and eax,ebx 4926 add esi,r12d 4927 xor eax,edi 4928 add edx,DWORD[12+r13] 4929 lea edx,[rax*1+rdx] 4930 rorx r12d,esi,27 4931 rorx eax,esi,2 4932 xor esi,ebp 4933 add edx,r12d 4934 xor esi,ebx 4935 add ecx,DWORD[32+r13] 4936 lea ecx,[rsi*1+rcx] 4937 rorx r12d,edx,27 4938 rorx esi,edx,2 4939 xor edx,eax 4940 add ecx,r12d 4941 xor edx,ebp 4942 add ebx,DWORD[36+r13] 4943 lea ebx,[rdx*1+rbx] 4944 rorx r12d,ecx,27 4945 rorx edx,ecx,2 4946 xor ecx,esi 4947 add ebx,r12d 4948 xor ecx,eax 4949 add ebp,DWORD[40+r13] 4950 lea ebp,[rbp*1+rcx] 4951 rorx r12d,ebx,27 4952 rorx ecx,ebx,2 4953 xor ebx,edx 4954 add ebp,r12d 4955 xor ebx,esi 4956 add eax,DWORD[44+r13] 4957 lea eax,[rbx*1+rax] 4958 rorx r12d,ebp,27 4959 rorx ebx,ebp,2 4960 xor ebp,ecx 4961 add eax,r12d 4962 xor ebp,edx 4963 add esi,DWORD[64+r13] 4964 lea esi,[rbp*1+rsi] 4965 rorx r12d,eax,27 4966 rorx ebp,eax,2 4967 xor eax,ebx 4968 add esi,r12d 4969 xor eax,ecx 4970 vmovdqu ymm11,YMMWORD[((-64))+r14] 4971 vpshufb ymm0,ymm0,ymm6 4972 add edx,DWORD[68+r13] 4973 lea edx,[rax*1+rdx] 4974 rorx r12d,esi,27 4975 rorx eax,esi,2 4976 xor esi,ebp 4977 add edx,r12d 4978 xor esi,ebx 4979 add ecx,DWORD[72+r13] 4980 lea ecx,[rsi*1+rcx] 4981 rorx r12d,edx,27 4982 rorx esi,edx,2 4983 xor edx,eax 4984 add ecx,r12d 4985 xor edx,ebp 4986 add ebx,DWORD[76+r13] 4987 lea ebx,[rdx*1+rbx] 4988 rorx r12d,ecx,27 4989 rorx edx,ecx,2 4990 xor ecx,esi 4991 add ebx,r12d 4992 xor ecx,eax 4993 add ebp,DWORD[96+r13] 4994 lea ebp,[rbp*1+rcx] 4995 rorx r12d,ebx,27 4996 rorx ecx,ebx,2 4997 xor ebx,edx 4998 add ebp,r12d 4999 xor ebx,esi 5000 add eax,DWORD[100+r13] 5001 lea eax,[rbx*1+rax] 5002 rorx r12d,ebp,27 5003 rorx ebx,ebp,2 5004 xor ebp,ecx 5005 add eax,r12d 5006 xor ebp,edx 5007 vpshufb ymm1,ymm1,ymm6 5008 vpaddd ymm8,ymm0,ymm11 5009 add esi,DWORD[104+r13] 5010 lea esi,[rbp*1+rsi] 5011 rorx r12d,eax,27 5012 rorx ebp,eax,2 5013 xor eax,ebx 5014 add esi,r12d 5015 xor eax,ecx 5016 add edx,DWORD[108+r13] 5017 lea r13,[256+r13] 5018 lea edx,[rax*1+rdx] 5019 rorx r12d,esi,27 5020 rorx eax,esi,2 5021 xor esi,ebp 5022 add edx,r12d 5023 xor esi,ebx 5024 add ecx,DWORD[((-128))+r13] 5025 lea ecx,[rsi*1+rcx] 5026 rorx r12d,edx,27 5027 rorx esi,edx,2 5028 xor edx,eax 5029 add ecx,r12d 5030 xor edx,ebp 5031 add ebx,DWORD[((-124))+r13] 5032 lea ebx,[rdx*1+rbx] 5033 rorx r12d,ecx,27 5034 rorx edx,ecx,2 5035 xor ecx,esi 5036 add ebx,r12d 5037 xor ecx,eax 5038 add ebp,DWORD[((-120))+r13] 5039 lea ebp,[rbp*1+rcx] 5040 rorx r12d,ebx,27 5041 rorx ecx,ebx,2 5042 xor ebx,edx 5043 add ebp,r12d 5044 xor ebx,esi 5045 vmovdqu YMMWORD[rsp],ymm8 5046 vpshufb ymm2,ymm2,ymm6 5047 vpaddd ymm9,ymm1,ymm11 5048 add eax,DWORD[((-116))+r13] 5049 lea eax,[rbx*1+rax] 5050 rorx r12d,ebp,27 5051 rorx ebx,ebp,2 5052 xor ebp,ecx 5053 add eax,r12d 5054 xor ebp,edx 5055 add esi,DWORD[((-96))+r13] 5056 lea esi,[rbp*1+rsi] 5057 rorx r12d,eax,27 5058 rorx ebp,eax,2 5059 xor eax,ebx 5060 add esi,r12d 5061 xor eax,ecx 5062 add edx,DWORD[((-92))+r13] 5063 lea edx,[rax*1+rdx] 5064 rorx r12d,esi,27 5065 rorx eax,esi,2 5066 xor esi,ebp 5067 add edx,r12d 5068 xor esi,ebx 5069 add ecx,DWORD[((-88))+r13] 5070 lea ecx,[rsi*1+rcx] 5071 rorx r12d,edx,27 5072 rorx esi,edx,2 5073 xor edx,eax 5074 add ecx,r12d 5075 xor edx,ebp 5076 add ebx,DWORD[((-84))+r13] 5077 mov edi,esi 5078 xor edi,eax 5079 lea ebx,[rdx*1+rbx] 5080 rorx r12d,ecx,27 5081 rorx edx,ecx,2 5082 xor ecx,esi 5083 add ebx,r12d 5084 and ecx,edi 5085 vmovdqu YMMWORD[32+rsp],ymm9 5086 vpshufb ymm3,ymm3,ymm6 5087 vpaddd ymm6,ymm2,ymm11 5088 add ebp,DWORD[((-64))+r13] 5089 xor ecx,esi 5090 mov edi,edx 5091 xor edi,esi 5092 lea ebp,[rbp*1+rcx] 5093 rorx r12d,ebx,27 5094 rorx ecx,ebx,2 5095 xor ebx,edx 5096 add ebp,r12d 5097 and ebx,edi 5098 add eax,DWORD[((-60))+r13] 5099 xor ebx,edx 5100 mov edi,ecx 5101 xor edi,edx 5102 lea eax,[rbx*1+rax] 5103 rorx r12d,ebp,27 5104 rorx ebx,ebp,2 5105 xor ebp,ecx 5106 add eax,r12d 5107 and ebp,edi 5108 add esi,DWORD[((-56))+r13] 5109 xor ebp,ecx 5110 mov edi,ebx 5111 xor edi,ecx 5112 lea esi,[rbp*1+rsi] 5113 rorx r12d,eax,27 5114 rorx ebp,eax,2 5115 xor eax,ebx 5116 add esi,r12d 5117 and eax,edi 5118 add edx,DWORD[((-52))+r13] 5119 xor eax,ebx 5120 mov edi,ebp 5121 xor edi,ebx 5122 lea edx,[rax*1+rdx] 5123 rorx r12d,esi,27 5124 rorx eax,esi,2 5125 xor esi,ebp 5126 add edx,r12d 5127 and esi,edi 5128 add ecx,DWORD[((-32))+r13] 5129 xor esi,ebp 5130 mov edi,eax 5131 xor edi,ebp 5132 lea ecx,[rsi*1+rcx] 5133 rorx r12d,edx,27 5134 rorx esi,edx,2 5135 xor edx,eax 5136 add ecx,r12d 5137 and edx,edi 5138 jmp NEAR $L$align32_3 5139ALIGN 32 5140$L$align32_3: 5141 vmovdqu YMMWORD[64+rsp],ymm6 5142 vpaddd ymm7,ymm3,ymm11 5143 add ebx,DWORD[((-28))+r13] 5144 xor edx,eax 5145 mov edi,esi 5146 xor edi,eax 5147 lea ebx,[rdx*1+rbx] 5148 rorx r12d,ecx,27 5149 rorx edx,ecx,2 5150 xor ecx,esi 5151 add ebx,r12d 5152 and ecx,edi 5153 add ebp,DWORD[((-24))+r13] 5154 xor ecx,esi 5155 mov edi,edx 5156 xor edi,esi 5157 lea ebp,[rbp*1+rcx] 5158 rorx r12d,ebx,27 5159 rorx ecx,ebx,2 5160 xor ebx,edx 5161 add ebp,r12d 5162 and ebx,edi 5163 add eax,DWORD[((-20))+r13] 5164 xor ebx,edx 5165 mov edi,ecx 5166 xor edi,edx 5167 lea eax,[rbx*1+rax] 5168 rorx r12d,ebp,27 5169 rorx ebx,ebp,2 5170 xor ebp,ecx 5171 add eax,r12d 5172 and ebp,edi 5173 add esi,DWORD[r13] 5174 xor ebp,ecx 5175 mov edi,ebx 5176 xor edi,ecx 5177 lea esi,[rbp*1+rsi] 5178 rorx r12d,eax,27 5179 rorx ebp,eax,2 5180 xor eax,ebx 5181 add esi,r12d 5182 and eax,edi 5183 add edx,DWORD[4+r13] 5184 xor eax,ebx 5185 mov edi,ebp 5186 xor edi,ebx 5187 lea edx,[rax*1+rdx] 5188 rorx r12d,esi,27 5189 rorx eax,esi,2 5190 xor esi,ebp 5191 add edx,r12d 5192 and esi,edi 5193 vmovdqu YMMWORD[96+rsp],ymm7 5194 add ecx,DWORD[8+r13] 5195 xor esi,ebp 5196 mov edi,eax 5197 xor edi,ebp 5198 lea ecx,[rsi*1+rcx] 5199 rorx r12d,edx,27 5200 rorx esi,edx,2 5201 xor edx,eax 5202 add ecx,r12d 5203 and edx,edi 5204 add ebx,DWORD[12+r13] 5205 xor edx,eax 5206 mov edi,esi 5207 xor edi,eax 5208 lea ebx,[rdx*1+rbx] 5209 rorx r12d,ecx,27 5210 rorx edx,ecx,2 5211 xor ecx,esi 5212 add ebx,r12d 5213 and ecx,edi 5214 add ebp,DWORD[32+r13] 5215 xor ecx,esi 5216 mov edi,edx 5217 xor edi,esi 5218 lea ebp,[rbp*1+rcx] 5219 rorx r12d,ebx,27 5220 rorx ecx,ebx,2 5221 xor ebx,edx 5222 add ebp,r12d 5223 and ebx,edi 5224 add eax,DWORD[36+r13] 5225 xor ebx,edx 5226 mov edi,ecx 5227 xor edi,edx 5228 lea eax,[rbx*1+rax] 5229 rorx r12d,ebp,27 5230 rorx ebx,ebp,2 5231 xor ebp,ecx 5232 add eax,r12d 5233 and ebp,edi 5234 add esi,DWORD[40+r13] 5235 xor ebp,ecx 5236 mov edi,ebx 5237 xor edi,ecx 5238 lea esi,[rbp*1+rsi] 5239 rorx r12d,eax,27 5240 rorx ebp,eax,2 5241 xor eax,ebx 5242 add esi,r12d 5243 and eax,edi 5244 vpalignr ymm4,ymm1,ymm0,8 5245 add edx,DWORD[44+r13] 5246 xor eax,ebx 5247 mov edi,ebp 5248 xor edi,ebx 5249 vpsrldq ymm8,ymm3,4 5250 lea edx,[rax*1+rdx] 5251 rorx r12d,esi,27 5252 rorx eax,esi,2 5253 vpxor ymm4,ymm4,ymm0 5254 vpxor ymm8,ymm8,ymm2 5255 xor esi,ebp 5256 add edx,r12d 5257 vpxor ymm4,ymm4,ymm8 5258 and esi,edi 5259 add ecx,DWORD[64+r13] 5260 xor esi,ebp 5261 mov edi,eax 5262 vpsrld ymm8,ymm4,31 5263 xor edi,ebp 5264 lea ecx,[rsi*1+rcx] 5265 rorx r12d,edx,27 5266 vpslldq ymm10,ymm4,12 5267 vpaddd ymm4,ymm4,ymm4 5268 rorx esi,edx,2 5269 xor edx,eax 5270 vpsrld ymm9,ymm10,30 5271 vpor ymm4,ymm4,ymm8 5272 add ecx,r12d 5273 and edx,edi 5274 vpslld ymm10,ymm10,2 5275 vpxor ymm4,ymm4,ymm9 5276 add ebx,DWORD[68+r13] 5277 xor edx,eax 5278 vpxor ymm4,ymm4,ymm10 5279 mov edi,esi 5280 xor edi,eax 5281 lea ebx,[rdx*1+rbx] 5282 vpaddd ymm9,ymm4,ymm11 5283 rorx r12d,ecx,27 5284 rorx edx,ecx,2 5285 xor ecx,esi 5286 vmovdqu YMMWORD[128+rsp],ymm9 5287 add ebx,r12d 5288 and ecx,edi 5289 add ebp,DWORD[72+r13] 5290 xor ecx,esi 5291 mov edi,edx 5292 xor edi,esi 5293 lea ebp,[rbp*1+rcx] 5294 rorx r12d,ebx,27 5295 rorx ecx,ebx,2 5296 xor ebx,edx 5297 add ebp,r12d 5298 and ebx,edi 5299 add eax,DWORD[76+r13] 5300 xor ebx,edx 5301 lea eax,[rbx*1+rax] 5302 rorx r12d,ebp,27 5303 rorx ebx,ebp,2 5304 xor ebp,ecx 5305 add eax,r12d 5306 xor ebp,edx 5307 vpalignr ymm5,ymm2,ymm1,8 5308 add esi,DWORD[96+r13] 5309 lea esi,[rbp*1+rsi] 5310 rorx r12d,eax,27 5311 rorx ebp,eax,2 5312 vpsrldq ymm8,ymm4,4 5313 xor eax,ebx 5314 add esi,r12d 5315 xor eax,ecx 5316 vpxor ymm5,ymm5,ymm1 5317 vpxor ymm8,ymm8,ymm3 5318 add edx,DWORD[100+r13] 5319 lea edx,[rax*1+rdx] 5320 vpxor ymm5,ymm5,ymm8 5321 rorx r12d,esi,27 5322 rorx eax,esi,2 5323 xor esi,ebp 5324 add edx,r12d 5325 vpsrld ymm8,ymm5,31 5326 vmovdqu ymm11,YMMWORD[((-32))+r14] 5327 xor esi,ebx 5328 add ecx,DWORD[104+r13] 5329 lea ecx,[rsi*1+rcx] 5330 vpslldq ymm10,ymm5,12 5331 vpaddd ymm5,ymm5,ymm5 5332 rorx r12d,edx,27 5333 rorx esi,edx,2 5334 vpsrld ymm9,ymm10,30 5335 vpor ymm5,ymm5,ymm8 5336 xor edx,eax 5337 add ecx,r12d 5338 vpslld ymm10,ymm10,2 5339 vpxor ymm5,ymm5,ymm9 5340 xor edx,ebp 5341 add ebx,DWORD[108+r13] 5342 lea r13,[256+r13] 5343 vpxor ymm5,ymm5,ymm10 5344 lea ebx,[rdx*1+rbx] 5345 rorx r12d,ecx,27 5346 rorx edx,ecx,2 5347 vpaddd ymm9,ymm5,ymm11 5348 xor ecx,esi 5349 add ebx,r12d 5350 xor ecx,eax 5351 vmovdqu YMMWORD[160+rsp],ymm9 5352 add ebp,DWORD[((-128))+r13] 5353 lea ebp,[rbp*1+rcx] 5354 rorx r12d,ebx,27 5355 rorx ecx,ebx,2 5356 xor ebx,edx 5357 add ebp,r12d 5358 xor ebx,esi 5359 vpalignr ymm6,ymm3,ymm2,8 5360 add eax,DWORD[((-124))+r13] 5361 lea eax,[rbx*1+rax] 5362 rorx r12d,ebp,27 5363 rorx ebx,ebp,2 5364 vpsrldq ymm8,ymm5,4 5365 xor ebp,ecx 5366 add eax,r12d 5367 xor ebp,edx 5368 vpxor ymm6,ymm6,ymm2 5369 vpxor ymm8,ymm8,ymm4 5370 add esi,DWORD[((-120))+r13] 5371 lea esi,[rbp*1+rsi] 5372 vpxor ymm6,ymm6,ymm8 5373 rorx r12d,eax,27 5374 rorx ebp,eax,2 5375 xor eax,ebx 5376 add esi,r12d 5377 vpsrld ymm8,ymm6,31 5378 xor eax,ecx 5379 add edx,DWORD[((-116))+r13] 5380 lea edx,[rax*1+rdx] 5381 vpslldq ymm10,ymm6,12 5382 vpaddd ymm6,ymm6,ymm6 5383 rorx r12d,esi,27 5384 rorx eax,esi,2 5385 vpsrld ymm9,ymm10,30 5386 vpor ymm6,ymm6,ymm8 5387 xor esi,ebp 5388 add edx,r12d 5389 vpslld ymm10,ymm10,2 5390 vpxor ymm6,ymm6,ymm9 5391 xor esi,ebx 5392 add ecx,DWORD[((-96))+r13] 5393 vpxor ymm6,ymm6,ymm10 5394 lea ecx,[rsi*1+rcx] 5395 rorx r12d,edx,27 5396 rorx esi,edx,2 5397 vpaddd ymm9,ymm6,ymm11 5398 xor edx,eax 5399 add ecx,r12d 5400 xor edx,ebp 5401 vmovdqu YMMWORD[192+rsp],ymm9 5402 add ebx,DWORD[((-92))+r13] 5403 lea ebx,[rdx*1+rbx] 5404 rorx r12d,ecx,27 5405 rorx edx,ecx,2 5406 xor ecx,esi 5407 add ebx,r12d 5408 xor ecx,eax 5409 vpalignr ymm7,ymm4,ymm3,8 5410 add ebp,DWORD[((-88))+r13] 5411 lea ebp,[rbp*1+rcx] 5412 rorx r12d,ebx,27 5413 rorx ecx,ebx,2 5414 vpsrldq ymm8,ymm6,4 5415 xor ebx,edx 5416 add ebp,r12d 5417 xor ebx,esi 5418 vpxor ymm7,ymm7,ymm3 5419 vpxor ymm8,ymm8,ymm5 5420 add eax,DWORD[((-84))+r13] 5421 lea eax,[rbx*1+rax] 5422 vpxor ymm7,ymm7,ymm8 5423 rorx r12d,ebp,27 5424 rorx ebx,ebp,2 5425 xor ebp,ecx 5426 add eax,r12d 5427 vpsrld ymm8,ymm7,31 5428 xor ebp,edx 5429 add esi,DWORD[((-64))+r13] 5430 lea esi,[rbp*1+rsi] 5431 vpslldq ymm10,ymm7,12 5432 vpaddd ymm7,ymm7,ymm7 5433 rorx r12d,eax,27 5434 rorx ebp,eax,2 5435 vpsrld ymm9,ymm10,30 5436 vpor ymm7,ymm7,ymm8 5437 xor eax,ebx 5438 add esi,r12d 5439 vpslld ymm10,ymm10,2 5440 vpxor ymm7,ymm7,ymm9 5441 xor eax,ecx 5442 add edx,DWORD[((-60))+r13] 5443 vpxor ymm7,ymm7,ymm10 5444 lea edx,[rax*1+rdx] 5445 rorx r12d,esi,27 5446 rorx eax,esi,2 5447 vpaddd ymm9,ymm7,ymm11 5448 xor esi,ebp 5449 add edx,r12d 5450 xor esi,ebx 5451 vmovdqu YMMWORD[224+rsp],ymm9 5452 add ecx,DWORD[((-56))+r13] 5453 lea ecx,[rsi*1+rcx] 5454 rorx r12d,edx,27 5455 rorx esi,edx,2 5456 xor edx,eax 5457 add ecx,r12d 5458 xor edx,ebp 5459 add ebx,DWORD[((-52))+r13] 5460 lea ebx,[rdx*1+rbx] 5461 rorx r12d,ecx,27 5462 rorx edx,ecx,2 5463 xor ecx,esi 5464 add ebx,r12d 5465 xor ecx,eax 5466 add ebp,DWORD[((-32))+r13] 5467 lea ebp,[rbp*1+rcx] 5468 rorx r12d,ebx,27 5469 rorx ecx,ebx,2 5470 xor ebx,edx 5471 add ebp,r12d 5472 xor ebx,esi 5473 add eax,DWORD[((-28))+r13] 5474 lea eax,[rbx*1+rax] 5475 rorx r12d,ebp,27 5476 rorx ebx,ebp,2 5477 xor ebp,ecx 5478 add eax,r12d 5479 xor ebp,edx 5480 add esi,DWORD[((-24))+r13] 5481 lea esi,[rbp*1+rsi] 5482 rorx r12d,eax,27 5483 rorx ebp,eax,2 5484 xor eax,ebx 5485 add esi,r12d 5486 xor eax,ecx 5487 add edx,DWORD[((-20))+r13] 5488 lea edx,[rax*1+rdx] 5489 rorx r12d,esi,27 5490 add edx,r12d 5491 lea r13,[128+rsp] 5492 5493 5494 add edx,DWORD[r8] 5495 add esi,DWORD[4+r8] 5496 add ebp,DWORD[8+r8] 5497 mov DWORD[r8],edx 5498 add ebx,DWORD[12+r8] 5499 mov DWORD[4+r8],esi 5500 mov eax,edx 5501 add ecx,DWORD[16+r8] 5502 mov r12d,ebp 5503 mov DWORD[8+r8],ebp 5504 mov edx,ebx 5505 5506 mov DWORD[12+r8],ebx 5507 mov ebp,esi 5508 mov DWORD[16+r8],ecx 5509 5510 mov esi,ecx 5511 mov ecx,r12d 5512 5513 5514 cmp r9,r10 5515 jbe NEAR $L$oop_avx2 5516 5517$L$done_avx2: 5518 vzeroupper 5519 movaps xmm6,XMMWORD[((-40-96))+r11] 5520 movaps xmm7,XMMWORD[((-40-80))+r11] 5521 movaps xmm8,XMMWORD[((-40-64))+r11] 5522 movaps xmm9,XMMWORD[((-40-48))+r11] 5523 movaps xmm10,XMMWORD[((-40-32))+r11] 5524 movaps xmm11,XMMWORD[((-40-16))+r11] 5525 mov r14,QWORD[((-40))+r11] 5526 5527 mov r13,QWORD[((-32))+r11] 5528 5529 mov r12,QWORD[((-24))+r11] 5530 5531 mov rbp,QWORD[((-16))+r11] 5532 5533 mov rbx,QWORD[((-8))+r11] 5534 5535 lea rsp,[r11] 5536 5537$L$epilogue_avx2: 5538 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 5539 mov rsi,QWORD[16+rsp] 5540 ret 5541 5542$L$SEH_end_sha1_block_data_order_avx2: 5543section .rdata rdata align=8 5544ALIGN 64 5545K_XX_XX: 5546 DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 5547 DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999 5548 DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 5549 DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 5550 DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc 5551 DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc 5552 DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 5553 DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 5554 DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f 5555 DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f 5556 DB 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 5557 DB 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115 5558 DB 102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44 5559 DB 32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60 5560 DB 97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114 5561 DB 103,62,0 5562ALIGN 64 5563section .text 5564 5565EXTERN __imp_RtlVirtualUnwind 5566 5567ALIGN 16 5568se_handler: 5569 push rsi 5570 push rdi 5571 push rbx 5572 push rbp 5573 push r12 5574 push r13 5575 push r14 5576 push r15 5577 pushfq 5578 sub rsp,64 5579 5580 mov rax,QWORD[120+r8] 5581 mov rbx,QWORD[248+r8] 5582 5583 lea r10,[$L$prologue] 5584 cmp rbx,r10 5585 jb NEAR $L$common_seh_tail 5586 5587 mov rax,QWORD[152+r8] 5588 5589 lea r10,[$L$epilogue] 5590 cmp rbx,r10 5591 jae NEAR $L$common_seh_tail 5592 5593 mov rax,QWORD[64+rax] 5594 5595 mov rbx,QWORD[((-8))+rax] 5596 mov rbp,QWORD[((-16))+rax] 5597 mov r12,QWORD[((-24))+rax] 5598 mov r13,QWORD[((-32))+rax] 5599 mov r14,QWORD[((-40))+rax] 5600 mov QWORD[144+r8],rbx 5601 mov QWORD[160+r8],rbp 5602 mov QWORD[216+r8],r12 5603 mov QWORD[224+r8],r13 5604 mov QWORD[232+r8],r14 5605 5606 jmp NEAR $L$common_seh_tail 5607 5608 5609ALIGN 16 5610shaext_handler: 5611 push rsi 5612 push rdi 5613 push rbx 5614 push rbp 5615 push r12 5616 push r13 5617 push r14 5618 push r15 5619 pushfq 5620 sub rsp,64 5621 5622 mov rax,QWORD[120+r8] 5623 mov rbx,QWORD[248+r8] 5624 5625 lea r10,[$L$prologue_shaext] 5626 cmp rbx,r10 5627 jb NEAR $L$common_seh_tail 5628 5629 lea r10,[$L$epilogue_shaext] 5630 cmp rbx,r10 5631 jae NEAR $L$common_seh_tail 5632 5633 lea rsi,[((-8-64))+rax] 5634 lea rdi,[512+r8] 5635 mov ecx,8 5636 DD 0xa548f3fc 5637 5638 jmp NEAR $L$common_seh_tail 5639 5640 5641ALIGN 16 5642ssse3_handler: 5643 push rsi 5644 push rdi 5645 push rbx 5646 push rbp 5647 push r12 5648 push r13 5649 push r14 5650 push r15 5651 pushfq 5652 sub rsp,64 5653 5654 mov rax,QWORD[120+r8] 5655 mov rbx,QWORD[248+r8] 5656 5657 mov rsi,QWORD[8+r9] 5658 mov r11,QWORD[56+r9] 5659 5660 mov r10d,DWORD[r11] 5661 lea r10,[r10*1+rsi] 5662 cmp rbx,r10 5663 jb NEAR $L$common_seh_tail 5664 5665 mov rax,QWORD[208+r8] 5666 5667 mov r10d,DWORD[4+r11] 5668 lea r10,[r10*1+rsi] 5669 cmp rbx,r10 5670 jae NEAR $L$common_seh_tail 5671 5672 lea rsi,[((-40-96))+rax] 5673 lea rdi,[512+r8] 5674 mov ecx,12 5675 DD 0xa548f3fc 5676 5677 mov rbx,QWORD[((-8))+rax] 5678 mov rbp,QWORD[((-16))+rax] 5679 mov r12,QWORD[((-24))+rax] 5680 mov r13,QWORD[((-32))+rax] 5681 mov r14,QWORD[((-40))+rax] 5682 mov QWORD[144+r8],rbx 5683 mov QWORD[160+r8],rbp 5684 mov QWORD[216+r8],r12 5685 mov QWORD[224+r8],r13 5686 mov QWORD[232+r8],r14 5687 5688$L$common_seh_tail: 5689 mov rdi,QWORD[8+rax] 5690 mov rsi,QWORD[16+rax] 5691 mov QWORD[152+r8],rax 5692 mov QWORD[168+r8],rsi 5693 mov QWORD[176+r8],rdi 5694 5695 mov rdi,QWORD[40+r9] 5696 mov rsi,r8 5697 mov ecx,154 5698 DD 0xa548f3fc 5699 5700 mov rsi,r9 5701 xor rcx,rcx 5702 mov rdx,QWORD[8+rsi] 5703 mov r8,QWORD[rsi] 5704 mov r9,QWORD[16+rsi] 5705 mov r10,QWORD[40+rsi] 5706 lea r11,[56+rsi] 5707 lea r12,[24+rsi] 5708 mov QWORD[32+rsp],r10 5709 mov QWORD[40+rsp],r11 5710 mov QWORD[48+rsp],r12 5711 mov QWORD[56+rsp],rcx 5712 call QWORD[__imp_RtlVirtualUnwind] 5713 5714 mov eax,1 5715 add rsp,64 5716 popfq 5717 pop r15 5718 pop r14 5719 pop r13 5720 pop r12 5721 pop rbp 5722 pop rbx 5723 pop rdi 5724 pop rsi 5725 ret 5726 5727 5728section .pdata rdata align=4 5729ALIGN 4 5730 DD $L$SEH_begin_sha1_block_data_order_nohw wrt ..imagebase 5731 DD $L$SEH_end_sha1_block_data_order_nohw wrt ..imagebase 5732 DD $L$SEH_info_sha1_block_data_order_nohw wrt ..imagebase 5733 DD $L$SEH_begin_sha1_block_data_order_hw wrt ..imagebase 5734 DD $L$SEH_end_sha1_block_data_order_hw wrt ..imagebase 5735 DD $L$SEH_info_sha1_block_data_order_hw wrt ..imagebase 5736 DD $L$SEH_begin_sha1_block_data_order_ssse3 wrt ..imagebase 5737 DD $L$SEH_end_sha1_block_data_order_ssse3 wrt ..imagebase 5738 DD $L$SEH_info_sha1_block_data_order_ssse3 wrt ..imagebase 5739 DD $L$SEH_begin_sha1_block_data_order_avx wrt ..imagebase 5740 DD $L$SEH_end_sha1_block_data_order_avx wrt ..imagebase 5741 DD $L$SEH_info_sha1_block_data_order_avx wrt ..imagebase 5742 DD $L$SEH_begin_sha1_block_data_order_avx2 wrt ..imagebase 5743 DD $L$SEH_end_sha1_block_data_order_avx2 wrt ..imagebase 5744 DD $L$SEH_info_sha1_block_data_order_avx2 wrt ..imagebase 5745section .xdata rdata align=8 5746ALIGN 8 5747$L$SEH_info_sha1_block_data_order_nohw: 5748 DB 9,0,0,0 5749 DD se_handler wrt ..imagebase 5750$L$SEH_info_sha1_block_data_order_hw: 5751 DB 9,0,0,0 5752 DD shaext_handler wrt ..imagebase 5753$L$SEH_info_sha1_block_data_order_ssse3: 5754 DB 9,0,0,0 5755 DD ssse3_handler wrt ..imagebase 5756 DD $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase 5757$L$SEH_info_sha1_block_data_order_avx: 5758 DB 9,0,0,0 5759 DD ssse3_handler wrt ..imagebase 5760 DD $L$prologue_avx wrt ..imagebase,$L$epilogue_avx wrt ..imagebase 5761$L$SEH_info_sha1_block_data_order_avx2: 5762 DB 9,0,0,0 5763 DD ssse3_handler wrt ..imagebase 5764 DD $L$prologue_avx2 wrt ..imagebase,$L$epilogue_avx2 wrt ..imagebase 5765%else 5766; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738 5767ret 5768%endif 5769