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