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