bf-686.S revision 305153
1/* $FreeBSD: stable/11/secure/lib/libcrypto/i386/bf-686.S 305153 2016-08-31 20:33:59Z jkim $ */ 2/* Do not modify. This file is auto-generated from bf-686.pl. */ 3#ifdef PIC 4.file "bf-686.S" 5.text 6.globl BF_encrypt 7.type BF_encrypt,@function 8.align 16 9BF_encrypt: 10.L_BF_encrypt_begin: 11 pushl %ebp 12 pushl %ebx 13 pushl %esi 14 pushl %edi 15 16 17 movl 20(%esp),%eax 18 movl (%eax),%ecx 19 movl 4(%eax),%edx 20 21 22 movl 24(%esp),%edi 23 xorl %eax,%eax 24 xorl %ebx,%ebx 25 xorl (%edi),%ecx 26 27 28 rorl $16,%ecx 29 movl 4(%edi),%esi 30 movb %ch,%al 31 movb %cl,%bl 32 rorl $16,%ecx 33 xorl %esi,%edx 34 movl 72(%edi,%eax,4),%esi 35 movl 1096(%edi,%ebx,4),%ebp 36 movb %ch,%al 37 movb %cl,%bl 38 addl %ebp,%esi 39 movl 2120(%edi,%eax,4),%eax 40 xorl %eax,%esi 41 movl 3144(%edi,%ebx,4),%ebp 42 addl %ebp,%esi 43 xorl %eax,%eax 44 xorl %esi,%edx 45 46 47 rorl $16,%edx 48 movl 8(%edi),%esi 49 movb %dh,%al 50 movb %dl,%bl 51 rorl $16,%edx 52 xorl %esi,%ecx 53 movl 72(%edi,%eax,4),%esi 54 movl 1096(%edi,%ebx,4),%ebp 55 movb %dh,%al 56 movb %dl,%bl 57 addl %ebp,%esi 58 movl 2120(%edi,%eax,4),%eax 59 xorl %eax,%esi 60 movl 3144(%edi,%ebx,4),%ebp 61 addl %ebp,%esi 62 xorl %eax,%eax 63 xorl %esi,%ecx 64 65 66 rorl $16,%ecx 67 movl 12(%edi),%esi 68 movb %ch,%al 69 movb %cl,%bl 70 rorl $16,%ecx 71 xorl %esi,%edx 72 movl 72(%edi,%eax,4),%esi 73 movl 1096(%edi,%ebx,4),%ebp 74 movb %ch,%al 75 movb %cl,%bl 76 addl %ebp,%esi 77 movl 2120(%edi,%eax,4),%eax 78 xorl %eax,%esi 79 movl 3144(%edi,%ebx,4),%ebp 80 addl %ebp,%esi 81 xorl %eax,%eax 82 xorl %esi,%edx 83 84 85 rorl $16,%edx 86 movl 16(%edi),%esi 87 movb %dh,%al 88 movb %dl,%bl 89 rorl $16,%edx 90 xorl %esi,%ecx 91 movl 72(%edi,%eax,4),%esi 92 movl 1096(%edi,%ebx,4),%ebp 93 movb %dh,%al 94 movb %dl,%bl 95 addl %ebp,%esi 96 movl 2120(%edi,%eax,4),%eax 97 xorl %eax,%esi 98 movl 3144(%edi,%ebx,4),%ebp 99 addl %ebp,%esi 100 xorl %eax,%eax 101 xorl %esi,%ecx 102 103 104 rorl $16,%ecx 105 movl 20(%edi),%esi 106 movb %ch,%al 107 movb %cl,%bl 108 rorl $16,%ecx 109 xorl %esi,%edx 110 movl 72(%edi,%eax,4),%esi 111 movl 1096(%edi,%ebx,4),%ebp 112 movb %ch,%al 113 movb %cl,%bl 114 addl %ebp,%esi 115 movl 2120(%edi,%eax,4),%eax 116 xorl %eax,%esi 117 movl 3144(%edi,%ebx,4),%ebp 118 addl %ebp,%esi 119 xorl %eax,%eax 120 xorl %esi,%edx 121 122 123 rorl $16,%edx 124 movl 24(%edi),%esi 125 movb %dh,%al 126 movb %dl,%bl 127 rorl $16,%edx 128 xorl %esi,%ecx 129 movl 72(%edi,%eax,4),%esi 130 movl 1096(%edi,%ebx,4),%ebp 131 movb %dh,%al 132 movb %dl,%bl 133 addl %ebp,%esi 134 movl 2120(%edi,%eax,4),%eax 135 xorl %eax,%esi 136 movl 3144(%edi,%ebx,4),%ebp 137 addl %ebp,%esi 138 xorl %eax,%eax 139 xorl %esi,%ecx 140 141 142 rorl $16,%ecx 143 movl 28(%edi),%esi 144 movb %ch,%al 145 movb %cl,%bl 146 rorl $16,%ecx 147 xorl %esi,%edx 148 movl 72(%edi,%eax,4),%esi 149 movl 1096(%edi,%ebx,4),%ebp 150 movb %ch,%al 151 movb %cl,%bl 152 addl %ebp,%esi 153 movl 2120(%edi,%eax,4),%eax 154 xorl %eax,%esi 155 movl 3144(%edi,%ebx,4),%ebp 156 addl %ebp,%esi 157 xorl %eax,%eax 158 xorl %esi,%edx 159 160 161 rorl $16,%edx 162 movl 32(%edi),%esi 163 movb %dh,%al 164 movb %dl,%bl 165 rorl $16,%edx 166 xorl %esi,%ecx 167 movl 72(%edi,%eax,4),%esi 168 movl 1096(%edi,%ebx,4),%ebp 169 movb %dh,%al 170 movb %dl,%bl 171 addl %ebp,%esi 172 movl 2120(%edi,%eax,4),%eax 173 xorl %eax,%esi 174 movl 3144(%edi,%ebx,4),%ebp 175 addl %ebp,%esi 176 xorl %eax,%eax 177 xorl %esi,%ecx 178 179 180 rorl $16,%ecx 181 movl 36(%edi),%esi 182 movb %ch,%al 183 movb %cl,%bl 184 rorl $16,%ecx 185 xorl %esi,%edx 186 movl 72(%edi,%eax,4),%esi 187 movl 1096(%edi,%ebx,4),%ebp 188 movb %ch,%al 189 movb %cl,%bl 190 addl %ebp,%esi 191 movl 2120(%edi,%eax,4),%eax 192 xorl %eax,%esi 193 movl 3144(%edi,%ebx,4),%ebp 194 addl %ebp,%esi 195 xorl %eax,%eax 196 xorl %esi,%edx 197 198 199 rorl $16,%edx 200 movl 40(%edi),%esi 201 movb %dh,%al 202 movb %dl,%bl 203 rorl $16,%edx 204 xorl %esi,%ecx 205 movl 72(%edi,%eax,4),%esi 206 movl 1096(%edi,%ebx,4),%ebp 207 movb %dh,%al 208 movb %dl,%bl 209 addl %ebp,%esi 210 movl 2120(%edi,%eax,4),%eax 211 xorl %eax,%esi 212 movl 3144(%edi,%ebx,4),%ebp 213 addl %ebp,%esi 214 xorl %eax,%eax 215 xorl %esi,%ecx 216 217 218 rorl $16,%ecx 219 movl 44(%edi),%esi 220 movb %ch,%al 221 movb %cl,%bl 222 rorl $16,%ecx 223 xorl %esi,%edx 224 movl 72(%edi,%eax,4),%esi 225 movl 1096(%edi,%ebx,4),%ebp 226 movb %ch,%al 227 movb %cl,%bl 228 addl %ebp,%esi 229 movl 2120(%edi,%eax,4),%eax 230 xorl %eax,%esi 231 movl 3144(%edi,%ebx,4),%ebp 232 addl %ebp,%esi 233 xorl %eax,%eax 234 xorl %esi,%edx 235 236 237 rorl $16,%edx 238 movl 48(%edi),%esi 239 movb %dh,%al 240 movb %dl,%bl 241 rorl $16,%edx 242 xorl %esi,%ecx 243 movl 72(%edi,%eax,4),%esi 244 movl 1096(%edi,%ebx,4),%ebp 245 movb %dh,%al 246 movb %dl,%bl 247 addl %ebp,%esi 248 movl 2120(%edi,%eax,4),%eax 249 xorl %eax,%esi 250 movl 3144(%edi,%ebx,4),%ebp 251 addl %ebp,%esi 252 xorl %eax,%eax 253 xorl %esi,%ecx 254 255 256 rorl $16,%ecx 257 movl 52(%edi),%esi 258 movb %ch,%al 259 movb %cl,%bl 260 rorl $16,%ecx 261 xorl %esi,%edx 262 movl 72(%edi,%eax,4),%esi 263 movl 1096(%edi,%ebx,4),%ebp 264 movb %ch,%al 265 movb %cl,%bl 266 addl %ebp,%esi 267 movl 2120(%edi,%eax,4),%eax 268 xorl %eax,%esi 269 movl 3144(%edi,%ebx,4),%ebp 270 addl %ebp,%esi 271 xorl %eax,%eax 272 xorl %esi,%edx 273 274 275 rorl $16,%edx 276 movl 56(%edi),%esi 277 movb %dh,%al 278 movb %dl,%bl 279 rorl $16,%edx 280 xorl %esi,%ecx 281 movl 72(%edi,%eax,4),%esi 282 movl 1096(%edi,%ebx,4),%ebp 283 movb %dh,%al 284 movb %dl,%bl 285 addl %ebp,%esi 286 movl 2120(%edi,%eax,4),%eax 287 xorl %eax,%esi 288 movl 3144(%edi,%ebx,4),%ebp 289 addl %ebp,%esi 290 xorl %eax,%eax 291 xorl %esi,%ecx 292 293 294 rorl $16,%ecx 295 movl 60(%edi),%esi 296 movb %ch,%al 297 movb %cl,%bl 298 rorl $16,%ecx 299 xorl %esi,%edx 300 movl 72(%edi,%eax,4),%esi 301 movl 1096(%edi,%ebx,4),%ebp 302 movb %ch,%al 303 movb %cl,%bl 304 addl %ebp,%esi 305 movl 2120(%edi,%eax,4),%eax 306 xorl %eax,%esi 307 movl 3144(%edi,%ebx,4),%ebp 308 addl %ebp,%esi 309 xorl %eax,%eax 310 xorl %esi,%edx 311 312 313 rorl $16,%edx 314 movl 64(%edi),%esi 315 movb %dh,%al 316 movb %dl,%bl 317 rorl $16,%edx 318 xorl %esi,%ecx 319 movl 72(%edi,%eax,4),%esi 320 movl 1096(%edi,%ebx,4),%ebp 321 movb %dh,%al 322 movb %dl,%bl 323 addl %ebp,%esi 324 movl 2120(%edi,%eax,4),%eax 325 xorl %eax,%esi 326 movl 3144(%edi,%ebx,4),%ebp 327 addl %ebp,%esi 328 xorl %eax,%eax 329 xorl %esi,%ecx 330 xorl 68(%edi),%edx 331 movl 20(%esp),%eax 332 movl %edx,(%eax) 333 movl %ecx,4(%eax) 334 popl %edi 335 popl %esi 336 popl %ebx 337 popl %ebp 338 ret 339.size BF_encrypt,.-.L_BF_encrypt_begin 340.globl BF_decrypt 341.type BF_decrypt,@function 342.align 16 343BF_decrypt: 344.L_BF_decrypt_begin: 345 pushl %ebp 346 pushl %ebx 347 pushl %esi 348 pushl %edi 349 350 351 movl 20(%esp),%eax 352 movl (%eax),%ecx 353 movl 4(%eax),%edx 354 355 356 movl 24(%esp),%edi 357 xorl %eax,%eax 358 xorl %ebx,%ebx 359 xorl 68(%edi),%ecx 360 361 362 rorl $16,%ecx 363 movl 64(%edi),%esi 364 movb %ch,%al 365 movb %cl,%bl 366 rorl $16,%ecx 367 xorl %esi,%edx 368 movl 72(%edi,%eax,4),%esi 369 movl 1096(%edi,%ebx,4),%ebp 370 movb %ch,%al 371 movb %cl,%bl 372 addl %ebp,%esi 373 movl 2120(%edi,%eax,4),%eax 374 xorl %eax,%esi 375 movl 3144(%edi,%ebx,4),%ebp 376 addl %ebp,%esi 377 xorl %eax,%eax 378 xorl %esi,%edx 379 380 381 rorl $16,%edx 382 movl 60(%edi),%esi 383 movb %dh,%al 384 movb %dl,%bl 385 rorl $16,%edx 386 xorl %esi,%ecx 387 movl 72(%edi,%eax,4),%esi 388 movl 1096(%edi,%ebx,4),%ebp 389 movb %dh,%al 390 movb %dl,%bl 391 addl %ebp,%esi 392 movl 2120(%edi,%eax,4),%eax 393 xorl %eax,%esi 394 movl 3144(%edi,%ebx,4),%ebp 395 addl %ebp,%esi 396 xorl %eax,%eax 397 xorl %esi,%ecx 398 399 400 rorl $16,%ecx 401 movl 56(%edi),%esi 402 movb %ch,%al 403 movb %cl,%bl 404 rorl $16,%ecx 405 xorl %esi,%edx 406 movl 72(%edi,%eax,4),%esi 407 movl 1096(%edi,%ebx,4),%ebp 408 movb %ch,%al 409 movb %cl,%bl 410 addl %ebp,%esi 411 movl 2120(%edi,%eax,4),%eax 412 xorl %eax,%esi 413 movl 3144(%edi,%ebx,4),%ebp 414 addl %ebp,%esi 415 xorl %eax,%eax 416 xorl %esi,%edx 417 418 419 rorl $16,%edx 420 movl 52(%edi),%esi 421 movb %dh,%al 422 movb %dl,%bl 423 rorl $16,%edx 424 xorl %esi,%ecx 425 movl 72(%edi,%eax,4),%esi 426 movl 1096(%edi,%ebx,4),%ebp 427 movb %dh,%al 428 movb %dl,%bl 429 addl %ebp,%esi 430 movl 2120(%edi,%eax,4),%eax 431 xorl %eax,%esi 432 movl 3144(%edi,%ebx,4),%ebp 433 addl %ebp,%esi 434 xorl %eax,%eax 435 xorl %esi,%ecx 436 437 438 rorl $16,%ecx 439 movl 48(%edi),%esi 440 movb %ch,%al 441 movb %cl,%bl 442 rorl $16,%ecx 443 xorl %esi,%edx 444 movl 72(%edi,%eax,4),%esi 445 movl 1096(%edi,%ebx,4),%ebp 446 movb %ch,%al 447 movb %cl,%bl 448 addl %ebp,%esi 449 movl 2120(%edi,%eax,4),%eax 450 xorl %eax,%esi 451 movl 3144(%edi,%ebx,4),%ebp 452 addl %ebp,%esi 453 xorl %eax,%eax 454 xorl %esi,%edx 455 456 457 rorl $16,%edx 458 movl 44(%edi),%esi 459 movb %dh,%al 460 movb %dl,%bl 461 rorl $16,%edx 462 xorl %esi,%ecx 463 movl 72(%edi,%eax,4),%esi 464 movl 1096(%edi,%ebx,4),%ebp 465 movb %dh,%al 466 movb %dl,%bl 467 addl %ebp,%esi 468 movl 2120(%edi,%eax,4),%eax 469 xorl %eax,%esi 470 movl 3144(%edi,%ebx,4),%ebp 471 addl %ebp,%esi 472 xorl %eax,%eax 473 xorl %esi,%ecx 474 475 476 rorl $16,%ecx 477 movl 40(%edi),%esi 478 movb %ch,%al 479 movb %cl,%bl 480 rorl $16,%ecx 481 xorl %esi,%edx 482 movl 72(%edi,%eax,4),%esi 483 movl 1096(%edi,%ebx,4),%ebp 484 movb %ch,%al 485 movb %cl,%bl 486 addl %ebp,%esi 487 movl 2120(%edi,%eax,4),%eax 488 xorl %eax,%esi 489 movl 3144(%edi,%ebx,4),%ebp 490 addl %ebp,%esi 491 xorl %eax,%eax 492 xorl %esi,%edx 493 494 495 rorl $16,%edx 496 movl 36(%edi),%esi 497 movb %dh,%al 498 movb %dl,%bl 499 rorl $16,%edx 500 xorl %esi,%ecx 501 movl 72(%edi,%eax,4),%esi 502 movl 1096(%edi,%ebx,4),%ebp 503 movb %dh,%al 504 movb %dl,%bl 505 addl %ebp,%esi 506 movl 2120(%edi,%eax,4),%eax 507 xorl %eax,%esi 508 movl 3144(%edi,%ebx,4),%ebp 509 addl %ebp,%esi 510 xorl %eax,%eax 511 xorl %esi,%ecx 512 513 514 rorl $16,%ecx 515 movl 32(%edi),%esi 516 movb %ch,%al 517 movb %cl,%bl 518 rorl $16,%ecx 519 xorl %esi,%edx 520 movl 72(%edi,%eax,4),%esi 521 movl 1096(%edi,%ebx,4),%ebp 522 movb %ch,%al 523 movb %cl,%bl 524 addl %ebp,%esi 525 movl 2120(%edi,%eax,4),%eax 526 xorl %eax,%esi 527 movl 3144(%edi,%ebx,4),%ebp 528 addl %ebp,%esi 529 xorl %eax,%eax 530 xorl %esi,%edx 531 532 533 rorl $16,%edx 534 movl 28(%edi),%esi 535 movb %dh,%al 536 movb %dl,%bl 537 rorl $16,%edx 538 xorl %esi,%ecx 539 movl 72(%edi,%eax,4),%esi 540 movl 1096(%edi,%ebx,4),%ebp 541 movb %dh,%al 542 movb %dl,%bl 543 addl %ebp,%esi 544 movl 2120(%edi,%eax,4),%eax 545 xorl %eax,%esi 546 movl 3144(%edi,%ebx,4),%ebp 547 addl %ebp,%esi 548 xorl %eax,%eax 549 xorl %esi,%ecx 550 551 552 rorl $16,%ecx 553 movl 24(%edi),%esi 554 movb %ch,%al 555 movb %cl,%bl 556 rorl $16,%ecx 557 xorl %esi,%edx 558 movl 72(%edi,%eax,4),%esi 559 movl 1096(%edi,%ebx,4),%ebp 560 movb %ch,%al 561 movb %cl,%bl 562 addl %ebp,%esi 563 movl 2120(%edi,%eax,4),%eax 564 xorl %eax,%esi 565 movl 3144(%edi,%ebx,4),%ebp 566 addl %ebp,%esi 567 xorl %eax,%eax 568 xorl %esi,%edx 569 570 571 rorl $16,%edx 572 movl 20(%edi),%esi 573 movb %dh,%al 574 movb %dl,%bl 575 rorl $16,%edx 576 xorl %esi,%ecx 577 movl 72(%edi,%eax,4),%esi 578 movl 1096(%edi,%ebx,4),%ebp 579 movb %dh,%al 580 movb %dl,%bl 581 addl %ebp,%esi 582 movl 2120(%edi,%eax,4),%eax 583 xorl %eax,%esi 584 movl 3144(%edi,%ebx,4),%ebp 585 addl %ebp,%esi 586 xorl %eax,%eax 587 xorl %esi,%ecx 588 589 590 rorl $16,%ecx 591 movl 16(%edi),%esi 592 movb %ch,%al 593 movb %cl,%bl 594 rorl $16,%ecx 595 xorl %esi,%edx 596 movl 72(%edi,%eax,4),%esi 597 movl 1096(%edi,%ebx,4),%ebp 598 movb %ch,%al 599 movb %cl,%bl 600 addl %ebp,%esi 601 movl 2120(%edi,%eax,4),%eax 602 xorl %eax,%esi 603 movl 3144(%edi,%ebx,4),%ebp 604 addl %ebp,%esi 605 xorl %eax,%eax 606 xorl %esi,%edx 607 608 609 rorl $16,%edx 610 movl 12(%edi),%esi 611 movb %dh,%al 612 movb %dl,%bl 613 rorl $16,%edx 614 xorl %esi,%ecx 615 movl 72(%edi,%eax,4),%esi 616 movl 1096(%edi,%ebx,4),%ebp 617 movb %dh,%al 618 movb %dl,%bl 619 addl %ebp,%esi 620 movl 2120(%edi,%eax,4),%eax 621 xorl %eax,%esi 622 movl 3144(%edi,%ebx,4),%ebp 623 addl %ebp,%esi 624 xorl %eax,%eax 625 xorl %esi,%ecx 626 627 628 rorl $16,%ecx 629 movl 8(%edi),%esi 630 movb %ch,%al 631 movb %cl,%bl 632 rorl $16,%ecx 633 xorl %esi,%edx 634 movl 72(%edi,%eax,4),%esi 635 movl 1096(%edi,%ebx,4),%ebp 636 movb %ch,%al 637 movb %cl,%bl 638 addl %ebp,%esi 639 movl 2120(%edi,%eax,4),%eax 640 xorl %eax,%esi 641 movl 3144(%edi,%ebx,4),%ebp 642 addl %ebp,%esi 643 xorl %eax,%eax 644 xorl %esi,%edx 645 646 647 rorl $16,%edx 648 movl 4(%edi),%esi 649 movb %dh,%al 650 movb %dl,%bl 651 rorl $16,%edx 652 xorl %esi,%ecx 653 movl 72(%edi,%eax,4),%esi 654 movl 1096(%edi,%ebx,4),%ebp 655 movb %dh,%al 656 movb %dl,%bl 657 addl %ebp,%esi 658 movl 2120(%edi,%eax,4),%eax 659 xorl %eax,%esi 660 movl 3144(%edi,%ebx,4),%ebp 661 addl %ebp,%esi 662 xorl %eax,%eax 663 xorl %esi,%ecx 664 xorl (%edi),%edx 665 movl 20(%esp),%eax 666 movl %edx,(%eax) 667 movl %ecx,4(%eax) 668 popl %edi 669 popl %esi 670 popl %ebx 671 popl %ebp 672 ret 673.size BF_decrypt,.-.L_BF_decrypt_begin 674.globl BF_cbc_encrypt 675.type BF_cbc_encrypt,@function 676.align 16 677BF_cbc_encrypt: 678.L_BF_cbc_encrypt_begin: 679 680 pushl %ebp 681 pushl %ebx 682 pushl %esi 683 pushl %edi 684 movl 28(%esp),%ebp 685 686 movl 36(%esp),%ebx 687 movl (%ebx),%esi 688 movl 4(%ebx),%edi 689 pushl %edi 690 pushl %esi 691 pushl %edi 692 pushl %esi 693 movl %esp,%ebx 694 movl 36(%esp),%esi 695 movl 40(%esp),%edi 696 697 movl 56(%esp),%ecx 698 699 movl 48(%esp),%eax 700 pushl %eax 701 pushl %ebx 702 cmpl $0,%ecx 703 jz .L000decrypt 704 andl $4294967288,%ebp 705 movl 8(%esp),%eax 706 movl 12(%esp),%ebx 707 jz .L001encrypt_finish 708.L002encrypt_loop: 709 movl (%esi),%ecx 710 movl 4(%esi),%edx 711 xorl %ecx,%eax 712 xorl %edx,%ebx 713 bswap %eax 714 bswap %ebx 715 movl %eax,8(%esp) 716 movl %ebx,12(%esp) 717 call .L_BF_encrypt_begin 718 movl 8(%esp),%eax 719 movl 12(%esp),%ebx 720 bswap %eax 721 bswap %ebx 722 movl %eax,(%edi) 723 movl %ebx,4(%edi) 724 addl $8,%esi 725 addl $8,%edi 726 subl $8,%ebp 727 jnz .L002encrypt_loop 728.L001encrypt_finish: 729 movl 52(%esp),%ebp 730 andl $7,%ebp 731 jz .L003finish 732 call .L004PIC_point 733.L004PIC_point: 734 popl %edx 735 leal .L005cbc_enc_jmp_table-.L004PIC_point(%edx),%ecx 736 movl (%ecx,%ebp,4),%ebp 737 addl %edx,%ebp 738 xorl %ecx,%ecx 739 xorl %edx,%edx 740 jmp *%ebp 741.L006ej7: 742 movb 6(%esi),%dh 743 shll $8,%edx 744.L007ej6: 745 movb 5(%esi),%dh 746.L008ej5: 747 movb 4(%esi),%dl 748.L009ej4: 749 movl (%esi),%ecx 750 jmp .L010ejend 751.L011ej3: 752 movb 2(%esi),%ch 753 shll $8,%ecx 754.L012ej2: 755 movb 1(%esi),%ch 756.L013ej1: 757 movb (%esi),%cl 758.L010ejend: 759 xorl %ecx,%eax 760 xorl %edx,%ebx 761 bswap %eax 762 bswap %ebx 763 movl %eax,8(%esp) 764 movl %ebx,12(%esp) 765 call .L_BF_encrypt_begin 766 movl 8(%esp),%eax 767 movl 12(%esp),%ebx 768 bswap %eax 769 bswap %ebx 770 movl %eax,(%edi) 771 movl %ebx,4(%edi) 772 jmp .L003finish 773.L000decrypt: 774 andl $4294967288,%ebp 775 movl 16(%esp),%eax 776 movl 20(%esp),%ebx 777 jz .L014decrypt_finish 778.L015decrypt_loop: 779 movl (%esi),%eax 780 movl 4(%esi),%ebx 781 bswap %eax 782 bswap %ebx 783 movl %eax,8(%esp) 784 movl %ebx,12(%esp) 785 call .L_BF_decrypt_begin 786 movl 8(%esp),%eax 787 movl 12(%esp),%ebx 788 bswap %eax 789 bswap %ebx 790 movl 16(%esp),%ecx 791 movl 20(%esp),%edx 792 xorl %eax,%ecx 793 xorl %ebx,%edx 794 movl (%esi),%eax 795 movl 4(%esi),%ebx 796 movl %ecx,(%edi) 797 movl %edx,4(%edi) 798 movl %eax,16(%esp) 799 movl %ebx,20(%esp) 800 addl $8,%esi 801 addl $8,%edi 802 subl $8,%ebp 803 jnz .L015decrypt_loop 804.L014decrypt_finish: 805 movl 52(%esp),%ebp 806 andl $7,%ebp 807 jz .L003finish 808 movl (%esi),%eax 809 movl 4(%esi),%ebx 810 bswap %eax 811 bswap %ebx 812 movl %eax,8(%esp) 813 movl %ebx,12(%esp) 814 call .L_BF_decrypt_begin 815 movl 8(%esp),%eax 816 movl 12(%esp),%ebx 817 bswap %eax 818 bswap %ebx 819 movl 16(%esp),%ecx 820 movl 20(%esp),%edx 821 xorl %eax,%ecx 822 xorl %ebx,%edx 823 movl (%esi),%eax 824 movl 4(%esi),%ebx 825.L016dj7: 826 rorl $16,%edx 827 movb %dl,6(%edi) 828 shrl $16,%edx 829.L017dj6: 830 movb %dh,5(%edi) 831.L018dj5: 832 movb %dl,4(%edi) 833.L019dj4: 834 movl %ecx,(%edi) 835 jmp .L020djend 836.L021dj3: 837 rorl $16,%ecx 838 movb %cl,2(%edi) 839 shll $16,%ecx 840.L022dj2: 841 movb %ch,1(%esi) 842.L023dj1: 843 movb %cl,(%esi) 844.L020djend: 845 jmp .L003finish 846.L003finish: 847 movl 60(%esp),%ecx 848 addl $24,%esp 849 movl %eax,(%ecx) 850 movl %ebx,4(%ecx) 851 popl %edi 852 popl %esi 853 popl %ebx 854 popl %ebp 855 ret 856.align 64 857.L005cbc_enc_jmp_table: 858.long 0 859.long .L013ej1-.L004PIC_point 860.long .L012ej2-.L004PIC_point 861.long .L011ej3-.L004PIC_point 862.long .L009ej4-.L004PIC_point 863.long .L008ej5-.L004PIC_point 864.long .L007ej6-.L004PIC_point 865.long .L006ej7-.L004PIC_point 866.align 64 867.size BF_cbc_encrypt,.-.L_BF_cbc_encrypt_begin 868#else 869.file "bf-686.S" 870.text 871.globl BF_encrypt 872.type BF_encrypt,@function 873.align 16 874BF_encrypt: 875.L_BF_encrypt_begin: 876 pushl %ebp 877 pushl %ebx 878 pushl %esi 879 pushl %edi 880 881 882 movl 20(%esp),%eax 883 movl (%eax),%ecx 884 movl 4(%eax),%edx 885 886 887 movl 24(%esp),%edi 888 xorl %eax,%eax 889 xorl %ebx,%ebx 890 xorl (%edi),%ecx 891 892 893 rorl $16,%ecx 894 movl 4(%edi),%esi 895 movb %ch,%al 896 movb %cl,%bl 897 rorl $16,%ecx 898 xorl %esi,%edx 899 movl 72(%edi,%eax,4),%esi 900 movl 1096(%edi,%ebx,4),%ebp 901 movb %ch,%al 902 movb %cl,%bl 903 addl %ebp,%esi 904 movl 2120(%edi,%eax,4),%eax 905 xorl %eax,%esi 906 movl 3144(%edi,%ebx,4),%ebp 907 addl %ebp,%esi 908 xorl %eax,%eax 909 xorl %esi,%edx 910 911 912 rorl $16,%edx 913 movl 8(%edi),%esi 914 movb %dh,%al 915 movb %dl,%bl 916 rorl $16,%edx 917 xorl %esi,%ecx 918 movl 72(%edi,%eax,4),%esi 919 movl 1096(%edi,%ebx,4),%ebp 920 movb %dh,%al 921 movb %dl,%bl 922 addl %ebp,%esi 923 movl 2120(%edi,%eax,4),%eax 924 xorl %eax,%esi 925 movl 3144(%edi,%ebx,4),%ebp 926 addl %ebp,%esi 927 xorl %eax,%eax 928 xorl %esi,%ecx 929 930 931 rorl $16,%ecx 932 movl 12(%edi),%esi 933 movb %ch,%al 934 movb %cl,%bl 935 rorl $16,%ecx 936 xorl %esi,%edx 937 movl 72(%edi,%eax,4),%esi 938 movl 1096(%edi,%ebx,4),%ebp 939 movb %ch,%al 940 movb %cl,%bl 941 addl %ebp,%esi 942 movl 2120(%edi,%eax,4),%eax 943 xorl %eax,%esi 944 movl 3144(%edi,%ebx,4),%ebp 945 addl %ebp,%esi 946 xorl %eax,%eax 947 xorl %esi,%edx 948 949 950 rorl $16,%edx 951 movl 16(%edi),%esi 952 movb %dh,%al 953 movb %dl,%bl 954 rorl $16,%edx 955 xorl %esi,%ecx 956 movl 72(%edi,%eax,4),%esi 957 movl 1096(%edi,%ebx,4),%ebp 958 movb %dh,%al 959 movb %dl,%bl 960 addl %ebp,%esi 961 movl 2120(%edi,%eax,4),%eax 962 xorl %eax,%esi 963 movl 3144(%edi,%ebx,4),%ebp 964 addl %ebp,%esi 965 xorl %eax,%eax 966 xorl %esi,%ecx 967 968 969 rorl $16,%ecx 970 movl 20(%edi),%esi 971 movb %ch,%al 972 movb %cl,%bl 973 rorl $16,%ecx 974 xorl %esi,%edx 975 movl 72(%edi,%eax,4),%esi 976 movl 1096(%edi,%ebx,4),%ebp 977 movb %ch,%al 978 movb %cl,%bl 979 addl %ebp,%esi 980 movl 2120(%edi,%eax,4),%eax 981 xorl %eax,%esi 982 movl 3144(%edi,%ebx,4),%ebp 983 addl %ebp,%esi 984 xorl %eax,%eax 985 xorl %esi,%edx 986 987 988 rorl $16,%edx 989 movl 24(%edi),%esi 990 movb %dh,%al 991 movb %dl,%bl 992 rorl $16,%edx 993 xorl %esi,%ecx 994 movl 72(%edi,%eax,4),%esi 995 movl 1096(%edi,%ebx,4),%ebp 996 movb %dh,%al 997 movb %dl,%bl 998 addl %ebp,%esi 999 movl 2120(%edi,%eax,4),%eax 1000 xorl %eax,%esi 1001 movl 3144(%edi,%ebx,4),%ebp 1002 addl %ebp,%esi 1003 xorl %eax,%eax 1004 xorl %esi,%ecx 1005 1006 1007 rorl $16,%ecx 1008 movl 28(%edi),%esi 1009 movb %ch,%al 1010 movb %cl,%bl 1011 rorl $16,%ecx 1012 xorl %esi,%edx 1013 movl 72(%edi,%eax,4),%esi 1014 movl 1096(%edi,%ebx,4),%ebp 1015 movb %ch,%al 1016 movb %cl,%bl 1017 addl %ebp,%esi 1018 movl 2120(%edi,%eax,4),%eax 1019 xorl %eax,%esi 1020 movl 3144(%edi,%ebx,4),%ebp 1021 addl %ebp,%esi 1022 xorl %eax,%eax 1023 xorl %esi,%edx 1024 1025 1026 rorl $16,%edx 1027 movl 32(%edi),%esi 1028 movb %dh,%al 1029 movb %dl,%bl 1030 rorl $16,%edx 1031 xorl %esi,%ecx 1032 movl 72(%edi,%eax,4),%esi 1033 movl 1096(%edi,%ebx,4),%ebp 1034 movb %dh,%al 1035 movb %dl,%bl 1036 addl %ebp,%esi 1037 movl 2120(%edi,%eax,4),%eax 1038 xorl %eax,%esi 1039 movl 3144(%edi,%ebx,4),%ebp 1040 addl %ebp,%esi 1041 xorl %eax,%eax 1042 xorl %esi,%ecx 1043 1044 1045 rorl $16,%ecx 1046 movl 36(%edi),%esi 1047 movb %ch,%al 1048 movb %cl,%bl 1049 rorl $16,%ecx 1050 xorl %esi,%edx 1051 movl 72(%edi,%eax,4),%esi 1052 movl 1096(%edi,%ebx,4),%ebp 1053 movb %ch,%al 1054 movb %cl,%bl 1055 addl %ebp,%esi 1056 movl 2120(%edi,%eax,4),%eax 1057 xorl %eax,%esi 1058 movl 3144(%edi,%ebx,4),%ebp 1059 addl %ebp,%esi 1060 xorl %eax,%eax 1061 xorl %esi,%edx 1062 1063 1064 rorl $16,%edx 1065 movl 40(%edi),%esi 1066 movb %dh,%al 1067 movb %dl,%bl 1068 rorl $16,%edx 1069 xorl %esi,%ecx 1070 movl 72(%edi,%eax,4),%esi 1071 movl 1096(%edi,%ebx,4),%ebp 1072 movb %dh,%al 1073 movb %dl,%bl 1074 addl %ebp,%esi 1075 movl 2120(%edi,%eax,4),%eax 1076 xorl %eax,%esi 1077 movl 3144(%edi,%ebx,4),%ebp 1078 addl %ebp,%esi 1079 xorl %eax,%eax 1080 xorl %esi,%ecx 1081 1082 1083 rorl $16,%ecx 1084 movl 44(%edi),%esi 1085 movb %ch,%al 1086 movb %cl,%bl 1087 rorl $16,%ecx 1088 xorl %esi,%edx 1089 movl 72(%edi,%eax,4),%esi 1090 movl 1096(%edi,%ebx,4),%ebp 1091 movb %ch,%al 1092 movb %cl,%bl 1093 addl %ebp,%esi 1094 movl 2120(%edi,%eax,4),%eax 1095 xorl %eax,%esi 1096 movl 3144(%edi,%ebx,4),%ebp 1097 addl %ebp,%esi 1098 xorl %eax,%eax 1099 xorl %esi,%edx 1100 1101 1102 rorl $16,%edx 1103 movl 48(%edi),%esi 1104 movb %dh,%al 1105 movb %dl,%bl 1106 rorl $16,%edx 1107 xorl %esi,%ecx 1108 movl 72(%edi,%eax,4),%esi 1109 movl 1096(%edi,%ebx,4),%ebp 1110 movb %dh,%al 1111 movb %dl,%bl 1112 addl %ebp,%esi 1113 movl 2120(%edi,%eax,4),%eax 1114 xorl %eax,%esi 1115 movl 3144(%edi,%ebx,4),%ebp 1116 addl %ebp,%esi 1117 xorl %eax,%eax 1118 xorl %esi,%ecx 1119 1120 1121 rorl $16,%ecx 1122 movl 52(%edi),%esi 1123 movb %ch,%al 1124 movb %cl,%bl 1125 rorl $16,%ecx 1126 xorl %esi,%edx 1127 movl 72(%edi,%eax,4),%esi 1128 movl 1096(%edi,%ebx,4),%ebp 1129 movb %ch,%al 1130 movb %cl,%bl 1131 addl %ebp,%esi 1132 movl 2120(%edi,%eax,4),%eax 1133 xorl %eax,%esi 1134 movl 3144(%edi,%ebx,4),%ebp 1135 addl %ebp,%esi 1136 xorl %eax,%eax 1137 xorl %esi,%edx 1138 1139 1140 rorl $16,%edx 1141 movl 56(%edi),%esi 1142 movb %dh,%al 1143 movb %dl,%bl 1144 rorl $16,%edx 1145 xorl %esi,%ecx 1146 movl 72(%edi,%eax,4),%esi 1147 movl 1096(%edi,%ebx,4),%ebp 1148 movb %dh,%al 1149 movb %dl,%bl 1150 addl %ebp,%esi 1151 movl 2120(%edi,%eax,4),%eax 1152 xorl %eax,%esi 1153 movl 3144(%edi,%ebx,4),%ebp 1154 addl %ebp,%esi 1155 xorl %eax,%eax 1156 xorl %esi,%ecx 1157 1158 1159 rorl $16,%ecx 1160 movl 60(%edi),%esi 1161 movb %ch,%al 1162 movb %cl,%bl 1163 rorl $16,%ecx 1164 xorl %esi,%edx 1165 movl 72(%edi,%eax,4),%esi 1166 movl 1096(%edi,%ebx,4),%ebp 1167 movb %ch,%al 1168 movb %cl,%bl 1169 addl %ebp,%esi 1170 movl 2120(%edi,%eax,4),%eax 1171 xorl %eax,%esi 1172 movl 3144(%edi,%ebx,4),%ebp 1173 addl %ebp,%esi 1174 xorl %eax,%eax 1175 xorl %esi,%edx 1176 1177 1178 rorl $16,%edx 1179 movl 64(%edi),%esi 1180 movb %dh,%al 1181 movb %dl,%bl 1182 rorl $16,%edx 1183 xorl %esi,%ecx 1184 movl 72(%edi,%eax,4),%esi 1185 movl 1096(%edi,%ebx,4),%ebp 1186 movb %dh,%al 1187 movb %dl,%bl 1188 addl %ebp,%esi 1189 movl 2120(%edi,%eax,4),%eax 1190 xorl %eax,%esi 1191 movl 3144(%edi,%ebx,4),%ebp 1192 addl %ebp,%esi 1193 xorl %eax,%eax 1194 xorl %esi,%ecx 1195 xorl 68(%edi),%edx 1196 movl 20(%esp),%eax 1197 movl %edx,(%eax) 1198 movl %ecx,4(%eax) 1199 popl %edi 1200 popl %esi 1201 popl %ebx 1202 popl %ebp 1203 ret 1204.size BF_encrypt,.-.L_BF_encrypt_begin 1205.globl BF_decrypt 1206.type BF_decrypt,@function 1207.align 16 1208BF_decrypt: 1209.L_BF_decrypt_begin: 1210 pushl %ebp 1211 pushl %ebx 1212 pushl %esi 1213 pushl %edi 1214 1215 1216 movl 20(%esp),%eax 1217 movl (%eax),%ecx 1218 movl 4(%eax),%edx 1219 1220 1221 movl 24(%esp),%edi 1222 xorl %eax,%eax 1223 xorl %ebx,%ebx 1224 xorl 68(%edi),%ecx 1225 1226 1227 rorl $16,%ecx 1228 movl 64(%edi),%esi 1229 movb %ch,%al 1230 movb %cl,%bl 1231 rorl $16,%ecx 1232 xorl %esi,%edx 1233 movl 72(%edi,%eax,4),%esi 1234 movl 1096(%edi,%ebx,4),%ebp 1235 movb %ch,%al 1236 movb %cl,%bl 1237 addl %ebp,%esi 1238 movl 2120(%edi,%eax,4),%eax 1239 xorl %eax,%esi 1240 movl 3144(%edi,%ebx,4),%ebp 1241 addl %ebp,%esi 1242 xorl %eax,%eax 1243 xorl %esi,%edx 1244 1245 1246 rorl $16,%edx 1247 movl 60(%edi),%esi 1248 movb %dh,%al 1249 movb %dl,%bl 1250 rorl $16,%edx 1251 xorl %esi,%ecx 1252 movl 72(%edi,%eax,4),%esi 1253 movl 1096(%edi,%ebx,4),%ebp 1254 movb %dh,%al 1255 movb %dl,%bl 1256 addl %ebp,%esi 1257 movl 2120(%edi,%eax,4),%eax 1258 xorl %eax,%esi 1259 movl 3144(%edi,%ebx,4),%ebp 1260 addl %ebp,%esi 1261 xorl %eax,%eax 1262 xorl %esi,%ecx 1263 1264 1265 rorl $16,%ecx 1266 movl 56(%edi),%esi 1267 movb %ch,%al 1268 movb %cl,%bl 1269 rorl $16,%ecx 1270 xorl %esi,%edx 1271 movl 72(%edi,%eax,4),%esi 1272 movl 1096(%edi,%ebx,4),%ebp 1273 movb %ch,%al 1274 movb %cl,%bl 1275 addl %ebp,%esi 1276 movl 2120(%edi,%eax,4),%eax 1277 xorl %eax,%esi 1278 movl 3144(%edi,%ebx,4),%ebp 1279 addl %ebp,%esi 1280 xorl %eax,%eax 1281 xorl %esi,%edx 1282 1283 1284 rorl $16,%edx 1285 movl 52(%edi),%esi 1286 movb %dh,%al 1287 movb %dl,%bl 1288 rorl $16,%edx 1289 xorl %esi,%ecx 1290 movl 72(%edi,%eax,4),%esi 1291 movl 1096(%edi,%ebx,4),%ebp 1292 movb %dh,%al 1293 movb %dl,%bl 1294 addl %ebp,%esi 1295 movl 2120(%edi,%eax,4),%eax 1296 xorl %eax,%esi 1297 movl 3144(%edi,%ebx,4),%ebp 1298 addl %ebp,%esi 1299 xorl %eax,%eax 1300 xorl %esi,%ecx 1301 1302 1303 rorl $16,%ecx 1304 movl 48(%edi),%esi 1305 movb %ch,%al 1306 movb %cl,%bl 1307 rorl $16,%ecx 1308 xorl %esi,%edx 1309 movl 72(%edi,%eax,4),%esi 1310 movl 1096(%edi,%ebx,4),%ebp 1311 movb %ch,%al 1312 movb %cl,%bl 1313 addl %ebp,%esi 1314 movl 2120(%edi,%eax,4),%eax 1315 xorl %eax,%esi 1316 movl 3144(%edi,%ebx,4),%ebp 1317 addl %ebp,%esi 1318 xorl %eax,%eax 1319 xorl %esi,%edx 1320 1321 1322 rorl $16,%edx 1323 movl 44(%edi),%esi 1324 movb %dh,%al 1325 movb %dl,%bl 1326 rorl $16,%edx 1327 xorl %esi,%ecx 1328 movl 72(%edi,%eax,4),%esi 1329 movl 1096(%edi,%ebx,4),%ebp 1330 movb %dh,%al 1331 movb %dl,%bl 1332 addl %ebp,%esi 1333 movl 2120(%edi,%eax,4),%eax 1334 xorl %eax,%esi 1335 movl 3144(%edi,%ebx,4),%ebp 1336 addl %ebp,%esi 1337 xorl %eax,%eax 1338 xorl %esi,%ecx 1339 1340 1341 rorl $16,%ecx 1342 movl 40(%edi),%esi 1343 movb %ch,%al 1344 movb %cl,%bl 1345 rorl $16,%ecx 1346 xorl %esi,%edx 1347 movl 72(%edi,%eax,4),%esi 1348 movl 1096(%edi,%ebx,4),%ebp 1349 movb %ch,%al 1350 movb %cl,%bl 1351 addl %ebp,%esi 1352 movl 2120(%edi,%eax,4),%eax 1353 xorl %eax,%esi 1354 movl 3144(%edi,%ebx,4),%ebp 1355 addl %ebp,%esi 1356 xorl %eax,%eax 1357 xorl %esi,%edx 1358 1359 1360 rorl $16,%edx 1361 movl 36(%edi),%esi 1362 movb %dh,%al 1363 movb %dl,%bl 1364 rorl $16,%edx 1365 xorl %esi,%ecx 1366 movl 72(%edi,%eax,4),%esi 1367 movl 1096(%edi,%ebx,4),%ebp 1368 movb %dh,%al 1369 movb %dl,%bl 1370 addl %ebp,%esi 1371 movl 2120(%edi,%eax,4),%eax 1372 xorl %eax,%esi 1373 movl 3144(%edi,%ebx,4),%ebp 1374 addl %ebp,%esi 1375 xorl %eax,%eax 1376 xorl %esi,%ecx 1377 1378 1379 rorl $16,%ecx 1380 movl 32(%edi),%esi 1381 movb %ch,%al 1382 movb %cl,%bl 1383 rorl $16,%ecx 1384 xorl %esi,%edx 1385 movl 72(%edi,%eax,4),%esi 1386 movl 1096(%edi,%ebx,4),%ebp 1387 movb %ch,%al 1388 movb %cl,%bl 1389 addl %ebp,%esi 1390 movl 2120(%edi,%eax,4),%eax 1391 xorl %eax,%esi 1392 movl 3144(%edi,%ebx,4),%ebp 1393 addl %ebp,%esi 1394 xorl %eax,%eax 1395 xorl %esi,%edx 1396 1397 1398 rorl $16,%edx 1399 movl 28(%edi),%esi 1400 movb %dh,%al 1401 movb %dl,%bl 1402 rorl $16,%edx 1403 xorl %esi,%ecx 1404 movl 72(%edi,%eax,4),%esi 1405 movl 1096(%edi,%ebx,4),%ebp 1406 movb %dh,%al 1407 movb %dl,%bl 1408 addl %ebp,%esi 1409 movl 2120(%edi,%eax,4),%eax 1410 xorl %eax,%esi 1411 movl 3144(%edi,%ebx,4),%ebp 1412 addl %ebp,%esi 1413 xorl %eax,%eax 1414 xorl %esi,%ecx 1415 1416 1417 rorl $16,%ecx 1418 movl 24(%edi),%esi 1419 movb %ch,%al 1420 movb %cl,%bl 1421 rorl $16,%ecx 1422 xorl %esi,%edx 1423 movl 72(%edi,%eax,4),%esi 1424 movl 1096(%edi,%ebx,4),%ebp 1425 movb %ch,%al 1426 movb %cl,%bl 1427 addl %ebp,%esi 1428 movl 2120(%edi,%eax,4),%eax 1429 xorl %eax,%esi 1430 movl 3144(%edi,%ebx,4),%ebp 1431 addl %ebp,%esi 1432 xorl %eax,%eax 1433 xorl %esi,%edx 1434 1435 1436 rorl $16,%edx 1437 movl 20(%edi),%esi 1438 movb %dh,%al 1439 movb %dl,%bl 1440 rorl $16,%edx 1441 xorl %esi,%ecx 1442 movl 72(%edi,%eax,4),%esi 1443 movl 1096(%edi,%ebx,4),%ebp 1444 movb %dh,%al 1445 movb %dl,%bl 1446 addl %ebp,%esi 1447 movl 2120(%edi,%eax,4),%eax 1448 xorl %eax,%esi 1449 movl 3144(%edi,%ebx,4),%ebp 1450 addl %ebp,%esi 1451 xorl %eax,%eax 1452 xorl %esi,%ecx 1453 1454 1455 rorl $16,%ecx 1456 movl 16(%edi),%esi 1457 movb %ch,%al 1458 movb %cl,%bl 1459 rorl $16,%ecx 1460 xorl %esi,%edx 1461 movl 72(%edi,%eax,4),%esi 1462 movl 1096(%edi,%ebx,4),%ebp 1463 movb %ch,%al 1464 movb %cl,%bl 1465 addl %ebp,%esi 1466 movl 2120(%edi,%eax,4),%eax 1467 xorl %eax,%esi 1468 movl 3144(%edi,%ebx,4),%ebp 1469 addl %ebp,%esi 1470 xorl %eax,%eax 1471 xorl %esi,%edx 1472 1473 1474 rorl $16,%edx 1475 movl 12(%edi),%esi 1476 movb %dh,%al 1477 movb %dl,%bl 1478 rorl $16,%edx 1479 xorl %esi,%ecx 1480 movl 72(%edi,%eax,4),%esi 1481 movl 1096(%edi,%ebx,4),%ebp 1482 movb %dh,%al 1483 movb %dl,%bl 1484 addl %ebp,%esi 1485 movl 2120(%edi,%eax,4),%eax 1486 xorl %eax,%esi 1487 movl 3144(%edi,%ebx,4),%ebp 1488 addl %ebp,%esi 1489 xorl %eax,%eax 1490 xorl %esi,%ecx 1491 1492 1493 rorl $16,%ecx 1494 movl 8(%edi),%esi 1495 movb %ch,%al 1496 movb %cl,%bl 1497 rorl $16,%ecx 1498 xorl %esi,%edx 1499 movl 72(%edi,%eax,4),%esi 1500 movl 1096(%edi,%ebx,4),%ebp 1501 movb %ch,%al 1502 movb %cl,%bl 1503 addl %ebp,%esi 1504 movl 2120(%edi,%eax,4),%eax 1505 xorl %eax,%esi 1506 movl 3144(%edi,%ebx,4),%ebp 1507 addl %ebp,%esi 1508 xorl %eax,%eax 1509 xorl %esi,%edx 1510 1511 1512 rorl $16,%edx 1513 movl 4(%edi),%esi 1514 movb %dh,%al 1515 movb %dl,%bl 1516 rorl $16,%edx 1517 xorl %esi,%ecx 1518 movl 72(%edi,%eax,4),%esi 1519 movl 1096(%edi,%ebx,4),%ebp 1520 movb %dh,%al 1521 movb %dl,%bl 1522 addl %ebp,%esi 1523 movl 2120(%edi,%eax,4),%eax 1524 xorl %eax,%esi 1525 movl 3144(%edi,%ebx,4),%ebp 1526 addl %ebp,%esi 1527 xorl %eax,%eax 1528 xorl %esi,%ecx 1529 xorl (%edi),%edx 1530 movl 20(%esp),%eax 1531 movl %edx,(%eax) 1532 movl %ecx,4(%eax) 1533 popl %edi 1534 popl %esi 1535 popl %ebx 1536 popl %ebp 1537 ret 1538.size BF_decrypt,.-.L_BF_decrypt_begin 1539.globl BF_cbc_encrypt 1540.type BF_cbc_encrypt,@function 1541.align 16 1542BF_cbc_encrypt: 1543.L_BF_cbc_encrypt_begin: 1544 1545 pushl %ebp 1546 pushl %ebx 1547 pushl %esi 1548 pushl %edi 1549 movl 28(%esp),%ebp 1550 1551 movl 36(%esp),%ebx 1552 movl (%ebx),%esi 1553 movl 4(%ebx),%edi 1554 pushl %edi 1555 pushl %esi 1556 pushl %edi 1557 pushl %esi 1558 movl %esp,%ebx 1559 movl 36(%esp),%esi 1560 movl 40(%esp),%edi 1561 1562 movl 56(%esp),%ecx 1563 1564 movl 48(%esp),%eax 1565 pushl %eax 1566 pushl %ebx 1567 cmpl $0,%ecx 1568 jz .L000decrypt 1569 andl $4294967288,%ebp 1570 movl 8(%esp),%eax 1571 movl 12(%esp),%ebx 1572 jz .L001encrypt_finish 1573.L002encrypt_loop: 1574 movl (%esi),%ecx 1575 movl 4(%esi),%edx 1576 xorl %ecx,%eax 1577 xorl %edx,%ebx 1578 bswap %eax 1579 bswap %ebx 1580 movl %eax,8(%esp) 1581 movl %ebx,12(%esp) 1582 call .L_BF_encrypt_begin 1583 movl 8(%esp),%eax 1584 movl 12(%esp),%ebx 1585 bswap %eax 1586 bswap %ebx 1587 movl %eax,(%edi) 1588 movl %ebx,4(%edi) 1589 addl $8,%esi 1590 addl $8,%edi 1591 subl $8,%ebp 1592 jnz .L002encrypt_loop 1593.L001encrypt_finish: 1594 movl 52(%esp),%ebp 1595 andl $7,%ebp 1596 jz .L003finish 1597 call .L004PIC_point 1598.L004PIC_point: 1599 popl %edx 1600 leal .L005cbc_enc_jmp_table-.L004PIC_point(%edx),%ecx 1601 movl (%ecx,%ebp,4),%ebp 1602 addl %edx,%ebp 1603 xorl %ecx,%ecx 1604 xorl %edx,%edx 1605 jmp *%ebp 1606.L006ej7: 1607 movb 6(%esi),%dh 1608 shll $8,%edx 1609.L007ej6: 1610 movb 5(%esi),%dh 1611.L008ej5: 1612 movb 4(%esi),%dl 1613.L009ej4: 1614 movl (%esi),%ecx 1615 jmp .L010ejend 1616.L011ej3: 1617 movb 2(%esi),%ch 1618 shll $8,%ecx 1619.L012ej2: 1620 movb 1(%esi),%ch 1621.L013ej1: 1622 movb (%esi),%cl 1623.L010ejend: 1624 xorl %ecx,%eax 1625 xorl %edx,%ebx 1626 bswap %eax 1627 bswap %ebx 1628 movl %eax,8(%esp) 1629 movl %ebx,12(%esp) 1630 call .L_BF_encrypt_begin 1631 movl 8(%esp),%eax 1632 movl 12(%esp),%ebx 1633 bswap %eax 1634 bswap %ebx 1635 movl %eax,(%edi) 1636 movl %ebx,4(%edi) 1637 jmp .L003finish 1638.L000decrypt: 1639 andl $4294967288,%ebp 1640 movl 16(%esp),%eax 1641 movl 20(%esp),%ebx 1642 jz .L014decrypt_finish 1643.L015decrypt_loop: 1644 movl (%esi),%eax 1645 movl 4(%esi),%ebx 1646 bswap %eax 1647 bswap %ebx 1648 movl %eax,8(%esp) 1649 movl %ebx,12(%esp) 1650 call .L_BF_decrypt_begin 1651 movl 8(%esp),%eax 1652 movl 12(%esp),%ebx 1653 bswap %eax 1654 bswap %ebx 1655 movl 16(%esp),%ecx 1656 movl 20(%esp),%edx 1657 xorl %eax,%ecx 1658 xorl %ebx,%edx 1659 movl (%esi),%eax 1660 movl 4(%esi),%ebx 1661 movl %ecx,(%edi) 1662 movl %edx,4(%edi) 1663 movl %eax,16(%esp) 1664 movl %ebx,20(%esp) 1665 addl $8,%esi 1666 addl $8,%edi 1667 subl $8,%ebp 1668 jnz .L015decrypt_loop 1669.L014decrypt_finish: 1670 movl 52(%esp),%ebp 1671 andl $7,%ebp 1672 jz .L003finish 1673 movl (%esi),%eax 1674 movl 4(%esi),%ebx 1675 bswap %eax 1676 bswap %ebx 1677 movl %eax,8(%esp) 1678 movl %ebx,12(%esp) 1679 call .L_BF_decrypt_begin 1680 movl 8(%esp),%eax 1681 movl 12(%esp),%ebx 1682 bswap %eax 1683 bswap %ebx 1684 movl 16(%esp),%ecx 1685 movl 20(%esp),%edx 1686 xorl %eax,%ecx 1687 xorl %ebx,%edx 1688 movl (%esi),%eax 1689 movl 4(%esi),%ebx 1690.L016dj7: 1691 rorl $16,%edx 1692 movb %dl,6(%edi) 1693 shrl $16,%edx 1694.L017dj6: 1695 movb %dh,5(%edi) 1696.L018dj5: 1697 movb %dl,4(%edi) 1698.L019dj4: 1699 movl %ecx,(%edi) 1700 jmp .L020djend 1701.L021dj3: 1702 rorl $16,%ecx 1703 movb %cl,2(%edi) 1704 shll $16,%ecx 1705.L022dj2: 1706 movb %ch,1(%esi) 1707.L023dj1: 1708 movb %cl,(%esi) 1709.L020djend: 1710 jmp .L003finish 1711.L003finish: 1712 movl 60(%esp),%ecx 1713 addl $24,%esp 1714 movl %eax,(%ecx) 1715 movl %ebx,4(%ecx) 1716 popl %edi 1717 popl %esi 1718 popl %ebx 1719 popl %ebp 1720 ret 1721.align 64 1722.L005cbc_enc_jmp_table: 1723.long 0 1724.long .L013ej1-.L004PIC_point 1725.long .L012ej2-.L004PIC_point 1726.long .L011ej3-.L004PIC_point 1727.long .L009ej4-.L004PIC_point 1728.long .L008ej5-.L004PIC_point 1729.long .L007ej6-.L004PIC_point 1730.long .L006ej7-.L004PIC_point 1731.align 64 1732.size BF_cbc_encrypt,.-.L_BF_cbc_encrypt_begin 1733#endif 1734