deps/openssl/asm/x86-elf-gas/rc5/rc5-586.s

Summary

Maintainability
Test Coverage
.file    "rc5-586.s"
.text
.globl    RC5_32_encrypt
.type    RC5_32_encrypt,@function
.align    16
RC5_32_encrypt:
.L_RC5_32_encrypt_begin:

    pushl    %ebp
    pushl    %esi
    pushl    %edi
    movl    16(%esp),%edx
    movl    20(%esp),%ebp

    movl    (%edx),%edi
    movl    4(%edx),%esi
    pushl    %ebx
    movl    (%ebp),%ebx
    addl    4(%ebp),%edi
    addl    8(%ebp),%esi
    xorl    %esi,%edi
    movl    12(%ebp),%eax
    movl    %esi,%ecx
    roll    %cl,%edi
    addl    %eax,%edi
    xorl    %edi,%esi
    movl    16(%ebp),%eax
    movl    %edi,%ecx
    roll    %cl,%esi
    addl    %eax,%esi
    xorl    %esi,%edi
    movl    20(%ebp),%eax
    movl    %esi,%ecx
    roll    %cl,%edi
    addl    %eax,%edi
    xorl    %edi,%esi
    movl    24(%ebp),%eax
    movl    %edi,%ecx
    roll    %cl,%esi
    addl    %eax,%esi
    xorl    %esi,%edi
    movl    28(%ebp),%eax
    movl    %esi,%ecx
    roll    %cl,%edi
    addl    %eax,%edi
    xorl    %edi,%esi
    movl    32(%ebp),%eax
    movl    %edi,%ecx
    roll    %cl,%esi
    addl    %eax,%esi
    xorl    %esi,%edi
    movl    36(%ebp),%eax
    movl    %esi,%ecx
    roll    %cl,%edi
    addl    %eax,%edi
    xorl    %edi,%esi
    movl    40(%ebp),%eax
    movl    %edi,%ecx
    roll    %cl,%esi
    addl    %eax,%esi
    xorl    %esi,%edi
    movl    44(%ebp),%eax
    movl    %esi,%ecx
    roll    %cl,%edi
    addl    %eax,%edi
    xorl    %edi,%esi
    movl    48(%ebp),%eax
    movl    %edi,%ecx
    roll    %cl,%esi
    addl    %eax,%esi
    xorl    %esi,%edi
    movl    52(%ebp),%eax
    movl    %esi,%ecx
    roll    %cl,%edi
    addl    %eax,%edi
    xorl    %edi,%esi
    movl    56(%ebp),%eax
    movl    %edi,%ecx
    roll    %cl,%esi
    addl    %eax,%esi
    xorl    %esi,%edi
    movl    60(%ebp),%eax
    movl    %esi,%ecx
    roll    %cl,%edi
    addl    %eax,%edi
    xorl    %edi,%esi
    movl    64(%ebp),%eax
    movl    %edi,%ecx
    roll    %cl,%esi
    addl    %eax,%esi
    xorl    %esi,%edi
    movl    68(%ebp),%eax
    movl    %esi,%ecx
    roll    %cl,%edi
    addl    %eax,%edi
    xorl    %edi,%esi
    movl    72(%ebp),%eax
    movl    %edi,%ecx
    roll    %cl,%esi
    addl    %eax,%esi
    cmpl    $8,%ebx
    je    .L000rc5_exit
    xorl    %esi,%edi
    movl    76(%ebp),%eax
    movl    %esi,%ecx
    roll    %cl,%edi
    addl    %eax,%edi
    xorl    %edi,%esi
    movl    80(%ebp),%eax
    movl    %edi,%ecx
    roll    %cl,%esi
    addl    %eax,%esi
    xorl    %esi,%edi
    movl    84(%ebp),%eax
    movl    %esi,%ecx
    roll    %cl,%edi
    addl    %eax,%edi
    xorl    %edi,%esi
    movl    88(%ebp),%eax
    movl    %edi,%ecx
    roll    %cl,%esi
    addl    %eax,%esi
    xorl    %esi,%edi
    movl    92(%ebp),%eax
    movl    %esi,%ecx
    roll    %cl,%edi
    addl    %eax,%edi
    xorl    %edi,%esi
    movl    96(%ebp),%eax
    movl    %edi,%ecx
    roll    %cl,%esi
    addl    %eax,%esi
    xorl    %esi,%edi
    movl    100(%ebp),%eax
    movl    %esi,%ecx
    roll    %cl,%edi
    addl    %eax,%edi
    xorl    %edi,%esi
    movl    104(%ebp),%eax
    movl    %edi,%ecx
    roll    %cl,%esi
    addl    %eax,%esi
    cmpl    $12,%ebx
    je    .L000rc5_exit
    xorl    %esi,%edi
    movl    108(%ebp),%eax
    movl    %esi,%ecx
    roll    %cl,%edi
    addl    %eax,%edi
    xorl    %edi,%esi
    movl    112(%ebp),%eax
    movl    %edi,%ecx
    roll    %cl,%esi
    addl    %eax,%esi
    xorl    %esi,%edi
    movl    116(%ebp),%eax
    movl    %esi,%ecx
    roll    %cl,%edi
    addl    %eax,%edi
    xorl    %edi,%esi
    movl    120(%ebp),%eax
    movl    %edi,%ecx
    roll    %cl,%esi
    addl    %eax,%esi
    xorl    %esi,%edi
    movl    124(%ebp),%eax
    movl    %esi,%ecx
    roll    %cl,%edi
    addl    %eax,%edi
    xorl    %edi,%esi
    movl    128(%ebp),%eax
    movl    %edi,%ecx
    roll    %cl,%esi
    addl    %eax,%esi
    xorl    %esi,%edi
    movl    132(%ebp),%eax
    movl    %esi,%ecx
    roll    %cl,%edi
    addl    %eax,%edi
    xorl    %edi,%esi
    movl    136(%ebp),%eax
    movl    %edi,%ecx
    roll    %cl,%esi
    addl    %eax,%esi
.L000rc5_exit:
    movl    %edi,(%edx)
    movl    %esi,4(%edx)
    popl    %ebx
    popl    %edi
    popl    %esi
    popl    %ebp
    ret
.size    RC5_32_encrypt,.-.L_RC5_32_encrypt_begin
.globl    RC5_32_decrypt
.type    RC5_32_decrypt,@function
.align    16
RC5_32_decrypt:
.L_RC5_32_decrypt_begin:

    pushl    %ebp
    pushl    %esi
    pushl    %edi
    movl    16(%esp),%edx
    movl    20(%esp),%ebp

    movl    (%edx),%edi
    movl    4(%edx),%esi
    pushl    %ebx
    movl    (%ebp),%ebx
    cmpl    $12,%ebx
    je    .L001rc5_dec_12
    cmpl    $8,%ebx
    je    .L002rc5_dec_8
    movl    136(%ebp),%eax
    subl    %eax,%esi
    movl    %edi,%ecx
    rorl    %cl,%esi
    xorl    %edi,%esi
    movl    132(%ebp),%eax
    subl    %eax,%edi
    movl    %esi,%ecx
    rorl    %cl,%edi
    xorl    %esi,%edi
    movl    128(%ebp),%eax
    subl    %eax,%esi
    movl    %edi,%ecx
    rorl    %cl,%esi
    xorl    %edi,%esi
    movl    124(%ebp),%eax
    subl    %eax,%edi
    movl    %esi,%ecx
    rorl    %cl,%edi
    xorl    %esi,%edi
    movl    120(%ebp),%eax
    subl    %eax,%esi
    movl    %edi,%ecx
    rorl    %cl,%esi
    xorl    %edi,%esi
    movl    116(%ebp),%eax
    subl    %eax,%edi
    movl    %esi,%ecx
    rorl    %cl,%edi
    xorl    %esi,%edi
    movl    112(%ebp),%eax
    subl    %eax,%esi
    movl    %edi,%ecx
    rorl    %cl,%esi
    xorl    %edi,%esi
    movl    108(%ebp),%eax
    subl    %eax,%edi
    movl    %esi,%ecx
    rorl    %cl,%edi
    xorl    %esi,%edi
.L001rc5_dec_12:
    movl    104(%ebp),%eax
    subl    %eax,%esi
    movl    %edi,%ecx
    rorl    %cl,%esi
    xorl    %edi,%esi
    movl    100(%ebp),%eax
    subl    %eax,%edi
    movl    %esi,%ecx
    rorl    %cl,%edi
    xorl    %esi,%edi
    movl    96(%ebp),%eax
    subl    %eax,%esi
    movl    %edi,%ecx
    rorl    %cl,%esi
    xorl    %edi,%esi
    movl    92(%ebp),%eax
    subl    %eax,%edi
    movl    %esi,%ecx
    rorl    %cl,%edi
    xorl    %esi,%edi
    movl    88(%ebp),%eax
    subl    %eax,%esi
    movl    %edi,%ecx
    rorl    %cl,%esi
    xorl    %edi,%esi
    movl    84(%ebp),%eax
    subl    %eax,%edi
    movl    %esi,%ecx
    rorl    %cl,%edi
    xorl    %esi,%edi
    movl    80(%ebp),%eax
    subl    %eax,%esi
    movl    %edi,%ecx
    rorl    %cl,%esi
    xorl    %edi,%esi
    movl    76(%ebp),%eax
    subl    %eax,%edi
    movl    %esi,%ecx
    rorl    %cl,%edi
    xorl    %esi,%edi
.L002rc5_dec_8:
    movl    72(%ebp),%eax
    subl    %eax,%esi
    movl    %edi,%ecx
    rorl    %cl,%esi
    xorl    %edi,%esi
    movl    68(%ebp),%eax
    subl    %eax,%edi
    movl    %esi,%ecx
    rorl    %cl,%edi
    xorl    %esi,%edi
    movl    64(%ebp),%eax
    subl    %eax,%esi
    movl    %edi,%ecx
    rorl    %cl,%esi
    xorl    %edi,%esi
    movl    60(%ebp),%eax
    subl    %eax,%edi
    movl    %esi,%ecx
    rorl    %cl,%edi
    xorl    %esi,%edi
    movl    56(%ebp),%eax
    subl    %eax,%esi
    movl    %edi,%ecx
    rorl    %cl,%esi
    xorl    %edi,%esi
    movl    52(%ebp),%eax
    subl    %eax,%edi
    movl    %esi,%ecx
    rorl    %cl,%edi
    xorl    %esi,%edi
    movl    48(%ebp),%eax
    subl    %eax,%esi
    movl    %edi,%ecx
    rorl    %cl,%esi
    xorl    %edi,%esi
    movl    44(%ebp),%eax
    subl    %eax,%edi
    movl    %esi,%ecx
    rorl    %cl,%edi
    xorl    %esi,%edi
    movl    40(%ebp),%eax
    subl    %eax,%esi
    movl    %edi,%ecx
    rorl    %cl,%esi
    xorl    %edi,%esi
    movl    36(%ebp),%eax
    subl    %eax,%edi
    movl    %esi,%ecx
    rorl    %cl,%edi
    xorl    %esi,%edi
    movl    32(%ebp),%eax
    subl    %eax,%esi
    movl    %edi,%ecx
    rorl    %cl,%esi
    xorl    %edi,%esi
    movl    28(%ebp),%eax
    subl    %eax,%edi
    movl    %esi,%ecx
    rorl    %cl,%edi
    xorl    %esi,%edi
    movl    24(%ebp),%eax
    subl    %eax,%esi
    movl    %edi,%ecx
    rorl    %cl,%esi
    xorl    %edi,%esi
    movl    20(%ebp),%eax
    subl    %eax,%edi
    movl    %esi,%ecx
    rorl    %cl,%edi
    xorl    %esi,%edi
    movl    16(%ebp),%eax
    subl    %eax,%esi
    movl    %edi,%ecx
    rorl    %cl,%esi
    xorl    %edi,%esi
    movl    12(%ebp),%eax
    subl    %eax,%edi
    movl    %esi,%ecx
    rorl    %cl,%edi
    xorl    %esi,%edi
    subl    8(%ebp),%esi
    subl    4(%ebp),%edi
.L003rc5_exit:
    movl    %edi,(%edx)
    movl    %esi,4(%edx)
    popl    %ebx
    popl    %edi
    popl    %esi
    popl    %ebp
    ret
.size    RC5_32_decrypt,.-.L_RC5_32_decrypt_begin
.globl    RC5_32_cbc_encrypt
.type    RC5_32_cbc_encrypt,@function
.align    16
RC5_32_cbc_encrypt:
.L_RC5_32_cbc_encrypt_begin:

    pushl    %ebp
    pushl    %ebx
    pushl    %esi
    pushl    %edi
    movl    28(%esp),%ebp

    movl    36(%esp),%ebx
    movl    (%ebx),%esi
    movl    4(%ebx),%edi
    pushl    %edi
    pushl    %esi
    pushl    %edi
    pushl    %esi
    movl    %esp,%ebx
    movl    36(%esp),%esi
    movl    40(%esp),%edi

    movl    56(%esp),%ecx

    movl    48(%esp),%eax
    pushl    %eax
    pushl    %ebx
    cmpl    $0,%ecx
    jz    .L004decrypt
    andl    $4294967288,%ebp
    movl    8(%esp),%eax
    movl    12(%esp),%ebx
    jz    .L005encrypt_finish
.L006encrypt_loop:
    movl    (%esi),%ecx
    movl    4(%esi),%edx
    xorl    %ecx,%eax
    xorl    %edx,%ebx
    movl    %eax,8(%esp)
    movl    %ebx,12(%esp)
    call    .L_RC5_32_encrypt_begin
    movl    8(%esp),%eax
    movl    12(%esp),%ebx
    movl    %eax,(%edi)
    movl    %ebx,4(%edi)
    addl    $8,%esi
    addl    $8,%edi
    subl    $8,%ebp
    jnz    .L006encrypt_loop
.L005encrypt_finish:
    movl    52(%esp),%ebp
    andl    $7,%ebp
    jz    .L007finish
    call    .L008PIC_point
.L008PIC_point:
    popl    %edx
    leal    .L009cbc_enc_jmp_table-.L008PIC_point(%edx),%ecx
    movl    (%ecx,%ebp,4),%ebp
    addl    %edx,%ebp
    xorl    %ecx,%ecx
    xorl    %edx,%edx
    jmp    *%ebp
.L010ej7:
    movb    6(%esi),%dh
    shll    $8,%edx
.L011ej6:
    movb    5(%esi),%dh
.L012ej5:
    movb    4(%esi),%dl
.L013ej4:
    movl    (%esi),%ecx
    jmp    .L014ejend
.L015ej3:
    movb    2(%esi),%ch
    shll    $8,%ecx
.L016ej2:
    movb    1(%esi),%ch
.L017ej1:
    movb    (%esi),%cl
.L014ejend:
    xorl    %ecx,%eax
    xorl    %edx,%ebx
    movl    %eax,8(%esp)
    movl    %ebx,12(%esp)
    call    .L_RC5_32_encrypt_begin
    movl    8(%esp),%eax
    movl    12(%esp),%ebx
    movl    %eax,(%edi)
    movl    %ebx,4(%edi)
    jmp    .L007finish
.L004decrypt:
    andl    $4294967288,%ebp
    movl    16(%esp),%eax
    movl    20(%esp),%ebx
    jz    .L018decrypt_finish
.L019decrypt_loop:
    movl    (%esi),%eax
    movl    4(%esi),%ebx
    movl    %eax,8(%esp)
    movl    %ebx,12(%esp)
    call    .L_RC5_32_decrypt_begin
    movl    8(%esp),%eax
    movl    12(%esp),%ebx
    movl    16(%esp),%ecx
    movl    20(%esp),%edx
    xorl    %eax,%ecx
    xorl    %ebx,%edx
    movl    (%esi),%eax
    movl    4(%esi),%ebx
    movl    %ecx,(%edi)
    movl    %edx,4(%edi)
    movl    %eax,16(%esp)
    movl    %ebx,20(%esp)
    addl    $8,%esi
    addl    $8,%edi
    subl    $8,%ebp
    jnz    .L019decrypt_loop
.L018decrypt_finish:
    movl    52(%esp),%ebp
    andl    $7,%ebp
    jz    .L007finish
    movl    (%esi),%eax
    movl    4(%esi),%ebx
    movl    %eax,8(%esp)
    movl    %ebx,12(%esp)
    call    .L_RC5_32_decrypt_begin
    movl    8(%esp),%eax
    movl    12(%esp),%ebx
    movl    16(%esp),%ecx
    movl    20(%esp),%edx
    xorl    %eax,%ecx
    xorl    %ebx,%edx
    movl    (%esi),%eax
    movl    4(%esi),%ebx
.L020dj7:
    rorl    $16,%edx
    movb    %dl,6(%edi)
    shrl    $16,%edx
.L021dj6:
    movb    %dh,5(%edi)
.L022dj5:
    movb    %dl,4(%edi)
.L023dj4:
    movl    %ecx,(%edi)
    jmp    .L024djend
.L025dj3:
    rorl    $16,%ecx
    movb    %cl,2(%edi)
    shll    $16,%ecx
.L026dj2:
    movb    %ch,1(%esi)
.L027dj1:
    movb    %cl,(%esi)
.L024djend:
    jmp    .L007finish
.L007finish:
    movl    60(%esp),%ecx
    addl    $24,%esp
    movl    %eax,(%ecx)
    movl    %ebx,4(%ecx)
    popl    %edi
    popl    %esi
    popl    %ebx
    popl    %ebp
    ret
.align    64
.L009cbc_enc_jmp_table:
.long    0
.long    .L017ej1-.L008PIC_point
.long    .L016ej2-.L008PIC_point
.long    .L015ej3-.L008PIC_point
.long    .L013ej4-.L008PIC_point
.long    .L012ej5-.L008PIC_point
.long    .L011ej6-.L008PIC_point
.long    .L010ej7-.L008PIC_point
.align    64
.size    RC5_32_cbc_encrypt,.-.L_RC5_32_cbc_encrypt_begin