deps/openssl/asm/x86-macosx-gas/camellia/cmll-x86.s

Summary

Maintainability
Test Coverage
.file    "cmll-586.s"
.text
.globl    _Camellia_EncryptBlock_Rounds
.align    4
_Camellia_EncryptBlock_Rounds:
L_Camellia_EncryptBlock_Rounds_begin:
    pushl    %ebp
    pushl    %ebx
    pushl    %esi
    pushl    %edi
    movl    20(%esp),%eax
    movl    24(%esp),%esi
    movl    28(%esp),%edi
    movl    %esp,%ebx
    subl    $28,%esp
    andl    $-64,%esp
    leal    -127(%edi),%ecx
    subl    %esp,%ecx
    negl    %ecx
    andl    $960,%ecx
    subl    %ecx,%esp
    addl    $4,%esp
    shll    $6,%eax
    leal    (%edi,%eax,1),%eax
    movl    %ebx,20(%esp)
    movl    %eax,16(%esp)
    call    L000pic_point
L000pic_point:
    popl    %ebp
    leal    LCamellia_SBOX-L000pic_point(%ebp),%ebp
    movl    (%esi),%eax
    movl    4(%esi),%ebx
    movl    8(%esi),%ecx
    bswap    %eax
    movl    12(%esi),%edx
    bswap    %ebx
    bswap    %ecx
    bswap    %edx
    call    __x86_Camellia_encrypt
    movl    20(%esp),%esp
    bswap    %eax
    movl    32(%esp),%esi
    bswap    %ebx
    bswap    %ecx
    bswap    %edx
    movl    %eax,(%esi)
    movl    %ebx,4(%esi)
    movl    %ecx,8(%esi)
    movl    %edx,12(%esi)
    popl    %edi
    popl    %esi
    popl    %ebx
    popl    %ebp
    ret
.globl    _Camellia_EncryptBlock
.align    4
_Camellia_EncryptBlock:
L_Camellia_EncryptBlock_begin:
    movl    $128,%eax
    subl    4(%esp),%eax
    movl    $3,%eax
    adcl    $0,%eax
    movl    %eax,4(%esp)
    jmp    L_Camellia_EncryptBlock_Rounds_begin
.globl    _Camellia_encrypt
.align    4
_Camellia_encrypt:
L_Camellia_encrypt_begin:
    pushl    %ebp
    pushl    %ebx
    pushl    %esi
    pushl    %edi
    movl    20(%esp),%esi
    movl    28(%esp),%edi
    movl    %esp,%ebx
    subl    $28,%esp
    andl    $-64,%esp
    movl    272(%edi),%eax
    leal    -127(%edi),%ecx
    subl    %esp,%ecx
    negl    %ecx
    andl    $960,%ecx
    subl    %ecx,%esp
    addl    $4,%esp
    shll    $6,%eax
    leal    (%edi,%eax,1),%eax
    movl    %ebx,20(%esp)
    movl    %eax,16(%esp)
    call    L001pic_point
L001pic_point:
    popl    %ebp
    leal    LCamellia_SBOX-L001pic_point(%ebp),%ebp
    movl    (%esi),%eax
    movl    4(%esi),%ebx
    movl    8(%esi),%ecx
    bswap    %eax
    movl    12(%esi),%edx
    bswap    %ebx
    bswap    %ecx
    bswap    %edx
    call    __x86_Camellia_encrypt
    movl    20(%esp),%esp
    bswap    %eax
    movl    24(%esp),%esi
    bswap    %ebx
    bswap    %ecx
    bswap    %edx
    movl    %eax,(%esi)
    movl    %ebx,4(%esi)
    movl    %ecx,8(%esi)
    movl    %edx,12(%esi)
    popl    %edi
    popl    %esi
    popl    %ebx
    popl    %ebp
    ret
.align    4
__x86_Camellia_encrypt:
    xorl    (%edi),%eax
    xorl    4(%edi),%ebx
    xorl    8(%edi),%ecx
    xorl    12(%edi),%edx
    movl    16(%edi),%esi
    movl    %eax,4(%esp)
    movl    %ebx,8(%esp)
    movl    %ecx,12(%esp)
    movl    %edx,16(%esp)
.align    4,0x90
L002loop:
    xorl    %esi,%eax
    xorl    20(%edi),%ebx
    movzbl    %ah,%esi
    movl    2052(%ebp,%esi,8),%edx
    movzbl    %al,%esi
    xorl    4(%ebp,%esi,8),%edx
    shrl    $16,%eax
    movzbl    %bl,%esi
    movl    (%ebp,%esi,8),%ecx
    movzbl    %ah,%esi
    xorl    (%ebp,%esi,8),%edx
    movzbl    %bh,%esi
    xorl    4(%ebp,%esi,8),%ecx
    shrl    $16,%ebx
    movzbl    %al,%eax
    xorl    2048(%ebp,%eax,8),%edx
    movzbl    %bh,%esi
    movl    16(%esp),%eax
    xorl    %edx,%ecx
    rorl    $8,%edx
    xorl    2048(%ebp,%esi,8),%ecx
    movzbl    %bl,%esi
    movl    12(%esp),%ebx
    xorl    %eax,%edx
    xorl    2052(%ebp,%esi,8),%ecx
    movl    24(%edi),%esi
    xorl    %ecx,%edx
    movl    %edx,16(%esp)
    xorl    %ebx,%ecx
    movl    %ecx,12(%esp)
    xorl    %esi,%ecx
    xorl    28(%edi),%edx
    movzbl    %ch,%esi
    movl    2052(%ebp,%esi,8),%ebx
    movzbl    %cl,%esi
    xorl    4(%ebp,%esi,8),%ebx
    shrl    $16,%ecx
    movzbl    %dl,%esi
    movl    (%ebp,%esi,8),%eax
    movzbl    %ch,%esi
    xorl    (%ebp,%esi,8),%ebx
    movzbl    %dh,%esi
    xorl    4(%ebp,%esi,8),%eax
    shrl    $16,%edx
    movzbl    %cl,%ecx
    xorl    2048(%ebp,%ecx,8),%ebx
    movzbl    %dh,%esi
    movl    8(%esp),%ecx
    xorl    %ebx,%eax
    rorl    $8,%ebx
    xorl    2048(%ebp,%esi,8),%eax
    movzbl    %dl,%esi
    movl    4(%esp),%edx
    xorl    %ecx,%ebx
    xorl    2052(%ebp,%esi,8),%eax
    movl    32(%edi),%esi
    xorl    %eax,%ebx
    movl    %ebx,8(%esp)
    xorl    %edx,%eax
    movl    %eax,4(%esp)
    xorl    %esi,%eax
    xorl    36(%edi),%ebx
    movzbl    %ah,%esi
    movl    2052(%ebp,%esi,8),%edx
    movzbl    %al,%esi
    xorl    4(%ebp,%esi,8),%edx
    shrl    $16,%eax
    movzbl    %bl,%esi
    movl    (%ebp,%esi,8),%ecx
    movzbl    %ah,%esi
    xorl    (%ebp,%esi,8),%edx
    movzbl    %bh,%esi
    xorl    4(%ebp,%esi,8),%ecx
    shrl    $16,%ebx
    movzbl    %al,%eax
    xorl    2048(%ebp,%eax,8),%edx
    movzbl    %bh,%esi
    movl    16(%esp),%eax
    xorl    %edx,%ecx
    rorl    $8,%edx
    xorl    2048(%ebp,%esi,8),%ecx
    movzbl    %bl,%esi
    movl    12(%esp),%ebx
    xorl    %eax,%edx
    xorl    2052(%ebp,%esi,8),%ecx
    movl    40(%edi),%esi
    xorl    %ecx,%edx
    movl    %edx,16(%esp)
    xorl    %ebx,%ecx
    movl    %ecx,12(%esp)
    xorl    %esi,%ecx
    xorl    44(%edi),%edx
    movzbl    %ch,%esi
    movl    2052(%ebp,%esi,8),%ebx
    movzbl    %cl,%esi
    xorl    4(%ebp,%esi,8),%ebx
    shrl    $16,%ecx
    movzbl    %dl,%esi
    movl    (%ebp,%esi,8),%eax
    movzbl    %ch,%esi
    xorl    (%ebp,%esi,8),%ebx
    movzbl    %dh,%esi
    xorl    4(%ebp,%esi,8),%eax
    shrl    $16,%edx
    movzbl    %cl,%ecx
    xorl    2048(%ebp,%ecx,8),%ebx
    movzbl    %dh,%esi
    movl    8(%esp),%ecx
    xorl    %ebx,%eax
    rorl    $8,%ebx
    xorl    2048(%ebp,%esi,8),%eax
    movzbl    %dl,%esi
    movl    4(%esp),%edx
    xorl    %ecx,%ebx
    xorl    2052(%ebp,%esi,8),%eax
    movl    48(%edi),%esi
    xorl    %eax,%ebx
    movl    %ebx,8(%esp)
    xorl    %edx,%eax
    movl    %eax,4(%esp)
    xorl    %esi,%eax
    xorl    52(%edi),%ebx
    movzbl    %ah,%esi
    movl    2052(%ebp,%esi,8),%edx
    movzbl    %al,%esi
    xorl    4(%ebp,%esi,8),%edx
    shrl    $16,%eax
    movzbl    %bl,%esi
    movl    (%ebp,%esi,8),%ecx
    movzbl    %ah,%esi
    xorl    (%ebp,%esi,8),%edx
    movzbl    %bh,%esi
    xorl    4(%ebp,%esi,8),%ecx
    shrl    $16,%ebx
    movzbl    %al,%eax
    xorl    2048(%ebp,%eax,8),%edx
    movzbl    %bh,%esi
    movl    16(%esp),%eax
    xorl    %edx,%ecx
    rorl    $8,%edx
    xorl    2048(%ebp,%esi,8),%ecx
    movzbl    %bl,%esi
    movl    12(%esp),%ebx
    xorl    %eax,%edx
    xorl    2052(%ebp,%esi,8),%ecx
    movl    56(%edi),%esi
    xorl    %ecx,%edx
    movl    %edx,16(%esp)
    xorl    %ebx,%ecx
    movl    %ecx,12(%esp)
    xorl    %esi,%ecx
    xorl    60(%edi),%edx
    movzbl    %ch,%esi
    movl    2052(%ebp,%esi,8),%ebx
    movzbl    %cl,%esi
    xorl    4(%ebp,%esi,8),%ebx
    shrl    $16,%ecx
    movzbl    %dl,%esi
    movl    (%ebp,%esi,8),%eax
    movzbl    %ch,%esi
    xorl    (%ebp,%esi,8),%ebx
    movzbl    %dh,%esi
    xorl    4(%ebp,%esi,8),%eax
    shrl    $16,%edx
    movzbl    %cl,%ecx
    xorl    2048(%ebp,%ecx,8),%ebx
    movzbl    %dh,%esi
    movl    8(%esp),%ecx
    xorl    %ebx,%eax
    rorl    $8,%ebx
    xorl    2048(%ebp,%esi,8),%eax
    movzbl    %dl,%esi
    movl    4(%esp),%edx
    xorl    %ecx,%ebx
    xorl    2052(%ebp,%esi,8),%eax
    movl    64(%edi),%esi
    xorl    %eax,%ebx
    movl    %ebx,8(%esp)
    xorl    %edx,%eax
    movl    %eax,4(%esp)
    addl    $64,%edi
    cmpl    20(%esp),%edi
    je    L003done
    andl    %eax,%esi
    movl    16(%esp),%edx
    roll    $1,%esi
    movl    %edx,%ecx
    xorl    %esi,%ebx
    orl    12(%edi),%ecx
    movl    %ebx,8(%esp)
    xorl    12(%esp),%ecx
    movl    4(%edi),%esi
    movl    %ecx,12(%esp)
    orl    %ebx,%esi
    andl    8(%edi),%ecx
    xorl    %esi,%eax
    roll    $1,%ecx
    movl    %eax,4(%esp)
    xorl    %ecx,%edx
    movl    16(%edi),%esi
    movl    %edx,16(%esp)
    jmp    L002loop
.align    3,0x90
L003done:
    movl    %eax,%ecx
    movl    %ebx,%edx
    movl    12(%esp),%eax
    movl    16(%esp),%ebx
    xorl    %esi,%eax
    xorl    4(%edi),%ebx
    xorl    8(%edi),%ecx
    xorl    12(%edi),%edx
    ret
.globl    _Camellia_DecryptBlock_Rounds
.align    4
_Camellia_DecryptBlock_Rounds:
L_Camellia_DecryptBlock_Rounds_begin:
    pushl    %ebp
    pushl    %ebx
    pushl    %esi
    pushl    %edi
    movl    20(%esp),%eax
    movl    24(%esp),%esi
    movl    28(%esp),%edi
    movl    %esp,%ebx
    subl    $28,%esp
    andl    $-64,%esp
    leal    -127(%edi),%ecx
    subl    %esp,%ecx
    negl    %ecx
    andl    $960,%ecx
    subl    %ecx,%esp
    addl    $4,%esp
    shll    $6,%eax
    movl    %edi,16(%esp)
    leal    (%edi,%eax,1),%edi
    movl    %ebx,20(%esp)
    call    L004pic_point
L004pic_point:
    popl    %ebp
    leal    LCamellia_SBOX-L004pic_point(%ebp),%ebp
    movl    (%esi),%eax
    movl    4(%esi),%ebx
    movl    8(%esi),%ecx
    bswap    %eax
    movl    12(%esi),%edx
    bswap    %ebx
    bswap    %ecx
    bswap    %edx
    call    __x86_Camellia_decrypt
    movl    20(%esp),%esp
    bswap    %eax
    movl    32(%esp),%esi
    bswap    %ebx
    bswap    %ecx
    bswap    %edx
    movl    %eax,(%esi)
    movl    %ebx,4(%esi)
    movl    %ecx,8(%esi)
    movl    %edx,12(%esi)
    popl    %edi
    popl    %esi
    popl    %ebx
    popl    %ebp
    ret
.globl    _Camellia_DecryptBlock
.align    4
_Camellia_DecryptBlock:
L_Camellia_DecryptBlock_begin:
    movl    $128,%eax
    subl    4(%esp),%eax
    movl    $3,%eax
    adcl    $0,%eax
    movl    %eax,4(%esp)
    jmp    L_Camellia_DecryptBlock_Rounds_begin
.globl    _Camellia_decrypt
.align    4
_Camellia_decrypt:
L_Camellia_decrypt_begin:
    pushl    %ebp
    pushl    %ebx
    pushl    %esi
    pushl    %edi
    movl    20(%esp),%esi
    movl    28(%esp),%edi
    movl    %esp,%ebx
    subl    $28,%esp
    andl    $-64,%esp
    movl    272(%edi),%eax
    leal    -127(%edi),%ecx
    subl    %esp,%ecx
    negl    %ecx
    andl    $960,%ecx
    subl    %ecx,%esp
    addl    $4,%esp
    shll    $6,%eax
    movl    %edi,16(%esp)
    leal    (%edi,%eax,1),%edi
    movl    %ebx,20(%esp)
    call    L005pic_point
L005pic_point:
    popl    %ebp
    leal    LCamellia_SBOX-L005pic_point(%ebp),%ebp
    movl    (%esi),%eax
    movl    4(%esi),%ebx
    movl    8(%esi),%ecx
    bswap    %eax
    movl    12(%esi),%edx
    bswap    %ebx
    bswap    %ecx
    bswap    %edx
    call    __x86_Camellia_decrypt
    movl    20(%esp),%esp
    bswap    %eax
    movl    24(%esp),%esi
    bswap    %ebx
    bswap    %ecx
    bswap    %edx
    movl    %eax,(%esi)
    movl    %ebx,4(%esi)
    movl    %ecx,8(%esi)
    movl    %edx,12(%esi)
    popl    %edi
    popl    %esi
    popl    %ebx
    popl    %ebp
    ret
.align    4
__x86_Camellia_decrypt:
    xorl    (%edi),%eax
    xorl    4(%edi),%ebx
    xorl    8(%edi),%ecx
    xorl    12(%edi),%edx
    movl    -8(%edi),%esi
    movl    %eax,4(%esp)
    movl    %ebx,8(%esp)
    movl    %ecx,12(%esp)
    movl    %edx,16(%esp)
.align    4,0x90
L006loop:
    xorl    %esi,%eax
    xorl    -4(%edi),%ebx
    movzbl    %ah,%esi
    movl    2052(%ebp,%esi,8),%edx
    movzbl    %al,%esi
    xorl    4(%ebp,%esi,8),%edx
    shrl    $16,%eax
    movzbl    %bl,%esi
    movl    (%ebp,%esi,8),%ecx
    movzbl    %ah,%esi
    xorl    (%ebp,%esi,8),%edx
    movzbl    %bh,%esi
    xorl    4(%ebp,%esi,8),%ecx
    shrl    $16,%ebx
    movzbl    %al,%eax
    xorl    2048(%ebp,%eax,8),%edx
    movzbl    %bh,%esi
    movl    16(%esp),%eax
    xorl    %edx,%ecx
    rorl    $8,%edx
    xorl    2048(%ebp,%esi,8),%ecx
    movzbl    %bl,%esi
    movl    12(%esp),%ebx
    xorl    %eax,%edx
    xorl    2052(%ebp,%esi,8),%ecx
    movl    -16(%edi),%esi
    xorl    %ecx,%edx
    movl    %edx,16(%esp)
    xorl    %ebx,%ecx
    movl    %ecx,12(%esp)
    xorl    %esi,%ecx
    xorl    -12(%edi),%edx
    movzbl    %ch,%esi
    movl    2052(%ebp,%esi,8),%ebx
    movzbl    %cl,%esi
    xorl    4(%ebp,%esi,8),%ebx
    shrl    $16,%ecx
    movzbl    %dl,%esi
    movl    (%ebp,%esi,8),%eax
    movzbl    %ch,%esi
    xorl    (%ebp,%esi,8),%ebx
    movzbl    %dh,%esi
    xorl    4(%ebp,%esi,8),%eax
    shrl    $16,%edx
    movzbl    %cl,%ecx
    xorl    2048(%ebp,%ecx,8),%ebx
    movzbl    %dh,%esi
    movl    8(%esp),%ecx
    xorl    %ebx,%eax
    rorl    $8,%ebx
    xorl    2048(%ebp,%esi,8),%eax
    movzbl    %dl,%esi
    movl    4(%esp),%edx
    xorl    %ecx,%ebx
    xorl    2052(%ebp,%esi,8),%eax
    movl    -24(%edi),%esi
    xorl    %eax,%ebx
    movl    %ebx,8(%esp)
    xorl    %edx,%eax
    movl    %eax,4(%esp)
    xorl    %esi,%eax
    xorl    -20(%edi),%ebx
    movzbl    %ah,%esi
    movl    2052(%ebp,%esi,8),%edx
    movzbl    %al,%esi
    xorl    4(%ebp,%esi,8),%edx
    shrl    $16,%eax
    movzbl    %bl,%esi
    movl    (%ebp,%esi,8),%ecx
    movzbl    %ah,%esi
    xorl    (%ebp,%esi,8),%edx
    movzbl    %bh,%esi
    xorl    4(%ebp,%esi,8),%ecx
    shrl    $16,%ebx
    movzbl    %al,%eax
    xorl    2048(%ebp,%eax,8),%edx
    movzbl    %bh,%esi
    movl    16(%esp),%eax
    xorl    %edx,%ecx
    rorl    $8,%edx
    xorl    2048(%ebp,%esi,8),%ecx
    movzbl    %bl,%esi
    movl    12(%esp),%ebx
    xorl    %eax,%edx
    xorl    2052(%ebp,%esi,8),%ecx
    movl    -32(%edi),%esi
    xorl    %ecx,%edx
    movl    %edx,16(%esp)
    xorl    %ebx,%ecx
    movl    %ecx,12(%esp)
    xorl    %esi,%ecx
    xorl    -28(%edi),%edx
    movzbl    %ch,%esi
    movl    2052(%ebp,%esi,8),%ebx
    movzbl    %cl,%esi
    xorl    4(%ebp,%esi,8),%ebx
    shrl    $16,%ecx
    movzbl    %dl,%esi
    movl    (%ebp,%esi,8),%eax
    movzbl    %ch,%esi
    xorl    (%ebp,%esi,8),%ebx
    movzbl    %dh,%esi
    xorl    4(%ebp,%esi,8),%eax
    shrl    $16,%edx
    movzbl    %cl,%ecx
    xorl    2048(%ebp,%ecx,8),%ebx
    movzbl    %dh,%esi
    movl    8(%esp),%ecx
    xorl    %ebx,%eax
    rorl    $8,%ebx
    xorl    2048(%ebp,%esi,8),%eax
    movzbl    %dl,%esi
    movl    4(%esp),%edx
    xorl    %ecx,%ebx
    xorl    2052(%ebp,%esi,8),%eax
    movl    -40(%edi),%esi
    xorl    %eax,%ebx
    movl    %ebx,8(%esp)
    xorl    %edx,%eax
    movl    %eax,4(%esp)
    xorl    %esi,%eax
    xorl    -36(%edi),%ebx
    movzbl    %ah,%esi
    movl    2052(%ebp,%esi,8),%edx
    movzbl    %al,%esi
    xorl    4(%ebp,%esi,8),%edx
    shrl    $16,%eax
    movzbl    %bl,%esi
    movl    (%ebp,%esi,8),%ecx
    movzbl    %ah,%esi
    xorl    (%ebp,%esi,8),%edx
    movzbl    %bh,%esi
    xorl    4(%ebp,%esi,8),%ecx
    shrl    $16,%ebx
    movzbl    %al,%eax
    xorl    2048(%ebp,%eax,8),%edx
    movzbl    %bh,%esi
    movl    16(%esp),%eax
    xorl    %edx,%ecx
    rorl    $8,%edx
    xorl    2048(%ebp,%esi,8),%ecx
    movzbl    %bl,%esi
    movl    12(%esp),%ebx
    xorl    %eax,%edx
    xorl    2052(%ebp,%esi,8),%ecx
    movl    -48(%edi),%esi
    xorl    %ecx,%edx
    movl    %edx,16(%esp)
    xorl    %ebx,%ecx
    movl    %ecx,12(%esp)
    xorl    %esi,%ecx
    xorl    -44(%edi),%edx
    movzbl    %ch,%esi
    movl    2052(%ebp,%esi,8),%ebx
    movzbl    %cl,%esi
    xorl    4(%ebp,%esi,8),%ebx
    shrl    $16,%ecx
    movzbl    %dl,%esi
    movl    (%ebp,%esi,8),%eax
    movzbl    %ch,%esi
    xorl    (%ebp,%esi,8),%ebx
    movzbl    %dh,%esi
    xorl    4(%ebp,%esi,8),%eax
    shrl    $16,%edx
    movzbl    %cl,%ecx
    xorl    2048(%ebp,%ecx,8),%ebx
    movzbl    %dh,%esi
    movl    8(%esp),%ecx
    xorl    %ebx,%eax
    rorl    $8,%ebx
    xorl    2048(%ebp,%esi,8),%eax
    movzbl    %dl,%esi
    movl    4(%esp),%edx
    xorl    %ecx,%ebx
    xorl    2052(%ebp,%esi,8),%eax
    movl    -56(%edi),%esi
    xorl    %eax,%ebx
    movl    %ebx,8(%esp)
    xorl    %edx,%eax
    movl    %eax,4(%esp)
    subl    $64,%edi
    cmpl    20(%esp),%edi
    je    L007done
    andl    %eax,%esi
    movl    16(%esp),%edx
    roll    $1,%esi
    movl    %edx,%ecx
    xorl    %esi,%ebx
    orl    4(%edi),%ecx
    movl    %ebx,8(%esp)
    xorl    12(%esp),%ecx
    movl    12(%edi),%esi
    movl    %ecx,12(%esp)
    orl    %ebx,%esi
    andl    (%edi),%ecx
    xorl    %esi,%eax
    roll    $1,%ecx
    movl    %eax,4(%esp)
    xorl    %ecx,%edx
    movl    -8(%edi),%esi
    movl    %edx,16(%esp)
    jmp    L006loop
.align    3,0x90
L007done:
    movl    %eax,%ecx
    movl    %ebx,%edx
    movl    12(%esp),%eax
    movl    16(%esp),%ebx
    xorl    %esi,%ecx
    xorl    12(%edi),%edx
    xorl    (%edi),%eax
    xorl    4(%edi),%ebx
    ret
.globl    _Camellia_Ekeygen
.align    4
_Camellia_Ekeygen:
L_Camellia_Ekeygen_begin:
    pushl    %ebp
    pushl    %ebx
    pushl    %esi
    pushl    %edi
    subl    $16,%esp
    movl    36(%esp),%ebp
    movl    40(%esp),%esi
    movl    44(%esp),%edi
    movl    (%esi),%eax
    movl    4(%esi),%ebx
    movl    8(%esi),%ecx
    movl    12(%esi),%edx
    bswap    %eax
    bswap    %ebx
    bswap    %ecx
    bswap    %edx
    movl    %eax,(%edi)
    movl    %ebx,4(%edi)
    movl    %ecx,8(%edi)
    movl    %edx,12(%edi)
    cmpl    $128,%ebp
    je    L0081st128
    movl    16(%esi),%eax
    movl    20(%esi),%ebx
    cmpl    $192,%ebp
    je    L0091st192
    movl    24(%esi),%ecx
    movl    28(%esi),%edx
    jmp    L0101st256
.align    2,0x90
L0091st192:
    movl    %eax,%ecx
    movl    %ebx,%edx
    notl    %ecx
    notl    %edx
.align    2,0x90
L0101st256:
    bswap    %eax
    bswap    %ebx
    bswap    %ecx
    bswap    %edx
    movl    %eax,32(%edi)
    movl    %ebx,36(%edi)
    movl    %ecx,40(%edi)
    movl    %edx,44(%edi)
    xorl    (%edi),%eax
    xorl    4(%edi),%ebx
    xorl    8(%edi),%ecx
    xorl    12(%edi),%edx
.align    2,0x90
L0081st128:
    call    L011pic_point
L011pic_point:
    popl    %ebp
    leal    LCamellia_SBOX-L011pic_point(%ebp),%ebp
    leal    LCamellia_SIGMA-LCamellia_SBOX(%ebp),%edi
    movl    (%edi),%esi
    movl    %eax,(%esp)
    movl    %ebx,4(%esp)
    movl    %ecx,8(%esp)
    movl    %edx,12(%esp)
    xorl    %esi,%eax
    xorl    4(%edi),%ebx
    movzbl    %ah,%esi
    movl    2052(%ebp,%esi,8),%edx
    movzbl    %al,%esi
    xorl    4(%ebp,%esi,8),%edx
    shrl    $16,%eax
    movzbl    %bl,%esi
    movl    (%ebp,%esi,8),%ecx
    movzbl    %ah,%esi
    xorl    (%ebp,%esi,8),%edx
    movzbl    %bh,%esi
    xorl    4(%ebp,%esi,8),%ecx
    shrl    $16,%ebx
    movzbl    %al,%eax
    xorl    2048(%ebp,%eax,8),%edx
    movzbl    %bh,%esi
    movl    12(%esp),%eax
    xorl    %edx,%ecx
    rorl    $8,%edx
    xorl    2048(%ebp,%esi,8),%ecx
    movzbl    %bl,%esi
    movl    8(%esp),%ebx
    xorl    %eax,%edx
    xorl    2052(%ebp,%esi,8),%ecx
    movl    8(%edi),%esi
    xorl    %ecx,%edx
    movl    %edx,12(%esp)
    xorl    %ebx,%ecx
    movl    %ecx,8(%esp)
    xorl    %esi,%ecx
    xorl    12(%edi),%edx
    movzbl    %ch,%esi
    movl    2052(%ebp,%esi,8),%ebx
    movzbl    %cl,%esi
    xorl    4(%ebp,%esi,8),%ebx
    shrl    $16,%ecx
    movzbl    %dl,%esi
    movl    (%ebp,%esi,8),%eax
    movzbl    %ch,%esi
    xorl    (%ebp,%esi,8),%ebx
    movzbl    %dh,%esi
    xorl    4(%ebp,%esi,8),%eax
    shrl    $16,%edx
    movzbl    %cl,%ecx
    xorl    2048(%ebp,%ecx,8),%ebx
    movzbl    %dh,%esi
    movl    4(%esp),%ecx
    xorl    %ebx,%eax
    rorl    $8,%ebx
    xorl    2048(%ebp,%esi,8),%eax
    movzbl    %dl,%esi
    movl    (%esp),%edx
    xorl    %ecx,%ebx
    xorl    2052(%ebp,%esi,8),%eax
    movl    16(%edi),%esi
    xorl    %eax,%ebx
    movl    %ebx,4(%esp)
    xorl    %edx,%eax
    movl    %eax,(%esp)
    movl    8(%esp),%ecx
    movl    12(%esp),%edx
    movl    44(%esp),%esi
    xorl    (%esi),%eax
    xorl    4(%esi),%ebx
    xorl    8(%esi),%ecx
    xorl    12(%esi),%edx
    movl    16(%edi),%esi
    movl    %eax,(%esp)
    movl    %ebx,4(%esp)
    movl    %ecx,8(%esp)
    movl    %edx,12(%esp)
    xorl    %esi,%eax
    xorl    20(%edi),%ebx
    movzbl    %ah,%esi
    movl    2052(%ebp,%esi,8),%edx
    movzbl    %al,%esi
    xorl    4(%ebp,%esi,8),%edx
    shrl    $16,%eax
    movzbl    %bl,%esi
    movl    (%ebp,%esi,8),%ecx
    movzbl    %ah,%esi
    xorl    (%ebp,%esi,8),%edx
    movzbl    %bh,%esi
    xorl    4(%ebp,%esi,8),%ecx
    shrl    $16,%ebx
    movzbl    %al,%eax
    xorl    2048(%ebp,%eax,8),%edx
    movzbl    %bh,%esi
    movl    12(%esp),%eax
    xorl    %edx,%ecx
    rorl    $8,%edx
    xorl    2048(%ebp,%esi,8),%ecx
    movzbl    %bl,%esi
    movl    8(%esp),%ebx
    xorl    %eax,%edx
    xorl    2052(%ebp,%esi,8),%ecx
    movl    24(%edi),%esi
    xorl    %ecx,%edx
    movl    %edx,12(%esp)
    xorl    %ebx,%ecx
    movl    %ecx,8(%esp)
    xorl    %esi,%ecx
    xorl    28(%edi),%edx
    movzbl    %ch,%esi
    movl    2052(%ebp,%esi,8),%ebx
    movzbl    %cl,%esi
    xorl    4(%ebp,%esi,8),%ebx
    shrl    $16,%ecx
    movzbl    %dl,%esi
    movl    (%ebp,%esi,8),%eax
    movzbl    %ch,%esi
    xorl    (%ebp,%esi,8),%ebx
    movzbl    %dh,%esi
    xorl    4(%ebp,%esi,8),%eax
    shrl    $16,%edx
    movzbl    %cl,%ecx
    xorl    2048(%ebp,%ecx,8),%ebx
    movzbl    %dh,%esi
    movl    4(%esp),%ecx
    xorl    %ebx,%eax
    rorl    $8,%ebx
    xorl    2048(%ebp,%esi,8),%eax
    movzbl    %dl,%esi
    movl    (%esp),%edx
    xorl    %ecx,%ebx
    xorl    2052(%ebp,%esi,8),%eax
    movl    32(%edi),%esi
    xorl    %eax,%ebx
    movl    %ebx,4(%esp)
    xorl    %edx,%eax
    movl    %eax,(%esp)
    movl    8(%esp),%ecx
    movl    12(%esp),%edx
    movl    36(%esp),%esi
    cmpl    $128,%esi
    jne    L0122nd256
    movl    44(%esp),%edi
    leal    128(%edi),%edi
    movl    %eax,-112(%edi)
    movl    %ebx,-108(%edi)
    movl    %ecx,-104(%edi)
    movl    %edx,-100(%edi)
    movl    %eax,%ebp
    shll    $15,%eax
    movl    %ebx,%esi
    shrl    $17,%esi
    shll    $15,%ebx
    orl    %esi,%eax
    movl    %ecx,%esi
    shll    $15,%ecx
    movl    %eax,-80(%edi)
    shrl    $17,%esi
    orl    %esi,%ebx
    shrl    $17,%ebp
    movl    %edx,%esi
    shrl    $17,%esi
    movl    %ebx,-76(%edi)
    shll    $15,%edx
    orl    %esi,%ecx
    orl    %ebp,%edx
    movl    %ecx,-72(%edi)
    movl    %edx,-68(%edi)
    movl    %eax,%ebp
    shll    $15,%eax
    movl    %ebx,%esi
    shrl    $17,%esi
    shll    $15,%ebx
    orl    %esi,%eax
    movl    %ecx,%esi
    shll    $15,%ecx
    movl    %eax,-64(%edi)
    shrl    $17,%esi
    orl    %esi,%ebx
    shrl    $17,%ebp
    movl    %edx,%esi
    shrl    $17,%esi
    movl    %ebx,-60(%edi)
    shll    $15,%edx
    orl    %esi,%ecx
    orl    %ebp,%edx
    movl    %ecx,-56(%edi)
    movl    %edx,-52(%edi)
    movl    %eax,%ebp
    shll    $15,%eax
    movl    %ebx,%esi
    shrl    $17,%esi
    shll    $15,%ebx
    orl    %esi,%eax
    movl    %ecx,%esi
    shll    $15,%ecx
    movl    %eax,-32(%edi)
    shrl    $17,%esi
    orl    %esi,%ebx
    shrl    $17,%ebp
    movl    %edx,%esi
    shrl    $17,%esi
    movl    %ebx,-28(%edi)
    shll    $15,%edx
    orl    %esi,%ecx
    orl    %ebp,%edx
    movl    %eax,%ebp
    shll    $15,%eax
    movl    %ebx,%esi
    shrl    $17,%esi
    shll    $15,%ebx
    orl    %esi,%eax
    movl    %ecx,%esi
    shll    $15,%ecx
    movl    %eax,-16(%edi)
    shrl    $17,%esi
    orl    %esi,%ebx
    shrl    $17,%ebp
    movl    %edx,%esi
    shrl    $17,%esi
    movl    %ebx,-12(%edi)
    shll    $15,%edx
    orl    %esi,%ecx
    orl    %ebp,%edx
    movl    %ecx,-8(%edi)
    movl    %edx,-4(%edi)
    movl    %ebx,%ebp
    shll    $2,%ebx
    movl    %ecx,%esi
    shrl    $30,%esi
    shll    $2,%ecx
    orl    %esi,%ebx
    movl    %edx,%esi
    shll    $2,%edx
    movl    %ebx,32(%edi)
    shrl    $30,%esi
    orl    %esi,%ecx
    shrl    $30,%ebp
    movl    %eax,%esi
    shrl    $30,%esi
    movl    %ecx,36(%edi)
    shll    $2,%eax
    orl    %esi,%edx
    orl    %ebp,%eax
    movl    %edx,40(%edi)
    movl    %eax,44(%edi)
    movl    %ebx,%ebp
    shll    $17,%ebx
    movl    %ecx,%esi
    shrl    $15,%esi
    shll    $17,%ecx
    orl    %esi,%ebx
    movl    %edx,%esi
    shll    $17,%edx
    movl    %ebx,64(%edi)
    shrl    $15,%esi
    orl    %esi,%ecx
    shrl    $15,%ebp
    movl    %eax,%esi
    shrl    $15,%esi
    movl    %ecx,68(%edi)
    shll    $17,%eax
    orl    %esi,%edx
    orl    %ebp,%eax
    movl    %edx,72(%edi)
    movl    %eax,76(%edi)
    movl    -128(%edi),%ebx
    movl    -124(%edi),%ecx
    movl    -120(%edi),%edx
    movl    -116(%edi),%eax
    movl    %ebx,%ebp
    shll    $15,%ebx
    movl    %ecx,%esi
    shrl    $17,%esi
    shll    $15,%ecx
    orl    %esi,%ebx
    movl    %edx,%esi
    shll    $15,%edx
    movl    %ebx,-96(%edi)
    shrl    $17,%esi
    orl    %esi,%ecx
    shrl    $17,%ebp
    movl    %eax,%esi
    shrl    $17,%esi
    movl    %ecx,-92(%edi)
    shll    $15,%eax
    orl    %esi,%edx
    orl    %ebp,%eax
    movl    %edx,-88(%edi)
    movl    %eax,-84(%edi)
    movl    %ebx,%ebp
    shll    $30,%ebx
    movl    %ecx,%esi
    shrl    $2,%esi
    shll    $30,%ecx
    orl    %esi,%ebx
    movl    %edx,%esi
    shll    $30,%edx
    movl    %ebx,-48(%edi)
    shrl    $2,%esi
    orl    %esi,%ecx
    shrl    $2,%ebp
    movl    %eax,%esi
    shrl    $2,%esi
    movl    %ecx,-44(%edi)
    shll    $30,%eax
    orl    %esi,%edx
    orl    %ebp,%eax
    movl    %edx,-40(%edi)
    movl    %eax,-36(%edi)
    movl    %ebx,%ebp
    shll    $15,%ebx
    movl    %ecx,%esi
    shrl    $17,%esi
    shll    $15,%ecx
    orl    %esi,%ebx
    movl    %edx,%esi
    shll    $15,%edx
    shrl    $17,%esi
    orl    %esi,%ecx
    shrl    $17,%ebp
    movl    %eax,%esi
    shrl    $17,%esi
    shll    $15,%eax
    orl    %esi,%edx
    orl    %ebp,%eax
    movl    %edx,-24(%edi)
    movl    %eax,-20(%edi)
    movl    %ebx,%ebp
    shll    $17,%ebx
    movl    %ecx,%esi
    shrl    $15,%esi
    shll    $17,%ecx
    orl    %esi,%ebx
    movl    %edx,%esi
    shll    $17,%edx
    movl    %ebx,(%edi)
    shrl    $15,%esi
    orl    %esi,%ecx
    shrl    $15,%ebp
    movl    %eax,%esi
    shrl    $15,%esi
    movl    %ecx,4(%edi)
    shll    $17,%eax
    orl    %esi,%edx
    orl    %ebp,%eax
    movl    %edx,8(%edi)
    movl    %eax,12(%edi)
    movl    %ebx,%ebp
    shll    $17,%ebx
    movl    %ecx,%esi
    shrl    $15,%esi
    shll    $17,%ecx
    orl    %esi,%ebx
    movl    %edx,%esi
    shll    $17,%edx
    movl    %ebx,16(%edi)
    shrl    $15,%esi
    orl    %esi,%ecx
    shrl    $15,%ebp
    movl    %eax,%esi
    shrl    $15,%esi
    movl    %ecx,20(%edi)
    shll    $17,%eax
    orl    %esi,%edx
    orl    %ebp,%eax
    movl    %edx,24(%edi)
    movl    %eax,28(%edi)
    movl    %ebx,%ebp
    shll    $17,%ebx
    movl    %ecx,%esi
    shrl    $15,%esi
    shll    $17,%ecx
    orl    %esi,%ebx
    movl    %edx,%esi
    shll    $17,%edx
    movl    %ebx,48(%edi)
    shrl    $15,%esi
    orl    %esi,%ecx
    shrl    $15,%ebp
    movl    %eax,%esi
    shrl    $15,%esi
    movl    %ecx,52(%edi)
    shll    $17,%eax
    orl    %esi,%edx
    orl    %ebp,%eax
    movl    %edx,56(%edi)
    movl    %eax,60(%edi)
    movl    $3,%eax
    jmp    L013done
.align    4,0x90
L0122nd256:
    movl    44(%esp),%esi
    movl    %eax,48(%esi)
    movl    %ebx,52(%esi)
    movl    %ecx,56(%esi)
    movl    %edx,60(%esi)
    xorl    32(%esi),%eax
    xorl    36(%esi),%ebx
    xorl    40(%esi),%ecx
    xorl    44(%esi),%edx
    movl    32(%edi),%esi
    movl    %eax,(%esp)
    movl    %ebx,4(%esp)
    movl    %ecx,8(%esp)
    movl    %edx,12(%esp)
    xorl    %esi,%eax
    xorl    36(%edi),%ebx
    movzbl    %ah,%esi
    movl    2052(%ebp,%esi,8),%edx
    movzbl    %al,%esi
    xorl    4(%ebp,%esi,8),%edx
    shrl    $16,%eax
    movzbl    %bl,%esi
    movl    (%ebp,%esi,8),%ecx
    movzbl    %ah,%esi
    xorl    (%ebp,%esi,8),%edx
    movzbl    %bh,%esi
    xorl    4(%ebp,%esi,8),%ecx
    shrl    $16,%ebx
    movzbl    %al,%eax
    xorl    2048(%ebp,%eax,8),%edx
    movzbl    %bh,%esi
    movl    12(%esp),%eax
    xorl    %edx,%ecx
    rorl    $8,%edx
    xorl    2048(%ebp,%esi,8),%ecx
    movzbl    %bl,%esi
    movl    8(%esp),%ebx
    xorl    %eax,%edx
    xorl    2052(%ebp,%esi,8),%ecx
    movl    40(%edi),%esi
    xorl    %ecx,%edx
    movl    %edx,12(%esp)
    xorl    %ebx,%ecx
    movl    %ecx,8(%esp)
    xorl    %esi,%ecx
    xorl    44(%edi),%edx
    movzbl    %ch,%esi
    movl    2052(%ebp,%esi,8),%ebx
    movzbl    %cl,%esi
    xorl    4(%ebp,%esi,8),%ebx
    shrl    $16,%ecx
    movzbl    %dl,%esi
    movl    (%ebp,%esi,8),%eax
    movzbl    %ch,%esi
    xorl    (%ebp,%esi,8),%ebx
    movzbl    %dh,%esi
    xorl    4(%ebp,%esi,8),%eax
    shrl    $16,%edx
    movzbl    %cl,%ecx
    xorl    2048(%ebp,%ecx,8),%ebx
    movzbl    %dh,%esi
    movl    4(%esp),%ecx
    xorl    %ebx,%eax
    rorl    $8,%ebx
    xorl    2048(%ebp,%esi,8),%eax
    movzbl    %dl,%esi
    movl    (%esp),%edx
    xorl    %ecx,%ebx
    xorl    2052(%ebp,%esi,8),%eax
    movl    48(%edi),%esi
    xorl    %eax,%ebx
    movl    %ebx,4(%esp)
    xorl    %edx,%eax
    movl    %eax,(%esp)
    movl    8(%esp),%ecx
    movl    12(%esp),%edx
    movl    44(%esp),%edi
    leal    128(%edi),%edi
    movl    %eax,-112(%edi)
    movl    %ebx,-108(%edi)
    movl    %ecx,-104(%edi)
    movl    %edx,-100(%edi)
    movl    %eax,%ebp
    shll    $30,%eax
    movl    %ebx,%esi
    shrl    $2,%esi
    shll    $30,%ebx
    orl    %esi,%eax
    movl    %ecx,%esi
    shll    $30,%ecx
    movl    %eax,-48(%edi)
    shrl    $2,%esi
    orl    %esi,%ebx
    shrl    $2,%ebp
    movl    %edx,%esi
    shrl    $2,%esi
    movl    %ebx,-44(%edi)
    shll    $30,%edx
    orl    %esi,%ecx
    orl    %ebp,%edx
    movl    %ecx,-40(%edi)
    movl    %edx,-36(%edi)
    movl    %eax,%ebp
    shll    $30,%eax
    movl    %ebx,%esi
    shrl    $2,%esi
    shll    $30,%ebx
    orl    %esi,%eax
    movl    %ecx,%esi
    shll    $30,%ecx
    movl    %eax,32(%edi)
    shrl    $2,%esi
    orl    %esi,%ebx
    shrl    $2,%ebp
    movl    %edx,%esi
    shrl    $2,%esi
    movl    %ebx,36(%edi)
    shll    $30,%edx
    orl    %esi,%ecx
    orl    %ebp,%edx
    movl    %ecx,40(%edi)
    movl    %edx,44(%edi)
    movl    %ebx,%ebp
    shll    $19,%ebx
    movl    %ecx,%esi
    shrl    $13,%esi
    shll    $19,%ecx
    orl    %esi,%ebx
    movl    %edx,%esi
    shll    $19,%edx
    movl    %ebx,128(%edi)
    shrl    $13,%esi
    orl    %esi,%ecx
    shrl    $13,%ebp
    movl    %eax,%esi
    shrl    $13,%esi
    movl    %ecx,132(%edi)
    shll    $19,%eax
    orl    %esi,%edx
    orl    %ebp,%eax
    movl    %edx,136(%edi)
    movl    %eax,140(%edi)
    movl    -96(%edi),%ebx
    movl    -92(%edi),%ecx
    movl    -88(%edi),%edx
    movl    -84(%edi),%eax
    movl    %ebx,%ebp
    shll    $15,%ebx
    movl    %ecx,%esi
    shrl    $17,%esi
    shll    $15,%ecx
    orl    %esi,%ebx
    movl    %edx,%esi
    shll    $15,%edx
    movl    %ebx,-96(%edi)
    shrl    $17,%esi
    orl    %esi,%ecx
    shrl    $17,%ebp
    movl    %eax,%esi
    shrl    $17,%esi
    movl    %ecx,-92(%edi)
    shll    $15,%eax
    orl    %esi,%edx
    orl    %ebp,%eax
    movl    %edx,-88(%edi)
    movl    %eax,-84(%edi)
    movl    %ebx,%ebp
    shll    $15,%ebx
    movl    %ecx,%esi
    shrl    $17,%esi
    shll    $15,%ecx
    orl    %esi,%ebx
    movl    %edx,%esi
    shll    $15,%edx
    movl    %ebx,-64(%edi)
    shrl    $17,%esi
    orl    %esi,%ecx
    shrl    $17,%ebp
    movl    %eax,%esi
    shrl    $17,%esi
    movl    %ecx,-60(%edi)
    shll    $15,%eax
    orl    %esi,%edx
    orl    %ebp,%eax
    movl    %edx,-56(%edi)
    movl    %eax,-52(%edi)
    movl    %ebx,%ebp
    shll    $30,%ebx
    movl    %ecx,%esi
    shrl    $2,%esi
    shll    $30,%ecx
    orl    %esi,%ebx
    movl    %edx,%esi
    shll    $30,%edx
    movl    %ebx,16(%edi)
    shrl    $2,%esi
    orl    %esi,%ecx
    shrl    $2,%ebp
    movl    %eax,%esi
    shrl    $2,%esi
    movl    %ecx,20(%edi)
    shll    $30,%eax
    orl    %esi,%edx
    orl    %ebp,%eax
    movl    %edx,24(%edi)
    movl    %eax,28(%edi)
    movl    %ecx,%ebp
    shll    $2,%ecx
    movl    %edx,%esi
    shrl    $30,%esi
    shll    $2,%edx
    orl    %esi,%ecx
    movl    %eax,%esi
    shll    $2,%eax
    movl    %ecx,80(%edi)
    shrl    $30,%esi
    orl    %esi,%edx
    shrl    $30,%ebp
    movl    %ebx,%esi
    shrl    $30,%esi
    movl    %edx,84(%edi)
    shll    $2,%ebx
    orl    %esi,%eax
    orl    %ebp,%ebx
    movl    %eax,88(%edi)
    movl    %ebx,92(%edi)
    movl    -80(%edi),%ecx
    movl    -76(%edi),%edx
    movl    -72(%edi),%eax
    movl    -68(%edi),%ebx
    movl    %ecx,%ebp
    shll    $15,%ecx
    movl    %edx,%esi
    shrl    $17,%esi
    shll    $15,%edx
    orl    %esi,%ecx
    movl    %eax,%esi
    shll    $15,%eax
    movl    %ecx,-80(%edi)
    shrl    $17,%esi
    orl    %esi,%edx
    shrl    $17,%ebp
    movl    %ebx,%esi
    shrl    $17,%esi
    movl    %edx,-76(%edi)
    shll    $15,%ebx
    orl    %esi,%eax
    orl    %ebp,%ebx
    movl    %eax,-72(%edi)
    movl    %ebx,-68(%edi)
    movl    %ecx,%ebp
    shll    $30,%ecx
    movl    %edx,%esi
    shrl    $2,%esi
    shll    $30,%edx
    orl    %esi,%ecx
    movl    %eax,%esi
    shll    $30,%eax
    movl    %ecx,-16(%edi)
    shrl    $2,%esi
    orl    %esi,%edx
    shrl    $2,%ebp
    movl    %ebx,%esi
    shrl    $2,%esi
    movl    %edx,-12(%edi)
    shll    $30,%ebx
    orl    %esi,%eax
    orl    %ebp,%ebx
    movl    %eax,-8(%edi)
    movl    %ebx,-4(%edi)
    movl    %edx,64(%edi)
    movl    %eax,68(%edi)
    movl    %ebx,72(%edi)
    movl    %ecx,76(%edi)
    movl    %edx,%ebp
    shll    $17,%edx
    movl    %eax,%esi
    shrl    $15,%esi
    shll    $17,%eax
    orl    %esi,%edx
    movl    %ebx,%esi
    shll    $17,%ebx
    movl    %edx,96(%edi)
    shrl    $15,%esi
    orl    %esi,%eax
    shrl    $15,%ebp
    movl    %ecx,%esi
    shrl    $15,%esi
    movl    %eax,100(%edi)
    shll    $17,%ecx
    orl    %esi,%ebx
    orl    %ebp,%ecx
    movl    %ebx,104(%edi)
    movl    %ecx,108(%edi)
    movl    -128(%edi),%edx
    movl    -124(%edi),%eax
    movl    -120(%edi),%ebx
    movl    -116(%edi),%ecx
    movl    %eax,%ebp
    shll    $13,%eax
    movl    %ebx,%esi
    shrl    $19,%esi
    shll    $13,%ebx
    orl    %esi,%eax
    movl    %ecx,%esi
    shll    $13,%ecx
    movl    %eax,-32(%edi)
    shrl    $19,%esi
    orl    %esi,%ebx
    shrl    $19,%ebp
    movl    %edx,%esi
    shrl    $19,%esi
    movl    %ebx,-28(%edi)
    shll    $13,%edx
    orl    %esi,%ecx
    orl    %ebp,%edx
    movl    %ecx,-24(%edi)
    movl    %edx,-20(%edi)
    movl    %eax,%ebp
    shll    $15,%eax
    movl    %ebx,%esi
    shrl    $17,%esi
    shll    $15,%ebx
    orl    %esi,%eax
    movl    %ecx,%esi
    shll    $15,%ecx
    movl    %eax,(%edi)
    shrl    $17,%esi
    orl    %esi,%ebx
    shrl    $17,%ebp
    movl    %edx,%esi
    shrl    $17,%esi
    movl    %ebx,4(%edi)
    shll    $15,%edx
    orl    %esi,%ecx
    orl    %ebp,%edx
    movl    %ecx,8(%edi)
    movl    %edx,12(%edi)
    movl    %eax,%ebp
    shll    $17,%eax
    movl    %ebx,%esi
    shrl    $15,%esi
    shll    $17,%ebx
    orl    %esi,%eax
    movl    %ecx,%esi
    shll    $17,%ecx
    movl    %eax,48(%edi)
    shrl    $15,%esi
    orl    %esi,%ebx
    shrl    $15,%ebp
    movl    %edx,%esi
    shrl    $15,%esi
    movl    %ebx,52(%edi)
    shll    $17,%edx
    orl    %esi,%ecx
    orl    %ebp,%edx
    movl    %ecx,56(%edi)
    movl    %edx,60(%edi)
    movl    %ebx,%ebp
    shll    $2,%ebx
    movl    %ecx,%esi
    shrl    $30,%esi
    shll    $2,%ecx
    orl    %esi,%ebx
    movl    %edx,%esi
    shll    $2,%edx
    movl    %ebx,112(%edi)
    shrl    $30,%esi
    orl    %esi,%ecx
    shrl    $30,%ebp
    movl    %eax,%esi
    shrl    $30,%esi
    movl    %ecx,116(%edi)
    shll    $2,%eax
    orl    %esi,%edx
    orl    %ebp,%eax
    movl    %edx,120(%edi)
    movl    %eax,124(%edi)
    movl    $4,%eax
L013done:
    leal    144(%edi),%edx
    addl    $16,%esp
    popl    %edi
    popl    %esi
    popl    %ebx
    popl    %ebp
    ret
.globl    _private_Camellia_set_key
.align    4
_private_Camellia_set_key:
L_private_Camellia_set_key_begin:
    pushl    %ebx
    movl    8(%esp),%ecx
    movl    12(%esp),%ebx
    movl    16(%esp),%edx
    movl    $-1,%eax
    testl    %ecx,%ecx
    jz    L014done
    testl    %edx,%edx
    jz    L014done
    movl    $-2,%eax
    cmpl    $256,%ebx
    je    L015arg_ok
    cmpl    $192,%ebx
    je    L015arg_ok
    cmpl    $128,%ebx
    jne    L014done
.align    2,0x90
L015arg_ok:
    pushl    %edx
    pushl    %ecx
    pushl    %ebx
    call    L_Camellia_Ekeygen_begin
    addl    $12,%esp
    movl    %eax,(%edx)
    xorl    %eax,%eax
.align    2,0x90
L014done:
    popl    %ebx
    ret
.align    6,0x90
LCamellia_SIGMA:
.long    2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0
.align    6,0x90
LCamellia_SBOX:
.long    1886416896,1886388336
.long    2189591040,741081132
.long    741092352,3014852787
.long    3974949888,3233808576
.long    3014898432,3840147684
.long    656877312,1465319511
.long    3233857536,3941204202
.long    3857048832,2930639022
.long    3840205824,589496355
.long    2240120064,1802174571
.long    1465341696,1162149957
.long    892679424,2779054245
.long    3941263872,3991732461
.long    202116096,1330577487
.long    2930683392,488439837
.long    1094795520,2459041938
.long    589505280,2256928902
.long    4025478912,2947481775
.long    1802201856,2088501372
.long    2475922176,522125343
.long    1162167552,1044250686
.long    421075200,3705405660
.long    2779096320,1583218782
.long    555819264,185270283
.long    3991792896,2795896998
.long    235802112,960036921
.long    1330597632,3587506389
.long    1313754624,1566376029
.long    488447232,3654877401
.long    1701143808,1515847770
.long    2459079168,1364262993
.long    3183328512,1819017324
.long    2256963072,2341142667
.long    3099113472,2593783962
.long    2947526400,4227531003
.long    2408550144,2964324528
.long    2088532992,1953759348
.long    3958106880,724238379
.long    522133248,4042260720
.long    3469659648,2223243396
.long    1044266496,3755933919
.long    808464384,3419078859
.long    3705461760,875823156
.long    1600085760,1987444854
.long    1583242752,1835860077
.long    3318072576,2846425257
.long    185273088,3520135377
.long    437918208,67371012
.long    2795939328,336855060
.long    3789676800,976879674
.long    960051456,3739091166
.long    3402287616,286326801
.long    3587560704,842137650
.long    1195853568,2627469468
.long    1566399744,1397948499
.long    1027423488,4075946226
.long    3654932736,4278059262
.long    16843008,3486449871
.long    1515870720,3284336835
.long    3604403712,2054815866
.long    1364283648,606339108
.long    1448498688,3907518696
.long    1819044864,1616904288
.long    1296911616,1768489065
.long    2341178112,2863268010
.long    218959104,2694840480
.long    2593823232,2711683233
.long    1717986816,1650589794
.long    4227595008,1414791252
.long    3435973632,505282590
.long    2964369408,3772776672
.long    757935360,1684275300
.long    1953788928,269484048
.long    303174144,0
.long    724249344,2745368739
.long    538976256,1970602101
.long    4042321920,2324299914
.long    2981212416,3873833190
.long    2223277056,151584777
.long    2576980224,3722248413
.long    3755990784,2273771655
.long    1280068608,2206400643
.long    3419130624,3452764365
.long    3267543552,2425356432
.long    875836416,1936916595
.long    2122219008,4143317238
.long    1987474944,2644312221
.long    84215040,3216965823
.long    1835887872,1381105746
.long    3082270464,3638034648
.long    2846468352,3368550600
.long    825307392,3334865094
.long    3520188672,2172715137
.long    387389184,1869545583
.long    67372032,320012307
.long    3621246720,1667432547
.long    336860160,3924361449
.long    1482184704,2812739751
.long    976894464,2677997727
.long    1633771776,3166437564
.long    3739147776,690552873
.long    454761216,4193845497
.long    286331136,791609391
.long    471604224,3031695540
.long    842150400,2021130360
.long    252645120,101056518
.long    2627509248,3890675943
.long    370546176,1903231089
.long    1397969664,3570663636
.long    404232192,2880110763
.long    4076007936,2290614408
.long    572662272,2374828173
.long    4278124032,1920073842
.long    1145324544,3115909305
.long    3486502656,4177002744
.long    2998055424,2896953516
.long    3284386560,909508662
.long    3048584448,707395626
.long    2054846976,1010565180
.long    2442236160,4059103473
.long    606348288,1077936192
.long    134744064,3553820883
.long    3907577856,3149594811
.long    2829625344,1128464451
.long    1616928768,353697813
.long    4244438016,2913796269
.long    1768515840,2004287607
.long    1347440640,2155872384
.long    2863311360,2189557890
.long    3503345664,3974889708
.long    2694881280,656867367
.long    2105376000,3856990437
.long    2711724288,2240086149
.long    2307492096,892665909
.long    1650614784,202113036
.long    2543294208,1094778945
.long    1414812672,4025417967
.long    1532713728,2475884691
.long    505290240,421068825
.long    2509608192,555810849
.long    3772833792,235798542
.long    4294967040,1313734734
.long    1684300800,1701118053
.long    3537031680,3183280317
.long    269488128,3099066552
.long    3301229568,2408513679
.long    0,3958046955
.long    1212696576,3469607118
.long    2745410304,808452144
.long    4160222976,1600061535
.long    1970631936,3318022341
.long    3688618752,437911578
.long    2324335104,3789619425
.long    50529024,3402236106
.long    3873891840,1195835463
.long    3671775744,1027407933
.long    151587072,16842753
.long    1061109504,3604349142
.long    3722304768,1448476758
.long    2492765184,1296891981
.long    2273806080,218955789
.long    1549556736,1717960806
.long    2206434048,3435921612
.long    33686016,757923885
.long    3452816640,303169554
.long    1246382592,538968096
.long    2425393152,2981167281
.long    858993408,2576941209
.long    1936945920,1280049228
.long    1734829824,3267494082
.long    4143379968,2122186878
.long    4092850944,84213765
.long    2644352256,3082223799
.long    2139062016,825294897
.long    3217014528,387383319
.long    3806519808,3621191895
.long    1381126656,1482162264
.long    2610666240,1633747041
.long    3638089728,454754331
.long    640034304,471597084
.long    3368601600,252641295
.long    926365440,370540566
.long    3334915584,404226072
.long    993737472,572653602
.long    2172748032,1145307204
.long    2526451200,2998010034
.long    1869573888,3048538293
.long    1263225600,2442199185
.long    320017152,134742024
.long    3200171520,2829582504
.long    1667457792,4244373756
.long    774778368,1347420240
.long    3924420864,3503292624
.long    2038003968,2105344125
.long    2812782336,2307457161
.long    2358021120,2543255703
.long    2678038272,1532690523
.long    1852730880,2509570197
.long    3166485504,4294902015
.long    2391707136,3536978130
.long    690563328,3301179588
.long    4126536960,1212678216
.long    4193908992,4160159991
.long    3065427456,3688562907
.long    791621376,50528259
.long    4261281024,3671720154
.long    3031741440,1061093439
.long    1499027712,2492727444
.long    2021160960,1549533276
.long    2560137216,33685506
.long    101058048,1246363722
.long    1785358848,858980403
.long    3890734848,1734803559
.long    1179010560,4092788979
.long    1903259904,2139029631
.long    3132799488,3806462178
.long    3570717696,2610626715
.long    623191296,640024614
.long    2880154368,926351415
.long    1111638528,993722427
.long    2290649088,2526412950
.long    2728567296,1263206475
.long    2374864128,3200123070
.long    4210752000,774766638
.long    1920102912,2037973113
.long    117901056,2357985420
.long    3115956480,1852702830
.long    1431655680,2391670926
.long    4177065984,4126474485
.long    4008635904,3065381046
.long    2896997376,4261216509
.long    168430080,1499005017
.long    909522432,2560098456
.long    1229539584,1785331818
.long    707406336,1178992710
.long    1751672832,3132752058
.long    1010580480,623181861
.long    943208448,1111621698
.long    4059164928,2728525986
.long    2762253312,4210688250
.long    1077952512,117899271
.long    673720320,1431634005
.long    3553874688,4008575214
.long    2071689984,168427530
.long    3149642496,1229520969
.long    3385444608,1751646312
.long    1128481536,943194168
.long    3250700544,2762211492
.long    353703168,673710120
.long    3823362816,2071658619
.long    2913840384,3385393353
.long    4109693952,3250651329
.long    2004317952,3823304931
.long    3351758592,4109631732
.long    2155905024,3351707847
.long    2661195264,2661154974
.long    14737632,939538488
.long    328965,1090535745
.long    5789784,369104406
.long    14277081,1979741814
.long    6776679,3640711641
.long    5131854,2466288531
.long    8487297,1610637408
.long    13355979,4060148466
.long    13224393,1912631922
.long    723723,3254829762
.long    11447982,2868947883
.long    6974058,2583730842
.long    14013909,1962964341
.long    1579032,100664838
.long    6118749,1459640151
.long    8553090,2684395680
.long    4605510,2432733585
.long    14671839,4144035831
.long    14079702,3036722613
.long    2565927,3372272073
.long    9079434,2717950626
.long    3289650,2348846220
.long    4934475,3523269330
.long    4342338,2415956112
.long    14408667,4127258358
.long    1842204,117442311
.long    10395294,2801837991
.long    10263708,654321447
.long    3815994,2382401166
.long    13290186,2986390194
.long    2434341,1224755529
.long    8092539,3724599006
.long    855309,1124090691
.long    7434609,1543527516
.long    6250335,3607156695
.long    2039583,3338717127
.long    16316664,1040203326
.long    14145495,4110480885
.long    4079166,2399178639
.long    10329501,1728079719
.long    8158332,520101663
.long    6316128,402659352
.long    12171705,1845522030
.long    12500670,2936057775
.long    12369084,788541231
.long    9145227,3791708898
.long    1447446,2231403909
.long    3421236,218107149
.long    5066061,1392530259
.long    12829635,4026593520
.long    7500402,2617285788
.long    9803157,1694524773
.long    11250603,3925928682
.long    9342606,2734728099
.long    12237498,2919280302
.long    8026746,2650840734
.long    11776947,3959483628
.long    131586,2147516544
.long    11842740,754986285
.long    11382189,1795189611
.long    10658466,2818615464
.long    11316396,721431339
.long    14211288,905983542
.long    10132122,2785060518
.long    1513239,3305162181
.long    1710618,2248181382
.long    3487029,1291865421
.long    13421772,855651123
.long    16250871,4244700669
.long    10066329,1711302246
.long    6381921,1476417624
.long    5921370,2516620950
.long    15263976,973093434
.long    2368548,150997257
.long    5658198,2499843477
.long    4210752,268439568
.long    14803425,2013296760
.long    6513507,3623934168
.long    592137,1107313218
.long    3355443,3422604492
.long    12566463,4009816047
.long    10000536,637543974
.long    9934743,3842041317
.long    8750469,1627414881
.long    6842472,436214298
.long    16579836,1056980799
.long    15527148,989870907
.long    657930,2181071490
.long    14342874,3053500086
.long    7303023,3674266587
.long    5460819,3556824276
.long    6447714,2550175896
.long    10724259,3892373736
.long    3026478,2332068747
.long    526344,33554946
.long    11513775,3942706155
.long    2631720,167774730
.long    11579568,738208812
.long    7631988,486546717
.long    12763842,2952835248
.long    12434877,1862299503
.long    3552822,2365623693
.long    2236962,2281736328
.long    3684408,234884622
.long    6579300,419436825
.long    1973790,2264958855
.long    3750201,1308642894
.long    2894892,184552203
.long    10921638,2835392937
.long    3158064,201329676
.long    15066597,2030074233
.long    4473924,285217041
.long    16645629,2130739071
.long    8947848,570434082
.long    10461087,3875596263
.long    6645093,1493195097
.long    8882055,3774931425
.long    7039851,3657489114
.long    16053492,1023425853
.long    2302755,3355494600
.long    4737096,301994514
.long    1052688,67109892
.long    13750737,1946186868
.long    5329233,1409307732
.long    12632256,805318704
.long    16382457,2113961598
.long    13816530,3019945140
.long    10526880,671098920
.long    5592405,1426085205
.long    10592673,1744857192
.long    4276545,1342197840
.long    16448250,3187719870
.long    4408131,3489714384
.long    1250067,3288384708
.long    12895428,822096177
.long    3092271,3405827019
.long    11053224,704653866
.long    11974326,2902502829
.long    3947580,251662095
.long    2829099,3389049546
.long    12698049,1879076976
.long    16777215,4278255615
.long    13158600,838873650
.long    10855845,1761634665
.long    2105376,134219784
.long    9013641,1644192354
.long    0,0
.long    9474192,603989028
.long    4671303,3506491857
.long    15724527,4211145723
.long    15395562,3120609978
.long    12040119,3976261101
.long    1381653,1157645637
.long    394758,2164294017
.long    13487565,1929409395
.long    11908533,1828744557
.long    1184274,2214626436
.long    8289918,2667618207
.long    12303291,3993038574
.long    2697513,1241533002
.long    986895,3271607235
.long    12105912,771763758
.long    460551,3238052289
.long    263172,16777473
.long    10197915,3858818790
.long    9737364,620766501
.long    2171169,1207978056
.long    6710886,2566953369
.long    15132390,3103832505
.long    13553358,3003167667
.long    15592941,2063629179
.long    15198183,4177590777
.long    3881787,3456159438
.long    16711422,3204497343
.long    8355711,3741376479
.long    12961221,1895854449
.long    10790052,687876393
.long    3618615,3439381965
.long    11645361,1811967084
.long    5000268,318771987
.long    9539985,1677747300
.long    7237230,2600508315
.long    9276813,1660969827
.long    7763574,2634063261
.long    197379,3221274816
.long    2960685,1258310475
.long    14606046,3070277559
.long    9868950,2768283045
.long    2500134,2298513801
.long    8224125,1593859935
.long    13027014,2969612721
.long    6052956,385881879
.long    13882323,4093703412
.long    15921906,3154164924
.long    5197647,3540046803
.long    1644825,1174423110
.long    4144959,3472936911
.long    14474460,922761015
.long    7960953,1577082462
.long    1907997,1191200583
.long    5395026,2483066004
.long    15461355,4194368250
.long    15987699,4227923196
.long    7171437,1526750043
.long    6184542,2533398423
.long    16514043,4261478142
.long    6908265,1509972570
.long    11711154,2885725356
.long    15790320,1006648380
.long    3223857,1275087948
.long    789516,50332419
.long    13948116,889206069
.long    13619151,4076925939
.long    9211020,587211555
.long    14869218,3087055032
.long    7697781,1560304989
.long    11119017,1778412138
.long    4868682,2449511058
.long    5723991,3573601749
.long    8684676,553656609
.long    1118481,1140868164
.long    4539717,1358975313
.long    1776411,3321939654
.long    16119285,2097184125
.long    15000804,956315961
.long    921102,2197848963
.long    7566195,3691044060
.long    11184810,2852170410
.long    15856113,2080406652
.long    14540253,1996519287
.long    5855577,1442862678
.long    1315860,83887365
.long    7105644,452991771
.long    9605778,2751505572
.long    5526612,352326933
.long    13684944,872428596
.long    7895160,503324190
.long    7368816,469769244
.long    14935011,4160813304
.long    4802889,1375752786
.long    8421504,536879136
.long    5263440,335549460
.long    10987431,3909151209
.long    16185078,3170942397
.long    7829367,3707821533
.long    9671571,3825263844
.long    8816262,2701173153
.long    8618883,3758153952
.long    2763306,2315291274
.long    13092807,4043370993
.long    5987163,3590379222
.long    15329769,2046851706
.long    15658734,3137387451
.long    9408399,3808486371
.long    65793,1073758272
.long    4013373,1325420367
.globl    _Camellia_cbc_encrypt
.align    4
_Camellia_cbc_encrypt:
L_Camellia_cbc_encrypt_begin:
    pushl    %ebp
    pushl    %ebx
    pushl    %esi
    pushl    %edi
    movl    28(%esp),%ecx
    cmpl    $0,%ecx
    je    L016enc_out
    pushfl
    cld
    movl    24(%esp),%eax
    movl    28(%esp),%ebx
    movl    36(%esp),%edx
    movl    40(%esp),%ebp
    leal    -64(%esp),%esi
    andl    $-64,%esi
    leal    -127(%edx),%edi
    subl    %esi,%edi
    negl    %edi
    andl    $960,%edi
    subl    %edi,%esi
    movl    44(%esp),%edi
    xchgl    %esi,%esp
    addl    $4,%esp
    movl    %esi,20(%esp)
    movl    %eax,24(%esp)
    movl    %ebx,28(%esp)
    movl    %ecx,32(%esp)
    movl    %edx,36(%esp)
    movl    %ebp,40(%esp)
    call    L017pic_point
L017pic_point:
    popl    %ebp
    leal    LCamellia_SBOX-L017pic_point(%ebp),%ebp
    movl    $32,%esi
.align    2,0x90
L018prefetch_sbox:
    movl    (%ebp),%eax
    movl    32(%ebp),%ebx
    movl    64(%ebp),%ecx
    movl    96(%ebp),%edx
    leal    128(%ebp),%ebp
    decl    %esi
    jnz    L018prefetch_sbox
    movl    36(%esp),%eax
    subl    $4096,%ebp
    movl    24(%esp),%esi
    movl    272(%eax),%edx
    cmpl    $0,%edi
    je    L019DECRYPT
    movl    32(%esp),%ecx
    movl    40(%esp),%edi
    shll    $6,%edx
    leal    (%eax,%edx,1),%edx
    movl    %edx,16(%esp)
    testl    $4294967280,%ecx
    jz    L020enc_tail
    movl    (%edi),%eax
    movl    4(%edi),%ebx
.align    2,0x90
L021enc_loop:
    movl    8(%edi),%ecx
    movl    12(%edi),%edx
    xorl    (%esi),%eax
    xorl    4(%esi),%ebx
    xorl    8(%esi),%ecx
    bswap    %eax
    xorl    12(%esi),%edx
    bswap    %ebx
    movl    36(%esp),%edi
    bswap    %ecx
    bswap    %edx
    call    __x86_Camellia_encrypt
    movl    24(%esp),%esi
    movl    28(%esp),%edi
    bswap    %eax
    bswap    %ebx
    bswap    %ecx
    movl    %eax,(%edi)
    bswap    %edx
    movl    %ebx,4(%edi)
    movl    %ecx,8(%edi)
    movl    %edx,12(%edi)
    movl    32(%esp),%ecx
    leal    16(%esi),%esi
    movl    %esi,24(%esp)
    leal    16(%edi),%edx
    movl    %edx,28(%esp)
    subl    $16,%ecx
    testl    $4294967280,%ecx
    movl    %ecx,32(%esp)
    jnz    L021enc_loop
    testl    $15,%ecx
    jnz    L020enc_tail
    movl    40(%esp),%esi
    movl    8(%edi),%ecx
    movl    12(%edi),%edx
    movl    %eax,(%esi)
    movl    %ebx,4(%esi)
    movl    %ecx,8(%esi)
    movl    %edx,12(%esi)
    movl    20(%esp),%esp
    popfl
L016enc_out:
    popl    %edi
    popl    %esi
    popl    %ebx
    popl    %ebp
    ret
    pushfl
.align    2,0x90
L020enc_tail:
    movl    %edi,%eax
    movl    28(%esp),%edi
    pushl    %eax
    movl    $16,%ebx
    subl    %ecx,%ebx
    cmpl    %esi,%edi
    je    L022enc_in_place
.align    2,0x90
.long    2767451785
    jmp    L023enc_skip_in_place
L022enc_in_place:
    leal    (%edi,%ecx,1),%edi
L023enc_skip_in_place:
    movl    %ebx,%ecx
    xorl    %eax,%eax
.align    2,0x90
.long    2868115081
    popl    %edi
    movl    28(%esp),%esi
    movl    (%edi),%eax
    movl    4(%edi),%ebx
    movl    $16,32(%esp)
    jmp    L021enc_loop
.align    4,0x90
L019DECRYPT:
    shll    $6,%edx
    leal    (%eax,%edx,1),%edx
    movl    %eax,16(%esp)
    movl    %edx,36(%esp)
    cmpl    28(%esp),%esi
    je    L024dec_in_place
    movl    40(%esp),%edi
    movl    %edi,44(%esp)
.align    2,0x90
L025dec_loop:
    movl    (%esi),%eax
    movl    4(%esi),%ebx
    movl    8(%esi),%ecx
    bswap    %eax
    movl    12(%esi),%edx
    bswap    %ebx
    movl    36(%esp),%edi
    bswap    %ecx
    bswap    %edx
    call    __x86_Camellia_decrypt
    movl    44(%esp),%edi
    movl    32(%esp),%esi
    bswap    %eax
    bswap    %ebx
    bswap    %ecx
    xorl    (%edi),%eax
    bswap    %edx
    xorl    4(%edi),%ebx
    xorl    8(%edi),%ecx
    xorl    12(%edi),%edx
    subl    $16,%esi
    jc    L026dec_partial
    movl    %esi,32(%esp)
    movl    24(%esp),%esi
    movl    28(%esp),%edi
    movl    %eax,(%edi)
    movl    %ebx,4(%edi)
    movl    %ecx,8(%edi)
    movl    %edx,12(%edi)
    movl    %esi,44(%esp)
    leal    16(%esi),%esi
    movl    %esi,24(%esp)
    leal    16(%edi),%edi
    movl    %edi,28(%esp)
    jnz    L025dec_loop
    movl    44(%esp),%edi
L027dec_end:
    movl    40(%esp),%esi
    movl    (%edi),%eax
    movl    4(%edi),%ebx
    movl    8(%edi),%ecx
    movl    12(%edi),%edx
    movl    %eax,(%esi)
    movl    %ebx,4(%esi)
    movl    %ecx,8(%esi)
    movl    %edx,12(%esi)
    jmp    L028dec_out
.align    2,0x90
L026dec_partial:
    leal    44(%esp),%edi
    movl    %eax,(%edi)
    movl    %ebx,4(%edi)
    movl    %ecx,8(%edi)
    movl    %edx,12(%edi)
    leal    16(%esi),%ecx
    movl    %edi,%esi
    movl    28(%esp),%edi
.long    2767451785
    movl    24(%esp),%edi
    jmp    L027dec_end
.align    2,0x90
L024dec_in_place:
L029dec_in_place_loop:
    leal    44(%esp),%edi
    movl    (%esi),%eax
    movl    4(%esi),%ebx
    movl    8(%esi),%ecx
    movl    12(%esi),%edx
    movl    %eax,(%edi)
    movl    %ebx,4(%edi)
    movl    %ecx,8(%edi)
    bswap    %eax
    movl    %edx,12(%edi)
    bswap    %ebx
    movl    36(%esp),%edi
    bswap    %ecx
    bswap    %edx
    call    __x86_Camellia_decrypt
    movl    40(%esp),%edi
    movl    28(%esp),%esi
    bswap    %eax
    bswap    %ebx
    bswap    %ecx
    xorl    (%edi),%eax
    bswap    %edx
    xorl    4(%edi),%ebx
    xorl    8(%edi),%ecx
    xorl    12(%edi),%edx
    movl    %eax,(%esi)
    movl    %ebx,4(%esi)
    movl    %ecx,8(%esi)
    movl    %edx,12(%esi)
    leal    16(%esi),%esi
    movl    %esi,28(%esp)
    leal    44(%esp),%esi
    movl    (%esi),%eax
    movl    4(%esi),%ebx
    movl    8(%esi),%ecx
    movl    12(%esi),%edx
    movl    %eax,(%edi)
    movl    %ebx,4(%edi)
    movl    %ecx,8(%edi)
    movl    %edx,12(%edi)
    movl    24(%esp),%esi
    leal    16(%esi),%esi
    movl    %esi,24(%esp)
    movl    32(%esp),%ecx
    subl    $16,%ecx
    jc    L030dec_in_place_partial
    movl    %ecx,32(%esp)
    jnz    L029dec_in_place_loop
    jmp    L028dec_out
.align    2,0x90
L030dec_in_place_partial:
    movl    28(%esp),%edi
    leal    44(%esp),%esi
    leal    (%edi,%ecx,1),%edi
    leal    16(%esi,%ecx,1),%esi
    negl    %ecx
.long    2767451785
.align    2,0x90
L028dec_out:
    movl    20(%esp),%esp
    popfl
    popl    %edi
    popl    %esi
    popl    %ebx
    popl    %ebp
    ret
.byte    67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54
.byte    32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
.byte    115,108,46,111,114,103,62,0