fips-ax86-elf.s
来自「openssl包含TLS」· S 代码 · 共 1,712 行 · 第 1/3 页
S
1,712 行
je .L012enc_in_place.align 4 .long 4136215795 jmp .L013enc_skip_in_place.L012enc_in_place: leal (%edi,%ecx), %edi.L013enc_skip_in_place: movl %ebx, %ecx xorl %eax, %eax.align 4 .long 4136217331 popl %edi movl 24(%esp), %esi movl (%edi), %eax movl 4(%edi), %ebx movl $16, 28(%esp) jmp .L011enc_loop.align 4.L006DECRYPT: leal AES_Td-.L005pic_point(%ebp),%ebp leal -308(%esp), %edi andl $-64, %edi movl %ebp, %eax leal 3072(%ebp), %ebx movl %edi, %edx andl $4095, %eax andl $4095, %ebx andl $4095, %edx cmpl %ebx, %edx jb .L014td_break_out subl %ebx, %edx subl %edx, %edi jmp .L015td_ok.L014td_break_out: subl %eax, %edx andl $4095, %edx addl $320, %edx subl %edx, %edi.align 4.L015td_ok: movl 24(%esp), %eax movl 28(%esp), %ebx movl 36(%esp), %edx movl 40(%esp), %esi xchgl %edi, %esp addl $4, %esp movl %edi, 16(%esp) movl %eax, 20(%esp) movl %ebx, 24(%esp) movl %ecx, 28(%esp) movl %edx, 32(%esp) movl %esi, 36(%esp) movl $61, %ecx movl %edx, %esi leal 60(%esp), %edi movl %edi, 32(%esp).align 4 .long 4136216051 movl %eax, %esi movl $24, %edi.align 4.L016prefetch_td: movl (%ebp), %eax movl 32(%ebp), %ebx movl 64(%ebp), %ecx movl 96(%ebp), %edx leal 128(%ebp), %ebp decl %edi jnz .L016prefetch_td subl $3072, %ebp cmpl 24(%esp), %esi je .L017dec_in_place movl 36(%esp), %edi movl %edi, 40(%esp).align 4.L018dec_loop: movl (%esi), %eax movl 4(%esi), %ebx movl 8(%esi), %ecx movl 12(%esi), %edx movl 32(%esp), %edi call _x86_AES_decrypt movl 40(%esp), %edi movl 28(%esp), %esi xorl (%edi), %eax xorl 4(%edi), %ebx xorl 8(%edi), %ecx xorl 12(%edi), %edx subl $16, %esi jc .L019dec_partial movl %esi, 28(%esp) movl 20(%esp), %esi movl 24(%esp), %edi movl %eax, (%edi) movl %ebx, 4(%edi) movl %ecx, 8(%edi) movl %edx, 12(%edi) movl %esi, 40(%esp) leal 16(%esi), %esi movl %esi, 20(%esp) leal 16(%edi), %edi movl %edi, 24(%esp) jnz .L018dec_loop movl 40(%esp), %edi.L020dec_end: movl 36(%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 .L021dec_out.align 4.L019dec_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 24(%esp), %edi .long 4136215795 movl 20(%esp), %edi jmp .L020dec_end.align 4.L017dec_in_place:.L022dec_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) movl %edx, 12(%edi) movl 32(%esp), %edi call _x86_AES_decrypt movl 36(%esp), %edi movl 24(%esp), %esi xorl (%edi), %eax 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, 24(%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 20(%esp), %esi leal 16(%esi), %esi movl %esi, 20(%esp) movl 28(%esp), %ecx subl $16, %ecx jc .L023dec_in_place_partial movl %ecx, 28(%esp) jnz .L022dec_in_place_loop jmp .L021dec_out.align 4.L023dec_in_place_partial: movl 24(%esp), %edi leal 44(%esp), %esi leal (%edi,%ecx), %edi leal 16(%esi,%ecx), %esi negl %ecx .long 4136215795.align 4.L021dec_out: movl 32(%esp), %edi movl 16(%esp), %esp movl $60, %ecx xorl %eax, %eax.align 4 .long 4136217587 popfl popl %edi popl %esi popl %ebx popl %ebp ret.L_AES_cbc_encrypt_end:.size AES_cbc_encrypt,.L_AES_cbc_encrypt_end-AES_cbc_encrypt.ident "AES_cbc_encrypt".globl AES_Te.text.globl AES_set_encrypt_key.type AES_set_encrypt_key,@function.align 16AES_set_encrypt_key: pushl %ebp pushl %ebx pushl %esi pushl %edi call FIPS_selftest_failed cmpl $0,%eax mov $-3,%eax jne .L029exit movl 20(%esp), %esi movl 28(%esp), %edi testl $-1, %esi jz .L024badpointer testl $-1, %edi jz .L024badpointer call .L025pic_point.L025pic_point: popl %ebp leal AES_Te-.L025pic_point(%ebp),%ebp movl 24(%esp), %ecx cmpl $128, %ecx je .L02610rounds cmpl $192, %ecx je .L02712rounds cmpl $256, %ecx je .L02814rounds movl $-2, %eax jmp .L029exit.L02610rounds: 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) xorl %ecx, %ecx jmp .L03010shortcut.align 4.L03110loop: movl (%edi), %eax movl 12(%edi), %edx.L03010shortcut: movzbl %dl, %esi movl 2(%ebp,%esi,8), %ebx movzbl %dh, %esi andl $4278190080, %ebx xorl %ebx, %eax movl 2(%ebp,%esi,8), %ebx shrl $16, %edx andl $255, %ebx movzbl %dl, %esi xorl %ebx, %eax movl (%ebp,%esi,8), %ebx movzbl %dh, %esi andl $65280, %ebx xorl %ebx, %eax movl (%ebp,%esi,8), %ebx andl $16711680, %ebx xorl %ebx, %eax xorl 2048(%ebp,%ecx,4),%eax movl %eax, 16(%edi) xorl 4(%edi), %eax movl %eax, 20(%edi) xorl 8(%edi), %eax movl %eax, 24(%edi) xorl 12(%edi), %eax movl %eax, 28(%edi) incl %ecx addl $16, %edi cmpl $10, %ecx jl .L03110loop movl $10, 80(%edi) xorl %eax, %eax jmp .L029exit.L02712rounds: 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 16(%esi), %ecx movl 20(%esi), %edx movl %ecx, 16(%edi) movl %edx, 20(%edi) xorl %ecx, %ecx jmp .L03212shortcut.align 4.L03312loop: movl (%edi), %eax movl 20(%edi), %edx.L03212shortcut: movzbl %dl, %esi movl 2(%ebp,%esi,8), %ebx movzbl %dh, %esi andl $4278190080, %ebx xorl %ebx, %eax movl 2(%ebp,%esi,8), %ebx shrl $16, %edx andl $255, %ebx movzbl %dl, %esi xorl %ebx, %eax movl (%ebp,%esi,8), %ebx movzbl %dh, %esi andl $65280, %ebx xorl %ebx, %eax movl (%ebp,%esi,8), %ebx andl $16711680, %ebx xorl %ebx, %eax xorl 2048(%ebp,%ecx,4),%eax movl %eax, 24(%edi) xorl 4(%edi), %eax movl %eax, 28(%edi) xorl 8(%edi), %eax movl %eax, 32(%edi) xorl 12(%edi), %eax movl %eax, 36(%edi) cmpl $7, %ecx je .L03412break incl %ecx xorl 16(%edi), %eax movl %eax, 40(%edi) xorl 20(%edi), %eax movl %eax, 44(%edi) addl $24, %edi jmp .L03312loop.L03412break: movl $12, 72(%edi) xorl %eax, %eax jmp .L029exit.L02814rounds: 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 16(%esi), %eax movl 20(%esi), %ebx movl 24(%esi), %ecx movl 28(%esi), %edx movl %eax, 16(%edi) movl %ebx, 20(%edi) movl %ecx, 24(%edi) movl %edx, 28(%edi) xorl %ecx, %ecx jmp .L03514shortcut.align 4.L03614loop: movl 28(%edi), %edx.L03514shortcut: movl (%edi), %eax movzbl %dl, %esi movl 2(%ebp,%esi,8), %ebx movzbl %dh, %esi andl $4278190080, %ebx xorl %ebx, %eax movl 2(%ebp,%esi,8), %ebx shrl $16, %edx andl $255, %ebx movzbl %dl, %esi xorl %ebx, %eax movl (%ebp,%esi,8), %ebx movzbl %dh, %esi andl $65280, %ebx xorl %ebx, %eax movl (%ebp,%esi,8), %ebx andl $16711680, %ebx xorl %ebx, %eax xorl 2048(%ebp,%ecx,4),%eax movl %eax, 32(%edi) xorl 4(%edi), %eax movl %eax, 36(%edi) xorl 8(%edi), %eax movl %eax, 40(%edi) xorl 12(%edi), %eax movl %eax, 44(%edi) cmpl $6, %ecx je .L03714break incl %ecx movl %eax, %edx movl 16(%edi), %eax movzbl %dl, %esi movl 2(%ebp,%esi,8), %ebx movzbl %dh, %esi andl $255, %ebx xorl %ebx, %eax movl (%ebp,%esi,8), %ebx shrl $16, %edx andl $65280, %ebx movzbl %dl, %esi xorl %ebx, %eax movl (%ebp,%esi,8), %ebx movzbl %dh, %esi andl $16711680, %ebx xorl %ebx, %eax movl 2(%ebp,%esi,8), %ebx andl $4278190080, %ebx xorl %ebx, %eax movl %eax, 48(%edi) xorl 20(%edi), %eax movl %eax, 52(%edi) xorl 24(%edi), %eax movl %eax, 56(%edi) xorl 28(%edi), %eax movl %eax, 60(%edi) addl $32, %edi jmp .L03614loop.L03714break: movl $14, 48(%edi) xorl %eax, %eax jmp .L029exit.L024badpointer: movl $-1, %eax.L029exit: popl %edi popl %esi popl %ebx popl %ebp ret.L_AES_set_encrypt_key_end:.size AES_set_encrypt_key,.L_AES_set_encrypt_key_end-AES_set_encrypt_key.ident "AES_set_encrypt_key".globl AES_Td.globl AES_Te.text.globl AES_set_decrypt_key.type AES_set_decrypt_key,@function.align 16AES_set_decrypt_key: movl 4(%esp), %eax movl 8(%esp), %ecx movl 12(%esp), %edx subl $12, %esp movl %eax, (%esp) movl %ecx, 4(%esp) movl %edx, 8(%esp) call AES_set_encrypt_key addl $12, %esp cmpl $0, %eax je .L038proceed ret.L038proceed: pushl %ebp pushl %ebx pushl %esi pushl %edi movl 28(%esp), %esi movl 240(%esi), %ecx leal (,%ecx,4), %ecx leal (%esi,%ecx,4), %edi.align 4.L039invert: movl (%esi), %eax movl 4(%esi), %ebx movl (%edi), %ecx movl 4(%edi), %edx movl %eax, (%edi) movl %ebx, 4(%edi) movl %ecx, (%esi) movl %edx, 4(%esi) movl 8(%esi), %eax movl 12(%esi), %ebx movl 8(%edi), %ecx movl 12(%edi), %edx movl %eax, 8(%edi) movl %ebx, 12(%edi) movl %ecx, 8(%esi) movl %edx, 12(%esi) addl $16, %esi subl $16, %edi cmpl %edi, %esi jne .L039invert call .L040pic_point.L040pic_point: popl %ebp leal AES_Td-.L040pic_point(%ebp),%edi leal AES_Te-.L040pic_point(%ebp),%ebp movl 28(%esp), %esi movl 240(%esi), %ecx decl %ecx.align 4.L041permute: addl $16, %esi movl (%esi), %eax movl %eax, %edx movzbl %ah, %ebx shrl $16, %edx andl $255, %eax movzbl 2(%ebp,%eax,8), %eax movzbl 2(%ebp,%ebx,8), %ebx movl (%edi,%eax,8), %eax xorl 3(%edi,%ebx,8), %eax movzbl %dh, %ebx andl $255, %edx movzbl 2(%ebp,%edx,8), %edx movzbl 2(%ebp,%ebx,8), %ebx xorl 2(%edi,%edx,8), %eax xorl 1(%edi,%ebx,8), %eax movl %eax, (%esi) movl 4(%esi), %eax movl %eax, %edx movzbl %ah, %ebx shrl $16, %edx andl $255, %eax movzbl 2(%ebp,%eax,8), %eax movzbl 2(%ebp,%ebx,8), %ebx movl (%edi,%eax,8), %eax xorl 3(%edi,%ebx,8), %eax movzbl %dh, %ebx andl $255, %edx movzbl 2(%ebp,%edx,8), %edx movzbl 2(%ebp,%ebx,8), %ebx xorl 2(%edi,%edx,8), %eax xorl 1(%edi,%ebx,8), %eax movl %eax, 4(%esi) movl 8(%esi), %eax movl %eax, %edx movzbl %ah, %ebx shrl $16, %edx andl $255, %eax movzbl 2(%ebp,%eax,8), %eax movzbl 2(%ebp,%ebx,8), %ebx movl (%edi,%eax,8), %eax xorl 3(%edi,%ebx,8), %eax movzbl %dh, %ebx andl $255, %edx movzbl 2(%ebp,%edx,8), %edx movzbl 2(%ebp,%ebx,8), %ebx xorl 2(%edi,%edx,8), %eax xorl 1(%edi,%ebx,8), %eax movl %eax, 8(%esi) movl 12(%esi), %eax movl %eax, %edx movzbl %ah, %ebx shrl $16, %edx andl $255, %eax movzbl 2(%ebp,%eax,8), %eax movzbl 2(%ebp,%ebx,8), %ebx movl (%edi,%eax,8), %eax xorl 3(%edi,%ebx,8), %eax movzbl %dh, %ebx andl $255, %edx movzbl 2(%ebp,%edx,8), %edx movzbl 2(%ebp,%ebx,8), %ebx xorl 2(%edi,%edx,8), %eax xorl 1(%edi,%ebx,8), %eax movl %eax, 12(%esi) decl %ecx jnz .L041permute xorl %eax, %eax popl %edi popl %esi popl %ebx popl %ebp ret.L_AES_set_decrypt_key_end:.size AES_set_decrypt_key,.L_AES_set_decrypt_key_end-AES_set_decrypt_key.ident "AES_set_decrypt_key"
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?