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