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