1 #if defined(__i386__) 2 .file "src/crypto/md5/asm/md5-586.S" 3 .text 4 .globl _md5_block_asm_data_order 5 .private_extern _md5_block_asm_data_order 6 .align 4 7 _md5_block_asm_data_order: 8 L_md5_block_asm_data_order_begin: 9 pushl %esi 10 pushl %edi 11 movl 12(%esp),%edi 12 movl 16(%esp),%esi 13 movl 20(%esp),%ecx 14 pushl %ebp 15 shll $6,%ecx 16 pushl %ebx 17 addl %esi,%ecx 18 subl $64,%ecx 19 movl (%edi),%eax 20 pushl %ecx 21 movl 4(%edi),%ebx 22 movl 8(%edi),%ecx 23 movl 12(%edi),%edx 24 L000start: 25 26 # R0 section 27 movl %ecx,%edi 28 movl (%esi),%ebp 29 # R0 0 30 xorl %edx,%edi 31 andl %ebx,%edi 32 leal 3614090360(%eax,%ebp,1),%eax 33 xorl %edx,%edi 34 addl %edi,%eax 35 movl %ebx,%edi 36 roll $7,%eax 37 movl 4(%esi),%ebp 38 addl %ebx,%eax 39 # R0 1 40 xorl %ecx,%edi 41 andl %eax,%edi 42 leal 3905402710(%edx,%ebp,1),%edx 43 xorl %ecx,%edi 44 addl %edi,%edx 45 movl %eax,%edi 46 roll $12,%edx 47 movl 8(%esi),%ebp 48 addl %eax,%edx 49 # R0 2 50 xorl %ebx,%edi 51 andl %edx,%edi 52 leal 606105819(%ecx,%ebp,1),%ecx 53 xorl %ebx,%edi 54 addl %edi,%ecx 55 movl %edx,%edi 56 roll $17,%ecx 57 movl 12(%esi),%ebp 58 addl %edx,%ecx 59 # R0 3 60 xorl %eax,%edi 61 andl %ecx,%edi 62 leal 3250441966(%ebx,%ebp,1),%ebx 63 xorl %eax,%edi 64 addl %edi,%ebx 65 movl %ecx,%edi 66 roll $22,%ebx 67 movl 16(%esi),%ebp 68 addl %ecx,%ebx 69 # R0 4 70 xorl %edx,%edi 71 andl %ebx,%edi 72 leal 4118548399(%eax,%ebp,1),%eax 73 xorl %edx,%edi 74 addl %edi,%eax 75 movl %ebx,%edi 76 roll $7,%eax 77 movl 20(%esi),%ebp 78 addl %ebx,%eax 79 # R0 5 80 xorl %ecx,%edi 81 andl %eax,%edi 82 leal 1200080426(%edx,%ebp,1),%edx 83 xorl %ecx,%edi 84 addl %edi,%edx 85 movl %eax,%edi 86 roll $12,%edx 87 movl 24(%esi),%ebp 88 addl %eax,%edx 89 # R0 6 90 xorl %ebx,%edi 91 andl %edx,%edi 92 leal 2821735955(%ecx,%ebp,1),%ecx 93 xorl %ebx,%edi 94 addl %edi,%ecx 95 movl %edx,%edi 96 roll $17,%ecx 97 movl 28(%esi),%ebp 98 addl %edx,%ecx 99 # R0 7 100 xorl %eax,%edi 101 andl %ecx,%edi 102 leal 4249261313(%ebx,%ebp,1),%ebx 103 xorl %eax,%edi 104 addl %edi,%ebx 105 movl %ecx,%edi 106 roll $22,%ebx 107 movl 32(%esi),%ebp 108 addl %ecx,%ebx 109 # R0 8 110 xorl %edx,%edi 111 andl %ebx,%edi 112 leal 1770035416(%eax,%ebp,1),%eax 113 xorl %edx,%edi 114 addl %edi,%eax 115 movl %ebx,%edi 116 roll $7,%eax 117 movl 36(%esi),%ebp 118 addl %ebx,%eax 119 # R0 9 120 xorl %ecx,%edi 121 andl %eax,%edi 122 leal 2336552879(%edx,%ebp,1),%edx 123 xorl %ecx,%edi 124 addl %edi,%edx 125 movl %eax,%edi 126 roll $12,%edx 127 movl 40(%esi),%ebp 128 addl %eax,%edx 129 # R0 10 130 xorl %ebx,%edi 131 andl %edx,%edi 132 leal 4294925233(%ecx,%ebp,1),%ecx 133 xorl %ebx,%edi 134 addl %edi,%ecx 135 movl %edx,%edi 136 roll $17,%ecx 137 movl 44(%esi),%ebp 138 addl %edx,%ecx 139 # R0 11 140 xorl %eax,%edi 141 andl %ecx,%edi 142 leal 2304563134(%ebx,%ebp,1),%ebx 143 xorl %eax,%edi 144 addl %edi,%ebx 145 movl %ecx,%edi 146 roll $22,%ebx 147 movl 48(%esi),%ebp 148 addl %ecx,%ebx 149 # R0 12 150 xorl %edx,%edi 151 andl %ebx,%edi 152 leal 1804603682(%eax,%ebp,1),%eax 153 xorl %edx,%edi 154 addl %edi,%eax 155 movl %ebx,%edi 156 roll $7,%eax 157 movl 52(%esi),%ebp 158 addl %ebx,%eax 159 # R0 13 160 xorl %ecx,%edi 161 andl %eax,%edi 162 leal 4254626195(%edx,%ebp,1),%edx 163 xorl %ecx,%edi 164 addl %edi,%edx 165 movl %eax,%edi 166 roll $12,%edx 167 movl 56(%esi),%ebp 168 addl %eax,%edx 169 # R0 14 170 xorl %ebx,%edi 171 andl %edx,%edi 172 leal 2792965006(%ecx,%ebp,1),%ecx 173 xorl %ebx,%edi 174 addl %edi,%ecx 175 movl %edx,%edi 176 roll $17,%ecx 177 movl 60(%esi),%ebp 178 addl %edx,%ecx 179 # R0 15 180 xorl %eax,%edi 181 andl %ecx,%edi 182 leal 1236535329(%ebx,%ebp,1),%ebx 183 xorl %eax,%edi 184 addl %edi,%ebx 185 movl %ecx,%edi 186 roll $22,%ebx 187 movl 4(%esi),%ebp 188 addl %ecx,%ebx 189 190 # R1 section 191 # R1 16 192 leal 4129170786(%eax,%ebp,1),%eax 193 xorl %ebx,%edi 194 andl %edx,%edi 195 movl 24(%esi),%ebp 196 xorl %ecx,%edi 197 addl %edi,%eax 198 movl %ebx,%edi 199 roll $5,%eax 200 addl %ebx,%eax 201 # R1 17 202 leal 3225465664(%edx,%ebp,1),%edx 203 xorl %eax,%edi 204 andl %ecx,%edi 205 movl 44(%esi),%ebp 206 xorl %ebx,%edi 207 addl %edi,%edx 208 movl %eax,%edi 209 roll $9,%edx 210 addl %eax,%edx 211 # R1 18 212 leal 643717713(%ecx,%ebp,1),%ecx 213 xorl %edx,%edi 214 andl %ebx,%edi 215 movl (%esi),%ebp 216 xorl %eax,%edi 217 addl %edi,%ecx 218 movl %edx,%edi 219 roll $14,%ecx 220 addl %edx,%ecx 221 # R1 19 222 leal 3921069994(%ebx,%ebp,1),%ebx 223 xorl %ecx,%edi 224 andl %eax,%edi 225 movl 20(%esi),%ebp 226 xorl %edx,%edi 227 addl %edi,%ebx 228 movl %ecx,%edi 229 roll $20,%ebx 230 addl %ecx,%ebx 231 # R1 20 232 leal 3593408605(%eax,%ebp,1),%eax 233 xorl %ebx,%edi 234 andl %edx,%edi 235 movl 40(%esi),%ebp 236 xorl %ecx,%edi 237 addl %edi,%eax 238 movl %ebx,%edi 239 roll $5,%eax 240 addl %ebx,%eax 241 # R1 21 242 leal 38016083(%edx,%ebp,1),%edx 243 xorl %eax,%edi 244 andl %ecx,%edi 245 movl 60(%esi),%ebp 246 xorl %ebx,%edi 247 addl %edi,%edx 248 movl %eax,%edi 249 roll $9,%edx 250 addl %eax,%edx 251 # R1 22 252 leal 3634488961(%ecx,%ebp,1),%ecx 253 xorl %edx,%edi 254 andl %ebx,%edi 255 movl 16(%esi),%ebp 256 xorl %eax,%edi 257 addl %edi,%ecx 258 movl %edx,%edi 259 roll $14,%ecx 260 addl %edx,%ecx 261 # R1 23 262 leal 3889429448(%ebx,%ebp,1),%ebx 263 xorl %ecx,%edi 264 andl %eax,%edi 265 movl 36(%esi),%ebp 266 xorl %edx,%edi 267 addl %edi,%ebx 268 movl %ecx,%edi 269 roll $20,%ebx 270 addl %ecx,%ebx 271 # R1 24 272 leal 568446438(%eax,%ebp,1),%eax 273 xorl %ebx,%edi 274 andl %edx,%edi 275 movl 56(%esi),%ebp 276 xorl %ecx,%edi 277 addl %edi,%eax 278 movl %ebx,%edi 279 roll $5,%eax 280 addl %ebx,%eax 281 # R1 25 282 leal 3275163606(%edx,%ebp,1),%edx 283 xorl %eax,%edi 284 andl %ecx,%edi 285 movl 12(%esi),%ebp 286 xorl %ebx,%edi 287 addl %edi,%edx 288 movl %eax,%edi 289 roll $9,%edx 290 addl %eax,%edx 291 # R1 26 292 leal 4107603335(%ecx,%ebp,1),%ecx 293 xorl %edx,%edi 294 andl %ebx,%edi 295 movl 32(%esi),%ebp 296 xorl %eax,%edi 297 addl %edi,%ecx 298 movl %edx,%edi 299 roll $14,%ecx 300 addl %edx,%ecx 301 # R1 27 302 leal 1163531501(%ebx,%ebp,1),%ebx 303 xorl %ecx,%edi 304 andl %eax,%edi 305 movl 52(%esi),%ebp 306 xorl %edx,%edi 307 addl %edi,%ebx 308 movl %ecx,%edi 309 roll $20,%ebx 310 addl %ecx,%ebx 311 # R1 28 312 leal 2850285829(%eax,%ebp,1),%eax 313 xorl %ebx,%edi 314 andl %edx,%edi 315 movl 8(%esi),%ebp 316 xorl %ecx,%edi 317 addl %edi,%eax 318 movl %ebx,%edi 319 roll $5,%eax 320 addl %ebx,%eax 321 # R1 29 322 leal 4243563512(%edx,%ebp,1),%edx 323 xorl %eax,%edi 324 andl %ecx,%edi 325 movl 28(%esi),%ebp 326 xorl %ebx,%edi 327 addl %edi,%edx 328 movl %eax,%edi 329 roll $9,%edx 330 addl %eax,%edx 331 # R1 30 332 leal 1735328473(%ecx,%ebp,1),%ecx 333 xorl %edx,%edi 334 andl %ebx,%edi 335 movl 48(%esi),%ebp 336 xorl %eax,%edi 337 addl %edi,%ecx 338 movl %edx,%edi 339 roll $14,%ecx 340 addl %edx,%ecx 341 # R1 31 342 leal 2368359562(%ebx,%ebp,1),%ebx 343 xorl %ecx,%edi 344 andl %eax,%edi 345 movl 20(%esi),%ebp 346 xorl %edx,%edi 347 addl %edi,%ebx 348 movl %ecx,%edi 349 roll $20,%ebx 350 addl %ecx,%ebx 351 352 # R2 section 353 # R2 32 354 xorl %edx,%edi 355 xorl %ebx,%edi 356 leal 4294588738(%eax,%ebp,1),%eax 357 addl %edi,%eax 358 roll $4,%eax 359 movl 32(%esi),%ebp 360 movl %ebx,%edi 361 # R2 33 362 leal 2272392833(%edx,%ebp,1),%edx 363 addl %ebx,%eax 364 xorl %ecx,%edi 365 xorl %eax,%edi 366 movl 44(%esi),%ebp 367 addl %edi,%edx 368 movl %eax,%edi 369 roll $11,%edx 370 addl %eax,%edx 371 # R2 34 372 xorl %ebx,%edi 373 xorl %edx,%edi 374 leal 1839030562(%ecx,%ebp,1),%ecx 375 addl %edi,%ecx 376 roll $16,%ecx 377 movl 56(%esi),%ebp 378 movl %edx,%edi 379 # R2 35 380 leal 4259657740(%ebx,%ebp,1),%ebx 381 addl %edx,%ecx 382 xorl %eax,%edi 383 xorl %ecx,%edi 384 movl 4(%esi),%ebp 385 addl %edi,%ebx 386 movl %ecx,%edi 387 roll $23,%ebx 388 addl %ecx,%ebx 389 # R2 36 390 xorl %edx,%edi 391 xorl %ebx,%edi 392 leal 2763975236(%eax,%ebp,1),%eax 393 addl %edi,%eax 394 roll $4,%eax 395 movl 16(%esi),%ebp 396 movl %ebx,%edi 397 # R2 37 398 leal 1272893353(%edx,%ebp,1),%edx 399 addl %ebx,%eax 400 xorl %ecx,%edi 401 xorl %eax,%edi 402 movl 28(%esi),%ebp 403 addl %edi,%edx 404 movl %eax,%edi 405 roll $11,%edx 406 addl %eax,%edx 407 # R2 38 408 xorl %ebx,%edi 409 xorl %edx,%edi 410 leal 4139469664(%ecx,%ebp,1),%ecx 411 addl %edi,%ecx 412 roll $16,%ecx 413 movl 40(%esi),%ebp 414 movl %edx,%edi 415 # R2 39 416 leal 3200236656(%ebx,%ebp,1),%ebx 417 addl %edx,%ecx 418 xorl %eax,%edi 419 xorl %ecx,%edi 420 movl 52(%esi),%ebp 421 addl %edi,%ebx 422 movl %ecx,%edi 423 roll $23,%ebx 424 addl %ecx,%ebx 425 # R2 40 426 xorl %edx,%edi 427 xorl %ebx,%edi 428 leal 681279174(%eax,%ebp,1),%eax 429 addl %edi,%eax 430 roll $4,%eax 431 movl (%esi),%ebp 432 movl %ebx,%edi 433 # R2 41 434 leal 3936430074(%edx,%ebp,1),%edx 435 addl %ebx,%eax 436 xorl %ecx,%edi 437 xorl %eax,%edi 438 movl 12(%esi),%ebp 439 addl %edi,%edx 440 movl %eax,%edi 441 roll $11,%edx 442 addl %eax,%edx 443 # R2 42 444 xorl %ebx,%edi 445 xorl %edx,%edi 446 leal 3572445317(%ecx,%ebp,1),%ecx 447 addl %edi,%ecx 448 roll $16,%ecx 449 movl 24(%esi),%ebp 450 movl %edx,%edi 451 # R2 43 452 leal 76029189(%ebx,%ebp,1),%ebx 453 addl %edx,%ecx 454 xorl %eax,%edi 455 xorl %ecx,%edi 456 movl 36(%esi),%ebp 457 addl %edi,%ebx 458 movl %ecx,%edi 459 roll $23,%ebx 460 addl %ecx,%ebx 461 # R2 44 462 xorl %edx,%edi 463 xorl %ebx,%edi 464 leal 3654602809(%eax,%ebp,1),%eax 465 addl %edi,%eax 466 roll $4,%eax 467 movl 48(%esi),%ebp 468 movl %ebx,%edi 469 # R2 45 470 leal 3873151461(%edx,%ebp,1),%edx 471 addl %ebx,%eax 472 xorl %ecx,%edi 473 xorl %eax,%edi 474 movl 60(%esi),%ebp 475 addl %edi,%edx 476 movl %eax,%edi 477 roll $11,%edx 478 addl %eax,%edx 479 # R2 46 480 xorl %ebx,%edi 481 xorl %edx,%edi 482 leal 530742520(%ecx,%ebp,1),%ecx 483 addl %edi,%ecx 484 roll $16,%ecx 485 movl 8(%esi),%ebp 486 movl %edx,%edi 487 # R2 47 488 leal 3299628645(%ebx,%ebp,1),%ebx 489 addl %edx,%ecx 490 xorl %eax,%edi 491 xorl %ecx,%edi 492 movl (%esi),%ebp 493 addl %edi,%ebx 494 movl $-1,%edi 495 roll $23,%ebx 496 addl %ecx,%ebx 497 498 # R3 section 499 # R3 48 500 xorl %edx,%edi 501 orl %ebx,%edi 502 leal 4096336452(%eax,%ebp,1),%eax 503 xorl %ecx,%edi 504 movl 28(%esi),%ebp 505 addl %edi,%eax 506 movl $-1,%edi 507 roll $6,%eax 508 xorl %ecx,%edi 509 addl %ebx,%eax 510 # R3 49 511 orl %eax,%edi 512 leal 1126891415(%edx,%ebp,1),%edx 513 xorl %ebx,%edi 514 movl 56(%esi),%ebp 515 addl %edi,%edx 516 movl $-1,%edi 517 roll $10,%edx 518 xorl %ebx,%edi 519 addl %eax,%edx 520 # R3 50 521 orl %edx,%edi 522 leal 2878612391(%ecx,%ebp,1),%ecx 523 xorl %eax,%edi 524 movl 20(%esi),%ebp 525 addl %edi,%ecx 526 movl $-1,%edi 527 roll $15,%ecx 528 xorl %eax,%edi 529 addl %edx,%ecx 530 # R3 51 531 orl %ecx,%edi 532 leal 4237533241(%ebx,%ebp,1),%ebx 533 xorl %edx,%edi 534 movl 48(%esi),%ebp 535 addl %edi,%ebx 536 movl $-1,%edi 537 roll $21,%ebx 538 xorl %edx,%edi 539 addl %ecx,%ebx 540 # R3 52 541 orl %ebx,%edi 542 leal 1700485571(%eax,%ebp,1),%eax 543 xorl %ecx,%edi 544 movl 12(%esi),%ebp 545 addl %edi,%eax 546 movl $-1,%edi 547 roll $6,%eax 548 xorl %ecx,%edi 549 addl %ebx,%eax 550 # R3 53 551 orl %eax,%edi 552 leal 2399980690(%edx,%ebp,1),%edx 553 xorl %ebx,%edi 554 movl 40(%esi),%ebp 555 addl %edi,%edx 556 movl $-1,%edi 557 roll $10,%edx 558 xorl %ebx,%edi 559 addl %eax,%edx 560 # R3 54 561 orl %edx,%edi 562 leal 4293915773(%ecx,%ebp,1),%ecx 563 xorl %eax,%edi 564 movl 4(%esi),%ebp 565 addl %edi,%ecx 566 movl $-1,%edi 567 roll $15,%ecx 568 xorl %eax,%edi 569 addl %edx,%ecx 570 # R3 55 571 orl %ecx,%edi 572 leal 2240044497(%ebx,%ebp,1),%ebx 573 xorl %edx,%edi 574 movl 32(%esi),%ebp 575 addl %edi,%ebx 576 movl $-1,%edi 577 roll $21,%ebx 578 xorl %edx,%edi 579 addl %ecx,%ebx 580 # R3 56 581 orl %ebx,%edi 582 leal 1873313359(%eax,%ebp,1),%eax 583 xorl %ecx,%edi 584 movl 60(%esi),%ebp 585 addl %edi,%eax 586 movl $-1,%edi 587 roll $6,%eax 588 xorl %ecx,%edi 589 addl %ebx,%eax 590 # R3 57 591 orl %eax,%edi 592 leal 4264355552(%edx,%ebp,1),%edx 593 xorl %ebx,%edi 594 movl 24(%esi),%ebp 595 addl %edi,%edx 596 movl $-1,%edi 597 roll $10,%edx 598 xorl %ebx,%edi 599 addl %eax,%edx 600 # R3 58 601 orl %edx,%edi 602 leal 2734768916(%ecx,%ebp,1),%ecx 603 xorl %eax,%edi 604 movl 52(%esi),%ebp 605 addl %edi,%ecx 606 movl $-1,%edi 607 roll $15,%ecx 608 xorl %eax,%edi 609 addl %edx,%ecx 610 # R3 59 611 orl %ecx,%edi 612 leal 1309151649(%ebx,%ebp,1),%ebx 613 xorl %edx,%edi 614 movl 16(%esi),%ebp 615 addl %edi,%ebx 616 movl $-1,%edi 617 roll $21,%ebx 618 xorl %edx,%edi 619 addl %ecx,%ebx 620 # R3 60 621 orl %ebx,%edi 622 leal 4149444226(%eax,%ebp,1),%eax 623 xorl %ecx,%edi 624 movl 44(%esi),%ebp 625 addl %edi,%eax 626 movl $-1,%edi 627 roll $6,%eax 628 xorl %ecx,%edi 629 addl %ebx,%eax 630 # R3 61 631 orl %eax,%edi 632 leal 3174756917(%edx,%ebp,1),%edx 633 xorl %ebx,%edi 634 movl 8(%esi),%ebp 635 addl %edi,%edx 636 movl $-1,%edi 637 roll $10,%edx 638 xorl %ebx,%edi 639 addl %eax,%edx 640 # R3 62 641 orl %edx,%edi 642 leal 718787259(%ecx,%ebp,1),%ecx 643 xorl %eax,%edi 644 movl 36(%esi),%ebp 645 addl %edi,%ecx 646 movl $-1,%edi 647 roll $15,%ecx 648 xorl %eax,%edi 649 addl %edx,%ecx 650 # R3 63 651 orl %ecx,%edi 652 leal 3951481745(%ebx,%ebp,1),%ebx 653 xorl %edx,%edi 654 movl 24(%esp),%ebp 655 addl %edi,%ebx 656 addl $64,%esi 657 roll $21,%ebx 658 movl (%ebp),%edi 659 addl %ecx,%ebx 660 addl %edi,%eax 661 movl 4(%ebp),%edi 662 addl %edi,%ebx 663 movl 8(%ebp),%edi 664 addl %edi,%ecx 665 movl 12(%ebp),%edi 666 addl %edi,%edx 667 movl %eax,(%ebp) 668 movl %ebx,4(%ebp) 669 movl (%esp),%edi 670 movl %ecx,8(%ebp) 671 movl %edx,12(%ebp) 672 cmpl %esi,%edi 673 jae L000start 674 popl %eax 675 popl %ebx 676 popl %ebp 677 popl %edi 678 popl %esi 679 ret 680 #endif 681