/* 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 */ .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"