1/* Do not modify. This file is auto-generated from cmll-x86.pl. */ 2#ifdef PIC 3.text 4.globl Camellia_EncryptBlock_Rounds 5.type Camellia_EncryptBlock_Rounds,@function 6.align 16 7Camellia_EncryptBlock_Rounds: 8.L_Camellia_EncryptBlock_Rounds_begin: 9 pushl %ebp 10 pushl %ebx 11 pushl %esi 12 pushl %edi 13 movl 20(%esp),%eax 14 movl 24(%esp),%esi 15 movl 28(%esp),%edi 16 movl %esp,%ebx 17 subl $28,%esp 18 andl $-64,%esp 19 leal -127(%edi),%ecx 20 subl %esp,%ecx 21 negl %ecx 22 andl $960,%ecx 23 subl %ecx,%esp 24 addl $4,%esp 25 shll $6,%eax 26 leal (%edi,%eax,1),%eax 27 movl %ebx,20(%esp) 28 movl %eax,16(%esp) 29 call .L000pic_point 30.L000pic_point: 31 popl %ebp 32 leal .LCamellia_SBOX-.L000pic_point(%ebp),%ebp 33 movl (%esi),%eax 34 movl 4(%esi),%ebx 35 movl 8(%esi),%ecx 36 bswap %eax 37 movl 12(%esi),%edx 38 bswap %ebx 39 bswap %ecx 40 bswap %edx 41 call _x86_Camellia_encrypt 42 movl 20(%esp),%esp 43 bswap %eax 44 movl 32(%esp),%esi 45 bswap %ebx 46 bswap %ecx 47 bswap %edx 48 movl %eax,(%esi) 49 movl %ebx,4(%esi) 50 movl %ecx,8(%esi) 51 movl %edx,12(%esi) 52 popl %edi 53 popl %esi 54 popl %ebx 55 popl %ebp 56 ret 57.size Camellia_EncryptBlock_Rounds,.-.L_Camellia_EncryptBlock_Rounds_begin 58.globl Camellia_EncryptBlock 59.type Camellia_EncryptBlock,@function 60.align 16 61Camellia_EncryptBlock: 62.L_Camellia_EncryptBlock_begin: 63 movl $128,%eax 64 subl 4(%esp),%eax 65 movl $3,%eax 66 adcl $0,%eax 67 movl %eax,4(%esp) 68 jmp .L_Camellia_EncryptBlock_Rounds_begin 69.size Camellia_EncryptBlock,.-.L_Camellia_EncryptBlock_begin 70.globl Camellia_encrypt 71.type Camellia_encrypt,@function 72.align 16 73Camellia_encrypt: 74.L_Camellia_encrypt_begin: 75 pushl %ebp 76 pushl %ebx 77 pushl %esi 78 pushl %edi 79 movl 20(%esp),%esi 80 movl 28(%esp),%edi 81 movl %esp,%ebx 82 subl $28,%esp 83 andl $-64,%esp 84 movl 272(%edi),%eax 85 leal -127(%edi),%ecx 86 subl %esp,%ecx 87 negl %ecx 88 andl $960,%ecx 89 subl %ecx,%esp 90 addl $4,%esp 91 shll $6,%eax 92 leal (%edi,%eax,1),%eax 93 movl %ebx,20(%esp) 94 movl %eax,16(%esp) 95 call .L001pic_point 96.L001pic_point: 97 popl %ebp 98 leal .LCamellia_SBOX-.L001pic_point(%ebp),%ebp 99 movl (%esi),%eax 100 movl 4(%esi),%ebx 101 movl 8(%esi),%ecx 102 bswap %eax 103 movl 12(%esi),%edx 104 bswap %ebx 105 bswap %ecx 106 bswap %edx 107 call _x86_Camellia_encrypt 108 movl 20(%esp),%esp 109 bswap %eax 110 movl 24(%esp),%esi 111 bswap %ebx 112 bswap %ecx 113 bswap %edx 114 movl %eax,(%esi) 115 movl %ebx,4(%esi) 116 movl %ecx,8(%esi) 117 movl %edx,12(%esi) 118 popl %edi 119 popl %esi 120 popl %ebx 121 popl %ebp 122 ret 123.size Camellia_encrypt,.-.L_Camellia_encrypt_begin 124.type _x86_Camellia_encrypt,@function 125.align 16 126_x86_Camellia_encrypt: 127 xorl (%edi),%eax 128 xorl 4(%edi),%ebx 129 xorl 8(%edi),%ecx 130 xorl 12(%edi),%edx 131 movl 16(%edi),%esi 132 movl %eax,4(%esp) 133 movl %ebx,8(%esp) 134 movl %ecx,12(%esp) 135 movl %edx,16(%esp) 136.align 16 137.L002loop: 138 xorl %esi,%eax 139 xorl 20(%edi),%ebx 140 movzbl %ah,%esi 141 movl 2052(%ebp,%esi,8),%edx 142 movzbl %al,%esi 143 xorl 4(%ebp,%esi,8),%edx 144 shrl $16,%eax 145 movzbl %bl,%esi 146 movl (%ebp,%esi,8),%ecx 147 movzbl %ah,%esi 148 xorl (%ebp,%esi,8),%edx 149 movzbl %bh,%esi 150 xorl 4(%ebp,%esi,8),%ecx 151 shrl $16,%ebx 152 movzbl %al,%eax 153 xorl 2048(%ebp,%eax,8),%edx 154 movzbl %bh,%esi 155 movl 16(%esp),%eax 156 xorl %edx,%ecx 157 rorl $8,%edx 158 xorl 2048(%ebp,%esi,8),%ecx 159 movzbl %bl,%esi 160 movl 12(%esp),%ebx 161 xorl %eax,%edx 162 xorl 2052(%ebp,%esi,8),%ecx 163 movl 24(%edi),%esi 164 xorl %ecx,%edx 165 movl %edx,16(%esp) 166 xorl %ebx,%ecx 167 movl %ecx,12(%esp) 168 xorl %esi,%ecx 169 xorl 28(%edi),%edx 170 movzbl %ch,%esi 171 movl 2052(%ebp,%esi,8),%ebx 172 movzbl %cl,%esi 173 xorl 4(%ebp,%esi,8),%ebx 174 shrl $16,%ecx 175 movzbl %dl,%esi 176 movl (%ebp,%esi,8),%eax 177 movzbl %ch,%esi 178 xorl (%ebp,%esi,8),%ebx 179 movzbl %dh,%esi 180 xorl 4(%ebp,%esi,8),%eax 181 shrl $16,%edx 182 movzbl %cl,%ecx 183 xorl 2048(%ebp,%ecx,8),%ebx 184 movzbl %dh,%esi 185 movl 8(%esp),%ecx 186 xorl %ebx,%eax 187 rorl $8,%ebx 188 xorl 2048(%ebp,%esi,8),%eax 189 movzbl %dl,%esi 190 movl 4(%esp),%edx 191 xorl %ecx,%ebx 192 xorl 2052(%ebp,%esi,8),%eax 193 movl 32(%edi),%esi 194 xorl %eax,%ebx 195 movl %ebx,8(%esp) 196 xorl %edx,%eax 197 movl %eax,4(%esp) 198 xorl %esi,%eax 199 xorl 36(%edi),%ebx 200 movzbl %ah,%esi 201 movl 2052(%ebp,%esi,8),%edx 202 movzbl %al,%esi 203 xorl 4(%ebp,%esi,8),%edx 204 shrl $16,%eax 205 movzbl %bl,%esi 206 movl (%ebp,%esi,8),%ecx 207 movzbl %ah,%esi 208 xorl (%ebp,%esi,8),%edx 209 movzbl %bh,%esi 210 xorl 4(%ebp,%esi,8),%ecx 211 shrl $16,%ebx 212 movzbl %al,%eax 213 xorl 2048(%ebp,%eax,8),%edx 214 movzbl %bh,%esi 215 movl 16(%esp),%eax 216 xorl %edx,%ecx 217 rorl $8,%edx 218 xorl 2048(%ebp,%esi,8),%ecx 219 movzbl %bl,%esi 220 movl 12(%esp),%ebx 221 xorl %eax,%edx 222 xorl 2052(%ebp,%esi,8),%ecx 223 movl 40(%edi),%esi 224 xorl %ecx,%edx 225 movl %edx,16(%esp) 226 xorl %ebx,%ecx 227 movl %ecx,12(%esp) 228 xorl %esi,%ecx 229 xorl 44(%edi),%edx 230 movzbl %ch,%esi 231 movl 2052(%ebp,%esi,8),%ebx 232 movzbl %cl,%esi 233 xorl 4(%ebp,%esi,8),%ebx 234 shrl $16,%ecx 235 movzbl %dl,%esi 236 movl (%ebp,%esi,8),%eax 237 movzbl %ch,%esi 238 xorl (%ebp,%esi,8),%ebx 239 movzbl %dh,%esi 240 xorl 4(%ebp,%esi,8),%eax 241 shrl $16,%edx 242 movzbl %cl,%ecx 243 xorl 2048(%ebp,%ecx,8),%ebx 244 movzbl %dh,%esi 245 movl 8(%esp),%ecx 246 xorl %ebx,%eax 247 rorl $8,%ebx 248 xorl 2048(%ebp,%esi,8),%eax 249 movzbl %dl,%esi 250 movl 4(%esp),%edx 251 xorl %ecx,%ebx 252 xorl 2052(%ebp,%esi,8),%eax 253 movl 48(%edi),%esi 254 xorl %eax,%ebx 255 movl %ebx,8(%esp) 256 xorl %edx,%eax 257 movl %eax,4(%esp) 258 xorl %esi,%eax 259 xorl 52(%edi),%ebx 260 movzbl %ah,%esi 261 movl 2052(%ebp,%esi,8),%edx 262 movzbl %al,%esi 263 xorl 4(%ebp,%esi,8),%edx 264 shrl $16,%eax 265 movzbl %bl,%esi 266 movl (%ebp,%esi,8),%ecx 267 movzbl %ah,%esi 268 xorl (%ebp,%esi,8),%edx 269 movzbl %bh,%esi 270 xorl 4(%ebp,%esi,8),%ecx 271 shrl $16,%ebx 272 movzbl %al,%eax 273 xorl 2048(%ebp,%eax,8),%edx 274 movzbl %bh,%esi 275 movl 16(%esp),%eax 276 xorl %edx,%ecx 277 rorl $8,%edx 278 xorl 2048(%ebp,%esi,8),%ecx 279 movzbl %bl,%esi 280 movl 12(%esp),%ebx 281 xorl %eax,%edx 282 xorl 2052(%ebp,%esi,8),%ecx 283 movl 56(%edi),%esi 284 xorl %ecx,%edx 285 movl %edx,16(%esp) 286 xorl %ebx,%ecx 287 movl %ecx,12(%esp) 288 xorl %esi,%ecx 289 xorl 60(%edi),%edx 290 movzbl %ch,%esi 291 movl 2052(%ebp,%esi,8),%ebx 292 movzbl %cl,%esi 293 xorl 4(%ebp,%esi,8),%ebx 294 shrl $16,%ecx 295 movzbl %dl,%esi 296 movl (%ebp,%esi,8),%eax 297 movzbl %ch,%esi 298 xorl (%ebp,%esi,8),%ebx 299 movzbl %dh,%esi 300 xorl 4(%ebp,%esi,8),%eax 301 shrl $16,%edx 302 movzbl %cl,%ecx 303 xorl 2048(%ebp,%ecx,8),%ebx 304 movzbl %dh,%esi 305 movl 8(%esp),%ecx 306 xorl %ebx,%eax 307 rorl $8,%ebx 308 xorl 2048(%ebp,%esi,8),%eax 309 movzbl %dl,%esi 310 movl 4(%esp),%edx 311 xorl %ecx,%ebx 312 xorl 2052(%ebp,%esi,8),%eax 313 movl 64(%edi),%esi 314 xorl %eax,%ebx 315 movl %ebx,8(%esp) 316 xorl %edx,%eax 317 movl %eax,4(%esp) 318 addl $64,%edi 319 cmpl 20(%esp),%edi 320 je .L003done 321 andl %eax,%esi 322 movl 16(%esp),%edx 323 roll $1,%esi 324 movl %edx,%ecx 325 xorl %esi,%ebx 326 orl 12(%edi),%ecx 327 movl %ebx,8(%esp) 328 xorl 12(%esp),%ecx 329 movl 4(%edi),%esi 330 movl %ecx,12(%esp) 331 orl %ebx,%esi 332 andl 8(%edi),%ecx 333 xorl %esi,%eax 334 roll $1,%ecx 335 movl %eax,4(%esp) 336 xorl %ecx,%edx 337 movl 16(%edi),%esi 338 movl %edx,16(%esp) 339 jmp .L002loop 340.align 8 341.L003done: 342 movl %eax,%ecx 343 movl %ebx,%edx 344 movl 12(%esp),%eax 345 movl 16(%esp),%ebx 346 xorl %esi,%eax 347 xorl 4(%edi),%ebx 348 xorl 8(%edi),%ecx 349 xorl 12(%edi),%edx 350 ret 351.size _x86_Camellia_encrypt,.-_x86_Camellia_encrypt 352.globl Camellia_DecryptBlock_Rounds 353.type Camellia_DecryptBlock_Rounds,@function 354.align 16 355Camellia_DecryptBlock_Rounds: 356.L_Camellia_DecryptBlock_Rounds_begin: 357 pushl %ebp 358 pushl %ebx 359 pushl %esi 360 pushl %edi 361 movl 20(%esp),%eax 362 movl 24(%esp),%esi 363 movl 28(%esp),%edi 364 movl %esp,%ebx 365 subl $28,%esp 366 andl $-64,%esp 367 leal -127(%edi),%ecx 368 subl %esp,%ecx 369 negl %ecx 370 andl $960,%ecx 371 subl %ecx,%esp 372 addl $4,%esp 373 shll $6,%eax 374 movl %edi,16(%esp) 375 leal (%edi,%eax,1),%edi 376 movl %ebx,20(%esp) 377 call .L004pic_point 378.L004pic_point: 379 popl %ebp 380 leal .LCamellia_SBOX-.L004pic_point(%ebp),%ebp 381 movl (%esi),%eax 382 movl 4(%esi),%ebx 383 movl 8(%esi),%ecx 384 bswap %eax 385 movl 12(%esi),%edx 386 bswap %ebx 387 bswap %ecx 388 bswap %edx 389 call _x86_Camellia_decrypt 390 movl 20(%esp),%esp 391 bswap %eax 392 movl 32(%esp),%esi 393 bswap %ebx 394 bswap %ecx 395 bswap %edx 396 movl %eax,(%esi) 397 movl %ebx,4(%esi) 398 movl %ecx,8(%esi) 399 movl %edx,12(%esi) 400 popl %edi 401 popl %esi 402 popl %ebx 403 popl %ebp 404 ret 405.size Camellia_DecryptBlock_Rounds,.-.L_Camellia_DecryptBlock_Rounds_begin 406.globl Camellia_DecryptBlock 407.type Camellia_DecryptBlock,@function 408.align 16 409Camellia_DecryptBlock: 410.L_Camellia_DecryptBlock_begin: 411 movl $128,%eax 412 subl 4(%esp),%eax 413 movl $3,%eax 414 adcl $0,%eax 415 movl %eax,4(%esp) 416 jmp .L_Camellia_DecryptBlock_Rounds_begin 417.size Camellia_DecryptBlock,.-.L_Camellia_DecryptBlock_begin 418.globl Camellia_decrypt 419.type Camellia_decrypt,@function 420.align 16 421Camellia_decrypt: 422.L_Camellia_decrypt_begin: 423 pushl %ebp 424 pushl %ebx 425 pushl %esi 426 pushl %edi 427 movl 20(%esp),%esi 428 movl 28(%esp),%edi 429 movl %esp,%ebx 430 subl $28,%esp 431 andl $-64,%esp 432 movl 272(%edi),%eax 433 leal -127(%edi),%ecx 434 subl %esp,%ecx 435 negl %ecx 436 andl $960,%ecx 437 subl %ecx,%esp 438 addl $4,%esp 439 shll $6,%eax 440 movl %edi,16(%esp) 441 leal (%edi,%eax,1),%edi 442 movl %ebx,20(%esp) 443 call .L005pic_point 444.L005pic_point: 445 popl %ebp 446 leal .LCamellia_SBOX-.L005pic_point(%ebp),%ebp 447 movl (%esi),%eax 448 movl 4(%esi),%ebx 449 movl 8(%esi),%ecx 450 bswap %eax 451 movl 12(%esi),%edx 452 bswap %ebx 453 bswap %ecx 454 bswap %edx 455 call _x86_Camellia_decrypt 456 movl 20(%esp),%esp 457 bswap %eax 458 movl 24(%esp),%esi 459 bswap %ebx 460 bswap %ecx 461 bswap %edx 462 movl %eax,(%esi) 463 movl %ebx,4(%esi) 464 movl %ecx,8(%esi) 465 movl %edx,12(%esi) 466 popl %edi 467 popl %esi 468 popl %ebx 469 popl %ebp 470 ret 471.size Camellia_decrypt,.-.L_Camellia_decrypt_begin 472.type _x86_Camellia_decrypt,@function 473.align 16 474_x86_Camellia_decrypt: 475 xorl (%edi),%eax 476 xorl 4(%edi),%ebx 477 xorl 8(%edi),%ecx 478 xorl 12(%edi),%edx 479 movl -8(%edi),%esi 480 movl %eax,4(%esp) 481 movl %ebx,8(%esp) 482 movl %ecx,12(%esp) 483 movl %edx,16(%esp) 484.align 16 485.L006loop: 486 xorl %esi,%eax 487 xorl -4(%edi),%ebx 488 movzbl %ah,%esi 489 movl 2052(%ebp,%esi,8),%edx 490 movzbl %al,%esi 491 xorl 4(%ebp,%esi,8),%edx 492 shrl $16,%eax 493 movzbl %bl,%esi 494 movl (%ebp,%esi,8),%ecx 495 movzbl %ah,%esi 496 xorl (%ebp,%esi,8),%edx 497 movzbl %bh,%esi 498 xorl 4(%ebp,%esi,8),%ecx 499 shrl $16,%ebx 500 movzbl %al,%eax 501 xorl 2048(%ebp,%eax,8),%edx 502 movzbl %bh,%esi 503 movl 16(%esp),%eax 504 xorl %edx,%ecx 505 rorl $8,%edx 506 xorl 2048(%ebp,%esi,8),%ecx 507 movzbl %bl,%esi 508 movl 12(%esp),%ebx 509 xorl %eax,%edx 510 xorl 2052(%ebp,%esi,8),%ecx 511 movl -16(%edi),%esi 512 xorl %ecx,%edx 513 movl %edx,16(%esp) 514 xorl %ebx,%ecx 515 movl %ecx,12(%esp) 516 xorl %esi,%ecx 517 xorl -12(%edi),%edx 518 movzbl %ch,%esi 519 movl 2052(%ebp,%esi,8),%ebx 520 movzbl %cl,%esi 521 xorl 4(%ebp,%esi,8),%ebx 522 shrl $16,%ecx 523 movzbl %dl,%esi 524 movl (%ebp,%esi,8),%eax 525 movzbl %ch,%esi 526 xorl (%ebp,%esi,8),%ebx 527 movzbl %dh,%esi 528 xorl 4(%ebp,%esi,8),%eax 529 shrl $16,%edx 530 movzbl %cl,%ecx 531 xorl 2048(%ebp,%ecx,8),%ebx 532 movzbl %dh,%esi 533 movl 8(%esp),%ecx 534 xorl %ebx,%eax 535 rorl $8,%ebx 536 xorl 2048(%ebp,%esi,8),%eax 537 movzbl %dl,%esi 538 movl 4(%esp),%edx 539 xorl %ecx,%ebx 540 xorl 2052(%ebp,%esi,8),%eax 541 movl -24(%edi),%esi 542 xorl %eax,%ebx 543 movl %ebx,8(%esp) 544 xorl %edx,%eax 545 movl %eax,4(%esp) 546 xorl %esi,%eax 547 xorl -20(%edi),%ebx 548 movzbl %ah,%esi 549 movl 2052(%ebp,%esi,8),%edx 550 movzbl %al,%esi 551 xorl 4(%ebp,%esi,8),%edx 552 shrl $16,%eax 553 movzbl %bl,%esi 554 movl (%ebp,%esi,8),%ecx 555 movzbl %ah,%esi 556 xorl (%ebp,%esi,8),%edx 557 movzbl %bh,%esi 558 xorl 4(%ebp,%esi,8),%ecx 559 shrl $16,%ebx 560 movzbl %al,%eax 561 xorl 2048(%ebp,%eax,8),%edx 562 movzbl %bh,%esi 563 movl 16(%esp),%eax 564 xorl %edx,%ecx 565 rorl $8,%edx 566 xorl 2048(%ebp,%esi,8),%ecx 567 movzbl %bl,%esi 568 movl 12(%esp),%ebx 569 xorl %eax,%edx 570 xorl 2052(%ebp,%esi,8),%ecx 571 movl -32(%edi),%esi 572 xorl %ecx,%edx 573 movl %edx,16(%esp) 574 xorl %ebx,%ecx 575 movl %ecx,12(%esp) 576 xorl %esi,%ecx 577 xorl -28(%edi),%edx 578 movzbl %ch,%esi 579 movl 2052(%ebp,%esi,8),%ebx 580 movzbl %cl,%esi 581 xorl 4(%ebp,%esi,8),%ebx 582 shrl $16,%ecx 583 movzbl %dl,%esi 584 movl (%ebp,%esi,8),%eax 585 movzbl %ch,%esi 586 xorl (%ebp,%esi,8),%ebx 587 movzbl %dh,%esi 588 xorl 4(%ebp,%esi,8),%eax 589 shrl $16,%edx 590 movzbl %cl,%ecx 591 xorl 2048(%ebp,%ecx,8),%ebx 592 movzbl %dh,%esi 593 movl 8(%esp),%ecx 594 xorl %ebx,%eax 595 rorl $8,%ebx 596 xorl 2048(%ebp,%esi,8),%eax 597 movzbl %dl,%esi 598 movl 4(%esp),%edx 599 xorl %ecx,%ebx 600 xorl 2052(%ebp,%esi,8),%eax 601 movl -40(%edi),%esi 602 xorl %eax,%ebx 603 movl %ebx,8(%esp) 604 xorl %edx,%eax 605 movl %eax,4(%esp) 606 xorl %esi,%eax 607 xorl -36(%edi),%ebx 608 movzbl %ah,%esi 609 movl 2052(%ebp,%esi,8),%edx 610 movzbl %al,%esi 611 xorl 4(%ebp,%esi,8),%edx 612 shrl $16,%eax 613 movzbl %bl,%esi 614 movl (%ebp,%esi,8),%ecx 615 movzbl %ah,%esi 616 xorl (%ebp,%esi,8),%edx 617 movzbl %bh,%esi 618 xorl 4(%ebp,%esi,8),%ecx 619 shrl $16,%ebx 620 movzbl %al,%eax 621 xorl 2048(%ebp,%eax,8),%edx 622 movzbl %bh,%esi 623 movl 16(%esp),%eax 624 xorl %edx,%ecx 625 rorl $8,%edx 626 xorl 2048(%ebp,%esi,8),%ecx 627 movzbl %bl,%esi 628 movl 12(%esp),%ebx 629 xorl %eax,%edx 630 xorl 2052(%ebp,%esi,8),%ecx 631 movl -48(%edi),%esi 632 xorl %ecx,%edx 633 movl %edx,16(%esp) 634 xorl %ebx,%ecx 635 movl %ecx,12(%esp) 636 xorl %esi,%ecx 637 xorl -44(%edi),%edx 638 movzbl %ch,%esi 639 movl 2052(%ebp,%esi,8),%ebx 640 movzbl %cl,%esi 641 xorl 4(%ebp,%esi,8),%ebx 642 shrl $16,%ecx 643 movzbl %dl,%esi 644 movl (%ebp,%esi,8),%eax 645 movzbl %ch,%esi 646 xorl (%ebp,%esi,8),%ebx 647 movzbl %dh,%esi 648 xorl 4(%ebp,%esi,8),%eax 649 shrl $16,%edx 650 movzbl %cl,%ecx 651 xorl 2048(%ebp,%ecx,8),%ebx 652 movzbl %dh,%esi 653 movl 8(%esp),%ecx 654 xorl %ebx,%eax 655 rorl $8,%ebx 656 xorl 2048(%ebp,%esi,8),%eax 657 movzbl %dl,%esi 658 movl 4(%esp),%edx 659 xorl %ecx,%ebx 660 xorl 2052(%ebp,%esi,8),%eax 661 movl -56(%edi),%esi 662 xorl %eax,%ebx 663 movl %ebx,8(%esp) 664 xorl %edx,%eax 665 movl %eax,4(%esp) 666 subl $64,%edi 667 cmpl 20(%esp),%edi 668 je .L007done 669 andl %eax,%esi 670 movl 16(%esp),%edx 671 roll $1,%esi 672 movl %edx,%ecx 673 xorl %esi,%ebx 674 orl 4(%edi),%ecx 675 movl %ebx,8(%esp) 676 xorl 12(%esp),%ecx 677 movl 12(%edi),%esi 678 movl %ecx,12(%esp) 679 orl %ebx,%esi 680 andl (%edi),%ecx 681 xorl %esi,%eax 682 roll $1,%ecx 683 movl %eax,4(%esp) 684 xorl %ecx,%edx 685 movl -8(%edi),%esi 686 movl %edx,16(%esp) 687 jmp .L006loop 688.align 8 689.L007done: 690 movl %eax,%ecx 691 movl %ebx,%edx 692 movl 12(%esp),%eax 693 movl 16(%esp),%ebx 694 xorl %esi,%ecx 695 xorl 12(%edi),%edx 696 xorl (%edi),%eax 697 xorl 4(%edi),%ebx 698 ret 699.size _x86_Camellia_decrypt,.-_x86_Camellia_decrypt 700.globl Camellia_Ekeygen 701.type Camellia_Ekeygen,@function 702.align 16 703Camellia_Ekeygen: 704.L_Camellia_Ekeygen_begin: 705 pushl %ebp 706 pushl %ebx 707 pushl %esi 708 pushl %edi 709 subl $16,%esp 710 movl 36(%esp),%ebp 711 movl 40(%esp),%esi 712 movl 44(%esp),%edi 713 movl (%esi),%eax 714 movl 4(%esi),%ebx 715 movl 8(%esi),%ecx 716 movl 12(%esi),%edx 717 bswap %eax 718 bswap %ebx 719 bswap %ecx 720 bswap %edx 721 movl %eax,(%edi) 722 movl %ebx,4(%edi) 723 movl %ecx,8(%edi) 724 movl %edx,12(%edi) 725 cmpl $128,%ebp 726 je .L0081st128 727 movl 16(%esi),%eax 728 movl 20(%esi),%ebx 729 cmpl $192,%ebp 730 je .L0091st192 731 movl 24(%esi),%ecx 732 movl 28(%esi),%edx 733 jmp .L0101st256 734.align 4 735.L0091st192: 736 movl %eax,%ecx 737 movl %ebx,%edx 738 notl %ecx 739 notl %edx 740.align 4 741.L0101st256: 742 bswap %eax 743 bswap %ebx 744 bswap %ecx 745 bswap %edx 746 movl %eax,32(%edi) 747 movl %ebx,36(%edi) 748 movl %ecx,40(%edi) 749 movl %edx,44(%edi) 750 xorl (%edi),%eax 751 xorl 4(%edi),%ebx 752 xorl 8(%edi),%ecx 753 xorl 12(%edi),%edx 754.align 4 755.L0081st128: 756 call .L011pic_point 757.L011pic_point: 758 popl %ebp 759 leal .LCamellia_SBOX-.L011pic_point(%ebp),%ebp 760 leal .LCamellia_SIGMA-.LCamellia_SBOX(%ebp),%edi 761 movl (%edi),%esi 762 movl %eax,(%esp) 763 movl %ebx,4(%esp) 764 movl %ecx,8(%esp) 765 movl %edx,12(%esp) 766 xorl %esi,%eax 767 xorl 4(%edi),%ebx 768 movzbl %ah,%esi 769 movl 2052(%ebp,%esi,8),%edx 770 movzbl %al,%esi 771 xorl 4(%ebp,%esi,8),%edx 772 shrl $16,%eax 773 movzbl %bl,%esi 774 movl (%ebp,%esi,8),%ecx 775 movzbl %ah,%esi 776 xorl (%ebp,%esi,8),%edx 777 movzbl %bh,%esi 778 xorl 4(%ebp,%esi,8),%ecx 779 shrl $16,%ebx 780 movzbl %al,%eax 781 xorl 2048(%ebp,%eax,8),%edx 782 movzbl %bh,%esi 783 movl 12(%esp),%eax 784 xorl %edx,%ecx 785 rorl $8,%edx 786 xorl 2048(%ebp,%esi,8),%ecx 787 movzbl %bl,%esi 788 movl 8(%esp),%ebx 789 xorl %eax,%edx 790 xorl 2052(%ebp,%esi,8),%ecx 791 movl 8(%edi),%esi 792 xorl %ecx,%edx 793 movl %edx,12(%esp) 794 xorl %ebx,%ecx 795 movl %ecx,8(%esp) 796 xorl %esi,%ecx 797 xorl 12(%edi),%edx 798 movzbl %ch,%esi 799 movl 2052(%ebp,%esi,8),%ebx 800 movzbl %cl,%esi 801 xorl 4(%ebp,%esi,8),%ebx 802 shrl $16,%ecx 803 movzbl %dl,%esi 804 movl (%ebp,%esi,8),%eax 805 movzbl %ch,%esi 806 xorl (%ebp,%esi,8),%ebx 807 movzbl %dh,%esi 808 xorl 4(%ebp,%esi,8),%eax 809 shrl $16,%edx 810 movzbl %cl,%ecx 811 xorl 2048(%ebp,%ecx,8),%ebx 812 movzbl %dh,%esi 813 movl 4(%esp),%ecx 814 xorl %ebx,%eax 815 rorl $8,%ebx 816 xorl 2048(%ebp,%esi,8),%eax 817 movzbl %dl,%esi 818 movl (%esp),%edx 819 xorl %ecx,%ebx 820 xorl 2052(%ebp,%esi,8),%eax 821 movl 16(%edi),%esi 822 xorl %eax,%ebx 823 movl %ebx,4(%esp) 824 xorl %edx,%eax 825 movl %eax,(%esp) 826 movl 8(%esp),%ecx 827 movl 12(%esp),%edx 828 movl 44(%esp),%esi 829 xorl (%esi),%eax 830 xorl 4(%esi),%ebx 831 xorl 8(%esi),%ecx 832 xorl 12(%esi),%edx 833 movl 16(%edi),%esi 834 movl %eax,(%esp) 835 movl %ebx,4(%esp) 836 movl %ecx,8(%esp) 837 movl %edx,12(%esp) 838 xorl %esi,%eax 839 xorl 20(%edi),%ebx 840 movzbl %ah,%esi 841 movl 2052(%ebp,%esi,8),%edx 842 movzbl %al,%esi 843 xorl 4(%ebp,%esi,8),%edx 844 shrl $16,%eax 845 movzbl %bl,%esi 846 movl (%ebp,%esi,8),%ecx 847 movzbl %ah,%esi 848 xorl (%ebp,%esi,8),%edx 849 movzbl %bh,%esi 850 xorl 4(%ebp,%esi,8),%ecx 851 shrl $16,%ebx 852 movzbl %al,%eax 853 xorl 2048(%ebp,%eax,8),%edx 854 movzbl %bh,%esi 855 movl 12(%esp),%eax 856 xorl %edx,%ecx 857 rorl $8,%edx 858 xorl 2048(%ebp,%esi,8),%ecx 859 movzbl %bl,%esi 860 movl 8(%esp),%ebx 861 xorl %eax,%edx 862 xorl 2052(%ebp,%esi,8),%ecx 863 movl 24(%edi),%esi 864 xorl %ecx,%edx 865 movl %edx,12(%esp) 866 xorl %ebx,%ecx 867 movl %ecx,8(%esp) 868 xorl %esi,%ecx 869 xorl 28(%edi),%edx 870 movzbl %ch,%esi 871 movl 2052(%ebp,%esi,8),%ebx 872 movzbl %cl,%esi 873 xorl 4(%ebp,%esi,8),%ebx 874 shrl $16,%ecx 875 movzbl %dl,%esi 876 movl (%ebp,%esi,8),%eax 877 movzbl %ch,%esi 878 xorl (%ebp,%esi,8),%ebx 879 movzbl %dh,%esi 880 xorl 4(%ebp,%esi,8),%eax 881 shrl $16,%edx 882 movzbl %cl,%ecx 883 xorl 2048(%ebp,%ecx,8),%ebx 884 movzbl %dh,%esi 885 movl 4(%esp),%ecx 886 xorl %ebx,%eax 887 rorl $8,%ebx 888 xorl 2048(%ebp,%esi,8),%eax 889 movzbl %dl,%esi 890 movl (%esp),%edx 891 xorl %ecx,%ebx 892 xorl 2052(%ebp,%esi,8),%eax 893 movl 32(%edi),%esi 894 xorl %eax,%ebx 895 movl %ebx,4(%esp) 896 xorl %edx,%eax 897 movl %eax,(%esp) 898 movl 8(%esp),%ecx 899 movl 12(%esp),%edx 900 movl 36(%esp),%esi 901 cmpl $128,%esi 902 jne .L0122nd256 903 movl 44(%esp),%edi 904 leal 128(%edi),%edi 905 movl %eax,-112(%edi) 906 movl %ebx,-108(%edi) 907 movl %ecx,-104(%edi) 908 movl %edx,-100(%edi) 909 movl %eax,%ebp 910 shll $15,%eax 911 movl %ebx,%esi 912 shrl $17,%esi 913 shll $15,%ebx 914 orl %esi,%eax 915 movl %ecx,%esi 916 shll $15,%ecx 917 movl %eax,-80(%edi) 918 shrl $17,%esi 919 orl %esi,%ebx 920 shrl $17,%ebp 921 movl %edx,%esi 922 shrl $17,%esi 923 movl %ebx,-76(%edi) 924 shll $15,%edx 925 orl %esi,%ecx 926 orl %ebp,%edx 927 movl %ecx,-72(%edi) 928 movl %edx,-68(%edi) 929 movl %eax,%ebp 930 shll $15,%eax 931 movl %ebx,%esi 932 shrl $17,%esi 933 shll $15,%ebx 934 orl %esi,%eax 935 movl %ecx,%esi 936 shll $15,%ecx 937 movl %eax,-64(%edi) 938 shrl $17,%esi 939 orl %esi,%ebx 940 shrl $17,%ebp 941 movl %edx,%esi 942 shrl $17,%esi 943 movl %ebx,-60(%edi) 944 shll $15,%edx 945 orl %esi,%ecx 946 orl %ebp,%edx 947 movl %ecx,-56(%edi) 948 movl %edx,-52(%edi) 949 movl %eax,%ebp 950 shll $15,%eax 951 movl %ebx,%esi 952 shrl $17,%esi 953 shll $15,%ebx 954 orl %esi,%eax 955 movl %ecx,%esi 956 shll $15,%ecx 957 movl %eax,-32(%edi) 958 shrl $17,%esi 959 orl %esi,%ebx 960 shrl $17,%ebp 961 movl %edx,%esi 962 shrl $17,%esi 963 movl %ebx,-28(%edi) 964 shll $15,%edx 965 orl %esi,%ecx 966 orl %ebp,%edx 967 movl %eax,%ebp 968 shll $15,%eax 969 movl %ebx,%esi 970 shrl $17,%esi 971 shll $15,%ebx 972 orl %esi,%eax 973 movl %ecx,%esi 974 shll $15,%ecx 975 movl %eax,-16(%edi) 976 shrl $17,%esi 977 orl %esi,%ebx 978 shrl $17,%ebp 979 movl %edx,%esi 980 shrl $17,%esi 981 movl %ebx,-12(%edi) 982 shll $15,%edx 983 orl %esi,%ecx 984 orl %ebp,%edx 985 movl %ecx,-8(%edi) 986 movl %edx,-4(%edi) 987 movl %ebx,%ebp 988 shll $2,%ebx 989 movl %ecx,%esi 990 shrl $30,%esi 991 shll $2,%ecx 992 orl %esi,%ebx 993 movl %edx,%esi 994 shll $2,%edx 995 movl %ebx,32(%edi) 996 shrl $30,%esi 997 orl %esi,%ecx 998 shrl $30,%ebp 999 movl %eax,%esi 1000 shrl $30,%esi 1001 movl %ecx,36(%edi) 1002 shll $2,%eax 1003 orl %esi,%edx 1004 orl %ebp,%eax 1005 movl %edx,40(%edi) 1006 movl %eax,44(%edi) 1007 movl %ebx,%ebp 1008 shll $17,%ebx 1009 movl %ecx,%esi 1010 shrl $15,%esi 1011 shll $17,%ecx 1012 orl %esi,%ebx 1013 movl %edx,%esi 1014 shll $17,%edx 1015 movl %ebx,64(%edi) 1016 shrl $15,%esi 1017 orl %esi,%ecx 1018 shrl $15,%ebp 1019 movl %eax,%esi 1020 shrl $15,%esi 1021 movl %ecx,68(%edi) 1022 shll $17,%eax 1023 orl %esi,%edx 1024 orl %ebp,%eax 1025 movl %edx,72(%edi) 1026 movl %eax,76(%edi) 1027 movl -128(%edi),%ebx 1028 movl -124(%edi),%ecx 1029 movl -120(%edi),%edx 1030 movl -116(%edi),%eax 1031 movl %ebx,%ebp 1032 shll $15,%ebx 1033 movl %ecx,%esi 1034 shrl $17,%esi 1035 shll $15,%ecx 1036 orl %esi,%ebx 1037 movl %edx,%esi 1038 shll $15,%edx 1039 movl %ebx,-96(%edi) 1040 shrl $17,%esi 1041 orl %esi,%ecx 1042 shrl $17,%ebp 1043 movl %eax,%esi 1044 shrl $17,%esi 1045 movl %ecx,-92(%edi) 1046 shll $15,%eax 1047 orl %esi,%edx 1048 orl %ebp,%eax 1049 movl %edx,-88(%edi) 1050 movl %eax,-84(%edi) 1051 movl %ebx,%ebp 1052 shll $30,%ebx 1053 movl %ecx,%esi 1054 shrl $2,%esi 1055 shll $30,%ecx 1056 orl %esi,%ebx 1057 movl %edx,%esi 1058 shll $30,%edx 1059 movl %ebx,-48(%edi) 1060 shrl $2,%esi 1061 orl %esi,%ecx 1062 shrl $2,%ebp 1063 movl %eax,%esi 1064 shrl $2,%esi 1065 movl %ecx,-44(%edi) 1066 shll $30,%eax 1067 orl %esi,%edx 1068 orl %ebp,%eax 1069 movl %edx,-40(%edi) 1070 movl %eax,-36(%edi) 1071 movl %ebx,%ebp 1072 shll $15,%ebx 1073 movl %ecx,%esi 1074 shrl $17,%esi 1075 shll $15,%ecx 1076 orl %esi,%ebx 1077 movl %edx,%esi 1078 shll $15,%edx 1079 shrl $17,%esi 1080 orl %esi,%ecx 1081 shrl $17,%ebp 1082 movl %eax,%esi 1083 shrl $17,%esi 1084 shll $15,%eax 1085 orl %esi,%edx 1086 orl %ebp,%eax 1087 movl %edx,-24(%edi) 1088 movl %eax,-20(%edi) 1089 movl %ebx,%ebp 1090 shll $17,%ebx 1091 movl %ecx,%esi 1092 shrl $15,%esi 1093 shll $17,%ecx 1094 orl %esi,%ebx 1095 movl %edx,%esi 1096 shll $17,%edx 1097 movl %ebx,(%edi) 1098 shrl $15,%esi 1099 orl %esi,%ecx 1100 shrl $15,%ebp 1101 movl %eax,%esi 1102 shrl $15,%esi 1103 movl %ecx,4(%edi) 1104 shll $17,%eax 1105 orl %esi,%edx 1106 orl %ebp,%eax 1107 movl %edx,8(%edi) 1108 movl %eax,12(%edi) 1109 movl %ebx,%ebp 1110 shll $17,%ebx 1111 movl %ecx,%esi 1112 shrl $15,%esi 1113 shll $17,%ecx 1114 orl %esi,%ebx 1115 movl %edx,%esi 1116 shll $17,%edx 1117 movl %ebx,16(%edi) 1118 shrl $15,%esi 1119 orl %esi,%ecx 1120 shrl $15,%ebp 1121 movl %eax,%esi 1122 shrl $15,%esi 1123 movl %ecx,20(%edi) 1124 shll $17,%eax 1125 orl %esi,%edx 1126 orl %ebp,%eax 1127 movl %edx,24(%edi) 1128 movl %eax,28(%edi) 1129 movl %ebx,%ebp 1130 shll $17,%ebx 1131 movl %ecx,%esi 1132 shrl $15,%esi 1133 shll $17,%ecx 1134 orl %esi,%ebx 1135 movl %edx,%esi 1136 shll $17,%edx 1137 movl %ebx,48(%edi) 1138 shrl $15,%esi 1139 orl %esi,%ecx 1140 shrl $15,%ebp 1141 movl %eax,%esi 1142 shrl $15,%esi 1143 movl %ecx,52(%edi) 1144 shll $17,%eax 1145 orl %esi,%edx 1146 orl %ebp,%eax 1147 movl %edx,56(%edi) 1148 movl %eax,60(%edi) 1149 movl $3,%eax 1150 jmp .L013done 1151.align 16 1152.L0122nd256: 1153 movl 44(%esp),%esi 1154 movl %eax,48(%esi) 1155 movl %ebx,52(%esi) 1156 movl %ecx,56(%esi) 1157 movl %edx,60(%esi) 1158 xorl 32(%esi),%eax 1159 xorl 36(%esi),%ebx 1160 xorl 40(%esi),%ecx 1161 xorl 44(%esi),%edx 1162 movl 32(%edi),%esi 1163 movl %eax,(%esp) 1164 movl %ebx,4(%esp) 1165 movl %ecx,8(%esp) 1166 movl %edx,12(%esp) 1167 xorl %esi,%eax 1168 xorl 36(%edi),%ebx 1169 movzbl %ah,%esi 1170 movl 2052(%ebp,%esi,8),%edx 1171 movzbl %al,%esi 1172 xorl 4(%ebp,%esi,8),%edx 1173 shrl $16,%eax 1174 movzbl %bl,%esi 1175 movl (%ebp,%esi,8),%ecx 1176 movzbl %ah,%esi 1177 xorl (%ebp,%esi,8),%edx 1178 movzbl %bh,%esi 1179 xorl 4(%ebp,%esi,8),%ecx 1180 shrl $16,%ebx 1181 movzbl %al,%eax 1182 xorl 2048(%ebp,%eax,8),%edx 1183 movzbl %bh,%esi 1184 movl 12(%esp),%eax 1185 xorl %edx,%ecx 1186 rorl $8,%edx 1187 xorl 2048(%ebp,%esi,8),%ecx 1188 movzbl %bl,%esi 1189 movl 8(%esp),%ebx 1190 xorl %eax,%edx 1191 xorl 2052(%ebp,%esi,8),%ecx 1192 movl 40(%edi),%esi 1193 xorl %ecx,%edx 1194 movl %edx,12(%esp) 1195 xorl %ebx,%ecx 1196 movl %ecx,8(%esp) 1197 xorl %esi,%ecx 1198 xorl 44(%edi),%edx 1199 movzbl %ch,%esi 1200 movl 2052(%ebp,%esi,8),%ebx 1201 movzbl %cl,%esi 1202 xorl 4(%ebp,%esi,8),%ebx 1203 shrl $16,%ecx 1204 movzbl %dl,%esi 1205 movl (%ebp,%esi,8),%eax 1206 movzbl %ch,%esi 1207 xorl (%ebp,%esi,8),%ebx 1208 movzbl %dh,%esi 1209 xorl 4(%ebp,%esi,8),%eax 1210 shrl $16,%edx 1211 movzbl %cl,%ecx 1212 xorl 2048(%ebp,%ecx,8),%ebx 1213 movzbl %dh,%esi 1214 movl 4(%esp),%ecx 1215 xorl %ebx,%eax 1216 rorl $8,%ebx 1217 xorl 2048(%ebp,%esi,8),%eax 1218 movzbl %dl,%esi 1219 movl (%esp),%edx 1220 xorl %ecx,%ebx 1221 xorl 2052(%ebp,%esi,8),%eax 1222 movl 48(%edi),%esi 1223 xorl %eax,%ebx 1224 movl %ebx,4(%esp) 1225 xorl %edx,%eax 1226 movl %eax,(%esp) 1227 movl 8(%esp),%ecx 1228 movl 12(%esp),%edx 1229 movl 44(%esp),%edi 1230 leal 128(%edi),%edi 1231 movl %eax,-112(%edi) 1232 movl %ebx,-108(%edi) 1233 movl %ecx,-104(%edi) 1234 movl %edx,-100(%edi) 1235 movl %eax,%ebp 1236 shll $30,%eax 1237 movl %ebx,%esi 1238 shrl $2,%esi 1239 shll $30,%ebx 1240 orl %esi,%eax 1241 movl %ecx,%esi 1242 shll $30,%ecx 1243 movl %eax,-48(%edi) 1244 shrl $2,%esi 1245 orl %esi,%ebx 1246 shrl $2,%ebp 1247 movl %edx,%esi 1248 shrl $2,%esi 1249 movl %ebx,-44(%edi) 1250 shll $30,%edx 1251 orl %esi,%ecx 1252 orl %ebp,%edx 1253 movl %ecx,-40(%edi) 1254 movl %edx,-36(%edi) 1255 movl %eax,%ebp 1256 shll $30,%eax 1257 movl %ebx,%esi 1258 shrl $2,%esi 1259 shll $30,%ebx 1260 orl %esi,%eax 1261 movl %ecx,%esi 1262 shll $30,%ecx 1263 movl %eax,32(%edi) 1264 shrl $2,%esi 1265 orl %esi,%ebx 1266 shrl $2,%ebp 1267 movl %edx,%esi 1268 shrl $2,%esi 1269 movl %ebx,36(%edi) 1270 shll $30,%edx 1271 orl %esi,%ecx 1272 orl %ebp,%edx 1273 movl %ecx,40(%edi) 1274 movl %edx,44(%edi) 1275 movl %ebx,%ebp 1276 shll $19,%ebx 1277 movl %ecx,%esi 1278 shrl $13,%esi 1279 shll $19,%ecx 1280 orl %esi,%ebx 1281 movl %edx,%esi 1282 shll $19,%edx 1283 movl %ebx,128(%edi) 1284 shrl $13,%esi 1285 orl %esi,%ecx 1286 shrl $13,%ebp 1287 movl %eax,%esi 1288 shrl $13,%esi 1289 movl %ecx,132(%edi) 1290 shll $19,%eax 1291 orl %esi,%edx 1292 orl %ebp,%eax 1293 movl %edx,136(%edi) 1294 movl %eax,140(%edi) 1295 movl -96(%edi),%ebx 1296 movl -92(%edi),%ecx 1297 movl -88(%edi),%edx 1298 movl -84(%edi),%eax 1299 movl %ebx,%ebp 1300 shll $15,%ebx 1301 movl %ecx,%esi 1302 shrl $17,%esi 1303 shll $15,%ecx 1304 orl %esi,%ebx 1305 movl %edx,%esi 1306 shll $15,%edx 1307 movl %ebx,-96(%edi) 1308 shrl $17,%esi 1309 orl %esi,%ecx 1310 shrl $17,%ebp 1311 movl %eax,%esi 1312 shrl $17,%esi 1313 movl %ecx,-92(%edi) 1314 shll $15,%eax 1315 orl %esi,%edx 1316 orl %ebp,%eax 1317 movl %edx,-88(%edi) 1318 movl %eax,-84(%edi) 1319 movl %ebx,%ebp 1320 shll $15,%ebx 1321 movl %ecx,%esi 1322 shrl $17,%esi 1323 shll $15,%ecx 1324 orl %esi,%ebx 1325 movl %edx,%esi 1326 shll $15,%edx 1327 movl %ebx,-64(%edi) 1328 shrl $17,%esi 1329 orl %esi,%ecx 1330 shrl $17,%ebp 1331 movl %eax,%esi 1332 shrl $17,%esi 1333 movl %ecx,-60(%edi) 1334 shll $15,%eax 1335 orl %esi,%edx 1336 orl %ebp,%eax 1337 movl %edx,-56(%edi) 1338 movl %eax,-52(%edi) 1339 movl %ebx,%ebp 1340 shll $30,%ebx 1341 movl %ecx,%esi 1342 shrl $2,%esi 1343 shll $30,%ecx 1344 orl %esi,%ebx 1345 movl %edx,%esi 1346 shll $30,%edx 1347 movl %ebx,16(%edi) 1348 shrl $2,%esi 1349 orl %esi,%ecx 1350 shrl $2,%ebp 1351 movl %eax,%esi 1352 shrl $2,%esi 1353 movl %ecx,20(%edi) 1354 shll $30,%eax 1355 orl %esi,%edx 1356 orl %ebp,%eax 1357 movl %edx,24(%edi) 1358 movl %eax,28(%edi) 1359 movl %ecx,%ebp 1360 shll $2,%ecx 1361 movl %edx,%esi 1362 shrl $30,%esi 1363 shll $2,%edx 1364 orl %esi,%ecx 1365 movl %eax,%esi 1366 shll $2,%eax 1367 movl %ecx,80(%edi) 1368 shrl $30,%esi 1369 orl %esi,%edx 1370 shrl $30,%ebp 1371 movl %ebx,%esi 1372 shrl $30,%esi 1373 movl %edx,84(%edi) 1374 shll $2,%ebx 1375 orl %esi,%eax 1376 orl %ebp,%ebx 1377 movl %eax,88(%edi) 1378 movl %ebx,92(%edi) 1379 movl -80(%edi),%ecx 1380 movl -76(%edi),%edx 1381 movl -72(%edi),%eax 1382 movl -68(%edi),%ebx 1383 movl %ecx,%ebp 1384 shll $15,%ecx 1385 movl %edx,%esi 1386 shrl $17,%esi 1387 shll $15,%edx 1388 orl %esi,%ecx 1389 movl %eax,%esi 1390 shll $15,%eax 1391 movl %ecx,-80(%edi) 1392 shrl $17,%esi 1393 orl %esi,%edx 1394 shrl $17,%ebp 1395 movl %ebx,%esi 1396 shrl $17,%esi 1397 movl %edx,-76(%edi) 1398 shll $15,%ebx 1399 orl %esi,%eax 1400 orl %ebp,%ebx 1401 movl %eax,-72(%edi) 1402 movl %ebx,-68(%edi) 1403 movl %ecx,%ebp 1404 shll $30,%ecx 1405 movl %edx,%esi 1406 shrl $2,%esi 1407 shll $30,%edx 1408 orl %esi,%ecx 1409 movl %eax,%esi 1410 shll $30,%eax 1411 movl %ecx,-16(%edi) 1412 shrl $2,%esi 1413 orl %esi,%edx 1414 shrl $2,%ebp 1415 movl %ebx,%esi 1416 shrl $2,%esi 1417 movl %edx,-12(%edi) 1418 shll $30,%ebx 1419 orl %esi,%eax 1420 orl %ebp,%ebx 1421 movl %eax,-8(%edi) 1422 movl %ebx,-4(%edi) 1423 movl %edx,64(%edi) 1424 movl %eax,68(%edi) 1425 movl %ebx,72(%edi) 1426 movl %ecx,76(%edi) 1427 movl %edx,%ebp 1428 shll $17,%edx 1429 movl %eax,%esi 1430 shrl $15,%esi 1431 shll $17,%eax 1432 orl %esi,%edx 1433 movl %ebx,%esi 1434 shll $17,%ebx 1435 movl %edx,96(%edi) 1436 shrl $15,%esi 1437 orl %esi,%eax 1438 shrl $15,%ebp 1439 movl %ecx,%esi 1440 shrl $15,%esi 1441 movl %eax,100(%edi) 1442 shll $17,%ecx 1443 orl %esi,%ebx 1444 orl %ebp,%ecx 1445 movl %ebx,104(%edi) 1446 movl %ecx,108(%edi) 1447 movl -128(%edi),%edx 1448 movl -124(%edi),%eax 1449 movl -120(%edi),%ebx 1450 movl -116(%edi),%ecx 1451 movl %eax,%ebp 1452 shll $13,%eax 1453 movl %ebx,%esi 1454 shrl $19,%esi 1455 shll $13,%ebx 1456 orl %esi,%eax 1457 movl %ecx,%esi 1458 shll $13,%ecx 1459 movl %eax,-32(%edi) 1460 shrl $19,%esi 1461 orl %esi,%ebx 1462 shrl $19,%ebp 1463 movl %edx,%esi 1464 shrl $19,%esi 1465 movl %ebx,-28(%edi) 1466 shll $13,%edx 1467 orl %esi,%ecx 1468 orl %ebp,%edx 1469 movl %ecx,-24(%edi) 1470 movl %edx,-20(%edi) 1471 movl %eax,%ebp 1472 shll $15,%eax 1473 movl %ebx,%esi 1474 shrl $17,%esi 1475 shll $15,%ebx 1476 orl %esi,%eax 1477 movl %ecx,%esi 1478 shll $15,%ecx 1479 movl %eax,(%edi) 1480 shrl $17,%esi 1481 orl %esi,%ebx 1482 shrl $17,%ebp 1483 movl %edx,%esi 1484 shrl $17,%esi 1485 movl %ebx,4(%edi) 1486 shll $15,%edx 1487 orl %esi,%ecx 1488 orl %ebp,%edx 1489 movl %ecx,8(%edi) 1490 movl %edx,12(%edi) 1491 movl %eax,%ebp 1492 shll $17,%eax 1493 movl %ebx,%esi 1494 shrl $15,%esi 1495 shll $17,%ebx 1496 orl %esi,%eax 1497 movl %ecx,%esi 1498 shll $17,%ecx 1499 movl %eax,48(%edi) 1500 shrl $15,%esi 1501 orl %esi,%ebx 1502 shrl $15,%ebp 1503 movl %edx,%esi 1504 shrl $15,%esi 1505 movl %ebx,52(%edi) 1506 shll $17,%edx 1507 orl %esi,%ecx 1508 orl %ebp,%edx 1509 movl %ecx,56(%edi) 1510 movl %edx,60(%edi) 1511 movl %ebx,%ebp 1512 shll $2,%ebx 1513 movl %ecx,%esi 1514 shrl $30,%esi 1515 shll $2,%ecx 1516 orl %esi,%ebx 1517 movl %edx,%esi 1518 shll $2,%edx 1519 movl %ebx,112(%edi) 1520 shrl $30,%esi 1521 orl %esi,%ecx 1522 shrl $30,%ebp 1523 movl %eax,%esi 1524 shrl $30,%esi 1525 movl %ecx,116(%edi) 1526 shll $2,%eax 1527 orl %esi,%edx 1528 orl %ebp,%eax 1529 movl %edx,120(%edi) 1530 movl %eax,124(%edi) 1531 movl $4,%eax 1532.L013done: 1533 leal 144(%edi),%edx 1534 addl $16,%esp 1535 popl %edi 1536 popl %esi 1537 popl %ebx 1538 popl %ebp 1539 ret 1540.size Camellia_Ekeygen,.-.L_Camellia_Ekeygen_begin 1541.globl Camellia_set_key 1542.type Camellia_set_key,@function 1543.align 16 1544Camellia_set_key: 1545.L_Camellia_set_key_begin: 1546 pushl %ebx 1547 movl 8(%esp),%ecx 1548 movl 12(%esp),%ebx 1549 movl 16(%esp),%edx 1550 movl $-1,%eax 1551 testl %ecx,%ecx 1552 jz .L014done 1553 testl %edx,%edx 1554 jz .L014done 1555 movl $-2,%eax 1556 cmpl $256,%ebx 1557 je .L015arg_ok 1558 cmpl $192,%ebx 1559 je .L015arg_ok 1560 cmpl $128,%ebx 1561 jne .L014done 1562.align 4 1563.L015arg_ok: 1564 pushl %edx 1565 pushl %ecx 1566 pushl %ebx 1567 call .L_Camellia_Ekeygen_begin 1568 addl $12,%esp 1569 movl %eax,(%edx) 1570 xorl %eax,%eax 1571.align 4 1572.L014done: 1573 popl %ebx 1574 ret 1575.size Camellia_set_key,.-.L_Camellia_set_key_begin 1576.align 64 1577.LCamellia_SIGMA: 1578.long 2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0 1579.align 64 1580.LCamellia_SBOX: 1581.long 1886416896,1886388336 1582.long 2189591040,741081132 1583.long 741092352,3014852787 1584.long 3974949888,3233808576 1585.long 3014898432,3840147684 1586.long 656877312,1465319511 1587.long 3233857536,3941204202 1588.long 3857048832,2930639022 1589.long 3840205824,589496355 1590.long 2240120064,1802174571 1591.long 1465341696,1162149957 1592.long 892679424,2779054245 1593.long 3941263872,3991732461 1594.long 202116096,1330577487 1595.long 2930683392,488439837 1596.long 1094795520,2459041938 1597.long 589505280,2256928902 1598.long 4025478912,2947481775 1599.long 1802201856,2088501372 1600.long 2475922176,522125343 1601.long 1162167552,1044250686 1602.long 421075200,3705405660 1603.long 2779096320,1583218782 1604.long 555819264,185270283 1605.long 3991792896,2795896998 1606.long 235802112,960036921 1607.long 1330597632,3587506389 1608.long 1313754624,1566376029 1609.long 488447232,3654877401 1610.long 1701143808,1515847770 1611.long 2459079168,1364262993 1612.long 3183328512,1819017324 1613.long 2256963072,2341142667 1614.long 3099113472,2593783962 1615.long 2947526400,4227531003 1616.long 2408550144,2964324528 1617.long 2088532992,1953759348 1618.long 3958106880,724238379 1619.long 522133248,4042260720 1620.long 3469659648,2223243396 1621.long 1044266496,3755933919 1622.long 808464384,3419078859 1623.long 3705461760,875823156 1624.long 1600085760,1987444854 1625.long 1583242752,1835860077 1626.long 3318072576,2846425257 1627.long 185273088,3520135377 1628.long 437918208,67371012 1629.long 2795939328,336855060 1630.long 3789676800,976879674 1631.long 960051456,3739091166 1632.long 3402287616,286326801 1633.long 3587560704,842137650 1634.long 1195853568,2627469468 1635.long 1566399744,1397948499 1636.long 1027423488,4075946226 1637.long 3654932736,4278059262 1638.long 16843008,3486449871 1639.long 1515870720,3284336835 1640.long 3604403712,2054815866 1641.long 1364283648,606339108 1642.long 1448498688,3907518696 1643.long 1819044864,1616904288 1644.long 1296911616,1768489065 1645.long 2341178112,2863268010 1646.long 218959104,2694840480 1647.long 2593823232,2711683233 1648.long 1717986816,1650589794 1649.long 4227595008,1414791252 1650.long 3435973632,505282590 1651.long 2964369408,3772776672 1652.long 757935360,1684275300 1653.long 1953788928,269484048 1654.long 303174144,0 1655.long 724249344,2745368739 1656.long 538976256,1970602101 1657.long 4042321920,2324299914 1658.long 2981212416,3873833190 1659.long 2223277056,151584777 1660.long 2576980224,3722248413 1661.long 3755990784,2273771655 1662.long 1280068608,2206400643 1663.long 3419130624,3452764365 1664.long 3267543552,2425356432 1665.long 875836416,1936916595 1666.long 2122219008,4143317238 1667.long 1987474944,2644312221 1668.long 84215040,3216965823 1669.long 1835887872,1381105746 1670.long 3082270464,3638034648 1671.long 2846468352,3368550600 1672.long 825307392,3334865094 1673.long 3520188672,2172715137 1674.long 387389184,1869545583 1675.long 67372032,320012307 1676.long 3621246720,1667432547 1677.long 336860160,3924361449 1678.long 1482184704,2812739751 1679.long 976894464,2677997727 1680.long 1633771776,3166437564 1681.long 3739147776,690552873 1682.long 454761216,4193845497 1683.long 286331136,791609391 1684.long 471604224,3031695540 1685.long 842150400,2021130360 1686.long 252645120,101056518 1687.long 2627509248,3890675943 1688.long 370546176,1903231089 1689.long 1397969664,3570663636 1690.long 404232192,2880110763 1691.long 4076007936,2290614408 1692.long 572662272,2374828173 1693.long 4278124032,1920073842 1694.long 1145324544,3115909305 1695.long 3486502656,4177002744 1696.long 2998055424,2896953516 1697.long 3284386560,909508662 1698.long 3048584448,707395626 1699.long 2054846976,1010565180 1700.long 2442236160,4059103473 1701.long 606348288,1077936192 1702.long 134744064,3553820883 1703.long 3907577856,3149594811 1704.long 2829625344,1128464451 1705.long 1616928768,353697813 1706.long 4244438016,2913796269 1707.long 1768515840,2004287607 1708.long 1347440640,2155872384 1709.long 2863311360,2189557890 1710.long 3503345664,3974889708 1711.long 2694881280,656867367 1712.long 2105376000,3856990437 1713.long 2711724288,2240086149 1714.long 2307492096,892665909 1715.long 1650614784,202113036 1716.long 2543294208,1094778945 1717.long 1414812672,4025417967 1718.long 1532713728,2475884691 1719.long 505290240,421068825 1720.long 2509608192,555810849 1721.long 3772833792,235798542 1722.long 4294967040,1313734734 1723.long 1684300800,1701118053 1724.long 3537031680,3183280317 1725.long 269488128,3099066552 1726.long 3301229568,2408513679 1727.long 0,3958046955 1728.long 1212696576,3469607118 1729.long 2745410304,808452144 1730.long 4160222976,1600061535 1731.long 1970631936,3318022341 1732.long 3688618752,437911578 1733.long 2324335104,3789619425 1734.long 50529024,3402236106 1735.long 3873891840,1195835463 1736.long 3671775744,1027407933 1737.long 151587072,16842753 1738.long 1061109504,3604349142 1739.long 3722304768,1448476758 1740.long 2492765184,1296891981 1741.long 2273806080,218955789 1742.long 1549556736,1717960806 1743.long 2206434048,3435921612 1744.long 33686016,757923885 1745.long 3452816640,303169554 1746.long 1246382592,538968096 1747.long 2425393152,2981167281 1748.long 858993408,2576941209 1749.long 1936945920,1280049228 1750.long 1734829824,3267494082 1751.long 4143379968,2122186878 1752.long 4092850944,84213765 1753.long 2644352256,3082223799 1754.long 2139062016,825294897 1755.long 3217014528,387383319 1756.long 3806519808,3621191895 1757.long 1381126656,1482162264 1758.long 2610666240,1633747041 1759.long 3638089728,454754331 1760.long 640034304,471597084 1761.long 3368601600,252641295 1762.long 926365440,370540566 1763.long 3334915584,404226072 1764.long 993737472,572653602 1765.long 2172748032,1145307204 1766.long 2526451200,2998010034 1767.long 1869573888,3048538293 1768.long 1263225600,2442199185 1769.long 320017152,134742024 1770.long 3200171520,2829582504 1771.long 1667457792,4244373756 1772.long 774778368,1347420240 1773.long 3924420864,3503292624 1774.long 2038003968,2105344125 1775.long 2812782336,2307457161 1776.long 2358021120,2543255703 1777.long 2678038272,1532690523 1778.long 1852730880,2509570197 1779.long 3166485504,4294902015 1780.long 2391707136,3536978130 1781.long 690563328,3301179588 1782.long 4126536960,1212678216 1783.long 4193908992,4160159991 1784.long 3065427456,3688562907 1785.long 791621376,50528259 1786.long 4261281024,3671720154 1787.long 3031741440,1061093439 1788.long 1499027712,2492727444 1789.long 2021160960,1549533276 1790.long 2560137216,33685506 1791.long 101058048,1246363722 1792.long 1785358848,858980403 1793.long 3890734848,1734803559 1794.long 1179010560,4092788979 1795.long 1903259904,2139029631 1796.long 3132799488,3806462178 1797.long 3570717696,2610626715 1798.long 623191296,640024614 1799.long 2880154368,926351415 1800.long 1111638528,993722427 1801.long 2290649088,2526412950 1802.long 2728567296,1263206475 1803.long 2374864128,3200123070 1804.long 4210752000,774766638 1805.long 1920102912,2037973113 1806.long 117901056,2357985420 1807.long 3115956480,1852702830 1808.long 1431655680,2391670926 1809.long 4177065984,4126474485 1810.long 4008635904,3065381046 1811.long 2896997376,4261216509 1812.long 168430080,1499005017 1813.long 909522432,2560098456 1814.long 1229539584,1785331818 1815.long 707406336,1178992710 1816.long 1751672832,3132752058 1817.long 1010580480,623181861 1818.long 943208448,1111621698 1819.long 4059164928,2728525986 1820.long 2762253312,4210688250 1821.long 1077952512,117899271 1822.long 673720320,1431634005 1823.long 3553874688,4008575214 1824.long 2071689984,168427530 1825.long 3149642496,1229520969 1826.long 3385444608,1751646312 1827.long 1128481536,943194168 1828.long 3250700544,2762211492 1829.long 353703168,673710120 1830.long 3823362816,2071658619 1831.long 2913840384,3385393353 1832.long 4109693952,3250651329 1833.long 2004317952,3823304931 1834.long 3351758592,4109631732 1835.long 2155905024,3351707847 1836.long 2661195264,2661154974 1837.long 14737632,939538488 1838.long 328965,1090535745 1839.long 5789784,369104406 1840.long 14277081,1979741814 1841.long 6776679,3640711641 1842.long 5131854,2466288531 1843.long 8487297,1610637408 1844.long 13355979,4060148466 1845.long 13224393,1912631922 1846.long 723723,3254829762 1847.long 11447982,2868947883 1848.long 6974058,2583730842 1849.long 14013909,1962964341 1850.long 1579032,100664838 1851.long 6118749,1459640151 1852.long 8553090,2684395680 1853.long 4605510,2432733585 1854.long 14671839,4144035831 1855.long 14079702,3036722613 1856.long 2565927,3372272073 1857.long 9079434,2717950626 1858.long 3289650,2348846220 1859.long 4934475,3523269330 1860.long 4342338,2415956112 1861.long 14408667,4127258358 1862.long 1842204,117442311 1863.long 10395294,2801837991 1864.long 10263708,654321447 1865.long 3815994,2382401166 1866.long 13290186,2986390194 1867.long 2434341,1224755529 1868.long 8092539,3724599006 1869.long 855309,1124090691 1870.long 7434609,1543527516 1871.long 6250335,3607156695 1872.long 2039583,3338717127 1873.long 16316664,1040203326 1874.long 14145495,4110480885 1875.long 4079166,2399178639 1876.long 10329501,1728079719 1877.long 8158332,520101663 1878.long 6316128,402659352 1879.long 12171705,1845522030 1880.long 12500670,2936057775 1881.long 12369084,788541231 1882.long 9145227,3791708898 1883.long 1447446,2231403909 1884.long 3421236,218107149 1885.long 5066061,1392530259 1886.long 12829635,4026593520 1887.long 7500402,2617285788 1888.long 9803157,1694524773 1889.long 11250603,3925928682 1890.long 9342606,2734728099 1891.long 12237498,2919280302 1892.long 8026746,2650840734 1893.long 11776947,3959483628 1894.long 131586,2147516544 1895.long 11842740,754986285 1896.long 11382189,1795189611 1897.long 10658466,2818615464 1898.long 11316396,721431339 1899.long 14211288,905983542 1900.long 10132122,2785060518 1901.long 1513239,3305162181 1902.long 1710618,2248181382 1903.long 3487029,1291865421 1904.long 13421772,855651123 1905.long 16250871,4244700669 1906.long 10066329,1711302246 1907.long 6381921,1476417624 1908.long 5921370,2516620950 1909.long 15263976,973093434 1910.long 2368548,150997257 1911.long 5658198,2499843477 1912.long 4210752,268439568 1913.long 14803425,2013296760 1914.long 6513507,3623934168 1915.long 592137,1107313218 1916.long 3355443,3422604492 1917.long 12566463,4009816047 1918.long 10000536,637543974 1919.long 9934743,3842041317 1920.long 8750469,1627414881 1921.long 6842472,436214298 1922.long 16579836,1056980799 1923.long 15527148,989870907 1924.long 657930,2181071490 1925.long 14342874,3053500086 1926.long 7303023,3674266587 1927.long 5460819,3556824276 1928.long 6447714,2550175896 1929.long 10724259,3892373736 1930.long 3026478,2332068747 1931.long 526344,33554946 1932.long 11513775,3942706155 1933.long 2631720,167774730 1934.long 11579568,738208812 1935.long 7631988,486546717 1936.long 12763842,2952835248 1937.long 12434877,1862299503 1938.long 3552822,2365623693 1939.long 2236962,2281736328 1940.long 3684408,234884622 1941.long 6579300,419436825 1942.long 1973790,2264958855 1943.long 3750201,1308642894 1944.long 2894892,184552203 1945.long 10921638,2835392937 1946.long 3158064,201329676 1947.long 15066597,2030074233 1948.long 4473924,285217041 1949.long 16645629,2130739071 1950.long 8947848,570434082 1951.long 10461087,3875596263 1952.long 6645093,1493195097 1953.long 8882055,3774931425 1954.long 7039851,3657489114 1955.long 16053492,1023425853 1956.long 2302755,3355494600 1957.long 4737096,301994514 1958.long 1052688,67109892 1959.long 13750737,1946186868 1960.long 5329233,1409307732 1961.long 12632256,805318704 1962.long 16382457,2113961598 1963.long 13816530,3019945140 1964.long 10526880,671098920 1965.long 5592405,1426085205 1966.long 10592673,1744857192 1967.long 4276545,1342197840 1968.long 16448250,3187719870 1969.long 4408131,3489714384 1970.long 1250067,3288384708 1971.long 12895428,822096177 1972.long 3092271,3405827019 1973.long 11053224,704653866 1974.long 11974326,2902502829 1975.long 3947580,251662095 1976.long 2829099,3389049546 1977.long 12698049,1879076976 1978.long 16777215,4278255615 1979.long 13158600,838873650 1980.long 10855845,1761634665 1981.long 2105376,134219784 1982.long 9013641,1644192354 1983.long 0,0 1984.long 9474192,603989028 1985.long 4671303,3506491857 1986.long 15724527,4211145723 1987.long 15395562,3120609978 1988.long 12040119,3976261101 1989.long 1381653,1157645637 1990.long 394758,2164294017 1991.long 13487565,1929409395 1992.long 11908533,1828744557 1993.long 1184274,2214626436 1994.long 8289918,2667618207 1995.long 12303291,3993038574 1996.long 2697513,1241533002 1997.long 986895,3271607235 1998.long 12105912,771763758 1999.long 460551,3238052289 2000.long 263172,16777473 2001.long 10197915,3858818790 2002.long 9737364,620766501 2003.long 2171169,1207978056 2004.long 6710886,2566953369 2005.long 15132390,3103832505 2006.long 13553358,3003167667 2007.long 15592941,2063629179 2008.long 15198183,4177590777 2009.long 3881787,3456159438 2010.long 16711422,3204497343 2011.long 8355711,3741376479 2012.long 12961221,1895854449 2013.long 10790052,687876393 2014.long 3618615,3439381965 2015.long 11645361,1811967084 2016.long 5000268,318771987 2017.long 9539985,1677747300 2018.long 7237230,2600508315 2019.long 9276813,1660969827 2020.long 7763574,2634063261 2021.long 197379,3221274816 2022.long 2960685,1258310475 2023.long 14606046,3070277559 2024.long 9868950,2768283045 2025.long 2500134,2298513801 2026.long 8224125,1593859935 2027.long 13027014,2969612721 2028.long 6052956,385881879 2029.long 13882323,4093703412 2030.long 15921906,3154164924 2031.long 5197647,3540046803 2032.long 1644825,1174423110 2033.long 4144959,3472936911 2034.long 14474460,922761015 2035.long 7960953,1577082462 2036.long 1907997,1191200583 2037.long 5395026,2483066004 2038.long 15461355,4194368250 2039.long 15987699,4227923196 2040.long 7171437,1526750043 2041.long 6184542,2533398423 2042.long 16514043,4261478142 2043.long 6908265,1509972570 2044.long 11711154,2885725356 2045.long 15790320,1006648380 2046.long 3223857,1275087948 2047.long 789516,50332419 2048.long 13948116,889206069 2049.long 13619151,4076925939 2050.long 9211020,587211555 2051.long 14869218,3087055032 2052.long 7697781,1560304989 2053.long 11119017,1778412138 2054.long 4868682,2449511058 2055.long 5723991,3573601749 2056.long 8684676,553656609 2057.long 1118481,1140868164 2058.long 4539717,1358975313 2059.long 1776411,3321939654 2060.long 16119285,2097184125 2061.long 15000804,956315961 2062.long 921102,2197848963 2063.long 7566195,3691044060 2064.long 11184810,2852170410 2065.long 15856113,2080406652 2066.long 14540253,1996519287 2067.long 5855577,1442862678 2068.long 1315860,83887365 2069.long 7105644,452991771 2070.long 9605778,2751505572 2071.long 5526612,352326933 2072.long 13684944,872428596 2073.long 7895160,503324190 2074.long 7368816,469769244 2075.long 14935011,4160813304 2076.long 4802889,1375752786 2077.long 8421504,536879136 2078.long 5263440,335549460 2079.long 10987431,3909151209 2080.long 16185078,3170942397 2081.long 7829367,3707821533 2082.long 9671571,3825263844 2083.long 8816262,2701173153 2084.long 8618883,3758153952 2085.long 2763306,2315291274 2086.long 13092807,4043370993 2087.long 5987163,3590379222 2088.long 15329769,2046851706 2089.long 15658734,3137387451 2090.long 9408399,3808486371 2091.long 65793,1073758272 2092.long 4013373,1325420367 2093.globl Camellia_cbc_encrypt 2094.type Camellia_cbc_encrypt,@function 2095.align 16 2096Camellia_cbc_encrypt: 2097.L_Camellia_cbc_encrypt_begin: 2098 pushl %ebp 2099 pushl %ebx 2100 pushl %esi 2101 pushl %edi 2102 movl 28(%esp),%ecx 2103 cmpl $0,%ecx 2104 je .L016enc_out 2105 pushfl 2106 cld 2107 movl 24(%esp),%eax 2108 movl 28(%esp),%ebx 2109 movl 36(%esp),%edx 2110 movl 40(%esp),%ebp 2111 leal -64(%esp),%esi 2112 andl $-64,%esi 2113 leal -127(%edx),%edi 2114 subl %esi,%edi 2115 negl %edi 2116 andl $960,%edi 2117 subl %edi,%esi 2118 movl 44(%esp),%edi 2119 xchgl %esi,%esp 2120 addl $4,%esp 2121 movl %esi,20(%esp) 2122 movl %eax,24(%esp) 2123 movl %ebx,28(%esp) 2124 movl %ecx,32(%esp) 2125 movl %edx,36(%esp) 2126 movl %ebp,40(%esp) 2127 call .L017pic_point 2128.L017pic_point: 2129 popl %ebp 2130 leal .LCamellia_SBOX-.L017pic_point(%ebp),%ebp 2131 movl $32,%esi 2132.align 4 2133.L018prefetch_sbox: 2134 movl (%ebp),%eax 2135 movl 32(%ebp),%ebx 2136 movl 64(%ebp),%ecx 2137 movl 96(%ebp),%edx 2138 leal 128(%ebp),%ebp 2139 decl %esi 2140 jnz .L018prefetch_sbox 2141 movl 36(%esp),%eax 2142 subl $4096,%ebp 2143 movl 24(%esp),%esi 2144 movl 272(%eax),%edx 2145 cmpl $0,%edi 2146 je .L019DECRYPT 2147 movl 32(%esp),%ecx 2148 movl 40(%esp),%edi 2149 shll $6,%edx 2150 leal (%eax,%edx,1),%edx 2151 movl %edx,16(%esp) 2152 testl $4294967280,%ecx 2153 jz .L020enc_tail 2154 movl (%edi),%eax 2155 movl 4(%edi),%ebx 2156.align 4 2157.L021enc_loop: 2158 movl 8(%edi),%ecx 2159 movl 12(%edi),%edx 2160 xorl (%esi),%eax 2161 xorl 4(%esi),%ebx 2162 xorl 8(%esi),%ecx 2163 bswap %eax 2164 xorl 12(%esi),%edx 2165 bswap %ebx 2166 movl 36(%esp),%edi 2167 bswap %ecx 2168 bswap %edx 2169 call _x86_Camellia_encrypt 2170 movl 24(%esp),%esi 2171 movl 28(%esp),%edi 2172 bswap %eax 2173 bswap %ebx 2174 bswap %ecx 2175 movl %eax,(%edi) 2176 bswap %edx 2177 movl %ebx,4(%edi) 2178 movl %ecx,8(%edi) 2179 movl %edx,12(%edi) 2180 movl 32(%esp),%ecx 2181 leal 16(%esi),%esi 2182 movl %esi,24(%esp) 2183 leal 16(%edi),%edx 2184 movl %edx,28(%esp) 2185 subl $16,%ecx 2186 testl $4294967280,%ecx 2187 movl %ecx,32(%esp) 2188 jnz .L021enc_loop 2189 testl $15,%ecx 2190 jnz .L020enc_tail 2191 movl 40(%esp),%esi 2192 movl 8(%edi),%ecx 2193 movl 12(%edi),%edx 2194 movl %eax,(%esi) 2195 movl %ebx,4(%esi) 2196 movl %ecx,8(%esi) 2197 movl %edx,12(%esi) 2198 movl 20(%esp),%esp 2199 popfl 2200.L016enc_out: 2201 popl %edi 2202 popl %esi 2203 popl %ebx 2204 popl %ebp 2205 ret 2206 pushfl 2207.align 4 2208.L020enc_tail: 2209 movl %edi,%eax 2210 movl 28(%esp),%edi 2211 pushl %eax 2212 movl $16,%ebx 2213 subl %ecx,%ebx 2214 cmpl %esi,%edi 2215 je .L022enc_in_place 2216.align 4 2217.long 2767451785 2218 jmp .L023enc_skip_in_place 2219.L022enc_in_place: 2220 leal (%edi,%ecx,1),%edi 2221.L023enc_skip_in_place: 2222 movl %ebx,%ecx 2223 xorl %eax,%eax 2224.align 4 2225.long 2868115081 2226 popl %edi 2227 movl 28(%esp),%esi 2228 movl (%edi),%eax 2229 movl 4(%edi),%ebx 2230 movl $16,32(%esp) 2231 jmp .L021enc_loop 2232.align 16 2233.L019DECRYPT: 2234 shll $6,%edx 2235 leal (%eax,%edx,1),%edx 2236 movl %eax,16(%esp) 2237 movl %edx,36(%esp) 2238 cmpl 28(%esp),%esi 2239 je .L024dec_in_place 2240 movl 40(%esp),%edi 2241 movl %edi,44(%esp) 2242.align 4 2243.L025dec_loop: 2244 movl (%esi),%eax 2245 movl 4(%esi),%ebx 2246 movl 8(%esi),%ecx 2247 bswap %eax 2248 movl 12(%esi),%edx 2249 bswap %ebx 2250 movl 36(%esp),%edi 2251 bswap %ecx 2252 bswap %edx 2253 call _x86_Camellia_decrypt 2254 movl 44(%esp),%edi 2255 movl 32(%esp),%esi 2256 bswap %eax 2257 bswap %ebx 2258 bswap %ecx 2259 xorl (%edi),%eax 2260 bswap %edx 2261 xorl 4(%edi),%ebx 2262 xorl 8(%edi),%ecx 2263 xorl 12(%edi),%edx 2264 subl $16,%esi 2265 jc .L026dec_partial 2266 movl %esi,32(%esp) 2267 movl 24(%esp),%esi 2268 movl 28(%esp),%edi 2269 movl %eax,(%edi) 2270 movl %ebx,4(%edi) 2271 movl %ecx,8(%edi) 2272 movl %edx,12(%edi) 2273 movl %esi,44(%esp) 2274 leal 16(%esi),%esi 2275 movl %esi,24(%esp) 2276 leal 16(%edi),%edi 2277 movl %edi,28(%esp) 2278 jnz .L025dec_loop 2279 movl 44(%esp),%edi 2280.L027dec_end: 2281 movl 40(%esp),%esi 2282 movl (%edi),%eax 2283 movl 4(%edi),%ebx 2284 movl 8(%edi),%ecx 2285 movl 12(%edi),%edx 2286 movl %eax,(%esi) 2287 movl %ebx,4(%esi) 2288 movl %ecx,8(%esi) 2289 movl %edx,12(%esi) 2290 jmp .L028dec_out 2291.align 4 2292.L026dec_partial: 2293 leal 44(%esp),%edi 2294 movl %eax,(%edi) 2295 movl %ebx,4(%edi) 2296 movl %ecx,8(%edi) 2297 movl %edx,12(%edi) 2298 leal 16(%esi),%ecx 2299 movl %edi,%esi 2300 movl 28(%esp),%edi 2301.long 2767451785 2302 movl 24(%esp),%edi 2303 jmp .L027dec_end 2304.align 4 2305.L024dec_in_place: 2306.L029dec_in_place_loop: 2307 leal 44(%esp),%edi 2308 movl (%esi),%eax 2309 movl 4(%esi),%ebx 2310 movl 8(%esi),%ecx 2311 movl 12(%esi),%edx 2312 movl %eax,(%edi) 2313 movl %ebx,4(%edi) 2314 movl %ecx,8(%edi) 2315 bswap %eax 2316 movl %edx,12(%edi) 2317 bswap %ebx 2318 movl 36(%esp),%edi 2319 bswap %ecx 2320 bswap %edx 2321 call _x86_Camellia_decrypt 2322 movl 40(%esp),%edi 2323 movl 28(%esp),%esi 2324 bswap %eax 2325 bswap %ebx 2326 bswap %ecx 2327 xorl (%edi),%eax 2328 bswap %edx 2329 xorl 4(%edi),%ebx 2330 xorl 8(%edi),%ecx 2331 xorl 12(%edi),%edx 2332 movl %eax,(%esi) 2333 movl %ebx,4(%esi) 2334 movl %ecx,8(%esi) 2335 movl %edx,12(%esi) 2336 leal 16(%esi),%esi 2337 movl %esi,28(%esp) 2338 leal 44(%esp),%esi 2339 movl (%esi),%eax 2340 movl 4(%esi),%ebx 2341 movl 8(%esi),%ecx 2342 movl 12(%esi),%edx 2343 movl %eax,(%edi) 2344 movl %ebx,4(%edi) 2345 movl %ecx,8(%edi) 2346 movl %edx,12(%edi) 2347 movl 24(%esp),%esi 2348 leal 16(%esi),%esi 2349 movl %esi,24(%esp) 2350 movl 32(%esp),%ecx 2351 subl $16,%ecx 2352 jc .L030dec_in_place_partial 2353 movl %ecx,32(%esp) 2354 jnz .L029dec_in_place_loop 2355 jmp .L028dec_out 2356.align 4 2357.L030dec_in_place_partial: 2358 movl 28(%esp),%edi 2359 leal 44(%esp),%esi 2360 leal (%edi,%ecx,1),%edi 2361 leal 16(%esi,%ecx,1),%esi 2362 negl %ecx 2363.long 2767451785 2364.align 4 2365.L028dec_out: 2366 movl 20(%esp),%esp 2367 popfl 2368 popl %edi 2369 popl %esi 2370 popl %ebx 2371 popl %ebp 2372 ret 2373.size Camellia_cbc_encrypt,.-.L_Camellia_cbc_encrypt_begin 2374.byte 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54 2375.byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 2376.byte 115,108,46,111,114,103,62,0 2377#else 2378.text 2379.globl Camellia_EncryptBlock_Rounds 2380.type Camellia_EncryptBlock_Rounds,@function 2381.align 16 2382Camellia_EncryptBlock_Rounds: 2383.L_Camellia_EncryptBlock_Rounds_begin: 2384 pushl %ebp 2385 pushl %ebx 2386 pushl %esi 2387 pushl %edi 2388 movl 20(%esp),%eax 2389 movl 24(%esp),%esi 2390 movl 28(%esp),%edi 2391 movl %esp,%ebx 2392 subl $28,%esp 2393 andl $-64,%esp 2394 leal -127(%edi),%ecx 2395 subl %esp,%ecx 2396 negl %ecx 2397 andl $960,%ecx 2398 subl %ecx,%esp 2399 addl $4,%esp 2400 shll $6,%eax 2401 leal (%edi,%eax,1),%eax 2402 movl %ebx,20(%esp) 2403 movl %eax,16(%esp) 2404 call .L000pic_point 2405.L000pic_point: 2406 popl %ebp 2407 leal .LCamellia_SBOX-.L000pic_point(%ebp),%ebp 2408 movl (%esi),%eax 2409 movl 4(%esi),%ebx 2410 movl 8(%esi),%ecx 2411 bswap %eax 2412 movl 12(%esi),%edx 2413 bswap %ebx 2414 bswap %ecx 2415 bswap %edx 2416 call _x86_Camellia_encrypt 2417 movl 20(%esp),%esp 2418 bswap %eax 2419 movl 32(%esp),%esi 2420 bswap %ebx 2421 bswap %ecx 2422 bswap %edx 2423 movl %eax,(%esi) 2424 movl %ebx,4(%esi) 2425 movl %ecx,8(%esi) 2426 movl %edx,12(%esi) 2427 popl %edi 2428 popl %esi 2429 popl %ebx 2430 popl %ebp 2431 ret 2432.size Camellia_EncryptBlock_Rounds,.-.L_Camellia_EncryptBlock_Rounds_begin 2433.globl Camellia_EncryptBlock 2434.type Camellia_EncryptBlock,@function 2435.align 16 2436Camellia_EncryptBlock: 2437.L_Camellia_EncryptBlock_begin: 2438 movl $128,%eax 2439 subl 4(%esp),%eax 2440 movl $3,%eax 2441 adcl $0,%eax 2442 movl %eax,4(%esp) 2443 jmp .L_Camellia_EncryptBlock_Rounds_begin 2444.size Camellia_EncryptBlock,.-.L_Camellia_EncryptBlock_begin 2445.globl Camellia_encrypt 2446.type Camellia_encrypt,@function 2447.align 16 2448Camellia_encrypt: 2449.L_Camellia_encrypt_begin: 2450 pushl %ebp 2451 pushl %ebx 2452 pushl %esi 2453 pushl %edi 2454 movl 20(%esp),%esi 2455 movl 28(%esp),%edi 2456 movl %esp,%ebx 2457 subl $28,%esp 2458 andl $-64,%esp 2459 movl 272(%edi),%eax 2460 leal -127(%edi),%ecx 2461 subl %esp,%ecx 2462 negl %ecx 2463 andl $960,%ecx 2464 subl %ecx,%esp 2465 addl $4,%esp 2466 shll $6,%eax 2467 leal (%edi,%eax,1),%eax 2468 movl %ebx,20(%esp) 2469 movl %eax,16(%esp) 2470 call .L001pic_point 2471.L001pic_point: 2472 popl %ebp 2473 leal .LCamellia_SBOX-.L001pic_point(%ebp),%ebp 2474 movl (%esi),%eax 2475 movl 4(%esi),%ebx 2476 movl 8(%esi),%ecx 2477 bswap %eax 2478 movl 12(%esi),%edx 2479 bswap %ebx 2480 bswap %ecx 2481 bswap %edx 2482 call _x86_Camellia_encrypt 2483 movl 20(%esp),%esp 2484 bswap %eax 2485 movl 24(%esp),%esi 2486 bswap %ebx 2487 bswap %ecx 2488 bswap %edx 2489 movl %eax,(%esi) 2490 movl %ebx,4(%esi) 2491 movl %ecx,8(%esi) 2492 movl %edx,12(%esi) 2493 popl %edi 2494 popl %esi 2495 popl %ebx 2496 popl %ebp 2497 ret 2498.size Camellia_encrypt,.-.L_Camellia_encrypt_begin 2499.type _x86_Camellia_encrypt,@function 2500.align 16 2501_x86_Camellia_encrypt: 2502 xorl (%edi),%eax 2503 xorl 4(%edi),%ebx 2504 xorl 8(%edi),%ecx 2505 xorl 12(%edi),%edx 2506 movl 16(%edi),%esi 2507 movl %eax,4(%esp) 2508 movl %ebx,8(%esp) 2509 movl %ecx,12(%esp) 2510 movl %edx,16(%esp) 2511.align 16 2512.L002loop: 2513 xorl %esi,%eax 2514 xorl 20(%edi),%ebx 2515 movzbl %ah,%esi 2516 movl 2052(%ebp,%esi,8),%edx 2517 movzbl %al,%esi 2518 xorl 4(%ebp,%esi,8),%edx 2519 shrl $16,%eax 2520 movzbl %bl,%esi 2521 movl (%ebp,%esi,8),%ecx 2522 movzbl %ah,%esi 2523 xorl (%ebp,%esi,8),%edx 2524 movzbl %bh,%esi 2525 xorl 4(%ebp,%esi,8),%ecx 2526 shrl $16,%ebx 2527 movzbl %al,%eax 2528 xorl 2048(%ebp,%eax,8),%edx 2529 movzbl %bh,%esi 2530 movl 16(%esp),%eax 2531 xorl %edx,%ecx 2532 rorl $8,%edx 2533 xorl 2048(%ebp,%esi,8),%ecx 2534 movzbl %bl,%esi 2535 movl 12(%esp),%ebx 2536 xorl %eax,%edx 2537 xorl 2052(%ebp,%esi,8),%ecx 2538 movl 24(%edi),%esi 2539 xorl %ecx,%edx 2540 movl %edx,16(%esp) 2541 xorl %ebx,%ecx 2542 movl %ecx,12(%esp) 2543 xorl %esi,%ecx 2544 xorl 28(%edi),%edx 2545 movzbl %ch,%esi 2546 movl 2052(%ebp,%esi,8),%ebx 2547 movzbl %cl,%esi 2548 xorl 4(%ebp,%esi,8),%ebx 2549 shrl $16,%ecx 2550 movzbl %dl,%esi 2551 movl (%ebp,%esi,8),%eax 2552 movzbl %ch,%esi 2553 xorl (%ebp,%esi,8),%ebx 2554 movzbl %dh,%esi 2555 xorl 4(%ebp,%esi,8),%eax 2556 shrl $16,%edx 2557 movzbl %cl,%ecx 2558 xorl 2048(%ebp,%ecx,8),%ebx 2559 movzbl %dh,%esi 2560 movl 8(%esp),%ecx 2561 xorl %ebx,%eax 2562 rorl $8,%ebx 2563 xorl 2048(%ebp,%esi,8),%eax 2564 movzbl %dl,%esi 2565 movl 4(%esp),%edx 2566 xorl %ecx,%ebx 2567 xorl 2052(%ebp,%esi,8),%eax 2568 movl 32(%edi),%esi 2569 xorl %eax,%ebx 2570 movl %ebx,8(%esp) 2571 xorl %edx,%eax 2572 movl %eax,4(%esp) 2573 xorl %esi,%eax 2574 xorl 36(%edi),%ebx 2575 movzbl %ah,%esi 2576 movl 2052(%ebp,%esi,8),%edx 2577 movzbl %al,%esi 2578 xorl 4(%ebp,%esi,8),%edx 2579 shrl $16,%eax 2580 movzbl %bl,%esi 2581 movl (%ebp,%esi,8),%ecx 2582 movzbl %ah,%esi 2583 xorl (%ebp,%esi,8),%edx 2584 movzbl %bh,%esi 2585 xorl 4(%ebp,%esi,8),%ecx 2586 shrl $16,%ebx 2587 movzbl %al,%eax 2588 xorl 2048(%ebp,%eax,8),%edx 2589 movzbl %bh,%esi 2590 movl 16(%esp),%eax 2591 xorl %edx,%ecx 2592 rorl $8,%edx 2593 xorl 2048(%ebp,%esi,8),%ecx 2594 movzbl %bl,%esi 2595 movl 12(%esp),%ebx 2596 xorl %eax,%edx 2597 xorl 2052(%ebp,%esi,8),%ecx 2598 movl 40(%edi),%esi 2599 xorl %ecx,%edx 2600 movl %edx,16(%esp) 2601 xorl %ebx,%ecx 2602 movl %ecx,12(%esp) 2603 xorl %esi,%ecx 2604 xorl 44(%edi),%edx 2605 movzbl %ch,%esi 2606 movl 2052(%ebp,%esi,8),%ebx 2607 movzbl %cl,%esi 2608 xorl 4(%ebp,%esi,8),%ebx 2609 shrl $16,%ecx 2610 movzbl %dl,%esi 2611 movl (%ebp,%esi,8),%eax 2612 movzbl %ch,%esi 2613 xorl (%ebp,%esi,8),%ebx 2614 movzbl %dh,%esi 2615 xorl 4(%ebp,%esi,8),%eax 2616 shrl $16,%edx 2617 movzbl %cl,%ecx 2618 xorl 2048(%ebp,%ecx,8),%ebx 2619 movzbl %dh,%esi 2620 movl 8(%esp),%ecx 2621 xorl %ebx,%eax 2622 rorl $8,%ebx 2623 xorl 2048(%ebp,%esi,8),%eax 2624 movzbl %dl,%esi 2625 movl 4(%esp),%edx 2626 xorl %ecx,%ebx 2627 xorl 2052(%ebp,%esi,8),%eax 2628 movl 48(%edi),%esi 2629 xorl %eax,%ebx 2630 movl %ebx,8(%esp) 2631 xorl %edx,%eax 2632 movl %eax,4(%esp) 2633 xorl %esi,%eax 2634 xorl 52(%edi),%ebx 2635 movzbl %ah,%esi 2636 movl 2052(%ebp,%esi,8),%edx 2637 movzbl %al,%esi 2638 xorl 4(%ebp,%esi,8),%edx 2639 shrl $16,%eax 2640 movzbl %bl,%esi 2641 movl (%ebp,%esi,8),%ecx 2642 movzbl %ah,%esi 2643 xorl (%ebp,%esi,8),%edx 2644 movzbl %bh,%esi 2645 xorl 4(%ebp,%esi,8),%ecx 2646 shrl $16,%ebx 2647 movzbl %al,%eax 2648 xorl 2048(%ebp,%eax,8),%edx 2649 movzbl %bh,%esi 2650 movl 16(%esp),%eax 2651 xorl %edx,%ecx 2652 rorl $8,%edx 2653 xorl 2048(%ebp,%esi,8),%ecx 2654 movzbl %bl,%esi 2655 movl 12(%esp),%ebx 2656 xorl %eax,%edx 2657 xorl 2052(%ebp,%esi,8),%ecx 2658 movl 56(%edi),%esi 2659 xorl %ecx,%edx 2660 movl %edx,16(%esp) 2661 xorl %ebx,%ecx 2662 movl %ecx,12(%esp) 2663 xorl %esi,%ecx 2664 xorl 60(%edi),%edx 2665 movzbl %ch,%esi 2666 movl 2052(%ebp,%esi,8),%ebx 2667 movzbl %cl,%esi 2668 xorl 4(%ebp,%esi,8),%ebx 2669 shrl $16,%ecx 2670 movzbl %dl,%esi 2671 movl (%ebp,%esi,8),%eax 2672 movzbl %ch,%esi 2673 xorl (%ebp,%esi,8),%ebx 2674 movzbl %dh,%esi 2675 xorl 4(%ebp,%esi,8),%eax 2676 shrl $16,%edx 2677 movzbl %cl,%ecx 2678 xorl 2048(%ebp,%ecx,8),%ebx 2679 movzbl %dh,%esi 2680 movl 8(%esp),%ecx 2681 xorl %ebx,%eax 2682 rorl $8,%ebx 2683 xorl 2048(%ebp,%esi,8),%eax 2684 movzbl %dl,%esi 2685 movl 4(%esp),%edx 2686 xorl %ecx,%ebx 2687 xorl 2052(%ebp,%esi,8),%eax 2688 movl 64(%edi),%esi 2689 xorl %eax,%ebx 2690 movl %ebx,8(%esp) 2691 xorl %edx,%eax 2692 movl %eax,4(%esp) 2693 addl $64,%edi 2694 cmpl 20(%esp),%edi 2695 je .L003done 2696 andl %eax,%esi 2697 movl 16(%esp),%edx 2698 roll $1,%esi 2699 movl %edx,%ecx 2700 xorl %esi,%ebx 2701 orl 12(%edi),%ecx 2702 movl %ebx,8(%esp) 2703 xorl 12(%esp),%ecx 2704 movl 4(%edi),%esi 2705 movl %ecx,12(%esp) 2706 orl %ebx,%esi 2707 andl 8(%edi),%ecx 2708 xorl %esi,%eax 2709 roll $1,%ecx 2710 movl %eax,4(%esp) 2711 xorl %ecx,%edx 2712 movl 16(%edi),%esi 2713 movl %edx,16(%esp) 2714 jmp .L002loop 2715.align 8 2716.L003done: 2717 movl %eax,%ecx 2718 movl %ebx,%edx 2719 movl 12(%esp),%eax 2720 movl 16(%esp),%ebx 2721 xorl %esi,%eax 2722 xorl 4(%edi),%ebx 2723 xorl 8(%edi),%ecx 2724 xorl 12(%edi),%edx 2725 ret 2726.size _x86_Camellia_encrypt,.-_x86_Camellia_encrypt 2727.globl Camellia_DecryptBlock_Rounds 2728.type Camellia_DecryptBlock_Rounds,@function 2729.align 16 2730Camellia_DecryptBlock_Rounds: 2731.L_Camellia_DecryptBlock_Rounds_begin: 2732 pushl %ebp 2733 pushl %ebx 2734 pushl %esi 2735 pushl %edi 2736 movl 20(%esp),%eax 2737 movl 24(%esp),%esi 2738 movl 28(%esp),%edi 2739 movl %esp,%ebx 2740 subl $28,%esp 2741 andl $-64,%esp 2742 leal -127(%edi),%ecx 2743 subl %esp,%ecx 2744 negl %ecx 2745 andl $960,%ecx 2746 subl %ecx,%esp 2747 addl $4,%esp 2748 shll $6,%eax 2749 movl %edi,16(%esp) 2750 leal (%edi,%eax,1),%edi 2751 movl %ebx,20(%esp) 2752 call .L004pic_point 2753.L004pic_point: 2754 popl %ebp 2755 leal .LCamellia_SBOX-.L004pic_point(%ebp),%ebp 2756 movl (%esi),%eax 2757 movl 4(%esi),%ebx 2758 movl 8(%esi),%ecx 2759 bswap %eax 2760 movl 12(%esi),%edx 2761 bswap %ebx 2762 bswap %ecx 2763 bswap %edx 2764 call _x86_Camellia_decrypt 2765 movl 20(%esp),%esp 2766 bswap %eax 2767 movl 32(%esp),%esi 2768 bswap %ebx 2769 bswap %ecx 2770 bswap %edx 2771 movl %eax,(%esi) 2772 movl %ebx,4(%esi) 2773 movl %ecx,8(%esi) 2774 movl %edx,12(%esi) 2775 popl %edi 2776 popl %esi 2777 popl %ebx 2778 popl %ebp 2779 ret 2780.size Camellia_DecryptBlock_Rounds,.-.L_Camellia_DecryptBlock_Rounds_begin 2781.globl Camellia_DecryptBlock 2782.type Camellia_DecryptBlock,@function 2783.align 16 2784Camellia_DecryptBlock: 2785.L_Camellia_DecryptBlock_begin: 2786 movl $128,%eax 2787 subl 4(%esp),%eax 2788 movl $3,%eax 2789 adcl $0,%eax 2790 movl %eax,4(%esp) 2791 jmp .L_Camellia_DecryptBlock_Rounds_begin 2792.size Camellia_DecryptBlock,.-.L_Camellia_DecryptBlock_begin 2793.globl Camellia_decrypt 2794.type Camellia_decrypt,@function 2795.align 16 2796Camellia_decrypt: 2797.L_Camellia_decrypt_begin: 2798 pushl %ebp 2799 pushl %ebx 2800 pushl %esi 2801 pushl %edi 2802 movl 20(%esp),%esi 2803 movl 28(%esp),%edi 2804 movl %esp,%ebx 2805 subl $28,%esp 2806 andl $-64,%esp 2807 movl 272(%edi),%eax 2808 leal -127(%edi),%ecx 2809 subl %esp,%ecx 2810 negl %ecx 2811 andl $960,%ecx 2812 subl %ecx,%esp 2813 addl $4,%esp 2814 shll $6,%eax 2815 movl %edi,16(%esp) 2816 leal (%edi,%eax,1),%edi 2817 movl %ebx,20(%esp) 2818 call .L005pic_point 2819.L005pic_point: 2820 popl %ebp 2821 leal .LCamellia_SBOX-.L005pic_point(%ebp),%ebp 2822 movl (%esi),%eax 2823 movl 4(%esi),%ebx 2824 movl 8(%esi),%ecx 2825 bswap %eax 2826 movl 12(%esi),%edx 2827 bswap %ebx 2828 bswap %ecx 2829 bswap %edx 2830 call _x86_Camellia_decrypt 2831 movl 20(%esp),%esp 2832 bswap %eax 2833 movl 24(%esp),%esi 2834 bswap %ebx 2835 bswap %ecx 2836 bswap %edx 2837 movl %eax,(%esi) 2838 movl %ebx,4(%esi) 2839 movl %ecx,8(%esi) 2840 movl %edx,12(%esi) 2841 popl %edi 2842 popl %esi 2843 popl %ebx 2844 popl %ebp 2845 ret 2846.size Camellia_decrypt,.-.L_Camellia_decrypt_begin 2847.type _x86_Camellia_decrypt,@function 2848.align 16 2849_x86_Camellia_decrypt: 2850 xorl (%edi),%eax 2851 xorl 4(%edi),%ebx 2852 xorl 8(%edi),%ecx 2853 xorl 12(%edi),%edx 2854 movl -8(%edi),%esi 2855 movl %eax,4(%esp) 2856 movl %ebx,8(%esp) 2857 movl %ecx,12(%esp) 2858 movl %edx,16(%esp) 2859.align 16 2860.L006loop: 2861 xorl %esi,%eax 2862 xorl -4(%edi),%ebx 2863 movzbl %ah,%esi 2864 movl 2052(%ebp,%esi,8),%edx 2865 movzbl %al,%esi 2866 xorl 4(%ebp,%esi,8),%edx 2867 shrl $16,%eax 2868 movzbl %bl,%esi 2869 movl (%ebp,%esi,8),%ecx 2870 movzbl %ah,%esi 2871 xorl (%ebp,%esi,8),%edx 2872 movzbl %bh,%esi 2873 xorl 4(%ebp,%esi,8),%ecx 2874 shrl $16,%ebx 2875 movzbl %al,%eax 2876 xorl 2048(%ebp,%eax,8),%edx 2877 movzbl %bh,%esi 2878 movl 16(%esp),%eax 2879 xorl %edx,%ecx 2880 rorl $8,%edx 2881 xorl 2048(%ebp,%esi,8),%ecx 2882 movzbl %bl,%esi 2883 movl 12(%esp),%ebx 2884 xorl %eax,%edx 2885 xorl 2052(%ebp,%esi,8),%ecx 2886 movl -16(%edi),%esi 2887 xorl %ecx,%edx 2888 movl %edx,16(%esp) 2889 xorl %ebx,%ecx 2890 movl %ecx,12(%esp) 2891 xorl %esi,%ecx 2892 xorl -12(%edi),%edx 2893 movzbl %ch,%esi 2894 movl 2052(%ebp,%esi,8),%ebx 2895 movzbl %cl,%esi 2896 xorl 4(%ebp,%esi,8),%ebx 2897 shrl $16,%ecx 2898 movzbl %dl,%esi 2899 movl (%ebp,%esi,8),%eax 2900 movzbl %ch,%esi 2901 xorl (%ebp,%esi,8),%ebx 2902 movzbl %dh,%esi 2903 xorl 4(%ebp,%esi,8),%eax 2904 shrl $16,%edx 2905 movzbl %cl,%ecx 2906 xorl 2048(%ebp,%ecx,8),%ebx 2907 movzbl %dh,%esi 2908 movl 8(%esp),%ecx 2909 xorl %ebx,%eax 2910 rorl $8,%ebx 2911 xorl 2048(%ebp,%esi,8),%eax 2912 movzbl %dl,%esi 2913 movl 4(%esp),%edx 2914 xorl %ecx,%ebx 2915 xorl 2052(%ebp,%esi,8),%eax 2916 movl -24(%edi),%esi 2917 xorl %eax,%ebx 2918 movl %ebx,8(%esp) 2919 xorl %edx,%eax 2920 movl %eax,4(%esp) 2921 xorl %esi,%eax 2922 xorl -20(%edi),%ebx 2923 movzbl %ah,%esi 2924 movl 2052(%ebp,%esi,8),%edx 2925 movzbl %al,%esi 2926 xorl 4(%ebp,%esi,8),%edx 2927 shrl $16,%eax 2928 movzbl %bl,%esi 2929 movl (%ebp,%esi,8),%ecx 2930 movzbl %ah,%esi 2931 xorl (%ebp,%esi,8),%edx 2932 movzbl %bh,%esi 2933 xorl 4(%ebp,%esi,8),%ecx 2934 shrl $16,%ebx 2935 movzbl %al,%eax 2936 xorl 2048(%ebp,%eax,8),%edx 2937 movzbl %bh,%esi 2938 movl 16(%esp),%eax 2939 xorl %edx,%ecx 2940 rorl $8,%edx 2941 xorl 2048(%ebp,%esi,8),%ecx 2942 movzbl %bl,%esi 2943 movl 12(%esp),%ebx 2944 xorl %eax,%edx 2945 xorl 2052(%ebp,%esi,8),%ecx 2946 movl -32(%edi),%esi 2947 xorl %ecx,%edx 2948 movl %edx,16(%esp) 2949 xorl %ebx,%ecx 2950 movl %ecx,12(%esp) 2951 xorl %esi,%ecx 2952 xorl -28(%edi),%edx 2953 movzbl %ch,%esi 2954 movl 2052(%ebp,%esi,8),%ebx 2955 movzbl %cl,%esi 2956 xorl 4(%ebp,%esi,8),%ebx 2957 shrl $16,%ecx 2958 movzbl %dl,%esi 2959 movl (%ebp,%esi,8),%eax 2960 movzbl %ch,%esi 2961 xorl (%ebp,%esi,8),%ebx 2962 movzbl %dh,%esi 2963 xorl 4(%ebp,%esi,8),%eax 2964 shrl $16,%edx 2965 movzbl %cl,%ecx 2966 xorl 2048(%ebp,%ecx,8),%ebx 2967 movzbl %dh,%esi 2968 movl 8(%esp),%ecx 2969 xorl %ebx,%eax 2970 rorl $8,%ebx 2971 xorl 2048(%ebp,%esi,8),%eax 2972 movzbl %dl,%esi 2973 movl 4(%esp),%edx 2974 xorl %ecx,%ebx 2975 xorl 2052(%ebp,%esi,8),%eax 2976 movl -40(%edi),%esi 2977 xorl %eax,%ebx 2978 movl %ebx,8(%esp) 2979 xorl %edx,%eax 2980 movl %eax,4(%esp) 2981 xorl %esi,%eax 2982 xorl -36(%edi),%ebx 2983 movzbl %ah,%esi 2984 movl 2052(%ebp,%esi,8),%edx 2985 movzbl %al,%esi 2986 xorl 4(%ebp,%esi,8),%edx 2987 shrl $16,%eax 2988 movzbl %bl,%esi 2989 movl (%ebp,%esi,8),%ecx 2990 movzbl %ah,%esi 2991 xorl (%ebp,%esi,8),%edx 2992 movzbl %bh,%esi 2993 xorl 4(%ebp,%esi,8),%ecx 2994 shrl $16,%ebx 2995 movzbl %al,%eax 2996 xorl 2048(%ebp,%eax,8),%edx 2997 movzbl %bh,%esi 2998 movl 16(%esp),%eax 2999 xorl %edx,%ecx 3000 rorl $8,%edx 3001 xorl 2048(%ebp,%esi,8),%ecx 3002 movzbl %bl,%esi 3003 movl 12(%esp),%ebx 3004 xorl %eax,%edx 3005 xorl 2052(%ebp,%esi,8),%ecx 3006 movl -48(%edi),%esi 3007 xorl %ecx,%edx 3008 movl %edx,16(%esp) 3009 xorl %ebx,%ecx 3010 movl %ecx,12(%esp) 3011 xorl %esi,%ecx 3012 xorl -44(%edi),%edx 3013 movzbl %ch,%esi 3014 movl 2052(%ebp,%esi,8),%ebx 3015 movzbl %cl,%esi 3016 xorl 4(%ebp,%esi,8),%ebx 3017 shrl $16,%ecx 3018 movzbl %dl,%esi 3019 movl (%ebp,%esi,8),%eax 3020 movzbl %ch,%esi 3021 xorl (%ebp,%esi,8),%ebx 3022 movzbl %dh,%esi 3023 xorl 4(%ebp,%esi,8),%eax 3024 shrl $16,%edx 3025 movzbl %cl,%ecx 3026 xorl 2048(%ebp,%ecx,8),%ebx 3027 movzbl %dh,%esi 3028 movl 8(%esp),%ecx 3029 xorl %ebx,%eax 3030 rorl $8,%ebx 3031 xorl 2048(%ebp,%esi,8),%eax 3032 movzbl %dl,%esi 3033 movl 4(%esp),%edx 3034 xorl %ecx,%ebx 3035 xorl 2052(%ebp,%esi,8),%eax 3036 movl -56(%edi),%esi 3037 xorl %eax,%ebx 3038 movl %ebx,8(%esp) 3039 xorl %edx,%eax 3040 movl %eax,4(%esp) 3041 subl $64,%edi 3042 cmpl 20(%esp),%edi 3043 je .L007done 3044 andl %eax,%esi 3045 movl 16(%esp),%edx 3046 roll $1,%esi 3047 movl %edx,%ecx 3048 xorl %esi,%ebx 3049 orl 4(%edi),%ecx 3050 movl %ebx,8(%esp) 3051 xorl 12(%esp),%ecx 3052 movl 12(%edi),%esi 3053 movl %ecx,12(%esp) 3054 orl %ebx,%esi 3055 andl (%edi),%ecx 3056 xorl %esi,%eax 3057 roll $1,%ecx 3058 movl %eax,4(%esp) 3059 xorl %ecx,%edx 3060 movl -8(%edi),%esi 3061 movl %edx,16(%esp) 3062 jmp .L006loop 3063.align 8 3064.L007done: 3065 movl %eax,%ecx 3066 movl %ebx,%edx 3067 movl 12(%esp),%eax 3068 movl 16(%esp),%ebx 3069 xorl %esi,%ecx 3070 xorl 12(%edi),%edx 3071 xorl (%edi),%eax 3072 xorl 4(%edi),%ebx 3073 ret 3074.size _x86_Camellia_decrypt,.-_x86_Camellia_decrypt 3075.globl Camellia_Ekeygen 3076.type Camellia_Ekeygen,@function 3077.align 16 3078Camellia_Ekeygen: 3079.L_Camellia_Ekeygen_begin: 3080 pushl %ebp 3081 pushl %ebx 3082 pushl %esi 3083 pushl %edi 3084 subl $16,%esp 3085 movl 36(%esp),%ebp 3086 movl 40(%esp),%esi 3087 movl 44(%esp),%edi 3088 movl (%esi),%eax 3089 movl 4(%esi),%ebx 3090 movl 8(%esi),%ecx 3091 movl 12(%esi),%edx 3092 bswap %eax 3093 bswap %ebx 3094 bswap %ecx 3095 bswap %edx 3096 movl %eax,(%edi) 3097 movl %ebx,4(%edi) 3098 movl %ecx,8(%edi) 3099 movl %edx,12(%edi) 3100 cmpl $128,%ebp 3101 je .L0081st128 3102 movl 16(%esi),%eax 3103 movl 20(%esi),%ebx 3104 cmpl $192,%ebp 3105 je .L0091st192 3106 movl 24(%esi),%ecx 3107 movl 28(%esi),%edx 3108 jmp .L0101st256 3109.align 4 3110.L0091st192: 3111 movl %eax,%ecx 3112 movl %ebx,%edx 3113 notl %ecx 3114 notl %edx 3115.align 4 3116.L0101st256: 3117 bswap %eax 3118 bswap %ebx 3119 bswap %ecx 3120 bswap %edx 3121 movl %eax,32(%edi) 3122 movl %ebx,36(%edi) 3123 movl %ecx,40(%edi) 3124 movl %edx,44(%edi) 3125 xorl (%edi),%eax 3126 xorl 4(%edi),%ebx 3127 xorl 8(%edi),%ecx 3128 xorl 12(%edi),%edx 3129.align 4 3130.L0081st128: 3131 call .L011pic_point 3132.L011pic_point: 3133 popl %ebp 3134 leal .LCamellia_SBOX-.L011pic_point(%ebp),%ebp 3135 leal .LCamellia_SIGMA-.LCamellia_SBOX(%ebp),%edi 3136 movl (%edi),%esi 3137 movl %eax,(%esp) 3138 movl %ebx,4(%esp) 3139 movl %ecx,8(%esp) 3140 movl %edx,12(%esp) 3141 xorl %esi,%eax 3142 xorl 4(%edi),%ebx 3143 movzbl %ah,%esi 3144 movl 2052(%ebp,%esi,8),%edx 3145 movzbl %al,%esi 3146 xorl 4(%ebp,%esi,8),%edx 3147 shrl $16,%eax 3148 movzbl %bl,%esi 3149 movl (%ebp,%esi,8),%ecx 3150 movzbl %ah,%esi 3151 xorl (%ebp,%esi,8),%edx 3152 movzbl %bh,%esi 3153 xorl 4(%ebp,%esi,8),%ecx 3154 shrl $16,%ebx 3155 movzbl %al,%eax 3156 xorl 2048(%ebp,%eax,8),%edx 3157 movzbl %bh,%esi 3158 movl 12(%esp),%eax 3159 xorl %edx,%ecx 3160 rorl $8,%edx 3161 xorl 2048(%ebp,%esi,8),%ecx 3162 movzbl %bl,%esi 3163 movl 8(%esp),%ebx 3164 xorl %eax,%edx 3165 xorl 2052(%ebp,%esi,8),%ecx 3166 movl 8(%edi),%esi 3167 xorl %ecx,%edx 3168 movl %edx,12(%esp) 3169 xorl %ebx,%ecx 3170 movl %ecx,8(%esp) 3171 xorl %esi,%ecx 3172 xorl 12(%edi),%edx 3173 movzbl %ch,%esi 3174 movl 2052(%ebp,%esi,8),%ebx 3175 movzbl %cl,%esi 3176 xorl 4(%ebp,%esi,8),%ebx 3177 shrl $16,%ecx 3178 movzbl %dl,%esi 3179 movl (%ebp,%esi,8),%eax 3180 movzbl %ch,%esi 3181 xorl (%ebp,%esi,8),%ebx 3182 movzbl %dh,%esi 3183 xorl 4(%ebp,%esi,8),%eax 3184 shrl $16,%edx 3185 movzbl %cl,%ecx 3186 xorl 2048(%ebp,%ecx,8),%ebx 3187 movzbl %dh,%esi 3188 movl 4(%esp),%ecx 3189 xorl %ebx,%eax 3190 rorl $8,%ebx 3191 xorl 2048(%ebp,%esi,8),%eax 3192 movzbl %dl,%esi 3193 movl (%esp),%edx 3194 xorl %ecx,%ebx 3195 xorl 2052(%ebp,%esi,8),%eax 3196 movl 16(%edi),%esi 3197 xorl %eax,%ebx 3198 movl %ebx,4(%esp) 3199 xorl %edx,%eax 3200 movl %eax,(%esp) 3201 movl 8(%esp),%ecx 3202 movl 12(%esp),%edx 3203 movl 44(%esp),%esi 3204 xorl (%esi),%eax 3205 xorl 4(%esi),%ebx 3206 xorl 8(%esi),%ecx 3207 xorl 12(%esi),%edx 3208 movl 16(%edi),%esi 3209 movl %eax,(%esp) 3210 movl %ebx,4(%esp) 3211 movl %ecx,8(%esp) 3212 movl %edx,12(%esp) 3213 xorl %esi,%eax 3214 xorl 20(%edi),%ebx 3215 movzbl %ah,%esi 3216 movl 2052(%ebp,%esi,8),%edx 3217 movzbl %al,%esi 3218 xorl 4(%ebp,%esi,8),%edx 3219 shrl $16,%eax 3220 movzbl %bl,%esi 3221 movl (%ebp,%esi,8),%ecx 3222 movzbl %ah,%esi 3223 xorl (%ebp,%esi,8),%edx 3224 movzbl %bh,%esi 3225 xorl 4(%ebp,%esi,8),%ecx 3226 shrl $16,%ebx 3227 movzbl %al,%eax 3228 xorl 2048(%ebp,%eax,8),%edx 3229 movzbl %bh,%esi 3230 movl 12(%esp),%eax 3231 xorl %edx,%ecx 3232 rorl $8,%edx 3233 xorl 2048(%ebp,%esi,8),%ecx 3234 movzbl %bl,%esi 3235 movl 8(%esp),%ebx 3236 xorl %eax,%edx 3237 xorl 2052(%ebp,%esi,8),%ecx 3238 movl 24(%edi),%esi 3239 xorl %ecx,%edx 3240 movl %edx,12(%esp) 3241 xorl %ebx,%ecx 3242 movl %ecx,8(%esp) 3243 xorl %esi,%ecx 3244 xorl 28(%edi),%edx 3245 movzbl %ch,%esi 3246 movl 2052(%ebp,%esi,8),%ebx 3247 movzbl %cl,%esi 3248 xorl 4(%ebp,%esi,8),%ebx 3249 shrl $16,%ecx 3250 movzbl %dl,%esi 3251 movl (%ebp,%esi,8),%eax 3252 movzbl %ch,%esi 3253 xorl (%ebp,%esi,8),%ebx 3254 movzbl %dh,%esi 3255 xorl 4(%ebp,%esi,8),%eax 3256 shrl $16,%edx 3257 movzbl %cl,%ecx 3258 xorl 2048(%ebp,%ecx,8),%ebx 3259 movzbl %dh,%esi 3260 movl 4(%esp),%ecx 3261 xorl %ebx,%eax 3262 rorl $8,%ebx 3263 xorl 2048(%ebp,%esi,8),%eax 3264 movzbl %dl,%esi 3265 movl (%esp),%edx 3266 xorl %ecx,%ebx 3267 xorl 2052(%ebp,%esi,8),%eax 3268 movl 32(%edi),%esi 3269 xorl %eax,%ebx 3270 movl %ebx,4(%esp) 3271 xorl %edx,%eax 3272 movl %eax,(%esp) 3273 movl 8(%esp),%ecx 3274 movl 12(%esp),%edx 3275 movl 36(%esp),%esi 3276 cmpl $128,%esi 3277 jne .L0122nd256 3278 movl 44(%esp),%edi 3279 leal 128(%edi),%edi 3280 movl %eax,-112(%edi) 3281 movl %ebx,-108(%edi) 3282 movl %ecx,-104(%edi) 3283 movl %edx,-100(%edi) 3284 movl %eax,%ebp 3285 shll $15,%eax 3286 movl %ebx,%esi 3287 shrl $17,%esi 3288 shll $15,%ebx 3289 orl %esi,%eax 3290 movl %ecx,%esi 3291 shll $15,%ecx 3292 movl %eax,-80(%edi) 3293 shrl $17,%esi 3294 orl %esi,%ebx 3295 shrl $17,%ebp 3296 movl %edx,%esi 3297 shrl $17,%esi 3298 movl %ebx,-76(%edi) 3299 shll $15,%edx 3300 orl %esi,%ecx 3301 orl %ebp,%edx 3302 movl %ecx,-72(%edi) 3303 movl %edx,-68(%edi) 3304 movl %eax,%ebp 3305 shll $15,%eax 3306 movl %ebx,%esi 3307 shrl $17,%esi 3308 shll $15,%ebx 3309 orl %esi,%eax 3310 movl %ecx,%esi 3311 shll $15,%ecx 3312 movl %eax,-64(%edi) 3313 shrl $17,%esi 3314 orl %esi,%ebx 3315 shrl $17,%ebp 3316 movl %edx,%esi 3317 shrl $17,%esi 3318 movl %ebx,-60(%edi) 3319 shll $15,%edx 3320 orl %esi,%ecx 3321 orl %ebp,%edx 3322 movl %ecx,-56(%edi) 3323 movl %edx,-52(%edi) 3324 movl %eax,%ebp 3325 shll $15,%eax 3326 movl %ebx,%esi 3327 shrl $17,%esi 3328 shll $15,%ebx 3329 orl %esi,%eax 3330 movl %ecx,%esi 3331 shll $15,%ecx 3332 movl %eax,-32(%edi) 3333 shrl $17,%esi 3334 orl %esi,%ebx 3335 shrl $17,%ebp 3336 movl %edx,%esi 3337 shrl $17,%esi 3338 movl %ebx,-28(%edi) 3339 shll $15,%edx 3340 orl %esi,%ecx 3341 orl %ebp,%edx 3342 movl %eax,%ebp 3343 shll $15,%eax 3344 movl %ebx,%esi 3345 shrl $17,%esi 3346 shll $15,%ebx 3347 orl %esi,%eax 3348 movl %ecx,%esi 3349 shll $15,%ecx 3350 movl %eax,-16(%edi) 3351 shrl $17,%esi 3352 orl %esi,%ebx 3353 shrl $17,%ebp 3354 movl %edx,%esi 3355 shrl $17,%esi 3356 movl %ebx,-12(%edi) 3357 shll $15,%edx 3358 orl %esi,%ecx 3359 orl %ebp,%edx 3360 movl %ecx,-8(%edi) 3361 movl %edx,-4(%edi) 3362 movl %ebx,%ebp 3363 shll $2,%ebx 3364 movl %ecx,%esi 3365 shrl $30,%esi 3366 shll $2,%ecx 3367 orl %esi,%ebx 3368 movl %edx,%esi 3369 shll $2,%edx 3370 movl %ebx,32(%edi) 3371 shrl $30,%esi 3372 orl %esi,%ecx 3373 shrl $30,%ebp 3374 movl %eax,%esi 3375 shrl $30,%esi 3376 movl %ecx,36(%edi) 3377 shll $2,%eax 3378 orl %esi,%edx 3379 orl %ebp,%eax 3380 movl %edx,40(%edi) 3381 movl %eax,44(%edi) 3382 movl %ebx,%ebp 3383 shll $17,%ebx 3384 movl %ecx,%esi 3385 shrl $15,%esi 3386 shll $17,%ecx 3387 orl %esi,%ebx 3388 movl %edx,%esi 3389 shll $17,%edx 3390 movl %ebx,64(%edi) 3391 shrl $15,%esi 3392 orl %esi,%ecx 3393 shrl $15,%ebp 3394 movl %eax,%esi 3395 shrl $15,%esi 3396 movl %ecx,68(%edi) 3397 shll $17,%eax 3398 orl %esi,%edx 3399 orl %ebp,%eax 3400 movl %edx,72(%edi) 3401 movl %eax,76(%edi) 3402 movl -128(%edi),%ebx 3403 movl -124(%edi),%ecx 3404 movl -120(%edi),%edx 3405 movl -116(%edi),%eax 3406 movl %ebx,%ebp 3407 shll $15,%ebx 3408 movl %ecx,%esi 3409 shrl $17,%esi 3410 shll $15,%ecx 3411 orl %esi,%ebx 3412 movl %edx,%esi 3413 shll $15,%edx 3414 movl %ebx,-96(%edi) 3415 shrl $17,%esi 3416 orl %esi,%ecx 3417 shrl $17,%ebp 3418 movl %eax,%esi 3419 shrl $17,%esi 3420 movl %ecx,-92(%edi) 3421 shll $15,%eax 3422 orl %esi,%edx 3423 orl %ebp,%eax 3424 movl %edx,-88(%edi) 3425 movl %eax,-84(%edi) 3426 movl %ebx,%ebp 3427 shll $30,%ebx 3428 movl %ecx,%esi 3429 shrl $2,%esi 3430 shll $30,%ecx 3431 orl %esi,%ebx 3432 movl %edx,%esi 3433 shll $30,%edx 3434 movl %ebx,-48(%edi) 3435 shrl $2,%esi 3436 orl %esi,%ecx 3437 shrl $2,%ebp 3438 movl %eax,%esi 3439 shrl $2,%esi 3440 movl %ecx,-44(%edi) 3441 shll $30,%eax 3442 orl %esi,%edx 3443 orl %ebp,%eax 3444 movl %edx,-40(%edi) 3445 movl %eax,-36(%edi) 3446 movl %ebx,%ebp 3447 shll $15,%ebx 3448 movl %ecx,%esi 3449 shrl $17,%esi 3450 shll $15,%ecx 3451 orl %esi,%ebx 3452 movl %edx,%esi 3453 shll $15,%edx 3454 shrl $17,%esi 3455 orl %esi,%ecx 3456 shrl $17,%ebp 3457 movl %eax,%esi 3458 shrl $17,%esi 3459 shll $15,%eax 3460 orl %esi,%edx 3461 orl %ebp,%eax 3462 movl %edx,-24(%edi) 3463 movl %eax,-20(%edi) 3464 movl %ebx,%ebp 3465 shll $17,%ebx 3466 movl %ecx,%esi 3467 shrl $15,%esi 3468 shll $17,%ecx 3469 orl %esi,%ebx 3470 movl %edx,%esi 3471 shll $17,%edx 3472 movl %ebx,(%edi) 3473 shrl $15,%esi 3474 orl %esi,%ecx 3475 shrl $15,%ebp 3476 movl %eax,%esi 3477 shrl $15,%esi 3478 movl %ecx,4(%edi) 3479 shll $17,%eax 3480 orl %esi,%edx 3481 orl %ebp,%eax 3482 movl %edx,8(%edi) 3483 movl %eax,12(%edi) 3484 movl %ebx,%ebp 3485 shll $17,%ebx 3486 movl %ecx,%esi 3487 shrl $15,%esi 3488 shll $17,%ecx 3489 orl %esi,%ebx 3490 movl %edx,%esi 3491 shll $17,%edx 3492 movl %ebx,16(%edi) 3493 shrl $15,%esi 3494 orl %esi,%ecx 3495 shrl $15,%ebp 3496 movl %eax,%esi 3497 shrl $15,%esi 3498 movl %ecx,20(%edi) 3499 shll $17,%eax 3500 orl %esi,%edx 3501 orl %ebp,%eax 3502 movl %edx,24(%edi) 3503 movl %eax,28(%edi) 3504 movl %ebx,%ebp 3505 shll $17,%ebx 3506 movl %ecx,%esi 3507 shrl $15,%esi 3508 shll $17,%ecx 3509 orl %esi,%ebx 3510 movl %edx,%esi 3511 shll $17,%edx 3512 movl %ebx,48(%edi) 3513 shrl $15,%esi 3514 orl %esi,%ecx 3515 shrl $15,%ebp 3516 movl %eax,%esi 3517 shrl $15,%esi 3518 movl %ecx,52(%edi) 3519 shll $17,%eax 3520 orl %esi,%edx 3521 orl %ebp,%eax 3522 movl %edx,56(%edi) 3523 movl %eax,60(%edi) 3524 movl $3,%eax 3525 jmp .L013done 3526.align 16 3527.L0122nd256: 3528 movl 44(%esp),%esi 3529 movl %eax,48(%esi) 3530 movl %ebx,52(%esi) 3531 movl %ecx,56(%esi) 3532 movl %edx,60(%esi) 3533 xorl 32(%esi),%eax 3534 xorl 36(%esi),%ebx 3535 xorl 40(%esi),%ecx 3536 xorl 44(%esi),%edx 3537 movl 32(%edi),%esi 3538 movl %eax,(%esp) 3539 movl %ebx,4(%esp) 3540 movl %ecx,8(%esp) 3541 movl %edx,12(%esp) 3542 xorl %esi,%eax 3543 xorl 36(%edi),%ebx 3544 movzbl %ah,%esi 3545 movl 2052(%ebp,%esi,8),%edx 3546 movzbl %al,%esi 3547 xorl 4(%ebp,%esi,8),%edx 3548 shrl $16,%eax 3549 movzbl %bl,%esi 3550 movl (%ebp,%esi,8),%ecx 3551 movzbl %ah,%esi 3552 xorl (%ebp,%esi,8),%edx 3553 movzbl %bh,%esi 3554 xorl 4(%ebp,%esi,8),%ecx 3555 shrl $16,%ebx 3556 movzbl %al,%eax 3557 xorl 2048(%ebp,%eax,8),%edx 3558 movzbl %bh,%esi 3559 movl 12(%esp),%eax 3560 xorl %edx,%ecx 3561 rorl $8,%edx 3562 xorl 2048(%ebp,%esi,8),%ecx 3563 movzbl %bl,%esi 3564 movl 8(%esp),%ebx 3565 xorl %eax,%edx 3566 xorl 2052(%ebp,%esi,8),%ecx 3567 movl 40(%edi),%esi 3568 xorl %ecx,%edx 3569 movl %edx,12(%esp) 3570 xorl %ebx,%ecx 3571 movl %ecx,8(%esp) 3572 xorl %esi,%ecx 3573 xorl 44(%edi),%edx 3574 movzbl %ch,%esi 3575 movl 2052(%ebp,%esi,8),%ebx 3576 movzbl %cl,%esi 3577 xorl 4(%ebp,%esi,8),%ebx 3578 shrl $16,%ecx 3579 movzbl %dl,%esi 3580 movl (%ebp,%esi,8),%eax 3581 movzbl %ch,%esi 3582 xorl (%ebp,%esi,8),%ebx 3583 movzbl %dh,%esi 3584 xorl 4(%ebp,%esi,8),%eax 3585 shrl $16,%edx 3586 movzbl %cl,%ecx 3587 xorl 2048(%ebp,%ecx,8),%ebx 3588 movzbl %dh,%esi 3589 movl 4(%esp),%ecx 3590 xorl %ebx,%eax 3591 rorl $8,%ebx 3592 xorl 2048(%ebp,%esi,8),%eax 3593 movzbl %dl,%esi 3594 movl (%esp),%edx 3595 xorl %ecx,%ebx 3596 xorl 2052(%ebp,%esi,8),%eax 3597 movl 48(%edi),%esi 3598 xorl %eax,%ebx 3599 movl %ebx,4(%esp) 3600 xorl %edx,%eax 3601 movl %eax,(%esp) 3602 movl 8(%esp),%ecx 3603 movl 12(%esp),%edx 3604 movl 44(%esp),%edi 3605 leal 128(%edi),%edi 3606 movl %eax,-112(%edi) 3607 movl %ebx,-108(%edi) 3608 movl %ecx,-104(%edi) 3609 movl %edx,-100(%edi) 3610 movl %eax,%ebp 3611 shll $30,%eax 3612 movl %ebx,%esi 3613 shrl $2,%esi 3614 shll $30,%ebx 3615 orl %esi,%eax 3616 movl %ecx,%esi 3617 shll $30,%ecx 3618 movl %eax,-48(%edi) 3619 shrl $2,%esi 3620 orl %esi,%ebx 3621 shrl $2,%ebp 3622 movl %edx,%esi 3623 shrl $2,%esi 3624 movl %ebx,-44(%edi) 3625 shll $30,%edx 3626 orl %esi,%ecx 3627 orl %ebp,%edx 3628 movl %ecx,-40(%edi) 3629 movl %edx,-36(%edi) 3630 movl %eax,%ebp 3631 shll $30,%eax 3632 movl %ebx,%esi 3633 shrl $2,%esi 3634 shll $30,%ebx 3635 orl %esi,%eax 3636 movl %ecx,%esi 3637 shll $30,%ecx 3638 movl %eax,32(%edi) 3639 shrl $2,%esi 3640 orl %esi,%ebx 3641 shrl $2,%ebp 3642 movl %edx,%esi 3643 shrl $2,%esi 3644 movl %ebx,36(%edi) 3645 shll $30,%edx 3646 orl %esi,%ecx 3647 orl %ebp,%edx 3648 movl %ecx,40(%edi) 3649 movl %edx,44(%edi) 3650 movl %ebx,%ebp 3651 shll $19,%ebx 3652 movl %ecx,%esi 3653 shrl $13,%esi 3654 shll $19,%ecx 3655 orl %esi,%ebx 3656 movl %edx,%esi 3657 shll $19,%edx 3658 movl %ebx,128(%edi) 3659 shrl $13,%esi 3660 orl %esi,%ecx 3661 shrl $13,%ebp 3662 movl %eax,%esi 3663 shrl $13,%esi 3664 movl %ecx,132(%edi) 3665 shll $19,%eax 3666 orl %esi,%edx 3667 orl %ebp,%eax 3668 movl %edx,136(%edi) 3669 movl %eax,140(%edi) 3670 movl -96(%edi),%ebx 3671 movl -92(%edi),%ecx 3672 movl -88(%edi),%edx 3673 movl -84(%edi),%eax 3674 movl %ebx,%ebp 3675 shll $15,%ebx 3676 movl %ecx,%esi 3677 shrl $17,%esi 3678 shll $15,%ecx 3679 orl %esi,%ebx 3680 movl %edx,%esi 3681 shll $15,%edx 3682 movl %ebx,-96(%edi) 3683 shrl $17,%esi 3684 orl %esi,%ecx 3685 shrl $17,%ebp 3686 movl %eax,%esi 3687 shrl $17,%esi 3688 movl %ecx,-92(%edi) 3689 shll $15,%eax 3690 orl %esi,%edx 3691 orl %ebp,%eax 3692 movl %edx,-88(%edi) 3693 movl %eax,-84(%edi) 3694 movl %ebx,%ebp 3695 shll $15,%ebx 3696 movl %ecx,%esi 3697 shrl $17,%esi 3698 shll $15,%ecx 3699 orl %esi,%ebx 3700 movl %edx,%esi 3701 shll $15,%edx 3702 movl %ebx,-64(%edi) 3703 shrl $17,%esi 3704 orl %esi,%ecx 3705 shrl $17,%ebp 3706 movl %eax,%esi 3707 shrl $17,%esi 3708 movl %ecx,-60(%edi) 3709 shll $15,%eax 3710 orl %esi,%edx 3711 orl %ebp,%eax 3712 movl %edx,-56(%edi) 3713 movl %eax,-52(%edi) 3714 movl %ebx,%ebp 3715 shll $30,%ebx 3716 movl %ecx,%esi 3717 shrl $2,%esi 3718 shll $30,%ecx 3719 orl %esi,%ebx 3720 movl %edx,%esi 3721 shll $30,%edx 3722 movl %ebx,16(%edi) 3723 shrl $2,%esi 3724 orl %esi,%ecx 3725 shrl $2,%ebp 3726 movl %eax,%esi 3727 shrl $2,%esi 3728 movl %ecx,20(%edi) 3729 shll $30,%eax 3730 orl %esi,%edx 3731 orl %ebp,%eax 3732 movl %edx,24(%edi) 3733 movl %eax,28(%edi) 3734 movl %ecx,%ebp 3735 shll $2,%ecx 3736 movl %edx,%esi 3737 shrl $30,%esi 3738 shll $2,%edx 3739 orl %esi,%ecx 3740 movl %eax,%esi 3741 shll $2,%eax 3742 movl %ecx,80(%edi) 3743 shrl $30,%esi 3744 orl %esi,%edx 3745 shrl $30,%ebp 3746 movl %ebx,%esi 3747 shrl $30,%esi 3748 movl %edx,84(%edi) 3749 shll $2,%ebx 3750 orl %esi,%eax 3751 orl %ebp,%ebx 3752 movl %eax,88(%edi) 3753 movl %ebx,92(%edi) 3754 movl -80(%edi),%ecx 3755 movl -76(%edi),%edx 3756 movl -72(%edi),%eax 3757 movl -68(%edi),%ebx 3758 movl %ecx,%ebp 3759 shll $15,%ecx 3760 movl %edx,%esi 3761 shrl $17,%esi 3762 shll $15,%edx 3763 orl %esi,%ecx 3764 movl %eax,%esi 3765 shll $15,%eax 3766 movl %ecx,-80(%edi) 3767 shrl $17,%esi 3768 orl %esi,%edx 3769 shrl $17,%ebp 3770 movl %ebx,%esi 3771 shrl $17,%esi 3772 movl %edx,-76(%edi) 3773 shll $15,%ebx 3774 orl %esi,%eax 3775 orl %ebp,%ebx 3776 movl %eax,-72(%edi) 3777 movl %ebx,-68(%edi) 3778 movl %ecx,%ebp 3779 shll $30,%ecx 3780 movl %edx,%esi 3781 shrl $2,%esi 3782 shll $30,%edx 3783 orl %esi,%ecx 3784 movl %eax,%esi 3785 shll $30,%eax 3786 movl %ecx,-16(%edi) 3787 shrl $2,%esi 3788 orl %esi,%edx 3789 shrl $2,%ebp 3790 movl %ebx,%esi 3791 shrl $2,%esi 3792 movl %edx,-12(%edi) 3793 shll $30,%ebx 3794 orl %esi,%eax 3795 orl %ebp,%ebx 3796 movl %eax,-8(%edi) 3797 movl %ebx,-4(%edi) 3798 movl %edx,64(%edi) 3799 movl %eax,68(%edi) 3800 movl %ebx,72(%edi) 3801 movl %ecx,76(%edi) 3802 movl %edx,%ebp 3803 shll $17,%edx 3804 movl %eax,%esi 3805 shrl $15,%esi 3806 shll $17,%eax 3807 orl %esi,%edx 3808 movl %ebx,%esi 3809 shll $17,%ebx 3810 movl %edx,96(%edi) 3811 shrl $15,%esi 3812 orl %esi,%eax 3813 shrl $15,%ebp 3814 movl %ecx,%esi 3815 shrl $15,%esi 3816 movl %eax,100(%edi) 3817 shll $17,%ecx 3818 orl %esi,%ebx 3819 orl %ebp,%ecx 3820 movl %ebx,104(%edi) 3821 movl %ecx,108(%edi) 3822 movl -128(%edi),%edx 3823 movl -124(%edi),%eax 3824 movl -120(%edi),%ebx 3825 movl -116(%edi),%ecx 3826 movl %eax,%ebp 3827 shll $13,%eax 3828 movl %ebx,%esi 3829 shrl $19,%esi 3830 shll $13,%ebx 3831 orl %esi,%eax 3832 movl %ecx,%esi 3833 shll $13,%ecx 3834 movl %eax,-32(%edi) 3835 shrl $19,%esi 3836 orl %esi,%ebx 3837 shrl $19,%ebp 3838 movl %edx,%esi 3839 shrl $19,%esi 3840 movl %ebx,-28(%edi) 3841 shll $13,%edx 3842 orl %esi,%ecx 3843 orl %ebp,%edx 3844 movl %ecx,-24(%edi) 3845 movl %edx,-20(%edi) 3846 movl %eax,%ebp 3847 shll $15,%eax 3848 movl %ebx,%esi 3849 shrl $17,%esi 3850 shll $15,%ebx 3851 orl %esi,%eax 3852 movl %ecx,%esi 3853 shll $15,%ecx 3854 movl %eax,(%edi) 3855 shrl $17,%esi 3856 orl %esi,%ebx 3857 shrl $17,%ebp 3858 movl %edx,%esi 3859 shrl $17,%esi 3860 movl %ebx,4(%edi) 3861 shll $15,%edx 3862 orl %esi,%ecx 3863 orl %ebp,%edx 3864 movl %ecx,8(%edi) 3865 movl %edx,12(%edi) 3866 movl %eax,%ebp 3867 shll $17,%eax 3868 movl %ebx,%esi 3869 shrl $15,%esi 3870 shll $17,%ebx 3871 orl %esi,%eax 3872 movl %ecx,%esi 3873 shll $17,%ecx 3874 movl %eax,48(%edi) 3875 shrl $15,%esi 3876 orl %esi,%ebx 3877 shrl $15,%ebp 3878 movl %edx,%esi 3879 shrl $15,%esi 3880 movl %ebx,52(%edi) 3881 shll $17,%edx 3882 orl %esi,%ecx 3883 orl %ebp,%edx 3884 movl %ecx,56(%edi) 3885 movl %edx,60(%edi) 3886 movl %ebx,%ebp 3887 shll $2,%ebx 3888 movl %ecx,%esi 3889 shrl $30,%esi 3890 shll $2,%ecx 3891 orl %esi,%ebx 3892 movl %edx,%esi 3893 shll $2,%edx 3894 movl %ebx,112(%edi) 3895 shrl $30,%esi 3896 orl %esi,%ecx 3897 shrl $30,%ebp 3898 movl %eax,%esi 3899 shrl $30,%esi 3900 movl %ecx,116(%edi) 3901 shll $2,%eax 3902 orl %esi,%edx 3903 orl %ebp,%eax 3904 movl %edx,120(%edi) 3905 movl %eax,124(%edi) 3906 movl $4,%eax 3907.L013done: 3908 leal 144(%edi),%edx 3909 addl $16,%esp 3910 popl %edi 3911 popl %esi 3912 popl %ebx 3913 popl %ebp 3914 ret 3915.size Camellia_Ekeygen,.-.L_Camellia_Ekeygen_begin 3916.globl Camellia_set_key 3917.type Camellia_set_key,@function 3918.align 16 3919Camellia_set_key: 3920.L_Camellia_set_key_begin: 3921 pushl %ebx 3922 movl 8(%esp),%ecx 3923 movl 12(%esp),%ebx 3924 movl 16(%esp),%edx 3925 movl $-1,%eax 3926 testl %ecx,%ecx 3927 jz .L014done 3928 testl %edx,%edx 3929 jz .L014done 3930 movl $-2,%eax 3931 cmpl $256,%ebx 3932 je .L015arg_ok 3933 cmpl $192,%ebx 3934 je .L015arg_ok 3935 cmpl $128,%ebx 3936 jne .L014done 3937.align 4 3938.L015arg_ok: 3939 pushl %edx 3940 pushl %ecx 3941 pushl %ebx 3942 call .L_Camellia_Ekeygen_begin 3943 addl $12,%esp 3944 movl %eax,(%edx) 3945 xorl %eax,%eax 3946.align 4 3947.L014done: 3948 popl %ebx 3949 ret 3950.size Camellia_set_key,.-.L_Camellia_set_key_begin 3951.align 64 3952.LCamellia_SIGMA: 3953.long 2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0 3954.align 64 3955.LCamellia_SBOX: 3956.long 1886416896,1886388336 3957.long 2189591040,741081132 3958.long 741092352,3014852787 3959.long 3974949888,3233808576 3960.long 3014898432,3840147684 3961.long 656877312,1465319511 3962.long 3233857536,3941204202 3963.long 3857048832,2930639022 3964.long 3840205824,589496355 3965.long 2240120064,1802174571 3966.long 1465341696,1162149957 3967.long 892679424,2779054245 3968.long 3941263872,3991732461 3969.long 202116096,1330577487 3970.long 2930683392,488439837 3971.long 1094795520,2459041938 3972.long 589505280,2256928902 3973.long 4025478912,2947481775 3974.long 1802201856,2088501372 3975.long 2475922176,522125343 3976.long 1162167552,1044250686 3977.long 421075200,3705405660 3978.long 2779096320,1583218782 3979.long 555819264,185270283 3980.long 3991792896,2795896998 3981.long 235802112,960036921 3982.long 1330597632,3587506389 3983.long 1313754624,1566376029 3984.long 488447232,3654877401 3985.long 1701143808,1515847770 3986.long 2459079168,1364262993 3987.long 3183328512,1819017324 3988.long 2256963072,2341142667 3989.long 3099113472,2593783962 3990.long 2947526400,4227531003 3991.long 2408550144,2964324528 3992.long 2088532992,1953759348 3993.long 3958106880,724238379 3994.long 522133248,4042260720 3995.long 3469659648,2223243396 3996.long 1044266496,3755933919 3997.long 808464384,3419078859 3998.long 3705461760,875823156 3999.long 1600085760,1987444854 4000.long 1583242752,1835860077 4001.long 3318072576,2846425257 4002.long 185273088,3520135377 4003.long 437918208,67371012 4004.long 2795939328,336855060 4005.long 3789676800,976879674 4006.long 960051456,3739091166 4007.long 3402287616,286326801 4008.long 3587560704,842137650 4009.long 1195853568,2627469468 4010.long 1566399744,1397948499 4011.long 1027423488,4075946226 4012.long 3654932736,4278059262 4013.long 16843008,3486449871 4014.long 1515870720,3284336835 4015.long 3604403712,2054815866 4016.long 1364283648,606339108 4017.long 1448498688,3907518696 4018.long 1819044864,1616904288 4019.long 1296911616,1768489065 4020.long 2341178112,2863268010 4021.long 218959104,2694840480 4022.long 2593823232,2711683233 4023.long 1717986816,1650589794 4024.long 4227595008,1414791252 4025.long 3435973632,505282590 4026.long 2964369408,3772776672 4027.long 757935360,1684275300 4028.long 1953788928,269484048 4029.long 303174144,0 4030.long 724249344,2745368739 4031.long 538976256,1970602101 4032.long 4042321920,2324299914 4033.long 2981212416,3873833190 4034.long 2223277056,151584777 4035.long 2576980224,3722248413 4036.long 3755990784,2273771655 4037.long 1280068608,2206400643 4038.long 3419130624,3452764365 4039.long 3267543552,2425356432 4040.long 875836416,1936916595 4041.long 2122219008,4143317238 4042.long 1987474944,2644312221 4043.long 84215040,3216965823 4044.long 1835887872,1381105746 4045.long 3082270464,3638034648 4046.long 2846468352,3368550600 4047.long 825307392,3334865094 4048.long 3520188672,2172715137 4049.long 387389184,1869545583 4050.long 67372032,320012307 4051.long 3621246720,1667432547 4052.long 336860160,3924361449 4053.long 1482184704,2812739751 4054.long 976894464,2677997727 4055.long 1633771776,3166437564 4056.long 3739147776,690552873 4057.long 454761216,4193845497 4058.long 286331136,791609391 4059.long 471604224,3031695540 4060.long 842150400,2021130360 4061.long 252645120,101056518 4062.long 2627509248,3890675943 4063.long 370546176,1903231089 4064.long 1397969664,3570663636 4065.long 404232192,2880110763 4066.long 4076007936,2290614408 4067.long 572662272,2374828173 4068.long 4278124032,1920073842 4069.long 1145324544,3115909305 4070.long 3486502656,4177002744 4071.long 2998055424,2896953516 4072.long 3284386560,909508662 4073.long 3048584448,707395626 4074.long 2054846976,1010565180 4075.long 2442236160,4059103473 4076.long 606348288,1077936192 4077.long 134744064,3553820883 4078.long 3907577856,3149594811 4079.long 2829625344,1128464451 4080.long 1616928768,353697813 4081.long 4244438016,2913796269 4082.long 1768515840,2004287607 4083.long 1347440640,2155872384 4084.long 2863311360,2189557890 4085.long 3503345664,3974889708 4086.long 2694881280,656867367 4087.long 2105376000,3856990437 4088.long 2711724288,2240086149 4089.long 2307492096,892665909 4090.long 1650614784,202113036 4091.long 2543294208,1094778945 4092.long 1414812672,4025417967 4093.long 1532713728,2475884691 4094.long 505290240,421068825 4095.long 2509608192,555810849 4096.long 3772833792,235798542 4097.long 4294967040,1313734734 4098.long 1684300800,1701118053 4099.long 3537031680,3183280317 4100.long 269488128,3099066552 4101.long 3301229568,2408513679 4102.long 0,3958046955 4103.long 1212696576,3469607118 4104.long 2745410304,808452144 4105.long 4160222976,1600061535 4106.long 1970631936,3318022341 4107.long 3688618752,437911578 4108.long 2324335104,3789619425 4109.long 50529024,3402236106 4110.long 3873891840,1195835463 4111.long 3671775744,1027407933 4112.long 151587072,16842753 4113.long 1061109504,3604349142 4114.long 3722304768,1448476758 4115.long 2492765184,1296891981 4116.long 2273806080,218955789 4117.long 1549556736,1717960806 4118.long 2206434048,3435921612 4119.long 33686016,757923885 4120.long 3452816640,303169554 4121.long 1246382592,538968096 4122.long 2425393152,2981167281 4123.long 858993408,2576941209 4124.long 1936945920,1280049228 4125.long 1734829824,3267494082 4126.long 4143379968,2122186878 4127.long 4092850944,84213765 4128.long 2644352256,3082223799 4129.long 2139062016,825294897 4130.long 3217014528,387383319 4131.long 3806519808,3621191895 4132.long 1381126656,1482162264 4133.long 2610666240,1633747041 4134.long 3638089728,454754331 4135.long 640034304,471597084 4136.long 3368601600,252641295 4137.long 926365440,370540566 4138.long 3334915584,404226072 4139.long 993737472,572653602 4140.long 2172748032,1145307204 4141.long 2526451200,2998010034 4142.long 1869573888,3048538293 4143.long 1263225600,2442199185 4144.long 320017152,134742024 4145.long 3200171520,2829582504 4146.long 1667457792,4244373756 4147.long 774778368,1347420240 4148.long 3924420864,3503292624 4149.long 2038003968,2105344125 4150.long 2812782336,2307457161 4151.long 2358021120,2543255703 4152.long 2678038272,1532690523 4153.long 1852730880,2509570197 4154.long 3166485504,4294902015 4155.long 2391707136,3536978130 4156.long 690563328,3301179588 4157.long 4126536960,1212678216 4158.long 4193908992,4160159991 4159.long 3065427456,3688562907 4160.long 791621376,50528259 4161.long 4261281024,3671720154 4162.long 3031741440,1061093439 4163.long 1499027712,2492727444 4164.long 2021160960,1549533276 4165.long 2560137216,33685506 4166.long 101058048,1246363722 4167.long 1785358848,858980403 4168.long 3890734848,1734803559 4169.long 1179010560,4092788979 4170.long 1903259904,2139029631 4171.long 3132799488,3806462178 4172.long 3570717696,2610626715 4173.long 623191296,640024614 4174.long 2880154368,926351415 4175.long 1111638528,993722427 4176.long 2290649088,2526412950 4177.long 2728567296,1263206475 4178.long 2374864128,3200123070 4179.long 4210752000,774766638 4180.long 1920102912,2037973113 4181.long 117901056,2357985420 4182.long 3115956480,1852702830 4183.long 1431655680,2391670926 4184.long 4177065984,4126474485 4185.long 4008635904,3065381046 4186.long 2896997376,4261216509 4187.long 168430080,1499005017 4188.long 909522432,2560098456 4189.long 1229539584,1785331818 4190.long 707406336,1178992710 4191.long 1751672832,3132752058 4192.long 1010580480,623181861 4193.long 943208448,1111621698 4194.long 4059164928,2728525986 4195.long 2762253312,4210688250 4196.long 1077952512,117899271 4197.long 673720320,1431634005 4198.long 3553874688,4008575214 4199.long 2071689984,168427530 4200.long 3149642496,1229520969 4201.long 3385444608,1751646312 4202.long 1128481536,943194168 4203.long 3250700544,2762211492 4204.long 353703168,673710120 4205.long 3823362816,2071658619 4206.long 2913840384,3385393353 4207.long 4109693952,3250651329 4208.long 2004317952,3823304931 4209.long 3351758592,4109631732 4210.long 2155905024,3351707847 4211.long 2661195264,2661154974 4212.long 14737632,939538488 4213.long 328965,1090535745 4214.long 5789784,369104406 4215.long 14277081,1979741814 4216.long 6776679,3640711641 4217.long 5131854,2466288531 4218.long 8487297,1610637408 4219.long 13355979,4060148466 4220.long 13224393,1912631922 4221.long 723723,3254829762 4222.long 11447982,2868947883 4223.long 6974058,2583730842 4224.long 14013909,1962964341 4225.long 1579032,100664838 4226.long 6118749,1459640151 4227.long 8553090,2684395680 4228.long 4605510,2432733585 4229.long 14671839,4144035831 4230.long 14079702,3036722613 4231.long 2565927,3372272073 4232.long 9079434,2717950626 4233.long 3289650,2348846220 4234.long 4934475,3523269330 4235.long 4342338,2415956112 4236.long 14408667,4127258358 4237.long 1842204,117442311 4238.long 10395294,2801837991 4239.long 10263708,654321447 4240.long 3815994,2382401166 4241.long 13290186,2986390194 4242.long 2434341,1224755529 4243.long 8092539,3724599006 4244.long 855309,1124090691 4245.long 7434609,1543527516 4246.long 6250335,3607156695 4247.long 2039583,3338717127 4248.long 16316664,1040203326 4249.long 14145495,4110480885 4250.long 4079166,2399178639 4251.long 10329501,1728079719 4252.long 8158332,520101663 4253.long 6316128,402659352 4254.long 12171705,1845522030 4255.long 12500670,2936057775 4256.long 12369084,788541231 4257.long 9145227,3791708898 4258.long 1447446,2231403909 4259.long 3421236,218107149 4260.long 5066061,1392530259 4261.long 12829635,4026593520 4262.long 7500402,2617285788 4263.long 9803157,1694524773 4264.long 11250603,3925928682 4265.long 9342606,2734728099 4266.long 12237498,2919280302 4267.long 8026746,2650840734 4268.long 11776947,3959483628 4269.long 131586,2147516544 4270.long 11842740,754986285 4271.long 11382189,1795189611 4272.long 10658466,2818615464 4273.long 11316396,721431339 4274.long 14211288,905983542 4275.long 10132122,2785060518 4276.long 1513239,3305162181 4277.long 1710618,2248181382 4278.long 3487029,1291865421 4279.long 13421772,855651123 4280.long 16250871,4244700669 4281.long 10066329,1711302246 4282.long 6381921,1476417624 4283.long 5921370,2516620950 4284.long 15263976,973093434 4285.long 2368548,150997257 4286.long 5658198,2499843477 4287.long 4210752,268439568 4288.long 14803425,2013296760 4289.long 6513507,3623934168 4290.long 592137,1107313218 4291.long 3355443,3422604492 4292.long 12566463,4009816047 4293.long 10000536,637543974 4294.long 9934743,3842041317 4295.long 8750469,1627414881 4296.long 6842472,436214298 4297.long 16579836,1056980799 4298.long 15527148,989870907 4299.long 657930,2181071490 4300.long 14342874,3053500086 4301.long 7303023,3674266587 4302.long 5460819,3556824276 4303.long 6447714,2550175896 4304.long 10724259,3892373736 4305.long 3026478,2332068747 4306.long 526344,33554946 4307.long 11513775,3942706155 4308.long 2631720,167774730 4309.long 11579568,738208812 4310.long 7631988,486546717 4311.long 12763842,2952835248 4312.long 12434877,1862299503 4313.long 3552822,2365623693 4314.long 2236962,2281736328 4315.long 3684408,234884622 4316.long 6579300,419436825 4317.long 1973790,2264958855 4318.long 3750201,1308642894 4319.long 2894892,184552203 4320.long 10921638,2835392937 4321.long 3158064,201329676 4322.long 15066597,2030074233 4323.long 4473924,285217041 4324.long 16645629,2130739071 4325.long 8947848,570434082 4326.long 10461087,3875596263 4327.long 6645093,1493195097 4328.long 8882055,3774931425 4329.long 7039851,3657489114 4330.long 16053492,1023425853 4331.long 2302755,3355494600 4332.long 4737096,301994514 4333.long 1052688,67109892 4334.long 13750737,1946186868 4335.long 5329233,1409307732 4336.long 12632256,805318704 4337.long 16382457,2113961598 4338.long 13816530,3019945140 4339.long 10526880,671098920 4340.long 5592405,1426085205 4341.long 10592673,1744857192 4342.long 4276545,1342197840 4343.long 16448250,3187719870 4344.long 4408131,3489714384 4345.long 1250067,3288384708 4346.long 12895428,822096177 4347.long 3092271,3405827019 4348.long 11053224,704653866 4349.long 11974326,2902502829 4350.long 3947580,251662095 4351.long 2829099,3389049546 4352.long 12698049,1879076976 4353.long 16777215,4278255615 4354.long 13158600,838873650 4355.long 10855845,1761634665 4356.long 2105376,134219784 4357.long 9013641,1644192354 4358.long 0,0 4359.long 9474192,603989028 4360.long 4671303,3506491857 4361.long 15724527,4211145723 4362.long 15395562,3120609978 4363.long 12040119,3976261101 4364.long 1381653,1157645637 4365.long 394758,2164294017 4366.long 13487565,1929409395 4367.long 11908533,1828744557 4368.long 1184274,2214626436 4369.long 8289918,2667618207 4370.long 12303291,3993038574 4371.long 2697513,1241533002 4372.long 986895,3271607235 4373.long 12105912,771763758 4374.long 460551,3238052289 4375.long 263172,16777473 4376.long 10197915,3858818790 4377.long 9737364,620766501 4378.long 2171169,1207978056 4379.long 6710886,2566953369 4380.long 15132390,3103832505 4381.long 13553358,3003167667 4382.long 15592941,2063629179 4383.long 15198183,4177590777 4384.long 3881787,3456159438 4385.long 16711422,3204497343 4386.long 8355711,3741376479 4387.long 12961221,1895854449 4388.long 10790052,687876393 4389.long 3618615,3439381965 4390.long 11645361,1811967084 4391.long 5000268,318771987 4392.long 9539985,1677747300 4393.long 7237230,2600508315 4394.long 9276813,1660969827 4395.long 7763574,2634063261 4396.long 197379,3221274816 4397.long 2960685,1258310475 4398.long 14606046,3070277559 4399.long 9868950,2768283045 4400.long 2500134,2298513801 4401.long 8224125,1593859935 4402.long 13027014,2969612721 4403.long 6052956,385881879 4404.long 13882323,4093703412 4405.long 15921906,3154164924 4406.long 5197647,3540046803 4407.long 1644825,1174423110 4408.long 4144959,3472936911 4409.long 14474460,922761015 4410.long 7960953,1577082462 4411.long 1907997,1191200583 4412.long 5395026,2483066004 4413.long 15461355,4194368250 4414.long 15987699,4227923196 4415.long 7171437,1526750043 4416.long 6184542,2533398423 4417.long 16514043,4261478142 4418.long 6908265,1509972570 4419.long 11711154,2885725356 4420.long 15790320,1006648380 4421.long 3223857,1275087948 4422.long 789516,50332419 4423.long 13948116,889206069 4424.long 13619151,4076925939 4425.long 9211020,587211555 4426.long 14869218,3087055032 4427.long 7697781,1560304989 4428.long 11119017,1778412138 4429.long 4868682,2449511058 4430.long 5723991,3573601749 4431.long 8684676,553656609 4432.long 1118481,1140868164 4433.long 4539717,1358975313 4434.long 1776411,3321939654 4435.long 16119285,2097184125 4436.long 15000804,956315961 4437.long 921102,2197848963 4438.long 7566195,3691044060 4439.long 11184810,2852170410 4440.long 15856113,2080406652 4441.long 14540253,1996519287 4442.long 5855577,1442862678 4443.long 1315860,83887365 4444.long 7105644,452991771 4445.long 9605778,2751505572 4446.long 5526612,352326933 4447.long 13684944,872428596 4448.long 7895160,503324190 4449.long 7368816,469769244 4450.long 14935011,4160813304 4451.long 4802889,1375752786 4452.long 8421504,536879136 4453.long 5263440,335549460 4454.long 10987431,3909151209 4455.long 16185078,3170942397 4456.long 7829367,3707821533 4457.long 9671571,3825263844 4458.long 8816262,2701173153 4459.long 8618883,3758153952 4460.long 2763306,2315291274 4461.long 13092807,4043370993 4462.long 5987163,3590379222 4463.long 15329769,2046851706 4464.long 15658734,3137387451 4465.long 9408399,3808486371 4466.long 65793,1073758272 4467.long 4013373,1325420367 4468.globl Camellia_cbc_encrypt 4469.type Camellia_cbc_encrypt,@function 4470.align 16 4471Camellia_cbc_encrypt: 4472.L_Camellia_cbc_encrypt_begin: 4473 pushl %ebp 4474 pushl %ebx 4475 pushl %esi 4476 pushl %edi 4477 movl 28(%esp),%ecx 4478 cmpl $0,%ecx 4479 je .L016enc_out 4480 pushfl 4481 cld 4482 movl 24(%esp),%eax 4483 movl 28(%esp),%ebx 4484 movl 36(%esp),%edx 4485 movl 40(%esp),%ebp 4486 leal -64(%esp),%esi 4487 andl $-64,%esi 4488 leal -127(%edx),%edi 4489 subl %esi,%edi 4490 negl %edi 4491 andl $960,%edi 4492 subl %edi,%esi 4493 movl 44(%esp),%edi 4494 xchgl %esi,%esp 4495 addl $4,%esp 4496 movl %esi,20(%esp) 4497 movl %eax,24(%esp) 4498 movl %ebx,28(%esp) 4499 movl %ecx,32(%esp) 4500 movl %edx,36(%esp) 4501 movl %ebp,40(%esp) 4502 call .L017pic_point 4503.L017pic_point: 4504 popl %ebp 4505 leal .LCamellia_SBOX-.L017pic_point(%ebp),%ebp 4506 movl $32,%esi 4507.align 4 4508.L018prefetch_sbox: 4509 movl (%ebp),%eax 4510 movl 32(%ebp),%ebx 4511 movl 64(%ebp),%ecx 4512 movl 96(%ebp),%edx 4513 leal 128(%ebp),%ebp 4514 decl %esi 4515 jnz .L018prefetch_sbox 4516 movl 36(%esp),%eax 4517 subl $4096,%ebp 4518 movl 24(%esp),%esi 4519 movl 272(%eax),%edx 4520 cmpl $0,%edi 4521 je .L019DECRYPT 4522 movl 32(%esp),%ecx 4523 movl 40(%esp),%edi 4524 shll $6,%edx 4525 leal (%eax,%edx,1),%edx 4526 movl %edx,16(%esp) 4527 testl $4294967280,%ecx 4528 jz .L020enc_tail 4529 movl (%edi),%eax 4530 movl 4(%edi),%ebx 4531.align 4 4532.L021enc_loop: 4533 movl 8(%edi),%ecx 4534 movl 12(%edi),%edx 4535 xorl (%esi),%eax 4536 xorl 4(%esi),%ebx 4537 xorl 8(%esi),%ecx 4538 bswap %eax 4539 xorl 12(%esi),%edx 4540 bswap %ebx 4541 movl 36(%esp),%edi 4542 bswap %ecx 4543 bswap %edx 4544 call _x86_Camellia_encrypt 4545 movl 24(%esp),%esi 4546 movl 28(%esp),%edi 4547 bswap %eax 4548 bswap %ebx 4549 bswap %ecx 4550 movl %eax,(%edi) 4551 bswap %edx 4552 movl %ebx,4(%edi) 4553 movl %ecx,8(%edi) 4554 movl %edx,12(%edi) 4555 movl 32(%esp),%ecx 4556 leal 16(%esi),%esi 4557 movl %esi,24(%esp) 4558 leal 16(%edi),%edx 4559 movl %edx,28(%esp) 4560 subl $16,%ecx 4561 testl $4294967280,%ecx 4562 movl %ecx,32(%esp) 4563 jnz .L021enc_loop 4564 testl $15,%ecx 4565 jnz .L020enc_tail 4566 movl 40(%esp),%esi 4567 movl 8(%edi),%ecx 4568 movl 12(%edi),%edx 4569 movl %eax,(%esi) 4570 movl %ebx,4(%esi) 4571 movl %ecx,8(%esi) 4572 movl %edx,12(%esi) 4573 movl 20(%esp),%esp 4574 popfl 4575.L016enc_out: 4576 popl %edi 4577 popl %esi 4578 popl %ebx 4579 popl %ebp 4580 ret 4581 pushfl 4582.align 4 4583.L020enc_tail: 4584 movl %edi,%eax 4585 movl 28(%esp),%edi 4586 pushl %eax 4587 movl $16,%ebx 4588 subl %ecx,%ebx 4589 cmpl %esi,%edi 4590 je .L022enc_in_place 4591.align 4 4592.long 2767451785 4593 jmp .L023enc_skip_in_place 4594.L022enc_in_place: 4595 leal (%edi,%ecx,1),%edi 4596.L023enc_skip_in_place: 4597 movl %ebx,%ecx 4598 xorl %eax,%eax 4599.align 4 4600.long 2868115081 4601 popl %edi 4602 movl 28(%esp),%esi 4603 movl (%edi),%eax 4604 movl 4(%edi),%ebx 4605 movl $16,32(%esp) 4606 jmp .L021enc_loop 4607.align 16 4608.L019DECRYPT: 4609 shll $6,%edx 4610 leal (%eax,%edx,1),%edx 4611 movl %eax,16(%esp) 4612 movl %edx,36(%esp) 4613 cmpl 28(%esp),%esi 4614 je .L024dec_in_place 4615 movl 40(%esp),%edi 4616 movl %edi,44(%esp) 4617.align 4 4618.L025dec_loop: 4619 movl (%esi),%eax 4620 movl 4(%esi),%ebx 4621 movl 8(%esi),%ecx 4622 bswap %eax 4623 movl 12(%esi),%edx 4624 bswap %ebx 4625 movl 36(%esp),%edi 4626 bswap %ecx 4627 bswap %edx 4628 call _x86_Camellia_decrypt 4629 movl 44(%esp),%edi 4630 movl 32(%esp),%esi 4631 bswap %eax 4632 bswap %ebx 4633 bswap %ecx 4634 xorl (%edi),%eax 4635 bswap %edx 4636 xorl 4(%edi),%ebx 4637 xorl 8(%edi),%ecx 4638 xorl 12(%edi),%edx 4639 subl $16,%esi 4640 jc .L026dec_partial 4641 movl %esi,32(%esp) 4642 movl 24(%esp),%esi 4643 movl 28(%esp),%edi 4644 movl %eax,(%edi) 4645 movl %ebx,4(%edi) 4646 movl %ecx,8(%edi) 4647 movl %edx,12(%edi) 4648 movl %esi,44(%esp) 4649 leal 16(%esi),%esi 4650 movl %esi,24(%esp) 4651 leal 16(%edi),%edi 4652 movl %edi,28(%esp) 4653 jnz .L025dec_loop 4654 movl 44(%esp),%edi 4655.L027dec_end: 4656 movl 40(%esp),%esi 4657 movl (%edi),%eax 4658 movl 4(%edi),%ebx 4659 movl 8(%edi),%ecx 4660 movl 12(%edi),%edx 4661 movl %eax,(%esi) 4662 movl %ebx,4(%esi) 4663 movl %ecx,8(%esi) 4664 movl %edx,12(%esi) 4665 jmp .L028dec_out 4666.align 4 4667.L026dec_partial: 4668 leal 44(%esp),%edi 4669 movl %eax,(%edi) 4670 movl %ebx,4(%edi) 4671 movl %ecx,8(%edi) 4672 movl %edx,12(%edi) 4673 leal 16(%esi),%ecx 4674 movl %edi,%esi 4675 movl 28(%esp),%edi 4676.long 2767451785 4677 movl 24(%esp),%edi 4678 jmp .L027dec_end 4679.align 4 4680.L024dec_in_place: 4681.L029dec_in_place_loop: 4682 leal 44(%esp),%edi 4683 movl (%esi),%eax 4684 movl 4(%esi),%ebx 4685 movl 8(%esi),%ecx 4686 movl 12(%esi),%edx 4687 movl %eax,(%edi) 4688 movl %ebx,4(%edi) 4689 movl %ecx,8(%edi) 4690 bswap %eax 4691 movl %edx,12(%edi) 4692 bswap %ebx 4693 movl 36(%esp),%edi 4694 bswap %ecx 4695 bswap %edx 4696 call _x86_Camellia_decrypt 4697 movl 40(%esp),%edi 4698 movl 28(%esp),%esi 4699 bswap %eax 4700 bswap %ebx 4701 bswap %ecx 4702 xorl (%edi),%eax 4703 bswap %edx 4704 xorl 4(%edi),%ebx 4705 xorl 8(%edi),%ecx 4706 xorl 12(%edi),%edx 4707 movl %eax,(%esi) 4708 movl %ebx,4(%esi) 4709 movl %ecx,8(%esi) 4710 movl %edx,12(%esi) 4711 leal 16(%esi),%esi 4712 movl %esi,28(%esp) 4713 leal 44(%esp),%esi 4714 movl (%esi),%eax 4715 movl 4(%esi),%ebx 4716 movl 8(%esi),%ecx 4717 movl 12(%esi),%edx 4718 movl %eax,(%edi) 4719 movl %ebx,4(%edi) 4720 movl %ecx,8(%edi) 4721 movl %edx,12(%edi) 4722 movl 24(%esp),%esi 4723 leal 16(%esi),%esi 4724 movl %esi,24(%esp) 4725 movl 32(%esp),%ecx 4726 subl $16,%ecx 4727 jc .L030dec_in_place_partial 4728 movl %ecx,32(%esp) 4729 jnz .L029dec_in_place_loop 4730 jmp .L028dec_out 4731.align 4 4732.L030dec_in_place_partial: 4733 movl 28(%esp),%edi 4734 leal 44(%esp),%esi 4735 leal (%edi,%ecx,1),%edi 4736 leal 16(%esi,%ecx,1),%esi 4737 negl %ecx 4738.long 2767451785 4739.align 4 4740.L028dec_out: 4741 movl 20(%esp),%esp 4742 popfl 4743 popl %edi 4744 popl %esi 4745 popl %ebx 4746 popl %ebp 4747 ret 4748.size Camellia_cbc_encrypt,.-.L_Camellia_cbc_encrypt_begin 4749.byte 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54 4750.byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 4751.byte 115,108,46,111,114,103,62,0 4752#endif 4753