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