summaryrefslogtreecommitdiffstats
path: root/win-x86_64/crypto/aes
diff options
context:
space:
mode:
authorAdam Langley <agl@google.com>2015-05-11 17:20:37 -0700
committerKenny Root <kroot@google.com>2015-05-12 23:06:14 +0000
commite9ada863a7b3e81f5d2b1e3bdd2305da902a87f5 (patch)
tree6e43e34595ecf887c26c32b86d8ab097fe8cac64 /win-x86_64/crypto/aes
parentb3106a0cc1493bbe0505c0ec0ce3da4ca90a29ae (diff)
downloadexternal_boringssl-e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5.zip
external_boringssl-e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5.tar.gz
external_boringssl-e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5.tar.bz2
external/boringssl: bump revision.
This change bumps the BoringSSL revision to the current tip-of-tree. Change-Id: I91d5bf467e16e8d86cb19a4de873985f524e5faa
Diffstat (limited to 'win-x86_64/crypto/aes')
-rw-r--r--win-x86_64/crypto/aes/aes-x86_64.asm3506
-rw-r--r--win-x86_64/crypto/aes/aesni-x86_64.asm3678
-rw-r--r--win-x86_64/crypto/aes/bsaes-x86_64.asm2213
-rw-r--r--win-x86_64/crypto/aes/vpaes-x86_64.asm972
4 files changed, 5376 insertions, 4993 deletions
diff --git a/win-x86_64/crypto/aes/aes-x86_64.asm b/win-x86_64/crypto/aes/aes-x86_64.asm
index 96cbb4b..53394f0 100644
--- a/win-x86_64/crypto/aes/aes-x86_64.asm
+++ b/win-x86_64/crypto/aes/aes-x86_64.asm
@@ -1,89 +1,93 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
+
ALIGN 16
-_x86_64_AES_encrypt PROC PRIVATE
- xor eax,DWORD PTR[r15]
- xor ebx,DWORD PTR[4+r15]
- xor ecx,DWORD PTR[8+r15]
- xor edx,DWORD PTR[12+r15]
+_x86_64_AES_encrypt:
+ xor eax,DWORD[r15]
+ xor ebx,DWORD[4+r15]
+ xor ecx,DWORD[8+r15]
+ xor edx,DWORD[12+r15]
- mov r13d,DWORD PTR[240+r15]
+ mov r13d,DWORD[240+r15]
sub r13d,1
- jmp $L$enc_loop
+ jmp NEAR $L$enc_loop
ALIGN 16
-$L$enc_loop::
+$L$enc_loop:
movzx esi,al
movzx edi,bl
movzx ebp,cl
- mov r10d,DWORD PTR[rsi*8+r14]
- mov r11d,DWORD PTR[rdi*8+r14]
- mov r12d,DWORD PTR[rbp*8+r14]
+ mov r10d,DWORD[rsi*8+r14]
+ mov r11d,DWORD[rdi*8+r14]
+ mov r12d,DWORD[rbp*8+r14]
movzx esi,bh
movzx edi,ch
movzx ebp,dl
- xor r10d,DWORD PTR[3+rsi*8+r14]
- xor r11d,DWORD PTR[3+rdi*8+r14]
- mov r8d,DWORD PTR[rbp*8+r14]
+ xor r10d,DWORD[3+rsi*8+r14]
+ xor r11d,DWORD[3+rdi*8+r14]
+ mov r8d,DWORD[rbp*8+r14]
movzx esi,dh
shr ecx,16
movzx ebp,ah
- xor r12d,DWORD PTR[3+rsi*8+r14]
+ xor r12d,DWORD[3+rsi*8+r14]
shr edx,16
- xor r8d,DWORD PTR[3+rbp*8+r14]
+ xor r8d,DWORD[3+rbp*8+r14]
shr ebx,16
- lea r15,QWORD PTR[16+r15]
+ lea r15,[16+r15]
shr eax,16
movzx esi,cl
movzx edi,dl
movzx ebp,al
- xor r10d,DWORD PTR[2+rsi*8+r14]
- xor r11d,DWORD PTR[2+rdi*8+r14]
- xor r12d,DWORD PTR[2+rbp*8+r14]
+ xor r10d,DWORD[2+rsi*8+r14]
+ xor r11d,DWORD[2+rdi*8+r14]
+ xor r12d,DWORD[2+rbp*8+r14]
movzx esi,dh
movzx edi,ah
movzx ebp,bl
- xor r10d,DWORD PTR[1+rsi*8+r14]
- xor r11d,DWORD PTR[1+rdi*8+r14]
- xor r8d,DWORD PTR[2+rbp*8+r14]
+ xor r10d,DWORD[1+rsi*8+r14]
+ xor r11d,DWORD[1+rdi*8+r14]
+ xor r8d,DWORD[2+rbp*8+r14]
- mov edx,DWORD PTR[12+r15]
+ mov edx,DWORD[12+r15]
movzx edi,bh
movzx ebp,ch
- mov eax,DWORD PTR[r15]
- xor r12d,DWORD PTR[1+rdi*8+r14]
- xor r8d,DWORD PTR[1+rbp*8+r14]
+ mov eax,DWORD[r15]
+ xor r12d,DWORD[1+rdi*8+r14]
+ xor r8d,DWORD[1+rbp*8+r14]
- mov ebx,DWORD PTR[4+r15]
- mov ecx,DWORD PTR[8+r15]
+ mov ebx,DWORD[4+r15]
+ mov ecx,DWORD[8+r15]
xor eax,r10d
xor ebx,r11d
xor ecx,r12d
xor edx,r8d
sub r13d,1
- jnz $L$enc_loop
+ jnz NEAR $L$enc_loop
movzx esi,al
movzx edi,bl
movzx ebp,cl
- movzx r10d,BYTE PTR[2+rsi*8+r14]
- movzx r11d,BYTE PTR[2+rdi*8+r14]
- movzx r12d,BYTE PTR[2+rbp*8+r14]
+ movzx r10d,BYTE[2+rsi*8+r14]
+ movzx r11d,BYTE[2+rdi*8+r14]
+ movzx r12d,BYTE[2+rbp*8+r14]
movzx esi,dl
movzx edi,bh
movzx ebp,ch
- movzx r8d,BYTE PTR[2+rsi*8+r14]
- mov edi,DWORD PTR[rdi*8+r14]
- mov ebp,DWORD PTR[rbp*8+r14]
+ movzx r8d,BYTE[2+rsi*8+r14]
+ mov edi,DWORD[rdi*8+r14]
+ mov ebp,DWORD[rbp*8+r14]
- and edi,00000ff00h
- and ebp,00000ff00h
+ and edi,0x0000ff00
+ and ebp,0x0000ff00
xor r10d,edi
xor r11d,ebp
@@ -92,11 +96,11 @@ $L$enc_loop::
movzx esi,dh
movzx edi,ah
shr edx,16
- mov esi,DWORD PTR[rsi*8+r14]
- mov edi,DWORD PTR[rdi*8+r14]
+ mov esi,DWORD[rsi*8+r14]
+ mov edi,DWORD[rdi*8+r14]
- and esi,00000ff00h
- and edi,00000ff00h
+ and esi,0x0000ff00
+ and edi,0x0000ff00
shr ebx,16
xor r12d,esi
xor r8d,edi
@@ -105,13 +109,13 @@ $L$enc_loop::
movzx esi,cl
movzx edi,dl
movzx ebp,al
- mov esi,DWORD PTR[rsi*8+r14]
- mov edi,DWORD PTR[rdi*8+r14]
- mov ebp,DWORD PTR[rbp*8+r14]
+ mov esi,DWORD[rsi*8+r14]
+ mov edi,DWORD[rdi*8+r14]
+ mov ebp,DWORD[rbp*8+r14]
- and esi,000ff0000h
- and edi,000ff0000h
- and ebp,000ff0000h
+ and esi,0x00ff0000
+ and edi,0x00ff0000
+ and ebp,0x00ff0000
xor r10d,esi
xor r11d,edi
@@ -120,13 +124,13 @@ $L$enc_loop::
movzx esi,bl
movzx edi,dh
movzx ebp,ah
- mov esi,DWORD PTR[rsi*8+r14]
- mov edi,DWORD PTR[2+rdi*8+r14]
- mov ebp,DWORD PTR[2+rbp*8+r14]
+ mov esi,DWORD[rsi*8+r14]
+ mov edi,DWORD[2+rdi*8+r14]
+ mov ebp,DWORD[2+rbp*8+r14]
- and esi,000ff0000h
- and edi,0ff000000h
- and ebp,0ff000000h
+ and esi,0x00ff0000
+ and edi,0xff000000
+ and ebp,0xff000000
xor r8d,esi
xor r10d,edi
@@ -134,45 +138,45 @@ $L$enc_loop::
movzx esi,bh
movzx edi,ch
- mov edx,DWORD PTR[((16+12))+r15]
- mov esi,DWORD PTR[2+rsi*8+r14]
- mov edi,DWORD PTR[2+rdi*8+r14]
- mov eax,DWORD PTR[((16+0))+r15]
+ mov edx,DWORD[((16+12))+r15]
+ mov esi,DWORD[2+rsi*8+r14]
+ mov edi,DWORD[2+rdi*8+r14]
+ mov eax,DWORD[((16+0))+r15]
- and esi,0ff000000h
- and edi,0ff000000h
+ and esi,0xff000000
+ and edi,0xff000000
xor r12d,esi
xor r8d,edi
- mov ebx,DWORD PTR[((16+4))+r15]
- mov ecx,DWORD PTR[((16+8))+r15]
+ mov ebx,DWORD[((16+4))+r15]
+ mov ecx,DWORD[((16+8))+r15]
xor eax,r10d
xor ebx,r11d
xor ecx,r12d
xor edx,r8d
-DB 0f3h,0c3h
-_x86_64_AES_encrypt ENDP
+DB 0xf3,0xc3
+
ALIGN 16
-_x86_64_AES_encrypt_compact PROC PRIVATE
- lea r8,QWORD PTR[128+r14]
- mov edi,DWORD PTR[((0-128))+r8]
- mov ebp,DWORD PTR[((32-128))+r8]
- mov r10d,DWORD PTR[((64-128))+r8]
- mov r11d,DWORD PTR[((96-128))+r8]
- mov edi,DWORD PTR[((128-128))+r8]
- mov ebp,DWORD PTR[((160-128))+r8]
- mov r10d,DWORD PTR[((192-128))+r8]
- mov r11d,DWORD PTR[((224-128))+r8]
- jmp $L$enc_loop_compact
+_x86_64_AES_encrypt_compact:
+ lea r8,[128+r14]
+ mov edi,DWORD[((0-128))+r8]
+ mov ebp,DWORD[((32-128))+r8]
+ mov r10d,DWORD[((64-128))+r8]
+ mov r11d,DWORD[((96-128))+r8]
+ mov edi,DWORD[((128-128))+r8]
+ mov ebp,DWORD[((160-128))+r8]
+ mov r10d,DWORD[((192-128))+r8]
+ mov r11d,DWORD[((224-128))+r8]
+ jmp NEAR $L$enc_loop_compact
ALIGN 16
-$L$enc_loop_compact::
- xor eax,DWORD PTR[r15]
- xor ebx,DWORD PTR[4+r15]
- xor ecx,DWORD PTR[8+r15]
- xor edx,DWORD PTR[12+r15]
- lea r15,QWORD PTR[16+r15]
+$L$enc_loop_compact:
+ xor eax,DWORD[r15]
+ xor ebx,DWORD[4+r15]
+ xor ecx,DWORD[8+r15]
+ xor edx,DWORD[12+r15]
+ lea r15,[16+r15]
movzx r10d,al
movzx r11d,bl
movzx r12d,cl
@@ -181,17 +185,17 @@ $L$enc_loop_compact::
movzx edi,ch
shr ecx,16
movzx ebp,dh
- movzx r10d,BYTE PTR[r10*1+r14]
- movzx r11d,BYTE PTR[r11*1+r14]
- movzx r12d,BYTE PTR[r12*1+r14]
- movzx r8d,BYTE PTR[r8*1+r14]
+ movzx r10d,BYTE[r10*1+r14]
+ movzx r11d,BYTE[r11*1+r14]
+ movzx r12d,BYTE[r12*1+r14]
+ movzx r8d,BYTE[r8*1+r14]
- movzx r9d,BYTE PTR[rsi*1+r14]
+ movzx r9d,BYTE[rsi*1+r14]
movzx esi,ah
- movzx r13d,BYTE PTR[rdi*1+r14]
+ movzx r13d,BYTE[rdi*1+r14]
movzx edi,cl
- movzx ebp,BYTE PTR[rbp*1+r14]
- movzx esi,BYTE PTR[rsi*1+r14]
+ movzx ebp,BYTE[rbp*1+r14]
+ movzx esi,BYTE[rsi*1+r14]
shl r9d,8
shr edx,16
@@ -203,16 +207,16 @@ $L$enc_loop_compact::
xor r11d,r13d
shl ebp,8
movzx r13d,al
- movzx edi,BYTE PTR[rdi*1+r14]
+ movzx edi,BYTE[rdi*1+r14]
xor r12d,ebp
shl esi,8
movzx ebp,bl
shl edi,16
xor r8d,esi
- movzx r9d,BYTE PTR[r9*1+r14]
+ movzx r9d,BYTE[r9*1+r14]
movzx esi,dh
- movzx r13d,BYTE PTR[r13*1+r14]
+ movzx r13d,BYTE[r13*1+r14]
xor r10d,edi
shr ecx,8
@@ -221,11 +225,11 @@ $L$enc_loop_compact::
shr ebx,8
shl r13d,16
xor r11d,r9d
- movzx ebp,BYTE PTR[rbp*1+r14]
- movzx esi,BYTE PTR[rsi*1+r14]
- movzx edi,BYTE PTR[rdi*1+r14]
- movzx edx,BYTE PTR[rcx*1+r14]
- movzx ecx,BYTE PTR[rbx*1+r14]
+ movzx ebp,BYTE[rbp*1+r14]
+ movzx esi,BYTE[rsi*1+r14]
+ movzx edi,BYTE[rdi*1+r14]
+ movzx edx,BYTE[rcx*1+r14]
+ movzx ecx,BYTE[rbx*1+r14]
shl ebp,16
xor r12d,r13d
@@ -240,24 +244,24 @@ $L$enc_loop_compact::
mov ebx,r11d
xor ecx,r12d
xor edx,r8d
- cmp r15,QWORD PTR[16+rsp]
- je $L$enc_compact_done
- mov r10d,080808080h
- mov r11d,080808080h
+ cmp r15,QWORD[16+rsp]
+ je NEAR $L$enc_compact_done
+ mov r10d,0x80808080
+ mov r11d,0x80808080
and r10d,eax
and r11d,ebx
mov esi,r10d
mov edi,r11d
shr r10d,7
- lea r8d,DWORD PTR[rax*1+rax]
+ lea r8d,[rax*1+rax]
shr r11d,7
- lea r9d,DWORD PTR[rbx*1+rbx]
+ lea r9d,[rbx*1+rbx]
sub esi,r10d
sub edi,r11d
- and r8d,0fefefefeh
- and r9d,0fefefefeh
- and esi,01b1b1b1bh
- and edi,01b1b1b1bh
+ and r8d,0xfefefefe
+ and r9d,0xfefefefe
+ and esi,0x1b1b1b1b
+ and edi,0x1b1b1b1b
mov r10d,eax
mov r11d,ebx
xor r8d,esi
@@ -265,9 +269,9 @@ $L$enc_loop_compact::
xor eax,r8d
xor ebx,r9d
- mov r12d,080808080h
+ mov r12d,0x80808080
rol eax,24
- mov ebp,080808080h
+ mov ebp,0x80808080
rol ebx,24
and r12d,ecx
and ebp,edx
@@ -277,23 +281,23 @@ $L$enc_loop_compact::
ror r10d,16
mov edi,ebp
ror r11d,16
- lea r8d,DWORD PTR[rcx*1+rcx]
+ lea r8d,[rcx*1+rcx]
shr r12d,7
xor eax,r10d
shr ebp,7
xor ebx,r11d
ror r10d,8
- lea r9d,DWORD PTR[rdx*1+rdx]
+ lea r9d,[rdx*1+rdx]
ror r11d,8
sub esi,r12d
sub edi,ebp
xor eax,r10d
xor ebx,r11d
- and r8d,0fefefefeh
- and r9d,0fefefefeh
- and esi,01b1b1b1bh
- and edi,01b1b1b1bh
+ and r8d,0xfefefefe
+ and r9d,0xfefefefe
+ and esi,0x1b1b1b1b
+ and edi,0x1b1b1b1b
mov r12d,ecx
mov ebp,edx
xor r8d,esi
@@ -304,37 +308,37 @@ $L$enc_loop_compact::
ror ebp,16
xor edx,r9d
rol ecx,24
- mov esi,DWORD PTR[r14]
+ mov esi,DWORD[r14]
rol edx,24
xor ecx,r8d
- mov edi,DWORD PTR[64+r14]
+ mov edi,DWORD[64+r14]
xor edx,r9d
- mov r8d,DWORD PTR[128+r14]
+ mov r8d,DWORD[128+r14]
xor ecx,r12d
ror r12d,8
xor edx,ebp
ror ebp,8
xor ecx,r12d
- mov r9d,DWORD PTR[192+r14]
+ mov r9d,DWORD[192+r14]
xor edx,ebp
- jmp $L$enc_loop_compact
+ jmp NEAR $L$enc_loop_compact
ALIGN 16
-$L$enc_compact_done::
- xor eax,DWORD PTR[r15]
- xor ebx,DWORD PTR[4+r15]
- xor ecx,DWORD PTR[8+r15]
- xor edx,DWORD PTR[12+r15]
-DB 0f3h,0c3h
-_x86_64_AES_encrypt_compact ENDP
+$L$enc_compact_done:
+ xor eax,DWORD[r15]
+ xor ebx,DWORD[4+r15]
+ xor ecx,DWORD[8+r15]
+ xor edx,DWORD[12+r15]
+DB 0xf3,0xc3
+
ALIGN 16
-PUBLIC asm_AES_encrypt
+global asm_AES_encrypt
-asm_AES_encrypt PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+asm_AES_encrypt:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_asm_AES_encrypt::
+$L$SEH_begin_asm_AES_encrypt:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
@@ -349,142 +353,141 @@ $L$SEH_begin_asm_AES_encrypt::
mov r10,rsp
- lea rcx,QWORD PTR[((-63))+rdx]
+ lea rcx,[((-63))+rdx]
and rsp,-64
sub rcx,rsp
neg rcx
- and rcx,03c0h
+ and rcx,0x3c0
sub rsp,rcx
sub rsp,32
- mov QWORD PTR[16+rsp],rsi
- mov QWORD PTR[24+rsp],r10
-$L$enc_prologue::
+ mov QWORD[16+rsp],rsi
+ mov QWORD[24+rsp],r10
+$L$enc_prologue:
mov r15,rdx
- mov r13d,DWORD PTR[240+r15]
+ mov r13d,DWORD[240+r15]
- mov eax,DWORD PTR[rdi]
- mov ebx,DWORD PTR[4+rdi]
- mov ecx,DWORD PTR[8+rdi]
- mov edx,DWORD PTR[12+rdi]
+ mov eax,DWORD[rdi]
+ mov ebx,DWORD[4+rdi]
+ mov ecx,DWORD[8+rdi]
+ mov edx,DWORD[12+rdi]
shl r13d,4
- lea rbp,QWORD PTR[r13*1+r15]
- mov QWORD PTR[rsp],r15
- mov QWORD PTR[8+rsp],rbp
+ lea rbp,[r13*1+r15]
+ mov QWORD[rsp],r15
+ mov QWORD[8+rsp],rbp
- lea r14,QWORD PTR[(($L$AES_Te+2048))]
- lea rbp,QWORD PTR[768+rsp]
+ lea r14,[(($L$AES_Te+2048))]
+ lea rbp,[768+rsp]
sub rbp,r14
- and rbp,0300h
- lea r14,QWORD PTR[rbp*1+r14]
+ and rbp,0x300
+ lea r14,[rbp*1+r14]
call _x86_64_AES_encrypt_compact
- mov r9,QWORD PTR[16+rsp]
- mov rsi,QWORD PTR[24+rsp]
- mov DWORD PTR[r9],eax
- mov DWORD PTR[4+r9],ebx
- mov DWORD PTR[8+r9],ecx
- mov DWORD PTR[12+r9],edx
-
- mov r15,QWORD PTR[rsi]
- mov r14,QWORD PTR[8+rsi]
- mov r13,QWORD PTR[16+rsi]
- mov r12,QWORD PTR[24+rsi]
- mov rbp,QWORD PTR[32+rsi]
- mov rbx,QWORD PTR[40+rsi]
- lea rsp,QWORD PTR[48+rsi]
-$L$enc_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ mov r9,QWORD[16+rsp]
+ mov rsi,QWORD[24+rsp]
+ mov DWORD[r9],eax
+ mov DWORD[4+r9],ebx
+ mov DWORD[8+r9],ecx
+ mov DWORD[12+r9],edx
+
+ mov r15,QWORD[rsi]
+ mov r14,QWORD[8+rsi]
+ mov r13,QWORD[16+rsi]
+ mov r12,QWORD[24+rsi]
+ mov rbp,QWORD[32+rsi]
+ mov rbx,QWORD[40+rsi]
+ lea rsp,[48+rsi]
+$L$enc_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_asm_AES_encrypt::
-asm_AES_encrypt ENDP
+$L$SEH_end_asm_AES_encrypt:
ALIGN 16
-_x86_64_AES_decrypt PROC PRIVATE
- xor eax,DWORD PTR[r15]
- xor ebx,DWORD PTR[4+r15]
- xor ecx,DWORD PTR[8+r15]
- xor edx,DWORD PTR[12+r15]
+_x86_64_AES_decrypt:
+ xor eax,DWORD[r15]
+ xor ebx,DWORD[4+r15]
+ xor ecx,DWORD[8+r15]
+ xor edx,DWORD[12+r15]
- mov r13d,DWORD PTR[240+r15]
+ mov r13d,DWORD[240+r15]
sub r13d,1
- jmp $L$dec_loop
+ jmp NEAR $L$dec_loop
ALIGN 16
-$L$dec_loop::
+$L$dec_loop:
movzx esi,al
movzx edi,bl
movzx ebp,cl
- mov r10d,DWORD PTR[rsi*8+r14]
- mov r11d,DWORD PTR[rdi*8+r14]
- mov r12d,DWORD PTR[rbp*8+r14]
+ mov r10d,DWORD[rsi*8+r14]
+ mov r11d,DWORD[rdi*8+r14]
+ mov r12d,DWORD[rbp*8+r14]
movzx esi,dh
movzx edi,ah
movzx ebp,dl
- xor r10d,DWORD PTR[3+rsi*8+r14]
- xor r11d,DWORD PTR[3+rdi*8+r14]
- mov r8d,DWORD PTR[rbp*8+r14]
+ xor r10d,DWORD[3+rsi*8+r14]
+ xor r11d,DWORD[3+rdi*8+r14]
+ mov r8d,DWORD[rbp*8+r14]
movzx esi,bh
shr eax,16
movzx ebp,ch
- xor r12d,DWORD PTR[3+rsi*8+r14]
+ xor r12d,DWORD[3+rsi*8+r14]
shr edx,16
- xor r8d,DWORD PTR[3+rbp*8+r14]
+ xor r8d,DWORD[3+rbp*8+r14]
shr ebx,16
- lea r15,QWORD PTR[16+r15]
+ lea r15,[16+r15]
shr ecx,16
movzx esi,cl
movzx edi,dl
movzx ebp,al
- xor r10d,DWORD PTR[2+rsi*8+r14]
- xor r11d,DWORD PTR[2+rdi*8+r14]
- xor r12d,DWORD PTR[2+rbp*8+r14]
+ xor r10d,DWORD[2+rsi*8+r14]
+ xor r11d,DWORD[2+rdi*8+r14]
+ xor r12d,DWORD[2+rbp*8+r14]
movzx esi,bh
movzx edi,ch
movzx ebp,bl
- xor r10d,DWORD PTR[1+rsi*8+r14]
- xor r11d,DWORD PTR[1+rdi*8+r14]
- xor r8d,DWORD PTR[2+rbp*8+r14]
+ xor r10d,DWORD[1+rsi*8+r14]
+ xor r11d,DWORD[1+rdi*8+r14]
+ xor r8d,DWORD[2+rbp*8+r14]
movzx esi,dh
- mov edx,DWORD PTR[12+r15]
+ mov edx,DWORD[12+r15]
movzx ebp,ah
- xor r12d,DWORD PTR[1+rsi*8+r14]
- mov eax,DWORD PTR[r15]
- xor r8d,DWORD PTR[1+rbp*8+r14]
+ xor r12d,DWORD[1+rsi*8+r14]
+ mov eax,DWORD[r15]
+ xor r8d,DWORD[1+rbp*8+r14]
xor eax,r10d
- mov ebx,DWORD PTR[4+r15]
- mov ecx,DWORD PTR[8+r15]
+ mov ebx,DWORD[4+r15]
+ mov ecx,DWORD[8+r15]
xor ecx,r12d
xor ebx,r11d
xor edx,r8d
sub r13d,1
- jnz $L$dec_loop
- lea r14,QWORD PTR[2048+r14]
+ jnz NEAR $L$dec_loop
+ lea r14,[2048+r14]
movzx esi,al
movzx edi,bl
movzx ebp,cl
- movzx r10d,BYTE PTR[rsi*1+r14]
- movzx r11d,BYTE PTR[rdi*1+r14]
- movzx r12d,BYTE PTR[rbp*1+r14]
+ movzx r10d,BYTE[rsi*1+r14]
+ movzx r11d,BYTE[rdi*1+r14]
+ movzx r12d,BYTE[rbp*1+r14]
movzx esi,dl
movzx edi,dh
movzx ebp,ah
- movzx r8d,BYTE PTR[rsi*1+r14]
- movzx edi,BYTE PTR[rdi*1+r14]
- movzx ebp,BYTE PTR[rbp*1+r14]
+ movzx r8d,BYTE[rsi*1+r14]
+ movzx edi,BYTE[rdi*1+r14]
+ movzx ebp,BYTE[rbp*1+r14]
shl edi,8
shl ebp,8
@@ -496,8 +499,8 @@ $L$dec_loop::
movzx esi,bh
movzx edi,ch
shr eax,16
- movzx esi,BYTE PTR[rsi*1+r14]
- movzx edi,BYTE PTR[rdi*1+r14]
+ movzx esi,BYTE[rsi*1+r14]
+ movzx edi,BYTE[rdi*1+r14]
shl esi,8
shl edi,8
@@ -509,9 +512,9 @@ $L$dec_loop::
movzx esi,cl
movzx edi,dl
movzx ebp,al
- movzx esi,BYTE PTR[rsi*1+r14]
- movzx edi,BYTE PTR[rdi*1+r14]
- movzx ebp,BYTE PTR[rbp*1+r14]
+ movzx esi,BYTE[rsi*1+r14]
+ movzx edi,BYTE[rdi*1+r14]
+ movzx ebp,BYTE[rbp*1+r14]
shl esi,16
shl edi,16
@@ -524,9 +527,9 @@ $L$dec_loop::
movzx esi,bl
movzx edi,bh
movzx ebp,ch
- movzx esi,BYTE PTR[rsi*1+r14]
- movzx edi,BYTE PTR[rdi*1+r14]
- movzx ebp,BYTE PTR[rbp*1+r14]
+ movzx esi,BYTE[rsi*1+r14]
+ movzx edi,BYTE[rdi*1+r14]
+ movzx ebp,BYTE[rbp*1+r14]
shl esi,16
shl edi,24
@@ -538,10 +541,10 @@ $L$dec_loop::
movzx esi,dh
movzx edi,ah
- mov edx,DWORD PTR[((16+12))+r15]
- movzx esi,BYTE PTR[rsi*1+r14]
- movzx edi,BYTE PTR[rdi*1+r14]
- mov eax,DWORD PTR[((16+0))+r15]
+ mov edx,DWORD[((16+12))+r15]
+ movzx esi,BYTE[rsi*1+r14]
+ movzx edi,BYTE[rdi*1+r14]
+ mov eax,DWORD[((16+0))+r15]
shl esi,24
shl edi,24
@@ -549,36 +552,36 @@ $L$dec_loop::
xor r12d,esi
xor r8d,edi
- mov ebx,DWORD PTR[((16+4))+r15]
- mov ecx,DWORD PTR[((16+8))+r15]
- lea r14,QWORD PTR[((-2048))+r14]
+ mov ebx,DWORD[((16+4))+r15]
+ mov ecx,DWORD[((16+8))+r15]
+ lea r14,[((-2048))+r14]
xor eax,r10d
xor ebx,r11d
xor ecx,r12d
xor edx,r8d
-DB 0f3h,0c3h
-_x86_64_AES_decrypt ENDP
+DB 0xf3,0xc3
+
ALIGN 16
-_x86_64_AES_decrypt_compact PROC PRIVATE
- lea r8,QWORD PTR[128+r14]
- mov edi,DWORD PTR[((0-128))+r8]
- mov ebp,DWORD PTR[((32-128))+r8]
- mov r10d,DWORD PTR[((64-128))+r8]
- mov r11d,DWORD PTR[((96-128))+r8]
- mov edi,DWORD PTR[((128-128))+r8]
- mov ebp,DWORD PTR[((160-128))+r8]
- mov r10d,DWORD PTR[((192-128))+r8]
- mov r11d,DWORD PTR[((224-128))+r8]
- jmp $L$dec_loop_compact
+_x86_64_AES_decrypt_compact:
+ lea r8,[128+r14]
+ mov edi,DWORD[((0-128))+r8]
+ mov ebp,DWORD[((32-128))+r8]
+ mov r10d,DWORD[((64-128))+r8]
+ mov r11d,DWORD[((96-128))+r8]
+ mov edi,DWORD[((128-128))+r8]
+ mov ebp,DWORD[((160-128))+r8]
+ mov r10d,DWORD[((192-128))+r8]
+ mov r11d,DWORD[((224-128))+r8]
+ jmp NEAR $L$dec_loop_compact
ALIGN 16
-$L$dec_loop_compact::
- xor eax,DWORD PTR[r15]
- xor ebx,DWORD PTR[4+r15]
- xor ecx,DWORD PTR[8+r15]
- xor edx,DWORD PTR[12+r15]
- lea r15,QWORD PTR[16+r15]
+$L$dec_loop_compact:
+ xor eax,DWORD[r15]
+ xor ebx,DWORD[4+r15]
+ xor ecx,DWORD[8+r15]
+ xor edx,DWORD[12+r15]
+ lea r15,[16+r15]
movzx r10d,al
movzx r11d,bl
movzx r12d,cl
@@ -587,16 +590,16 @@ $L$dec_loop_compact::
movzx edi,ah
shr edx,16
movzx ebp,bh
- movzx r10d,BYTE PTR[r10*1+r14]
- movzx r11d,BYTE PTR[r11*1+r14]
- movzx r12d,BYTE PTR[r12*1+r14]
- movzx r8d,BYTE PTR[r8*1+r14]
+ movzx r10d,BYTE[r10*1+r14]
+ movzx r11d,BYTE[r11*1+r14]
+ movzx r12d,BYTE[r12*1+r14]
+ movzx r8d,BYTE[r8*1+r14]
- movzx r9d,BYTE PTR[rsi*1+r14]
+ movzx r9d,BYTE[rsi*1+r14]
movzx esi,ch
- movzx r13d,BYTE PTR[rdi*1+r14]
- movzx ebp,BYTE PTR[rbp*1+r14]
- movzx esi,BYTE PTR[rsi*1+r14]
+ movzx r13d,BYTE[rdi*1+r14]
+ movzx ebp,BYTE[rbp*1+r14]
+ movzx esi,BYTE[rsi*1+r14]
shr ecx,16
shl r13d,8
@@ -611,17 +614,17 @@ $L$dec_loop_compact::
xor r11d,r13d
shl esi,8
movzx r13d,al
- movzx edi,BYTE PTR[rdi*1+r14]
+ movzx edi,BYTE[rdi*1+r14]
xor r12d,ebp
movzx ebp,bl
shl edi,16
xor r8d,esi
- movzx r9d,BYTE PTR[r9*1+r14]
+ movzx r9d,BYTE[r9*1+r14]
movzx esi,bh
- movzx ebp,BYTE PTR[rbp*1+r14]
+ movzx ebp,BYTE[rbp*1+r14]
xor r10d,edi
- movzx r13d,BYTE PTR[r13*1+r14]
+ movzx r13d,BYTE[r13*1+r14]
movzx edi,ch
shl ebp,16
@@ -633,10 +636,10 @@ $L$dec_loop_compact::
shr eax,8
xor r12d,r13d
- movzx esi,BYTE PTR[rsi*1+r14]
- movzx ebx,BYTE PTR[rdi*1+r14]
- movzx ecx,BYTE PTR[rbp*1+r14]
- movzx edx,BYTE PTR[rax*1+r14]
+ movzx esi,BYTE[rsi*1+r14]
+ movzx ebx,BYTE[rdi*1+r14]
+ movzx ecx,BYTE[rbp*1+r14]
+ movzx edx,BYTE[rax*1+r14]
mov eax,r10d
shl esi,24
@@ -647,16 +650,16 @@ $L$dec_loop_compact::
xor ebx,r11d
xor ecx,r12d
xor edx,r8d
- cmp r15,QWORD PTR[16+rsp]
- je $L$dec_compact_done
+ cmp r15,QWORD[16+rsp]
+ je NEAR $L$dec_compact_done
- mov rsi,QWORD PTR[((256+0))+r14]
+ mov rsi,QWORD[((256+0))+r14]
shl rbx,32
shl rdx,32
- mov rdi,QWORD PTR[((256+8))+r14]
+ mov rdi,QWORD[((256+8))+r14]
or rax,rbx
or rcx,rdx
- mov rbp,QWORD PTR[((256+16))+r14]
+ mov rbp,QWORD[((256+16))+r14]
mov r9,rsi
mov r12,rsi
and r9,rax
@@ -664,9 +667,9 @@ $L$dec_loop_compact::
mov rbx,r9
mov rdx,r12
shr r9,7
- lea r8,QWORD PTR[rax*1+rax]
+ lea r8,[rax*1+rax]
shr r12,7
- lea r11,QWORD PTR[rcx*1+rcx]
+ lea r11,[rcx*1+rcx]
sub rbx,r9
sub rdx,r12
and r8,rdi
@@ -683,9 +686,9 @@ $L$dec_loop_compact::
mov rbx,r10
mov rdx,r13
shr r10,7
- lea r9,QWORD PTR[r8*1+r8]
+ lea r9,[r8*1+r8]
shr r13,7
- lea r12,QWORD PTR[r11*1+r11]
+ lea r12,[r11*1+r11]
sub rbx,r10
sub rdx,r13
and r9,rdi
@@ -707,8 +710,8 @@ $L$dec_loop_compact::
xor r11,rcx
sub rbx,r10
sub rdx,r13
- lea r10,QWORD PTR[r9*1+r9]
- lea r13,QWORD PTR[r12*1+r12]
+ lea r10,[r9*1+r9]
+ lea r13,[r12*1+r12]
xor r9,rax
xor r12,rcx
and r10,rdi
@@ -761,37 +764,37 @@ $L$dec_loop_compact::
shr r11,32
xor edx,r13d
- mov rsi,QWORD PTR[r14]
+ mov rsi,QWORD[r14]
rol r9d,16
- mov rdi,QWORD PTR[64+r14]
+ mov rdi,QWORD[64+r14]
rol r12d,16
- mov rbp,QWORD PTR[128+r14]
+ mov rbp,QWORD[128+r14]
rol r8d,16
- mov r10,QWORD PTR[192+r14]
+ mov r10,QWORD[192+r14]
xor eax,r9d
rol r11d,16
xor ecx,r12d
- mov r13,QWORD PTR[256+r14]
+ mov r13,QWORD[256+r14]
xor ebx,r8d
xor edx,r11d
- jmp $L$dec_loop_compact
+ jmp NEAR $L$dec_loop_compact
ALIGN 16
-$L$dec_compact_done::
- xor eax,DWORD PTR[r15]
- xor ebx,DWORD PTR[4+r15]
- xor ecx,DWORD PTR[8+r15]
- xor edx,DWORD PTR[12+r15]
-DB 0f3h,0c3h
-_x86_64_AES_decrypt_compact ENDP
+$L$dec_compact_done:
+ xor eax,DWORD[r15]
+ xor ebx,DWORD[4+r15]
+ xor ecx,DWORD[8+r15]
+ xor edx,DWORD[12+r15]
+DB 0xf3,0xc3
+
ALIGN 16
-PUBLIC asm_AES_decrypt
+global asm_AES_decrypt
-asm_AES_decrypt PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+asm_AES_decrypt:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_asm_AES_decrypt::
+$L$SEH_begin_asm_AES_decrypt:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
@@ -806,70 +809,69 @@ $L$SEH_begin_asm_AES_decrypt::
mov r10,rsp
- lea rcx,QWORD PTR[((-63))+rdx]
+ lea rcx,[((-63))+rdx]
and rsp,-64
sub rcx,rsp
neg rcx
- and rcx,03c0h
+ and rcx,0x3c0
sub rsp,rcx
sub rsp,32
- mov QWORD PTR[16+rsp],rsi
- mov QWORD PTR[24+rsp],r10
-$L$dec_prologue::
+ mov QWORD[16+rsp],rsi
+ mov QWORD[24+rsp],r10
+$L$dec_prologue:
mov r15,rdx
- mov r13d,DWORD PTR[240+r15]
+ mov r13d,DWORD[240+r15]
- mov eax,DWORD PTR[rdi]
- mov ebx,DWORD PTR[4+rdi]
- mov ecx,DWORD PTR[8+rdi]
- mov edx,DWORD PTR[12+rdi]
+ mov eax,DWORD[rdi]
+ mov ebx,DWORD[4+rdi]
+ mov ecx,DWORD[8+rdi]
+ mov edx,DWORD[12+rdi]
shl r13d,4
- lea rbp,QWORD PTR[r13*1+r15]
- mov QWORD PTR[rsp],r15
- mov QWORD PTR[8+rsp],rbp
+ lea rbp,[r13*1+r15]
+ mov QWORD[rsp],r15
+ mov QWORD[8+rsp],rbp
- lea r14,QWORD PTR[(($L$AES_Td+2048))]
- lea rbp,QWORD PTR[768+rsp]
+ lea r14,[(($L$AES_Td+2048))]
+ lea rbp,[768+rsp]
sub rbp,r14
- and rbp,0300h
- lea r14,QWORD PTR[rbp*1+r14]
+ and rbp,0x300
+ lea r14,[rbp*1+r14]
shr rbp,3
add r14,rbp
call _x86_64_AES_decrypt_compact
- mov r9,QWORD PTR[16+rsp]
- mov rsi,QWORD PTR[24+rsp]
- mov DWORD PTR[r9],eax
- mov DWORD PTR[4+r9],ebx
- mov DWORD PTR[8+r9],ecx
- mov DWORD PTR[12+r9],edx
-
- mov r15,QWORD PTR[rsi]
- mov r14,QWORD PTR[8+rsi]
- mov r13,QWORD PTR[16+rsi]
- mov r12,QWORD PTR[24+rsi]
- mov rbp,QWORD PTR[32+rsi]
- mov rbx,QWORD PTR[40+rsi]
- lea rsp,QWORD PTR[48+rsi]
-$L$dec_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ mov r9,QWORD[16+rsp]
+ mov rsi,QWORD[24+rsp]
+ mov DWORD[r9],eax
+ mov DWORD[4+r9],ebx
+ mov DWORD[8+r9],ecx
+ mov DWORD[12+r9],edx
+
+ mov r15,QWORD[rsi]
+ mov r14,QWORD[8+rsi]
+ mov r13,QWORD[16+rsi]
+ mov r12,QWORD[24+rsi]
+ mov rbp,QWORD[32+rsi]
+ mov rbx,QWORD[40+rsi]
+ lea rsp,[48+rsi]
+$L$dec_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_asm_AES_decrypt::
-asm_AES_decrypt ENDP
+$L$SEH_end_asm_AES_decrypt:
ALIGN 16
-PUBLIC asm_AES_set_encrypt_key
+global asm_AES_set_encrypt_key
-asm_AES_set_encrypt_key PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+asm_AES_set_encrypt_key:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_asm_AES_set_encrypt_key::
+$L$SEH_begin_asm_AES_set_encrypt_key:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
@@ -882,267 +884,266 @@ $L$SEH_begin_asm_AES_set_encrypt_key::
push r14
push r15
sub rsp,8
-$L$enc_key_prologue::
+$L$enc_key_prologue:
call _x86_64_AES_set_encrypt_key
- mov rbp,QWORD PTR[40+rsp]
- mov rbx,QWORD PTR[48+rsp]
+ mov rbp,QWORD[40+rsp]
+ mov rbx,QWORD[48+rsp]
add rsp,56
-$L$enc_key_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+$L$enc_key_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_asm_AES_set_encrypt_key::
-asm_AES_set_encrypt_key ENDP
+$L$SEH_end_asm_AES_set_encrypt_key:
ALIGN 16
-_x86_64_AES_set_encrypt_key PROC PRIVATE
+_x86_64_AES_set_encrypt_key:
mov ecx,esi
mov rsi,rdi
mov rdi,rdx
test rsi,-1
- jz $L$badpointer
+ jz NEAR $L$badpointer
test rdi,-1
- jz $L$badpointer
+ jz NEAR $L$badpointer
- lea rbp,QWORD PTR[$L$AES_Te]
- lea rbp,QWORD PTR[((2048+128))+rbp]
+ lea rbp,[$L$AES_Te]
+ lea rbp,[((2048+128))+rbp]
- mov eax,DWORD PTR[((0-128))+rbp]
- mov ebx,DWORD PTR[((32-128))+rbp]
- mov r8d,DWORD PTR[((64-128))+rbp]
- mov edx,DWORD PTR[((96-128))+rbp]
- mov eax,DWORD PTR[((128-128))+rbp]
- mov ebx,DWORD PTR[((160-128))+rbp]
- mov r8d,DWORD PTR[((192-128))+rbp]
- mov edx,DWORD PTR[((224-128))+rbp]
+ mov eax,DWORD[((0-128))+rbp]
+ mov ebx,DWORD[((32-128))+rbp]
+ mov r8d,DWORD[((64-128))+rbp]
+ mov edx,DWORD[((96-128))+rbp]
+ mov eax,DWORD[((128-128))+rbp]
+ mov ebx,DWORD[((160-128))+rbp]
+ mov r8d,DWORD[((192-128))+rbp]
+ mov edx,DWORD[((224-128))+rbp]
cmp ecx,128
- je $L$10rounds
+ je NEAR $L$10rounds
cmp ecx,192
- je $L$12rounds
+ je NEAR $L$12rounds
cmp ecx,256
- je $L$14rounds
+ je NEAR $L$14rounds
mov rax,-2
- jmp $L$exit
+ jmp NEAR $L$exit
-$L$10rounds::
- mov rax,QWORD PTR[rsi]
- mov rdx,QWORD PTR[8+rsi]
- mov QWORD PTR[rdi],rax
- mov QWORD PTR[8+rdi],rdx
+$L$10rounds:
+ mov rax,QWORD[rsi]
+ mov rdx,QWORD[8+rsi]
+ mov QWORD[rdi],rax
+ mov QWORD[8+rdi],rdx
shr rdx,32
xor ecx,ecx
- jmp $L$10shortcut
+ jmp NEAR $L$10shortcut
ALIGN 4
-$L$10loop::
- mov eax,DWORD PTR[rdi]
- mov edx,DWORD PTR[12+rdi]
-$L$10shortcut::
+$L$10loop:
+ mov eax,DWORD[rdi]
+ mov edx,DWORD[12+rdi]
+$L$10shortcut:
movzx esi,dl
- movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
+ movzx ebx,BYTE[((-128))+rsi*1+rbp]
movzx esi,dh
shl ebx,24
xor eax,ebx
- movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
+ movzx ebx,BYTE[((-128))+rsi*1+rbp]
shr edx,16
movzx esi,dl
xor eax,ebx
- movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
+ movzx ebx,BYTE[((-128))+rsi*1+rbp]
movzx esi,dh
shl ebx,8
xor eax,ebx
- movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
+ movzx ebx,BYTE[((-128))+rsi*1+rbp]
shl ebx,16
xor eax,ebx
- xor eax,DWORD PTR[((1024-128))+rcx*4+rbp]
- mov DWORD PTR[16+rdi],eax
- xor eax,DWORD PTR[4+rdi]
- mov DWORD PTR[20+rdi],eax
- xor eax,DWORD PTR[8+rdi]
- mov DWORD PTR[24+rdi],eax
- xor eax,DWORD PTR[12+rdi]
- mov DWORD PTR[28+rdi],eax
+ xor eax,DWORD[((1024-128))+rcx*4+rbp]
+ mov DWORD[16+rdi],eax
+ xor eax,DWORD[4+rdi]
+ mov DWORD[20+rdi],eax
+ xor eax,DWORD[8+rdi]
+ mov DWORD[24+rdi],eax
+ xor eax,DWORD[12+rdi]
+ mov DWORD[28+rdi],eax
add ecx,1
- lea rdi,QWORD PTR[16+rdi]
+ lea rdi,[16+rdi]
cmp ecx,10
- jl $L$10loop
+ jl NEAR $L$10loop
- mov DWORD PTR[80+rdi],10
+ mov DWORD[80+rdi],10
xor rax,rax
- jmp $L$exit
+ jmp NEAR $L$exit
-$L$12rounds::
- mov rax,QWORD PTR[rsi]
- mov rbx,QWORD PTR[8+rsi]
- mov rdx,QWORD PTR[16+rsi]
- mov QWORD PTR[rdi],rax
- mov QWORD PTR[8+rdi],rbx
- mov QWORD PTR[16+rdi],rdx
+$L$12rounds:
+ mov rax,QWORD[rsi]
+ mov rbx,QWORD[8+rsi]
+ mov rdx,QWORD[16+rsi]
+ mov QWORD[rdi],rax
+ mov QWORD[8+rdi],rbx
+ mov QWORD[16+rdi],rdx
shr rdx,32
xor ecx,ecx
- jmp $L$12shortcut
+ jmp NEAR $L$12shortcut
ALIGN 4
-$L$12loop::
- mov eax,DWORD PTR[rdi]
- mov edx,DWORD PTR[20+rdi]
-$L$12shortcut::
+$L$12loop:
+ mov eax,DWORD[rdi]
+ mov edx,DWORD[20+rdi]
+$L$12shortcut:
movzx esi,dl
- movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
+ movzx ebx,BYTE[((-128))+rsi*1+rbp]
movzx esi,dh
shl ebx,24
xor eax,ebx
- movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
+ movzx ebx,BYTE[((-128))+rsi*1+rbp]
shr edx,16
movzx esi,dl
xor eax,ebx
- movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
+ movzx ebx,BYTE[((-128))+rsi*1+rbp]
movzx esi,dh
shl ebx,8
xor eax,ebx
- movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
+ movzx ebx,BYTE[((-128))+rsi*1+rbp]
shl ebx,16
xor eax,ebx
- xor eax,DWORD PTR[((1024-128))+rcx*4+rbp]
- mov DWORD PTR[24+rdi],eax
- xor eax,DWORD PTR[4+rdi]
- mov DWORD PTR[28+rdi],eax
- xor eax,DWORD PTR[8+rdi]
- mov DWORD PTR[32+rdi],eax
- xor eax,DWORD PTR[12+rdi]
- mov DWORD PTR[36+rdi],eax
+ xor eax,DWORD[((1024-128))+rcx*4+rbp]
+ mov DWORD[24+rdi],eax
+ xor eax,DWORD[4+rdi]
+ mov DWORD[28+rdi],eax
+ xor eax,DWORD[8+rdi]
+ mov DWORD[32+rdi],eax
+ xor eax,DWORD[12+rdi]
+ mov DWORD[36+rdi],eax
cmp ecx,7
- je $L$12break
+ je NEAR $L$12break
add ecx,1
- xor eax,DWORD PTR[16+rdi]
- mov DWORD PTR[40+rdi],eax
- xor eax,DWORD PTR[20+rdi]
- mov DWORD PTR[44+rdi],eax
+ xor eax,DWORD[16+rdi]
+ mov DWORD[40+rdi],eax
+ xor eax,DWORD[20+rdi]
+ mov DWORD[44+rdi],eax
- lea rdi,QWORD PTR[24+rdi]
- jmp $L$12loop
-$L$12break::
- mov DWORD PTR[72+rdi],12
+ lea rdi,[24+rdi]
+ jmp NEAR $L$12loop
+$L$12break:
+ mov DWORD[72+rdi],12
xor rax,rax
- jmp $L$exit
-
-$L$14rounds::
- mov rax,QWORD PTR[rsi]
- mov rbx,QWORD PTR[8+rsi]
- mov rcx,QWORD PTR[16+rsi]
- mov rdx,QWORD PTR[24+rsi]
- mov QWORD PTR[rdi],rax
- mov QWORD PTR[8+rdi],rbx
- mov QWORD PTR[16+rdi],rcx
- mov QWORD PTR[24+rdi],rdx
+ jmp NEAR $L$exit
+
+$L$14rounds:
+ mov rax,QWORD[rsi]
+ mov rbx,QWORD[8+rsi]
+ mov rcx,QWORD[16+rsi]
+ mov rdx,QWORD[24+rsi]
+ mov QWORD[rdi],rax
+ mov QWORD[8+rdi],rbx
+ mov QWORD[16+rdi],rcx
+ mov QWORD[24+rdi],rdx
shr rdx,32
xor ecx,ecx
- jmp $L$14shortcut
+ jmp NEAR $L$14shortcut
ALIGN 4
-$L$14loop::
- mov eax,DWORD PTR[rdi]
- mov edx,DWORD PTR[28+rdi]
-$L$14shortcut::
+$L$14loop:
+ mov eax,DWORD[rdi]
+ mov edx,DWORD[28+rdi]
+$L$14shortcut:
movzx esi,dl
- movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
+ movzx ebx,BYTE[((-128))+rsi*1+rbp]
movzx esi,dh
shl ebx,24
xor eax,ebx
- movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
+ movzx ebx,BYTE[((-128))+rsi*1+rbp]
shr edx,16
movzx esi,dl
xor eax,ebx
- movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
+ movzx ebx,BYTE[((-128))+rsi*1+rbp]
movzx esi,dh
shl ebx,8
xor eax,ebx
- movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
+ movzx ebx,BYTE[((-128))+rsi*1+rbp]
shl ebx,16
xor eax,ebx
- xor eax,DWORD PTR[((1024-128))+rcx*4+rbp]
- mov DWORD PTR[32+rdi],eax
- xor eax,DWORD PTR[4+rdi]
- mov DWORD PTR[36+rdi],eax
- xor eax,DWORD PTR[8+rdi]
- mov DWORD PTR[40+rdi],eax
- xor eax,DWORD PTR[12+rdi]
- mov DWORD PTR[44+rdi],eax
+ xor eax,DWORD[((1024-128))+rcx*4+rbp]
+ mov DWORD[32+rdi],eax
+ xor eax,DWORD[4+rdi]
+ mov DWORD[36+rdi],eax
+ xor eax,DWORD[8+rdi]
+ mov DWORD[40+rdi],eax
+ xor eax,DWORD[12+rdi]
+ mov DWORD[44+rdi],eax
cmp ecx,6
- je $L$14break
+ je NEAR $L$14break
add ecx,1
mov edx,eax
- mov eax,DWORD PTR[16+rdi]
+ mov eax,DWORD[16+rdi]
movzx esi,dl
- movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
+ movzx ebx,BYTE[((-128))+rsi*1+rbp]
movzx esi,dh
xor eax,ebx
- movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
+ movzx ebx,BYTE[((-128))+rsi*1+rbp]
shr edx,16
shl ebx,8
movzx esi,dl
xor eax,ebx
- movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
+ movzx ebx,BYTE[((-128))+rsi*1+rbp]
movzx esi,dh
shl ebx,16
xor eax,ebx
- movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
+ movzx ebx,BYTE[((-128))+rsi*1+rbp]
shl ebx,24
xor eax,ebx
- mov DWORD PTR[48+rdi],eax
- xor eax,DWORD PTR[20+rdi]
- mov DWORD PTR[52+rdi],eax
- xor eax,DWORD PTR[24+rdi]
- mov DWORD PTR[56+rdi],eax
- xor eax,DWORD PTR[28+rdi]
- mov DWORD PTR[60+rdi],eax
-
- lea rdi,QWORD PTR[32+rdi]
- jmp $L$14loop
-$L$14break::
- mov DWORD PTR[48+rdi],14
+ mov DWORD[48+rdi],eax
+ xor eax,DWORD[20+rdi]
+ mov DWORD[52+rdi],eax
+ xor eax,DWORD[24+rdi]
+ mov DWORD[56+rdi],eax
+ xor eax,DWORD[28+rdi]
+ mov DWORD[60+rdi],eax
+
+ lea rdi,[32+rdi]
+ jmp NEAR $L$14loop
+$L$14break:
+ mov DWORD[48+rdi],14
xor rax,rax
- jmp $L$exit
+ jmp NEAR $L$exit
-$L$badpointer::
+$L$badpointer:
mov rax,-1
-$L$exit::
-DB 0f3h,0c3h
-_x86_64_AES_set_encrypt_key ENDP
+$L$exit:
+DB 0xf3,0xc3
+
ALIGN 16
-PUBLIC asm_AES_set_decrypt_key
+global asm_AES_set_decrypt_key
-asm_AES_set_decrypt_key PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+asm_AES_set_decrypt_key:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_asm_AES_set_decrypt_key::
+$L$SEH_begin_asm_AES_set_decrypt_key:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
@@ -1155,46 +1156,46 @@ $L$SEH_begin_asm_AES_set_decrypt_key::
push r14
push r15
push rdx
-$L$dec_key_prologue::
+$L$dec_key_prologue:
call _x86_64_AES_set_encrypt_key
- mov r8,QWORD PTR[rsp]
+ mov r8,QWORD[rsp]
cmp eax,0
- jne $L$abort
+ jne NEAR $L$abort
- mov r14d,DWORD PTR[240+r8]
+ mov r14d,DWORD[240+r8]
xor rdi,rdi
- lea rcx,QWORD PTR[r14*4+rdi]
+ lea rcx,[r14*4+rdi]
mov rsi,r8
- lea rdi,QWORD PTR[rcx*4+r8]
+ lea rdi,[rcx*4+r8]
ALIGN 4
-$L$invert::
- mov rax,QWORD PTR[rsi]
- mov rbx,QWORD PTR[8+rsi]
- mov rcx,QWORD PTR[rdi]
- mov rdx,QWORD PTR[8+rdi]
- mov QWORD PTR[rdi],rax
- mov QWORD PTR[8+rdi],rbx
- mov QWORD PTR[rsi],rcx
- mov QWORD PTR[8+rsi],rdx
- lea rsi,QWORD PTR[16+rsi]
- lea rdi,QWORD PTR[((-16))+rdi]
+$L$invert:
+ mov rax,QWORD[rsi]
+ mov rbx,QWORD[8+rsi]
+ mov rcx,QWORD[rdi]
+ mov rdx,QWORD[8+rdi]
+ mov QWORD[rdi],rax
+ mov QWORD[8+rdi],rbx
+ mov QWORD[rsi],rcx
+ mov QWORD[8+rsi],rdx
+ lea rsi,[16+rsi]
+ lea rdi,[((-16))+rdi]
cmp rdi,rsi
- jne $L$invert
+ jne NEAR $L$invert
- lea rax,QWORD PTR[(($L$AES_Te+2048+1024))]
+ lea rax,[(($L$AES_Te+2048+1024))]
- mov rsi,QWORD PTR[40+rax]
- mov rdi,QWORD PTR[48+rax]
- mov rbp,QWORD PTR[56+rax]
+ mov rsi,QWORD[40+rax]
+ mov rdi,QWORD[48+rax]
+ mov rbp,QWORD[56+rax]
mov r15,r8
sub r14d,1
ALIGN 4
-$L$permute::
- lea r15,QWORD PTR[16+r15]
- mov rax,QWORD PTR[r15]
- mov rcx,QWORD PTR[8+r15]
+$L$permute:
+ lea r15,[16+r15]
+ mov rax,QWORD[r15]
+ mov rcx,QWORD[8+r15]
mov r9,rsi
mov r12,rsi
and r9,rax
@@ -1202,9 +1203,9 @@ $L$permute::
mov rbx,r9
mov rdx,r12
shr r9,7
- lea r8,QWORD PTR[rax*1+rax]
+ lea r8,[rax*1+rax]
shr r12,7
- lea r11,QWORD PTR[rcx*1+rcx]
+ lea r11,[rcx*1+rcx]
sub rbx,r9
sub rdx,r12
and r8,rdi
@@ -1221,9 +1222,9 @@ $L$permute::
mov rbx,r10
mov rdx,r13
shr r10,7
- lea r9,QWORD PTR[r8*1+r8]
+ lea r9,[r8*1+r8]
shr r13,7
- lea r12,QWORD PTR[r11*1+r11]
+ lea r12,[r11*1+r11]
sub rbx,r10
sub rdx,r13
and r9,rdi
@@ -1245,8 +1246,8 @@ $L$permute::
xor r11,rcx
sub rbx,r10
sub rdx,r13
- lea r10,QWORD PTR[r9*1+r9]
- lea r13,QWORD PTR[r12*1+r12]
+ lea r10,[r9*1+r9]
+ lea r13,[r12*1+r12]
xor r9,rax
xor r12,rcx
and r10,rdi
@@ -1312,48 +1313,47 @@ $L$permute::
xor ebx,r8d
xor edx,r11d
- mov DWORD PTR[r15],eax
- mov DWORD PTR[4+r15],ebx
- mov DWORD PTR[8+r15],ecx
- mov DWORD PTR[12+r15],edx
+ mov DWORD[r15],eax
+ mov DWORD[4+r15],ebx
+ mov DWORD[8+r15],ecx
+ mov DWORD[12+r15],edx
sub r14d,1
- jnz $L$permute
+ jnz NEAR $L$permute
xor rax,rax
-$L$abort::
- mov r15,QWORD PTR[8+rsp]
- mov r14,QWORD PTR[16+rsp]
- mov r13,QWORD PTR[24+rsp]
- mov r12,QWORD PTR[32+rsp]
- mov rbp,QWORD PTR[40+rsp]
- mov rbx,QWORD PTR[48+rsp]
+$L$abort:
+ mov r15,QWORD[8+rsp]
+ mov r14,QWORD[16+rsp]
+ mov r13,QWORD[24+rsp]
+ mov r12,QWORD[32+rsp]
+ mov rbp,QWORD[40+rsp]
+ mov rbx,QWORD[48+rsp]
add rsp,56
-$L$dec_key_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+$L$dec_key_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_asm_AES_set_decrypt_key::
-asm_AES_set_decrypt_key ENDP
+$L$SEH_end_asm_AES_set_decrypt_key:
ALIGN 16
-PUBLIC asm_AES_cbc_encrypt
+global asm_AES_cbc_encrypt
-EXTERN OPENSSL_ia32cap_P:NEAR
+EXTERN OPENSSL_ia32cap_P
-asm_AES_cbc_encrypt PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+asm_AES_cbc_encrypt:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_asm_AES_cbc_encrypt::
+$L$SEH_begin_asm_AES_cbc_encrypt:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
mov rcx,r9
- mov r8,QWORD PTR[40+rsp]
- mov r9,QWORD PTR[48+rsp]
+ mov r8,QWORD[40+rsp]
+ mov r9,QWORD[48+rsp]
cmp rdx,0
- je $L$cbc_epilogue
+ je NEAR $L$cbc_epilogue
pushfq
push rbx
push rbp
@@ -1361,269 +1361,269 @@ $L$SEH_begin_asm_AES_cbc_encrypt::
push r13
push r14
push r15
-$L$cbc_prologue::
+$L$cbc_prologue:
cld
mov r9d,r9d
- lea r14,QWORD PTR[$L$AES_Te]
+ lea r14,[$L$AES_Te]
cmp r9,0
- jne $L$cbc_picked_te
- lea r14,QWORD PTR[$L$AES_Td]
-$L$cbc_picked_te::
+ jne NEAR $L$cbc_picked_te
+ lea r14,[$L$AES_Td]
+$L$cbc_picked_te:
- mov r10d,DWORD PTR[OPENSSL_ia32cap_P]
+ mov r10d,DWORD[OPENSSL_ia32cap_P]
cmp rdx,512
- jb $L$cbc_slow_prologue
+ jb NEAR $L$cbc_slow_prologue
test rdx,15
- jnz $L$cbc_slow_prologue
+ jnz NEAR $L$cbc_slow_prologue
bt r10d,28
- jc $L$cbc_slow_prologue
+ jc NEAR $L$cbc_slow_prologue
- lea r15,QWORD PTR[((-88-248))+rsp]
+ lea r15,[((-88-248))+rsp]
and r15,-64
mov r10,r14
- lea r11,QWORD PTR[2304+r14]
+ lea r11,[2304+r14]
mov r12,r15
- and r10,0FFFh
- and r11,0FFFh
- and r12,0FFFh
+ and r10,0xFFF
+ and r11,0xFFF
+ and r12,0xFFF
cmp r12,r11
- jb $L$cbc_te_break_out
+ jb NEAR $L$cbc_te_break_out
sub r12,r11
sub r15,r12
- jmp $L$cbc_te_ok
-$L$cbc_te_break_out::
+ jmp NEAR $L$cbc_te_ok
+$L$cbc_te_break_out:
sub r12,r10
- and r12,0FFFh
+ and r12,0xFFF
add r12,320
sub r15,r12
ALIGN 4
-$L$cbc_te_ok::
+$L$cbc_te_ok:
xchg r15,rsp
- mov QWORD PTR[16+rsp],r15
-$L$cbc_fast_body::
- mov QWORD PTR[24+rsp],rdi
- mov QWORD PTR[32+rsp],rsi
- mov QWORD PTR[40+rsp],rdx
- mov QWORD PTR[48+rsp],rcx
- mov QWORD PTR[56+rsp],r8
- mov DWORD PTR[((80+240))+rsp],0
+ mov QWORD[16+rsp],r15
+$L$cbc_fast_body:
+ mov QWORD[24+rsp],rdi
+ mov QWORD[32+rsp],rsi
+ mov QWORD[40+rsp],rdx
+ mov QWORD[48+rsp],rcx
+ mov QWORD[56+rsp],r8
+ mov DWORD[((80+240))+rsp],0
mov rbp,r8
mov rbx,r9
mov r9,rsi
mov r8,rdi
mov r15,rcx
- mov eax,DWORD PTR[240+r15]
+ mov eax,DWORD[240+r15]
mov r10,r15
sub r10,r14
- and r10,0fffh
+ and r10,0xfff
cmp r10,2304
- jb $L$cbc_do_ecopy
+ jb NEAR $L$cbc_do_ecopy
cmp r10,4096-248
- jb $L$cbc_skip_ecopy
+ jb NEAR $L$cbc_skip_ecopy
ALIGN 4
-$L$cbc_do_ecopy::
+$L$cbc_do_ecopy:
mov rsi,r15
- lea rdi,QWORD PTR[80+rsp]
- lea r15,QWORD PTR[80+rsp]
+ lea rdi,[80+rsp]
+ lea r15,[80+rsp]
mov ecx,240/8
- DD 090A548F3h
- mov DWORD PTR[rdi],eax
-$L$cbc_skip_ecopy::
- mov QWORD PTR[rsp],r15
+ DD 0x90A548F3
+ mov DWORD[rdi],eax
+$L$cbc_skip_ecopy:
+ mov QWORD[rsp],r15
mov ecx,18
ALIGN 4
-$L$cbc_prefetch_te::
- mov r10,QWORD PTR[r14]
- mov r11,QWORD PTR[32+r14]
- mov r12,QWORD PTR[64+r14]
- mov r13,QWORD PTR[96+r14]
- lea r14,QWORD PTR[128+r14]
+$L$cbc_prefetch_te:
+ mov r10,QWORD[r14]
+ mov r11,QWORD[32+r14]
+ mov r12,QWORD[64+r14]
+ mov r13,QWORD[96+r14]
+ lea r14,[128+r14]
sub ecx,1
- jnz $L$cbc_prefetch_te
- lea r14,QWORD PTR[((-2304))+r14]
+ jnz NEAR $L$cbc_prefetch_te
+ lea r14,[((-2304))+r14]
cmp rbx,0
- je $L$FAST_DECRYPT
+ je NEAR $L$FAST_DECRYPT
- mov eax,DWORD PTR[rbp]
- mov ebx,DWORD PTR[4+rbp]
- mov ecx,DWORD PTR[8+rbp]
- mov edx,DWORD PTR[12+rbp]
+ mov eax,DWORD[rbp]
+ mov ebx,DWORD[4+rbp]
+ mov ecx,DWORD[8+rbp]
+ mov edx,DWORD[12+rbp]
ALIGN 4
-$L$cbc_fast_enc_loop::
- xor eax,DWORD PTR[r8]
- xor ebx,DWORD PTR[4+r8]
- xor ecx,DWORD PTR[8+r8]
- xor edx,DWORD PTR[12+r8]
- mov r15,QWORD PTR[rsp]
- mov QWORD PTR[24+rsp],r8
+$L$cbc_fast_enc_loop:
+ xor eax,DWORD[r8]
+ xor ebx,DWORD[4+r8]
+ xor ecx,DWORD[8+r8]
+ xor edx,DWORD[12+r8]
+ mov r15,QWORD[rsp]
+ mov QWORD[24+rsp],r8
call _x86_64_AES_encrypt
- mov r8,QWORD PTR[24+rsp]
- mov r10,QWORD PTR[40+rsp]
- mov DWORD PTR[r9],eax
- mov DWORD PTR[4+r9],ebx
- mov DWORD PTR[8+r9],ecx
- mov DWORD PTR[12+r9],edx
+ mov r8,QWORD[24+rsp]
+ mov r10,QWORD[40+rsp]
+ mov DWORD[r9],eax
+ mov DWORD[4+r9],ebx
+ mov DWORD[8+r9],ecx
+ mov DWORD[12+r9],edx
- lea r8,QWORD PTR[16+r8]
- lea r9,QWORD PTR[16+r9]
+ lea r8,[16+r8]
+ lea r9,[16+r9]
sub r10,16
test r10,-16
- mov QWORD PTR[40+rsp],r10
- jnz $L$cbc_fast_enc_loop
- mov rbp,QWORD PTR[56+rsp]
- mov DWORD PTR[rbp],eax
- mov DWORD PTR[4+rbp],ebx
- mov DWORD PTR[8+rbp],ecx
- mov DWORD PTR[12+rbp],edx
+ mov QWORD[40+rsp],r10
+ jnz NEAR $L$cbc_fast_enc_loop
+ mov rbp,QWORD[56+rsp]
+ mov DWORD[rbp],eax
+ mov DWORD[4+rbp],ebx
+ mov DWORD[8+rbp],ecx
+ mov DWORD[12+rbp],edx
- jmp $L$cbc_fast_cleanup
+ jmp NEAR $L$cbc_fast_cleanup
ALIGN 16
-$L$FAST_DECRYPT::
+$L$FAST_DECRYPT:
cmp r9,r8
- je $L$cbc_fast_dec_in_place
+ je NEAR $L$cbc_fast_dec_in_place
- mov QWORD PTR[64+rsp],rbp
+ mov QWORD[64+rsp],rbp
ALIGN 4
-$L$cbc_fast_dec_loop::
- mov eax,DWORD PTR[r8]
- mov ebx,DWORD PTR[4+r8]
- mov ecx,DWORD PTR[8+r8]
- mov edx,DWORD PTR[12+r8]
- mov r15,QWORD PTR[rsp]
- mov QWORD PTR[24+rsp],r8
+$L$cbc_fast_dec_loop:
+ mov eax,DWORD[r8]
+ mov ebx,DWORD[4+r8]
+ mov ecx,DWORD[8+r8]
+ mov edx,DWORD[12+r8]
+ mov r15,QWORD[rsp]
+ mov QWORD[24+rsp],r8
call _x86_64_AES_decrypt
- mov rbp,QWORD PTR[64+rsp]
- mov r8,QWORD PTR[24+rsp]
- mov r10,QWORD PTR[40+rsp]
- xor eax,DWORD PTR[rbp]
- xor ebx,DWORD PTR[4+rbp]
- xor ecx,DWORD PTR[8+rbp]
- xor edx,DWORD PTR[12+rbp]
+ mov rbp,QWORD[64+rsp]
+ mov r8,QWORD[24+rsp]
+ mov r10,QWORD[40+rsp]
+ xor eax,DWORD[rbp]
+ xor ebx,DWORD[4+rbp]
+ xor ecx,DWORD[8+rbp]
+ xor edx,DWORD[12+rbp]
mov rbp,r8
sub r10,16
- mov QWORD PTR[40+rsp],r10
- mov QWORD PTR[64+rsp],rbp
-
- mov DWORD PTR[r9],eax
- mov DWORD PTR[4+r9],ebx
- mov DWORD PTR[8+r9],ecx
- mov DWORD PTR[12+r9],edx
-
- lea r8,QWORD PTR[16+r8]
- lea r9,QWORD PTR[16+r9]
- jnz $L$cbc_fast_dec_loop
- mov r12,QWORD PTR[56+rsp]
- mov r10,QWORD PTR[rbp]
- mov r11,QWORD PTR[8+rbp]
- mov QWORD PTR[r12],r10
- mov QWORD PTR[8+r12],r11
- jmp $L$cbc_fast_cleanup
+ mov QWORD[40+rsp],r10
+ mov QWORD[64+rsp],rbp
+
+ mov DWORD[r9],eax
+ mov DWORD[4+r9],ebx
+ mov DWORD[8+r9],ecx
+ mov DWORD[12+r9],edx
+
+ lea r8,[16+r8]
+ lea r9,[16+r9]
+ jnz NEAR $L$cbc_fast_dec_loop
+ mov r12,QWORD[56+rsp]
+ mov r10,QWORD[rbp]
+ mov r11,QWORD[8+rbp]
+ mov QWORD[r12],r10
+ mov QWORD[8+r12],r11
+ jmp NEAR $L$cbc_fast_cleanup
ALIGN 16
-$L$cbc_fast_dec_in_place::
- mov r10,QWORD PTR[rbp]
- mov r11,QWORD PTR[8+rbp]
- mov QWORD PTR[((0+64))+rsp],r10
- mov QWORD PTR[((8+64))+rsp],r11
+$L$cbc_fast_dec_in_place:
+ mov r10,QWORD[rbp]
+ mov r11,QWORD[8+rbp]
+ mov QWORD[((0+64))+rsp],r10
+ mov QWORD[((8+64))+rsp],r11
ALIGN 4
-$L$cbc_fast_dec_in_place_loop::
- mov eax,DWORD PTR[r8]
- mov ebx,DWORD PTR[4+r8]
- mov ecx,DWORD PTR[8+r8]
- mov edx,DWORD PTR[12+r8]
- mov r15,QWORD PTR[rsp]
- mov QWORD PTR[24+rsp],r8
+$L$cbc_fast_dec_in_place_loop:
+ mov eax,DWORD[r8]
+ mov ebx,DWORD[4+r8]
+ mov ecx,DWORD[8+r8]
+ mov edx,DWORD[12+r8]
+ mov r15,QWORD[rsp]
+ mov QWORD[24+rsp],r8
call _x86_64_AES_decrypt
- mov r8,QWORD PTR[24+rsp]
- mov r10,QWORD PTR[40+rsp]
- xor eax,DWORD PTR[((0+64))+rsp]
- xor ebx,DWORD PTR[((4+64))+rsp]
- xor ecx,DWORD PTR[((8+64))+rsp]
- xor edx,DWORD PTR[((12+64))+rsp]
+ mov r8,QWORD[24+rsp]
+ mov r10,QWORD[40+rsp]
+ xor eax,DWORD[((0+64))+rsp]
+ xor ebx,DWORD[((4+64))+rsp]
+ xor ecx,DWORD[((8+64))+rsp]
+ xor edx,DWORD[((12+64))+rsp]
- mov r11,QWORD PTR[r8]
- mov r12,QWORD PTR[8+r8]
+ mov r11,QWORD[r8]
+ mov r12,QWORD[8+r8]
sub r10,16
- jz $L$cbc_fast_dec_in_place_done
-
- mov QWORD PTR[((0+64))+rsp],r11
- mov QWORD PTR[((8+64))+rsp],r12
-
- mov DWORD PTR[r9],eax
- mov DWORD PTR[4+r9],ebx
- mov DWORD PTR[8+r9],ecx
- mov DWORD PTR[12+r9],edx
-
- lea r8,QWORD PTR[16+r8]
- lea r9,QWORD PTR[16+r9]
- mov QWORD PTR[40+rsp],r10
- jmp $L$cbc_fast_dec_in_place_loop
-$L$cbc_fast_dec_in_place_done::
- mov rdi,QWORD PTR[56+rsp]
- mov QWORD PTR[rdi],r11
- mov QWORD PTR[8+rdi],r12
-
- mov DWORD PTR[r9],eax
- mov DWORD PTR[4+r9],ebx
- mov DWORD PTR[8+r9],ecx
- mov DWORD PTR[12+r9],edx
+ jz NEAR $L$cbc_fast_dec_in_place_done
+
+ mov QWORD[((0+64))+rsp],r11
+ mov QWORD[((8+64))+rsp],r12
+
+ mov DWORD[r9],eax
+ mov DWORD[4+r9],ebx
+ mov DWORD[8+r9],ecx
+ mov DWORD[12+r9],edx
+
+ lea r8,[16+r8]
+ lea r9,[16+r9]
+ mov QWORD[40+rsp],r10
+ jmp NEAR $L$cbc_fast_dec_in_place_loop
+$L$cbc_fast_dec_in_place_done:
+ mov rdi,QWORD[56+rsp]
+ mov QWORD[rdi],r11
+ mov QWORD[8+rdi],r12
+
+ mov DWORD[r9],eax
+ mov DWORD[4+r9],ebx
+ mov DWORD[8+r9],ecx
+ mov DWORD[12+r9],edx
ALIGN 4
-$L$cbc_fast_cleanup::
- cmp DWORD PTR[((80+240))+rsp],0
- lea rdi,QWORD PTR[80+rsp]
- je $L$cbc_exit
+$L$cbc_fast_cleanup:
+ cmp DWORD[((80+240))+rsp],0
+ lea rdi,[80+rsp]
+ je NEAR $L$cbc_exit
mov ecx,240/8
xor rax,rax
- DD 090AB48F3h
+ DD 0x90AB48F3
- jmp $L$cbc_exit
+ jmp NEAR $L$cbc_exit
ALIGN 16
-$L$cbc_slow_prologue::
+$L$cbc_slow_prologue:
- lea rbp,QWORD PTR[((-88))+rsp]
+ lea rbp,[((-88))+rsp]
and rbp,-64
- lea r10,QWORD PTR[((-88-63))+rcx]
+ lea r10,[((-88-63))+rcx]
sub r10,rbp
neg r10
- and r10,03c0h
+ and r10,0x3c0
sub rbp,r10
xchg rbp,rsp
- mov QWORD PTR[16+rsp],rbp
-$L$cbc_slow_body::
+ mov QWORD[16+rsp],rbp
+$L$cbc_slow_body:
- mov QWORD PTR[56+rsp],r8
+ mov QWORD[56+rsp],r8
mov rbp,r8
mov rbx,r9
mov r9,rsi
@@ -1631,972 +1631,971 @@ $L$cbc_slow_body::
mov r15,rcx
mov r10,rdx
- mov eax,DWORD PTR[240+r15]
- mov QWORD PTR[rsp],r15
+ mov eax,DWORD[240+r15]
+ mov QWORD[rsp],r15
shl eax,4
- lea rax,QWORD PTR[rax*1+r15]
- mov QWORD PTR[8+rsp],rax
+ lea rax,[rax*1+r15]
+ mov QWORD[8+rsp],rax
- lea r14,QWORD PTR[2048+r14]
- lea rax,QWORD PTR[((768-8))+rsp]
+ lea r14,[2048+r14]
+ lea rax,[((768-8))+rsp]
sub rax,r14
- and rax,0300h
- lea r14,QWORD PTR[rax*1+r14]
+ and rax,0x300
+ lea r14,[rax*1+r14]
cmp rbx,0
- je $L$SLOW_DECRYPT
+ je NEAR $L$SLOW_DECRYPT
test r10,-16
- mov eax,DWORD PTR[rbp]
- mov ebx,DWORD PTR[4+rbp]
- mov ecx,DWORD PTR[8+rbp]
- mov edx,DWORD PTR[12+rbp]
- jz $L$cbc_slow_enc_tail
+ mov eax,DWORD[rbp]
+ mov ebx,DWORD[4+rbp]
+ mov ecx,DWORD[8+rbp]
+ mov edx,DWORD[12+rbp]
+ jz NEAR $L$cbc_slow_enc_tail
ALIGN 4
-$L$cbc_slow_enc_loop::
- xor eax,DWORD PTR[r8]
- xor ebx,DWORD PTR[4+r8]
- xor ecx,DWORD PTR[8+r8]
- xor edx,DWORD PTR[12+r8]
- mov r15,QWORD PTR[rsp]
- mov QWORD PTR[24+rsp],r8
- mov QWORD PTR[32+rsp],r9
- mov QWORD PTR[40+rsp],r10
+$L$cbc_slow_enc_loop:
+ xor eax,DWORD[r8]
+ xor ebx,DWORD[4+r8]
+ xor ecx,DWORD[8+r8]
+ xor edx,DWORD[12+r8]
+ mov r15,QWORD[rsp]
+ mov QWORD[24+rsp],r8
+ mov QWORD[32+rsp],r9
+ mov QWORD[40+rsp],r10
call _x86_64_AES_encrypt_compact
- mov r8,QWORD PTR[24+rsp]
- mov r9,QWORD PTR[32+rsp]
- mov r10,QWORD PTR[40+rsp]
- mov DWORD PTR[r9],eax
- mov DWORD PTR[4+r9],ebx
- mov DWORD PTR[8+r9],ecx
- mov DWORD PTR[12+r9],edx
+ mov r8,QWORD[24+rsp]
+ mov r9,QWORD[32+rsp]
+ mov r10,QWORD[40+rsp]
+ mov DWORD[r9],eax
+ mov DWORD[4+r9],ebx
+ mov DWORD[8+r9],ecx
+ mov DWORD[12+r9],edx
- lea r8,QWORD PTR[16+r8]
- lea r9,QWORD PTR[16+r9]
+ lea r8,[16+r8]
+ lea r9,[16+r9]
sub r10,16
test r10,-16
- jnz $L$cbc_slow_enc_loop
+ jnz NEAR $L$cbc_slow_enc_loop
test r10,15
- jnz $L$cbc_slow_enc_tail
- mov rbp,QWORD PTR[56+rsp]
- mov DWORD PTR[rbp],eax
- mov DWORD PTR[4+rbp],ebx
- mov DWORD PTR[8+rbp],ecx
- mov DWORD PTR[12+rbp],edx
+ jnz NEAR $L$cbc_slow_enc_tail
+ mov rbp,QWORD[56+rsp]
+ mov DWORD[rbp],eax
+ mov DWORD[4+rbp],ebx
+ mov DWORD[8+rbp],ecx
+ mov DWORD[12+rbp],edx
- jmp $L$cbc_exit
+ jmp NEAR $L$cbc_exit
ALIGN 4
-$L$cbc_slow_enc_tail::
+$L$cbc_slow_enc_tail:
mov r11,rax
mov r12,rcx
mov rcx,r10
mov rsi,r8
mov rdi,r9
- DD 09066A4F3h
+ DD 0x9066A4F3
mov rcx,16
sub rcx,r10
xor rax,rax
- DD 09066AAF3h
+ DD 0x9066AAF3
mov r8,r9
mov r10,16
mov rax,r11
mov rcx,r12
- jmp $L$cbc_slow_enc_loop
+ jmp NEAR $L$cbc_slow_enc_loop
ALIGN 16
-$L$SLOW_DECRYPT::
+$L$SLOW_DECRYPT:
shr rax,3
add r14,rax
- mov r11,QWORD PTR[rbp]
- mov r12,QWORD PTR[8+rbp]
- mov QWORD PTR[((0+64))+rsp],r11
- mov QWORD PTR[((8+64))+rsp],r12
+ mov r11,QWORD[rbp]
+ mov r12,QWORD[8+rbp]
+ mov QWORD[((0+64))+rsp],r11
+ mov QWORD[((8+64))+rsp],r12
ALIGN 4
-$L$cbc_slow_dec_loop::
- mov eax,DWORD PTR[r8]
- mov ebx,DWORD PTR[4+r8]
- mov ecx,DWORD PTR[8+r8]
- mov edx,DWORD PTR[12+r8]
- mov r15,QWORD PTR[rsp]
- mov QWORD PTR[24+rsp],r8
- mov QWORD PTR[32+rsp],r9
- mov QWORD PTR[40+rsp],r10
+$L$cbc_slow_dec_loop:
+ mov eax,DWORD[r8]
+ mov ebx,DWORD[4+r8]
+ mov ecx,DWORD[8+r8]
+ mov edx,DWORD[12+r8]
+ mov r15,QWORD[rsp]
+ mov QWORD[24+rsp],r8
+ mov QWORD[32+rsp],r9
+ mov QWORD[40+rsp],r10
call _x86_64_AES_decrypt_compact
- mov r8,QWORD PTR[24+rsp]
- mov r9,QWORD PTR[32+rsp]
- mov r10,QWORD PTR[40+rsp]
- xor eax,DWORD PTR[((0+64))+rsp]
- xor ebx,DWORD PTR[((4+64))+rsp]
- xor ecx,DWORD PTR[((8+64))+rsp]
- xor edx,DWORD PTR[((12+64))+rsp]
+ mov r8,QWORD[24+rsp]
+ mov r9,QWORD[32+rsp]
+ mov r10,QWORD[40+rsp]
+ xor eax,DWORD[((0+64))+rsp]
+ xor ebx,DWORD[((4+64))+rsp]
+ xor ecx,DWORD[((8+64))+rsp]
+ xor edx,DWORD[((12+64))+rsp]
- mov r11,QWORD PTR[r8]
- mov r12,QWORD PTR[8+r8]
+ mov r11,QWORD[r8]
+ mov r12,QWORD[8+r8]
sub r10,16
- jc $L$cbc_slow_dec_partial
- jz $L$cbc_slow_dec_done
+ jc NEAR $L$cbc_slow_dec_partial
+ jz NEAR $L$cbc_slow_dec_done
- mov QWORD PTR[((0+64))+rsp],r11
- mov QWORD PTR[((8+64))+rsp],r12
+ mov QWORD[((0+64))+rsp],r11
+ mov QWORD[((8+64))+rsp],r12
- mov DWORD PTR[r9],eax
- mov DWORD PTR[4+r9],ebx
- mov DWORD PTR[8+r9],ecx
- mov DWORD PTR[12+r9],edx
+ mov DWORD[r9],eax
+ mov DWORD[4+r9],ebx
+ mov DWORD[8+r9],ecx
+ mov DWORD[12+r9],edx
- lea r8,QWORD PTR[16+r8]
- lea r9,QWORD PTR[16+r9]
- jmp $L$cbc_slow_dec_loop
-$L$cbc_slow_dec_done::
- mov rdi,QWORD PTR[56+rsp]
- mov QWORD PTR[rdi],r11
- mov QWORD PTR[8+rdi],r12
+ lea r8,[16+r8]
+ lea r9,[16+r9]
+ jmp NEAR $L$cbc_slow_dec_loop
+$L$cbc_slow_dec_done:
+ mov rdi,QWORD[56+rsp]
+ mov QWORD[rdi],r11
+ mov QWORD[8+rdi],r12
- mov DWORD PTR[r9],eax
- mov DWORD PTR[4+r9],ebx
- mov DWORD PTR[8+r9],ecx
- mov DWORD PTR[12+r9],edx
+ mov DWORD[r9],eax
+ mov DWORD[4+r9],ebx
+ mov DWORD[8+r9],ecx
+ mov DWORD[12+r9],edx
- jmp $L$cbc_exit
+ jmp NEAR $L$cbc_exit
ALIGN 4
-$L$cbc_slow_dec_partial::
- mov rdi,QWORD PTR[56+rsp]
- mov QWORD PTR[rdi],r11
- mov QWORD PTR[8+rdi],r12
+$L$cbc_slow_dec_partial:
+ mov rdi,QWORD[56+rsp]
+ mov QWORD[rdi],r11
+ mov QWORD[8+rdi],r12
- mov DWORD PTR[((0+64))+rsp],eax
- mov DWORD PTR[((4+64))+rsp],ebx
- mov DWORD PTR[((8+64))+rsp],ecx
- mov DWORD PTR[((12+64))+rsp],edx
+ mov DWORD[((0+64))+rsp],eax
+ mov DWORD[((4+64))+rsp],ebx
+ mov DWORD[((8+64))+rsp],ecx
+ mov DWORD[((12+64))+rsp],edx
mov rdi,r9
- lea rsi,QWORD PTR[64+rsp]
- lea rcx,QWORD PTR[16+r10]
- DD 09066A4F3h
- jmp $L$cbc_exit
+ lea rsi,[64+rsp]
+ lea rcx,[16+r10]
+ DD 0x9066A4F3
+ jmp NEAR $L$cbc_exit
ALIGN 16
-$L$cbc_exit::
- mov rsi,QWORD PTR[16+rsp]
- mov r15,QWORD PTR[rsi]
- mov r14,QWORD PTR[8+rsi]
- mov r13,QWORD PTR[16+rsi]
- mov r12,QWORD PTR[24+rsi]
- mov rbp,QWORD PTR[32+rsi]
- mov rbx,QWORD PTR[40+rsi]
- lea rsp,QWORD PTR[48+rsi]
-$L$cbc_popfq::
+$L$cbc_exit:
+ mov rsi,QWORD[16+rsp]
+ mov r15,QWORD[rsi]
+ mov r14,QWORD[8+rsi]
+ mov r13,QWORD[16+rsi]
+ mov r12,QWORD[24+rsi]
+ mov rbp,QWORD[32+rsi]
+ mov rbx,QWORD[40+rsi]
+ lea rsp,[48+rsi]
+$L$cbc_popfq:
popfq
-$L$cbc_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+$L$cbc_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_asm_AES_cbc_encrypt::
-asm_AES_cbc_encrypt ENDP
+$L$SEH_end_asm_AES_cbc_encrypt:
ALIGN 64
-$L$AES_Te::
- DD 0a56363c6h,0a56363c6h
- DD 0847c7cf8h,0847c7cf8h
- DD 0997777eeh,0997777eeh
- DD 08d7b7bf6h,08d7b7bf6h
- DD 00df2f2ffh,00df2f2ffh
- DD 0bd6b6bd6h,0bd6b6bd6h
- DD 0b16f6fdeh,0b16f6fdeh
- DD 054c5c591h,054c5c591h
- DD 050303060h,050303060h
- DD 003010102h,003010102h
- DD 0a96767ceh,0a96767ceh
- DD 07d2b2b56h,07d2b2b56h
- DD 019fefee7h,019fefee7h
- DD 062d7d7b5h,062d7d7b5h
- DD 0e6abab4dh,0e6abab4dh
- DD 09a7676ech,09a7676ech
- DD 045caca8fh,045caca8fh
- DD 09d82821fh,09d82821fh
- DD 040c9c989h,040c9c989h
- DD 0877d7dfah,0877d7dfah
- DD 015fafaefh,015fafaefh
- DD 0eb5959b2h,0eb5959b2h
- DD 0c947478eh,0c947478eh
- DD 00bf0f0fbh,00bf0f0fbh
- DD 0ecadad41h,0ecadad41h
- DD 067d4d4b3h,067d4d4b3h
- DD 0fda2a25fh,0fda2a25fh
- DD 0eaafaf45h,0eaafaf45h
- DD 0bf9c9c23h,0bf9c9c23h
- DD 0f7a4a453h,0f7a4a453h
- DD 0967272e4h,0967272e4h
- DD 05bc0c09bh,05bc0c09bh
- DD 0c2b7b775h,0c2b7b775h
- DD 01cfdfde1h,01cfdfde1h
- DD 0ae93933dh,0ae93933dh
- DD 06a26264ch,06a26264ch
- DD 05a36366ch,05a36366ch
- DD 0413f3f7eh,0413f3f7eh
- DD 002f7f7f5h,002f7f7f5h
- DD 04fcccc83h,04fcccc83h
- DD 05c343468h,05c343468h
- DD 0f4a5a551h,0f4a5a551h
- DD 034e5e5d1h,034e5e5d1h
- DD 008f1f1f9h,008f1f1f9h
- DD 0937171e2h,0937171e2h
- DD 073d8d8abh,073d8d8abh
- DD 053313162h,053313162h
- DD 03f15152ah,03f15152ah
- DD 00c040408h,00c040408h
- DD 052c7c795h,052c7c795h
- DD 065232346h,065232346h
- DD 05ec3c39dh,05ec3c39dh
- DD 028181830h,028181830h
- DD 0a1969637h,0a1969637h
- DD 00f05050ah,00f05050ah
- DD 0b59a9a2fh,0b59a9a2fh
- DD 00907070eh,00907070eh
- DD 036121224h,036121224h
- DD 09b80801bh,09b80801bh
- DD 03de2e2dfh,03de2e2dfh
- DD 026ebebcdh,026ebebcdh
- DD 06927274eh,06927274eh
- DD 0cdb2b27fh,0cdb2b27fh
- DD 09f7575eah,09f7575eah
- DD 01b090912h,01b090912h
- DD 09e83831dh,09e83831dh
- DD 0742c2c58h,0742c2c58h
- DD 02e1a1a34h,02e1a1a34h
- DD 02d1b1b36h,02d1b1b36h
- DD 0b26e6edch,0b26e6edch
- DD 0ee5a5ab4h,0ee5a5ab4h
- DD 0fba0a05bh,0fba0a05bh
- DD 0f65252a4h,0f65252a4h
- DD 04d3b3b76h,04d3b3b76h
- DD 061d6d6b7h,061d6d6b7h
- DD 0ceb3b37dh,0ceb3b37dh
- DD 07b292952h,07b292952h
- DD 03ee3e3ddh,03ee3e3ddh
- DD 0712f2f5eh,0712f2f5eh
- DD 097848413h,097848413h
- DD 0f55353a6h,0f55353a6h
- DD 068d1d1b9h,068d1d1b9h
- DD 000000000h,000000000h
- DD 02cededc1h,02cededc1h
- DD 060202040h,060202040h
- DD 01ffcfce3h,01ffcfce3h
- DD 0c8b1b179h,0c8b1b179h
- DD 0ed5b5bb6h,0ed5b5bb6h
- DD 0be6a6ad4h,0be6a6ad4h
- DD 046cbcb8dh,046cbcb8dh
- DD 0d9bebe67h,0d9bebe67h
- DD 04b393972h,04b393972h
- DD 0de4a4a94h,0de4a4a94h
- DD 0d44c4c98h,0d44c4c98h
- DD 0e85858b0h,0e85858b0h
- DD 04acfcf85h,04acfcf85h
- DD 06bd0d0bbh,06bd0d0bbh
- DD 02aefefc5h,02aefefc5h
- DD 0e5aaaa4fh,0e5aaaa4fh
- DD 016fbfbedh,016fbfbedh
- DD 0c5434386h,0c5434386h
- DD 0d74d4d9ah,0d74d4d9ah
- DD 055333366h,055333366h
- DD 094858511h,094858511h
- DD 0cf45458ah,0cf45458ah
- DD 010f9f9e9h,010f9f9e9h
- DD 006020204h,006020204h
- DD 0817f7ffeh,0817f7ffeh
- DD 0f05050a0h,0f05050a0h
- DD 0443c3c78h,0443c3c78h
- DD 0ba9f9f25h,0ba9f9f25h
- DD 0e3a8a84bh,0e3a8a84bh
- DD 0f35151a2h,0f35151a2h
- DD 0fea3a35dh,0fea3a35dh
- DD 0c0404080h,0c0404080h
- DD 08a8f8f05h,08a8f8f05h
- DD 0ad92923fh,0ad92923fh
- DD 0bc9d9d21h,0bc9d9d21h
- DD 048383870h,048383870h
- DD 004f5f5f1h,004f5f5f1h
- DD 0dfbcbc63h,0dfbcbc63h
- DD 0c1b6b677h,0c1b6b677h
- DD 075dadaafh,075dadaafh
- DD 063212142h,063212142h
- DD 030101020h,030101020h
- DD 01affffe5h,01affffe5h
- DD 00ef3f3fdh,00ef3f3fdh
- DD 06dd2d2bfh,06dd2d2bfh
- DD 04ccdcd81h,04ccdcd81h
- DD 0140c0c18h,0140c0c18h
- DD 035131326h,035131326h
- DD 02fececc3h,02fececc3h
- DD 0e15f5fbeh,0e15f5fbeh
- DD 0a2979735h,0a2979735h
- DD 0cc444488h,0cc444488h
- DD 03917172eh,03917172eh
- DD 057c4c493h,057c4c493h
- DD 0f2a7a755h,0f2a7a755h
- DD 0827e7efch,0827e7efch
- DD 0473d3d7ah,0473d3d7ah
- DD 0ac6464c8h,0ac6464c8h
- DD 0e75d5dbah,0e75d5dbah
- DD 02b191932h,02b191932h
- DD 0957373e6h,0957373e6h
- DD 0a06060c0h,0a06060c0h
- DD 098818119h,098818119h
- DD 0d14f4f9eh,0d14f4f9eh
- DD 07fdcdca3h,07fdcdca3h
- DD 066222244h,066222244h
- DD 07e2a2a54h,07e2a2a54h
- DD 0ab90903bh,0ab90903bh
- DD 08388880bh,08388880bh
- DD 0ca46468ch,0ca46468ch
- DD 029eeeec7h,029eeeec7h
- DD 0d3b8b86bh,0d3b8b86bh
- DD 03c141428h,03c141428h
- DD 079dedea7h,079dedea7h
- DD 0e25e5ebch,0e25e5ebch
- DD 01d0b0b16h,01d0b0b16h
- DD 076dbdbadh,076dbdbadh
- DD 03be0e0dbh,03be0e0dbh
- DD 056323264h,056323264h
- DD 04e3a3a74h,04e3a3a74h
- DD 01e0a0a14h,01e0a0a14h
- DD 0db494992h,0db494992h
- DD 00a06060ch,00a06060ch
- DD 06c242448h,06c242448h
- DD 0e45c5cb8h,0e45c5cb8h
- DD 05dc2c29fh,05dc2c29fh
- DD 06ed3d3bdh,06ed3d3bdh
- DD 0efacac43h,0efacac43h
- DD 0a66262c4h,0a66262c4h
- DD 0a8919139h,0a8919139h
- DD 0a4959531h,0a4959531h
- DD 037e4e4d3h,037e4e4d3h
- DD 08b7979f2h,08b7979f2h
- DD 032e7e7d5h,032e7e7d5h
- DD 043c8c88bh,043c8c88bh
- DD 05937376eh,05937376eh
- DD 0b76d6ddah,0b76d6ddah
- DD 08c8d8d01h,08c8d8d01h
- DD 064d5d5b1h,064d5d5b1h
- DD 0d24e4e9ch,0d24e4e9ch
- DD 0e0a9a949h,0e0a9a949h
- DD 0b46c6cd8h,0b46c6cd8h
- DD 0fa5656ach,0fa5656ach
- DD 007f4f4f3h,007f4f4f3h
- DD 025eaeacfh,025eaeacfh
- DD 0af6565cah,0af6565cah
- DD 08e7a7af4h,08e7a7af4h
- DD 0e9aeae47h,0e9aeae47h
- DD 018080810h,018080810h
- DD 0d5baba6fh,0d5baba6fh
- DD 0887878f0h,0887878f0h
- DD 06f25254ah,06f25254ah
- DD 0722e2e5ch,0722e2e5ch
- DD 0241c1c38h,0241c1c38h
- DD 0f1a6a657h,0f1a6a657h
- DD 0c7b4b473h,0c7b4b473h
- DD 051c6c697h,051c6c697h
- DD 023e8e8cbh,023e8e8cbh
- DD 07cdddda1h,07cdddda1h
- DD 09c7474e8h,09c7474e8h
- DD 0211f1f3eh,0211f1f3eh
- DD 0dd4b4b96h,0dd4b4b96h
- DD 0dcbdbd61h,0dcbdbd61h
- DD 0868b8b0dh,0868b8b0dh
- DD 0858a8a0fh,0858a8a0fh
- DD 0907070e0h,0907070e0h
- DD 0423e3e7ch,0423e3e7ch
- DD 0c4b5b571h,0c4b5b571h
- DD 0aa6666cch,0aa6666cch
- DD 0d8484890h,0d8484890h
- DD 005030306h,005030306h
- DD 001f6f6f7h,001f6f6f7h
- DD 0120e0e1ch,0120e0e1ch
- DD 0a36161c2h,0a36161c2h
- DD 05f35356ah,05f35356ah
- DD 0f95757aeh,0f95757aeh
- DD 0d0b9b969h,0d0b9b969h
- DD 091868617h,091868617h
- DD 058c1c199h,058c1c199h
- DD 0271d1d3ah,0271d1d3ah
- DD 0b99e9e27h,0b99e9e27h
- DD 038e1e1d9h,038e1e1d9h
- DD 013f8f8ebh,013f8f8ebh
- DD 0b398982bh,0b398982bh
- DD 033111122h,033111122h
- DD 0bb6969d2h,0bb6969d2h
- DD 070d9d9a9h,070d9d9a9h
- DD 0898e8e07h,0898e8e07h
- DD 0a7949433h,0a7949433h
- DD 0b69b9b2dh,0b69b9b2dh
- DD 0221e1e3ch,0221e1e3ch
- DD 092878715h,092878715h
- DD 020e9e9c9h,020e9e9c9h
- DD 049cece87h,049cece87h
- DD 0ff5555aah,0ff5555aah
- DD 078282850h,078282850h
- DD 07adfdfa5h,07adfdfa5h
- DD 08f8c8c03h,08f8c8c03h
- DD 0f8a1a159h,0f8a1a159h
- DD 080898909h,080898909h
- DD 0170d0d1ah,0170d0d1ah
- DD 0dabfbf65h,0dabfbf65h
- DD 031e6e6d7h,031e6e6d7h
- DD 0c6424284h,0c6424284h
- DD 0b86868d0h,0b86868d0h
- DD 0c3414182h,0c3414182h
- DD 0b0999929h,0b0999929h
- DD 0772d2d5ah,0772d2d5ah
- DD 0110f0f1eh,0110f0f1eh
- DD 0cbb0b07bh,0cbb0b07bh
- DD 0fc5454a8h,0fc5454a8h
- DD 0d6bbbb6dh,0d6bbbb6dh
- DD 03a16162ch,03a16162ch
-DB 063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h
-DB 030h,001h,067h,02bh,0feh,0d7h,0abh,076h
-DB 0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h
-DB 0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h
-DB 0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch
-DB 034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h
-DB 004h,0c7h,023h,0c3h,018h,096h,005h,09ah
-DB 007h,012h,080h,0e2h,0ebh,027h,0b2h,075h
-DB 009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h
-DB 052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h
-DB 053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh
-DB 06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh
-DB 0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h
-DB 045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h
-DB 051h,0a3h,040h,08fh,092h,09dh,038h,0f5h
-DB 0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h
-DB 0cdh,00ch,013h,0ech,05fh,097h,044h,017h
-DB 0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h
-DB 060h,081h,04fh,0dch,022h,02ah,090h,088h
-DB 046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh
-DB 0e0h,032h,03ah,00ah,049h,006h,024h,05ch
-DB 0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h
-DB 0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h
-DB 06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h
-DB 0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h
-DB 0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah
-DB 070h,03eh,0b5h,066h,048h,003h,0f6h,00eh
-DB 061h,035h,057h,0b9h,086h,0c1h,01dh,09eh
-DB 0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h
-DB 09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh
-DB 08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h
-DB 041h,099h,02dh,00fh,0b0h,054h,0bbh,016h
-DB 063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h
-DB 030h,001h,067h,02bh,0feh,0d7h,0abh,076h
-DB 0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h
-DB 0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h
-DB 0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch
-DB 034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h
-DB 004h,0c7h,023h,0c3h,018h,096h,005h,09ah
-DB 007h,012h,080h,0e2h,0ebh,027h,0b2h,075h
-DB 009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h
-DB 052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h
-DB 053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh
-DB 06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh
-DB 0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h
-DB 045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h
-DB 051h,0a3h,040h,08fh,092h,09dh,038h,0f5h
-DB 0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h
-DB 0cdh,00ch,013h,0ech,05fh,097h,044h,017h
-DB 0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h
-DB 060h,081h,04fh,0dch,022h,02ah,090h,088h
-DB 046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh
-DB 0e0h,032h,03ah,00ah,049h,006h,024h,05ch
-DB 0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h
-DB 0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h
-DB 06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h
-DB 0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h
-DB 0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah
-DB 070h,03eh,0b5h,066h,048h,003h,0f6h,00eh
-DB 061h,035h,057h,0b9h,086h,0c1h,01dh,09eh
-DB 0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h
-DB 09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh
-DB 08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h
-DB 041h,099h,02dh,00fh,0b0h,054h,0bbh,016h
-DB 063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h
-DB 030h,001h,067h,02bh,0feh,0d7h,0abh,076h
-DB 0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h
-DB 0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h
-DB 0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch
-DB 034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h
-DB 004h,0c7h,023h,0c3h,018h,096h,005h,09ah
-DB 007h,012h,080h,0e2h,0ebh,027h,0b2h,075h
-DB 009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h
-DB 052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h
-DB 053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh
-DB 06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh
-DB 0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h
-DB 045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h
-DB 051h,0a3h,040h,08fh,092h,09dh,038h,0f5h
-DB 0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h
-DB 0cdh,00ch,013h,0ech,05fh,097h,044h,017h
-DB 0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h
-DB 060h,081h,04fh,0dch,022h,02ah,090h,088h
-DB 046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh
-DB 0e0h,032h,03ah,00ah,049h,006h,024h,05ch
-DB 0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h
-DB 0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h
-DB 06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h
-DB 0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h
-DB 0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah
-DB 070h,03eh,0b5h,066h,048h,003h,0f6h,00eh
-DB 061h,035h,057h,0b9h,086h,0c1h,01dh,09eh
-DB 0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h
-DB 09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh
-DB 08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h
-DB 041h,099h,02dh,00fh,0b0h,054h,0bbh,016h
-DB 063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h
-DB 030h,001h,067h,02bh,0feh,0d7h,0abh,076h
-DB 0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h
-DB 0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h
-DB 0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch
-DB 034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h
-DB 004h,0c7h,023h,0c3h,018h,096h,005h,09ah
-DB 007h,012h,080h,0e2h,0ebh,027h,0b2h,075h
-DB 009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h
-DB 052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h
-DB 053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh
-DB 06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh
-DB 0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h
-DB 045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h
-DB 051h,0a3h,040h,08fh,092h,09dh,038h,0f5h
-DB 0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h
-DB 0cdh,00ch,013h,0ech,05fh,097h,044h,017h
-DB 0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h
-DB 060h,081h,04fh,0dch,022h,02ah,090h,088h
-DB 046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh
-DB 0e0h,032h,03ah,00ah,049h,006h,024h,05ch
-DB 0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h
-DB 0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h
-DB 06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h
-DB 0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h
-DB 0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah
-DB 070h,03eh,0b5h,066h,048h,003h,0f6h,00eh
-DB 061h,035h,057h,0b9h,086h,0c1h,01dh,09eh
-DB 0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h
-DB 09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh
-DB 08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h
-DB 041h,099h,02dh,00fh,0b0h,054h,0bbh,016h
- DD 000000001h,000000002h,000000004h,000000008h
- DD 000000010h,000000020h,000000040h,000000080h
- DD 00000001bh,000000036h,080808080h,080808080h
- DD 0fefefefeh,0fefefefeh,01b1b1b1bh,01b1b1b1bh
+$L$AES_Te:
+ DD 0xa56363c6,0xa56363c6
+ DD 0x847c7cf8,0x847c7cf8
+ DD 0x997777ee,0x997777ee
+ DD 0x8d7b7bf6,0x8d7b7bf6
+ DD 0x0df2f2ff,0x0df2f2ff
+ DD 0xbd6b6bd6,0xbd6b6bd6
+ DD 0xb16f6fde,0xb16f6fde
+ DD 0x54c5c591,0x54c5c591
+ DD 0x50303060,0x50303060
+ DD 0x03010102,0x03010102
+ DD 0xa96767ce,0xa96767ce
+ DD 0x7d2b2b56,0x7d2b2b56
+ DD 0x19fefee7,0x19fefee7
+ DD 0x62d7d7b5,0x62d7d7b5
+ DD 0xe6abab4d,0xe6abab4d
+ DD 0x9a7676ec,0x9a7676ec
+ DD 0x45caca8f,0x45caca8f
+ DD 0x9d82821f,0x9d82821f
+ DD 0x40c9c989,0x40c9c989
+ DD 0x877d7dfa,0x877d7dfa
+ DD 0x15fafaef,0x15fafaef
+ DD 0xeb5959b2,0xeb5959b2
+ DD 0xc947478e,0xc947478e
+ DD 0x0bf0f0fb,0x0bf0f0fb
+ DD 0xecadad41,0xecadad41
+ DD 0x67d4d4b3,0x67d4d4b3
+ DD 0xfda2a25f,0xfda2a25f
+ DD 0xeaafaf45,0xeaafaf45
+ DD 0xbf9c9c23,0xbf9c9c23
+ DD 0xf7a4a453,0xf7a4a453
+ DD 0x967272e4,0x967272e4
+ DD 0x5bc0c09b,0x5bc0c09b
+ DD 0xc2b7b775,0xc2b7b775
+ DD 0x1cfdfde1,0x1cfdfde1
+ DD 0xae93933d,0xae93933d
+ DD 0x6a26264c,0x6a26264c
+ DD 0x5a36366c,0x5a36366c
+ DD 0x413f3f7e,0x413f3f7e
+ DD 0x02f7f7f5,0x02f7f7f5
+ DD 0x4fcccc83,0x4fcccc83
+ DD 0x5c343468,0x5c343468
+ DD 0xf4a5a551,0xf4a5a551
+ DD 0x34e5e5d1,0x34e5e5d1
+ DD 0x08f1f1f9,0x08f1f1f9
+ DD 0x937171e2,0x937171e2
+ DD 0x73d8d8ab,0x73d8d8ab
+ DD 0x53313162,0x53313162
+ DD 0x3f15152a,0x3f15152a
+ DD 0x0c040408,0x0c040408
+ DD 0x52c7c795,0x52c7c795
+ DD 0x65232346,0x65232346
+ DD 0x5ec3c39d,0x5ec3c39d
+ DD 0x28181830,0x28181830
+ DD 0xa1969637,0xa1969637
+ DD 0x0f05050a,0x0f05050a
+ DD 0xb59a9a2f,0xb59a9a2f
+ DD 0x0907070e,0x0907070e
+ DD 0x36121224,0x36121224
+ DD 0x9b80801b,0x9b80801b
+ DD 0x3de2e2df,0x3de2e2df
+ DD 0x26ebebcd,0x26ebebcd
+ DD 0x6927274e,0x6927274e
+ DD 0xcdb2b27f,0xcdb2b27f
+ DD 0x9f7575ea,0x9f7575ea
+ DD 0x1b090912,0x1b090912
+ DD 0x9e83831d,0x9e83831d
+ DD 0x742c2c58,0x742c2c58
+ DD 0x2e1a1a34,0x2e1a1a34
+ DD 0x2d1b1b36,0x2d1b1b36
+ DD 0xb26e6edc,0xb26e6edc
+ DD 0xee5a5ab4,0xee5a5ab4
+ DD 0xfba0a05b,0xfba0a05b
+ DD 0xf65252a4,0xf65252a4
+ DD 0x4d3b3b76,0x4d3b3b76
+ DD 0x61d6d6b7,0x61d6d6b7
+ DD 0xceb3b37d,0xceb3b37d
+ DD 0x7b292952,0x7b292952
+ DD 0x3ee3e3dd,0x3ee3e3dd
+ DD 0x712f2f5e,0x712f2f5e
+ DD 0x97848413,0x97848413
+ DD 0xf55353a6,0xf55353a6
+ DD 0x68d1d1b9,0x68d1d1b9
+ DD 0x00000000,0x00000000
+ DD 0x2cededc1,0x2cededc1
+ DD 0x60202040,0x60202040
+ DD 0x1ffcfce3,0x1ffcfce3
+ DD 0xc8b1b179,0xc8b1b179
+ DD 0xed5b5bb6,0xed5b5bb6
+ DD 0xbe6a6ad4,0xbe6a6ad4
+ DD 0x46cbcb8d,0x46cbcb8d
+ DD 0xd9bebe67,0xd9bebe67
+ DD 0x4b393972,0x4b393972
+ DD 0xde4a4a94,0xde4a4a94
+ DD 0xd44c4c98,0xd44c4c98
+ DD 0xe85858b0,0xe85858b0
+ DD 0x4acfcf85,0x4acfcf85
+ DD 0x6bd0d0bb,0x6bd0d0bb
+ DD 0x2aefefc5,0x2aefefc5
+ DD 0xe5aaaa4f,0xe5aaaa4f
+ DD 0x16fbfbed,0x16fbfbed
+ DD 0xc5434386,0xc5434386
+ DD 0xd74d4d9a,0xd74d4d9a
+ DD 0x55333366,0x55333366
+ DD 0x94858511,0x94858511
+ DD 0xcf45458a,0xcf45458a
+ DD 0x10f9f9e9,0x10f9f9e9
+ DD 0x06020204,0x06020204
+ DD 0x817f7ffe,0x817f7ffe
+ DD 0xf05050a0,0xf05050a0
+ DD 0x443c3c78,0x443c3c78
+ DD 0xba9f9f25,0xba9f9f25
+ DD 0xe3a8a84b,0xe3a8a84b
+ DD 0xf35151a2,0xf35151a2
+ DD 0xfea3a35d,0xfea3a35d
+ DD 0xc0404080,0xc0404080
+ DD 0x8a8f8f05,0x8a8f8f05
+ DD 0xad92923f,0xad92923f
+ DD 0xbc9d9d21,0xbc9d9d21
+ DD 0x48383870,0x48383870
+ DD 0x04f5f5f1,0x04f5f5f1
+ DD 0xdfbcbc63,0xdfbcbc63
+ DD 0xc1b6b677,0xc1b6b677
+ DD 0x75dadaaf,0x75dadaaf
+ DD 0x63212142,0x63212142
+ DD 0x30101020,0x30101020
+ DD 0x1affffe5,0x1affffe5
+ DD 0x0ef3f3fd,0x0ef3f3fd
+ DD 0x6dd2d2bf,0x6dd2d2bf
+ DD 0x4ccdcd81,0x4ccdcd81
+ DD 0x140c0c18,0x140c0c18
+ DD 0x35131326,0x35131326
+ DD 0x2fececc3,0x2fececc3
+ DD 0xe15f5fbe,0xe15f5fbe
+ DD 0xa2979735,0xa2979735
+ DD 0xcc444488,0xcc444488
+ DD 0x3917172e,0x3917172e
+ DD 0x57c4c493,0x57c4c493
+ DD 0xf2a7a755,0xf2a7a755
+ DD 0x827e7efc,0x827e7efc
+ DD 0x473d3d7a,0x473d3d7a
+ DD 0xac6464c8,0xac6464c8
+ DD 0xe75d5dba,0xe75d5dba
+ DD 0x2b191932,0x2b191932
+ DD 0x957373e6,0x957373e6
+ DD 0xa06060c0,0xa06060c0
+ DD 0x98818119,0x98818119
+ DD 0xd14f4f9e,0xd14f4f9e
+ DD 0x7fdcdca3,0x7fdcdca3
+ DD 0x66222244,0x66222244
+ DD 0x7e2a2a54,0x7e2a2a54
+ DD 0xab90903b,0xab90903b
+ DD 0x8388880b,0x8388880b
+ DD 0xca46468c,0xca46468c
+ DD 0x29eeeec7,0x29eeeec7
+ DD 0xd3b8b86b,0xd3b8b86b
+ DD 0x3c141428,0x3c141428
+ DD 0x79dedea7,0x79dedea7
+ DD 0xe25e5ebc,0xe25e5ebc
+ DD 0x1d0b0b16,0x1d0b0b16
+ DD 0x76dbdbad,0x76dbdbad
+ DD 0x3be0e0db,0x3be0e0db
+ DD 0x56323264,0x56323264
+ DD 0x4e3a3a74,0x4e3a3a74
+ DD 0x1e0a0a14,0x1e0a0a14
+ DD 0xdb494992,0xdb494992
+ DD 0x0a06060c,0x0a06060c
+ DD 0x6c242448,0x6c242448
+ DD 0xe45c5cb8,0xe45c5cb8
+ DD 0x5dc2c29f,0x5dc2c29f
+ DD 0x6ed3d3bd,0x6ed3d3bd
+ DD 0xefacac43,0xefacac43
+ DD 0xa66262c4,0xa66262c4
+ DD 0xa8919139,0xa8919139
+ DD 0xa4959531,0xa4959531
+ DD 0x37e4e4d3,0x37e4e4d3
+ DD 0x8b7979f2,0x8b7979f2
+ DD 0x32e7e7d5,0x32e7e7d5
+ DD 0x43c8c88b,0x43c8c88b
+ DD 0x5937376e,0x5937376e
+ DD 0xb76d6dda,0xb76d6dda
+ DD 0x8c8d8d01,0x8c8d8d01
+ DD 0x64d5d5b1,0x64d5d5b1
+ DD 0xd24e4e9c,0xd24e4e9c
+ DD 0xe0a9a949,0xe0a9a949
+ DD 0xb46c6cd8,0xb46c6cd8
+ DD 0xfa5656ac,0xfa5656ac
+ DD 0x07f4f4f3,0x07f4f4f3
+ DD 0x25eaeacf,0x25eaeacf
+ DD 0xaf6565ca,0xaf6565ca
+ DD 0x8e7a7af4,0x8e7a7af4
+ DD 0xe9aeae47,0xe9aeae47
+ DD 0x18080810,0x18080810
+ DD 0xd5baba6f,0xd5baba6f
+ DD 0x887878f0,0x887878f0
+ DD 0x6f25254a,0x6f25254a
+ DD 0x722e2e5c,0x722e2e5c
+ DD 0x241c1c38,0x241c1c38
+ DD 0xf1a6a657,0xf1a6a657
+ DD 0xc7b4b473,0xc7b4b473
+ DD 0x51c6c697,0x51c6c697
+ DD 0x23e8e8cb,0x23e8e8cb
+ DD 0x7cdddda1,0x7cdddda1
+ DD 0x9c7474e8,0x9c7474e8
+ DD 0x211f1f3e,0x211f1f3e
+ DD 0xdd4b4b96,0xdd4b4b96
+ DD 0xdcbdbd61,0xdcbdbd61
+ DD 0x868b8b0d,0x868b8b0d
+ DD 0x858a8a0f,0x858a8a0f
+ DD 0x907070e0,0x907070e0
+ DD 0x423e3e7c,0x423e3e7c
+ DD 0xc4b5b571,0xc4b5b571
+ DD 0xaa6666cc,0xaa6666cc
+ DD 0xd8484890,0xd8484890
+ DD 0x05030306,0x05030306
+ DD 0x01f6f6f7,0x01f6f6f7
+ DD 0x120e0e1c,0x120e0e1c
+ DD 0xa36161c2,0xa36161c2
+ DD 0x5f35356a,0x5f35356a
+ DD 0xf95757ae,0xf95757ae
+ DD 0xd0b9b969,0xd0b9b969
+ DD 0x91868617,0x91868617
+ DD 0x58c1c199,0x58c1c199
+ DD 0x271d1d3a,0x271d1d3a
+ DD 0xb99e9e27,0xb99e9e27
+ DD 0x38e1e1d9,0x38e1e1d9
+ DD 0x13f8f8eb,0x13f8f8eb
+ DD 0xb398982b,0xb398982b
+ DD 0x33111122,0x33111122
+ DD 0xbb6969d2,0xbb6969d2
+ DD 0x70d9d9a9,0x70d9d9a9
+ DD 0x898e8e07,0x898e8e07
+ DD 0xa7949433,0xa7949433
+ DD 0xb69b9b2d,0xb69b9b2d
+ DD 0x221e1e3c,0x221e1e3c
+ DD 0x92878715,0x92878715
+ DD 0x20e9e9c9,0x20e9e9c9
+ DD 0x49cece87,0x49cece87
+ DD 0xff5555aa,0xff5555aa
+ DD 0x78282850,0x78282850
+ DD 0x7adfdfa5,0x7adfdfa5
+ DD 0x8f8c8c03,0x8f8c8c03
+ DD 0xf8a1a159,0xf8a1a159
+ DD 0x80898909,0x80898909
+ DD 0x170d0d1a,0x170d0d1a
+ DD 0xdabfbf65,0xdabfbf65
+ DD 0x31e6e6d7,0x31e6e6d7
+ DD 0xc6424284,0xc6424284
+ DD 0xb86868d0,0xb86868d0
+ DD 0xc3414182,0xc3414182
+ DD 0xb0999929,0xb0999929
+ DD 0x772d2d5a,0x772d2d5a
+ DD 0x110f0f1e,0x110f0f1e
+ DD 0xcbb0b07b,0xcbb0b07b
+ DD 0xfc5454a8,0xfc5454a8
+ DD 0xd6bbbb6d,0xd6bbbb6d
+ DD 0x3a16162c,0x3a16162c
+DB 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
+DB 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
+DB 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
+DB 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
+DB 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
+DB 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
+DB 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
+DB 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
+DB 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
+DB 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
+DB 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
+DB 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
+DB 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
+DB 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
+DB 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
+DB 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
+DB 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
+DB 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
+DB 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
+DB 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
+DB 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
+DB 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
+DB 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
+DB 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
+DB 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
+DB 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
+DB 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
+DB 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
+DB 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
+DB 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
+DB 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
+DB 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
+DB 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
+DB 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
+DB 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
+DB 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
+DB 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
+DB 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
+DB 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
+DB 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
+DB 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
+DB 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
+DB 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
+DB 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
+DB 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
+DB 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
+DB 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
+DB 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
+DB 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
+DB 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
+DB 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
+DB 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
+DB 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
+DB 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
+DB 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
+DB 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
+DB 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
+DB 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
+DB 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
+DB 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
+DB 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
+DB 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
+DB 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
+DB 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
+DB 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
+DB 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
+DB 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
+DB 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
+DB 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
+DB 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
+DB 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
+DB 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
+DB 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
+DB 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
+DB 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
+DB 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
+DB 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
+DB 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
+DB 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
+DB 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
+DB 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
+DB 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
+DB 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
+DB 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
+DB 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
+DB 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
+DB 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
+DB 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
+DB 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
+DB 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
+DB 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
+DB 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
+DB 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
+DB 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
+DB 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
+DB 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
+DB 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
+DB 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
+DB 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
+DB 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
+DB 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
+DB 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
+DB 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
+DB 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
+DB 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
+DB 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
+DB 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
+DB 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
+DB 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
+DB 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
+DB 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
+DB 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
+DB 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
+DB 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
+DB 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
+DB 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
+DB 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
+DB 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
+DB 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
+DB 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
+DB 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
+DB 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
+DB 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
+DB 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
+DB 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
+DB 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
+DB 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
+DB 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
+ DD 0x00000001,0x00000002,0x00000004,0x00000008
+ DD 0x00000010,0x00000020,0x00000040,0x00000080
+ DD 0x0000001b,0x00000036,0x80808080,0x80808080
+ DD 0xfefefefe,0xfefefefe,0x1b1b1b1b,0x1b1b1b1b
ALIGN 64
-$L$AES_Td::
- DD 050a7f451h,050a7f451h
- DD 05365417eh,05365417eh
- DD 0c3a4171ah,0c3a4171ah
- DD 0965e273ah,0965e273ah
- DD 0cb6bab3bh,0cb6bab3bh
- DD 0f1459d1fh,0f1459d1fh
- DD 0ab58faach,0ab58faach
- DD 09303e34bh,09303e34bh
- DD 055fa3020h,055fa3020h
- DD 0f66d76adh,0f66d76adh
- DD 09176cc88h,09176cc88h
- DD 0254c02f5h,0254c02f5h
- DD 0fcd7e54fh,0fcd7e54fh
- DD 0d7cb2ac5h,0d7cb2ac5h
- DD 080443526h,080443526h
- DD 08fa362b5h,08fa362b5h
- DD 0495ab1deh,0495ab1deh
- DD 0671bba25h,0671bba25h
- DD 0980eea45h,0980eea45h
- DD 0e1c0fe5dh,0e1c0fe5dh
- DD 002752fc3h,002752fc3h
- DD 012f04c81h,012f04c81h
- DD 0a397468dh,0a397468dh
- DD 0c6f9d36bh,0c6f9d36bh
- DD 0e75f8f03h,0e75f8f03h
- DD 0959c9215h,0959c9215h
- DD 0eb7a6dbfh,0eb7a6dbfh
- DD 0da595295h,0da595295h
- DD 02d83bed4h,02d83bed4h
- DD 0d3217458h,0d3217458h
- DD 02969e049h,02969e049h
- DD 044c8c98eh,044c8c98eh
- DD 06a89c275h,06a89c275h
- DD 078798ef4h,078798ef4h
- DD 06b3e5899h,06b3e5899h
- DD 0dd71b927h,0dd71b927h
- DD 0b64fe1beh,0b64fe1beh
- DD 017ad88f0h,017ad88f0h
- DD 066ac20c9h,066ac20c9h
- DD 0b43ace7dh,0b43ace7dh
- DD 0184adf63h,0184adf63h
- DD 082311ae5h,082311ae5h
- DD 060335197h,060335197h
- DD 0457f5362h,0457f5362h
- DD 0e07764b1h,0e07764b1h
- DD 084ae6bbbh,084ae6bbbh
- DD 01ca081feh,01ca081feh
- DD 0942b08f9h,0942b08f9h
- DD 058684870h,058684870h
- DD 019fd458fh,019fd458fh
- DD 0876cde94h,0876cde94h
- DD 0b7f87b52h,0b7f87b52h
- DD 023d373abh,023d373abh
- DD 0e2024b72h,0e2024b72h
- DD 0578f1fe3h,0578f1fe3h
- DD 02aab5566h,02aab5566h
- DD 00728ebb2h,00728ebb2h
- DD 003c2b52fh,003c2b52fh
- DD 09a7bc586h,09a7bc586h
- DD 0a50837d3h,0a50837d3h
- DD 0f2872830h,0f2872830h
- DD 0b2a5bf23h,0b2a5bf23h
- DD 0ba6a0302h,0ba6a0302h
- DD 05c8216edh,05c8216edh
- DD 02b1ccf8ah,02b1ccf8ah
- DD 092b479a7h,092b479a7h
- DD 0f0f207f3h,0f0f207f3h
- DD 0a1e2694eh,0a1e2694eh
- DD 0cdf4da65h,0cdf4da65h
- DD 0d5be0506h,0d5be0506h
- DD 01f6234d1h,01f6234d1h
- DD 08afea6c4h,08afea6c4h
- DD 09d532e34h,09d532e34h
- DD 0a055f3a2h,0a055f3a2h
- DD 032e18a05h,032e18a05h
- DD 075ebf6a4h,075ebf6a4h
- DD 039ec830bh,039ec830bh
- DD 0aaef6040h,0aaef6040h
- DD 0069f715eh,0069f715eh
- DD 051106ebdh,051106ebdh
- DD 0f98a213eh,0f98a213eh
- DD 03d06dd96h,03d06dd96h
- DD 0ae053eddh,0ae053eddh
- DD 046bde64dh,046bde64dh
- DD 0b58d5491h,0b58d5491h
- DD 0055dc471h,0055dc471h
- DD 06fd40604h,06fd40604h
- DD 0ff155060h,0ff155060h
- DD 024fb9819h,024fb9819h
- DD 097e9bdd6h,097e9bdd6h
- DD 0cc434089h,0cc434089h
- DD 0779ed967h,0779ed967h
- DD 0bd42e8b0h,0bd42e8b0h
- DD 0888b8907h,0888b8907h
- DD 0385b19e7h,0385b19e7h
- DD 0dbeec879h,0dbeec879h
- DD 0470a7ca1h,0470a7ca1h
- DD 0e90f427ch,0e90f427ch
- DD 0c91e84f8h,0c91e84f8h
- DD 000000000h,000000000h
- DD 083868009h,083868009h
- DD 048ed2b32h,048ed2b32h
- DD 0ac70111eh,0ac70111eh
- DD 04e725a6ch,04e725a6ch
- DD 0fbff0efdh,0fbff0efdh
- DD 05638850fh,05638850fh
- DD 01ed5ae3dh,01ed5ae3dh
- DD 027392d36h,027392d36h
- DD 064d90f0ah,064d90f0ah
- DD 021a65c68h,021a65c68h
- DD 0d1545b9bh,0d1545b9bh
- DD 03a2e3624h,03a2e3624h
- DD 0b1670a0ch,0b1670a0ch
- DD 00fe75793h,00fe75793h
- DD 0d296eeb4h,0d296eeb4h
- DD 09e919b1bh,09e919b1bh
- DD 04fc5c080h,04fc5c080h
- DD 0a220dc61h,0a220dc61h
- DD 0694b775ah,0694b775ah
- DD 0161a121ch,0161a121ch
- DD 00aba93e2h,00aba93e2h
- DD 0e52aa0c0h,0e52aa0c0h
- DD 043e0223ch,043e0223ch
- DD 01d171b12h,01d171b12h
- DD 00b0d090eh,00b0d090eh
- DD 0adc78bf2h,0adc78bf2h
- DD 0b9a8b62dh,0b9a8b62dh
- DD 0c8a91e14h,0c8a91e14h
- DD 08519f157h,08519f157h
- DD 04c0775afh,04c0775afh
- DD 0bbdd99eeh,0bbdd99eeh
- DD 0fd607fa3h,0fd607fa3h
- DD 09f2601f7h,09f2601f7h
- DD 0bcf5725ch,0bcf5725ch
- DD 0c53b6644h,0c53b6644h
- DD 0347efb5bh,0347efb5bh
- DD 07629438bh,07629438bh
- DD 0dcc623cbh,0dcc623cbh
- DD 068fcedb6h,068fcedb6h
- DD 063f1e4b8h,063f1e4b8h
- DD 0cadc31d7h,0cadc31d7h
- DD 010856342h,010856342h
- DD 040229713h,040229713h
- DD 02011c684h,02011c684h
- DD 07d244a85h,07d244a85h
- DD 0f83dbbd2h,0f83dbbd2h
- DD 01132f9aeh,01132f9aeh
- DD 06da129c7h,06da129c7h
- DD 04b2f9e1dh,04b2f9e1dh
- DD 0f330b2dch,0f330b2dch
- DD 0ec52860dh,0ec52860dh
- DD 0d0e3c177h,0d0e3c177h
- DD 06c16b32bh,06c16b32bh
- DD 099b970a9h,099b970a9h
- DD 0fa489411h,0fa489411h
- DD 02264e947h,02264e947h
- DD 0c48cfca8h,0c48cfca8h
- DD 01a3ff0a0h,01a3ff0a0h
- DD 0d82c7d56h,0d82c7d56h
- DD 0ef903322h,0ef903322h
- DD 0c74e4987h,0c74e4987h
- DD 0c1d138d9h,0c1d138d9h
- DD 0fea2ca8ch,0fea2ca8ch
- DD 0360bd498h,0360bd498h
- DD 0cf81f5a6h,0cf81f5a6h
- DD 028de7aa5h,028de7aa5h
- DD 0268eb7dah,0268eb7dah
- DD 0a4bfad3fh,0a4bfad3fh
- DD 0e49d3a2ch,0e49d3a2ch
- DD 00d927850h,00d927850h
- DD 09bcc5f6ah,09bcc5f6ah
- DD 062467e54h,062467e54h
- DD 0c2138df6h,0c2138df6h
- DD 0e8b8d890h,0e8b8d890h
- DD 05ef7392eh,05ef7392eh
- DD 0f5afc382h,0f5afc382h
- DD 0be805d9fh,0be805d9fh
- DD 07c93d069h,07c93d069h
- DD 0a92dd56fh,0a92dd56fh
- DD 0b31225cfh,0b31225cfh
- DD 03b99acc8h,03b99acc8h
- DD 0a77d1810h,0a77d1810h
- DD 06e639ce8h,06e639ce8h
- DD 07bbb3bdbh,07bbb3bdbh
- DD 0097826cdh,0097826cdh
- DD 0f418596eh,0f418596eh
- DD 001b79aech,001b79aech
- DD 0a89a4f83h,0a89a4f83h
- DD 0656e95e6h,0656e95e6h
- DD 07ee6ffaah,07ee6ffaah
- DD 008cfbc21h,008cfbc21h
- DD 0e6e815efh,0e6e815efh
- DD 0d99be7bah,0d99be7bah
- DD 0ce366f4ah,0ce366f4ah
- DD 0d4099feah,0d4099feah
- DD 0d67cb029h,0d67cb029h
- DD 0afb2a431h,0afb2a431h
- DD 031233f2ah,031233f2ah
- DD 03094a5c6h,03094a5c6h
- DD 0c066a235h,0c066a235h
- DD 037bc4e74h,037bc4e74h
- DD 0a6ca82fch,0a6ca82fch
- DD 0b0d090e0h,0b0d090e0h
- DD 015d8a733h,015d8a733h
- DD 04a9804f1h,04a9804f1h
- DD 0f7daec41h,0f7daec41h
- DD 00e50cd7fh,00e50cd7fh
- DD 02ff69117h,02ff69117h
- DD 08dd64d76h,08dd64d76h
- DD 04db0ef43h,04db0ef43h
- DD 0544daacch,0544daacch
- DD 0df0496e4h,0df0496e4h
- DD 0e3b5d19eh,0e3b5d19eh
- DD 01b886a4ch,01b886a4ch
- DD 0b81f2cc1h,0b81f2cc1h
- DD 07f516546h,07f516546h
- DD 004ea5e9dh,004ea5e9dh
- DD 05d358c01h,05d358c01h
- DD 0737487fah,0737487fah
- DD 02e410bfbh,02e410bfbh
- DD 05a1d67b3h,05a1d67b3h
- DD 052d2db92h,052d2db92h
- DD 0335610e9h,0335610e9h
- DD 01347d66dh,01347d66dh
- DD 08c61d79ah,08c61d79ah
- DD 07a0ca137h,07a0ca137h
- DD 08e14f859h,08e14f859h
- DD 0893c13ebh,0893c13ebh
- DD 0ee27a9ceh,0ee27a9ceh
- DD 035c961b7h,035c961b7h
- DD 0ede51ce1h,0ede51ce1h
- DD 03cb1477ah,03cb1477ah
- DD 059dfd29ch,059dfd29ch
- DD 03f73f255h,03f73f255h
- DD 079ce1418h,079ce1418h
- DD 0bf37c773h,0bf37c773h
- DD 0eacdf753h,0eacdf753h
- DD 05baafd5fh,05baafd5fh
- DD 0146f3ddfh,0146f3ddfh
- DD 086db4478h,086db4478h
- DD 081f3afcah,081f3afcah
- DD 03ec468b9h,03ec468b9h
- DD 02c342438h,02c342438h
- DD 05f40a3c2h,05f40a3c2h
- DD 072c31d16h,072c31d16h
- DD 00c25e2bch,00c25e2bch
- DD 08b493c28h,08b493c28h
- DD 041950dffh,041950dffh
- DD 07101a839h,07101a839h
- DD 0deb30c08h,0deb30c08h
- DD 09ce4b4d8h,09ce4b4d8h
- DD 090c15664h,090c15664h
- DD 06184cb7bh,06184cb7bh
- DD 070b632d5h,070b632d5h
- DD 0745c6c48h,0745c6c48h
- DD 04257b8d0h,04257b8d0h
-DB 052h,009h,06ah,0d5h,030h,036h,0a5h,038h
-DB 0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh
-DB 07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h
-DB 034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh
-DB 054h,07bh,094h,032h,0a6h,0c2h,023h,03dh
-DB 0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh
-DB 008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h
-DB 076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h
-DB 072h,0f8h,0f6h,064h,086h,068h,098h,016h
-DB 0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h
-DB 06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah
-DB 05eh,015h,046h,057h,0a7h,08dh,09dh,084h
-DB 090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah
-DB 0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h
-DB 0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h
-DB 0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh
-DB 03ah,091h,011h,041h,04fh,067h,0dch,0eah
-DB 097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h
-DB 096h,0ach,074h,022h,0e7h,0adh,035h,085h
-DB 0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh
-DB 047h,0f1h,01ah,071h,01dh,029h,0c5h,089h
-DB 06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh
-DB 0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h
-DB 09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h
-DB 01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h
-DB 0b1h,012h,010h,059h,027h,080h,0ech,05fh
-DB 060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh
-DB 02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh
-DB 0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h
-DB 0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h
-DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h
-DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh
- DD 080808080h,080808080h,0fefefefeh,0fefefefeh
- DD 01b1b1b1bh,01b1b1b1bh,0,0
-DB 052h,009h,06ah,0d5h,030h,036h,0a5h,038h
-DB 0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh
-DB 07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h
-DB 034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh
-DB 054h,07bh,094h,032h,0a6h,0c2h,023h,03dh
-DB 0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh
-DB 008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h
-DB 076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h
-DB 072h,0f8h,0f6h,064h,086h,068h,098h,016h
-DB 0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h
-DB 06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah
-DB 05eh,015h,046h,057h,0a7h,08dh,09dh,084h
-DB 090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah
-DB 0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h
-DB 0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h
-DB 0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh
-DB 03ah,091h,011h,041h,04fh,067h,0dch,0eah
-DB 097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h
-DB 096h,0ach,074h,022h,0e7h,0adh,035h,085h
-DB 0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh
-DB 047h,0f1h,01ah,071h,01dh,029h,0c5h,089h
-DB 06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh
-DB 0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h
-DB 09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h
-DB 01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h
-DB 0b1h,012h,010h,059h,027h,080h,0ech,05fh
-DB 060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh
-DB 02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh
-DB 0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h
-DB 0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h
-DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h
-DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh
- DD 080808080h,080808080h,0fefefefeh,0fefefefeh
- DD 01b1b1b1bh,01b1b1b1bh,0,0
-DB 052h,009h,06ah,0d5h,030h,036h,0a5h,038h
-DB 0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh
-DB 07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h
-DB 034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh
-DB 054h,07bh,094h,032h,0a6h,0c2h,023h,03dh
-DB 0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh
-DB 008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h
-DB 076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h
-DB 072h,0f8h,0f6h,064h,086h,068h,098h,016h
-DB 0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h
-DB 06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah
-DB 05eh,015h,046h,057h,0a7h,08dh,09dh,084h
-DB 090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah
-DB 0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h
-DB 0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h
-DB 0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh
-DB 03ah,091h,011h,041h,04fh,067h,0dch,0eah
-DB 097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h
-DB 096h,0ach,074h,022h,0e7h,0adh,035h,085h
-DB 0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh
-DB 047h,0f1h,01ah,071h,01dh,029h,0c5h,089h
-DB 06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh
-DB 0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h
-DB 09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h
-DB 01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h
-DB 0b1h,012h,010h,059h,027h,080h,0ech,05fh
-DB 060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh
-DB 02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh
-DB 0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h
-DB 0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h
-DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h
-DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh
- DD 080808080h,080808080h,0fefefefeh,0fefefefeh
- DD 01b1b1b1bh,01b1b1b1bh,0,0
-DB 052h,009h,06ah,0d5h,030h,036h,0a5h,038h
-DB 0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh
-DB 07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h
-DB 034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh
-DB 054h,07bh,094h,032h,0a6h,0c2h,023h,03dh
-DB 0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh
-DB 008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h
-DB 076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h
-DB 072h,0f8h,0f6h,064h,086h,068h,098h,016h
-DB 0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h
-DB 06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah
-DB 05eh,015h,046h,057h,0a7h,08dh,09dh,084h
-DB 090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah
-DB 0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h
-DB 0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h
-DB 0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh
-DB 03ah,091h,011h,041h,04fh,067h,0dch,0eah
-DB 097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h
-DB 096h,0ach,074h,022h,0e7h,0adh,035h,085h
-DB 0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh
-DB 047h,0f1h,01ah,071h,01dh,029h,0c5h,089h
-DB 06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh
-DB 0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h
-DB 09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h
-DB 01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h
-DB 0b1h,012h,010h,059h,027h,080h,0ech,05fh
-DB 060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh
-DB 02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh
-DB 0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h
-DB 0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h
-DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h
-DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh
- DD 080808080h,080808080h,0fefefefeh,0fefefefeh
- DD 01b1b1b1bh,01b1b1b1bh,0,0
+$L$AES_Td:
+ DD 0x50a7f451,0x50a7f451
+ DD 0x5365417e,0x5365417e
+ DD 0xc3a4171a,0xc3a4171a
+ DD 0x965e273a,0x965e273a
+ DD 0xcb6bab3b,0xcb6bab3b
+ DD 0xf1459d1f,0xf1459d1f
+ DD 0xab58faac,0xab58faac
+ DD 0x9303e34b,0x9303e34b
+ DD 0x55fa3020,0x55fa3020
+ DD 0xf66d76ad,0xf66d76ad
+ DD 0x9176cc88,0x9176cc88
+ DD 0x254c02f5,0x254c02f5
+ DD 0xfcd7e54f,0xfcd7e54f
+ DD 0xd7cb2ac5,0xd7cb2ac5
+ DD 0x80443526,0x80443526
+ DD 0x8fa362b5,0x8fa362b5
+ DD 0x495ab1de,0x495ab1de
+ DD 0x671bba25,0x671bba25
+ DD 0x980eea45,0x980eea45
+ DD 0xe1c0fe5d,0xe1c0fe5d
+ DD 0x02752fc3,0x02752fc3
+ DD 0x12f04c81,0x12f04c81
+ DD 0xa397468d,0xa397468d
+ DD 0xc6f9d36b,0xc6f9d36b
+ DD 0xe75f8f03,0xe75f8f03
+ DD 0x959c9215,0x959c9215
+ DD 0xeb7a6dbf,0xeb7a6dbf
+ DD 0xda595295,0xda595295
+ DD 0x2d83bed4,0x2d83bed4
+ DD 0xd3217458,0xd3217458
+ DD 0x2969e049,0x2969e049
+ DD 0x44c8c98e,0x44c8c98e
+ DD 0x6a89c275,0x6a89c275
+ DD 0x78798ef4,0x78798ef4
+ DD 0x6b3e5899,0x6b3e5899
+ DD 0xdd71b927,0xdd71b927
+ DD 0xb64fe1be,0xb64fe1be
+ DD 0x17ad88f0,0x17ad88f0
+ DD 0x66ac20c9,0x66ac20c9
+ DD 0xb43ace7d,0xb43ace7d
+ DD 0x184adf63,0x184adf63
+ DD 0x82311ae5,0x82311ae5
+ DD 0x60335197,0x60335197
+ DD 0x457f5362,0x457f5362
+ DD 0xe07764b1,0xe07764b1
+ DD 0x84ae6bbb,0x84ae6bbb
+ DD 0x1ca081fe,0x1ca081fe
+ DD 0x942b08f9,0x942b08f9
+ DD 0x58684870,0x58684870
+ DD 0x19fd458f,0x19fd458f
+ DD 0x876cde94,0x876cde94
+ DD 0xb7f87b52,0xb7f87b52
+ DD 0x23d373ab,0x23d373ab
+ DD 0xe2024b72,0xe2024b72
+ DD 0x578f1fe3,0x578f1fe3
+ DD 0x2aab5566,0x2aab5566
+ DD 0x0728ebb2,0x0728ebb2
+ DD 0x03c2b52f,0x03c2b52f
+ DD 0x9a7bc586,0x9a7bc586
+ DD 0xa50837d3,0xa50837d3
+ DD 0xf2872830,0xf2872830
+ DD 0xb2a5bf23,0xb2a5bf23
+ DD 0xba6a0302,0xba6a0302
+ DD 0x5c8216ed,0x5c8216ed
+ DD 0x2b1ccf8a,0x2b1ccf8a
+ DD 0x92b479a7,0x92b479a7
+ DD 0xf0f207f3,0xf0f207f3
+ DD 0xa1e2694e,0xa1e2694e
+ DD 0xcdf4da65,0xcdf4da65
+ DD 0xd5be0506,0xd5be0506
+ DD 0x1f6234d1,0x1f6234d1
+ DD 0x8afea6c4,0x8afea6c4
+ DD 0x9d532e34,0x9d532e34
+ DD 0xa055f3a2,0xa055f3a2
+ DD 0x32e18a05,0x32e18a05
+ DD 0x75ebf6a4,0x75ebf6a4
+ DD 0x39ec830b,0x39ec830b
+ DD 0xaaef6040,0xaaef6040
+ DD 0x069f715e,0x069f715e
+ DD 0x51106ebd,0x51106ebd
+ DD 0xf98a213e,0xf98a213e
+ DD 0x3d06dd96,0x3d06dd96
+ DD 0xae053edd,0xae053edd
+ DD 0x46bde64d,0x46bde64d
+ DD 0xb58d5491,0xb58d5491
+ DD 0x055dc471,0x055dc471
+ DD 0x6fd40604,0x6fd40604
+ DD 0xff155060,0xff155060
+ DD 0x24fb9819,0x24fb9819
+ DD 0x97e9bdd6,0x97e9bdd6
+ DD 0xcc434089,0xcc434089
+ DD 0x779ed967,0x779ed967
+ DD 0xbd42e8b0,0xbd42e8b0
+ DD 0x888b8907,0x888b8907
+ DD 0x385b19e7,0x385b19e7
+ DD 0xdbeec879,0xdbeec879
+ DD 0x470a7ca1,0x470a7ca1
+ DD 0xe90f427c,0xe90f427c
+ DD 0xc91e84f8,0xc91e84f8
+ DD 0x00000000,0x00000000
+ DD 0x83868009,0x83868009
+ DD 0x48ed2b32,0x48ed2b32
+ DD 0xac70111e,0xac70111e
+ DD 0x4e725a6c,0x4e725a6c
+ DD 0xfbff0efd,0xfbff0efd
+ DD 0x5638850f,0x5638850f
+ DD 0x1ed5ae3d,0x1ed5ae3d
+ DD 0x27392d36,0x27392d36
+ DD 0x64d90f0a,0x64d90f0a
+ DD 0x21a65c68,0x21a65c68
+ DD 0xd1545b9b,0xd1545b9b
+ DD 0x3a2e3624,0x3a2e3624
+ DD 0xb1670a0c,0xb1670a0c
+ DD 0x0fe75793,0x0fe75793
+ DD 0xd296eeb4,0xd296eeb4
+ DD 0x9e919b1b,0x9e919b1b
+ DD 0x4fc5c080,0x4fc5c080
+ DD 0xa220dc61,0xa220dc61
+ DD 0x694b775a,0x694b775a
+ DD 0x161a121c,0x161a121c
+ DD 0x0aba93e2,0x0aba93e2
+ DD 0xe52aa0c0,0xe52aa0c0
+ DD 0x43e0223c,0x43e0223c
+ DD 0x1d171b12,0x1d171b12
+ DD 0x0b0d090e,0x0b0d090e
+ DD 0xadc78bf2,0xadc78bf2
+ DD 0xb9a8b62d,0xb9a8b62d
+ DD 0xc8a91e14,0xc8a91e14
+ DD 0x8519f157,0x8519f157
+ DD 0x4c0775af,0x4c0775af
+ DD 0xbbdd99ee,0xbbdd99ee
+ DD 0xfd607fa3,0xfd607fa3
+ DD 0x9f2601f7,0x9f2601f7
+ DD 0xbcf5725c,0xbcf5725c
+ DD 0xc53b6644,0xc53b6644
+ DD 0x347efb5b,0x347efb5b
+ DD 0x7629438b,0x7629438b
+ DD 0xdcc623cb,0xdcc623cb
+ DD 0x68fcedb6,0x68fcedb6
+ DD 0x63f1e4b8,0x63f1e4b8
+ DD 0xcadc31d7,0xcadc31d7
+ DD 0x10856342,0x10856342
+ DD 0x40229713,0x40229713
+ DD 0x2011c684,0x2011c684
+ DD 0x7d244a85,0x7d244a85
+ DD 0xf83dbbd2,0xf83dbbd2
+ DD 0x1132f9ae,0x1132f9ae
+ DD 0x6da129c7,0x6da129c7
+ DD 0x4b2f9e1d,0x4b2f9e1d
+ DD 0xf330b2dc,0xf330b2dc
+ DD 0xec52860d,0xec52860d
+ DD 0xd0e3c177,0xd0e3c177
+ DD 0x6c16b32b,0x6c16b32b
+ DD 0x99b970a9,0x99b970a9
+ DD 0xfa489411,0xfa489411
+ DD 0x2264e947,0x2264e947
+ DD 0xc48cfca8,0xc48cfca8
+ DD 0x1a3ff0a0,0x1a3ff0a0
+ DD 0xd82c7d56,0xd82c7d56
+ DD 0xef903322,0xef903322
+ DD 0xc74e4987,0xc74e4987
+ DD 0xc1d138d9,0xc1d138d9
+ DD 0xfea2ca8c,0xfea2ca8c
+ DD 0x360bd498,0x360bd498
+ DD 0xcf81f5a6,0xcf81f5a6
+ DD 0x28de7aa5,0x28de7aa5
+ DD 0x268eb7da,0x268eb7da
+ DD 0xa4bfad3f,0xa4bfad3f
+ DD 0xe49d3a2c,0xe49d3a2c
+ DD 0x0d927850,0x0d927850
+ DD 0x9bcc5f6a,0x9bcc5f6a
+ DD 0x62467e54,0x62467e54
+ DD 0xc2138df6,0xc2138df6
+ DD 0xe8b8d890,0xe8b8d890
+ DD 0x5ef7392e,0x5ef7392e
+ DD 0xf5afc382,0xf5afc382
+ DD 0xbe805d9f,0xbe805d9f
+ DD 0x7c93d069,0x7c93d069
+ DD 0xa92dd56f,0xa92dd56f
+ DD 0xb31225cf,0xb31225cf
+ DD 0x3b99acc8,0x3b99acc8
+ DD 0xa77d1810,0xa77d1810
+ DD 0x6e639ce8,0x6e639ce8
+ DD 0x7bbb3bdb,0x7bbb3bdb
+ DD 0x097826cd,0x097826cd
+ DD 0xf418596e,0xf418596e
+ DD 0x01b79aec,0x01b79aec
+ DD 0xa89a4f83,0xa89a4f83
+ DD 0x656e95e6,0x656e95e6
+ DD 0x7ee6ffaa,0x7ee6ffaa
+ DD 0x08cfbc21,0x08cfbc21
+ DD 0xe6e815ef,0xe6e815ef
+ DD 0xd99be7ba,0xd99be7ba
+ DD 0xce366f4a,0xce366f4a
+ DD 0xd4099fea,0xd4099fea
+ DD 0xd67cb029,0xd67cb029
+ DD 0xafb2a431,0xafb2a431
+ DD 0x31233f2a,0x31233f2a
+ DD 0x3094a5c6,0x3094a5c6
+ DD 0xc066a235,0xc066a235
+ DD 0x37bc4e74,0x37bc4e74
+ DD 0xa6ca82fc,0xa6ca82fc
+ DD 0xb0d090e0,0xb0d090e0
+ DD 0x15d8a733,0x15d8a733
+ DD 0x4a9804f1,0x4a9804f1
+ DD 0xf7daec41,0xf7daec41
+ DD 0x0e50cd7f,0x0e50cd7f
+ DD 0x2ff69117,0x2ff69117
+ DD 0x8dd64d76,0x8dd64d76
+ DD 0x4db0ef43,0x4db0ef43
+ DD 0x544daacc,0x544daacc
+ DD 0xdf0496e4,0xdf0496e4
+ DD 0xe3b5d19e,0xe3b5d19e
+ DD 0x1b886a4c,0x1b886a4c
+ DD 0xb81f2cc1,0xb81f2cc1
+ DD 0x7f516546,0x7f516546
+ DD 0x04ea5e9d,0x04ea5e9d
+ DD 0x5d358c01,0x5d358c01
+ DD 0x737487fa,0x737487fa
+ DD 0x2e410bfb,0x2e410bfb
+ DD 0x5a1d67b3,0x5a1d67b3
+ DD 0x52d2db92,0x52d2db92
+ DD 0x335610e9,0x335610e9
+ DD 0x1347d66d,0x1347d66d
+ DD 0x8c61d79a,0x8c61d79a
+ DD 0x7a0ca137,0x7a0ca137
+ DD 0x8e14f859,0x8e14f859
+ DD 0x893c13eb,0x893c13eb
+ DD 0xee27a9ce,0xee27a9ce
+ DD 0x35c961b7,0x35c961b7
+ DD 0xede51ce1,0xede51ce1
+ DD 0x3cb1477a,0x3cb1477a
+ DD 0x59dfd29c,0x59dfd29c
+ DD 0x3f73f255,0x3f73f255
+ DD 0x79ce1418,0x79ce1418
+ DD 0xbf37c773,0xbf37c773
+ DD 0xeacdf753,0xeacdf753
+ DD 0x5baafd5f,0x5baafd5f
+ DD 0x146f3ddf,0x146f3ddf
+ DD 0x86db4478,0x86db4478
+ DD 0x81f3afca,0x81f3afca
+ DD 0x3ec468b9,0x3ec468b9
+ DD 0x2c342438,0x2c342438
+ DD 0x5f40a3c2,0x5f40a3c2
+ DD 0x72c31d16,0x72c31d16
+ DD 0x0c25e2bc,0x0c25e2bc
+ DD 0x8b493c28,0x8b493c28
+ DD 0x41950dff,0x41950dff
+ DD 0x7101a839,0x7101a839
+ DD 0xdeb30c08,0xdeb30c08
+ DD 0x9ce4b4d8,0x9ce4b4d8
+ DD 0x90c15664,0x90c15664
+ DD 0x6184cb7b,0x6184cb7b
+ DD 0x70b632d5,0x70b632d5
+ DD 0x745c6c48,0x745c6c48
+ DD 0x4257b8d0,0x4257b8d0
+DB 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
+DB 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
+DB 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
+DB 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
+DB 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
+DB 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
+DB 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
+DB 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
+DB 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
+DB 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
+DB 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
+DB 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
+DB 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
+DB 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
+DB 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
+DB 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
+DB 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
+DB 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
+DB 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
+DB 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
+DB 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
+DB 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
+DB 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
+DB 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
+DB 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
+DB 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
+DB 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
+DB 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
+DB 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
+DB 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
+DB 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
+DB 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
+ DD 0x80808080,0x80808080,0xfefefefe,0xfefefefe
+ DD 0x1b1b1b1b,0x1b1b1b1b,0,0
+DB 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
+DB 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
+DB 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
+DB 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
+DB 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
+DB 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
+DB 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
+DB 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
+DB 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
+DB 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
+DB 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
+DB 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
+DB 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
+DB 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
+DB 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
+DB 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
+DB 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
+DB 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
+DB 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
+DB 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
+DB 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
+DB 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
+DB 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
+DB 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
+DB 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
+DB 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
+DB 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
+DB 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
+DB 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
+DB 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
+DB 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
+DB 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
+ DD 0x80808080,0x80808080,0xfefefefe,0xfefefefe
+ DD 0x1b1b1b1b,0x1b1b1b1b,0,0
+DB 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
+DB 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
+DB 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
+DB 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
+DB 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
+DB 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
+DB 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
+DB 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
+DB 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
+DB 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
+DB 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
+DB 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
+DB 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
+DB 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
+DB 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
+DB 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
+DB 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
+DB 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
+DB 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
+DB 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
+DB 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
+DB 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
+DB 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
+DB 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
+DB 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
+DB 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
+DB 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
+DB 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
+DB 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
+DB 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
+DB 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
+DB 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
+ DD 0x80808080,0x80808080,0xfefefefe,0xfefefefe
+ DD 0x1b1b1b1b,0x1b1b1b1b,0,0
+DB 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
+DB 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
+DB 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
+DB 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
+DB 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
+DB 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
+DB 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
+DB 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
+DB 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
+DB 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
+DB 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
+DB 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
+DB 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
+DB 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
+DB 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
+DB 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
+DB 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
+DB 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
+DB 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
+DB 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
+DB 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
+DB 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
+DB 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
+DB 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
+DB 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
+DB 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
+DB 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
+DB 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
+DB 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
+DB 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
+DB 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
+DB 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
+ DD 0x80808080,0x80808080,0xfefefefe,0xfefefefe
+ DD 0x1b1b1b1b,0x1b1b1b1b,0,0
DB 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32
DB 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
DB 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
DB 62,0
ALIGN 64
-EXTERN __imp_RtlVirtualUnwind:NEAR
+EXTERN __imp_RtlVirtualUnwind
ALIGN 16
-block_se_handler PROC PRIVATE
+block_se_handler:
push rsi
push rdi
push rbx
@@ -2608,53 +2607,53 @@ block_se_handler PROC PRIVATE
pushfq
sub rsp,64
- mov rax,QWORD PTR[120+r8]
- mov rbx,QWORD PTR[248+r8]
+ mov rax,QWORD[120+r8]
+ mov rbx,QWORD[248+r8]
- mov rsi,QWORD PTR[8+r9]
- mov r11,QWORD PTR[56+r9]
+ mov rsi,QWORD[8+r9]
+ mov r11,QWORD[56+r9]
- mov r10d,DWORD PTR[r11]
- lea r10,QWORD PTR[r10*1+rsi]
+ mov r10d,DWORD[r11]
+ lea r10,[r10*1+rsi]
cmp rbx,r10
- jb $L$in_block_prologue
+ jb NEAR $L$in_block_prologue
- mov rax,QWORD PTR[152+r8]
+ mov rax,QWORD[152+r8]
- mov r10d,DWORD PTR[4+r11]
- lea r10,QWORD PTR[r10*1+rsi]
+ mov r10d,DWORD[4+r11]
+ lea r10,[r10*1+rsi]
cmp rbx,r10
- jae $L$in_block_prologue
-
- mov rax,QWORD PTR[24+rax]
- lea rax,QWORD PTR[48+rax]
-
- mov rbx,QWORD PTR[((-8))+rax]
- mov rbp,QWORD PTR[((-16))+rax]
- mov r12,QWORD PTR[((-24))+rax]
- mov r13,QWORD PTR[((-32))+rax]
- mov r14,QWORD PTR[((-40))+rax]
- mov r15,QWORD PTR[((-48))+rax]
- mov QWORD PTR[144+r8],rbx
- mov QWORD PTR[160+r8],rbp
- mov QWORD PTR[216+r8],r12
- mov QWORD PTR[224+r8],r13
- mov QWORD PTR[232+r8],r14
- mov QWORD PTR[240+r8],r15
-
-$L$in_block_prologue::
- mov rdi,QWORD PTR[8+rax]
- mov rsi,QWORD PTR[16+rax]
- mov QWORD PTR[152+r8],rax
- mov QWORD PTR[168+r8],rsi
- mov QWORD PTR[176+r8],rdi
-
- jmp $L$common_seh_exit
-block_se_handler ENDP
+ jae NEAR $L$in_block_prologue
+
+ mov rax,QWORD[24+rax]
+ lea rax,[48+rax]
+
+ mov rbx,QWORD[((-8))+rax]
+ mov rbp,QWORD[((-16))+rax]
+ mov r12,QWORD[((-24))+rax]
+ mov r13,QWORD[((-32))+rax]
+ mov r14,QWORD[((-40))+rax]
+ mov r15,QWORD[((-48))+rax]
+ mov QWORD[144+r8],rbx
+ mov QWORD[160+r8],rbp
+ mov QWORD[216+r8],r12
+ mov QWORD[224+r8],r13
+ mov QWORD[232+r8],r14
+ mov QWORD[240+r8],r15
+
+$L$in_block_prologue:
+ mov rdi,QWORD[8+rax]
+ mov rsi,QWORD[16+rax]
+ mov QWORD[152+r8],rax
+ mov QWORD[168+r8],rsi
+ mov QWORD[176+r8],rdi
+
+ jmp NEAR $L$common_seh_exit
+
ALIGN 16
-key_se_handler PROC PRIVATE
+key_se_handler:
push rsi
push rdi
push rbx
@@ -2666,52 +2665,52 @@ key_se_handler PROC PRIVATE
pushfq
sub rsp,64
- mov rax,QWORD PTR[120+r8]
- mov rbx,QWORD PTR[248+r8]
+ mov rax,QWORD[120+r8]
+ mov rbx,QWORD[248+r8]
- mov rsi,QWORD PTR[8+r9]
- mov r11,QWORD PTR[56+r9]
+ mov rsi,QWORD[8+r9]
+ mov r11,QWORD[56+r9]
- mov r10d,DWORD PTR[r11]
- lea r10,QWORD PTR[r10*1+rsi]
+ mov r10d,DWORD[r11]
+ lea r10,[r10*1+rsi]
cmp rbx,r10
- jb $L$in_key_prologue
+ jb NEAR $L$in_key_prologue
- mov rax,QWORD PTR[152+r8]
+ mov rax,QWORD[152+r8]
- mov r10d,DWORD PTR[4+r11]
- lea r10,QWORD PTR[r10*1+rsi]
+ mov r10d,DWORD[4+r11]
+ lea r10,[r10*1+rsi]
cmp rbx,r10
- jae $L$in_key_prologue
-
- lea rax,QWORD PTR[56+rax]
-
- mov rbx,QWORD PTR[((-8))+rax]
- mov rbp,QWORD PTR[((-16))+rax]
- mov r12,QWORD PTR[((-24))+rax]
- mov r13,QWORD PTR[((-32))+rax]
- mov r14,QWORD PTR[((-40))+rax]
- mov r15,QWORD PTR[((-48))+rax]
- mov QWORD PTR[144+r8],rbx
- mov QWORD PTR[160+r8],rbp
- mov QWORD PTR[216+r8],r12
- mov QWORD PTR[224+r8],r13
- mov QWORD PTR[232+r8],r14
- mov QWORD PTR[240+r8],r15
-
-$L$in_key_prologue::
- mov rdi,QWORD PTR[8+rax]
- mov rsi,QWORD PTR[16+rax]
- mov QWORD PTR[152+r8],rax
- mov QWORD PTR[168+r8],rsi
- mov QWORD PTR[176+r8],rdi
-
- jmp $L$common_seh_exit
-key_se_handler ENDP
+ jae NEAR $L$in_key_prologue
+
+ lea rax,[56+rax]
+
+ mov rbx,QWORD[((-8))+rax]
+ mov rbp,QWORD[((-16))+rax]
+ mov r12,QWORD[((-24))+rax]
+ mov r13,QWORD[((-32))+rax]
+ mov r14,QWORD[((-40))+rax]
+ mov r15,QWORD[((-48))+rax]
+ mov QWORD[144+r8],rbx
+ mov QWORD[160+r8],rbp
+ mov QWORD[216+r8],r12
+ mov QWORD[224+r8],r13
+ mov QWORD[232+r8],r14
+ mov QWORD[240+r8],r15
+
+$L$in_key_prologue:
+ mov rdi,QWORD[8+rax]
+ mov rsi,QWORD[16+rax]
+ mov QWORD[152+r8],rax
+ mov QWORD[168+r8],rsi
+ mov QWORD[176+r8],rdi
+
+ jmp NEAR $L$common_seh_exit
+
ALIGN 16
-cbc_se_handler PROC PRIVATE
+cbc_se_handler:
push rsi
push rdi
push rbx
@@ -2723,82 +2722,82 @@ cbc_se_handler PROC PRIVATE
pushfq
sub rsp,64
- mov rax,QWORD PTR[120+r8]
- mov rbx,QWORD PTR[248+r8]
+ mov rax,QWORD[120+r8]
+ mov rbx,QWORD[248+r8]
- lea r10,QWORD PTR[$L$cbc_prologue]
+ lea r10,[$L$cbc_prologue]
cmp rbx,r10
- jb $L$in_cbc_prologue
+ jb NEAR $L$in_cbc_prologue
- lea r10,QWORD PTR[$L$cbc_fast_body]
+ lea r10,[$L$cbc_fast_body]
cmp rbx,r10
- jb $L$in_cbc_frame_setup
+ jb NEAR $L$in_cbc_frame_setup
- lea r10,QWORD PTR[$L$cbc_slow_prologue]
+ lea r10,[$L$cbc_slow_prologue]
cmp rbx,r10
- jb $L$in_cbc_body
+ jb NEAR $L$in_cbc_body
- lea r10,QWORD PTR[$L$cbc_slow_body]
+ lea r10,[$L$cbc_slow_body]
cmp rbx,r10
- jb $L$in_cbc_frame_setup
+ jb NEAR $L$in_cbc_frame_setup
-$L$in_cbc_body::
- mov rax,QWORD PTR[152+r8]
+$L$in_cbc_body:
+ mov rax,QWORD[152+r8]
- lea r10,QWORD PTR[$L$cbc_epilogue]
+ lea r10,[$L$cbc_epilogue]
cmp rbx,r10
- jae $L$in_cbc_prologue
+ jae NEAR $L$in_cbc_prologue
- lea rax,QWORD PTR[8+rax]
+ lea rax,[8+rax]
- lea r10,QWORD PTR[$L$cbc_popfq]
+ lea r10,[$L$cbc_popfq]
cmp rbx,r10
- jae $L$in_cbc_prologue
-
- mov rax,QWORD PTR[8+rax]
- lea rax,QWORD PTR[56+rax]
-
-$L$in_cbc_frame_setup::
- mov rbx,QWORD PTR[((-16))+rax]
- mov rbp,QWORD PTR[((-24))+rax]
- mov r12,QWORD PTR[((-32))+rax]
- mov r13,QWORD PTR[((-40))+rax]
- mov r14,QWORD PTR[((-48))+rax]
- mov r15,QWORD PTR[((-56))+rax]
- mov QWORD PTR[144+r8],rbx
- mov QWORD PTR[160+r8],rbp
- mov QWORD PTR[216+r8],r12
- mov QWORD PTR[224+r8],r13
- mov QWORD PTR[232+r8],r14
- mov QWORD PTR[240+r8],r15
-
-$L$in_cbc_prologue::
- mov rdi,QWORD PTR[8+rax]
- mov rsi,QWORD PTR[16+rax]
- mov QWORD PTR[152+r8],rax
- mov QWORD PTR[168+r8],rsi
- mov QWORD PTR[176+r8],rdi
-
-$L$common_seh_exit::
-
- mov rdi,QWORD PTR[40+r9]
+ jae NEAR $L$in_cbc_prologue
+
+ mov rax,QWORD[8+rax]
+ lea rax,[56+rax]
+
+$L$in_cbc_frame_setup:
+ mov rbx,QWORD[((-16))+rax]
+ mov rbp,QWORD[((-24))+rax]
+ mov r12,QWORD[((-32))+rax]
+ mov r13,QWORD[((-40))+rax]
+ mov r14,QWORD[((-48))+rax]
+ mov r15,QWORD[((-56))+rax]
+ mov QWORD[144+r8],rbx
+ mov QWORD[160+r8],rbp
+ mov QWORD[216+r8],r12
+ mov QWORD[224+r8],r13
+ mov QWORD[232+r8],r14
+ mov QWORD[240+r8],r15
+
+$L$in_cbc_prologue:
+ mov rdi,QWORD[8+rax]
+ mov rsi,QWORD[16+rax]
+ mov QWORD[152+r8],rax
+ mov QWORD[168+r8],rsi
+ mov QWORD[176+r8],rdi
+
+$L$common_seh_exit:
+
+ mov rdi,QWORD[40+r9]
mov rsi,r8
mov ecx,154
- DD 0a548f3fch
+ DD 0xa548f3fc
mov rsi,r9
xor rcx,rcx
- mov rdx,QWORD PTR[8+rsi]
- mov r8,QWORD PTR[rsi]
- mov r9,QWORD PTR[16+rsi]
- mov r10,QWORD PTR[40+rsi]
- lea r11,QWORD PTR[56+rsi]
- lea r12,QWORD PTR[24+rsi]
- mov QWORD PTR[32+rsp],r10
- mov QWORD PTR[40+rsp],r11
- mov QWORD PTR[48+rsp],r12
- mov QWORD PTR[56+rsp],rcx
- call QWORD PTR[__imp_RtlVirtualUnwind]
+ mov rdx,QWORD[8+rsi]
+ mov r8,QWORD[rsi]
+ mov r9,QWORD[16+rsi]
+ mov r10,QWORD[40+rsi]
+ lea r11,[56+rsi]
+ lea r12,[24+rsi]
+ mov QWORD[32+rsp],r10
+ mov QWORD[40+rsp],r11
+ mov QWORD[48+rsp],r12
+ mov QWORD[56+rsp],rcx
+ call QWORD[__imp_RtlVirtualUnwind]
mov eax,1
add rsp,64
@@ -2812,53 +2811,48 @@ $L$common_seh_exit::
pop rdi
pop rsi
DB 0F3h,0C3h ;repret
-cbc_se_handler ENDP
-.text$ ENDS
-.pdata SEGMENT READONLY ALIGN(4)
+
+section .pdata rdata align=4
ALIGN 4
- DD imagerel $L$SEH_begin_asm_AES_encrypt
- DD imagerel $L$SEH_end_asm_AES_encrypt
- DD imagerel $L$SEH_info_asm_AES_encrypt
+ DD $L$SEH_begin_asm_AES_encrypt wrt ..imagebase
+ DD $L$SEH_end_asm_AES_encrypt wrt ..imagebase
+ DD $L$SEH_info_asm_AES_encrypt wrt ..imagebase
- DD imagerel $L$SEH_begin_asm_AES_decrypt
- DD imagerel $L$SEH_end_asm_AES_decrypt
- DD imagerel $L$SEH_info_asm_AES_decrypt
+ DD $L$SEH_begin_asm_AES_decrypt wrt ..imagebase
+ DD $L$SEH_end_asm_AES_decrypt wrt ..imagebase
+ DD $L$SEH_info_asm_AES_decrypt wrt ..imagebase
- DD imagerel $L$SEH_begin_asm_AES_set_encrypt_key
- DD imagerel $L$SEH_end_asm_AES_set_encrypt_key
- DD imagerel $L$SEH_info_asm_AES_set_encrypt_key
+ DD $L$SEH_begin_asm_AES_set_encrypt_key wrt ..imagebase
+ DD $L$SEH_end_asm_AES_set_encrypt_key wrt ..imagebase
+ DD $L$SEH_info_asm_AES_set_encrypt_key wrt ..imagebase
- DD imagerel $L$SEH_begin_asm_AES_set_decrypt_key
- DD imagerel $L$SEH_end_asm_AES_set_decrypt_key
- DD imagerel $L$SEH_info_asm_AES_set_decrypt_key
+ DD $L$SEH_begin_asm_AES_set_decrypt_key wrt ..imagebase
+ DD $L$SEH_end_asm_AES_set_decrypt_key wrt ..imagebase
+ DD $L$SEH_info_asm_AES_set_decrypt_key wrt ..imagebase
- DD imagerel $L$SEH_begin_asm_AES_cbc_encrypt
- DD imagerel $L$SEH_end_asm_AES_cbc_encrypt
- DD imagerel $L$SEH_info_asm_AES_cbc_encrypt
+ DD $L$SEH_begin_asm_AES_cbc_encrypt wrt ..imagebase
+ DD $L$SEH_end_asm_AES_cbc_encrypt wrt ..imagebase
+ DD $L$SEH_info_asm_AES_cbc_encrypt wrt ..imagebase
-.pdata ENDS
-.xdata SEGMENT READONLY ALIGN(8)
+section .xdata rdata align=8
ALIGN 8
-$L$SEH_info_asm_AES_encrypt::
+$L$SEH_info_asm_AES_encrypt:
DB 9,0,0,0
- DD imagerel block_se_handler
- DD imagerel $L$enc_prologue,imagerel $L$enc_epilogue
-$L$SEH_info_asm_AES_decrypt::
+ DD block_se_handler wrt ..imagebase
+ DD $L$enc_prologue wrt ..imagebase,$L$enc_epilogue wrt ..imagebase
+$L$SEH_info_asm_AES_decrypt:
DB 9,0,0,0
- DD imagerel block_se_handler
- DD imagerel $L$dec_prologue,imagerel $L$dec_epilogue
-$L$SEH_info_asm_AES_set_encrypt_key::
+ DD block_se_handler wrt ..imagebase
+ DD $L$dec_prologue wrt ..imagebase,$L$dec_epilogue wrt ..imagebase
+$L$SEH_info_asm_AES_set_encrypt_key:
DB 9,0,0,0
- DD imagerel key_se_handler
- DD imagerel $L$enc_key_prologue,imagerel $L$enc_key_epilogue
-$L$SEH_info_asm_AES_set_decrypt_key::
+ DD key_se_handler wrt ..imagebase
+ DD $L$enc_key_prologue wrt ..imagebase,$L$enc_key_epilogue wrt ..imagebase
+$L$SEH_info_asm_AES_set_decrypt_key:
DB 9,0,0,0
- DD imagerel key_se_handler
- DD imagerel $L$dec_key_prologue,imagerel $L$dec_key_epilogue
-$L$SEH_info_asm_AES_cbc_encrypt::
+ DD key_se_handler wrt ..imagebase
+ DD $L$dec_key_prologue wrt ..imagebase,$L$dec_key_epilogue wrt ..imagebase
+$L$SEH_info_asm_AES_cbc_encrypt:
DB 9,0,0,0
- DD imagerel cbc_se_handler
-
-.xdata ENDS
-END
+ DD cbc_se_handler wrt ..imagebase
diff --git a/win-x86_64/crypto/aes/aesni-x86_64.asm b/win-x86_64/crypto/aes/aesni-x86_64.asm
index 53d8afc..cf313d1 100644
--- a/win-x86_64/crypto/aes/aesni-x86_64.asm
+++ b/win-x86_64/crypto/aes/aesni-x86_64.asm
@@ -1,130 +1,140 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
-EXTERN OPENSSL_ia32cap_P:NEAR
-PUBLIC aesni_encrypt
-
-ALIGN 16
-aesni_encrypt PROC PUBLIC
- movups xmm2,XMMWORD PTR[rcx]
- mov eax,DWORD PTR[240+r8]
- movups xmm0,XMMWORD PTR[r8]
- movups xmm1,XMMWORD PTR[16+r8]
- lea r8,QWORD PTR[32+r8]
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
+
+EXTERN OPENSSL_ia32cap_P
+global aesni_encrypt
+
+ALIGN 16
+aesni_encrypt:
+ movups xmm2,XMMWORD[rcx]
+ mov eax,DWORD[240+r8]
+ movups xmm0,XMMWORD[r8]
+ movups xmm1,XMMWORD[16+r8]
+ lea r8,[32+r8]
xorps xmm2,xmm0
-$L$oop_enc1_1::
+$L$oop_enc1_1:
DB 102,15,56,220,209
dec eax
- movups xmm1,XMMWORD PTR[r8]
- lea r8,QWORD PTR[16+r8]
- jnz $L$oop_enc1_1
+ movups xmm1,XMMWORD[r8]
+ lea r8,[16+r8]
+ jnz NEAR $L$oop_enc1_1
DB 102,15,56,221,209
- movups XMMWORD PTR[rdx],xmm2
+ pxor xmm0,xmm0
+ pxor xmm1,xmm1
+ movups XMMWORD[rdx],xmm2
+ pxor xmm2,xmm2
DB 0F3h,0C3h ;repret
-aesni_encrypt ENDP
-PUBLIC aesni_decrypt
+
+global aesni_decrypt
ALIGN 16
-aesni_decrypt PROC PUBLIC
- movups xmm2,XMMWORD PTR[rcx]
- mov eax,DWORD PTR[240+r8]
- movups xmm0,XMMWORD PTR[r8]
- movups xmm1,XMMWORD PTR[16+r8]
- lea r8,QWORD PTR[32+r8]
+aesni_decrypt:
+ movups xmm2,XMMWORD[rcx]
+ mov eax,DWORD[240+r8]
+ movups xmm0,XMMWORD[r8]
+ movups xmm1,XMMWORD[16+r8]
+ lea r8,[32+r8]
xorps xmm2,xmm0
-$L$oop_dec1_2::
+$L$oop_dec1_2:
DB 102,15,56,222,209
dec eax
- movups xmm1,XMMWORD PTR[r8]
- lea r8,QWORD PTR[16+r8]
- jnz $L$oop_dec1_2
+ movups xmm1,XMMWORD[r8]
+ lea r8,[16+r8]
+ jnz NEAR $L$oop_dec1_2
DB 102,15,56,223,209
- movups XMMWORD PTR[rdx],xmm2
+ pxor xmm0,xmm0
+ pxor xmm1,xmm1
+ movups XMMWORD[rdx],xmm2
+ pxor xmm2,xmm2
DB 0F3h,0C3h ;repret
-aesni_decrypt ENDP
+
ALIGN 16
-_aesni_encrypt2 PROC PRIVATE
- movups xmm0,XMMWORD PTR[rcx]
+_aesni_encrypt2:
+ movups xmm0,XMMWORD[rcx]
shl eax,4
- movups xmm1,XMMWORD PTR[16+rcx]
+ movups xmm1,XMMWORD[16+rcx]
xorps xmm2,xmm0
xorps xmm3,xmm0
- movups xmm0,XMMWORD PTR[32+rcx]
- lea rcx,QWORD PTR[32+rax*1+rcx]
+ movups xmm0,XMMWORD[32+rcx]
+ lea rcx,[32+rax*1+rcx]
neg rax
add rax,16
-$L$enc_loop2::
+$L$enc_loop2:
DB 102,15,56,220,209
DB 102,15,56,220,217
- movups xmm1,XMMWORD PTR[rax*1+rcx]
+ movups xmm1,XMMWORD[rax*1+rcx]
add rax,32
DB 102,15,56,220,208
DB 102,15,56,220,216
- movups xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
- jnz $L$enc_loop2
+ movups xmm0,XMMWORD[((-16))+rax*1+rcx]
+ jnz NEAR $L$enc_loop2
DB 102,15,56,220,209
DB 102,15,56,220,217
DB 102,15,56,221,208
DB 102,15,56,221,216
DB 0F3h,0C3h ;repret
-_aesni_encrypt2 ENDP
+
ALIGN 16
-_aesni_decrypt2 PROC PRIVATE
- movups xmm0,XMMWORD PTR[rcx]
+_aesni_decrypt2:
+ movups xmm0,XMMWORD[rcx]
shl eax,4
- movups xmm1,XMMWORD PTR[16+rcx]
+ movups xmm1,XMMWORD[16+rcx]
xorps xmm2,xmm0
xorps xmm3,xmm0
- movups xmm0,XMMWORD PTR[32+rcx]
- lea rcx,QWORD PTR[32+rax*1+rcx]
+ movups xmm0,XMMWORD[32+rcx]
+ lea rcx,[32+rax*1+rcx]
neg rax
add rax,16
-$L$dec_loop2::
+$L$dec_loop2:
DB 102,15,56,222,209
DB 102,15,56,222,217
- movups xmm1,XMMWORD PTR[rax*1+rcx]
+ movups xmm1,XMMWORD[rax*1+rcx]
add rax,32
DB 102,15,56,222,208
DB 102,15,56,222,216
- movups xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
- jnz $L$dec_loop2
+ movups xmm0,XMMWORD[((-16))+rax*1+rcx]
+ jnz NEAR $L$dec_loop2
DB 102,15,56,222,209
DB 102,15,56,222,217
DB 102,15,56,223,208
DB 102,15,56,223,216
DB 0F3h,0C3h ;repret
-_aesni_decrypt2 ENDP
+
ALIGN 16
-_aesni_encrypt3 PROC PRIVATE
- movups xmm0,XMMWORD PTR[rcx]
+_aesni_encrypt3:
+ movups xmm0,XMMWORD[rcx]
shl eax,4
- movups xmm1,XMMWORD PTR[16+rcx]
+ movups xmm1,XMMWORD[16+rcx]
xorps xmm2,xmm0
xorps xmm3,xmm0
xorps xmm4,xmm0
- movups xmm0,XMMWORD PTR[32+rcx]
- lea rcx,QWORD PTR[32+rax*1+rcx]
+ movups xmm0,XMMWORD[32+rcx]
+ lea rcx,[32+rax*1+rcx]
neg rax
add rax,16
-$L$enc_loop3::
+$L$enc_loop3:
DB 102,15,56,220,209
DB 102,15,56,220,217
DB 102,15,56,220,225
- movups xmm1,XMMWORD PTR[rax*1+rcx]
+ movups xmm1,XMMWORD[rax*1+rcx]
add rax,32
DB 102,15,56,220,208
DB 102,15,56,220,216
DB 102,15,56,220,224
- movups xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
- jnz $L$enc_loop3
+ movups xmm0,XMMWORD[((-16))+rax*1+rcx]
+ jnz NEAR $L$enc_loop3
DB 102,15,56,220,209
DB 102,15,56,220,217
@@ -133,32 +143,32 @@ DB 102,15,56,221,208
DB 102,15,56,221,216
DB 102,15,56,221,224
DB 0F3h,0C3h ;repret
-_aesni_encrypt3 ENDP
+
ALIGN 16
-_aesni_decrypt3 PROC PRIVATE
- movups xmm0,XMMWORD PTR[rcx]
+_aesni_decrypt3:
+ movups xmm0,XMMWORD[rcx]
shl eax,4
- movups xmm1,XMMWORD PTR[16+rcx]
+ movups xmm1,XMMWORD[16+rcx]
xorps xmm2,xmm0
xorps xmm3,xmm0
xorps xmm4,xmm0
- movups xmm0,XMMWORD PTR[32+rcx]
- lea rcx,QWORD PTR[32+rax*1+rcx]
+ movups xmm0,XMMWORD[32+rcx]
+ lea rcx,[32+rax*1+rcx]
neg rax
add rax,16
-$L$dec_loop3::
+$L$dec_loop3:
DB 102,15,56,222,209
DB 102,15,56,222,217
DB 102,15,56,222,225
- movups xmm1,XMMWORD PTR[rax*1+rcx]
+ movups xmm1,XMMWORD[rax*1+rcx]
add rax,32
DB 102,15,56,222,208
DB 102,15,56,222,216
DB 102,15,56,222,224
- movups xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
- jnz $L$dec_loop3
+ movups xmm0,XMMWORD[((-16))+rax*1+rcx]
+ jnz NEAR $L$dec_loop3
DB 102,15,56,222,209
DB 102,15,56,222,217
@@ -167,36 +177,36 @@ DB 102,15,56,223,208
DB 102,15,56,223,216
DB 102,15,56,223,224
DB 0F3h,0C3h ;repret
-_aesni_decrypt3 ENDP
+
ALIGN 16
-_aesni_encrypt4 PROC PRIVATE
- movups xmm0,XMMWORD PTR[rcx]
+_aesni_encrypt4:
+ movups xmm0,XMMWORD[rcx]
shl eax,4
- movups xmm1,XMMWORD PTR[16+rcx]
+ movups xmm1,XMMWORD[16+rcx]
xorps xmm2,xmm0
xorps xmm3,xmm0
xorps xmm4,xmm0
xorps xmm5,xmm0
- movups xmm0,XMMWORD PTR[32+rcx]
- lea rcx,QWORD PTR[32+rax*1+rcx]
+ movups xmm0,XMMWORD[32+rcx]
+ lea rcx,[32+rax*1+rcx]
neg rax
-DB 00fh,01fh,000h
+DB 0x0f,0x1f,0x00
add rax,16
-$L$enc_loop4::
+$L$enc_loop4:
DB 102,15,56,220,209
DB 102,15,56,220,217
DB 102,15,56,220,225
DB 102,15,56,220,233
- movups xmm1,XMMWORD PTR[rax*1+rcx]
+ movups xmm1,XMMWORD[rax*1+rcx]
add rax,32
DB 102,15,56,220,208
DB 102,15,56,220,216
DB 102,15,56,220,224
DB 102,15,56,220,232
- movups xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
- jnz $L$enc_loop4
+ movups xmm0,XMMWORD[((-16))+rax*1+rcx]
+ jnz NEAR $L$enc_loop4
DB 102,15,56,220,209
DB 102,15,56,220,217
@@ -207,36 +217,36 @@ DB 102,15,56,221,216
DB 102,15,56,221,224
DB 102,15,56,221,232
DB 0F3h,0C3h ;repret
-_aesni_encrypt4 ENDP
+
ALIGN 16
-_aesni_decrypt4 PROC PRIVATE
- movups xmm0,XMMWORD PTR[rcx]
+_aesni_decrypt4:
+ movups xmm0,XMMWORD[rcx]
shl eax,4
- movups xmm1,XMMWORD PTR[16+rcx]
+ movups xmm1,XMMWORD[16+rcx]
xorps xmm2,xmm0
xorps xmm3,xmm0
xorps xmm4,xmm0
xorps xmm5,xmm0
- movups xmm0,XMMWORD PTR[32+rcx]
- lea rcx,QWORD PTR[32+rax*1+rcx]
+ movups xmm0,XMMWORD[32+rcx]
+ lea rcx,[32+rax*1+rcx]
neg rax
-DB 00fh,01fh,000h
+DB 0x0f,0x1f,0x00
add rax,16
-$L$dec_loop4::
+$L$dec_loop4:
DB 102,15,56,222,209
DB 102,15,56,222,217
DB 102,15,56,222,225
DB 102,15,56,222,233
- movups xmm1,XMMWORD PTR[rax*1+rcx]
+ movups xmm1,XMMWORD[rax*1+rcx]
add rax,32
DB 102,15,56,222,208
DB 102,15,56,222,216
DB 102,15,56,222,224
DB 102,15,56,222,232
- movups xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
- jnz $L$dec_loop4
+ movups xmm0,XMMWORD[((-16))+rax*1+rcx]
+ jnz NEAR $L$dec_loop4
DB 102,15,56,222,209
DB 102,15,56,222,217
@@ -247,40 +257,37 @@ DB 102,15,56,223,216
DB 102,15,56,223,224
DB 102,15,56,223,232
DB 0F3h,0C3h ;repret
-_aesni_decrypt4 ENDP
+
ALIGN 16
-_aesni_encrypt6 PROC PRIVATE
- movups xmm0,XMMWORD PTR[rcx]
+_aesni_encrypt6:
+ movups xmm0,XMMWORD[rcx]
shl eax,4
- movups xmm1,XMMWORD PTR[16+rcx]
+ movups xmm1,XMMWORD[16+rcx]
xorps xmm2,xmm0
pxor xmm3,xmm0
pxor xmm4,xmm0
DB 102,15,56,220,209
- lea rcx,QWORD PTR[32+rax*1+rcx]
+ lea rcx,[32+rax*1+rcx]
neg rax
DB 102,15,56,220,217
pxor xmm5,xmm0
pxor xmm6,xmm0
DB 102,15,56,220,225
pxor xmm7,xmm0
+ movups xmm0,XMMWORD[rax*1+rcx]
add rax,16
-DB 102,15,56,220,233
-DB 102,15,56,220,241
-DB 102,15,56,220,249
- movups xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
- jmp $L$enc_loop6_enter
+ jmp NEAR $L$enc_loop6_enter
ALIGN 16
-$L$enc_loop6::
+$L$enc_loop6:
DB 102,15,56,220,209
DB 102,15,56,220,217
DB 102,15,56,220,225
+$L$enc_loop6_enter:
DB 102,15,56,220,233
DB 102,15,56,220,241
DB 102,15,56,220,249
-$L$enc_loop6_enter::
- movups xmm1,XMMWORD PTR[rax*1+rcx]
+ movups xmm1,XMMWORD[rax*1+rcx]
add rax,32
DB 102,15,56,220,208
DB 102,15,56,220,216
@@ -288,8 +295,8 @@ DB 102,15,56,220,224
DB 102,15,56,220,232
DB 102,15,56,220,240
DB 102,15,56,220,248
- movups xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
- jnz $L$enc_loop6
+ movups xmm0,XMMWORD[((-16))+rax*1+rcx]
+ jnz NEAR $L$enc_loop6
DB 102,15,56,220,209
DB 102,15,56,220,217
@@ -304,40 +311,37 @@ DB 102,15,56,221,232
DB 102,15,56,221,240
DB 102,15,56,221,248
DB 0F3h,0C3h ;repret
-_aesni_encrypt6 ENDP
+
ALIGN 16
-_aesni_decrypt6 PROC PRIVATE
- movups xmm0,XMMWORD PTR[rcx]
+_aesni_decrypt6:
+ movups xmm0,XMMWORD[rcx]
shl eax,4
- movups xmm1,XMMWORD PTR[16+rcx]
+ movups xmm1,XMMWORD[16+rcx]
xorps xmm2,xmm0
pxor xmm3,xmm0
pxor xmm4,xmm0
DB 102,15,56,222,209
- lea rcx,QWORD PTR[32+rax*1+rcx]
+ lea rcx,[32+rax*1+rcx]
neg rax
DB 102,15,56,222,217
pxor xmm5,xmm0
pxor xmm6,xmm0
DB 102,15,56,222,225
pxor xmm7,xmm0
+ movups xmm0,XMMWORD[rax*1+rcx]
add rax,16
-DB 102,15,56,222,233
-DB 102,15,56,222,241
-DB 102,15,56,222,249
- movups xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
- jmp $L$dec_loop6_enter
+ jmp NEAR $L$dec_loop6_enter
ALIGN 16
-$L$dec_loop6::
+$L$dec_loop6:
DB 102,15,56,222,209
DB 102,15,56,222,217
DB 102,15,56,222,225
+$L$dec_loop6_enter:
DB 102,15,56,222,233
DB 102,15,56,222,241
DB 102,15,56,222,249
-$L$dec_loop6_enter::
- movups xmm1,XMMWORD PTR[rax*1+rcx]
+ movups xmm1,XMMWORD[rax*1+rcx]
add rax,32
DB 102,15,56,222,208
DB 102,15,56,222,216
@@ -345,8 +349,8 @@ DB 102,15,56,222,224
DB 102,15,56,222,232
DB 102,15,56,222,240
DB 102,15,56,222,248
- movups xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
- jnz $L$dec_loop6
+ movups xmm0,XMMWORD[((-16))+rax*1+rcx]
+ jnz NEAR $L$dec_loop6
DB 102,15,56,222,209
DB 102,15,56,222,217
@@ -361,46 +365,41 @@ DB 102,15,56,223,232
DB 102,15,56,223,240
DB 102,15,56,223,248
DB 0F3h,0C3h ;repret
-_aesni_decrypt6 ENDP
+
ALIGN 16
-_aesni_encrypt8 PROC PRIVATE
- movups xmm0,XMMWORD PTR[rcx]
+_aesni_encrypt8:
+ movups xmm0,XMMWORD[rcx]
shl eax,4
- movups xmm1,XMMWORD PTR[16+rcx]
+ movups xmm1,XMMWORD[16+rcx]
xorps xmm2,xmm0
xorps xmm3,xmm0
pxor xmm4,xmm0
pxor xmm5,xmm0
pxor xmm6,xmm0
- lea rcx,QWORD PTR[32+rax*1+rcx]
+ lea rcx,[32+rax*1+rcx]
neg rax
DB 102,15,56,220,209
- add rax,16
pxor xmm7,xmm0
-DB 102,15,56,220,217
pxor xmm8,xmm0
+DB 102,15,56,220,217
pxor xmm9,xmm0
-DB 102,15,56,220,225
-DB 102,15,56,220,233
-DB 102,15,56,220,241
-DB 102,15,56,220,249
-DB 102,68,15,56,220,193
-DB 102,68,15,56,220,201
- movups xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
- jmp $L$enc_loop8_enter
+ movups xmm0,XMMWORD[rax*1+rcx]
+ add rax,16
+ jmp NEAR $L$enc_loop8_inner
ALIGN 16
-$L$enc_loop8::
+$L$enc_loop8:
DB 102,15,56,220,209
DB 102,15,56,220,217
+$L$enc_loop8_inner:
DB 102,15,56,220,225
DB 102,15,56,220,233
DB 102,15,56,220,241
DB 102,15,56,220,249
DB 102,68,15,56,220,193
DB 102,68,15,56,220,201
-$L$enc_loop8_enter::
- movups xmm1,XMMWORD PTR[rax*1+rcx]
+$L$enc_loop8_enter:
+ movups xmm1,XMMWORD[rax*1+rcx]
add rax,32
DB 102,15,56,220,208
DB 102,15,56,220,216
@@ -410,8 +409,8 @@ DB 102,15,56,220,240
DB 102,15,56,220,248
DB 102,68,15,56,220,192
DB 102,68,15,56,220,200
- movups xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
- jnz $L$enc_loop8
+ movups xmm0,XMMWORD[((-16))+rax*1+rcx]
+ jnz NEAR $L$enc_loop8
DB 102,15,56,220,209
DB 102,15,56,220,217
@@ -430,46 +429,41 @@ DB 102,15,56,221,248
DB 102,68,15,56,221,192
DB 102,68,15,56,221,200
DB 0F3h,0C3h ;repret
-_aesni_encrypt8 ENDP
+
ALIGN 16
-_aesni_decrypt8 PROC PRIVATE
- movups xmm0,XMMWORD PTR[rcx]
+_aesni_decrypt8:
+ movups xmm0,XMMWORD[rcx]
shl eax,4
- movups xmm1,XMMWORD PTR[16+rcx]
+ movups xmm1,XMMWORD[16+rcx]
xorps xmm2,xmm0
xorps xmm3,xmm0
pxor xmm4,xmm0
pxor xmm5,xmm0
pxor xmm6,xmm0
- lea rcx,QWORD PTR[32+rax*1+rcx]
+ lea rcx,[32+rax*1+rcx]
neg rax
DB 102,15,56,222,209
- add rax,16
pxor xmm7,xmm0
-DB 102,15,56,222,217
pxor xmm8,xmm0
+DB 102,15,56,222,217
pxor xmm9,xmm0
-DB 102,15,56,222,225
-DB 102,15,56,222,233
-DB 102,15,56,222,241
-DB 102,15,56,222,249
-DB 102,68,15,56,222,193
-DB 102,68,15,56,222,201
- movups xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
- jmp $L$dec_loop8_enter
+ movups xmm0,XMMWORD[rax*1+rcx]
+ add rax,16
+ jmp NEAR $L$dec_loop8_inner
ALIGN 16
-$L$dec_loop8::
+$L$dec_loop8:
DB 102,15,56,222,209
DB 102,15,56,222,217
+$L$dec_loop8_inner:
DB 102,15,56,222,225
DB 102,15,56,222,233
DB 102,15,56,222,241
DB 102,15,56,222,249
DB 102,68,15,56,222,193
DB 102,68,15,56,222,201
-$L$dec_loop8_enter::
- movups xmm1,XMMWORD PTR[rax*1+rcx]
+$L$dec_loop8_enter:
+ movups xmm1,XMMWORD[rax*1+rcx]
add rax,32
DB 102,15,56,222,208
DB 102,15,56,222,216
@@ -479,8 +473,8 @@ DB 102,15,56,222,240
DB 102,15,56,222,248
DB 102,68,15,56,222,192
DB 102,68,15,56,222,200
- movups xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
- jnz $L$dec_loop8
+ movups xmm0,XMMWORD[((-16))+rax*1+rcx]
+ jnz NEAR $L$dec_loop8
DB 102,15,56,222,209
DB 102,15,56,222,217
@@ -499,390 +493,435 @@ DB 102,15,56,223,248
DB 102,68,15,56,223,192
DB 102,68,15,56,223,200
DB 0F3h,0C3h ;repret
-_aesni_decrypt8 ENDP
-PUBLIC aesni_ecb_encrypt
+
+global aesni_ecb_encrypt
ALIGN 16
-aesni_ecb_encrypt PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+aesni_ecb_encrypt:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_aesni_ecb_encrypt::
+$L$SEH_begin_aesni_ecb_encrypt:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
mov rcx,r9
- mov r8,QWORD PTR[40+rsp]
+ mov r8,QWORD[40+rsp]
- lea rsp,QWORD PTR[((-88))+rsp]
- movaps XMMWORD PTR[rsp],xmm6
- movaps XMMWORD PTR[16+rsp],xmm7
- movaps XMMWORD PTR[32+rsp],xmm8
- movaps XMMWORD PTR[48+rsp],xmm9
-$L$ecb_enc_body::
+ lea rsp,[((-88))+rsp]
+ movaps XMMWORD[rsp],xmm6
+ movaps XMMWORD[16+rsp],xmm7
+ movaps XMMWORD[32+rsp],xmm8
+ movaps XMMWORD[48+rsp],xmm9
+$L$ecb_enc_body:
and rdx,-16
- jz $L$ecb_ret
+ jz NEAR $L$ecb_ret
- mov eax,DWORD PTR[240+rcx]
- movups xmm0,XMMWORD PTR[rcx]
+ mov eax,DWORD[240+rcx]
+ movups xmm0,XMMWORD[rcx]
mov r11,rcx
mov r10d,eax
test r8d,r8d
- jz $L$ecb_decrypt
-
- cmp rdx,080h
- jb $L$ecb_enc_tail
-
- movdqu xmm2,XMMWORD PTR[rdi]
- movdqu xmm3,XMMWORD PTR[16+rdi]
- movdqu xmm4,XMMWORD PTR[32+rdi]
- movdqu xmm5,XMMWORD PTR[48+rdi]
- movdqu xmm6,XMMWORD PTR[64+rdi]
- movdqu xmm7,XMMWORD PTR[80+rdi]
- movdqu xmm8,XMMWORD PTR[96+rdi]
- movdqu xmm9,XMMWORD PTR[112+rdi]
- lea rdi,QWORD PTR[128+rdi]
- sub rdx,080h
- jmp $L$ecb_enc_loop8_enter
-ALIGN 16
-$L$ecb_enc_loop8::
- movups XMMWORD PTR[rsi],xmm2
+ jz NEAR $L$ecb_decrypt
+
+ cmp rdx,0x80
+ jb NEAR $L$ecb_enc_tail
+
+ movdqu xmm2,XMMWORD[rdi]
+ movdqu xmm3,XMMWORD[16+rdi]
+ movdqu xmm4,XMMWORD[32+rdi]
+ movdqu xmm5,XMMWORD[48+rdi]
+ movdqu xmm6,XMMWORD[64+rdi]
+ movdqu xmm7,XMMWORD[80+rdi]
+ movdqu xmm8,XMMWORD[96+rdi]
+ movdqu xmm9,XMMWORD[112+rdi]
+ lea rdi,[128+rdi]
+ sub rdx,0x80
+ jmp NEAR $L$ecb_enc_loop8_enter
+ALIGN 16
+$L$ecb_enc_loop8:
+ movups XMMWORD[rsi],xmm2
mov rcx,r11
- movdqu xmm2,XMMWORD PTR[rdi]
+ movdqu xmm2,XMMWORD[rdi]
mov eax,r10d
- movups XMMWORD PTR[16+rsi],xmm3
- movdqu xmm3,XMMWORD PTR[16+rdi]
- movups XMMWORD PTR[32+rsi],xmm4
- movdqu xmm4,XMMWORD PTR[32+rdi]
- movups XMMWORD PTR[48+rsi],xmm5
- movdqu xmm5,XMMWORD PTR[48+rdi]
- movups XMMWORD PTR[64+rsi],xmm6
- movdqu xmm6,XMMWORD PTR[64+rdi]
- movups XMMWORD PTR[80+rsi],xmm7
- movdqu xmm7,XMMWORD PTR[80+rdi]
- movups XMMWORD PTR[96+rsi],xmm8
- movdqu xmm8,XMMWORD PTR[96+rdi]
- movups XMMWORD PTR[112+rsi],xmm9
- lea rsi,QWORD PTR[128+rsi]
- movdqu xmm9,XMMWORD PTR[112+rdi]
- lea rdi,QWORD PTR[128+rdi]
-$L$ecb_enc_loop8_enter::
+ movups XMMWORD[16+rsi],xmm3
+ movdqu xmm3,XMMWORD[16+rdi]
+ movups XMMWORD[32+rsi],xmm4
+ movdqu xmm4,XMMWORD[32+rdi]
+ movups XMMWORD[48+rsi],xmm5
+ movdqu xmm5,XMMWORD[48+rdi]
+ movups XMMWORD[64+rsi],xmm6
+ movdqu xmm6,XMMWORD[64+rdi]
+ movups XMMWORD[80+rsi],xmm7
+ movdqu xmm7,XMMWORD[80+rdi]
+ movups XMMWORD[96+rsi],xmm8
+ movdqu xmm8,XMMWORD[96+rdi]
+ movups XMMWORD[112+rsi],xmm9
+ lea rsi,[128+rsi]
+ movdqu xmm9,XMMWORD[112+rdi]
+ lea rdi,[128+rdi]
+$L$ecb_enc_loop8_enter:
call _aesni_encrypt8
- sub rdx,080h
- jnc $L$ecb_enc_loop8
+ sub rdx,0x80
+ jnc NEAR $L$ecb_enc_loop8
- movups XMMWORD PTR[rsi],xmm2
+ movups XMMWORD[rsi],xmm2
mov rcx,r11
- movups XMMWORD PTR[16+rsi],xmm3
+ movups XMMWORD[16+rsi],xmm3
mov eax,r10d
- movups XMMWORD PTR[32+rsi],xmm4
- movups XMMWORD PTR[48+rsi],xmm5
- movups XMMWORD PTR[64+rsi],xmm6
- movups XMMWORD PTR[80+rsi],xmm7
- movups XMMWORD PTR[96+rsi],xmm8
- movups XMMWORD PTR[112+rsi],xmm9
- lea rsi,QWORD PTR[128+rsi]
- add rdx,080h
- jz $L$ecb_ret
-
-$L$ecb_enc_tail::
- movups xmm2,XMMWORD PTR[rdi]
- cmp rdx,020h
- jb $L$ecb_enc_one
- movups xmm3,XMMWORD PTR[16+rdi]
- je $L$ecb_enc_two
- movups xmm4,XMMWORD PTR[32+rdi]
- cmp rdx,040h
- jb $L$ecb_enc_three
- movups xmm5,XMMWORD PTR[48+rdi]
- je $L$ecb_enc_four
- movups xmm6,XMMWORD PTR[64+rdi]
- cmp rdx,060h
- jb $L$ecb_enc_five
- movups xmm7,XMMWORD PTR[80+rdi]
- je $L$ecb_enc_six
- movdqu xmm8,XMMWORD PTR[96+rdi]
+ movups XMMWORD[32+rsi],xmm4
+ movups XMMWORD[48+rsi],xmm5
+ movups XMMWORD[64+rsi],xmm6
+ movups XMMWORD[80+rsi],xmm7
+ movups XMMWORD[96+rsi],xmm8
+ movups XMMWORD[112+rsi],xmm9
+ lea rsi,[128+rsi]
+ add rdx,0x80
+ jz NEAR $L$ecb_ret
+
+$L$ecb_enc_tail:
+ movups xmm2,XMMWORD[rdi]
+ cmp rdx,0x20
+ jb NEAR $L$ecb_enc_one
+ movups xmm3,XMMWORD[16+rdi]
+ je NEAR $L$ecb_enc_two
+ movups xmm4,XMMWORD[32+rdi]
+ cmp rdx,0x40
+ jb NEAR $L$ecb_enc_three
+ movups xmm5,XMMWORD[48+rdi]
+ je NEAR $L$ecb_enc_four
+ movups xmm6,XMMWORD[64+rdi]
+ cmp rdx,0x60
+ jb NEAR $L$ecb_enc_five
+ movups xmm7,XMMWORD[80+rdi]
+ je NEAR $L$ecb_enc_six
+ movdqu xmm8,XMMWORD[96+rdi]
+ xorps xmm9,xmm9
call _aesni_encrypt8
- movups XMMWORD PTR[rsi],xmm2
- movups XMMWORD PTR[16+rsi],xmm3
- movups XMMWORD PTR[32+rsi],xmm4
- movups XMMWORD PTR[48+rsi],xmm5
- movups XMMWORD PTR[64+rsi],xmm6
- movups XMMWORD PTR[80+rsi],xmm7
- movups XMMWORD PTR[96+rsi],xmm8
- jmp $L$ecb_ret
-ALIGN 16
-$L$ecb_enc_one::
- movups xmm0,XMMWORD PTR[rcx]
- movups xmm1,XMMWORD PTR[16+rcx]
- lea rcx,QWORD PTR[32+rcx]
+ movups XMMWORD[rsi],xmm2
+ movups XMMWORD[16+rsi],xmm3
+ movups XMMWORD[32+rsi],xmm4
+ movups XMMWORD[48+rsi],xmm5
+ movups XMMWORD[64+rsi],xmm6
+ movups XMMWORD[80+rsi],xmm7
+ movups XMMWORD[96+rsi],xmm8
+ jmp NEAR $L$ecb_ret
+ALIGN 16
+$L$ecb_enc_one:
+ movups xmm0,XMMWORD[rcx]
+ movups xmm1,XMMWORD[16+rcx]
+ lea rcx,[32+rcx]
xorps xmm2,xmm0
-$L$oop_enc1_3::
+$L$oop_enc1_3:
DB 102,15,56,220,209
dec eax
- movups xmm1,XMMWORD PTR[rcx]
- lea rcx,QWORD PTR[16+rcx]
- jnz $L$oop_enc1_3
+ movups xmm1,XMMWORD[rcx]
+ lea rcx,[16+rcx]
+ jnz NEAR $L$oop_enc1_3
DB 102,15,56,221,209
- movups XMMWORD PTR[rsi],xmm2
- jmp $L$ecb_ret
+ movups XMMWORD[rsi],xmm2
+ jmp NEAR $L$ecb_ret
ALIGN 16
-$L$ecb_enc_two::
+$L$ecb_enc_two:
call _aesni_encrypt2
- movups XMMWORD PTR[rsi],xmm2
- movups XMMWORD PTR[16+rsi],xmm3
- jmp $L$ecb_ret
+ movups XMMWORD[rsi],xmm2
+ movups XMMWORD[16+rsi],xmm3
+ jmp NEAR $L$ecb_ret
ALIGN 16
-$L$ecb_enc_three::
+$L$ecb_enc_three:
call _aesni_encrypt3
- movups XMMWORD PTR[rsi],xmm2
- movups XMMWORD PTR[16+rsi],xmm3
- movups XMMWORD PTR[32+rsi],xmm4
- jmp $L$ecb_ret
+ movups XMMWORD[rsi],xmm2
+ movups XMMWORD[16+rsi],xmm3
+ movups XMMWORD[32+rsi],xmm4
+ jmp NEAR $L$ecb_ret
ALIGN 16
-$L$ecb_enc_four::
+$L$ecb_enc_four:
call _aesni_encrypt4
- movups XMMWORD PTR[rsi],xmm2
- movups XMMWORD PTR[16+rsi],xmm3
- movups XMMWORD PTR[32+rsi],xmm4
- movups XMMWORD PTR[48+rsi],xmm5
- jmp $L$ecb_ret
+ movups XMMWORD[rsi],xmm2
+ movups XMMWORD[16+rsi],xmm3
+ movups XMMWORD[32+rsi],xmm4
+ movups XMMWORD[48+rsi],xmm5
+ jmp NEAR $L$ecb_ret
ALIGN 16
-$L$ecb_enc_five::
+$L$ecb_enc_five:
xorps xmm7,xmm7
call _aesni_encrypt6
- movups XMMWORD PTR[rsi],xmm2
- movups XMMWORD PTR[16+rsi],xmm3
- movups XMMWORD PTR[32+rsi],xmm4
- movups XMMWORD PTR[48+rsi],xmm5
- movups XMMWORD PTR[64+rsi],xmm6
- jmp $L$ecb_ret
-ALIGN 16
-$L$ecb_enc_six::
+ movups XMMWORD[rsi],xmm2
+ movups XMMWORD[16+rsi],xmm3
+ movups XMMWORD[32+rsi],xmm4
+ movups XMMWORD[48+rsi],xmm5
+ movups XMMWORD[64+rsi],xmm6
+ jmp NEAR $L$ecb_ret
+ALIGN 16
+$L$ecb_enc_six:
call _aesni_encrypt6
- movups XMMWORD PTR[rsi],xmm2
- movups XMMWORD PTR[16+rsi],xmm3
- movups XMMWORD PTR[32+rsi],xmm4
- movups XMMWORD PTR[48+rsi],xmm5
- movups XMMWORD PTR[64+rsi],xmm6
- movups XMMWORD PTR[80+rsi],xmm7
- jmp $L$ecb_ret
-
-ALIGN 16
-$L$ecb_decrypt::
- cmp rdx,080h
- jb $L$ecb_dec_tail
-
- movdqu xmm2,XMMWORD PTR[rdi]
- movdqu xmm3,XMMWORD PTR[16+rdi]
- movdqu xmm4,XMMWORD PTR[32+rdi]
- movdqu xmm5,XMMWORD PTR[48+rdi]
- movdqu xmm6,XMMWORD PTR[64+rdi]
- movdqu xmm7,XMMWORD PTR[80+rdi]
- movdqu xmm8,XMMWORD PTR[96+rdi]
- movdqu xmm9,XMMWORD PTR[112+rdi]
- lea rdi,QWORD PTR[128+rdi]
- sub rdx,080h
- jmp $L$ecb_dec_loop8_enter
-ALIGN 16
-$L$ecb_dec_loop8::
- movups XMMWORD PTR[rsi],xmm2
+ movups XMMWORD[rsi],xmm2
+ movups XMMWORD[16+rsi],xmm3
+ movups XMMWORD[32+rsi],xmm4
+ movups XMMWORD[48+rsi],xmm5
+ movups XMMWORD[64+rsi],xmm6
+ movups XMMWORD[80+rsi],xmm7
+ jmp NEAR $L$ecb_ret
+
+ALIGN 16
+$L$ecb_decrypt:
+ cmp rdx,0x80
+ jb NEAR $L$ecb_dec_tail
+
+ movdqu xmm2,XMMWORD[rdi]
+ movdqu xmm3,XMMWORD[16+rdi]
+ movdqu xmm4,XMMWORD[32+rdi]
+ movdqu xmm5,XMMWORD[48+rdi]
+ movdqu xmm6,XMMWORD[64+rdi]
+ movdqu xmm7,XMMWORD[80+rdi]
+ movdqu xmm8,XMMWORD[96+rdi]
+ movdqu xmm9,XMMWORD[112+rdi]
+ lea rdi,[128+rdi]
+ sub rdx,0x80
+ jmp NEAR $L$ecb_dec_loop8_enter
+ALIGN 16
+$L$ecb_dec_loop8:
+ movups XMMWORD[rsi],xmm2
mov rcx,r11
- movdqu xmm2,XMMWORD PTR[rdi]
+ movdqu xmm2,XMMWORD[rdi]
mov eax,r10d
- movups XMMWORD PTR[16+rsi],xmm3
- movdqu xmm3,XMMWORD PTR[16+rdi]
- movups XMMWORD PTR[32+rsi],xmm4
- movdqu xmm4,XMMWORD PTR[32+rdi]
- movups XMMWORD PTR[48+rsi],xmm5
- movdqu xmm5,XMMWORD PTR[48+rdi]
- movups XMMWORD PTR[64+rsi],xmm6
- movdqu xmm6,XMMWORD PTR[64+rdi]
- movups XMMWORD PTR[80+rsi],xmm7
- movdqu xmm7,XMMWORD PTR[80+rdi]
- movups XMMWORD PTR[96+rsi],xmm8
- movdqu xmm8,XMMWORD PTR[96+rdi]
- movups XMMWORD PTR[112+rsi],xmm9
- lea rsi,QWORD PTR[128+rsi]
- movdqu xmm9,XMMWORD PTR[112+rdi]
- lea rdi,QWORD PTR[128+rdi]
-$L$ecb_dec_loop8_enter::
+ movups XMMWORD[16+rsi],xmm3
+ movdqu xmm3,XMMWORD[16+rdi]
+ movups XMMWORD[32+rsi],xmm4
+ movdqu xmm4,XMMWORD[32+rdi]
+ movups XMMWORD[48+rsi],xmm5
+ movdqu xmm5,XMMWORD[48+rdi]
+ movups XMMWORD[64+rsi],xmm6
+ movdqu xmm6,XMMWORD[64+rdi]
+ movups XMMWORD[80+rsi],xmm7
+ movdqu xmm7,XMMWORD[80+rdi]
+ movups XMMWORD[96+rsi],xmm8
+ movdqu xmm8,XMMWORD[96+rdi]
+ movups XMMWORD[112+rsi],xmm9
+ lea rsi,[128+rsi]
+ movdqu xmm9,XMMWORD[112+rdi]
+ lea rdi,[128+rdi]
+$L$ecb_dec_loop8_enter:
call _aesni_decrypt8
- movups xmm0,XMMWORD PTR[r11]
- sub rdx,080h
- jnc $L$ecb_dec_loop8
+ movups xmm0,XMMWORD[r11]
+ sub rdx,0x80
+ jnc NEAR $L$ecb_dec_loop8
- movups XMMWORD PTR[rsi],xmm2
+ movups XMMWORD[rsi],xmm2
+ pxor xmm2,xmm2
mov rcx,r11
- movups XMMWORD PTR[16+rsi],xmm3
+ movups XMMWORD[16+rsi],xmm3
+ pxor xmm3,xmm3
mov eax,r10d
- movups XMMWORD PTR[32+rsi],xmm4
- movups XMMWORD PTR[48+rsi],xmm5
- movups XMMWORD PTR[64+rsi],xmm6
- movups XMMWORD PTR[80+rsi],xmm7
- movups XMMWORD PTR[96+rsi],xmm8
- movups XMMWORD PTR[112+rsi],xmm9
- lea rsi,QWORD PTR[128+rsi]
- add rdx,080h
- jz $L$ecb_ret
-
-$L$ecb_dec_tail::
- movups xmm2,XMMWORD PTR[rdi]
- cmp rdx,020h
- jb $L$ecb_dec_one
- movups xmm3,XMMWORD PTR[16+rdi]
- je $L$ecb_dec_two
- movups xmm4,XMMWORD PTR[32+rdi]
- cmp rdx,040h
- jb $L$ecb_dec_three
- movups xmm5,XMMWORD PTR[48+rdi]
- je $L$ecb_dec_four
- movups xmm6,XMMWORD PTR[64+rdi]
- cmp rdx,060h
- jb $L$ecb_dec_five
- movups xmm7,XMMWORD PTR[80+rdi]
- je $L$ecb_dec_six
- movups xmm8,XMMWORD PTR[96+rdi]
- movups xmm0,XMMWORD PTR[rcx]
+ movups XMMWORD[32+rsi],xmm4
+ pxor xmm4,xmm4
+ movups XMMWORD[48+rsi],xmm5
+ pxor xmm5,xmm5
+ movups XMMWORD[64+rsi],xmm6
+ pxor xmm6,xmm6
+ movups XMMWORD[80+rsi],xmm7
+ pxor xmm7,xmm7
+ movups XMMWORD[96+rsi],xmm8
+ pxor xmm8,xmm8
+ movups XMMWORD[112+rsi],xmm9
+ pxor xmm9,xmm9
+ lea rsi,[128+rsi]
+ add rdx,0x80
+ jz NEAR $L$ecb_ret
+
+$L$ecb_dec_tail:
+ movups xmm2,XMMWORD[rdi]
+ cmp rdx,0x20
+ jb NEAR $L$ecb_dec_one
+ movups xmm3,XMMWORD[16+rdi]
+ je NEAR $L$ecb_dec_two
+ movups xmm4,XMMWORD[32+rdi]
+ cmp rdx,0x40
+ jb NEAR $L$ecb_dec_three
+ movups xmm5,XMMWORD[48+rdi]
+ je NEAR $L$ecb_dec_four
+ movups xmm6,XMMWORD[64+rdi]
+ cmp rdx,0x60
+ jb NEAR $L$ecb_dec_five
+ movups xmm7,XMMWORD[80+rdi]
+ je NEAR $L$ecb_dec_six
+ movups xmm8,XMMWORD[96+rdi]
+ movups xmm0,XMMWORD[rcx]
+ xorps xmm9,xmm9
call _aesni_decrypt8
- movups XMMWORD PTR[rsi],xmm2
- movups XMMWORD PTR[16+rsi],xmm3
- movups XMMWORD PTR[32+rsi],xmm4
- movups XMMWORD PTR[48+rsi],xmm5
- movups XMMWORD PTR[64+rsi],xmm6
- movups XMMWORD PTR[80+rsi],xmm7
- movups XMMWORD PTR[96+rsi],xmm8
- jmp $L$ecb_ret
-ALIGN 16
-$L$ecb_dec_one::
- movups xmm0,XMMWORD PTR[rcx]
- movups xmm1,XMMWORD PTR[16+rcx]
- lea rcx,QWORD PTR[32+rcx]
+ movups XMMWORD[rsi],xmm2
+ pxor xmm2,xmm2
+ movups XMMWORD[16+rsi],xmm3
+ pxor xmm3,xmm3
+ movups XMMWORD[32+rsi],xmm4
+ pxor xmm4,xmm4
+ movups XMMWORD[48+rsi],xmm5
+ pxor xmm5,xmm5
+ movups XMMWORD[64+rsi],xmm6
+ pxor xmm6,xmm6
+ movups XMMWORD[80+rsi],xmm7
+ pxor xmm7,xmm7
+ movups XMMWORD[96+rsi],xmm8
+ pxor xmm8,xmm8
+ pxor xmm9,xmm9
+ jmp NEAR $L$ecb_ret
+ALIGN 16
+$L$ecb_dec_one:
+ movups xmm0,XMMWORD[rcx]
+ movups xmm1,XMMWORD[16+rcx]
+ lea rcx,[32+rcx]
xorps xmm2,xmm0
-$L$oop_dec1_4::
+$L$oop_dec1_4:
DB 102,15,56,222,209
dec eax
- movups xmm1,XMMWORD PTR[rcx]
- lea rcx,QWORD PTR[16+rcx]
- jnz $L$oop_dec1_4
+ movups xmm1,XMMWORD[rcx]
+ lea rcx,[16+rcx]
+ jnz NEAR $L$oop_dec1_4
DB 102,15,56,223,209
- movups XMMWORD PTR[rsi],xmm2
- jmp $L$ecb_ret
+ movups XMMWORD[rsi],xmm2
+ pxor xmm2,xmm2
+ jmp NEAR $L$ecb_ret
ALIGN 16
-$L$ecb_dec_two::
+$L$ecb_dec_two:
call _aesni_decrypt2
- movups XMMWORD PTR[rsi],xmm2
- movups XMMWORD PTR[16+rsi],xmm3
- jmp $L$ecb_ret
+ movups XMMWORD[rsi],xmm2
+ pxor xmm2,xmm2
+ movups XMMWORD[16+rsi],xmm3
+ pxor xmm3,xmm3
+ jmp NEAR $L$ecb_ret
ALIGN 16
-$L$ecb_dec_three::
+$L$ecb_dec_three:
call _aesni_decrypt3
- movups XMMWORD PTR[rsi],xmm2
- movups XMMWORD PTR[16+rsi],xmm3
- movups XMMWORD PTR[32+rsi],xmm4
- jmp $L$ecb_ret
-ALIGN 16
-$L$ecb_dec_four::
+ movups XMMWORD[rsi],xmm2
+ pxor xmm2,xmm2
+ movups XMMWORD[16+rsi],xmm3
+ pxor xmm3,xmm3
+ movups XMMWORD[32+rsi],xmm4
+ pxor xmm4,xmm4
+ jmp NEAR $L$ecb_ret
+ALIGN 16
+$L$ecb_dec_four:
call _aesni_decrypt4
- movups XMMWORD PTR[rsi],xmm2
- movups XMMWORD PTR[16+rsi],xmm3
- movups XMMWORD PTR[32+rsi],xmm4
- movups XMMWORD PTR[48+rsi],xmm5
- jmp $L$ecb_ret
-ALIGN 16
-$L$ecb_dec_five::
+ movups XMMWORD[rsi],xmm2
+ pxor xmm2,xmm2
+ movups XMMWORD[16+rsi],xmm3
+ pxor xmm3,xmm3
+ movups XMMWORD[32+rsi],xmm4
+ pxor xmm4,xmm4
+ movups XMMWORD[48+rsi],xmm5
+ pxor xmm5,xmm5
+ jmp NEAR $L$ecb_ret
+ALIGN 16
+$L$ecb_dec_five:
xorps xmm7,xmm7
call _aesni_decrypt6
- movups XMMWORD PTR[rsi],xmm2
- movups XMMWORD PTR[16+rsi],xmm3
- movups XMMWORD PTR[32+rsi],xmm4
- movups XMMWORD PTR[48+rsi],xmm5
- movups XMMWORD PTR[64+rsi],xmm6
- jmp $L$ecb_ret
-ALIGN 16
-$L$ecb_dec_six::
+ movups XMMWORD[rsi],xmm2
+ pxor xmm2,xmm2
+ movups XMMWORD[16+rsi],xmm3
+ pxor xmm3,xmm3
+ movups XMMWORD[32+rsi],xmm4
+ pxor xmm4,xmm4
+ movups XMMWORD[48+rsi],xmm5
+ pxor xmm5,xmm5
+ movups XMMWORD[64+rsi],xmm6
+ pxor xmm6,xmm6
+ pxor xmm7,xmm7
+ jmp NEAR $L$ecb_ret
+ALIGN 16
+$L$ecb_dec_six:
call _aesni_decrypt6
- movups XMMWORD PTR[rsi],xmm2
- movups XMMWORD PTR[16+rsi],xmm3
- movups XMMWORD PTR[32+rsi],xmm4
- movups XMMWORD PTR[48+rsi],xmm5
- movups XMMWORD PTR[64+rsi],xmm6
- movups XMMWORD PTR[80+rsi],xmm7
-
-$L$ecb_ret::
- movaps xmm6,XMMWORD PTR[rsp]
- movaps xmm7,XMMWORD PTR[16+rsp]
- movaps xmm8,XMMWORD PTR[32+rsp]
- movaps xmm9,XMMWORD PTR[48+rsp]
- lea rsp,QWORD PTR[88+rsp]
-$L$ecb_enc_ret::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ movups XMMWORD[rsi],xmm2
+ pxor xmm2,xmm2
+ movups XMMWORD[16+rsi],xmm3
+ pxor xmm3,xmm3
+ movups XMMWORD[32+rsi],xmm4
+ pxor xmm4,xmm4
+ movups XMMWORD[48+rsi],xmm5
+ pxor xmm5,xmm5
+ movups XMMWORD[64+rsi],xmm6
+ pxor xmm6,xmm6
+ movups XMMWORD[80+rsi],xmm7
+ pxor xmm7,xmm7
+
+$L$ecb_ret:
+ xorps xmm0,xmm0
+ pxor xmm1,xmm1
+ movaps xmm6,XMMWORD[rsp]
+ movaps XMMWORD[rsp],xmm0
+ movaps xmm7,XMMWORD[16+rsp]
+ movaps XMMWORD[16+rsp],xmm0
+ movaps xmm8,XMMWORD[32+rsp]
+ movaps XMMWORD[32+rsp],xmm0
+ movaps xmm9,XMMWORD[48+rsp]
+ movaps XMMWORD[48+rsp],xmm0
+ lea rsp,[88+rsp]
+$L$ecb_enc_ret:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_aesni_ecb_encrypt::
-aesni_ecb_encrypt ENDP
-PUBLIC aesni_ccm64_encrypt_blocks
+$L$SEH_end_aesni_ecb_encrypt:
+global aesni_ccm64_encrypt_blocks
ALIGN 16
-aesni_ccm64_encrypt_blocks PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+aesni_ccm64_encrypt_blocks:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_aesni_ccm64_encrypt_blocks::
+$L$SEH_begin_aesni_ccm64_encrypt_blocks:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
mov rcx,r9
- mov r8,QWORD PTR[40+rsp]
- mov r9,QWORD PTR[48+rsp]
+ mov r8,QWORD[40+rsp]
+ mov r9,QWORD[48+rsp]
- lea rsp,QWORD PTR[((-88))+rsp]
- movaps XMMWORD PTR[rsp],xmm6
- movaps XMMWORD PTR[16+rsp],xmm7
- movaps XMMWORD PTR[32+rsp],xmm8
- movaps XMMWORD PTR[48+rsp],xmm9
-$L$ccm64_enc_body::
- mov eax,DWORD PTR[240+rcx]
- movdqu xmm6,XMMWORD PTR[r8]
- movdqa xmm9,XMMWORD PTR[$L$increment64]
- movdqa xmm7,XMMWORD PTR[$L$bswap_mask]
+ lea rsp,[((-88))+rsp]
+ movaps XMMWORD[rsp],xmm6
+ movaps XMMWORD[16+rsp],xmm7
+ movaps XMMWORD[32+rsp],xmm8
+ movaps XMMWORD[48+rsp],xmm9
+$L$ccm64_enc_body:
+ mov eax,DWORD[240+rcx]
+ movdqu xmm6,XMMWORD[r8]
+ movdqa xmm9,XMMWORD[$L$increment64]
+ movdqa xmm7,XMMWORD[$L$bswap_mask]
shl eax,4
mov r10d,16
- lea r11,QWORD PTR[rcx]
- movdqu xmm3,XMMWORD PTR[r9]
+ lea r11,[rcx]
+ movdqu xmm3,XMMWORD[r9]
movdqa xmm2,xmm6
- lea rcx,QWORD PTR[32+rax*1+rcx]
+ lea rcx,[32+rax*1+rcx]
DB 102,15,56,0,247
sub r10,rax
- jmp $L$ccm64_enc_outer
+ jmp NEAR $L$ccm64_enc_outer
ALIGN 16
-$L$ccm64_enc_outer::
- movups xmm0,XMMWORD PTR[r11]
+$L$ccm64_enc_outer:
+ movups xmm0,XMMWORD[r11]
mov rax,r10
- movups xmm8,XMMWORD PTR[rdi]
+ movups xmm8,XMMWORD[rdi]
xorps xmm2,xmm0
- movups xmm1,XMMWORD PTR[16+r11]
+ movups xmm1,XMMWORD[16+r11]
xorps xmm0,xmm8
xorps xmm3,xmm0
- movups xmm0,XMMWORD PTR[32+r11]
+ movups xmm0,XMMWORD[32+r11]
-$L$ccm64_enc2_loop::
+$L$ccm64_enc2_loop:
DB 102,15,56,220,209
DB 102,15,56,220,217
- movups xmm1,XMMWORD PTR[rax*1+rcx]
+ movups xmm1,XMMWORD[rax*1+rcx]
add rax,32
DB 102,15,56,220,208
DB 102,15,56,220,216
- movups xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
- jnz $L$ccm64_enc2_loop
+ movups xmm0,XMMWORD[((-16))+rax*1+rcx]
+ jnz NEAR $L$ccm64_enc2_loop
DB 102,15,56,220,209
DB 102,15,56,220,217
paddq xmm6,xmm9
@@ -890,458 +929,505 @@ DB 102,15,56,220,217
DB 102,15,56,221,208
DB 102,15,56,221,216
- lea rdi,QWORD PTR[16+rdi]
+ lea rdi,[16+rdi]
xorps xmm8,xmm2
movdqa xmm2,xmm6
- movups XMMWORD PTR[rsi],xmm8
+ movups XMMWORD[rsi],xmm8
DB 102,15,56,0,215
- lea rsi,QWORD PTR[16+rsi]
- jnz $L$ccm64_enc_outer
-
- movups XMMWORD PTR[r9],xmm3
- movaps xmm6,XMMWORD PTR[rsp]
- movaps xmm7,XMMWORD PTR[16+rsp]
- movaps xmm8,XMMWORD PTR[32+rsp]
- movaps xmm9,XMMWORD PTR[48+rsp]
- lea rsp,QWORD PTR[88+rsp]
-$L$ccm64_enc_ret::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ lea rsi,[16+rsi]
+ jnz NEAR $L$ccm64_enc_outer
+
+ pxor xmm0,xmm0
+ pxor xmm1,xmm1
+ pxor xmm2,xmm2
+ movups XMMWORD[r9],xmm3
+ pxor xmm3,xmm3
+ pxor xmm8,xmm8
+ pxor xmm6,xmm6
+ movaps xmm6,XMMWORD[rsp]
+ movaps XMMWORD[rsp],xmm0
+ movaps xmm7,XMMWORD[16+rsp]
+ movaps XMMWORD[16+rsp],xmm0
+ movaps xmm8,XMMWORD[32+rsp]
+ movaps XMMWORD[32+rsp],xmm0
+ movaps xmm9,XMMWORD[48+rsp]
+ movaps XMMWORD[48+rsp],xmm0
+ lea rsp,[88+rsp]
+$L$ccm64_enc_ret:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_aesni_ccm64_encrypt_blocks::
-aesni_ccm64_encrypt_blocks ENDP
-PUBLIC aesni_ccm64_decrypt_blocks
+$L$SEH_end_aesni_ccm64_encrypt_blocks:
+global aesni_ccm64_decrypt_blocks
ALIGN 16
-aesni_ccm64_decrypt_blocks PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+aesni_ccm64_decrypt_blocks:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_aesni_ccm64_decrypt_blocks::
+$L$SEH_begin_aesni_ccm64_decrypt_blocks:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
mov rcx,r9
- mov r8,QWORD PTR[40+rsp]
- mov r9,QWORD PTR[48+rsp]
-
-
- lea rsp,QWORD PTR[((-88))+rsp]
- movaps XMMWORD PTR[rsp],xmm6
- movaps XMMWORD PTR[16+rsp],xmm7
- movaps XMMWORD PTR[32+rsp],xmm8
- movaps XMMWORD PTR[48+rsp],xmm9
-$L$ccm64_dec_body::
- mov eax,DWORD PTR[240+rcx]
- movups xmm6,XMMWORD PTR[r8]
- movdqu xmm3,XMMWORD PTR[r9]
- movdqa xmm9,XMMWORD PTR[$L$increment64]
- movdqa xmm7,XMMWORD PTR[$L$bswap_mask]
+ mov r8,QWORD[40+rsp]
+ mov r9,QWORD[48+rsp]
+
+
+ lea rsp,[((-88))+rsp]
+ movaps XMMWORD[rsp],xmm6
+ movaps XMMWORD[16+rsp],xmm7
+ movaps XMMWORD[32+rsp],xmm8
+ movaps XMMWORD[48+rsp],xmm9
+$L$ccm64_dec_body:
+ mov eax,DWORD[240+rcx]
+ movups xmm6,XMMWORD[r8]
+ movdqu xmm3,XMMWORD[r9]
+ movdqa xmm9,XMMWORD[$L$increment64]
+ movdqa xmm7,XMMWORD[$L$bswap_mask]
movaps xmm2,xmm6
mov r10d,eax
mov r11,rcx
DB 102,15,56,0,247
- movups xmm0,XMMWORD PTR[rcx]
- movups xmm1,XMMWORD PTR[16+rcx]
- lea rcx,QWORD PTR[32+rcx]
+ movups xmm0,XMMWORD[rcx]
+ movups xmm1,XMMWORD[16+rcx]
+ lea rcx,[32+rcx]
xorps xmm2,xmm0
-$L$oop_enc1_5::
+$L$oop_enc1_5:
DB 102,15,56,220,209
dec eax
- movups xmm1,XMMWORD PTR[rcx]
- lea rcx,QWORD PTR[16+rcx]
- jnz $L$oop_enc1_5
+ movups xmm1,XMMWORD[rcx]
+ lea rcx,[16+rcx]
+ jnz NEAR $L$oop_enc1_5
DB 102,15,56,221,209
shl r10d,4
mov eax,16
- movups xmm8,XMMWORD PTR[rdi]
+ movups xmm8,XMMWORD[rdi]
paddq xmm6,xmm9
- lea rdi,QWORD PTR[16+rdi]
+ lea rdi,[16+rdi]
sub rax,r10
- lea rcx,QWORD PTR[32+r10*1+r11]
+ lea rcx,[32+r10*1+r11]
mov r10,rax
- jmp $L$ccm64_dec_outer
+ jmp NEAR $L$ccm64_dec_outer
ALIGN 16
-$L$ccm64_dec_outer::
+$L$ccm64_dec_outer:
xorps xmm8,xmm2
movdqa xmm2,xmm6
- movups XMMWORD PTR[rsi],xmm8
- lea rsi,QWORD PTR[16+rsi]
+ movups XMMWORD[rsi],xmm8
+ lea rsi,[16+rsi]
DB 102,15,56,0,215
sub rdx,1
- jz $L$ccm64_dec_break
+ jz NEAR $L$ccm64_dec_break
- movups xmm0,XMMWORD PTR[r11]
+ movups xmm0,XMMWORD[r11]
mov rax,r10
- movups xmm1,XMMWORD PTR[16+r11]
+ movups xmm1,XMMWORD[16+r11]
xorps xmm8,xmm0
xorps xmm2,xmm0
xorps xmm3,xmm8
- movups xmm0,XMMWORD PTR[32+r11]
- jmp $L$ccm64_dec2_loop
+ movups xmm0,XMMWORD[32+r11]
+ jmp NEAR $L$ccm64_dec2_loop
ALIGN 16
-$L$ccm64_dec2_loop::
+$L$ccm64_dec2_loop:
DB 102,15,56,220,209
DB 102,15,56,220,217
- movups xmm1,XMMWORD PTR[rax*1+rcx]
+ movups xmm1,XMMWORD[rax*1+rcx]
add rax,32
DB 102,15,56,220,208
DB 102,15,56,220,216
- movups xmm0,XMMWORD PTR[((-16))+rax*1+rcx]
- jnz $L$ccm64_dec2_loop
- movups xmm8,XMMWORD PTR[rdi]
+ movups xmm0,XMMWORD[((-16))+rax*1+rcx]
+ jnz NEAR $L$ccm64_dec2_loop
+ movups xmm8,XMMWORD[rdi]
paddq xmm6,xmm9
DB 102,15,56,220,209
DB 102,15,56,220,217
DB 102,15,56,221,208
DB 102,15,56,221,216
- lea rdi,QWORD PTR[16+rdi]
- jmp $L$ccm64_dec_outer
+ lea rdi,[16+rdi]
+ jmp NEAR $L$ccm64_dec_outer
ALIGN 16
-$L$ccm64_dec_break::
+$L$ccm64_dec_break:
- mov eax,DWORD PTR[240+r11]
- movups xmm0,XMMWORD PTR[r11]
- movups xmm1,XMMWORD PTR[16+r11]
+ mov eax,DWORD[240+r11]
+ movups xmm0,XMMWORD[r11]
+ movups xmm1,XMMWORD[16+r11]
xorps xmm8,xmm0
- lea r11,QWORD PTR[32+r11]
+ lea r11,[32+r11]
xorps xmm3,xmm8
-$L$oop_enc1_6::
+$L$oop_enc1_6:
DB 102,15,56,220,217
dec eax
- movups xmm1,XMMWORD PTR[r11]
- lea r11,QWORD PTR[16+r11]
- jnz $L$oop_enc1_6
+ movups xmm1,XMMWORD[r11]
+ lea r11,[16+r11]
+ jnz NEAR $L$oop_enc1_6
DB 102,15,56,221,217
- movups XMMWORD PTR[r9],xmm3
- movaps xmm6,XMMWORD PTR[rsp]
- movaps xmm7,XMMWORD PTR[16+rsp]
- movaps xmm8,XMMWORD PTR[32+rsp]
- movaps xmm9,XMMWORD PTR[48+rsp]
- lea rsp,QWORD PTR[88+rsp]
-$L$ccm64_dec_ret::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ pxor xmm0,xmm0
+ pxor xmm1,xmm1
+ pxor xmm2,xmm2
+ movups XMMWORD[r9],xmm3
+ pxor xmm3,xmm3
+ pxor xmm8,xmm8
+ pxor xmm6,xmm6
+ movaps xmm6,XMMWORD[rsp]
+ movaps XMMWORD[rsp],xmm0
+ movaps xmm7,XMMWORD[16+rsp]
+ movaps XMMWORD[16+rsp],xmm0
+ movaps xmm8,XMMWORD[32+rsp]
+ movaps XMMWORD[32+rsp],xmm0
+ movaps xmm9,XMMWORD[48+rsp]
+ movaps XMMWORD[48+rsp],xmm0
+ lea rsp,[88+rsp]
+$L$ccm64_dec_ret:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_aesni_ccm64_decrypt_blocks::
-aesni_ccm64_decrypt_blocks ENDP
-PUBLIC aesni_ctr32_encrypt_blocks
+$L$SEH_end_aesni_ccm64_decrypt_blocks:
+global aesni_ctr32_encrypt_blocks
ALIGN 16
-aesni_ctr32_encrypt_blocks PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+aesni_ctr32_encrypt_blocks:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_aesni_ctr32_encrypt_blocks::
+$L$SEH_begin_aesni_ctr32_encrypt_blocks:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
mov rcx,r9
- mov r8,QWORD PTR[40+rsp]
+ mov r8,QWORD[40+rsp]
- lea rax,QWORD PTR[rsp]
+ cmp rdx,1
+ jne NEAR $L$ctr32_bulk
+
+
+
+ movups xmm2,XMMWORD[r8]
+ movups xmm3,XMMWORD[rdi]
+ mov edx,DWORD[240+rcx]
+ movups xmm0,XMMWORD[rcx]
+ movups xmm1,XMMWORD[16+rcx]
+ lea rcx,[32+rcx]
+ xorps xmm2,xmm0
+$L$oop_enc1_7:
+DB 102,15,56,220,209
+ dec edx
+ movups xmm1,XMMWORD[rcx]
+ lea rcx,[16+rcx]
+ jnz NEAR $L$oop_enc1_7
+DB 102,15,56,221,209
+ pxor xmm0,xmm0
+ pxor xmm1,xmm1
+ xorps xmm2,xmm3
+ pxor xmm3,xmm3
+ movups XMMWORD[rsi],xmm2
+ xorps xmm2,xmm2
+ jmp NEAR $L$ctr32_epilogue
+
+ALIGN 16
+$L$ctr32_bulk:
+ lea rax,[rsp]
push rbp
sub rsp,288
and rsp,-16
- movaps XMMWORD PTR[(-168)+rax],xmm6
- movaps XMMWORD PTR[(-152)+rax],xmm7
- movaps XMMWORD PTR[(-136)+rax],xmm8
- movaps XMMWORD PTR[(-120)+rax],xmm9
- movaps XMMWORD PTR[(-104)+rax],xmm10
- movaps XMMWORD PTR[(-88)+rax],xmm11
- movaps XMMWORD PTR[(-72)+rax],xmm12
- movaps XMMWORD PTR[(-56)+rax],xmm13
- movaps XMMWORD PTR[(-40)+rax],xmm14
- movaps XMMWORD PTR[(-24)+rax],xmm15
-$L$ctr32_body::
- lea rbp,QWORD PTR[((-8))+rax]
+ movaps XMMWORD[(-168)+rax],xmm6
+ movaps XMMWORD[(-152)+rax],xmm7
+ movaps XMMWORD[(-136)+rax],xmm8
+ movaps XMMWORD[(-120)+rax],xmm9
+ movaps XMMWORD[(-104)+rax],xmm10
+ movaps XMMWORD[(-88)+rax],xmm11
+ movaps XMMWORD[(-72)+rax],xmm12
+ movaps XMMWORD[(-56)+rax],xmm13
+ movaps XMMWORD[(-40)+rax],xmm14
+ movaps XMMWORD[(-24)+rax],xmm15
+$L$ctr32_body:
+ lea rbp,[((-8))+rax]
+
- cmp rdx,1
- je $L$ctr32_one_shortcut
- movdqu xmm2,XMMWORD PTR[r8]
- movdqu xmm0,XMMWORD PTR[rcx]
- mov r8d,DWORD PTR[12+r8]
+
+ movdqu xmm2,XMMWORD[r8]
+ movdqu xmm0,XMMWORD[rcx]
+ mov r8d,DWORD[12+r8]
pxor xmm2,xmm0
- mov r11d,DWORD PTR[12+rcx]
- movdqa XMMWORD PTR[rsp],xmm2
+ mov r11d,DWORD[12+rcx]
+ movdqa XMMWORD[rsp],xmm2
bswap r8d
movdqa xmm3,xmm2
movdqa xmm4,xmm2
movdqa xmm5,xmm2
- movdqa XMMWORD PTR[64+rsp],xmm2
- movdqa XMMWORD PTR[80+rsp],xmm2
- movdqa XMMWORD PTR[96+rsp],xmm2
+ movdqa XMMWORD[64+rsp],xmm2
+ movdqa XMMWORD[80+rsp],xmm2
+ movdqa XMMWORD[96+rsp],xmm2
mov r10,rdx
- movdqa XMMWORD PTR[112+rsp],xmm2
+ movdqa XMMWORD[112+rsp],xmm2
- lea rax,QWORD PTR[1+r8]
- lea rdx,QWORD PTR[2+r8]
+ lea rax,[1+r8]
+ lea rdx,[2+r8]
bswap eax
bswap edx
xor eax,r11d
xor edx,r11d
DB 102,15,58,34,216,3
- lea rax,QWORD PTR[3+r8]
- movdqa XMMWORD PTR[16+rsp],xmm3
+ lea rax,[3+r8]
+ movdqa XMMWORD[16+rsp],xmm3
DB 102,15,58,34,226,3
bswap eax
mov rdx,r10
- lea r10,QWORD PTR[4+r8]
- movdqa XMMWORD PTR[32+rsp],xmm4
+ lea r10,[4+r8]
+ movdqa XMMWORD[32+rsp],xmm4
xor eax,r11d
bswap r10d
DB 102,15,58,34,232,3
xor r10d,r11d
- movdqa XMMWORD PTR[48+rsp],xmm5
- lea r9,QWORD PTR[5+r8]
- mov DWORD PTR[((64+12))+rsp],r10d
+ movdqa XMMWORD[48+rsp],xmm5
+ lea r9,[5+r8]
+ mov DWORD[((64+12))+rsp],r10d
bswap r9d
- lea r10,QWORD PTR[6+r8]
- mov eax,DWORD PTR[240+rcx]
+ lea r10,[6+r8]
+ mov eax,DWORD[240+rcx]
xor r9d,r11d
bswap r10d
- mov DWORD PTR[((80+12))+rsp],r9d
+ mov DWORD[((80+12))+rsp],r9d
xor r10d,r11d
- lea r9,QWORD PTR[7+r8]
- mov DWORD PTR[((96+12))+rsp],r10d
+ lea r9,[7+r8]
+ mov DWORD[((96+12))+rsp],r10d
bswap r9d
- mov r10d,DWORD PTR[((OPENSSL_ia32cap_P+4))]
+ mov r10d,DWORD[((OPENSSL_ia32cap_P+4))]
xor r9d,r11d
and r10d,71303168
- mov DWORD PTR[((112+12))+rsp],r9d
+ mov DWORD[((112+12))+rsp],r9d
- movups xmm1,XMMWORD PTR[16+rcx]
+ movups xmm1,XMMWORD[16+rcx]
- movdqa xmm6,XMMWORD PTR[64+rsp]
- movdqa xmm7,XMMWORD PTR[80+rsp]
+ movdqa xmm6,XMMWORD[64+rsp]
+ movdqa xmm7,XMMWORD[80+rsp]
cmp rdx,8
- jb $L$ctr32_tail
+ jb NEAR $L$ctr32_tail
sub rdx,6
cmp r10d,4194304
- je $L$ctr32_6x
+ je NEAR $L$ctr32_6x
- lea rcx,QWORD PTR[128+rcx]
+ lea rcx,[128+rcx]
sub rdx,2
- jmp $L$ctr32_loop8
+ jmp NEAR $L$ctr32_loop8
ALIGN 16
-$L$ctr32_6x::
+$L$ctr32_6x:
shl eax,4
mov r10d,48
bswap r11d
- lea rcx,QWORD PTR[32+rax*1+rcx]
+ lea rcx,[32+rax*1+rcx]
sub r10,rax
- jmp $L$ctr32_loop6
+ jmp NEAR $L$ctr32_loop6
ALIGN 16
-$L$ctr32_loop6::
+$L$ctr32_loop6:
add r8d,6
- movups xmm0,XMMWORD PTR[((-48))+r10*1+rcx]
+ movups xmm0,XMMWORD[((-48))+r10*1+rcx]
DB 102,15,56,220,209
mov eax,r8d
xor eax,r11d
DB 102,15,56,220,217
-DB 00fh,038h,0f1h,044h,024h,12
- lea eax,DWORD PTR[1+r8]
+DB 0x0f,0x38,0xf1,0x44,0x24,12
+ lea eax,[1+r8]
DB 102,15,56,220,225
xor eax,r11d
-DB 00fh,038h,0f1h,044h,024h,28
+DB 0x0f,0x38,0xf1,0x44,0x24,28
DB 102,15,56,220,233
- lea eax,DWORD PTR[2+r8]
+ lea eax,[2+r8]
xor eax,r11d
DB 102,15,56,220,241
-DB 00fh,038h,0f1h,044h,024h,44
- lea eax,DWORD PTR[3+r8]
+DB 0x0f,0x38,0xf1,0x44,0x24,44
+ lea eax,[3+r8]
DB 102,15,56,220,249
- movups xmm1,XMMWORD PTR[((-32))+r10*1+rcx]
+ movups xmm1,XMMWORD[((-32))+r10*1+rcx]
xor eax,r11d
DB 102,15,56,220,208
-DB 00fh,038h,0f1h,044h,024h,60
- lea eax,DWORD PTR[4+r8]
+DB 0x0f,0x38,0xf1,0x44,0x24,60
+ lea eax,[4+r8]
DB 102,15,56,220,216
xor eax,r11d
-DB 00fh,038h,0f1h,044h,024h,76
+DB 0x0f,0x38,0xf1,0x44,0x24,76
DB 102,15,56,220,224
- lea eax,DWORD PTR[5+r8]
+ lea eax,[5+r8]
xor eax,r11d
DB 102,15,56,220,232
-DB 00fh,038h,0f1h,044h,024h,92
+DB 0x0f,0x38,0xf1,0x44,0x24,92
mov rax,r10
DB 102,15,56,220,240
DB 102,15,56,220,248
- movups xmm0,XMMWORD PTR[((-16))+r10*1+rcx]
+ movups xmm0,XMMWORD[((-16))+r10*1+rcx]
call $L$enc_loop6
- movdqu xmm8,XMMWORD PTR[rdi]
- movdqu xmm9,XMMWORD PTR[16+rdi]
- movdqu xmm10,XMMWORD PTR[32+rdi]
- movdqu xmm11,XMMWORD PTR[48+rdi]
- movdqu xmm12,XMMWORD PTR[64+rdi]
- movdqu xmm13,XMMWORD PTR[80+rdi]
- lea rdi,QWORD PTR[96+rdi]
- movups xmm1,XMMWORD PTR[((-64))+r10*1+rcx]
+ movdqu xmm8,XMMWORD[rdi]
+ movdqu xmm9,XMMWORD[16+rdi]
+ movdqu xmm10,XMMWORD[32+rdi]
+ movdqu xmm11,XMMWORD[48+rdi]
+ movdqu xmm12,XMMWORD[64+rdi]
+ movdqu xmm13,XMMWORD[80+rdi]
+ lea rdi,[96+rdi]
+ movups xmm1,XMMWORD[((-64))+r10*1+rcx]
pxor xmm8,xmm2
- movaps xmm2,XMMWORD PTR[rsp]
+ movaps xmm2,XMMWORD[rsp]
pxor xmm9,xmm3
- movaps xmm3,XMMWORD PTR[16+rsp]
+ movaps xmm3,XMMWORD[16+rsp]
pxor xmm10,xmm4
- movaps xmm4,XMMWORD PTR[32+rsp]
+ movaps xmm4,XMMWORD[32+rsp]
pxor xmm11,xmm5
- movaps xmm5,XMMWORD PTR[48+rsp]
+ movaps xmm5,XMMWORD[48+rsp]
pxor xmm12,xmm6
- movaps xmm6,XMMWORD PTR[64+rsp]
+ movaps xmm6,XMMWORD[64+rsp]
pxor xmm13,xmm7
- movaps xmm7,XMMWORD PTR[80+rsp]
- movdqu XMMWORD PTR[rsi],xmm8
- movdqu XMMWORD PTR[16+rsi],xmm9
- movdqu XMMWORD PTR[32+rsi],xmm10
- movdqu XMMWORD PTR[48+rsi],xmm11
- movdqu XMMWORD PTR[64+rsi],xmm12
- movdqu XMMWORD PTR[80+rsi],xmm13
- lea rsi,QWORD PTR[96+rsi]
+ movaps xmm7,XMMWORD[80+rsp]
+ movdqu XMMWORD[rsi],xmm8
+ movdqu XMMWORD[16+rsi],xmm9
+ movdqu XMMWORD[32+rsi],xmm10
+ movdqu XMMWORD[48+rsi],xmm11
+ movdqu XMMWORD[64+rsi],xmm12
+ movdqu XMMWORD[80+rsi],xmm13
+ lea rsi,[96+rsi]
sub rdx,6
- jnc $L$ctr32_loop6
+ jnc NEAR $L$ctr32_loop6
add rdx,6
- jz $L$ctr32_done
+ jz NEAR $L$ctr32_done
- lea eax,DWORD PTR[((-48))+r10]
- lea rcx,QWORD PTR[((-80))+r10*1+rcx]
+ lea eax,[((-48))+r10]
+ lea rcx,[((-80))+r10*1+rcx]
neg eax
shr eax,4
- jmp $L$ctr32_tail
+ jmp NEAR $L$ctr32_tail
ALIGN 32
-$L$ctr32_loop8::
+$L$ctr32_loop8:
add r8d,8
- movdqa xmm8,XMMWORD PTR[96+rsp]
+ movdqa xmm8,XMMWORD[96+rsp]
DB 102,15,56,220,209
mov r9d,r8d
- movdqa xmm9,XMMWORD PTR[112+rsp]
+ movdqa xmm9,XMMWORD[112+rsp]
DB 102,15,56,220,217
bswap r9d
- movups xmm0,XMMWORD PTR[((32-128))+rcx]
+ movups xmm0,XMMWORD[((32-128))+rcx]
DB 102,15,56,220,225
xor r9d,r11d
nop
DB 102,15,56,220,233
- mov DWORD PTR[((0+12))+rsp],r9d
- lea r9,QWORD PTR[1+r8]
+ mov DWORD[((0+12))+rsp],r9d
+ lea r9,[1+r8]
DB 102,15,56,220,241
DB 102,15,56,220,249
DB 102,68,15,56,220,193
DB 102,68,15,56,220,201
- movups xmm1,XMMWORD PTR[((48-128))+rcx]
+ movups xmm1,XMMWORD[((48-128))+rcx]
bswap r9d
DB 102,15,56,220,208
DB 102,15,56,220,216
xor r9d,r11d
-DB 066h,090h
+DB 0x66,0x90
DB 102,15,56,220,224
DB 102,15,56,220,232
- mov DWORD PTR[((16+12))+rsp],r9d
- lea r9,QWORD PTR[2+r8]
+ mov DWORD[((16+12))+rsp],r9d
+ lea r9,[2+r8]
DB 102,15,56,220,240
DB 102,15,56,220,248
DB 102,68,15,56,220,192
DB 102,68,15,56,220,200
- movups xmm0,XMMWORD PTR[((64-128))+rcx]
+ movups xmm0,XMMWORD[((64-128))+rcx]
bswap r9d
DB 102,15,56,220,209
DB 102,15,56,220,217
xor r9d,r11d
-DB 066h,090h
+DB 0x66,0x90
DB 102,15,56,220,225
DB 102,15,56,220,233
- mov DWORD PTR[((32+12))+rsp],r9d
- lea r9,QWORD PTR[3+r8]
+ mov DWORD[((32+12))+rsp],r9d
+ lea r9,[3+r8]
DB 102,15,56,220,241
DB 102,15,56,220,249
DB 102,68,15,56,220,193
DB 102,68,15,56,220,201
- movups xmm1,XMMWORD PTR[((80-128))+rcx]
+ movups xmm1,XMMWORD[((80-128))+rcx]
bswap r9d
DB 102,15,56,220,208
DB 102,15,56,220,216
xor r9d,r11d
-DB 066h,090h
+DB 0x66,0x90
DB 102,15,56,220,224
DB 102,15,56,220,232
- mov DWORD PTR[((48+12))+rsp],r9d
- lea r9,QWORD PTR[4+r8]
+ mov DWORD[((48+12))+rsp],r9d
+ lea r9,[4+r8]
DB 102,15,56,220,240
DB 102,15,56,220,248
DB 102,68,15,56,220,192
DB 102,68,15,56,220,200
- movups xmm0,XMMWORD PTR[((96-128))+rcx]
+ movups xmm0,XMMWORD[((96-128))+rcx]
bswap r9d
DB 102,15,56,220,209
DB 102,15,56,220,217
xor r9d,r11d
-DB 066h,090h
+DB 0x66,0x90
DB 102,15,56,220,225
DB 102,15,56,220,233
- mov DWORD PTR[((64+12))+rsp],r9d
- lea r9,QWORD PTR[5+r8]
+ mov DWORD[((64+12))+rsp],r9d
+ lea r9,[5+r8]
DB 102,15,56,220,241
DB 102,15,56,220,249
DB 102,68,15,56,220,193
DB 102,68,15,56,220,201
- movups xmm1,XMMWORD PTR[((112-128))+rcx]
+ movups xmm1,XMMWORD[((112-128))+rcx]
bswap r9d
DB 102,15,56,220,208
DB 102,15,56,220,216
xor r9d,r11d
-DB 066h,090h
+DB 0x66,0x90
DB 102,15,56,220,224
DB 102,15,56,220,232
- mov DWORD PTR[((80+12))+rsp],r9d
- lea r9,QWORD PTR[6+r8]
+ mov DWORD[((80+12))+rsp],r9d
+ lea r9,[6+r8]
DB 102,15,56,220,240
DB 102,15,56,220,248
DB 102,68,15,56,220,192
DB 102,68,15,56,220,200
- movups xmm0,XMMWORD PTR[((128-128))+rcx]
+ movups xmm0,XMMWORD[((128-128))+rcx]
bswap r9d
DB 102,15,56,220,209
DB 102,15,56,220,217
xor r9d,r11d
-DB 066h,090h
+DB 0x66,0x90
DB 102,15,56,220,225
DB 102,15,56,220,233
- mov DWORD PTR[((96+12))+rsp],r9d
- lea r9,QWORD PTR[7+r8]
+ mov DWORD[((96+12))+rsp],r9d
+ lea r9,[7+r8]
DB 102,15,56,220,241
DB 102,15,56,220,249
DB 102,68,15,56,220,193
DB 102,68,15,56,220,201
- movups xmm1,XMMWORD PTR[((144-128))+rcx]
+ movups xmm1,XMMWORD[((144-128))+rcx]
bswap r9d
DB 102,15,56,220,208
DB 102,15,56,220,216
DB 102,15,56,220,224
xor r9d,r11d
- movdqu xmm10,XMMWORD PTR[rdi]
+ movdqu xmm10,XMMWORD[rdi]
DB 102,15,56,220,232
- mov DWORD PTR[((112+12))+rsp],r9d
+ mov DWORD[((112+12))+rsp],r9d
cmp eax,11
DB 102,15,56,220,240
DB 102,15,56,220,248
DB 102,68,15,56,220,192
DB 102,68,15,56,220,200
- movups xmm0,XMMWORD PTR[((160-128))+rcx]
+ movups xmm0,XMMWORD[((160-128))+rcx]
- jb $L$ctr32_enc_done
+ jb NEAR $L$ctr32_enc_done
DB 102,15,56,220,209
DB 102,15,56,220,217
@@ -1351,7 +1437,7 @@ DB 102,15,56,220,241
DB 102,15,56,220,249
DB 102,68,15,56,220,193
DB 102,68,15,56,220,201
- movups xmm1,XMMWORD PTR[((176-128))+rcx]
+ movups xmm1,XMMWORD[((176-128))+rcx]
DB 102,15,56,220,208
DB 102,15,56,220,216
@@ -1361,8 +1447,8 @@ DB 102,15,56,220,240
DB 102,15,56,220,248
DB 102,68,15,56,220,192
DB 102,68,15,56,220,200
- movups xmm0,XMMWORD PTR[((192-128))+rcx]
- je $L$ctr32_enc_done
+ movups xmm0,XMMWORD[((192-128))+rcx]
+ je NEAR $L$ctr32_enc_done
DB 102,15,56,220,209
DB 102,15,56,220,217
@@ -1372,7 +1458,7 @@ DB 102,15,56,220,241
DB 102,15,56,220,249
DB 102,68,15,56,220,193
DB 102,68,15,56,220,201
- movups xmm1,XMMWORD PTR[((208-128))+rcx]
+ movups xmm1,XMMWORD[((208-128))+rcx]
DB 102,15,56,220,208
DB 102,15,56,220,216
@@ -1382,20 +1468,20 @@ DB 102,15,56,220,240
DB 102,15,56,220,248
DB 102,68,15,56,220,192
DB 102,68,15,56,220,200
- movups xmm0,XMMWORD PTR[((224-128))+rcx]
- jmp $L$ctr32_enc_done
+ movups xmm0,XMMWORD[((224-128))+rcx]
+ jmp NEAR $L$ctr32_enc_done
ALIGN 16
-$L$ctr32_enc_done::
- movdqu xmm11,XMMWORD PTR[16+rdi]
+$L$ctr32_enc_done:
+ movdqu xmm11,XMMWORD[16+rdi]
pxor xmm10,xmm0
- movdqu xmm12,XMMWORD PTR[32+rdi]
+ movdqu xmm12,XMMWORD[32+rdi]
pxor xmm11,xmm0
- movdqu xmm13,XMMWORD PTR[48+rdi]
+ movdqu xmm13,XMMWORD[48+rdi]
pxor xmm12,xmm0
- movdqu xmm14,XMMWORD PTR[64+rdi]
+ movdqu xmm14,XMMWORD[64+rdi]
pxor xmm13,xmm0
- movdqu xmm15,XMMWORD PTR[80+rdi]
+ movdqu xmm15,XMMWORD[80+rdi]
pxor xmm14,xmm0
pxor xmm15,xmm0
DB 102,15,56,220,209
@@ -1406,259 +1492,264 @@ DB 102,15,56,220,241
DB 102,15,56,220,249
DB 102,68,15,56,220,193
DB 102,68,15,56,220,201
- movdqu xmm1,XMMWORD PTR[96+rdi]
- lea rdi,QWORD PTR[128+rdi]
+ movdqu xmm1,XMMWORD[96+rdi]
+ lea rdi,[128+rdi]
DB 102,65,15,56,221,210
pxor xmm1,xmm0
- movdqu xmm10,XMMWORD PTR[((112-128))+rdi]
+ movdqu xmm10,XMMWORD[((112-128))+rdi]
DB 102,65,15,56,221,219
pxor xmm10,xmm0
- movdqa xmm11,XMMWORD PTR[rsp]
+ movdqa xmm11,XMMWORD[rsp]
DB 102,65,15,56,221,228
DB 102,65,15,56,221,237
- movdqa xmm12,XMMWORD PTR[16+rsp]
- movdqa xmm13,XMMWORD PTR[32+rsp]
+ movdqa xmm12,XMMWORD[16+rsp]
+ movdqa xmm13,XMMWORD[32+rsp]
DB 102,65,15,56,221,246
DB 102,65,15,56,221,255
- movdqa xmm14,XMMWORD PTR[48+rsp]
- movdqa xmm15,XMMWORD PTR[64+rsp]
+ movdqa xmm14,XMMWORD[48+rsp]
+ movdqa xmm15,XMMWORD[64+rsp]
DB 102,68,15,56,221,193
- movdqa xmm0,XMMWORD PTR[80+rsp]
- movups xmm1,XMMWORD PTR[((16-128))+rcx]
+ movdqa xmm0,XMMWORD[80+rsp]
+ movups xmm1,XMMWORD[((16-128))+rcx]
DB 102,69,15,56,221,202
- movups XMMWORD PTR[rsi],xmm2
+ movups XMMWORD[rsi],xmm2
movdqa xmm2,xmm11
- movups XMMWORD PTR[16+rsi],xmm3
+ movups XMMWORD[16+rsi],xmm3
movdqa xmm3,xmm12
- movups XMMWORD PTR[32+rsi],xmm4
+ movups XMMWORD[32+rsi],xmm4
movdqa xmm4,xmm13
- movups XMMWORD PTR[48+rsi],xmm5
+ movups XMMWORD[48+rsi],xmm5
movdqa xmm5,xmm14
- movups XMMWORD PTR[64+rsi],xmm6
+ movups XMMWORD[64+rsi],xmm6
movdqa xmm6,xmm15
- movups XMMWORD PTR[80+rsi],xmm7
+ movups XMMWORD[80+rsi],xmm7
movdqa xmm7,xmm0
- movups XMMWORD PTR[96+rsi],xmm8
- movups XMMWORD PTR[112+rsi],xmm9
- lea rsi,QWORD PTR[128+rsi]
+ movups XMMWORD[96+rsi],xmm8
+ movups XMMWORD[112+rsi],xmm9
+ lea rsi,[128+rsi]
sub rdx,8
- jnc $L$ctr32_loop8
+ jnc NEAR $L$ctr32_loop8
add rdx,8
- jz $L$ctr32_done
- lea rcx,QWORD PTR[((-128))+rcx]
+ jz NEAR $L$ctr32_done
+ lea rcx,[((-128))+rcx]
+
+$L$ctr32_tail:
-$L$ctr32_tail::
- lea rcx,QWORD PTR[16+rcx]
+
+ lea rcx,[16+rcx]
cmp rdx,4
- jb $L$ctr32_loop3
- je $L$ctr32_loop4
+ jb NEAR $L$ctr32_loop3
+ je NEAR $L$ctr32_loop4
+
shl eax,4
- movdqa xmm8,XMMWORD PTR[96+rsp]
+ movdqa xmm8,XMMWORD[96+rsp]
pxor xmm9,xmm9
- movups xmm0,XMMWORD PTR[16+rcx]
+ movups xmm0,XMMWORD[16+rcx]
DB 102,15,56,220,209
DB 102,15,56,220,217
- lea rcx,QWORD PTR[((32-16))+rax*1+rcx]
+ lea rcx,[((32-16))+rax*1+rcx]
neg rax
DB 102,15,56,220,225
add rax,16
- movups xmm10,XMMWORD PTR[rdi]
+ movups xmm10,XMMWORD[rdi]
DB 102,15,56,220,233
DB 102,15,56,220,241
- movups xmm11,XMMWORD PTR[16+rdi]
- movups xmm12,XMMWORD PTR[32+rdi]
+ movups xmm11,XMMWORD[16+rdi]
+ movups xmm12,XMMWORD[32+rdi]
DB 102,15,56,220,249
DB 102,68,15,56,220,193
call $L$enc_loop8_enter
- movdqu xmm13,XMMWORD PTR[48+rdi]
+ movdqu xmm13,XMMWORD[48+rdi]
pxor xmm2,xmm10
- movdqu xmm10,XMMWORD PTR[64+rdi]
+ movdqu xmm10,XMMWORD[64+rdi]
pxor xmm3,xmm11
- movdqu XMMWORD PTR[rsi],xmm2
+ movdqu XMMWORD[rsi],xmm2
pxor xmm4,xmm12
- movdqu XMMWORD PTR[16+rsi],xmm3
+ movdqu XMMWORD[16+rsi],xmm3
pxor xmm5,xmm13
- movdqu XMMWORD PTR[32+rsi],xmm4
+ movdqu XMMWORD[32+rsi],xmm4
pxor xmm6,xmm10
- movdqu XMMWORD PTR[48+rsi],xmm5
- movdqu XMMWORD PTR[64+rsi],xmm6
+ movdqu XMMWORD[48+rsi],xmm5
+ movdqu XMMWORD[64+rsi],xmm6
cmp rdx,6
- jb $L$ctr32_done
+ jb NEAR $L$ctr32_done
- movups xmm11,XMMWORD PTR[80+rdi]
+ movups xmm11,XMMWORD[80+rdi]
xorps xmm7,xmm11
- movups XMMWORD PTR[80+rsi],xmm7
- je $L$ctr32_done
+ movups XMMWORD[80+rsi],xmm7
+ je NEAR $L$ctr32_done
- movups xmm12,XMMWORD PTR[96+rdi]
+ movups xmm12,XMMWORD[96+rdi]
xorps xmm8,xmm12
- movups XMMWORD PTR[96+rsi],xmm8
- jmp $L$ctr32_done
+ movups XMMWORD[96+rsi],xmm8
+ jmp NEAR $L$ctr32_done
ALIGN 32
-$L$ctr32_loop4::
+$L$ctr32_loop4:
DB 102,15,56,220,209
- lea rcx,QWORD PTR[16+rcx]
+ lea rcx,[16+rcx]
dec eax
DB 102,15,56,220,217
DB 102,15,56,220,225
DB 102,15,56,220,233
- movups xmm1,XMMWORD PTR[rcx]
- jnz $L$ctr32_loop4
+ movups xmm1,XMMWORD[rcx]
+ jnz NEAR $L$ctr32_loop4
DB 102,15,56,221,209
DB 102,15,56,221,217
- movups xmm10,XMMWORD PTR[rdi]
- movups xmm11,XMMWORD PTR[16+rdi]
+ movups xmm10,XMMWORD[rdi]
+ movups xmm11,XMMWORD[16+rdi]
DB 102,15,56,221,225
DB 102,15,56,221,233
- movups xmm12,XMMWORD PTR[32+rdi]
- movups xmm13,XMMWORD PTR[48+rdi]
+ movups xmm12,XMMWORD[32+rdi]
+ movups xmm13,XMMWORD[48+rdi]
xorps xmm2,xmm10
- movups XMMWORD PTR[rsi],xmm2
+ movups XMMWORD[rsi],xmm2
xorps xmm3,xmm11
- movups XMMWORD PTR[16+rsi],xmm3
+ movups XMMWORD[16+rsi],xmm3
pxor xmm4,xmm12
- movdqu XMMWORD PTR[32+rsi],xmm4
+ movdqu XMMWORD[32+rsi],xmm4
pxor xmm5,xmm13
- movdqu XMMWORD PTR[48+rsi],xmm5
- jmp $L$ctr32_done
+ movdqu XMMWORD[48+rsi],xmm5
+ jmp NEAR $L$ctr32_done
ALIGN 32
-$L$ctr32_loop3::
+$L$ctr32_loop3:
DB 102,15,56,220,209
- lea rcx,QWORD PTR[16+rcx]
+ lea rcx,[16+rcx]
dec eax
DB 102,15,56,220,217
DB 102,15,56,220,225
- movups xmm1,XMMWORD PTR[rcx]
- jnz $L$ctr32_loop3
+ movups xmm1,XMMWORD[rcx]
+ jnz NEAR $L$ctr32_loop3
DB 102,15,56,221,209
DB 102,15,56,221,217
DB 102,15,56,221,225
- movups xmm10,XMMWORD PTR[rdi]
+ movups xmm10,XMMWORD[rdi]
xorps xmm2,xmm10
- movups XMMWORD PTR[rsi],xmm2
+ movups XMMWORD[rsi],xmm2
cmp rdx,2
- jb $L$ctr32_done
+ jb NEAR $L$ctr32_done
- movups xmm11,XMMWORD PTR[16+rdi]
+ movups xmm11,XMMWORD[16+rdi]
xorps xmm3,xmm11
- movups XMMWORD PTR[16+rsi],xmm3
- je $L$ctr32_done
+ movups XMMWORD[16+rsi],xmm3
+ je NEAR $L$ctr32_done
- movups xmm12,XMMWORD PTR[32+rdi]
+ movups xmm12,XMMWORD[32+rdi]
xorps xmm4,xmm12
- movups XMMWORD PTR[32+rsi],xmm4
- jmp $L$ctr32_done
-
-ALIGN 16
-$L$ctr32_one_shortcut::
- movups xmm2,XMMWORD PTR[r8]
- movups xmm10,XMMWORD PTR[rdi]
- mov eax,DWORD PTR[240+rcx]
- movups xmm0,XMMWORD PTR[rcx]
- movups xmm1,XMMWORD PTR[16+rcx]
- lea rcx,QWORD PTR[32+rcx]
- xorps xmm2,xmm0
-$L$oop_enc1_7::
-DB 102,15,56,220,209
- dec eax
- movups xmm1,XMMWORD PTR[rcx]
- lea rcx,QWORD PTR[16+rcx]
- jnz $L$oop_enc1_7
-DB 102,15,56,221,209
- xorps xmm2,xmm10
- movups XMMWORD PTR[rsi],xmm2
- jmp $L$ctr32_done
-
-ALIGN 16
-$L$ctr32_done::
- movaps xmm6,XMMWORD PTR[((-160))+rbp]
- movaps xmm7,XMMWORD PTR[((-144))+rbp]
- movaps xmm8,XMMWORD PTR[((-128))+rbp]
- movaps xmm9,XMMWORD PTR[((-112))+rbp]
- movaps xmm10,XMMWORD PTR[((-96))+rbp]
- movaps xmm11,XMMWORD PTR[((-80))+rbp]
- movaps xmm12,XMMWORD PTR[((-64))+rbp]
- movaps xmm13,XMMWORD PTR[((-48))+rbp]
- movaps xmm14,XMMWORD PTR[((-32))+rbp]
- movaps xmm15,XMMWORD PTR[((-16))+rbp]
- lea rsp,QWORD PTR[rbp]
+ movups XMMWORD[32+rsi],xmm4
+
+$L$ctr32_done:
+ xorps xmm0,xmm0
+ xor r11d,r11d
+ pxor xmm1,xmm1
+ pxor xmm2,xmm2
+ pxor xmm3,xmm3
+ pxor xmm4,xmm4
+ pxor xmm5,xmm5
+ movaps xmm6,XMMWORD[((-160))+rbp]
+ movaps XMMWORD[(-160)+rbp],xmm0
+ movaps xmm7,XMMWORD[((-144))+rbp]
+ movaps XMMWORD[(-144)+rbp],xmm0
+ movaps xmm8,XMMWORD[((-128))+rbp]
+ movaps XMMWORD[(-128)+rbp],xmm0
+ movaps xmm9,XMMWORD[((-112))+rbp]
+ movaps XMMWORD[(-112)+rbp],xmm0
+ movaps xmm10,XMMWORD[((-96))+rbp]
+ movaps XMMWORD[(-96)+rbp],xmm0
+ movaps xmm11,XMMWORD[((-80))+rbp]
+ movaps XMMWORD[(-80)+rbp],xmm0
+ movaps xmm12,XMMWORD[((-64))+rbp]
+ movaps XMMWORD[(-64)+rbp],xmm0
+ movaps xmm13,XMMWORD[((-48))+rbp]
+ movaps XMMWORD[(-48)+rbp],xmm0
+ movaps xmm14,XMMWORD[((-32))+rbp]
+ movaps XMMWORD[(-32)+rbp],xmm0
+ movaps xmm15,XMMWORD[((-16))+rbp]
+ movaps XMMWORD[(-16)+rbp],xmm0
+ movaps XMMWORD[rsp],xmm0
+ movaps XMMWORD[16+rsp],xmm0
+ movaps XMMWORD[32+rsp],xmm0
+ movaps XMMWORD[48+rsp],xmm0
+ movaps XMMWORD[64+rsp],xmm0
+ movaps XMMWORD[80+rsp],xmm0
+ movaps XMMWORD[96+rsp],xmm0
+ movaps XMMWORD[112+rsp],xmm0
+ lea rsp,[rbp]
pop rbp
-$L$ctr32_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+$L$ctr32_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_aesni_ctr32_encrypt_blocks::
-aesni_ctr32_encrypt_blocks ENDP
-PUBLIC aesni_xts_encrypt
+$L$SEH_end_aesni_ctr32_encrypt_blocks:
+global aesni_xts_encrypt
ALIGN 16
-aesni_xts_encrypt PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+aesni_xts_encrypt:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_aesni_xts_encrypt::
+$L$SEH_begin_aesni_xts_encrypt:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
mov rcx,r9
- mov r8,QWORD PTR[40+rsp]
- mov r9,QWORD PTR[48+rsp]
+ mov r8,QWORD[40+rsp]
+ mov r9,QWORD[48+rsp]
- lea rax,QWORD PTR[rsp]
+ lea rax,[rsp]
push rbp
sub rsp,272
and rsp,-16
- movaps XMMWORD PTR[(-168)+rax],xmm6
- movaps XMMWORD PTR[(-152)+rax],xmm7
- movaps XMMWORD PTR[(-136)+rax],xmm8
- movaps XMMWORD PTR[(-120)+rax],xmm9
- movaps XMMWORD PTR[(-104)+rax],xmm10
- movaps XMMWORD PTR[(-88)+rax],xmm11
- movaps XMMWORD PTR[(-72)+rax],xmm12
- movaps XMMWORD PTR[(-56)+rax],xmm13
- movaps XMMWORD PTR[(-40)+rax],xmm14
- movaps XMMWORD PTR[(-24)+rax],xmm15
-$L$xts_enc_body::
- lea rbp,QWORD PTR[((-8))+rax]
- movups xmm2,XMMWORD PTR[r9]
- mov eax,DWORD PTR[240+r8]
- mov r10d,DWORD PTR[240+rcx]
- movups xmm0,XMMWORD PTR[r8]
- movups xmm1,XMMWORD PTR[16+r8]
- lea r8,QWORD PTR[32+r8]
+ movaps XMMWORD[(-168)+rax],xmm6
+ movaps XMMWORD[(-152)+rax],xmm7
+ movaps XMMWORD[(-136)+rax],xmm8
+ movaps XMMWORD[(-120)+rax],xmm9
+ movaps XMMWORD[(-104)+rax],xmm10
+ movaps XMMWORD[(-88)+rax],xmm11
+ movaps XMMWORD[(-72)+rax],xmm12
+ movaps XMMWORD[(-56)+rax],xmm13
+ movaps XMMWORD[(-40)+rax],xmm14
+ movaps XMMWORD[(-24)+rax],xmm15
+$L$xts_enc_body:
+ lea rbp,[((-8))+rax]
+ movups xmm2,XMMWORD[r9]
+ mov eax,DWORD[240+r8]
+ mov r10d,DWORD[240+rcx]
+ movups xmm0,XMMWORD[r8]
+ movups xmm1,XMMWORD[16+r8]
+ lea r8,[32+r8]
xorps xmm2,xmm0
-$L$oop_enc1_8::
+$L$oop_enc1_8:
DB 102,15,56,220,209
dec eax
- movups xmm1,XMMWORD PTR[r8]
- lea r8,QWORD PTR[16+r8]
- jnz $L$oop_enc1_8
+ movups xmm1,XMMWORD[r8]
+ lea r8,[16+r8]
+ jnz NEAR $L$oop_enc1_8
DB 102,15,56,221,209
- movups xmm0,XMMWORD PTR[rcx]
+ movups xmm0,XMMWORD[rcx]
mov r11,rcx
mov eax,r10d
shl r10d,4
mov r9,rdx
and rdx,-16
- movups xmm1,XMMWORD PTR[16+r10*1+rcx]
+ movups xmm1,XMMWORD[16+r10*1+rcx]
- movdqa xmm8,XMMWORD PTR[$L$xts_magic]
+ movdqa xmm8,XMMWORD[$L$xts_magic]
movdqa xmm15,xmm2
- pshufd xmm9,xmm2,05fh
+ pshufd xmm9,xmm2,0x5f
pxor xmm1,xmm0
movdqa xmm14,xmm9
paddd xmm9,xmm9
@@ -1698,76 +1789,76 @@ DB 102,15,56,221,209
pand xmm9,xmm8
pxor xmm14,xmm0
pxor xmm15,xmm9
- movaps XMMWORD PTR[96+rsp],xmm1
+ movaps XMMWORD[96+rsp],xmm1
sub rdx,16*6
- jc $L$xts_enc_short
+ jc NEAR $L$xts_enc_short
mov eax,16+96
- lea rcx,QWORD PTR[32+r10*1+r11]
+ lea rcx,[32+r10*1+r11]
sub rax,r10
- movups xmm1,XMMWORD PTR[16+r11]
+ movups xmm1,XMMWORD[16+r11]
mov r10,rax
- lea r8,QWORD PTR[$L$xts_magic]
- jmp $L$xts_enc_grandloop
+ lea r8,[$L$xts_magic]
+ jmp NEAR $L$xts_enc_grandloop
ALIGN 32
-$L$xts_enc_grandloop::
- movdqu xmm2,XMMWORD PTR[rdi]
+$L$xts_enc_grandloop:
+ movdqu xmm2,XMMWORD[rdi]
movdqa xmm8,xmm0
- movdqu xmm3,XMMWORD PTR[16+rdi]
+ movdqu xmm3,XMMWORD[16+rdi]
pxor xmm2,xmm10
- movdqu xmm4,XMMWORD PTR[32+rdi]
+ movdqu xmm4,XMMWORD[32+rdi]
pxor xmm3,xmm11
DB 102,15,56,220,209
- movdqu xmm5,XMMWORD PTR[48+rdi]
+ movdqu xmm5,XMMWORD[48+rdi]
pxor xmm4,xmm12
DB 102,15,56,220,217
- movdqu xmm6,XMMWORD PTR[64+rdi]
+ movdqu xmm6,XMMWORD[64+rdi]
pxor xmm5,xmm13
DB 102,15,56,220,225
- movdqu xmm7,XMMWORD PTR[80+rdi]
+ movdqu xmm7,XMMWORD[80+rdi]
pxor xmm8,xmm15
- movdqa xmm9,XMMWORD PTR[96+rsp]
+ movdqa xmm9,XMMWORD[96+rsp]
pxor xmm6,xmm14
DB 102,15,56,220,233
- movups xmm0,XMMWORD PTR[32+r11]
- lea rdi,QWORD PTR[96+rdi]
+ movups xmm0,XMMWORD[32+r11]
+ lea rdi,[96+rdi]
pxor xmm7,xmm8
pxor xmm10,xmm9
DB 102,15,56,220,241
pxor xmm11,xmm9
- movdqa XMMWORD PTR[rsp],xmm10
+ movdqa XMMWORD[rsp],xmm10
DB 102,15,56,220,249
- movups xmm1,XMMWORD PTR[48+r11]
+ movups xmm1,XMMWORD[48+r11]
pxor xmm12,xmm9
DB 102,15,56,220,208
pxor xmm13,xmm9
- movdqa XMMWORD PTR[16+rsp],xmm11
+ movdqa XMMWORD[16+rsp],xmm11
DB 102,15,56,220,216
pxor xmm14,xmm9
- movdqa XMMWORD PTR[32+rsp],xmm12
+ movdqa XMMWORD[32+rsp],xmm12
DB 102,15,56,220,224
DB 102,15,56,220,232
pxor xmm8,xmm9
- movdqa XMMWORD PTR[64+rsp],xmm14
+ movdqa XMMWORD[64+rsp],xmm14
DB 102,15,56,220,240
DB 102,15,56,220,248
- movups xmm0,XMMWORD PTR[64+r11]
- movdqa XMMWORD PTR[80+rsp],xmm8
- pshufd xmm9,xmm15,05fh
- jmp $L$xts_enc_loop6
+ movups xmm0,XMMWORD[64+r11]
+ movdqa XMMWORD[80+rsp],xmm8
+ pshufd xmm9,xmm15,0x5f
+ jmp NEAR $L$xts_enc_loop6
ALIGN 32
-$L$xts_enc_loop6::
+$L$xts_enc_loop6:
DB 102,15,56,220,209
DB 102,15,56,220,217
DB 102,15,56,220,225
DB 102,15,56,220,233
DB 102,15,56,220,241
DB 102,15,56,220,249
- movups xmm1,XMMWORD PTR[((-64))+rax*1+rcx]
+ movups xmm1,XMMWORD[((-64))+rax*1+rcx]
add rax,32
DB 102,15,56,220,208
@@ -1776,10 +1867,10 @@ DB 102,15,56,220,224
DB 102,15,56,220,232
DB 102,15,56,220,240
DB 102,15,56,220,248
- movups xmm0,XMMWORD PTR[((-80))+rax*1+rcx]
- jnz $L$xts_enc_loop6
+ movups xmm0,XMMWORD[((-80))+rax*1+rcx]
+ jnz NEAR $L$xts_enc_loop6
- movdqa xmm8,XMMWORD PTR[r8]
+ movdqa xmm8,XMMWORD[r8]
movdqa xmm14,xmm9
paddd xmm9,xmm9
DB 102,15,56,220,209
@@ -1787,14 +1878,14 @@ DB 102,15,56,220,209
psrad xmm14,31
DB 102,15,56,220,217
pand xmm14,xmm8
- movups xmm10,XMMWORD PTR[r11]
+ movups xmm10,XMMWORD[r11]
DB 102,15,56,220,225
DB 102,15,56,220,233
DB 102,15,56,220,241
pxor xmm15,xmm14
movaps xmm11,xmm10
DB 102,15,56,220,249
- movups xmm1,XMMWORD PTR[((-64))+rcx]
+ movups xmm1,XMMWORD[((-64))+rcx]
movdqa xmm14,xmm9
DB 102,15,56,220,208
@@ -1811,7 +1902,7 @@ DB 102,15,56,220,240
pxor xmm15,xmm14
movdqa xmm14,xmm9
DB 102,15,56,220,248
- movups xmm0,XMMWORD PTR[((-48))+rcx]
+ movups xmm0,XMMWORD[((-48))+rcx]
paddd xmm9,xmm9
DB 102,15,56,220,209
@@ -1822,13 +1913,13 @@ DB 102,15,56,220,217
pand xmm14,xmm8
DB 102,15,56,220,225
DB 102,15,56,220,233
- movdqa XMMWORD PTR[48+rsp],xmm13
+ movdqa XMMWORD[48+rsp],xmm13
pxor xmm15,xmm14
DB 102,15,56,220,241
movaps xmm13,xmm12
movdqa xmm14,xmm9
DB 102,15,56,220,249
- movups xmm1,XMMWORD PTR[((-32))+rcx]
+ movups xmm1,XMMWORD[((-32))+rcx]
paddd xmm9,xmm9
DB 102,15,56,220,208
@@ -1855,10 +1946,10 @@ DB 102,15,56,220,217
DB 102,15,56,220,225
DB 102,15,56,220,233
pxor xmm15,xmm0
- movups xmm0,XMMWORD PTR[r11]
+ movups xmm0,XMMWORD[r11]
DB 102,15,56,220,241
DB 102,15,56,220,249
- movups xmm1,XMMWORD PTR[16+r11]
+ movups xmm1,XMMWORD[16+r11]
pxor xmm14,xmm15
DB 102,15,56,221,84,36,0
@@ -1873,50 +1964,52 @@ DB 102,15,56,221,116,36,64
DB 102,15,56,221,124,36,80
pxor xmm15,xmm9
- lea rsi,QWORD PTR[96+rsi]
- movups XMMWORD PTR[(-96)+rsi],xmm2
- movups XMMWORD PTR[(-80)+rsi],xmm3
- movups XMMWORD PTR[(-64)+rsi],xmm4
- movups XMMWORD PTR[(-48)+rsi],xmm5
- movups XMMWORD PTR[(-32)+rsi],xmm6
- movups XMMWORD PTR[(-16)+rsi],xmm7
+ lea rsi,[96+rsi]
+ movups XMMWORD[(-96)+rsi],xmm2
+ movups XMMWORD[(-80)+rsi],xmm3
+ movups XMMWORD[(-64)+rsi],xmm4
+ movups XMMWORD[(-48)+rsi],xmm5
+ movups XMMWORD[(-32)+rsi],xmm6
+ movups XMMWORD[(-16)+rsi],xmm7
sub rdx,16*6
- jnc $L$xts_enc_grandloop
+ jnc NEAR $L$xts_enc_grandloop
mov eax,16+96
sub eax,r10d
mov rcx,r11
shr eax,4
-$L$xts_enc_short::
+$L$xts_enc_short:
+
mov r10d,eax
pxor xmm10,xmm0
add rdx,16*6
- jz $L$xts_enc_done
+ jz NEAR $L$xts_enc_done
pxor xmm11,xmm0
- cmp rdx,020h
- jb $L$xts_enc_one
+ cmp rdx,0x20
+ jb NEAR $L$xts_enc_one
pxor xmm12,xmm0
- je $L$xts_enc_two
+ je NEAR $L$xts_enc_two
pxor xmm13,xmm0
- cmp rdx,040h
- jb $L$xts_enc_three
+ cmp rdx,0x40
+ jb NEAR $L$xts_enc_three
pxor xmm14,xmm0
- je $L$xts_enc_four
+ je NEAR $L$xts_enc_four
- movdqu xmm2,XMMWORD PTR[rdi]
- movdqu xmm3,XMMWORD PTR[16+rdi]
- movdqu xmm4,XMMWORD PTR[32+rdi]
+ movdqu xmm2,XMMWORD[rdi]
+ movdqu xmm3,XMMWORD[16+rdi]
+ movdqu xmm4,XMMWORD[32+rdi]
pxor xmm2,xmm10
- movdqu xmm5,XMMWORD PTR[48+rdi]
+ movdqu xmm5,XMMWORD[48+rdi]
pxor xmm3,xmm11
- movdqu xmm6,XMMWORD PTR[64+rdi]
- lea rdi,QWORD PTR[80+rdi]
+ movdqu xmm6,XMMWORD[64+rdi]
+ lea rdi,[80+rdi]
pxor xmm4,xmm12
pxor xmm5,xmm13
pxor xmm6,xmm14
+ pxor xmm7,xmm7
call _aesni_encrypt6
@@ -1924,43 +2017,43 @@ $L$xts_enc_short::
movdqa xmm10,xmm15
xorps xmm3,xmm11
xorps xmm4,xmm12
- movdqu XMMWORD PTR[rsi],xmm2
+ movdqu XMMWORD[rsi],xmm2
xorps xmm5,xmm13
- movdqu XMMWORD PTR[16+rsi],xmm3
+ movdqu XMMWORD[16+rsi],xmm3
xorps xmm6,xmm14
- movdqu XMMWORD PTR[32+rsi],xmm4
- movdqu XMMWORD PTR[48+rsi],xmm5
- movdqu XMMWORD PTR[64+rsi],xmm6
- lea rsi,QWORD PTR[80+rsi]
- jmp $L$xts_enc_done
+ movdqu XMMWORD[32+rsi],xmm4
+ movdqu XMMWORD[48+rsi],xmm5
+ movdqu XMMWORD[64+rsi],xmm6
+ lea rsi,[80+rsi]
+ jmp NEAR $L$xts_enc_done
ALIGN 16
-$L$xts_enc_one::
- movups xmm2,XMMWORD PTR[rdi]
- lea rdi,QWORD PTR[16+rdi]
+$L$xts_enc_one:
+ movups xmm2,XMMWORD[rdi]
+ lea rdi,[16+rdi]
xorps xmm2,xmm10
- movups xmm0,XMMWORD PTR[rcx]
- movups xmm1,XMMWORD PTR[16+rcx]
- lea rcx,QWORD PTR[32+rcx]
+ movups xmm0,XMMWORD[rcx]
+ movups xmm1,XMMWORD[16+rcx]
+ lea rcx,[32+rcx]
xorps xmm2,xmm0
-$L$oop_enc1_9::
+$L$oop_enc1_9:
DB 102,15,56,220,209
dec eax
- movups xmm1,XMMWORD PTR[rcx]
- lea rcx,QWORD PTR[16+rcx]
- jnz $L$oop_enc1_9
+ movups xmm1,XMMWORD[rcx]
+ lea rcx,[16+rcx]
+ jnz NEAR $L$oop_enc1_9
DB 102,15,56,221,209
xorps xmm2,xmm10
movdqa xmm10,xmm11
- movups XMMWORD PTR[rsi],xmm2
- lea rsi,QWORD PTR[16+rsi]
- jmp $L$xts_enc_done
+ movups XMMWORD[rsi],xmm2
+ lea rsi,[16+rsi]
+ jmp NEAR $L$xts_enc_done
ALIGN 16
-$L$xts_enc_two::
- movups xmm2,XMMWORD PTR[rdi]
- movups xmm3,XMMWORD PTR[16+rdi]
- lea rdi,QWORD PTR[32+rdi]
+$L$xts_enc_two:
+ movups xmm2,XMMWORD[rdi]
+ movups xmm3,XMMWORD[16+rdi]
+ lea rdi,[32+rdi]
xorps xmm2,xmm10
xorps xmm3,xmm11
@@ -1969,17 +2062,17 @@ $L$xts_enc_two::
xorps xmm2,xmm10
movdqa xmm10,xmm12
xorps xmm3,xmm11
- movups XMMWORD PTR[rsi],xmm2
- movups XMMWORD PTR[16+rsi],xmm3
- lea rsi,QWORD PTR[32+rsi]
- jmp $L$xts_enc_done
+ movups XMMWORD[rsi],xmm2
+ movups XMMWORD[16+rsi],xmm3
+ lea rsi,[32+rsi]
+ jmp NEAR $L$xts_enc_done
ALIGN 16
-$L$xts_enc_three::
- movups xmm2,XMMWORD PTR[rdi]
- movups xmm3,XMMWORD PTR[16+rdi]
- movups xmm4,XMMWORD PTR[32+rdi]
- lea rdi,QWORD PTR[48+rdi]
+$L$xts_enc_three:
+ movups xmm2,XMMWORD[rdi]
+ movups xmm3,XMMWORD[16+rdi]
+ movups xmm4,XMMWORD[32+rdi]
+ lea rdi,[48+rdi]
xorps xmm2,xmm10
xorps xmm3,xmm11
xorps xmm4,xmm12
@@ -1990,20 +2083,20 @@ $L$xts_enc_three::
movdqa xmm10,xmm13
xorps xmm3,xmm11
xorps xmm4,xmm12
- movups XMMWORD PTR[rsi],xmm2
- movups XMMWORD PTR[16+rsi],xmm3
- movups XMMWORD PTR[32+rsi],xmm4
- lea rsi,QWORD PTR[48+rsi]
- jmp $L$xts_enc_done
+ movups XMMWORD[rsi],xmm2
+ movups XMMWORD[16+rsi],xmm3
+ movups XMMWORD[32+rsi],xmm4
+ lea rsi,[48+rsi]
+ jmp NEAR $L$xts_enc_done
ALIGN 16
-$L$xts_enc_four::
- movups xmm2,XMMWORD PTR[rdi]
- movups xmm3,XMMWORD PTR[16+rdi]
- movups xmm4,XMMWORD PTR[32+rdi]
+$L$xts_enc_four:
+ movups xmm2,XMMWORD[rdi]
+ movups xmm3,XMMWORD[16+rdi]
+ movups xmm4,XMMWORD[32+rdi]
xorps xmm2,xmm10
- movups xmm5,XMMWORD PTR[48+rdi]
- lea rdi,QWORD PTR[64+rdi]
+ movups xmm5,XMMWORD[48+rdi]
+ lea rdi,[64+rdi]
xorps xmm3,xmm11
xorps xmm4,xmm12
xorps xmm5,xmm13
@@ -2014,114 +2107,136 @@ $L$xts_enc_four::
movdqa xmm10,xmm14
pxor xmm3,xmm11
pxor xmm4,xmm12
- movdqu XMMWORD PTR[rsi],xmm2
+ movdqu XMMWORD[rsi],xmm2
pxor xmm5,xmm13
- movdqu XMMWORD PTR[16+rsi],xmm3
- movdqu XMMWORD PTR[32+rsi],xmm4
- movdqu XMMWORD PTR[48+rsi],xmm5
- lea rsi,QWORD PTR[64+rsi]
- jmp $L$xts_enc_done
+ movdqu XMMWORD[16+rsi],xmm3
+ movdqu XMMWORD[32+rsi],xmm4
+ movdqu XMMWORD[48+rsi],xmm5
+ lea rsi,[64+rsi]
+ jmp NEAR $L$xts_enc_done
ALIGN 16
-$L$xts_enc_done::
+$L$xts_enc_done:
and r9,15
- jz $L$xts_enc_ret
+ jz NEAR $L$xts_enc_ret
mov rdx,r9
-$L$xts_enc_steal::
- movzx eax,BYTE PTR[rdi]
- movzx ecx,BYTE PTR[((-16))+rsi]
- lea rdi,QWORD PTR[1+rdi]
- mov BYTE PTR[((-16))+rsi],al
- mov BYTE PTR[rsi],cl
- lea rsi,QWORD PTR[1+rsi]
+$L$xts_enc_steal:
+ movzx eax,BYTE[rdi]
+ movzx ecx,BYTE[((-16))+rsi]
+ lea rdi,[1+rdi]
+ mov BYTE[((-16))+rsi],al
+ mov BYTE[rsi],cl
+ lea rsi,[1+rsi]
sub rdx,1
- jnz $L$xts_enc_steal
+ jnz NEAR $L$xts_enc_steal
sub rsi,r9
mov rcx,r11
mov eax,r10d
- movups xmm2,XMMWORD PTR[((-16))+rsi]
+ movups xmm2,XMMWORD[((-16))+rsi]
xorps xmm2,xmm10
- movups xmm0,XMMWORD PTR[rcx]
- movups xmm1,XMMWORD PTR[16+rcx]
- lea rcx,QWORD PTR[32+rcx]
+ movups xmm0,XMMWORD[rcx]
+ movups xmm1,XMMWORD[16+rcx]
+ lea rcx,[32+rcx]
xorps xmm2,xmm0
-$L$oop_enc1_10::
+$L$oop_enc1_10:
DB 102,15,56,220,209
dec eax
- movups xmm1,XMMWORD PTR[rcx]
- lea rcx,QWORD PTR[16+rcx]
- jnz $L$oop_enc1_10
+ movups xmm1,XMMWORD[rcx]
+ lea rcx,[16+rcx]
+ jnz NEAR $L$oop_enc1_10
DB 102,15,56,221,209
xorps xmm2,xmm10
- movups XMMWORD PTR[(-16)+rsi],xmm2
-
-$L$xts_enc_ret::
- movaps xmm6,XMMWORD PTR[((-160))+rbp]
- movaps xmm7,XMMWORD PTR[((-144))+rbp]
- movaps xmm8,XMMWORD PTR[((-128))+rbp]
- movaps xmm9,XMMWORD PTR[((-112))+rbp]
- movaps xmm10,XMMWORD PTR[((-96))+rbp]
- movaps xmm11,XMMWORD PTR[((-80))+rbp]
- movaps xmm12,XMMWORD PTR[((-64))+rbp]
- movaps xmm13,XMMWORD PTR[((-48))+rbp]
- movaps xmm14,XMMWORD PTR[((-32))+rbp]
- movaps xmm15,XMMWORD PTR[((-16))+rbp]
- lea rsp,QWORD PTR[rbp]
+ movups XMMWORD[(-16)+rsi],xmm2
+
+$L$xts_enc_ret:
+ xorps xmm0,xmm0
+ pxor xmm1,xmm1
+ pxor xmm2,xmm2
+ pxor xmm3,xmm3
+ pxor xmm4,xmm4
+ pxor xmm5,xmm5
+ movaps xmm6,XMMWORD[((-160))+rbp]
+ movaps XMMWORD[(-160)+rbp],xmm0
+ movaps xmm7,XMMWORD[((-144))+rbp]
+ movaps XMMWORD[(-144)+rbp],xmm0
+ movaps xmm8,XMMWORD[((-128))+rbp]
+ movaps XMMWORD[(-128)+rbp],xmm0
+ movaps xmm9,XMMWORD[((-112))+rbp]
+ movaps XMMWORD[(-112)+rbp],xmm0
+ movaps xmm10,XMMWORD[((-96))+rbp]
+ movaps XMMWORD[(-96)+rbp],xmm0
+ movaps xmm11,XMMWORD[((-80))+rbp]
+ movaps XMMWORD[(-80)+rbp],xmm0
+ movaps xmm12,XMMWORD[((-64))+rbp]
+ movaps XMMWORD[(-64)+rbp],xmm0
+ movaps xmm13,XMMWORD[((-48))+rbp]
+ movaps XMMWORD[(-48)+rbp],xmm0
+ movaps xmm14,XMMWORD[((-32))+rbp]
+ movaps XMMWORD[(-32)+rbp],xmm0
+ movaps xmm15,XMMWORD[((-16))+rbp]
+ movaps XMMWORD[(-16)+rbp],xmm0
+ movaps XMMWORD[rsp],xmm0
+ movaps XMMWORD[16+rsp],xmm0
+ movaps XMMWORD[32+rsp],xmm0
+ movaps XMMWORD[48+rsp],xmm0
+ movaps XMMWORD[64+rsp],xmm0
+ movaps XMMWORD[80+rsp],xmm0
+ movaps XMMWORD[96+rsp],xmm0
+ lea rsp,[rbp]
pop rbp
-$L$xts_enc_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+$L$xts_enc_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_aesni_xts_encrypt::
-aesni_xts_encrypt ENDP
-PUBLIC aesni_xts_decrypt
+$L$SEH_end_aesni_xts_encrypt:
+global aesni_xts_decrypt
ALIGN 16
-aesni_xts_decrypt PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+aesni_xts_decrypt:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_aesni_xts_decrypt::
+$L$SEH_begin_aesni_xts_decrypt:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
mov rcx,r9
- mov r8,QWORD PTR[40+rsp]
- mov r9,QWORD PTR[48+rsp]
+ mov r8,QWORD[40+rsp]
+ mov r9,QWORD[48+rsp]
- lea rax,QWORD PTR[rsp]
+ lea rax,[rsp]
push rbp
sub rsp,272
and rsp,-16
- movaps XMMWORD PTR[(-168)+rax],xmm6
- movaps XMMWORD PTR[(-152)+rax],xmm7
- movaps XMMWORD PTR[(-136)+rax],xmm8
- movaps XMMWORD PTR[(-120)+rax],xmm9
- movaps XMMWORD PTR[(-104)+rax],xmm10
- movaps XMMWORD PTR[(-88)+rax],xmm11
- movaps XMMWORD PTR[(-72)+rax],xmm12
- movaps XMMWORD PTR[(-56)+rax],xmm13
- movaps XMMWORD PTR[(-40)+rax],xmm14
- movaps XMMWORD PTR[(-24)+rax],xmm15
-$L$xts_dec_body::
- lea rbp,QWORD PTR[((-8))+rax]
- movups xmm2,XMMWORD PTR[r9]
- mov eax,DWORD PTR[240+r8]
- mov r10d,DWORD PTR[240+rcx]
- movups xmm0,XMMWORD PTR[r8]
- movups xmm1,XMMWORD PTR[16+r8]
- lea r8,QWORD PTR[32+r8]
+ movaps XMMWORD[(-168)+rax],xmm6
+ movaps XMMWORD[(-152)+rax],xmm7
+ movaps XMMWORD[(-136)+rax],xmm8
+ movaps XMMWORD[(-120)+rax],xmm9
+ movaps XMMWORD[(-104)+rax],xmm10
+ movaps XMMWORD[(-88)+rax],xmm11
+ movaps XMMWORD[(-72)+rax],xmm12
+ movaps XMMWORD[(-56)+rax],xmm13
+ movaps XMMWORD[(-40)+rax],xmm14
+ movaps XMMWORD[(-24)+rax],xmm15
+$L$xts_dec_body:
+ lea rbp,[((-8))+rax]
+ movups xmm2,XMMWORD[r9]
+ mov eax,DWORD[240+r8]
+ mov r10d,DWORD[240+rcx]
+ movups xmm0,XMMWORD[r8]
+ movups xmm1,XMMWORD[16+r8]
+ lea r8,[32+r8]
xorps xmm2,xmm0
-$L$oop_enc1_11::
+$L$oop_enc1_11:
DB 102,15,56,220,209
dec eax
- movups xmm1,XMMWORD PTR[r8]
- lea r8,QWORD PTR[16+r8]
- jnz $L$oop_enc1_11
+ movups xmm1,XMMWORD[r8]
+ lea r8,[16+r8]
+ jnz NEAR $L$oop_enc1_11
DB 102,15,56,221,209
xor eax,eax
test rdx,15
@@ -2129,18 +2244,18 @@ DB 102,15,56,221,209
shl rax,4
sub rdx,rax
- movups xmm0,XMMWORD PTR[rcx]
+ movups xmm0,XMMWORD[rcx]
mov r11,rcx
mov eax,r10d
shl r10d,4
mov r9,rdx
and rdx,-16
- movups xmm1,XMMWORD PTR[16+r10*1+rcx]
+ movups xmm1,XMMWORD[16+r10*1+rcx]
- movdqa xmm8,XMMWORD PTR[$L$xts_magic]
+ movdqa xmm8,XMMWORD[$L$xts_magic]
movdqa xmm15,xmm2
- pshufd xmm9,xmm2,05fh
+ pshufd xmm9,xmm2,0x5f
pxor xmm1,xmm0
movdqa xmm14,xmm9
paddd xmm9,xmm9
@@ -2180,76 +2295,76 @@ DB 102,15,56,221,209
pand xmm9,xmm8
pxor xmm14,xmm0
pxor xmm15,xmm9
- movaps XMMWORD PTR[96+rsp],xmm1
+ movaps XMMWORD[96+rsp],xmm1
sub rdx,16*6
- jc $L$xts_dec_short
+ jc NEAR $L$xts_dec_short
mov eax,16+96
- lea rcx,QWORD PTR[32+r10*1+r11]
+ lea rcx,[32+r10*1+r11]
sub rax,r10
- movups xmm1,XMMWORD PTR[16+r11]
+ movups xmm1,XMMWORD[16+r11]
mov r10,rax
- lea r8,QWORD PTR[$L$xts_magic]
- jmp $L$xts_dec_grandloop
+ lea r8,[$L$xts_magic]
+ jmp NEAR $L$xts_dec_grandloop
ALIGN 32
-$L$xts_dec_grandloop::
- movdqu xmm2,XMMWORD PTR[rdi]
+$L$xts_dec_grandloop:
+ movdqu xmm2,XMMWORD[rdi]
movdqa xmm8,xmm0
- movdqu xmm3,XMMWORD PTR[16+rdi]
+ movdqu xmm3,XMMWORD[16+rdi]
pxor xmm2,xmm10
- movdqu xmm4,XMMWORD PTR[32+rdi]
+ movdqu xmm4,XMMWORD[32+rdi]
pxor xmm3,xmm11
DB 102,15,56,222,209
- movdqu xmm5,XMMWORD PTR[48+rdi]
+ movdqu xmm5,XMMWORD[48+rdi]
pxor xmm4,xmm12
DB 102,15,56,222,217
- movdqu xmm6,XMMWORD PTR[64+rdi]
+ movdqu xmm6,XMMWORD[64+rdi]
pxor xmm5,xmm13
DB 102,15,56,222,225
- movdqu xmm7,XMMWORD PTR[80+rdi]
+ movdqu xmm7,XMMWORD[80+rdi]
pxor xmm8,xmm15
- movdqa xmm9,XMMWORD PTR[96+rsp]
+ movdqa xmm9,XMMWORD[96+rsp]
pxor xmm6,xmm14
DB 102,15,56,222,233
- movups xmm0,XMMWORD PTR[32+r11]
- lea rdi,QWORD PTR[96+rdi]
+ movups xmm0,XMMWORD[32+r11]
+ lea rdi,[96+rdi]
pxor xmm7,xmm8
pxor xmm10,xmm9
DB 102,15,56,222,241
pxor xmm11,xmm9
- movdqa XMMWORD PTR[rsp],xmm10
+ movdqa XMMWORD[rsp],xmm10
DB 102,15,56,222,249
- movups xmm1,XMMWORD PTR[48+r11]
+ movups xmm1,XMMWORD[48+r11]
pxor xmm12,xmm9
DB 102,15,56,222,208
pxor xmm13,xmm9
- movdqa XMMWORD PTR[16+rsp],xmm11
+ movdqa XMMWORD[16+rsp],xmm11
DB 102,15,56,222,216
pxor xmm14,xmm9
- movdqa XMMWORD PTR[32+rsp],xmm12
+ movdqa XMMWORD[32+rsp],xmm12
DB 102,15,56,222,224
DB 102,15,56,222,232
pxor xmm8,xmm9
- movdqa XMMWORD PTR[64+rsp],xmm14
+ movdqa XMMWORD[64+rsp],xmm14
DB 102,15,56,222,240
DB 102,15,56,222,248
- movups xmm0,XMMWORD PTR[64+r11]
- movdqa XMMWORD PTR[80+rsp],xmm8
- pshufd xmm9,xmm15,05fh
- jmp $L$xts_dec_loop6
+ movups xmm0,XMMWORD[64+r11]
+ movdqa XMMWORD[80+rsp],xmm8
+ pshufd xmm9,xmm15,0x5f
+ jmp NEAR $L$xts_dec_loop6
ALIGN 32
-$L$xts_dec_loop6::
+$L$xts_dec_loop6:
DB 102,15,56,222,209
DB 102,15,56,222,217
DB 102,15,56,222,225
DB 102,15,56,222,233
DB 102,15,56,222,241
DB 102,15,56,222,249
- movups xmm1,XMMWORD PTR[((-64))+rax*1+rcx]
+ movups xmm1,XMMWORD[((-64))+rax*1+rcx]
add rax,32
DB 102,15,56,222,208
@@ -2258,10 +2373,10 @@ DB 102,15,56,222,224
DB 102,15,56,222,232
DB 102,15,56,222,240
DB 102,15,56,222,248
- movups xmm0,XMMWORD PTR[((-80))+rax*1+rcx]
- jnz $L$xts_dec_loop6
+ movups xmm0,XMMWORD[((-80))+rax*1+rcx]
+ jnz NEAR $L$xts_dec_loop6
- movdqa xmm8,XMMWORD PTR[r8]
+ movdqa xmm8,XMMWORD[r8]
movdqa xmm14,xmm9
paddd xmm9,xmm9
DB 102,15,56,222,209
@@ -2269,14 +2384,14 @@ DB 102,15,56,222,209
psrad xmm14,31
DB 102,15,56,222,217
pand xmm14,xmm8
- movups xmm10,XMMWORD PTR[r11]
+ movups xmm10,XMMWORD[r11]
DB 102,15,56,222,225
DB 102,15,56,222,233
DB 102,15,56,222,241
pxor xmm15,xmm14
movaps xmm11,xmm10
DB 102,15,56,222,249
- movups xmm1,XMMWORD PTR[((-64))+rcx]
+ movups xmm1,XMMWORD[((-64))+rcx]
movdqa xmm14,xmm9
DB 102,15,56,222,208
@@ -2293,7 +2408,7 @@ DB 102,15,56,222,240
pxor xmm15,xmm14
movdqa xmm14,xmm9
DB 102,15,56,222,248
- movups xmm0,XMMWORD PTR[((-48))+rcx]
+ movups xmm0,XMMWORD[((-48))+rcx]
paddd xmm9,xmm9
DB 102,15,56,222,209
@@ -2304,13 +2419,13 @@ DB 102,15,56,222,217
pand xmm14,xmm8
DB 102,15,56,222,225
DB 102,15,56,222,233
- movdqa XMMWORD PTR[48+rsp],xmm13
+ movdqa XMMWORD[48+rsp],xmm13
pxor xmm15,xmm14
DB 102,15,56,222,241
movaps xmm13,xmm12
movdqa xmm14,xmm9
DB 102,15,56,222,249
- movups xmm1,XMMWORD PTR[((-32))+rcx]
+ movups xmm1,XMMWORD[((-32))+rcx]
paddd xmm9,xmm9
DB 102,15,56,222,208
@@ -2337,10 +2452,10 @@ DB 102,15,56,222,217
DB 102,15,56,222,225
DB 102,15,56,222,233
pxor xmm15,xmm0
- movups xmm0,XMMWORD PTR[r11]
+ movups xmm0,XMMWORD[r11]
DB 102,15,56,222,241
DB 102,15,56,222,249
- movups xmm1,XMMWORD PTR[16+r11]
+ movups xmm1,XMMWORD[16+r11]
pxor xmm14,xmm15
DB 102,15,56,223,84,36,0
@@ -2355,47 +2470,48 @@ DB 102,15,56,223,116,36,64
DB 102,15,56,223,124,36,80
pxor xmm15,xmm9
- lea rsi,QWORD PTR[96+rsi]
- movups XMMWORD PTR[(-96)+rsi],xmm2
- movups XMMWORD PTR[(-80)+rsi],xmm3
- movups XMMWORD PTR[(-64)+rsi],xmm4
- movups XMMWORD PTR[(-48)+rsi],xmm5
- movups XMMWORD PTR[(-32)+rsi],xmm6
- movups XMMWORD PTR[(-16)+rsi],xmm7
+ lea rsi,[96+rsi]
+ movups XMMWORD[(-96)+rsi],xmm2
+ movups XMMWORD[(-80)+rsi],xmm3
+ movups XMMWORD[(-64)+rsi],xmm4
+ movups XMMWORD[(-48)+rsi],xmm5
+ movups XMMWORD[(-32)+rsi],xmm6
+ movups XMMWORD[(-16)+rsi],xmm7
sub rdx,16*6
- jnc $L$xts_dec_grandloop
+ jnc NEAR $L$xts_dec_grandloop
mov eax,16+96
sub eax,r10d
mov rcx,r11
shr eax,4
-$L$xts_dec_short::
+$L$xts_dec_short:
+
mov r10d,eax
pxor xmm10,xmm0
pxor xmm11,xmm0
add rdx,16*6
- jz $L$xts_dec_done
+ jz NEAR $L$xts_dec_done
pxor xmm12,xmm0
- cmp rdx,020h
- jb $L$xts_dec_one
+ cmp rdx,0x20
+ jb NEAR $L$xts_dec_one
pxor xmm13,xmm0
- je $L$xts_dec_two
+ je NEAR $L$xts_dec_two
pxor xmm14,xmm0
- cmp rdx,040h
- jb $L$xts_dec_three
- je $L$xts_dec_four
+ cmp rdx,0x40
+ jb NEAR $L$xts_dec_three
+ je NEAR $L$xts_dec_four
- movdqu xmm2,XMMWORD PTR[rdi]
- movdqu xmm3,XMMWORD PTR[16+rdi]
- movdqu xmm4,XMMWORD PTR[32+rdi]
+ movdqu xmm2,XMMWORD[rdi]
+ movdqu xmm3,XMMWORD[16+rdi]
+ movdqu xmm4,XMMWORD[32+rdi]
pxor xmm2,xmm10
- movdqu xmm5,XMMWORD PTR[48+rdi]
+ movdqu xmm5,XMMWORD[48+rdi]
pxor xmm3,xmm11
- movdqu xmm6,XMMWORD PTR[64+rdi]
- lea rdi,QWORD PTR[80+rdi]
+ movdqu xmm6,XMMWORD[64+rdi]
+ lea rdi,[80+rdi]
pxor xmm4,xmm12
pxor xmm5,xmm13
pxor xmm6,xmm14
@@ -2405,54 +2521,54 @@ $L$xts_dec_short::
xorps xmm2,xmm10
xorps xmm3,xmm11
xorps xmm4,xmm12
- movdqu XMMWORD PTR[rsi],xmm2
+ movdqu XMMWORD[rsi],xmm2
xorps xmm5,xmm13
- movdqu XMMWORD PTR[16+rsi],xmm3
+ movdqu XMMWORD[16+rsi],xmm3
xorps xmm6,xmm14
- movdqu XMMWORD PTR[32+rsi],xmm4
+ movdqu XMMWORD[32+rsi],xmm4
pxor xmm14,xmm14
- movdqu XMMWORD PTR[48+rsi],xmm5
+ movdqu XMMWORD[48+rsi],xmm5
pcmpgtd xmm14,xmm15
- movdqu XMMWORD PTR[64+rsi],xmm6
- lea rsi,QWORD PTR[80+rsi]
- pshufd xmm11,xmm14,013h
+ movdqu XMMWORD[64+rsi],xmm6
+ lea rsi,[80+rsi]
+ pshufd xmm11,xmm14,0x13
and r9,15
- jz $L$xts_dec_ret
+ jz NEAR $L$xts_dec_ret
movdqa xmm10,xmm15
paddq xmm15,xmm15
pand xmm11,xmm8
pxor xmm11,xmm15
- jmp $L$xts_dec_done2
+ jmp NEAR $L$xts_dec_done2
ALIGN 16
-$L$xts_dec_one::
- movups xmm2,XMMWORD PTR[rdi]
- lea rdi,QWORD PTR[16+rdi]
+$L$xts_dec_one:
+ movups xmm2,XMMWORD[rdi]
+ lea rdi,[16+rdi]
xorps xmm2,xmm10
- movups xmm0,XMMWORD PTR[rcx]
- movups xmm1,XMMWORD PTR[16+rcx]
- lea rcx,QWORD PTR[32+rcx]
+ movups xmm0,XMMWORD[rcx]
+ movups xmm1,XMMWORD[16+rcx]
+ lea rcx,[32+rcx]
xorps xmm2,xmm0
-$L$oop_dec1_12::
+$L$oop_dec1_12:
DB 102,15,56,222,209
dec eax
- movups xmm1,XMMWORD PTR[rcx]
- lea rcx,QWORD PTR[16+rcx]
- jnz $L$oop_dec1_12
+ movups xmm1,XMMWORD[rcx]
+ lea rcx,[16+rcx]
+ jnz NEAR $L$oop_dec1_12
DB 102,15,56,223,209
xorps xmm2,xmm10
movdqa xmm10,xmm11
- movups XMMWORD PTR[rsi],xmm2
+ movups XMMWORD[rsi],xmm2
movdqa xmm11,xmm12
- lea rsi,QWORD PTR[16+rsi]
- jmp $L$xts_dec_done
+ lea rsi,[16+rsi]
+ jmp NEAR $L$xts_dec_done
ALIGN 16
-$L$xts_dec_two::
- movups xmm2,XMMWORD PTR[rdi]
- movups xmm3,XMMWORD PTR[16+rdi]
- lea rdi,QWORD PTR[32+rdi]
+$L$xts_dec_two:
+ movups xmm2,XMMWORD[rdi]
+ movups xmm3,XMMWORD[16+rdi]
+ lea rdi,[32+rdi]
xorps xmm2,xmm10
xorps xmm3,xmm11
@@ -2462,17 +2578,17 @@ $L$xts_dec_two::
movdqa xmm10,xmm12
xorps xmm3,xmm11
movdqa xmm11,xmm13
- movups XMMWORD PTR[rsi],xmm2
- movups XMMWORD PTR[16+rsi],xmm3
- lea rsi,QWORD PTR[32+rsi]
- jmp $L$xts_dec_done
+ movups XMMWORD[rsi],xmm2
+ movups XMMWORD[16+rsi],xmm3
+ lea rsi,[32+rsi]
+ jmp NEAR $L$xts_dec_done
ALIGN 16
-$L$xts_dec_three::
- movups xmm2,XMMWORD PTR[rdi]
- movups xmm3,XMMWORD PTR[16+rdi]
- movups xmm4,XMMWORD PTR[32+rdi]
- lea rdi,QWORD PTR[48+rdi]
+$L$xts_dec_three:
+ movups xmm2,XMMWORD[rdi]
+ movups xmm3,XMMWORD[16+rdi]
+ movups xmm4,XMMWORD[32+rdi]
+ lea rdi,[48+rdi]
xorps xmm2,xmm10
xorps xmm3,xmm11
xorps xmm4,xmm12
@@ -2484,20 +2600,20 @@ $L$xts_dec_three::
xorps xmm3,xmm11
movdqa xmm11,xmm14
xorps xmm4,xmm12
- movups XMMWORD PTR[rsi],xmm2
- movups XMMWORD PTR[16+rsi],xmm3
- movups XMMWORD PTR[32+rsi],xmm4
- lea rsi,QWORD PTR[48+rsi]
- jmp $L$xts_dec_done
+ movups XMMWORD[rsi],xmm2
+ movups XMMWORD[16+rsi],xmm3
+ movups XMMWORD[32+rsi],xmm4
+ lea rsi,[48+rsi]
+ jmp NEAR $L$xts_dec_done
ALIGN 16
-$L$xts_dec_four::
- movups xmm2,XMMWORD PTR[rdi]
- movups xmm3,XMMWORD PTR[16+rdi]
- movups xmm4,XMMWORD PTR[32+rdi]
+$L$xts_dec_four:
+ movups xmm2,XMMWORD[rdi]
+ movups xmm3,XMMWORD[16+rdi]
+ movups xmm4,XMMWORD[32+rdi]
xorps xmm2,xmm10
- movups xmm5,XMMWORD PTR[48+rdi]
- lea rdi,QWORD PTR[64+rdi]
+ movups xmm5,XMMWORD[48+rdi]
+ lea rdi,[64+rdi]
xorps xmm3,xmm11
xorps xmm4,xmm12
xorps xmm5,xmm13
@@ -2509,220 +2625,275 @@ $L$xts_dec_four::
pxor xmm3,xmm11
movdqa xmm11,xmm15
pxor xmm4,xmm12
- movdqu XMMWORD PTR[rsi],xmm2
+ movdqu XMMWORD[rsi],xmm2
pxor xmm5,xmm13
- movdqu XMMWORD PTR[16+rsi],xmm3
- movdqu XMMWORD PTR[32+rsi],xmm4
- movdqu XMMWORD PTR[48+rsi],xmm5
- lea rsi,QWORD PTR[64+rsi]
- jmp $L$xts_dec_done
+ movdqu XMMWORD[16+rsi],xmm3
+ movdqu XMMWORD[32+rsi],xmm4
+ movdqu XMMWORD[48+rsi],xmm5
+ lea rsi,[64+rsi]
+ jmp NEAR $L$xts_dec_done
ALIGN 16
-$L$xts_dec_done::
+$L$xts_dec_done:
and r9,15
- jz $L$xts_dec_ret
-$L$xts_dec_done2::
+ jz NEAR $L$xts_dec_ret
+$L$xts_dec_done2:
mov rdx,r9
mov rcx,r11
mov eax,r10d
- movups xmm2,XMMWORD PTR[rdi]
+ movups xmm2,XMMWORD[rdi]
xorps xmm2,xmm11
- movups xmm0,XMMWORD PTR[rcx]
- movups xmm1,XMMWORD PTR[16+rcx]
- lea rcx,QWORD PTR[32+rcx]
+ movups xmm0,XMMWORD[rcx]
+ movups xmm1,XMMWORD[16+rcx]
+ lea rcx,[32+rcx]
xorps xmm2,xmm0
-$L$oop_dec1_13::
+$L$oop_dec1_13:
DB 102,15,56,222,209
dec eax
- movups xmm1,XMMWORD PTR[rcx]
- lea rcx,QWORD PTR[16+rcx]
- jnz $L$oop_dec1_13
+ movups xmm1,XMMWORD[rcx]
+ lea rcx,[16+rcx]
+ jnz NEAR $L$oop_dec1_13
DB 102,15,56,223,209
xorps xmm2,xmm11
- movups XMMWORD PTR[rsi],xmm2
-
-$L$xts_dec_steal::
- movzx eax,BYTE PTR[16+rdi]
- movzx ecx,BYTE PTR[rsi]
- lea rdi,QWORD PTR[1+rdi]
- mov BYTE PTR[rsi],al
- mov BYTE PTR[16+rsi],cl
- lea rsi,QWORD PTR[1+rsi]
+ movups XMMWORD[rsi],xmm2
+
+$L$xts_dec_steal:
+ movzx eax,BYTE[16+rdi]
+ movzx ecx,BYTE[rsi]
+ lea rdi,[1+rdi]
+ mov BYTE[rsi],al
+ mov BYTE[16+rsi],cl
+ lea rsi,[1+rsi]
sub rdx,1
- jnz $L$xts_dec_steal
+ jnz NEAR $L$xts_dec_steal
sub rsi,r9
mov rcx,r11
mov eax,r10d
- movups xmm2,XMMWORD PTR[rsi]
+ movups xmm2,XMMWORD[rsi]
xorps xmm2,xmm10
- movups xmm0,XMMWORD PTR[rcx]
- movups xmm1,XMMWORD PTR[16+rcx]
- lea rcx,QWORD PTR[32+rcx]
+ movups xmm0,XMMWORD[rcx]
+ movups xmm1,XMMWORD[16+rcx]
+ lea rcx,[32+rcx]
xorps xmm2,xmm0
-$L$oop_dec1_14::
+$L$oop_dec1_14:
DB 102,15,56,222,209
dec eax
- movups xmm1,XMMWORD PTR[rcx]
- lea rcx,QWORD PTR[16+rcx]
- jnz $L$oop_dec1_14
+ movups xmm1,XMMWORD[rcx]
+ lea rcx,[16+rcx]
+ jnz NEAR $L$oop_dec1_14
DB 102,15,56,223,209
xorps xmm2,xmm10
- movups XMMWORD PTR[rsi],xmm2
-
-$L$xts_dec_ret::
- movaps xmm6,XMMWORD PTR[((-160))+rbp]
- movaps xmm7,XMMWORD PTR[((-144))+rbp]
- movaps xmm8,XMMWORD PTR[((-128))+rbp]
- movaps xmm9,XMMWORD PTR[((-112))+rbp]
- movaps xmm10,XMMWORD PTR[((-96))+rbp]
- movaps xmm11,XMMWORD PTR[((-80))+rbp]
- movaps xmm12,XMMWORD PTR[((-64))+rbp]
- movaps xmm13,XMMWORD PTR[((-48))+rbp]
- movaps xmm14,XMMWORD PTR[((-32))+rbp]
- movaps xmm15,XMMWORD PTR[((-16))+rbp]
- lea rsp,QWORD PTR[rbp]
+ movups XMMWORD[rsi],xmm2
+
+$L$xts_dec_ret:
+ xorps xmm0,xmm0
+ pxor xmm1,xmm1
+ pxor xmm2,xmm2
+ pxor xmm3,xmm3
+ pxor xmm4,xmm4
+ pxor xmm5,xmm5
+ movaps xmm6,XMMWORD[((-160))+rbp]
+ movaps XMMWORD[(-160)+rbp],xmm0
+ movaps xmm7,XMMWORD[((-144))+rbp]
+ movaps XMMWORD[(-144)+rbp],xmm0
+ movaps xmm8,XMMWORD[((-128))+rbp]
+ movaps XMMWORD[(-128)+rbp],xmm0
+ movaps xmm9,XMMWORD[((-112))+rbp]
+ movaps XMMWORD[(-112)+rbp],xmm0
+ movaps xmm10,XMMWORD[((-96))+rbp]
+ movaps XMMWORD[(-96)+rbp],xmm0
+ movaps xmm11,XMMWORD[((-80))+rbp]
+ movaps XMMWORD[(-80)+rbp],xmm0
+ movaps xmm12,XMMWORD[((-64))+rbp]
+ movaps XMMWORD[(-64)+rbp],xmm0
+ movaps xmm13,XMMWORD[((-48))+rbp]
+ movaps XMMWORD[(-48)+rbp],xmm0
+ movaps xmm14,XMMWORD[((-32))+rbp]
+ movaps XMMWORD[(-32)+rbp],xmm0
+ movaps xmm15,XMMWORD[((-16))+rbp]
+ movaps XMMWORD[(-16)+rbp],xmm0
+ movaps XMMWORD[rsp],xmm0
+ movaps XMMWORD[16+rsp],xmm0
+ movaps XMMWORD[32+rsp],xmm0
+ movaps XMMWORD[48+rsp],xmm0
+ movaps XMMWORD[64+rsp],xmm0
+ movaps XMMWORD[80+rsp],xmm0
+ movaps XMMWORD[96+rsp],xmm0
+ lea rsp,[rbp]
pop rbp
-$L$xts_dec_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+$L$xts_dec_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_aesni_xts_decrypt::
-aesni_xts_decrypt ENDP
-PUBLIC aesni_cbc_encrypt
+$L$SEH_end_aesni_xts_decrypt:
+global aesni_cbc_encrypt
ALIGN 16
-aesni_cbc_encrypt PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+aesni_cbc_encrypt:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_aesni_cbc_encrypt::
+$L$SEH_begin_aesni_cbc_encrypt:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
mov rcx,r9
- mov r8,QWORD PTR[40+rsp]
- mov r9,QWORD PTR[48+rsp]
+ mov r8,QWORD[40+rsp]
+ mov r9,QWORD[48+rsp]
test rdx,rdx
- jz $L$cbc_ret
+ jz NEAR $L$cbc_ret
- mov r10d,DWORD PTR[240+rcx]
+ mov r10d,DWORD[240+rcx]
mov r11,rcx
test r9d,r9d
- jz $L$cbc_decrypt
+ jz NEAR $L$cbc_decrypt
- movups xmm2,XMMWORD PTR[r8]
+ movups xmm2,XMMWORD[r8]
mov eax,r10d
cmp rdx,16
- jb $L$cbc_enc_tail
+ jb NEAR $L$cbc_enc_tail
sub rdx,16
- jmp $L$cbc_enc_loop
+ jmp NEAR $L$cbc_enc_loop
ALIGN 16
-$L$cbc_enc_loop::
- movups xmm3,XMMWORD PTR[rdi]
- lea rdi,QWORD PTR[16+rdi]
+$L$cbc_enc_loop:
+ movups xmm3,XMMWORD[rdi]
+ lea rdi,[16+rdi]
- movups xmm0,XMMWORD PTR[rcx]
- movups xmm1,XMMWORD PTR[16+rcx]
+ movups xmm0,XMMWORD[rcx]
+ movups xmm1,XMMWORD[16+rcx]
xorps xmm3,xmm0
- lea rcx,QWORD PTR[32+rcx]
+ lea rcx,[32+rcx]
xorps xmm2,xmm3
-$L$oop_enc1_15::
+$L$oop_enc1_15:
DB 102,15,56,220,209
dec eax
- movups xmm1,XMMWORD PTR[rcx]
- lea rcx,QWORD PTR[16+rcx]
- jnz $L$oop_enc1_15
+ movups xmm1,XMMWORD[rcx]
+ lea rcx,[16+rcx]
+ jnz NEAR $L$oop_enc1_15
DB 102,15,56,221,209
mov eax,r10d
mov rcx,r11
- movups XMMWORD PTR[rsi],xmm2
- lea rsi,QWORD PTR[16+rsi]
+ movups XMMWORD[rsi],xmm2
+ lea rsi,[16+rsi]
sub rdx,16
- jnc $L$cbc_enc_loop
+ jnc NEAR $L$cbc_enc_loop
add rdx,16
- jnz $L$cbc_enc_tail
- movups XMMWORD PTR[r8],xmm2
- jmp $L$cbc_ret
-
-$L$cbc_enc_tail::
+ jnz NEAR $L$cbc_enc_tail
+ pxor xmm0,xmm0
+ pxor xmm1,xmm1
+ movups XMMWORD[r8],xmm2
+ pxor xmm2,xmm2
+ pxor xmm3,xmm3
+ jmp NEAR $L$cbc_ret
+
+$L$cbc_enc_tail:
mov rcx,rdx
xchg rsi,rdi
- DD 09066A4F3h
+ DD 0x9066A4F3
mov ecx,16
sub rcx,rdx
xor eax,eax
- DD 09066AAF3h
- lea rdi,QWORD PTR[((-16))+rdi]
+ DD 0x9066AAF3
+ lea rdi,[((-16))+rdi]
mov eax,r10d
mov rsi,rdi
mov rcx,r11
xor rdx,rdx
- jmp $L$cbc_enc_loop
+ jmp NEAR $L$cbc_enc_loop
ALIGN 16
-$L$cbc_decrypt::
- lea rax,QWORD PTR[rsp]
+$L$cbc_decrypt:
+ cmp rdx,16
+ jne NEAR $L$cbc_decrypt_bulk
+
+
+
+ movdqu xmm2,XMMWORD[rdi]
+ movdqu xmm3,XMMWORD[r8]
+ movdqa xmm4,xmm2
+ movups xmm0,XMMWORD[rcx]
+ movups xmm1,XMMWORD[16+rcx]
+ lea rcx,[32+rcx]
+ xorps xmm2,xmm0
+$L$oop_dec1_16:
+DB 102,15,56,222,209
+ dec r10d
+ movups xmm1,XMMWORD[rcx]
+ lea rcx,[16+rcx]
+ jnz NEAR $L$oop_dec1_16
+DB 102,15,56,223,209
+ pxor xmm0,xmm0
+ pxor xmm1,xmm1
+ movdqu XMMWORD[r8],xmm4
+ xorps xmm2,xmm3
+ pxor xmm3,xmm3
+ movups XMMWORD[rsi],xmm2
+ pxor xmm2,xmm2
+ jmp NEAR $L$cbc_ret
+ALIGN 16
+$L$cbc_decrypt_bulk:
+ lea rax,[rsp]
push rbp
sub rsp,176
and rsp,-16
- movaps XMMWORD PTR[16+rsp],xmm6
- movaps XMMWORD PTR[32+rsp],xmm7
- movaps XMMWORD PTR[48+rsp],xmm8
- movaps XMMWORD PTR[64+rsp],xmm9
- movaps XMMWORD PTR[80+rsp],xmm10
- movaps XMMWORD PTR[96+rsp],xmm11
- movaps XMMWORD PTR[112+rsp],xmm12
- movaps XMMWORD PTR[128+rsp],xmm13
- movaps XMMWORD PTR[144+rsp],xmm14
- movaps XMMWORD PTR[160+rsp],xmm15
-$L$cbc_decrypt_body::
- lea rbp,QWORD PTR[((-8))+rax]
- movups xmm10,XMMWORD PTR[r8]
+ movaps XMMWORD[16+rsp],xmm6
+ movaps XMMWORD[32+rsp],xmm7
+ movaps XMMWORD[48+rsp],xmm8
+ movaps XMMWORD[64+rsp],xmm9
+ movaps XMMWORD[80+rsp],xmm10
+ movaps XMMWORD[96+rsp],xmm11
+ movaps XMMWORD[112+rsp],xmm12
+ movaps XMMWORD[128+rsp],xmm13
+ movaps XMMWORD[144+rsp],xmm14
+ movaps XMMWORD[160+rsp],xmm15
+$L$cbc_decrypt_body:
+ lea rbp,[((-8))+rax]
+ movups xmm10,XMMWORD[r8]
mov eax,r10d
- cmp rdx,050h
- jbe $L$cbc_dec_tail
+ cmp rdx,0x50
+ jbe NEAR $L$cbc_dec_tail
- movups xmm0,XMMWORD PTR[rcx]
- movdqu xmm2,XMMWORD PTR[rdi]
- movdqu xmm3,XMMWORD PTR[16+rdi]
+ movups xmm0,XMMWORD[rcx]
+ movdqu xmm2,XMMWORD[rdi]
+ movdqu xmm3,XMMWORD[16+rdi]
movdqa xmm11,xmm2
- movdqu xmm4,XMMWORD PTR[32+rdi]
+ movdqu xmm4,XMMWORD[32+rdi]
movdqa xmm12,xmm3
- movdqu xmm5,XMMWORD PTR[48+rdi]
+ movdqu xmm5,XMMWORD[48+rdi]
movdqa xmm13,xmm4
- movdqu xmm6,XMMWORD PTR[64+rdi]
+ movdqu xmm6,XMMWORD[64+rdi]
movdqa xmm14,xmm5
- movdqu xmm7,XMMWORD PTR[80+rdi]
+ movdqu xmm7,XMMWORD[80+rdi]
movdqa xmm15,xmm6
- mov r9d,DWORD PTR[((OPENSSL_ia32cap_P+4))]
- cmp rdx,070h
- jbe $L$cbc_dec_six_or_seven
+ mov r9d,DWORD[((OPENSSL_ia32cap_P+4))]
+ cmp rdx,0x70
+ jbe NEAR $L$cbc_dec_six_or_seven
and r9d,71303168
- sub rdx,050h
+ sub rdx,0x50
cmp r9d,4194304
- je $L$cbc_dec_loop6_enter
- sub rdx,020h
- lea rcx,QWORD PTR[112+rcx]
- jmp $L$cbc_dec_loop8_enter
-ALIGN 16
-$L$cbc_dec_loop8::
- movups XMMWORD PTR[rsi],xmm9
- lea rsi,QWORD PTR[16+rsi]
-$L$cbc_dec_loop8_enter::
- movdqu xmm8,XMMWORD PTR[96+rdi]
+ je NEAR $L$cbc_dec_loop6_enter
+ sub rdx,0x20
+ lea rcx,[112+rcx]
+ jmp NEAR $L$cbc_dec_loop8_enter
+ALIGN 16
+$L$cbc_dec_loop8:
+ movups XMMWORD[rsi],xmm9
+ lea rsi,[16+rsi]
+$L$cbc_dec_loop8_enter:
+ movdqu xmm8,XMMWORD[96+rdi]
pxor xmm2,xmm0
- movdqu xmm9,XMMWORD PTR[112+rdi]
+ movdqu xmm9,XMMWORD[112+rdi]
pxor xmm3,xmm0
- movups xmm1,XMMWORD PTR[((16-112))+rcx]
+ movups xmm1,XMMWORD[((16-112))+rcx]
pxor xmm4,xmm0
xor r11,r11
- cmp rdx,070h
+ cmp rdx,0x70
pxor xmm5,xmm0
pxor xmm6,xmm0
pxor xmm7,xmm0
@@ -2730,7 +2901,7 @@ $L$cbc_dec_loop8_enter::
DB 102,15,56,222,209
pxor xmm9,xmm0
- movups xmm0,XMMWORD PTR[((32-112))+rcx]
+ movups xmm0,XMMWORD[((32-112))+rcx]
DB 102,15,56,222,217
DB 102,15,56,222,225
DB 102,15,56,222,233
@@ -2741,7 +2912,7 @@ DB 102,68,15,56,222,193
shl r11,7
DB 102,68,15,56,222,201
add r11,rdi
- movups xmm1,XMMWORD PTR[((48-112))+rcx]
+ movups xmm1,XMMWORD[((48-112))+rcx]
DB 102,15,56,222,208
DB 102,15,56,222,216
DB 102,15,56,222,224
@@ -2750,7 +2921,7 @@ DB 102,15,56,222,240
DB 102,15,56,222,248
DB 102,68,15,56,222,192
DB 102,68,15,56,222,200
- movups xmm0,XMMWORD PTR[((64-112))+rcx]
+ movups xmm0,XMMWORD[((64-112))+rcx]
nop
DB 102,15,56,222,209
DB 102,15,56,222,217
@@ -2760,7 +2931,7 @@ DB 102,15,56,222,241
DB 102,15,56,222,249
DB 102,68,15,56,222,193
DB 102,68,15,56,222,201
- movups xmm1,XMMWORD PTR[((80-112))+rcx]
+ movups xmm1,XMMWORD[((80-112))+rcx]
nop
DB 102,15,56,222,208
DB 102,15,56,222,216
@@ -2770,7 +2941,7 @@ DB 102,15,56,222,240
DB 102,15,56,222,248
DB 102,68,15,56,222,192
DB 102,68,15,56,222,200
- movups xmm0,XMMWORD PTR[((96-112))+rcx]
+ movups xmm0,XMMWORD[((96-112))+rcx]
nop
DB 102,15,56,222,209
DB 102,15,56,222,217
@@ -2780,7 +2951,7 @@ DB 102,15,56,222,241
DB 102,15,56,222,249
DB 102,68,15,56,222,193
DB 102,68,15,56,222,201
- movups xmm1,XMMWORD PTR[((112-112))+rcx]
+ movups xmm1,XMMWORD[((112-112))+rcx]
nop
DB 102,15,56,222,208
DB 102,15,56,222,216
@@ -2790,7 +2961,7 @@ DB 102,15,56,222,240
DB 102,15,56,222,248
DB 102,68,15,56,222,192
DB 102,68,15,56,222,200
- movups xmm0,XMMWORD PTR[((128-112))+rcx]
+ movups xmm0,XMMWORD[((128-112))+rcx]
nop
DB 102,15,56,222,209
DB 102,15,56,222,217
@@ -2800,7 +2971,7 @@ DB 102,15,56,222,241
DB 102,15,56,222,249
DB 102,68,15,56,222,193
DB 102,68,15,56,222,201
- movups xmm1,XMMWORD PTR[((144-112))+rcx]
+ movups xmm1,XMMWORD[((144-112))+rcx]
cmp eax,11
DB 102,15,56,222,208
DB 102,15,56,222,216
@@ -2810,8 +2981,8 @@ DB 102,15,56,222,240
DB 102,15,56,222,248
DB 102,68,15,56,222,192
DB 102,68,15,56,222,200
- movups xmm0,XMMWORD PTR[((160-112))+rcx]
- jb $L$cbc_dec_done
+ movups xmm0,XMMWORD[((160-112))+rcx]
+ jb NEAR $L$cbc_dec_done
DB 102,15,56,222,209
DB 102,15,56,222,217
DB 102,15,56,222,225
@@ -2820,7 +2991,7 @@ DB 102,15,56,222,241
DB 102,15,56,222,249
DB 102,68,15,56,222,193
DB 102,68,15,56,222,201
- movups xmm1,XMMWORD PTR[((176-112))+rcx]
+ movups xmm1,XMMWORD[((176-112))+rcx]
nop
DB 102,15,56,222,208
DB 102,15,56,222,216
@@ -2830,8 +3001,8 @@ DB 102,15,56,222,240
DB 102,15,56,222,248
DB 102,68,15,56,222,192
DB 102,68,15,56,222,200
- movups xmm0,XMMWORD PTR[((192-112))+rcx]
- je $L$cbc_dec_done
+ movups xmm0,XMMWORD[((192-112))+rcx]
+ je NEAR $L$cbc_dec_done
DB 102,15,56,222,209
DB 102,15,56,222,217
DB 102,15,56,222,225
@@ -2840,7 +3011,7 @@ DB 102,15,56,222,241
DB 102,15,56,222,249
DB 102,68,15,56,222,193
DB 102,68,15,56,222,201
- movups xmm1,XMMWORD PTR[((208-112))+rcx]
+ movups xmm1,XMMWORD[((208-112))+rcx]
nop
DB 102,15,56,222,208
DB 102,15,56,222,216
@@ -2850,10 +3021,10 @@ DB 102,15,56,222,240
DB 102,15,56,222,248
DB 102,68,15,56,222,192
DB 102,68,15,56,222,200
- movups xmm0,XMMWORD PTR[((224-112))+rcx]
- jmp $L$cbc_dec_done
+ movups xmm0,XMMWORD[((224-112))+rcx]
+ jmp NEAR $L$cbc_dec_done
ALIGN 16
-$L$cbc_dec_done::
+$L$cbc_dec_done:
DB 102,15,56,222,209
DB 102,15,56,222,217
pxor xmm10,xmm0
@@ -2868,121 +3039,133 @@ DB 102,15,56,222,249
pxor xmm15,xmm0
DB 102,68,15,56,222,193
DB 102,68,15,56,222,201
- movdqu xmm1,XMMWORD PTR[80+rdi]
+ movdqu xmm1,XMMWORD[80+rdi]
DB 102,65,15,56,223,210
- movdqu xmm10,XMMWORD PTR[96+rdi]
+ movdqu xmm10,XMMWORD[96+rdi]
pxor xmm1,xmm0
DB 102,65,15,56,223,219
pxor xmm10,xmm0
- movdqu xmm0,XMMWORD PTR[112+rdi]
+ movdqu xmm0,XMMWORD[112+rdi]
DB 102,65,15,56,223,228
- lea rdi,QWORD PTR[128+rdi]
- movdqu xmm11,XMMWORD PTR[r11]
+ lea rdi,[128+rdi]
+ movdqu xmm11,XMMWORD[r11]
DB 102,65,15,56,223,237
DB 102,65,15,56,223,246
- movdqu xmm12,XMMWORD PTR[16+r11]
- movdqu xmm13,XMMWORD PTR[32+r11]
+ movdqu xmm12,XMMWORD[16+r11]
+ movdqu xmm13,XMMWORD[32+r11]
DB 102,65,15,56,223,255
DB 102,68,15,56,223,193
- movdqu xmm14,XMMWORD PTR[48+r11]
- movdqu xmm15,XMMWORD PTR[64+r11]
+ movdqu xmm14,XMMWORD[48+r11]
+ movdqu xmm15,XMMWORD[64+r11]
DB 102,69,15,56,223,202
movdqa xmm10,xmm0
- movdqu xmm1,XMMWORD PTR[80+r11]
- movups xmm0,XMMWORD PTR[((-112))+rcx]
+ movdqu xmm1,XMMWORD[80+r11]
+ movups xmm0,XMMWORD[((-112))+rcx]
- movups XMMWORD PTR[rsi],xmm2
+ movups XMMWORD[rsi],xmm2
movdqa xmm2,xmm11
- movups XMMWORD PTR[16+rsi],xmm3
+ movups XMMWORD[16+rsi],xmm3
movdqa xmm3,xmm12
- movups XMMWORD PTR[32+rsi],xmm4
+ movups XMMWORD[32+rsi],xmm4
movdqa xmm4,xmm13
- movups XMMWORD PTR[48+rsi],xmm5
+ movups XMMWORD[48+rsi],xmm5
movdqa xmm5,xmm14
- movups XMMWORD PTR[64+rsi],xmm6
+ movups XMMWORD[64+rsi],xmm6
movdqa xmm6,xmm15
- movups XMMWORD PTR[80+rsi],xmm7
+ movups XMMWORD[80+rsi],xmm7
movdqa xmm7,xmm1
- movups XMMWORD PTR[96+rsi],xmm8
- lea rsi,QWORD PTR[112+rsi]
+ movups XMMWORD[96+rsi],xmm8
+ lea rsi,[112+rsi]
- sub rdx,080h
- ja $L$cbc_dec_loop8
+ sub rdx,0x80
+ ja NEAR $L$cbc_dec_loop8
movaps xmm2,xmm9
- lea rcx,QWORD PTR[((-112))+rcx]
- add rdx,070h
- jle $L$cbc_dec_tail_collected
- movups XMMWORD PTR[rsi],xmm9
- lea rsi,QWORD PTR[16+rsi]
- cmp rdx,050h
- jbe $L$cbc_dec_tail
+ lea rcx,[((-112))+rcx]
+ add rdx,0x70
+ jle NEAR $L$cbc_dec_clear_tail_collected
+ movups XMMWORD[rsi],xmm9
+ lea rsi,[16+rsi]
+ cmp rdx,0x50
+ jbe NEAR $L$cbc_dec_tail
movaps xmm2,xmm11
-$L$cbc_dec_six_or_seven::
- cmp rdx,060h
- ja $L$cbc_dec_seven
+$L$cbc_dec_six_or_seven:
+ cmp rdx,0x60
+ ja NEAR $L$cbc_dec_seven
movaps xmm8,xmm7
call _aesni_decrypt6
pxor xmm2,xmm10
movaps xmm10,xmm8
pxor xmm3,xmm11
- movdqu XMMWORD PTR[rsi],xmm2
+ movdqu XMMWORD[rsi],xmm2
pxor xmm4,xmm12
- movdqu XMMWORD PTR[16+rsi],xmm3
+ movdqu XMMWORD[16+rsi],xmm3
+ pxor xmm3,xmm3
pxor xmm5,xmm13
- movdqu XMMWORD PTR[32+rsi],xmm4
+ movdqu XMMWORD[32+rsi],xmm4
+ pxor xmm4,xmm4
pxor xmm6,xmm14
- movdqu XMMWORD PTR[48+rsi],xmm5
+ movdqu XMMWORD[48+rsi],xmm5
+ pxor xmm5,xmm5
pxor xmm7,xmm15
- movdqu XMMWORD PTR[64+rsi],xmm6
- lea rsi,QWORD PTR[80+rsi]
+ movdqu XMMWORD[64+rsi],xmm6
+ pxor xmm6,xmm6
+ lea rsi,[80+rsi]
movdqa xmm2,xmm7
- jmp $L$cbc_dec_tail_collected
+ pxor xmm7,xmm7
+ jmp NEAR $L$cbc_dec_tail_collected
ALIGN 16
-$L$cbc_dec_seven::
- movups xmm8,XMMWORD PTR[96+rdi]
+$L$cbc_dec_seven:
+ movups xmm8,XMMWORD[96+rdi]
xorps xmm9,xmm9
call _aesni_decrypt8
- movups xmm9,XMMWORD PTR[80+rdi]
+ movups xmm9,XMMWORD[80+rdi]
pxor xmm2,xmm10
- movups xmm10,XMMWORD PTR[96+rdi]
+ movups xmm10,XMMWORD[96+rdi]
pxor xmm3,xmm11
- movdqu XMMWORD PTR[rsi],xmm2
+ movdqu XMMWORD[rsi],xmm2
pxor xmm4,xmm12
- movdqu XMMWORD PTR[16+rsi],xmm3
+ movdqu XMMWORD[16+rsi],xmm3
+ pxor xmm3,xmm3
pxor xmm5,xmm13
- movdqu XMMWORD PTR[32+rsi],xmm4
+ movdqu XMMWORD[32+rsi],xmm4
+ pxor xmm4,xmm4
pxor xmm6,xmm14
- movdqu XMMWORD PTR[48+rsi],xmm5
+ movdqu XMMWORD[48+rsi],xmm5
+ pxor xmm5,xmm5
pxor xmm7,xmm15
- movdqu XMMWORD PTR[64+rsi],xmm6
+ movdqu XMMWORD[64+rsi],xmm6
+ pxor xmm6,xmm6
pxor xmm8,xmm9
- movdqu XMMWORD PTR[80+rsi],xmm7
- lea rsi,QWORD PTR[96+rsi]
+ movdqu XMMWORD[80+rsi],xmm7
+ pxor xmm7,xmm7
+ lea rsi,[96+rsi]
movdqa xmm2,xmm8
- jmp $L$cbc_dec_tail_collected
+ pxor xmm8,xmm8
+ pxor xmm9,xmm9
+ jmp NEAR $L$cbc_dec_tail_collected
ALIGN 16
-$L$cbc_dec_loop6::
- movups XMMWORD PTR[rsi],xmm7
- lea rsi,QWORD PTR[16+rsi]
- movdqu xmm2,XMMWORD PTR[rdi]
- movdqu xmm3,XMMWORD PTR[16+rdi]
+$L$cbc_dec_loop6:
+ movups XMMWORD[rsi],xmm7
+ lea rsi,[16+rsi]
+ movdqu xmm2,XMMWORD[rdi]
+ movdqu xmm3,XMMWORD[16+rdi]
movdqa xmm11,xmm2
- movdqu xmm4,XMMWORD PTR[32+rdi]
+ movdqu xmm4,XMMWORD[32+rdi]
movdqa xmm12,xmm3
- movdqu xmm5,XMMWORD PTR[48+rdi]
+ movdqu xmm5,XMMWORD[48+rdi]
movdqa xmm13,xmm4
- movdqu xmm6,XMMWORD PTR[64+rdi]
+ movdqu xmm6,XMMWORD[64+rdi]
movdqa xmm14,xmm5
- movdqu xmm7,XMMWORD PTR[80+rdi]
+ movdqu xmm7,XMMWORD[80+rdi]
movdqa xmm15,xmm6
-$L$cbc_dec_loop6_enter::
- lea rdi,QWORD PTR[96+rdi]
+$L$cbc_dec_loop6_enter:
+ lea rdi,[96+rdi]
movdqa xmm8,xmm7
call _aesni_decrypt6
@@ -2990,48 +3173,48 @@ $L$cbc_dec_loop6_enter::
pxor xmm2,xmm10
movdqa xmm10,xmm8
pxor xmm3,xmm11
- movdqu XMMWORD PTR[rsi],xmm2
+ movdqu XMMWORD[rsi],xmm2
pxor xmm4,xmm12
- movdqu XMMWORD PTR[16+rsi],xmm3
+ movdqu XMMWORD[16+rsi],xmm3
pxor xmm5,xmm13
- movdqu XMMWORD PTR[32+rsi],xmm4
+ movdqu XMMWORD[32+rsi],xmm4
pxor xmm6,xmm14
mov rcx,r11
- movdqu XMMWORD PTR[48+rsi],xmm5
+ movdqu XMMWORD[48+rsi],xmm5
pxor xmm7,xmm15
mov eax,r10d
- movdqu XMMWORD PTR[64+rsi],xmm6
- lea rsi,QWORD PTR[80+rsi]
- sub rdx,060h
- ja $L$cbc_dec_loop6
+ movdqu XMMWORD[64+rsi],xmm6
+ lea rsi,[80+rsi]
+ sub rdx,0x60
+ ja NEAR $L$cbc_dec_loop6
movdqa xmm2,xmm7
- add rdx,050h
- jle $L$cbc_dec_tail_collected
- movups XMMWORD PTR[rsi],xmm7
- lea rsi,QWORD PTR[16+rsi]
+ add rdx,0x50
+ jle NEAR $L$cbc_dec_clear_tail_collected
+ movups XMMWORD[rsi],xmm7
+ lea rsi,[16+rsi]
-$L$cbc_dec_tail::
- movups xmm2,XMMWORD PTR[rdi]
- sub rdx,010h
- jbe $L$cbc_dec_one
+$L$cbc_dec_tail:
+ movups xmm2,XMMWORD[rdi]
+ sub rdx,0x10
+ jbe NEAR $L$cbc_dec_one
- movups xmm3,XMMWORD PTR[16+rdi]
+ movups xmm3,XMMWORD[16+rdi]
movaps xmm11,xmm2
- sub rdx,010h
- jbe $L$cbc_dec_two
+ sub rdx,0x10
+ jbe NEAR $L$cbc_dec_two
- movups xmm4,XMMWORD PTR[32+rdi]
+ movups xmm4,XMMWORD[32+rdi]
movaps xmm12,xmm3
- sub rdx,010h
- jbe $L$cbc_dec_three
+ sub rdx,0x10
+ jbe NEAR $L$cbc_dec_three
- movups xmm5,XMMWORD PTR[48+rdi]
+ movups xmm5,XMMWORD[48+rdi]
movaps xmm13,xmm4
- sub rdx,010h
- jbe $L$cbc_dec_four
+ sub rdx,0x10
+ jbe NEAR $L$cbc_dec_four
- movups xmm6,XMMWORD PTR[64+rdi]
+ movups xmm6,XMMWORD[64+rdi]
movaps xmm14,xmm5
movaps xmm15,xmm6
xorps xmm7,xmm7
@@ -3039,173 +3222,209 @@ $L$cbc_dec_tail::
pxor xmm2,xmm10
movaps xmm10,xmm15
pxor xmm3,xmm11
- movdqu XMMWORD PTR[rsi],xmm2
+ movdqu XMMWORD[rsi],xmm2
pxor xmm4,xmm12
- movdqu XMMWORD PTR[16+rsi],xmm3
+ movdqu XMMWORD[16+rsi],xmm3
+ pxor xmm3,xmm3
pxor xmm5,xmm13
- movdqu XMMWORD PTR[32+rsi],xmm4
+ movdqu XMMWORD[32+rsi],xmm4
+ pxor xmm4,xmm4
pxor xmm6,xmm14
- movdqu XMMWORD PTR[48+rsi],xmm5
- lea rsi,QWORD PTR[64+rsi]
+ movdqu XMMWORD[48+rsi],xmm5
+ pxor xmm5,xmm5
+ lea rsi,[64+rsi]
movdqa xmm2,xmm6
- sub rdx,010h
- jmp $L$cbc_dec_tail_collected
+ pxor xmm6,xmm6
+ pxor xmm7,xmm7
+ sub rdx,0x10
+ jmp NEAR $L$cbc_dec_tail_collected
ALIGN 16
-$L$cbc_dec_one::
+$L$cbc_dec_one:
movaps xmm11,xmm2
- movups xmm0,XMMWORD PTR[rcx]
- movups xmm1,XMMWORD PTR[16+rcx]
- lea rcx,QWORD PTR[32+rcx]
+ movups xmm0,XMMWORD[rcx]
+ movups xmm1,XMMWORD[16+rcx]
+ lea rcx,[32+rcx]
xorps xmm2,xmm0
-$L$oop_dec1_16::
+$L$oop_dec1_17:
DB 102,15,56,222,209
dec eax
- movups xmm1,XMMWORD PTR[rcx]
- lea rcx,QWORD PTR[16+rcx]
- jnz $L$oop_dec1_16
+ movups xmm1,XMMWORD[rcx]
+ lea rcx,[16+rcx]
+ jnz NEAR $L$oop_dec1_17
DB 102,15,56,223,209
xorps xmm2,xmm10
movaps xmm10,xmm11
- jmp $L$cbc_dec_tail_collected
+ jmp NEAR $L$cbc_dec_tail_collected
ALIGN 16
-$L$cbc_dec_two::
+$L$cbc_dec_two:
movaps xmm12,xmm3
call _aesni_decrypt2
pxor xmm2,xmm10
movaps xmm10,xmm12
pxor xmm3,xmm11
- movdqu XMMWORD PTR[rsi],xmm2
+ movdqu XMMWORD[rsi],xmm2
movdqa xmm2,xmm3
- lea rsi,QWORD PTR[16+rsi]
- jmp $L$cbc_dec_tail_collected
+ pxor xmm3,xmm3
+ lea rsi,[16+rsi]
+ jmp NEAR $L$cbc_dec_tail_collected
ALIGN 16
-$L$cbc_dec_three::
+$L$cbc_dec_three:
movaps xmm13,xmm4
call _aesni_decrypt3
pxor xmm2,xmm10
movaps xmm10,xmm13
pxor xmm3,xmm11
- movdqu XMMWORD PTR[rsi],xmm2
+ movdqu XMMWORD[rsi],xmm2
pxor xmm4,xmm12
- movdqu XMMWORD PTR[16+rsi],xmm3
+ movdqu XMMWORD[16+rsi],xmm3
+ pxor xmm3,xmm3
movdqa xmm2,xmm4
- lea rsi,QWORD PTR[32+rsi]
- jmp $L$cbc_dec_tail_collected
+ pxor xmm4,xmm4
+ lea rsi,[32+rsi]
+ jmp NEAR $L$cbc_dec_tail_collected
ALIGN 16
-$L$cbc_dec_four::
+$L$cbc_dec_four:
movaps xmm14,xmm5
call _aesni_decrypt4
pxor xmm2,xmm10
movaps xmm10,xmm14
pxor xmm3,xmm11
- movdqu XMMWORD PTR[rsi],xmm2
+ movdqu XMMWORD[rsi],xmm2
pxor xmm4,xmm12
- movdqu XMMWORD PTR[16+rsi],xmm3
+ movdqu XMMWORD[16+rsi],xmm3
+ pxor xmm3,xmm3
pxor xmm5,xmm13
- movdqu XMMWORD PTR[32+rsi],xmm4
+ movdqu XMMWORD[32+rsi],xmm4
+ pxor xmm4,xmm4
movdqa xmm2,xmm5
- lea rsi,QWORD PTR[48+rsi]
- jmp $L$cbc_dec_tail_collected
+ pxor xmm5,xmm5
+ lea rsi,[48+rsi]
+ jmp NEAR $L$cbc_dec_tail_collected
ALIGN 16
-$L$cbc_dec_tail_collected::
- movups XMMWORD PTR[r8],xmm10
+$L$cbc_dec_clear_tail_collected:
+ pxor xmm3,xmm3
+ pxor xmm4,xmm4
+ pxor xmm5,xmm5
+$L$cbc_dec_tail_collected:
+ movups XMMWORD[r8],xmm10
and rdx,15
- jnz $L$cbc_dec_tail_partial
- movups XMMWORD PTR[rsi],xmm2
- jmp $L$cbc_dec_ret
-ALIGN 16
-$L$cbc_dec_tail_partial::
- movaps XMMWORD PTR[rsp],xmm2
+ jnz NEAR $L$cbc_dec_tail_partial
+ movups XMMWORD[rsi],xmm2
+ pxor xmm2,xmm2
+ jmp NEAR $L$cbc_dec_ret
+ALIGN 16
+$L$cbc_dec_tail_partial:
+ movaps XMMWORD[rsp],xmm2
+ pxor xmm2,xmm2
mov rcx,16
mov rdi,rsi
sub rcx,rdx
- lea rsi,QWORD PTR[rsp]
- DD 09066A4F3h
-
-$L$cbc_dec_ret::
- movaps xmm6,XMMWORD PTR[16+rsp]
- movaps xmm7,XMMWORD PTR[32+rsp]
- movaps xmm8,XMMWORD PTR[48+rsp]
- movaps xmm9,XMMWORD PTR[64+rsp]
- movaps xmm10,XMMWORD PTR[80+rsp]
- movaps xmm11,XMMWORD PTR[96+rsp]
- movaps xmm12,XMMWORD PTR[112+rsp]
- movaps xmm13,XMMWORD PTR[128+rsp]
- movaps xmm14,XMMWORD PTR[144+rsp]
- movaps xmm15,XMMWORD PTR[160+rsp]
- lea rsp,QWORD PTR[rbp]
+ lea rsi,[rsp]
+ DD 0x9066A4F3
+ movdqa XMMWORD[rsp],xmm2
+
+$L$cbc_dec_ret:
+ xorps xmm0,xmm0
+ pxor xmm1,xmm1
+ movaps xmm6,XMMWORD[16+rsp]
+ movaps XMMWORD[16+rsp],xmm0
+ movaps xmm7,XMMWORD[32+rsp]
+ movaps XMMWORD[32+rsp],xmm0
+ movaps xmm8,XMMWORD[48+rsp]
+ movaps XMMWORD[48+rsp],xmm0
+ movaps xmm9,XMMWORD[64+rsp]
+ movaps XMMWORD[64+rsp],xmm0
+ movaps xmm10,XMMWORD[80+rsp]
+ movaps XMMWORD[80+rsp],xmm0
+ movaps xmm11,XMMWORD[96+rsp]
+ movaps XMMWORD[96+rsp],xmm0
+ movaps xmm12,XMMWORD[112+rsp]
+ movaps XMMWORD[112+rsp],xmm0
+ movaps xmm13,XMMWORD[128+rsp]
+ movaps XMMWORD[128+rsp],xmm0
+ movaps xmm14,XMMWORD[144+rsp]
+ movaps XMMWORD[144+rsp],xmm0
+ movaps xmm15,XMMWORD[160+rsp]
+ movaps XMMWORD[160+rsp],xmm0
+ lea rsp,[rbp]
pop rbp
-$L$cbc_ret::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+$L$cbc_ret:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_aesni_cbc_encrypt::
-aesni_cbc_encrypt ENDP
-PUBLIC aesni_set_decrypt_key
+$L$SEH_end_aesni_cbc_encrypt:
+global aesni_set_decrypt_key
ALIGN 16
-aesni_set_decrypt_key PROC PUBLIC
-DB 048h,083h,0ECh,008h
+aesni_set_decrypt_key:
+DB 0x48,0x83,0xEC,0x08
call __aesni_set_encrypt_key
shl edx,4
test eax,eax
- jnz $L$dec_key_ret
- lea rcx,QWORD PTR[16+rdx*1+r8]
-
- movups xmm0,XMMWORD PTR[r8]
- movups xmm1,XMMWORD PTR[rcx]
- movups XMMWORD PTR[rcx],xmm0
- movups XMMWORD PTR[r8],xmm1
- lea r8,QWORD PTR[16+r8]
- lea rcx,QWORD PTR[((-16))+rcx]
-
-$L$dec_key_inverse::
- movups xmm0,XMMWORD PTR[r8]
- movups xmm1,XMMWORD PTR[rcx]
+ jnz NEAR $L$dec_key_ret
+ lea rcx,[16+rdx*1+r8]
+
+ movups xmm0,XMMWORD[r8]
+ movups xmm1,XMMWORD[rcx]
+ movups XMMWORD[rcx],xmm0
+ movups XMMWORD[r8],xmm1
+ lea r8,[16+r8]
+ lea rcx,[((-16))+rcx]
+
+$L$dec_key_inverse:
+ movups xmm0,XMMWORD[r8]
+ movups xmm1,XMMWORD[rcx]
DB 102,15,56,219,192
DB 102,15,56,219,201
- lea r8,QWORD PTR[16+r8]
- lea rcx,QWORD PTR[((-16))+rcx]
- movups XMMWORD PTR[16+rcx],xmm0
- movups XMMWORD PTR[(-16)+r8],xmm1
+ lea r8,[16+r8]
+ lea rcx,[((-16))+rcx]
+ movups XMMWORD[16+rcx],xmm0
+ movups XMMWORD[(-16)+r8],xmm1
cmp rcx,r8
- ja $L$dec_key_inverse
+ ja NEAR $L$dec_key_inverse
- movups xmm0,XMMWORD PTR[r8]
+ movups xmm0,XMMWORD[r8]
DB 102,15,56,219,192
- movups XMMWORD PTR[rcx],xmm0
-$L$dec_key_ret::
+ pxor xmm1,xmm1
+ movups XMMWORD[rcx],xmm0
+ pxor xmm0,xmm0
+$L$dec_key_ret:
add rsp,8
DB 0F3h,0C3h ;repret
-$L$SEH_end_set_decrypt_key::
-aesni_set_decrypt_key ENDP
-PUBLIC aesni_set_encrypt_key
+$L$SEH_end_set_decrypt_key:
+
+global aesni_set_encrypt_key
ALIGN 16
-aesni_set_encrypt_key PROC PUBLIC
-__aesni_set_encrypt_key::
-DB 048h,083h,0ECh,008h
+aesni_set_encrypt_key:
+__aesni_set_encrypt_key:
+DB 0x48,0x83,0xEC,0x08
mov rax,-1
test rcx,rcx
- jz $L$enc_key_ret
+ jz NEAR $L$enc_key_ret
test r8,r8
- jz $L$enc_key_ret
+ jz NEAR $L$enc_key_ret
- movups xmm0,XMMWORD PTR[rcx]
+ mov r10d,268437504
+ movups xmm0,XMMWORD[rcx]
xorps xmm4,xmm4
- lea rax,QWORD PTR[16+r8]
+ and r10d,DWORD[((OPENSSL_ia32cap_P+4))]
+ lea rax,[16+r8]
cmp edx,256
- je $L$14rounds
+ je NEAR $L$14rounds
cmp edx,192
- je $L$12rounds
+ je NEAR $L$12rounds
cmp edx,128
- jne $L$bad_keybits
+ jne NEAR $L$bad_keybits
-$L$10rounds::
+$L$10rounds:
mov edx,9
- movups XMMWORD PTR[r8],xmm0
+ cmp r10d,268435456
+ je NEAR $L$10rounds_alt
+
+ movups XMMWORD[r8],xmm0
DB 102,15,58,223,200,1
call $L$key_expansion_128_cold
DB 102,15,58,223,200,2
@@ -3226,16 +3445,86 @@ DB 102,15,58,223,200,27
call $L$key_expansion_128
DB 102,15,58,223,200,54
call $L$key_expansion_128
- movups XMMWORD PTR[rax],xmm0
- mov DWORD PTR[80+rax],edx
+ movups XMMWORD[rax],xmm0
+ mov DWORD[80+rax],edx
+ xor eax,eax
+ jmp NEAR $L$enc_key_ret
+
+ALIGN 16
+$L$10rounds_alt:
+ movdqa xmm5,XMMWORD[$L$key_rotate]
+ mov r10d,8
+ movdqa xmm4,XMMWORD[$L$key_rcon1]
+ movdqa xmm2,xmm0
+ movdqu XMMWORD[r8],xmm0
+ jmp NEAR $L$oop_key128
+
+ALIGN 16
+$L$oop_key128:
+DB 102,15,56,0,197
+DB 102,15,56,221,196
+ pslld xmm4,1
+ lea rax,[16+rax]
+
+ movdqa xmm3,xmm2
+ pslldq xmm2,4
+ pxor xmm3,xmm2
+ pslldq xmm2,4
+ pxor xmm3,xmm2
+ pslldq xmm2,4
+ pxor xmm2,xmm3
+
+ pxor xmm0,xmm2
+ movdqu XMMWORD[(-16)+rax],xmm0
+ movdqa xmm2,xmm0
+
+ dec r10d
+ jnz NEAR $L$oop_key128
+
+ movdqa xmm4,XMMWORD[$L$key_rcon1b]
+
+DB 102,15,56,0,197
+DB 102,15,56,221,196
+ pslld xmm4,1
+
+ movdqa xmm3,xmm2
+ pslldq xmm2,4
+ pxor xmm3,xmm2
+ pslldq xmm2,4
+ pxor xmm3,xmm2
+ pslldq xmm2,4
+ pxor xmm2,xmm3
+
+ pxor xmm0,xmm2
+ movdqu XMMWORD[rax],xmm0
+
+ movdqa xmm2,xmm0
+DB 102,15,56,0,197
+DB 102,15,56,221,196
+
+ movdqa xmm3,xmm2
+ pslldq xmm2,4
+ pxor xmm3,xmm2
+ pslldq xmm2,4
+ pxor xmm3,xmm2
+ pslldq xmm2,4
+ pxor xmm2,xmm3
+
+ pxor xmm0,xmm2
+ movdqu XMMWORD[16+rax],xmm0
+
+ mov DWORD[96+rax],edx
xor eax,eax
- jmp $L$enc_key_ret
+ jmp NEAR $L$enc_key_ret
ALIGN 16
-$L$12rounds::
- movq xmm2,QWORD PTR[16+rcx]
+$L$12rounds:
+ movq xmm2,QWORD[16+rcx]
mov edx,11
- movups XMMWORD PTR[r8],xmm0
+ cmp r10d,268435456
+ je NEAR $L$12rounds_alt
+
+ movups XMMWORD[r8],xmm0
DB 102,15,58,223,202,1
call $L$key_expansion_192a_cold
DB 102,15,58,223,202,2
@@ -3252,18 +3541,62 @@ DB 102,15,58,223,202,64
call $L$key_expansion_192a
DB 102,15,58,223,202,128
call $L$key_expansion_192b
- movups XMMWORD PTR[rax],xmm0
- mov DWORD PTR[48+rax],edx
+ movups XMMWORD[rax],xmm0
+ mov DWORD[48+rax],edx
xor rax,rax
- jmp $L$enc_key_ret
+ jmp NEAR $L$enc_key_ret
+
+ALIGN 16
+$L$12rounds_alt:
+ movdqa xmm5,XMMWORD[$L$key_rotate192]
+ movdqa xmm4,XMMWORD[$L$key_rcon1]
+ mov r10d,8
+ movdqu XMMWORD[r8],xmm0
+ jmp NEAR $L$oop_key192
+
+ALIGN 16
+$L$oop_key192:
+ movq QWORD[rax],xmm2
+ movdqa xmm1,xmm2
+DB 102,15,56,0,213
+DB 102,15,56,221,212
+ pslld xmm4,1
+ lea rax,[24+rax]
+
+ movdqa xmm3,xmm0
+ pslldq xmm0,4
+ pxor xmm3,xmm0
+ pslldq xmm0,4
+ pxor xmm3,xmm0
+ pslldq xmm0,4
+ pxor xmm0,xmm3
+
+ pshufd xmm3,xmm0,0xff
+ pxor xmm3,xmm1
+ pslldq xmm1,4
+ pxor xmm3,xmm1
+
+ pxor xmm0,xmm2
+ pxor xmm2,xmm3
+ movdqu XMMWORD[(-16)+rax],xmm0
+
+ dec r10d
+ jnz NEAR $L$oop_key192
+
+ mov DWORD[32+rax],edx
+ xor eax,eax
+ jmp NEAR $L$enc_key_ret
ALIGN 16
-$L$14rounds::
- movups xmm2,XMMWORD PTR[16+rcx]
+$L$14rounds:
+ movups xmm2,XMMWORD[16+rcx]
mov edx,13
- lea rax,QWORD PTR[16+rax]
- movups XMMWORD PTR[r8],xmm0
- movups XMMWORD PTR[16+r8],xmm2
+ lea rax,[16+rax]
+ cmp r10d,268435456
+ je NEAR $L$14rounds_alt
+
+ movups XMMWORD[r8],xmm0
+ movups XMMWORD[16+r8],xmm2
DB 102,15,58,223,202,1
call $L$key_expansion_256a_cold
DB 102,15,58,223,200,1
@@ -3290,24 +3623,84 @@ DB 102,15,58,223,200,32
call $L$key_expansion_256b
DB 102,15,58,223,202,64
call $L$key_expansion_256a
- movups XMMWORD PTR[rax],xmm0
- mov DWORD PTR[16+rax],edx
+ movups XMMWORD[rax],xmm0
+ mov DWORD[16+rax],edx
xor rax,rax
- jmp $L$enc_key_ret
+ jmp NEAR $L$enc_key_ret
+
+ALIGN 16
+$L$14rounds_alt:
+ movdqa xmm5,XMMWORD[$L$key_rotate]
+ movdqa xmm4,XMMWORD[$L$key_rcon1]
+ mov r10d,7
+ movdqu XMMWORD[r8],xmm0
+ movdqa xmm1,xmm2
+ movdqu XMMWORD[16+r8],xmm2
+ jmp NEAR $L$oop_key256
ALIGN 16
-$L$bad_keybits::
+$L$oop_key256:
+DB 102,15,56,0,213
+DB 102,15,56,221,212
+
+ movdqa xmm3,xmm0
+ pslldq xmm0,4
+ pxor xmm3,xmm0
+ pslldq xmm0,4
+ pxor xmm3,xmm0
+ pslldq xmm0,4
+ pxor xmm0,xmm3
+ pslld xmm4,1
+
+ pxor xmm0,xmm2
+ movdqu XMMWORD[rax],xmm0
+
+ dec r10d
+ jz NEAR $L$done_key256
+
+ pshufd xmm2,xmm0,0xff
+ pxor xmm3,xmm3
+DB 102,15,56,221,211
+
+ movdqa xmm3,xmm1
+ pslldq xmm1,4
+ pxor xmm3,xmm1
+ pslldq xmm1,4
+ pxor xmm3,xmm1
+ pslldq xmm1,4
+ pxor xmm1,xmm3
+
+ pxor xmm2,xmm1
+ movdqu XMMWORD[16+rax],xmm2
+ lea rax,[32+rax]
+ movdqa xmm1,xmm2
+
+ jmp NEAR $L$oop_key256
+
+$L$done_key256:
+ mov DWORD[16+rax],edx
+ xor eax,eax
+ jmp NEAR $L$enc_key_ret
+
+ALIGN 16
+$L$bad_keybits:
mov rax,-2
-$L$enc_key_ret::
+$L$enc_key_ret:
+ pxor xmm0,xmm0
+ pxor xmm1,xmm1
+ pxor xmm2,xmm2
+ pxor xmm3,xmm3
+ pxor xmm4,xmm4
+ pxor xmm5,xmm5
add rsp,8
DB 0F3h,0C3h ;repret
-$L$SEH_end_set_encrypt_key::
+$L$SEH_end_set_encrypt_key:
ALIGN 16
-$L$key_expansion_128::
- movups XMMWORD PTR[rax],xmm0
- lea rax,QWORD PTR[16+rax]
-$L$key_expansion_128_cold::
+$L$key_expansion_128:
+ movups XMMWORD[rax],xmm0
+ lea rax,[16+rax]
+$L$key_expansion_128_cold:
shufps xmm4,xmm0,16
xorps xmm0,xmm4
shufps xmm4,xmm0,140
@@ -3317,12 +3710,12 @@ $L$key_expansion_128_cold::
DB 0F3h,0C3h ;repret
ALIGN 16
-$L$key_expansion_192a::
- movups XMMWORD PTR[rax],xmm0
- lea rax,QWORD PTR[16+rax]
-$L$key_expansion_192a_cold::
+$L$key_expansion_192a:
+ movups XMMWORD[rax],xmm0
+ lea rax,[16+rax]
+$L$key_expansion_192a_cold:
movaps xmm5,xmm2
-$L$key_expansion_192b_warm::
+$L$key_expansion_192b_warm:
shufps xmm4,xmm0,16
movdqa xmm3,xmm2
xorps xmm0,xmm4
@@ -3337,20 +3730,20 @@ $L$key_expansion_192b_warm::
DB 0F3h,0C3h ;repret
ALIGN 16
-$L$key_expansion_192b::
+$L$key_expansion_192b:
movaps xmm3,xmm0
shufps xmm5,xmm0,68
- movups XMMWORD PTR[rax],xmm5
+ movups XMMWORD[rax],xmm5
shufps xmm3,xmm2,78
- movups XMMWORD PTR[16+rax],xmm3
- lea rax,QWORD PTR[32+rax]
- jmp $L$key_expansion_192b_warm
+ movups XMMWORD[16+rax],xmm3
+ lea rax,[32+rax]
+ jmp NEAR $L$key_expansion_192b_warm
ALIGN 16
-$L$key_expansion_256a::
- movups XMMWORD PTR[rax],xmm2
- lea rax,QWORD PTR[16+rax]
-$L$key_expansion_256a_cold::
+$L$key_expansion_256a:
+ movups XMMWORD[rax],xmm2
+ lea rax,[16+rax]
+$L$key_expansion_256a_cold:
shufps xmm4,xmm0,16
xorps xmm0,xmm4
shufps xmm4,xmm0,140
@@ -3360,9 +3753,9 @@ $L$key_expansion_256a_cold::
DB 0F3h,0C3h ;repret
ALIGN 16
-$L$key_expansion_256b::
- movups XMMWORD PTR[rax],xmm0
- lea rax,QWORD PTR[16+rax]
+$L$key_expansion_256b:
+ movups XMMWORD[rax],xmm0
+ lea rax,[16+rax]
shufps xmm4,xmm2,16
xorps xmm2,xmm4
@@ -3371,29 +3764,37 @@ $L$key_expansion_256b::
shufps xmm1,xmm1,170
xorps xmm2,xmm1
DB 0F3h,0C3h ;repret
-aesni_set_encrypt_key ENDP
+
ALIGN 64
-$L$bswap_mask::
+$L$bswap_mask:
DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
-$L$increment32::
+$L$increment32:
DD 6,6,6,0
-$L$increment64::
+$L$increment64:
DD 1,0,0,0
-$L$xts_magic::
- DD 087h,0,1,0
-$L$increment1::
+$L$xts_magic:
+ DD 0x87,0,1,0
+$L$increment1:
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+$L$key_rotate:
+ DD 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d
+$L$key_rotate192:
+ DD 0x04070605,0x04070605,0x04070605,0x04070605
+$L$key_rcon1:
+ DD 1,1,1,1
+$L$key_rcon1b:
+ DD 0x1b,0x1b,0x1b,0x1b
DB 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
DB 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
DB 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
DB 115,108,46,111,114,103,62,0
ALIGN 64
-EXTERN __imp_RtlVirtualUnwind:NEAR
+EXTERN __imp_RtlVirtualUnwind
ALIGN 16
-ecb_ccm64_se_handler PROC PRIVATE
+ecb_ccm64_se_handler:
push rsi
push rdi
push rbx
@@ -3405,36 +3806,36 @@ ecb_ccm64_se_handler PROC PRIVATE
pushfq
sub rsp,64
- mov rax,QWORD PTR[120+r8]
- mov rbx,QWORD PTR[248+r8]
+ mov rax,QWORD[120+r8]
+ mov rbx,QWORD[248+r8]
- mov rsi,QWORD PTR[8+r9]
- mov r11,QWORD PTR[56+r9]
+ mov rsi,QWORD[8+r9]
+ mov r11,QWORD[56+r9]
- mov r10d,DWORD PTR[r11]
- lea r10,QWORD PTR[r10*1+rsi]
+ mov r10d,DWORD[r11]
+ lea r10,[r10*1+rsi]
cmp rbx,r10
- jb $L$common_seh_tail
+ jb NEAR $L$common_seh_tail
- mov rax,QWORD PTR[152+r8]
+ mov rax,QWORD[152+r8]
- mov r10d,DWORD PTR[4+r11]
- lea r10,QWORD PTR[r10*1+rsi]
+ mov r10d,DWORD[4+r11]
+ lea r10,[r10*1+rsi]
cmp rbx,r10
- jae $L$common_seh_tail
+ jae NEAR $L$common_seh_tail
- lea rsi,QWORD PTR[rax]
- lea rdi,QWORD PTR[512+r8]
+ lea rsi,[rax]
+ lea rdi,[512+r8]
mov ecx,8
- DD 0a548f3fch
- lea rax,QWORD PTR[88+rax]
+ DD 0xa548f3fc
+ lea rax,[88+rax]
+
+ jmp NEAR $L$common_seh_tail
- jmp $L$common_seh_tail
-ecb_ccm64_se_handler ENDP
ALIGN 16
-ctr_xts_se_handler PROC PRIVATE
+ctr_xts_se_handler:
push rsi
push rdi
push rbx
@@ -3446,35 +3847,35 @@ ctr_xts_se_handler PROC PRIVATE
pushfq
sub rsp,64
- mov rax,QWORD PTR[120+r8]
- mov rbx,QWORD PTR[248+r8]
+ mov rax,QWORD[120+r8]
+ mov rbx,QWORD[248+r8]
- mov rsi,QWORD PTR[8+r9]
- mov r11,QWORD PTR[56+r9]
+ mov rsi,QWORD[8+r9]
+ mov r11,QWORD[56+r9]
- mov r10d,DWORD PTR[r11]
- lea r10,QWORD PTR[r10*1+rsi]
+ mov r10d,DWORD[r11]
+ lea r10,[r10*1+rsi]
cmp rbx,r10
- jb $L$common_seh_tail
+ jb NEAR $L$common_seh_tail
- mov rax,QWORD PTR[152+r8]
+ mov rax,QWORD[152+r8]
- mov r10d,DWORD PTR[4+r11]
- lea r10,QWORD PTR[r10*1+rsi]
+ mov r10d,DWORD[4+r11]
+ lea r10,[r10*1+rsi]
cmp rbx,r10
- jae $L$common_seh_tail
+ jae NEAR $L$common_seh_tail
- mov rax,QWORD PTR[160+r8]
- lea rsi,QWORD PTR[((-160))+rax]
- lea rdi,QWORD PTR[512+r8]
+ mov rax,QWORD[160+r8]
+ lea rsi,[((-160))+rax]
+ lea rdi,[512+r8]
mov ecx,20
- DD 0a548f3fch
+ DD 0xa548f3fc
+
+ jmp NEAR $L$common_rbp_tail
- jmp $L$common_rbp_tail
-ctr_xts_se_handler ENDP
ALIGN 16
-cbc_se_handler PROC PRIVATE
+cbc_se_handler:
push rsi
push rdi
push rbx
@@ -3486,61 +3887,61 @@ cbc_se_handler PROC PRIVATE
pushfq
sub rsp,64
- mov rax,QWORD PTR[152+r8]
- mov rbx,QWORD PTR[248+r8]
+ mov rax,QWORD[152+r8]
+ mov rbx,QWORD[248+r8]
- lea r10,QWORD PTR[$L$cbc_decrypt]
+ lea r10,[$L$cbc_decrypt_bulk]
cmp rbx,r10
- jb $L$common_seh_tail
+ jb NEAR $L$common_seh_tail
- lea r10,QWORD PTR[$L$cbc_decrypt_body]
+ lea r10,[$L$cbc_decrypt_body]
cmp rbx,r10
- jb $L$restore_cbc_rax
+ jb NEAR $L$restore_cbc_rax
- lea r10,QWORD PTR[$L$cbc_ret]
+ lea r10,[$L$cbc_ret]
cmp rbx,r10
- jae $L$common_seh_tail
+ jae NEAR $L$common_seh_tail
- lea rsi,QWORD PTR[16+rax]
- lea rdi,QWORD PTR[512+r8]
+ lea rsi,[16+rax]
+ lea rdi,[512+r8]
mov ecx,20
- DD 0a548f3fch
-
-$L$common_rbp_tail::
- mov rax,QWORD PTR[160+r8]
- mov rbp,QWORD PTR[rax]
- lea rax,QWORD PTR[8+rax]
- mov QWORD PTR[160+r8],rbp
- jmp $L$common_seh_tail
-
-$L$restore_cbc_rax::
- mov rax,QWORD PTR[120+r8]
-
-$L$common_seh_tail::
- mov rdi,QWORD PTR[8+rax]
- mov rsi,QWORD PTR[16+rax]
- mov QWORD PTR[152+r8],rax
- mov QWORD PTR[168+r8],rsi
- mov QWORD PTR[176+r8],rdi
-
- mov rdi,QWORD PTR[40+r9]
+ DD 0xa548f3fc
+
+$L$common_rbp_tail:
+ mov rax,QWORD[160+r8]
+ mov rbp,QWORD[rax]
+ lea rax,[8+rax]
+ mov QWORD[160+r8],rbp
+ jmp NEAR $L$common_seh_tail
+
+$L$restore_cbc_rax:
+ mov rax,QWORD[120+r8]
+
+$L$common_seh_tail:
+ mov rdi,QWORD[8+rax]
+ mov rsi,QWORD[16+rax]
+ mov QWORD[152+r8],rax
+ mov QWORD[168+r8],rsi
+ mov QWORD[176+r8],rdi
+
+ mov rdi,QWORD[40+r9]
mov rsi,r8
mov ecx,154
- DD 0a548f3fch
+ DD 0xa548f3fc
mov rsi,r9
xor rcx,rcx
- mov rdx,QWORD PTR[8+rsi]
- mov r8,QWORD PTR[rsi]
- mov r9,QWORD PTR[16+rsi]
- mov r10,QWORD PTR[40+rsi]
- lea r11,QWORD PTR[56+rsi]
- lea r12,QWORD PTR[24+rsi]
- mov QWORD PTR[32+rsp],r10
- mov QWORD PTR[40+rsp],r11
- mov QWORD PTR[48+rsp],r12
- mov QWORD PTR[56+rsp],rcx
- call QWORD PTR[__imp_RtlVirtualUnwind]
+ mov rdx,QWORD[8+rsi]
+ mov r8,QWORD[rsi]
+ mov r9,QWORD[16+rsi]
+ mov r10,QWORD[40+rsi]
+ lea r11,[56+rsi]
+ lea r12,[24+rsi]
+ mov QWORD[32+rsp],r10
+ mov QWORD[40+rsp],r11
+ mov QWORD[48+rsp],r12
+ mov QWORD[56+rsp],rcx
+ call QWORD[__imp_RtlVirtualUnwind]
mov eax,1
add rsp,64
@@ -3554,78 +3955,73 @@ $L$common_seh_tail::
pop rdi
pop rsi
DB 0F3h,0C3h ;repret
-cbc_se_handler ENDP
-.text$ ENDS
-.pdata SEGMENT READONLY ALIGN(4)
+
+section .pdata rdata align=4
ALIGN 4
- DD imagerel $L$SEH_begin_aesni_ecb_encrypt
- DD imagerel $L$SEH_end_aesni_ecb_encrypt
- DD imagerel $L$SEH_info_ecb
-
- DD imagerel $L$SEH_begin_aesni_ccm64_encrypt_blocks
- DD imagerel $L$SEH_end_aesni_ccm64_encrypt_blocks
- DD imagerel $L$SEH_info_ccm64_enc
-
- DD imagerel $L$SEH_begin_aesni_ccm64_decrypt_blocks
- DD imagerel $L$SEH_end_aesni_ccm64_decrypt_blocks
- DD imagerel $L$SEH_info_ccm64_dec
-
- DD imagerel $L$SEH_begin_aesni_ctr32_encrypt_blocks
- DD imagerel $L$SEH_end_aesni_ctr32_encrypt_blocks
- DD imagerel $L$SEH_info_ctr32
-
- DD imagerel $L$SEH_begin_aesni_xts_encrypt
- DD imagerel $L$SEH_end_aesni_xts_encrypt
- DD imagerel $L$SEH_info_xts_enc
-
- DD imagerel $L$SEH_begin_aesni_xts_decrypt
- DD imagerel $L$SEH_end_aesni_xts_decrypt
- DD imagerel $L$SEH_info_xts_dec
- DD imagerel $L$SEH_begin_aesni_cbc_encrypt
- DD imagerel $L$SEH_end_aesni_cbc_encrypt
- DD imagerel $L$SEH_info_cbc
-
- DD imagerel aesni_set_decrypt_key
- DD imagerel $L$SEH_end_set_decrypt_key
- DD imagerel $L$SEH_info_key
-
- DD imagerel aesni_set_encrypt_key
- DD imagerel $L$SEH_end_set_encrypt_key
- DD imagerel $L$SEH_info_key
-.pdata ENDS
-.xdata SEGMENT READONLY ALIGN(8)
+ DD $L$SEH_begin_aesni_ecb_encrypt wrt ..imagebase
+ DD $L$SEH_end_aesni_ecb_encrypt wrt ..imagebase
+ DD $L$SEH_info_ecb wrt ..imagebase
+
+ DD $L$SEH_begin_aesni_ccm64_encrypt_blocks wrt ..imagebase
+ DD $L$SEH_end_aesni_ccm64_encrypt_blocks wrt ..imagebase
+ DD $L$SEH_info_ccm64_enc wrt ..imagebase
+
+ DD $L$SEH_begin_aesni_ccm64_decrypt_blocks wrt ..imagebase
+ DD $L$SEH_end_aesni_ccm64_decrypt_blocks wrt ..imagebase
+ DD $L$SEH_info_ccm64_dec wrt ..imagebase
+
+ DD $L$SEH_begin_aesni_ctr32_encrypt_blocks wrt ..imagebase
+ DD $L$SEH_end_aesni_ctr32_encrypt_blocks wrt ..imagebase
+ DD $L$SEH_info_ctr32 wrt ..imagebase
+
+ DD $L$SEH_begin_aesni_xts_encrypt wrt ..imagebase
+ DD $L$SEH_end_aesni_xts_encrypt wrt ..imagebase
+ DD $L$SEH_info_xts_enc wrt ..imagebase
+
+ DD $L$SEH_begin_aesni_xts_decrypt wrt ..imagebase
+ DD $L$SEH_end_aesni_xts_decrypt wrt ..imagebase
+ DD $L$SEH_info_xts_dec wrt ..imagebase
+ DD $L$SEH_begin_aesni_cbc_encrypt wrt ..imagebase
+ DD $L$SEH_end_aesni_cbc_encrypt wrt ..imagebase
+ DD $L$SEH_info_cbc wrt ..imagebase
+
+ DD aesni_set_decrypt_key wrt ..imagebase
+ DD $L$SEH_end_set_decrypt_key wrt ..imagebase
+ DD $L$SEH_info_key wrt ..imagebase
+
+ DD aesni_set_encrypt_key wrt ..imagebase
+ DD $L$SEH_end_set_encrypt_key wrt ..imagebase
+ DD $L$SEH_info_key wrt ..imagebase
+section .xdata rdata align=8
ALIGN 8
-$L$SEH_info_ecb::
+$L$SEH_info_ecb:
DB 9,0,0,0
- DD imagerel ecb_ccm64_se_handler
- DD imagerel $L$ecb_enc_body,imagerel $L$ecb_enc_ret
-$L$SEH_info_ccm64_enc::
+ DD ecb_ccm64_se_handler wrt ..imagebase
+ DD $L$ecb_enc_body wrt ..imagebase,$L$ecb_enc_ret wrt ..imagebase
+$L$SEH_info_ccm64_enc:
DB 9,0,0,0
- DD imagerel ecb_ccm64_se_handler
- DD imagerel $L$ccm64_enc_body,imagerel $L$ccm64_enc_ret
-$L$SEH_info_ccm64_dec::
+ DD ecb_ccm64_se_handler wrt ..imagebase
+ DD $L$ccm64_enc_body wrt ..imagebase,$L$ccm64_enc_ret wrt ..imagebase
+$L$SEH_info_ccm64_dec:
DB 9,0,0,0
- DD imagerel ecb_ccm64_se_handler
- DD imagerel $L$ccm64_dec_body,imagerel $L$ccm64_dec_ret
-$L$SEH_info_ctr32::
+ DD ecb_ccm64_se_handler wrt ..imagebase
+ DD $L$ccm64_dec_body wrt ..imagebase,$L$ccm64_dec_ret wrt ..imagebase
+$L$SEH_info_ctr32:
DB 9,0,0,0
- DD imagerel ctr_xts_se_handler
- DD imagerel $L$ctr32_body,imagerel $L$ctr32_epilogue
-$L$SEH_info_xts_enc::
+ DD ctr_xts_se_handler wrt ..imagebase
+ DD $L$ctr32_body wrt ..imagebase,$L$ctr32_epilogue wrt ..imagebase
+$L$SEH_info_xts_enc:
DB 9,0,0,0
- DD imagerel ctr_xts_se_handler
- DD imagerel $L$xts_enc_body,imagerel $L$xts_enc_epilogue
-$L$SEH_info_xts_dec::
+ DD ctr_xts_se_handler wrt ..imagebase
+ DD $L$xts_enc_body wrt ..imagebase,$L$xts_enc_epilogue wrt ..imagebase
+$L$SEH_info_xts_dec:
DB 9,0,0,0
- DD imagerel ctr_xts_se_handler
- DD imagerel $L$xts_dec_body,imagerel $L$xts_dec_epilogue
-$L$SEH_info_cbc::
+ DD ctr_xts_se_handler wrt ..imagebase
+ DD $L$xts_dec_body wrt ..imagebase,$L$xts_dec_epilogue wrt ..imagebase
+$L$SEH_info_cbc:
DB 9,0,0,0
- DD imagerel cbc_se_handler
-$L$SEH_info_key::
-DB 001h,004h,001h,000h
-DB 004h,002h,000h,000h
-
-.xdata ENDS
-END
+ DD cbc_se_handler wrt ..imagebase
+$L$SEH_info_key:
+DB 0x01,0x04,0x01,0x00
+DB 0x04,0x02,0x00,0x00
diff --git a/win-x86_64/crypto/aes/bsaes-x86_64.asm b/win-x86_64/crypto/aes/bsaes-x86_64.asm
index 3346a7e..6d75248 100644
--- a/win-x86_64/crypto/aes/bsaes-x86_64.asm
+++ b/win-x86_64/crypto/aes/bsaes-x86_64.asm
@@ -1,17 +1,21 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
-EXTERN asm_AES_encrypt:NEAR
-EXTERN asm_AES_decrypt:NEAR
+
+EXTERN asm_AES_encrypt
+EXTERN asm_AES_decrypt
ALIGN 64
-_bsaes_encrypt8 PROC PRIVATE
- lea r11,QWORD PTR[$L$BS0]
+_bsaes_encrypt8:
+ lea r11,[$L$BS0]
- movdqa xmm8,XMMWORD PTR[rax]
- lea rax,QWORD PTR[16+rax]
- movdqa xmm7,XMMWORD PTR[80+r11]
+ movdqa xmm8,XMMWORD[rax]
+ lea rax,[16+rax]
+ movdqa xmm7,XMMWORD[80+r11]
pxor xmm15,xmm8
pxor xmm0,xmm8
pxor xmm1,xmm8
@@ -28,9 +32,9 @@ DB 102,15,56,0,223
DB 102,15,56,0,231
DB 102,15,56,0,239
DB 102,15,56,0,247
-_bsaes_encrypt8_bitslice::
- movdqa xmm7,XMMWORD PTR[r11]
- movdqa xmm8,XMMWORD PTR[16+r11]
+_bsaes_encrypt8_bitslice:
+ movdqa xmm7,XMMWORD[r11]
+ movdqa xmm8,XMMWORD[16+r11]
movdqa xmm9,xmm5
psrlq xmm5,1
movdqa xmm10,xmm3
@@ -59,7 +63,7 @@ _bsaes_encrypt8_bitslice::
psllq xmm15,1
pxor xmm1,xmm9
pxor xmm15,xmm10
- movdqa xmm7,XMMWORD PTR[32+r11]
+ movdqa xmm7,XMMWORD[32+r11]
movdqa xmm9,xmm4
psrlq xmm4,2
movdqa xmm10,xmm3
@@ -117,27 +121,27 @@ _bsaes_encrypt8_bitslice::
pxor xmm0,xmm9
pxor xmm15,xmm10
dec r10d
- jmp $L$enc_sbox
+ jmp NEAR $L$enc_sbox
ALIGN 16
-$L$enc_loop::
- pxor xmm15,XMMWORD PTR[rax]
- pxor xmm0,XMMWORD PTR[16+rax]
- pxor xmm1,XMMWORD PTR[32+rax]
- pxor xmm2,XMMWORD PTR[48+rax]
+$L$enc_loop:
+ pxor xmm15,XMMWORD[rax]
+ pxor xmm0,XMMWORD[16+rax]
+ pxor xmm1,XMMWORD[32+rax]
+ pxor xmm2,XMMWORD[48+rax]
DB 102,68,15,56,0,255
DB 102,15,56,0,199
- pxor xmm3,XMMWORD PTR[64+rax]
- pxor xmm4,XMMWORD PTR[80+rax]
+ pxor xmm3,XMMWORD[64+rax]
+ pxor xmm4,XMMWORD[80+rax]
DB 102,15,56,0,207
DB 102,15,56,0,215
- pxor xmm5,XMMWORD PTR[96+rax]
- pxor xmm6,XMMWORD PTR[112+rax]
+ pxor xmm5,XMMWORD[96+rax]
+ pxor xmm6,XMMWORD[112+rax]
DB 102,15,56,0,223
DB 102,15,56,0,231
DB 102,15,56,0,239
DB 102,15,56,0,247
- lea rax,QWORD PTR[128+rax]
-$L$enc_sbox::
+ lea rax,[128+rax]
+$L$enc_sbox:
pxor xmm4,xmm5
pxor xmm1,xmm0
pxor xmm2,xmm15
@@ -324,46 +328,46 @@ $L$enc_sbox::
pxor xmm5,xmm2
dec r10d
- jl $L$enc_done
- pshufd xmm7,xmm15,093h
- pshufd xmm8,xmm0,093h
+ jl NEAR $L$enc_done
+ pshufd xmm7,xmm15,0x93
+ pshufd xmm8,xmm0,0x93
pxor xmm15,xmm7
- pshufd xmm9,xmm3,093h
+ pshufd xmm9,xmm3,0x93
pxor xmm0,xmm8
- pshufd xmm10,xmm5,093h
+ pshufd xmm10,xmm5,0x93
pxor xmm3,xmm9
- pshufd xmm11,xmm2,093h
+ pshufd xmm11,xmm2,0x93
pxor xmm5,xmm10
- pshufd xmm12,xmm6,093h
+ pshufd xmm12,xmm6,0x93
pxor xmm2,xmm11
- pshufd xmm13,xmm1,093h
+ pshufd xmm13,xmm1,0x93
pxor xmm6,xmm12
- pshufd xmm14,xmm4,093h
+ pshufd xmm14,xmm4,0x93
pxor xmm1,xmm13
pxor xmm4,xmm14
pxor xmm8,xmm15
pxor xmm7,xmm4
pxor xmm8,xmm4
- pshufd xmm15,xmm15,04Eh
+ pshufd xmm15,xmm15,0x4E
pxor xmm9,xmm0
- pshufd xmm0,xmm0,04Eh
+ pshufd xmm0,xmm0,0x4E
pxor xmm12,xmm2
pxor xmm15,xmm7
pxor xmm13,xmm6
pxor xmm0,xmm8
pxor xmm11,xmm5
- pshufd xmm7,xmm2,04Eh
+ pshufd xmm7,xmm2,0x4E
pxor xmm14,xmm1
- pshufd xmm8,xmm6,04Eh
+ pshufd xmm8,xmm6,0x4E
pxor xmm10,xmm3
- pshufd xmm2,xmm5,04Eh
+ pshufd xmm2,xmm5,0x4E
pxor xmm10,xmm4
- pshufd xmm6,xmm4,04Eh
+ pshufd xmm6,xmm4,0x4E
pxor xmm11,xmm4
- pshufd xmm5,xmm1,04Eh
+ pshufd xmm5,xmm1,0x4E
pxor xmm7,xmm11
- pshufd xmm1,xmm3,04Eh
+ pshufd xmm1,xmm3,0x4E
pxor xmm8,xmm12
pxor xmm2,xmm10
pxor xmm6,xmm14
@@ -371,14 +375,14 @@ $L$enc_sbox::
movdqa xmm3,xmm7
pxor xmm1,xmm9
movdqa xmm4,xmm8
- movdqa xmm7,XMMWORD PTR[48+r11]
- jnz $L$enc_loop
- movdqa xmm7,XMMWORD PTR[64+r11]
- jmp $L$enc_loop
+ movdqa xmm7,XMMWORD[48+r11]
+ jnz NEAR $L$enc_loop
+ movdqa xmm7,XMMWORD[64+r11]
+ jmp NEAR $L$enc_loop
ALIGN 16
-$L$enc_done::
- movdqa xmm7,XMMWORD PTR[r11]
- movdqa xmm8,XMMWORD PTR[16+r11]
+$L$enc_done:
+ movdqa xmm7,XMMWORD[r11]
+ movdqa xmm8,XMMWORD[16+r11]
movdqa xmm9,xmm1
psrlq xmm1,1
movdqa xmm10,xmm2
@@ -407,7 +411,7 @@ $L$enc_done::
psllq xmm15,1
pxor xmm3,xmm9
pxor xmm15,xmm10
- movdqa xmm7,XMMWORD PTR[32+r11]
+ movdqa xmm7,XMMWORD[32+r11]
movdqa xmm9,xmm6
psrlq xmm6,2
movdqa xmm10,xmm2
@@ -464,7 +468,7 @@ $L$enc_done::
psllq xmm15,4
pxor xmm0,xmm9
pxor xmm15,xmm10
- movdqa xmm7,XMMWORD PTR[rax]
+ movdqa xmm7,XMMWORD[rax]
pxor xmm3,xmm7
pxor xmm5,xmm7
pxor xmm2,xmm7
@@ -474,16 +478,16 @@ $L$enc_done::
pxor xmm15,xmm7
pxor xmm0,xmm7
DB 0F3h,0C3h ;repret
-_bsaes_encrypt8 ENDP
+
ALIGN 64
-_bsaes_decrypt8 PROC PRIVATE
- lea r11,QWORD PTR[$L$BS0]
+_bsaes_decrypt8:
+ lea r11,[$L$BS0]
- movdqa xmm8,XMMWORD PTR[rax]
- lea rax,QWORD PTR[16+rax]
- movdqa xmm7,XMMWORD PTR[((-48))+r11]
+ movdqa xmm8,XMMWORD[rax]
+ lea rax,[16+rax]
+ movdqa xmm7,XMMWORD[((-48))+r11]
pxor xmm15,xmm8
pxor xmm0,xmm8
pxor xmm1,xmm8
@@ -500,8 +504,8 @@ DB 102,15,56,0,223
DB 102,15,56,0,231
DB 102,15,56,0,239
DB 102,15,56,0,247
- movdqa xmm7,XMMWORD PTR[r11]
- movdqa xmm8,XMMWORD PTR[16+r11]
+ movdqa xmm7,XMMWORD[r11]
+ movdqa xmm8,XMMWORD[16+r11]
movdqa xmm9,xmm5
psrlq xmm5,1
movdqa xmm10,xmm3
@@ -530,7 +534,7 @@ DB 102,15,56,0,247
psllq xmm15,1
pxor xmm1,xmm9
pxor xmm15,xmm10
- movdqa xmm7,XMMWORD PTR[32+r11]
+ movdqa xmm7,XMMWORD[32+r11]
movdqa xmm9,xmm4
psrlq xmm4,2
movdqa xmm10,xmm3
@@ -588,27 +592,27 @@ DB 102,15,56,0,247
pxor xmm0,xmm9
pxor xmm15,xmm10
dec r10d
- jmp $L$dec_sbox
+ jmp NEAR $L$dec_sbox
ALIGN 16
-$L$dec_loop::
- pxor xmm15,XMMWORD PTR[rax]
- pxor xmm0,XMMWORD PTR[16+rax]
- pxor xmm1,XMMWORD PTR[32+rax]
- pxor xmm2,XMMWORD PTR[48+rax]
+$L$dec_loop:
+ pxor xmm15,XMMWORD[rax]
+ pxor xmm0,XMMWORD[16+rax]
+ pxor xmm1,XMMWORD[32+rax]
+ pxor xmm2,XMMWORD[48+rax]
DB 102,68,15,56,0,255
DB 102,15,56,0,199
- pxor xmm3,XMMWORD PTR[64+rax]
- pxor xmm4,XMMWORD PTR[80+rax]
+ pxor xmm3,XMMWORD[64+rax]
+ pxor xmm4,XMMWORD[80+rax]
DB 102,15,56,0,207
DB 102,15,56,0,215
- pxor xmm5,XMMWORD PTR[96+rax]
- pxor xmm6,XMMWORD PTR[112+rax]
+ pxor xmm5,XMMWORD[96+rax]
+ pxor xmm6,XMMWORD[112+rax]
DB 102,15,56,0,223
DB 102,15,56,0,231
DB 102,15,56,0,239
DB 102,15,56,0,247
- lea rax,QWORD PTR[128+rax]
-$L$dec_sbox::
+ lea rax,[128+rax]
+$L$dec_sbox:
pxor xmm2,xmm3
pxor xmm3,xmm6
@@ -795,26 +799,26 @@ $L$dec_sbox::
pxor xmm3,xmm15
pxor xmm6,xmm2
dec r10d
- jl $L$dec_done
+ jl NEAR $L$dec_done
- pshufd xmm7,xmm15,04Eh
- pshufd xmm13,xmm2,04Eh
+ pshufd xmm7,xmm15,0x4E
+ pshufd xmm13,xmm2,0x4E
pxor xmm7,xmm15
- pshufd xmm14,xmm4,04Eh
+ pshufd xmm14,xmm4,0x4E
pxor xmm13,xmm2
- pshufd xmm8,xmm0,04Eh
+ pshufd xmm8,xmm0,0x4E
pxor xmm14,xmm4
- pshufd xmm9,xmm5,04Eh
+ pshufd xmm9,xmm5,0x4E
pxor xmm8,xmm0
- pshufd xmm10,xmm3,04Eh
+ pshufd xmm10,xmm3,0x4E
pxor xmm9,xmm5
pxor xmm15,xmm13
pxor xmm0,xmm13
- pshufd xmm11,xmm1,04Eh
+ pshufd xmm11,xmm1,0x4E
pxor xmm10,xmm3
pxor xmm5,xmm7
pxor xmm3,xmm8
- pshufd xmm12,xmm6,04Eh
+ pshufd xmm12,xmm6,0x4E
pxor xmm11,xmm1
pxor xmm0,xmm14
pxor xmm1,xmm9
@@ -828,45 +832,45 @@ $L$dec_sbox::
pxor xmm1,xmm14
pxor xmm6,xmm14
pxor xmm4,xmm12
- pshufd xmm7,xmm15,093h
- pshufd xmm8,xmm0,093h
+ pshufd xmm7,xmm15,0x93
+ pshufd xmm8,xmm0,0x93
pxor xmm15,xmm7
- pshufd xmm9,xmm5,093h
+ pshufd xmm9,xmm5,0x93
pxor xmm0,xmm8
- pshufd xmm10,xmm3,093h
+ pshufd xmm10,xmm3,0x93
pxor xmm5,xmm9
- pshufd xmm11,xmm1,093h
+ pshufd xmm11,xmm1,0x93
pxor xmm3,xmm10
- pshufd xmm12,xmm6,093h
+ pshufd xmm12,xmm6,0x93
pxor xmm1,xmm11
- pshufd xmm13,xmm2,093h
+ pshufd xmm13,xmm2,0x93
pxor xmm6,xmm12
- pshufd xmm14,xmm4,093h
+ pshufd xmm14,xmm4,0x93
pxor xmm2,xmm13
pxor xmm4,xmm14
pxor xmm8,xmm15
pxor xmm7,xmm4
pxor xmm8,xmm4
- pshufd xmm15,xmm15,04Eh
+ pshufd xmm15,xmm15,0x4E
pxor xmm9,xmm0
- pshufd xmm0,xmm0,04Eh
+ pshufd xmm0,xmm0,0x4E
pxor xmm12,xmm1
pxor xmm15,xmm7
pxor xmm13,xmm6
pxor xmm0,xmm8
pxor xmm11,xmm3
- pshufd xmm7,xmm1,04Eh
+ pshufd xmm7,xmm1,0x4E
pxor xmm14,xmm2
- pshufd xmm8,xmm6,04Eh
+ pshufd xmm8,xmm6,0x4E
pxor xmm10,xmm5
- pshufd xmm1,xmm3,04Eh
+ pshufd xmm1,xmm3,0x4E
pxor xmm10,xmm4
- pshufd xmm6,xmm4,04Eh
+ pshufd xmm6,xmm4,0x4E
pxor xmm11,xmm4
- pshufd xmm3,xmm2,04Eh
+ pshufd xmm3,xmm2,0x4E
pxor xmm7,xmm11
- pshufd xmm2,xmm5,04Eh
+ pshufd xmm2,xmm5,0x4E
pxor xmm8,xmm12
pxor xmm10,xmm1
pxor xmm6,xmm14
@@ -877,14 +881,14 @@ $L$dec_sbox::
movdqa xmm4,xmm8
movdqa xmm1,xmm2
movdqa xmm2,xmm10
- movdqa xmm7,XMMWORD PTR[((-16))+r11]
- jnz $L$dec_loop
- movdqa xmm7,XMMWORD PTR[((-32))+r11]
- jmp $L$dec_loop
+ movdqa xmm7,XMMWORD[((-16))+r11]
+ jnz NEAR $L$dec_loop
+ movdqa xmm7,XMMWORD[((-32))+r11]
+ jmp NEAR $L$dec_loop
ALIGN 16
-$L$dec_done::
- movdqa xmm7,XMMWORD PTR[r11]
- movdqa xmm8,XMMWORD PTR[16+r11]
+$L$dec_done:
+ movdqa xmm7,XMMWORD[r11]
+ movdqa xmm8,XMMWORD[16+r11]
movdqa xmm9,xmm2
psrlq xmm2,1
movdqa xmm10,xmm1
@@ -913,7 +917,7 @@ $L$dec_done::
psllq xmm15,1
pxor xmm5,xmm9
pxor xmm15,xmm10
- movdqa xmm7,XMMWORD PTR[32+r11]
+ movdqa xmm7,XMMWORD[32+r11]
movdqa xmm9,xmm6
psrlq xmm6,2
movdqa xmm10,xmm1
@@ -970,7 +974,7 @@ $L$dec_done::
psllq xmm15,4
pxor xmm0,xmm9
pxor xmm15,xmm10
- movdqa xmm7,XMMWORD PTR[rax]
+ movdqa xmm7,XMMWORD[rax]
pxor xmm5,xmm7
pxor xmm3,xmm7
pxor xmm1,xmm7
@@ -980,27 +984,27 @@ $L$dec_done::
pxor xmm15,xmm7
pxor xmm0,xmm7
DB 0F3h,0C3h ;repret
-_bsaes_decrypt8 ENDP
+
ALIGN 16
-_bsaes_key_convert PROC PRIVATE
- lea r11,QWORD PTR[$L$masks]
- movdqu xmm7,XMMWORD PTR[rcx]
- lea rcx,QWORD PTR[16+rcx]
- movdqa xmm0,XMMWORD PTR[r11]
- movdqa xmm1,XMMWORD PTR[16+r11]
- movdqa xmm2,XMMWORD PTR[32+r11]
- movdqa xmm3,XMMWORD PTR[48+r11]
- movdqa xmm4,XMMWORD PTR[64+r11]
+_bsaes_key_convert:
+ lea r11,[$L$masks]
+ movdqu xmm7,XMMWORD[rcx]
+ lea rcx,[16+rcx]
+ movdqa xmm0,XMMWORD[r11]
+ movdqa xmm1,XMMWORD[16+r11]
+ movdqa xmm2,XMMWORD[32+r11]
+ movdqa xmm3,XMMWORD[48+r11]
+ movdqa xmm4,XMMWORD[64+r11]
pcmpeqd xmm5,xmm5
- movdqu xmm6,XMMWORD PTR[rcx]
- movdqa XMMWORD PTR[rax],xmm7
- lea rax,QWORD PTR[16+rax]
+ movdqu xmm6,XMMWORD[rcx]
+ movdqa XMMWORD[rax],xmm7
+ lea rax,[16+rax]
dec r10d
- jmp $L$key_loop
+ jmp NEAR $L$key_loop
ALIGN 16
-$L$key_loop::
+$L$key_loop:
DB 102,15,56,0,244
movdqa xmm8,xmm0
@@ -1031,73 +1035,73 @@ DB 102,15,56,0,244
pand xmm12,xmm6
pand xmm13,xmm6
- movdqa XMMWORD PTR[rax],xmm8
+ movdqa XMMWORD[rax],xmm8
pcmpeqb xmm12,xmm0
psrlq xmm0,4
- movdqa XMMWORD PTR[16+rax],xmm9
+ movdqa XMMWORD[16+rax],xmm9
pcmpeqb xmm13,xmm1
psrlq xmm1,4
- lea rcx,QWORD PTR[16+rcx]
+ lea rcx,[16+rcx]
pand xmm14,xmm6
pand xmm15,xmm6
- movdqa XMMWORD PTR[32+rax],xmm10
+ movdqa XMMWORD[32+rax],xmm10
pcmpeqb xmm14,xmm2
psrlq xmm2,4
- movdqa XMMWORD PTR[48+rax],xmm11
+ movdqa XMMWORD[48+rax],xmm11
pcmpeqb xmm15,xmm3
psrlq xmm3,4
- movdqu xmm6,XMMWORD PTR[rcx]
+ movdqu xmm6,XMMWORD[rcx]
pxor xmm13,xmm5
pxor xmm14,xmm5
- movdqa XMMWORD PTR[64+rax],xmm12
- movdqa XMMWORD PTR[80+rax],xmm13
- movdqa XMMWORD PTR[96+rax],xmm14
- movdqa XMMWORD PTR[112+rax],xmm15
- lea rax,QWORD PTR[128+rax]
+ movdqa XMMWORD[64+rax],xmm12
+ movdqa XMMWORD[80+rax],xmm13
+ movdqa XMMWORD[96+rax],xmm14
+ movdqa XMMWORD[112+rax],xmm15
+ lea rax,[128+rax]
dec r10d
- jnz $L$key_loop
+ jnz NEAR $L$key_loop
- movdqa xmm7,XMMWORD PTR[80+r11]
+ movdqa xmm7,XMMWORD[80+r11]
DB 0F3h,0C3h ;repret
-_bsaes_key_convert ENDP
-EXTERN asm_AES_cbc_encrypt:NEAR
-PUBLIC bsaes_cbc_encrypt
+
+EXTERN asm_AES_cbc_encrypt
+global bsaes_cbc_encrypt
ALIGN 16
-bsaes_cbc_encrypt PROC PUBLIC
- mov r11d,DWORD PTR[48+rsp]
+bsaes_cbc_encrypt:
+ mov r11d,DWORD[48+rsp]
cmp r11d,0
- jne asm_AES_cbc_encrypt
+ jne NEAR asm_AES_cbc_encrypt
cmp r8,128
- jb asm_AES_cbc_encrypt
+ jb NEAR asm_AES_cbc_encrypt
mov rax,rsp
-$L$cbc_dec_prologue::
+$L$cbc_dec_prologue:
push rbp
push rbx
push r12
push r13
push r14
push r15
- lea rsp,QWORD PTR[((-72))+rsp]
- mov r10,QWORD PTR[160+rsp]
- lea rsp,QWORD PTR[((-160))+rsp]
- movaps XMMWORD PTR[64+rsp],xmm6
- movaps XMMWORD PTR[80+rsp],xmm7
- movaps XMMWORD PTR[96+rsp],xmm8
- movaps XMMWORD PTR[112+rsp],xmm9
- movaps XMMWORD PTR[128+rsp],xmm10
- movaps XMMWORD PTR[144+rsp],xmm11
- movaps XMMWORD PTR[160+rsp],xmm12
- movaps XMMWORD PTR[176+rsp],xmm13
- movaps XMMWORD PTR[192+rsp],xmm14
- movaps XMMWORD PTR[208+rsp],xmm15
-$L$cbc_dec_body::
+ lea rsp,[((-72))+rsp]
+ mov r10,QWORD[160+rsp]
+ lea rsp,[((-160))+rsp]
+ movaps XMMWORD[64+rsp],xmm6
+ movaps XMMWORD[80+rsp],xmm7
+ movaps XMMWORD[96+rsp],xmm8
+ movaps XMMWORD[112+rsp],xmm9
+ movaps XMMWORD[128+rsp],xmm10
+ movaps XMMWORD[144+rsp],xmm11
+ movaps XMMWORD[160+rsp],xmm12
+ movaps XMMWORD[176+rsp],xmm13
+ movaps XMMWORD[192+rsp],xmm14
+ movaps XMMWORD[208+rsp],xmm15
+$L$cbc_dec_body:
mov rbp,rsp
- mov eax,DWORD PTR[240+r9]
+ mov eax,DWORD[240+r9]
mov r12,rcx
mov r13,rdx
mov r14,r8
@@ -1114,267 +1118,267 @@ $L$cbc_dec_body::
mov rcx,r15
mov r10d,edx
call _bsaes_key_convert
- pxor xmm7,XMMWORD PTR[rsp]
- movdqa XMMWORD PTR[rax],xmm6
- movdqa XMMWORD PTR[rsp],xmm7
+ pxor xmm7,XMMWORD[rsp]
+ movdqa XMMWORD[rax],xmm6
+ movdqa XMMWORD[rsp],xmm7
- movdqu xmm14,XMMWORD PTR[rbx]
+ movdqu xmm14,XMMWORD[rbx]
sub r14,8
-$L$cbc_dec_loop::
- movdqu xmm15,XMMWORD PTR[r12]
- movdqu xmm0,XMMWORD PTR[16+r12]
- movdqu xmm1,XMMWORD PTR[32+r12]
- movdqu xmm2,XMMWORD PTR[48+r12]
- movdqu xmm3,XMMWORD PTR[64+r12]
- movdqu xmm4,XMMWORD PTR[80+r12]
+$L$cbc_dec_loop:
+ movdqu xmm15,XMMWORD[r12]
+ movdqu xmm0,XMMWORD[16+r12]
+ movdqu xmm1,XMMWORD[32+r12]
+ movdqu xmm2,XMMWORD[48+r12]
+ movdqu xmm3,XMMWORD[64+r12]
+ movdqu xmm4,XMMWORD[80+r12]
mov rax,rsp
- movdqu xmm5,XMMWORD PTR[96+r12]
+ movdqu xmm5,XMMWORD[96+r12]
mov r10d,edx
- movdqu xmm6,XMMWORD PTR[112+r12]
- movdqa XMMWORD PTR[32+rbp],xmm14
+ movdqu xmm6,XMMWORD[112+r12]
+ movdqa XMMWORD[32+rbp],xmm14
call _bsaes_decrypt8
- pxor xmm15,XMMWORD PTR[32+rbp]
- movdqu xmm7,XMMWORD PTR[r12]
- movdqu xmm8,XMMWORD PTR[16+r12]
+ pxor xmm15,XMMWORD[32+rbp]
+ movdqu xmm7,XMMWORD[r12]
+ movdqu xmm8,XMMWORD[16+r12]
pxor xmm0,xmm7
- movdqu xmm9,XMMWORD PTR[32+r12]
+ movdqu xmm9,XMMWORD[32+r12]
pxor xmm5,xmm8
- movdqu xmm10,XMMWORD PTR[48+r12]
+ movdqu xmm10,XMMWORD[48+r12]
pxor xmm3,xmm9
- movdqu xmm11,XMMWORD PTR[64+r12]
+ movdqu xmm11,XMMWORD[64+r12]
pxor xmm1,xmm10
- movdqu xmm12,XMMWORD PTR[80+r12]
+ movdqu xmm12,XMMWORD[80+r12]
pxor xmm6,xmm11
- movdqu xmm13,XMMWORD PTR[96+r12]
+ movdqu xmm13,XMMWORD[96+r12]
pxor xmm2,xmm12
- movdqu xmm14,XMMWORD PTR[112+r12]
+ movdqu xmm14,XMMWORD[112+r12]
pxor xmm4,xmm13
- movdqu XMMWORD PTR[r13],xmm15
- lea r12,QWORD PTR[128+r12]
- movdqu XMMWORD PTR[16+r13],xmm0
- movdqu XMMWORD PTR[32+r13],xmm5
- movdqu XMMWORD PTR[48+r13],xmm3
- movdqu XMMWORD PTR[64+r13],xmm1
- movdqu XMMWORD PTR[80+r13],xmm6
- movdqu XMMWORD PTR[96+r13],xmm2
- movdqu XMMWORD PTR[112+r13],xmm4
- lea r13,QWORD PTR[128+r13]
+ movdqu XMMWORD[r13],xmm15
+ lea r12,[128+r12]
+ movdqu XMMWORD[16+r13],xmm0
+ movdqu XMMWORD[32+r13],xmm5
+ movdqu XMMWORD[48+r13],xmm3
+ movdqu XMMWORD[64+r13],xmm1
+ movdqu XMMWORD[80+r13],xmm6
+ movdqu XMMWORD[96+r13],xmm2
+ movdqu XMMWORD[112+r13],xmm4
+ lea r13,[128+r13]
sub r14,8
- jnc $L$cbc_dec_loop
+ jnc NEAR $L$cbc_dec_loop
add r14,8
- jz $L$cbc_dec_done
+ jz NEAR $L$cbc_dec_done
- movdqu xmm15,XMMWORD PTR[r12]
+ movdqu xmm15,XMMWORD[r12]
mov rax,rsp
mov r10d,edx
cmp r14,2
- jb $L$cbc_dec_one
- movdqu xmm0,XMMWORD PTR[16+r12]
- je $L$cbc_dec_two
- movdqu xmm1,XMMWORD PTR[32+r12]
+ jb NEAR $L$cbc_dec_one
+ movdqu xmm0,XMMWORD[16+r12]
+ je NEAR $L$cbc_dec_two
+ movdqu xmm1,XMMWORD[32+r12]
cmp r14,4
- jb $L$cbc_dec_three
- movdqu xmm2,XMMWORD PTR[48+r12]
- je $L$cbc_dec_four
- movdqu xmm3,XMMWORD PTR[64+r12]
+ jb NEAR $L$cbc_dec_three
+ movdqu xmm2,XMMWORD[48+r12]
+ je NEAR $L$cbc_dec_four
+ movdqu xmm3,XMMWORD[64+r12]
cmp r14,6
- jb $L$cbc_dec_five
- movdqu xmm4,XMMWORD PTR[80+r12]
- je $L$cbc_dec_six
- movdqu xmm5,XMMWORD PTR[96+r12]
- movdqa XMMWORD PTR[32+rbp],xmm14
+ jb NEAR $L$cbc_dec_five
+ movdqu xmm4,XMMWORD[80+r12]
+ je NEAR $L$cbc_dec_six
+ movdqu xmm5,XMMWORD[96+r12]
+ movdqa XMMWORD[32+rbp],xmm14
call _bsaes_decrypt8
- pxor xmm15,XMMWORD PTR[32+rbp]
- movdqu xmm7,XMMWORD PTR[r12]
- movdqu xmm8,XMMWORD PTR[16+r12]
+ pxor xmm15,XMMWORD[32+rbp]
+ movdqu xmm7,XMMWORD[r12]
+ movdqu xmm8,XMMWORD[16+r12]
pxor xmm0,xmm7
- movdqu xmm9,XMMWORD PTR[32+r12]
+ movdqu xmm9,XMMWORD[32+r12]
pxor xmm5,xmm8
- movdqu xmm10,XMMWORD PTR[48+r12]
+ movdqu xmm10,XMMWORD[48+r12]
pxor xmm3,xmm9
- movdqu xmm11,XMMWORD PTR[64+r12]
+ movdqu xmm11,XMMWORD[64+r12]
pxor xmm1,xmm10
- movdqu xmm12,XMMWORD PTR[80+r12]
+ movdqu xmm12,XMMWORD[80+r12]
pxor xmm6,xmm11
- movdqu xmm14,XMMWORD PTR[96+r12]
+ movdqu xmm14,XMMWORD[96+r12]
pxor xmm2,xmm12
- movdqu XMMWORD PTR[r13],xmm15
- movdqu XMMWORD PTR[16+r13],xmm0
- movdqu XMMWORD PTR[32+r13],xmm5
- movdqu XMMWORD PTR[48+r13],xmm3
- movdqu XMMWORD PTR[64+r13],xmm1
- movdqu XMMWORD PTR[80+r13],xmm6
- movdqu XMMWORD PTR[96+r13],xmm2
- jmp $L$cbc_dec_done
+ movdqu XMMWORD[r13],xmm15
+ movdqu XMMWORD[16+r13],xmm0
+ movdqu XMMWORD[32+r13],xmm5
+ movdqu XMMWORD[48+r13],xmm3
+ movdqu XMMWORD[64+r13],xmm1
+ movdqu XMMWORD[80+r13],xmm6
+ movdqu XMMWORD[96+r13],xmm2
+ jmp NEAR $L$cbc_dec_done
ALIGN 16
-$L$cbc_dec_six::
- movdqa XMMWORD PTR[32+rbp],xmm14
+$L$cbc_dec_six:
+ movdqa XMMWORD[32+rbp],xmm14
call _bsaes_decrypt8
- pxor xmm15,XMMWORD PTR[32+rbp]
- movdqu xmm7,XMMWORD PTR[r12]
- movdqu xmm8,XMMWORD PTR[16+r12]
+ pxor xmm15,XMMWORD[32+rbp]
+ movdqu xmm7,XMMWORD[r12]
+ movdqu xmm8,XMMWORD[16+r12]
pxor xmm0,xmm7
- movdqu xmm9,XMMWORD PTR[32+r12]
+ movdqu xmm9,XMMWORD[32+r12]
pxor xmm5,xmm8
- movdqu xmm10,XMMWORD PTR[48+r12]
+ movdqu xmm10,XMMWORD[48+r12]
pxor xmm3,xmm9
- movdqu xmm11,XMMWORD PTR[64+r12]
+ movdqu xmm11,XMMWORD[64+r12]
pxor xmm1,xmm10
- movdqu xmm14,XMMWORD PTR[80+r12]
+ movdqu xmm14,XMMWORD[80+r12]
pxor xmm6,xmm11
- movdqu XMMWORD PTR[r13],xmm15
- movdqu XMMWORD PTR[16+r13],xmm0
- movdqu XMMWORD PTR[32+r13],xmm5
- movdqu XMMWORD PTR[48+r13],xmm3
- movdqu XMMWORD PTR[64+r13],xmm1
- movdqu XMMWORD PTR[80+r13],xmm6
- jmp $L$cbc_dec_done
+ movdqu XMMWORD[r13],xmm15
+ movdqu XMMWORD[16+r13],xmm0
+ movdqu XMMWORD[32+r13],xmm5
+ movdqu XMMWORD[48+r13],xmm3
+ movdqu XMMWORD[64+r13],xmm1
+ movdqu XMMWORD[80+r13],xmm6
+ jmp NEAR $L$cbc_dec_done
ALIGN 16
-$L$cbc_dec_five::
- movdqa XMMWORD PTR[32+rbp],xmm14
+$L$cbc_dec_five:
+ movdqa XMMWORD[32+rbp],xmm14
call _bsaes_decrypt8
- pxor xmm15,XMMWORD PTR[32+rbp]
- movdqu xmm7,XMMWORD PTR[r12]
- movdqu xmm8,XMMWORD PTR[16+r12]
+ pxor xmm15,XMMWORD[32+rbp]
+ movdqu xmm7,XMMWORD[r12]
+ movdqu xmm8,XMMWORD[16+r12]
pxor xmm0,xmm7
- movdqu xmm9,XMMWORD PTR[32+r12]
+ movdqu xmm9,XMMWORD[32+r12]
pxor xmm5,xmm8
- movdqu xmm10,XMMWORD PTR[48+r12]
+ movdqu xmm10,XMMWORD[48+r12]
pxor xmm3,xmm9
- movdqu xmm14,XMMWORD PTR[64+r12]
+ movdqu xmm14,XMMWORD[64+r12]
pxor xmm1,xmm10
- movdqu XMMWORD PTR[r13],xmm15
- movdqu XMMWORD PTR[16+r13],xmm0
- movdqu XMMWORD PTR[32+r13],xmm5
- movdqu XMMWORD PTR[48+r13],xmm3
- movdqu XMMWORD PTR[64+r13],xmm1
- jmp $L$cbc_dec_done
+ movdqu XMMWORD[r13],xmm15
+ movdqu XMMWORD[16+r13],xmm0
+ movdqu XMMWORD[32+r13],xmm5
+ movdqu XMMWORD[48+r13],xmm3
+ movdqu XMMWORD[64+r13],xmm1
+ jmp NEAR $L$cbc_dec_done
ALIGN 16
-$L$cbc_dec_four::
- movdqa XMMWORD PTR[32+rbp],xmm14
+$L$cbc_dec_four:
+ movdqa XMMWORD[32+rbp],xmm14
call _bsaes_decrypt8
- pxor xmm15,XMMWORD PTR[32+rbp]
- movdqu xmm7,XMMWORD PTR[r12]
- movdqu xmm8,XMMWORD PTR[16+r12]
+ pxor xmm15,XMMWORD[32+rbp]
+ movdqu xmm7,XMMWORD[r12]
+ movdqu xmm8,XMMWORD[16+r12]
pxor xmm0,xmm7
- movdqu xmm9,XMMWORD PTR[32+r12]
+ movdqu xmm9,XMMWORD[32+r12]
pxor xmm5,xmm8
- movdqu xmm14,XMMWORD PTR[48+r12]
+ movdqu xmm14,XMMWORD[48+r12]
pxor xmm3,xmm9
- movdqu XMMWORD PTR[r13],xmm15
- movdqu XMMWORD PTR[16+r13],xmm0
- movdqu XMMWORD PTR[32+r13],xmm5
- movdqu XMMWORD PTR[48+r13],xmm3
- jmp $L$cbc_dec_done
+ movdqu XMMWORD[r13],xmm15
+ movdqu XMMWORD[16+r13],xmm0
+ movdqu XMMWORD[32+r13],xmm5
+ movdqu XMMWORD[48+r13],xmm3
+ jmp NEAR $L$cbc_dec_done
ALIGN 16
-$L$cbc_dec_three::
- movdqa XMMWORD PTR[32+rbp],xmm14
+$L$cbc_dec_three:
+ movdqa XMMWORD[32+rbp],xmm14
call _bsaes_decrypt8
- pxor xmm15,XMMWORD PTR[32+rbp]
- movdqu xmm7,XMMWORD PTR[r12]
- movdqu xmm8,XMMWORD PTR[16+r12]
+ pxor xmm15,XMMWORD[32+rbp]
+ movdqu xmm7,XMMWORD[r12]
+ movdqu xmm8,XMMWORD[16+r12]
pxor xmm0,xmm7
- movdqu xmm14,XMMWORD PTR[32+r12]
+ movdqu xmm14,XMMWORD[32+r12]
pxor xmm5,xmm8
- movdqu XMMWORD PTR[r13],xmm15
- movdqu XMMWORD PTR[16+r13],xmm0
- movdqu XMMWORD PTR[32+r13],xmm5
- jmp $L$cbc_dec_done
+ movdqu XMMWORD[r13],xmm15
+ movdqu XMMWORD[16+r13],xmm0
+ movdqu XMMWORD[32+r13],xmm5
+ jmp NEAR $L$cbc_dec_done
ALIGN 16
-$L$cbc_dec_two::
- movdqa XMMWORD PTR[32+rbp],xmm14
+$L$cbc_dec_two:
+ movdqa XMMWORD[32+rbp],xmm14
call _bsaes_decrypt8
- pxor xmm15,XMMWORD PTR[32+rbp]
- movdqu xmm7,XMMWORD PTR[r12]
- movdqu xmm14,XMMWORD PTR[16+r12]
+ pxor xmm15,XMMWORD[32+rbp]
+ movdqu xmm7,XMMWORD[r12]
+ movdqu xmm14,XMMWORD[16+r12]
pxor xmm0,xmm7
- movdqu XMMWORD PTR[r13],xmm15
- movdqu XMMWORD PTR[16+r13],xmm0
- jmp $L$cbc_dec_done
+ movdqu XMMWORD[r13],xmm15
+ movdqu XMMWORD[16+r13],xmm0
+ jmp NEAR $L$cbc_dec_done
ALIGN 16
-$L$cbc_dec_one::
- lea rcx,QWORD PTR[r12]
- lea rdx,QWORD PTR[32+rbp]
- lea r8,QWORD PTR[r15]
+$L$cbc_dec_one:
+ lea rcx,[r12]
+ lea rdx,[32+rbp]
+ lea r8,[r15]
call asm_AES_decrypt
- pxor xmm14,XMMWORD PTR[32+rbp]
- movdqu XMMWORD PTR[r13],xmm14
+ pxor xmm14,XMMWORD[32+rbp]
+ movdqu XMMWORD[r13],xmm14
movdqa xmm14,xmm15
-$L$cbc_dec_done::
- movdqu XMMWORD PTR[rbx],xmm14
- lea rax,QWORD PTR[rsp]
+$L$cbc_dec_done:
+ movdqu XMMWORD[rbx],xmm14
+ lea rax,[rsp]
pxor xmm0,xmm0
-$L$cbc_dec_bzero::
- movdqa XMMWORD PTR[rax],xmm0
- movdqa XMMWORD PTR[16+rax],xmm0
- lea rax,QWORD PTR[32+rax]
+$L$cbc_dec_bzero:
+ movdqa XMMWORD[rax],xmm0
+ movdqa XMMWORD[16+rax],xmm0
+ lea rax,[32+rax]
cmp rbp,rax
- ja $L$cbc_dec_bzero
-
- lea rsp,QWORD PTR[rbp]
- movaps xmm6,XMMWORD PTR[64+rbp]
- movaps xmm7,XMMWORD PTR[80+rbp]
- movaps xmm8,XMMWORD PTR[96+rbp]
- movaps xmm9,XMMWORD PTR[112+rbp]
- movaps xmm10,XMMWORD PTR[128+rbp]
- movaps xmm11,XMMWORD PTR[144+rbp]
- movaps xmm12,XMMWORD PTR[160+rbp]
- movaps xmm13,XMMWORD PTR[176+rbp]
- movaps xmm14,XMMWORD PTR[192+rbp]
- movaps xmm15,XMMWORD PTR[208+rbp]
- lea rsp,QWORD PTR[160+rbp]
- mov r15,QWORD PTR[72+rsp]
- mov r14,QWORD PTR[80+rsp]
- mov r13,QWORD PTR[88+rsp]
- mov r12,QWORD PTR[96+rsp]
- mov rbx,QWORD PTR[104+rsp]
- mov rax,QWORD PTR[112+rsp]
- lea rsp,QWORD PTR[120+rsp]
+ ja NEAR $L$cbc_dec_bzero
+
+ lea rsp,[rbp]
+ movaps xmm6,XMMWORD[64+rbp]
+ movaps xmm7,XMMWORD[80+rbp]
+ movaps xmm8,XMMWORD[96+rbp]
+ movaps xmm9,XMMWORD[112+rbp]
+ movaps xmm10,XMMWORD[128+rbp]
+ movaps xmm11,XMMWORD[144+rbp]
+ movaps xmm12,XMMWORD[160+rbp]
+ movaps xmm13,XMMWORD[176+rbp]
+ movaps xmm14,XMMWORD[192+rbp]
+ movaps xmm15,XMMWORD[208+rbp]
+ lea rsp,[160+rbp]
+ mov r15,QWORD[72+rsp]
+ mov r14,QWORD[80+rsp]
+ mov r13,QWORD[88+rsp]
+ mov r12,QWORD[96+rsp]
+ mov rbx,QWORD[104+rsp]
+ mov rax,QWORD[112+rsp]
+ lea rsp,[120+rsp]
mov rbp,rax
-$L$cbc_dec_epilogue::
+$L$cbc_dec_epilogue:
DB 0F3h,0C3h ;repret
-bsaes_cbc_encrypt ENDP
-PUBLIC bsaes_ctr32_encrypt_blocks
+
+global bsaes_ctr32_encrypt_blocks
ALIGN 16
-bsaes_ctr32_encrypt_blocks PROC PUBLIC
+bsaes_ctr32_encrypt_blocks:
mov rax,rsp
-$L$ctr_enc_prologue::
+$L$ctr_enc_prologue:
push rbp
push rbx
push r12
push r13
push r14
push r15
- lea rsp,QWORD PTR[((-72))+rsp]
- mov r10,QWORD PTR[160+rsp]
- lea rsp,QWORD PTR[((-160))+rsp]
- movaps XMMWORD PTR[64+rsp],xmm6
- movaps XMMWORD PTR[80+rsp],xmm7
- movaps XMMWORD PTR[96+rsp],xmm8
- movaps XMMWORD PTR[112+rsp],xmm9
- movaps XMMWORD PTR[128+rsp],xmm10
- movaps XMMWORD PTR[144+rsp],xmm11
- movaps XMMWORD PTR[160+rsp],xmm12
- movaps XMMWORD PTR[176+rsp],xmm13
- movaps XMMWORD PTR[192+rsp],xmm14
- movaps XMMWORD PTR[208+rsp],xmm15
-$L$ctr_enc_body::
+ lea rsp,[((-72))+rsp]
+ mov r10,QWORD[160+rsp]
+ lea rsp,[((-160))+rsp]
+ movaps XMMWORD[64+rsp],xmm6
+ movaps XMMWORD[80+rsp],xmm7
+ movaps XMMWORD[96+rsp],xmm8
+ movaps XMMWORD[112+rsp],xmm9
+ movaps XMMWORD[128+rsp],xmm10
+ movaps XMMWORD[144+rsp],xmm11
+ movaps XMMWORD[160+rsp],xmm12
+ movaps XMMWORD[176+rsp],xmm13
+ movaps XMMWORD[192+rsp],xmm14
+ movaps XMMWORD[208+rsp],xmm15
+$L$ctr_enc_body:
mov rbp,rsp
- movdqu xmm0,XMMWORD PTR[r10]
- mov eax,DWORD PTR[240+r9]
+ movdqu xmm0,XMMWORD[r10]
+ mov eax,DWORD[240+r9]
mov r12,rcx
mov r13,rdx
mov r14,r8
mov r15,r9
- movdqa XMMWORD PTR[32+rbp],xmm0
+ movdqa XMMWORD[32+rbp],xmm0
cmp r8,8
- jb $L$ctr_enc_short
+ jb NEAR $L$ctr_enc_short
mov ebx,eax
shl rax,7
@@ -1386,39 +1390,39 @@ $L$ctr_enc_body::
mov r10d,ebx
call _bsaes_key_convert
pxor xmm7,xmm6
- movdqa XMMWORD PTR[rax],xmm7
+ movdqa XMMWORD[rax],xmm7
- movdqa xmm8,XMMWORD PTR[rsp]
- lea r11,QWORD PTR[$L$ADD1]
- movdqa xmm15,XMMWORD PTR[32+rbp]
- movdqa xmm7,XMMWORD PTR[((-32))+r11]
+ movdqa xmm8,XMMWORD[rsp]
+ lea r11,[$L$ADD1]
+ movdqa xmm15,XMMWORD[32+rbp]
+ movdqa xmm7,XMMWORD[((-32))+r11]
DB 102,68,15,56,0,199
DB 102,68,15,56,0,255
- movdqa XMMWORD PTR[rsp],xmm8
- jmp $L$ctr_enc_loop
+ movdqa XMMWORD[rsp],xmm8
+ jmp NEAR $L$ctr_enc_loop
ALIGN 16
-$L$ctr_enc_loop::
- movdqa XMMWORD PTR[32+rbp],xmm15
+$L$ctr_enc_loop:
+ movdqa XMMWORD[32+rbp],xmm15
movdqa xmm0,xmm15
movdqa xmm1,xmm15
- paddd xmm0,XMMWORD PTR[r11]
+ paddd xmm0,XMMWORD[r11]
movdqa xmm2,xmm15
- paddd xmm1,XMMWORD PTR[16+r11]
+ paddd xmm1,XMMWORD[16+r11]
movdqa xmm3,xmm15
- paddd xmm2,XMMWORD PTR[32+r11]
+ paddd xmm2,XMMWORD[32+r11]
movdqa xmm4,xmm15
- paddd xmm3,XMMWORD PTR[48+r11]
+ paddd xmm3,XMMWORD[48+r11]
movdqa xmm5,xmm15
- paddd xmm4,XMMWORD PTR[64+r11]
+ paddd xmm4,XMMWORD[64+r11]
movdqa xmm6,xmm15
- paddd xmm5,XMMWORD PTR[80+r11]
- paddd xmm6,XMMWORD PTR[96+r11]
+ paddd xmm5,XMMWORD[80+r11]
+ paddd xmm6,XMMWORD[96+r11]
- movdqa xmm8,XMMWORD PTR[rsp]
- lea rax,QWORD PTR[16+rsp]
- movdqa xmm7,XMMWORD PTR[((-16))+r11]
+ movdqa xmm8,XMMWORD[rsp]
+ lea rax,[16+rsp]
+ movdqa xmm7,XMMWORD[((-16))+r11]
pxor xmm15,xmm8
pxor xmm0,xmm8
pxor xmm1,xmm8
@@ -1435,172 +1439,172 @@ DB 102,15,56,0,223
DB 102,15,56,0,231
DB 102,15,56,0,239
DB 102,15,56,0,247
- lea r11,QWORD PTR[$L$BS0]
+ lea r11,[$L$BS0]
mov r10d,ebx
call _bsaes_encrypt8_bitslice
sub r14,8
- jc $L$ctr_enc_loop_done
-
- movdqu xmm7,XMMWORD PTR[r12]
- movdqu xmm8,XMMWORD PTR[16+r12]
- movdqu xmm9,XMMWORD PTR[32+r12]
- movdqu xmm10,XMMWORD PTR[48+r12]
- movdqu xmm11,XMMWORD PTR[64+r12]
- movdqu xmm12,XMMWORD PTR[80+r12]
- movdqu xmm13,XMMWORD PTR[96+r12]
- movdqu xmm14,XMMWORD PTR[112+r12]
- lea r12,QWORD PTR[128+r12]
+ jc NEAR $L$ctr_enc_loop_done
+
+ movdqu xmm7,XMMWORD[r12]
+ movdqu xmm8,XMMWORD[16+r12]
+ movdqu xmm9,XMMWORD[32+r12]
+ movdqu xmm10,XMMWORD[48+r12]
+ movdqu xmm11,XMMWORD[64+r12]
+ movdqu xmm12,XMMWORD[80+r12]
+ movdqu xmm13,XMMWORD[96+r12]
+ movdqu xmm14,XMMWORD[112+r12]
+ lea r12,[128+r12]
pxor xmm7,xmm15
- movdqa xmm15,XMMWORD PTR[32+rbp]
+ movdqa xmm15,XMMWORD[32+rbp]
pxor xmm0,xmm8
- movdqu XMMWORD PTR[r13],xmm7
+ movdqu XMMWORD[r13],xmm7
pxor xmm3,xmm9
- movdqu XMMWORD PTR[16+r13],xmm0
+ movdqu XMMWORD[16+r13],xmm0
pxor xmm5,xmm10
- movdqu XMMWORD PTR[32+r13],xmm3
+ movdqu XMMWORD[32+r13],xmm3
pxor xmm2,xmm11
- movdqu XMMWORD PTR[48+r13],xmm5
+ movdqu XMMWORD[48+r13],xmm5
pxor xmm6,xmm12
- movdqu XMMWORD PTR[64+r13],xmm2
+ movdqu XMMWORD[64+r13],xmm2
pxor xmm1,xmm13
- movdqu XMMWORD PTR[80+r13],xmm6
+ movdqu XMMWORD[80+r13],xmm6
pxor xmm4,xmm14
- movdqu XMMWORD PTR[96+r13],xmm1
- lea r11,QWORD PTR[$L$ADD1]
- movdqu XMMWORD PTR[112+r13],xmm4
- lea r13,QWORD PTR[128+r13]
- paddd xmm15,XMMWORD PTR[112+r11]
- jnz $L$ctr_enc_loop
-
- jmp $L$ctr_enc_done
+ movdqu XMMWORD[96+r13],xmm1
+ lea r11,[$L$ADD1]
+ movdqu XMMWORD[112+r13],xmm4
+ lea r13,[128+r13]
+ paddd xmm15,XMMWORD[112+r11]
+ jnz NEAR $L$ctr_enc_loop
+
+ jmp NEAR $L$ctr_enc_done
ALIGN 16
-$L$ctr_enc_loop_done::
+$L$ctr_enc_loop_done:
add r14,8
- movdqu xmm7,XMMWORD PTR[r12]
+ movdqu xmm7,XMMWORD[r12]
pxor xmm15,xmm7
- movdqu XMMWORD PTR[r13],xmm15
+ movdqu XMMWORD[r13],xmm15
cmp r14,2
- jb $L$ctr_enc_done
- movdqu xmm8,XMMWORD PTR[16+r12]
+ jb NEAR $L$ctr_enc_done
+ movdqu xmm8,XMMWORD[16+r12]
pxor xmm0,xmm8
- movdqu XMMWORD PTR[16+r13],xmm0
- je $L$ctr_enc_done
- movdqu xmm9,XMMWORD PTR[32+r12]
+ movdqu XMMWORD[16+r13],xmm0
+ je NEAR $L$ctr_enc_done
+ movdqu xmm9,XMMWORD[32+r12]
pxor xmm3,xmm9
- movdqu XMMWORD PTR[32+r13],xmm3
+ movdqu XMMWORD[32+r13],xmm3
cmp r14,4
- jb $L$ctr_enc_done
- movdqu xmm10,XMMWORD PTR[48+r12]
+ jb NEAR $L$ctr_enc_done
+ movdqu xmm10,XMMWORD[48+r12]
pxor xmm5,xmm10
- movdqu XMMWORD PTR[48+r13],xmm5
- je $L$ctr_enc_done
- movdqu xmm11,XMMWORD PTR[64+r12]
+ movdqu XMMWORD[48+r13],xmm5
+ je NEAR $L$ctr_enc_done
+ movdqu xmm11,XMMWORD[64+r12]
pxor xmm2,xmm11
- movdqu XMMWORD PTR[64+r13],xmm2
+ movdqu XMMWORD[64+r13],xmm2
cmp r14,6
- jb $L$ctr_enc_done
- movdqu xmm12,XMMWORD PTR[80+r12]
+ jb NEAR $L$ctr_enc_done
+ movdqu xmm12,XMMWORD[80+r12]
pxor xmm6,xmm12
- movdqu XMMWORD PTR[80+r13],xmm6
- je $L$ctr_enc_done
- movdqu xmm13,XMMWORD PTR[96+r12]
+ movdqu XMMWORD[80+r13],xmm6
+ je NEAR $L$ctr_enc_done
+ movdqu xmm13,XMMWORD[96+r12]
pxor xmm1,xmm13
- movdqu XMMWORD PTR[96+r13],xmm1
- jmp $L$ctr_enc_done
+ movdqu XMMWORD[96+r13],xmm1
+ jmp NEAR $L$ctr_enc_done
ALIGN 16
-$L$ctr_enc_short::
- lea rcx,QWORD PTR[32+rbp]
- lea rdx,QWORD PTR[48+rbp]
- lea r8,QWORD PTR[r15]
+$L$ctr_enc_short:
+ lea rcx,[32+rbp]
+ lea rdx,[48+rbp]
+ lea r8,[r15]
call asm_AES_encrypt
- movdqu xmm0,XMMWORD PTR[r12]
- lea r12,QWORD PTR[16+r12]
- mov eax,DWORD PTR[44+rbp]
+ movdqu xmm0,XMMWORD[r12]
+ lea r12,[16+r12]
+ mov eax,DWORD[44+rbp]
bswap eax
- pxor xmm0,XMMWORD PTR[48+rbp]
+ pxor xmm0,XMMWORD[48+rbp]
inc eax
- movdqu XMMWORD PTR[r13],xmm0
+ movdqu XMMWORD[r13],xmm0
bswap eax
- lea r13,QWORD PTR[16+r13]
- mov DWORD PTR[44+rsp],eax
+ lea r13,[16+r13]
+ mov DWORD[44+rsp],eax
dec r14
- jnz $L$ctr_enc_short
+ jnz NEAR $L$ctr_enc_short
-$L$ctr_enc_done::
- lea rax,QWORD PTR[rsp]
+$L$ctr_enc_done:
+ lea rax,[rsp]
pxor xmm0,xmm0
-$L$ctr_enc_bzero::
- movdqa XMMWORD PTR[rax],xmm0
- movdqa XMMWORD PTR[16+rax],xmm0
- lea rax,QWORD PTR[32+rax]
+$L$ctr_enc_bzero:
+ movdqa XMMWORD[rax],xmm0
+ movdqa XMMWORD[16+rax],xmm0
+ lea rax,[32+rax]
cmp rbp,rax
- ja $L$ctr_enc_bzero
-
- lea rsp,QWORD PTR[rbp]
- movaps xmm6,XMMWORD PTR[64+rbp]
- movaps xmm7,XMMWORD PTR[80+rbp]
- movaps xmm8,XMMWORD PTR[96+rbp]
- movaps xmm9,XMMWORD PTR[112+rbp]
- movaps xmm10,XMMWORD PTR[128+rbp]
- movaps xmm11,XMMWORD PTR[144+rbp]
- movaps xmm12,XMMWORD PTR[160+rbp]
- movaps xmm13,XMMWORD PTR[176+rbp]
- movaps xmm14,XMMWORD PTR[192+rbp]
- movaps xmm15,XMMWORD PTR[208+rbp]
- lea rsp,QWORD PTR[160+rbp]
- mov r15,QWORD PTR[72+rsp]
- mov r14,QWORD PTR[80+rsp]
- mov r13,QWORD PTR[88+rsp]
- mov r12,QWORD PTR[96+rsp]
- mov rbx,QWORD PTR[104+rsp]
- mov rax,QWORD PTR[112+rsp]
- lea rsp,QWORD PTR[120+rsp]
+ ja NEAR $L$ctr_enc_bzero
+
+ lea rsp,[rbp]
+ movaps xmm6,XMMWORD[64+rbp]
+ movaps xmm7,XMMWORD[80+rbp]
+ movaps xmm8,XMMWORD[96+rbp]
+ movaps xmm9,XMMWORD[112+rbp]
+ movaps xmm10,XMMWORD[128+rbp]
+ movaps xmm11,XMMWORD[144+rbp]
+ movaps xmm12,XMMWORD[160+rbp]
+ movaps xmm13,XMMWORD[176+rbp]
+ movaps xmm14,XMMWORD[192+rbp]
+ movaps xmm15,XMMWORD[208+rbp]
+ lea rsp,[160+rbp]
+ mov r15,QWORD[72+rsp]
+ mov r14,QWORD[80+rsp]
+ mov r13,QWORD[88+rsp]
+ mov r12,QWORD[96+rsp]
+ mov rbx,QWORD[104+rsp]
+ mov rax,QWORD[112+rsp]
+ lea rsp,[120+rsp]
mov rbp,rax
-$L$ctr_enc_epilogue::
+$L$ctr_enc_epilogue:
DB 0F3h,0C3h ;repret
-bsaes_ctr32_encrypt_blocks ENDP
-PUBLIC bsaes_xts_encrypt
+
+global bsaes_xts_encrypt
ALIGN 16
-bsaes_xts_encrypt PROC PUBLIC
+bsaes_xts_encrypt:
mov rax,rsp
-$L$xts_enc_prologue::
+$L$xts_enc_prologue:
push rbp
push rbx
push r12
push r13
push r14
push r15
- lea rsp,QWORD PTR[((-72))+rsp]
- mov r10,QWORD PTR[160+rsp]
- mov r11,QWORD PTR[168+rsp]
- lea rsp,QWORD PTR[((-160))+rsp]
- movaps XMMWORD PTR[64+rsp],xmm6
- movaps XMMWORD PTR[80+rsp],xmm7
- movaps XMMWORD PTR[96+rsp],xmm8
- movaps XMMWORD PTR[112+rsp],xmm9
- movaps XMMWORD PTR[128+rsp],xmm10
- movaps XMMWORD PTR[144+rsp],xmm11
- movaps XMMWORD PTR[160+rsp],xmm12
- movaps XMMWORD PTR[176+rsp],xmm13
- movaps XMMWORD PTR[192+rsp],xmm14
- movaps XMMWORD PTR[208+rsp],xmm15
-$L$xts_enc_body::
+ lea rsp,[((-72))+rsp]
+ mov r10,QWORD[160+rsp]
+ mov r11,QWORD[168+rsp]
+ lea rsp,[((-160))+rsp]
+ movaps XMMWORD[64+rsp],xmm6
+ movaps XMMWORD[80+rsp],xmm7
+ movaps XMMWORD[96+rsp],xmm8
+ movaps XMMWORD[112+rsp],xmm9
+ movaps XMMWORD[128+rsp],xmm10
+ movaps XMMWORD[144+rsp],xmm11
+ movaps XMMWORD[160+rsp],xmm12
+ movaps XMMWORD[176+rsp],xmm13
+ movaps XMMWORD[192+rsp],xmm14
+ movaps XMMWORD[208+rsp],xmm15
+$L$xts_enc_body:
mov rbp,rsp
mov r12,rcx
mov r13,rdx
mov r14,r8
mov r15,r9
- lea rcx,QWORD PTR[r11]
- lea rdx,QWORD PTR[32+rbp]
- lea r8,QWORD PTR[r10]
+ lea rcx,[r11]
+ lea rdx,[32+rbp]
+ lea r8,[r10]
call asm_AES_encrypt
- mov eax,DWORD PTR[240+r15]
+ mov eax,DWORD[240+r15]
mov rbx,r14
mov edx,eax
@@ -1613,471 +1617,471 @@ $L$xts_enc_body::
mov r10d,edx
call _bsaes_key_convert
pxor xmm7,xmm6
- movdqa XMMWORD PTR[rax],xmm7
+ movdqa XMMWORD[rax],xmm7
and r14,-16
- sub rsp,080h
- movdqa xmm6,XMMWORD PTR[32+rbp]
+ sub rsp,0x80
+ movdqa xmm6,XMMWORD[32+rbp]
pxor xmm14,xmm14
- movdqa xmm12,XMMWORD PTR[$L$xts_magic]
+ movdqa xmm12,XMMWORD[$L$xts_magic]
pcmpgtd xmm14,xmm6
- sub r14,080h
- jc $L$xts_enc_short
- jmp $L$xts_enc_loop
+ sub r14,0x80
+ jc NEAR $L$xts_enc_short
+ jmp NEAR $L$xts_enc_loop
ALIGN 16
-$L$xts_enc_loop::
- pshufd xmm13,xmm14,013h
+$L$xts_enc_loop:
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm15,xmm6
- movdqa XMMWORD PTR[rsp],xmm6
+ movdqa XMMWORD[rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm0,xmm6
- movdqa XMMWORD PTR[16+rsp],xmm6
+ movdqa XMMWORD[16+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm7,XMMWORD PTR[r12]
- pshufd xmm13,xmm14,013h
+ movdqu xmm7,XMMWORD[r12]
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm1,xmm6
- movdqa XMMWORD PTR[32+rsp],xmm6
+ movdqa XMMWORD[32+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm8,XMMWORD PTR[16+r12]
+ movdqu xmm8,XMMWORD[16+r12]
pxor xmm15,xmm7
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm2,xmm6
- movdqa XMMWORD PTR[48+rsp],xmm6
+ movdqa XMMWORD[48+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm9,XMMWORD PTR[32+r12]
+ movdqu xmm9,XMMWORD[32+r12]
pxor xmm0,xmm8
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm3,xmm6
- movdqa XMMWORD PTR[64+rsp],xmm6
+ movdqa XMMWORD[64+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm10,XMMWORD PTR[48+r12]
+ movdqu xmm10,XMMWORD[48+r12]
pxor xmm1,xmm9
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm4,xmm6
- movdqa XMMWORD PTR[80+rsp],xmm6
+ movdqa XMMWORD[80+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm11,XMMWORD PTR[64+r12]
+ movdqu xmm11,XMMWORD[64+r12]
pxor xmm2,xmm10
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm5,xmm6
- movdqa XMMWORD PTR[96+rsp],xmm6
+ movdqa XMMWORD[96+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm12,XMMWORD PTR[80+r12]
+ movdqu xmm12,XMMWORD[80+r12]
pxor xmm3,xmm11
- movdqu xmm13,XMMWORD PTR[96+r12]
+ movdqu xmm13,XMMWORD[96+r12]
pxor xmm4,xmm12
- movdqu xmm14,XMMWORD PTR[112+r12]
- lea r12,QWORD PTR[128+r12]
- movdqa XMMWORD PTR[112+rsp],xmm6
+ movdqu xmm14,XMMWORD[112+r12]
+ lea r12,[128+r12]
+ movdqa XMMWORD[112+rsp],xmm6
pxor xmm5,xmm13
- lea rax,QWORD PTR[128+rsp]
+ lea rax,[128+rsp]
pxor xmm6,xmm14
mov r10d,edx
call _bsaes_encrypt8
- pxor xmm15,XMMWORD PTR[rsp]
- pxor xmm0,XMMWORD PTR[16+rsp]
- movdqu XMMWORD PTR[r13],xmm15
- pxor xmm3,XMMWORD PTR[32+rsp]
- movdqu XMMWORD PTR[16+r13],xmm0
- pxor xmm5,XMMWORD PTR[48+rsp]
- movdqu XMMWORD PTR[32+r13],xmm3
- pxor xmm2,XMMWORD PTR[64+rsp]
- movdqu XMMWORD PTR[48+r13],xmm5
- pxor xmm6,XMMWORD PTR[80+rsp]
- movdqu XMMWORD PTR[64+r13],xmm2
- pxor xmm1,XMMWORD PTR[96+rsp]
- movdqu XMMWORD PTR[80+r13],xmm6
- pxor xmm4,XMMWORD PTR[112+rsp]
- movdqu XMMWORD PTR[96+r13],xmm1
- movdqu XMMWORD PTR[112+r13],xmm4
- lea r13,QWORD PTR[128+r13]
-
- movdqa xmm6,XMMWORD PTR[112+rsp]
+ pxor xmm15,XMMWORD[rsp]
+ pxor xmm0,XMMWORD[16+rsp]
+ movdqu XMMWORD[r13],xmm15
+ pxor xmm3,XMMWORD[32+rsp]
+ movdqu XMMWORD[16+r13],xmm0
+ pxor xmm5,XMMWORD[48+rsp]
+ movdqu XMMWORD[32+r13],xmm3
+ pxor xmm2,XMMWORD[64+rsp]
+ movdqu XMMWORD[48+r13],xmm5
+ pxor xmm6,XMMWORD[80+rsp]
+ movdqu XMMWORD[64+r13],xmm2
+ pxor xmm1,XMMWORD[96+rsp]
+ movdqu XMMWORD[80+r13],xmm6
+ pxor xmm4,XMMWORD[112+rsp]
+ movdqu XMMWORD[96+r13],xmm1
+ movdqu XMMWORD[112+r13],xmm4
+ lea r13,[128+r13]
+
+ movdqa xmm6,XMMWORD[112+rsp]
pxor xmm14,xmm14
- movdqa xmm12,XMMWORD PTR[$L$xts_magic]
+ movdqa xmm12,XMMWORD[$L$xts_magic]
pcmpgtd xmm14,xmm6
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- sub r14,080h
- jnc $L$xts_enc_loop
+ sub r14,0x80
+ jnc NEAR $L$xts_enc_loop
-$L$xts_enc_short::
- add r14,080h
- jz $L$xts_enc_done
- pshufd xmm13,xmm14,013h
+$L$xts_enc_short:
+ add r14,0x80
+ jz NEAR $L$xts_enc_done
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm15,xmm6
- movdqa XMMWORD PTR[rsp],xmm6
+ movdqa XMMWORD[rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm0,xmm6
- movdqa XMMWORD PTR[16+rsp],xmm6
+ movdqa XMMWORD[16+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm7,XMMWORD PTR[r12]
+ movdqu xmm7,XMMWORD[r12]
cmp r14,16
- je $L$xts_enc_1
- pshufd xmm13,xmm14,013h
+ je NEAR $L$xts_enc_1
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm1,xmm6
- movdqa XMMWORD PTR[32+rsp],xmm6
+ movdqa XMMWORD[32+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm8,XMMWORD PTR[16+r12]
+ movdqu xmm8,XMMWORD[16+r12]
cmp r14,32
- je $L$xts_enc_2
+ je NEAR $L$xts_enc_2
pxor xmm15,xmm7
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm2,xmm6
- movdqa XMMWORD PTR[48+rsp],xmm6
+ movdqa XMMWORD[48+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm9,XMMWORD PTR[32+r12]
+ movdqu xmm9,XMMWORD[32+r12]
cmp r14,48
- je $L$xts_enc_3
+ je NEAR $L$xts_enc_3
pxor xmm0,xmm8
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm3,xmm6
- movdqa XMMWORD PTR[64+rsp],xmm6
+ movdqa XMMWORD[64+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm10,XMMWORD PTR[48+r12]
+ movdqu xmm10,XMMWORD[48+r12]
cmp r14,64
- je $L$xts_enc_4
+ je NEAR $L$xts_enc_4
pxor xmm1,xmm9
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm4,xmm6
- movdqa XMMWORD PTR[80+rsp],xmm6
+ movdqa XMMWORD[80+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm11,XMMWORD PTR[64+r12]
+ movdqu xmm11,XMMWORD[64+r12]
cmp r14,80
- je $L$xts_enc_5
+ je NEAR $L$xts_enc_5
pxor xmm2,xmm10
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm5,xmm6
- movdqa XMMWORD PTR[96+rsp],xmm6
+ movdqa XMMWORD[96+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm12,XMMWORD PTR[80+r12]
+ movdqu xmm12,XMMWORD[80+r12]
cmp r14,96
- je $L$xts_enc_6
+ je NEAR $L$xts_enc_6
pxor xmm3,xmm11
- movdqu xmm13,XMMWORD PTR[96+r12]
+ movdqu xmm13,XMMWORD[96+r12]
pxor xmm4,xmm12
- movdqa XMMWORD PTR[112+rsp],xmm6
- lea r12,QWORD PTR[112+r12]
+ movdqa XMMWORD[112+rsp],xmm6
+ lea r12,[112+r12]
pxor xmm5,xmm13
- lea rax,QWORD PTR[128+rsp]
+ lea rax,[128+rsp]
mov r10d,edx
call _bsaes_encrypt8
- pxor xmm15,XMMWORD PTR[rsp]
- pxor xmm0,XMMWORD PTR[16+rsp]
- movdqu XMMWORD PTR[r13],xmm15
- pxor xmm3,XMMWORD PTR[32+rsp]
- movdqu XMMWORD PTR[16+r13],xmm0
- pxor xmm5,XMMWORD PTR[48+rsp]
- movdqu XMMWORD PTR[32+r13],xmm3
- pxor xmm2,XMMWORD PTR[64+rsp]
- movdqu XMMWORD PTR[48+r13],xmm5
- pxor xmm6,XMMWORD PTR[80+rsp]
- movdqu XMMWORD PTR[64+r13],xmm2
- pxor xmm1,XMMWORD PTR[96+rsp]
- movdqu XMMWORD PTR[80+r13],xmm6
- movdqu XMMWORD PTR[96+r13],xmm1
- lea r13,QWORD PTR[112+r13]
-
- movdqa xmm6,XMMWORD PTR[112+rsp]
- jmp $L$xts_enc_done
+ pxor xmm15,XMMWORD[rsp]
+ pxor xmm0,XMMWORD[16+rsp]
+ movdqu XMMWORD[r13],xmm15
+ pxor xmm3,XMMWORD[32+rsp]
+ movdqu XMMWORD[16+r13],xmm0
+ pxor xmm5,XMMWORD[48+rsp]
+ movdqu XMMWORD[32+r13],xmm3
+ pxor xmm2,XMMWORD[64+rsp]
+ movdqu XMMWORD[48+r13],xmm5
+ pxor xmm6,XMMWORD[80+rsp]
+ movdqu XMMWORD[64+r13],xmm2
+ pxor xmm1,XMMWORD[96+rsp]
+ movdqu XMMWORD[80+r13],xmm6
+ movdqu XMMWORD[96+r13],xmm1
+ lea r13,[112+r13]
+
+ movdqa xmm6,XMMWORD[112+rsp]
+ jmp NEAR $L$xts_enc_done
ALIGN 16
-$L$xts_enc_6::
+$L$xts_enc_6:
pxor xmm3,xmm11
- lea r12,QWORD PTR[96+r12]
+ lea r12,[96+r12]
pxor xmm4,xmm12
- lea rax,QWORD PTR[128+rsp]
+ lea rax,[128+rsp]
mov r10d,edx
call _bsaes_encrypt8
- pxor xmm15,XMMWORD PTR[rsp]
- pxor xmm0,XMMWORD PTR[16+rsp]
- movdqu XMMWORD PTR[r13],xmm15
- pxor xmm3,XMMWORD PTR[32+rsp]
- movdqu XMMWORD PTR[16+r13],xmm0
- pxor xmm5,XMMWORD PTR[48+rsp]
- movdqu XMMWORD PTR[32+r13],xmm3
- pxor xmm2,XMMWORD PTR[64+rsp]
- movdqu XMMWORD PTR[48+r13],xmm5
- pxor xmm6,XMMWORD PTR[80+rsp]
- movdqu XMMWORD PTR[64+r13],xmm2
- movdqu XMMWORD PTR[80+r13],xmm6
- lea r13,QWORD PTR[96+r13]
-
- movdqa xmm6,XMMWORD PTR[96+rsp]
- jmp $L$xts_enc_done
+ pxor xmm15,XMMWORD[rsp]
+ pxor xmm0,XMMWORD[16+rsp]
+ movdqu XMMWORD[r13],xmm15
+ pxor xmm3,XMMWORD[32+rsp]
+ movdqu XMMWORD[16+r13],xmm0
+ pxor xmm5,XMMWORD[48+rsp]
+ movdqu XMMWORD[32+r13],xmm3
+ pxor xmm2,XMMWORD[64+rsp]
+ movdqu XMMWORD[48+r13],xmm5
+ pxor xmm6,XMMWORD[80+rsp]
+ movdqu XMMWORD[64+r13],xmm2
+ movdqu XMMWORD[80+r13],xmm6
+ lea r13,[96+r13]
+
+ movdqa xmm6,XMMWORD[96+rsp]
+ jmp NEAR $L$xts_enc_done
ALIGN 16
-$L$xts_enc_5::
+$L$xts_enc_5:
pxor xmm2,xmm10
- lea r12,QWORD PTR[80+r12]
+ lea r12,[80+r12]
pxor xmm3,xmm11
- lea rax,QWORD PTR[128+rsp]
+ lea rax,[128+rsp]
mov r10d,edx
call _bsaes_encrypt8
- pxor xmm15,XMMWORD PTR[rsp]
- pxor xmm0,XMMWORD PTR[16+rsp]
- movdqu XMMWORD PTR[r13],xmm15
- pxor xmm3,XMMWORD PTR[32+rsp]
- movdqu XMMWORD PTR[16+r13],xmm0
- pxor xmm5,XMMWORD PTR[48+rsp]
- movdqu XMMWORD PTR[32+r13],xmm3
- pxor xmm2,XMMWORD PTR[64+rsp]
- movdqu XMMWORD PTR[48+r13],xmm5
- movdqu XMMWORD PTR[64+r13],xmm2
- lea r13,QWORD PTR[80+r13]
-
- movdqa xmm6,XMMWORD PTR[80+rsp]
- jmp $L$xts_enc_done
+ pxor xmm15,XMMWORD[rsp]
+ pxor xmm0,XMMWORD[16+rsp]
+ movdqu XMMWORD[r13],xmm15
+ pxor xmm3,XMMWORD[32+rsp]
+ movdqu XMMWORD[16+r13],xmm0
+ pxor xmm5,XMMWORD[48+rsp]
+ movdqu XMMWORD[32+r13],xmm3
+ pxor xmm2,XMMWORD[64+rsp]
+ movdqu XMMWORD[48+r13],xmm5
+ movdqu XMMWORD[64+r13],xmm2
+ lea r13,[80+r13]
+
+ movdqa xmm6,XMMWORD[80+rsp]
+ jmp NEAR $L$xts_enc_done
ALIGN 16
-$L$xts_enc_4::
+$L$xts_enc_4:
pxor xmm1,xmm9
- lea r12,QWORD PTR[64+r12]
+ lea r12,[64+r12]
pxor xmm2,xmm10
- lea rax,QWORD PTR[128+rsp]
+ lea rax,[128+rsp]
mov r10d,edx
call _bsaes_encrypt8
- pxor xmm15,XMMWORD PTR[rsp]
- pxor xmm0,XMMWORD PTR[16+rsp]
- movdqu XMMWORD PTR[r13],xmm15
- pxor xmm3,XMMWORD PTR[32+rsp]
- movdqu XMMWORD PTR[16+r13],xmm0
- pxor xmm5,XMMWORD PTR[48+rsp]
- movdqu XMMWORD PTR[32+r13],xmm3
- movdqu XMMWORD PTR[48+r13],xmm5
- lea r13,QWORD PTR[64+r13]
-
- movdqa xmm6,XMMWORD PTR[64+rsp]
- jmp $L$xts_enc_done
+ pxor xmm15,XMMWORD[rsp]
+ pxor xmm0,XMMWORD[16+rsp]
+ movdqu XMMWORD[r13],xmm15
+ pxor xmm3,XMMWORD[32+rsp]
+ movdqu XMMWORD[16+r13],xmm0
+ pxor xmm5,XMMWORD[48+rsp]
+ movdqu XMMWORD[32+r13],xmm3
+ movdqu XMMWORD[48+r13],xmm5
+ lea r13,[64+r13]
+
+ movdqa xmm6,XMMWORD[64+rsp]
+ jmp NEAR $L$xts_enc_done
ALIGN 16
-$L$xts_enc_3::
+$L$xts_enc_3:
pxor xmm0,xmm8
- lea r12,QWORD PTR[48+r12]
+ lea r12,[48+r12]
pxor xmm1,xmm9
- lea rax,QWORD PTR[128+rsp]
+ lea rax,[128+rsp]
mov r10d,edx
call _bsaes_encrypt8
- pxor xmm15,XMMWORD PTR[rsp]
- pxor xmm0,XMMWORD PTR[16+rsp]
- movdqu XMMWORD PTR[r13],xmm15
- pxor xmm3,XMMWORD PTR[32+rsp]
- movdqu XMMWORD PTR[16+r13],xmm0
- movdqu XMMWORD PTR[32+r13],xmm3
- lea r13,QWORD PTR[48+r13]
+ pxor xmm15,XMMWORD[rsp]
+ pxor xmm0,XMMWORD[16+rsp]
+ movdqu XMMWORD[r13],xmm15
+ pxor xmm3,XMMWORD[32+rsp]
+ movdqu XMMWORD[16+r13],xmm0
+ movdqu XMMWORD[32+r13],xmm3
+ lea r13,[48+r13]
- movdqa xmm6,XMMWORD PTR[48+rsp]
- jmp $L$xts_enc_done
+ movdqa xmm6,XMMWORD[48+rsp]
+ jmp NEAR $L$xts_enc_done
ALIGN 16
-$L$xts_enc_2::
+$L$xts_enc_2:
pxor xmm15,xmm7
- lea r12,QWORD PTR[32+r12]
+ lea r12,[32+r12]
pxor xmm0,xmm8
- lea rax,QWORD PTR[128+rsp]
+ lea rax,[128+rsp]
mov r10d,edx
call _bsaes_encrypt8
- pxor xmm15,XMMWORD PTR[rsp]
- pxor xmm0,XMMWORD PTR[16+rsp]
- movdqu XMMWORD PTR[r13],xmm15
- movdqu XMMWORD PTR[16+r13],xmm0
- lea r13,QWORD PTR[32+r13]
+ pxor xmm15,XMMWORD[rsp]
+ pxor xmm0,XMMWORD[16+rsp]
+ movdqu XMMWORD[r13],xmm15
+ movdqu XMMWORD[16+r13],xmm0
+ lea r13,[32+r13]
- movdqa xmm6,XMMWORD PTR[32+rsp]
- jmp $L$xts_enc_done
+ movdqa xmm6,XMMWORD[32+rsp]
+ jmp NEAR $L$xts_enc_done
ALIGN 16
-$L$xts_enc_1::
+$L$xts_enc_1:
pxor xmm7,xmm15
- lea r12,QWORD PTR[16+r12]
- movdqa XMMWORD PTR[32+rbp],xmm7
- lea rcx,QWORD PTR[32+rbp]
- lea rdx,QWORD PTR[32+rbp]
- lea r8,QWORD PTR[r15]
+ lea r12,[16+r12]
+ movdqa XMMWORD[32+rbp],xmm7
+ lea rcx,[32+rbp]
+ lea rdx,[32+rbp]
+ lea r8,[r15]
call asm_AES_encrypt
- pxor xmm15,XMMWORD PTR[32+rbp]
+ pxor xmm15,XMMWORD[32+rbp]
- movdqu XMMWORD PTR[r13],xmm15
- lea r13,QWORD PTR[16+r13]
+ movdqu XMMWORD[r13],xmm15
+ lea r13,[16+r13]
- movdqa xmm6,XMMWORD PTR[16+rsp]
+ movdqa xmm6,XMMWORD[16+rsp]
-$L$xts_enc_done::
+$L$xts_enc_done:
and ebx,15
- jz $L$xts_enc_ret
+ jz NEAR $L$xts_enc_ret
mov rdx,r13
-$L$xts_enc_steal::
- movzx eax,BYTE PTR[r12]
- movzx ecx,BYTE PTR[((-16))+rdx]
- lea r12,QWORD PTR[1+r12]
- mov BYTE PTR[((-16))+rdx],al
- mov BYTE PTR[rdx],cl
- lea rdx,QWORD PTR[1+rdx]
+$L$xts_enc_steal:
+ movzx eax,BYTE[r12]
+ movzx ecx,BYTE[((-16))+rdx]
+ lea r12,[1+r12]
+ mov BYTE[((-16))+rdx],al
+ mov BYTE[rdx],cl
+ lea rdx,[1+rdx]
sub ebx,1
- jnz $L$xts_enc_steal
+ jnz NEAR $L$xts_enc_steal
- movdqu xmm15,XMMWORD PTR[((-16))+r13]
- lea rcx,QWORD PTR[32+rbp]
+ movdqu xmm15,XMMWORD[((-16))+r13]
+ lea rcx,[32+rbp]
pxor xmm15,xmm6
- lea rdx,QWORD PTR[32+rbp]
- movdqa XMMWORD PTR[32+rbp],xmm15
- lea r8,QWORD PTR[r15]
+ lea rdx,[32+rbp]
+ movdqa XMMWORD[32+rbp],xmm15
+ lea r8,[r15]
call asm_AES_encrypt
- pxor xmm6,XMMWORD PTR[32+rbp]
- movdqu XMMWORD PTR[(-16)+r13],xmm6
+ pxor xmm6,XMMWORD[32+rbp]
+ movdqu XMMWORD[(-16)+r13],xmm6
-$L$xts_enc_ret::
- lea rax,QWORD PTR[rsp]
+$L$xts_enc_ret:
+ lea rax,[rsp]
pxor xmm0,xmm0
-$L$xts_enc_bzero::
- movdqa XMMWORD PTR[rax],xmm0
- movdqa XMMWORD PTR[16+rax],xmm0
- lea rax,QWORD PTR[32+rax]
+$L$xts_enc_bzero:
+ movdqa XMMWORD[rax],xmm0
+ movdqa XMMWORD[16+rax],xmm0
+ lea rax,[32+rax]
cmp rbp,rax
- ja $L$xts_enc_bzero
-
- lea rsp,QWORD PTR[rbp]
- movaps xmm6,XMMWORD PTR[64+rbp]
- movaps xmm7,XMMWORD PTR[80+rbp]
- movaps xmm8,XMMWORD PTR[96+rbp]
- movaps xmm9,XMMWORD PTR[112+rbp]
- movaps xmm10,XMMWORD PTR[128+rbp]
- movaps xmm11,XMMWORD PTR[144+rbp]
- movaps xmm12,XMMWORD PTR[160+rbp]
- movaps xmm13,XMMWORD PTR[176+rbp]
- movaps xmm14,XMMWORD PTR[192+rbp]
- movaps xmm15,XMMWORD PTR[208+rbp]
- lea rsp,QWORD PTR[160+rbp]
- mov r15,QWORD PTR[72+rsp]
- mov r14,QWORD PTR[80+rsp]
- mov r13,QWORD PTR[88+rsp]
- mov r12,QWORD PTR[96+rsp]
- mov rbx,QWORD PTR[104+rsp]
- mov rax,QWORD PTR[112+rsp]
- lea rsp,QWORD PTR[120+rsp]
+ ja NEAR $L$xts_enc_bzero
+
+ lea rsp,[rbp]
+ movaps xmm6,XMMWORD[64+rbp]
+ movaps xmm7,XMMWORD[80+rbp]
+ movaps xmm8,XMMWORD[96+rbp]
+ movaps xmm9,XMMWORD[112+rbp]
+ movaps xmm10,XMMWORD[128+rbp]
+ movaps xmm11,XMMWORD[144+rbp]
+ movaps xmm12,XMMWORD[160+rbp]
+ movaps xmm13,XMMWORD[176+rbp]
+ movaps xmm14,XMMWORD[192+rbp]
+ movaps xmm15,XMMWORD[208+rbp]
+ lea rsp,[160+rbp]
+ mov r15,QWORD[72+rsp]
+ mov r14,QWORD[80+rsp]
+ mov r13,QWORD[88+rsp]
+ mov r12,QWORD[96+rsp]
+ mov rbx,QWORD[104+rsp]
+ mov rax,QWORD[112+rsp]
+ lea rsp,[120+rsp]
mov rbp,rax
-$L$xts_enc_epilogue::
+$L$xts_enc_epilogue:
DB 0F3h,0C3h ;repret
-bsaes_xts_encrypt ENDP
-PUBLIC bsaes_xts_decrypt
+
+global bsaes_xts_decrypt
ALIGN 16
-bsaes_xts_decrypt PROC PUBLIC
+bsaes_xts_decrypt:
mov rax,rsp
-$L$xts_dec_prologue::
+$L$xts_dec_prologue:
push rbp
push rbx
push r12
push r13
push r14
push r15
- lea rsp,QWORD PTR[((-72))+rsp]
- mov r10,QWORD PTR[160+rsp]
- mov r11,QWORD PTR[168+rsp]
- lea rsp,QWORD PTR[((-160))+rsp]
- movaps XMMWORD PTR[64+rsp],xmm6
- movaps XMMWORD PTR[80+rsp],xmm7
- movaps XMMWORD PTR[96+rsp],xmm8
- movaps XMMWORD PTR[112+rsp],xmm9
- movaps XMMWORD PTR[128+rsp],xmm10
- movaps XMMWORD PTR[144+rsp],xmm11
- movaps XMMWORD PTR[160+rsp],xmm12
- movaps XMMWORD PTR[176+rsp],xmm13
- movaps XMMWORD PTR[192+rsp],xmm14
- movaps XMMWORD PTR[208+rsp],xmm15
-$L$xts_dec_body::
+ lea rsp,[((-72))+rsp]
+ mov r10,QWORD[160+rsp]
+ mov r11,QWORD[168+rsp]
+ lea rsp,[((-160))+rsp]
+ movaps XMMWORD[64+rsp],xmm6
+ movaps XMMWORD[80+rsp],xmm7
+ movaps XMMWORD[96+rsp],xmm8
+ movaps XMMWORD[112+rsp],xmm9
+ movaps XMMWORD[128+rsp],xmm10
+ movaps XMMWORD[144+rsp],xmm11
+ movaps XMMWORD[160+rsp],xmm12
+ movaps XMMWORD[176+rsp],xmm13
+ movaps XMMWORD[192+rsp],xmm14
+ movaps XMMWORD[208+rsp],xmm15
+$L$xts_dec_body:
mov rbp,rsp
mov r12,rcx
mov r13,rdx
mov r14,r8
mov r15,r9
- lea rcx,QWORD PTR[r11]
- lea rdx,QWORD PTR[32+rbp]
- lea r8,QWORD PTR[r10]
+ lea rcx,[r11]
+ lea rdx,[32+rbp]
+ lea r8,[r10]
call asm_AES_encrypt
- mov eax,DWORD PTR[240+r15]
+ mov eax,DWORD[240+r15]
mov rbx,r14
mov edx,eax
@@ -2089,9 +2093,9 @@ $L$xts_dec_body::
mov rcx,r15
mov r10d,edx
call _bsaes_key_convert
- pxor xmm7,XMMWORD PTR[rsp]
- movdqa XMMWORD PTR[rax],xmm6
- movdqa XMMWORD PTR[rsp],xmm7
+ pxor xmm7,XMMWORD[rsp]
+ movdqa XMMWORD[rax],xmm6
+ movdqa XMMWORD[rsp],xmm7
xor eax,eax
and r14,-16
@@ -2100,499 +2104,499 @@ $L$xts_dec_body::
shl rax,4
sub r14,rax
- sub rsp,080h
- movdqa xmm6,XMMWORD PTR[32+rbp]
+ sub rsp,0x80
+ movdqa xmm6,XMMWORD[32+rbp]
pxor xmm14,xmm14
- movdqa xmm12,XMMWORD PTR[$L$xts_magic]
+ movdqa xmm12,XMMWORD[$L$xts_magic]
pcmpgtd xmm14,xmm6
- sub r14,080h
- jc $L$xts_dec_short
- jmp $L$xts_dec_loop
+ sub r14,0x80
+ jc NEAR $L$xts_dec_short
+ jmp NEAR $L$xts_dec_loop
ALIGN 16
-$L$xts_dec_loop::
- pshufd xmm13,xmm14,013h
+$L$xts_dec_loop:
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm15,xmm6
- movdqa XMMWORD PTR[rsp],xmm6
+ movdqa XMMWORD[rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm0,xmm6
- movdqa XMMWORD PTR[16+rsp],xmm6
+ movdqa XMMWORD[16+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm7,XMMWORD PTR[r12]
- pshufd xmm13,xmm14,013h
+ movdqu xmm7,XMMWORD[r12]
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm1,xmm6
- movdqa XMMWORD PTR[32+rsp],xmm6
+ movdqa XMMWORD[32+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm8,XMMWORD PTR[16+r12]
+ movdqu xmm8,XMMWORD[16+r12]
pxor xmm15,xmm7
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm2,xmm6
- movdqa XMMWORD PTR[48+rsp],xmm6
+ movdqa XMMWORD[48+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm9,XMMWORD PTR[32+r12]
+ movdqu xmm9,XMMWORD[32+r12]
pxor xmm0,xmm8
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm3,xmm6
- movdqa XMMWORD PTR[64+rsp],xmm6
+ movdqa XMMWORD[64+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm10,XMMWORD PTR[48+r12]
+ movdqu xmm10,XMMWORD[48+r12]
pxor xmm1,xmm9
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm4,xmm6
- movdqa XMMWORD PTR[80+rsp],xmm6
+ movdqa XMMWORD[80+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm11,XMMWORD PTR[64+r12]
+ movdqu xmm11,XMMWORD[64+r12]
pxor xmm2,xmm10
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm5,xmm6
- movdqa XMMWORD PTR[96+rsp],xmm6
+ movdqa XMMWORD[96+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm12,XMMWORD PTR[80+r12]
+ movdqu xmm12,XMMWORD[80+r12]
pxor xmm3,xmm11
- movdqu xmm13,XMMWORD PTR[96+r12]
+ movdqu xmm13,XMMWORD[96+r12]
pxor xmm4,xmm12
- movdqu xmm14,XMMWORD PTR[112+r12]
- lea r12,QWORD PTR[128+r12]
- movdqa XMMWORD PTR[112+rsp],xmm6
+ movdqu xmm14,XMMWORD[112+r12]
+ lea r12,[128+r12]
+ movdqa XMMWORD[112+rsp],xmm6
pxor xmm5,xmm13
- lea rax,QWORD PTR[128+rsp]
+ lea rax,[128+rsp]
pxor xmm6,xmm14
mov r10d,edx
call _bsaes_decrypt8
- pxor xmm15,XMMWORD PTR[rsp]
- pxor xmm0,XMMWORD PTR[16+rsp]
- movdqu XMMWORD PTR[r13],xmm15
- pxor xmm5,XMMWORD PTR[32+rsp]
- movdqu XMMWORD PTR[16+r13],xmm0
- pxor xmm3,XMMWORD PTR[48+rsp]
- movdqu XMMWORD PTR[32+r13],xmm5
- pxor xmm1,XMMWORD PTR[64+rsp]
- movdqu XMMWORD PTR[48+r13],xmm3
- pxor xmm6,XMMWORD PTR[80+rsp]
- movdqu XMMWORD PTR[64+r13],xmm1
- pxor xmm2,XMMWORD PTR[96+rsp]
- movdqu XMMWORD PTR[80+r13],xmm6
- pxor xmm4,XMMWORD PTR[112+rsp]
- movdqu XMMWORD PTR[96+r13],xmm2
- movdqu XMMWORD PTR[112+r13],xmm4
- lea r13,QWORD PTR[128+r13]
-
- movdqa xmm6,XMMWORD PTR[112+rsp]
+ pxor xmm15,XMMWORD[rsp]
+ pxor xmm0,XMMWORD[16+rsp]
+ movdqu XMMWORD[r13],xmm15
+ pxor xmm5,XMMWORD[32+rsp]
+ movdqu XMMWORD[16+r13],xmm0
+ pxor xmm3,XMMWORD[48+rsp]
+ movdqu XMMWORD[32+r13],xmm5
+ pxor xmm1,XMMWORD[64+rsp]
+ movdqu XMMWORD[48+r13],xmm3
+ pxor xmm6,XMMWORD[80+rsp]
+ movdqu XMMWORD[64+r13],xmm1
+ pxor xmm2,XMMWORD[96+rsp]
+ movdqu XMMWORD[80+r13],xmm6
+ pxor xmm4,XMMWORD[112+rsp]
+ movdqu XMMWORD[96+r13],xmm2
+ movdqu XMMWORD[112+r13],xmm4
+ lea r13,[128+r13]
+
+ movdqa xmm6,XMMWORD[112+rsp]
pxor xmm14,xmm14
- movdqa xmm12,XMMWORD PTR[$L$xts_magic]
+ movdqa xmm12,XMMWORD[$L$xts_magic]
pcmpgtd xmm14,xmm6
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- sub r14,080h
- jnc $L$xts_dec_loop
+ sub r14,0x80
+ jnc NEAR $L$xts_dec_loop
-$L$xts_dec_short::
- add r14,080h
- jz $L$xts_dec_done
- pshufd xmm13,xmm14,013h
+$L$xts_dec_short:
+ add r14,0x80
+ jz NEAR $L$xts_dec_done
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm15,xmm6
- movdqa XMMWORD PTR[rsp],xmm6
+ movdqa XMMWORD[rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm0,xmm6
- movdqa XMMWORD PTR[16+rsp],xmm6
+ movdqa XMMWORD[16+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm7,XMMWORD PTR[r12]
+ movdqu xmm7,XMMWORD[r12]
cmp r14,16
- je $L$xts_dec_1
- pshufd xmm13,xmm14,013h
+ je NEAR $L$xts_dec_1
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm1,xmm6
- movdqa XMMWORD PTR[32+rsp],xmm6
+ movdqa XMMWORD[32+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm8,XMMWORD PTR[16+r12]
+ movdqu xmm8,XMMWORD[16+r12]
cmp r14,32
- je $L$xts_dec_2
+ je NEAR $L$xts_dec_2
pxor xmm15,xmm7
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm2,xmm6
- movdqa XMMWORD PTR[48+rsp],xmm6
+ movdqa XMMWORD[48+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm9,XMMWORD PTR[32+r12]
+ movdqu xmm9,XMMWORD[32+r12]
cmp r14,48
- je $L$xts_dec_3
+ je NEAR $L$xts_dec_3
pxor xmm0,xmm8
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm3,xmm6
- movdqa XMMWORD PTR[64+rsp],xmm6
+ movdqa XMMWORD[64+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm10,XMMWORD PTR[48+r12]
+ movdqu xmm10,XMMWORD[48+r12]
cmp r14,64
- je $L$xts_dec_4
+ je NEAR $L$xts_dec_4
pxor xmm1,xmm9
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm4,xmm6
- movdqa XMMWORD PTR[80+rsp],xmm6
+ movdqa XMMWORD[80+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm11,XMMWORD PTR[64+r12]
+ movdqu xmm11,XMMWORD[64+r12]
cmp r14,80
- je $L$xts_dec_5
+ je NEAR $L$xts_dec_5
pxor xmm2,xmm10
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
pxor xmm14,xmm14
movdqa xmm5,xmm6
- movdqa XMMWORD PTR[96+rsp],xmm6
+ movdqa XMMWORD[96+rsp],xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
pcmpgtd xmm14,xmm6
pxor xmm6,xmm13
- movdqu xmm12,XMMWORD PTR[80+r12]
+ movdqu xmm12,XMMWORD[80+r12]
cmp r14,96
- je $L$xts_dec_6
+ je NEAR $L$xts_dec_6
pxor xmm3,xmm11
- movdqu xmm13,XMMWORD PTR[96+r12]
+ movdqu xmm13,XMMWORD[96+r12]
pxor xmm4,xmm12
- movdqa XMMWORD PTR[112+rsp],xmm6
- lea r12,QWORD PTR[112+r12]
+ movdqa XMMWORD[112+rsp],xmm6
+ lea r12,[112+r12]
pxor xmm5,xmm13
- lea rax,QWORD PTR[128+rsp]
+ lea rax,[128+rsp]
mov r10d,edx
call _bsaes_decrypt8
- pxor xmm15,XMMWORD PTR[rsp]
- pxor xmm0,XMMWORD PTR[16+rsp]
- movdqu XMMWORD PTR[r13],xmm15
- pxor xmm5,XMMWORD PTR[32+rsp]
- movdqu XMMWORD PTR[16+r13],xmm0
- pxor xmm3,XMMWORD PTR[48+rsp]
- movdqu XMMWORD PTR[32+r13],xmm5
- pxor xmm1,XMMWORD PTR[64+rsp]
- movdqu XMMWORD PTR[48+r13],xmm3
- pxor xmm6,XMMWORD PTR[80+rsp]
- movdqu XMMWORD PTR[64+r13],xmm1
- pxor xmm2,XMMWORD PTR[96+rsp]
- movdqu XMMWORD PTR[80+r13],xmm6
- movdqu XMMWORD PTR[96+r13],xmm2
- lea r13,QWORD PTR[112+r13]
-
- movdqa xmm6,XMMWORD PTR[112+rsp]
- jmp $L$xts_dec_done
+ pxor xmm15,XMMWORD[rsp]
+ pxor xmm0,XMMWORD[16+rsp]
+ movdqu XMMWORD[r13],xmm15
+ pxor xmm5,XMMWORD[32+rsp]
+ movdqu XMMWORD[16+r13],xmm0
+ pxor xmm3,XMMWORD[48+rsp]
+ movdqu XMMWORD[32+r13],xmm5
+ pxor xmm1,XMMWORD[64+rsp]
+ movdqu XMMWORD[48+r13],xmm3
+ pxor xmm6,XMMWORD[80+rsp]
+ movdqu XMMWORD[64+r13],xmm1
+ pxor xmm2,XMMWORD[96+rsp]
+ movdqu XMMWORD[80+r13],xmm6
+ movdqu XMMWORD[96+r13],xmm2
+ lea r13,[112+r13]
+
+ movdqa xmm6,XMMWORD[112+rsp]
+ jmp NEAR $L$xts_dec_done
ALIGN 16
-$L$xts_dec_6::
+$L$xts_dec_6:
pxor xmm3,xmm11
- lea r12,QWORD PTR[96+r12]
+ lea r12,[96+r12]
pxor xmm4,xmm12
- lea rax,QWORD PTR[128+rsp]
+ lea rax,[128+rsp]
mov r10d,edx
call _bsaes_decrypt8
- pxor xmm15,XMMWORD PTR[rsp]
- pxor xmm0,XMMWORD PTR[16+rsp]
- movdqu XMMWORD PTR[r13],xmm15
- pxor xmm5,XMMWORD PTR[32+rsp]
- movdqu XMMWORD PTR[16+r13],xmm0
- pxor xmm3,XMMWORD PTR[48+rsp]
- movdqu XMMWORD PTR[32+r13],xmm5
- pxor xmm1,XMMWORD PTR[64+rsp]
- movdqu XMMWORD PTR[48+r13],xmm3
- pxor xmm6,XMMWORD PTR[80+rsp]
- movdqu XMMWORD PTR[64+r13],xmm1
- movdqu XMMWORD PTR[80+r13],xmm6
- lea r13,QWORD PTR[96+r13]
-
- movdqa xmm6,XMMWORD PTR[96+rsp]
- jmp $L$xts_dec_done
+ pxor xmm15,XMMWORD[rsp]
+ pxor xmm0,XMMWORD[16+rsp]
+ movdqu XMMWORD[r13],xmm15
+ pxor xmm5,XMMWORD[32+rsp]
+ movdqu XMMWORD[16+r13],xmm0
+ pxor xmm3,XMMWORD[48+rsp]
+ movdqu XMMWORD[32+r13],xmm5
+ pxor xmm1,XMMWORD[64+rsp]
+ movdqu XMMWORD[48+r13],xmm3
+ pxor xmm6,XMMWORD[80+rsp]
+ movdqu XMMWORD[64+r13],xmm1
+ movdqu XMMWORD[80+r13],xmm6
+ lea r13,[96+r13]
+
+ movdqa xmm6,XMMWORD[96+rsp]
+ jmp NEAR $L$xts_dec_done
ALIGN 16
-$L$xts_dec_5::
+$L$xts_dec_5:
pxor xmm2,xmm10
- lea r12,QWORD PTR[80+r12]
+ lea r12,[80+r12]
pxor xmm3,xmm11
- lea rax,QWORD PTR[128+rsp]
+ lea rax,[128+rsp]
mov r10d,edx
call _bsaes_decrypt8
- pxor xmm15,XMMWORD PTR[rsp]
- pxor xmm0,XMMWORD PTR[16+rsp]
- movdqu XMMWORD PTR[r13],xmm15
- pxor xmm5,XMMWORD PTR[32+rsp]
- movdqu XMMWORD PTR[16+r13],xmm0
- pxor xmm3,XMMWORD PTR[48+rsp]
- movdqu XMMWORD PTR[32+r13],xmm5
- pxor xmm1,XMMWORD PTR[64+rsp]
- movdqu XMMWORD PTR[48+r13],xmm3
- movdqu XMMWORD PTR[64+r13],xmm1
- lea r13,QWORD PTR[80+r13]
-
- movdqa xmm6,XMMWORD PTR[80+rsp]
- jmp $L$xts_dec_done
+ pxor xmm15,XMMWORD[rsp]
+ pxor xmm0,XMMWORD[16+rsp]
+ movdqu XMMWORD[r13],xmm15
+ pxor xmm5,XMMWORD[32+rsp]
+ movdqu XMMWORD[16+r13],xmm0
+ pxor xmm3,XMMWORD[48+rsp]
+ movdqu XMMWORD[32+r13],xmm5
+ pxor xmm1,XMMWORD[64+rsp]
+ movdqu XMMWORD[48+r13],xmm3
+ movdqu XMMWORD[64+r13],xmm1
+ lea r13,[80+r13]
+
+ movdqa xmm6,XMMWORD[80+rsp]
+ jmp NEAR $L$xts_dec_done
ALIGN 16
-$L$xts_dec_4::
+$L$xts_dec_4:
pxor xmm1,xmm9
- lea r12,QWORD PTR[64+r12]
+ lea r12,[64+r12]
pxor xmm2,xmm10
- lea rax,QWORD PTR[128+rsp]
+ lea rax,[128+rsp]
mov r10d,edx
call _bsaes_decrypt8
- pxor xmm15,XMMWORD PTR[rsp]
- pxor xmm0,XMMWORD PTR[16+rsp]
- movdqu XMMWORD PTR[r13],xmm15
- pxor xmm5,XMMWORD PTR[32+rsp]
- movdqu XMMWORD PTR[16+r13],xmm0
- pxor xmm3,XMMWORD PTR[48+rsp]
- movdqu XMMWORD PTR[32+r13],xmm5
- movdqu XMMWORD PTR[48+r13],xmm3
- lea r13,QWORD PTR[64+r13]
-
- movdqa xmm6,XMMWORD PTR[64+rsp]
- jmp $L$xts_dec_done
+ pxor xmm15,XMMWORD[rsp]
+ pxor xmm0,XMMWORD[16+rsp]
+ movdqu XMMWORD[r13],xmm15
+ pxor xmm5,XMMWORD[32+rsp]
+ movdqu XMMWORD[16+r13],xmm0
+ pxor xmm3,XMMWORD[48+rsp]
+ movdqu XMMWORD[32+r13],xmm5
+ movdqu XMMWORD[48+r13],xmm3
+ lea r13,[64+r13]
+
+ movdqa xmm6,XMMWORD[64+rsp]
+ jmp NEAR $L$xts_dec_done
ALIGN 16
-$L$xts_dec_3::
+$L$xts_dec_3:
pxor xmm0,xmm8
- lea r12,QWORD PTR[48+r12]
+ lea r12,[48+r12]
pxor xmm1,xmm9
- lea rax,QWORD PTR[128+rsp]
+ lea rax,[128+rsp]
mov r10d,edx
call _bsaes_decrypt8
- pxor xmm15,XMMWORD PTR[rsp]
- pxor xmm0,XMMWORD PTR[16+rsp]
- movdqu XMMWORD PTR[r13],xmm15
- pxor xmm5,XMMWORD PTR[32+rsp]
- movdqu XMMWORD PTR[16+r13],xmm0
- movdqu XMMWORD PTR[32+r13],xmm5
- lea r13,QWORD PTR[48+r13]
+ pxor xmm15,XMMWORD[rsp]
+ pxor xmm0,XMMWORD[16+rsp]
+ movdqu XMMWORD[r13],xmm15
+ pxor xmm5,XMMWORD[32+rsp]
+ movdqu XMMWORD[16+r13],xmm0
+ movdqu XMMWORD[32+r13],xmm5
+ lea r13,[48+r13]
- movdqa xmm6,XMMWORD PTR[48+rsp]
- jmp $L$xts_dec_done
+ movdqa xmm6,XMMWORD[48+rsp]
+ jmp NEAR $L$xts_dec_done
ALIGN 16
-$L$xts_dec_2::
+$L$xts_dec_2:
pxor xmm15,xmm7
- lea r12,QWORD PTR[32+r12]
+ lea r12,[32+r12]
pxor xmm0,xmm8
- lea rax,QWORD PTR[128+rsp]
+ lea rax,[128+rsp]
mov r10d,edx
call _bsaes_decrypt8
- pxor xmm15,XMMWORD PTR[rsp]
- pxor xmm0,XMMWORD PTR[16+rsp]
- movdqu XMMWORD PTR[r13],xmm15
- movdqu XMMWORD PTR[16+r13],xmm0
- lea r13,QWORD PTR[32+r13]
+ pxor xmm15,XMMWORD[rsp]
+ pxor xmm0,XMMWORD[16+rsp]
+ movdqu XMMWORD[r13],xmm15
+ movdqu XMMWORD[16+r13],xmm0
+ lea r13,[32+r13]
- movdqa xmm6,XMMWORD PTR[32+rsp]
- jmp $L$xts_dec_done
+ movdqa xmm6,XMMWORD[32+rsp]
+ jmp NEAR $L$xts_dec_done
ALIGN 16
-$L$xts_dec_1::
+$L$xts_dec_1:
pxor xmm7,xmm15
- lea r12,QWORD PTR[16+r12]
- movdqa XMMWORD PTR[32+rbp],xmm7
- lea rcx,QWORD PTR[32+rbp]
- lea rdx,QWORD PTR[32+rbp]
- lea r8,QWORD PTR[r15]
+ lea r12,[16+r12]
+ movdqa XMMWORD[32+rbp],xmm7
+ lea rcx,[32+rbp]
+ lea rdx,[32+rbp]
+ lea r8,[r15]
call asm_AES_decrypt
- pxor xmm15,XMMWORD PTR[32+rbp]
+ pxor xmm15,XMMWORD[32+rbp]
- movdqu XMMWORD PTR[r13],xmm15
- lea r13,QWORD PTR[16+r13]
+ movdqu XMMWORD[r13],xmm15
+ lea r13,[16+r13]
- movdqa xmm6,XMMWORD PTR[16+rsp]
+ movdqa xmm6,XMMWORD[16+rsp]
-$L$xts_dec_done::
+$L$xts_dec_done:
and ebx,15
- jz $L$xts_dec_ret
+ jz NEAR $L$xts_dec_ret
pxor xmm14,xmm14
- movdqa xmm12,XMMWORD PTR[$L$xts_magic]
+ movdqa xmm12,XMMWORD[$L$xts_magic]
pcmpgtd xmm14,xmm6
- pshufd xmm13,xmm14,013h
+ pshufd xmm13,xmm14,0x13
movdqa xmm5,xmm6
paddq xmm6,xmm6
pand xmm13,xmm12
- movdqu xmm15,XMMWORD PTR[r12]
+ movdqu xmm15,XMMWORD[r12]
pxor xmm6,xmm13
- lea rcx,QWORD PTR[32+rbp]
+ lea rcx,[32+rbp]
pxor xmm15,xmm6
- lea rdx,QWORD PTR[32+rbp]
- movdqa XMMWORD PTR[32+rbp],xmm15
- lea r8,QWORD PTR[r15]
+ lea rdx,[32+rbp]
+ movdqa XMMWORD[32+rbp],xmm15
+ lea r8,[r15]
call asm_AES_decrypt
- pxor xmm6,XMMWORD PTR[32+rbp]
+ pxor xmm6,XMMWORD[32+rbp]
mov rdx,r13
- movdqu XMMWORD PTR[r13],xmm6
-
-$L$xts_dec_steal::
- movzx eax,BYTE PTR[16+r12]
- movzx ecx,BYTE PTR[rdx]
- lea r12,QWORD PTR[1+r12]
- mov BYTE PTR[rdx],al
- mov BYTE PTR[16+rdx],cl
- lea rdx,QWORD PTR[1+rdx]
+ movdqu XMMWORD[r13],xmm6
+
+$L$xts_dec_steal:
+ movzx eax,BYTE[16+r12]
+ movzx ecx,BYTE[rdx]
+ lea r12,[1+r12]
+ mov BYTE[rdx],al
+ mov BYTE[16+rdx],cl
+ lea rdx,[1+rdx]
sub ebx,1
- jnz $L$xts_dec_steal
+ jnz NEAR $L$xts_dec_steal
- movdqu xmm15,XMMWORD PTR[r13]
- lea rcx,QWORD PTR[32+rbp]
+ movdqu xmm15,XMMWORD[r13]
+ lea rcx,[32+rbp]
pxor xmm15,xmm5
- lea rdx,QWORD PTR[32+rbp]
- movdqa XMMWORD PTR[32+rbp],xmm15
- lea r8,QWORD PTR[r15]
+ lea rdx,[32+rbp]
+ movdqa XMMWORD[32+rbp],xmm15
+ lea r8,[r15]
call asm_AES_decrypt
- pxor xmm5,XMMWORD PTR[32+rbp]
- movdqu XMMWORD PTR[r13],xmm5
+ pxor xmm5,XMMWORD[32+rbp]
+ movdqu XMMWORD[r13],xmm5
-$L$xts_dec_ret::
- lea rax,QWORD PTR[rsp]
+$L$xts_dec_ret:
+ lea rax,[rsp]
pxor xmm0,xmm0
-$L$xts_dec_bzero::
- movdqa XMMWORD PTR[rax],xmm0
- movdqa XMMWORD PTR[16+rax],xmm0
- lea rax,QWORD PTR[32+rax]
+$L$xts_dec_bzero:
+ movdqa XMMWORD[rax],xmm0
+ movdqa XMMWORD[16+rax],xmm0
+ lea rax,[32+rax]
cmp rbp,rax
- ja $L$xts_dec_bzero
-
- lea rsp,QWORD PTR[rbp]
- movaps xmm6,XMMWORD PTR[64+rbp]
- movaps xmm7,XMMWORD PTR[80+rbp]
- movaps xmm8,XMMWORD PTR[96+rbp]
- movaps xmm9,XMMWORD PTR[112+rbp]
- movaps xmm10,XMMWORD PTR[128+rbp]
- movaps xmm11,XMMWORD PTR[144+rbp]
- movaps xmm12,XMMWORD PTR[160+rbp]
- movaps xmm13,XMMWORD PTR[176+rbp]
- movaps xmm14,XMMWORD PTR[192+rbp]
- movaps xmm15,XMMWORD PTR[208+rbp]
- lea rsp,QWORD PTR[160+rbp]
- mov r15,QWORD PTR[72+rsp]
- mov r14,QWORD PTR[80+rsp]
- mov r13,QWORD PTR[88+rsp]
- mov r12,QWORD PTR[96+rsp]
- mov rbx,QWORD PTR[104+rsp]
- mov rax,QWORD PTR[112+rsp]
- lea rsp,QWORD PTR[120+rsp]
+ ja NEAR $L$xts_dec_bzero
+
+ lea rsp,[rbp]
+ movaps xmm6,XMMWORD[64+rbp]
+ movaps xmm7,XMMWORD[80+rbp]
+ movaps xmm8,XMMWORD[96+rbp]
+ movaps xmm9,XMMWORD[112+rbp]
+ movaps xmm10,XMMWORD[128+rbp]
+ movaps xmm11,XMMWORD[144+rbp]
+ movaps xmm12,XMMWORD[160+rbp]
+ movaps xmm13,XMMWORD[176+rbp]
+ movaps xmm14,XMMWORD[192+rbp]
+ movaps xmm15,XMMWORD[208+rbp]
+ lea rsp,[160+rbp]
+ mov r15,QWORD[72+rsp]
+ mov r14,QWORD[80+rsp]
+ mov r13,QWORD[88+rsp]
+ mov r12,QWORD[96+rsp]
+ mov rbx,QWORD[104+rsp]
+ mov rax,QWORD[112+rsp]
+ lea rsp,[120+rsp]
mov rbp,rax
-$L$xts_dec_epilogue::
+$L$xts_dec_epilogue:
DB 0F3h,0C3h ;repret
-bsaes_xts_decrypt ENDP
+
ALIGN 64
-_bsaes_const::
-$L$M0ISR::
- DQ 00a0e0206070b0f03h,00004080c0d010509h
-$L$ISRM0::
- DQ 001040b0e0205080fh,00306090c00070a0dh
-$L$ISR::
- DQ 00504070602010003h,00f0e0d0c080b0a09h
-$L$BS0::
- DQ 05555555555555555h,05555555555555555h
-$L$BS1::
- DQ 03333333333333333h,03333333333333333h
-$L$BS2::
- DQ 00f0f0f0f0f0f0f0fh,00f0f0f0f0f0f0f0fh
-$L$SR::
- DQ 00504070600030201h,00f0e0d0c0a09080bh
-$L$SRM0::
- DQ 00304090e00050a0fh,001060b0c0207080dh
-$L$M0SR::
- DQ 00a0e02060f03070bh,00004080c05090d01h
-$L$SWPUP::
- DQ 00706050403020100h,00c0d0e0f0b0a0908h
-$L$SWPUPM0SR::
- DQ 00a0d02060c03070bh,00004080f05090e01h
-$L$ADD1::
- DQ 00000000000000000h,00000000100000000h
-$L$ADD2::
- DQ 00000000000000000h,00000000200000000h
-$L$ADD3::
- DQ 00000000000000000h,00000000300000000h
-$L$ADD4::
- DQ 00000000000000000h,00000000400000000h
-$L$ADD5::
- DQ 00000000000000000h,00000000500000000h
-$L$ADD6::
- DQ 00000000000000000h,00000000600000000h
-$L$ADD7::
- DQ 00000000000000000h,00000000700000000h
-$L$ADD8::
- DQ 00000000000000000h,00000000800000000h
-$L$xts_magic::
- DD 087h,0,1,0
-$L$masks::
- DQ 00101010101010101h,00101010101010101h
- DQ 00202020202020202h,00202020202020202h
- DQ 00404040404040404h,00404040404040404h
- DQ 00808080808080808h,00808080808080808h
-$L$M0::
- DQ 002060a0e03070b0fh,00004080c0105090dh
-$L$63::
- DQ 06363636363636363h,06363636363636363h
+_bsaes_const:
+$L$M0ISR:
+ DQ 0x0a0e0206070b0f03,0x0004080c0d010509
+$L$ISRM0:
+ DQ 0x01040b0e0205080f,0x0306090c00070a0d
+$L$ISR:
+ DQ 0x0504070602010003,0x0f0e0d0c080b0a09
+$L$BS0:
+ DQ 0x5555555555555555,0x5555555555555555
+$L$BS1:
+ DQ 0x3333333333333333,0x3333333333333333
+$L$BS2:
+ DQ 0x0f0f0f0f0f0f0f0f,0x0f0f0f0f0f0f0f0f
+$L$SR:
+ DQ 0x0504070600030201,0x0f0e0d0c0a09080b
+$L$SRM0:
+ DQ 0x0304090e00050a0f,0x01060b0c0207080d
+$L$M0SR:
+ DQ 0x0a0e02060f03070b,0x0004080c05090d01
+$L$SWPUP:
+ DQ 0x0706050403020100,0x0c0d0e0f0b0a0908
+$L$SWPUPM0SR:
+ DQ 0x0a0d02060c03070b,0x0004080f05090e01
+$L$ADD1:
+ DQ 0x0000000000000000,0x0000000100000000
+$L$ADD2:
+ DQ 0x0000000000000000,0x0000000200000000
+$L$ADD3:
+ DQ 0x0000000000000000,0x0000000300000000
+$L$ADD4:
+ DQ 0x0000000000000000,0x0000000400000000
+$L$ADD5:
+ DQ 0x0000000000000000,0x0000000500000000
+$L$ADD6:
+ DQ 0x0000000000000000,0x0000000600000000
+$L$ADD7:
+ DQ 0x0000000000000000,0x0000000700000000
+$L$ADD8:
+ DQ 0x0000000000000000,0x0000000800000000
+$L$xts_magic:
+ DD 0x87,0,1,0
+$L$masks:
+ DQ 0x0101010101010101,0x0101010101010101
+ DQ 0x0202020202020202,0x0202020202020202
+ DQ 0x0404040404040404,0x0404040404040404
+ DQ 0x0808080808080808,0x0808080808080808
+$L$M0:
+ DQ 0x02060a0e03070b0f,0x0004080c0105090d
+$L$63:
+ DQ 0x6363636363636363,0x6363636363636363
DB 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102
DB 111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44
DB 32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44
@@ -2600,10 +2604,10 @@ DB 32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32
DB 65,110,100,121,32,80,111,108,121,97,107,111,118,0
ALIGN 64
-EXTERN __imp_RtlVirtualUnwind:NEAR
+EXTERN __imp_RtlVirtualUnwind
ALIGN 16
-se_handler PROC PRIVATE
+se_handler:
push rsi
push rdi
push rbx
@@ -2615,67 +2619,67 @@ se_handler PROC PRIVATE
pushfq
sub rsp,64
- mov rax,QWORD PTR[120+r8]
- mov rbx,QWORD PTR[248+r8]
+ mov rax,QWORD[120+r8]
+ mov rbx,QWORD[248+r8]
- mov rsi,QWORD PTR[8+r9]
- mov r11,QWORD PTR[56+r9]
+ mov rsi,QWORD[8+r9]
+ mov r11,QWORD[56+r9]
- mov r10d,DWORD PTR[r11]
- lea r10,QWORD PTR[r10*1+rsi]
+ mov r10d,DWORD[r11]
+ lea r10,[r10*1+rsi]
cmp rbx,r10
- jb $L$in_prologue
+ jb NEAR $L$in_prologue
- mov rax,QWORD PTR[152+r8]
+ mov rax,QWORD[152+r8]
- mov r10d,DWORD PTR[4+r11]
- lea r10,QWORD PTR[r10*1+rsi]
+ mov r10d,DWORD[4+r11]
+ lea r10,[r10*1+rsi]
cmp rbx,r10
- jae $L$in_prologue
+ jae NEAR $L$in_prologue
- mov rax,QWORD PTR[160+r8]
+ mov rax,QWORD[160+r8]
- lea rsi,QWORD PTR[64+rax]
- lea rdi,QWORD PTR[512+r8]
+ lea rsi,[64+rax]
+ lea rdi,[512+r8]
mov ecx,20
- DD 0a548f3fch
- lea rax,QWORD PTR[160+rax]
-
- mov rbp,QWORD PTR[112+rax]
- mov rbx,QWORD PTR[104+rax]
- mov r12,QWORD PTR[96+rax]
- mov r13,QWORD PTR[88+rax]
- mov r14,QWORD PTR[80+rax]
- mov r15,QWORD PTR[72+rax]
- lea rax,QWORD PTR[120+rax]
- mov QWORD PTR[144+r8],rbx
- mov QWORD PTR[160+r8],rbp
- mov QWORD PTR[216+r8],r12
- mov QWORD PTR[224+r8],r13
- mov QWORD PTR[232+r8],r14
- mov QWORD PTR[240+r8],r15
-
-$L$in_prologue::
- mov QWORD PTR[152+r8],rax
-
- mov rdi,QWORD PTR[40+r9]
+ DD 0xa548f3fc
+ lea rax,[160+rax]
+
+ mov rbp,QWORD[112+rax]
+ mov rbx,QWORD[104+rax]
+ mov r12,QWORD[96+rax]
+ mov r13,QWORD[88+rax]
+ mov r14,QWORD[80+rax]
+ mov r15,QWORD[72+rax]
+ lea rax,[120+rax]
+ mov QWORD[144+r8],rbx
+ mov QWORD[160+r8],rbp
+ mov QWORD[216+r8],r12
+ mov QWORD[224+r8],r13
+ mov QWORD[232+r8],r14
+ mov QWORD[240+r8],r15
+
+$L$in_prologue:
+ mov QWORD[152+r8],rax
+
+ mov rdi,QWORD[40+r9]
mov rsi,r8
mov ecx,154
- DD 0a548f3fch
+ DD 0xa548f3fc
mov rsi,r9
xor rcx,rcx
- mov rdx,QWORD PTR[8+rsi]
- mov r8,QWORD PTR[rsi]
- mov r9,QWORD PTR[16+rsi]
- mov r10,QWORD PTR[40+rsi]
- lea r11,QWORD PTR[56+rsi]
- lea r12,QWORD PTR[24+rsi]
- mov QWORD PTR[32+rsp],r10
- mov QWORD PTR[40+rsp],r11
- mov QWORD PTR[48+rsp],r12
- mov QWORD PTR[56+rsp],rcx
- call QWORD PTR[__imp_RtlVirtualUnwind]
+ mov rdx,QWORD[8+rsi]
+ mov r8,QWORD[rsi]
+ mov r9,QWORD[16+rsi]
+ mov r10,QWORD[40+rsi]
+ lea r11,[56+rsi]
+ lea r12,[24+rsi]
+ mov QWORD[32+rsp],r10
+ mov QWORD[40+rsp],r11
+ mov QWORD[48+rsp],r12
+ mov QWORD[56+rsp],rcx
+ call QWORD[__imp_RtlVirtualUnwind]
mov eax,1
add rsp,64
@@ -2689,46 +2693,41 @@ $L$in_prologue::
pop rdi
pop rsi
DB 0F3h,0C3h ;repret
-se_handler ENDP
-.text$ ENDS
-.pdata SEGMENT READONLY ALIGN(4)
+
+section .pdata rdata align=4
ALIGN 4
- DD imagerel $L$cbc_dec_prologue
- DD imagerel $L$cbc_dec_epilogue
- DD imagerel $L$cbc_dec_info
+ DD $L$cbc_dec_prologue wrt ..imagebase
+ DD $L$cbc_dec_epilogue wrt ..imagebase
+ DD $L$cbc_dec_info wrt ..imagebase
- DD imagerel $L$ctr_enc_prologue
- DD imagerel $L$ctr_enc_epilogue
- DD imagerel $L$ctr_enc_info
+ DD $L$ctr_enc_prologue wrt ..imagebase
+ DD $L$ctr_enc_epilogue wrt ..imagebase
+ DD $L$ctr_enc_info wrt ..imagebase
- DD imagerel $L$xts_enc_prologue
- DD imagerel $L$xts_enc_epilogue
- DD imagerel $L$xts_enc_info
+ DD $L$xts_enc_prologue wrt ..imagebase
+ DD $L$xts_enc_epilogue wrt ..imagebase
+ DD $L$xts_enc_info wrt ..imagebase
- DD imagerel $L$xts_dec_prologue
- DD imagerel $L$xts_dec_epilogue
- DD imagerel $L$xts_dec_info
+ DD $L$xts_dec_prologue wrt ..imagebase
+ DD $L$xts_dec_epilogue wrt ..imagebase
+ DD $L$xts_dec_info wrt ..imagebase
-.pdata ENDS
-.xdata SEGMENT READONLY ALIGN(8)
+section .xdata rdata align=8
ALIGN 8
-$L$cbc_dec_info::
+$L$cbc_dec_info:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$cbc_dec_body,imagerel $L$cbc_dec_epilogue
-$L$ctr_enc_info::
+ DD se_handler wrt ..imagebase
+ DD $L$cbc_dec_body wrt ..imagebase,$L$cbc_dec_epilogue wrt ..imagebase
+$L$ctr_enc_info:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$ctr_enc_body,imagerel $L$ctr_enc_epilogue
-$L$xts_enc_info::
+ DD se_handler wrt ..imagebase
+ DD $L$ctr_enc_body wrt ..imagebase,$L$ctr_enc_epilogue wrt ..imagebase
+$L$xts_enc_info:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$xts_enc_body,imagerel $L$xts_enc_epilogue
-$L$xts_dec_info::
+ DD se_handler wrt ..imagebase
+ DD $L$xts_enc_body wrt ..imagebase,$L$xts_enc_epilogue wrt ..imagebase
+$L$xts_dec_info:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$xts_dec_body,imagerel $L$xts_dec_epilogue
-
-.xdata ENDS
-END
+ DD se_handler wrt ..imagebase
+ DD $L$xts_dec_body wrt ..imagebase,$L$xts_dec_epilogue wrt ..imagebase
diff --git a/win-x86_64/crypto/aes/vpaes-x86_64.asm b/win-x86_64/crypto/aes/vpaes-x86_64.asm
index 292f64d..3edde9f 100644
--- a/win-x86_64/crypto/aes/vpaes-x86_64.asm
+++ b/win-x86_64/crypto/aes/vpaes-x86_64.asm
@@ -1,5 +1,9 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
+
@@ -18,27 +22,27 @@ OPTION DOTNAME
ALIGN 16
-_vpaes_encrypt_core PROC PRIVATE
+_vpaes_encrypt_core:
mov r9,rdx
mov r11,16
- mov eax,DWORD PTR[240+rdx]
+ mov eax,DWORD[240+rdx]
movdqa xmm1,xmm9
- movdqa xmm2,XMMWORD PTR[$L$k_ipt]
+ movdqa xmm2,XMMWORD[$L$k_ipt]
pandn xmm1,xmm0
- movdqu xmm5,XMMWORD PTR[r9]
+ movdqu xmm5,XMMWORD[r9]
psrld xmm1,4
pand xmm0,xmm9
DB 102,15,56,0,208
- movdqa xmm0,XMMWORD PTR[(($L$k_ipt+16))]
+ movdqa xmm0,XMMWORD[(($L$k_ipt+16))]
DB 102,15,56,0,193
pxor xmm2,xmm5
add r9,16
pxor xmm0,xmm2
- lea r10,QWORD PTR[$L$k_mc_backward]
- jmp $L$enc_entry
+ lea r10,[$L$k_mc_backward]
+ jmp NEAR $L$enc_entry
ALIGN 16
-$L$enc_loop::
+$L$enc_loop:
movdqa xmm4,xmm13
movdqa xmm0,xmm12
@@ -47,9 +51,9 @@ DB 102,15,56,0,195
pxor xmm4,xmm5
movdqa xmm5,xmm15
pxor xmm0,xmm4
- movdqa xmm1,XMMWORD PTR[((-64))+r10*1+r11]
+ movdqa xmm1,XMMWORD[((-64))+r10*1+r11]
DB 102,15,56,0,234
- movdqa xmm4,XMMWORD PTR[r10*1+r11]
+ movdqa xmm4,XMMWORD[r10*1+r11]
movdqa xmm2,xmm14
DB 102,15,56,0,211
movdqa xmm3,xmm0
@@ -61,11 +65,11 @@ DB 102,15,56,0,220
add r11,16
pxor xmm3,xmm0
DB 102,15,56,0,193
- and r11,030h
+ and r11,0x30
sub rax,1
pxor xmm0,xmm3
-$L$enc_entry::
+$L$enc_entry:
movdqa xmm1,xmm9
movdqa xmm5,xmm11
@@ -85,21 +89,21 @@ DB 102,15,56,0,211
movdqa xmm3,xmm10
pxor xmm2,xmm0
DB 102,15,56,0,220
- movdqu xmm5,XMMWORD PTR[r9]
+ movdqu xmm5,XMMWORD[r9]
pxor xmm3,xmm1
- jnz $L$enc_loop
+ jnz NEAR $L$enc_loop
- movdqa xmm4,XMMWORD PTR[((-96))+r10]
- movdqa xmm0,XMMWORD PTR[((-80))+r10]
+ movdqa xmm4,XMMWORD[((-96))+r10]
+ movdqa xmm0,XMMWORD[((-80))+r10]
DB 102,15,56,0,226
pxor xmm4,xmm5
DB 102,15,56,0,195
- movdqa xmm1,XMMWORD PTR[64+r10*1+r11]
+ movdqa xmm1,XMMWORD[64+r10*1+r11]
pxor xmm0,xmm4
DB 102,15,56,0,193
DB 0F3h,0C3h ;repret
-_vpaes_encrypt_core ENDP
+
@@ -108,59 +112,59 @@ _vpaes_encrypt_core ENDP
ALIGN 16
-_vpaes_decrypt_core PROC PRIVATE
+_vpaes_decrypt_core:
mov r9,rdx
- mov eax,DWORD PTR[240+rdx]
+ mov eax,DWORD[240+rdx]
movdqa xmm1,xmm9
- movdqa xmm2,XMMWORD PTR[$L$k_dipt]
+ movdqa xmm2,XMMWORD[$L$k_dipt]
pandn xmm1,xmm0
mov r11,rax
psrld xmm1,4
- movdqu xmm5,XMMWORD PTR[r9]
+ movdqu xmm5,XMMWORD[r9]
shl r11,4
pand xmm0,xmm9
DB 102,15,56,0,208
- movdqa xmm0,XMMWORD PTR[(($L$k_dipt+16))]
- xor r11,030h
- lea r10,QWORD PTR[$L$k_dsbd]
+ movdqa xmm0,XMMWORD[(($L$k_dipt+16))]
+ xor r11,0x30
+ lea r10,[$L$k_dsbd]
DB 102,15,56,0,193
- and r11,030h
+ and r11,0x30
pxor xmm2,xmm5
- movdqa xmm5,XMMWORD PTR[(($L$k_mc_forward+48))]
+ movdqa xmm5,XMMWORD[(($L$k_mc_forward+48))]
pxor xmm0,xmm2
add r9,16
add r11,r10
- jmp $L$dec_entry
+ jmp NEAR $L$dec_entry
ALIGN 16
-$L$dec_loop::
+$L$dec_loop:
- movdqa xmm4,XMMWORD PTR[((-32))+r10]
- movdqa xmm1,XMMWORD PTR[((-16))+r10]
+ movdqa xmm4,XMMWORD[((-32))+r10]
+ movdqa xmm1,XMMWORD[((-16))+r10]
DB 102,15,56,0,226
DB 102,15,56,0,203
pxor xmm0,xmm4
- movdqa xmm4,XMMWORD PTR[r10]
+ movdqa xmm4,XMMWORD[r10]
pxor xmm0,xmm1
- movdqa xmm1,XMMWORD PTR[16+r10]
+ movdqa xmm1,XMMWORD[16+r10]
DB 102,15,56,0,226
DB 102,15,56,0,197
DB 102,15,56,0,203
pxor xmm0,xmm4
- movdqa xmm4,XMMWORD PTR[32+r10]
+ movdqa xmm4,XMMWORD[32+r10]
pxor xmm0,xmm1
- movdqa xmm1,XMMWORD PTR[48+r10]
+ movdqa xmm1,XMMWORD[48+r10]
DB 102,15,56,0,226
DB 102,15,56,0,197
DB 102,15,56,0,203
pxor xmm0,xmm4
- movdqa xmm4,XMMWORD PTR[64+r10]
+ movdqa xmm4,XMMWORD[64+r10]
pxor xmm0,xmm1
- movdqa xmm1,XMMWORD PTR[80+r10]
+ movdqa xmm1,XMMWORD[80+r10]
DB 102,15,56,0,226
DB 102,15,56,0,197
@@ -171,7 +175,7 @@ DB 102,15,58,15,237,12
pxor xmm0,xmm1
sub rax,1
-$L$dec_entry::
+$L$dec_entry:
movdqa xmm1,xmm9
pandn xmm1,xmm0
@@ -191,21 +195,21 @@ DB 102,15,56,0,211
movdqa xmm3,xmm10
pxor xmm2,xmm0
DB 102,15,56,0,220
- movdqu xmm0,XMMWORD PTR[r9]
+ movdqu xmm0,XMMWORD[r9]
pxor xmm3,xmm1
- jnz $L$dec_loop
+ jnz NEAR $L$dec_loop
- movdqa xmm4,XMMWORD PTR[96+r10]
+ movdqa xmm4,XMMWORD[96+r10]
DB 102,15,56,0,226
pxor xmm4,xmm0
- movdqa xmm0,XMMWORD PTR[112+r10]
- movdqa xmm2,XMMWORD PTR[((-352))+r11]
+ movdqa xmm0,XMMWORD[112+r10]
+ movdqa xmm2,XMMWORD[((-352))+r11]
DB 102,15,56,0,195
pxor xmm0,xmm4
DB 102,15,56,0,194
DB 0F3h,0C3h ;repret
-_vpaes_decrypt_core ENDP
+
@@ -214,41 +218,41 @@ _vpaes_decrypt_core ENDP
ALIGN 16
-_vpaes_schedule_core PROC PRIVATE
+_vpaes_schedule_core:
call _vpaes_preheat
- movdqa xmm8,XMMWORD PTR[$L$k_rcon]
- movdqu xmm0,XMMWORD PTR[rdi]
+ movdqa xmm8,XMMWORD[$L$k_rcon]
+ movdqu xmm0,XMMWORD[rdi]
movdqa xmm3,xmm0
- lea r11,QWORD PTR[$L$k_ipt]
+ lea r11,[$L$k_ipt]
call _vpaes_schedule_transform
movdqa xmm7,xmm0
- lea r10,QWORD PTR[$L$k_sr]
+ lea r10,[$L$k_sr]
test rcx,rcx
- jnz $L$schedule_am_decrypting
+ jnz NEAR $L$schedule_am_decrypting
- movdqu XMMWORD PTR[rdx],xmm0
- jmp $L$schedule_go
+ movdqu XMMWORD[rdx],xmm0
+ jmp NEAR $L$schedule_go
-$L$schedule_am_decrypting::
+$L$schedule_am_decrypting:
- movdqa xmm1,XMMWORD PTR[r10*1+r8]
+ movdqa xmm1,XMMWORD[r10*1+r8]
DB 102,15,56,0,217
- movdqu XMMWORD PTR[rdx],xmm3
- xor r8,030h
+ movdqu XMMWORD[rdx],xmm3
+ xor r8,0x30
-$L$schedule_go::
+$L$schedule_go:
cmp esi,192
- ja $L$schedule_256
- je $L$schedule_192
+ ja NEAR $L$schedule_256
+ je NEAR $L$schedule_192
@@ -259,15 +263,15 @@ $L$schedule_go::
-$L$schedule_128::
+$L$schedule_128:
mov esi,10
-$L$oop_schedule_128::
+$L$oop_schedule_128:
call _vpaes_schedule_round
dec rsi
- jz $L$schedule_mangle_last
+ jz NEAR $L$schedule_mangle_last
call _vpaes_schedule_mangle
- jmp $L$oop_schedule_128
+ jmp NEAR $L$oop_schedule_128
@@ -285,15 +289,15 @@ $L$oop_schedule_128::
ALIGN 16
-$L$schedule_192::
- movdqu xmm0,XMMWORD PTR[8+rdi]
+$L$schedule_192:
+ movdqu xmm0,XMMWORD[8+rdi]
call _vpaes_schedule_transform
movdqa xmm6,xmm0
pxor xmm4,xmm4
movhlps xmm6,xmm4
mov esi,4
-$L$oop_schedule_192::
+$L$oop_schedule_192:
call _vpaes_schedule_round
DB 102,15,58,15,198,8
call _vpaes_schedule_mangle
@@ -301,10 +305,10 @@ DB 102,15,58,15,198,8
call _vpaes_schedule_mangle
call _vpaes_schedule_round
dec rsi
- jz $L$schedule_mangle_last
+ jz NEAR $L$schedule_mangle_last
call _vpaes_schedule_mangle
call _vpaes_schedule_192_smear
- jmp $L$oop_schedule_192
+ jmp NEAR $L$oop_schedule_192
@@ -317,29 +321,29 @@ DB 102,15,58,15,198,8
ALIGN 16
-$L$schedule_256::
- movdqu xmm0,XMMWORD PTR[16+rdi]
+$L$schedule_256:
+ movdqu xmm0,XMMWORD[16+rdi]
call _vpaes_schedule_transform
mov esi,7
-$L$oop_schedule_256::
+$L$oop_schedule_256:
call _vpaes_schedule_mangle
movdqa xmm6,xmm0
call _vpaes_schedule_round
dec rsi
- jz $L$schedule_mangle_last
+ jz NEAR $L$schedule_mangle_last
call _vpaes_schedule_mangle
- pshufd xmm0,xmm0,0FFh
+ pshufd xmm0,xmm0,0xFF
movdqa xmm5,xmm7
movdqa xmm7,xmm6
call _vpaes_schedule_low_round
movdqa xmm7,xmm5
- jmp $L$oop_schedule_256
+ jmp NEAR $L$oop_schedule_256
@@ -353,23 +357,23 @@ $L$oop_schedule_256::
ALIGN 16
-$L$schedule_mangle_last::
+$L$schedule_mangle_last:
- lea r11,QWORD PTR[$L$k_deskew]
+ lea r11,[$L$k_deskew]
test rcx,rcx
- jnz $L$schedule_mangle_last_dec
+ jnz NEAR $L$schedule_mangle_last_dec
- movdqa xmm1,XMMWORD PTR[r10*1+r8]
+ movdqa xmm1,XMMWORD[r10*1+r8]
DB 102,15,56,0,193
- lea r11,QWORD PTR[$L$k_opt]
+ lea r11,[$L$k_opt]
add rdx,32
-$L$schedule_mangle_last_dec::
+$L$schedule_mangle_last_dec:
add rdx,-16
- pxor xmm0,XMMWORD PTR[$L$k_s63]
+ pxor xmm0,XMMWORD[$L$k_s63]
call _vpaes_schedule_transform
- movdqu XMMWORD PTR[rdx],xmm0
+ movdqu XMMWORD[rdx],xmm0
pxor xmm0,xmm0
@@ -381,7 +385,7 @@ $L$schedule_mangle_last_dec::
pxor xmm6,xmm6
pxor xmm7,xmm7
DB 0F3h,0C3h ;repret
-_vpaes_schedule_core ENDP
+
@@ -399,16 +403,16 @@ _vpaes_schedule_core ENDP
ALIGN 16
-_vpaes_schedule_192_smear PROC PRIVATE
- pshufd xmm1,xmm6,080h
- pshufd xmm0,xmm7,0FEh
+_vpaes_schedule_192_smear:
+ pshufd xmm1,xmm6,0x80
+ pshufd xmm0,xmm7,0xFE
pxor xmm6,xmm1
pxor xmm1,xmm1
pxor xmm6,xmm0
movdqa xmm0,xmm6
movhlps xmm6,xmm1
DB 0F3h,0C3h ;repret
-_vpaes_schedule_192_smear ENDP
+
@@ -430,7 +434,7 @@ _vpaes_schedule_192_smear ENDP
ALIGN 16
-_vpaes_schedule_round PROC PRIVATE
+_vpaes_schedule_round:
pxor xmm1,xmm1
DB 102,65,15,58,15,200,15
@@ -438,13 +442,13 @@ DB 102,69,15,58,15,192,15
pxor xmm7,xmm1
- pshufd xmm0,xmm0,0FFh
+ pshufd xmm0,xmm0,0xFF
DB 102,15,58,15,192,1
-_vpaes_schedule_low_round::
+_vpaes_schedule_low_round:
movdqa xmm1,xmm7
pslldq xmm7,4
@@ -452,7 +456,7 @@ _vpaes_schedule_low_round::
movdqa xmm1,xmm7
pslldq xmm7,8
pxor xmm7,xmm1
- pxor xmm7,XMMWORD PTR[$L$k_s63]
+ pxor xmm7,XMMWORD[$L$k_s63]
movdqa xmm1,xmm9
@@ -484,7 +488,7 @@ DB 102,15,56,0,195
pxor xmm0,xmm7
movdqa xmm7,xmm0
DB 0F3h,0C3h ;repret
-_vpaes_schedule_round ENDP
+
@@ -497,18 +501,18 @@ _vpaes_schedule_round ENDP
ALIGN 16
-_vpaes_schedule_transform PROC PRIVATE
+_vpaes_schedule_transform:
movdqa xmm1,xmm9
pandn xmm1,xmm0
psrld xmm1,4
pand xmm0,xmm9
- movdqa xmm2,XMMWORD PTR[r11]
+ movdqa xmm2,XMMWORD[r11]
DB 102,15,56,0,208
- movdqa xmm0,XMMWORD PTR[16+r11]
+ movdqa xmm0,XMMWORD[16+r11]
DB 102,15,56,0,193
pxor xmm0,xmm2
DB 0F3h,0C3h ;repret
-_vpaes_schedule_transform ENDP
+
@@ -535,15 +539,15 @@ _vpaes_schedule_transform ENDP
ALIGN 16
-_vpaes_schedule_mangle PROC PRIVATE
+_vpaes_schedule_mangle:
movdqa xmm4,xmm0
- movdqa xmm5,XMMWORD PTR[$L$k_mc_forward]
+ movdqa xmm5,XMMWORD[$L$k_mc_forward]
test rcx,rcx
- jnz $L$schedule_mangle_dec
+ jnz NEAR $L$schedule_mangle_dec
add rdx,16
- pxor xmm4,XMMWORD PTR[$L$k_s63]
+ pxor xmm4,XMMWORD[$L$k_s63]
DB 102,15,56,0,229
movdqa xmm3,xmm4
DB 102,15,56,0,229
@@ -551,143 +555,142 @@ DB 102,15,56,0,229
DB 102,15,56,0,229
pxor xmm3,xmm4
- jmp $L$schedule_mangle_both
+ jmp NEAR $L$schedule_mangle_both
ALIGN 16
-$L$schedule_mangle_dec::
+$L$schedule_mangle_dec:
- lea r11,QWORD PTR[$L$k_dksd]
+ lea r11,[$L$k_dksd]
movdqa xmm1,xmm9
pandn xmm1,xmm4
psrld xmm1,4
pand xmm4,xmm9
- movdqa xmm2,XMMWORD PTR[r11]
+ movdqa xmm2,XMMWORD[r11]
DB 102,15,56,0,212
- movdqa xmm3,XMMWORD PTR[16+r11]
+ movdqa xmm3,XMMWORD[16+r11]
DB 102,15,56,0,217
pxor xmm3,xmm2
DB 102,15,56,0,221
- movdqa xmm2,XMMWORD PTR[32+r11]
+ movdqa xmm2,XMMWORD[32+r11]
DB 102,15,56,0,212
pxor xmm2,xmm3
- movdqa xmm3,XMMWORD PTR[48+r11]
+ movdqa xmm3,XMMWORD[48+r11]
DB 102,15,56,0,217
pxor xmm3,xmm2
DB 102,15,56,0,221
- movdqa xmm2,XMMWORD PTR[64+r11]
+ movdqa xmm2,XMMWORD[64+r11]
DB 102,15,56,0,212
pxor xmm2,xmm3
- movdqa xmm3,XMMWORD PTR[80+r11]
+ movdqa xmm3,XMMWORD[80+r11]
DB 102,15,56,0,217
pxor xmm3,xmm2
DB 102,15,56,0,221
- movdqa xmm2,XMMWORD PTR[96+r11]
+ movdqa xmm2,XMMWORD[96+r11]
DB 102,15,56,0,212
pxor xmm2,xmm3
- movdqa xmm3,XMMWORD PTR[112+r11]
+ movdqa xmm3,XMMWORD[112+r11]
DB 102,15,56,0,217
pxor xmm3,xmm2
add rdx,-16
-$L$schedule_mangle_both::
- movdqa xmm1,XMMWORD PTR[r10*1+r8]
+$L$schedule_mangle_both:
+ movdqa xmm1,XMMWORD[r10*1+r8]
DB 102,15,56,0,217
add r8,-16
- and r8,030h
- movdqu XMMWORD PTR[rdx],xmm3
+ and r8,0x30
+ movdqu XMMWORD[rdx],xmm3
DB 0F3h,0C3h ;repret
-_vpaes_schedule_mangle ENDP
-PUBLIC vpaes_set_encrypt_key
+
+global vpaes_set_encrypt_key
ALIGN 16
-vpaes_set_encrypt_key PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+vpaes_set_encrypt_key:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_vpaes_set_encrypt_key::
+$L$SEH_begin_vpaes_set_encrypt_key:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
- lea rsp,QWORD PTR[((-184))+rsp]
- movaps XMMWORD PTR[16+rsp],xmm6
- movaps XMMWORD PTR[32+rsp],xmm7
- movaps XMMWORD PTR[48+rsp],xmm8
- movaps XMMWORD PTR[64+rsp],xmm9
- movaps XMMWORD PTR[80+rsp],xmm10
- movaps XMMWORD PTR[96+rsp],xmm11
- movaps XMMWORD PTR[112+rsp],xmm12
- movaps XMMWORD PTR[128+rsp],xmm13
- movaps XMMWORD PTR[144+rsp],xmm14
- movaps XMMWORD PTR[160+rsp],xmm15
-$L$enc_key_body::
+ lea rsp,[((-184))+rsp]
+ movaps XMMWORD[16+rsp],xmm6
+ movaps XMMWORD[32+rsp],xmm7
+ movaps XMMWORD[48+rsp],xmm8
+ movaps XMMWORD[64+rsp],xmm9
+ movaps XMMWORD[80+rsp],xmm10
+ movaps XMMWORD[96+rsp],xmm11
+ movaps XMMWORD[112+rsp],xmm12
+ movaps XMMWORD[128+rsp],xmm13
+ movaps XMMWORD[144+rsp],xmm14
+ movaps XMMWORD[160+rsp],xmm15
+$L$enc_key_body:
mov eax,esi
shr eax,5
add eax,5
- mov DWORD PTR[240+rdx],eax
+ mov DWORD[240+rdx],eax
mov ecx,0
- mov r8d,030h
+ mov r8d,0x30
call _vpaes_schedule_core
- movaps xmm6,XMMWORD PTR[16+rsp]
- movaps xmm7,XMMWORD PTR[32+rsp]
- movaps xmm8,XMMWORD PTR[48+rsp]
- movaps xmm9,XMMWORD PTR[64+rsp]
- movaps xmm10,XMMWORD PTR[80+rsp]
- movaps xmm11,XMMWORD PTR[96+rsp]
- movaps xmm12,XMMWORD PTR[112+rsp]
- movaps xmm13,XMMWORD PTR[128+rsp]
- movaps xmm14,XMMWORD PTR[144+rsp]
- movaps xmm15,XMMWORD PTR[160+rsp]
- lea rsp,QWORD PTR[184+rsp]
-$L$enc_key_epilogue::
+ movaps xmm6,XMMWORD[16+rsp]
+ movaps xmm7,XMMWORD[32+rsp]
+ movaps xmm8,XMMWORD[48+rsp]
+ movaps xmm9,XMMWORD[64+rsp]
+ movaps xmm10,XMMWORD[80+rsp]
+ movaps xmm11,XMMWORD[96+rsp]
+ movaps xmm12,XMMWORD[112+rsp]
+ movaps xmm13,XMMWORD[128+rsp]
+ movaps xmm14,XMMWORD[144+rsp]
+ movaps xmm15,XMMWORD[160+rsp]
+ lea rsp,[184+rsp]
+$L$enc_key_epilogue:
xor eax,eax
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_vpaes_set_encrypt_key::
-vpaes_set_encrypt_key ENDP
+$L$SEH_end_vpaes_set_encrypt_key:
-PUBLIC vpaes_set_decrypt_key
+global vpaes_set_decrypt_key
ALIGN 16
-vpaes_set_decrypt_key PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+vpaes_set_decrypt_key:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_vpaes_set_decrypt_key::
+$L$SEH_begin_vpaes_set_decrypt_key:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
- lea rsp,QWORD PTR[((-184))+rsp]
- movaps XMMWORD PTR[16+rsp],xmm6
- movaps XMMWORD PTR[32+rsp],xmm7
- movaps XMMWORD PTR[48+rsp],xmm8
- movaps XMMWORD PTR[64+rsp],xmm9
- movaps XMMWORD PTR[80+rsp],xmm10
- movaps XMMWORD PTR[96+rsp],xmm11
- movaps XMMWORD PTR[112+rsp],xmm12
- movaps XMMWORD PTR[128+rsp],xmm13
- movaps XMMWORD PTR[144+rsp],xmm14
- movaps XMMWORD PTR[160+rsp],xmm15
-$L$dec_key_body::
+ lea rsp,[((-184))+rsp]
+ movaps XMMWORD[16+rsp],xmm6
+ movaps XMMWORD[32+rsp],xmm7
+ movaps XMMWORD[48+rsp],xmm8
+ movaps XMMWORD[64+rsp],xmm9
+ movaps XMMWORD[80+rsp],xmm10
+ movaps XMMWORD[96+rsp],xmm11
+ movaps XMMWORD[112+rsp],xmm12
+ movaps XMMWORD[128+rsp],xmm13
+ movaps XMMWORD[144+rsp],xmm14
+ movaps XMMWORD[160+rsp],xmm15
+$L$dec_key_body:
mov eax,esi
shr eax,5
add eax,5
- mov DWORD PTR[240+rdx],eax
+ mov DWORD[240+rdx],eax
shl eax,4
- lea rdx,QWORD PTR[16+rax*1+rdx]
+ lea rdx,[16+rax*1+rdx]
mov ecx,1
mov r8d,esi
@@ -695,197 +698,193 @@ $L$dec_key_body::
and r8d,32
xor r8d,32
call _vpaes_schedule_core
- movaps xmm6,XMMWORD PTR[16+rsp]
- movaps xmm7,XMMWORD PTR[32+rsp]
- movaps xmm8,XMMWORD PTR[48+rsp]
- movaps xmm9,XMMWORD PTR[64+rsp]
- movaps xmm10,XMMWORD PTR[80+rsp]
- movaps xmm11,XMMWORD PTR[96+rsp]
- movaps xmm12,XMMWORD PTR[112+rsp]
- movaps xmm13,XMMWORD PTR[128+rsp]
- movaps xmm14,XMMWORD PTR[144+rsp]
- movaps xmm15,XMMWORD PTR[160+rsp]
- lea rsp,QWORD PTR[184+rsp]
-$L$dec_key_epilogue::
+ movaps xmm6,XMMWORD[16+rsp]
+ movaps xmm7,XMMWORD[32+rsp]
+ movaps xmm8,XMMWORD[48+rsp]
+ movaps xmm9,XMMWORD[64+rsp]
+ movaps xmm10,XMMWORD[80+rsp]
+ movaps xmm11,XMMWORD[96+rsp]
+ movaps xmm12,XMMWORD[112+rsp]
+ movaps xmm13,XMMWORD[128+rsp]
+ movaps xmm14,XMMWORD[144+rsp]
+ movaps xmm15,XMMWORD[160+rsp]
+ lea rsp,[184+rsp]
+$L$dec_key_epilogue:
xor eax,eax
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_vpaes_set_decrypt_key::
-vpaes_set_decrypt_key ENDP
+$L$SEH_end_vpaes_set_decrypt_key:
-PUBLIC vpaes_encrypt
+global vpaes_encrypt
ALIGN 16
-vpaes_encrypt PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+vpaes_encrypt:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_vpaes_encrypt::
+$L$SEH_begin_vpaes_encrypt:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
- lea rsp,QWORD PTR[((-184))+rsp]
- movaps XMMWORD PTR[16+rsp],xmm6
- movaps XMMWORD PTR[32+rsp],xmm7
- movaps XMMWORD PTR[48+rsp],xmm8
- movaps XMMWORD PTR[64+rsp],xmm9
- movaps XMMWORD PTR[80+rsp],xmm10
- movaps XMMWORD PTR[96+rsp],xmm11
- movaps XMMWORD PTR[112+rsp],xmm12
- movaps XMMWORD PTR[128+rsp],xmm13
- movaps XMMWORD PTR[144+rsp],xmm14
- movaps XMMWORD PTR[160+rsp],xmm15
-$L$enc_body::
- movdqu xmm0,XMMWORD PTR[rdi]
+ lea rsp,[((-184))+rsp]
+ movaps XMMWORD[16+rsp],xmm6
+ movaps XMMWORD[32+rsp],xmm7
+ movaps XMMWORD[48+rsp],xmm8
+ movaps XMMWORD[64+rsp],xmm9
+ movaps XMMWORD[80+rsp],xmm10
+ movaps XMMWORD[96+rsp],xmm11
+ movaps XMMWORD[112+rsp],xmm12
+ movaps XMMWORD[128+rsp],xmm13
+ movaps XMMWORD[144+rsp],xmm14
+ movaps XMMWORD[160+rsp],xmm15
+$L$enc_body:
+ movdqu xmm0,XMMWORD[rdi]
call _vpaes_preheat
call _vpaes_encrypt_core
- movdqu XMMWORD PTR[rsi],xmm0
- movaps xmm6,XMMWORD PTR[16+rsp]
- movaps xmm7,XMMWORD PTR[32+rsp]
- movaps xmm8,XMMWORD PTR[48+rsp]
- movaps xmm9,XMMWORD PTR[64+rsp]
- movaps xmm10,XMMWORD PTR[80+rsp]
- movaps xmm11,XMMWORD PTR[96+rsp]
- movaps xmm12,XMMWORD PTR[112+rsp]
- movaps xmm13,XMMWORD PTR[128+rsp]
- movaps xmm14,XMMWORD PTR[144+rsp]
- movaps xmm15,XMMWORD PTR[160+rsp]
- lea rsp,QWORD PTR[184+rsp]
-$L$enc_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ movdqu XMMWORD[rsi],xmm0
+ movaps xmm6,XMMWORD[16+rsp]
+ movaps xmm7,XMMWORD[32+rsp]
+ movaps xmm8,XMMWORD[48+rsp]
+ movaps xmm9,XMMWORD[64+rsp]
+ movaps xmm10,XMMWORD[80+rsp]
+ movaps xmm11,XMMWORD[96+rsp]
+ movaps xmm12,XMMWORD[112+rsp]
+ movaps xmm13,XMMWORD[128+rsp]
+ movaps xmm14,XMMWORD[144+rsp]
+ movaps xmm15,XMMWORD[160+rsp]
+ lea rsp,[184+rsp]
+$L$enc_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_vpaes_encrypt::
-vpaes_encrypt ENDP
+$L$SEH_end_vpaes_encrypt:
-PUBLIC vpaes_decrypt
+global vpaes_decrypt
ALIGN 16
-vpaes_decrypt PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+vpaes_decrypt:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_vpaes_decrypt::
+$L$SEH_begin_vpaes_decrypt:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
- lea rsp,QWORD PTR[((-184))+rsp]
- movaps XMMWORD PTR[16+rsp],xmm6
- movaps XMMWORD PTR[32+rsp],xmm7
- movaps XMMWORD PTR[48+rsp],xmm8
- movaps XMMWORD PTR[64+rsp],xmm9
- movaps XMMWORD PTR[80+rsp],xmm10
- movaps XMMWORD PTR[96+rsp],xmm11
- movaps XMMWORD PTR[112+rsp],xmm12
- movaps XMMWORD PTR[128+rsp],xmm13
- movaps XMMWORD PTR[144+rsp],xmm14
- movaps XMMWORD PTR[160+rsp],xmm15
-$L$dec_body::
- movdqu xmm0,XMMWORD PTR[rdi]
+ lea rsp,[((-184))+rsp]
+ movaps XMMWORD[16+rsp],xmm6
+ movaps XMMWORD[32+rsp],xmm7
+ movaps XMMWORD[48+rsp],xmm8
+ movaps XMMWORD[64+rsp],xmm9
+ movaps XMMWORD[80+rsp],xmm10
+ movaps XMMWORD[96+rsp],xmm11
+ movaps XMMWORD[112+rsp],xmm12
+ movaps XMMWORD[128+rsp],xmm13
+ movaps XMMWORD[144+rsp],xmm14
+ movaps XMMWORD[160+rsp],xmm15
+$L$dec_body:
+ movdqu xmm0,XMMWORD[rdi]
call _vpaes_preheat
call _vpaes_decrypt_core
- movdqu XMMWORD PTR[rsi],xmm0
- movaps xmm6,XMMWORD PTR[16+rsp]
- movaps xmm7,XMMWORD PTR[32+rsp]
- movaps xmm8,XMMWORD PTR[48+rsp]
- movaps xmm9,XMMWORD PTR[64+rsp]
- movaps xmm10,XMMWORD PTR[80+rsp]
- movaps xmm11,XMMWORD PTR[96+rsp]
- movaps xmm12,XMMWORD PTR[112+rsp]
- movaps xmm13,XMMWORD PTR[128+rsp]
- movaps xmm14,XMMWORD PTR[144+rsp]
- movaps xmm15,XMMWORD PTR[160+rsp]
- lea rsp,QWORD PTR[184+rsp]
-$L$dec_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ movdqu XMMWORD[rsi],xmm0
+ movaps xmm6,XMMWORD[16+rsp]
+ movaps xmm7,XMMWORD[32+rsp]
+ movaps xmm8,XMMWORD[48+rsp]
+ movaps xmm9,XMMWORD[64+rsp]
+ movaps xmm10,XMMWORD[80+rsp]
+ movaps xmm11,XMMWORD[96+rsp]
+ movaps xmm12,XMMWORD[112+rsp]
+ movaps xmm13,XMMWORD[128+rsp]
+ movaps xmm14,XMMWORD[144+rsp]
+ movaps xmm15,XMMWORD[160+rsp]
+ lea rsp,[184+rsp]
+$L$dec_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_vpaes_decrypt::
-vpaes_decrypt ENDP
-PUBLIC vpaes_cbc_encrypt
+$L$SEH_end_vpaes_decrypt:
+global vpaes_cbc_encrypt
ALIGN 16
-vpaes_cbc_encrypt PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+vpaes_cbc_encrypt:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_vpaes_cbc_encrypt::
+$L$SEH_begin_vpaes_cbc_encrypt:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
mov rcx,r9
- mov r8,QWORD PTR[40+rsp]
- mov r9,QWORD PTR[48+rsp]
+ mov r8,QWORD[40+rsp]
+ mov r9,QWORD[48+rsp]
xchg rdx,rcx
sub rcx,16
- jc $L$cbc_abort
- lea rsp,QWORD PTR[((-184))+rsp]
- movaps XMMWORD PTR[16+rsp],xmm6
- movaps XMMWORD PTR[32+rsp],xmm7
- movaps XMMWORD PTR[48+rsp],xmm8
- movaps XMMWORD PTR[64+rsp],xmm9
- movaps XMMWORD PTR[80+rsp],xmm10
- movaps XMMWORD PTR[96+rsp],xmm11
- movaps XMMWORD PTR[112+rsp],xmm12
- movaps XMMWORD PTR[128+rsp],xmm13
- movaps XMMWORD PTR[144+rsp],xmm14
- movaps XMMWORD PTR[160+rsp],xmm15
-$L$cbc_body::
- movdqu xmm6,XMMWORD PTR[r8]
+ jc NEAR $L$cbc_abort
+ lea rsp,[((-184))+rsp]
+ movaps XMMWORD[16+rsp],xmm6
+ movaps XMMWORD[32+rsp],xmm7
+ movaps XMMWORD[48+rsp],xmm8
+ movaps XMMWORD[64+rsp],xmm9
+ movaps XMMWORD[80+rsp],xmm10
+ movaps XMMWORD[96+rsp],xmm11
+ movaps XMMWORD[112+rsp],xmm12
+ movaps XMMWORD[128+rsp],xmm13
+ movaps XMMWORD[144+rsp],xmm14
+ movaps XMMWORD[160+rsp],xmm15
+$L$cbc_body:
+ movdqu xmm6,XMMWORD[r8]
sub rsi,rdi
call _vpaes_preheat
cmp r9d,0
- je $L$cbc_dec_loop
- jmp $L$cbc_enc_loop
+ je NEAR $L$cbc_dec_loop
+ jmp NEAR $L$cbc_enc_loop
ALIGN 16
-$L$cbc_enc_loop::
- movdqu xmm0,XMMWORD PTR[rdi]
+$L$cbc_enc_loop:
+ movdqu xmm0,XMMWORD[rdi]
pxor xmm0,xmm6
call _vpaes_encrypt_core
movdqa xmm6,xmm0
- movdqu XMMWORD PTR[rdi*1+rsi],xmm0
- lea rdi,QWORD PTR[16+rdi]
+ movdqu XMMWORD[rdi*1+rsi],xmm0
+ lea rdi,[16+rdi]
sub rcx,16
- jnc $L$cbc_enc_loop
- jmp $L$cbc_done
+ jnc NEAR $L$cbc_enc_loop
+ jmp NEAR $L$cbc_done
ALIGN 16
-$L$cbc_dec_loop::
- movdqu xmm0,XMMWORD PTR[rdi]
+$L$cbc_dec_loop:
+ movdqu xmm0,XMMWORD[rdi]
movdqa xmm7,xmm0
call _vpaes_decrypt_core
pxor xmm0,xmm6
movdqa xmm6,xmm7
- movdqu XMMWORD PTR[rdi*1+rsi],xmm0
- lea rdi,QWORD PTR[16+rdi]
+ movdqu XMMWORD[rdi*1+rsi],xmm0
+ lea rdi,[16+rdi]
sub rcx,16
- jnc $L$cbc_dec_loop
-$L$cbc_done::
- movdqu XMMWORD PTR[r8],xmm6
- movaps xmm6,XMMWORD PTR[16+rsp]
- movaps xmm7,XMMWORD PTR[32+rsp]
- movaps xmm8,XMMWORD PTR[48+rsp]
- movaps xmm9,XMMWORD PTR[64+rsp]
- movaps xmm10,XMMWORD PTR[80+rsp]
- movaps xmm11,XMMWORD PTR[96+rsp]
- movaps xmm12,XMMWORD PTR[112+rsp]
- movaps xmm13,XMMWORD PTR[128+rsp]
- movaps xmm14,XMMWORD PTR[144+rsp]
- movaps xmm15,XMMWORD PTR[160+rsp]
- lea rsp,QWORD PTR[184+rsp]
-$L$cbc_epilogue::
-$L$cbc_abort::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ jnc NEAR $L$cbc_dec_loop
+$L$cbc_done:
+ movdqu XMMWORD[r8],xmm6
+ movaps xmm6,XMMWORD[16+rsp]
+ movaps xmm7,XMMWORD[32+rsp]
+ movaps xmm8,XMMWORD[48+rsp]
+ movaps xmm9,XMMWORD[64+rsp]
+ movaps xmm10,XMMWORD[80+rsp]
+ movaps xmm11,XMMWORD[96+rsp]
+ movaps xmm12,XMMWORD[112+rsp]
+ movaps xmm13,XMMWORD[128+rsp]
+ movaps xmm14,XMMWORD[144+rsp]
+ movaps xmm15,XMMWORD[160+rsp]
+ lea rsp,[184+rsp]
+$L$cbc_epilogue:
+$L$cbc_abort:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_vpaes_cbc_encrypt::
-vpaes_cbc_encrypt ENDP
+$L$SEH_end_vpaes_cbc_encrypt:
@@ -894,17 +893,17 @@ vpaes_cbc_encrypt ENDP
ALIGN 16
-_vpaes_preheat PROC PRIVATE
- lea r10,QWORD PTR[$L$k_s0F]
- movdqa xmm10,XMMWORD PTR[((-32))+r10]
- movdqa xmm11,XMMWORD PTR[((-16))+r10]
- movdqa xmm9,XMMWORD PTR[r10]
- movdqa xmm13,XMMWORD PTR[48+r10]
- movdqa xmm12,XMMWORD PTR[64+r10]
- movdqa xmm15,XMMWORD PTR[80+r10]
- movdqa xmm14,XMMWORD PTR[96+r10]
+_vpaes_preheat:
+ lea r10,[$L$k_s0F]
+ movdqa xmm10,XMMWORD[((-32))+r10]
+ movdqa xmm11,XMMWORD[((-16))+r10]
+ movdqa xmm9,XMMWORD[r10]
+ movdqa xmm13,XMMWORD[48+r10]
+ movdqa xmm12,XMMWORD[64+r10]
+ movdqa xmm15,XMMWORD[80+r10]
+ movdqa xmm14,XMMWORD[96+r10]
DB 0F3h,0C3h ;repret
-_vpaes_preheat ENDP
+
@@ -912,100 +911,100 @@ _vpaes_preheat ENDP
ALIGN 64
-_vpaes_consts::
-$L$k_inv::
- DQ 00E05060F0D080180h,0040703090A0B0C02h
- DQ 001040A060F0B0780h,0030D0E0C02050809h
-
-$L$k_s0F::
- DQ 00F0F0F0F0F0F0F0Fh,00F0F0F0F0F0F0F0Fh
-
-$L$k_ipt::
- DQ 0C2B2E8985A2A7000h,0CABAE09052227808h
- DQ 04C01307D317C4D00h,0CD80B1FCB0FDCC81h
-
-$L$k_sb1::
- DQ 0B19BE18FCB503E00h,0A5DF7A6E142AF544h
- DQ 03618D415FAE22300h,03BF7CCC10D2ED9EFh
-$L$k_sb2::
- DQ 0E27A93C60B712400h,05EB7E955BC982FCDh
- DQ 069EB88400AE12900h,0C2A163C8AB82234Ah
-$L$k_sbo::
- DQ 0D0D26D176FBDC700h,015AABF7AC502A878h
- DQ 0CFE474A55FBB6A00h,08E1E90D1412B35FAh
-
-$L$k_mc_forward::
- DQ 00407060500030201h,00C0F0E0D080B0A09h
- DQ 0080B0A0904070605h,0000302010C0F0E0Dh
- DQ 00C0F0E0D080B0A09h,00407060500030201h
- DQ 0000302010C0F0E0Dh,0080B0A0904070605h
-
-$L$k_mc_backward::
- DQ 00605040702010003h,00E0D0C0F0A09080Bh
- DQ 0020100030E0D0C0Fh,00A09080B06050407h
- DQ 00E0D0C0F0A09080Bh,00605040702010003h
- DQ 00A09080B06050407h,0020100030E0D0C0Fh
-
-$L$k_sr::
- DQ 00706050403020100h,00F0E0D0C0B0A0908h
- DQ 0030E09040F0A0500h,00B06010C07020D08h
- DQ 00F060D040B020900h,0070E050C030A0108h
- DQ 00B0E0104070A0D00h,00306090C0F020508h
-
-$L$k_rcon::
- DQ 01F8391B9AF9DEEB6h,0702A98084D7C7D81h
-
-$L$k_s63::
- DQ 05B5B5B5B5B5B5B5Bh,05B5B5B5B5B5B5B5Bh
-
-$L$k_opt::
- DQ 0FF9F4929D6B66000h,0F7974121DEBE6808h
- DQ 001EDBD5150BCEC00h,0E10D5DB1B05C0CE0h
-
-$L$k_deskew::
- DQ 007E4A34047A4E300h,01DFEB95A5DBEF91Ah
- DQ 05F36B5DC83EA6900h,02841C2ABF49D1E77h
-
-
-
-
-
-$L$k_dksd::
- DQ 0FEB91A5DA3E44700h,00740E3A45A1DBEF9h
- DQ 041C277F4B5368300h,05FDC69EAAB289D1Eh
-$L$k_dksb::
- DQ 09A4FCA1F8550D500h,003D653861CC94C99h
- DQ 0115BEDA7B6FC4A00h,0D993256F7E3482C8h
-$L$k_dkse::
- DQ 0D5031CCA1FC9D600h,053859A4C994F5086h
- DQ 0A23196054FDC7BE8h,0CD5EF96A20B31487h
-$L$k_dks9::
- DQ 0B6116FC87ED9A700h,04AED933482255BFCh
- DQ 04576516227143300h,08BB89FACE9DAFDCEh
-
-
-
-
-
-$L$k_dipt::
- DQ 00F505B040B545F00h,0154A411E114E451Ah
- DQ 086E383E660056500h,012771772F491F194h
-
-$L$k_dsb9::
- DQ 0851C03539A86D600h,0CAD51F504F994CC9h
- DQ 0C03B1789ECD74900h,0725E2C9EB2FBA565h
-$L$k_dsbd::
- DQ 07D57CCDFE6B1A200h,0F56E9B13882A4439h
- DQ 03CE2FAF724C6CB00h,02931180D15DEEFD3h
-$L$k_dsbb::
- DQ 0D022649296B44200h,0602646F6B0F2D404h
- DQ 0C19498A6CD596700h,0F3FF0C3E3255AA6Bh
-$L$k_dsbe::
- DQ 046F2929626D4D000h,02242600464B4F6B0h
- DQ 00C55A6CDFFAAC100h,09467F36B98593E32h
-$L$k_dsbo::
- DQ 01387EA537EF94000h,0C7AA6DB9D4943E2Dh
- DQ 012D7560F93441D00h,0CA4B8159D8C58E9Ch
+_vpaes_consts:
+$L$k_inv:
+ DQ 0x0E05060F0D080180,0x040703090A0B0C02
+ DQ 0x01040A060F0B0780,0x030D0E0C02050809
+
+$L$k_s0F:
+ DQ 0x0F0F0F0F0F0F0F0F,0x0F0F0F0F0F0F0F0F
+
+$L$k_ipt:
+ DQ 0xC2B2E8985A2A7000,0xCABAE09052227808
+ DQ 0x4C01307D317C4D00,0xCD80B1FCB0FDCC81
+
+$L$k_sb1:
+ DQ 0xB19BE18FCB503E00,0xA5DF7A6E142AF544
+ DQ 0x3618D415FAE22300,0x3BF7CCC10D2ED9EF
+$L$k_sb2:
+ DQ 0xE27A93C60B712400,0x5EB7E955BC982FCD
+ DQ 0x69EB88400AE12900,0xC2A163C8AB82234A
+$L$k_sbo:
+ DQ 0xD0D26D176FBDC700,0x15AABF7AC502A878
+ DQ 0xCFE474A55FBB6A00,0x8E1E90D1412B35FA
+
+$L$k_mc_forward:
+ DQ 0x0407060500030201,0x0C0F0E0D080B0A09
+ DQ 0x080B0A0904070605,0x000302010C0F0E0D
+ DQ 0x0C0F0E0D080B0A09,0x0407060500030201
+ DQ 0x000302010C0F0E0D,0x080B0A0904070605
+
+$L$k_mc_backward:
+ DQ 0x0605040702010003,0x0E0D0C0F0A09080B
+ DQ 0x020100030E0D0C0F,0x0A09080B06050407
+ DQ 0x0E0D0C0F0A09080B,0x0605040702010003
+ DQ 0x0A09080B06050407,0x020100030E0D0C0F
+
+$L$k_sr:
+ DQ 0x0706050403020100,0x0F0E0D0C0B0A0908
+ DQ 0x030E09040F0A0500,0x0B06010C07020D08
+ DQ 0x0F060D040B020900,0x070E050C030A0108
+ DQ 0x0B0E0104070A0D00,0x0306090C0F020508
+
+$L$k_rcon:
+ DQ 0x1F8391B9AF9DEEB6,0x702A98084D7C7D81
+
+$L$k_s63:
+ DQ 0x5B5B5B5B5B5B5B5B,0x5B5B5B5B5B5B5B5B
+
+$L$k_opt:
+ DQ 0xFF9F4929D6B66000,0xF7974121DEBE6808
+ DQ 0x01EDBD5150BCEC00,0xE10D5DB1B05C0CE0
+
+$L$k_deskew:
+ DQ 0x07E4A34047A4E300,0x1DFEB95A5DBEF91A
+ DQ 0x5F36B5DC83EA6900,0x2841C2ABF49D1E77
+
+
+
+
+
+$L$k_dksd:
+ DQ 0xFEB91A5DA3E44700,0x0740E3A45A1DBEF9
+ DQ 0x41C277F4B5368300,0x5FDC69EAAB289D1E
+$L$k_dksb:
+ DQ 0x9A4FCA1F8550D500,0x03D653861CC94C99
+ DQ 0x115BEDA7B6FC4A00,0xD993256F7E3482C8
+$L$k_dkse:
+ DQ 0xD5031CCA1FC9D600,0x53859A4C994F5086
+ DQ 0xA23196054FDC7BE8,0xCD5EF96A20B31487
+$L$k_dks9:
+ DQ 0xB6116FC87ED9A700,0x4AED933482255BFC
+ DQ 0x4576516227143300,0x8BB89FACE9DAFDCE
+
+
+
+
+
+$L$k_dipt:
+ DQ 0x0F505B040B545F00,0x154A411E114E451A
+ DQ 0x86E383E660056500,0x12771772F491F194
+
+$L$k_dsb9:
+ DQ 0x851C03539A86D600,0xCAD51F504F994CC9
+ DQ 0xC03B1789ECD74900,0x725E2C9EB2FBA565
+$L$k_dsbd:
+ DQ 0x7D57CCDFE6B1A200,0xF56E9B13882A4439
+ DQ 0x3CE2FAF724C6CB00,0x2931180D15DEEFD3
+$L$k_dsbb:
+ DQ 0xD022649296B44200,0x602646F6B0F2D404
+ DQ 0xC19498A6CD596700,0xF3FF0C3E3255AA6B
+$L$k_dsbe:
+ DQ 0x46F2929626D4D000,0x2242600464B4F6B0
+ DQ 0x0C55A6CDFFAAC100,0x9467F36B98593E32
+$L$k_dsbo:
+ DQ 0x1387EA537EF94000,0xC7AA6DB9D4943E2D
+ DQ 0x12D7560F93441D00,0xCA4B8159D8C58E9C
DB 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
DB 111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54
DB 52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97
@@ -1013,10 +1012,10 @@ DB 109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32
DB 85,110,105,118,101,114,115,105,116,121,41,0
ALIGN 64
-EXTERN __imp_RtlVirtualUnwind:NEAR
+EXTERN __imp_RtlVirtualUnwind
ALIGN 16
-se_handler PROC PRIVATE
+se_handler:
push rsi
push rdi
push rbx
@@ -1028,55 +1027,55 @@ se_handler PROC PRIVATE
pushfq
sub rsp,64
- mov rax,QWORD PTR[120+r8]
- mov rbx,QWORD PTR[248+r8]
+ mov rax,QWORD[120+r8]
+ mov rbx,QWORD[248+r8]
- mov rsi,QWORD PTR[8+r9]
- mov r11,QWORD PTR[56+r9]
+ mov rsi,QWORD[8+r9]
+ mov r11,QWORD[56+r9]
- mov r10d,DWORD PTR[r11]
- lea r10,QWORD PTR[r10*1+rsi]
+ mov r10d,DWORD[r11]
+ lea r10,[r10*1+rsi]
cmp rbx,r10
- jb $L$in_prologue
+ jb NEAR $L$in_prologue
- mov rax,QWORD PTR[152+r8]
+ mov rax,QWORD[152+r8]
- mov r10d,DWORD PTR[4+r11]
- lea r10,QWORD PTR[r10*1+rsi]
+ mov r10d,DWORD[4+r11]
+ lea r10,[r10*1+rsi]
cmp rbx,r10
- jae $L$in_prologue
+ jae NEAR $L$in_prologue
- lea rsi,QWORD PTR[16+rax]
- lea rdi,QWORD PTR[512+r8]
+ lea rsi,[16+rax]
+ lea rdi,[512+r8]
mov ecx,20
- DD 0a548f3fch
- lea rax,QWORD PTR[184+rax]
+ DD 0xa548f3fc
+ lea rax,[184+rax]
-$L$in_prologue::
- mov rdi,QWORD PTR[8+rax]
- mov rsi,QWORD PTR[16+rax]
- mov QWORD PTR[152+r8],rax
- mov QWORD PTR[168+r8],rsi
- mov QWORD PTR[176+r8],rdi
+$L$in_prologue:
+ mov rdi,QWORD[8+rax]
+ mov rsi,QWORD[16+rax]
+ mov QWORD[152+r8],rax
+ mov QWORD[168+r8],rsi
+ mov QWORD[176+r8],rdi
- mov rdi,QWORD PTR[40+r9]
+ mov rdi,QWORD[40+r9]
mov rsi,r8
mov ecx,154
- DD 0a548f3fch
+ DD 0xa548f3fc
mov rsi,r9
xor rcx,rcx
- mov rdx,QWORD PTR[8+rsi]
- mov r8,QWORD PTR[rsi]
- mov r9,QWORD PTR[16+rsi]
- mov r10,QWORD PTR[40+rsi]
- lea r11,QWORD PTR[56+rsi]
- lea r12,QWORD PTR[24+rsi]
- mov QWORD PTR[32+rsp],r10
- mov QWORD PTR[40+rsp],r11
- mov QWORD PTR[48+rsp],r12
- mov QWORD PTR[56+rsp],rcx
- call QWORD PTR[__imp_RtlVirtualUnwind]
+ mov rdx,QWORD[8+rsi]
+ mov r8,QWORD[rsi]
+ mov r9,QWORD[16+rsi]
+ mov r10,QWORD[40+rsi]
+ lea r11,[56+rsi]
+ lea r12,[24+rsi]
+ mov QWORD[32+rsp],r10
+ mov QWORD[40+rsp],r11
+ mov QWORD[48+rsp],r12
+ mov QWORD[56+rsp],rcx
+ call QWORD[__imp_RtlVirtualUnwind]
mov eax,1
add rsp,64
@@ -1090,54 +1089,49 @@ $L$in_prologue::
pop rdi
pop rsi
DB 0F3h,0C3h ;repret
-se_handler ENDP
-.text$ ENDS
-.pdata SEGMENT READONLY ALIGN(4)
+
+section .pdata rdata align=4
ALIGN 4
- DD imagerel $L$SEH_begin_vpaes_set_encrypt_key
- DD imagerel $L$SEH_end_vpaes_set_encrypt_key
- DD imagerel $L$SEH_info_vpaes_set_encrypt_key
+ DD $L$SEH_begin_vpaes_set_encrypt_key wrt ..imagebase
+ DD $L$SEH_end_vpaes_set_encrypt_key wrt ..imagebase
+ DD $L$SEH_info_vpaes_set_encrypt_key wrt ..imagebase
- DD imagerel $L$SEH_begin_vpaes_set_decrypt_key
- DD imagerel $L$SEH_end_vpaes_set_decrypt_key
- DD imagerel $L$SEH_info_vpaes_set_decrypt_key
+ DD $L$SEH_begin_vpaes_set_decrypt_key wrt ..imagebase
+ DD $L$SEH_end_vpaes_set_decrypt_key wrt ..imagebase
+ DD $L$SEH_info_vpaes_set_decrypt_key wrt ..imagebase
- DD imagerel $L$SEH_begin_vpaes_encrypt
- DD imagerel $L$SEH_end_vpaes_encrypt
- DD imagerel $L$SEH_info_vpaes_encrypt
+ DD $L$SEH_begin_vpaes_encrypt wrt ..imagebase
+ DD $L$SEH_end_vpaes_encrypt wrt ..imagebase
+ DD $L$SEH_info_vpaes_encrypt wrt ..imagebase
- DD imagerel $L$SEH_begin_vpaes_decrypt
- DD imagerel $L$SEH_end_vpaes_decrypt
- DD imagerel $L$SEH_info_vpaes_decrypt
+ DD $L$SEH_begin_vpaes_decrypt wrt ..imagebase
+ DD $L$SEH_end_vpaes_decrypt wrt ..imagebase
+ DD $L$SEH_info_vpaes_decrypt wrt ..imagebase
- DD imagerel $L$SEH_begin_vpaes_cbc_encrypt
- DD imagerel $L$SEH_end_vpaes_cbc_encrypt
- DD imagerel $L$SEH_info_vpaes_cbc_encrypt
+ DD $L$SEH_begin_vpaes_cbc_encrypt wrt ..imagebase
+ DD $L$SEH_end_vpaes_cbc_encrypt wrt ..imagebase
+ DD $L$SEH_info_vpaes_cbc_encrypt wrt ..imagebase
-.pdata ENDS
-.xdata SEGMENT READONLY ALIGN(8)
+section .xdata rdata align=8
ALIGN 8
-$L$SEH_info_vpaes_set_encrypt_key::
+$L$SEH_info_vpaes_set_encrypt_key:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$enc_key_body,imagerel $L$enc_key_epilogue
-$L$SEH_info_vpaes_set_decrypt_key::
+ DD se_handler wrt ..imagebase
+ DD $L$enc_key_body wrt ..imagebase,$L$enc_key_epilogue wrt ..imagebase
+$L$SEH_info_vpaes_set_decrypt_key:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$dec_key_body,imagerel $L$dec_key_epilogue
-$L$SEH_info_vpaes_encrypt::
+ DD se_handler wrt ..imagebase
+ DD $L$dec_key_body wrt ..imagebase,$L$dec_key_epilogue wrt ..imagebase
+$L$SEH_info_vpaes_encrypt:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$enc_body,imagerel $L$enc_epilogue
-$L$SEH_info_vpaes_decrypt::
+ DD se_handler wrt ..imagebase
+ DD $L$enc_body wrt ..imagebase,$L$enc_epilogue wrt ..imagebase
+$L$SEH_info_vpaes_decrypt:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$dec_body,imagerel $L$dec_epilogue
-$L$SEH_info_vpaes_cbc_encrypt::
+ DD se_handler wrt ..imagebase
+ DD $L$dec_body wrt ..imagebase,$L$dec_epilogue wrt ..imagebase
+$L$SEH_info_vpaes_cbc_encrypt:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$cbc_body,imagerel $L$cbc_epilogue
-
-.xdata ENDS
-END
+ DD se_handler wrt ..imagebase
+ DD $L$cbc_body wrt ..imagebase,$L$cbc_epilogue wrt ..imagebase