diff --git a/x86/aes-decrypt.asm b/x86/aes-decrypt.asm index 3fe53ed5dbb46a979d318b48380d49d7254e004a..716f322018c1ae1a47ed0bb3a2835933762fe4e8 100644 --- a/x86/aes-decrypt.asm +++ b/x86/aes-decrypt.asm @@ -59,45 +59,10 @@ aes_decrypt: C Why??? xchgl %ebx,%edx - C First column AES_ROUND(_aes_decrypt_table,a,b,c,d) -C C a b c d -C movl %eax,%esi C copy first in -C andl $0x000000ff,%esi C clear all but offset -C shll $2,%esi C index in itbl1 -C movl AES_TABLE0 + _aes_decrypt_table (%esi),%edi -C movl %ebx,%esi C second one -C shrl $6,%esi -C andl $0x000003fc,%esi C clear all but offset bytes -C xorl AES_TABLE1 + _aes_decrypt_table (%esi),%edi -C movl %ecx,%esi C third one -C shrl $14,%esi -C andl $0x000003fc,%esi -C xorl AES_TABLE2 + _aes_decrypt_table (%esi),%edi -C movl %edx,%esi C fourth one -C shrl $22,%esi -C andl $0x000003fc,%esi -C xorl AES_TABLE3 + _aes_decrypt_table (%esi),%edi pushl %edi C save first on stack - C // Second column - C d a b c - movl %edx,%esi C copy first in - andl $0x000000ff,%esi C clear all but offset - shll $2,%esi C index in itbl1 - movl AES_TABLE0 + _aes_decrypt_table (%esi),%edi - movl %eax,%esi C second one - shrl $6,%esi - andl $0x000003fc,%esi C clear all but offset bytes - xorl AES_TABLE1 + _aes_decrypt_table (%esi),%edi - movl %ebx,%esi C third one - shrl $14,%esi - andl $0x000003fc,%esi - xorl AES_TABLE2 + _aes_decrypt_table (%esi),%edi - movl %ecx,%esi C fourth one - shrl $22,%esi - andl $0x000003fc,%esi - xorl AES_TABLE3 + _aes_decrypt_table (%esi),%edi + AES_ROUND(_aes_decrypt_table,d,a,b,c) pushl %edi C // Third column