1; 1 "crypto/rc4/rc4-md5-masm-x86_64.S.tmp" 2; 1 "<built-in>" 1 3; 1 "<built-in>" 3 4; 340 "<built-in>" 3 5; 1 "<command line>" 1 6; 1 "<built-in>" 2 7; 1 "crypto/rc4/rc4-md5-masm-x86_64.S.tmp" 2 8OPTION DOTNAME 9 10; 1 "./crypto/x86_arch.h" 1 11 12 13; 16 "./crypto/x86_arch.h" 14 15 16 17 18 19 20 21 22 23; 40 "./crypto/x86_arch.h" 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69; 3 "crypto/rc4/rc4-md5-masm-x86_64.S.tmp" 2 70.text$ SEGMENT ALIGN(64) 'CODE' 71ALIGN 16 72 73PUBLIC rc4_md5_enc 74 75rc4_md5_enc PROC PUBLIC 76 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue 77 mov QWORD PTR[16+rsp],rsi 78 mov rax,rsp 79$L$SEH_begin_rc4_md5_enc:: 80 mov rdi,rcx 81 mov rsi,rdx 82 mov rdx,r8 83 mov rcx,r9 84 mov r8,QWORD PTR[40+rsp] 85 mov r9,QWORD PTR[48+rsp] 86 87 88 cmp r9,0 89 je $L$abort 90 push rbx 91 push rbp 92 push r12 93 push r13 94 push r14 95 push r15 96 sub rsp,40 97$L$body:: 98 mov r11,rcx 99 mov r12,r9 100 mov r13,rsi 101 mov r14,rdx 102 mov r15,r8 103 xor rbp,rbp 104 xor rcx,rcx 105 106 lea rdi,QWORD PTR[8+rdi] 107 mov bpl,BYTE PTR[((-8))+rdi] 108 mov cl,BYTE PTR[((-4))+rdi] 109 110 inc bpl 111 sub r14,r13 112 mov eax,DWORD PTR[rbp*4+rdi] 113 add cl,al 114 lea rsi,QWORD PTR[rbp*4+rdi] 115 shl r12,6 116 add r12,r15 117 mov QWORD PTR[16+rsp],r12 118 119 mov QWORD PTR[24+rsp],r11 120 mov r8d,DWORD PTR[r11] 121 mov r9d,DWORD PTR[4+r11] 122 mov r10d,DWORD PTR[8+r11] 123 mov r11d,DWORD PTR[12+r11] 124 jmp $L$oop 125 126ALIGN 16 127$L$oop:: 128 mov DWORD PTR[rsp],r8d 129 mov DWORD PTR[4+rsp],r9d 130 mov DWORD PTR[8+rsp],r10d 131 mov r12d,r11d 132 mov DWORD PTR[12+rsp],r11d 133 pxor xmm0,xmm0 134 mov edx,DWORD PTR[rcx*4+rdi] 135 xor r12d,r10d 136 mov DWORD PTR[rcx*4+rdi],eax 137 and r12d,r9d 138 add r8d,DWORD PTR[r15] 139 add al,dl 140 mov ebx,DWORD PTR[4+rsi] 141 add r8d,3614090360 142 xor r12d,r11d 143 movzx eax,al 144 mov DWORD PTR[rsi],edx 145 add r8d,r12d 146 add cl,bl 147 rol r8d,7 148 mov r12d,r10d 149 movd xmm0,DWORD PTR[rax*4+rdi] 150 151 add r8d,r9d 152 pxor xmm1,xmm1 153 mov edx,DWORD PTR[rcx*4+rdi] 154 xor r12d,r9d 155 mov DWORD PTR[rcx*4+rdi],ebx 156 and r12d,r8d 157 add r11d,DWORD PTR[4+r15] 158 add bl,dl 159 mov eax,DWORD PTR[8+rsi] 160 add r11d,3905402710 161 xor r12d,r10d 162 movzx ebx,bl 163 mov DWORD PTR[4+rsi],edx 164 add r11d,r12d 165 add cl,al 166 rol r11d,12 167 mov r12d,r9d 168 movd xmm1,DWORD PTR[rbx*4+rdi] 169 170 add r11d,r8d 171 mov edx,DWORD PTR[rcx*4+rdi] 172 xor r12d,r8d 173 mov DWORD PTR[rcx*4+rdi],eax 174 and r12d,r11d 175 add r10d,DWORD PTR[8+r15] 176 add al,dl 177 mov ebx,DWORD PTR[12+rsi] 178 add r10d,606105819 179 xor r12d,r9d 180 movzx eax,al 181 mov DWORD PTR[8+rsi],edx 182 add r10d,r12d 183 add cl,bl 184 rol r10d,17 185 mov r12d,r8d 186 pinsrw xmm0,WORD PTR[rax*4+rdi],1 187 188 add r10d,r11d 189 mov edx,DWORD PTR[rcx*4+rdi] 190 xor r12d,r11d 191 mov DWORD PTR[rcx*4+rdi],ebx 192 and r12d,r10d 193 add r9d,DWORD PTR[12+r15] 194 add bl,dl 195 mov eax,DWORD PTR[16+rsi] 196 add r9d,3250441966 197 xor r12d,r8d 198 movzx ebx,bl 199 mov DWORD PTR[12+rsi],edx 200 add r9d,r12d 201 add cl,al 202 rol r9d,22 203 mov r12d,r11d 204 pinsrw xmm1,WORD PTR[rbx*4+rdi],1 205 206 add r9d,r10d 207 mov edx,DWORD PTR[rcx*4+rdi] 208 xor r12d,r10d 209 mov DWORD PTR[rcx*4+rdi],eax 210 and r12d,r9d 211 add r8d,DWORD PTR[16+r15] 212 add al,dl 213 mov ebx,DWORD PTR[20+rsi] 214 add r8d,4118548399 215 xor r12d,r11d 216 movzx eax,al 217 mov DWORD PTR[16+rsi],edx 218 add r8d,r12d 219 add cl,bl 220 rol r8d,7 221 mov r12d,r10d 222 pinsrw xmm0,WORD PTR[rax*4+rdi],2 223 224 add r8d,r9d 225 mov edx,DWORD PTR[rcx*4+rdi] 226 xor r12d,r9d 227 mov DWORD PTR[rcx*4+rdi],ebx 228 and r12d,r8d 229 add r11d,DWORD PTR[20+r15] 230 add bl,dl 231 mov eax,DWORD PTR[24+rsi] 232 add r11d,1200080426 233 xor r12d,r10d 234 movzx ebx,bl 235 mov DWORD PTR[20+rsi],edx 236 add r11d,r12d 237 add cl,al 238 rol r11d,12 239 mov r12d,r9d 240 pinsrw xmm1,WORD PTR[rbx*4+rdi],2 241 242 add r11d,r8d 243 mov edx,DWORD PTR[rcx*4+rdi] 244 xor r12d,r8d 245 mov DWORD PTR[rcx*4+rdi],eax 246 and r12d,r11d 247 add r10d,DWORD PTR[24+r15] 248 add al,dl 249 mov ebx,DWORD PTR[28+rsi] 250 add r10d,2821735955 251 xor r12d,r9d 252 movzx eax,al 253 mov DWORD PTR[24+rsi],edx 254 add r10d,r12d 255 add cl,bl 256 rol r10d,17 257 mov r12d,r8d 258 pinsrw xmm0,WORD PTR[rax*4+rdi],3 259 260 add r10d,r11d 261 mov edx,DWORD PTR[rcx*4+rdi] 262 xor r12d,r11d 263 mov DWORD PTR[rcx*4+rdi],ebx 264 and r12d,r10d 265 add r9d,DWORD PTR[28+r15] 266 add bl,dl 267 mov eax,DWORD PTR[32+rsi] 268 add r9d,4249261313 269 xor r12d,r8d 270 movzx ebx,bl 271 mov DWORD PTR[28+rsi],edx 272 add r9d,r12d 273 add cl,al 274 rol r9d,22 275 mov r12d,r11d 276 pinsrw xmm1,WORD PTR[rbx*4+rdi],3 277 278 add r9d,r10d 279 mov edx,DWORD PTR[rcx*4+rdi] 280 xor r12d,r10d 281 mov DWORD PTR[rcx*4+rdi],eax 282 and r12d,r9d 283 add r8d,DWORD PTR[32+r15] 284 add al,dl 285 mov ebx,DWORD PTR[36+rsi] 286 add r8d,1770035416 287 xor r12d,r11d 288 movzx eax,al 289 mov DWORD PTR[32+rsi],edx 290 add r8d,r12d 291 add cl,bl 292 rol r8d,7 293 mov r12d,r10d 294 pinsrw xmm0,WORD PTR[rax*4+rdi],4 295 296 add r8d,r9d 297 mov edx,DWORD PTR[rcx*4+rdi] 298 xor r12d,r9d 299 mov DWORD PTR[rcx*4+rdi],ebx 300 and r12d,r8d 301 add r11d,DWORD PTR[36+r15] 302 add bl,dl 303 mov eax,DWORD PTR[40+rsi] 304 add r11d,2336552879 305 xor r12d,r10d 306 movzx ebx,bl 307 mov DWORD PTR[36+rsi],edx 308 add r11d,r12d 309 add cl,al 310 rol r11d,12 311 mov r12d,r9d 312 pinsrw xmm1,WORD PTR[rbx*4+rdi],4 313 314 add r11d,r8d 315 mov edx,DWORD PTR[rcx*4+rdi] 316 xor r12d,r8d 317 mov DWORD PTR[rcx*4+rdi],eax 318 and r12d,r11d 319 add r10d,DWORD PTR[40+r15] 320 add al,dl 321 mov ebx,DWORD PTR[44+rsi] 322 add r10d,4294925233 323 xor r12d,r9d 324 movzx eax,al 325 mov DWORD PTR[40+rsi],edx 326 add r10d,r12d 327 add cl,bl 328 rol r10d,17 329 mov r12d,r8d 330 pinsrw xmm0,WORD PTR[rax*4+rdi],5 331 332 add r10d,r11d 333 mov edx,DWORD PTR[rcx*4+rdi] 334 xor r12d,r11d 335 mov DWORD PTR[rcx*4+rdi],ebx 336 and r12d,r10d 337 add r9d,DWORD PTR[44+r15] 338 add bl,dl 339 mov eax,DWORD PTR[48+rsi] 340 add r9d,2304563134 341 xor r12d,r8d 342 movzx ebx,bl 343 mov DWORD PTR[44+rsi],edx 344 add r9d,r12d 345 add cl,al 346 rol r9d,22 347 mov r12d,r11d 348 pinsrw xmm1,WORD PTR[rbx*4+rdi],5 349 350 add r9d,r10d 351 mov edx,DWORD PTR[rcx*4+rdi] 352 xor r12d,r10d 353 mov DWORD PTR[rcx*4+rdi],eax 354 and r12d,r9d 355 add r8d,DWORD PTR[48+r15] 356 add al,dl 357 mov ebx,DWORD PTR[52+rsi] 358 add r8d,1804603682 359 xor r12d,r11d 360 movzx eax,al 361 mov DWORD PTR[48+rsi],edx 362 add r8d,r12d 363 add cl,bl 364 rol r8d,7 365 mov r12d,r10d 366 pinsrw xmm0,WORD PTR[rax*4+rdi],6 367 368 add r8d,r9d 369 mov edx,DWORD PTR[rcx*4+rdi] 370 xor r12d,r9d 371 mov DWORD PTR[rcx*4+rdi],ebx 372 and r12d,r8d 373 add r11d,DWORD PTR[52+r15] 374 add bl,dl 375 mov eax,DWORD PTR[56+rsi] 376 add r11d,4254626195 377 xor r12d,r10d 378 movzx ebx,bl 379 mov DWORD PTR[52+rsi],edx 380 add r11d,r12d 381 add cl,al 382 rol r11d,12 383 mov r12d,r9d 384 pinsrw xmm1,WORD PTR[rbx*4+rdi],6 385 386 add r11d,r8d 387 mov edx,DWORD PTR[rcx*4+rdi] 388 xor r12d,r8d 389 mov DWORD PTR[rcx*4+rdi],eax 390 and r12d,r11d 391 add r10d,DWORD PTR[56+r15] 392 add al,dl 393 mov ebx,DWORD PTR[60+rsi] 394 add r10d,2792965006 395 xor r12d,r9d 396 movzx eax,al 397 mov DWORD PTR[56+rsi],edx 398 add r10d,r12d 399 add cl,bl 400 rol r10d,17 401 mov r12d,r8d 402 pinsrw xmm0,WORD PTR[rax*4+rdi],7 403 404 add r10d,r11d 405 movdqu xmm2,XMMWORD PTR[r13] 406 mov edx,DWORD PTR[rcx*4+rdi] 407 xor r12d,r11d 408 mov DWORD PTR[rcx*4+rdi],ebx 409 and r12d,r10d 410 add r9d,DWORD PTR[60+r15] 411 add bl,dl 412 mov eax,DWORD PTR[64+rsi] 413 add r9d,1236535329 414 xor r12d,r8d 415 movzx ebx,bl 416 mov DWORD PTR[60+rsi],edx 417 add r9d,r12d 418 add cl,al 419 rol r9d,22 420 mov r12d,r10d 421 pinsrw xmm1,WORD PTR[rbx*4+rdi],7 422 423 add r9d,r10d 424 psllq xmm1,8 425 pxor xmm2,xmm0 426 pxor xmm2,xmm1 427 pxor xmm0,xmm0 428 mov edx,DWORD PTR[rcx*4+rdi] 429 xor r12d,r9d 430 mov DWORD PTR[rcx*4+rdi],eax 431 and r12d,r11d 432 add r8d,DWORD PTR[4+r15] 433 add al,dl 434 mov ebx,DWORD PTR[68+rsi] 435 add r8d,4129170786 436 xor r12d,r10d 437 movzx eax,al 438 mov DWORD PTR[64+rsi],edx 439 add r8d,r12d 440 add cl,bl 441 rol r8d,5 442 mov r12d,r9d 443 movd xmm0,DWORD PTR[rax*4+rdi] 444 445 add r8d,r9d 446 pxor xmm1,xmm1 447 mov edx,DWORD PTR[rcx*4+rdi] 448 xor r12d,r8d 449 mov DWORD PTR[rcx*4+rdi],ebx 450 and r12d,r10d 451 add r11d,DWORD PTR[24+r15] 452 add bl,dl 453 mov eax,DWORD PTR[72+rsi] 454 add r11d,3225465664 455 xor r12d,r9d 456 movzx ebx,bl 457 mov DWORD PTR[68+rsi],edx 458 add r11d,r12d 459 add cl,al 460 rol r11d,9 461 mov r12d,r8d 462 movd xmm1,DWORD PTR[rbx*4+rdi] 463 464 add r11d,r8d 465 mov edx,DWORD PTR[rcx*4+rdi] 466 xor r12d,r11d 467 mov DWORD PTR[rcx*4+rdi],eax 468 and r12d,r9d 469 add r10d,DWORD PTR[44+r15] 470 add al,dl 471 mov ebx,DWORD PTR[76+rsi] 472 add r10d,643717713 473 xor r12d,r8d 474 movzx eax,al 475 mov DWORD PTR[72+rsi],edx 476 add r10d,r12d 477 add cl,bl 478 rol r10d,14 479 mov r12d,r11d 480 pinsrw xmm0,WORD PTR[rax*4+rdi],1 481 482 add r10d,r11d 483 mov edx,DWORD PTR[rcx*4+rdi] 484 xor r12d,r10d 485 mov DWORD PTR[rcx*4+rdi],ebx 486 and r12d,r8d 487 add r9d,DWORD PTR[r15] 488 add bl,dl 489 mov eax,DWORD PTR[80+rsi] 490 add r9d,3921069994 491 xor r12d,r11d 492 movzx ebx,bl 493 mov DWORD PTR[76+rsi],edx 494 add r9d,r12d 495 add cl,al 496 rol r9d,20 497 mov r12d,r10d 498 pinsrw xmm1,WORD PTR[rbx*4+rdi],1 499 500 add r9d,r10d 501 mov edx,DWORD PTR[rcx*4+rdi] 502 xor r12d,r9d 503 mov DWORD PTR[rcx*4+rdi],eax 504 and r12d,r11d 505 add r8d,DWORD PTR[20+r15] 506 add al,dl 507 mov ebx,DWORD PTR[84+rsi] 508 add r8d,3593408605 509 xor r12d,r10d 510 movzx eax,al 511 mov DWORD PTR[80+rsi],edx 512 add r8d,r12d 513 add cl,bl 514 rol r8d,5 515 mov r12d,r9d 516 pinsrw xmm0,WORD PTR[rax*4+rdi],2 517 518 add r8d,r9d 519 mov edx,DWORD PTR[rcx*4+rdi] 520 xor r12d,r8d 521 mov DWORD PTR[rcx*4+rdi],ebx 522 and r12d,r10d 523 add r11d,DWORD PTR[40+r15] 524 add bl,dl 525 mov eax,DWORD PTR[88+rsi] 526 add r11d,38016083 527 xor r12d,r9d 528 movzx ebx,bl 529 mov DWORD PTR[84+rsi],edx 530 add r11d,r12d 531 add cl,al 532 rol r11d,9 533 mov r12d,r8d 534 pinsrw xmm1,WORD PTR[rbx*4+rdi],2 535 536 add r11d,r8d 537 mov edx,DWORD PTR[rcx*4+rdi] 538 xor r12d,r11d 539 mov DWORD PTR[rcx*4+rdi],eax 540 and r12d,r9d 541 add r10d,DWORD PTR[60+r15] 542 add al,dl 543 mov ebx,DWORD PTR[92+rsi] 544 add r10d,3634488961 545 xor r12d,r8d 546 movzx eax,al 547 mov DWORD PTR[88+rsi],edx 548 add r10d,r12d 549 add cl,bl 550 rol r10d,14 551 mov r12d,r11d 552 pinsrw xmm0,WORD PTR[rax*4+rdi],3 553 554 add r10d,r11d 555 mov edx,DWORD PTR[rcx*4+rdi] 556 xor r12d,r10d 557 mov DWORD PTR[rcx*4+rdi],ebx 558 and r12d,r8d 559 add r9d,DWORD PTR[16+r15] 560 add bl,dl 561 mov eax,DWORD PTR[96+rsi] 562 add r9d,3889429448 563 xor r12d,r11d 564 movzx ebx,bl 565 mov DWORD PTR[92+rsi],edx 566 add r9d,r12d 567 add cl,al 568 rol r9d,20 569 mov r12d,r10d 570 pinsrw xmm1,WORD PTR[rbx*4+rdi],3 571 572 add r9d,r10d 573 mov edx,DWORD PTR[rcx*4+rdi] 574 xor r12d,r9d 575 mov DWORD PTR[rcx*4+rdi],eax 576 and r12d,r11d 577 add r8d,DWORD PTR[36+r15] 578 add al,dl 579 mov ebx,DWORD PTR[100+rsi] 580 add r8d,568446438 581 xor r12d,r10d 582 movzx eax,al 583 mov DWORD PTR[96+rsi],edx 584 add r8d,r12d 585 add cl,bl 586 rol r8d,5 587 mov r12d,r9d 588 pinsrw xmm0,WORD PTR[rax*4+rdi],4 589 590 add r8d,r9d 591 mov edx,DWORD PTR[rcx*4+rdi] 592 xor r12d,r8d 593 mov DWORD PTR[rcx*4+rdi],ebx 594 and r12d,r10d 595 add r11d,DWORD PTR[56+r15] 596 add bl,dl 597 mov eax,DWORD PTR[104+rsi] 598 add r11d,3275163606 599 xor r12d,r9d 600 movzx ebx,bl 601 mov DWORD PTR[100+rsi],edx 602 add r11d,r12d 603 add cl,al 604 rol r11d,9 605 mov r12d,r8d 606 pinsrw xmm1,WORD PTR[rbx*4+rdi],4 607 608 add r11d,r8d 609 mov edx,DWORD PTR[rcx*4+rdi] 610 xor r12d,r11d 611 mov DWORD PTR[rcx*4+rdi],eax 612 and r12d,r9d 613 add r10d,DWORD PTR[12+r15] 614 add al,dl 615 mov ebx,DWORD PTR[108+rsi] 616 add r10d,4107603335 617 xor r12d,r8d 618 movzx eax,al 619 mov DWORD PTR[104+rsi],edx 620 add r10d,r12d 621 add cl,bl 622 rol r10d,14 623 mov r12d,r11d 624 pinsrw xmm0,WORD PTR[rax*4+rdi],5 625 626 add r10d,r11d 627 mov edx,DWORD PTR[rcx*4+rdi] 628 xor r12d,r10d 629 mov DWORD PTR[rcx*4+rdi],ebx 630 and r12d,r8d 631 add r9d,DWORD PTR[32+r15] 632 add bl,dl 633 mov eax,DWORD PTR[112+rsi] 634 add r9d,1163531501 635 xor r12d,r11d 636 movzx ebx,bl 637 mov DWORD PTR[108+rsi],edx 638 add r9d,r12d 639 add cl,al 640 rol r9d,20 641 mov r12d,r10d 642 pinsrw xmm1,WORD PTR[rbx*4+rdi],5 643 644 add r9d,r10d 645 mov edx,DWORD PTR[rcx*4+rdi] 646 xor r12d,r9d 647 mov DWORD PTR[rcx*4+rdi],eax 648 and r12d,r11d 649 add r8d,DWORD PTR[52+r15] 650 add al,dl 651 mov ebx,DWORD PTR[116+rsi] 652 add r8d,2850285829 653 xor r12d,r10d 654 movzx eax,al 655 mov DWORD PTR[112+rsi],edx 656 add r8d,r12d 657 add cl,bl 658 rol r8d,5 659 mov r12d,r9d 660 pinsrw xmm0,WORD PTR[rax*4+rdi],6 661 662 add r8d,r9d 663 mov edx,DWORD PTR[rcx*4+rdi] 664 xor r12d,r8d 665 mov DWORD PTR[rcx*4+rdi],ebx 666 and r12d,r10d 667 add r11d,DWORD PTR[8+r15] 668 add bl,dl 669 mov eax,DWORD PTR[120+rsi] 670 add r11d,4243563512 671 xor r12d,r9d 672 movzx ebx,bl 673 mov DWORD PTR[116+rsi],edx 674 add r11d,r12d 675 add cl,al 676 rol r11d,9 677 mov r12d,r8d 678 pinsrw xmm1,WORD PTR[rbx*4+rdi],6 679 680 add r11d,r8d 681 mov edx,DWORD PTR[rcx*4+rdi] 682 xor r12d,r11d 683 mov DWORD PTR[rcx*4+rdi],eax 684 and r12d,r9d 685 add r10d,DWORD PTR[28+r15] 686 add al,dl 687 mov ebx,DWORD PTR[124+rsi] 688 add r10d,1735328473 689 xor r12d,r8d 690 movzx eax,al 691 mov DWORD PTR[120+rsi],edx 692 add r10d,r12d 693 add cl,bl 694 rol r10d,14 695 mov r12d,r11d 696 pinsrw xmm0,WORD PTR[rax*4+rdi],7 697 698 add r10d,r11d 699 movdqu xmm3,XMMWORD PTR[16+r13] 700 add bpl,32 701 mov edx,DWORD PTR[rcx*4+rdi] 702 xor r12d,r10d 703 mov DWORD PTR[rcx*4+rdi],ebx 704 and r12d,r8d 705 add r9d,DWORD PTR[48+r15] 706 add bl,dl 707 mov eax,DWORD PTR[rbp*4+rdi] 708 add r9d,2368359562 709 xor r12d,r11d 710 movzx ebx,bl 711 mov DWORD PTR[124+rsi],edx 712 add r9d,r12d 713 add cl,al 714 rol r9d,20 715 mov r12d,r11d 716 pinsrw xmm1,WORD PTR[rbx*4+rdi],7 717 718 add r9d,r10d 719 mov rsi,rcx 720 xor rcx,rcx 721 mov cl,sil 722 lea rsi,QWORD PTR[rbp*4+rdi] 723 psllq xmm1,8 724 pxor xmm3,xmm0 725 pxor xmm3,xmm1 726 pxor xmm0,xmm0 727 mov edx,DWORD PTR[rcx*4+rdi] 728 xor r12d,r10d 729 mov DWORD PTR[rcx*4+rdi],eax 730 xor r12d,r9d 731 add r8d,DWORD PTR[20+r15] 732 add al,dl 733 mov ebx,DWORD PTR[4+rsi] 734 add r8d,4294588738 735 movzx eax,al 736 add r8d,r12d 737 mov DWORD PTR[rsi],edx 738 add cl,bl 739 rol r8d,4 740 mov r12d,r10d 741 movd xmm0,DWORD PTR[rax*4+rdi] 742 743 add r8d,r9d 744 pxor xmm1,xmm1 745 mov edx,DWORD PTR[rcx*4+rdi] 746 xor r12d,r9d 747 mov DWORD PTR[rcx*4+rdi],ebx 748 xor r12d,r8d 749 add r11d,DWORD PTR[32+r15] 750 add bl,dl 751 mov eax,DWORD PTR[8+rsi] 752 add r11d,2272392833 753 movzx ebx,bl 754 add r11d,r12d 755 mov DWORD PTR[4+rsi],edx 756 add cl,al 757 rol r11d,11 758 mov r12d,r9d 759 movd xmm1,DWORD PTR[rbx*4+rdi] 760 761 add r11d,r8d 762 mov edx,DWORD PTR[rcx*4+rdi] 763 xor r12d,r8d 764 mov DWORD PTR[rcx*4+rdi],eax 765 xor r12d,r11d 766 add r10d,DWORD PTR[44+r15] 767 add al,dl 768 mov ebx,DWORD PTR[12+rsi] 769 add r10d,1839030562 770 movzx eax,al 771 add r10d,r12d 772 mov DWORD PTR[8+rsi],edx 773 add cl,bl 774 rol r10d,16 775 mov r12d,r8d 776 pinsrw xmm0,WORD PTR[rax*4+rdi],1 777 778 add r10d,r11d 779 mov edx,DWORD PTR[rcx*4+rdi] 780 xor r12d,r11d 781 mov DWORD PTR[rcx*4+rdi],ebx 782 xor r12d,r10d 783 add r9d,DWORD PTR[56+r15] 784 add bl,dl 785 mov eax,DWORD PTR[16+rsi] 786 add r9d,4259657740 787 movzx ebx,bl 788 add r9d,r12d 789 mov DWORD PTR[12+rsi],edx 790 add cl,al 791 rol r9d,23 792 mov r12d,r11d 793 pinsrw xmm1,WORD PTR[rbx*4+rdi],1 794 795 add r9d,r10d 796 mov edx,DWORD PTR[rcx*4+rdi] 797 xor r12d,r10d 798 mov DWORD PTR[rcx*4+rdi],eax 799 xor r12d,r9d 800 add r8d,DWORD PTR[4+r15] 801 add al,dl 802 mov ebx,DWORD PTR[20+rsi] 803 add r8d,2763975236 804 movzx eax,al 805 add r8d,r12d 806 mov DWORD PTR[16+rsi],edx 807 add cl,bl 808 rol r8d,4 809 mov r12d,r10d 810 pinsrw xmm0,WORD PTR[rax*4+rdi],2 811 812 add r8d,r9d 813 mov edx,DWORD PTR[rcx*4+rdi] 814 xor r12d,r9d 815 mov DWORD PTR[rcx*4+rdi],ebx 816 xor r12d,r8d 817 add r11d,DWORD PTR[16+r15] 818 add bl,dl 819 mov eax,DWORD PTR[24+rsi] 820 add r11d,1272893353 821 movzx ebx,bl 822 add r11d,r12d 823 mov DWORD PTR[20+rsi],edx 824 add cl,al 825 rol r11d,11 826 mov r12d,r9d 827 pinsrw xmm1,WORD PTR[rbx*4+rdi],2 828 829 add r11d,r8d 830 mov edx,DWORD PTR[rcx*4+rdi] 831 xor r12d,r8d 832 mov DWORD PTR[rcx*4+rdi],eax 833 xor r12d,r11d 834 add r10d,DWORD PTR[28+r15] 835 add al,dl 836 mov ebx,DWORD PTR[28+rsi] 837 add r10d,4139469664 838 movzx eax,al 839 add r10d,r12d 840 mov DWORD PTR[24+rsi],edx 841 add cl,bl 842 rol r10d,16 843 mov r12d,r8d 844 pinsrw xmm0,WORD PTR[rax*4+rdi],3 845 846 add r10d,r11d 847 mov edx,DWORD PTR[rcx*4+rdi] 848 xor r12d,r11d 849 mov DWORD PTR[rcx*4+rdi],ebx 850 xor r12d,r10d 851 add r9d,DWORD PTR[40+r15] 852 add bl,dl 853 mov eax,DWORD PTR[32+rsi] 854 add r9d,3200236656 855 movzx ebx,bl 856 add r9d,r12d 857 mov DWORD PTR[28+rsi],edx 858 add cl,al 859 rol r9d,23 860 mov r12d,r11d 861 pinsrw xmm1,WORD PTR[rbx*4+rdi],3 862 863 add r9d,r10d 864 mov edx,DWORD PTR[rcx*4+rdi] 865 xor r12d,r10d 866 mov DWORD PTR[rcx*4+rdi],eax 867 xor r12d,r9d 868 add r8d,DWORD PTR[52+r15] 869 add al,dl 870 mov ebx,DWORD PTR[36+rsi] 871 add r8d,681279174 872 movzx eax,al 873 add r8d,r12d 874 mov DWORD PTR[32+rsi],edx 875 add cl,bl 876 rol r8d,4 877 mov r12d,r10d 878 pinsrw xmm0,WORD PTR[rax*4+rdi],4 879 880 add r8d,r9d 881 mov edx,DWORD PTR[rcx*4+rdi] 882 xor r12d,r9d 883 mov DWORD PTR[rcx*4+rdi],ebx 884 xor r12d,r8d 885 add r11d,DWORD PTR[r15] 886 add bl,dl 887 mov eax,DWORD PTR[40+rsi] 888 add r11d,3936430074 889 movzx ebx,bl 890 add r11d,r12d 891 mov DWORD PTR[36+rsi],edx 892 add cl,al 893 rol r11d,11 894 mov r12d,r9d 895 pinsrw xmm1,WORD PTR[rbx*4+rdi],4 896 897 add r11d,r8d 898 mov edx,DWORD PTR[rcx*4+rdi] 899 xor r12d,r8d 900 mov DWORD PTR[rcx*4+rdi],eax 901 xor r12d,r11d 902 add r10d,DWORD PTR[12+r15] 903 add al,dl 904 mov ebx,DWORD PTR[44+rsi] 905 add r10d,3572445317 906 movzx eax,al 907 add r10d,r12d 908 mov DWORD PTR[40+rsi],edx 909 add cl,bl 910 rol r10d,16 911 mov r12d,r8d 912 pinsrw xmm0,WORD PTR[rax*4+rdi],5 913 914 add r10d,r11d 915 mov edx,DWORD PTR[rcx*4+rdi] 916 xor r12d,r11d 917 mov DWORD PTR[rcx*4+rdi],ebx 918 xor r12d,r10d 919 add r9d,DWORD PTR[24+r15] 920 add bl,dl 921 mov eax,DWORD PTR[48+rsi] 922 add r9d,76029189 923 movzx ebx,bl 924 add r9d,r12d 925 mov DWORD PTR[44+rsi],edx 926 add cl,al 927 rol r9d,23 928 mov r12d,r11d 929 pinsrw xmm1,WORD PTR[rbx*4+rdi],5 930 931 add r9d,r10d 932 mov edx,DWORD PTR[rcx*4+rdi] 933 xor r12d,r10d 934 mov DWORD PTR[rcx*4+rdi],eax 935 xor r12d,r9d 936 add r8d,DWORD PTR[36+r15] 937 add al,dl 938 mov ebx,DWORD PTR[52+rsi] 939 add r8d,3654602809 940 movzx eax,al 941 add r8d,r12d 942 mov DWORD PTR[48+rsi],edx 943 add cl,bl 944 rol r8d,4 945 mov r12d,r10d 946 pinsrw xmm0,WORD PTR[rax*4+rdi],6 947 948 add r8d,r9d 949 mov edx,DWORD PTR[rcx*4+rdi] 950 xor r12d,r9d 951 mov DWORD PTR[rcx*4+rdi],ebx 952 xor r12d,r8d 953 add r11d,DWORD PTR[48+r15] 954 add bl,dl 955 mov eax,DWORD PTR[56+rsi] 956 add r11d,3873151461 957 movzx ebx,bl 958 add r11d,r12d 959 mov DWORD PTR[52+rsi],edx 960 add cl,al 961 rol r11d,11 962 mov r12d,r9d 963 pinsrw xmm1,WORD PTR[rbx*4+rdi],6 964 965 add r11d,r8d 966 mov edx,DWORD PTR[rcx*4+rdi] 967 xor r12d,r8d 968 mov DWORD PTR[rcx*4+rdi],eax 969 xor r12d,r11d 970 add r10d,DWORD PTR[60+r15] 971 add al,dl 972 mov ebx,DWORD PTR[60+rsi] 973 add r10d,530742520 974 movzx eax,al 975 add r10d,r12d 976 mov DWORD PTR[56+rsi],edx 977 add cl,bl 978 rol r10d,16 979 mov r12d,r8d 980 pinsrw xmm0,WORD PTR[rax*4+rdi],7 981 982 add r10d,r11d 983 movdqu xmm4,XMMWORD PTR[32+r13] 984 mov edx,DWORD PTR[rcx*4+rdi] 985 xor r12d,r11d 986 mov DWORD PTR[rcx*4+rdi],ebx 987 xor r12d,r10d 988 add r9d,DWORD PTR[8+r15] 989 add bl,dl 990 mov eax,DWORD PTR[64+rsi] 991 add r9d,3299628645 992 movzx ebx,bl 993 add r9d,r12d 994 mov DWORD PTR[60+rsi],edx 995 add cl,al 996 rol r9d,23 997 mov r12d,-1 998 pinsrw xmm1,WORD PTR[rbx*4+rdi],7 999 1000 add r9d,r10d 1001 psllq xmm1,8 1002 pxor xmm4,xmm0 1003 pxor xmm4,xmm1 1004 pxor xmm0,xmm0 1005 mov edx,DWORD PTR[rcx*4+rdi] 1006 xor r12d,r11d 1007 mov DWORD PTR[rcx*4+rdi],eax 1008 or r12d,r9d 1009 add r8d,DWORD PTR[r15] 1010 add al,dl 1011 mov ebx,DWORD PTR[68+rsi] 1012 add r8d,4096336452 1013 movzx eax,al 1014 xor r12d,r10d 1015 mov DWORD PTR[64+rsi],edx 1016 add r8d,r12d 1017 add cl,bl 1018 rol r8d,6 1019 mov r12d,-1 1020 movd xmm0,DWORD PTR[rax*4+rdi] 1021 1022 add r8d,r9d 1023 pxor xmm1,xmm1 1024 mov edx,DWORD PTR[rcx*4+rdi] 1025 xor r12d,r10d 1026 mov DWORD PTR[rcx*4+rdi],ebx 1027 or r12d,r8d 1028 add r11d,DWORD PTR[28+r15] 1029 add bl,dl 1030 mov eax,DWORD PTR[72+rsi] 1031 add r11d,1126891415 1032 movzx ebx,bl 1033 xor r12d,r9d 1034 mov DWORD PTR[68+rsi],edx 1035 add r11d,r12d 1036 add cl,al 1037 rol r11d,10 1038 mov r12d,-1 1039 movd xmm1,DWORD PTR[rbx*4+rdi] 1040 1041 add r11d,r8d 1042 mov edx,DWORD PTR[rcx*4+rdi] 1043 xor r12d,r9d 1044 mov DWORD PTR[rcx*4+rdi],eax 1045 or r12d,r11d 1046 add r10d,DWORD PTR[56+r15] 1047 add al,dl 1048 mov ebx,DWORD PTR[76+rsi] 1049 add r10d,2878612391 1050 movzx eax,al 1051 xor r12d,r8d 1052 mov DWORD PTR[72+rsi],edx 1053 add r10d,r12d 1054 add cl,bl 1055 rol r10d,15 1056 mov r12d,-1 1057 pinsrw xmm0,WORD PTR[rax*4+rdi],1 1058 1059 add r10d,r11d 1060 mov edx,DWORD PTR[rcx*4+rdi] 1061 xor r12d,r8d 1062 mov DWORD PTR[rcx*4+rdi],ebx 1063 or r12d,r10d 1064 add r9d,DWORD PTR[20+r15] 1065 add bl,dl 1066 mov eax,DWORD PTR[80+rsi] 1067 add r9d,4237533241 1068 movzx ebx,bl 1069 xor r12d,r11d 1070 mov DWORD PTR[76+rsi],edx 1071 add r9d,r12d 1072 add cl,al 1073 rol r9d,21 1074 mov r12d,-1 1075 pinsrw xmm1,WORD PTR[rbx*4+rdi],1 1076 1077 add r9d,r10d 1078 mov edx,DWORD PTR[rcx*4+rdi] 1079 xor r12d,r11d 1080 mov DWORD PTR[rcx*4+rdi],eax 1081 or r12d,r9d 1082 add r8d,DWORD PTR[48+r15] 1083 add al,dl 1084 mov ebx,DWORD PTR[84+rsi] 1085 add r8d,1700485571 1086 movzx eax,al 1087 xor r12d,r10d 1088 mov DWORD PTR[80+rsi],edx 1089 add r8d,r12d 1090 add cl,bl 1091 rol r8d,6 1092 mov r12d,-1 1093 pinsrw xmm0,WORD PTR[rax*4+rdi],2 1094 1095 add r8d,r9d 1096 mov edx,DWORD PTR[rcx*4+rdi] 1097 xor r12d,r10d 1098 mov DWORD PTR[rcx*4+rdi],ebx 1099 or r12d,r8d 1100 add r11d,DWORD PTR[12+r15] 1101 add bl,dl 1102 mov eax,DWORD PTR[88+rsi] 1103 add r11d,2399980690 1104 movzx ebx,bl 1105 xor r12d,r9d 1106 mov DWORD PTR[84+rsi],edx 1107 add r11d,r12d 1108 add cl,al 1109 rol r11d,10 1110 mov r12d,-1 1111 pinsrw xmm1,WORD PTR[rbx*4+rdi],2 1112 1113 add r11d,r8d 1114 mov edx,DWORD PTR[rcx*4+rdi] 1115 xor r12d,r9d 1116 mov DWORD PTR[rcx*4+rdi],eax 1117 or r12d,r11d 1118 add r10d,DWORD PTR[40+r15] 1119 add al,dl 1120 mov ebx,DWORD PTR[92+rsi] 1121 add r10d,4293915773 1122 movzx eax,al 1123 xor r12d,r8d 1124 mov DWORD PTR[88+rsi],edx 1125 add r10d,r12d 1126 add cl,bl 1127 rol r10d,15 1128 mov r12d,-1 1129 pinsrw xmm0,WORD PTR[rax*4+rdi],3 1130 1131 add r10d,r11d 1132 mov edx,DWORD PTR[rcx*4+rdi] 1133 xor r12d,r8d 1134 mov DWORD PTR[rcx*4+rdi],ebx 1135 or r12d,r10d 1136 add r9d,DWORD PTR[4+r15] 1137 add bl,dl 1138 mov eax,DWORD PTR[96+rsi] 1139 add r9d,2240044497 1140 movzx ebx,bl 1141 xor r12d,r11d 1142 mov DWORD PTR[92+rsi],edx 1143 add r9d,r12d 1144 add cl,al 1145 rol r9d,21 1146 mov r12d,-1 1147 pinsrw xmm1,WORD PTR[rbx*4+rdi],3 1148 1149 add r9d,r10d 1150 mov edx,DWORD PTR[rcx*4+rdi] 1151 xor r12d,r11d 1152 mov DWORD PTR[rcx*4+rdi],eax 1153 or r12d,r9d 1154 add r8d,DWORD PTR[32+r15] 1155 add al,dl 1156 mov ebx,DWORD PTR[100+rsi] 1157 add r8d,1873313359 1158 movzx eax,al 1159 xor r12d,r10d 1160 mov DWORD PTR[96+rsi],edx 1161 add r8d,r12d 1162 add cl,bl 1163 rol r8d,6 1164 mov r12d,-1 1165 pinsrw xmm0,WORD PTR[rax*4+rdi],4 1166 1167 add r8d,r9d 1168 mov edx,DWORD PTR[rcx*4+rdi] 1169 xor r12d,r10d 1170 mov DWORD PTR[rcx*4+rdi],ebx 1171 or r12d,r8d 1172 add r11d,DWORD PTR[60+r15] 1173 add bl,dl 1174 mov eax,DWORD PTR[104+rsi] 1175 add r11d,4264355552 1176 movzx ebx,bl 1177 xor r12d,r9d 1178 mov DWORD PTR[100+rsi],edx 1179 add r11d,r12d 1180 add cl,al 1181 rol r11d,10 1182 mov r12d,-1 1183 pinsrw xmm1,WORD PTR[rbx*4+rdi],4 1184 1185 add r11d,r8d 1186 mov edx,DWORD PTR[rcx*4+rdi] 1187 xor r12d,r9d 1188 mov DWORD PTR[rcx*4+rdi],eax 1189 or r12d,r11d 1190 add r10d,DWORD PTR[24+r15] 1191 add al,dl 1192 mov ebx,DWORD PTR[108+rsi] 1193 add r10d,2734768916 1194 movzx eax,al 1195 xor r12d,r8d 1196 mov DWORD PTR[104+rsi],edx 1197 add r10d,r12d 1198 add cl,bl 1199 rol r10d,15 1200 mov r12d,-1 1201 pinsrw xmm0,WORD PTR[rax*4+rdi],5 1202 1203 add r10d,r11d 1204 mov edx,DWORD PTR[rcx*4+rdi] 1205 xor r12d,r8d 1206 mov DWORD PTR[rcx*4+rdi],ebx 1207 or r12d,r10d 1208 add r9d,DWORD PTR[52+r15] 1209 add bl,dl 1210 mov eax,DWORD PTR[112+rsi] 1211 add r9d,1309151649 1212 movzx ebx,bl 1213 xor r12d,r11d 1214 mov DWORD PTR[108+rsi],edx 1215 add r9d,r12d 1216 add cl,al 1217 rol r9d,21 1218 mov r12d,-1 1219 pinsrw xmm1,WORD PTR[rbx*4+rdi],5 1220 1221 add r9d,r10d 1222 mov edx,DWORD PTR[rcx*4+rdi] 1223 xor r12d,r11d 1224 mov DWORD PTR[rcx*4+rdi],eax 1225 or r12d,r9d 1226 add r8d,DWORD PTR[16+r15] 1227 add al,dl 1228 mov ebx,DWORD PTR[116+rsi] 1229 add r8d,4149444226 1230 movzx eax,al 1231 xor r12d,r10d 1232 mov DWORD PTR[112+rsi],edx 1233 add r8d,r12d 1234 add cl,bl 1235 rol r8d,6 1236 mov r12d,-1 1237 pinsrw xmm0,WORD PTR[rax*4+rdi],6 1238 1239 add r8d,r9d 1240 mov edx,DWORD PTR[rcx*4+rdi] 1241 xor r12d,r10d 1242 mov DWORD PTR[rcx*4+rdi],ebx 1243 or r12d,r8d 1244 add r11d,DWORD PTR[44+r15] 1245 add bl,dl 1246 mov eax,DWORD PTR[120+rsi] 1247 add r11d,3174756917 1248 movzx ebx,bl 1249 xor r12d,r9d 1250 mov DWORD PTR[116+rsi],edx 1251 add r11d,r12d 1252 add cl,al 1253 rol r11d,10 1254 mov r12d,-1 1255 pinsrw xmm1,WORD PTR[rbx*4+rdi],6 1256 1257 add r11d,r8d 1258 mov edx,DWORD PTR[rcx*4+rdi] 1259 xor r12d,r9d 1260 mov DWORD PTR[rcx*4+rdi],eax 1261 or r12d,r11d 1262 add r10d,DWORD PTR[8+r15] 1263 add al,dl 1264 mov ebx,DWORD PTR[124+rsi] 1265 add r10d,718787259 1266 movzx eax,al 1267 xor r12d,r8d 1268 mov DWORD PTR[120+rsi],edx 1269 add r10d,r12d 1270 add cl,bl 1271 rol r10d,15 1272 mov r12d,-1 1273 pinsrw xmm0,WORD PTR[rax*4+rdi],7 1274 1275 add r10d,r11d 1276 movdqu xmm5,XMMWORD PTR[48+r13] 1277 add bpl,32 1278 mov edx,DWORD PTR[rcx*4+rdi] 1279 xor r12d,r8d 1280 mov DWORD PTR[rcx*4+rdi],ebx 1281 or r12d,r10d 1282 add r9d,DWORD PTR[36+r15] 1283 add bl,dl 1284 mov eax,DWORD PTR[rbp*4+rdi] 1285 add r9d,3951481745 1286 movzx ebx,bl 1287 xor r12d,r11d 1288 mov DWORD PTR[124+rsi],edx 1289 add r9d,r12d 1290 add cl,al 1291 rol r9d,21 1292 mov r12d,-1 1293 pinsrw xmm1,WORD PTR[rbx*4+rdi],7 1294 1295 add r9d,r10d 1296 mov rsi,rbp 1297 xor rbp,rbp 1298 mov bpl,sil 1299 mov rsi,rcx 1300 xor rcx,rcx 1301 mov cl,sil 1302 lea rsi,QWORD PTR[rbp*4+rdi] 1303 psllq xmm1,8 1304 pxor xmm5,xmm0 1305 pxor xmm5,xmm1 1306 add r8d,DWORD PTR[rsp] 1307 add r9d,DWORD PTR[4+rsp] 1308 add r10d,DWORD PTR[8+rsp] 1309 add r11d,DWORD PTR[12+rsp] 1310 1311 movdqu XMMWORD PTR[r13*1+r14],xmm2 1312 movdqu XMMWORD PTR[16+r13*1+r14],xmm3 1313 movdqu XMMWORD PTR[32+r13*1+r14],xmm4 1314 movdqu XMMWORD PTR[48+r13*1+r14],xmm5 1315 lea r15,QWORD PTR[64+r15] 1316 lea r13,QWORD PTR[64+r13] 1317 cmp r15,QWORD PTR[16+rsp] 1318 jb $L$oop 1319 1320 mov r12,QWORD PTR[24+rsp] 1321 sub cl,al 1322 mov DWORD PTR[r12],r8d 1323 mov DWORD PTR[4+r12],r9d 1324 mov DWORD PTR[8+r12],r10d 1325 mov DWORD PTR[12+r12],r11d 1326 sub bpl,1 1327 mov DWORD PTR[((-8))+rdi],ebp 1328 mov DWORD PTR[((-4))+rdi],ecx 1329 1330 mov r15,QWORD PTR[40+rsp] 1331 mov r14,QWORD PTR[48+rsp] 1332 mov r13,QWORD PTR[56+rsp] 1333 mov r12,QWORD PTR[64+rsp] 1334 mov rbp,QWORD PTR[72+rsp] 1335 mov rbx,QWORD PTR[80+rsp] 1336 lea rsp,QWORD PTR[88+rsp] 1337$L$epilogue:: 1338$L$abort:: 1339 mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue 1340 mov rsi,QWORD PTR[16+rsp] 1341 DB 0F3h,0C3h ;repret 1342$L$SEH_end_rc4_md5_enc:: 1343rc4_md5_enc ENDP 1344 1345.text$ ENDS 1346END 1347 1348