📄 b-elf.s
字号:
# Don't even think of reading this code # It was automatically generated by bf-586.pl # Which is a perl program used to generate the x86 assember for # any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris # eric <eay@cryptsoft.com> .file "bf-586.s" .version "01.01"gcc2_compiled.:.text .align 16.globl BF_encrypt .type BF_encrypt,@functionBF_encrypt: pushl %ebp pushl %ebx movl 12(%esp), %ebx movl 16(%esp), %ebp pushl %esi pushl %edi # Load the 2 words movl (%ebx), %edi movl 4(%ebx), %esi xorl %eax, %eax movl (%ebp), %ebx xorl %ecx, %ecx xorl %ebx, %edi # Round 0 movl 4(%ebp), %edx movl %edi, %ebx xorl %edx, %esi shrl $16, %ebx movl %edi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %esi # Round 1 movl 8(%ebp), %edx movl %esi, %ebx xorl %edx, %edi shrl $16, %ebx movl %esi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %edi # Round 2 movl 12(%ebp), %edx movl %edi, %ebx xorl %edx, %esi shrl $16, %ebx movl %edi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %esi # Round 3 movl 16(%ebp), %edx movl %esi, %ebx xorl %edx, %edi shrl $16, %ebx movl %esi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %edi # Round 4 movl 20(%ebp), %edx movl %edi, %ebx xorl %edx, %esi shrl $16, %ebx movl %edi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %esi # Round 5 movl 24(%ebp), %edx movl %esi, %ebx xorl %edx, %edi shrl $16, %ebx movl %esi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %edi # Round 6 movl 28(%ebp), %edx movl %edi, %ebx xorl %edx, %esi shrl $16, %ebx movl %edi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %esi # Round 7 movl 32(%ebp), %edx movl %esi, %ebx xorl %edx, %edi shrl $16, %ebx movl %esi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %edi # Round 8 movl 36(%ebp), %edx movl %edi, %ebx xorl %edx, %esi shrl $16, %ebx movl %edi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %esi # Round 9 movl 40(%ebp), %edx movl %esi, %ebx xorl %edx, %edi shrl $16, %ebx movl %esi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %edi # Round 10 movl 44(%ebp), %edx movl %edi, %ebx xorl %edx, %esi shrl $16, %ebx movl %edi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %esi # Round 11 movl 48(%ebp), %edx movl %esi, %ebx xorl %edx, %edi shrl $16, %ebx movl %esi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %edi # Round 12 movl 52(%ebp), %edx movl %edi, %ebx xorl %edx, %esi shrl $16, %ebx movl %edi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %esi # Round 13 movl 56(%ebp), %edx movl %esi, %ebx xorl %edx, %edi shrl $16, %ebx movl %esi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %edi # Round 14 movl 60(%ebp), %edx movl %edi, %ebx xorl %edx, %esi shrl $16, %ebx movl %edi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %esi # Round 15 movl 64(%ebp), %edx movl %esi, %ebx xorl %edx, %edi shrl $16, %ebx movl %esi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx # Load parameter 0 (16) enc=1 movl 20(%esp), %eax xorl %ebx, %edi movl 68(%ebp), %edx xorl %edx, %esi movl %edi, 4(%eax) movl %esi, (%eax) popl %edi popl %esi popl %ebx popl %ebp ret.BF_encrypt_end: .size BF_encrypt,.BF_encrypt_end-BF_encrypt.ident "BF_encrypt".text .align 16.globl BF_decrypt .type BF_decrypt,@functionBF_decrypt: pushl %ebp pushl %ebx movl 12(%esp), %ebx movl 16(%esp), %ebp pushl %esi pushl %edi # Load the 2 words movl (%ebx), %edi movl 4(%ebx), %esi xorl %eax, %eax movl 68(%ebp), %ebx xorl %ecx, %ecx xorl %ebx, %edi # Round 16 movl 64(%ebp), %edx movl %edi, %ebx xorl %edx, %esi shrl $16, %ebx movl %edi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %esi # Round 15 movl 60(%ebp), %edx movl %esi, %ebx xorl %edx, %edi shrl $16, %ebx movl %esi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %edi # Round 14 movl 56(%ebp), %edx movl %edi, %ebx xorl %edx, %esi shrl $16, %ebx movl %edi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %esi # Round 13 movl 52(%ebp), %edx movl %esi, %ebx xorl %edx, %edi shrl $16, %ebx movl %esi, %edx movb %bh, %al andl $255, %ebx movb %dh, %cl andl $255, %edx movl 72(%ebp,%eax,4),%eax movl 1096(%ebp,%ebx,4),%ebx addl %eax, %ebx movl 2120(%ebp,%ecx,4),%eax xorl %eax, %ebx movl 3144(%ebp,%edx,4),%edx addl %edx, %ebx xorl %eax, %eax xorl %ebx, %edi # Round 12 movl 48(%ebp), %edx movl %edi, %ebx xorl %edx, %esi shrl $16, %ebx
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -