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