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