rc5-586.S revision 305153
1/* $FreeBSD: stable/11/secure/lib/libcrypto/i386/rc5-586.S 305153 2016-08-31 20:33:59Z jkim $ */ 2/* Do not modify. This file is auto-generated from rc5-586.pl. */ 3#ifdef PIC 4.file "rc5-586.S" 5.text 6.globl RC5_32_encrypt 7.type RC5_32_encrypt,@function 8.align 16 9RC5_32_encrypt: 10.L_RC5_32_encrypt_begin: 11 12 pushl %ebp 13 pushl %esi 14 pushl %edi 15 movl 16(%esp),%edx 16 movl 20(%esp),%ebp 17 18 movl (%edx),%edi 19 movl 4(%edx),%esi 20 pushl %ebx 21 movl (%ebp),%ebx 22 addl 4(%ebp),%edi 23 addl 8(%ebp),%esi 24 xorl %esi,%edi 25 movl 12(%ebp),%eax 26 movl %esi,%ecx 27 roll %cl,%edi 28 addl %eax,%edi 29 xorl %edi,%esi 30 movl 16(%ebp),%eax 31 movl %edi,%ecx 32 roll %cl,%esi 33 addl %eax,%esi 34 xorl %esi,%edi 35 movl 20(%ebp),%eax 36 movl %esi,%ecx 37 roll %cl,%edi 38 addl %eax,%edi 39 xorl %edi,%esi 40 movl 24(%ebp),%eax 41 movl %edi,%ecx 42 roll %cl,%esi 43 addl %eax,%esi 44 xorl %esi,%edi 45 movl 28(%ebp),%eax 46 movl %esi,%ecx 47 roll %cl,%edi 48 addl %eax,%edi 49 xorl %edi,%esi 50 movl 32(%ebp),%eax 51 movl %edi,%ecx 52 roll %cl,%esi 53 addl %eax,%esi 54 xorl %esi,%edi 55 movl 36(%ebp),%eax 56 movl %esi,%ecx 57 roll %cl,%edi 58 addl %eax,%edi 59 xorl %edi,%esi 60 movl 40(%ebp),%eax 61 movl %edi,%ecx 62 roll %cl,%esi 63 addl %eax,%esi 64 xorl %esi,%edi 65 movl 44(%ebp),%eax 66 movl %esi,%ecx 67 roll %cl,%edi 68 addl %eax,%edi 69 xorl %edi,%esi 70 movl 48(%ebp),%eax 71 movl %edi,%ecx 72 roll %cl,%esi 73 addl %eax,%esi 74 xorl %esi,%edi 75 movl 52(%ebp),%eax 76 movl %esi,%ecx 77 roll %cl,%edi 78 addl %eax,%edi 79 xorl %edi,%esi 80 movl 56(%ebp),%eax 81 movl %edi,%ecx 82 roll %cl,%esi 83 addl %eax,%esi 84 xorl %esi,%edi 85 movl 60(%ebp),%eax 86 movl %esi,%ecx 87 roll %cl,%edi 88 addl %eax,%edi 89 xorl %edi,%esi 90 movl 64(%ebp),%eax 91 movl %edi,%ecx 92 roll %cl,%esi 93 addl %eax,%esi 94 xorl %esi,%edi 95 movl 68(%ebp),%eax 96 movl %esi,%ecx 97 roll %cl,%edi 98 addl %eax,%edi 99 xorl %edi,%esi 100 movl 72(%ebp),%eax 101 movl %edi,%ecx 102 roll %cl,%esi 103 addl %eax,%esi 104 cmpl $8,%ebx 105 je .L000rc5_exit 106 xorl %esi,%edi 107 movl 76(%ebp),%eax 108 movl %esi,%ecx 109 roll %cl,%edi 110 addl %eax,%edi 111 xorl %edi,%esi 112 movl 80(%ebp),%eax 113 movl %edi,%ecx 114 roll %cl,%esi 115 addl %eax,%esi 116 xorl %esi,%edi 117 movl 84(%ebp),%eax 118 movl %esi,%ecx 119 roll %cl,%edi 120 addl %eax,%edi 121 xorl %edi,%esi 122 movl 88(%ebp),%eax 123 movl %edi,%ecx 124 roll %cl,%esi 125 addl %eax,%esi 126 xorl %esi,%edi 127 movl 92(%ebp),%eax 128 movl %esi,%ecx 129 roll %cl,%edi 130 addl %eax,%edi 131 xorl %edi,%esi 132 movl 96(%ebp),%eax 133 movl %edi,%ecx 134 roll %cl,%esi 135 addl %eax,%esi 136 xorl %esi,%edi 137 movl 100(%ebp),%eax 138 movl %esi,%ecx 139 roll %cl,%edi 140 addl %eax,%edi 141 xorl %edi,%esi 142 movl 104(%ebp),%eax 143 movl %edi,%ecx 144 roll %cl,%esi 145 addl %eax,%esi 146 cmpl $12,%ebx 147 je .L000rc5_exit 148 xorl %esi,%edi 149 movl 108(%ebp),%eax 150 movl %esi,%ecx 151 roll %cl,%edi 152 addl %eax,%edi 153 xorl %edi,%esi 154 movl 112(%ebp),%eax 155 movl %edi,%ecx 156 roll %cl,%esi 157 addl %eax,%esi 158 xorl %esi,%edi 159 movl 116(%ebp),%eax 160 movl %esi,%ecx 161 roll %cl,%edi 162 addl %eax,%edi 163 xorl %edi,%esi 164 movl 120(%ebp),%eax 165 movl %edi,%ecx 166 roll %cl,%esi 167 addl %eax,%esi 168 xorl %esi,%edi 169 movl 124(%ebp),%eax 170 movl %esi,%ecx 171 roll %cl,%edi 172 addl %eax,%edi 173 xorl %edi,%esi 174 movl 128(%ebp),%eax 175 movl %edi,%ecx 176 roll %cl,%esi 177 addl %eax,%esi 178 xorl %esi,%edi 179 movl 132(%ebp),%eax 180 movl %esi,%ecx 181 roll %cl,%edi 182 addl %eax,%edi 183 xorl %edi,%esi 184 movl 136(%ebp),%eax 185 movl %edi,%ecx 186 roll %cl,%esi 187 addl %eax,%esi 188.L000rc5_exit: 189 movl %edi,(%edx) 190 movl %esi,4(%edx) 191 popl %ebx 192 popl %edi 193 popl %esi 194 popl %ebp 195 ret 196.size RC5_32_encrypt,.-.L_RC5_32_encrypt_begin 197.globl RC5_32_decrypt 198.type RC5_32_decrypt,@function 199.align 16 200RC5_32_decrypt: 201.L_RC5_32_decrypt_begin: 202 203 pushl %ebp 204 pushl %esi 205 pushl %edi 206 movl 16(%esp),%edx 207 movl 20(%esp),%ebp 208 209 movl (%edx),%edi 210 movl 4(%edx),%esi 211 pushl %ebx 212 movl (%ebp),%ebx 213 cmpl $12,%ebx 214 je .L001rc5_dec_12 215 cmpl $8,%ebx 216 je .L002rc5_dec_8 217 movl 136(%ebp),%eax 218 subl %eax,%esi 219 movl %edi,%ecx 220 rorl %cl,%esi 221 xorl %edi,%esi 222 movl 132(%ebp),%eax 223 subl %eax,%edi 224 movl %esi,%ecx 225 rorl %cl,%edi 226 xorl %esi,%edi 227 movl 128(%ebp),%eax 228 subl %eax,%esi 229 movl %edi,%ecx 230 rorl %cl,%esi 231 xorl %edi,%esi 232 movl 124(%ebp),%eax 233 subl %eax,%edi 234 movl %esi,%ecx 235 rorl %cl,%edi 236 xorl %esi,%edi 237 movl 120(%ebp),%eax 238 subl %eax,%esi 239 movl %edi,%ecx 240 rorl %cl,%esi 241 xorl %edi,%esi 242 movl 116(%ebp),%eax 243 subl %eax,%edi 244 movl %esi,%ecx 245 rorl %cl,%edi 246 xorl %esi,%edi 247 movl 112(%ebp),%eax 248 subl %eax,%esi 249 movl %edi,%ecx 250 rorl %cl,%esi 251 xorl %edi,%esi 252 movl 108(%ebp),%eax 253 subl %eax,%edi 254 movl %esi,%ecx 255 rorl %cl,%edi 256 xorl %esi,%edi 257.L001rc5_dec_12: 258 movl 104(%ebp),%eax 259 subl %eax,%esi 260 movl %edi,%ecx 261 rorl %cl,%esi 262 xorl %edi,%esi 263 movl 100(%ebp),%eax 264 subl %eax,%edi 265 movl %esi,%ecx 266 rorl %cl,%edi 267 xorl %esi,%edi 268 movl 96(%ebp),%eax 269 subl %eax,%esi 270 movl %edi,%ecx 271 rorl %cl,%esi 272 xorl %edi,%esi 273 movl 92(%ebp),%eax 274 subl %eax,%edi 275 movl %esi,%ecx 276 rorl %cl,%edi 277 xorl %esi,%edi 278 movl 88(%ebp),%eax 279 subl %eax,%esi 280 movl %edi,%ecx 281 rorl %cl,%esi 282 xorl %edi,%esi 283 movl 84(%ebp),%eax 284 subl %eax,%edi 285 movl %esi,%ecx 286 rorl %cl,%edi 287 xorl %esi,%edi 288 movl 80(%ebp),%eax 289 subl %eax,%esi 290 movl %edi,%ecx 291 rorl %cl,%esi 292 xorl %edi,%esi 293 movl 76(%ebp),%eax 294 subl %eax,%edi 295 movl %esi,%ecx 296 rorl %cl,%edi 297 xorl %esi,%edi 298.L002rc5_dec_8: 299 movl 72(%ebp),%eax 300 subl %eax,%esi 301 movl %edi,%ecx 302 rorl %cl,%esi 303 xorl %edi,%esi 304 movl 68(%ebp),%eax 305 subl %eax,%edi 306 movl %esi,%ecx 307 rorl %cl,%edi 308 xorl %esi,%edi 309 movl 64(%ebp),%eax 310 subl %eax,%esi 311 movl %edi,%ecx 312 rorl %cl,%esi 313 xorl %edi,%esi 314 movl 60(%ebp),%eax 315 subl %eax,%edi 316 movl %esi,%ecx 317 rorl %cl,%edi 318 xorl %esi,%edi 319 movl 56(%ebp),%eax 320 subl %eax,%esi 321 movl %edi,%ecx 322 rorl %cl,%esi 323 xorl %edi,%esi 324 movl 52(%ebp),%eax 325 subl %eax,%edi 326 movl %esi,%ecx 327 rorl %cl,%edi 328 xorl %esi,%edi 329 movl 48(%ebp),%eax 330 subl %eax,%esi 331 movl %edi,%ecx 332 rorl %cl,%esi 333 xorl %edi,%esi 334 movl 44(%ebp),%eax 335 subl %eax,%edi 336 movl %esi,%ecx 337 rorl %cl,%edi 338 xorl %esi,%edi 339 movl 40(%ebp),%eax 340 subl %eax,%esi 341 movl %edi,%ecx 342 rorl %cl,%esi 343 xorl %edi,%esi 344 movl 36(%ebp),%eax 345 subl %eax,%edi 346 movl %esi,%ecx 347 rorl %cl,%edi 348 xorl %esi,%edi 349 movl 32(%ebp),%eax 350 subl %eax,%esi 351 movl %edi,%ecx 352 rorl %cl,%esi 353 xorl %edi,%esi 354 movl 28(%ebp),%eax 355 subl %eax,%edi 356 movl %esi,%ecx 357 rorl %cl,%edi 358 xorl %esi,%edi 359 movl 24(%ebp),%eax 360 subl %eax,%esi 361 movl %edi,%ecx 362 rorl %cl,%esi 363 xorl %edi,%esi 364 movl 20(%ebp),%eax 365 subl %eax,%edi 366 movl %esi,%ecx 367 rorl %cl,%edi 368 xorl %esi,%edi 369 movl 16(%ebp),%eax 370 subl %eax,%esi 371 movl %edi,%ecx 372 rorl %cl,%esi 373 xorl %edi,%esi 374 movl 12(%ebp),%eax 375 subl %eax,%edi 376 movl %esi,%ecx 377 rorl %cl,%edi 378 xorl %esi,%edi 379 subl 8(%ebp),%esi 380 subl 4(%ebp),%edi 381.L003rc5_exit: 382 movl %edi,(%edx) 383 movl %esi,4(%edx) 384 popl %ebx 385 popl %edi 386 popl %esi 387 popl %ebp 388 ret 389.size RC5_32_decrypt,.-.L_RC5_32_decrypt_begin 390.globl RC5_32_cbc_encrypt 391.type RC5_32_cbc_encrypt,@function 392.align 16 393RC5_32_cbc_encrypt: 394.L_RC5_32_cbc_encrypt_begin: 395 396 pushl %ebp 397 pushl %ebx 398 pushl %esi 399 pushl %edi 400 movl 28(%esp),%ebp 401 402 movl 36(%esp),%ebx 403 movl (%ebx),%esi 404 movl 4(%ebx),%edi 405 pushl %edi 406 pushl %esi 407 pushl %edi 408 pushl %esi 409 movl %esp,%ebx 410 movl 36(%esp),%esi 411 movl 40(%esp),%edi 412 413 movl 56(%esp),%ecx 414 415 movl 48(%esp),%eax 416 pushl %eax 417 pushl %ebx 418 cmpl $0,%ecx 419 jz .L004decrypt 420 andl $4294967288,%ebp 421 movl 8(%esp),%eax 422 movl 12(%esp),%ebx 423 jz .L005encrypt_finish 424.L006encrypt_loop: 425 movl (%esi),%ecx 426 movl 4(%esi),%edx 427 xorl %ecx,%eax 428 xorl %edx,%ebx 429 movl %eax,8(%esp) 430 movl %ebx,12(%esp) 431 call .L_RC5_32_encrypt_begin 432 movl 8(%esp),%eax 433 movl 12(%esp),%ebx 434 movl %eax,(%edi) 435 movl %ebx,4(%edi) 436 addl $8,%esi 437 addl $8,%edi 438 subl $8,%ebp 439 jnz .L006encrypt_loop 440.L005encrypt_finish: 441 movl 52(%esp),%ebp 442 andl $7,%ebp 443 jz .L007finish 444 call .L008PIC_point 445.L008PIC_point: 446 popl %edx 447 leal .L009cbc_enc_jmp_table-.L008PIC_point(%edx),%ecx 448 movl (%ecx,%ebp,4),%ebp 449 addl %edx,%ebp 450 xorl %ecx,%ecx 451 xorl %edx,%edx 452 jmp *%ebp 453.L010ej7: 454 movb 6(%esi),%dh 455 shll $8,%edx 456.L011ej6: 457 movb 5(%esi),%dh 458.L012ej5: 459 movb 4(%esi),%dl 460.L013ej4: 461 movl (%esi),%ecx 462 jmp .L014ejend 463.L015ej3: 464 movb 2(%esi),%ch 465 shll $8,%ecx 466.L016ej2: 467 movb 1(%esi),%ch 468.L017ej1: 469 movb (%esi),%cl 470.L014ejend: 471 xorl %ecx,%eax 472 xorl %edx,%ebx 473 movl %eax,8(%esp) 474 movl %ebx,12(%esp) 475 call .L_RC5_32_encrypt_begin 476 movl 8(%esp),%eax 477 movl 12(%esp),%ebx 478 movl %eax,(%edi) 479 movl %ebx,4(%edi) 480 jmp .L007finish 481.L004decrypt: 482 andl $4294967288,%ebp 483 movl 16(%esp),%eax 484 movl 20(%esp),%ebx 485 jz .L018decrypt_finish 486.L019decrypt_loop: 487 movl (%esi),%eax 488 movl 4(%esi),%ebx 489 movl %eax,8(%esp) 490 movl %ebx,12(%esp) 491 call .L_RC5_32_decrypt_begin 492 movl 8(%esp),%eax 493 movl 12(%esp),%ebx 494 movl 16(%esp),%ecx 495 movl 20(%esp),%edx 496 xorl %eax,%ecx 497 xorl %ebx,%edx 498 movl (%esi),%eax 499 movl 4(%esi),%ebx 500 movl %ecx,(%edi) 501 movl %edx,4(%edi) 502 movl %eax,16(%esp) 503 movl %ebx,20(%esp) 504 addl $8,%esi 505 addl $8,%edi 506 subl $8,%ebp 507 jnz .L019decrypt_loop 508.L018decrypt_finish: 509 movl 52(%esp),%ebp 510 andl $7,%ebp 511 jz .L007finish 512 movl (%esi),%eax 513 movl 4(%esi),%ebx 514 movl %eax,8(%esp) 515 movl %ebx,12(%esp) 516 call .L_RC5_32_decrypt_begin 517 movl 8(%esp),%eax 518 movl 12(%esp),%ebx 519 movl 16(%esp),%ecx 520 movl 20(%esp),%edx 521 xorl %eax,%ecx 522 xorl %ebx,%edx 523 movl (%esi),%eax 524 movl 4(%esi),%ebx 525.L020dj7: 526 rorl $16,%edx 527 movb %dl,6(%edi) 528 shrl $16,%edx 529.L021dj6: 530 movb %dh,5(%edi) 531.L022dj5: 532 movb %dl,4(%edi) 533.L023dj4: 534 movl %ecx,(%edi) 535 jmp .L024djend 536.L025dj3: 537 rorl $16,%ecx 538 movb %cl,2(%edi) 539 shll $16,%ecx 540.L026dj2: 541 movb %ch,1(%esi) 542.L027dj1: 543 movb %cl,(%esi) 544.L024djend: 545 jmp .L007finish 546.L007finish: 547 movl 60(%esp),%ecx 548 addl $24,%esp 549 movl %eax,(%ecx) 550 movl %ebx,4(%ecx) 551 popl %edi 552 popl %esi 553 popl %ebx 554 popl %ebp 555 ret 556.align 64 557.L009cbc_enc_jmp_table: 558.long 0 559.long .L017ej1-.L008PIC_point 560.long .L016ej2-.L008PIC_point 561.long .L015ej3-.L008PIC_point 562.long .L013ej4-.L008PIC_point 563.long .L012ej5-.L008PIC_point 564.long .L011ej6-.L008PIC_point 565.long .L010ej7-.L008PIC_point 566.align 64 567.size RC5_32_cbc_encrypt,.-.L_RC5_32_cbc_encrypt_begin 568#else 569.file "rc5-586.S" 570.text 571.globl RC5_32_encrypt 572.type RC5_32_encrypt,@function 573.align 16 574RC5_32_encrypt: 575.L_RC5_32_encrypt_begin: 576 577 pushl %ebp 578 pushl %esi 579 pushl %edi 580 movl 16(%esp),%edx 581 movl 20(%esp),%ebp 582 583 movl (%edx),%edi 584 movl 4(%edx),%esi 585 pushl %ebx 586 movl (%ebp),%ebx 587 addl 4(%ebp),%edi 588 addl 8(%ebp),%esi 589 xorl %esi,%edi 590 movl 12(%ebp),%eax 591 movl %esi,%ecx 592 roll %cl,%edi 593 addl %eax,%edi 594 xorl %edi,%esi 595 movl 16(%ebp),%eax 596 movl %edi,%ecx 597 roll %cl,%esi 598 addl %eax,%esi 599 xorl %esi,%edi 600 movl 20(%ebp),%eax 601 movl %esi,%ecx 602 roll %cl,%edi 603 addl %eax,%edi 604 xorl %edi,%esi 605 movl 24(%ebp),%eax 606 movl %edi,%ecx 607 roll %cl,%esi 608 addl %eax,%esi 609 xorl %esi,%edi 610 movl 28(%ebp),%eax 611 movl %esi,%ecx 612 roll %cl,%edi 613 addl %eax,%edi 614 xorl %edi,%esi 615 movl 32(%ebp),%eax 616 movl %edi,%ecx 617 roll %cl,%esi 618 addl %eax,%esi 619 xorl %esi,%edi 620 movl 36(%ebp),%eax 621 movl %esi,%ecx 622 roll %cl,%edi 623 addl %eax,%edi 624 xorl %edi,%esi 625 movl 40(%ebp),%eax 626 movl %edi,%ecx 627 roll %cl,%esi 628 addl %eax,%esi 629 xorl %esi,%edi 630 movl 44(%ebp),%eax 631 movl %esi,%ecx 632 roll %cl,%edi 633 addl %eax,%edi 634 xorl %edi,%esi 635 movl 48(%ebp),%eax 636 movl %edi,%ecx 637 roll %cl,%esi 638 addl %eax,%esi 639 xorl %esi,%edi 640 movl 52(%ebp),%eax 641 movl %esi,%ecx 642 roll %cl,%edi 643 addl %eax,%edi 644 xorl %edi,%esi 645 movl 56(%ebp),%eax 646 movl %edi,%ecx 647 roll %cl,%esi 648 addl %eax,%esi 649 xorl %esi,%edi 650 movl 60(%ebp),%eax 651 movl %esi,%ecx 652 roll %cl,%edi 653 addl %eax,%edi 654 xorl %edi,%esi 655 movl 64(%ebp),%eax 656 movl %edi,%ecx 657 roll %cl,%esi 658 addl %eax,%esi 659 xorl %esi,%edi 660 movl 68(%ebp),%eax 661 movl %esi,%ecx 662 roll %cl,%edi 663 addl %eax,%edi 664 xorl %edi,%esi 665 movl 72(%ebp),%eax 666 movl %edi,%ecx 667 roll %cl,%esi 668 addl %eax,%esi 669 cmpl $8,%ebx 670 je .L000rc5_exit 671 xorl %esi,%edi 672 movl 76(%ebp),%eax 673 movl %esi,%ecx 674 roll %cl,%edi 675 addl %eax,%edi 676 xorl %edi,%esi 677 movl 80(%ebp),%eax 678 movl %edi,%ecx 679 roll %cl,%esi 680 addl %eax,%esi 681 xorl %esi,%edi 682 movl 84(%ebp),%eax 683 movl %esi,%ecx 684 roll %cl,%edi 685 addl %eax,%edi 686 xorl %edi,%esi 687 movl 88(%ebp),%eax 688 movl %edi,%ecx 689 roll %cl,%esi 690 addl %eax,%esi 691 xorl %esi,%edi 692 movl 92(%ebp),%eax 693 movl %esi,%ecx 694 roll %cl,%edi 695 addl %eax,%edi 696 xorl %edi,%esi 697 movl 96(%ebp),%eax 698 movl %edi,%ecx 699 roll %cl,%esi 700 addl %eax,%esi 701 xorl %esi,%edi 702 movl 100(%ebp),%eax 703 movl %esi,%ecx 704 roll %cl,%edi 705 addl %eax,%edi 706 xorl %edi,%esi 707 movl 104(%ebp),%eax 708 movl %edi,%ecx 709 roll %cl,%esi 710 addl %eax,%esi 711 cmpl $12,%ebx 712 je .L000rc5_exit 713 xorl %esi,%edi 714 movl 108(%ebp),%eax 715 movl %esi,%ecx 716 roll %cl,%edi 717 addl %eax,%edi 718 xorl %edi,%esi 719 movl 112(%ebp),%eax 720 movl %edi,%ecx 721 roll %cl,%esi 722 addl %eax,%esi 723 xorl %esi,%edi 724 movl 116(%ebp),%eax 725 movl %esi,%ecx 726 roll %cl,%edi 727 addl %eax,%edi 728 xorl %edi,%esi 729 movl 120(%ebp),%eax 730 movl %edi,%ecx 731 roll %cl,%esi 732 addl %eax,%esi 733 xorl %esi,%edi 734 movl 124(%ebp),%eax 735 movl %esi,%ecx 736 roll %cl,%edi 737 addl %eax,%edi 738 xorl %edi,%esi 739 movl 128(%ebp),%eax 740 movl %edi,%ecx 741 roll %cl,%esi 742 addl %eax,%esi 743 xorl %esi,%edi 744 movl 132(%ebp),%eax 745 movl %esi,%ecx 746 roll %cl,%edi 747 addl %eax,%edi 748 xorl %edi,%esi 749 movl 136(%ebp),%eax 750 movl %edi,%ecx 751 roll %cl,%esi 752 addl %eax,%esi 753.L000rc5_exit: 754 movl %edi,(%edx) 755 movl %esi,4(%edx) 756 popl %ebx 757 popl %edi 758 popl %esi 759 popl %ebp 760 ret 761.size RC5_32_encrypt,.-.L_RC5_32_encrypt_begin 762.globl RC5_32_decrypt 763.type RC5_32_decrypt,@function 764.align 16 765RC5_32_decrypt: 766.L_RC5_32_decrypt_begin: 767 768 pushl %ebp 769 pushl %esi 770 pushl %edi 771 movl 16(%esp),%edx 772 movl 20(%esp),%ebp 773 774 movl (%edx),%edi 775 movl 4(%edx),%esi 776 pushl %ebx 777 movl (%ebp),%ebx 778 cmpl $12,%ebx 779 je .L001rc5_dec_12 780 cmpl $8,%ebx 781 je .L002rc5_dec_8 782 movl 136(%ebp),%eax 783 subl %eax,%esi 784 movl %edi,%ecx 785 rorl %cl,%esi 786 xorl %edi,%esi 787 movl 132(%ebp),%eax 788 subl %eax,%edi 789 movl %esi,%ecx 790 rorl %cl,%edi 791 xorl %esi,%edi 792 movl 128(%ebp),%eax 793 subl %eax,%esi 794 movl %edi,%ecx 795 rorl %cl,%esi 796 xorl %edi,%esi 797 movl 124(%ebp),%eax 798 subl %eax,%edi 799 movl %esi,%ecx 800 rorl %cl,%edi 801 xorl %esi,%edi 802 movl 120(%ebp),%eax 803 subl %eax,%esi 804 movl %edi,%ecx 805 rorl %cl,%esi 806 xorl %edi,%esi 807 movl 116(%ebp),%eax 808 subl %eax,%edi 809 movl %esi,%ecx 810 rorl %cl,%edi 811 xorl %esi,%edi 812 movl 112(%ebp),%eax 813 subl %eax,%esi 814 movl %edi,%ecx 815 rorl %cl,%esi 816 xorl %edi,%esi 817 movl 108(%ebp),%eax 818 subl %eax,%edi 819 movl %esi,%ecx 820 rorl %cl,%edi 821 xorl %esi,%edi 822.L001rc5_dec_12: 823 movl 104(%ebp),%eax 824 subl %eax,%esi 825 movl %edi,%ecx 826 rorl %cl,%esi 827 xorl %edi,%esi 828 movl 100(%ebp),%eax 829 subl %eax,%edi 830 movl %esi,%ecx 831 rorl %cl,%edi 832 xorl %esi,%edi 833 movl 96(%ebp),%eax 834 subl %eax,%esi 835 movl %edi,%ecx 836 rorl %cl,%esi 837 xorl %edi,%esi 838 movl 92(%ebp),%eax 839 subl %eax,%edi 840 movl %esi,%ecx 841 rorl %cl,%edi 842 xorl %esi,%edi 843 movl 88(%ebp),%eax 844 subl %eax,%esi 845 movl %edi,%ecx 846 rorl %cl,%esi 847 xorl %edi,%esi 848 movl 84(%ebp),%eax 849 subl %eax,%edi 850 movl %esi,%ecx 851 rorl %cl,%edi 852 xorl %esi,%edi 853 movl 80(%ebp),%eax 854 subl %eax,%esi 855 movl %edi,%ecx 856 rorl %cl,%esi 857 xorl %edi,%esi 858 movl 76(%ebp),%eax 859 subl %eax,%edi 860 movl %esi,%ecx 861 rorl %cl,%edi 862 xorl %esi,%edi 863.L002rc5_dec_8: 864 movl 72(%ebp),%eax 865 subl %eax,%esi 866 movl %edi,%ecx 867 rorl %cl,%esi 868 xorl %edi,%esi 869 movl 68(%ebp),%eax 870 subl %eax,%edi 871 movl %esi,%ecx 872 rorl %cl,%edi 873 xorl %esi,%edi 874 movl 64(%ebp),%eax 875 subl %eax,%esi 876 movl %edi,%ecx 877 rorl %cl,%esi 878 xorl %edi,%esi 879 movl 60(%ebp),%eax 880 subl %eax,%edi 881 movl %esi,%ecx 882 rorl %cl,%edi 883 xorl %esi,%edi 884 movl 56(%ebp),%eax 885 subl %eax,%esi 886 movl %edi,%ecx 887 rorl %cl,%esi 888 xorl %edi,%esi 889 movl 52(%ebp),%eax 890 subl %eax,%edi 891 movl %esi,%ecx 892 rorl %cl,%edi 893 xorl %esi,%edi 894 movl 48(%ebp),%eax 895 subl %eax,%esi 896 movl %edi,%ecx 897 rorl %cl,%esi 898 xorl %edi,%esi 899 movl 44(%ebp),%eax 900 subl %eax,%edi 901 movl %esi,%ecx 902 rorl %cl,%edi 903 xorl %esi,%edi 904 movl 40(%ebp),%eax 905 subl %eax,%esi 906 movl %edi,%ecx 907 rorl %cl,%esi 908 xorl %edi,%esi 909 movl 36(%ebp),%eax 910 subl %eax,%edi 911 movl %esi,%ecx 912 rorl %cl,%edi 913 xorl %esi,%edi 914 movl 32(%ebp),%eax 915 subl %eax,%esi 916 movl %edi,%ecx 917 rorl %cl,%esi 918 xorl %edi,%esi 919 movl 28(%ebp),%eax 920 subl %eax,%edi 921 movl %esi,%ecx 922 rorl %cl,%edi 923 xorl %esi,%edi 924 movl 24(%ebp),%eax 925 subl %eax,%esi 926 movl %edi,%ecx 927 rorl %cl,%esi 928 xorl %edi,%esi 929 movl 20(%ebp),%eax 930 subl %eax,%edi 931 movl %esi,%ecx 932 rorl %cl,%edi 933 xorl %esi,%edi 934 movl 16(%ebp),%eax 935 subl %eax,%esi 936 movl %edi,%ecx 937 rorl %cl,%esi 938 xorl %edi,%esi 939 movl 12(%ebp),%eax 940 subl %eax,%edi 941 movl %esi,%ecx 942 rorl %cl,%edi 943 xorl %esi,%edi 944 subl 8(%ebp),%esi 945 subl 4(%ebp),%edi 946.L003rc5_exit: 947 movl %edi,(%edx) 948 movl %esi,4(%edx) 949 popl %ebx 950 popl %edi 951 popl %esi 952 popl %ebp 953 ret 954.size RC5_32_decrypt,.-.L_RC5_32_decrypt_begin 955.globl RC5_32_cbc_encrypt 956.type RC5_32_cbc_encrypt,@function 957.align 16 958RC5_32_cbc_encrypt: 959.L_RC5_32_cbc_encrypt_begin: 960 961 pushl %ebp 962 pushl %ebx 963 pushl %esi 964 pushl %edi 965 movl 28(%esp),%ebp 966 967 movl 36(%esp),%ebx 968 movl (%ebx),%esi 969 movl 4(%ebx),%edi 970 pushl %edi 971 pushl %esi 972 pushl %edi 973 pushl %esi 974 movl %esp,%ebx 975 movl 36(%esp),%esi 976 movl 40(%esp),%edi 977 978 movl 56(%esp),%ecx 979 980 movl 48(%esp),%eax 981 pushl %eax 982 pushl %ebx 983 cmpl $0,%ecx 984 jz .L004decrypt 985 andl $4294967288,%ebp 986 movl 8(%esp),%eax 987 movl 12(%esp),%ebx 988 jz .L005encrypt_finish 989.L006encrypt_loop: 990 movl (%esi),%ecx 991 movl 4(%esi),%edx 992 xorl %ecx,%eax 993 xorl %edx,%ebx 994 movl %eax,8(%esp) 995 movl %ebx,12(%esp) 996 call .L_RC5_32_encrypt_begin 997 movl 8(%esp),%eax 998 movl 12(%esp),%ebx 999 movl %eax,(%edi) 1000 movl %ebx,4(%edi) 1001 addl $8,%esi 1002 addl $8,%edi 1003 subl $8,%ebp 1004 jnz .L006encrypt_loop 1005.L005encrypt_finish: 1006 movl 52(%esp),%ebp 1007 andl $7,%ebp 1008 jz .L007finish 1009 call .L008PIC_point 1010.L008PIC_point: 1011 popl %edx 1012 leal .L009cbc_enc_jmp_table-.L008PIC_point(%edx),%ecx 1013 movl (%ecx,%ebp,4),%ebp 1014 addl %edx,%ebp 1015 xorl %ecx,%ecx 1016 xorl %edx,%edx 1017 jmp *%ebp 1018.L010ej7: 1019 movb 6(%esi),%dh 1020 shll $8,%edx 1021.L011ej6: 1022 movb 5(%esi),%dh 1023.L012ej5: 1024 movb 4(%esi),%dl 1025.L013ej4: 1026 movl (%esi),%ecx 1027 jmp .L014ejend 1028.L015ej3: 1029 movb 2(%esi),%ch 1030 shll $8,%ecx 1031.L016ej2: 1032 movb 1(%esi),%ch 1033.L017ej1: 1034 movb (%esi),%cl 1035.L014ejend: 1036 xorl %ecx,%eax 1037 xorl %edx,%ebx 1038 movl %eax,8(%esp) 1039 movl %ebx,12(%esp) 1040 call .L_RC5_32_encrypt_begin 1041 movl 8(%esp),%eax 1042 movl 12(%esp),%ebx 1043 movl %eax,(%edi) 1044 movl %ebx,4(%edi) 1045 jmp .L007finish 1046.L004decrypt: 1047 andl $4294967288,%ebp 1048 movl 16(%esp),%eax 1049 movl 20(%esp),%ebx 1050 jz .L018decrypt_finish 1051.L019decrypt_loop: 1052 movl (%esi),%eax 1053 movl 4(%esi),%ebx 1054 movl %eax,8(%esp) 1055 movl %ebx,12(%esp) 1056 call .L_RC5_32_decrypt_begin 1057 movl 8(%esp),%eax 1058 movl 12(%esp),%ebx 1059 movl 16(%esp),%ecx 1060 movl 20(%esp),%edx 1061 xorl %eax,%ecx 1062 xorl %ebx,%edx 1063 movl (%esi),%eax 1064 movl 4(%esi),%ebx 1065 movl %ecx,(%edi) 1066 movl %edx,4(%edi) 1067 movl %eax,16(%esp) 1068 movl %ebx,20(%esp) 1069 addl $8,%esi 1070 addl $8,%edi 1071 subl $8,%ebp 1072 jnz .L019decrypt_loop 1073.L018decrypt_finish: 1074 movl 52(%esp),%ebp 1075 andl $7,%ebp 1076 jz .L007finish 1077 movl (%esi),%eax 1078 movl 4(%esi),%ebx 1079 movl %eax,8(%esp) 1080 movl %ebx,12(%esp) 1081 call .L_RC5_32_decrypt_begin 1082 movl 8(%esp),%eax 1083 movl 12(%esp),%ebx 1084 movl 16(%esp),%ecx 1085 movl 20(%esp),%edx 1086 xorl %eax,%ecx 1087 xorl %ebx,%edx 1088 movl (%esi),%eax 1089 movl 4(%esi),%ebx 1090.L020dj7: 1091 rorl $16,%edx 1092 movb %dl,6(%edi) 1093 shrl $16,%edx 1094.L021dj6: 1095 movb %dh,5(%edi) 1096.L022dj5: 1097 movb %dl,4(%edi) 1098.L023dj4: 1099 movl %ecx,(%edi) 1100 jmp .L024djend 1101.L025dj3: 1102 rorl $16,%ecx 1103 movb %cl,2(%edi) 1104 shll $16,%ecx 1105.L026dj2: 1106 movb %ch,1(%esi) 1107.L027dj1: 1108 movb %cl,(%esi) 1109.L024djend: 1110 jmp .L007finish 1111.L007finish: 1112 movl 60(%esp),%ecx 1113 addl $24,%esp 1114 movl %eax,(%ecx) 1115 movl %ebx,4(%ecx) 1116 popl %edi 1117 popl %esi 1118 popl %ebx 1119 popl %ebp 1120 ret 1121.align 64 1122.L009cbc_enc_jmp_table: 1123.long 0 1124.long .L017ej1-.L008PIC_point 1125.long .L016ej2-.L008PIC_point 1126.long .L015ej3-.L008PIC_point 1127.long .L013ej4-.L008PIC_point 1128.long .L012ej5-.L008PIC_point 1129.long .L011ej6-.L008PIC_point 1130.long .L010ej7-.L008PIC_point 1131.align 64 1132.size RC5_32_cbc_encrypt,.-.L_RC5_32_cbc_encrypt_begin 1133#endif 1134