📄 bx86-cpp.s
字号:
/* Don't even think of reading this code */ /* It was automatically generated by bf586.pl */ /* Which is a perl program used to generate the x86 assember for */ /* any of elf, a.out, Win32, or Solaris */ /* It can be found in SSLeay 0.7.0+ */ /* eric <eay@cryptsoft.com> */ .file "bfx86xxxx.s" .version "01.01"gcc2_compiled.:.text .align ALIGN.globl BF_encrypt TYPE(BF_encrypt,@function)BF_encrypt: pushl %ebp pushl %ebx pushl %esi pushl %edi /* Load the 2 words */ movl 20(%esp), %eax movl (%eax), %ecx movl 4(%eax), %edx /* P pointer, s and enc flag */ movl 24(%esp), %edi xorl %eax, %eax xorl %ebx, %ebx movl 28(%esp), %ebp cmpl $0, %ebp je .L000start_decrypt xorl (%edi), %ecx /* Round 0 */ rorl $16, %ecx movl 4(%edi), %esi movb %ch, %al movb %cl, %bl rorl $16, %ecx xorl %esi, %edx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %ch, %al movb %cl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %edx /* Round 1 */ rorl $16, %edx movl 8(%edi), %esi movb %dh, %al movb %dl, %bl rorl $16, %edx xorl %esi, %ecx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %dh, %al movb %dl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %ecx /* Round 2 */ rorl $16, %ecx movl 12(%edi), %esi movb %ch, %al movb %cl, %bl rorl $16, %ecx xorl %esi, %edx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %ch, %al movb %cl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %edx /* Round 3 */ rorl $16, %edx movl 16(%edi), %esi movb %dh, %al movb %dl, %bl rorl $16, %edx xorl %esi, %ecx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %dh, %al movb %dl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %ecx /* Round 4 */ rorl $16, %ecx movl 20(%edi), %esi movb %ch, %al movb %cl, %bl rorl $16, %ecx xorl %esi, %edx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %ch, %al movb %cl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %edx /* Round 5 */ rorl $16, %edx movl 24(%edi), %esi movb %dh, %al movb %dl, %bl rorl $16, %edx xorl %esi, %ecx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %dh, %al movb %dl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %ecx /* Round 6 */ rorl $16, %ecx movl 28(%edi), %esi movb %ch, %al movb %cl, %bl rorl $16, %ecx xorl %esi, %edx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %ch, %al movb %cl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %edx /* Round 7 */ rorl $16, %edx movl 32(%edi), %esi movb %dh, %al movb %dl, %bl rorl $16, %edx xorl %esi, %ecx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %dh, %al movb %dl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %ecx /* Round 8 */ rorl $16, %ecx movl 36(%edi), %esi movb %ch, %al movb %cl, %bl rorl $16, %ecx xorl %esi, %edx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %ch, %al movb %cl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %edx /* Round 9 */ rorl $16, %edx movl 40(%edi), %esi movb %dh, %al movb %dl, %bl rorl $16, %edx xorl %esi, %ecx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %dh, %al movb %dl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %ecx /* Round 10 */ rorl $16, %ecx movl 44(%edi), %esi movb %ch, %al movb %cl, %bl rorl $16, %ecx xorl %esi, %edx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %ch, %al movb %cl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %edx /* Round 11 */ rorl $16, %edx movl 48(%edi), %esi movb %dh, %al movb %dl, %bl rorl $16, %edx xorl %esi, %ecx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %dh, %al movb %dl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %ecx /* Round 12 */ rorl $16, %ecx movl 52(%edi), %esi movb %ch, %al movb %cl, %bl rorl $16, %ecx xorl %esi, %edx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %ch, %al movb %cl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %edx /* Round 13 */ rorl $16, %edx movl 56(%edi), %esi movb %dh, %al movb %dl, %bl rorl $16, %edx xorl %esi, %ecx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %dh, %al movb %dl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %ecx /* Round 14 */ rorl $16, %ecx movl 60(%edi), %esi movb %ch, %al movb %cl, %bl rorl $16, %ecx xorl %esi, %edx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %ch, %al movb %cl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %edx /* Round 15 */ rorl $16, %edx movl 64(%edi), %esi movb %dh, %al movb %dl, %bl rorl $16, %edx xorl %esi, %ecx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %dh, %al movb %dl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %ecx xorl 68(%edi), %edx movl 20(%esp), %eax movl %edx, (%eax) movl %ecx, 4(%eax) popl %edi popl %esi popl %ebx popl %ebp ret.align ALIGN.L000start_decrypt: xorl 68(%edi), %ecx /* Round 16 */ rorl $16, %ecx movl 64(%edi), %esi movb %ch, %al movb %cl, %bl rorl $16, %ecx xorl %esi, %edx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %ch, %al movb %cl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %edx /* Round 15 */ rorl $16, %edx movl 60(%edi), %esi movb %dh, %al movb %dl, %bl rorl $16, %edx xorl %esi, %ecx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %dh, %al movb %dl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %ecx /* Round 14 */ rorl $16, %ecx movl 56(%edi), %esi movb %ch, %al movb %cl, %bl rorl $16, %ecx xorl %esi, %edx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %ch, %al movb %cl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %edx /* Round 13 */ rorl $16, %edx movl 52(%edi), %esi movb %dh, %al movb %dl, %bl rorl $16, %edx xorl %esi, %ecx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %dh, %al movb %dl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %ecx /* Round 12 */ rorl $16, %ecx movl 48(%edi), %esi movb %ch, %al movb %cl, %bl rorl $16, %ecx xorl %esi, %edx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %ch, %al movb %cl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %edx /* Round 11 */ rorl $16, %edx movl 44(%edi), %esi movb %dh, %al movb %dl, %bl rorl $16, %edx xorl %esi, %ecx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %dh, %al movb %dl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %ecx /* Round 10 */ rorl $16, %ecx movl 40(%edi), %esi movb %ch, %al movb %cl, %bl rorl $16, %ecx xorl %esi, %edx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %ch, %al movb %cl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %edx /* Round 9 */ rorl $16, %edx movl 36(%edi), %esi movb %dh, %al movb %dl, %bl rorl $16, %edx xorl %esi, %ecx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %dh, %al movb %dl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %ecx /* Round 8 */ rorl $16, %ecx movl 32(%edi), %esi movb %ch, %al movb %cl, %bl rorl $16, %ecx xorl %esi, %edx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %ch, %al movb %cl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %edx /* Round 7 */ rorl $16, %edx movl 28(%edi), %esi movb %dh, %al movb %dl, %bl rorl $16, %edx xorl %esi, %ecx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %dh, %al movb %dl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %ecx /* Round 6 */ rorl $16, %ecx movl 24(%edi), %esi movb %ch, %al movb %cl, %bl rorl $16, %ecx xorl %esi, %edx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %ch, %al movb %cl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %edx /* Round 5 */ rorl $16, %edx movl 20(%edi), %esi movb %dh, %al movb %dl, %bl rorl $16, %edx xorl %esi, %ecx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %dh, %al movb %dl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %ecx /* Round 4 */ rorl $16, %ecx movl 16(%edi), %esi movb %ch, %al movb %cl, %bl rorl $16, %ecx xorl %esi, %edx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %ch, %al movb %cl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %edx /* Round 3 */ rorl $16, %edx movl 12(%edi), %esi movb %dh, %al movb %dl, %bl rorl $16, %edx xorl %esi, %ecx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %dh, %al movb %dl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %ecx /* Round 2 */ rorl $16, %ecx movl 8(%edi), %esi movb %ch, %al movb %cl, %bl rorl $16, %ecx xorl %esi, %edx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %ch, %al movb %cl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %edx /* Round 1 */ rorl $16, %edx movl 4(%edi), %esi movb %dh, %al movb %dl, %bl rorl $16, %edx xorl %esi, %ecx movl 72(%edi,%eax,4),%esi movl 1096(%edi,%ebx,4),%ebp movb %dh, %al movb %dl, %bl addl %ebp, %esi movl 2120(%edi,%eax,4),%eax xorl %eax, %esi movl 3144(%edi,%ebx,4),%ebp addl %ebp, %esi xorl %eax, %eax xorl %esi, %ecx xorl (%edi), %edx movl 20(%esp), %eax movl %edx, (%eax) movl %ecx, 4(%eax) popl %edi popl %esi popl %ebx popl %ebp ret.BF_encrypt_end: SIZE(BF_encrypt,.BF_encrypt_end-BF_encrypt).ident "desasm.pl"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -