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