bf-686.s revision 238405
1 # $FreeBSD: head/secure/lib/libcrypto/i386/bf-686.s 238405 2012-07-12 19:30:53Z jkim $ 2.file "bf-686.s" 3.text 4.globl BF_encrypt 5.type BF_encrypt,@function 6.align 16 7BF_encrypt: 8.L_BF_encrypt_begin: 9 pushl %ebp 10 pushl %ebx 11 pushl %esi 12 pushl %edi 13 14 15 movl 20(%esp),%eax 16 movl (%eax),%ecx 17 movl 4(%eax),%edx 18 19 20 movl 24(%esp),%edi 21 xorl %eax,%eax 22 xorl %ebx,%ebx 23 xorl (%edi),%ecx 24 25 26 rorl $16,%ecx 27 movl 4(%edi),%esi 28 movb %ch,%al 29 movb %cl,%bl 30 rorl $16,%ecx 31 xorl %esi,%edx 32 movl 72(%edi,%eax,4),%esi 33 movl 1096(%edi,%ebx,4),%ebp 34 movb %ch,%al 35 movb %cl,%bl 36 addl %ebp,%esi 37 movl 2120(%edi,%eax,4),%eax 38 xorl %eax,%esi 39 movl 3144(%edi,%ebx,4),%ebp 40 addl %ebp,%esi 41 xorl %eax,%eax 42 xorl %esi,%edx 43 44 45 rorl $16,%edx 46 movl 8(%edi),%esi 47 movb %dh,%al 48 movb %dl,%bl 49 rorl $16,%edx 50 xorl %esi,%ecx 51 movl 72(%edi,%eax,4),%esi 52 movl 1096(%edi,%ebx,4),%ebp 53 movb %dh,%al 54 movb %dl,%bl 55 addl %ebp,%esi 56 movl 2120(%edi,%eax,4),%eax 57 xorl %eax,%esi 58 movl 3144(%edi,%ebx,4),%ebp 59 addl %ebp,%esi 60 xorl %eax,%eax 61 xorl %esi,%ecx 62 63 64 rorl $16,%ecx 65 movl 12(%edi),%esi 66 movb %ch,%al 67 movb %cl,%bl 68 rorl $16,%ecx 69 xorl %esi,%edx 70 movl 72(%edi,%eax,4),%esi 71 movl 1096(%edi,%ebx,4),%ebp 72 movb %ch,%al 73 movb %cl,%bl 74 addl %ebp,%esi 75 movl 2120(%edi,%eax,4),%eax 76 xorl %eax,%esi 77 movl 3144(%edi,%ebx,4),%ebp 78 addl %ebp,%esi 79 xorl %eax,%eax 80 xorl %esi,%edx 81 82 83 rorl $16,%edx 84 movl 16(%edi),%esi 85 movb %dh,%al 86 movb %dl,%bl 87 rorl $16,%edx 88 xorl %esi,%ecx 89 movl 72(%edi,%eax,4),%esi 90 movl 1096(%edi,%ebx,4),%ebp 91 movb %dh,%al 92 movb %dl,%bl 93 addl %ebp,%esi 94 movl 2120(%edi,%eax,4),%eax 95 xorl %eax,%esi 96 movl 3144(%edi,%ebx,4),%ebp 97 addl %ebp,%esi 98 xorl %eax,%eax 99 xorl %esi,%ecx 100 101 102 rorl $16,%ecx 103 movl 20(%edi),%esi 104 movb %ch,%al 105 movb %cl,%bl 106 rorl $16,%ecx 107 xorl %esi,%edx 108 movl 72(%edi,%eax,4),%esi 109 movl 1096(%edi,%ebx,4),%ebp 110 movb %ch,%al 111 movb %cl,%bl 112 addl %ebp,%esi 113 movl 2120(%edi,%eax,4),%eax 114 xorl %eax,%esi 115 movl 3144(%edi,%ebx,4),%ebp 116 addl %ebp,%esi 117 xorl %eax,%eax 118 xorl %esi,%edx 119 120 121 rorl $16,%edx 122 movl 24(%edi),%esi 123 movb %dh,%al 124 movb %dl,%bl 125 rorl $16,%edx 126 xorl %esi,%ecx 127 movl 72(%edi,%eax,4),%esi 128 movl 1096(%edi,%ebx,4),%ebp 129 movb %dh,%al 130 movb %dl,%bl 131 addl %ebp,%esi 132 movl 2120(%edi,%eax,4),%eax 133 xorl %eax,%esi 134 movl 3144(%edi,%ebx,4),%ebp 135 addl %ebp,%esi 136 xorl %eax,%eax 137 xorl %esi,%ecx 138 139 140 rorl $16,%ecx 141 movl 28(%edi),%esi 142 movb %ch,%al 143 movb %cl,%bl 144 rorl $16,%ecx 145 xorl %esi,%edx 146 movl 72(%edi,%eax,4),%esi 147 movl 1096(%edi,%ebx,4),%ebp 148 movb %ch,%al 149 movb %cl,%bl 150 addl %ebp,%esi 151 movl 2120(%edi,%eax,4),%eax 152 xorl %eax,%esi 153 movl 3144(%edi,%ebx,4),%ebp 154 addl %ebp,%esi 155 xorl %eax,%eax 156 xorl %esi,%edx 157 158 159 rorl $16,%edx 160 movl 32(%edi),%esi 161 movb %dh,%al 162 movb %dl,%bl 163 rorl $16,%edx 164 xorl %esi,%ecx 165 movl 72(%edi,%eax,4),%esi 166 movl 1096(%edi,%ebx,4),%ebp 167 movb %dh,%al 168 movb %dl,%bl 169 addl %ebp,%esi 170 movl 2120(%edi,%eax,4),%eax 171 xorl %eax,%esi 172 movl 3144(%edi,%ebx,4),%ebp 173 addl %ebp,%esi 174 xorl %eax,%eax 175 xorl %esi,%ecx 176 177 178 rorl $16,%ecx 179 movl 36(%edi),%esi 180 movb %ch,%al 181 movb %cl,%bl 182 rorl $16,%ecx 183 xorl %esi,%edx 184 movl 72(%edi,%eax,4),%esi 185 movl 1096(%edi,%ebx,4),%ebp 186 movb %ch,%al 187 movb %cl,%bl 188 addl %ebp,%esi 189 movl 2120(%edi,%eax,4),%eax 190 xorl %eax,%esi 191 movl 3144(%edi,%ebx,4),%ebp 192 addl %ebp,%esi 193 xorl %eax,%eax 194 xorl %esi,%edx 195 196 197 rorl $16,%edx 198 movl 40(%edi),%esi 199 movb %dh,%al 200 movb %dl,%bl 201 rorl $16,%edx 202 xorl %esi,%ecx 203 movl 72(%edi,%eax,4),%esi 204 movl 1096(%edi,%ebx,4),%ebp 205 movb %dh,%al 206 movb %dl,%bl 207 addl %ebp,%esi 208 movl 2120(%edi,%eax,4),%eax 209 xorl %eax,%esi 210 movl 3144(%edi,%ebx,4),%ebp 211 addl %ebp,%esi 212 xorl %eax,%eax 213 xorl %esi,%ecx 214 215 216 rorl $16,%ecx 217 movl 44(%edi),%esi 218 movb %ch,%al 219 movb %cl,%bl 220 rorl $16,%ecx 221 xorl %esi,%edx 222 movl 72(%edi,%eax,4),%esi 223 movl 1096(%edi,%ebx,4),%ebp 224 movb %ch,%al 225 movb %cl,%bl 226 addl %ebp,%esi 227 movl 2120(%edi,%eax,4),%eax 228 xorl %eax,%esi 229 movl 3144(%edi,%ebx,4),%ebp 230 addl %ebp,%esi 231 xorl %eax,%eax 232 xorl %esi,%edx 233 234 235 rorl $16,%edx 236 movl 48(%edi),%esi 237 movb %dh,%al 238 movb %dl,%bl 239 rorl $16,%edx 240 xorl %esi,%ecx 241 movl 72(%edi,%eax,4),%esi 242 movl 1096(%edi,%ebx,4),%ebp 243 movb %dh,%al 244 movb %dl,%bl 245 addl %ebp,%esi 246 movl 2120(%edi,%eax,4),%eax 247 xorl %eax,%esi 248 movl 3144(%edi,%ebx,4),%ebp 249 addl %ebp,%esi 250 xorl %eax,%eax 251 xorl %esi,%ecx 252 253 254 rorl $16,%ecx 255 movl 52(%edi),%esi 256 movb %ch,%al 257 movb %cl,%bl 258 rorl $16,%ecx 259 xorl %esi,%edx 260 movl 72(%edi,%eax,4),%esi 261 movl 1096(%edi,%ebx,4),%ebp 262 movb %ch,%al 263 movb %cl,%bl 264 addl %ebp,%esi 265 movl 2120(%edi,%eax,4),%eax 266 xorl %eax,%esi 267 movl 3144(%edi,%ebx,4),%ebp 268 addl %ebp,%esi 269 xorl %eax,%eax 270 xorl %esi,%edx 271 272 273 rorl $16,%edx 274 movl 56(%edi),%esi 275 movb %dh,%al 276 movb %dl,%bl 277 rorl $16,%edx 278 xorl %esi,%ecx 279 movl 72(%edi,%eax,4),%esi 280 movl 1096(%edi,%ebx,4),%ebp 281 movb %dh,%al 282 movb %dl,%bl 283 addl %ebp,%esi 284 movl 2120(%edi,%eax,4),%eax 285 xorl %eax,%esi 286 movl 3144(%edi,%ebx,4),%ebp 287 addl %ebp,%esi 288 xorl %eax,%eax 289 xorl %esi,%ecx 290 291 292 rorl $16,%ecx 293 movl 60(%edi),%esi 294 movb %ch,%al 295 movb %cl,%bl 296 rorl $16,%ecx 297 xorl %esi,%edx 298 movl 72(%edi,%eax,4),%esi 299 movl 1096(%edi,%ebx,4),%ebp 300 movb %ch,%al 301 movb %cl,%bl 302 addl %ebp,%esi 303 movl 2120(%edi,%eax,4),%eax 304 xorl %eax,%esi 305 movl 3144(%edi,%ebx,4),%ebp 306 addl %ebp,%esi 307 xorl %eax,%eax 308 xorl %esi,%edx 309 310 311 rorl $16,%edx 312 movl 64(%edi),%esi 313 movb %dh,%al 314 movb %dl,%bl 315 rorl $16,%edx 316 xorl %esi,%ecx 317 movl 72(%edi,%eax,4),%esi 318 movl 1096(%edi,%ebx,4),%ebp 319 movb %dh,%al 320 movb %dl,%bl 321 addl %ebp,%esi 322 movl 2120(%edi,%eax,4),%eax 323 xorl %eax,%esi 324 movl 3144(%edi,%ebx,4),%ebp 325 addl %ebp,%esi 326 xorl %eax,%eax 327 xorl %esi,%ecx 328 xorl 68(%edi),%edx 329 movl 20(%esp),%eax 330 movl %edx,(%eax) 331 movl %ecx,4(%eax) 332 popl %edi 333 popl %esi 334 popl %ebx 335 popl %ebp 336 ret 337.size BF_encrypt,.-.L_BF_encrypt_begin 338.globl BF_decrypt 339.type BF_decrypt,@function 340.align 16 341BF_decrypt: 342.L_BF_decrypt_begin: 343 pushl %ebp 344 pushl %ebx 345 pushl %esi 346 pushl %edi 347 348 349 movl 20(%esp),%eax 350 movl (%eax),%ecx 351 movl 4(%eax),%edx 352 353 354 movl 24(%esp),%edi 355 xorl %eax,%eax 356 xorl %ebx,%ebx 357 xorl 68(%edi),%ecx 358 359 360 rorl $16,%ecx 361 movl 64(%edi),%esi 362 movb %ch,%al 363 movb %cl,%bl 364 rorl $16,%ecx 365 xorl %esi,%edx 366 movl 72(%edi,%eax,4),%esi 367 movl 1096(%edi,%ebx,4),%ebp 368 movb %ch,%al 369 movb %cl,%bl 370 addl %ebp,%esi 371 movl 2120(%edi,%eax,4),%eax 372 xorl %eax,%esi 373 movl 3144(%edi,%ebx,4),%ebp 374 addl %ebp,%esi 375 xorl %eax,%eax 376 xorl %esi,%edx 377 378 379 rorl $16,%edx 380 movl 60(%edi),%esi 381 movb %dh,%al 382 movb %dl,%bl 383 rorl $16,%edx 384 xorl %esi,%ecx 385 movl 72(%edi,%eax,4),%esi 386 movl 1096(%edi,%ebx,4),%ebp 387 movb %dh,%al 388 movb %dl,%bl 389 addl %ebp,%esi 390 movl 2120(%edi,%eax,4),%eax 391 xorl %eax,%esi 392 movl 3144(%edi,%ebx,4),%ebp 393 addl %ebp,%esi 394 xorl %eax,%eax 395 xorl %esi,%ecx 396 397 398 rorl $16,%ecx 399 movl 56(%edi),%esi 400 movb %ch,%al 401 movb %cl,%bl 402 rorl $16,%ecx 403 xorl %esi,%edx 404 movl 72(%edi,%eax,4),%esi 405 movl 1096(%edi,%ebx,4),%ebp 406 movb %ch,%al 407 movb %cl,%bl 408 addl %ebp,%esi 409 movl 2120(%edi,%eax,4),%eax 410 xorl %eax,%esi 411 movl 3144(%edi,%ebx,4),%ebp 412 addl %ebp,%esi 413 xorl %eax,%eax 414 xorl %esi,%edx 415 416 417 rorl $16,%edx 418 movl 52(%edi),%esi 419 movb %dh,%al 420 movb %dl,%bl 421 rorl $16,%edx 422 xorl %esi,%ecx 423 movl 72(%edi,%eax,4),%esi 424 movl 1096(%edi,%ebx,4),%ebp 425 movb %dh,%al 426 movb %dl,%bl 427 addl %ebp,%esi 428 movl 2120(%edi,%eax,4),%eax 429 xorl %eax,%esi 430 movl 3144(%edi,%ebx,4),%ebp 431 addl %ebp,%esi 432 xorl %eax,%eax 433 xorl %esi,%ecx 434 435 436 rorl $16,%ecx 437 movl 48(%edi),%esi 438 movb %ch,%al 439 movb %cl,%bl 440 rorl $16,%ecx 441 xorl %esi,%edx 442 movl 72(%edi,%eax,4),%esi 443 movl 1096(%edi,%ebx,4),%ebp 444 movb %ch,%al 445 movb %cl,%bl 446 addl %ebp,%esi 447 movl 2120(%edi,%eax,4),%eax 448 xorl %eax,%esi 449 movl 3144(%edi,%ebx,4),%ebp 450 addl %ebp,%esi 451 xorl %eax,%eax 452 xorl %esi,%edx 453 454 455 rorl $16,%edx 456 movl 44(%edi),%esi 457 movb %dh,%al 458 movb %dl,%bl 459 rorl $16,%edx 460 xorl %esi,%ecx 461 movl 72(%edi,%eax,4),%esi 462 movl 1096(%edi,%ebx,4),%ebp 463 movb %dh,%al 464 movb %dl,%bl 465 addl %ebp,%esi 466 movl 2120(%edi,%eax,4),%eax 467 xorl %eax,%esi 468 movl 3144(%edi,%ebx,4),%ebp 469 addl %ebp,%esi 470 xorl %eax,%eax 471 xorl %esi,%ecx 472 473 474 rorl $16,%ecx 475 movl 40(%edi),%esi 476 movb %ch,%al 477 movb %cl,%bl 478 rorl $16,%ecx 479 xorl %esi,%edx 480 movl 72(%edi,%eax,4),%esi 481 movl 1096(%edi,%ebx,4),%ebp 482 movb %ch,%al 483 movb %cl,%bl 484 addl %ebp,%esi 485 movl 2120(%edi,%eax,4),%eax 486 xorl %eax,%esi 487 movl 3144(%edi,%ebx,4),%ebp 488 addl %ebp,%esi 489 xorl %eax,%eax 490 xorl %esi,%edx 491 492 493 rorl $16,%edx 494 movl 36(%edi),%esi 495 movb %dh,%al 496 movb %dl,%bl 497 rorl $16,%edx 498 xorl %esi,%ecx 499 movl 72(%edi,%eax,4),%esi 500 movl 1096(%edi,%ebx,4),%ebp 501 movb %dh,%al 502 movb %dl,%bl 503 addl %ebp,%esi 504 movl 2120(%edi,%eax,4),%eax 505 xorl %eax,%esi 506 movl 3144(%edi,%ebx,4),%ebp 507 addl %ebp,%esi 508 xorl %eax,%eax 509 xorl %esi,%ecx 510 511 512 rorl $16,%ecx 513 movl 32(%edi),%esi 514 movb %ch,%al 515 movb %cl,%bl 516 rorl $16,%ecx 517 xorl %esi,%edx 518 movl 72(%edi,%eax,4),%esi 519 movl 1096(%edi,%ebx,4),%ebp 520 movb %ch,%al 521 movb %cl,%bl 522 addl %ebp,%esi 523 movl 2120(%edi,%eax,4),%eax 524 xorl %eax,%esi 525 movl 3144(%edi,%ebx,4),%ebp 526 addl %ebp,%esi 527 xorl %eax,%eax 528 xorl %esi,%edx 529 530 531 rorl $16,%edx 532 movl 28(%edi),%esi 533 movb %dh,%al 534 movb %dl,%bl 535 rorl $16,%edx 536 xorl %esi,%ecx 537 movl 72(%edi,%eax,4),%esi 538 movl 1096(%edi,%ebx,4),%ebp 539 movb %dh,%al 540 movb %dl,%bl 541 addl %ebp,%esi 542 movl 2120(%edi,%eax,4),%eax 543 xorl %eax,%esi 544 movl 3144(%edi,%ebx,4),%ebp 545 addl %ebp,%esi 546 xorl %eax,%eax 547 xorl %esi,%ecx 548 549 550 rorl $16,%ecx 551 movl 24(%edi),%esi 552 movb %ch,%al 553 movb %cl,%bl 554 rorl $16,%ecx 555 xorl %esi,%edx 556 movl 72(%edi,%eax,4),%esi 557 movl 1096(%edi,%ebx,4),%ebp 558 movb %ch,%al 559 movb %cl,%bl 560 addl %ebp,%esi 561 movl 2120(%edi,%eax,4),%eax 562 xorl %eax,%esi 563 movl 3144(%edi,%ebx,4),%ebp 564 addl %ebp,%esi 565 xorl %eax,%eax 566 xorl %esi,%edx 567 568 569 rorl $16,%edx 570 movl 20(%edi),%esi 571 movb %dh,%al 572 movb %dl,%bl 573 rorl $16,%edx 574 xorl %esi,%ecx 575 movl 72(%edi,%eax,4),%esi 576 movl 1096(%edi,%ebx,4),%ebp 577 movb %dh,%al 578 movb %dl,%bl 579 addl %ebp,%esi 580 movl 2120(%edi,%eax,4),%eax 581 xorl %eax,%esi 582 movl 3144(%edi,%ebx,4),%ebp 583 addl %ebp,%esi 584 xorl %eax,%eax 585 xorl %esi,%ecx 586 587 588 rorl $16,%ecx 589 movl 16(%edi),%esi 590 movb %ch,%al 591 movb %cl,%bl 592 rorl $16,%ecx 593 xorl %esi,%edx 594 movl 72(%edi,%eax,4),%esi 595 movl 1096(%edi,%ebx,4),%ebp 596 movb %ch,%al 597 movb %cl,%bl 598 addl %ebp,%esi 599 movl 2120(%edi,%eax,4),%eax 600 xorl %eax,%esi 601 movl 3144(%edi,%ebx,4),%ebp 602 addl %ebp,%esi 603 xorl %eax,%eax 604 xorl %esi,%edx 605 606 607 rorl $16,%edx 608 movl 12(%edi),%esi 609 movb %dh,%al 610 movb %dl,%bl 611 rorl $16,%edx 612 xorl %esi,%ecx 613 movl 72(%edi,%eax,4),%esi 614 movl 1096(%edi,%ebx,4),%ebp 615 movb %dh,%al 616 movb %dl,%bl 617 addl %ebp,%esi 618 movl 2120(%edi,%eax,4),%eax 619 xorl %eax,%esi 620 movl 3144(%edi,%ebx,4),%ebp 621 addl %ebp,%esi 622 xorl %eax,%eax 623 xorl %esi,%ecx 624 625 626 rorl $16,%ecx 627 movl 8(%edi),%esi 628 movb %ch,%al 629 movb %cl,%bl 630 rorl $16,%ecx 631 xorl %esi,%edx 632 movl 72(%edi,%eax,4),%esi 633 movl 1096(%edi,%ebx,4),%ebp 634 movb %ch,%al 635 movb %cl,%bl 636 addl %ebp,%esi 637 movl 2120(%edi,%eax,4),%eax 638 xorl %eax,%esi 639 movl 3144(%edi,%ebx,4),%ebp 640 addl %ebp,%esi 641 xorl %eax,%eax 642 xorl %esi,%edx 643 644 645 rorl $16,%edx 646 movl 4(%edi),%esi 647 movb %dh,%al 648 movb %dl,%bl 649 rorl $16,%edx 650 xorl %esi,%ecx 651 movl 72(%edi,%eax,4),%esi 652 movl 1096(%edi,%ebx,4),%ebp 653 movb %dh,%al 654 movb %dl,%bl 655 addl %ebp,%esi 656 movl 2120(%edi,%eax,4),%eax 657 xorl %eax,%esi 658 movl 3144(%edi,%ebx,4),%ebp 659 addl %ebp,%esi 660 xorl %eax,%eax 661 xorl %esi,%ecx 662 xorl (%edi),%edx 663 movl 20(%esp),%eax 664 movl %edx,(%eax) 665 movl %ecx,4(%eax) 666 popl %edi 667 popl %esi 668 popl %ebx 669 popl %ebp 670 ret 671.size BF_decrypt,.-.L_BF_decrypt_begin 672.globl BF_cbc_encrypt 673.type BF_cbc_encrypt,@function 674.align 16 675BF_cbc_encrypt: 676.L_BF_cbc_encrypt_begin: 677 678 pushl %ebp 679 pushl %ebx 680 pushl %esi 681 pushl %edi 682 movl 28(%esp),%ebp 683 684 movl 36(%esp),%ebx 685 movl (%ebx),%esi 686 movl 4(%ebx),%edi 687 pushl %edi 688 pushl %esi 689 pushl %edi 690 pushl %esi 691 movl %esp,%ebx 692 movl 36(%esp),%esi 693 movl 40(%esp),%edi 694 695 movl 56(%esp),%ecx 696 697 movl 48(%esp),%eax 698 pushl %eax 699 pushl %ebx 700 cmpl $0,%ecx 701 jz .L000decrypt 702 andl $4294967288,%ebp 703 movl 8(%esp),%eax 704 movl 12(%esp),%ebx 705 jz .L001encrypt_finish 706.L002encrypt_loop: 707 movl (%esi),%ecx 708 movl 4(%esi),%edx 709 xorl %ecx,%eax 710 xorl %edx,%ebx 711 bswap %eax 712 bswap %ebx 713 movl %eax,8(%esp) 714 movl %ebx,12(%esp) 715 call .L_BF_encrypt_begin 716 movl 8(%esp),%eax 717 movl 12(%esp),%ebx 718 bswap %eax 719 bswap %ebx 720 movl %eax,(%edi) 721 movl %ebx,4(%edi) 722 addl $8,%esi 723 addl $8,%edi 724 subl $8,%ebp 725 jnz .L002encrypt_loop 726.L001encrypt_finish: 727 movl 52(%esp),%ebp 728 andl $7,%ebp 729 jz .L003finish 730 call .L004PIC_point 731.L004PIC_point: 732 popl %edx 733 leal .L005cbc_enc_jmp_table-.L004PIC_point(%edx),%ecx 734 movl (%ecx,%ebp,4),%ebp 735 addl %edx,%ebp 736 xorl %ecx,%ecx 737 xorl %edx,%edx 738 jmp *%ebp 739.L006ej7: 740 movb 6(%esi),%dh 741 shll $8,%edx 742.L007ej6: 743 movb 5(%esi),%dh 744.L008ej5: 745 movb 4(%esi),%dl 746.L009ej4: 747 movl (%esi),%ecx 748 jmp .L010ejend 749.L011ej3: 750 movb 2(%esi),%ch 751 shll $8,%ecx 752.L012ej2: 753 movb 1(%esi),%ch 754.L013ej1: 755 movb (%esi),%cl 756.L010ejend: 757 xorl %ecx,%eax 758 xorl %edx,%ebx 759 bswap %eax 760 bswap %ebx 761 movl %eax,8(%esp) 762 movl %ebx,12(%esp) 763 call .L_BF_encrypt_begin 764 movl 8(%esp),%eax 765 movl 12(%esp),%ebx 766 bswap %eax 767 bswap %ebx 768 movl %eax,(%edi) 769 movl %ebx,4(%edi) 770 jmp .L003finish 771.L000decrypt: 772 andl $4294967288,%ebp 773 movl 16(%esp),%eax 774 movl 20(%esp),%ebx 775 jz .L014decrypt_finish 776.L015decrypt_loop: 777 movl (%esi),%eax 778 movl 4(%esi),%ebx 779 bswap %eax 780 bswap %ebx 781 movl %eax,8(%esp) 782 movl %ebx,12(%esp) 783 call .L_BF_decrypt_begin 784 movl 8(%esp),%eax 785 movl 12(%esp),%ebx 786 bswap %eax 787 bswap %ebx 788 movl 16(%esp),%ecx 789 movl 20(%esp),%edx 790 xorl %eax,%ecx 791 xorl %ebx,%edx 792 movl (%esi),%eax 793 movl 4(%esi),%ebx 794 movl %ecx,(%edi) 795 movl %edx,4(%edi) 796 movl %eax,16(%esp) 797 movl %ebx,20(%esp) 798 addl $8,%esi 799 addl $8,%edi 800 subl $8,%ebp 801 jnz .L015decrypt_loop 802.L014decrypt_finish: 803 movl 52(%esp),%ebp 804 andl $7,%ebp 805 jz .L003finish 806 movl (%esi),%eax 807 movl 4(%esi),%ebx 808 bswap %eax 809 bswap %ebx 810 movl %eax,8(%esp) 811 movl %ebx,12(%esp) 812 call .L_BF_decrypt_begin 813 movl 8(%esp),%eax 814 movl 12(%esp),%ebx 815 bswap %eax 816 bswap %ebx 817 movl 16(%esp),%ecx 818 movl 20(%esp),%edx 819 xorl %eax,%ecx 820 xorl %ebx,%edx 821 movl (%esi),%eax 822 movl 4(%esi),%ebx 823.L016dj7: 824 rorl $16,%edx 825 movb %dl,6(%edi) 826 shrl $16,%edx 827.L017dj6: 828 movb %dh,5(%edi) 829.L018dj5: 830 movb %dl,4(%edi) 831.L019dj4: 832 movl %ecx,(%edi) 833 jmp .L020djend 834.L021dj3: 835 rorl $16,%ecx 836 movb %cl,2(%edi) 837 shll $16,%ecx 838.L022dj2: 839 movb %ch,1(%esi) 840.L023dj1: 841 movb %cl,(%esi) 842.L020djend: 843 jmp .L003finish 844.L003finish: 845 movl 60(%esp),%ecx 846 addl $24,%esp 847 movl %eax,(%ecx) 848 movl %ebx,4(%ecx) 849 popl %edi 850 popl %esi 851 popl %ebx 852 popl %ebp 853 ret 854.align 64 855.L005cbc_enc_jmp_table: 856.long 0 857.long .L013ej1-.L004PIC_point 858.long .L012ej2-.L004PIC_point 859.long .L011ej3-.L004PIC_point 860.long .L009ej4-.L004PIC_point 861.long .L008ej5-.L004PIC_point 862.long .L007ej6-.L004PIC_point 863.long .L006ej7-.L004PIC_point 864.align 64 865.size BF_cbc_encrypt,.-.L_BF_cbc_encrypt_begin 866