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