1.text 2.globl Camellia_EncryptBlock_Rounds 3.type Camellia_EncryptBlock_Rounds,@function 4.align 16 5Camellia_EncryptBlock_Rounds: 6.L_Camellia_EncryptBlock_Rounds_begin: 7 %ifdef __CET__ 8 9.byte 243,15,30,251 10 %endif 11 12 pushl %ebp 13 pushl %ebx 14 pushl %esi 15 pushl %edi 16 movl 20(%esp),%eax 17 movl 24(%esp),%esi 18 movl 28(%esp),%edi 19 movl %esp,%ebx 20 subl $28,%esp 21 andl $-64,%esp 22 leal -127(%edi),%ecx 23 subl %esp,%ecx 24 negl %ecx 25 andl $960,%ecx 26 subl %ecx,%esp 27 addl $4,%esp 28 shll $6,%eax 29 leal (%edi,%eax,1),%eax 30 movl %ebx,20(%esp) 31 movl %eax,16(%esp) 32 call .L000pic_point 33.L000pic_point: 34 popl %ebp 35 leal .LCamellia_SBOX-.L000pic_point(%ebp),%ebp 36 movl (%esi),%eax 37 movl 4(%esi),%ebx 38 movl 8(%esi),%ecx 39 bswap %eax 40 movl 12(%esi),%edx 41 bswap %ebx 42 bswap %ecx 43 bswap %edx 44 call _x86_Camellia_encrypt 45 movl 20(%esp),%esp 46 bswap %eax 47 movl 32(%esp),%esi 48 bswap %ebx 49 bswap %ecx 50 bswap %edx 51 movl %eax,(%esi) 52 movl %ebx,4(%esi) 53 movl %ecx,8(%esi) 54 movl %edx,12(%esi) 55 popl %edi 56 popl %esi 57 popl %ebx 58 popl %ebp 59 ret 60.size Camellia_EncryptBlock_Rounds,.-.L_Camellia_EncryptBlock_Rounds_begin 61.globl Camellia_EncryptBlock 62.type Camellia_EncryptBlock,@function 63.align 16 64Camellia_EncryptBlock: 65.L_Camellia_EncryptBlock_begin: 66 %ifdef __CET__ 67 68.byte 243,15,30,251 69 %endif 70 71 movl $128,%eax 72 subl 4(%esp),%eax 73 movl $3,%eax 74 adcl $0,%eax 75 movl %eax,4(%esp) 76 jmp .L_Camellia_EncryptBlock_Rounds_begin 77.size Camellia_EncryptBlock,.-.L_Camellia_EncryptBlock_begin 78.globl Camellia_encrypt 79.type Camellia_encrypt,@function 80.align 16 81Camellia_encrypt: 82.L_Camellia_encrypt_begin: 83 %ifdef __CET__ 84 85.byte 243,15,30,251 86 %endif 87 88 pushl %ebp 89 pushl %ebx 90 pushl %esi 91 pushl %edi 92 movl 20(%esp),%esi 93 movl 28(%esp),%edi 94 movl %esp,%ebx 95 subl $28,%esp 96 andl $-64,%esp 97 movl 272(%edi),%eax 98 leal -127(%edi),%ecx 99 subl %esp,%ecx 100 negl %ecx 101 andl $960,%ecx 102 subl %ecx,%esp 103 addl $4,%esp 104 shll $6,%eax 105 leal (%edi,%eax,1),%eax 106 movl %ebx,20(%esp) 107 movl %eax,16(%esp) 108 call .L001pic_point 109.L001pic_point: 110 popl %ebp 111 leal .LCamellia_SBOX-.L001pic_point(%ebp),%ebp 112 movl (%esi),%eax 113 movl 4(%esi),%ebx 114 movl 8(%esi),%ecx 115 bswap %eax 116 movl 12(%esi),%edx 117 bswap %ebx 118 bswap %ecx 119 bswap %edx 120 call _x86_Camellia_encrypt 121 movl 20(%esp),%esp 122 bswap %eax 123 movl 24(%esp),%esi 124 bswap %ebx 125 bswap %ecx 126 bswap %edx 127 movl %eax,(%esi) 128 movl %ebx,4(%esi) 129 movl %ecx,8(%esi) 130 movl %edx,12(%esi) 131 popl %edi 132 popl %esi 133 popl %ebx 134 popl %ebp 135 ret 136.size Camellia_encrypt,.-.L_Camellia_encrypt_begin 137.type _x86_Camellia_encrypt,@function 138.align 16 139_x86_Camellia_encrypt: 140 %ifdef __CET__ 141 142.byte 243,15,30,251 143 %endif 144 145 xorl (%edi),%eax 146 xorl 4(%edi),%ebx 147 xorl 8(%edi),%ecx 148 xorl 12(%edi),%edx 149 movl 16(%edi),%esi 150 movl %eax,4(%esp) 151 movl %ebx,8(%esp) 152 movl %ecx,12(%esp) 153 movl %edx,16(%esp) 154.align 16 155.L002loop: 156 xorl %esi,%eax 157 xorl 20(%edi),%ebx 158 movzbl %ah,%esi 159 movl 2052(%ebp,%esi,8),%edx 160 movzbl %al,%esi 161 xorl 4(%ebp,%esi,8),%edx 162 shrl $16,%eax 163 movzbl %bl,%esi 164 movl (%ebp,%esi,8),%ecx 165 movzbl %ah,%esi 166 xorl (%ebp,%esi,8),%edx 167 movzbl %bh,%esi 168 xorl 4(%ebp,%esi,8),%ecx 169 shrl $16,%ebx 170 movzbl %al,%eax 171 xorl 2048(%ebp,%eax,8),%edx 172 movzbl %bh,%esi 173 movl 16(%esp),%eax 174 xorl %edx,%ecx 175 rorl $8,%edx 176 xorl 2048(%ebp,%esi,8),%ecx 177 movzbl %bl,%esi 178 movl 12(%esp),%ebx 179 xorl %eax,%edx 180 xorl 2052(%ebp,%esi,8),%ecx 181 movl 24(%edi),%esi 182 xorl %ecx,%edx 183 movl %edx,16(%esp) 184 xorl %ebx,%ecx 185 movl %ecx,12(%esp) 186 xorl %esi,%ecx 187 xorl 28(%edi),%edx 188 movzbl %ch,%esi 189 movl 2052(%ebp,%esi,8),%ebx 190 movzbl %cl,%esi 191 xorl 4(%ebp,%esi,8),%ebx 192 shrl $16,%ecx 193 movzbl %dl,%esi 194 movl (%ebp,%esi,8),%eax 195 movzbl %ch,%esi 196 xorl (%ebp,%esi,8),%ebx 197 movzbl %dh,%esi 198 xorl 4(%ebp,%esi,8),%eax 199 shrl $16,%edx 200 movzbl %cl,%ecx 201 xorl 2048(%ebp,%ecx,8),%ebx 202 movzbl %dh,%esi 203 movl 8(%esp),%ecx 204 xorl %ebx,%eax 205 rorl $8,%ebx 206 xorl 2048(%ebp,%esi,8),%eax 207 movzbl %dl,%esi 208 movl 4(%esp),%edx 209 xorl %ecx,%ebx 210 xorl 2052(%ebp,%esi,8),%eax 211 movl 32(%edi),%esi 212 xorl %eax,%ebx 213 movl %ebx,8(%esp) 214 xorl %edx,%eax 215 movl %eax,4(%esp) 216 xorl %esi,%eax 217 xorl 36(%edi),%ebx 218 movzbl %ah,%esi 219 movl 2052(%ebp,%esi,8),%edx 220 movzbl %al,%esi 221 xorl 4(%ebp,%esi,8),%edx 222 shrl $16,%eax 223 movzbl %bl,%esi 224 movl (%ebp,%esi,8),%ecx 225 movzbl %ah,%esi 226 xorl (%ebp,%esi,8),%edx 227 movzbl %bh,%esi 228 xorl 4(%ebp,%esi,8),%ecx 229 shrl $16,%ebx 230 movzbl %al,%eax 231 xorl 2048(%ebp,%eax,8),%edx 232 movzbl %bh,%esi 233 movl 16(%esp),%eax 234 xorl %edx,%ecx 235 rorl $8,%edx 236 xorl 2048(%ebp,%esi,8),%ecx 237 movzbl %bl,%esi 238 movl 12(%esp),%ebx 239 xorl %eax,%edx 240 xorl 2052(%ebp,%esi,8),%ecx 241 movl 40(%edi),%esi 242 xorl %ecx,%edx 243 movl %edx,16(%esp) 244 xorl %ebx,%ecx 245 movl %ecx,12(%esp) 246 xorl %esi,%ecx 247 xorl 44(%edi),%edx 248 movzbl %ch,%esi 249 movl 2052(%ebp,%esi,8),%ebx 250 movzbl %cl,%esi 251 xorl 4(%ebp,%esi,8),%ebx 252 shrl $16,%ecx 253 movzbl %dl,%esi 254 movl (%ebp,%esi,8),%eax 255 movzbl %ch,%esi 256 xorl (%ebp,%esi,8),%ebx 257 movzbl %dh,%esi 258 xorl 4(%ebp,%esi,8),%eax 259 shrl $16,%edx 260 movzbl %cl,%ecx 261 xorl 2048(%ebp,%ecx,8),%ebx 262 movzbl %dh,%esi 263 movl 8(%esp),%ecx 264 xorl %ebx,%eax 265 rorl $8,%ebx 266 xorl 2048(%ebp,%esi,8),%eax 267 movzbl %dl,%esi 268 movl 4(%esp),%edx 269 xorl %ecx,%ebx 270 xorl 2052(%ebp,%esi,8),%eax 271 movl 48(%edi),%esi 272 xorl %eax,%ebx 273 movl %ebx,8(%esp) 274 xorl %edx,%eax 275 movl %eax,4(%esp) 276 xorl %esi,%eax 277 xorl 52(%edi),%ebx 278 movzbl %ah,%esi 279 movl 2052(%ebp,%esi,8),%edx 280 movzbl %al,%esi 281 xorl 4(%ebp,%esi,8),%edx 282 shrl $16,%eax 283 movzbl %bl,%esi 284 movl (%ebp,%esi,8),%ecx 285 movzbl %ah,%esi 286 xorl (%ebp,%esi,8),%edx 287 movzbl %bh,%esi 288 xorl 4(%ebp,%esi,8),%ecx 289 shrl $16,%ebx 290 movzbl %al,%eax 291 xorl 2048(%ebp,%eax,8),%edx 292 movzbl %bh,%esi 293 movl 16(%esp),%eax 294 xorl %edx,%ecx 295 rorl $8,%edx 296 xorl 2048(%ebp,%esi,8),%ecx 297 movzbl %bl,%esi 298 movl 12(%esp),%ebx 299 xorl %eax,%edx 300 xorl 2052(%ebp,%esi,8),%ecx 301 movl 56(%edi),%esi 302 xorl %ecx,%edx 303 movl %edx,16(%esp) 304 xorl %ebx,%ecx 305 movl %ecx,12(%esp) 306 xorl %esi,%ecx 307 xorl 60(%edi),%edx 308 movzbl %ch,%esi 309 movl 2052(%ebp,%esi,8),%ebx 310 movzbl %cl,%esi 311 xorl 4(%ebp,%esi,8),%ebx 312 shrl $16,%ecx 313 movzbl %dl,%esi 314 movl (%ebp,%esi,8),%eax 315 movzbl %ch,%esi 316 xorl (%ebp,%esi,8),%ebx 317 movzbl %dh,%esi 318 xorl 4(%ebp,%esi,8),%eax 319 shrl $16,%edx 320 movzbl %cl,%ecx 321 xorl 2048(%ebp,%ecx,8),%ebx 322 movzbl %dh,%esi 323 movl 8(%esp),%ecx 324 xorl %ebx,%eax 325 rorl $8,%ebx 326 xorl 2048(%ebp,%esi,8),%eax 327 movzbl %dl,%esi 328 movl 4(%esp),%edx 329 xorl %ecx,%ebx 330 xorl 2052(%ebp,%esi,8),%eax 331 movl 64(%edi),%esi 332 xorl %eax,%ebx 333 movl %ebx,8(%esp) 334 xorl %edx,%eax 335 movl %eax,4(%esp) 336 addl $64,%edi 337 cmpl 20(%esp),%edi 338 je .L003done 339 andl %eax,%esi 340 movl 16(%esp),%edx 341 roll $1,%esi 342 movl %edx,%ecx 343 xorl %esi,%ebx 344 orl 12(%edi),%ecx 345 movl %ebx,8(%esp) 346 xorl 12(%esp),%ecx 347 movl 4(%edi),%esi 348 movl %ecx,12(%esp) 349 orl %ebx,%esi 350 andl 8(%edi),%ecx 351 xorl %esi,%eax 352 roll $1,%ecx 353 movl %eax,4(%esp) 354 xorl %ecx,%edx 355 movl 16(%edi),%esi 356 movl %edx,16(%esp) 357 jmp .L002loop 358.align 8 359.L003done: 360 movl %eax,%ecx 361 movl %ebx,%edx 362 movl 12(%esp),%eax 363 movl 16(%esp),%ebx 364 xorl %esi,%eax 365 xorl 4(%edi),%ebx 366 xorl 8(%edi),%ecx 367 xorl 12(%edi),%edx 368 ret 369.size _x86_Camellia_encrypt,.-_x86_Camellia_encrypt 370.globl Camellia_DecryptBlock_Rounds 371.type Camellia_DecryptBlock_Rounds,@function 372.align 16 373Camellia_DecryptBlock_Rounds: 374.L_Camellia_DecryptBlock_Rounds_begin: 375 %ifdef __CET__ 376 377.byte 243,15,30,251 378 %endif 379 380 pushl %ebp 381 pushl %ebx 382 pushl %esi 383 pushl %edi 384 movl 20(%esp),%eax 385 movl 24(%esp),%esi 386 movl 28(%esp),%edi 387 movl %esp,%ebx 388 subl $28,%esp 389 andl $-64,%esp 390 leal -127(%edi),%ecx 391 subl %esp,%ecx 392 negl %ecx 393 andl $960,%ecx 394 subl %ecx,%esp 395 addl $4,%esp 396 shll $6,%eax 397 movl %edi,16(%esp) 398 leal (%edi,%eax,1),%edi 399 movl %ebx,20(%esp) 400 call .L004pic_point 401.L004pic_point: 402 popl %ebp 403 leal .LCamellia_SBOX-.L004pic_point(%ebp),%ebp 404 movl (%esi),%eax 405 movl 4(%esi),%ebx 406 movl 8(%esi),%ecx 407 bswap %eax 408 movl 12(%esi),%edx 409 bswap %ebx 410 bswap %ecx 411 bswap %edx 412 call _x86_Camellia_decrypt 413 movl 20(%esp),%esp 414 bswap %eax 415 movl 32(%esp),%esi 416 bswap %ebx 417 bswap %ecx 418 bswap %edx 419 movl %eax,(%esi) 420 movl %ebx,4(%esi) 421 movl %ecx,8(%esi) 422 movl %edx,12(%esi) 423 popl %edi 424 popl %esi 425 popl %ebx 426 popl %ebp 427 ret 428.size Camellia_DecryptBlock_Rounds,.-.L_Camellia_DecryptBlock_Rounds_begin 429.globl Camellia_DecryptBlock 430.type Camellia_DecryptBlock,@function 431.align 16 432Camellia_DecryptBlock: 433.L_Camellia_DecryptBlock_begin: 434 %ifdef __CET__ 435 436.byte 243,15,30,251 437 %endif 438 439 movl $128,%eax 440 subl 4(%esp),%eax 441 movl $3,%eax 442 adcl $0,%eax 443 movl %eax,4(%esp) 444 jmp .L_Camellia_DecryptBlock_Rounds_begin 445.size Camellia_DecryptBlock,.-.L_Camellia_DecryptBlock_begin 446.globl Camellia_decrypt 447.type Camellia_decrypt,@function 448.align 16 449Camellia_decrypt: 450.L_Camellia_decrypt_begin: 451 %ifdef __CET__ 452 453.byte 243,15,30,251 454 %endif 455 456 pushl %ebp 457 pushl %ebx 458 pushl %esi 459 pushl %edi 460 movl 20(%esp),%esi 461 movl 28(%esp),%edi 462 movl %esp,%ebx 463 subl $28,%esp 464 andl $-64,%esp 465 movl 272(%edi),%eax 466 leal -127(%edi),%ecx 467 subl %esp,%ecx 468 negl %ecx 469 andl $960,%ecx 470 subl %ecx,%esp 471 addl $4,%esp 472 shll $6,%eax 473 movl %edi,16(%esp) 474 leal (%edi,%eax,1),%edi 475 movl %ebx,20(%esp) 476 call .L005pic_point 477.L005pic_point: 478 popl %ebp 479 leal .LCamellia_SBOX-.L005pic_point(%ebp),%ebp 480 movl (%esi),%eax 481 movl 4(%esi),%ebx 482 movl 8(%esi),%ecx 483 bswap %eax 484 movl 12(%esi),%edx 485 bswap %ebx 486 bswap %ecx 487 bswap %edx 488 call _x86_Camellia_decrypt 489 movl 20(%esp),%esp 490 bswap %eax 491 movl 24(%esp),%esi 492 bswap %ebx 493 bswap %ecx 494 bswap %edx 495 movl %eax,(%esi) 496 movl %ebx,4(%esi) 497 movl %ecx,8(%esi) 498 movl %edx,12(%esi) 499 popl %edi 500 popl %esi 501 popl %ebx 502 popl %ebp 503 ret 504.size Camellia_decrypt,.-.L_Camellia_decrypt_begin 505.type _x86_Camellia_decrypt,@function 506.align 16 507_x86_Camellia_decrypt: 508 %ifdef __CET__ 509 510.byte 243,15,30,251 511 %endif 512 513 xorl (%edi),%eax 514 xorl 4(%edi),%ebx 515 xorl 8(%edi),%ecx 516 xorl 12(%edi),%edx 517 movl -8(%edi),%esi 518 movl %eax,4(%esp) 519 movl %ebx,8(%esp) 520 movl %ecx,12(%esp) 521 movl %edx,16(%esp) 522.align 16 523.L006loop: 524 xorl %esi,%eax 525 xorl -4(%edi),%ebx 526 movzbl %ah,%esi 527 movl 2052(%ebp,%esi,8),%edx 528 movzbl %al,%esi 529 xorl 4(%ebp,%esi,8),%edx 530 shrl $16,%eax 531 movzbl %bl,%esi 532 movl (%ebp,%esi,8),%ecx 533 movzbl %ah,%esi 534 xorl (%ebp,%esi,8),%edx 535 movzbl %bh,%esi 536 xorl 4(%ebp,%esi,8),%ecx 537 shrl $16,%ebx 538 movzbl %al,%eax 539 xorl 2048(%ebp,%eax,8),%edx 540 movzbl %bh,%esi 541 movl 16(%esp),%eax 542 xorl %edx,%ecx 543 rorl $8,%edx 544 xorl 2048(%ebp,%esi,8),%ecx 545 movzbl %bl,%esi 546 movl 12(%esp),%ebx 547 xorl %eax,%edx 548 xorl 2052(%ebp,%esi,8),%ecx 549 movl -16(%edi),%esi 550 xorl %ecx,%edx 551 movl %edx,16(%esp) 552 xorl %ebx,%ecx 553 movl %ecx,12(%esp) 554 xorl %esi,%ecx 555 xorl -12(%edi),%edx 556 movzbl %ch,%esi 557 movl 2052(%ebp,%esi,8),%ebx 558 movzbl %cl,%esi 559 xorl 4(%ebp,%esi,8),%ebx 560 shrl $16,%ecx 561 movzbl %dl,%esi 562 movl (%ebp,%esi,8),%eax 563 movzbl %ch,%esi 564 xorl (%ebp,%esi,8),%ebx 565 movzbl %dh,%esi 566 xorl 4(%ebp,%esi,8),%eax 567 shrl $16,%edx 568 movzbl %cl,%ecx 569 xorl 2048(%ebp,%ecx,8),%ebx 570 movzbl %dh,%esi 571 movl 8(%esp),%ecx 572 xorl %ebx,%eax 573 rorl $8,%ebx 574 xorl 2048(%ebp,%esi,8),%eax 575 movzbl %dl,%esi 576 movl 4(%esp),%edx 577 xorl %ecx,%ebx 578 xorl 2052(%ebp,%esi,8),%eax 579 movl -24(%edi),%esi 580 xorl %eax,%ebx 581 movl %ebx,8(%esp) 582 xorl %edx,%eax 583 movl %eax,4(%esp) 584 xorl %esi,%eax 585 xorl -20(%edi),%ebx 586 movzbl %ah,%esi 587 movl 2052(%ebp,%esi,8),%edx 588 movzbl %al,%esi 589 xorl 4(%ebp,%esi,8),%edx 590 shrl $16,%eax 591 movzbl %bl,%esi 592 movl (%ebp,%esi,8),%ecx 593 movzbl %ah,%esi 594 xorl (%ebp,%esi,8),%edx 595 movzbl %bh,%esi 596 xorl 4(%ebp,%esi,8),%ecx 597 shrl $16,%ebx 598 movzbl %al,%eax 599 xorl 2048(%ebp,%eax,8),%edx 600 movzbl %bh,%esi 601 movl 16(%esp),%eax 602 xorl %edx,%ecx 603 rorl $8,%edx 604 xorl 2048(%ebp,%esi,8),%ecx 605 movzbl %bl,%esi 606 movl 12(%esp),%ebx 607 xorl %eax,%edx 608 xorl 2052(%ebp,%esi,8),%ecx 609 movl -32(%edi),%esi 610 xorl %ecx,%edx 611 movl %edx,16(%esp) 612 xorl %ebx,%ecx 613 movl %ecx,12(%esp) 614 xorl %esi,%ecx 615 xorl -28(%edi),%edx 616 movzbl %ch,%esi 617 movl 2052(%ebp,%esi,8),%ebx 618 movzbl %cl,%esi 619 xorl 4(%ebp,%esi,8),%ebx 620 shrl $16,%ecx 621 movzbl %dl,%esi 622 movl (%ebp,%esi,8),%eax 623 movzbl %ch,%esi 624 xorl (%ebp,%esi,8),%ebx 625 movzbl %dh,%esi 626 xorl 4(%ebp,%esi,8),%eax 627 shrl $16,%edx 628 movzbl %cl,%ecx 629 xorl 2048(%ebp,%ecx,8),%ebx 630 movzbl %dh,%esi 631 movl 8(%esp),%ecx 632 xorl %ebx,%eax 633 rorl $8,%ebx 634 xorl 2048(%ebp,%esi,8),%eax 635 movzbl %dl,%esi 636 movl 4(%esp),%edx 637 xorl %ecx,%ebx 638 xorl 2052(%ebp,%esi,8),%eax 639 movl -40(%edi),%esi 640 xorl %eax,%ebx 641 movl %ebx,8(%esp) 642 xorl %edx,%eax 643 movl %eax,4(%esp) 644 xorl %esi,%eax 645 xorl -36(%edi),%ebx 646 movzbl %ah,%esi 647 movl 2052(%ebp,%esi,8),%edx 648 movzbl %al,%esi 649 xorl 4(%ebp,%esi,8),%edx 650 shrl $16,%eax 651 movzbl %bl,%esi 652 movl (%ebp,%esi,8),%ecx 653 movzbl %ah,%esi 654 xorl (%ebp,%esi,8),%edx 655 movzbl %bh,%esi 656 xorl 4(%ebp,%esi,8),%ecx 657 shrl $16,%ebx 658 movzbl %al,%eax 659 xorl 2048(%ebp,%eax,8),%edx 660 movzbl %bh,%esi 661 movl 16(%esp),%eax 662 xorl %edx,%ecx 663 rorl $8,%edx 664 xorl 2048(%ebp,%esi,8),%ecx 665 movzbl %bl,%esi 666 movl 12(%esp),%ebx 667 xorl %eax,%edx 668 xorl 2052(%ebp,%esi,8),%ecx 669 movl -48(%edi),%esi 670 xorl %ecx,%edx 671 movl %edx,16(%esp) 672 xorl %ebx,%ecx 673 movl %ecx,12(%esp) 674 xorl %esi,%ecx 675 xorl -44(%edi),%edx 676 movzbl %ch,%esi 677 movl 2052(%ebp,%esi,8),%ebx 678 movzbl %cl,%esi 679 xorl 4(%ebp,%esi,8),%ebx 680 shrl $16,%ecx 681 movzbl %dl,%esi 682 movl (%ebp,%esi,8),%eax 683 movzbl %ch,%esi 684 xorl (%ebp,%esi,8),%ebx 685 movzbl %dh,%esi 686 xorl 4(%ebp,%esi,8),%eax 687 shrl $16,%edx 688 movzbl %cl,%ecx 689 xorl 2048(%ebp,%ecx,8),%ebx 690 movzbl %dh,%esi 691 movl 8(%esp),%ecx 692 xorl %ebx,%eax 693 rorl $8,%ebx 694 xorl 2048(%ebp,%esi,8),%eax 695 movzbl %dl,%esi 696 movl 4(%esp),%edx 697 xorl %ecx,%ebx 698 xorl 2052(%ebp,%esi,8),%eax 699 movl -56(%edi),%esi 700 xorl %eax,%ebx 701 movl %ebx,8(%esp) 702 xorl %edx,%eax 703 movl %eax,4(%esp) 704 subl $64,%edi 705 cmpl 20(%esp),%edi 706 je .L007done 707 andl %eax,%esi 708 movl 16(%esp),%edx 709 roll $1,%esi 710 movl %edx,%ecx 711 xorl %esi,%ebx 712 orl 4(%edi),%ecx 713 movl %ebx,8(%esp) 714 xorl 12(%esp),%ecx 715 movl 12(%edi),%esi 716 movl %ecx,12(%esp) 717 orl %ebx,%esi 718 andl (%edi),%ecx 719 xorl %esi,%eax 720 roll $1,%ecx 721 movl %eax,4(%esp) 722 xorl %ecx,%edx 723 movl -8(%edi),%esi 724 movl %edx,16(%esp) 725 jmp .L006loop 726.align 8 727.L007done: 728 movl %eax,%ecx 729 movl %ebx,%edx 730 movl 12(%esp),%eax 731 movl 16(%esp),%ebx 732 xorl %esi,%ecx 733 xorl 12(%edi),%edx 734 xorl (%edi),%eax 735 xorl 4(%edi),%ebx 736 ret 737.size _x86_Camellia_decrypt,.-_x86_Camellia_decrypt 738.globl Camellia_Ekeygen 739.type Camellia_Ekeygen,@function 740.align 16 741Camellia_Ekeygen: 742.L_Camellia_Ekeygen_begin: 743 %ifdef __CET__ 744 745.byte 243,15,30,251 746 %endif 747 748 pushl %ebp 749 pushl %ebx 750 pushl %esi 751 pushl %edi 752 subl $16,%esp 753 movl 36(%esp),%ebp 754 movl 40(%esp),%esi 755 movl 44(%esp),%edi 756 movl (%esi),%eax 757 movl 4(%esi),%ebx 758 movl 8(%esi),%ecx 759 movl 12(%esi),%edx 760 bswap %eax 761 bswap %ebx 762 bswap %ecx 763 bswap %edx 764 movl %eax,(%edi) 765 movl %ebx,4(%edi) 766 movl %ecx,8(%edi) 767 movl %edx,12(%edi) 768 cmpl $128,%ebp 769 je .L0081st128 770 movl 16(%esi),%eax 771 movl 20(%esi),%ebx 772 cmpl $192,%ebp 773 je .L0091st192 774 movl 24(%esi),%ecx 775 movl 28(%esi),%edx 776 jmp .L0101st256 777.align 4 778.L0091st192: 779 movl %eax,%ecx 780 movl %ebx,%edx 781 notl %ecx 782 notl %edx 783.align 4 784.L0101st256: 785 bswap %eax 786 bswap %ebx 787 bswap %ecx 788 bswap %edx 789 movl %eax,32(%edi) 790 movl %ebx,36(%edi) 791 movl %ecx,40(%edi) 792 movl %edx,44(%edi) 793 xorl (%edi),%eax 794 xorl 4(%edi),%ebx 795 xorl 8(%edi),%ecx 796 xorl 12(%edi),%edx 797.align 4 798.L0081st128: 799 call .L011pic_point 800.L011pic_point: 801 popl %ebp 802 leal .LCamellia_SBOX-.L011pic_point(%ebp),%ebp 803 leal .LCamellia_SIGMA-.LCamellia_SBOX(%ebp),%edi 804 movl (%edi),%esi 805 movl %eax,(%esp) 806 movl %ebx,4(%esp) 807 movl %ecx,8(%esp) 808 movl %edx,12(%esp) 809 xorl %esi,%eax 810 xorl 4(%edi),%ebx 811 movzbl %ah,%esi 812 movl 2052(%ebp,%esi,8),%edx 813 movzbl %al,%esi 814 xorl 4(%ebp,%esi,8),%edx 815 shrl $16,%eax 816 movzbl %bl,%esi 817 movl (%ebp,%esi,8),%ecx 818 movzbl %ah,%esi 819 xorl (%ebp,%esi,8),%edx 820 movzbl %bh,%esi 821 xorl 4(%ebp,%esi,8),%ecx 822 shrl $16,%ebx 823 movzbl %al,%eax 824 xorl 2048(%ebp,%eax,8),%edx 825 movzbl %bh,%esi 826 movl 12(%esp),%eax 827 xorl %edx,%ecx 828 rorl $8,%edx 829 xorl 2048(%ebp,%esi,8),%ecx 830 movzbl %bl,%esi 831 movl 8(%esp),%ebx 832 xorl %eax,%edx 833 xorl 2052(%ebp,%esi,8),%ecx 834 movl 8(%edi),%esi 835 xorl %ecx,%edx 836 movl %edx,12(%esp) 837 xorl %ebx,%ecx 838 movl %ecx,8(%esp) 839 xorl %esi,%ecx 840 xorl 12(%edi),%edx 841 movzbl %ch,%esi 842 movl 2052(%ebp,%esi,8),%ebx 843 movzbl %cl,%esi 844 xorl 4(%ebp,%esi,8),%ebx 845 shrl $16,%ecx 846 movzbl %dl,%esi 847 movl (%ebp,%esi,8),%eax 848 movzbl %ch,%esi 849 xorl (%ebp,%esi,8),%ebx 850 movzbl %dh,%esi 851 xorl 4(%ebp,%esi,8),%eax 852 shrl $16,%edx 853 movzbl %cl,%ecx 854 xorl 2048(%ebp,%ecx,8),%ebx 855 movzbl %dh,%esi 856 movl 4(%esp),%ecx 857 xorl %ebx,%eax 858 rorl $8,%ebx 859 xorl 2048(%ebp,%esi,8),%eax 860 movzbl %dl,%esi 861 movl (%esp),%edx 862 xorl %ecx,%ebx 863 xorl 2052(%ebp,%esi,8),%eax 864 movl 16(%edi),%esi 865 xorl %eax,%ebx 866 movl %ebx,4(%esp) 867 xorl %edx,%eax 868 movl %eax,(%esp) 869 movl 8(%esp),%ecx 870 movl 12(%esp),%edx 871 movl 44(%esp),%esi 872 xorl (%esi),%eax 873 xorl 4(%esi),%ebx 874 xorl 8(%esi),%ecx 875 xorl 12(%esi),%edx 876 movl 16(%edi),%esi 877 movl %eax,(%esp) 878 movl %ebx,4(%esp) 879 movl %ecx,8(%esp) 880 movl %edx,12(%esp) 881 xorl %esi,%eax 882 xorl 20(%edi),%ebx 883 movzbl %ah,%esi 884 movl 2052(%ebp,%esi,8),%edx 885 movzbl %al,%esi 886 xorl 4(%ebp,%esi,8),%edx 887 shrl $16,%eax 888 movzbl %bl,%esi 889 movl (%ebp,%esi,8),%ecx 890 movzbl %ah,%esi 891 xorl (%ebp,%esi,8),%edx 892 movzbl %bh,%esi 893 xorl 4(%ebp,%esi,8),%ecx 894 shrl $16,%ebx 895 movzbl %al,%eax 896 xorl 2048(%ebp,%eax,8),%edx 897 movzbl %bh,%esi 898 movl 12(%esp),%eax 899 xorl %edx,%ecx 900 rorl $8,%edx 901 xorl 2048(%ebp,%esi,8),%ecx 902 movzbl %bl,%esi 903 movl 8(%esp),%ebx 904 xorl %eax,%edx 905 xorl 2052(%ebp,%esi,8),%ecx 906 movl 24(%edi),%esi 907 xorl %ecx,%edx 908 movl %edx,12(%esp) 909 xorl %ebx,%ecx 910 movl %ecx,8(%esp) 911 xorl %esi,%ecx 912 xorl 28(%edi),%edx 913 movzbl %ch,%esi 914 movl 2052(%ebp,%esi,8),%ebx 915 movzbl %cl,%esi 916 xorl 4(%ebp,%esi,8),%ebx 917 shrl $16,%ecx 918 movzbl %dl,%esi 919 movl (%ebp,%esi,8),%eax 920 movzbl %ch,%esi 921 xorl (%ebp,%esi,8),%ebx 922 movzbl %dh,%esi 923 xorl 4(%ebp,%esi,8),%eax 924 shrl $16,%edx 925 movzbl %cl,%ecx 926 xorl 2048(%ebp,%ecx,8),%ebx 927 movzbl %dh,%esi 928 movl 4(%esp),%ecx 929 xorl %ebx,%eax 930 rorl $8,%ebx 931 xorl 2048(%ebp,%esi,8),%eax 932 movzbl %dl,%esi 933 movl (%esp),%edx 934 xorl %ecx,%ebx 935 xorl 2052(%ebp,%esi,8),%eax 936 movl 32(%edi),%esi 937 xorl %eax,%ebx 938 movl %ebx,4(%esp) 939 xorl %edx,%eax 940 movl %eax,(%esp) 941 movl 8(%esp),%ecx 942 movl 12(%esp),%edx 943 movl 36(%esp),%esi 944 cmpl $128,%esi 945 jne .L0122nd256 946 movl 44(%esp),%edi 947 leal 128(%edi),%edi 948 movl %eax,-112(%edi) 949 movl %ebx,-108(%edi) 950 movl %ecx,-104(%edi) 951 movl %edx,-100(%edi) 952 movl %eax,%ebp 953 shll $15,%eax 954 movl %ebx,%esi 955 shrl $17,%esi 956 shll $15,%ebx 957 orl %esi,%eax 958 movl %ecx,%esi 959 shll $15,%ecx 960 movl %eax,-80(%edi) 961 shrl $17,%esi 962 orl %esi,%ebx 963 shrl $17,%ebp 964 movl %edx,%esi 965 shrl $17,%esi 966 movl %ebx,-76(%edi) 967 shll $15,%edx 968 orl %esi,%ecx 969 orl %ebp,%edx 970 movl %ecx,-72(%edi) 971 movl %edx,-68(%edi) 972 movl %eax,%ebp 973 shll $15,%eax 974 movl %ebx,%esi 975 shrl $17,%esi 976 shll $15,%ebx 977 orl %esi,%eax 978 movl %ecx,%esi 979 shll $15,%ecx 980 movl %eax,-64(%edi) 981 shrl $17,%esi 982 orl %esi,%ebx 983 shrl $17,%ebp 984 movl %edx,%esi 985 shrl $17,%esi 986 movl %ebx,-60(%edi) 987 shll $15,%edx 988 orl %esi,%ecx 989 orl %ebp,%edx 990 movl %ecx,-56(%edi) 991 movl %edx,-52(%edi) 992 movl %eax,%ebp 993 shll $15,%eax 994 movl %ebx,%esi 995 shrl $17,%esi 996 shll $15,%ebx 997 orl %esi,%eax 998 movl %ecx,%esi 999 shll $15,%ecx 1000 movl %eax,-32(%edi) 1001 shrl $17,%esi 1002 orl %esi,%ebx 1003 shrl $17,%ebp 1004 movl %edx,%esi 1005 shrl $17,%esi 1006 movl %ebx,-28(%edi) 1007 shll $15,%edx 1008 orl %esi,%ecx 1009 orl %ebp,%edx 1010 movl %eax,%ebp 1011 shll $15,%eax 1012 movl %ebx,%esi 1013 shrl $17,%esi 1014 shll $15,%ebx 1015 orl %esi,%eax 1016 movl %ecx,%esi 1017 shll $15,%ecx 1018 movl %eax,-16(%edi) 1019 shrl $17,%esi 1020 orl %esi,%ebx 1021 shrl $17,%ebp 1022 movl %edx,%esi 1023 shrl $17,%esi 1024 movl %ebx,-12(%edi) 1025 shll $15,%edx 1026 orl %esi,%ecx 1027 orl %ebp,%edx 1028 movl %ecx,-8(%edi) 1029 movl %edx,-4(%edi) 1030 movl %ebx,%ebp 1031 shll $2,%ebx 1032 movl %ecx,%esi 1033 shrl $30,%esi 1034 shll $2,%ecx 1035 orl %esi,%ebx 1036 movl %edx,%esi 1037 shll $2,%edx 1038 movl %ebx,32(%edi) 1039 shrl $30,%esi 1040 orl %esi,%ecx 1041 shrl $30,%ebp 1042 movl %eax,%esi 1043 shrl $30,%esi 1044 movl %ecx,36(%edi) 1045 shll $2,%eax 1046 orl %esi,%edx 1047 orl %ebp,%eax 1048 movl %edx,40(%edi) 1049 movl %eax,44(%edi) 1050 movl %ebx,%ebp 1051 shll $17,%ebx 1052 movl %ecx,%esi 1053 shrl $15,%esi 1054 shll $17,%ecx 1055 orl %esi,%ebx 1056 movl %edx,%esi 1057 shll $17,%edx 1058 movl %ebx,64(%edi) 1059 shrl $15,%esi 1060 orl %esi,%ecx 1061 shrl $15,%ebp 1062 movl %eax,%esi 1063 shrl $15,%esi 1064 movl %ecx,68(%edi) 1065 shll $17,%eax 1066 orl %esi,%edx 1067 orl %ebp,%eax 1068 movl %edx,72(%edi) 1069 movl %eax,76(%edi) 1070 movl -128(%edi),%ebx 1071 movl -124(%edi),%ecx 1072 movl -120(%edi),%edx 1073 movl -116(%edi),%eax 1074 movl %ebx,%ebp 1075 shll $15,%ebx 1076 movl %ecx,%esi 1077 shrl $17,%esi 1078 shll $15,%ecx 1079 orl %esi,%ebx 1080 movl %edx,%esi 1081 shll $15,%edx 1082 movl %ebx,-96(%edi) 1083 shrl $17,%esi 1084 orl %esi,%ecx 1085 shrl $17,%ebp 1086 movl %eax,%esi 1087 shrl $17,%esi 1088 movl %ecx,-92(%edi) 1089 shll $15,%eax 1090 orl %esi,%edx 1091 orl %ebp,%eax 1092 movl %edx,-88(%edi) 1093 movl %eax,-84(%edi) 1094 movl %ebx,%ebp 1095 shll $30,%ebx 1096 movl %ecx,%esi 1097 shrl $2,%esi 1098 shll $30,%ecx 1099 orl %esi,%ebx 1100 movl %edx,%esi 1101 shll $30,%edx 1102 movl %ebx,-48(%edi) 1103 shrl $2,%esi 1104 orl %esi,%ecx 1105 shrl $2,%ebp 1106 movl %eax,%esi 1107 shrl $2,%esi 1108 movl %ecx,-44(%edi) 1109 shll $30,%eax 1110 orl %esi,%edx 1111 orl %ebp,%eax 1112 movl %edx,-40(%edi) 1113 movl %eax,-36(%edi) 1114 movl %ebx,%ebp 1115 shll $15,%ebx 1116 movl %ecx,%esi 1117 shrl $17,%esi 1118 shll $15,%ecx 1119 orl %esi,%ebx 1120 movl %edx,%esi 1121 shll $15,%edx 1122 shrl $17,%esi 1123 orl %esi,%ecx 1124 shrl $17,%ebp 1125 movl %eax,%esi 1126 shrl $17,%esi 1127 shll $15,%eax 1128 orl %esi,%edx 1129 orl %ebp,%eax 1130 movl %edx,-24(%edi) 1131 movl %eax,-20(%edi) 1132 movl %ebx,%ebp 1133 shll $17,%ebx 1134 movl %ecx,%esi 1135 shrl $15,%esi 1136 shll $17,%ecx 1137 orl %esi,%ebx 1138 movl %edx,%esi 1139 shll $17,%edx 1140 movl %ebx,(%edi) 1141 shrl $15,%esi 1142 orl %esi,%ecx 1143 shrl $15,%ebp 1144 movl %eax,%esi 1145 shrl $15,%esi 1146 movl %ecx,4(%edi) 1147 shll $17,%eax 1148 orl %esi,%edx 1149 orl %ebp,%eax 1150 movl %edx,8(%edi) 1151 movl %eax,12(%edi) 1152 movl %ebx,%ebp 1153 shll $17,%ebx 1154 movl %ecx,%esi 1155 shrl $15,%esi 1156 shll $17,%ecx 1157 orl %esi,%ebx 1158 movl %edx,%esi 1159 shll $17,%edx 1160 movl %ebx,16(%edi) 1161 shrl $15,%esi 1162 orl %esi,%ecx 1163 shrl $15,%ebp 1164 movl %eax,%esi 1165 shrl $15,%esi 1166 movl %ecx,20(%edi) 1167 shll $17,%eax 1168 orl %esi,%edx 1169 orl %ebp,%eax 1170 movl %edx,24(%edi) 1171 movl %eax,28(%edi) 1172 movl %ebx,%ebp 1173 shll $17,%ebx 1174 movl %ecx,%esi 1175 shrl $15,%esi 1176 shll $17,%ecx 1177 orl %esi,%ebx 1178 movl %edx,%esi 1179 shll $17,%edx 1180 movl %ebx,48(%edi) 1181 shrl $15,%esi 1182 orl %esi,%ecx 1183 shrl $15,%ebp 1184 movl %eax,%esi 1185 shrl $15,%esi 1186 movl %ecx,52(%edi) 1187 shll $17,%eax 1188 orl %esi,%edx 1189 orl %ebp,%eax 1190 movl %edx,56(%edi) 1191 movl %eax,60(%edi) 1192 movl $3,%eax 1193 jmp .L013done 1194.align 16 1195.L0122nd256: 1196 movl 44(%esp),%esi 1197 movl %eax,48(%esi) 1198 movl %ebx,52(%esi) 1199 movl %ecx,56(%esi) 1200 movl %edx,60(%esi) 1201 xorl 32(%esi),%eax 1202 xorl 36(%esi),%ebx 1203 xorl 40(%esi),%ecx 1204 xorl 44(%esi),%edx 1205 movl 32(%edi),%esi 1206 movl %eax,(%esp) 1207 movl %ebx,4(%esp) 1208 movl %ecx,8(%esp) 1209 movl %edx,12(%esp) 1210 xorl %esi,%eax 1211 xorl 36(%edi),%ebx 1212 movzbl %ah,%esi 1213 movl 2052(%ebp,%esi,8),%edx 1214 movzbl %al,%esi 1215 xorl 4(%ebp,%esi,8),%edx 1216 shrl $16,%eax 1217 movzbl %bl,%esi 1218 movl (%ebp,%esi,8),%ecx 1219 movzbl %ah,%esi 1220 xorl (%ebp,%esi,8),%edx 1221 movzbl %bh,%esi 1222 xorl 4(%ebp,%esi,8),%ecx 1223 shrl $16,%ebx 1224 movzbl %al,%eax 1225 xorl 2048(%ebp,%eax,8),%edx 1226 movzbl %bh,%esi 1227 movl 12(%esp),%eax 1228 xorl %edx,%ecx 1229 rorl $8,%edx 1230 xorl 2048(%ebp,%esi,8),%ecx 1231 movzbl %bl,%esi 1232 movl 8(%esp),%ebx 1233 xorl %eax,%edx 1234 xorl 2052(%ebp,%esi,8),%ecx 1235 movl 40(%edi),%esi 1236 xorl %ecx,%edx 1237 movl %edx,12(%esp) 1238 xorl %ebx,%ecx 1239 movl %ecx,8(%esp) 1240 xorl %esi,%ecx 1241 xorl 44(%edi),%edx 1242 movzbl %ch,%esi 1243 movl 2052(%ebp,%esi,8),%ebx 1244 movzbl %cl,%esi 1245 xorl 4(%ebp,%esi,8),%ebx 1246 shrl $16,%ecx 1247 movzbl %dl,%esi 1248 movl (%ebp,%esi,8),%eax 1249 movzbl %ch,%esi 1250 xorl (%ebp,%esi,8),%ebx 1251 movzbl %dh,%esi 1252 xorl 4(%ebp,%esi,8),%eax 1253 shrl $16,%edx 1254 movzbl %cl,%ecx 1255 xorl 2048(%ebp,%ecx,8),%ebx 1256 movzbl %dh,%esi 1257 movl 4(%esp),%ecx 1258 xorl %ebx,%eax 1259 rorl $8,%ebx 1260 xorl 2048(%ebp,%esi,8),%eax 1261 movzbl %dl,%esi 1262 movl (%esp),%edx 1263 xorl %ecx,%ebx 1264 xorl 2052(%ebp,%esi,8),%eax 1265 movl 48(%edi),%esi 1266 xorl %eax,%ebx 1267 movl %ebx,4(%esp) 1268 xorl %edx,%eax 1269 movl %eax,(%esp) 1270 movl 8(%esp),%ecx 1271 movl 12(%esp),%edx 1272 movl 44(%esp),%edi 1273 leal 128(%edi),%edi 1274 movl %eax,-112(%edi) 1275 movl %ebx,-108(%edi) 1276 movl %ecx,-104(%edi) 1277 movl %edx,-100(%edi) 1278 movl %eax,%ebp 1279 shll $30,%eax 1280 movl %ebx,%esi 1281 shrl $2,%esi 1282 shll $30,%ebx 1283 orl %esi,%eax 1284 movl %ecx,%esi 1285 shll $30,%ecx 1286 movl %eax,-48(%edi) 1287 shrl $2,%esi 1288 orl %esi,%ebx 1289 shrl $2,%ebp 1290 movl %edx,%esi 1291 shrl $2,%esi 1292 movl %ebx,-44(%edi) 1293 shll $30,%edx 1294 orl %esi,%ecx 1295 orl %ebp,%edx 1296 movl %ecx,-40(%edi) 1297 movl %edx,-36(%edi) 1298 movl %eax,%ebp 1299 shll $30,%eax 1300 movl %ebx,%esi 1301 shrl $2,%esi 1302 shll $30,%ebx 1303 orl %esi,%eax 1304 movl %ecx,%esi 1305 shll $30,%ecx 1306 movl %eax,32(%edi) 1307 shrl $2,%esi 1308 orl %esi,%ebx 1309 shrl $2,%ebp 1310 movl %edx,%esi 1311 shrl $2,%esi 1312 movl %ebx,36(%edi) 1313 shll $30,%edx 1314 orl %esi,%ecx 1315 orl %ebp,%edx 1316 movl %ecx,40(%edi) 1317 movl %edx,44(%edi) 1318 movl %ebx,%ebp 1319 shll $19,%ebx 1320 movl %ecx,%esi 1321 shrl $13,%esi 1322 shll $19,%ecx 1323 orl %esi,%ebx 1324 movl %edx,%esi 1325 shll $19,%edx 1326 movl %ebx,128(%edi) 1327 shrl $13,%esi 1328 orl %esi,%ecx 1329 shrl $13,%ebp 1330 movl %eax,%esi 1331 shrl $13,%esi 1332 movl %ecx,132(%edi) 1333 shll $19,%eax 1334 orl %esi,%edx 1335 orl %ebp,%eax 1336 movl %edx,136(%edi) 1337 movl %eax,140(%edi) 1338 movl -96(%edi),%ebx 1339 movl -92(%edi),%ecx 1340 movl -88(%edi),%edx 1341 movl -84(%edi),%eax 1342 movl %ebx,%ebp 1343 shll $15,%ebx 1344 movl %ecx,%esi 1345 shrl $17,%esi 1346 shll $15,%ecx 1347 orl %esi,%ebx 1348 movl %edx,%esi 1349 shll $15,%edx 1350 movl %ebx,-96(%edi) 1351 shrl $17,%esi 1352 orl %esi,%ecx 1353 shrl $17,%ebp 1354 movl %eax,%esi 1355 shrl $17,%esi 1356 movl %ecx,-92(%edi) 1357 shll $15,%eax 1358 orl %esi,%edx 1359 orl %ebp,%eax 1360 movl %edx,-88(%edi) 1361 movl %eax,-84(%edi) 1362 movl %ebx,%ebp 1363 shll $15,%ebx 1364 movl %ecx,%esi 1365 shrl $17,%esi 1366 shll $15,%ecx 1367 orl %esi,%ebx 1368 movl %edx,%esi 1369 shll $15,%edx 1370 movl %ebx,-64(%edi) 1371 shrl $17,%esi 1372 orl %esi,%ecx 1373 shrl $17,%ebp 1374 movl %eax,%esi 1375 shrl $17,%esi 1376 movl %ecx,-60(%edi) 1377 shll $15,%eax 1378 orl %esi,%edx 1379 orl %ebp,%eax 1380 movl %edx,-56(%edi) 1381 movl %eax,-52(%edi) 1382 movl %ebx,%ebp 1383 shll $30,%ebx 1384 movl %ecx,%esi 1385 shrl $2,%esi 1386 shll $30,%ecx 1387 orl %esi,%ebx 1388 movl %edx,%esi 1389 shll $30,%edx 1390 movl %ebx,16(%edi) 1391 shrl $2,%esi 1392 orl %esi,%ecx 1393 shrl $2,%ebp 1394 movl %eax,%esi 1395 shrl $2,%esi 1396 movl %ecx,20(%edi) 1397 shll $30,%eax 1398 orl %esi,%edx 1399 orl %ebp,%eax 1400 movl %edx,24(%edi) 1401 movl %eax,28(%edi) 1402 movl %ecx,%ebp 1403 shll $2,%ecx 1404 movl %edx,%esi 1405 shrl $30,%esi 1406 shll $2,%edx 1407 orl %esi,%ecx 1408 movl %eax,%esi 1409 shll $2,%eax 1410 movl %ecx,80(%edi) 1411 shrl $30,%esi 1412 orl %esi,%edx 1413 shrl $30,%ebp 1414 movl %ebx,%esi 1415 shrl $30,%esi 1416 movl %edx,84(%edi) 1417 shll $2,%ebx 1418 orl %esi,%eax 1419 orl %ebp,%ebx 1420 movl %eax,88(%edi) 1421 movl %ebx,92(%edi) 1422 movl -80(%edi),%ecx 1423 movl -76(%edi),%edx 1424 movl -72(%edi),%eax 1425 movl -68(%edi),%ebx 1426 movl %ecx,%ebp 1427 shll $15,%ecx 1428 movl %edx,%esi 1429 shrl $17,%esi 1430 shll $15,%edx 1431 orl %esi,%ecx 1432 movl %eax,%esi 1433 shll $15,%eax 1434 movl %ecx,-80(%edi) 1435 shrl $17,%esi 1436 orl %esi,%edx 1437 shrl $17,%ebp 1438 movl %ebx,%esi 1439 shrl $17,%esi 1440 movl %edx,-76(%edi) 1441 shll $15,%ebx 1442 orl %esi,%eax 1443 orl %ebp,%ebx 1444 movl %eax,-72(%edi) 1445 movl %ebx,-68(%edi) 1446 movl %ecx,%ebp 1447 shll $30,%ecx 1448 movl %edx,%esi 1449 shrl $2,%esi 1450 shll $30,%edx 1451 orl %esi,%ecx 1452 movl %eax,%esi 1453 shll $30,%eax 1454 movl %ecx,-16(%edi) 1455 shrl $2,%esi 1456 orl %esi,%edx 1457 shrl $2,%ebp 1458 movl %ebx,%esi 1459 shrl $2,%esi 1460 movl %edx,-12(%edi) 1461 shll $30,%ebx 1462 orl %esi,%eax 1463 orl %ebp,%ebx 1464 movl %eax,-8(%edi) 1465 movl %ebx,-4(%edi) 1466 movl %edx,64(%edi) 1467 movl %eax,68(%edi) 1468 movl %ebx,72(%edi) 1469 movl %ecx,76(%edi) 1470 movl %edx,%ebp 1471 shll $17,%edx 1472 movl %eax,%esi 1473 shrl $15,%esi 1474 shll $17,%eax 1475 orl %esi,%edx 1476 movl %ebx,%esi 1477 shll $17,%ebx 1478 movl %edx,96(%edi) 1479 shrl $15,%esi 1480 orl %esi,%eax 1481 shrl $15,%ebp 1482 movl %ecx,%esi 1483 shrl $15,%esi 1484 movl %eax,100(%edi) 1485 shll $17,%ecx 1486 orl %esi,%ebx 1487 orl %ebp,%ecx 1488 movl %ebx,104(%edi) 1489 movl %ecx,108(%edi) 1490 movl -128(%edi),%edx 1491 movl -124(%edi),%eax 1492 movl -120(%edi),%ebx 1493 movl -116(%edi),%ecx 1494 movl %eax,%ebp 1495 shll $13,%eax 1496 movl %ebx,%esi 1497 shrl $19,%esi 1498 shll $13,%ebx 1499 orl %esi,%eax 1500 movl %ecx,%esi 1501 shll $13,%ecx 1502 movl %eax,-32(%edi) 1503 shrl $19,%esi 1504 orl %esi,%ebx 1505 shrl $19,%ebp 1506 movl %edx,%esi 1507 shrl $19,%esi 1508 movl %ebx,-28(%edi) 1509 shll $13,%edx 1510 orl %esi,%ecx 1511 orl %ebp,%edx 1512 movl %ecx,-24(%edi) 1513 movl %edx,-20(%edi) 1514 movl %eax,%ebp 1515 shll $15,%eax 1516 movl %ebx,%esi 1517 shrl $17,%esi 1518 shll $15,%ebx 1519 orl %esi,%eax 1520 movl %ecx,%esi 1521 shll $15,%ecx 1522 movl %eax,(%edi) 1523 shrl $17,%esi 1524 orl %esi,%ebx 1525 shrl $17,%ebp 1526 movl %edx,%esi 1527 shrl $17,%esi 1528 movl %ebx,4(%edi) 1529 shll $15,%edx 1530 orl %esi,%ecx 1531 orl %ebp,%edx 1532 movl %ecx,8(%edi) 1533 movl %edx,12(%edi) 1534 movl %eax,%ebp 1535 shll $17,%eax 1536 movl %ebx,%esi 1537 shrl $15,%esi 1538 shll $17,%ebx 1539 orl %esi,%eax 1540 movl %ecx,%esi 1541 shll $17,%ecx 1542 movl %eax,48(%edi) 1543 shrl $15,%esi 1544 orl %esi,%ebx 1545 shrl $15,%ebp 1546 movl %edx,%esi 1547 shrl $15,%esi 1548 movl %ebx,52(%edi) 1549 shll $17,%edx 1550 orl %esi,%ecx 1551 orl %ebp,%edx 1552 movl %ecx,56(%edi) 1553 movl %edx,60(%edi) 1554 movl %ebx,%ebp 1555 shll $2,%ebx 1556 movl %ecx,%esi 1557 shrl $30,%esi 1558 shll $2,%ecx 1559 orl %esi,%ebx 1560 movl %edx,%esi 1561 shll $2,%edx 1562 movl %ebx,112(%edi) 1563 shrl $30,%esi 1564 orl %esi,%ecx 1565 shrl $30,%ebp 1566 movl %eax,%esi 1567 shrl $30,%esi 1568 movl %ecx,116(%edi) 1569 shll $2,%eax 1570 orl %esi,%edx 1571 orl %ebp,%eax 1572 movl %edx,120(%edi) 1573 movl %eax,124(%edi) 1574 movl $4,%eax 1575.L013done: 1576 leal 144(%edi),%edx 1577 addl $16,%esp 1578 popl %edi 1579 popl %esi 1580 popl %ebx 1581 popl %ebp 1582 ret 1583.size Camellia_Ekeygen,.-.L_Camellia_Ekeygen_begin 1584.globl Camellia_set_key 1585.type Camellia_set_key,@function 1586.align 16 1587Camellia_set_key: 1588.L_Camellia_set_key_begin: 1589 %ifdef __CET__ 1590 1591.byte 243,15,30,251 1592 %endif 1593 1594 pushl %ebx 1595 movl 8(%esp),%ecx 1596 movl 12(%esp),%ebx 1597 movl 16(%esp),%edx 1598 movl $-1,%eax 1599 testl %ecx,%ecx 1600 jz .L014done 1601 testl %edx,%edx 1602 jz .L014done 1603 movl $-2,%eax 1604 cmpl $256,%ebx 1605 je .L015arg_ok 1606 cmpl $192,%ebx 1607 je .L015arg_ok 1608 cmpl $128,%ebx 1609 jne .L014done 1610.align 4 1611.L015arg_ok: 1612 pushl %edx 1613 pushl %ecx 1614 pushl %ebx 1615 call .L_Camellia_Ekeygen_begin 1616 addl $12,%esp 1617 movl %eax,(%edx) 1618 xorl %eax,%eax 1619.align 4 1620.L014done: 1621 popl %ebx 1622 ret 1623.size Camellia_set_key,.-.L_Camellia_set_key_begin 1624.align 64 1625.LCamellia_SIGMA: 1626.long 2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0 1627.align 64 1628.LCamellia_SBOX: 1629.long 1886416896,1886388336 1630.long 2189591040,741081132 1631.long 741092352,3014852787 1632.long 3974949888,3233808576 1633.long 3014898432,3840147684 1634.long 656877312,1465319511 1635.long 3233857536,3941204202 1636.long 3857048832,2930639022 1637.long 3840205824,589496355 1638.long 2240120064,1802174571 1639.long 1465341696,1162149957 1640.long 892679424,2779054245 1641.long 3941263872,3991732461 1642.long 202116096,1330577487 1643.long 2930683392,488439837 1644.long 1094795520,2459041938 1645.long 589505280,2256928902 1646.long 4025478912,2947481775 1647.long 1802201856,2088501372 1648.long 2475922176,522125343 1649.long 1162167552,1044250686 1650.long 421075200,3705405660 1651.long 2779096320,1583218782 1652.long 555819264,185270283 1653.long 3991792896,2795896998 1654.long 235802112,960036921 1655.long 1330597632,3587506389 1656.long 1313754624,1566376029 1657.long 488447232,3654877401 1658.long 1701143808,1515847770 1659.long 2459079168,1364262993 1660.long 3183328512,1819017324 1661.long 2256963072,2341142667 1662.long 3099113472,2593783962 1663.long 2947526400,4227531003 1664.long 2408550144,2964324528 1665.long 2088532992,1953759348 1666.long 3958106880,724238379 1667.long 522133248,4042260720 1668.long 3469659648,2223243396 1669.long 1044266496,3755933919 1670.long 808464384,3419078859 1671.long 3705461760,875823156 1672.long 1600085760,1987444854 1673.long 1583242752,1835860077 1674.long 3318072576,2846425257 1675.long 185273088,3520135377 1676.long 437918208,67371012 1677.long 2795939328,336855060 1678.long 3789676800,976879674 1679.long 960051456,3739091166 1680.long 3402287616,286326801 1681.long 3587560704,842137650 1682.long 1195853568,2627469468 1683.long 1566399744,1397948499 1684.long 1027423488,4075946226 1685.long 3654932736,4278059262 1686.long 16843008,3486449871 1687.long 1515870720,3284336835 1688.long 3604403712,2054815866 1689.long 1364283648,606339108 1690.long 1448498688,3907518696 1691.long 1819044864,1616904288 1692.long 1296911616,1768489065 1693.long 2341178112,2863268010 1694.long 218959104,2694840480 1695.long 2593823232,2711683233 1696.long 1717986816,1650589794 1697.long 4227595008,1414791252 1698.long 3435973632,505282590 1699.long 2964369408,3772776672 1700.long 757935360,1684275300 1701.long 1953788928,269484048 1702.long 303174144,0 1703.long 724249344,2745368739 1704.long 538976256,1970602101 1705.long 4042321920,2324299914 1706.long 2981212416,3873833190 1707.long 2223277056,151584777 1708.long 2576980224,3722248413 1709.long 3755990784,2273771655 1710.long 1280068608,2206400643 1711.long 3419130624,3452764365 1712.long 3267543552,2425356432 1713.long 875836416,1936916595 1714.long 2122219008,4143317238 1715.long 1987474944,2644312221 1716.long 84215040,3216965823 1717.long 1835887872,1381105746 1718.long 3082270464,3638034648 1719.long 2846468352,3368550600 1720.long 825307392,3334865094 1721.long 3520188672,2172715137 1722.long 387389184,1869545583 1723.long 67372032,320012307 1724.long 3621246720,1667432547 1725.long 336860160,3924361449 1726.long 1482184704,2812739751 1727.long 976894464,2677997727 1728.long 1633771776,3166437564 1729.long 3739147776,690552873 1730.long 454761216,4193845497 1731.long 286331136,791609391 1732.long 471604224,3031695540 1733.long 842150400,2021130360 1734.long 252645120,101056518 1735.long 2627509248,3890675943 1736.long 370546176,1903231089 1737.long 1397969664,3570663636 1738.long 404232192,2880110763 1739.long 4076007936,2290614408 1740.long 572662272,2374828173 1741.long 4278124032,1920073842 1742.long 1145324544,3115909305 1743.long 3486502656,4177002744 1744.long 2998055424,2896953516 1745.long 3284386560,909508662 1746.long 3048584448,707395626 1747.long 2054846976,1010565180 1748.long 2442236160,4059103473 1749.long 606348288,1077936192 1750.long 134744064,3553820883 1751.long 3907577856,3149594811 1752.long 2829625344,1128464451 1753.long 1616928768,353697813 1754.long 4244438016,2913796269 1755.long 1768515840,2004287607 1756.long 1347440640,2155872384 1757.long 2863311360,2189557890 1758.long 3503345664,3974889708 1759.long 2694881280,656867367 1760.long 2105376000,3856990437 1761.long 2711724288,2240086149 1762.long 2307492096,892665909 1763.long 1650614784,202113036 1764.long 2543294208,1094778945 1765.long 1414812672,4025417967 1766.long 1532713728,2475884691 1767.long 505290240,421068825 1768.long 2509608192,555810849 1769.long 3772833792,235798542 1770.long 4294967040,1313734734 1771.long 1684300800,1701118053 1772.long 3537031680,3183280317 1773.long 269488128,3099066552 1774.long 3301229568,2408513679 1775.long 0,3958046955 1776.long 1212696576,3469607118 1777.long 2745410304,808452144 1778.long 4160222976,1600061535 1779.long 1970631936,3318022341 1780.long 3688618752,437911578 1781.long 2324335104,3789619425 1782.long 50529024,3402236106 1783.long 3873891840,1195835463 1784.long 3671775744,1027407933 1785.long 151587072,16842753 1786.long 1061109504,3604349142 1787.long 3722304768,1448476758 1788.long 2492765184,1296891981 1789.long 2273806080,218955789 1790.long 1549556736,1717960806 1791.long 2206434048,3435921612 1792.long 33686016,757923885 1793.long 3452816640,303169554 1794.long 1246382592,538968096 1795.long 2425393152,2981167281 1796.long 858993408,2576941209 1797.long 1936945920,1280049228 1798.long 1734829824,3267494082 1799.long 4143379968,2122186878 1800.long 4092850944,84213765 1801.long 2644352256,3082223799 1802.long 2139062016,825294897 1803.long 3217014528,387383319 1804.long 3806519808,3621191895 1805.long 1381126656,1482162264 1806.long 2610666240,1633747041 1807.long 3638089728,454754331 1808.long 640034304,471597084 1809.long 3368601600,252641295 1810.long 926365440,370540566 1811.long 3334915584,404226072 1812.long 993737472,572653602 1813.long 2172748032,1145307204 1814.long 2526451200,2998010034 1815.long 1869573888,3048538293 1816.long 1263225600,2442199185 1817.long 320017152,134742024 1818.long 3200171520,2829582504 1819.long 1667457792,4244373756 1820.long 774778368,1347420240 1821.long 3924420864,3503292624 1822.long 2038003968,2105344125 1823.long 2812782336,2307457161 1824.long 2358021120,2543255703 1825.long 2678038272,1532690523 1826.long 1852730880,2509570197 1827.long 3166485504,4294902015 1828.long 2391707136,3536978130 1829.long 690563328,3301179588 1830.long 4126536960,1212678216 1831.long 4193908992,4160159991 1832.long 3065427456,3688562907 1833.long 791621376,50528259 1834.long 4261281024,3671720154 1835.long 3031741440,1061093439 1836.long 1499027712,2492727444 1837.long 2021160960,1549533276 1838.long 2560137216,33685506 1839.long 101058048,1246363722 1840.long 1785358848,858980403 1841.long 3890734848,1734803559 1842.long 1179010560,4092788979 1843.long 1903259904,2139029631 1844.long 3132799488,3806462178 1845.long 3570717696,2610626715 1846.long 623191296,640024614 1847.long 2880154368,926351415 1848.long 1111638528,993722427 1849.long 2290649088,2526412950 1850.long 2728567296,1263206475 1851.long 2374864128,3200123070 1852.long 4210752000,774766638 1853.long 1920102912,2037973113 1854.long 117901056,2357985420 1855.long 3115956480,1852702830 1856.long 1431655680,2391670926 1857.long 4177065984,4126474485 1858.long 4008635904,3065381046 1859.long 2896997376,4261216509 1860.long 168430080,1499005017 1861.long 909522432,2560098456 1862.long 1229539584,1785331818 1863.long 707406336,1178992710 1864.long 1751672832,3132752058 1865.long 1010580480,623181861 1866.long 943208448,1111621698 1867.long 4059164928,2728525986 1868.long 2762253312,4210688250 1869.long 1077952512,117899271 1870.long 673720320,1431634005 1871.long 3553874688,4008575214 1872.long 2071689984,168427530 1873.long 3149642496,1229520969 1874.long 3385444608,1751646312 1875.long 1128481536,943194168 1876.long 3250700544,2762211492 1877.long 353703168,673710120 1878.long 3823362816,2071658619 1879.long 2913840384,3385393353 1880.long 4109693952,3250651329 1881.long 2004317952,3823304931 1882.long 3351758592,4109631732 1883.long 2155905024,3351707847 1884.long 2661195264,2661154974 1885.long 14737632,939538488 1886.long 328965,1090535745 1887.long 5789784,369104406 1888.long 14277081,1979741814 1889.long 6776679,3640711641 1890.long 5131854,2466288531 1891.long 8487297,1610637408 1892.long 13355979,4060148466 1893.long 13224393,1912631922 1894.long 723723,3254829762 1895.long 11447982,2868947883 1896.long 6974058,2583730842 1897.long 14013909,1962964341 1898.long 1579032,100664838 1899.long 6118749,1459640151 1900.long 8553090,2684395680 1901.long 4605510,2432733585 1902.long 14671839,4144035831 1903.long 14079702,3036722613 1904.long 2565927,3372272073 1905.long 9079434,2717950626 1906.long 3289650,2348846220 1907.long 4934475,3523269330 1908.long 4342338,2415956112 1909.long 14408667,4127258358 1910.long 1842204,117442311 1911.long 10395294,2801837991 1912.long 10263708,654321447 1913.long 3815994,2382401166 1914.long 13290186,2986390194 1915.long 2434341,1224755529 1916.long 8092539,3724599006 1917.long 855309,1124090691 1918.long 7434609,1543527516 1919.long 6250335,3607156695 1920.long 2039583,3338717127 1921.long 16316664,1040203326 1922.long 14145495,4110480885 1923.long 4079166,2399178639 1924.long 10329501,1728079719 1925.long 8158332,520101663 1926.long 6316128,402659352 1927.long 12171705,1845522030 1928.long 12500670,2936057775 1929.long 12369084,788541231 1930.long 9145227,3791708898 1931.long 1447446,2231403909 1932.long 3421236,218107149 1933.long 5066061,1392530259 1934.long 12829635,4026593520 1935.long 7500402,2617285788 1936.long 9803157,1694524773 1937.long 11250603,3925928682 1938.long 9342606,2734728099 1939.long 12237498,2919280302 1940.long 8026746,2650840734 1941.long 11776947,3959483628 1942.long 131586,2147516544 1943.long 11842740,754986285 1944.long 11382189,1795189611 1945.long 10658466,2818615464 1946.long 11316396,721431339 1947.long 14211288,905983542 1948.long 10132122,2785060518 1949.long 1513239,3305162181 1950.long 1710618,2248181382 1951.long 3487029,1291865421 1952.long 13421772,855651123 1953.long 16250871,4244700669 1954.long 10066329,1711302246 1955.long 6381921,1476417624 1956.long 5921370,2516620950 1957.long 15263976,973093434 1958.long 2368548,150997257 1959.long 5658198,2499843477 1960.long 4210752,268439568 1961.long 14803425,2013296760 1962.long 6513507,3623934168 1963.long 592137,1107313218 1964.long 3355443,3422604492 1965.long 12566463,4009816047 1966.long 10000536,637543974 1967.long 9934743,3842041317 1968.long 8750469,1627414881 1969.long 6842472,436214298 1970.long 16579836,1056980799 1971.long 15527148,989870907 1972.long 657930,2181071490 1973.long 14342874,3053500086 1974.long 7303023,3674266587 1975.long 5460819,3556824276 1976.long 6447714,2550175896 1977.long 10724259,3892373736 1978.long 3026478,2332068747 1979.long 526344,33554946 1980.long 11513775,3942706155 1981.long 2631720,167774730 1982.long 11579568,738208812 1983.long 7631988,486546717 1984.long 12763842,2952835248 1985.long 12434877,1862299503 1986.long 3552822,2365623693 1987.long 2236962,2281736328 1988.long 3684408,234884622 1989.long 6579300,419436825 1990.long 1973790,2264958855 1991.long 3750201,1308642894 1992.long 2894892,184552203 1993.long 10921638,2835392937 1994.long 3158064,201329676 1995.long 15066597,2030074233 1996.long 4473924,285217041 1997.long 16645629,2130739071 1998.long 8947848,570434082 1999.long 10461087,3875596263 2000.long 6645093,1493195097 2001.long 8882055,3774931425 2002.long 7039851,3657489114 2003.long 16053492,1023425853 2004.long 2302755,3355494600 2005.long 4737096,301994514 2006.long 1052688,67109892 2007.long 13750737,1946186868 2008.long 5329233,1409307732 2009.long 12632256,805318704 2010.long 16382457,2113961598 2011.long 13816530,3019945140 2012.long 10526880,671098920 2013.long 5592405,1426085205 2014.long 10592673,1744857192 2015.long 4276545,1342197840 2016.long 16448250,3187719870 2017.long 4408131,3489714384 2018.long 1250067,3288384708 2019.long 12895428,822096177 2020.long 3092271,3405827019 2021.long 11053224,704653866 2022.long 11974326,2902502829 2023.long 3947580,251662095 2024.long 2829099,3389049546 2025.long 12698049,1879076976 2026.long 16777215,4278255615 2027.long 13158600,838873650 2028.long 10855845,1761634665 2029.long 2105376,134219784 2030.long 9013641,1644192354 2031.long 0,0 2032.long 9474192,603989028 2033.long 4671303,3506491857 2034.long 15724527,4211145723 2035.long 15395562,3120609978 2036.long 12040119,3976261101 2037.long 1381653,1157645637 2038.long 394758,2164294017 2039.long 13487565,1929409395 2040.long 11908533,1828744557 2041.long 1184274,2214626436 2042.long 8289918,2667618207 2043.long 12303291,3993038574 2044.long 2697513,1241533002 2045.long 986895,3271607235 2046.long 12105912,771763758 2047.long 460551,3238052289 2048.long 263172,16777473 2049.long 10197915,3858818790 2050.long 9737364,620766501 2051.long 2171169,1207978056 2052.long 6710886,2566953369 2053.long 15132390,3103832505 2054.long 13553358,3003167667 2055.long 15592941,2063629179 2056.long 15198183,4177590777 2057.long 3881787,3456159438 2058.long 16711422,3204497343 2059.long 8355711,3741376479 2060.long 12961221,1895854449 2061.long 10790052,687876393 2062.long 3618615,3439381965 2063.long 11645361,1811967084 2064.long 5000268,318771987 2065.long 9539985,1677747300 2066.long 7237230,2600508315 2067.long 9276813,1660969827 2068.long 7763574,2634063261 2069.long 197379,3221274816 2070.long 2960685,1258310475 2071.long 14606046,3070277559 2072.long 9868950,2768283045 2073.long 2500134,2298513801 2074.long 8224125,1593859935 2075.long 13027014,2969612721 2076.long 6052956,385881879 2077.long 13882323,4093703412 2078.long 15921906,3154164924 2079.long 5197647,3540046803 2080.long 1644825,1174423110 2081.long 4144959,3472936911 2082.long 14474460,922761015 2083.long 7960953,1577082462 2084.long 1907997,1191200583 2085.long 5395026,2483066004 2086.long 15461355,4194368250 2087.long 15987699,4227923196 2088.long 7171437,1526750043 2089.long 6184542,2533398423 2090.long 16514043,4261478142 2091.long 6908265,1509972570 2092.long 11711154,2885725356 2093.long 15790320,1006648380 2094.long 3223857,1275087948 2095.long 789516,50332419 2096.long 13948116,889206069 2097.long 13619151,4076925939 2098.long 9211020,587211555 2099.long 14869218,3087055032 2100.long 7697781,1560304989 2101.long 11119017,1778412138 2102.long 4868682,2449511058 2103.long 5723991,3573601749 2104.long 8684676,553656609 2105.long 1118481,1140868164 2106.long 4539717,1358975313 2107.long 1776411,3321939654 2108.long 16119285,2097184125 2109.long 15000804,956315961 2110.long 921102,2197848963 2111.long 7566195,3691044060 2112.long 11184810,2852170410 2113.long 15856113,2080406652 2114.long 14540253,1996519287 2115.long 5855577,1442862678 2116.long 1315860,83887365 2117.long 7105644,452991771 2118.long 9605778,2751505572 2119.long 5526612,352326933 2120.long 13684944,872428596 2121.long 7895160,503324190 2122.long 7368816,469769244 2123.long 14935011,4160813304 2124.long 4802889,1375752786 2125.long 8421504,536879136 2126.long 5263440,335549460 2127.long 10987431,3909151209 2128.long 16185078,3170942397 2129.long 7829367,3707821533 2130.long 9671571,3825263844 2131.long 8816262,2701173153 2132.long 8618883,3758153952 2133.long 2763306,2315291274 2134.long 13092807,4043370993 2135.long 5987163,3590379222 2136.long 15329769,2046851706 2137.long 15658734,3137387451 2138.long 9408399,3808486371 2139.long 65793,1073758272 2140.long 4013373,1325420367 2141.globl Camellia_cbc_encrypt 2142.type Camellia_cbc_encrypt,@function 2143.align 16 2144Camellia_cbc_encrypt: 2145.L_Camellia_cbc_encrypt_begin: 2146 %ifdef __CET__ 2147 2148.byte 243,15,30,251 2149 %endif 2150 2151 pushl %ebp 2152 pushl %ebx 2153 pushl %esi 2154 pushl %edi 2155 movl 28(%esp),%ecx 2156 cmpl $0,%ecx 2157 je .L016enc_out 2158 pushfl 2159 cld 2160 movl 24(%esp),%eax 2161 movl 28(%esp),%ebx 2162 movl 36(%esp),%edx 2163 movl 40(%esp),%ebp 2164 leal -64(%esp),%esi 2165 andl $-64,%esi 2166 leal -127(%edx),%edi 2167 subl %esi,%edi 2168 negl %edi 2169 andl $960,%edi 2170 subl %edi,%esi 2171 movl 44(%esp),%edi 2172 xchgl %esi,%esp 2173 addl $4,%esp 2174 movl %esi,20(%esp) 2175 movl %eax,24(%esp) 2176 movl %ebx,28(%esp) 2177 movl %ecx,32(%esp) 2178 movl %edx,36(%esp) 2179 movl %ebp,40(%esp) 2180 call .L017pic_point 2181.L017pic_point: 2182 popl %ebp 2183 leal .LCamellia_SBOX-.L017pic_point(%ebp),%ebp 2184 movl $32,%esi 2185.align 4 2186.L018prefetch_sbox: 2187 movl (%ebp),%eax 2188 movl 32(%ebp),%ebx 2189 movl 64(%ebp),%ecx 2190 movl 96(%ebp),%edx 2191 leal 128(%ebp),%ebp 2192 decl %esi 2193 jnz .L018prefetch_sbox 2194 movl 36(%esp),%eax 2195 subl $4096,%ebp 2196 movl 24(%esp),%esi 2197 movl 272(%eax),%edx 2198 cmpl $0,%edi 2199 je .L019DECRYPT 2200 movl 32(%esp),%ecx 2201 movl 40(%esp),%edi 2202 shll $6,%edx 2203 leal (%eax,%edx,1),%edx 2204 movl %edx,16(%esp) 2205 testl $4294967280,%ecx 2206 jz .L020enc_tail 2207 movl (%edi),%eax 2208 movl 4(%edi),%ebx 2209.align 4 2210.L021enc_loop: 2211 movl 8(%edi),%ecx 2212 movl 12(%edi),%edx 2213 xorl (%esi),%eax 2214 xorl 4(%esi),%ebx 2215 xorl 8(%esi),%ecx 2216 bswap %eax 2217 xorl 12(%esi),%edx 2218 bswap %ebx 2219 movl 36(%esp),%edi 2220 bswap %ecx 2221 bswap %edx 2222 call _x86_Camellia_encrypt 2223 movl 24(%esp),%esi 2224 movl 28(%esp),%edi 2225 bswap %eax 2226 bswap %ebx 2227 bswap %ecx 2228 movl %eax,(%edi) 2229 bswap %edx 2230 movl %ebx,4(%edi) 2231 movl %ecx,8(%edi) 2232 movl %edx,12(%edi) 2233 movl 32(%esp),%ecx 2234 leal 16(%esi),%esi 2235 movl %esi,24(%esp) 2236 leal 16(%edi),%edx 2237 movl %edx,28(%esp) 2238 subl $16,%ecx 2239 testl $4294967280,%ecx 2240 movl %ecx,32(%esp) 2241 jnz .L021enc_loop 2242 testl $15,%ecx 2243 jnz .L020enc_tail 2244 movl 40(%esp),%esi 2245 movl 8(%edi),%ecx 2246 movl 12(%edi),%edx 2247 movl %eax,(%esi) 2248 movl %ebx,4(%esi) 2249 movl %ecx,8(%esi) 2250 movl %edx,12(%esi) 2251 movl 20(%esp),%esp 2252 popfl 2253.L016enc_out: 2254 popl %edi 2255 popl %esi 2256 popl %ebx 2257 popl %ebp 2258 ret 2259 pushfl 2260.align 4 2261.L020enc_tail: 2262 movl %edi,%eax 2263 movl 28(%esp),%edi 2264 pushl %eax 2265 movl $16,%ebx 2266 subl %ecx,%ebx 2267 cmpl %esi,%edi 2268 je .L022enc_in_place 2269.align 4 2270.long 2767451785 2271 jmp .L023enc_skip_in_place 2272.L022enc_in_place: 2273 leal (%edi,%ecx,1),%edi 2274.L023enc_skip_in_place: 2275 movl %ebx,%ecx 2276 xorl %eax,%eax 2277.align 4 2278.long 2868115081 2279 popl %edi 2280 movl 28(%esp),%esi 2281 movl (%edi),%eax 2282 movl 4(%edi),%ebx 2283 movl $16,32(%esp) 2284 jmp .L021enc_loop 2285.align 16 2286.L019DECRYPT: 2287 shll $6,%edx 2288 leal (%eax,%edx,1),%edx 2289 movl %eax,16(%esp) 2290 movl %edx,36(%esp) 2291 cmpl 28(%esp),%esi 2292 je .L024dec_in_place 2293 movl 40(%esp),%edi 2294 movl %edi,44(%esp) 2295.align 4 2296.L025dec_loop: 2297 movl (%esi),%eax 2298 movl 4(%esi),%ebx 2299 movl 8(%esi),%ecx 2300 bswap %eax 2301 movl 12(%esi),%edx 2302 bswap %ebx 2303 movl 36(%esp),%edi 2304 bswap %ecx 2305 bswap %edx 2306 call _x86_Camellia_decrypt 2307 movl 44(%esp),%edi 2308 movl 32(%esp),%esi 2309 bswap %eax 2310 bswap %ebx 2311 bswap %ecx 2312 xorl (%edi),%eax 2313 bswap %edx 2314 xorl 4(%edi),%ebx 2315 xorl 8(%edi),%ecx 2316 xorl 12(%edi),%edx 2317 subl $16,%esi 2318 jc .L026dec_partial 2319 movl %esi,32(%esp) 2320 movl 24(%esp),%esi 2321 movl 28(%esp),%edi 2322 movl %eax,(%edi) 2323 movl %ebx,4(%edi) 2324 movl %ecx,8(%edi) 2325 movl %edx,12(%edi) 2326 movl %esi,44(%esp) 2327 leal 16(%esi),%esi 2328 movl %esi,24(%esp) 2329 leal 16(%edi),%edi 2330 movl %edi,28(%esp) 2331 jnz .L025dec_loop 2332 movl 44(%esp),%edi 2333.L027dec_end: 2334 movl 40(%esp),%esi 2335 movl (%edi),%eax 2336 movl 4(%edi),%ebx 2337 movl 8(%edi),%ecx 2338 movl 12(%edi),%edx 2339 movl %eax,(%esi) 2340 movl %ebx,4(%esi) 2341 movl %ecx,8(%esi) 2342 movl %edx,12(%esi) 2343 jmp .L028dec_out 2344.align 4 2345.L026dec_partial: 2346 leal 44(%esp),%edi 2347 movl %eax,(%edi) 2348 movl %ebx,4(%edi) 2349 movl %ecx,8(%edi) 2350 movl %edx,12(%edi) 2351 leal 16(%esi),%ecx 2352 movl %edi,%esi 2353 movl 28(%esp),%edi 2354.long 2767451785 2355 movl 24(%esp),%edi 2356 jmp .L027dec_end 2357.align 4 2358.L024dec_in_place: 2359.L029dec_in_place_loop: 2360 leal 44(%esp),%edi 2361 movl (%esi),%eax 2362 movl 4(%esi),%ebx 2363 movl 8(%esi),%ecx 2364 movl 12(%esi),%edx 2365 movl %eax,(%edi) 2366 movl %ebx,4(%edi) 2367 movl %ecx,8(%edi) 2368 bswap %eax 2369 movl %edx,12(%edi) 2370 bswap %ebx 2371 movl 36(%esp),%edi 2372 bswap %ecx 2373 bswap %edx 2374 call _x86_Camellia_decrypt 2375 movl 40(%esp),%edi 2376 movl 28(%esp),%esi 2377 bswap %eax 2378 bswap %ebx 2379 bswap %ecx 2380 xorl (%edi),%eax 2381 bswap %edx 2382 xorl 4(%edi),%ebx 2383 xorl 8(%edi),%ecx 2384 xorl 12(%edi),%edx 2385 movl %eax,(%esi) 2386 movl %ebx,4(%esi) 2387 movl %ecx,8(%esi) 2388 movl %edx,12(%esi) 2389 leal 16(%esi),%esi 2390 movl %esi,28(%esp) 2391 leal 44(%esp),%esi 2392 movl (%esi),%eax 2393 movl 4(%esi),%ebx 2394 movl 8(%esi),%ecx 2395 movl 12(%esi),%edx 2396 movl %eax,(%edi) 2397 movl %ebx,4(%edi) 2398 movl %ecx,8(%edi) 2399 movl %edx,12(%edi) 2400 movl 24(%esp),%esi 2401 leal 16(%esi),%esi 2402 movl %esi,24(%esp) 2403 movl 32(%esp),%ecx 2404 subl $16,%ecx 2405 jc .L030dec_in_place_partial 2406 movl %ecx,32(%esp) 2407 jnz .L029dec_in_place_loop 2408 jmp .L028dec_out 2409.align 4 2410.L030dec_in_place_partial: 2411 movl 28(%esp),%edi 2412 leal 44(%esp),%esi 2413 leal (%edi,%ecx,1),%edi 2414 leal 16(%esi,%ecx,1),%esi 2415 negl %ecx 2416.long 2767451785 2417.align 4 2418.L028dec_out: 2419 movl 20(%esp),%esp 2420 popfl 2421 popl %edi 2422 popl %esi 2423 popl %ebx 2424 popl %ebp 2425 ret 2426.size Camellia_cbc_encrypt,.-.L_Camellia_cbc_encrypt_begin 2427.byte 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54 2428.byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 2429.byte 115,108,46,111,114,103,62,0 2430 2431 .section ".note.gnu.property", "a" 2432 .p2align 2 2433 .long 1f - 0f 2434 .long 4f - 1f 2435 .long 5 24360: 2437 .asciz "GNU" 24381: 2439 .p2align 2 2440 .long 0xc0000002 2441 .long 3f - 2f 24422: 2443 .long 3 24443: 2445 .p2align 2 24464: 2447