You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
666 lines
12 KiB
666 lines
12 KiB
/* 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@mincom.oz.au> */ |
|
|
|
.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"
|
|
|