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