summaryrefslogtreecommitdiffstats
path: root/secure/lib/libcrypto/i386/des-586.s
diff options
context:
space:
mode:
Diffstat (limited to 'secure/lib/libcrypto/i386/des-586.s')
-rw-r--r--secure/lib/libcrypto/i386/des-586.s2414
1 files changed, 979 insertions, 1435 deletions
diff --git a/secure/lib/libcrypto/i386/des-586.s b/secure/lib/libcrypto/i386/des-586.s
index 55ddd71..b761290 100644
--- a/secure/lib/libcrypto/i386/des-586.s
+++ b/secure/lib/libcrypto/i386/des-586.s
@@ -1,22 +1,22 @@
# $FreeBSD$
- # Dont even think of reading this code
- # It was automatically generated by des-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 "des-586.s"
.version "01.01"
gcc2_compiled.:
.text
.align 16
-.globl des_encrypt1
- .type des_encrypt1,@function
-des_encrypt1:
+.globl DES_encrypt1
+ .type DES_encrypt1,@function
+DES_encrypt1:
pushl %esi
pushl %edi
- # Load the 2 words
+
movl 12(%esp), %esi
xorl %ecx, %ecx
pushl %ebx
@@ -25,7 +25,7 @@ des_encrypt1:
movl 28(%esp), %ebx
movl 4(%esi), %edi
- # IP
+
roll $4, %eax
movl %eax, %esi
xorl %edi, %eax
@@ -62,1202 +62,979 @@ des_encrypt1:
xorl %eax, %edi
.byte 209
-.byte 199 # roll $1 %edi
- movl 24(%esp), %ebp
+.byte 199
+ leal DES_SPtrans, %ebp
+ movl 24(%esp), %ecx
cmpl $0, %ebx
je .L000start_decrypt
- # Round 0
- movl (%ebp), %eax
+
+ movl (%ecx), %eax
xorl %ebx, %ebx
- movl 4(%ebp), %edx
+ movl 4(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
- # Round 1
- movl 8(%ebp), %eax
+
+ movl 8(%ecx), %eax
xorl %ebx, %ebx
- movl 12(%ebp), %edx
+ movl 12(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
- # Round 2
- movl 16(%ebp), %eax
+
+ movl 16(%ecx), %eax
xorl %ebx, %ebx
- movl 20(%ebp), %edx
+ movl 20(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 3
- movl 24(%ebp), %eax
+ movl 24(%ecx), %eax
xorl %ebx, %ebx
- movl 28(%ebp), %edx
+ movl 28(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
+
- # Round 4
- movl 32(%ebp), %eax
+ movl 32(%ecx), %eax
xorl %ebx, %ebx
- movl 36(%ebp), %edx
+ movl 36(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
- # Round 5
- movl 40(%ebp), %eax
+
+ movl 40(%ecx), %eax
xorl %ebx, %ebx
- movl 44(%ebp), %edx
+ movl 44(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
+
- # Round 6
- movl 48(%ebp), %eax
+ movl 48(%ecx), %eax
xorl %ebx, %ebx
- movl 52(%ebp), %edx
+ movl 52(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 7
- movl 56(%ebp), %eax
+ movl 56(%ecx), %eax
xorl %ebx, %ebx
- movl 60(%ebp), %edx
+ movl 60(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
- # Round 8
- movl 64(%ebp), %eax
+
+ movl 64(%ecx), %eax
xorl %ebx, %ebx
- movl 68(%ebp), %edx
+ movl 68(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
- # Round 9
- movl 72(%ebp), %eax
+
+ movl 72(%ecx), %eax
xorl %ebx, %ebx
- movl 76(%ebp), %edx
+ movl 76(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
+
- # Round 10
- movl 80(%ebp), %eax
+ movl 80(%ecx), %eax
xorl %ebx, %ebx
- movl 84(%ebp), %edx
+ movl 84(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 11
- movl 88(%ebp), %eax
+ movl 88(%ecx), %eax
xorl %ebx, %ebx
- movl 92(%ebp), %edx
+ movl 92(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
- # Round 12
- movl 96(%ebp), %eax
+
+ movl 96(%ecx), %eax
xorl %ebx, %ebx
- movl 100(%ebp), %edx
+ movl 100(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 13
- movl 104(%ebp), %eax
+ movl 104(%ecx), %eax
xorl %ebx, %ebx
- movl 108(%ebp), %edx
+ movl 108(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
+
- # Round 14
- movl 112(%ebp), %eax
+ movl 112(%ecx), %eax
xorl %ebx, %ebx
- movl 116(%ebp), %edx
+ movl 116(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
- # Round 15
- movl 120(%ebp), %eax
+
+ movl 120(%ecx), %eax
xorl %ebx, %ebx
- movl 124(%ebp), %edx
+ movl 124(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
jmp .L001end
.L000start_decrypt:
- # Round 15
- movl 120(%ebp), %eax
+
+ movl 120(%ecx), %eax
xorl %ebx, %ebx
- movl 124(%ebp), %edx
+ movl 124(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 14
- movl 112(%ebp), %eax
+ movl 112(%ecx), %eax
xorl %ebx, %ebx
- movl 116(%ebp), %edx
+ movl 116(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
+
- # Round 13
- movl 104(%ebp), %eax
+ movl 104(%ecx), %eax
xorl %ebx, %ebx
- movl 108(%ebp), %edx
+ movl 108(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
- # Round 12
- movl 96(%ebp), %eax
+
+ movl 96(%ecx), %eax
xorl %ebx, %ebx
- movl 100(%ebp), %edx
+ movl 100(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
+
- # Round 11
- movl 88(%ebp), %eax
+ movl 88(%ecx), %eax
xorl %ebx, %ebx
- movl 92(%ebp), %edx
+ movl 92(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 10
- movl 80(%ebp), %eax
+ movl 80(%ecx), %eax
xorl %ebx, %ebx
- movl 84(%ebp), %edx
+ movl 84(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
- # Round 9
- movl 72(%ebp), %eax
+
+ movl 72(%ecx), %eax
xorl %ebx, %ebx
- movl 76(%ebp), %edx
+ movl 76(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
- # Round 8
- movl 64(%ebp), %eax
+
+ movl 64(%ecx), %eax
xorl %ebx, %ebx
- movl 68(%ebp), %edx
+ movl 68(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
+
- # Round 7
- movl 56(%ebp), %eax
+ movl 56(%ecx), %eax
xorl %ebx, %ebx
- movl 60(%ebp), %edx
+ movl 60(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 6
- movl 48(%ebp), %eax
+ movl 48(%ecx), %eax
xorl %ebx, %ebx
- movl 52(%ebp), %edx
+ movl 52(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
- # Round 5
- movl 40(%ebp), %eax
+
+ movl 40(%ecx), %eax
xorl %ebx, %ebx
- movl 44(%ebp), %edx
+ movl 44(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 4
- movl 32(%ebp), %eax
+ movl 32(%ecx), %eax
xorl %ebx, %ebx
- movl 36(%ebp), %edx
+ movl 36(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
+
- # Round 3
- movl 24(%ebp), %eax
+ movl 24(%ecx), %eax
xorl %ebx, %ebx
- movl 28(%ebp), %edx
+ movl 28(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
- # Round 2
- movl 16(%ebp), %eax
+
+ movl 16(%ecx), %eax
xorl %ebx, %ebx
- movl 20(%ebp), %edx
+ movl 20(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
- # Round 1
- movl 8(%ebp), %eax
+
+ movl 8(%ecx), %eax
xorl %ebx, %ebx
- movl 12(%ebp), %edx
+ movl 12(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 0
- movl (%ebp), %eax
+ movl (%ecx), %eax
xorl %ebx, %ebx
- movl 4(%ebp), %edx
+ movl 4(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
.L001end:
- # FP
+
movl 20(%esp), %edx
.byte 209
-.byte 206 # rorl $1 %esi
+.byte 206
movl %edi, %eax
xorl %esi, %edi
andl $0xaaaaaaaa, %edi
@@ -1300,18 +1077,18 @@ des_encrypt1:
popl %edi
popl %esi
ret
-.L_des_encrypt1_end:
- .size des_encrypt1,.L_des_encrypt1_end-des_encrypt1
+.L_DES_encrypt1_end:
+ .size DES_encrypt1,.L_DES_encrypt1_end-DES_encrypt1
.ident "desasm.pl"
.text
.align 16
-.globl des_encrypt2
- .type des_encrypt2,@function
-des_encrypt2:
+.globl DES_encrypt2
+ .type DES_encrypt2,@function
+DES_encrypt2:
pushl %esi
pushl %edi
- # Load the 2 words
+
movl 12(%esp), %eax
xorl %ecx, %ecx
pushl %ebx
@@ -1321,1198 +1098,975 @@ des_encrypt2:
roll $3, %esi
movl 4(%eax), %edi
roll $3, %edi
- movl 24(%esp), %ebp
+ leal DES_SPtrans, %ebp
+ movl 24(%esp), %ecx
cmpl $0, %ebx
je .L002start_decrypt
- # Round 0
- movl (%ebp), %eax
+
+ movl (%ecx), %eax
xorl %ebx, %ebx
- movl 4(%ebp), %edx
+ movl 4(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 1
- movl 8(%ebp), %eax
+ movl 8(%ecx), %eax
xorl %ebx, %ebx
- movl 12(%ebp), %edx
+ movl 12(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
+
- # Round 2
- movl 16(%ebp), %eax
+ movl 16(%ecx), %eax
xorl %ebx, %ebx
- movl 20(%ebp), %edx
+ movl 20(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
- # Round 3
- movl 24(%ebp), %eax
+
+ movl 24(%ecx), %eax
xorl %ebx, %ebx
- movl 28(%ebp), %edx
+ movl 28(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
- # Round 4
- movl 32(%ebp), %eax
+
+ movl 32(%ecx), %eax
xorl %ebx, %ebx
- movl 36(%ebp), %edx
+ movl 36(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 5
- movl 40(%ebp), %eax
+ movl 40(%ecx), %eax
xorl %ebx, %ebx
- movl 44(%ebp), %edx
+ movl 44(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
+
- # Round 6
- movl 48(%ebp), %eax
+ movl 48(%ecx), %eax
xorl %ebx, %ebx
- movl 52(%ebp), %edx
+ movl 52(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
- # Round 7
- movl 56(%ebp), %eax
+
+ movl 56(%ecx), %eax
xorl %ebx, %ebx
- movl 60(%ebp), %edx
+ movl 60(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
+
- # Round 8
- movl 64(%ebp), %eax
+ movl 64(%ecx), %eax
xorl %ebx, %ebx
- movl 68(%ebp), %edx
+ movl 68(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 9
- movl 72(%ebp), %eax
+ movl 72(%ecx), %eax
xorl %ebx, %ebx
- movl 76(%ebp), %edx
+ movl 76(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
- # Round 10
- movl 80(%ebp), %eax
+
+ movl 80(%ecx), %eax
xorl %ebx, %ebx
- movl 84(%ebp), %edx
+ movl 84(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
- # Round 11
- movl 88(%ebp), %eax
+
+ movl 88(%ecx), %eax
xorl %ebx, %ebx
- movl 92(%ebp), %edx
+ movl 92(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
+
- # Round 12
- movl 96(%ebp), %eax
+ movl 96(%ecx), %eax
xorl %ebx, %ebx
- movl 100(%ebp), %edx
+ movl 100(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 13
- movl 104(%ebp), %eax
+ movl 104(%ecx), %eax
xorl %ebx, %ebx
- movl 108(%ebp), %edx
+ movl 108(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
- # Round 14
- movl 112(%ebp), %eax
+
+ movl 112(%ecx), %eax
xorl %ebx, %ebx
- movl 116(%ebp), %edx
+ movl 116(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 15
- movl 120(%ebp), %eax
+ movl 120(%ecx), %eax
xorl %ebx, %ebx
- movl 124(%ebp), %edx
+ movl 124(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
jmp .L003end
.L002start_decrypt:
- # Round 15
- movl 120(%ebp), %eax
+
+ movl 120(%ecx), %eax
xorl %ebx, %ebx
- movl 124(%ebp), %edx
+ movl 124(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
- # Round 14
- movl 112(%ebp), %eax
+
+ movl 112(%ecx), %eax
xorl %ebx, %ebx
- movl 116(%ebp), %edx
+ movl 116(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
- # Round 13
- movl 104(%ebp), %eax
+
+ movl 104(%ecx), %eax
xorl %ebx, %ebx
- movl 108(%ebp), %edx
+ movl 108(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 12
- movl 96(%ebp), %eax
+ movl 96(%ecx), %eax
xorl %ebx, %ebx
- movl 100(%ebp), %edx
+ movl 100(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
+
- # Round 11
- movl 88(%ebp), %eax
+ movl 88(%ecx), %eax
xorl %ebx, %ebx
- movl 92(%ebp), %edx
+ movl 92(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
- # Round 10
- movl 80(%ebp), %eax
+
+ movl 80(%ecx), %eax
xorl %ebx, %ebx
- movl 84(%ebp), %edx
+ movl 84(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
+
- # Round 9
- movl 72(%ebp), %eax
+ movl 72(%ecx), %eax
xorl %ebx, %ebx
- movl 76(%ebp), %edx
+ movl 76(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 8
- movl 64(%ebp), %eax
+ movl 64(%ecx), %eax
xorl %ebx, %ebx
- movl 68(%ebp), %edx
+ movl 68(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
- # Round 7
- movl 56(%ebp), %eax
+
+ movl 56(%ecx), %eax
xorl %ebx, %ebx
- movl 60(%ebp), %edx
+ movl 60(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
- # Round 6
- movl 48(%ebp), %eax
+
+ movl 48(%ecx), %eax
xorl %ebx, %ebx
- movl 52(%ebp), %edx
+ movl 52(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
+
- # Round 5
- movl 40(%ebp), %eax
+ movl 40(%ecx), %eax
xorl %ebx, %ebx
- movl 44(%ebp), %edx
+ movl 44(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 4
- movl 32(%ebp), %eax
+ movl 32(%ecx), %eax
xorl %ebx, %ebx
- movl 36(%ebp), %edx
+ movl 36(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
- # Round 3
- movl 24(%ebp), %eax
+
+ movl 24(%ecx), %eax
xorl %ebx, %ebx
- movl 28(%ebp), %edx
+ movl 28(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
+
- # Round 2
- movl 16(%ebp), %eax
+ movl 16(%ecx), %eax
xorl %ebx, %ebx
- movl 20(%ebp), %edx
+ movl 20(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
+
- # Round 1
- movl 8(%ebp), %eax
+ movl 8(%ecx), %eax
xorl %ebx, %ebx
- movl 12(%ebp), %edx
+ movl 12(%ecx), %edx
xorl %esi, %eax
+ xorl %ecx, %ecx
xorl %esi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%edi
movb %dl, %bl
- xorl %ebp, %edi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
+ xorl 0x200(%ebp,%ecx),%edi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %edi
+ xorl 0x100(%ebp,%ebx),%edi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %edi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%edi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %edi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %edi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %edi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %edi
+ xorl 0x600(%ebp,%ebx),%edi
+ xorl 0x700(%ebp,%ecx),%edi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%edi
+ xorl 0x500(%ebp,%edx),%edi
- # Round 0
- movl (%ebp), %eax
+
+ movl (%ecx), %eax
xorl %ebx, %ebx
- movl 4(%ebp), %edx
+ movl 4(%ecx), %edx
xorl %edi, %eax
+ xorl %ecx, %ecx
xorl %edi, %edx
andl $0xfcfcfcfc, %eax
andl $0xcfcfcfcf, %edx
movb %al, %bl
movb %ah, %cl
rorl $4, %edx
- movl des_SPtrans(%ebx),%ebp
+ xorl (%ebp,%ebx),%esi
movb %dl, %bl
- xorl %ebp, %esi
- movl 0x200+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
+ xorl 0x200(%ebp,%ecx),%esi
movb %dh, %cl
shrl $16, %eax
- movl 0x100+des_SPtrans(%ebx),%ebp
- xorl %ebp, %esi
+ xorl 0x100(%ebp,%ebx),%esi
movb %ah, %bl
shrl $16, %edx
- movl 0x300+des_SPtrans(%ecx),%ebp
- xorl %ebp, %esi
- movl 24(%esp), %ebp
+ xorl 0x300(%ebp,%ecx),%esi
movb %dh, %cl
andl $0xff, %eax
andl $0xff, %edx
- movl 0x600+des_SPtrans(%ebx),%ebx
- xorl %ebx, %esi
- movl 0x700+des_SPtrans(%ecx),%ebx
- xorl %ebx, %esi
- movl 0x400+des_SPtrans(%eax),%ebx
- xorl %ebx, %esi
- movl 0x500+des_SPtrans(%edx),%ebx
- xorl %ebx, %esi
+ xorl 0x600(%ebp,%ebx),%esi
+ xorl 0x700(%ebp,%ecx),%esi
+ movl 24(%esp), %ecx
+ xorl 0x400(%ebp,%eax),%esi
+ xorl 0x500(%ebp,%edx),%esi
.L003end:
- # Fixup
+
rorl $3, %edi
movl 20(%esp), %eax
rorl $3, %esi
@@ -2523,26 +2077,26 @@ des_encrypt2:
popl %edi
popl %esi
ret
-.L_des_encrypt2_end:
- .size des_encrypt2,.L_des_encrypt2_end-des_encrypt2
+.L_DES_encrypt2_end:
+ .size DES_encrypt2,.L_DES_encrypt2_end-DES_encrypt2
.ident "desasm.pl"
.text
.align 16
-.globl des_encrypt3
- .type des_encrypt3,@function
-des_encrypt3:
+.globl DES_encrypt3
+ .type DES_encrypt3,@function
+DES_encrypt3:
pushl %ebx
movl 8(%esp), %ebx
pushl %ebp
pushl %esi
pushl %edi
- # Load the data words
+
movl (%ebx), %edi
movl 4(%ebx), %esi
subl $12, %esp
- # IP
+
roll $4, %edi
movl %edi, %edx
xorl %esi, %edi
@@ -2588,20 +2142,20 @@ des_encrypt3:
movl $1, 8(%esp)
movl %eax, 4(%esp)
movl %ebx, (%esp)
- call des_encrypt2
+ call DES_encrypt2
movl $0, 8(%esp)
movl %edi, 4(%esp)
movl %ebx, (%esp)
- call des_encrypt2
+ call DES_encrypt2
movl $1, 8(%esp)
movl %esi, 4(%esp)
movl %ebx, (%esp)
- call des_encrypt2
+ call DES_encrypt2
addl $12, %esp
movl (%ebx), %edi
movl 4(%ebx), %esi
- # FP
+
roll $2, %esi
roll $3, %edi
movl %edi, %eax
@@ -2646,26 +2200,26 @@ des_encrypt3:
popl %ebp
popl %ebx
ret
-.L_des_encrypt3_end:
- .size des_encrypt3,.L_des_encrypt3_end-des_encrypt3
+.L_DES_encrypt3_end:
+ .size DES_encrypt3,.L_DES_encrypt3_end-DES_encrypt3
.ident "desasm.pl"
.text
.align 16
-.globl des_decrypt3
- .type des_decrypt3,@function
-des_decrypt3:
+.globl DES_decrypt3
+ .type DES_decrypt3,@function
+DES_decrypt3:
pushl %ebx
movl 8(%esp), %ebx
pushl %ebp
pushl %esi
pushl %edi
- # Load the data words
+
movl (%ebx), %edi
movl 4(%ebx), %esi
subl $12, %esp
- # IP
+
roll $4, %edi
movl %edi, %edx
xorl %esi, %edi
@@ -2711,20 +2265,20 @@ des_decrypt3:
movl $0, 8(%esp)
movl %eax, 4(%esp)
movl %ebx, (%esp)
- call des_encrypt2
+ call DES_encrypt2
movl $1, 8(%esp)
movl %edi, 4(%esp)
movl %ebx, (%esp)
- call des_encrypt2
+ call DES_encrypt2
movl $0, 8(%esp)
movl %esi, 4(%esp)
movl %ebx, (%esp)
- call des_encrypt2
+ call DES_encrypt2
addl $12, %esp
movl (%ebx), %edi
movl 4(%ebx), %esi
- # FP
+
roll $2, %esi
roll $3, %edi
movl %edi, %eax
@@ -2769,21 +2323,21 @@ des_decrypt3:
popl %ebp
popl %ebx
ret
-.L_des_decrypt3_end:
- .size des_decrypt3,.L_des_decrypt3_end-des_decrypt3
+.L_DES_decrypt3_end:
+ .size DES_decrypt3,.L_DES_decrypt3_end-DES_decrypt3
.ident "desasm.pl"
.text
.align 16
-.globl des_ncbc_encrypt
- .type des_ncbc_encrypt,@function
-des_ncbc_encrypt:
+.globl DES_ncbc_encrypt
+ .type DES_ncbc_encrypt,@function
+DES_ncbc_encrypt:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 28(%esp), %ebp
- # getting iv ptr from parameter 4
+
movl 36(%esp), %ebx
movl (%ebx), %esi
movl 4(%ebx), %edi
@@ -2794,11 +2348,11 @@ des_ncbc_encrypt:
movl %esp, %ebx
movl 36(%esp), %esi
movl 40(%esp), %edi
- # getting encrypt flag from parameter 5
+
movl 56(%esp), %ecx
- # get and push parameter 5
+
pushl %ecx
- # get and push parameter 3
+
movl 52(%esp), %eax
pushl %eax
pushl %ebx
@@ -2815,7 +2369,7 @@ des_ncbc_encrypt:
xorl %edx, %ebx
movl %eax, 12(%esp)
movl %ebx, 16(%esp)
- call des_encrypt1
+ call DES_encrypt1
movl 12(%esp), %eax
movl 16(%esp), %ebx
movl %eax, (%edi)
@@ -2828,33 +2382,38 @@ des_ncbc_encrypt:
movl 56(%esp), %ebp
andl $7, %ebp
jz .L007finish
+ call .L008PIC_point
+.L008PIC_point:
+ popl %edx
+ leal .L009cbc_enc_jmp_table-.L008PIC_point(%edx),%ecx
+ movl (%ecx,%ebp,4), %ebp
+ addl %edx, %ebp
xorl %ecx, %ecx
xorl %edx, %edx
- movl .L008cbc_enc_jmp_table(,%ebp,4),%ebp
jmp *%ebp
-.L009ej7:
+.L010ej7:
movb 6(%esi), %dh
sall $8, %edx
-.L010ej6:
+.L011ej6:
movb 5(%esi), %dh
-.L011ej5:
+.L012ej5:
movb 4(%esi), %dl
-.L012ej4:
+.L013ej4:
movl (%esi), %ecx
- jmp .L013ejend
-.L014ej3:
+ jmp .L014ejend
+.L015ej3:
movb 2(%esi), %ch
sall $8, %ecx
-.L015ej2:
+.L016ej2:
movb 1(%esi), %ch
-.L016ej1:
+.L017ej1:
movb (%esi), %cl
-.L013ejend:
+.L014ejend:
xorl %ecx, %eax
xorl %edx, %ebx
movl %eax, 12(%esp)
movl %ebx, 16(%esp)
- call des_encrypt1
+ call DES_encrypt1
movl 12(%esp), %eax
movl 16(%esp), %ebx
movl %eax, (%edi)
@@ -2865,13 +2424,13 @@ des_ncbc_encrypt:
andl $4294967288, %ebp
movl 20(%esp), %eax
movl 24(%esp), %ebx
- jz .L017decrypt_finish
-.L018decrypt_loop:
+ jz .L018decrypt_finish
+.L019decrypt_loop:
movl (%esi), %eax
movl 4(%esi), %ebx
movl %eax, 12(%esp)
movl %ebx, 16(%esp)
- call des_encrypt1
+ call DES_encrypt1
movl 12(%esp), %eax
movl 16(%esp), %ebx
movl 20(%esp), %ecx
@@ -2887,8 +2446,8 @@ des_ncbc_encrypt:
addl $8, %esi
addl $8, %edi
subl $8, %ebp
- jnz .L018decrypt_loop
-.L017decrypt_finish:
+ jnz .L019decrypt_loop
+.L018decrypt_finish:
movl 56(%esp), %ebp
andl $7, %ebp
jz .L007finish
@@ -2896,7 +2455,7 @@ des_ncbc_encrypt:
movl 4(%esi), %ebx
movl %eax, 12(%esp)
movl %ebx, 16(%esp)
- call des_encrypt1
+ call DES_encrypt1
movl 12(%esp), %eax
movl 16(%esp), %ebx
movl 20(%esp), %ecx
@@ -2905,26 +2464,26 @@ des_ncbc_encrypt:
xorl %ebx, %edx
movl (%esi), %eax
movl 4(%esi), %ebx
-.L019dj7:
+.L020dj7:
rorl $16, %edx
movb %dl, 6(%edi)
shrl $16, %edx
-.L020dj6:
+.L021dj6:
movb %dh, 5(%edi)
-.L021dj5:
+.L022dj5:
movb %dl, 4(%edi)
-.L022dj4:
+.L023dj4:
movl %ecx, (%edi)
- jmp .L023djend
-.L024dj3:
+ jmp .L024djend
+.L025dj3:
rorl $16, %ecx
movb %cl, 2(%edi)
sall $16, %ecx
-.L025dj2:
+.L026dj2:
movb %ch, 1(%esi)
-.L026dj1:
+.L027dj1:
movb %cl, (%esi)
-.L023djend:
+.L024djend:
jmp .L007finish
.align 16
.L007finish:
@@ -2938,40 +2497,30 @@ des_ncbc_encrypt:
popl %ebp
ret
.align 16
-.L008cbc_enc_jmp_table:
+.L009cbc_enc_jmp_table:
.long 0
- .long .L016ej1
- .long .L015ej2
- .long .L014ej3
- .long .L012ej4
- .long .L011ej5
- .long .L010ej6
- .long .L009ej7
-.align 16
-.L027cbc_dec_jmp_table:
- .long 0
- .long .L026dj1
- .long .L025dj2
- .long .L024dj3
- .long .L022dj4
- .long .L021dj5
- .long .L020dj6
- .long .L019dj7
-.L_des_ncbc_encrypt_end:
- .size des_ncbc_encrypt,.L_des_ncbc_encrypt_end-des_ncbc_encrypt
+ .long .L017ej1-.L008PIC_point
+ .long .L016ej2-.L008PIC_point
+ .long .L015ej3-.L008PIC_point
+ .long .L013ej4-.L008PIC_point
+ .long .L012ej5-.L008PIC_point
+ .long .L011ej6-.L008PIC_point
+ .long .L010ej7-.L008PIC_point
+.L_DES_ncbc_encrypt_end:
+ .size DES_ncbc_encrypt,.L_DES_ncbc_encrypt_end-DES_ncbc_encrypt
.ident "desasm.pl"
.text
.align 16
-.globl des_ede3_cbc_encrypt
- .type des_ede3_cbc_encrypt,@function
-des_ede3_cbc_encrypt:
+.globl DES_ede3_cbc_encrypt
+ .type DES_ede3_cbc_encrypt,@function
+DES_ede3_cbc_encrypt:
pushl %ebp
pushl %ebx
pushl %esi
pushl %edi
movl 28(%esp), %ebp
- # getting iv ptr from parameter 6
+
movl 44(%esp), %ebx
movl (%ebx), %esi
movl 4(%ebx), %edi
@@ -2982,15 +2531,15 @@ des_ede3_cbc_encrypt:
movl %esp, %ebx
movl 36(%esp), %esi
movl 40(%esp), %edi
- # getting encrypt flag from parameter 7
+
movl 64(%esp), %ecx
- # get and push parameter 5
+
movl 56(%esp), %eax
pushl %eax
- # get and push parameter 4
+
movl 56(%esp), %eax
pushl %eax
- # get and push parameter 3
+
movl 56(%esp), %eax
pushl %eax
pushl %ebx
@@ -3007,7 +2556,7 @@ des_ede3_cbc_encrypt:
xorl %edx, %ebx
movl %eax, 16(%esp)
movl %ebx, 20(%esp)
- call des_encrypt3
+ call DES_encrypt3
movl 16(%esp), %eax
movl 20(%esp), %ebx
movl %eax, (%edi)
@@ -3020,33 +2569,38 @@ des_ede3_cbc_encrypt:
movl 60(%esp), %ebp
andl $7, %ebp
jz .L031finish
+ call .L032PIC_point
+.L032PIC_point:
+ popl %edx
+ leal .L033cbc_enc_jmp_table-.L032PIC_point(%edx),%ecx
+ movl (%ecx,%ebp,4), %ebp
+ addl %edx, %ebp
xorl %ecx, %ecx
xorl %edx, %edx
- movl .L032cbc_enc_jmp_table(,%ebp,4),%ebp
jmp *%ebp
-.L033ej7:
+.L034ej7:
movb 6(%esi), %dh
sall $8, %edx
-.L034ej6:
+.L035ej6:
movb 5(%esi), %dh
-.L035ej5:
+.L036ej5:
movb 4(%esi), %dl
-.L036ej4:
+.L037ej4:
movl (%esi), %ecx
- jmp .L037ejend
-.L038ej3:
+ jmp .L038ejend
+.L039ej3:
movb 2(%esi), %ch
sall $8, %ecx
-.L039ej2:
+.L040ej2:
movb 1(%esi), %ch
-.L040ej1:
+.L041ej1:
movb (%esi), %cl
-.L037ejend:
+.L038ejend:
xorl %ecx, %eax
xorl %edx, %ebx
movl %eax, 16(%esp)
movl %ebx, 20(%esp)
- call des_encrypt3
+ call DES_encrypt3
movl 16(%esp), %eax
movl 20(%esp), %ebx
movl %eax, (%edi)
@@ -3057,13 +2611,13 @@ des_ede3_cbc_encrypt:
andl $4294967288, %ebp
movl 24(%esp), %eax
movl 28(%esp), %ebx
- jz .L041decrypt_finish
-.L042decrypt_loop:
+ jz .L042decrypt_finish
+.L043decrypt_loop:
movl (%esi), %eax
movl 4(%esi), %ebx
movl %eax, 16(%esp)
movl %ebx, 20(%esp)
- call des_decrypt3
+ call DES_decrypt3
movl 16(%esp), %eax
movl 20(%esp), %ebx
movl 24(%esp), %ecx
@@ -3079,8 +2633,8 @@ des_ede3_cbc_encrypt:
addl $8, %esi
addl $8, %edi
subl $8, %ebp
- jnz .L042decrypt_loop
-.L041decrypt_finish:
+ jnz .L043decrypt_loop
+.L042decrypt_finish:
movl 60(%esp), %ebp
andl $7, %ebp
jz .L031finish
@@ -3088,7 +2642,7 @@ des_ede3_cbc_encrypt:
movl 4(%esi), %ebx
movl %eax, 16(%esp)
movl %ebx, 20(%esp)
- call des_decrypt3
+ call DES_decrypt3
movl 16(%esp), %eax
movl 20(%esp), %ebx
movl 24(%esp), %ecx
@@ -3097,26 +2651,26 @@ des_ede3_cbc_encrypt:
xorl %ebx, %edx
movl (%esi), %eax
movl 4(%esi), %ebx
-.L043dj7:
+.L044dj7:
rorl $16, %edx
movb %dl, 6(%edi)
shrl $16, %edx
-.L044dj6:
+.L045dj6:
movb %dh, 5(%edi)
-.L045dj5:
+.L046dj5:
movb %dl, 4(%edi)
-.L046dj4:
+.L047dj4:
movl %ecx, (%edi)
- jmp .L047djend
-.L048dj3:
+ jmp .L048djend
+.L049dj3:
rorl $16, %ecx
movb %cl, 2(%edi)
sall $16, %ecx
-.L049dj2:
+.L050dj2:
movb %ch, 1(%esi)
-.L050dj1:
+.L051dj1:
movb %cl, (%esi)
-.L047djend:
+.L048djend:
jmp .L031finish
.align 16
.L031finish:
@@ -3130,25 +2684,15 @@ des_ede3_cbc_encrypt:
popl %ebp
ret
.align 16
-.L032cbc_enc_jmp_table:
- .long 0
- .long .L040ej1
- .long .L039ej2
- .long .L038ej3
- .long .L036ej4
- .long .L035ej5
- .long .L034ej6
- .long .L033ej7
-.align 16
-.L051cbc_dec_jmp_table:
+.L033cbc_enc_jmp_table:
.long 0
- .long .L050dj1
- .long .L049dj2
- .long .L048dj3
- .long .L046dj4
- .long .L045dj5
- .long .L044dj6
- .long .L043dj7
-.L_des_ede3_cbc_encrypt_end:
- .size des_ede3_cbc_encrypt,.L_des_ede3_cbc_encrypt_end-des_ede3_cbc_encrypt
+ .long .L041ej1-.L032PIC_point
+ .long .L040ej2-.L032PIC_point
+ .long .L039ej3-.L032PIC_point
+ .long .L037ej4-.L032PIC_point
+ .long .L036ej5-.L032PIC_point
+ .long .L035ej6-.L032PIC_point
+ .long .L034ej7-.L032PIC_point
+.L_DES_ede3_cbc_encrypt_end:
+ .size DES_ede3_cbc_encrypt,.L_DES_ede3_cbc_encrypt_end-DES_ede3_cbc_encrypt
.ident "desasm.pl"
OpenPOWER on IntegriCloud