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