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