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