summaryrefslogtreecommitdiffstats
path: root/win-x86_64
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
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')
-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
-rw-r--r--win-x86_64/crypto/bn/rsaz-avx2.asm43
-rw-r--r--win-x86_64/crypto/bn/rsaz-x86_64.asm1048
-rw-r--r--win-x86_64/crypto/bn/x86_64-mont.asm808
-rw-r--r--win-x86_64/crypto/bn/x86_64-mont5.asm1575
-rw-r--r--win-x86_64/crypto/cpu-x86_64-asm.asm130
-rw-r--r--win-x86_64/crypto/md5/md5-x86_64.asm470
-rw-r--r--win-x86_64/crypto/modes/aesni-gcm-x86_64.asm21
-rw-r--r--win-x86_64/crypto/modes/ghash-x86_64.asm1027
-rw-r--r--win-x86_64/crypto/rand/rdrand-x86_64.asm22
-rw-r--r--win-x86_64/crypto/rc4/rc4-md5-x86_64.asm1020
-rw-r--r--win-x86_64/crypto/rc4/rc4-x86_64.asm848
-rw-r--r--win-x86_64/crypto/sha/sha1-x86_64.asm1397
-rw-r--r--win-x86_64/crypto/sha/sha256-x86_64.asm971
-rw-r--r--win-x86_64/crypto/sha/sha512-x86_64.asm786
18 files changed, 10438 insertions, 10097 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
diff --git a/win-x86_64/crypto/bn/rsaz-avx2.asm b/win-x86_64/crypto/bn/rsaz-avx2.asm
index f9188f5..45d0fd4 100644
--- a/win-x86_64/crypto/bn/rsaz-avx2.asm
+++ b/win-x86_64/crypto/bn/rsaz-avx2.asm
@@ -1,29 +1,30 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
-PUBLIC rsaz_avx2_eligible
-rsaz_avx2_eligible PROC PUBLIC
+global rsaz_avx2_eligible
+
+rsaz_avx2_eligible:
xor eax,eax
DB 0F3h,0C3h ;repret
-rsaz_avx2_eligible ENDP
-PUBLIC rsaz_1024_sqr_avx2
-PUBLIC rsaz_1024_mul_avx2
-PUBLIC rsaz_1024_norm2red_avx2
-PUBLIC rsaz_1024_red2norm_avx2
-PUBLIC rsaz_1024_scatter5_avx2
-PUBLIC rsaz_1024_gather5_avx2
-rsaz_1024_sqr_avx2 PROC PUBLIC
-rsaz_1024_mul_avx2::
-rsaz_1024_norm2red_avx2::
-rsaz_1024_red2norm_avx2::
-rsaz_1024_scatter5_avx2::
-rsaz_1024_gather5_avx2::
-DB 00fh,00bh
+global rsaz_1024_sqr_avx2
+global rsaz_1024_mul_avx2
+global rsaz_1024_norm2red_avx2
+global rsaz_1024_red2norm_avx2
+global rsaz_1024_scatter5_avx2
+global rsaz_1024_gather5_avx2
+
+rsaz_1024_sqr_avx2:
+rsaz_1024_mul_avx2:
+rsaz_1024_norm2red_avx2:
+rsaz_1024_red2norm_avx2:
+rsaz_1024_scatter5_avx2:
+rsaz_1024_gather5_avx2:
+DB 0x0f,0x0b
DB 0F3h,0C3h ;repret
-rsaz_1024_sqr_avx2 ENDP
-.text$ ENDS
-END
diff --git a/win-x86_64/crypto/bn/rsaz-x86_64.asm b/win-x86_64/crypto/bn/rsaz-x86_64.asm
index 86e828d..04d5e39 100644
--- a/win-x86_64/crypto/bn/rsaz-x86_64.asm
+++ b/win-x86_64/crypto/bn/rsaz-x86_64.asm
@@ -1,21 +1,25 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
-EXTERN OPENSSL_ia32cap_P:NEAR
-PUBLIC rsaz_512_sqr
+EXTERN OPENSSL_ia32cap_P
+
+global rsaz_512_sqr
ALIGN 32
-rsaz_512_sqr PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+rsaz_512_sqr:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_rsaz_512_sqr::
+$L$SEH_begin_rsaz_512_sqr:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
mov rcx,r9
- mov r8,QWORD PTR[40+rsp]
+ mov r8,QWORD[40+rsp]
push rbx
@@ -26,50 +30,50 @@ $L$SEH_begin_rsaz_512_sqr::
push r15
sub rsp,128+24
-$L$sqr_body::
+$L$sqr_body:
mov rbp,rdx
- mov rdx,QWORD PTR[rsi]
- mov rax,QWORD PTR[8+rsi]
- mov QWORD PTR[128+rsp],rcx
- jmp $L$oop_sqr
+ mov rdx,QWORD[rsi]
+ mov rax,QWORD[8+rsi]
+ mov QWORD[128+rsp],rcx
+ jmp NEAR $L$oop_sqr
ALIGN 32
-$L$oop_sqr::
- mov DWORD PTR[((128+8))+rsp],r8d
+$L$oop_sqr:
+ mov DWORD[((128+8))+rsp],r8d
mov rbx,rdx
mul rdx
mov r8,rax
- mov rax,QWORD PTR[16+rsi]
+ mov rax,QWORD[16+rsi]
mov r9,rdx
mul rbx
add r9,rax
- mov rax,QWORD PTR[24+rsi]
+ mov rax,QWORD[24+rsi]
mov r10,rdx
adc r10,0
mul rbx
add r10,rax
- mov rax,QWORD PTR[32+rsi]
+ mov rax,QWORD[32+rsi]
mov r11,rdx
adc r11,0
mul rbx
add r11,rax
- mov rax,QWORD PTR[40+rsi]
+ mov rax,QWORD[40+rsi]
mov r12,rdx
adc r12,0
mul rbx
add r12,rax
- mov rax,QWORD PTR[48+rsi]
+ mov rax,QWORD[48+rsi]
mov r13,rdx
adc r13,0
mul rbx
add r13,rax
- mov rax,QWORD PTR[56+rsi]
+ mov rax,QWORD[56+rsi]
mov r14,rdx
adc r14,0
@@ -84,25 +88,25 @@ $L$oop_sqr::
adc r9,r9
mul rax
- mov QWORD PTR[rsp],rax
+ mov QWORD[rsp],rax
add r8,rdx
adc r9,0
- mov QWORD PTR[8+rsp],r8
+ mov QWORD[8+rsp],r8
shr rcx,63
- mov r8,QWORD PTR[8+rsi]
- mov rax,QWORD PTR[16+rsi]
+ mov r8,QWORD[8+rsi]
+ mov rax,QWORD[16+rsi]
mul r8
add r10,rax
- mov rax,QWORD PTR[24+rsi]
+ mov rax,QWORD[24+rsi]
mov rbx,rdx
adc rbx,0
mul r8
add r11,rax
- mov rax,QWORD PTR[32+rsi]
+ mov rax,QWORD[32+rsi]
adc rdx,0
add r11,rbx
mov rbx,rdx
@@ -110,7 +114,7 @@ $L$oop_sqr::
mul r8
add r12,rax
- mov rax,QWORD PTR[40+rsi]
+ mov rax,QWORD[40+rsi]
adc rdx,0
add r12,rbx
mov rbx,rdx
@@ -118,7 +122,7 @@ $L$oop_sqr::
mul r8
add r13,rax
- mov rax,QWORD PTR[48+rsi]
+ mov rax,QWORD[48+rsi]
adc rdx,0
add r13,rbx
mov rbx,rdx
@@ -126,7 +130,7 @@ $L$oop_sqr::
mul r8
add r14,rax
- mov rax,QWORD PTR[56+rsi]
+ mov rax,QWORD[56+rsi]
adc rdx,0
add r14,rbx
mov rbx,rdx
@@ -142,7 +146,7 @@ $L$oop_sqr::
adc r8,0
add rdx,rdx
- lea r10,QWORD PTR[r10*2+rcx]
+ lea r10,[r10*2+rcx]
mov rbx,r11
adc r11,r11
@@ -151,22 +155,22 @@ $L$oop_sqr::
adc r10,rdx
adc r11,0
- mov QWORD PTR[16+rsp],r9
- mov QWORD PTR[24+rsp],r10
+ mov QWORD[16+rsp],r9
+ mov QWORD[24+rsp],r10
shr rbx,63
- mov r9,QWORD PTR[16+rsi]
- mov rax,QWORD PTR[24+rsi]
+ mov r9,QWORD[16+rsi]
+ mov rax,QWORD[24+rsi]
mul r9
add r12,rax
- mov rax,QWORD PTR[32+rsi]
+ mov rax,QWORD[32+rsi]
mov rcx,rdx
adc rcx,0
mul r9
add r13,rax
- mov rax,QWORD PTR[40+rsi]
+ mov rax,QWORD[40+rsi]
adc rdx,0
add r13,rcx
mov rcx,rdx
@@ -174,7 +178,7 @@ $L$oop_sqr::
mul r9
add r14,rax
- mov rax,QWORD PTR[48+rsi]
+ mov rax,QWORD[48+rsi]
adc rdx,0
add r14,rcx
mov rcx,rdx
@@ -182,9 +186,9 @@ $L$oop_sqr::
mul r9
mov r10,r12
- lea r12,QWORD PTR[r12*2+rbx]
+ lea r12,[r12*2+rbx]
add r15,rax
- mov rax,QWORD PTR[56+rsi]
+ mov rax,QWORD[56+rsi]
adc rdx,0
add r15,rcx
mov rcx,rdx
@@ -200,29 +204,29 @@ $L$oop_sqr::
adc r9,0
mov rcx,r13
- lea r13,QWORD PTR[r13*2+r10]
+ lea r13,[r13*2+r10]
mul rax
add r11,rax
adc r12,rdx
adc r13,0
- mov QWORD PTR[32+rsp],r11
- mov QWORD PTR[40+rsp],r12
+ mov QWORD[32+rsp],r11
+ mov QWORD[40+rsp],r12
shr rcx,63
- mov r10,QWORD PTR[24+rsi]
- mov rax,QWORD PTR[32+rsi]
+ mov r10,QWORD[24+rsi]
+ mov rax,QWORD[32+rsi]
mul r10
add r14,rax
- mov rax,QWORD PTR[40+rsi]
+ mov rax,QWORD[40+rsi]
mov rbx,rdx
adc rbx,0
mul r10
add r15,rax
- mov rax,QWORD PTR[48+rsi]
+ mov rax,QWORD[48+rsi]
adc rdx,0
add r15,rbx
mov rbx,rdx
@@ -230,9 +234,9 @@ $L$oop_sqr::
mul r10
mov r12,r14
- lea r14,QWORD PTR[r14*2+rcx]
+ lea r14,[r14*2+rcx]
add r8,rax
- mov rax,QWORD PTR[56+rsi]
+ mov rax,QWORD[56+rsi]
adc rdx,0
add r8,rbx
mov rbx,rdx
@@ -248,32 +252,32 @@ $L$oop_sqr::
adc r10,0
mov rbx,r15
- lea r15,QWORD PTR[r15*2+r12]
+ lea r15,[r15*2+r12]
mul rax
add r13,rax
adc r14,rdx
adc r15,0
- mov QWORD PTR[48+rsp],r13
- mov QWORD PTR[56+rsp],r14
+ mov QWORD[48+rsp],r13
+ mov QWORD[56+rsp],r14
shr rbx,63
- mov r11,QWORD PTR[32+rsi]
- mov rax,QWORD PTR[40+rsi]
+ mov r11,QWORD[32+rsi]
+ mov rax,QWORD[40+rsi]
mul r11
add r8,rax
- mov rax,QWORD PTR[48+rsi]
+ mov rax,QWORD[48+rsi]
mov rcx,rdx
adc rcx,0
mul r11
add r9,rax
- mov rax,QWORD PTR[56+rsi]
+ mov rax,QWORD[56+rsi]
adc rdx,0
mov r12,r8
- lea r8,QWORD PTR[r8*2+rbx]
+ lea r8,[r8*2+rbx]
add r9,rcx
mov rcx,rdx
adc rcx,0
@@ -288,23 +292,23 @@ $L$oop_sqr::
adc r11,0
mov rcx,r9
- lea r9,QWORD PTR[r9*2+r12]
+ lea r9,[r9*2+r12]
mul rax
add r15,rax
adc r8,rdx
adc r9,0
- mov QWORD PTR[64+rsp],r15
- mov QWORD PTR[72+rsp],r8
+ mov QWORD[64+rsp],r15
+ mov QWORD[72+rsp],r8
shr rcx,63
- mov r12,QWORD PTR[40+rsi]
- mov rax,QWORD PTR[48+rsi]
+ mov r12,QWORD[40+rsi]
+ mov rax,QWORD[48+rsi]
mul r12
add r10,rax
- mov rax,QWORD PTR[56+rsi]
+ mov rax,QWORD[56+rsi]
mov rbx,rdx
adc rbx,0
@@ -312,7 +316,7 @@ $L$oop_sqr::
add r11,rax
mov rax,r12
mov r15,r10
- lea r10,QWORD PTR[r10*2+rcx]
+ lea r10,[r10*2+rcx]
adc rdx,0
shr r15,63
add r11,rbx
@@ -320,19 +324,19 @@ $L$oop_sqr::
adc r12,0
mov rbx,r11
- lea r11,QWORD PTR[r11*2+r15]
+ lea r11,[r11*2+r15]
mul rax
add r9,rax
adc r10,rdx
adc r11,0
- mov QWORD PTR[80+rsp],r9
- mov QWORD PTR[88+rsp],r10
+ mov QWORD[80+rsp],r9
+ mov QWORD[88+rsp],r10
- mov r13,QWORD PTR[48+rsi]
- mov rax,QWORD PTR[56+rsi]
+ mov r13,QWORD[48+rsi]
+ mov rax,QWORD[56+rsi]
mul r13
add r12,rax
mov rax,r13
@@ -350,78 +354,77 @@ $L$oop_sqr::
adc r12,rdx
adc r13,0
- mov QWORD PTR[96+rsp],r11
- mov QWORD PTR[104+rsp],r12
+ mov QWORD[96+rsp],r11
+ mov QWORD[104+rsp],r12
- mov rax,QWORD PTR[56+rsi]
+ mov rax,QWORD[56+rsi]
mul rax
add r13,rax
adc rdx,0
add r14,rdx
- mov QWORD PTR[112+rsp],r13
- mov QWORD PTR[120+rsp],r14
+ mov QWORD[112+rsp],r13
+ mov QWORD[120+rsp],r14
- mov r8,QWORD PTR[rsp]
- mov r9,QWORD PTR[8+rsp]
- mov r10,QWORD PTR[16+rsp]
- mov r11,QWORD PTR[24+rsp]
- mov r12,QWORD PTR[32+rsp]
- mov r13,QWORD PTR[40+rsp]
- mov r14,QWORD PTR[48+rsp]
- mov r15,QWORD PTR[56+rsp]
+ mov r8,QWORD[rsp]
+ mov r9,QWORD[8+rsp]
+ mov r10,QWORD[16+rsp]
+ mov r11,QWORD[24+rsp]
+ mov r12,QWORD[32+rsp]
+ mov r13,QWORD[40+rsp]
+ mov r14,QWORD[48+rsp]
+ mov r15,QWORD[56+rsp]
call __rsaz_512_reduce
- add r8,QWORD PTR[64+rsp]
- adc r9,QWORD PTR[72+rsp]
- adc r10,QWORD PTR[80+rsp]
- adc r11,QWORD PTR[88+rsp]
- adc r12,QWORD PTR[96+rsp]
- adc r13,QWORD PTR[104+rsp]
- adc r14,QWORD PTR[112+rsp]
- adc r15,QWORD PTR[120+rsp]
+ add r8,QWORD[64+rsp]
+ adc r9,QWORD[72+rsp]
+ adc r10,QWORD[80+rsp]
+ adc r11,QWORD[88+rsp]
+ adc r12,QWORD[96+rsp]
+ adc r13,QWORD[104+rsp]
+ adc r14,QWORD[112+rsp]
+ adc r15,QWORD[120+rsp]
sbb rcx,rcx
call __rsaz_512_subtract
mov rdx,r8
mov rax,r9
- mov r8d,DWORD PTR[((128+8))+rsp]
+ mov r8d,DWORD[((128+8))+rsp]
mov rsi,rdi
dec r8d
- jnz $L$oop_sqr
-
- lea rax,QWORD PTR[((128+24+48))+rsp]
- mov r15,QWORD PTR[((-48))+rax]
- mov r14,QWORD PTR[((-40))+rax]
- mov r13,QWORD PTR[((-32))+rax]
- mov r12,QWORD PTR[((-24))+rax]
- mov rbp,QWORD PTR[((-16))+rax]
- mov rbx,QWORD PTR[((-8))+rax]
- lea rsp,QWORD PTR[rax]
-$L$sqr_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ jnz NEAR $L$oop_sqr
+
+ lea rax,[((128+24+48))+rsp]
+ mov r15,QWORD[((-48))+rax]
+ mov r14,QWORD[((-40))+rax]
+ mov r13,QWORD[((-32))+rax]
+ mov r12,QWORD[((-24))+rax]
+ mov rbp,QWORD[((-16))+rax]
+ mov rbx,QWORD[((-8))+rax]
+ lea rsp,[rax]
+$L$sqr_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_rsaz_512_sqr::
-rsaz_512_sqr ENDP
-PUBLIC rsaz_512_mul
+$L$SEH_end_rsaz_512_sqr:
+global rsaz_512_mul
ALIGN 32
-rsaz_512_mul PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+rsaz_512_mul:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_rsaz_512_mul::
+$L$SEH_begin_rsaz_512_mul:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
mov rcx,r9
- mov r8,QWORD PTR[40+rsp]
+ mov r8,QWORD[40+rsp]
push rbx
@@ -432,67 +435,66 @@ $L$SEH_begin_rsaz_512_mul::
push r15
sub rsp,128+24
-$L$mul_body::
+$L$mul_body:
DB 102,72,15,110,199
DB 102,72,15,110,201
- mov QWORD PTR[128+rsp],r8
- mov rbx,QWORD PTR[rdx]
+ mov QWORD[128+rsp],r8
+ mov rbx,QWORD[rdx]
mov rbp,rdx
call __rsaz_512_mul
DB 102,72,15,126,199
DB 102,72,15,126,205
- mov r8,QWORD PTR[rsp]
- mov r9,QWORD PTR[8+rsp]
- mov r10,QWORD PTR[16+rsp]
- mov r11,QWORD PTR[24+rsp]
- mov r12,QWORD PTR[32+rsp]
- mov r13,QWORD PTR[40+rsp]
- mov r14,QWORD PTR[48+rsp]
- mov r15,QWORD PTR[56+rsp]
+ mov r8,QWORD[rsp]
+ mov r9,QWORD[8+rsp]
+ mov r10,QWORD[16+rsp]
+ mov r11,QWORD[24+rsp]
+ mov r12,QWORD[32+rsp]
+ mov r13,QWORD[40+rsp]
+ mov r14,QWORD[48+rsp]
+ mov r15,QWORD[56+rsp]
call __rsaz_512_reduce
- add r8,QWORD PTR[64+rsp]
- adc r9,QWORD PTR[72+rsp]
- adc r10,QWORD PTR[80+rsp]
- adc r11,QWORD PTR[88+rsp]
- adc r12,QWORD PTR[96+rsp]
- adc r13,QWORD PTR[104+rsp]
- adc r14,QWORD PTR[112+rsp]
- adc r15,QWORD PTR[120+rsp]
+ add r8,QWORD[64+rsp]
+ adc r9,QWORD[72+rsp]
+ adc r10,QWORD[80+rsp]
+ adc r11,QWORD[88+rsp]
+ adc r12,QWORD[96+rsp]
+ adc r13,QWORD[104+rsp]
+ adc r14,QWORD[112+rsp]
+ adc r15,QWORD[120+rsp]
sbb rcx,rcx
call __rsaz_512_subtract
- lea rax,QWORD PTR[((128+24+48))+rsp]
- mov r15,QWORD PTR[((-48))+rax]
- mov r14,QWORD PTR[((-40))+rax]
- mov r13,QWORD PTR[((-32))+rax]
- mov r12,QWORD PTR[((-24))+rax]
- mov rbp,QWORD PTR[((-16))+rax]
- mov rbx,QWORD PTR[((-8))+rax]
- lea rsp,QWORD PTR[rax]
-$L$mul_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ lea rax,[((128+24+48))+rsp]
+ mov r15,QWORD[((-48))+rax]
+ mov r14,QWORD[((-40))+rax]
+ mov r13,QWORD[((-32))+rax]
+ mov r12,QWORD[((-24))+rax]
+ mov rbp,QWORD[((-16))+rax]
+ mov rbx,QWORD[((-8))+rax]
+ lea rsp,[rax]
+$L$mul_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_rsaz_512_mul::
-rsaz_512_mul ENDP
-PUBLIC rsaz_512_mul_gather4
+$L$SEH_end_rsaz_512_mul:
+global rsaz_512_mul_gather4
ALIGN 32
-rsaz_512_mul_gather4 PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+rsaz_512_mul_gather4:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_rsaz_512_mul_gather4::
+$L$SEH_begin_rsaz_512_mul_gather4:
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]
push rbx
@@ -504,97 +506,97 @@ $L$SEH_begin_rsaz_512_mul_gather4::
mov r9d,r9d
sub rsp,128+24
-$L$mul_gather4_body::
- mov eax,DWORD PTR[64+r9*4+rdx]
+$L$mul_gather4_body:
+ mov eax,DWORD[64+r9*4+rdx]
DB 102,72,15,110,199
- mov ebx,DWORD PTR[r9*4+rdx]
+ mov ebx,DWORD[r9*4+rdx]
DB 102,72,15,110,201
- mov QWORD PTR[128+rsp],r8
+ mov QWORD[128+rsp],r8
shl rax,32
or rbx,rax
- mov rax,QWORD PTR[rsi]
- mov rcx,QWORD PTR[8+rsi]
- lea rbp,QWORD PTR[128+r9*4+rdx]
+ mov rax,QWORD[rsi]
+ mov rcx,QWORD[8+rsi]
+ lea rbp,[128+r9*4+rdx]
mul rbx
- mov QWORD PTR[rsp],rax
+ mov QWORD[rsp],rax
mov rax,rcx
mov r8,rdx
mul rbx
- movd xmm4,DWORD PTR[rbp]
+ movd xmm4,DWORD[rbp]
add r8,rax
- mov rax,QWORD PTR[16+rsi]
+ mov rax,QWORD[16+rsi]
mov r9,rdx
adc r9,0
mul rbx
- movd xmm5,DWORD PTR[64+rbp]
+ movd xmm5,DWORD[64+rbp]
add r9,rax
- mov rax,QWORD PTR[24+rsi]
+ mov rax,QWORD[24+rsi]
mov r10,rdx
adc r10,0
mul rbx
pslldq xmm5,4
add r10,rax
- mov rax,QWORD PTR[32+rsi]
+ mov rax,QWORD[32+rsi]
mov r11,rdx
adc r11,0
mul rbx
por xmm4,xmm5
add r11,rax
- mov rax,QWORD PTR[40+rsi]
+ mov rax,QWORD[40+rsi]
mov r12,rdx
adc r12,0
mul rbx
add r12,rax
- mov rax,QWORD PTR[48+rsi]
+ mov rax,QWORD[48+rsi]
mov r13,rdx
adc r13,0
mul rbx
- lea rbp,QWORD PTR[128+rbp]
+ lea rbp,[128+rbp]
add r13,rax
- mov rax,QWORD PTR[56+rsi]
+ mov rax,QWORD[56+rsi]
mov r14,rdx
adc r14,0
mul rbx
DB 102,72,15,126,227
add r14,rax
- mov rax,QWORD PTR[rsi]
+ mov rax,QWORD[rsi]
mov r15,rdx
adc r15,0
- lea rdi,QWORD PTR[8+rsp]
+ lea rdi,[8+rsp]
mov ecx,7
- jmp $L$oop_mul_gather
+ jmp NEAR $L$oop_mul_gather
ALIGN 32
-$L$oop_mul_gather::
+$L$oop_mul_gather:
mul rbx
add r8,rax
- mov rax,QWORD PTR[8+rsi]
- mov QWORD PTR[rdi],r8
+ mov rax,QWORD[8+rsi]
+ mov QWORD[rdi],r8
mov r8,rdx
adc r8,0
mul rbx
- movd xmm4,DWORD PTR[rbp]
+ movd xmm4,DWORD[rbp]
add r9,rax
- mov rax,QWORD PTR[16+rsi]
+ mov rax,QWORD[16+rsi]
adc rdx,0
add r8,r9
mov r9,rdx
adc r9,0
mul rbx
- movd xmm5,DWORD PTR[64+rbp]
+ movd xmm5,DWORD[64+rbp]
add r10,rax
- mov rax,QWORD PTR[24+rsi]
+ mov rax,QWORD[24+rsi]
adc rdx,0
add r9,r10
mov r10,rdx
@@ -603,7 +605,7 @@ $L$oop_mul_gather::
mul rbx
pslldq xmm5,4
add r11,rax
- mov rax,QWORD PTR[32+rsi]
+ mov rax,QWORD[32+rsi]
adc rdx,0
add r10,r11
mov r11,rdx
@@ -612,7 +614,7 @@ $L$oop_mul_gather::
mul rbx
por xmm4,xmm5
add r12,rax
- mov rax,QWORD PTR[40+rsi]
+ mov rax,QWORD[40+rsi]
adc rdx,0
add r11,r12
mov r12,rdx
@@ -620,7 +622,7 @@ $L$oop_mul_gather::
mul rbx
add r13,rax
- mov rax,QWORD PTR[48+rsi]
+ mov rax,QWORD[48+rsi]
adc rdx,0
add r12,r13
mov r13,rdx
@@ -628,7 +630,7 @@ $L$oop_mul_gather::
mul rbx
add r14,rax
- mov rax,QWORD PTR[56+rsi]
+ mov rax,QWORD[56+rsi]
adc rdx,0
add r13,r14
mov r14,rdx
@@ -637,80 +639,79 @@ $L$oop_mul_gather::
mul rbx
DB 102,72,15,126,227
add r15,rax
- mov rax,QWORD PTR[rsi]
+ mov rax,QWORD[rsi]
adc rdx,0
add r14,r15
mov r15,rdx
adc r15,0
- lea rbp,QWORD PTR[128+rbp]
- lea rdi,QWORD PTR[8+rdi]
+ lea rbp,[128+rbp]
+ lea rdi,[8+rdi]
dec ecx
- jnz $L$oop_mul_gather
+ jnz NEAR $L$oop_mul_gather
- mov QWORD PTR[rdi],r8
- mov QWORD PTR[8+rdi],r9
- mov QWORD PTR[16+rdi],r10
- mov QWORD PTR[24+rdi],r11
- mov QWORD PTR[32+rdi],r12
- mov QWORD PTR[40+rdi],r13
- mov QWORD PTR[48+rdi],r14
- mov QWORD PTR[56+rdi],r15
+ mov QWORD[rdi],r8
+ mov QWORD[8+rdi],r9
+ mov QWORD[16+rdi],r10
+ mov QWORD[24+rdi],r11
+ mov QWORD[32+rdi],r12
+ mov QWORD[40+rdi],r13
+ mov QWORD[48+rdi],r14
+ mov QWORD[56+rdi],r15
DB 102,72,15,126,199
DB 102,72,15,126,205
- mov r8,QWORD PTR[rsp]
- mov r9,QWORD PTR[8+rsp]
- mov r10,QWORD PTR[16+rsp]
- mov r11,QWORD PTR[24+rsp]
- mov r12,QWORD PTR[32+rsp]
- mov r13,QWORD PTR[40+rsp]
- mov r14,QWORD PTR[48+rsp]
- mov r15,QWORD PTR[56+rsp]
+ mov r8,QWORD[rsp]
+ mov r9,QWORD[8+rsp]
+ mov r10,QWORD[16+rsp]
+ mov r11,QWORD[24+rsp]
+ mov r12,QWORD[32+rsp]
+ mov r13,QWORD[40+rsp]
+ mov r14,QWORD[48+rsp]
+ mov r15,QWORD[56+rsp]
call __rsaz_512_reduce
- add r8,QWORD PTR[64+rsp]
- adc r9,QWORD PTR[72+rsp]
- adc r10,QWORD PTR[80+rsp]
- adc r11,QWORD PTR[88+rsp]
- adc r12,QWORD PTR[96+rsp]
- adc r13,QWORD PTR[104+rsp]
- adc r14,QWORD PTR[112+rsp]
- adc r15,QWORD PTR[120+rsp]
+ add r8,QWORD[64+rsp]
+ adc r9,QWORD[72+rsp]
+ adc r10,QWORD[80+rsp]
+ adc r11,QWORD[88+rsp]
+ adc r12,QWORD[96+rsp]
+ adc r13,QWORD[104+rsp]
+ adc r14,QWORD[112+rsp]
+ adc r15,QWORD[120+rsp]
sbb rcx,rcx
call __rsaz_512_subtract
- lea rax,QWORD PTR[((128+24+48))+rsp]
- mov r15,QWORD PTR[((-48))+rax]
- mov r14,QWORD PTR[((-40))+rax]
- mov r13,QWORD PTR[((-32))+rax]
- mov r12,QWORD PTR[((-24))+rax]
- mov rbp,QWORD PTR[((-16))+rax]
- mov rbx,QWORD PTR[((-8))+rax]
- lea rsp,QWORD PTR[rax]
-$L$mul_gather4_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ lea rax,[((128+24+48))+rsp]
+ mov r15,QWORD[((-48))+rax]
+ mov r14,QWORD[((-40))+rax]
+ mov r13,QWORD[((-32))+rax]
+ mov r12,QWORD[((-24))+rax]
+ mov rbp,QWORD[((-16))+rax]
+ mov rbx,QWORD[((-8))+rax]
+ lea rsp,[rax]
+$L$mul_gather4_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_rsaz_512_mul_gather4::
-rsaz_512_mul_gather4 ENDP
-PUBLIC rsaz_512_mul_scatter4
+$L$SEH_end_rsaz_512_mul_gather4:
+global rsaz_512_mul_scatter4
ALIGN 32
-rsaz_512_mul_scatter4 PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+rsaz_512_mul_scatter4:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_rsaz_512_mul_scatter4::
+$L$SEH_begin_rsaz_512_mul_scatter4:
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]
push rbx
@@ -722,90 +723,89 @@ $L$SEH_begin_rsaz_512_mul_scatter4::
mov r9d,r9d
sub rsp,128+24
-$L$mul_scatter4_body::
- lea r8,QWORD PTR[r9*4+r8]
+$L$mul_scatter4_body:
+ lea r8,[r9*4+r8]
DB 102,72,15,110,199
DB 102,72,15,110,202
DB 102,73,15,110,208
- mov QWORD PTR[128+rsp],rcx
+ mov QWORD[128+rsp],rcx
mov rbp,rdi
- mov rbx,QWORD PTR[rdi]
+ mov rbx,QWORD[rdi]
call __rsaz_512_mul
DB 102,72,15,126,199
DB 102,72,15,126,205
- mov r8,QWORD PTR[rsp]
- mov r9,QWORD PTR[8+rsp]
- mov r10,QWORD PTR[16+rsp]
- mov r11,QWORD PTR[24+rsp]
- mov r12,QWORD PTR[32+rsp]
- mov r13,QWORD PTR[40+rsp]
- mov r14,QWORD PTR[48+rsp]
- mov r15,QWORD PTR[56+rsp]
+ mov r8,QWORD[rsp]
+ mov r9,QWORD[8+rsp]
+ mov r10,QWORD[16+rsp]
+ mov r11,QWORD[24+rsp]
+ mov r12,QWORD[32+rsp]
+ mov r13,QWORD[40+rsp]
+ mov r14,QWORD[48+rsp]
+ mov r15,QWORD[56+rsp]
call __rsaz_512_reduce
- add r8,QWORD PTR[64+rsp]
- adc r9,QWORD PTR[72+rsp]
- adc r10,QWORD PTR[80+rsp]
- adc r11,QWORD PTR[88+rsp]
- adc r12,QWORD PTR[96+rsp]
- adc r13,QWORD PTR[104+rsp]
- adc r14,QWORD PTR[112+rsp]
- adc r15,QWORD PTR[120+rsp]
+ add r8,QWORD[64+rsp]
+ adc r9,QWORD[72+rsp]
+ adc r10,QWORD[80+rsp]
+ adc r11,QWORD[88+rsp]
+ adc r12,QWORD[96+rsp]
+ adc r13,QWORD[104+rsp]
+ adc r14,QWORD[112+rsp]
+ adc r15,QWORD[120+rsp]
DB 102,72,15,126,214
sbb rcx,rcx
call __rsaz_512_subtract
- mov DWORD PTR[rsi],r8d
+ mov DWORD[rsi],r8d
shr r8,32
- mov DWORD PTR[128+rsi],r9d
+ mov DWORD[128+rsi],r9d
shr r9,32
- mov DWORD PTR[256+rsi],r10d
+ mov DWORD[256+rsi],r10d
shr r10,32
- mov DWORD PTR[384+rsi],r11d
+ mov DWORD[384+rsi],r11d
shr r11,32
- mov DWORD PTR[512+rsi],r12d
+ mov DWORD[512+rsi],r12d
shr r12,32
- mov DWORD PTR[640+rsi],r13d
+ mov DWORD[640+rsi],r13d
shr r13,32
- mov DWORD PTR[768+rsi],r14d
+ mov DWORD[768+rsi],r14d
shr r14,32
- mov DWORD PTR[896+rsi],r15d
+ mov DWORD[896+rsi],r15d
shr r15,32
- mov DWORD PTR[64+rsi],r8d
- mov DWORD PTR[192+rsi],r9d
- mov DWORD PTR[320+rsi],r10d
- mov DWORD PTR[448+rsi],r11d
- mov DWORD PTR[576+rsi],r12d
- mov DWORD PTR[704+rsi],r13d
- mov DWORD PTR[832+rsi],r14d
- mov DWORD PTR[960+rsi],r15d
-
- lea rax,QWORD PTR[((128+24+48))+rsp]
- mov r15,QWORD PTR[((-48))+rax]
- mov r14,QWORD PTR[((-40))+rax]
- mov r13,QWORD PTR[((-32))+rax]
- mov r12,QWORD PTR[((-24))+rax]
- mov rbp,QWORD PTR[((-16))+rax]
- mov rbx,QWORD PTR[((-8))+rax]
- lea rsp,QWORD PTR[rax]
-$L$mul_scatter4_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ mov DWORD[64+rsi],r8d
+ mov DWORD[192+rsi],r9d
+ mov DWORD[320+rsi],r10d
+ mov DWORD[448+rsi],r11d
+ mov DWORD[576+rsi],r12d
+ mov DWORD[704+rsi],r13d
+ mov DWORD[832+rsi],r14d
+ mov DWORD[960+rsi],r15d
+
+ lea rax,[((128+24+48))+rsp]
+ mov r15,QWORD[((-48))+rax]
+ mov r14,QWORD[((-40))+rax]
+ mov r13,QWORD[((-32))+rax]
+ mov r12,QWORD[((-24))+rax]
+ mov rbp,QWORD[((-16))+rax]
+ mov rbx,QWORD[((-8))+rax]
+ lea rsp,[rax]
+$L$mul_scatter4_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_rsaz_512_mul_scatter4::
-rsaz_512_mul_scatter4 ENDP
-PUBLIC rsaz_512_mul_by_one
+$L$SEH_end_rsaz_512_mul_scatter4:
+global rsaz_512_mul_by_one
ALIGN 32
-rsaz_512_mul_by_one PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+rsaz_512_mul_by_one:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_rsaz_512_mul_by_one::
+$L$SEH_begin_rsaz_512_mul_by_one:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
@@ -820,71 +820,70 @@ $L$SEH_begin_rsaz_512_mul_by_one::
push r15
sub rsp,128+24
-$L$mul_by_one_body::
+$L$mul_by_one_body:
mov rbp,rdx
- mov QWORD PTR[128+rsp],rcx
+ mov QWORD[128+rsp],rcx
- mov r8,QWORD PTR[rsi]
+ mov r8,QWORD[rsi]
pxor xmm0,xmm0
- mov r9,QWORD PTR[8+rsi]
- mov r10,QWORD PTR[16+rsi]
- mov r11,QWORD PTR[24+rsi]
- mov r12,QWORD PTR[32+rsi]
- mov r13,QWORD PTR[40+rsi]
- mov r14,QWORD PTR[48+rsi]
- mov r15,QWORD PTR[56+rsi]
-
- movdqa XMMWORD PTR[rsp],xmm0
- movdqa XMMWORD PTR[16+rsp],xmm0
- movdqa XMMWORD PTR[32+rsp],xmm0
- movdqa XMMWORD PTR[48+rsp],xmm0
- movdqa XMMWORD PTR[64+rsp],xmm0
- movdqa XMMWORD PTR[80+rsp],xmm0
- movdqa XMMWORD PTR[96+rsp],xmm0
+ mov r9,QWORD[8+rsi]
+ mov r10,QWORD[16+rsi]
+ mov r11,QWORD[24+rsi]
+ mov r12,QWORD[32+rsi]
+ mov r13,QWORD[40+rsi]
+ mov r14,QWORD[48+rsi]
+ mov r15,QWORD[56+rsi]
+
+ movdqa XMMWORD[rsp],xmm0
+ movdqa XMMWORD[16+rsp],xmm0
+ movdqa XMMWORD[32+rsp],xmm0
+ movdqa XMMWORD[48+rsp],xmm0
+ movdqa XMMWORD[64+rsp],xmm0
+ movdqa XMMWORD[80+rsp],xmm0
+ movdqa XMMWORD[96+rsp],xmm0
call __rsaz_512_reduce
- mov QWORD PTR[rdi],r8
- mov QWORD PTR[8+rdi],r9
- mov QWORD PTR[16+rdi],r10
- mov QWORD PTR[24+rdi],r11
- mov QWORD PTR[32+rdi],r12
- mov QWORD PTR[40+rdi],r13
- mov QWORD PTR[48+rdi],r14
- mov QWORD PTR[56+rdi],r15
-
- lea rax,QWORD PTR[((128+24+48))+rsp]
- mov r15,QWORD PTR[((-48))+rax]
- mov r14,QWORD PTR[((-40))+rax]
- mov r13,QWORD PTR[((-32))+rax]
- mov r12,QWORD PTR[((-24))+rax]
- mov rbp,QWORD PTR[((-16))+rax]
- mov rbx,QWORD PTR[((-8))+rax]
- lea rsp,QWORD PTR[rax]
-$L$mul_by_one_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ mov QWORD[rdi],r8
+ mov QWORD[8+rdi],r9
+ mov QWORD[16+rdi],r10
+ mov QWORD[24+rdi],r11
+ mov QWORD[32+rdi],r12
+ mov QWORD[40+rdi],r13
+ mov QWORD[48+rdi],r14
+ mov QWORD[56+rdi],r15
+
+ lea rax,[((128+24+48))+rsp]
+ mov r15,QWORD[((-48))+rax]
+ mov r14,QWORD[((-40))+rax]
+ mov r13,QWORD[((-32))+rax]
+ mov r12,QWORD[((-24))+rax]
+ mov rbp,QWORD[((-16))+rax]
+ mov rbx,QWORD[((-8))+rax]
+ lea rsp,[rax]
+$L$mul_by_one_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_rsaz_512_mul_by_one::
-rsaz_512_mul_by_one ENDP
+$L$SEH_end_rsaz_512_mul_by_one:
ALIGN 32
-__rsaz_512_reduce PROC PRIVATE
+__rsaz_512_reduce:
mov rbx,r8
- imul rbx,QWORD PTR[((128+8))+rsp]
- mov rax,QWORD PTR[rbp]
+ imul rbx,QWORD[((128+8))+rsp]
+ mov rax,QWORD[rbp]
mov ecx,8
- jmp $L$reduction_loop
+ jmp NEAR $L$reduction_loop
ALIGN 32
-$L$reduction_loop::
+$L$reduction_loop:
mul rbx
- mov rax,QWORD PTR[8+rbp]
+ mov rax,QWORD[8+rbp]
neg r8
mov r8,rdx
adc r8,0
mul rbx
add r9,rax
- mov rax,QWORD PTR[16+rbp]
+ mov rax,QWORD[16+rbp]
adc rdx,0
add r8,r9
mov r9,rdx
@@ -892,7 +891,7 @@ $L$reduction_loop::
mul rbx
add r10,rax
- mov rax,QWORD PTR[24+rbp]
+ mov rax,QWORD[24+rbp]
adc rdx,0
add r9,r10
mov r10,rdx
@@ -900,10 +899,10 @@ $L$reduction_loop::
mul rbx
add r11,rax
- mov rax,QWORD PTR[32+rbp]
+ mov rax,QWORD[32+rbp]
adc rdx,0
add r10,r11
- mov rsi,QWORD PTR[((128+8))+rsp]
+ mov rsi,QWORD[((128+8))+rsp]
adc rdx,0
@@ -911,7 +910,7 @@ $L$reduction_loop::
mul rbx
add r12,rax
- mov rax,QWORD PTR[40+rbp]
+ mov rax,QWORD[40+rbp]
adc rdx,0
imul rsi,r8
add r11,r12
@@ -920,7 +919,7 @@ $L$reduction_loop::
mul rbx
add r13,rax
- mov rax,QWORD PTR[48+rbp]
+ mov rax,QWORD[48+rbp]
adc rdx,0
add r12,r13
mov r13,rdx
@@ -928,7 +927,7 @@ $L$reduction_loop::
mul rbx
add r14,rax
- mov rax,QWORD PTR[56+rbp]
+ mov rax,QWORD[56+rbp]
adc rdx,0
add r13,r14
mov r14,rdx
@@ -937,146 +936,146 @@ $L$reduction_loop::
mul rbx
mov rbx,rsi
add r15,rax
- mov rax,QWORD PTR[rbp]
+ mov rax,QWORD[rbp]
adc rdx,0
add r14,r15
mov r15,rdx
adc r15,0
dec ecx
- jne $L$reduction_loop
+ jne NEAR $L$reduction_loop
DB 0F3h,0C3h ;repret
-__rsaz_512_reduce ENDP
+
ALIGN 32
-__rsaz_512_subtract PROC PRIVATE
- mov QWORD PTR[rdi],r8
- mov QWORD PTR[8+rdi],r9
- mov QWORD PTR[16+rdi],r10
- mov QWORD PTR[24+rdi],r11
- mov QWORD PTR[32+rdi],r12
- mov QWORD PTR[40+rdi],r13
- mov QWORD PTR[48+rdi],r14
- mov QWORD PTR[56+rdi],r15
-
- mov r8,QWORD PTR[rbp]
- mov r9,QWORD PTR[8+rbp]
+__rsaz_512_subtract:
+ mov QWORD[rdi],r8
+ mov QWORD[8+rdi],r9
+ mov QWORD[16+rdi],r10
+ mov QWORD[24+rdi],r11
+ mov QWORD[32+rdi],r12
+ mov QWORD[40+rdi],r13
+ mov QWORD[48+rdi],r14
+ mov QWORD[56+rdi],r15
+
+ mov r8,QWORD[rbp]
+ mov r9,QWORD[8+rbp]
neg r8
not r9
and r8,rcx
- mov r10,QWORD PTR[16+rbp]
+ mov r10,QWORD[16+rbp]
and r9,rcx
not r10
- mov r11,QWORD PTR[24+rbp]
+ mov r11,QWORD[24+rbp]
and r10,rcx
not r11
- mov r12,QWORD PTR[32+rbp]
+ mov r12,QWORD[32+rbp]
and r11,rcx
not r12
- mov r13,QWORD PTR[40+rbp]
+ mov r13,QWORD[40+rbp]
and r12,rcx
not r13
- mov r14,QWORD PTR[48+rbp]
+ mov r14,QWORD[48+rbp]
and r13,rcx
not r14
- mov r15,QWORD PTR[56+rbp]
+ mov r15,QWORD[56+rbp]
and r14,rcx
not r15
and r15,rcx
- add r8,QWORD PTR[rdi]
- adc r9,QWORD PTR[8+rdi]
- adc r10,QWORD PTR[16+rdi]
- adc r11,QWORD PTR[24+rdi]
- adc r12,QWORD PTR[32+rdi]
- adc r13,QWORD PTR[40+rdi]
- adc r14,QWORD PTR[48+rdi]
- adc r15,QWORD PTR[56+rdi]
-
- mov QWORD PTR[rdi],r8
- mov QWORD PTR[8+rdi],r9
- mov QWORD PTR[16+rdi],r10
- mov QWORD PTR[24+rdi],r11
- mov QWORD PTR[32+rdi],r12
- mov QWORD PTR[40+rdi],r13
- mov QWORD PTR[48+rdi],r14
- mov QWORD PTR[56+rdi],r15
+ add r8,QWORD[rdi]
+ adc r9,QWORD[8+rdi]
+ adc r10,QWORD[16+rdi]
+ adc r11,QWORD[24+rdi]
+ adc r12,QWORD[32+rdi]
+ adc r13,QWORD[40+rdi]
+ adc r14,QWORD[48+rdi]
+ adc r15,QWORD[56+rdi]
+
+ mov QWORD[rdi],r8
+ mov QWORD[8+rdi],r9
+ mov QWORD[16+rdi],r10
+ mov QWORD[24+rdi],r11
+ mov QWORD[32+rdi],r12
+ mov QWORD[40+rdi],r13
+ mov QWORD[48+rdi],r14
+ mov QWORD[56+rdi],r15
DB 0F3h,0C3h ;repret
-__rsaz_512_subtract ENDP
+
ALIGN 32
-__rsaz_512_mul PROC PRIVATE
- lea rdi,QWORD PTR[8+rsp]
+__rsaz_512_mul:
+ lea rdi,[8+rsp]
- mov rax,QWORD PTR[rsi]
+ mov rax,QWORD[rsi]
mul rbx
- mov QWORD PTR[rdi],rax
- mov rax,QWORD PTR[8+rsi]
+ mov QWORD[rdi],rax
+ mov rax,QWORD[8+rsi]
mov r8,rdx
mul rbx
add r8,rax
- mov rax,QWORD PTR[16+rsi]
+ mov rax,QWORD[16+rsi]
mov r9,rdx
adc r9,0
mul rbx
add r9,rax
- mov rax,QWORD PTR[24+rsi]
+ mov rax,QWORD[24+rsi]
mov r10,rdx
adc r10,0
mul rbx
add r10,rax
- mov rax,QWORD PTR[32+rsi]
+ mov rax,QWORD[32+rsi]
mov r11,rdx
adc r11,0
mul rbx
add r11,rax
- mov rax,QWORD PTR[40+rsi]
+ mov rax,QWORD[40+rsi]
mov r12,rdx
adc r12,0
mul rbx
add r12,rax
- mov rax,QWORD PTR[48+rsi]
+ mov rax,QWORD[48+rsi]
mov r13,rdx
adc r13,0
mul rbx
add r13,rax
- mov rax,QWORD PTR[56+rsi]
+ mov rax,QWORD[56+rsi]
mov r14,rdx
adc r14,0
mul rbx
add r14,rax
- mov rax,QWORD PTR[rsi]
+ mov rax,QWORD[rsi]
mov r15,rdx
adc r15,0
- lea rbp,QWORD PTR[8+rbp]
- lea rdi,QWORD PTR[8+rdi]
+ lea rbp,[8+rbp]
+ lea rdi,[8+rdi]
mov ecx,7
- jmp $L$oop_mul
+ jmp NEAR $L$oop_mul
ALIGN 32
-$L$oop_mul::
- mov rbx,QWORD PTR[rbp]
+$L$oop_mul:
+ mov rbx,QWORD[rbp]
mul rbx
add r8,rax
- mov rax,QWORD PTR[8+rsi]
- mov QWORD PTR[rdi],r8
+ mov rax,QWORD[8+rsi]
+ mov QWORD[rdi],r8
mov r8,rdx
adc r8,0
mul rbx
add r9,rax
- mov rax,QWORD PTR[16+rsi]
+ mov rax,QWORD[16+rsi]
adc rdx,0
add r8,r9
mov r9,rdx
@@ -1084,7 +1083,7 @@ $L$oop_mul::
mul rbx
add r10,rax
- mov rax,QWORD PTR[24+rsi]
+ mov rax,QWORD[24+rsi]
adc rdx,0
add r9,r10
mov r10,rdx
@@ -1092,7 +1091,7 @@ $L$oop_mul::
mul rbx
add r11,rax
- mov rax,QWORD PTR[32+rsi]
+ mov rax,QWORD[32+rsi]
adc rdx,0
add r10,r11
mov r11,rdx
@@ -1100,7 +1099,7 @@ $L$oop_mul::
mul rbx
add r12,rax
- mov rax,QWORD PTR[40+rsi]
+ mov rax,QWORD[40+rsi]
adc rdx,0
add r11,r12
mov r12,rdx
@@ -1108,7 +1107,7 @@ $L$oop_mul::
mul rbx
add r13,rax
- mov rax,QWORD PTR[48+rsi]
+ mov rax,QWORD[48+rsi]
adc rdx,0
add r12,r13
mov r13,rdx
@@ -1116,81 +1115,81 @@ $L$oop_mul::
mul rbx
add r14,rax
- mov rax,QWORD PTR[56+rsi]
+ mov rax,QWORD[56+rsi]
adc rdx,0
add r13,r14
mov r14,rdx
- lea rbp,QWORD PTR[8+rbp]
+ lea rbp,[8+rbp]
adc r14,0
mul rbx
add r15,rax
- mov rax,QWORD PTR[rsi]
+ mov rax,QWORD[rsi]
adc rdx,0
add r14,r15
mov r15,rdx
adc r15,0
- lea rdi,QWORD PTR[8+rdi]
+ lea rdi,[8+rdi]
dec ecx
- jnz $L$oop_mul
+ jnz NEAR $L$oop_mul
- mov QWORD PTR[rdi],r8
- mov QWORD PTR[8+rdi],r9
- mov QWORD PTR[16+rdi],r10
- mov QWORD PTR[24+rdi],r11
- mov QWORD PTR[32+rdi],r12
- mov QWORD PTR[40+rdi],r13
- mov QWORD PTR[48+rdi],r14
- mov QWORD PTR[56+rdi],r15
+ mov QWORD[rdi],r8
+ mov QWORD[8+rdi],r9
+ mov QWORD[16+rdi],r10
+ mov QWORD[24+rdi],r11
+ mov QWORD[32+rdi],r12
+ mov QWORD[40+rdi],r13
+ mov QWORD[48+rdi],r14
+ mov QWORD[56+rdi],r15
DB 0F3h,0C3h ;repret
-__rsaz_512_mul ENDP
-PUBLIC rsaz_512_scatter4
+
+global rsaz_512_scatter4
ALIGN 16
-rsaz_512_scatter4 PROC PUBLIC
- lea rcx,QWORD PTR[r8*4+rcx]
+rsaz_512_scatter4:
+ lea rcx,[r8*4+rcx]
mov r9d,8
- jmp $L$oop_scatter
+ jmp NEAR $L$oop_scatter
ALIGN 16
-$L$oop_scatter::
- mov rax,QWORD PTR[rdx]
- lea rdx,QWORD PTR[8+rdx]
- mov DWORD PTR[rcx],eax
+$L$oop_scatter:
+ mov rax,QWORD[rdx]
+ lea rdx,[8+rdx]
+ mov DWORD[rcx],eax
shr rax,32
- mov DWORD PTR[64+rcx],eax
- lea rcx,QWORD PTR[128+rcx]
+ mov DWORD[64+rcx],eax
+ lea rcx,[128+rcx]
dec r9d
- jnz $L$oop_scatter
+ jnz NEAR $L$oop_scatter
DB 0F3h,0C3h ;repret
-rsaz_512_scatter4 ENDP
-PUBLIC rsaz_512_gather4
+
+global rsaz_512_gather4
ALIGN 16
-rsaz_512_gather4 PROC PUBLIC
- lea rdx,QWORD PTR[r8*4+rdx]
+rsaz_512_gather4:
+ lea rdx,[r8*4+rdx]
mov r9d,8
- jmp $L$oop_gather
+ jmp NEAR $L$oop_gather
ALIGN 16
-$L$oop_gather::
- mov eax,DWORD PTR[rdx]
- mov r8d,DWORD PTR[64+rdx]
- lea rdx,QWORD PTR[128+rdx]
+$L$oop_gather:
+ mov eax,DWORD[rdx]
+ mov r8d,DWORD[64+rdx]
+ lea rdx,[128+rdx]
shl r8,32
or rax,r8
- mov QWORD PTR[rcx],rax
- lea rcx,QWORD PTR[8+rcx]
+ mov QWORD[rcx],rax
+ lea rcx,[8+rcx]
dec r9d
- jnz $L$oop_gather
+ jnz NEAR $L$oop_gather
DB 0F3h,0C3h ;repret
-rsaz_512_gather4 ENDP
-EXTERN __imp_RtlVirtualUnwind:NEAR
+
+EXTERN __imp_RtlVirtualUnwind
ALIGN 16
-se_handler PROC PRIVATE
+se_handler:
push rsi
push rdi
push rbx
@@ -1202,64 +1201,64 @@ 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
-
- lea rax,QWORD PTR[((128+24+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$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]
+ jae NEAR $L$common_seh_tail
+
+ lea rax,[((128+24+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$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
@@ -1273,54 +1272,49 @@ $L$common_seh_tail::
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_rsaz_512_sqr
- DD imagerel $L$SEH_end_rsaz_512_sqr
- DD imagerel $L$SEH_info_rsaz_512_sqr
+ DD $L$SEH_begin_rsaz_512_sqr wrt ..imagebase
+ DD $L$SEH_end_rsaz_512_sqr wrt ..imagebase
+ DD $L$SEH_info_rsaz_512_sqr wrt ..imagebase
- DD imagerel $L$SEH_begin_rsaz_512_mul
- DD imagerel $L$SEH_end_rsaz_512_mul
- DD imagerel $L$SEH_info_rsaz_512_mul
+ DD $L$SEH_begin_rsaz_512_mul wrt ..imagebase
+ DD $L$SEH_end_rsaz_512_mul wrt ..imagebase
+ DD $L$SEH_info_rsaz_512_mul wrt ..imagebase
- DD imagerel $L$SEH_begin_rsaz_512_mul_gather4
- DD imagerel $L$SEH_end_rsaz_512_mul_gather4
- DD imagerel $L$SEH_info_rsaz_512_mul_gather4
+ DD $L$SEH_begin_rsaz_512_mul_gather4 wrt ..imagebase
+ DD $L$SEH_end_rsaz_512_mul_gather4 wrt ..imagebase
+ DD $L$SEH_info_rsaz_512_mul_gather4 wrt ..imagebase
- DD imagerel $L$SEH_begin_rsaz_512_mul_scatter4
- DD imagerel $L$SEH_end_rsaz_512_mul_scatter4
- DD imagerel $L$SEH_info_rsaz_512_mul_scatter4
+ DD $L$SEH_begin_rsaz_512_mul_scatter4 wrt ..imagebase
+ DD $L$SEH_end_rsaz_512_mul_scatter4 wrt ..imagebase
+ DD $L$SEH_info_rsaz_512_mul_scatter4 wrt ..imagebase
- DD imagerel $L$SEH_begin_rsaz_512_mul_by_one
- DD imagerel $L$SEH_end_rsaz_512_mul_by_one
- DD imagerel $L$SEH_info_rsaz_512_mul_by_one
+ DD $L$SEH_begin_rsaz_512_mul_by_one wrt ..imagebase
+ DD $L$SEH_end_rsaz_512_mul_by_one wrt ..imagebase
+ DD $L$SEH_info_rsaz_512_mul_by_one wrt ..imagebase
-.pdata ENDS
-.xdata SEGMENT READONLY ALIGN(8)
+section .xdata rdata align=8
ALIGN 8
-$L$SEH_info_rsaz_512_sqr::
+$L$SEH_info_rsaz_512_sqr:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$sqr_body,imagerel $L$sqr_epilogue
-$L$SEH_info_rsaz_512_mul::
+ DD se_handler wrt ..imagebase
+ DD $L$sqr_body wrt ..imagebase,$L$sqr_epilogue wrt ..imagebase
+$L$SEH_info_rsaz_512_mul:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$mul_body,imagerel $L$mul_epilogue
-$L$SEH_info_rsaz_512_mul_gather4::
+ DD se_handler wrt ..imagebase
+ DD $L$mul_body wrt ..imagebase,$L$mul_epilogue wrt ..imagebase
+$L$SEH_info_rsaz_512_mul_gather4:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$mul_gather4_body,imagerel $L$mul_gather4_epilogue
-$L$SEH_info_rsaz_512_mul_scatter4::
+ DD se_handler wrt ..imagebase
+ DD $L$mul_gather4_body wrt ..imagebase,$L$mul_gather4_epilogue wrt ..imagebase
+$L$SEH_info_rsaz_512_mul_scatter4:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$mul_scatter4_body,imagerel $L$mul_scatter4_epilogue
-$L$SEH_info_rsaz_512_mul_by_one::
+ DD se_handler wrt ..imagebase
+ DD $L$mul_scatter4_body wrt ..imagebase,$L$mul_scatter4_epilogue wrt ..imagebase
+$L$SEH_info_rsaz_512_mul_by_one:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$mul_by_one_body,imagerel $L$mul_by_one_epilogue
-
-.xdata ENDS
-END
+ DD se_handler wrt ..imagebase
+ DD $L$mul_by_one_body wrt ..imagebase,$L$mul_by_one_epilogue wrt ..imagebase
diff --git a/win-x86_64/crypto/bn/x86_64-mont.asm b/win-x86_64/crypto/bn/x86_64-mont.asm
index a409325..db0d1b9 100644
--- a/win-x86_64/crypto/bn/x86_64-mont.asm
+++ b/win-x86_64/crypto/bn/x86_64-mont.asm
@@ -1,36 +1,40 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
-EXTERN OPENSSL_ia32cap_P:NEAR
-PUBLIC bn_mul_mont
+EXTERN OPENSSL_ia32cap_P
+
+global bn_mul_mont
ALIGN 16
-bn_mul_mont PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+bn_mul_mont:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_bn_mul_mont::
+$L$SEH_begin_bn_mul_mont:
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 r9d,3
- jnz $L$mul_enter
+ jnz NEAR $L$mul_enter
cmp r9d,8
- jb $L$mul_enter
+ jb NEAR $L$mul_enter
cmp rdx,rsi
- jne $L$mul4x_enter
+ jne NEAR $L$mul4x_enter
test r9d,7
- jz $L$sqr8x_enter
- jmp $L$mul4x_enter
+ jz NEAR $L$sqr8x_enter
+ jmp NEAR $L$mul4x_enter
ALIGN 16
-$L$mul_enter::
+$L$mul_enter:
push rbx
push rbp
push r12
@@ -39,18 +43,18 @@ $L$mul_enter::
push r15
mov r9d,r9d
- lea r10,QWORD PTR[2+r9]
+ lea r10,[2+r9]
mov r11,rsp
neg r10
- lea rsp,QWORD PTR[r10*8+rsp]
+ lea rsp,[r10*8+rsp]
and rsp,-1024
- mov QWORD PTR[8+r9*8+rsp],r11
-$L$mul_body::
+ mov QWORD[8+r9*8+rsp],r11
+$L$mul_body:
mov r12,rdx
- mov r8,QWORD PTR[r8]
- mov rbx,QWORD PTR[r12]
- mov rax,QWORD PTR[rsi]
+ mov r8,QWORD[r8]
+ mov rbx,QWORD[r12]
+ mov rax,QWORD[rsi]
xor r14,r14
xor r15,r15
@@ -58,69 +62,69 @@ $L$mul_body::
mov rbp,r8
mul rbx
mov r10,rax
- mov rax,QWORD PTR[rcx]
+ mov rax,QWORD[rcx]
imul rbp,r10
mov r11,rdx
mul rbp
add r10,rax
- mov rax,QWORD PTR[8+rsi]
+ mov rax,QWORD[8+rsi]
adc rdx,0
mov r13,rdx
- lea r15,QWORD PTR[1+r15]
- jmp $L$1st_enter
+ lea r15,[1+r15]
+ jmp NEAR $L$1st_enter
ALIGN 16
-$L$1st::
+$L$1st:
add r13,rax
- mov rax,QWORD PTR[r15*8+rsi]
+ mov rax,QWORD[r15*8+rsi]
adc rdx,0
add r13,r11
mov r11,r10
adc rdx,0
- mov QWORD PTR[((-16))+r15*8+rsp],r13
+ mov QWORD[((-16))+r15*8+rsp],r13
mov r13,rdx
-$L$1st_enter::
+$L$1st_enter:
mul rbx
add r11,rax
- mov rax,QWORD PTR[r15*8+rcx]
+ mov rax,QWORD[r15*8+rcx]
adc rdx,0
- lea r15,QWORD PTR[1+r15]
+ lea r15,[1+r15]
mov r10,rdx
mul rbp
cmp r15,r9
- jne $L$1st
+ jne NEAR $L$1st
add r13,rax
- mov rax,QWORD PTR[rsi]
+ mov rax,QWORD[rsi]
adc rdx,0
add r13,r11
adc rdx,0
- mov QWORD PTR[((-16))+r15*8+rsp],r13
+ mov QWORD[((-16))+r15*8+rsp],r13
mov r13,rdx
mov r11,r10
xor rdx,rdx
add r13,r11
adc rdx,0
- mov QWORD PTR[((-8))+r9*8+rsp],r13
- mov QWORD PTR[r9*8+rsp],rdx
+ mov QWORD[((-8))+r9*8+rsp],r13
+ mov QWORD[r9*8+rsp],rdx
- lea r14,QWORD PTR[1+r14]
- jmp $L$outer
+ lea r14,[1+r14]
+ jmp NEAR $L$outer
ALIGN 16
-$L$outer::
- mov rbx,QWORD PTR[r14*8+r12]
+$L$outer:
+ mov rbx,QWORD[r14*8+r12]
xor r15,r15
mov rbp,r8
- mov r10,QWORD PTR[rsp]
+ mov r10,QWORD[rsp]
mul rbx
add r10,rax
- mov rax,QWORD PTR[rcx]
+ mov rax,QWORD[rcx]
adc rdx,0
imul rbp,r10
@@ -128,46 +132,46 @@ $L$outer::
mul rbp
add r10,rax
- mov rax,QWORD PTR[8+rsi]
+ mov rax,QWORD[8+rsi]
adc rdx,0
- mov r10,QWORD PTR[8+rsp]
+ mov r10,QWORD[8+rsp]
mov r13,rdx
- lea r15,QWORD PTR[1+r15]
- jmp $L$inner_enter
+ lea r15,[1+r15]
+ jmp NEAR $L$inner_enter
ALIGN 16
-$L$inner::
+$L$inner:
add r13,rax
- mov rax,QWORD PTR[r15*8+rsi]
+ mov rax,QWORD[r15*8+rsi]
adc rdx,0
add r13,r10
- mov r10,QWORD PTR[r15*8+rsp]
+ mov r10,QWORD[r15*8+rsp]
adc rdx,0
- mov QWORD PTR[((-16))+r15*8+rsp],r13
+ mov QWORD[((-16))+r15*8+rsp],r13
mov r13,rdx
-$L$inner_enter::
+$L$inner_enter:
mul rbx
add r11,rax
- mov rax,QWORD PTR[r15*8+rcx]
+ mov rax,QWORD[r15*8+rcx]
adc rdx,0
add r10,r11
mov r11,rdx
adc r11,0
- lea r15,QWORD PTR[1+r15]
+ lea r15,[1+r15]
mul rbp
cmp r15,r9
- jne $L$inner
+ jne NEAR $L$inner
add r13,rax
- mov rax,QWORD PTR[rsi]
+ mov rax,QWORD[rsi]
adc rdx,0
add r13,r10
- mov r10,QWORD PTR[r15*8+rsp]
+ mov r10,QWORD[r15*8+rsp]
adc rdx,0
- mov QWORD PTR[((-16))+r15*8+rsp],r13
+ mov QWORD[((-16))+r15*8+rsp],r13
mov r13,rdx
xor rdx,rdx
@@ -175,73 +179,72 @@ $L$inner_enter::
adc rdx,0
add r13,r10
adc rdx,0
- mov QWORD PTR[((-8))+r9*8+rsp],r13
- mov QWORD PTR[r9*8+rsp],rdx
+ mov QWORD[((-8))+r9*8+rsp],r13
+ mov QWORD[r9*8+rsp],rdx
- lea r14,QWORD PTR[1+r14]
+ lea r14,[1+r14]
cmp r14,r9
- jb $L$outer
+ jb NEAR $L$outer
xor r14,r14
- mov rax,QWORD PTR[rsp]
- lea rsi,QWORD PTR[rsp]
+ mov rax,QWORD[rsp]
+ lea rsi,[rsp]
mov r15,r9
- jmp $L$sub
+ jmp NEAR $L$sub
ALIGN 16
-$L$sub:: sbb rax,QWORD PTR[r14*8+rcx]
- mov QWORD PTR[r14*8+rdi],rax
- mov rax,QWORD PTR[8+r14*8+rsi]
- lea r14,QWORD PTR[1+r14]
+$L$sub: sbb rax,QWORD[r14*8+rcx]
+ mov QWORD[r14*8+rdi],rax
+ mov rax,QWORD[8+r14*8+rsi]
+ lea r14,[1+r14]
dec r15
- jnz $L$sub
+ jnz NEAR $L$sub
sbb rax,0
xor r14,r14
mov r15,r9
ALIGN 16
-$L$copy::
- mov rsi,QWORD PTR[r14*8+rsp]
- mov rcx,QWORD PTR[r14*8+rdi]
+$L$copy:
+ mov rsi,QWORD[r14*8+rsp]
+ mov rcx,QWORD[r14*8+rdi]
xor rsi,rcx
and rsi,rax
xor rsi,rcx
- mov QWORD PTR[r14*8+rsp],r14
- mov QWORD PTR[r14*8+rdi],rsi
- lea r14,QWORD PTR[1+r14]
+ mov QWORD[r14*8+rsp],r14
+ mov QWORD[r14*8+rdi],rsi
+ lea r14,[1+r14]
sub r15,1
- jnz $L$copy
+ jnz NEAR $L$copy
- mov rsi,QWORD PTR[8+r9*8+rsp]
+ mov rsi,QWORD[8+r9*8+rsp]
mov rax,1
- 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$mul_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[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$mul_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_bn_mul_mont::
-bn_mul_mont ENDP
+$L$SEH_end_bn_mul_mont:
ALIGN 16
-bn_mul4x_mont PROC PRIVATE
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+bn_mul4x_mont:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_bn_mul4x_mont::
+$L$SEH_begin_bn_mul4x_mont:
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]
-$L$mul4x_enter::
+$L$mul4x_enter:
push rbx
push rbp
push r12
@@ -250,19 +253,19 @@ $L$mul4x_enter::
push r15
mov r9d,r9d
- lea r10,QWORD PTR[4+r9]
+ lea r10,[4+r9]
mov r11,rsp
neg r10
- lea rsp,QWORD PTR[r10*8+rsp]
+ lea rsp,[r10*8+rsp]
and rsp,-1024
- mov QWORD PTR[8+r9*8+rsp],r11
-$L$mul4x_body::
- mov QWORD PTR[16+r9*8+rsp],rdi
+ mov QWORD[8+r9*8+rsp],r11
+$L$mul4x_body:
+ mov QWORD[16+r9*8+rsp],rdi
mov r12,rdx
- mov r8,QWORD PTR[r8]
- mov rbx,QWORD PTR[r12]
- mov rax,QWORD PTR[rsi]
+ mov r8,QWORD[r8]
+ mov rbx,QWORD[r12]
+ mov rax,QWORD[rsi]
xor r14,r14
xor r15,r15
@@ -270,144 +273,144 @@ $L$mul4x_body::
mov rbp,r8
mul rbx
mov r10,rax
- mov rax,QWORD PTR[rcx]
+ mov rax,QWORD[rcx]
imul rbp,r10
mov r11,rdx
mul rbp
add r10,rax
- mov rax,QWORD PTR[8+rsi]
+ mov rax,QWORD[8+rsi]
adc rdx,0
mov rdi,rdx
mul rbx
add r11,rax
- mov rax,QWORD PTR[8+rcx]
+ mov rax,QWORD[8+rcx]
adc rdx,0
mov r10,rdx
mul rbp
add rdi,rax
- mov rax,QWORD PTR[16+rsi]
+ mov rax,QWORD[16+rsi]
adc rdx,0
add rdi,r11
- lea r15,QWORD PTR[4+r15]
+ lea r15,[4+r15]
adc rdx,0
- mov QWORD PTR[rsp],rdi
+ mov QWORD[rsp],rdi
mov r13,rdx
- jmp $L$1st4x
+ jmp NEAR $L$1st4x
ALIGN 16
-$L$1st4x::
+$L$1st4x:
mul rbx
add r10,rax
- mov rax,QWORD PTR[((-16))+r15*8+rcx]
+ mov rax,QWORD[((-16))+r15*8+rcx]
adc rdx,0
mov r11,rdx
mul rbp
add r13,rax
- mov rax,QWORD PTR[((-8))+r15*8+rsi]
+ mov rax,QWORD[((-8))+r15*8+rsi]
adc rdx,0
add r13,r10
adc rdx,0
- mov QWORD PTR[((-24))+r15*8+rsp],r13
+ mov QWORD[((-24))+r15*8+rsp],r13
mov rdi,rdx
mul rbx
add r11,rax
- mov rax,QWORD PTR[((-8))+r15*8+rcx]
+ mov rax,QWORD[((-8))+r15*8+rcx]
adc rdx,0
mov r10,rdx
mul rbp
add rdi,rax
- mov rax,QWORD PTR[r15*8+rsi]
+ mov rax,QWORD[r15*8+rsi]
adc rdx,0
add rdi,r11
adc rdx,0
- mov QWORD PTR[((-16))+r15*8+rsp],rdi
+ mov QWORD[((-16))+r15*8+rsp],rdi
mov r13,rdx
mul rbx
add r10,rax
- mov rax,QWORD PTR[r15*8+rcx]
+ mov rax,QWORD[r15*8+rcx]
adc rdx,0
mov r11,rdx
mul rbp
add r13,rax
- mov rax,QWORD PTR[8+r15*8+rsi]
+ mov rax,QWORD[8+r15*8+rsi]
adc rdx,0
add r13,r10
adc rdx,0
- mov QWORD PTR[((-8))+r15*8+rsp],r13
+ mov QWORD[((-8))+r15*8+rsp],r13
mov rdi,rdx
mul rbx
add r11,rax
- mov rax,QWORD PTR[8+r15*8+rcx]
+ mov rax,QWORD[8+r15*8+rcx]
adc rdx,0
- lea r15,QWORD PTR[4+r15]
+ lea r15,[4+r15]
mov r10,rdx
mul rbp
add rdi,rax
- mov rax,QWORD PTR[((-16))+r15*8+rsi]
+ mov rax,QWORD[((-16))+r15*8+rsi]
adc rdx,0
add rdi,r11
adc rdx,0
- mov QWORD PTR[((-32))+r15*8+rsp],rdi
+ mov QWORD[((-32))+r15*8+rsp],rdi
mov r13,rdx
cmp r15,r9
- jb $L$1st4x
+ jb NEAR $L$1st4x
mul rbx
add r10,rax
- mov rax,QWORD PTR[((-16))+r15*8+rcx]
+ mov rax,QWORD[((-16))+r15*8+rcx]
adc rdx,0
mov r11,rdx
mul rbp
add r13,rax
- mov rax,QWORD PTR[((-8))+r15*8+rsi]
+ mov rax,QWORD[((-8))+r15*8+rsi]
adc rdx,0
add r13,r10
adc rdx,0
- mov QWORD PTR[((-24))+r15*8+rsp],r13
+ mov QWORD[((-24))+r15*8+rsp],r13
mov rdi,rdx
mul rbx
add r11,rax
- mov rax,QWORD PTR[((-8))+r15*8+rcx]
+ mov rax,QWORD[((-8))+r15*8+rcx]
adc rdx,0
mov r10,rdx
mul rbp
add rdi,rax
- mov rax,QWORD PTR[rsi]
+ mov rax,QWORD[rsi]
adc rdx,0
add rdi,r11
adc rdx,0
- mov QWORD PTR[((-16))+r15*8+rsp],rdi
+ mov QWORD[((-16))+r15*8+rsp],rdi
mov r13,rdx
xor rdi,rdi
add r13,r10
adc rdi,0
- mov QWORD PTR[((-8))+r15*8+rsp],r13
- mov QWORD PTR[r15*8+rsp],rdi
+ mov QWORD[((-8))+r15*8+rsp],r13
+ mov QWORD[r15*8+rsp],rdi
- lea r14,QWORD PTR[1+r14]
+ lea r14,[1+r14]
ALIGN 4
-$L$outer4x::
- mov rbx,QWORD PTR[r14*8+r12]
+$L$outer4x:
+ mov rbx,QWORD[r14*8+r12]
xor r15,r15
- mov r10,QWORD PTR[rsp]
+ mov r10,QWORD[rsp]
mov rbp,r8
mul rbx
add r10,rax
- mov rax,QWORD PTR[rcx]
+ mov rax,QWORD[rcx]
adc rdx,0
imul rbp,r10
@@ -415,248 +418,247 @@ $L$outer4x::
mul rbp
add r10,rax
- mov rax,QWORD PTR[8+rsi]
+ mov rax,QWORD[8+rsi]
adc rdx,0
mov rdi,rdx
mul rbx
add r11,rax
- mov rax,QWORD PTR[8+rcx]
+ mov rax,QWORD[8+rcx]
adc rdx,0
- add r11,QWORD PTR[8+rsp]
+ add r11,QWORD[8+rsp]
adc rdx,0
mov r10,rdx
mul rbp
add rdi,rax
- mov rax,QWORD PTR[16+rsi]
+ mov rax,QWORD[16+rsi]
adc rdx,0
add rdi,r11
- lea r15,QWORD PTR[4+r15]
+ lea r15,[4+r15]
adc rdx,0
- mov QWORD PTR[rsp],rdi
+ mov QWORD[rsp],rdi
mov r13,rdx
- jmp $L$inner4x
+ jmp NEAR $L$inner4x
ALIGN 16
-$L$inner4x::
+$L$inner4x:
mul rbx
add r10,rax
- mov rax,QWORD PTR[((-16))+r15*8+rcx]
+ mov rax,QWORD[((-16))+r15*8+rcx]
adc rdx,0
- add r10,QWORD PTR[((-16))+r15*8+rsp]
+ add r10,QWORD[((-16))+r15*8+rsp]
adc rdx,0
mov r11,rdx
mul rbp
add r13,rax
- mov rax,QWORD PTR[((-8))+r15*8+rsi]
+ mov rax,QWORD[((-8))+r15*8+rsi]
adc rdx,0
add r13,r10
adc rdx,0
- mov QWORD PTR[((-24))+r15*8+rsp],r13
+ mov QWORD[((-24))+r15*8+rsp],r13
mov rdi,rdx
mul rbx
add r11,rax
- mov rax,QWORD PTR[((-8))+r15*8+rcx]
+ mov rax,QWORD[((-8))+r15*8+rcx]
adc rdx,0
- add r11,QWORD PTR[((-8))+r15*8+rsp]
+ add r11,QWORD[((-8))+r15*8+rsp]
adc rdx,0
mov r10,rdx
mul rbp
add rdi,rax
- mov rax,QWORD PTR[r15*8+rsi]
+ mov rax,QWORD[r15*8+rsi]
adc rdx,0
add rdi,r11
adc rdx,0
- mov QWORD PTR[((-16))+r15*8+rsp],rdi
+ mov QWORD[((-16))+r15*8+rsp],rdi
mov r13,rdx
mul rbx
add r10,rax
- mov rax,QWORD PTR[r15*8+rcx]
+ mov rax,QWORD[r15*8+rcx]
adc rdx,0
- add r10,QWORD PTR[r15*8+rsp]
+ add r10,QWORD[r15*8+rsp]
adc rdx,0
mov r11,rdx
mul rbp
add r13,rax
- mov rax,QWORD PTR[8+r15*8+rsi]
+ mov rax,QWORD[8+r15*8+rsi]
adc rdx,0
add r13,r10
adc rdx,0
- mov QWORD PTR[((-8))+r15*8+rsp],r13
+ mov QWORD[((-8))+r15*8+rsp],r13
mov rdi,rdx
mul rbx
add r11,rax
- mov rax,QWORD PTR[8+r15*8+rcx]
+ mov rax,QWORD[8+r15*8+rcx]
adc rdx,0
- add r11,QWORD PTR[8+r15*8+rsp]
+ add r11,QWORD[8+r15*8+rsp]
adc rdx,0
- lea r15,QWORD PTR[4+r15]
+ lea r15,[4+r15]
mov r10,rdx
mul rbp
add rdi,rax
- mov rax,QWORD PTR[((-16))+r15*8+rsi]
+ mov rax,QWORD[((-16))+r15*8+rsi]
adc rdx,0
add rdi,r11
adc rdx,0
- mov QWORD PTR[((-32))+r15*8+rsp],rdi
+ mov QWORD[((-32))+r15*8+rsp],rdi
mov r13,rdx
cmp r15,r9
- jb $L$inner4x
+ jb NEAR $L$inner4x
mul rbx
add r10,rax
- mov rax,QWORD PTR[((-16))+r15*8+rcx]
+ mov rax,QWORD[((-16))+r15*8+rcx]
adc rdx,0
- add r10,QWORD PTR[((-16))+r15*8+rsp]
+ add r10,QWORD[((-16))+r15*8+rsp]
adc rdx,0
mov r11,rdx
mul rbp
add r13,rax
- mov rax,QWORD PTR[((-8))+r15*8+rsi]
+ mov rax,QWORD[((-8))+r15*8+rsi]
adc rdx,0
add r13,r10
adc rdx,0
- mov QWORD PTR[((-24))+r15*8+rsp],r13
+ mov QWORD[((-24))+r15*8+rsp],r13
mov rdi,rdx
mul rbx
add r11,rax
- mov rax,QWORD PTR[((-8))+r15*8+rcx]
+ mov rax,QWORD[((-8))+r15*8+rcx]
adc rdx,0
- add r11,QWORD PTR[((-8))+r15*8+rsp]
+ add r11,QWORD[((-8))+r15*8+rsp]
adc rdx,0
- lea r14,QWORD PTR[1+r14]
+ lea r14,[1+r14]
mov r10,rdx
mul rbp
add rdi,rax
- mov rax,QWORD PTR[rsi]
+ mov rax,QWORD[rsi]
adc rdx,0
add rdi,r11
adc rdx,0
- mov QWORD PTR[((-16))+r15*8+rsp],rdi
+ mov QWORD[((-16))+r15*8+rsp],rdi
mov r13,rdx
xor rdi,rdi
add r13,r10
adc rdi,0
- add r13,QWORD PTR[r9*8+rsp]
+ add r13,QWORD[r9*8+rsp]
adc rdi,0
- mov QWORD PTR[((-8))+r15*8+rsp],r13
- mov QWORD PTR[r15*8+rsp],rdi
+ mov QWORD[((-8))+r15*8+rsp],r13
+ mov QWORD[r15*8+rsp],rdi
cmp r14,r9
- jb $L$outer4x
- mov rdi,QWORD PTR[16+r9*8+rsp]
- mov rax,QWORD PTR[rsp]
- mov rdx,QWORD PTR[8+rsp]
+ jb NEAR $L$outer4x
+ mov rdi,QWORD[16+r9*8+rsp]
+ mov rax,QWORD[rsp]
+ mov rdx,QWORD[8+rsp]
shr r9,2
- lea rsi,QWORD PTR[rsp]
+ lea rsi,[rsp]
xor r14,r14
- sub rax,QWORD PTR[rcx]
- mov rbx,QWORD PTR[16+rsi]
- mov rbp,QWORD PTR[24+rsi]
- sbb rdx,QWORD PTR[8+rcx]
- lea r15,QWORD PTR[((-1))+r9]
- jmp $L$sub4x
+ sub rax,QWORD[rcx]
+ mov rbx,QWORD[16+rsi]
+ mov rbp,QWORD[24+rsi]
+ sbb rdx,QWORD[8+rcx]
+ lea r15,[((-1))+r9]
+ jmp NEAR $L$sub4x
ALIGN 16
-$L$sub4x::
- mov QWORD PTR[r14*8+rdi],rax
- mov QWORD PTR[8+r14*8+rdi],rdx
- sbb rbx,QWORD PTR[16+r14*8+rcx]
- mov rax,QWORD PTR[32+r14*8+rsi]
- mov rdx,QWORD PTR[40+r14*8+rsi]
- sbb rbp,QWORD PTR[24+r14*8+rcx]
- mov QWORD PTR[16+r14*8+rdi],rbx
- mov QWORD PTR[24+r14*8+rdi],rbp
- sbb rax,QWORD PTR[32+r14*8+rcx]
- mov rbx,QWORD PTR[48+r14*8+rsi]
- mov rbp,QWORD PTR[56+r14*8+rsi]
- sbb rdx,QWORD PTR[40+r14*8+rcx]
- lea r14,QWORD PTR[4+r14]
+$L$sub4x:
+ mov QWORD[r14*8+rdi],rax
+ mov QWORD[8+r14*8+rdi],rdx
+ sbb rbx,QWORD[16+r14*8+rcx]
+ mov rax,QWORD[32+r14*8+rsi]
+ mov rdx,QWORD[40+r14*8+rsi]
+ sbb rbp,QWORD[24+r14*8+rcx]
+ mov QWORD[16+r14*8+rdi],rbx
+ mov QWORD[24+r14*8+rdi],rbp
+ sbb rax,QWORD[32+r14*8+rcx]
+ mov rbx,QWORD[48+r14*8+rsi]
+ mov rbp,QWORD[56+r14*8+rsi]
+ sbb rdx,QWORD[40+r14*8+rcx]
+ lea r14,[4+r14]
dec r15
- jnz $L$sub4x
+ jnz NEAR $L$sub4x
- mov QWORD PTR[r14*8+rdi],rax
- mov rax,QWORD PTR[32+r14*8+rsi]
- sbb rbx,QWORD PTR[16+r14*8+rcx]
- mov QWORD PTR[8+r14*8+rdi],rdx
- sbb rbp,QWORD PTR[24+r14*8+rcx]
- mov QWORD PTR[16+r14*8+rdi],rbx
+ mov QWORD[r14*8+rdi],rax
+ mov rax,QWORD[32+r14*8+rsi]
+ sbb rbx,QWORD[16+r14*8+rcx]
+ mov QWORD[8+r14*8+rdi],rdx
+ sbb rbp,QWORD[24+r14*8+rcx]
+ mov QWORD[16+r14*8+rdi],rbx
sbb rax,0
DB 66h, 48h, 0fh, 6eh, 0c0h
punpcklqdq xmm0,xmm0
- mov QWORD PTR[24+r14*8+rdi],rbp
+ mov QWORD[24+r14*8+rdi],rbp
xor r14,r14
mov r15,r9
pxor xmm5,xmm5
- jmp $L$copy4x
+ jmp NEAR $L$copy4x
ALIGN 16
-$L$copy4x::
- movdqu xmm2,XMMWORD PTR[r14*1+rsp]
- movdqu xmm4,XMMWORD PTR[16+r14*1+rsp]
- movdqu xmm1,XMMWORD PTR[r14*1+rdi]
- movdqu xmm3,XMMWORD PTR[16+r14*1+rdi]
+$L$copy4x:
+ movdqu xmm2,XMMWORD[r14*1+rsp]
+ movdqu xmm4,XMMWORD[16+r14*1+rsp]
+ movdqu xmm1,XMMWORD[r14*1+rdi]
+ movdqu xmm3,XMMWORD[16+r14*1+rdi]
pxor xmm2,xmm1
pxor xmm4,xmm3
pand xmm2,xmm0
pand xmm4,xmm0
pxor xmm2,xmm1
pxor xmm4,xmm3
- movdqu XMMWORD PTR[r14*1+rdi],xmm2
- movdqu XMMWORD PTR[16+r14*1+rdi],xmm4
- movdqa XMMWORD PTR[r14*1+rsp],xmm5
- movdqa XMMWORD PTR[16+r14*1+rsp],xmm5
+ movdqu XMMWORD[r14*1+rdi],xmm2
+ movdqu XMMWORD[16+r14*1+rdi],xmm4
+ movdqa XMMWORD[r14*1+rsp],xmm5
+ movdqa XMMWORD[16+r14*1+rsp],xmm5
- lea r14,QWORD PTR[32+r14]
+ lea r14,[32+r14]
dec r15
- jnz $L$copy4x
+ jnz NEAR $L$copy4x
shl r9,2
- mov rsi,QWORD PTR[8+r9*8+rsp]
+ mov rsi,QWORD[8+r9*8+rsp]
mov rax,1
- 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$mul4x_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[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$mul4x_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_bn_mul4x_mont::
-bn_mul4x_mont ENDP
-EXTERN bn_sqr8x_internal:NEAR
+$L$SEH_end_bn_mul4x_mont:
+EXTERN bn_sqr8x_internal
ALIGN 32
-bn_sqr8x_mont PROC PRIVATE
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+bn_sqr8x_mont:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_bn_sqr8x_mont::
+$L$SEH_begin_bn_sqr8x_mont:
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]
-$L$sqr8x_enter::
+$L$sqr8x_enter:
mov rax,rsp
push rbx
push rbp
@@ -675,54 +677,54 @@ $L$sqr8x_enter::
- lea r11,QWORD PTR[((-64))+r9*4+rsp]
- mov r8,QWORD PTR[r8]
+ lea r11,[((-64))+r9*4+rsp]
+ mov r8,QWORD[r8]
sub r11,rsi
and r11,4095
cmp r10,r11
- jb $L$sqr8x_sp_alt
+ jb NEAR $L$sqr8x_sp_alt
sub rsp,r11
- lea rsp,QWORD PTR[((-64))+r9*4+rsp]
- jmp $L$sqr8x_sp_done
+ lea rsp,[((-64))+r9*4+rsp]
+ jmp NEAR $L$sqr8x_sp_done
ALIGN 32
-$L$sqr8x_sp_alt::
- lea r10,QWORD PTR[((4096-64))+r9*4]
- lea rsp,QWORD PTR[((-64))+r9*4+rsp]
+$L$sqr8x_sp_alt:
+ lea r10,[((4096-64))+r9*4]
+ lea rsp,[((-64))+r9*4+rsp]
sub r11,r10
mov r10,0
cmovc r11,r10
sub rsp,r11
-$L$sqr8x_sp_done::
+$L$sqr8x_sp_done:
and rsp,-64
mov r10,r9
neg r9
- lea r11,QWORD PTR[64+r9*2+rsp]
- mov QWORD PTR[32+rsp],r8
- mov QWORD PTR[40+rsp],rax
-$L$sqr8x_body::
+ lea r11,[64+r9*2+rsp]
+ mov QWORD[32+rsp],r8
+ mov QWORD[40+rsp],rax
+$L$sqr8x_body:
mov rbp,r9
DB 102,73,15,110,211
shr rbp,3+2
- mov eax,DWORD PTR[((OPENSSL_ia32cap_P+8))]
- jmp $L$sqr8x_copy_n
+ mov eax,DWORD[((OPENSSL_ia32cap_P+8))]
+ jmp NEAR $L$sqr8x_copy_n
ALIGN 32
-$L$sqr8x_copy_n::
- movq xmm0,QWORD PTR[rcx]
- movq xmm1,QWORD PTR[8+rcx]
- movq xmm3,QWORD PTR[16+rcx]
- movq xmm4,QWORD PTR[24+rcx]
- lea rcx,QWORD PTR[32+rcx]
- movdqa XMMWORD PTR[r11],xmm0
- movdqa XMMWORD PTR[16+r11],xmm1
- movdqa XMMWORD PTR[32+r11],xmm3
- movdqa XMMWORD PTR[48+r11],xmm4
- lea r11,QWORD PTR[64+r11]
+$L$sqr8x_copy_n:
+ movq xmm0,QWORD[rcx]
+ movq xmm1,QWORD[8+rcx]
+ movq xmm3,QWORD[16+rcx]
+ movq xmm4,QWORD[24+rcx]
+ lea rcx,[32+rcx]
+ movdqa XMMWORD[r11],xmm0
+ movdqa XMMWORD[16+r11],xmm1
+ movdqa XMMWORD[32+r11],xmm3
+ movdqa XMMWORD[48+r11],xmm4
+ lea r11,[64+r11]
dec rbp
- jnz $L$sqr8x_copy_n
+ jnz NEAR $L$sqr8x_copy_n
pxor xmm0,xmm0
DB 102,72,15,110,207
@@ -730,51 +732,50 @@ DB 102,73,15,110,218
call bn_sqr8x_internal
pxor xmm0,xmm0
- lea rax,QWORD PTR[48+rsp]
- lea rdx,QWORD PTR[64+r9*2+rsp]
+ lea rax,[48+rsp]
+ lea rdx,[64+r9*2+rsp]
shr r9,3+2
- mov rsi,QWORD PTR[40+rsp]
- jmp $L$sqr8x_zero
+ mov rsi,QWORD[40+rsp]
+ jmp NEAR $L$sqr8x_zero
ALIGN 32
-$L$sqr8x_zero::
- movdqa XMMWORD PTR[rax],xmm0
- movdqa XMMWORD PTR[16+rax],xmm0
- movdqa XMMWORD PTR[32+rax],xmm0
- movdqa XMMWORD PTR[48+rax],xmm0
- lea rax,QWORD PTR[64+rax]
- movdqa XMMWORD PTR[rdx],xmm0
- movdqa XMMWORD PTR[16+rdx],xmm0
- movdqa XMMWORD PTR[32+rdx],xmm0
- movdqa XMMWORD PTR[48+rdx],xmm0
- lea rdx,QWORD PTR[64+rdx]
+$L$sqr8x_zero:
+ movdqa XMMWORD[rax],xmm0
+ movdqa XMMWORD[16+rax],xmm0
+ movdqa XMMWORD[32+rax],xmm0
+ movdqa XMMWORD[48+rax],xmm0
+ lea rax,[64+rax]
+ movdqa XMMWORD[rdx],xmm0
+ movdqa XMMWORD[16+rdx],xmm0
+ movdqa XMMWORD[32+rdx],xmm0
+ movdqa XMMWORD[48+rdx],xmm0
+ lea rdx,[64+rdx]
dec r9
- jnz $L$sqr8x_zero
+ jnz NEAR $L$sqr8x_zero
mov rax,1
- mov r15,QWORD PTR[((-48))+rsi]
- mov r14,QWORD PTR[((-40))+rsi]
- mov r13,QWORD PTR[((-32))+rsi]
- mov r12,QWORD PTR[((-24))+rsi]
- mov rbp,QWORD PTR[((-16))+rsi]
- mov rbx,QWORD PTR[((-8))+rsi]
- lea rsp,QWORD PTR[rsi]
-$L$sqr8x_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ mov r15,QWORD[((-48))+rsi]
+ mov r14,QWORD[((-40))+rsi]
+ mov r13,QWORD[((-32))+rsi]
+ mov r12,QWORD[((-24))+rsi]
+ mov rbp,QWORD[((-16))+rsi]
+ mov rbx,QWORD[((-8))+rsi]
+ lea rsp,[rsi]
+$L$sqr8x_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_bn_sqr8x_mont::
-bn_sqr8x_mont ENDP
+$L$SEH_end_bn_sqr8x_mont:
DB 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105
DB 112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56
DB 54,95,54,52,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 16
-EXTERN __imp_RtlVirtualUnwind:NEAR
+EXTERN __imp_RtlVirtualUnwind
ALIGN 16
-mul_handler PROC PRIVATE
+mul_handler:
push rsi
push rdi
push rbx
@@ -786,47 +787,47 @@ mul_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 r10,QWORD[192+r8]
+ mov rax,QWORD[8+r10*8+rax]
+ lea rax,[48+rax]
- mov r10,QWORD PTR[192+r8]
- mov rax,QWORD PTR[8+r10*8+rax]
- lea rax,QWORD PTR[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
- 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
+ jmp NEAR $L$common_seh_tail
- jmp $L$common_seh_tail
-mul_handler ENDP
ALIGN 16
-sqr_handler PROC PRIVATE
+sqr_handler:
push rsi
push rdi
push rbx
@@ -838,64 +839,64 @@ sqr_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
-
- mov rax,QWORD PTR[40+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$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]
+ jae NEAR $L$common_seh_tail
+
+ mov rax,QWORD[40+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$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
@@ -909,37 +910,32 @@ $L$common_seh_tail::
pop rdi
pop rsi
DB 0F3h,0C3h ;repret
-sqr_handler ENDP
-.text$ ENDS
-.pdata SEGMENT READONLY ALIGN(4)
+
+section .pdata rdata align=4
ALIGN 4
- DD imagerel $L$SEH_begin_bn_mul_mont
- DD imagerel $L$SEH_end_bn_mul_mont
- DD imagerel $L$SEH_info_bn_mul_mont
-
- DD imagerel $L$SEH_begin_bn_mul4x_mont
- DD imagerel $L$SEH_end_bn_mul4x_mont
- DD imagerel $L$SEH_info_bn_mul4x_mont
-
- DD imagerel $L$SEH_begin_bn_sqr8x_mont
- DD imagerel $L$SEH_end_bn_sqr8x_mont
- DD imagerel $L$SEH_info_bn_sqr8x_mont
-.pdata ENDS
-.xdata SEGMENT READONLY ALIGN(8)
+ DD $L$SEH_begin_bn_mul_mont wrt ..imagebase
+ DD $L$SEH_end_bn_mul_mont wrt ..imagebase
+ DD $L$SEH_info_bn_mul_mont wrt ..imagebase
+
+ DD $L$SEH_begin_bn_mul4x_mont wrt ..imagebase
+ DD $L$SEH_end_bn_mul4x_mont wrt ..imagebase
+ DD $L$SEH_info_bn_mul4x_mont wrt ..imagebase
+
+ DD $L$SEH_begin_bn_sqr8x_mont wrt ..imagebase
+ DD $L$SEH_end_bn_sqr8x_mont wrt ..imagebase
+ DD $L$SEH_info_bn_sqr8x_mont wrt ..imagebase
+section .xdata rdata align=8
ALIGN 8
-$L$SEH_info_bn_mul_mont::
+$L$SEH_info_bn_mul_mont:
DB 9,0,0,0
- DD imagerel mul_handler
- DD imagerel $L$mul_body,imagerel $L$mul_epilogue
-$L$SEH_info_bn_mul4x_mont::
+ DD mul_handler wrt ..imagebase
+ DD $L$mul_body wrt ..imagebase,$L$mul_epilogue wrt ..imagebase
+$L$SEH_info_bn_mul4x_mont:
DB 9,0,0,0
- DD imagerel mul_handler
- DD imagerel $L$mul4x_body,imagerel $L$mul4x_epilogue
-$L$SEH_info_bn_sqr8x_mont::
+ DD mul_handler wrt ..imagebase
+ DD $L$mul4x_body wrt ..imagebase,$L$mul4x_epilogue wrt ..imagebase
+$L$SEH_info_bn_sqr8x_mont:
DB 9,0,0,0
- DD imagerel sqr_handler
- DD imagerel $L$sqr8x_body,imagerel $L$sqr8x_epilogue
-
-.xdata ENDS
-END
+ DD sqr_handler wrt ..imagebase
+ DD $L$sqr8x_body wrt ..imagebase,$L$sqr8x_epilogue wrt ..imagebase
diff --git a/win-x86_64/crypto/bn/x86_64-mont5.asm b/win-x86_64/crypto/bn/x86_64-mont5.asm
index 90c6100..284318a 100644
--- a/win-x86_64/crypto/bn/x86_64-mont5.asm
+++ b/win-x86_64/crypto/bn/x86_64-mont5.asm
@@ -1,95 +1,99 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
-EXTERN OPENSSL_ia32cap_P:NEAR
-PUBLIC bn_mul_mont_gather5
+EXTERN OPENSSL_ia32cap_P
+
+global bn_mul_mont_gather5
ALIGN 64
-bn_mul_mont_gather5 PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+bn_mul_mont_gather5:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_bn_mul_mont_gather5::
+$L$SEH_begin_bn_mul_mont_gather5:
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 r9d,7
- jnz $L$mul_enter
- jmp $L$mul4x_enter
+ jnz NEAR $L$mul_enter
+ jmp NEAR $L$mul4x_enter
ALIGN 16
-$L$mul_enter::
+$L$mul_enter:
mov r9d,r9d
mov rax,rsp
- mov r10d,DWORD PTR[56+rsp]
+ mov r10d,DWORD[56+rsp]
push rbx
push rbp
push r12
push r13
push r14
push r15
- lea rsp,QWORD PTR[((-40))+rsp]
- movaps XMMWORD PTR[rsp],xmm6
- movaps XMMWORD PTR[16+rsp],xmm7
- lea r11,QWORD PTR[2+r9]
+ lea rsp,[((-40))+rsp]
+ movaps XMMWORD[rsp],xmm6
+ movaps XMMWORD[16+rsp],xmm7
+ lea r11,[2+r9]
neg r11
- lea rsp,QWORD PTR[r11*8+rsp]
+ lea rsp,[r11*8+rsp]
and rsp,-1024
- mov QWORD PTR[8+r9*8+rsp],rax
-$L$mul_body::
+ mov QWORD[8+r9*8+rsp],rax
+$L$mul_body:
mov r12,rdx
mov r11,r10
shr r10,3
and r11,7
not r10
- lea rax,QWORD PTR[$L$magic_masks]
+ lea rax,[$L$magic_masks]
and r10,3
- lea r12,QWORD PTR[96+r11*8+r12]
- movq xmm4,QWORD PTR[r10*8+rax]
- movq xmm5,QWORD PTR[8+r10*8+rax]
- movq xmm6,QWORD PTR[16+r10*8+rax]
- movq xmm7,QWORD PTR[24+r10*8+rax]
-
- movq xmm0,QWORD PTR[(((-96)))+r12]
- movq xmm1,QWORD PTR[((-32))+r12]
+ lea r12,[96+r11*8+r12]
+ movq xmm4,QWORD[r10*8+rax]
+ movq xmm5,QWORD[8+r10*8+rax]
+ movq xmm6,QWORD[16+r10*8+rax]
+ movq xmm7,QWORD[24+r10*8+rax]
+
+ movq xmm0,QWORD[(((-96)))+r12]
+ movq xmm1,QWORD[((-32))+r12]
pand xmm0,xmm4
- movq xmm2,QWORD PTR[32+r12]
+ movq xmm2,QWORD[32+r12]
pand xmm1,xmm5
- movq xmm3,QWORD PTR[96+r12]
+ movq xmm3,QWORD[96+r12]
pand xmm2,xmm6
por xmm0,xmm1
pand xmm3,xmm7
por xmm0,xmm2
- lea r12,QWORD PTR[256+r12]
+ lea r12,[256+r12]
por xmm0,xmm3
DB 102,72,15,126,195
- mov r8,QWORD PTR[r8]
- mov rax,QWORD PTR[rsi]
+ mov r8,QWORD[r8]
+ mov rax,QWORD[rsi]
xor r14,r14
xor r15,r15
- movq xmm0,QWORD PTR[(((-96)))+r12]
- movq xmm1,QWORD PTR[((-32))+r12]
+ movq xmm0,QWORD[(((-96)))+r12]
+ movq xmm1,QWORD[((-32))+r12]
pand xmm0,xmm4
- movq xmm2,QWORD PTR[32+r12]
+ movq xmm2,QWORD[32+r12]
pand xmm1,xmm5
mov rbp,r8
mul rbx
mov r10,rax
- mov rax,QWORD PTR[rcx]
+ mov rax,QWORD[rcx]
- movq xmm3,QWORD PTR[96+r12]
+ movq xmm3,QWORD[96+r12]
pand xmm2,xmm6
por xmm0,xmm1
pand xmm3,xmm7
@@ -98,78 +102,78 @@ DB 102,72,15,126,195
mov r11,rdx
por xmm0,xmm2
- lea r12,QWORD PTR[256+r12]
+ lea r12,[256+r12]
por xmm0,xmm3
mul rbp
add r10,rax
- mov rax,QWORD PTR[8+rsi]
+ mov rax,QWORD[8+rsi]
adc rdx,0
mov r13,rdx
- lea r15,QWORD PTR[1+r15]
- jmp $L$1st_enter
+ lea r15,[1+r15]
+ jmp NEAR $L$1st_enter
ALIGN 16
-$L$1st::
+$L$1st:
add r13,rax
- mov rax,QWORD PTR[r15*8+rsi]
+ mov rax,QWORD[r15*8+rsi]
adc rdx,0
add r13,r11
mov r11,r10
adc rdx,0
- mov QWORD PTR[((-16))+r15*8+rsp],r13
+ mov QWORD[((-16))+r15*8+rsp],r13
mov r13,rdx
-$L$1st_enter::
+$L$1st_enter:
mul rbx
add r11,rax
- mov rax,QWORD PTR[r15*8+rcx]
+ mov rax,QWORD[r15*8+rcx]
adc rdx,0
- lea r15,QWORD PTR[1+r15]
+ lea r15,[1+r15]
mov r10,rdx
mul rbp
cmp r15,r9
- jne $L$1st
+ jne NEAR $L$1st
DB 102,72,15,126,195
add r13,rax
- mov rax,QWORD PTR[rsi]
+ mov rax,QWORD[rsi]
adc rdx,0
add r13,r11
adc rdx,0
- mov QWORD PTR[((-16))+r15*8+rsp],r13
+ mov QWORD[((-16))+r15*8+rsp],r13
mov r13,rdx
mov r11,r10
xor rdx,rdx
add r13,r11
adc rdx,0
- mov QWORD PTR[((-8))+r9*8+rsp],r13
- mov QWORD PTR[r9*8+rsp],rdx
+ mov QWORD[((-8))+r9*8+rsp],r13
+ mov QWORD[r9*8+rsp],rdx
- lea r14,QWORD PTR[1+r14]
- jmp $L$outer
+ lea r14,[1+r14]
+ jmp NEAR $L$outer
ALIGN 16
-$L$outer::
+$L$outer:
xor r15,r15
mov rbp,r8
- mov r10,QWORD PTR[rsp]
+ mov r10,QWORD[rsp]
- movq xmm0,QWORD PTR[(((-96)))+r12]
- movq xmm1,QWORD PTR[((-32))+r12]
+ movq xmm0,QWORD[(((-96)))+r12]
+ movq xmm1,QWORD[((-32))+r12]
pand xmm0,xmm4
- movq xmm2,QWORD PTR[32+r12]
+ movq xmm2,QWORD[32+r12]
pand xmm1,xmm5
mul rbx
add r10,rax
- mov rax,QWORD PTR[rcx]
+ mov rax,QWORD[rcx]
adc rdx,0
- movq xmm3,QWORD PTR[96+r12]
+ movq xmm3,QWORD[96+r12]
pand xmm2,xmm6
por xmm0,xmm1
pand xmm3,xmm7
@@ -178,53 +182,53 @@ $L$outer::
mov r11,rdx
por xmm0,xmm2
- lea r12,QWORD PTR[256+r12]
+ lea r12,[256+r12]
por xmm0,xmm3
mul rbp
add r10,rax
- mov rax,QWORD PTR[8+rsi]
+ mov rax,QWORD[8+rsi]
adc rdx,0
- mov r10,QWORD PTR[8+rsp]
+ mov r10,QWORD[8+rsp]
mov r13,rdx
- lea r15,QWORD PTR[1+r15]
- jmp $L$inner_enter
+ lea r15,[1+r15]
+ jmp NEAR $L$inner_enter
ALIGN 16
-$L$inner::
+$L$inner:
add r13,rax
- mov rax,QWORD PTR[r15*8+rsi]
+ mov rax,QWORD[r15*8+rsi]
adc rdx,0
add r13,r10
- mov r10,QWORD PTR[r15*8+rsp]
+ mov r10,QWORD[r15*8+rsp]
adc rdx,0
- mov QWORD PTR[((-16))+r15*8+rsp],r13
+ mov QWORD[((-16))+r15*8+rsp],r13
mov r13,rdx
-$L$inner_enter::
+$L$inner_enter:
mul rbx
add r11,rax
- mov rax,QWORD PTR[r15*8+rcx]
+ mov rax,QWORD[r15*8+rcx]
adc rdx,0
add r10,r11
mov r11,rdx
adc r11,0
- lea r15,QWORD PTR[1+r15]
+ lea r15,[1+r15]
mul rbp
cmp r15,r9
- jne $L$inner
+ jne NEAR $L$inner
DB 102,72,15,126,195
add r13,rax
- mov rax,QWORD PTR[rsi]
+ mov rax,QWORD[rsi]
adc rdx,0
add r13,r10
- mov r10,QWORD PTR[r15*8+rsp]
+ mov r10,QWORD[r15*8+rsp]
adc rdx,0
- mov QWORD PTR[((-16))+r15*8+rsp],r13
+ mov QWORD[((-16))+r15*8+rsp],r13
mov r13,rdx
xor rdx,rdx
@@ -232,76 +236,75 @@ DB 102,72,15,126,195
adc rdx,0
add r13,r10
adc rdx,0
- mov QWORD PTR[((-8))+r9*8+rsp],r13
- mov QWORD PTR[r9*8+rsp],rdx
+ mov QWORD[((-8))+r9*8+rsp],r13
+ mov QWORD[r9*8+rsp],rdx
- lea r14,QWORD PTR[1+r14]
+ lea r14,[1+r14]
cmp r14,r9
- jb $L$outer
+ jb NEAR $L$outer
xor r14,r14
- mov rax,QWORD PTR[rsp]
- lea rsi,QWORD PTR[rsp]
+ mov rax,QWORD[rsp]
+ lea rsi,[rsp]
mov r15,r9
- jmp $L$sub
+ jmp NEAR $L$sub
ALIGN 16
-$L$sub:: sbb rax,QWORD PTR[r14*8+rcx]
- mov QWORD PTR[r14*8+rdi],rax
- mov rax,QWORD PTR[8+r14*8+rsi]
- lea r14,QWORD PTR[1+r14]
+$L$sub: sbb rax,QWORD[r14*8+rcx]
+ mov QWORD[r14*8+rdi],rax
+ mov rax,QWORD[8+r14*8+rsi]
+ lea r14,[1+r14]
dec r15
- jnz $L$sub
+ jnz NEAR $L$sub
sbb rax,0
xor r14,r14
mov r15,r9
ALIGN 16
-$L$copy::
- mov rsi,QWORD PTR[r14*8+rsp]
- mov rcx,QWORD PTR[r14*8+rdi]
+$L$copy:
+ mov rsi,QWORD[r14*8+rsp]
+ mov rcx,QWORD[r14*8+rdi]
xor rsi,rcx
and rsi,rax
xor rsi,rcx
- mov QWORD PTR[r14*8+rsp],r14
- mov QWORD PTR[r14*8+rdi],rsi
- lea r14,QWORD PTR[1+r14]
+ mov QWORD[r14*8+rsp],r14
+ mov QWORD[r14*8+rdi],rsi
+ lea r14,[1+r14]
sub r15,1
- jnz $L$copy
+ jnz NEAR $L$copy
- mov rsi,QWORD PTR[8+r9*8+rsp]
+ mov rsi,QWORD[8+r9*8+rsp]
mov rax,1
- movaps xmm6,XMMWORD PTR[((-88))+rsi]
- movaps xmm7,XMMWORD PTR[((-72))+rsi]
- mov r15,QWORD PTR[((-48))+rsi]
- mov r14,QWORD PTR[((-40))+rsi]
- mov r13,QWORD PTR[((-32))+rsi]
- mov r12,QWORD PTR[((-24))+rsi]
- mov rbp,QWORD PTR[((-16))+rsi]
- mov rbx,QWORD PTR[((-8))+rsi]
- lea rsp,QWORD PTR[rsi]
-$L$mul_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ movaps xmm6,XMMWORD[((-88))+rsi]
+ movaps xmm7,XMMWORD[((-72))+rsi]
+ mov r15,QWORD[((-48))+rsi]
+ mov r14,QWORD[((-40))+rsi]
+ mov r13,QWORD[((-32))+rsi]
+ mov r12,QWORD[((-24))+rsi]
+ mov rbp,QWORD[((-16))+rsi]
+ mov rbx,QWORD[((-8))+rsi]
+ lea rsp,[rsi]
+$L$mul_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_bn_mul_mont_gather5::
-bn_mul_mont_gather5 ENDP
+$L$SEH_end_bn_mul_mont_gather5:
ALIGN 32
-bn_mul4x_mont_gather5 PROC PRIVATE
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+bn_mul4x_mont_gather5:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_bn_mul4x_mont_gather5::
+$L$SEH_begin_bn_mul4x_mont_gather5:
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]
-$L$mul4x_enter::
-DB 067h
+$L$mul4x_enter:
+DB 0x67
mov rax,rsp
push rbx
push rbp
@@ -309,10 +312,10 @@ DB 067h
push r13
push r14
push r15
- lea rsp,QWORD PTR[((-40))+rsp]
- movaps XMMWORD PTR[rsp],xmm6
- movaps XMMWORD PTR[16+rsp],xmm7
-DB 067h
+ lea rsp,[((-40))+rsp]
+ movaps XMMWORD[rsp],xmm6
+ movaps XMMWORD[16+rsp],xmm7
+DB 0x67
mov r10d,r9d
shl r9d,3
shl r10d,3+2
@@ -325,107 +328,106 @@ DB 067h
- lea r11,QWORD PTR[((-64))+r9*2+rsp]
+ lea r11,[((-64))+r9*2+rsp]
sub r11,rsi
and r11,4095
cmp r10,r11
- jb $L$mul4xsp_alt
+ jb NEAR $L$mul4xsp_alt
sub rsp,r11
- lea rsp,QWORD PTR[((-64))+r9*2+rsp]
- jmp $L$mul4xsp_done
+ lea rsp,[((-64))+r9*2+rsp]
+ jmp NEAR $L$mul4xsp_done
ALIGN 32
-$L$mul4xsp_alt::
- lea r10,QWORD PTR[((4096-64))+r9*2]
- lea rsp,QWORD PTR[((-64))+r9*2+rsp]
+$L$mul4xsp_alt:
+ lea r10,[((4096-64))+r9*2]
+ lea rsp,[((-64))+r9*2+rsp]
sub r11,r10
mov r10,0
cmovc r11,r10
sub rsp,r11
-$L$mul4xsp_done::
+$L$mul4xsp_done:
and rsp,-64
neg r9
- mov QWORD PTR[40+rsp],rax
-$L$mul4x_body::
+ mov QWORD[40+rsp],rax
+$L$mul4x_body:
call mul4x_internal
- mov rsi,QWORD PTR[40+rsp]
+ mov rsi,QWORD[40+rsp]
mov rax,1
- movaps xmm6,XMMWORD PTR[((-88))+rsi]
- movaps xmm7,XMMWORD PTR[((-72))+rsi]
- mov r15,QWORD PTR[((-48))+rsi]
- mov r14,QWORD PTR[((-40))+rsi]
- mov r13,QWORD PTR[((-32))+rsi]
- mov r12,QWORD PTR[((-24))+rsi]
- mov rbp,QWORD PTR[((-16))+rsi]
- mov rbx,QWORD PTR[((-8))+rsi]
- lea rsp,QWORD PTR[rsi]
-$L$mul4x_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ movaps xmm6,XMMWORD[((-88))+rsi]
+ movaps xmm7,XMMWORD[((-72))+rsi]
+ mov r15,QWORD[((-48))+rsi]
+ mov r14,QWORD[((-40))+rsi]
+ mov r13,QWORD[((-32))+rsi]
+ mov r12,QWORD[((-24))+rsi]
+ mov rbp,QWORD[((-16))+rsi]
+ mov rbx,QWORD[((-8))+rsi]
+ lea rsp,[rsi]
+$L$mul4x_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_bn_mul4x_mont_gather5::
-bn_mul4x_mont_gather5 ENDP
+$L$SEH_end_bn_mul4x_mont_gather5:
ALIGN 32
-mul4x_internal PROC PRIVATE
+mul4x_internal:
shl r9,5
- mov r10d,DWORD PTR[56+rax]
- lea r13,QWORD PTR[256+r9*1+rdx]
+ mov r10d,DWORD[56+rax]
+ lea r13,[256+r9*1+rdx]
shr r9,5
mov r11,r10
shr r10,3
and r11,7
not r10
- lea rax,QWORD PTR[$L$magic_masks]
+ lea rax,[$L$magic_masks]
and r10,3
- lea r12,QWORD PTR[96+r11*8+rdx]
- movq xmm4,QWORD PTR[r10*8+rax]
- movq xmm5,QWORD PTR[8+r10*8+rax]
+ lea r12,[96+r11*8+rdx]
+ movq xmm4,QWORD[r10*8+rax]
+ movq xmm5,QWORD[8+r10*8+rax]
add r11,7
- movq xmm6,QWORD PTR[16+r10*8+rax]
- movq xmm7,QWORD PTR[24+r10*8+rax]
+ movq xmm6,QWORD[16+r10*8+rax]
+ movq xmm7,QWORD[24+r10*8+rax]
and r11,7
- movq xmm0,QWORD PTR[(((-96)))+r12]
- lea r14,QWORD PTR[256+r12]
- movq xmm1,QWORD PTR[((-32))+r12]
+ movq xmm0,QWORD[(((-96)))+r12]
+ lea r14,[256+r12]
+ movq xmm1,QWORD[((-32))+r12]
pand xmm0,xmm4
- movq xmm2,QWORD PTR[32+r12]
+ movq xmm2,QWORD[32+r12]
pand xmm1,xmm5
- movq xmm3,QWORD PTR[96+r12]
+ movq xmm3,QWORD[96+r12]
pand xmm2,xmm6
-DB 067h
+DB 0x67
por xmm0,xmm1
- movq xmm1,QWORD PTR[((-96))+r14]
-DB 067h
+ movq xmm1,QWORD[((-96))+r14]
+DB 0x67
pand xmm3,xmm7
-DB 067h
+DB 0x67
por xmm0,xmm2
- movq xmm2,QWORD PTR[((-32))+r14]
-DB 067h
+ movq xmm2,QWORD[((-32))+r14]
+DB 0x67
pand xmm1,xmm4
-DB 067h
+DB 0x67
por xmm0,xmm3
- movq xmm3,QWORD PTR[32+r14]
+ movq xmm3,QWORD[32+r14]
DB 102,72,15,126,195
- movq xmm0,QWORD PTR[96+r14]
- mov QWORD PTR[((16+8))+rsp],r13
- mov QWORD PTR[((56+8))+rsp],rdi
+ movq xmm0,QWORD[96+r14]
+ mov QWORD[((16+8))+rsp],r13
+ mov QWORD[((56+8))+rsp],rdi
- mov r8,QWORD PTR[r8]
- mov rax,QWORD PTR[rsi]
- lea rsi,QWORD PTR[r9*1+rsi]
+ mov r8,QWORD[r8]
+ mov rax,QWORD[rsi]
+ lea rsi,[r9*1+rsi]
neg r9
mov rbp,r8
mul rbx
mov r10,rax
- mov rax,QWORD PTR[rcx]
+ mov rax,QWORD[rcx]
pand xmm2,xmm5
pand xmm3,xmm6
@@ -439,349 +441,349 @@ DB 102,72,15,126,195
- lea r14,QWORD PTR[((64+8))+r11*8+rsp]
+ lea r14,[((64+8))+r11*8+rsp]
mov r11,rdx
pand xmm0,xmm7
por xmm1,xmm3
- lea r12,QWORD PTR[512+r12]
+ lea r12,[512+r12]
por xmm0,xmm1
mul rbp
add r10,rax
- mov rax,QWORD PTR[8+r9*1+rsi]
+ mov rax,QWORD[8+r9*1+rsi]
adc rdx,0
mov rdi,rdx
mul rbx
add r11,rax
- mov rax,QWORD PTR[16+rcx]
+ mov rax,QWORD[16+rcx]
adc rdx,0
mov r10,rdx
mul rbp
add rdi,rax
- mov rax,QWORD PTR[16+r9*1+rsi]
+ mov rax,QWORD[16+r9*1+rsi]
adc rdx,0
add rdi,r11
- lea r15,QWORD PTR[32+r9]
- lea rcx,QWORD PTR[64+rcx]
+ lea r15,[32+r9]
+ lea rcx,[64+rcx]
adc rdx,0
- mov QWORD PTR[r14],rdi
+ mov QWORD[r14],rdi
mov r13,rdx
- jmp $L$1st4x
+ jmp NEAR $L$1st4x
ALIGN 32
-$L$1st4x::
+$L$1st4x:
mul rbx
add r10,rax
- mov rax,QWORD PTR[((-32))+rcx]
- lea r14,QWORD PTR[32+r14]
+ mov rax,QWORD[((-32))+rcx]
+ lea r14,[32+r14]
adc rdx,0
mov r11,rdx
mul rbp
add r13,rax
- mov rax,QWORD PTR[((-8))+r15*1+rsi]
+ mov rax,QWORD[((-8))+r15*1+rsi]
adc rdx,0
add r13,r10
adc rdx,0
- mov QWORD PTR[((-24))+r14],r13
+ mov QWORD[((-24))+r14],r13
mov rdi,rdx
mul rbx
add r11,rax
- mov rax,QWORD PTR[((-16))+rcx]
+ mov rax,QWORD[((-16))+rcx]
adc rdx,0
mov r10,rdx
mul rbp
add rdi,rax
- mov rax,QWORD PTR[r15*1+rsi]
+ mov rax,QWORD[r15*1+rsi]
adc rdx,0
add rdi,r11
adc rdx,0
- mov QWORD PTR[((-16))+r14],rdi
+ mov QWORD[((-16))+r14],rdi
mov r13,rdx
mul rbx
add r10,rax
- mov rax,QWORD PTR[rcx]
+ mov rax,QWORD[rcx]
adc rdx,0
mov r11,rdx
mul rbp
add r13,rax
- mov rax,QWORD PTR[8+r15*1+rsi]
+ mov rax,QWORD[8+r15*1+rsi]
adc rdx,0
add r13,r10
adc rdx,0
- mov QWORD PTR[((-8))+r14],r13
+ mov QWORD[((-8))+r14],r13
mov rdi,rdx
mul rbx
add r11,rax
- mov rax,QWORD PTR[16+rcx]
+ mov rax,QWORD[16+rcx]
adc rdx,0
mov r10,rdx
mul rbp
add rdi,rax
- mov rax,QWORD PTR[16+r15*1+rsi]
+ mov rax,QWORD[16+r15*1+rsi]
adc rdx,0
add rdi,r11
- lea rcx,QWORD PTR[64+rcx]
+ lea rcx,[64+rcx]
adc rdx,0
- mov QWORD PTR[r14],rdi
+ mov QWORD[r14],rdi
mov r13,rdx
add r15,32
- jnz $L$1st4x
+ jnz NEAR $L$1st4x
mul rbx
add r10,rax
- mov rax,QWORD PTR[((-32))+rcx]
- lea r14,QWORD PTR[32+r14]
+ mov rax,QWORD[((-32))+rcx]
+ lea r14,[32+r14]
adc rdx,0
mov r11,rdx
mul rbp
add r13,rax
- mov rax,QWORD PTR[((-8))+rsi]
+ mov rax,QWORD[((-8))+rsi]
adc rdx,0
add r13,r10
adc rdx,0
- mov QWORD PTR[((-24))+r14],r13
+ mov QWORD[((-24))+r14],r13
mov rdi,rdx
mul rbx
add r11,rax
- mov rax,QWORD PTR[((-16))+rcx]
+ mov rax,QWORD[((-16))+rcx]
adc rdx,0
mov r10,rdx
mul rbp
add rdi,rax
- mov rax,QWORD PTR[r9*1+rsi]
+ mov rax,QWORD[r9*1+rsi]
adc rdx,0
add rdi,r11
adc rdx,0
- mov QWORD PTR[((-16))+r14],rdi
+ mov QWORD[((-16))+r14],rdi
mov r13,rdx
DB 102,72,15,126,195
- lea rcx,QWORD PTR[r9*2+rcx]
+ lea rcx,[r9*2+rcx]
xor rdi,rdi
add r13,r10
adc rdi,0
- mov QWORD PTR[((-8))+r14],r13
+ mov QWORD[((-8))+r14],r13
- jmp $L$outer4x
+ jmp NEAR $L$outer4x
ALIGN 32
-$L$outer4x::
- mov r10,QWORD PTR[r9*1+r14]
+$L$outer4x:
+ mov r10,QWORD[r9*1+r14]
mov rbp,r8
mul rbx
add r10,rax
- mov rax,QWORD PTR[rcx]
+ mov rax,QWORD[rcx]
adc rdx,0
- movq xmm0,QWORD PTR[(((-96)))+r12]
- movq xmm1,QWORD PTR[((-32))+r12]
+ movq xmm0,QWORD[(((-96)))+r12]
+ movq xmm1,QWORD[((-32))+r12]
pand xmm0,xmm4
- movq xmm2,QWORD PTR[32+r12]
+ movq xmm2,QWORD[32+r12]
pand xmm1,xmm5
- movq xmm3,QWORD PTR[96+r12]
+ movq xmm3,QWORD[96+r12]
imul rbp,r10
-DB 067h
+DB 0x67
mov r11,rdx
- mov QWORD PTR[r14],rdi
+ mov QWORD[r14],rdi
pand xmm2,xmm6
por xmm0,xmm1
pand xmm3,xmm7
por xmm0,xmm2
- lea r14,QWORD PTR[r9*1+r14]
- lea r12,QWORD PTR[256+r12]
+ lea r14,[r9*1+r14]
+ lea r12,[256+r12]
por xmm0,xmm3
mul rbp
add r10,rax
- mov rax,QWORD PTR[8+r9*1+rsi]
+ mov rax,QWORD[8+r9*1+rsi]
adc rdx,0
mov rdi,rdx
mul rbx
add r11,rax
- mov rax,QWORD PTR[16+rcx]
+ mov rax,QWORD[16+rcx]
adc rdx,0
- add r11,QWORD PTR[8+r14]
+ add r11,QWORD[8+r14]
adc rdx,0
mov r10,rdx
mul rbp
add rdi,rax
- mov rax,QWORD PTR[16+r9*1+rsi]
+ mov rax,QWORD[16+r9*1+rsi]
adc rdx,0
add rdi,r11
- lea r15,QWORD PTR[32+r9]
- lea rcx,QWORD PTR[64+rcx]
+ lea r15,[32+r9]
+ lea rcx,[64+rcx]
adc rdx,0
mov r13,rdx
- jmp $L$inner4x
+ jmp NEAR $L$inner4x
ALIGN 32
-$L$inner4x::
+$L$inner4x:
mul rbx
add r10,rax
- mov rax,QWORD PTR[((-32))+rcx]
+ mov rax,QWORD[((-32))+rcx]
adc rdx,0
- add r10,QWORD PTR[16+r14]
- lea r14,QWORD PTR[32+r14]
+ add r10,QWORD[16+r14]
+ lea r14,[32+r14]
adc rdx,0
mov r11,rdx
mul rbp
add r13,rax
- mov rax,QWORD PTR[((-8))+r15*1+rsi]
+ mov rax,QWORD[((-8))+r15*1+rsi]
adc rdx,0
add r13,r10
adc rdx,0
- mov QWORD PTR[((-32))+r14],rdi
+ mov QWORD[((-32))+r14],rdi
mov rdi,rdx
mul rbx
add r11,rax
- mov rax,QWORD PTR[((-16))+rcx]
+ mov rax,QWORD[((-16))+rcx]
adc rdx,0
- add r11,QWORD PTR[((-8))+r14]
+ add r11,QWORD[((-8))+r14]
adc rdx,0
mov r10,rdx
mul rbp
add rdi,rax
- mov rax,QWORD PTR[r15*1+rsi]
+ mov rax,QWORD[r15*1+rsi]
adc rdx,0
add rdi,r11
adc rdx,0
- mov QWORD PTR[((-24))+r14],r13
+ mov QWORD[((-24))+r14],r13
mov r13,rdx
mul rbx
add r10,rax
- mov rax,QWORD PTR[rcx]
+ mov rax,QWORD[rcx]
adc rdx,0
- add r10,QWORD PTR[r14]
+ add r10,QWORD[r14]
adc rdx,0
mov r11,rdx
mul rbp
add r13,rax
- mov rax,QWORD PTR[8+r15*1+rsi]
+ mov rax,QWORD[8+r15*1+rsi]
adc rdx,0
add r13,r10
adc rdx,0
- mov QWORD PTR[((-16))+r14],rdi
+ mov QWORD[((-16))+r14],rdi
mov rdi,rdx
mul rbx
add r11,rax
- mov rax,QWORD PTR[16+rcx]
+ mov rax,QWORD[16+rcx]
adc rdx,0
- add r11,QWORD PTR[8+r14]
+ add r11,QWORD[8+r14]
adc rdx,0
mov r10,rdx
mul rbp
add rdi,rax
- mov rax,QWORD PTR[16+r15*1+rsi]
+ mov rax,QWORD[16+r15*1+rsi]
adc rdx,0
add rdi,r11
- lea rcx,QWORD PTR[64+rcx]
+ lea rcx,[64+rcx]
adc rdx,0
- mov QWORD PTR[((-8))+r14],r13
+ mov QWORD[((-8))+r14],r13
mov r13,rdx
add r15,32
- jnz $L$inner4x
+ jnz NEAR $L$inner4x
mul rbx
add r10,rax
- mov rax,QWORD PTR[((-32))+rcx]
+ mov rax,QWORD[((-32))+rcx]
adc rdx,0
- add r10,QWORD PTR[16+r14]
- lea r14,QWORD PTR[32+r14]
+ add r10,QWORD[16+r14]
+ lea r14,[32+r14]
adc rdx,0
mov r11,rdx
mul rbp
add r13,rax
- mov rax,QWORD PTR[((-8))+rsi]
+ mov rax,QWORD[((-8))+rsi]
adc rdx,0
add r13,r10
adc rdx,0
- mov QWORD PTR[((-32))+r14],rdi
+ mov QWORD[((-32))+r14],rdi
mov rdi,rdx
mul rbx
add r11,rax
mov rax,rbp
- mov rbp,QWORD PTR[((-16))+rcx]
+ mov rbp,QWORD[((-16))+rcx]
adc rdx,0
- add r11,QWORD PTR[((-8))+r14]
+ add r11,QWORD[((-8))+r14]
adc rdx,0
mov r10,rdx
mul rbp
add rdi,rax
- mov rax,QWORD PTR[r9*1+rsi]
+ mov rax,QWORD[r9*1+rsi]
adc rdx,0
add rdi,r11
adc rdx,0
- mov QWORD PTR[((-24))+r14],r13
+ mov QWORD[((-24))+r14],r13
mov r13,rdx
DB 102,72,15,126,195
- mov QWORD PTR[((-16))+r14],rdi
- lea rcx,QWORD PTR[r9*2+rcx]
+ mov QWORD[((-16))+r14],rdi
+ lea rcx,[r9*2+rcx]
xor rdi,rdi
add r13,r10
adc rdi,0
- add r13,QWORD PTR[r14]
+ add r13,QWORD[r14]
adc rdi,0
- mov QWORD PTR[((-8))+r14],r13
+ mov QWORD[((-8))+r14],r13
- cmp r12,QWORD PTR[((16+8))+rsp]
- jb $L$outer4x
+ cmp r12,QWORD[((16+8))+rsp]
+ jb NEAR $L$outer4x
sub rbp,r13
adc r15,r15
or rdi,r15
xor rdi,1
- lea rbx,QWORD PTR[r9*1+r14]
- lea rbp,QWORD PTR[rdi*8+rcx]
+ lea rbx,[r9*1+r14]
+ lea rbp,[rdi*8+rcx]
mov rcx,r9
sar rcx,3+2
- mov rdi,QWORD PTR[((56+8))+rsp]
- jmp $L$sqr4x_sub
-mul4x_internal ENDP
-PUBLIC bn_power5
+ mov rdi,QWORD[((56+8))+rsp]
+ jmp NEAR $L$sqr4x_sub
+
+global bn_power5
ALIGN 32
-bn_power5 PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+bn_power5:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_bn_power5::
+$L$SEH_begin_bn_power5:
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]
mov rax,rsp
@@ -791,14 +793,14 @@ $L$SEH_begin_bn_power5::
push r13
push r14
push r15
- lea rsp,QWORD PTR[((-40))+rsp]
- movaps XMMWORD PTR[rsp],xmm6
- movaps XMMWORD PTR[16+rsp],xmm7
+ lea rsp,[((-40))+rsp]
+ movaps XMMWORD[rsp],xmm6
+ movaps XMMWORD[16+rsp],xmm7
mov r10d,r9d
shl r9d,3
shl r10d,3+2
neg r9
- mov r8,QWORD PTR[r8]
+ mov r8,QWORD[r8]
@@ -806,24 +808,24 @@ $L$SEH_begin_bn_power5::
- lea r11,QWORD PTR[((-64))+r9*2+rsp]
+ lea r11,[((-64))+r9*2+rsp]
sub r11,rsi
and r11,4095
cmp r10,r11
- jb $L$pwr_sp_alt
+ jb NEAR $L$pwr_sp_alt
sub rsp,r11
- lea rsp,QWORD PTR[((-64))+r9*2+rsp]
- jmp $L$pwr_sp_done
+ lea rsp,[((-64))+r9*2+rsp]
+ jmp NEAR $L$pwr_sp_done
ALIGN 32
-$L$pwr_sp_alt::
- lea r10,QWORD PTR[((4096-64))+r9*2]
- lea rsp,QWORD PTR[((-64))+r9*2+rsp]
+$L$pwr_sp_alt:
+ lea r10,[((4096-64))+r9*2]
+ lea rsp,[((-64))+r9*2+rsp]
sub r11,r10
mov r10,0
cmovc r11,r10
sub rsp,r11
-$L$pwr_sp_done::
+$L$pwr_sp_done:
and rsp,-64
mov r10,r9
neg r9
@@ -837,9 +839,9 @@ $L$pwr_sp_done::
- mov QWORD PTR[32+rsp],r8
- mov QWORD PTR[40+rsp],rax
-$L$power5_body::
+ mov QWORD[32+rsp],r8
+ mov QWORD[40+rsp],rax
+$L$power5_body:
DB 102,72,15,110,207
DB 102,72,15,110,209
DB 102,73,15,110,218
@@ -854,33 +856,32 @@ DB 102,72,15,110,226
DB 102,72,15,126,209
DB 102,72,15,126,226
mov rdi,rsi
- mov rax,QWORD PTR[40+rsp]
- lea r8,QWORD PTR[32+rsp]
+ mov rax,QWORD[40+rsp]
+ lea r8,[32+rsp]
call mul4x_internal
- mov rsi,QWORD PTR[40+rsp]
+ mov rsi,QWORD[40+rsp]
mov rax,1
- mov r15,QWORD PTR[((-48))+rsi]
- mov r14,QWORD PTR[((-40))+rsi]
- mov r13,QWORD PTR[((-32))+rsi]
- mov r12,QWORD PTR[((-24))+rsi]
- mov rbp,QWORD PTR[((-16))+rsi]
- mov rbx,QWORD PTR[((-8))+rsi]
- lea rsp,QWORD PTR[rsi]
-$L$power5_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ mov r15,QWORD[((-48))+rsi]
+ mov r14,QWORD[((-40))+rsi]
+ mov r13,QWORD[((-32))+rsi]
+ mov r12,QWORD[((-24))+rsi]
+ mov rbp,QWORD[((-16))+rsi]
+ mov rbx,QWORD[((-8))+rsi]
+ lea rsp,[rsi]
+$L$power5_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_bn_power5::
-bn_power5 ENDP
+$L$SEH_end_bn_power5:
-PUBLIC bn_sqr8x_internal
+global bn_sqr8x_internal
ALIGN 32
-bn_sqr8x_internal PROC PUBLIC
-__bn_sqr8x_internal::
+bn_sqr8x_internal:
+__bn_sqr8x_internal:
@@ -954,40 +955,40 @@ __bn_sqr8x_internal::
- lea rbp,QWORD PTR[32+r10]
- lea rsi,QWORD PTR[r9*1+rsi]
+ lea rbp,[32+r10]
+ lea rsi,[r9*1+rsi]
mov rcx,r9
- mov r14,QWORD PTR[((-32))+rbp*1+rsi]
- lea rdi,QWORD PTR[((48+8))+r9*2+rsp]
- mov rax,QWORD PTR[((-24))+rbp*1+rsi]
- lea rdi,QWORD PTR[((-32))+rbp*1+rdi]
- mov rbx,QWORD PTR[((-16))+rbp*1+rsi]
+ mov r14,QWORD[((-32))+rbp*1+rsi]
+ lea rdi,[((48+8))+r9*2+rsp]
+ mov rax,QWORD[((-24))+rbp*1+rsi]
+ lea rdi,[((-32))+rbp*1+rdi]
+ mov rbx,QWORD[((-16))+rbp*1+rsi]
mov r15,rax
mul r14
mov r10,rax
mov rax,rbx
mov r11,rdx
- mov QWORD PTR[((-24))+rbp*1+rdi],r10
+ mov QWORD[((-24))+rbp*1+rdi],r10
mul r14
add r11,rax
mov rax,rbx
adc rdx,0
- mov QWORD PTR[((-16))+rbp*1+rdi],r11
+ mov QWORD[((-16))+rbp*1+rdi],r11
mov r10,rdx
- mov rbx,QWORD PTR[((-8))+rbp*1+rsi]
+ mov rbx,QWORD[((-8))+rbp*1+rsi]
mul r15
mov r12,rax
mov rax,rbx
mov r13,rdx
- lea rcx,QWORD PTR[rbp]
+ lea rcx,[rbp]
mul r14
add r10,rax
mov rax,rbx
@@ -995,12 +996,12 @@ __bn_sqr8x_internal::
adc r11,0
add r10,r12
adc r11,0
- mov QWORD PTR[((-8))+rcx*1+rdi],r10
- jmp $L$sqr4x_1st
+ mov QWORD[((-8))+rcx*1+rdi],r10
+ jmp NEAR $L$sqr4x_1st
ALIGN 32
-$L$sqr4x_1st::
- mov rbx,QWORD PTR[rcx*1+rsi]
+$L$sqr4x_1st:
+ mov rbx,QWORD[rcx*1+rsi]
mul r15
add r13,rax
mov rax,rbx
@@ -1010,7 +1011,7 @@ $L$sqr4x_1st::
mul r14
add r11,rax
mov rax,rbx
- mov rbx,QWORD PTR[8+rcx*1+rsi]
+ mov rbx,QWORD[8+rcx*1+rsi]
mov r10,rdx
adc r10,0
add r11,r13
@@ -1020,14 +1021,14 @@ $L$sqr4x_1st::
mul r15
add r12,rax
mov rax,rbx
- mov QWORD PTR[rcx*1+rdi],r11
+ mov QWORD[rcx*1+rdi],r11
mov r13,rdx
adc r13,0
mul r14
add r10,rax
mov rax,rbx
- mov rbx,QWORD PTR[16+rcx*1+rsi]
+ mov rbx,QWORD[16+rcx*1+rsi]
mov r11,rdx
adc r11,0
add r10,r12
@@ -1036,14 +1037,14 @@ $L$sqr4x_1st::
mul r15
add r13,rax
mov rax,rbx
- mov QWORD PTR[8+rcx*1+rdi],r10
+ mov QWORD[8+rcx*1+rdi],r10
mov r12,rdx
adc r12,0
mul r14
add r11,rax
mov rax,rbx
- mov rbx,QWORD PTR[24+rcx*1+rsi]
+ mov rbx,QWORD[24+rcx*1+rsi]
mov r10,rdx
adc r10,0
add r11,r13
@@ -1053,10 +1054,10 @@ $L$sqr4x_1st::
mul r15
add r12,rax
mov rax,rbx
- mov QWORD PTR[16+rcx*1+rdi],r11
+ mov QWORD[16+rcx*1+rdi],r11
mov r13,rdx
adc r13,0
- lea rcx,QWORD PTR[32+rcx]
+ lea rcx,[32+rcx]
mul r14
add r10,rax
@@ -1065,57 +1066,57 @@ $L$sqr4x_1st::
adc r11,0
add r10,r12
adc r11,0
- mov QWORD PTR[((-8))+rcx*1+rdi],r10
+ mov QWORD[((-8))+rcx*1+rdi],r10
cmp rcx,0
- jne $L$sqr4x_1st
+ jne NEAR $L$sqr4x_1st
mul r15
add r13,rax
- lea rbp,QWORD PTR[16+rbp]
+ lea rbp,[16+rbp]
adc rdx,0
add r13,r11
adc rdx,0
- mov QWORD PTR[rdi],r13
+ mov QWORD[rdi],r13
mov r12,rdx
- mov QWORD PTR[8+rdi],rdx
- jmp $L$sqr4x_outer
+ mov QWORD[8+rdi],rdx
+ jmp NEAR $L$sqr4x_outer
ALIGN 32
-$L$sqr4x_outer::
- mov r14,QWORD PTR[((-32))+rbp*1+rsi]
- lea rdi,QWORD PTR[((48+8))+r9*2+rsp]
- mov rax,QWORD PTR[((-24))+rbp*1+rsi]
- lea rdi,QWORD PTR[((-32))+rbp*1+rdi]
- mov rbx,QWORD PTR[((-16))+rbp*1+rsi]
+$L$sqr4x_outer:
+ mov r14,QWORD[((-32))+rbp*1+rsi]
+ lea rdi,[((48+8))+r9*2+rsp]
+ mov rax,QWORD[((-24))+rbp*1+rsi]
+ lea rdi,[((-32))+rbp*1+rdi]
+ mov rbx,QWORD[((-16))+rbp*1+rsi]
mov r15,rax
mul r14
- mov r10,QWORD PTR[((-24))+rbp*1+rdi]
+ mov r10,QWORD[((-24))+rbp*1+rdi]
add r10,rax
mov rax,rbx
adc rdx,0
- mov QWORD PTR[((-24))+rbp*1+rdi],r10
+ mov QWORD[((-24))+rbp*1+rdi],r10
mov r11,rdx
mul r14
add r11,rax
mov rax,rbx
adc rdx,0
- add r11,QWORD PTR[((-16))+rbp*1+rdi]
+ add r11,QWORD[((-16))+rbp*1+rdi]
mov r10,rdx
adc r10,0
- mov QWORD PTR[((-16))+rbp*1+rdi],r11
+ mov QWORD[((-16))+rbp*1+rdi],r11
xor r12,r12
- mov rbx,QWORD PTR[((-8))+rbp*1+rsi]
+ mov rbx,QWORD[((-8))+rbp*1+rsi]
mul r15
add r12,rax
mov rax,rbx
adc rdx,0
- add r12,QWORD PTR[((-8))+rbp*1+rdi]
+ add r12,QWORD[((-8))+rbp*1+rdi]
mov r13,rdx
adc r13,0
@@ -1126,27 +1127,27 @@ $L$sqr4x_outer::
add r10,r12
mov r11,rdx
adc r11,0
- mov QWORD PTR[((-8))+rbp*1+rdi],r10
+ mov QWORD[((-8))+rbp*1+rdi],r10
- lea rcx,QWORD PTR[rbp]
- jmp $L$sqr4x_inner
+ lea rcx,[rbp]
+ jmp NEAR $L$sqr4x_inner
ALIGN 32
-$L$sqr4x_inner::
- mov rbx,QWORD PTR[rcx*1+rsi]
+$L$sqr4x_inner:
+ mov rbx,QWORD[rcx*1+rsi]
mul r15
add r13,rax
mov rax,rbx
mov r12,rdx
adc r12,0
- add r13,QWORD PTR[rcx*1+rdi]
+ add r13,QWORD[rcx*1+rdi]
adc r12,0
-DB 067h
+DB 0x67
mul r14
add r11,rax
mov rax,rbx
- mov rbx,QWORD PTR[8+rcx*1+rsi]
+ mov rbx,QWORD[8+rcx*1+rsi]
mov r10,rdx
adc r10,0
add r11,r13
@@ -1154,12 +1155,12 @@ DB 067h
mul r15
add r12,rax
- mov QWORD PTR[rcx*1+rdi],r11
+ mov QWORD[rcx*1+rdi],r11
mov rax,rbx
mov r13,rdx
adc r13,0
- add r12,QWORD PTR[8+rcx*1+rdi]
- lea rcx,QWORD PTR[16+rcx]
+ add r12,QWORD[8+rcx*1+rdi]
+ lea rcx,[16+rcx]
adc r13,0
mul r14
@@ -1169,31 +1170,31 @@ DB 067h
add r10,r12
mov r11,rdx
adc r11,0
- mov QWORD PTR[((-8))+rcx*1+rdi],r10
+ mov QWORD[((-8))+rcx*1+rdi],r10
cmp rcx,0
- jne $L$sqr4x_inner
+ jne NEAR $L$sqr4x_inner
-DB 067h
+DB 0x67
mul r15
add r13,rax
adc rdx,0
add r13,r11
adc rdx,0
- mov QWORD PTR[rdi],r13
+ mov QWORD[rdi],r13
mov r12,rdx
- mov QWORD PTR[8+rdi],rdx
+ mov QWORD[8+rdi],rdx
add rbp,16
- jnz $L$sqr4x_outer
+ jnz NEAR $L$sqr4x_outer
- mov r14,QWORD PTR[((-32))+rsi]
- lea rdi,QWORD PTR[((48+8))+r9*2+rsp]
- mov rax,QWORD PTR[((-24))+rsi]
- lea rdi,QWORD PTR[((-32))+rbp*1+rdi]
- mov rbx,QWORD PTR[((-16))+rsi]
+ mov r14,QWORD[((-32))+rsi]
+ lea rdi,[((48+8))+r9*2+rsp]
+ mov rax,QWORD[((-24))+rsi]
+ lea rdi,[((-32))+rbp*1+rdi]
+ mov rbx,QWORD[((-16))+rsi]
mov r15,rax
mul r14
@@ -1205,17 +1206,17 @@ DB 067h
mul r14
add r11,rax
mov rax,rbx
- mov QWORD PTR[((-24))+rdi],r10
+ mov QWORD[((-24))+rdi],r10
mov r10,rdx
adc r10,0
add r11,r13
- mov rbx,QWORD PTR[((-8))+rsi]
+ mov rbx,QWORD[((-8))+rsi]
adc r10,0
mul r15
add r12,rax
mov rax,rbx
- mov QWORD PTR[((-16))+rdi],r11
+ mov QWORD[((-16))+rdi],r11
mov r13,rdx
adc r13,0
@@ -1226,18 +1227,18 @@ DB 067h
adc r11,0
add r10,r12
adc r11,0
- mov QWORD PTR[((-8))+rdi],r10
+ mov QWORD[((-8))+rdi],r10
mul r15
add r13,rax
- mov rax,QWORD PTR[((-16))+rsi]
+ mov rax,QWORD[((-16))+rsi]
adc rdx,0
add r13,r11
adc rdx,0
- mov QWORD PTR[rdi],r13
+ mov QWORD[rdi],r13
mov r12,rdx
- mov QWORD PTR[8+rdi],rdx
+ mov QWORD[8+rdi],rdx
mul rbx
add rbp,16
@@ -1247,216 +1248,216 @@ DB 067h
add rax,r12
adc rdx,0
- mov QWORD PTR[8+rdi],rax
- mov QWORD PTR[16+rdi],rdx
- mov QWORD PTR[24+rdi],r15
+ mov QWORD[8+rdi],rax
+ mov QWORD[16+rdi],rdx
+ mov QWORD[24+rdi],r15
- mov rax,QWORD PTR[((-16))+rbp*1+rsi]
- lea rdi,QWORD PTR[((48+8))+rsp]
+ mov rax,QWORD[((-16))+rbp*1+rsi]
+ lea rdi,[((48+8))+rsp]
xor r10,r10
- mov r11,QWORD PTR[8+rdi]
+ mov r11,QWORD[8+rdi]
- lea r12,QWORD PTR[r10*2+r14]
+ lea r12,[r10*2+r14]
shr r10,63
- lea r13,QWORD PTR[r11*2+rcx]
+ lea r13,[r11*2+rcx]
shr r11,63
or r13,r10
- mov r10,QWORD PTR[16+rdi]
+ mov r10,QWORD[16+rdi]
mov r14,r11
mul rax
neg r15
- mov r11,QWORD PTR[24+rdi]
+ mov r11,QWORD[24+rdi]
adc r12,rax
- mov rax,QWORD PTR[((-8))+rbp*1+rsi]
- mov QWORD PTR[rdi],r12
+ mov rax,QWORD[((-8))+rbp*1+rsi]
+ mov QWORD[rdi],r12
adc r13,rdx
- lea rbx,QWORD PTR[r10*2+r14]
- mov QWORD PTR[8+rdi],r13
+ lea rbx,[r10*2+r14]
+ mov QWORD[8+rdi],r13
sbb r15,r15
shr r10,63
- lea r8,QWORD PTR[r11*2+rcx]
+ lea r8,[r11*2+rcx]
shr r11,63
or r8,r10
- mov r10,QWORD PTR[32+rdi]
+ mov r10,QWORD[32+rdi]
mov r14,r11
mul rax
neg r15
- mov r11,QWORD PTR[40+rdi]
+ mov r11,QWORD[40+rdi]
adc rbx,rax
- mov rax,QWORD PTR[rbp*1+rsi]
- mov QWORD PTR[16+rdi],rbx
+ mov rax,QWORD[rbp*1+rsi]
+ mov QWORD[16+rdi],rbx
adc r8,rdx
- lea rbp,QWORD PTR[16+rbp]
- mov QWORD PTR[24+rdi],r8
+ lea rbp,[16+rbp]
+ mov QWORD[24+rdi],r8
sbb r15,r15
- lea rdi,QWORD PTR[64+rdi]
- jmp $L$sqr4x_shift_n_add
+ lea rdi,[64+rdi]
+ jmp NEAR $L$sqr4x_shift_n_add
ALIGN 32
-$L$sqr4x_shift_n_add::
- lea r12,QWORD PTR[r10*2+r14]
+$L$sqr4x_shift_n_add:
+ lea r12,[r10*2+r14]
shr r10,63
- lea r13,QWORD PTR[r11*2+rcx]
+ lea r13,[r11*2+rcx]
shr r11,63
or r13,r10
- mov r10,QWORD PTR[((-16))+rdi]
+ mov r10,QWORD[((-16))+rdi]
mov r14,r11
mul rax
neg r15
- mov r11,QWORD PTR[((-8))+rdi]
+ mov r11,QWORD[((-8))+rdi]
adc r12,rax
- mov rax,QWORD PTR[((-8))+rbp*1+rsi]
- mov QWORD PTR[((-32))+rdi],r12
+ mov rax,QWORD[((-8))+rbp*1+rsi]
+ mov QWORD[((-32))+rdi],r12
adc r13,rdx
- lea rbx,QWORD PTR[r10*2+r14]
- mov QWORD PTR[((-24))+rdi],r13
+ lea rbx,[r10*2+r14]
+ mov QWORD[((-24))+rdi],r13
sbb r15,r15
shr r10,63
- lea r8,QWORD PTR[r11*2+rcx]
+ lea r8,[r11*2+rcx]
shr r11,63
or r8,r10
- mov r10,QWORD PTR[rdi]
+ mov r10,QWORD[rdi]
mov r14,r11
mul rax
neg r15
- mov r11,QWORD PTR[8+rdi]
+ mov r11,QWORD[8+rdi]
adc rbx,rax
- mov rax,QWORD PTR[rbp*1+rsi]
- mov QWORD PTR[((-16))+rdi],rbx
+ mov rax,QWORD[rbp*1+rsi]
+ mov QWORD[((-16))+rdi],rbx
adc r8,rdx
- lea r12,QWORD PTR[r10*2+r14]
- mov QWORD PTR[((-8))+rdi],r8
+ lea r12,[r10*2+r14]
+ mov QWORD[((-8))+rdi],r8
sbb r15,r15
shr r10,63
- lea r13,QWORD PTR[r11*2+rcx]
+ lea r13,[r11*2+rcx]
shr r11,63
or r13,r10
- mov r10,QWORD PTR[16+rdi]
+ mov r10,QWORD[16+rdi]
mov r14,r11
mul rax
neg r15
- mov r11,QWORD PTR[24+rdi]
+ mov r11,QWORD[24+rdi]
adc r12,rax
- mov rax,QWORD PTR[8+rbp*1+rsi]
- mov QWORD PTR[rdi],r12
+ mov rax,QWORD[8+rbp*1+rsi]
+ mov QWORD[rdi],r12
adc r13,rdx
- lea rbx,QWORD PTR[r10*2+r14]
- mov QWORD PTR[8+rdi],r13
+ lea rbx,[r10*2+r14]
+ mov QWORD[8+rdi],r13
sbb r15,r15
shr r10,63
- lea r8,QWORD PTR[r11*2+rcx]
+ lea r8,[r11*2+rcx]
shr r11,63
or r8,r10
- mov r10,QWORD PTR[32+rdi]
+ mov r10,QWORD[32+rdi]
mov r14,r11
mul rax
neg r15
- mov r11,QWORD PTR[40+rdi]
+ mov r11,QWORD[40+rdi]
adc rbx,rax
- mov rax,QWORD PTR[16+rbp*1+rsi]
- mov QWORD PTR[16+rdi],rbx
+ mov rax,QWORD[16+rbp*1+rsi]
+ mov QWORD[16+rdi],rbx
adc r8,rdx
- mov QWORD PTR[24+rdi],r8
+ mov QWORD[24+rdi],r8
sbb r15,r15
- lea rdi,QWORD PTR[64+rdi]
+ lea rdi,[64+rdi]
add rbp,32
- jnz $L$sqr4x_shift_n_add
+ jnz NEAR $L$sqr4x_shift_n_add
- lea r12,QWORD PTR[r10*2+r14]
-DB 067h
+ lea r12,[r10*2+r14]
+DB 0x67
shr r10,63
- lea r13,QWORD PTR[r11*2+rcx]
+ lea r13,[r11*2+rcx]
shr r11,63
or r13,r10
- mov r10,QWORD PTR[((-16))+rdi]
+ mov r10,QWORD[((-16))+rdi]
mov r14,r11
mul rax
neg r15
- mov r11,QWORD PTR[((-8))+rdi]
+ mov r11,QWORD[((-8))+rdi]
adc r12,rax
- mov rax,QWORD PTR[((-8))+rsi]
- mov QWORD PTR[((-32))+rdi],r12
+ mov rax,QWORD[((-8))+rsi]
+ mov QWORD[((-32))+rdi],r12
adc r13,rdx
- lea rbx,QWORD PTR[r10*2+r14]
- mov QWORD PTR[((-24))+rdi],r13
+ lea rbx,[r10*2+r14]
+ mov QWORD[((-24))+rdi],r13
sbb r15,r15
shr r10,63
- lea r8,QWORD PTR[r11*2+rcx]
+ lea r8,[r11*2+rcx]
shr r11,63
or r8,r10
mul rax
neg r15
adc rbx,rax
adc r8,rdx
- mov QWORD PTR[((-16))+rdi],rbx
- mov QWORD PTR[((-8))+rdi],r8
+ mov QWORD[((-16))+rdi],rbx
+ mov QWORD[((-8))+rdi],r8
DB 102,72,15,126,213
-sqr8x_reduction::
+sqr8x_reduction:
xor rax,rax
- lea rcx,QWORD PTR[r9*2+rbp]
- lea rdx,QWORD PTR[((48+8))+r9*2+rsp]
- mov QWORD PTR[((0+8))+rsp],rcx
- lea rdi,QWORD PTR[((48+8))+r9*1+rsp]
- mov QWORD PTR[((8+8))+rsp],rdx
+ lea rcx,[r9*2+rbp]
+ lea rdx,[((48+8))+r9*2+rsp]
+ mov QWORD[((0+8))+rsp],rcx
+ lea rdi,[((48+8))+r9*1+rsp]
+ mov QWORD[((8+8))+rsp],rdx
neg r9
- jmp $L$8x_reduction_loop
+ jmp NEAR $L$8x_reduction_loop
ALIGN 32
-$L$8x_reduction_loop::
- lea rdi,QWORD PTR[r9*1+rdi]
-DB 066h
- mov rbx,QWORD PTR[rdi]
- mov r9,QWORD PTR[8+rdi]
- mov r10,QWORD PTR[16+rdi]
- mov r11,QWORD PTR[24+rdi]
- mov r12,QWORD PTR[32+rdi]
- mov r13,QWORD PTR[40+rdi]
- mov r14,QWORD PTR[48+rdi]
- mov r15,QWORD PTR[56+rdi]
- mov QWORD PTR[rdx],rax
- lea rdi,QWORD PTR[64+rdi]
-
-DB 067h
+$L$8x_reduction_loop:
+ lea rdi,[r9*1+rdi]
+DB 0x66
+ mov rbx,QWORD[rdi]
+ mov r9,QWORD[8+rdi]
+ mov r10,QWORD[16+rdi]
+ mov r11,QWORD[24+rdi]
+ mov r12,QWORD[32+rdi]
+ mov r13,QWORD[40+rdi]
+ mov r14,QWORD[48+rdi]
+ mov r15,QWORD[56+rdi]
+ mov QWORD[rdx],rax
+ lea rdi,[64+rdi]
+
+DB 0x67
mov r8,rbx
- imul rbx,QWORD PTR[((32+8))+rsp]
- mov rax,QWORD PTR[rbp]
+ imul rbx,QWORD[((32+8))+rsp]
+ mov rax,QWORD[rbp]
mov ecx,8
- jmp $L$8x_reduce
+ jmp NEAR $L$8x_reduce
ALIGN 32
-$L$8x_reduce::
+$L$8x_reduce:
mul rbx
- mov rax,QWORD PTR[16+rbp]
+ mov rax,QWORD[16+rbp]
neg r8
mov r8,rdx
adc r8,0
mul rbx
add r9,rax
- mov rax,QWORD PTR[32+rbp]
+ mov rax,QWORD[32+rbp]
adc rdx,0
add r8,r9
- mov QWORD PTR[((48-8+8))+rcx*8+rsp],rbx
+ mov QWORD[((48-8+8))+rcx*8+rsp],rbx
mov r9,rdx
adc r9,0
mul rbx
add r10,rax
- mov rax,QWORD PTR[48+rbp]
+ mov rax,QWORD[48+rbp]
adc rdx,0
add r9,r10
- mov rsi,QWORD PTR[((32+8))+rsp]
+ mov rsi,QWORD[((32+8))+rsp]
mov r10,rdx
adc r10,0
mul rbx
add r11,rax
- mov rax,QWORD PTR[64+rbp]
+ mov rax,QWORD[64+rbp]
adc rdx,0
imul rsi,r8
add r10,r11
@@ -1465,7 +1466,7 @@ $L$8x_reduce::
mul rbx
add r12,rax
- mov rax,QWORD PTR[80+rbp]
+ mov rax,QWORD[80+rbp]
adc rdx,0
add r11,r12
mov r12,rdx
@@ -1473,7 +1474,7 @@ $L$8x_reduce::
mul rbx
add r13,rax
- mov rax,QWORD PTR[96+rbp]
+ mov rax,QWORD[96+rbp]
adc rdx,0
add r12,r13
mov r13,rdx
@@ -1481,7 +1482,7 @@ $L$8x_reduce::
mul rbx
add r14,rax
- mov rax,QWORD PTR[112+rbp]
+ mov rax,QWORD[112+rbp]
adc rdx,0
add r13,r14
mov r14,rdx
@@ -1490,58 +1491,58 @@ $L$8x_reduce::
mul rbx
mov rbx,rsi
add r15,rax
- mov rax,QWORD PTR[rbp]
+ mov rax,QWORD[rbp]
adc rdx,0
add r14,r15
mov r15,rdx
adc r15,0
dec ecx
- jnz $L$8x_reduce
+ jnz NEAR $L$8x_reduce
- lea rbp,QWORD PTR[128+rbp]
+ lea rbp,[128+rbp]
xor rax,rax
- mov rdx,QWORD PTR[((8+8))+rsp]
- cmp rbp,QWORD PTR[((0+8))+rsp]
- jae $L$8x_no_tail
-
-DB 066h
- add r8,QWORD PTR[rdi]
- adc r9,QWORD PTR[8+rdi]
- adc r10,QWORD PTR[16+rdi]
- adc r11,QWORD PTR[24+rdi]
- adc r12,QWORD PTR[32+rdi]
- adc r13,QWORD PTR[40+rdi]
- adc r14,QWORD PTR[48+rdi]
- adc r15,QWORD PTR[56+rdi]
+ mov rdx,QWORD[((8+8))+rsp]
+ cmp rbp,QWORD[((0+8))+rsp]
+ jae NEAR $L$8x_no_tail
+
+DB 0x66
+ add r8,QWORD[rdi]
+ adc r9,QWORD[8+rdi]
+ adc r10,QWORD[16+rdi]
+ adc r11,QWORD[24+rdi]
+ adc r12,QWORD[32+rdi]
+ adc r13,QWORD[40+rdi]
+ adc r14,QWORD[48+rdi]
+ adc r15,QWORD[56+rdi]
sbb rsi,rsi
- mov rbx,QWORD PTR[((48+56+8))+rsp]
+ mov rbx,QWORD[((48+56+8))+rsp]
mov ecx,8
- mov rax,QWORD PTR[rbp]
- jmp $L$8x_tail
+ mov rax,QWORD[rbp]
+ jmp NEAR $L$8x_tail
ALIGN 32
-$L$8x_tail::
+$L$8x_tail:
mul rbx
add r8,rax
- mov rax,QWORD PTR[16+rbp]
- mov QWORD PTR[rdi],r8
+ mov rax,QWORD[16+rbp]
+ mov QWORD[rdi],r8
mov r8,rdx
adc r8,0
mul rbx
add r9,rax
- mov rax,QWORD PTR[32+rbp]
+ mov rax,QWORD[32+rbp]
adc rdx,0
add r8,r9
- lea rdi,QWORD PTR[8+rdi]
+ lea rdi,[8+rdi]
mov r9,rdx
adc r9,0
mul rbx
add r10,rax
- mov rax,QWORD PTR[48+rbp]
+ mov rax,QWORD[48+rbp]
adc rdx,0
add r9,r10
mov r10,rdx
@@ -1549,7 +1550,7 @@ $L$8x_tail::
mul rbx
add r11,rax
- mov rax,QWORD PTR[64+rbp]
+ mov rax,QWORD[64+rbp]
adc rdx,0
add r10,r11
mov r11,rdx
@@ -1557,7 +1558,7 @@ $L$8x_tail::
mul rbx
add r12,rax
- mov rax,QWORD PTR[80+rbp]
+ mov rax,QWORD[80+rbp]
adc rdx,0
add r11,r12
mov r12,rdx
@@ -1565,7 +1566,7 @@ $L$8x_tail::
mul rbx
add r13,rax
- mov rax,QWORD PTR[96+rbp]
+ mov rax,QWORD[96+rbp]
adc rdx,0
add r12,r13
mov r13,rdx
@@ -1573,143 +1574,143 @@ $L$8x_tail::
mul rbx
add r14,rax
- mov rax,QWORD PTR[112+rbp]
+ mov rax,QWORD[112+rbp]
adc rdx,0
add r13,r14
mov r14,rdx
adc r14,0
mul rbx
- mov rbx,QWORD PTR[((48-16+8))+rcx*8+rsp]
+ mov rbx,QWORD[((48-16+8))+rcx*8+rsp]
add r15,rax
adc rdx,0
add r14,r15
- mov rax,QWORD PTR[rbp]
+ mov rax,QWORD[rbp]
mov r15,rdx
adc r15,0
dec ecx
- jnz $L$8x_tail
+ jnz NEAR $L$8x_tail
- lea rbp,QWORD PTR[128+rbp]
- mov rdx,QWORD PTR[((8+8))+rsp]
- cmp rbp,QWORD PTR[((0+8))+rsp]
- jae $L$8x_tail_done
+ lea rbp,[128+rbp]
+ mov rdx,QWORD[((8+8))+rsp]
+ cmp rbp,QWORD[((0+8))+rsp]
+ jae NEAR $L$8x_tail_done
- mov rbx,QWORD PTR[((48+56+8))+rsp]
+ mov rbx,QWORD[((48+56+8))+rsp]
neg rsi
- mov rax,QWORD PTR[rbp]
- adc r8,QWORD PTR[rdi]
- adc r9,QWORD PTR[8+rdi]
- adc r10,QWORD PTR[16+rdi]
- adc r11,QWORD PTR[24+rdi]
- adc r12,QWORD PTR[32+rdi]
- adc r13,QWORD PTR[40+rdi]
- adc r14,QWORD PTR[48+rdi]
- adc r15,QWORD PTR[56+rdi]
+ mov rax,QWORD[rbp]
+ adc r8,QWORD[rdi]
+ adc r9,QWORD[8+rdi]
+ adc r10,QWORD[16+rdi]
+ adc r11,QWORD[24+rdi]
+ adc r12,QWORD[32+rdi]
+ adc r13,QWORD[40+rdi]
+ adc r14,QWORD[48+rdi]
+ adc r15,QWORD[56+rdi]
sbb rsi,rsi
mov ecx,8
- jmp $L$8x_tail
+ jmp NEAR $L$8x_tail
ALIGN 32
-$L$8x_tail_done::
- add r8,QWORD PTR[rdx]
+$L$8x_tail_done:
+ add r8,QWORD[rdx]
xor rax,rax
neg rsi
-$L$8x_no_tail::
- adc r8,QWORD PTR[rdi]
- adc r9,QWORD PTR[8+rdi]
- adc r10,QWORD PTR[16+rdi]
- adc r11,QWORD PTR[24+rdi]
- adc r12,QWORD PTR[32+rdi]
- adc r13,QWORD PTR[40+rdi]
- adc r14,QWORD PTR[48+rdi]
- adc r15,QWORD PTR[56+rdi]
+$L$8x_no_tail:
+ adc r8,QWORD[rdi]
+ adc r9,QWORD[8+rdi]
+ adc r10,QWORD[16+rdi]
+ adc r11,QWORD[24+rdi]
+ adc r12,QWORD[32+rdi]
+ adc r13,QWORD[40+rdi]
+ adc r14,QWORD[48+rdi]
+ adc r15,QWORD[56+rdi]
adc rax,0
- mov rcx,QWORD PTR[((-16))+rbp]
+ mov rcx,QWORD[((-16))+rbp]
xor rsi,rsi
DB 102,72,15,126,213
- mov QWORD PTR[rdi],r8
- mov QWORD PTR[8+rdi],r9
+ mov QWORD[rdi],r8
+ mov QWORD[8+rdi],r9
DB 102,73,15,126,217
- mov QWORD PTR[16+rdi],r10
- mov QWORD PTR[24+rdi],r11
- mov QWORD PTR[32+rdi],r12
- mov QWORD PTR[40+rdi],r13
- mov QWORD PTR[48+rdi],r14
- mov QWORD PTR[56+rdi],r15
- lea rdi,QWORD PTR[64+rdi]
+ mov QWORD[16+rdi],r10
+ mov QWORD[24+rdi],r11
+ mov QWORD[32+rdi],r12
+ mov QWORD[40+rdi],r13
+ mov QWORD[48+rdi],r14
+ mov QWORD[56+rdi],r15
+ lea rdi,[64+rdi]
cmp rdi,rdx
- jb $L$8x_reduction_loop
+ jb NEAR $L$8x_reduction_loop
sub rcx,r15
- lea rbx,QWORD PTR[r9*1+rdi]
+ lea rbx,[r9*1+rdi]
adc rsi,rsi
mov rcx,r9
or rax,rsi
DB 102,72,15,126,207
xor rax,1
DB 102,72,15,126,206
- lea rbp,QWORD PTR[rax*8+rbp]
+ lea rbp,[rax*8+rbp]
sar rcx,3+2
- jmp $L$sqr4x_sub
+ jmp NEAR $L$sqr4x_sub
ALIGN 32
-$L$sqr4x_sub::
-DB 066h
- mov r12,QWORD PTR[rbx]
- mov r13,QWORD PTR[8+rbx]
- sbb r12,QWORD PTR[rbp]
- mov r14,QWORD PTR[16+rbx]
- sbb r13,QWORD PTR[16+rbp]
- mov r15,QWORD PTR[24+rbx]
- lea rbx,QWORD PTR[32+rbx]
- sbb r14,QWORD PTR[32+rbp]
- mov QWORD PTR[rdi],r12
- sbb r15,QWORD PTR[48+rbp]
- lea rbp,QWORD PTR[64+rbp]
- mov QWORD PTR[8+rdi],r13
- mov QWORD PTR[16+rdi],r14
- mov QWORD PTR[24+rdi],r15
- lea rdi,QWORD PTR[32+rdi]
+$L$sqr4x_sub:
+DB 0x66
+ mov r12,QWORD[rbx]
+ mov r13,QWORD[8+rbx]
+ sbb r12,QWORD[rbp]
+ mov r14,QWORD[16+rbx]
+ sbb r13,QWORD[16+rbp]
+ mov r15,QWORD[24+rbx]
+ lea rbx,[32+rbx]
+ sbb r14,QWORD[32+rbp]
+ mov QWORD[rdi],r12
+ sbb r15,QWORD[48+rbp]
+ lea rbp,[64+rbp]
+ mov QWORD[8+rdi],r13
+ mov QWORD[16+rdi],r14
+ mov QWORD[24+rdi],r15
+ lea rdi,[32+rdi]
inc rcx
- jnz $L$sqr4x_sub
+ jnz NEAR $L$sqr4x_sub
mov r10,r9
neg r9
DB 0F3h,0C3h ;repret
-bn_sqr8x_internal ENDP
-PUBLIC bn_from_montgomery
+
+global bn_from_montgomery
ALIGN 32
-bn_from_montgomery PROC PUBLIC
- test DWORD PTR[48+rsp],7
- jz bn_from_mont8x
+bn_from_montgomery:
+ test DWORD[48+rsp],7
+ jz NEAR bn_from_mont8x
xor eax,eax
DB 0F3h,0C3h ;repret
-bn_from_montgomery ENDP
+
ALIGN 32
-bn_from_mont8x PROC PRIVATE
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+bn_from_mont8x:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_bn_from_mont8x::
+$L$SEH_begin_bn_from_mont8x:
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]
-DB 067h
+DB 0x67
mov rax,rsp
push rbx
push rbp
@@ -1717,15 +1718,15 @@ DB 067h
push r13
push r14
push r15
- lea rsp,QWORD PTR[((-40))+rsp]
- movaps XMMWORD PTR[rsp],xmm6
- movaps XMMWORD PTR[16+rsp],xmm7
-DB 067h
+ lea rsp,[((-40))+rsp]
+ movaps XMMWORD[rsp],xmm6
+ movaps XMMWORD[16+rsp],xmm7
+DB 0x67
mov r10d,r9d
shl r9d,3
shl r10d,3+2
neg r9
- mov r8,QWORD PTR[r8]
+ mov r8,QWORD[r8]
@@ -1733,24 +1734,24 @@ DB 067h
- lea r11,QWORD PTR[((-64))+r9*2+rsp]
+ lea r11,[((-64))+r9*2+rsp]
sub r11,rsi
and r11,4095
cmp r10,r11
- jb $L$from_sp_alt
+ jb NEAR $L$from_sp_alt
sub rsp,r11
- lea rsp,QWORD PTR[((-64))+r9*2+rsp]
- jmp $L$from_sp_done
+ lea rsp,[((-64))+r9*2+rsp]
+ jmp NEAR $L$from_sp_done
ALIGN 32
-$L$from_sp_alt::
- lea r10,QWORD PTR[((4096-64))+r9*2]
- lea rsp,QWORD PTR[((-64))+r9*2+rsp]
+$L$from_sp_alt:
+ lea r10,[((4096-64))+r9*2]
+ lea rsp,[((-64))+r9*2+rsp]
sub r11,r10
mov r10,0
cmovc r11,r10
sub rsp,r11
-$L$from_sp_done::
+$L$from_sp_done:
and rsp,-64
mov r10,r9
neg r9
@@ -1764,136 +1765,135 @@ $L$from_sp_done::
- mov QWORD PTR[32+rsp],r8
- mov QWORD PTR[40+rsp],rax
-$L$from_body::
+ mov QWORD[32+rsp],r8
+ mov QWORD[40+rsp],rax
+$L$from_body:
mov r11,r9
- lea rax,QWORD PTR[48+rsp]
+ lea rax,[48+rsp]
pxor xmm0,xmm0
- jmp $L$mul_by_1
+ jmp NEAR $L$mul_by_1
ALIGN 32
-$L$mul_by_1::
- movdqu xmm1,XMMWORD PTR[rsi]
- movdqu xmm2,XMMWORD PTR[16+rsi]
- movdqu xmm3,XMMWORD PTR[32+rsi]
- movdqa XMMWORD PTR[r9*1+rax],xmm0
- movdqu xmm4,XMMWORD PTR[48+rsi]
- movdqa XMMWORD PTR[16+r9*1+rax],xmm0
-DB 048h,08dh,0b6h,040h,000h,000h,000h
- movdqa XMMWORD PTR[rax],xmm1
- movdqa XMMWORD PTR[32+r9*1+rax],xmm0
- movdqa XMMWORD PTR[16+rax],xmm2
- movdqa XMMWORD PTR[48+r9*1+rax],xmm0
- movdqa XMMWORD PTR[32+rax],xmm3
- movdqa XMMWORD PTR[48+rax],xmm4
- lea rax,QWORD PTR[64+rax]
+$L$mul_by_1:
+ movdqu xmm1,XMMWORD[rsi]
+ movdqu xmm2,XMMWORD[16+rsi]
+ movdqu xmm3,XMMWORD[32+rsi]
+ movdqa XMMWORD[r9*1+rax],xmm0
+ movdqu xmm4,XMMWORD[48+rsi]
+ movdqa XMMWORD[16+r9*1+rax],xmm0
+DB 0x48,0x8d,0xb6,0x40,0x00,0x00,0x00
+ movdqa XMMWORD[rax],xmm1
+ movdqa XMMWORD[32+r9*1+rax],xmm0
+ movdqa XMMWORD[16+rax],xmm2
+ movdqa XMMWORD[48+r9*1+rax],xmm0
+ movdqa XMMWORD[32+rax],xmm3
+ movdqa XMMWORD[48+rax],xmm4
+ lea rax,[64+rax]
sub r11,64
- jnz $L$mul_by_1
+ jnz NEAR $L$mul_by_1
DB 102,72,15,110,207
DB 102,72,15,110,209
-DB 067h
+DB 0x67
mov rbp,rcx
DB 102,73,15,110,218
call sqr8x_reduction
pxor xmm0,xmm0
- lea rax,QWORD PTR[48+rsp]
- mov rsi,QWORD PTR[40+rsp]
- jmp $L$from_mont_zero
+ lea rax,[48+rsp]
+ mov rsi,QWORD[40+rsp]
+ jmp NEAR $L$from_mont_zero
ALIGN 32
-$L$from_mont_zero::
- movdqa XMMWORD PTR[rax],xmm0
- movdqa XMMWORD PTR[16+rax],xmm0
- movdqa XMMWORD PTR[32+rax],xmm0
- movdqa XMMWORD PTR[48+rax],xmm0
- lea rax,QWORD PTR[64+rax]
+$L$from_mont_zero:
+ movdqa XMMWORD[rax],xmm0
+ movdqa XMMWORD[16+rax],xmm0
+ movdqa XMMWORD[32+rax],xmm0
+ movdqa XMMWORD[48+rax],xmm0
+ lea rax,[64+rax]
sub r9,32
- jnz $L$from_mont_zero
+ jnz NEAR $L$from_mont_zero
mov rax,1
- mov r15,QWORD PTR[((-48))+rsi]
- mov r14,QWORD PTR[((-40))+rsi]
- mov r13,QWORD PTR[((-32))+rsi]
- mov r12,QWORD PTR[((-24))+rsi]
- mov rbp,QWORD PTR[((-16))+rsi]
- mov rbx,QWORD PTR[((-8))+rsi]
- lea rsp,QWORD PTR[rsi]
-$L$from_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ mov r15,QWORD[((-48))+rsi]
+ mov r14,QWORD[((-40))+rsi]
+ mov r13,QWORD[((-32))+rsi]
+ mov r12,QWORD[((-24))+rsi]
+ mov rbp,QWORD[((-16))+rsi]
+ mov rbx,QWORD[((-8))+rsi]
+ lea rsp,[rsi]
+$L$from_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_bn_from_mont8x::
-bn_from_mont8x ENDP
-PUBLIC bn_scatter5
+$L$SEH_end_bn_from_mont8x:
+global bn_scatter5
ALIGN 16
-bn_scatter5 PROC PUBLIC
+bn_scatter5:
cmp edx,0
- jz $L$scatter_epilogue
- lea r8,QWORD PTR[r9*8+r8]
-$L$scatter::
- mov rax,QWORD PTR[rcx]
- lea rcx,QWORD PTR[8+rcx]
- mov QWORD PTR[r8],rax
- lea r8,QWORD PTR[256+r8]
+ jz NEAR $L$scatter_epilogue
+ lea r8,[r9*8+r8]
+$L$scatter:
+ mov rax,QWORD[rcx]
+ lea rcx,[8+rcx]
+ mov QWORD[r8],rax
+ lea r8,[256+r8]
sub edx,1
- jnz $L$scatter
-$L$scatter_epilogue::
+ jnz NEAR $L$scatter
+$L$scatter_epilogue:
DB 0F3h,0C3h ;repret
-bn_scatter5 ENDP
-PUBLIC bn_gather5
+
+global bn_gather5
ALIGN 16
-bn_gather5 PROC PUBLIC
-$L$SEH_begin_bn_gather5::
+bn_gather5:
+$L$SEH_begin_bn_gather5:
-DB 048h,083h,0ech,028h
-DB 00fh,029h,034h,024h
-DB 00fh,029h,07ch,024h,010h
+DB 0x48,0x83,0xec,0x28
+DB 0x0f,0x29,0x34,0x24
+DB 0x0f,0x29,0x7c,0x24,0x10
mov r11d,r9d
shr r9d,3
and r11,7
not r9d
- lea rax,QWORD PTR[$L$magic_masks]
+ lea rax,[$L$magic_masks]
and r9d,3
- lea r8,QWORD PTR[128+r11*8+r8]
- movq xmm4,QWORD PTR[r9*8+rax]
- movq xmm5,QWORD PTR[8+r9*8+rax]
- movq xmm6,QWORD PTR[16+r9*8+rax]
- movq xmm7,QWORD PTR[24+r9*8+rax]
- jmp $L$gather
+ lea r8,[128+r11*8+r8]
+ movq xmm4,QWORD[r9*8+rax]
+ movq xmm5,QWORD[8+r9*8+rax]
+ movq xmm6,QWORD[16+r9*8+rax]
+ movq xmm7,QWORD[24+r9*8+rax]
+ jmp NEAR $L$gather
ALIGN 16
-$L$gather::
- movq xmm0,QWORD PTR[(((-128)))+r8]
- movq xmm1,QWORD PTR[((-64))+r8]
+$L$gather:
+ movq xmm0,QWORD[(((-128)))+r8]
+ movq xmm1,QWORD[((-64))+r8]
pand xmm0,xmm4
- movq xmm2,QWORD PTR[r8]
+ movq xmm2,QWORD[r8]
pand xmm1,xmm5
- movq xmm3,QWORD PTR[64+r8]
+ movq xmm3,QWORD[64+r8]
pand xmm2,xmm6
por xmm0,xmm1
pand xmm3,xmm7
-DB 067h,067h
+DB 0x67,0x67
por xmm0,xmm2
- lea r8,QWORD PTR[256+r8]
+ lea r8,[256+r8]
por xmm0,xmm3
- movq QWORD PTR[rcx],xmm0
- lea rcx,QWORD PTR[8+rcx]
+ movq QWORD[rcx],xmm0
+ lea rcx,[8+rcx]
sub edx,1
- jnz $L$gather
- movaps xmm6,XMMWORD PTR[rsp]
- movaps xmm7,XMMWORD PTR[16+rsp]
- lea rsp,QWORD PTR[40+rsp]
+ jnz NEAR $L$gather
+ movaps xmm6,XMMWORD[rsp]
+ movaps xmm7,XMMWORD[16+rsp]
+ lea rsp,[40+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_bn_gather5::
-bn_gather5 ENDP
+$L$SEH_end_bn_gather5:
+
ALIGN 64
-$L$magic_masks::
+$L$magic_masks:
DD 0,0,0,0,0,0,-1,-1
DD 0,0,0,0,0,0,0,0
DB 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105
@@ -1902,10 +1902,10 @@ DB 99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111
DB 114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79
DB 71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111
DB 112,101,110,115,115,108,46,111,114,103,62,0
-EXTERN __imp_RtlVirtualUnwind:NEAR
+EXTERN __imp_RtlVirtualUnwind
ALIGN 16
-mul_handler PROC PRIVATE
+mul_handler:
push rsi
push rdi
push rbx
@@ -1917,79 +1917,79 @@ mul_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 r10,QWORD PTR[$L$mul_epilogue]
+ lea r10,[$L$mul_epilogue]
cmp rbx,r10
- jb $L$body_40
-
- mov r10,QWORD PTR[192+r8]
- mov rax,QWORD PTR[8+r10*8+rax]
- jmp $L$body_proceed
-
-$L$body_40::
- mov rax,QWORD PTR[40+rax]
-$L$body_proceed::
-
- movaps xmm0,XMMWORD PTR[((-88))+rax]
- movaps xmm1,XMMWORD PTR[((-72))+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
- movups XMMWORD PTR[512+r8],xmm0
- movups XMMWORD PTR[528+r8],xmm1
-
-$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]
+ jb NEAR $L$body_40
+
+ mov r10,QWORD[192+r8]
+ mov rax,QWORD[8+r10*8+rax]
+ jmp NEAR $L$body_proceed
+
+$L$body_40:
+ mov rax,QWORD[40+rax]
+$L$body_proceed:
+
+ movaps xmm0,XMMWORD[((-88))+rax]
+ movaps xmm1,XMMWORD[((-72))+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
+ movups XMMWORD[512+r8],xmm0
+ movups XMMWORD[528+r8],xmm1
+
+$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
@@ -2003,59 +2003,54 @@ $L$common_seh_tail::
pop rdi
pop rsi
DB 0F3h,0C3h ;repret
-mul_handler ENDP
-.text$ ENDS
-.pdata SEGMENT READONLY ALIGN(4)
+
+section .pdata rdata align=4
ALIGN 4
- DD imagerel $L$SEH_begin_bn_mul_mont_gather5
- DD imagerel $L$SEH_end_bn_mul_mont_gather5
- DD imagerel $L$SEH_info_bn_mul_mont_gather5
-
- DD imagerel $L$SEH_begin_bn_mul4x_mont_gather5
- DD imagerel $L$SEH_end_bn_mul4x_mont_gather5
- DD imagerel $L$SEH_info_bn_mul4x_mont_gather5
-
- DD imagerel $L$SEH_begin_bn_power5
- DD imagerel $L$SEH_end_bn_power5
- DD imagerel $L$SEH_info_bn_power5
-
- DD imagerel $L$SEH_begin_bn_from_mont8x
- DD imagerel $L$SEH_end_bn_from_mont8x
- DD imagerel $L$SEH_info_bn_from_mont8x
- DD imagerel $L$SEH_begin_bn_gather5
- DD imagerel $L$SEH_end_bn_gather5
- DD imagerel $L$SEH_info_bn_gather5
-
-.pdata ENDS
-.xdata SEGMENT READONLY ALIGN(8)
+ DD $L$SEH_begin_bn_mul_mont_gather5 wrt ..imagebase
+ DD $L$SEH_end_bn_mul_mont_gather5 wrt ..imagebase
+ DD $L$SEH_info_bn_mul_mont_gather5 wrt ..imagebase
+
+ DD $L$SEH_begin_bn_mul4x_mont_gather5 wrt ..imagebase
+ DD $L$SEH_end_bn_mul4x_mont_gather5 wrt ..imagebase
+ DD $L$SEH_info_bn_mul4x_mont_gather5 wrt ..imagebase
+
+ DD $L$SEH_begin_bn_power5 wrt ..imagebase
+ DD $L$SEH_end_bn_power5 wrt ..imagebase
+ DD $L$SEH_info_bn_power5 wrt ..imagebase
+
+ DD $L$SEH_begin_bn_from_mont8x wrt ..imagebase
+ DD $L$SEH_end_bn_from_mont8x wrt ..imagebase
+ DD $L$SEH_info_bn_from_mont8x wrt ..imagebase
+ DD $L$SEH_begin_bn_gather5 wrt ..imagebase
+ DD $L$SEH_end_bn_gather5 wrt ..imagebase
+ DD $L$SEH_info_bn_gather5 wrt ..imagebase
+
+section .xdata rdata align=8
ALIGN 8
-$L$SEH_info_bn_mul_mont_gather5::
+$L$SEH_info_bn_mul_mont_gather5:
DB 9,0,0,0
- DD imagerel mul_handler
- DD imagerel $L$mul_body,imagerel $L$mul_epilogue
+ DD mul_handler wrt ..imagebase
+ DD $L$mul_body wrt ..imagebase,$L$mul_epilogue wrt ..imagebase
ALIGN 8
-$L$SEH_info_bn_mul4x_mont_gather5::
+$L$SEH_info_bn_mul4x_mont_gather5:
DB 9,0,0,0
- DD imagerel mul_handler
- DD imagerel $L$mul4x_body,imagerel $L$mul4x_epilogue
+ DD mul_handler wrt ..imagebase
+ DD $L$mul4x_body wrt ..imagebase,$L$mul4x_epilogue wrt ..imagebase
ALIGN 8
-$L$SEH_info_bn_power5::
+$L$SEH_info_bn_power5:
DB 9,0,0,0
- DD imagerel mul_handler
- DD imagerel $L$power5_body,imagerel $L$power5_epilogue
+ DD mul_handler wrt ..imagebase
+ DD $L$power5_body wrt ..imagebase,$L$power5_epilogue wrt ..imagebase
ALIGN 8
-$L$SEH_info_bn_from_mont8x::
+$L$SEH_info_bn_from_mont8x:
DB 9,0,0,0
- DD imagerel mul_handler
- DD imagerel $L$from_body,imagerel $L$from_epilogue
+ DD mul_handler wrt ..imagebase
+ DD $L$from_body wrt ..imagebase,$L$from_epilogue wrt ..imagebase
ALIGN 8
-$L$SEH_info_bn_gather5::
-DB 001h,00dh,005h,000h
-DB 00dh,078h,001h,000h
-DB 008h,068h,000h,000h
-DB 004h,042h,000h,000h
+$L$SEH_info_bn_gather5:
+DB 0x01,0x0d,0x05,0x00
+DB 0x0d,0x78,0x01,0x00
+DB 0x08,0x68,0x00,0x00
+DB 0x04,0x42,0x00,0x00
ALIGN 8
-
-.xdata ENDS
-END
diff --git a/win-x86_64/crypto/cpu-x86_64-asm.asm b/win-x86_64/crypto/cpu-x86_64-asm.asm
index dca66f5..c92d7bb 100644
--- a/win-x86_64/crypto/cpu-x86_64-asm.asm
+++ b/win-x86_64/crypto/cpu-x86_64-asm.asm
@@ -1,14 +1,18 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
-PUBLIC OPENSSL_ia32_cpuid
+
+global OPENSSL_ia32_cpuid
ALIGN 16
-OPENSSL_ia32_cpuid PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+OPENSSL_ia32_cpuid:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_OPENSSL_ia32_cpuid::
+$L$SEH_begin_OPENSSL_ia32_cpuid:
mov rdi,rcx
@@ -18,54 +22,54 @@ $L$SEH_begin_OPENSSL_ia32_cpuid::
mov r8,rbx
xor eax,eax
- mov DWORD PTR[8+rdi],eax
+ mov DWORD[8+rdi],eax
cpuid
mov r11d,eax
xor eax,eax
- cmp ebx,0756e6547h
+ cmp ebx,0x756e6547
setne al
mov r9d,eax
- cmp edx,049656e69h
+ cmp edx,0x49656e69
setne al
or r9d,eax
- cmp ecx,06c65746eh
+ cmp ecx,0x6c65746e
setne al
or r9d,eax
- jz $L$intel
+ jz NEAR $L$intel
- cmp ebx,068747541h
+ cmp ebx,0x68747541
setne al
mov r10d,eax
- cmp edx,069746E65h
+ cmp edx,0x69746E65
setne al
or r10d,eax
- cmp ecx,0444D4163h
+ cmp ecx,0x444D4163
setne al
or r10d,eax
- jnz $L$intel
+ jnz NEAR $L$intel
- mov eax,080000000h
+ mov eax,0x80000000
cpuid
- cmp eax,080000001h
- jb $L$intel
+ cmp eax,0x80000001
+ jb NEAR $L$intel
mov r10d,eax
- mov eax,080000001h
+ mov eax,0x80000001
cpuid
or r9d,ecx
- and r9d,000000801h
+ and r9d,0x00000801
- cmp r10d,080000008h
- jb $L$intel
+ cmp r10d,0x80000008
+ jb NEAR $L$intel
- mov eax,080000008h
+ mov eax,0x80000008
cpuid
movzx r10,cl
@@ -75,84 +79,76 @@ $L$SEH_begin_OPENSSL_ia32_cpuid::
cpuid
bt edx,28
- jnc $L$generic
+ jnc NEAR $L$generic
shr ebx,16
cmp bl,r10b
- ja $L$generic
- and edx,0efffffffh
- jmp $L$generic
+ ja NEAR $L$generic
+ and edx,0xefffffff
+ jmp NEAR $L$generic
-$L$intel::
+$L$intel:
cmp r11d,4
mov r10d,-1
- jb $L$nocacheinfo
+ jb NEAR $L$nocacheinfo
mov eax,4
mov ecx,0
cpuid
mov r10d,eax
shr r10d,14
- and r10d,0fffh
+ and r10d,0xfff
cmp r11d,7
- jb $L$nocacheinfo
+ jb NEAR $L$nocacheinfo
mov eax,7
xor ecx,ecx
cpuid
- mov DWORD PTR[8+rdi],ebx
+ mov DWORD[8+rdi],ebx
-$L$nocacheinfo::
+$L$nocacheinfo:
mov eax,1
cpuid
- and edx,0bfefffffh
+ and edx,0xbfefffff
cmp r9d,0
- jne $L$notintel
- or edx,040000000h
- and ah,15
- cmp ah,15
- jne $L$notintel
- or edx,000100000h
-$L$notintel::
+ jne NEAR $L$notintel
+ or edx,0x40000000
+$L$notintel:
bt edx,28
- jnc $L$generic
- and edx,0efffffffh
+ jnc NEAR $L$generic
+ and edx,0xefffffff
cmp r10d,0
- je $L$generic
+ je NEAR $L$generic
- or edx,010000000h
+ or edx,0x10000000
shr ebx,16
cmp bl,1
- ja $L$generic
- and edx,0efffffffh
-$L$generic::
- and r9d,000000800h
- and ecx,0fffff7ffh
+ ja NEAR $L$generic
+ and edx,0xefffffff
+$L$generic:
+ and r9d,0x00000800
+ and ecx,0xfffff7ff
or r9d,ecx
mov r10d,edx
bt r9d,27
- jnc $L$clear_avx
+ jnc NEAR $L$clear_avx
xor ecx,ecx
-DB 00fh,001h,0d0h
+DB 0x0f,0x01,0xd0
and eax,6
cmp eax,6
- je $L$done
-$L$clear_avx::
- mov eax,0efffe7ffh
+ je NEAR $L$done
+$L$clear_avx:
+ mov eax,0xefffe7ff
and r9d,eax
- and DWORD PTR[8+rdi],0ffffffdfh
-$L$done::
- mov DWORD PTR[4+rdi],r9d
- mov DWORD PTR[rdi],r10d
+ and DWORD[8+rdi],0xffffffdf
+$L$done:
+ mov DWORD[4+rdi],r9d
+ mov DWORD[rdi],r10d
mov rbx,r8
- 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_OPENSSL_ia32_cpuid::
-OPENSSL_ia32_cpuid ENDP
-
+$L$SEH_end_OPENSSL_ia32_cpuid:
-.text$ ENDS
-END
diff --git a/win-x86_64/crypto/md5/md5-x86_64.asm b/win-x86_64/crypto/md5/md5-x86_64.asm
index d2faa88..0e9d2c6 100644
--- a/win-x86_64/crypto/md5/md5-x86_64.asm
+++ b/win-x86_64/crypto/md5/md5-x86_64.asm
@@ -1,14 +1,18 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
+
ALIGN 16
-PUBLIC md5_block_asm_data_order
+global md5_block_asm_data_order
-md5_block_asm_data_order PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+md5_block_asm_data_order:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_md5_block_asm_data_order::
+$L$SEH_begin_md5_block_asm_data_order:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
@@ -19,18 +23,18 @@ $L$SEH_begin_md5_block_asm_data_order::
push r12
push r14
push r15
-$L$prologue::
+$L$prologue:
mov rbp,rdi
shl rdx,6
- lea rdi,QWORD PTR[rdx*1+rsi]
- mov eax,DWORD PTR[rbp]
- mov ebx,DWORD PTR[4+rbp]
- mov ecx,DWORD PTR[8+rbp]
- mov edx,DWORD PTR[12+rbp]
+ lea rdi,[rdx*1+rsi]
+ mov eax,DWORD[rbp]
+ mov ebx,DWORD[4+rbp]
+ mov ecx,DWORD[8+rbp]
+ mov edx,DWORD[12+rbp]
@@ -39,168 +43,168 @@ $L$prologue::
cmp rsi,rdi
- je $L$end
+ je NEAR $L$end
-$L$loop::
+$L$loop:
mov r8d,eax
mov r9d,ebx
mov r14d,ecx
mov r15d,edx
- mov r10d,DWORD PTR[rsi]
+ mov r10d,DWORD[rsi]
mov r11d,edx
xor r11d,ecx
- lea eax,DWORD PTR[((-680876936))+r10*1+rax]
+ lea eax,[((-680876936))+r10*1+rax]
and r11d,ebx
xor r11d,edx
- mov r10d,DWORD PTR[4+rsi]
+ mov r10d,DWORD[4+rsi]
add eax,r11d
rol eax,7
mov r11d,ecx
add eax,ebx
xor r11d,ebx
- lea edx,DWORD PTR[((-389564586))+r10*1+rdx]
+ lea edx,[((-389564586))+r10*1+rdx]
and r11d,eax
xor r11d,ecx
- mov r10d,DWORD PTR[8+rsi]
+ mov r10d,DWORD[8+rsi]
add edx,r11d
rol edx,12
mov r11d,ebx
add edx,eax
xor r11d,eax
- lea ecx,DWORD PTR[606105819+r10*1+rcx]
+ lea ecx,[606105819+r10*1+rcx]
and r11d,edx
xor r11d,ebx
- mov r10d,DWORD PTR[12+rsi]
+ mov r10d,DWORD[12+rsi]
add ecx,r11d
rol ecx,17
mov r11d,eax
add ecx,edx
xor r11d,edx
- lea ebx,DWORD PTR[((-1044525330))+r10*1+rbx]
+ lea ebx,[((-1044525330))+r10*1+rbx]
and r11d,ecx
xor r11d,eax
- mov r10d,DWORD PTR[16+rsi]
+ mov r10d,DWORD[16+rsi]
add ebx,r11d
rol ebx,22
mov r11d,edx
add ebx,ecx
xor r11d,ecx
- lea eax,DWORD PTR[((-176418897))+r10*1+rax]
+ lea eax,[((-176418897))+r10*1+rax]
and r11d,ebx
xor r11d,edx
- mov r10d,DWORD PTR[20+rsi]
+ mov r10d,DWORD[20+rsi]
add eax,r11d
rol eax,7
mov r11d,ecx
add eax,ebx
xor r11d,ebx
- lea edx,DWORD PTR[1200080426+r10*1+rdx]
+ lea edx,[1200080426+r10*1+rdx]
and r11d,eax
xor r11d,ecx
- mov r10d,DWORD PTR[24+rsi]
+ mov r10d,DWORD[24+rsi]
add edx,r11d
rol edx,12
mov r11d,ebx
add edx,eax
xor r11d,eax
- lea ecx,DWORD PTR[((-1473231341))+r10*1+rcx]
+ lea ecx,[((-1473231341))+r10*1+rcx]
and r11d,edx
xor r11d,ebx
- mov r10d,DWORD PTR[28+rsi]
+ mov r10d,DWORD[28+rsi]
add ecx,r11d
rol ecx,17
mov r11d,eax
add ecx,edx
xor r11d,edx
- lea ebx,DWORD PTR[((-45705983))+r10*1+rbx]
+ lea ebx,[((-45705983))+r10*1+rbx]
and r11d,ecx
xor r11d,eax
- mov r10d,DWORD PTR[32+rsi]
+ mov r10d,DWORD[32+rsi]
add ebx,r11d
rol ebx,22
mov r11d,edx
add ebx,ecx
xor r11d,ecx
- lea eax,DWORD PTR[1770035416+r10*1+rax]
+ lea eax,[1770035416+r10*1+rax]
and r11d,ebx
xor r11d,edx
- mov r10d,DWORD PTR[36+rsi]
+ mov r10d,DWORD[36+rsi]
add eax,r11d
rol eax,7
mov r11d,ecx
add eax,ebx
xor r11d,ebx
- lea edx,DWORD PTR[((-1958414417))+r10*1+rdx]
+ lea edx,[((-1958414417))+r10*1+rdx]
and r11d,eax
xor r11d,ecx
- mov r10d,DWORD PTR[40+rsi]
+ mov r10d,DWORD[40+rsi]
add edx,r11d
rol edx,12
mov r11d,ebx
add edx,eax
xor r11d,eax
- lea ecx,DWORD PTR[((-42063))+r10*1+rcx]
+ lea ecx,[((-42063))+r10*1+rcx]
and r11d,edx
xor r11d,ebx
- mov r10d,DWORD PTR[44+rsi]
+ mov r10d,DWORD[44+rsi]
add ecx,r11d
rol ecx,17
mov r11d,eax
add ecx,edx
xor r11d,edx
- lea ebx,DWORD PTR[((-1990404162))+r10*1+rbx]
+ lea ebx,[((-1990404162))+r10*1+rbx]
and r11d,ecx
xor r11d,eax
- mov r10d,DWORD PTR[48+rsi]
+ mov r10d,DWORD[48+rsi]
add ebx,r11d
rol ebx,22
mov r11d,edx
add ebx,ecx
xor r11d,ecx
- lea eax,DWORD PTR[1804603682+r10*1+rax]
+ lea eax,[1804603682+r10*1+rax]
and r11d,ebx
xor r11d,edx
- mov r10d,DWORD PTR[52+rsi]
+ mov r10d,DWORD[52+rsi]
add eax,r11d
rol eax,7
mov r11d,ecx
add eax,ebx
xor r11d,ebx
- lea edx,DWORD PTR[((-40341101))+r10*1+rdx]
+ lea edx,[((-40341101))+r10*1+rdx]
and r11d,eax
xor r11d,ecx
- mov r10d,DWORD PTR[56+rsi]
+ mov r10d,DWORD[56+rsi]
add edx,r11d
rol edx,12
mov r11d,ebx
add edx,eax
xor r11d,eax
- lea ecx,DWORD PTR[((-1502002290))+r10*1+rcx]
+ lea ecx,[((-1502002290))+r10*1+rcx]
and r11d,edx
xor r11d,ebx
- mov r10d,DWORD PTR[60+rsi]
+ mov r10d,DWORD[60+rsi]
add ecx,r11d
rol ecx,17
mov r11d,eax
add ecx,edx
xor r11d,edx
- lea ebx,DWORD PTR[1236535329+r10*1+rbx]
+ lea ebx,[1236535329+r10*1+rbx]
and r11d,ecx
xor r11d,eax
- mov r10d,DWORD PTR[rsi]
+ mov r10d,DWORD[rsi]
add ebx,r11d
rol ebx,22
mov r11d,edx
add ebx,ecx
- mov r10d,DWORD PTR[4+rsi]
+ mov r10d,DWORD[4+rsi]
mov r11d,edx
mov r12d,edx
not r11d
- lea eax,DWORD PTR[((-165796510))+r10*1+rax]
+ lea eax,[((-165796510))+r10*1+rax]
and r12d,ebx
and r11d,ecx
- mov r10d,DWORD PTR[24+rsi]
+ mov r10d,DWORD[24+rsi]
or r12d,r11d
mov r11d,ecx
add eax,r12d
@@ -208,10 +212,10 @@ $L$loop::
rol eax,5
add eax,ebx
not r11d
- lea edx,DWORD PTR[((-1069501632))+r10*1+rdx]
+ lea edx,[((-1069501632))+r10*1+rdx]
and r12d,eax
and r11d,ebx
- mov r10d,DWORD PTR[44+rsi]
+ mov r10d,DWORD[44+rsi]
or r12d,r11d
mov r11d,ebx
add edx,r12d
@@ -219,10 +223,10 @@ $L$loop::
rol edx,9
add edx,eax
not r11d
- lea ecx,DWORD PTR[643717713+r10*1+rcx]
+ lea ecx,[643717713+r10*1+rcx]
and r12d,edx
and r11d,eax
- mov r10d,DWORD PTR[rsi]
+ mov r10d,DWORD[rsi]
or r12d,r11d
mov r11d,eax
add ecx,r12d
@@ -230,10 +234,10 @@ $L$loop::
rol ecx,14
add ecx,edx
not r11d
- lea ebx,DWORD PTR[((-373897302))+r10*1+rbx]
+ lea ebx,[((-373897302))+r10*1+rbx]
and r12d,ecx
and r11d,edx
- mov r10d,DWORD PTR[20+rsi]
+ mov r10d,DWORD[20+rsi]
or r12d,r11d
mov r11d,edx
add ebx,r12d
@@ -241,10 +245,10 @@ $L$loop::
rol ebx,20
add ebx,ecx
not r11d
- lea eax,DWORD PTR[((-701558691))+r10*1+rax]
+ lea eax,[((-701558691))+r10*1+rax]
and r12d,ebx
and r11d,ecx
- mov r10d,DWORD PTR[40+rsi]
+ mov r10d,DWORD[40+rsi]
or r12d,r11d
mov r11d,ecx
add eax,r12d
@@ -252,10 +256,10 @@ $L$loop::
rol eax,5
add eax,ebx
not r11d
- lea edx,DWORD PTR[38016083+r10*1+rdx]
+ lea edx,[38016083+r10*1+rdx]
and r12d,eax
and r11d,ebx
- mov r10d,DWORD PTR[60+rsi]
+ mov r10d,DWORD[60+rsi]
or r12d,r11d
mov r11d,ebx
add edx,r12d
@@ -263,10 +267,10 @@ $L$loop::
rol edx,9
add edx,eax
not r11d
- lea ecx,DWORD PTR[((-660478335))+r10*1+rcx]
+ lea ecx,[((-660478335))+r10*1+rcx]
and r12d,edx
and r11d,eax
- mov r10d,DWORD PTR[16+rsi]
+ mov r10d,DWORD[16+rsi]
or r12d,r11d
mov r11d,eax
add ecx,r12d
@@ -274,10 +278,10 @@ $L$loop::
rol ecx,14
add ecx,edx
not r11d
- lea ebx,DWORD PTR[((-405537848))+r10*1+rbx]
+ lea ebx,[((-405537848))+r10*1+rbx]
and r12d,ecx
and r11d,edx
- mov r10d,DWORD PTR[36+rsi]
+ mov r10d,DWORD[36+rsi]
or r12d,r11d
mov r11d,edx
add ebx,r12d
@@ -285,10 +289,10 @@ $L$loop::
rol ebx,20
add ebx,ecx
not r11d
- lea eax,DWORD PTR[568446438+r10*1+rax]
+ lea eax,[568446438+r10*1+rax]
and r12d,ebx
and r11d,ecx
- mov r10d,DWORD PTR[56+rsi]
+ mov r10d,DWORD[56+rsi]
or r12d,r11d
mov r11d,ecx
add eax,r12d
@@ -296,10 +300,10 @@ $L$loop::
rol eax,5
add eax,ebx
not r11d
- lea edx,DWORD PTR[((-1019803690))+r10*1+rdx]
+ lea edx,[((-1019803690))+r10*1+rdx]
and r12d,eax
and r11d,ebx
- mov r10d,DWORD PTR[12+rsi]
+ mov r10d,DWORD[12+rsi]
or r12d,r11d
mov r11d,ebx
add edx,r12d
@@ -307,10 +311,10 @@ $L$loop::
rol edx,9
add edx,eax
not r11d
- lea ecx,DWORD PTR[((-187363961))+r10*1+rcx]
+ lea ecx,[((-187363961))+r10*1+rcx]
and r12d,edx
and r11d,eax
- mov r10d,DWORD PTR[32+rsi]
+ mov r10d,DWORD[32+rsi]
or r12d,r11d
mov r11d,eax
add ecx,r12d
@@ -318,10 +322,10 @@ $L$loop::
rol ecx,14
add ecx,edx
not r11d
- lea ebx,DWORD PTR[1163531501+r10*1+rbx]
+ lea ebx,[1163531501+r10*1+rbx]
and r12d,ecx
and r11d,edx
- mov r10d,DWORD PTR[52+rsi]
+ mov r10d,DWORD[52+rsi]
or r12d,r11d
mov r11d,edx
add ebx,r12d
@@ -329,10 +333,10 @@ $L$loop::
rol ebx,20
add ebx,ecx
not r11d
- lea eax,DWORD PTR[((-1444681467))+r10*1+rax]
+ lea eax,[((-1444681467))+r10*1+rax]
and r12d,ebx
and r11d,ecx
- mov r10d,DWORD PTR[8+rsi]
+ mov r10d,DWORD[8+rsi]
or r12d,r11d
mov r11d,ecx
add eax,r12d
@@ -340,10 +344,10 @@ $L$loop::
rol eax,5
add eax,ebx
not r11d
- lea edx,DWORD PTR[((-51403784))+r10*1+rdx]
+ lea edx,[((-51403784))+r10*1+rdx]
and r12d,eax
and r11d,ebx
- mov r10d,DWORD PTR[28+rsi]
+ mov r10d,DWORD[28+rsi]
or r12d,r11d
mov r11d,ebx
add edx,r12d
@@ -351,10 +355,10 @@ $L$loop::
rol edx,9
add edx,eax
not r11d
- lea ecx,DWORD PTR[1735328473+r10*1+rcx]
+ lea ecx,[1735328473+r10*1+rcx]
and r12d,edx
and r11d,eax
- mov r10d,DWORD PTR[48+rsi]
+ mov r10d,DWORD[48+rsi]
or r12d,r11d
mov r11d,eax
add ecx,r12d
@@ -362,290 +366,290 @@ $L$loop::
rol ecx,14
add ecx,edx
not r11d
- lea ebx,DWORD PTR[((-1926607734))+r10*1+rbx]
+ lea ebx,[((-1926607734))+r10*1+rbx]
and r12d,ecx
and r11d,edx
- mov r10d,DWORD PTR[rsi]
+ mov r10d,DWORD[rsi]
or r12d,r11d
mov r11d,edx
add ebx,r12d
mov r12d,edx
rol ebx,20
add ebx,ecx
- mov r10d,DWORD PTR[20+rsi]
+ mov r10d,DWORD[20+rsi]
mov r11d,ecx
- lea eax,DWORD PTR[((-378558))+r10*1+rax]
- mov r10d,DWORD PTR[32+rsi]
+ lea eax,[((-378558))+r10*1+rax]
+ mov r10d,DWORD[32+rsi]
xor r11d,edx
xor r11d,ebx
add eax,r11d
rol eax,4
mov r11d,ebx
add eax,ebx
- lea edx,DWORD PTR[((-2022574463))+r10*1+rdx]
- mov r10d,DWORD PTR[44+rsi]
+ lea edx,[((-2022574463))+r10*1+rdx]
+ mov r10d,DWORD[44+rsi]
xor r11d,ecx
xor r11d,eax
add edx,r11d
rol edx,11
mov r11d,eax
add edx,eax
- lea ecx,DWORD PTR[1839030562+r10*1+rcx]
- mov r10d,DWORD PTR[56+rsi]
+ lea ecx,[1839030562+r10*1+rcx]
+ mov r10d,DWORD[56+rsi]
xor r11d,ebx
xor r11d,edx
add ecx,r11d
rol ecx,16
mov r11d,edx
add ecx,edx
- lea ebx,DWORD PTR[((-35309556))+r10*1+rbx]
- mov r10d,DWORD PTR[4+rsi]
+ lea ebx,[((-35309556))+r10*1+rbx]
+ mov r10d,DWORD[4+rsi]
xor r11d,eax
xor r11d,ecx
add ebx,r11d
rol ebx,23
mov r11d,ecx
add ebx,ecx
- lea eax,DWORD PTR[((-1530992060))+r10*1+rax]
- mov r10d,DWORD PTR[16+rsi]
+ lea eax,[((-1530992060))+r10*1+rax]
+ mov r10d,DWORD[16+rsi]
xor r11d,edx
xor r11d,ebx
add eax,r11d
rol eax,4
mov r11d,ebx
add eax,ebx
- lea edx,DWORD PTR[1272893353+r10*1+rdx]
- mov r10d,DWORD PTR[28+rsi]
+ lea edx,[1272893353+r10*1+rdx]
+ mov r10d,DWORD[28+rsi]
xor r11d,ecx
xor r11d,eax
add edx,r11d
rol edx,11
mov r11d,eax
add edx,eax
- lea ecx,DWORD PTR[((-155497632))+r10*1+rcx]
- mov r10d,DWORD PTR[40+rsi]
+ lea ecx,[((-155497632))+r10*1+rcx]
+ mov r10d,DWORD[40+rsi]
xor r11d,ebx
xor r11d,edx
add ecx,r11d
rol ecx,16
mov r11d,edx
add ecx,edx
- lea ebx,DWORD PTR[((-1094730640))+r10*1+rbx]
- mov r10d,DWORD PTR[52+rsi]
+ lea ebx,[((-1094730640))+r10*1+rbx]
+ mov r10d,DWORD[52+rsi]
xor r11d,eax
xor r11d,ecx
add ebx,r11d
rol ebx,23
mov r11d,ecx
add ebx,ecx
- lea eax,DWORD PTR[681279174+r10*1+rax]
- mov r10d,DWORD PTR[rsi]
+ lea eax,[681279174+r10*1+rax]
+ mov r10d,DWORD[rsi]
xor r11d,edx
xor r11d,ebx
add eax,r11d
rol eax,4
mov r11d,ebx
add eax,ebx
- lea edx,DWORD PTR[((-358537222))+r10*1+rdx]
- mov r10d,DWORD PTR[12+rsi]
+ lea edx,[((-358537222))+r10*1+rdx]
+ mov r10d,DWORD[12+rsi]
xor r11d,ecx
xor r11d,eax
add edx,r11d
rol edx,11
mov r11d,eax
add edx,eax
- lea ecx,DWORD PTR[((-722521979))+r10*1+rcx]
- mov r10d,DWORD PTR[24+rsi]
+ lea ecx,[((-722521979))+r10*1+rcx]
+ mov r10d,DWORD[24+rsi]
xor r11d,ebx
xor r11d,edx
add ecx,r11d
rol ecx,16
mov r11d,edx
add ecx,edx
- lea ebx,DWORD PTR[76029189+r10*1+rbx]
- mov r10d,DWORD PTR[36+rsi]
+ lea ebx,[76029189+r10*1+rbx]
+ mov r10d,DWORD[36+rsi]
xor r11d,eax
xor r11d,ecx
add ebx,r11d
rol ebx,23
mov r11d,ecx
add ebx,ecx
- lea eax,DWORD PTR[((-640364487))+r10*1+rax]
- mov r10d,DWORD PTR[48+rsi]
+ lea eax,[((-640364487))+r10*1+rax]
+ mov r10d,DWORD[48+rsi]
xor r11d,edx
xor r11d,ebx
add eax,r11d
rol eax,4
mov r11d,ebx
add eax,ebx
- lea edx,DWORD PTR[((-421815835))+r10*1+rdx]
- mov r10d,DWORD PTR[60+rsi]
+ lea edx,[((-421815835))+r10*1+rdx]
+ mov r10d,DWORD[60+rsi]
xor r11d,ecx
xor r11d,eax
add edx,r11d
rol edx,11
mov r11d,eax
add edx,eax
- lea ecx,DWORD PTR[530742520+r10*1+rcx]
- mov r10d,DWORD PTR[8+rsi]
+ lea ecx,[530742520+r10*1+rcx]
+ mov r10d,DWORD[8+rsi]
xor r11d,ebx
xor r11d,edx
add ecx,r11d
rol ecx,16
mov r11d,edx
add ecx,edx
- lea ebx,DWORD PTR[((-995338651))+r10*1+rbx]
- mov r10d,DWORD PTR[rsi]
+ lea ebx,[((-995338651))+r10*1+rbx]
+ mov r10d,DWORD[rsi]
xor r11d,eax
xor r11d,ecx
add ebx,r11d
rol ebx,23
mov r11d,ecx
add ebx,ecx
- mov r10d,DWORD PTR[rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[rsi]
+ mov r11d,0xffffffff
xor r11d,edx
- lea eax,DWORD PTR[((-198630844))+r10*1+rax]
+ lea eax,[((-198630844))+r10*1+rax]
or r11d,ebx
xor r11d,ecx
add eax,r11d
- mov r10d,DWORD PTR[28+rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[28+rsi]
+ mov r11d,0xffffffff
rol eax,6
xor r11d,ecx
add eax,ebx
- lea edx,DWORD PTR[1126891415+r10*1+rdx]
+ lea edx,[1126891415+r10*1+rdx]
or r11d,eax
xor r11d,ebx
add edx,r11d
- mov r10d,DWORD PTR[56+rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[56+rsi]
+ mov r11d,0xffffffff
rol edx,10
xor r11d,ebx
add edx,eax
- lea ecx,DWORD PTR[((-1416354905))+r10*1+rcx]
+ lea ecx,[((-1416354905))+r10*1+rcx]
or r11d,edx
xor r11d,eax
add ecx,r11d
- mov r10d,DWORD PTR[20+rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[20+rsi]
+ mov r11d,0xffffffff
rol ecx,15
xor r11d,eax
add ecx,edx
- lea ebx,DWORD PTR[((-57434055))+r10*1+rbx]
+ lea ebx,[((-57434055))+r10*1+rbx]
or r11d,ecx
xor r11d,edx
add ebx,r11d
- mov r10d,DWORD PTR[48+rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[48+rsi]
+ mov r11d,0xffffffff
rol ebx,21
xor r11d,edx
add ebx,ecx
- lea eax,DWORD PTR[1700485571+r10*1+rax]
+ lea eax,[1700485571+r10*1+rax]
or r11d,ebx
xor r11d,ecx
add eax,r11d
- mov r10d,DWORD PTR[12+rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[12+rsi]
+ mov r11d,0xffffffff
rol eax,6
xor r11d,ecx
add eax,ebx
- lea edx,DWORD PTR[((-1894986606))+r10*1+rdx]
+ lea edx,[((-1894986606))+r10*1+rdx]
or r11d,eax
xor r11d,ebx
add edx,r11d
- mov r10d,DWORD PTR[40+rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[40+rsi]
+ mov r11d,0xffffffff
rol edx,10
xor r11d,ebx
add edx,eax
- lea ecx,DWORD PTR[((-1051523))+r10*1+rcx]
+ lea ecx,[((-1051523))+r10*1+rcx]
or r11d,edx
xor r11d,eax
add ecx,r11d
- mov r10d,DWORD PTR[4+rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[4+rsi]
+ mov r11d,0xffffffff
rol ecx,15
xor r11d,eax
add ecx,edx
- lea ebx,DWORD PTR[((-2054922799))+r10*1+rbx]
+ lea ebx,[((-2054922799))+r10*1+rbx]
or r11d,ecx
xor r11d,edx
add ebx,r11d
- mov r10d,DWORD PTR[32+rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[32+rsi]
+ mov r11d,0xffffffff
rol ebx,21
xor r11d,edx
add ebx,ecx
- lea eax,DWORD PTR[1873313359+r10*1+rax]
+ lea eax,[1873313359+r10*1+rax]
or r11d,ebx
xor r11d,ecx
add eax,r11d
- mov r10d,DWORD PTR[60+rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[60+rsi]
+ mov r11d,0xffffffff
rol eax,6
xor r11d,ecx
add eax,ebx
- lea edx,DWORD PTR[((-30611744))+r10*1+rdx]
+ lea edx,[((-30611744))+r10*1+rdx]
or r11d,eax
xor r11d,ebx
add edx,r11d
- mov r10d,DWORD PTR[24+rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[24+rsi]
+ mov r11d,0xffffffff
rol edx,10
xor r11d,ebx
add edx,eax
- lea ecx,DWORD PTR[((-1560198380))+r10*1+rcx]
+ lea ecx,[((-1560198380))+r10*1+rcx]
or r11d,edx
xor r11d,eax
add ecx,r11d
- mov r10d,DWORD PTR[52+rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[52+rsi]
+ mov r11d,0xffffffff
rol ecx,15
xor r11d,eax
add ecx,edx
- lea ebx,DWORD PTR[1309151649+r10*1+rbx]
+ lea ebx,[1309151649+r10*1+rbx]
or r11d,ecx
xor r11d,edx
add ebx,r11d
- mov r10d,DWORD PTR[16+rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[16+rsi]
+ mov r11d,0xffffffff
rol ebx,21
xor r11d,edx
add ebx,ecx
- lea eax,DWORD PTR[((-145523070))+r10*1+rax]
+ lea eax,[((-145523070))+r10*1+rax]
or r11d,ebx
xor r11d,ecx
add eax,r11d
- mov r10d,DWORD PTR[44+rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[44+rsi]
+ mov r11d,0xffffffff
rol eax,6
xor r11d,ecx
add eax,ebx
- lea edx,DWORD PTR[((-1120210379))+r10*1+rdx]
+ lea edx,[((-1120210379))+r10*1+rdx]
or r11d,eax
xor r11d,ebx
add edx,r11d
- mov r10d,DWORD PTR[8+rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[8+rsi]
+ mov r11d,0xffffffff
rol edx,10
xor r11d,ebx
add edx,eax
- lea ecx,DWORD PTR[718787259+r10*1+rcx]
+ lea ecx,[718787259+r10*1+rcx]
or r11d,edx
xor r11d,eax
add ecx,r11d
- mov r10d,DWORD PTR[36+rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[36+rsi]
+ mov r11d,0xffffffff
rol ecx,15
xor r11d,eax
add ecx,edx
- lea ebx,DWORD PTR[((-343485551))+r10*1+rbx]
+ lea ebx,[((-343485551))+r10*1+rbx]
or r11d,ecx
xor r11d,edx
add ebx,r11d
- mov r10d,DWORD PTR[rsi]
- mov r11d,0ffffffffh
+ mov r10d,DWORD[rsi]
+ mov r11d,0xffffffff
rol ebx,21
xor r11d,edx
add ebx,ecx
@@ -658,31 +662,30 @@ $L$loop::
add rsi,64
cmp rsi,rdi
- jb $L$loop
+ jb NEAR $L$loop
-$L$end::
- mov DWORD PTR[rbp],eax
- mov DWORD PTR[4+rbp],ebx
- mov DWORD PTR[8+rbp],ecx
- mov DWORD PTR[12+rbp],edx
+$L$end:
+ mov DWORD[rbp],eax
+ mov DWORD[4+rbp],ebx
+ mov DWORD[8+rbp],ecx
+ mov DWORD[12+rbp],edx
- mov r15,QWORD PTR[rsp]
- mov r14,QWORD PTR[8+rsp]
- mov r12,QWORD PTR[16+rsp]
- mov rbx,QWORD PTR[24+rsp]
- mov rbp,QWORD PTR[32+rsp]
+ mov r15,QWORD[rsp]
+ mov r14,QWORD[8+rsp]
+ mov r12,QWORD[16+rsp]
+ mov rbx,QWORD[24+rsp]
+ mov rbp,QWORD[32+rsp]
add rsp,40
-$L$epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+$L$epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_md5_block_asm_data_order::
-md5_block_asm_data_order ENDP
-EXTERN __imp_RtlVirtualUnwind:NEAR
+$L$SEH_end_md5_block_asm_data_order:
+EXTERN __imp_RtlVirtualUnwind
ALIGN 16
-se_handler PROC PRIVATE
+se_handler:
push rsi
push rdi
push rbx
@@ -694,57 +697,57 @@ 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$prologue]
+ lea r10,[$L$prologue]
cmp rbx,r10
- jb $L$in_prologue
+ jb NEAR $L$in_prologue
- mov rax,QWORD PTR[152+r8]
+ mov rax,QWORD[152+r8]
- lea r10,QWORD PTR[$L$epilogue]
+ lea r10,[$L$epilogue]
cmp rbx,r10
- jae $L$in_prologue
-
- lea rax,QWORD PTR[40+rax]
-
- mov rbp,QWORD PTR[((-8))+rax]
- mov rbx,QWORD PTR[((-16))+rax]
- mov r12,QWORD PTR[((-24))+rax]
- mov r14,QWORD PTR[((-32))+rax]
- mov r15,QWORD PTR[((-40))+rax]
- mov QWORD PTR[144+r8],rbx
- mov QWORD PTR[160+r8],rbp
- mov QWORD PTR[216+r8],r12
- mov QWORD PTR[232+r8],r14
- mov QWORD PTR[240+r8],r15
-
-$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
-
- mov rdi,QWORD PTR[40+r9]
+ jae NEAR $L$in_prologue
+
+ lea rax,[40+rax]
+
+ mov rbp,QWORD[((-8))+rax]
+ mov rbx,QWORD[((-16))+rax]
+ mov r12,QWORD[((-24))+rax]
+ mov r14,QWORD[((-32))+rax]
+ mov r15,QWORD[((-40))+rax]
+ mov QWORD[144+r8],rbx
+ mov QWORD[160+r8],rbp
+ mov QWORD[216+r8],r12
+ mov QWORD[232+r8],r14
+ mov QWORD[240+r8],r15
+
+$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[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
@@ -758,21 +761,16 @@ $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_md5_block_asm_data_order
- DD imagerel $L$SEH_end_md5_block_asm_data_order
- DD imagerel $L$SEH_info_md5_block_asm_data_order
+ DD $L$SEH_begin_md5_block_asm_data_order wrt ..imagebase
+ DD $L$SEH_end_md5_block_asm_data_order wrt ..imagebase
+ DD $L$SEH_info_md5_block_asm_data_order wrt ..imagebase
-.pdata ENDS
-.xdata SEGMENT READONLY ALIGN(8)
+section .xdata rdata align=8
ALIGN 8
-$L$SEH_info_md5_block_asm_data_order::
+$L$SEH_info_md5_block_asm_data_order:
DB 9,0,0,0
- DD imagerel se_handler
-
-.xdata ENDS
-END
+ DD se_handler wrt ..imagebase
diff --git a/win-x86_64/crypto/modes/aesni-gcm-x86_64.asm b/win-x86_64/crypto/modes/aesni-gcm-x86_64.asm
index 828be8d..d7fff6a 100644
--- a/win-x86_64/crypto/modes/aesni-gcm-x86_64.asm
+++ b/win-x86_64/crypto/modes/aesni-gcm-x86_64.asm
@@ -1,19 +1,20 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
-PUBLIC aesni_gcm_encrypt
-aesni_gcm_encrypt PROC PUBLIC
+global aesni_gcm_encrypt
+
+aesni_gcm_encrypt:
xor eax,eax
DB 0F3h,0C3h ;repret
-aesni_gcm_encrypt ENDP
-PUBLIC aesni_gcm_decrypt
-aesni_gcm_decrypt PROC PUBLIC
+global aesni_gcm_decrypt
+
+aesni_gcm_decrypt:
xor eax,eax
DB 0F3h,0C3h ;repret
-aesni_gcm_decrypt ENDP
-.text$ ENDS
-END
diff --git a/win-x86_64/crypto/modes/ghash-x86_64.asm b/win-x86_64/crypto/modes/ghash-x86_64.asm
index 9993d75..5d8fadc 100644
--- a/win-x86_64/crypto/modes/ghash-x86_64.asm
+++ b/win-x86_64/crypto/modes/ghash-x86_64.asm
@@ -1,15 +1,19 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
-EXTERN OPENSSL_ia32cap_P:NEAR
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
-PUBLIC gcm_gmult_4bit
+EXTERN OPENSSL_ia32cap_P
+
+global gcm_gmult_4bit
ALIGN 16
-gcm_gmult_4bit PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+gcm_gmult_4bit:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_gcm_gmult_4bit::
+$L$SEH_begin_gcm_gmult_4bit:
mov rdi,rcx
mov rsi,rdx
@@ -17,98 +21,97 @@ $L$SEH_begin_gcm_gmult_4bit::
push rbx
push rbp
push r12
-$L$gmult_prologue::
+$L$gmult_prologue:
- movzx r8,BYTE PTR[15+rdi]
- lea r11,QWORD PTR[$L$rem_4bit]
+ movzx r8,BYTE[15+rdi]
+ lea r11,[$L$rem_4bit]
xor rax,rax
xor rbx,rbx
mov al,r8b
mov bl,r8b
shl al,4
mov rcx,14
- mov r8,QWORD PTR[8+rax*1+rsi]
- mov r9,QWORD PTR[rax*1+rsi]
- and bl,0f0h
+ mov r8,QWORD[8+rax*1+rsi]
+ mov r9,QWORD[rax*1+rsi]
+ and bl,0xf0
mov rdx,r8
- jmp $L$oop1
+ jmp NEAR $L$oop1
ALIGN 16
-$L$oop1::
+$L$oop1:
shr r8,4
- and rdx,0fh
+ and rdx,0xf
mov r10,r9
- mov al,BYTE PTR[rcx*1+rdi]
+ mov al,BYTE[rcx*1+rdi]
shr r9,4
- xor r8,QWORD PTR[8+rbx*1+rsi]
+ xor r8,QWORD[8+rbx*1+rsi]
shl r10,60
- xor r9,QWORD PTR[rbx*1+rsi]
+ xor r9,QWORD[rbx*1+rsi]
mov bl,al
- xor r9,QWORD PTR[rdx*8+r11]
+ xor r9,QWORD[rdx*8+r11]
mov rdx,r8
shl al,4
xor r8,r10
dec rcx
- js $L$break1
+ js NEAR $L$break1
shr r8,4
- and rdx,0fh
+ and rdx,0xf
mov r10,r9
shr r9,4
- xor r8,QWORD PTR[8+rax*1+rsi]
+ xor r8,QWORD[8+rax*1+rsi]
shl r10,60
- xor r9,QWORD PTR[rax*1+rsi]
- and bl,0f0h
- xor r9,QWORD PTR[rdx*8+r11]
+ xor r9,QWORD[rax*1+rsi]
+ and bl,0xf0
+ xor r9,QWORD[rdx*8+r11]
mov rdx,r8
xor r8,r10
- jmp $L$oop1
+ jmp NEAR $L$oop1
ALIGN 16
-$L$break1::
+$L$break1:
shr r8,4
- and rdx,0fh
+ and rdx,0xf
mov r10,r9
shr r9,4
- xor r8,QWORD PTR[8+rax*1+rsi]
+ xor r8,QWORD[8+rax*1+rsi]
shl r10,60
- xor r9,QWORD PTR[rax*1+rsi]
- and bl,0f0h
- xor r9,QWORD PTR[rdx*8+r11]
+ xor r9,QWORD[rax*1+rsi]
+ and bl,0xf0
+ xor r9,QWORD[rdx*8+r11]
mov rdx,r8
xor r8,r10
shr r8,4
- and rdx,0fh
+ and rdx,0xf
mov r10,r9
shr r9,4
- xor r8,QWORD PTR[8+rbx*1+rsi]
+ xor r8,QWORD[8+rbx*1+rsi]
shl r10,60
- xor r9,QWORD PTR[rbx*1+rsi]
+ xor r9,QWORD[rbx*1+rsi]
xor r8,r10
- xor r9,QWORD PTR[rdx*8+r11]
+ xor r9,QWORD[rdx*8+r11]
bswap r8
bswap r9
- mov QWORD PTR[8+rdi],r8
- mov QWORD PTR[rdi],r9
-
- mov rbx,QWORD PTR[16+rsp]
- lea rsp,QWORD PTR[24+rsp]
-$L$gmult_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ mov QWORD[8+rdi],r8
+ mov QWORD[rdi],r9
+
+ mov rbx,QWORD[16+rsp]
+ lea rsp,[24+rsp]
+$L$gmult_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_gcm_gmult_4bit::
-gcm_gmult_4bit ENDP
-PUBLIC gcm_ghash_4bit
+$L$SEH_end_gcm_gmult_4bit:
+global gcm_ghash_4bit
ALIGN 16
-gcm_ghash_4bit PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+gcm_ghash_4bit:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_gcm_ghash_4bit::
+$L$SEH_begin_gcm_ghash_4bit:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
@@ -122,218 +125,218 @@ $L$SEH_begin_gcm_ghash_4bit::
push r14
push r15
sub rsp,280
-$L$ghash_prologue::
+$L$ghash_prologue:
mov r14,rdx
mov r15,rcx
sub rsi,-128
- lea rbp,QWORD PTR[((16+128))+rsp]
+ lea rbp,[((16+128))+rsp]
xor edx,edx
- mov r8,QWORD PTR[((0+0-128))+rsi]
- mov rax,QWORD PTR[((0+8-128))+rsi]
+ mov r8,QWORD[((0+0-128))+rsi]
+ mov rax,QWORD[((0+8-128))+rsi]
mov dl,al
shr rax,4
mov r10,r8
shr r8,4
- mov r9,QWORD PTR[((16+0-128))+rsi]
+ mov r9,QWORD[((16+0-128))+rsi]
shl dl,4
- mov rbx,QWORD PTR[((16+8-128))+rsi]
+ mov rbx,QWORD[((16+8-128))+rsi]
shl r10,60
- mov BYTE PTR[rsp],dl
+ mov BYTE[rsp],dl
or rax,r10
mov dl,bl
shr rbx,4
mov r10,r9
shr r9,4
- mov QWORD PTR[rbp],r8
- mov r8,QWORD PTR[((32+0-128))+rsi]
+ mov QWORD[rbp],r8
+ mov r8,QWORD[((32+0-128))+rsi]
shl dl,4
- mov QWORD PTR[((0-128))+rbp],rax
- mov rax,QWORD PTR[((32+8-128))+rsi]
+ mov QWORD[((0-128))+rbp],rax
+ mov rax,QWORD[((32+8-128))+rsi]
shl r10,60
- mov BYTE PTR[1+rsp],dl
+ mov BYTE[1+rsp],dl
or rbx,r10
mov dl,al
shr rax,4
mov r10,r8
shr r8,4
- mov QWORD PTR[8+rbp],r9
- mov r9,QWORD PTR[((48+0-128))+rsi]
+ mov QWORD[8+rbp],r9
+ mov r9,QWORD[((48+0-128))+rsi]
shl dl,4
- mov QWORD PTR[((8-128))+rbp],rbx
- mov rbx,QWORD PTR[((48+8-128))+rsi]
+ mov QWORD[((8-128))+rbp],rbx
+ mov rbx,QWORD[((48+8-128))+rsi]
shl r10,60
- mov BYTE PTR[2+rsp],dl
+ mov BYTE[2+rsp],dl
or rax,r10
mov dl,bl
shr rbx,4
mov r10,r9
shr r9,4
- mov QWORD PTR[16+rbp],r8
- mov r8,QWORD PTR[((64+0-128))+rsi]
+ mov QWORD[16+rbp],r8
+ mov r8,QWORD[((64+0-128))+rsi]
shl dl,4
- mov QWORD PTR[((16-128))+rbp],rax
- mov rax,QWORD PTR[((64+8-128))+rsi]
+ mov QWORD[((16-128))+rbp],rax
+ mov rax,QWORD[((64+8-128))+rsi]
shl r10,60
- mov BYTE PTR[3+rsp],dl
+ mov BYTE[3+rsp],dl
or rbx,r10
mov dl,al
shr rax,4
mov r10,r8
shr r8,4
- mov QWORD PTR[24+rbp],r9
- mov r9,QWORD PTR[((80+0-128))+rsi]
+ mov QWORD[24+rbp],r9
+ mov r9,QWORD[((80+0-128))+rsi]
shl dl,4
- mov QWORD PTR[((24-128))+rbp],rbx
- mov rbx,QWORD PTR[((80+8-128))+rsi]
+ mov QWORD[((24-128))+rbp],rbx
+ mov rbx,QWORD[((80+8-128))+rsi]
shl r10,60
- mov BYTE PTR[4+rsp],dl
+ mov BYTE[4+rsp],dl
or rax,r10
mov dl,bl
shr rbx,4
mov r10,r9
shr r9,4
- mov QWORD PTR[32+rbp],r8
- mov r8,QWORD PTR[((96+0-128))+rsi]
+ mov QWORD[32+rbp],r8
+ mov r8,QWORD[((96+0-128))+rsi]
shl dl,4
- mov QWORD PTR[((32-128))+rbp],rax
- mov rax,QWORD PTR[((96+8-128))+rsi]
+ mov QWORD[((32-128))+rbp],rax
+ mov rax,QWORD[((96+8-128))+rsi]
shl r10,60
- mov BYTE PTR[5+rsp],dl
+ mov BYTE[5+rsp],dl
or rbx,r10
mov dl,al
shr rax,4
mov r10,r8
shr r8,4
- mov QWORD PTR[40+rbp],r9
- mov r9,QWORD PTR[((112+0-128))+rsi]
+ mov QWORD[40+rbp],r9
+ mov r9,QWORD[((112+0-128))+rsi]
shl dl,4
- mov QWORD PTR[((40-128))+rbp],rbx
- mov rbx,QWORD PTR[((112+8-128))+rsi]
+ mov QWORD[((40-128))+rbp],rbx
+ mov rbx,QWORD[((112+8-128))+rsi]
shl r10,60
- mov BYTE PTR[6+rsp],dl
+ mov BYTE[6+rsp],dl
or rax,r10
mov dl,bl
shr rbx,4
mov r10,r9
shr r9,4
- mov QWORD PTR[48+rbp],r8
- mov r8,QWORD PTR[((128+0-128))+rsi]
+ mov QWORD[48+rbp],r8
+ mov r8,QWORD[((128+0-128))+rsi]
shl dl,4
- mov QWORD PTR[((48-128))+rbp],rax
- mov rax,QWORD PTR[((128+8-128))+rsi]
+ mov QWORD[((48-128))+rbp],rax
+ mov rax,QWORD[((128+8-128))+rsi]
shl r10,60
- mov BYTE PTR[7+rsp],dl
+ mov BYTE[7+rsp],dl
or rbx,r10
mov dl,al
shr rax,4
mov r10,r8
shr r8,4
- mov QWORD PTR[56+rbp],r9
- mov r9,QWORD PTR[((144+0-128))+rsi]
+ mov QWORD[56+rbp],r9
+ mov r9,QWORD[((144+0-128))+rsi]
shl dl,4
- mov QWORD PTR[((56-128))+rbp],rbx
- mov rbx,QWORD PTR[((144+8-128))+rsi]
+ mov QWORD[((56-128))+rbp],rbx
+ mov rbx,QWORD[((144+8-128))+rsi]
shl r10,60
- mov BYTE PTR[8+rsp],dl
+ mov BYTE[8+rsp],dl
or rax,r10
mov dl,bl
shr rbx,4
mov r10,r9
shr r9,4
- mov QWORD PTR[64+rbp],r8
- mov r8,QWORD PTR[((160+0-128))+rsi]
+ mov QWORD[64+rbp],r8
+ mov r8,QWORD[((160+0-128))+rsi]
shl dl,4
- mov QWORD PTR[((64-128))+rbp],rax
- mov rax,QWORD PTR[((160+8-128))+rsi]
+ mov QWORD[((64-128))+rbp],rax
+ mov rax,QWORD[((160+8-128))+rsi]
shl r10,60
- mov BYTE PTR[9+rsp],dl
+ mov BYTE[9+rsp],dl
or rbx,r10
mov dl,al
shr rax,4
mov r10,r8
shr r8,4
- mov QWORD PTR[72+rbp],r9
- mov r9,QWORD PTR[((176+0-128))+rsi]
+ mov QWORD[72+rbp],r9
+ mov r9,QWORD[((176+0-128))+rsi]
shl dl,4
- mov QWORD PTR[((72-128))+rbp],rbx
- mov rbx,QWORD PTR[((176+8-128))+rsi]
+ mov QWORD[((72-128))+rbp],rbx
+ mov rbx,QWORD[((176+8-128))+rsi]
shl r10,60
- mov BYTE PTR[10+rsp],dl
+ mov BYTE[10+rsp],dl
or rax,r10
mov dl,bl
shr rbx,4
mov r10,r9
shr r9,4
- mov QWORD PTR[80+rbp],r8
- mov r8,QWORD PTR[((192+0-128))+rsi]
+ mov QWORD[80+rbp],r8
+ mov r8,QWORD[((192+0-128))+rsi]
shl dl,4
- mov QWORD PTR[((80-128))+rbp],rax
- mov rax,QWORD PTR[((192+8-128))+rsi]
+ mov QWORD[((80-128))+rbp],rax
+ mov rax,QWORD[((192+8-128))+rsi]
shl r10,60
- mov BYTE PTR[11+rsp],dl
+ mov BYTE[11+rsp],dl
or rbx,r10
mov dl,al
shr rax,4
mov r10,r8
shr r8,4
- mov QWORD PTR[88+rbp],r9
- mov r9,QWORD PTR[((208+0-128))+rsi]
+ mov QWORD[88+rbp],r9
+ mov r9,QWORD[((208+0-128))+rsi]
shl dl,4
- mov QWORD PTR[((88-128))+rbp],rbx
- mov rbx,QWORD PTR[((208+8-128))+rsi]
+ mov QWORD[((88-128))+rbp],rbx
+ mov rbx,QWORD[((208+8-128))+rsi]
shl r10,60
- mov BYTE PTR[12+rsp],dl
+ mov BYTE[12+rsp],dl
or rax,r10
mov dl,bl
shr rbx,4
mov r10,r9
shr r9,4
- mov QWORD PTR[96+rbp],r8
- mov r8,QWORD PTR[((224+0-128))+rsi]
+ mov QWORD[96+rbp],r8
+ mov r8,QWORD[((224+0-128))+rsi]
shl dl,4
- mov QWORD PTR[((96-128))+rbp],rax
- mov rax,QWORD PTR[((224+8-128))+rsi]
+ mov QWORD[((96-128))+rbp],rax
+ mov rax,QWORD[((224+8-128))+rsi]
shl r10,60
- mov BYTE PTR[13+rsp],dl
+ mov BYTE[13+rsp],dl
or rbx,r10
mov dl,al
shr rax,4
mov r10,r8
shr r8,4
- mov QWORD PTR[104+rbp],r9
- mov r9,QWORD PTR[((240+0-128))+rsi]
+ mov QWORD[104+rbp],r9
+ mov r9,QWORD[((240+0-128))+rsi]
shl dl,4
- mov QWORD PTR[((104-128))+rbp],rbx
- mov rbx,QWORD PTR[((240+8-128))+rsi]
+ mov QWORD[((104-128))+rbp],rbx
+ mov rbx,QWORD[((240+8-128))+rsi]
shl r10,60
- mov BYTE PTR[14+rsp],dl
+ mov BYTE[14+rsp],dl
or rax,r10
mov dl,bl
shr rbx,4
mov r10,r9
shr r9,4
- mov QWORD PTR[112+rbp],r8
+ mov QWORD[112+rbp],r8
shl dl,4
- mov QWORD PTR[((112-128))+rbp],rax
+ mov QWORD[((112-128))+rbp],rax
shl r10,60
- mov BYTE PTR[15+rsp],dl
+ mov BYTE[15+rsp],dl
or rbx,r10
- mov QWORD PTR[120+rbp],r9
- mov QWORD PTR[((120-128))+rbp],rbx
+ mov QWORD[120+rbp],r9
+ mov QWORD[((120-128))+rbp],rbx
add rsi,-128
- mov r8,QWORD PTR[8+rdi]
- mov r9,QWORD PTR[rdi]
+ mov r8,QWORD[8+rdi]
+ mov r9,QWORD[rdi]
add r15,r14
- lea r11,QWORD PTR[$L$rem_8bit]
- jmp $L$outer_loop
+ lea r11,[$L$rem_8bit]
+ jmp NEAR $L$outer_loop
ALIGN 16
-$L$outer_loop::
- xor r9,QWORD PTR[r14]
- mov rdx,QWORD PTR[8+r14]
- lea r14,QWORD PTR[16+r14]
+$L$outer_loop:
+ xor r9,QWORD[r14]
+ mov rdx,QWORD[8+r14]
+ lea r14,[16+r14]
xor rdx,r8
- mov QWORD PTR[rdi],r9
- mov QWORD PTR[8+rdi],rdx
+ mov QWORD[rdi],r9
+ mov QWORD[8+rdi],rdx
shr rdx,32
xor rax,rax
rol edx,8
@@ -342,30 +345,30 @@ $L$outer_loop::
shl al,4
shr ebx,4
rol edx,8
- mov r8,QWORD PTR[8+rax*1+rsi]
- mov r9,QWORD PTR[rax*1+rsi]
+ mov r8,QWORD[8+rax*1+rsi]
+ mov r9,QWORD[rax*1+rsi]
mov al,dl
movzx ecx,dl
shl al,4
- movzx r12,BYTE PTR[rbx*1+rsp]
+ movzx r12,BYTE[rbx*1+rsp]
shr ecx,4
xor r12,r8
mov r10,r9
shr r8,8
movzx r12,r12b
shr r9,8
- xor r8,QWORD PTR[((-128))+rbx*8+rbp]
+ xor r8,QWORD[((-128))+rbx*8+rbp]
shl r10,56
- xor r9,QWORD PTR[rbx*8+rbp]
+ xor r9,QWORD[rbx*8+rbp]
rol edx,8
- xor r8,QWORD PTR[8+rax*1+rsi]
- xor r9,QWORD PTR[rax*1+rsi]
+ xor r8,QWORD[8+rax*1+rsi]
+ xor r9,QWORD[rax*1+rsi]
mov al,dl
xor r8,r10
- movzx r12,WORD PTR[r12*2+r11]
+ movzx r12,WORD[r12*2+r11]
movzx ebx,dl
shl al,4
- movzx r13,BYTE PTR[rcx*1+rsp]
+ movzx r13,BYTE[rcx*1+rsp]
shr ebx,4
shl r12,48
xor r13,r8
@@ -374,18 +377,18 @@ $L$outer_loop::
shr r8,8
movzx r13,r13b
shr r9,8
- xor r8,QWORD PTR[((-128))+rcx*8+rbp]
+ xor r8,QWORD[((-128))+rcx*8+rbp]
shl r10,56
- xor r9,QWORD PTR[rcx*8+rbp]
+ xor r9,QWORD[rcx*8+rbp]
rol edx,8
- xor r8,QWORD PTR[8+rax*1+rsi]
- xor r9,QWORD PTR[rax*1+rsi]
+ xor r8,QWORD[8+rax*1+rsi]
+ xor r9,QWORD[rax*1+rsi]
mov al,dl
xor r8,r10
- movzx r13,WORD PTR[r13*2+r11]
+ movzx r13,WORD[r13*2+r11]
movzx ecx,dl
shl al,4
- movzx r12,BYTE PTR[rbx*1+rsp]
+ movzx r12,BYTE[rbx*1+rsp]
shr ecx,4
shl r13,48
xor r12,r8
@@ -393,20 +396,20 @@ $L$outer_loop::
xor r9,r13
shr r8,8
movzx r12,r12b
- mov edx,DWORD PTR[8+rdi]
+ mov edx,DWORD[8+rdi]
shr r9,8
- xor r8,QWORD PTR[((-128))+rbx*8+rbp]
+ xor r8,QWORD[((-128))+rbx*8+rbp]
shl r10,56
- xor r9,QWORD PTR[rbx*8+rbp]
+ xor r9,QWORD[rbx*8+rbp]
rol edx,8
- xor r8,QWORD PTR[8+rax*1+rsi]
- xor r9,QWORD PTR[rax*1+rsi]
+ xor r8,QWORD[8+rax*1+rsi]
+ xor r9,QWORD[rax*1+rsi]
mov al,dl
xor r8,r10
- movzx r12,WORD PTR[r12*2+r11]
+ movzx r12,WORD[r12*2+r11]
movzx ebx,dl
shl al,4
- movzx r13,BYTE PTR[rcx*1+rsp]
+ movzx r13,BYTE[rcx*1+rsp]
shr ebx,4
shl r12,48
xor r13,r8
@@ -415,18 +418,18 @@ $L$outer_loop::
shr r8,8
movzx r13,r13b
shr r9,8
- xor r8,QWORD PTR[((-128))+rcx*8+rbp]
+ xor r8,QWORD[((-128))+rcx*8+rbp]
shl r10,56
- xor r9,QWORD PTR[rcx*8+rbp]
+ xor r9,QWORD[rcx*8+rbp]
rol edx,8
- xor r8,QWORD PTR[8+rax*1+rsi]
- xor r9,QWORD PTR[rax*1+rsi]
+ xor r8,QWORD[8+rax*1+rsi]
+ xor r9,QWORD[rax*1+rsi]
mov al,dl
xor r8,r10
- movzx r13,WORD PTR[r13*2+r11]
+ movzx r13,WORD[r13*2+r11]
movzx ecx,dl
shl al,4
- movzx r12,BYTE PTR[rbx*1+rsp]
+ movzx r12,BYTE[rbx*1+rsp]
shr ecx,4
shl r13,48
xor r12,r8
@@ -435,18 +438,18 @@ $L$outer_loop::
shr r8,8
movzx r12,r12b
shr r9,8
- xor r8,QWORD PTR[((-128))+rbx*8+rbp]
+ xor r8,QWORD[((-128))+rbx*8+rbp]
shl r10,56
- xor r9,QWORD PTR[rbx*8+rbp]
+ xor r9,QWORD[rbx*8+rbp]
rol edx,8
- xor r8,QWORD PTR[8+rax*1+rsi]
- xor r9,QWORD PTR[rax*1+rsi]
+ xor r8,QWORD[8+rax*1+rsi]
+ xor r9,QWORD[rax*1+rsi]
mov al,dl
xor r8,r10
- movzx r12,WORD PTR[r12*2+r11]
+ movzx r12,WORD[r12*2+r11]
movzx ebx,dl
shl al,4
- movzx r13,BYTE PTR[rcx*1+rsp]
+ movzx r13,BYTE[rcx*1+rsp]
shr ebx,4
shl r12,48
xor r13,r8
@@ -455,18 +458,18 @@ $L$outer_loop::
shr r8,8
movzx r13,r13b
shr r9,8
- xor r8,QWORD PTR[((-128))+rcx*8+rbp]
+ xor r8,QWORD[((-128))+rcx*8+rbp]
shl r10,56
- xor r9,QWORD PTR[rcx*8+rbp]
+ xor r9,QWORD[rcx*8+rbp]
rol edx,8
- xor r8,QWORD PTR[8+rax*1+rsi]
- xor r9,QWORD PTR[rax*1+rsi]
+ xor r8,QWORD[8+rax*1+rsi]
+ xor r9,QWORD[rax*1+rsi]
mov al,dl
xor r8,r10
- movzx r13,WORD PTR[r13*2+r11]
+ movzx r13,WORD[r13*2+r11]
movzx ecx,dl
shl al,4
- movzx r12,BYTE PTR[rbx*1+rsp]
+ movzx r12,BYTE[rbx*1+rsp]
shr ecx,4
shl r13,48
xor r12,r8
@@ -474,20 +477,20 @@ $L$outer_loop::
xor r9,r13
shr r8,8
movzx r12,r12b
- mov edx,DWORD PTR[4+rdi]
+ mov edx,DWORD[4+rdi]
shr r9,8
- xor r8,QWORD PTR[((-128))+rbx*8+rbp]
+ xor r8,QWORD[((-128))+rbx*8+rbp]
shl r10,56
- xor r9,QWORD PTR[rbx*8+rbp]
+ xor r9,QWORD[rbx*8+rbp]
rol edx,8
- xor r8,QWORD PTR[8+rax*1+rsi]
- xor r9,QWORD PTR[rax*1+rsi]
+ xor r8,QWORD[8+rax*1+rsi]
+ xor r9,QWORD[rax*1+rsi]
mov al,dl
xor r8,r10
- movzx r12,WORD PTR[r12*2+r11]
+ movzx r12,WORD[r12*2+r11]
movzx ebx,dl
shl al,4
- movzx r13,BYTE PTR[rcx*1+rsp]
+ movzx r13,BYTE[rcx*1+rsp]
shr ebx,4
shl r12,48
xor r13,r8
@@ -496,18 +499,18 @@ $L$outer_loop::
shr r8,8
movzx r13,r13b
shr r9,8
- xor r8,QWORD PTR[((-128))+rcx*8+rbp]
+ xor r8,QWORD[((-128))+rcx*8+rbp]
shl r10,56
- xor r9,QWORD PTR[rcx*8+rbp]
+ xor r9,QWORD[rcx*8+rbp]
rol edx,8
- xor r8,QWORD PTR[8+rax*1+rsi]
- xor r9,QWORD PTR[rax*1+rsi]
+ xor r8,QWORD[8+rax*1+rsi]
+ xor r9,QWORD[rax*1+rsi]
mov al,dl
xor r8,r10
- movzx r13,WORD PTR[r13*2+r11]
+ movzx r13,WORD[r13*2+r11]
movzx ecx,dl
shl al,4
- movzx r12,BYTE PTR[rbx*1+rsp]
+ movzx r12,BYTE[rbx*1+rsp]
shr ecx,4
shl r13,48
xor r12,r8
@@ -516,18 +519,18 @@ $L$outer_loop::
shr r8,8
movzx r12,r12b
shr r9,8
- xor r8,QWORD PTR[((-128))+rbx*8+rbp]
+ xor r8,QWORD[((-128))+rbx*8+rbp]
shl r10,56
- xor r9,QWORD PTR[rbx*8+rbp]
+ xor r9,QWORD[rbx*8+rbp]
rol edx,8
- xor r8,QWORD PTR[8+rax*1+rsi]
- xor r9,QWORD PTR[rax*1+rsi]
+ xor r8,QWORD[8+rax*1+rsi]
+ xor r9,QWORD[rax*1+rsi]
mov al,dl
xor r8,r10
- movzx r12,WORD PTR[r12*2+r11]
+ movzx r12,WORD[r12*2+r11]
movzx ebx,dl
shl al,4
- movzx r13,BYTE PTR[rcx*1+rsp]
+ movzx r13,BYTE[rcx*1+rsp]
shr ebx,4
shl r12,48
xor r13,r8
@@ -536,18 +539,18 @@ $L$outer_loop::
shr r8,8
movzx r13,r13b
shr r9,8
- xor r8,QWORD PTR[((-128))+rcx*8+rbp]
+ xor r8,QWORD[((-128))+rcx*8+rbp]
shl r10,56
- xor r9,QWORD PTR[rcx*8+rbp]
+ xor r9,QWORD[rcx*8+rbp]
rol edx,8
- xor r8,QWORD PTR[8+rax*1+rsi]
- xor r9,QWORD PTR[rax*1+rsi]
+ xor r8,QWORD[8+rax*1+rsi]
+ xor r9,QWORD[rax*1+rsi]
mov al,dl
xor r8,r10
- movzx r13,WORD PTR[r13*2+r11]
+ movzx r13,WORD[r13*2+r11]
movzx ecx,dl
shl al,4
- movzx r12,BYTE PTR[rbx*1+rsp]
+ movzx r12,BYTE[rbx*1+rsp]
shr ecx,4
shl r13,48
xor r12,r8
@@ -555,20 +558,20 @@ $L$outer_loop::
xor r9,r13
shr r8,8
movzx r12,r12b
- mov edx,DWORD PTR[rdi]
+ mov edx,DWORD[rdi]
shr r9,8
- xor r8,QWORD PTR[((-128))+rbx*8+rbp]
+ xor r8,QWORD[((-128))+rbx*8+rbp]
shl r10,56
- xor r9,QWORD PTR[rbx*8+rbp]
+ xor r9,QWORD[rbx*8+rbp]
rol edx,8
- xor r8,QWORD PTR[8+rax*1+rsi]
- xor r9,QWORD PTR[rax*1+rsi]
+ xor r8,QWORD[8+rax*1+rsi]
+ xor r9,QWORD[rax*1+rsi]
mov al,dl
xor r8,r10
- movzx r12,WORD PTR[r12*2+r11]
+ movzx r12,WORD[r12*2+r11]
movzx ebx,dl
shl al,4
- movzx r13,BYTE PTR[rcx*1+rsp]
+ movzx r13,BYTE[rcx*1+rsp]
shr ebx,4
shl r12,48
xor r13,r8
@@ -577,18 +580,18 @@ $L$outer_loop::
shr r8,8
movzx r13,r13b
shr r9,8
- xor r8,QWORD PTR[((-128))+rcx*8+rbp]
+ xor r8,QWORD[((-128))+rcx*8+rbp]
shl r10,56
- xor r9,QWORD PTR[rcx*8+rbp]
+ xor r9,QWORD[rcx*8+rbp]
rol edx,8
- xor r8,QWORD PTR[8+rax*1+rsi]
- xor r9,QWORD PTR[rax*1+rsi]
+ xor r8,QWORD[8+rax*1+rsi]
+ xor r9,QWORD[rax*1+rsi]
mov al,dl
xor r8,r10
- movzx r13,WORD PTR[r13*2+r11]
+ movzx r13,WORD[r13*2+r11]
movzx ecx,dl
shl al,4
- movzx r12,BYTE PTR[rbx*1+rsp]
+ movzx r12,BYTE[rbx*1+rsp]
shr ecx,4
shl r13,48
xor r12,r8
@@ -597,18 +600,18 @@ $L$outer_loop::
shr r8,8
movzx r12,r12b
shr r9,8
- xor r8,QWORD PTR[((-128))+rbx*8+rbp]
+ xor r8,QWORD[((-128))+rbx*8+rbp]
shl r10,56
- xor r9,QWORD PTR[rbx*8+rbp]
+ xor r9,QWORD[rbx*8+rbp]
rol edx,8
- xor r8,QWORD PTR[8+rax*1+rsi]
- xor r9,QWORD PTR[rax*1+rsi]
+ xor r8,QWORD[8+rax*1+rsi]
+ xor r9,QWORD[rax*1+rsi]
mov al,dl
xor r8,r10
- movzx r12,WORD PTR[r12*2+r11]
+ movzx r12,WORD[r12*2+r11]
movzx ebx,dl
shl al,4
- movzx r13,BYTE PTR[rcx*1+rsp]
+ movzx r13,BYTE[rcx*1+rsp]
shr ebx,4
shl r12,48
xor r13,r8
@@ -617,18 +620,18 @@ $L$outer_loop::
shr r8,8
movzx r13,r13b
shr r9,8
- xor r8,QWORD PTR[((-128))+rcx*8+rbp]
+ xor r8,QWORD[((-128))+rcx*8+rbp]
shl r10,56
- xor r9,QWORD PTR[rcx*8+rbp]
+ xor r9,QWORD[rcx*8+rbp]
rol edx,8
- xor r8,QWORD PTR[8+rax*1+rsi]
- xor r9,QWORD PTR[rax*1+rsi]
+ xor r8,QWORD[8+rax*1+rsi]
+ xor r9,QWORD[rax*1+rsi]
mov al,dl
xor r8,r10
- movzx r13,WORD PTR[r13*2+r11]
+ movzx r13,WORD[r13*2+r11]
movzx ecx,dl
shl al,4
- movzx r12,BYTE PTR[rbx*1+rsp]
+ movzx r12,BYTE[rbx*1+rsp]
and ecx,240
shl r13,48
xor r12,r8
@@ -636,14 +639,14 @@ $L$outer_loop::
xor r9,r13
shr r8,8
movzx r12,r12b
- mov edx,DWORD PTR[((-4))+rdi]
+ mov edx,DWORD[((-4))+rdi]
shr r9,8
- xor r8,QWORD PTR[((-128))+rbx*8+rbp]
+ xor r8,QWORD[((-128))+rbx*8+rbp]
shl r10,56
- xor r9,QWORD PTR[rbx*8+rbp]
- movzx r12,WORD PTR[r12*2+r11]
- xor r8,QWORD PTR[8+rax*1+rsi]
- xor r9,QWORD PTR[rax*1+rsi]
+ xor r9,QWORD[rbx*8+rbp]
+ movzx r12,WORD[r12*2+r11]
+ xor r8,QWORD[8+rax*1+rsi]
+ xor r9,QWORD[rax*1+rsi]
shl r12,48
xor r8,r10
xor r9,r12
@@ -652,44 +655,43 @@ $L$outer_loop::
mov r10,r9
shl r13b,4
shr r9,4
- xor r8,QWORD PTR[8+rcx*1+rsi]
- movzx r13,WORD PTR[r13*2+r11]
+ xor r8,QWORD[8+rcx*1+rsi]
+ movzx r13,WORD[r13*2+r11]
shl r10,60
- xor r9,QWORD PTR[rcx*1+rsi]
+ xor r9,QWORD[rcx*1+rsi]
xor r8,r10
shl r13,48
bswap r8
xor r9,r13
bswap r9
cmp r14,r15
- jb $L$outer_loop
- mov QWORD PTR[8+rdi],r8
- mov QWORD PTR[rdi],r9
-
- lea rsi,QWORD PTR[280+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$ghash_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ jb NEAR $L$outer_loop
+ mov QWORD[8+rdi],r8
+ mov QWORD[rdi],r9
+
+ lea rsi,[280+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$ghash_epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_gcm_ghash_4bit::
-gcm_ghash_4bit ENDP
-PUBLIC gcm_init_clmul
+$L$SEH_end_gcm_ghash_4bit:
+global gcm_init_clmul
ALIGN 16
-gcm_init_clmul PROC PUBLIC
-$L$_init_clmul::
-$L$SEH_begin_gcm_init_clmul::
+gcm_init_clmul:
+$L$_init_clmul:
+$L$SEH_begin_gcm_init_clmul:
-DB 048h,083h,0ech,018h
-DB 00fh,029h,034h,024h
- movdqu xmm2,XMMWORD PTR[rdx]
+DB 0x48,0x83,0xec,0x18
+DB 0x0f,0x29,0x34,0x24
+ movdqu xmm2,XMMWORD[rdx]
pshufd xmm2,xmm2,78
@@ -703,7 +705,7 @@ DB 00fh,029h,034h,024h
por xmm2,xmm3
- pand xmm5,XMMWORD PTR[$L$0x1c2_polynomial]
+ pand xmm5,XMMWORD[$L$0x1c2_polynomial]
pxor xmm2,xmm5
@@ -750,11 +752,11 @@ DB 102,15,58,68,222,0
pshufd xmm3,xmm2,78
pshufd xmm4,xmm0,78
pxor xmm3,xmm2
- movdqu XMMWORD PTR[rcx],xmm2
+ movdqu XMMWORD[rcx],xmm2
pxor xmm4,xmm0
- movdqu XMMWORD PTR[16+rcx],xmm0
+ movdqu XMMWORD[16+rcx],xmm0
DB 102,15,58,15,227,8
- movdqu XMMWORD PTR[32+rcx],xmm4
+ movdqu XMMWORD[32+rcx],xmm4
movdqa xmm1,xmm0
pshufd xmm3,xmm0,78
pxor xmm3,xmm0
@@ -833,25 +835,25 @@ DB 102,15,58,68,222,0
pshufd xmm3,xmm5,78
pshufd xmm4,xmm0,78
pxor xmm3,xmm5
- movdqu XMMWORD PTR[48+rcx],xmm5
+ movdqu XMMWORD[48+rcx],xmm5
pxor xmm4,xmm0
- movdqu XMMWORD PTR[64+rcx],xmm0
+ movdqu XMMWORD[64+rcx],xmm0
DB 102,15,58,15,227,8
- movdqu XMMWORD PTR[80+rcx],xmm4
- movaps xmm6,XMMWORD PTR[rsp]
- lea rsp,QWORD PTR[24+rsp]
-$L$SEH_end_gcm_init_clmul::
+ movdqu XMMWORD[80+rcx],xmm4
+ movaps xmm6,XMMWORD[rsp]
+ lea rsp,[24+rsp]
+$L$SEH_end_gcm_init_clmul:
DB 0F3h,0C3h ;repret
-gcm_init_clmul ENDP
-PUBLIC gcm_gmult_clmul
+
+global gcm_gmult_clmul
ALIGN 16
-gcm_gmult_clmul PROC PUBLIC
-$L$_gmult_clmul::
- movdqu xmm0,XMMWORD PTR[rcx]
- movdqa xmm5,XMMWORD PTR[$L$bswap_mask]
- movdqu xmm2,XMMWORD PTR[rdx]
- movdqu xmm4,XMMWORD PTR[32+rdx]
+gcm_gmult_clmul:
+$L$_gmult_clmul:
+ movdqu xmm0,XMMWORD[rcx]
+ movdqa xmm5,XMMWORD[$L$bswap_mask]
+ movdqu xmm2,XMMWORD[rdx]
+ movdqu xmm4,XMMWORD[32+rdx]
DB 102,15,56,0,197
movdqa xmm1,xmm0
pshufd xmm3,xmm0,78
@@ -891,57 +893,57 @@ DB 102,15,58,68,220,0
psrlq xmm0,1
pxor xmm0,xmm1
DB 102,15,56,0,197
- movdqu XMMWORD PTR[rcx],xmm0
+ movdqu XMMWORD[rcx],xmm0
DB 0F3h,0C3h ;repret
-gcm_gmult_clmul ENDP
-PUBLIC gcm_ghash_clmul
+
+global gcm_ghash_clmul
ALIGN 32
-gcm_ghash_clmul PROC PUBLIC
-$L$_ghash_clmul::
- lea rax,QWORD PTR[((-136))+rsp]
-$L$SEH_begin_gcm_ghash_clmul::
-
-DB 048h,08dh,060h,0e0h
-DB 00fh,029h,070h,0e0h
-DB 00fh,029h,078h,0f0h
-DB 044h,00fh,029h,000h
-DB 044h,00fh,029h,048h,010h
-DB 044h,00fh,029h,050h,020h
-DB 044h,00fh,029h,058h,030h
-DB 044h,00fh,029h,060h,040h
-DB 044h,00fh,029h,068h,050h
-DB 044h,00fh,029h,070h,060h
-DB 044h,00fh,029h,078h,070h
- movdqa xmm10,XMMWORD PTR[$L$bswap_mask]
-
- movdqu xmm0,XMMWORD PTR[rcx]
- movdqu xmm2,XMMWORD PTR[rdx]
- movdqu xmm7,XMMWORD PTR[32+rdx]
+gcm_ghash_clmul:
+$L$_ghash_clmul:
+ lea rax,[((-136))+rsp]
+$L$SEH_begin_gcm_ghash_clmul:
+
+DB 0x48,0x8d,0x60,0xe0
+DB 0x0f,0x29,0x70,0xe0
+DB 0x0f,0x29,0x78,0xf0
+DB 0x44,0x0f,0x29,0x00
+DB 0x44,0x0f,0x29,0x48,0x10
+DB 0x44,0x0f,0x29,0x50,0x20
+DB 0x44,0x0f,0x29,0x58,0x30
+DB 0x44,0x0f,0x29,0x60,0x40
+DB 0x44,0x0f,0x29,0x68,0x50
+DB 0x44,0x0f,0x29,0x70,0x60
+DB 0x44,0x0f,0x29,0x78,0x70
+ movdqa xmm10,XMMWORD[$L$bswap_mask]
+
+ movdqu xmm0,XMMWORD[rcx]
+ movdqu xmm2,XMMWORD[rdx]
+ movdqu xmm7,XMMWORD[32+rdx]
DB 102,65,15,56,0,194
- sub r9,010h
- jz $L$odd_tail
+ sub r9,0x10
+ jz NEAR $L$odd_tail
- movdqu xmm6,XMMWORD PTR[16+rdx]
- mov eax,DWORD PTR[((OPENSSL_ia32cap_P+4))]
- cmp r9,030h
- jb $L$skip4x
+ movdqu xmm6,XMMWORD[16+rdx]
+ mov eax,DWORD[((OPENSSL_ia32cap_P+4))]
+ cmp r9,0x30
+ jb NEAR $L$skip4x
and eax,71303168
cmp eax,4194304
- je $L$skip4x
+ je NEAR $L$skip4x
- sub r9,030h
- mov rax,0A040608020C0E000h
- movdqu xmm14,XMMWORD PTR[48+rdx]
- movdqu xmm15,XMMWORD PTR[64+rdx]
+ sub r9,0x30
+ mov rax,0xA040608020C0E000
+ movdqu xmm14,XMMWORD[48+rdx]
+ movdqu xmm15,XMMWORD[64+rdx]
- movdqu xmm3,XMMWORD PTR[48+r8]
- movdqu xmm11,XMMWORD PTR[32+r8]
+ movdqu xmm3,XMMWORD[48+r8]
+ movdqu xmm11,XMMWORD[32+r8]
DB 102,65,15,56,0,218
DB 102,69,15,56,0,218
movdqa xmm5,xmm3
@@ -959,11 +961,11 @@ DB 102,68,15,58,68,238,17
DB 102,68,15,58,68,231,16
xorps xmm3,xmm11
xorps xmm5,xmm13
- movups xmm7,XMMWORD PTR[80+rdx]
+ movups xmm7,XMMWORD[80+rdx]
xorps xmm4,xmm12
- movdqu xmm11,XMMWORD PTR[16+r8]
- movdqu xmm8,XMMWORD PTR[r8]
+ movdqu xmm11,XMMWORD[16+r8]
+ movdqu xmm8,XMMWORD[r8]
DB 102,69,15,56,0,218
DB 102,69,15,56,0,194
movdqa xmm13,xmm11
@@ -979,27 +981,27 @@ DB 102,68,15,58,68,231,0
xorps xmm3,xmm11
xorps xmm5,xmm13
- lea r8,QWORD PTR[64+r8]
- sub r9,040h
- jc $L$tail4x
+ lea r8,[64+r8]
+ sub r9,0x40
+ jc NEAR $L$tail4x
- jmp $L$mod4_loop
+ jmp NEAR $L$mod4_loop
ALIGN 32
-$L$mod4_loop::
+$L$mod4_loop:
DB 102,65,15,58,68,199,0
xorps xmm4,xmm12
- movdqu xmm11,XMMWORD PTR[48+r8]
+ movdqu xmm11,XMMWORD[48+r8]
DB 102,69,15,56,0,218
DB 102,65,15,58,68,207,17
xorps xmm0,xmm3
- movdqu xmm3,XMMWORD PTR[32+r8]
+ movdqu xmm3,XMMWORD[32+r8]
movdqa xmm13,xmm11
DB 102,68,15,58,68,199,16
pshufd xmm12,xmm11,78
xorps xmm1,xmm5
pxor xmm12,xmm11
DB 102,65,15,56,0,218
- movups xmm7,XMMWORD PTR[32+rdx]
+ movups xmm7,XMMWORD[32+rdx]
xorps xmm8,xmm4
DB 102,68,15,58,68,218,0
pshufd xmm4,xmm3,78
@@ -1013,7 +1015,7 @@ DB 102,68,15,58,68,234,17
pslldq xmm8,8
psrldq xmm9,8
pxor xmm0,xmm8
- movdqa xmm8,XMMWORD PTR[$L$7_mask]
+ movdqa xmm8,XMMWORD[$L$7_mask]
pxor xmm1,xmm9
DB 102,76,15,110,200
@@ -1028,17 +1030,17 @@ DB 102,15,58,68,222,0
psrldq xmm8,8
pxor xmm0,xmm9
pxor xmm1,xmm8
- movdqu xmm8,XMMWORD PTR[r8]
+ movdqu xmm8,XMMWORD[r8]
movdqa xmm9,xmm0
psrlq xmm0,1
DB 102,15,58,68,238,17
xorps xmm3,xmm11
- movdqu xmm11,XMMWORD PTR[16+r8]
+ movdqu xmm11,XMMWORD[16+r8]
DB 102,69,15,56,0,218
DB 102,15,58,68,231,16
xorps xmm5,xmm13
- movups xmm7,XMMWORD PTR[80+rdx]
+ movups xmm7,XMMWORD[80+rdx]
DB 102,69,15,56,0,194
pxor xmm1,xmm9
pxor xmm9,xmm0
@@ -1062,11 +1064,11 @@ DB 102,69,15,58,68,238,17
DB 102,68,15,58,68,231,0
xorps xmm5,xmm13
- lea r8,QWORD PTR[64+r8]
- sub r9,040h
- jnc $L$mod4_loop
+ lea r8,[64+r8]
+ sub r9,0x40
+ jnc NEAR $L$mod4_loop
-$L$tail4x::
+$L$tail4x:
DB 102,65,15,58,68,199,0
DB 102,65,15,58,68,207,17
DB 102,68,15,58,68,199,16
@@ -1107,19 +1109,19 @@ DB 102,68,15,58,68,199,16
pxor xmm0,xmm4
psrlq xmm0,1
pxor xmm0,xmm1
- add r9,040h
- jz $L$done
- movdqu xmm7,XMMWORD PTR[32+rdx]
- sub r9,010h
- jz $L$odd_tail
-$L$skip4x::
+ add r9,0x40
+ jz NEAR $L$done
+ movdqu xmm7,XMMWORD[32+rdx]
+ sub r9,0x10
+ jz NEAR $L$odd_tail
+$L$skip4x:
- movdqu xmm8,XMMWORD PTR[r8]
- movdqu xmm3,XMMWORD PTR[16+r8]
+ movdqu xmm8,XMMWORD[r8]
+ movdqu xmm3,XMMWORD[16+r8]
DB 102,69,15,56,0,194
DB 102,65,15,56,0,218
pxor xmm0,xmm8
@@ -1131,15 +1133,15 @@ DB 102,15,58,68,218,0
DB 102,15,58,68,234,17
DB 102,15,58,68,231,0
- lea r8,QWORD PTR[32+r8]
+ lea r8,[32+r8]
nop
- sub r9,020h
- jbe $L$even_tail
+ sub r9,0x20
+ jbe NEAR $L$even_tail
nop
- jmp $L$mod_loop
+ jmp NEAR $L$mod_loop
ALIGN 32
-$L$mod_loop::
+$L$mod_loop:
movdqa xmm1,xmm0
movdqa xmm8,xmm4
pshufd xmm4,xmm0,78
@@ -1151,10 +1153,10 @@ DB 102,15,58,68,231,16
pxor xmm0,xmm3
pxor xmm1,xmm5
- movdqu xmm9,XMMWORD PTR[r8]
+ movdqu xmm9,XMMWORD[r8]
pxor xmm8,xmm0
DB 102,69,15,56,0,202
- movdqu xmm3,XMMWORD PTR[16+r8]
+ movdqu xmm3,XMMWORD[16+r8]
pxor xmm8,xmm1
pxor xmm1,xmm9
@@ -1191,15 +1193,15 @@ DB 102,15,58,68,234,17
pxor xmm9,xmm0
psrlq xmm0,5
pxor xmm0,xmm9
- lea r8,QWORD PTR[32+r8]
+ lea r8,[32+r8]
psrlq xmm0,1
DB 102,15,58,68,231,0
pxor xmm0,xmm1
- sub r9,020h
- ja $L$mod_loop
+ sub r9,0x20
+ ja NEAR $L$mod_loop
-$L$even_tail::
+$L$even_tail:
movdqa xmm1,xmm0
movdqa xmm8,xmm4
pshufd xmm4,xmm0,78
@@ -1243,10 +1245,10 @@ DB 102,15,58,68,231,16
psrlq xmm0,1
pxor xmm0,xmm1
test r9,r9
- jnz $L$done
+ jnz NEAR $L$done
-$L$odd_tail::
- movdqu xmm8,XMMWORD PTR[r8]
+$L$odd_tail:
+ movdqu xmm8,XMMWORD[r8]
DB 102,69,15,56,0,194
pxor xmm0,xmm8
movdqa xmm1,xmm0
@@ -1286,101 +1288,101 @@ DB 102,15,58,68,223,0
pxor xmm0,xmm4
psrlq xmm0,1
pxor xmm0,xmm1
-$L$done::
+$L$done:
DB 102,65,15,56,0,194
- movdqu XMMWORD PTR[rcx],xmm0
- movaps xmm6,XMMWORD PTR[rsp]
- movaps xmm7,XMMWORD PTR[16+rsp]
- movaps xmm8,XMMWORD PTR[32+rsp]
- movaps xmm9,XMMWORD PTR[48+rsp]
- movaps xmm10,XMMWORD PTR[64+rsp]
- movaps xmm11,XMMWORD PTR[80+rsp]
- movaps xmm12,XMMWORD PTR[96+rsp]
- movaps xmm13,XMMWORD PTR[112+rsp]
- movaps xmm14,XMMWORD PTR[128+rsp]
- movaps xmm15,XMMWORD PTR[144+rsp]
- lea rsp,QWORD PTR[168+rsp]
-$L$SEH_end_gcm_ghash_clmul::
+ movdqu XMMWORD[rcx],xmm0
+ movaps xmm6,XMMWORD[rsp]
+ movaps xmm7,XMMWORD[16+rsp]
+ movaps xmm8,XMMWORD[32+rsp]
+ movaps xmm9,XMMWORD[48+rsp]
+ movaps xmm10,XMMWORD[64+rsp]
+ movaps xmm11,XMMWORD[80+rsp]
+ movaps xmm12,XMMWORD[96+rsp]
+ movaps xmm13,XMMWORD[112+rsp]
+ movaps xmm14,XMMWORD[128+rsp]
+ movaps xmm15,XMMWORD[144+rsp]
+ lea rsp,[168+rsp]
+$L$SEH_end_gcm_ghash_clmul:
DB 0F3h,0C3h ;repret
-gcm_ghash_clmul ENDP
-PUBLIC gcm_init_avx
+
+global gcm_init_avx
ALIGN 32
-gcm_init_avx PROC PUBLIC
- jmp $L$_init_clmul
-gcm_init_avx ENDP
-PUBLIC gcm_gmult_avx
+gcm_init_avx:
+ jmp NEAR $L$_init_clmul
+
+global gcm_gmult_avx
ALIGN 32
-gcm_gmult_avx PROC PUBLIC
- jmp $L$_gmult_clmul
-gcm_gmult_avx ENDP
-PUBLIC gcm_ghash_avx
+gcm_gmult_avx:
+ jmp NEAR $L$_gmult_clmul
+
+global gcm_ghash_avx
ALIGN 32
-gcm_ghash_avx PROC PUBLIC
- jmp $L$_ghash_clmul
-gcm_ghash_avx ENDP
+gcm_ghash_avx:
+ jmp NEAR $L$_ghash_clmul
+
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$0x1c2_polynomial::
-DB 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0c2h
-$L$7_mask::
+$L$0x1c2_polynomial:
+DB 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2
+$L$7_mask:
DD 7,0,7,0
-$L$7_mask_poly::
+$L$7_mask_poly:
DD 7,0,450,0
ALIGN 64
-$L$rem_4bit::
+$L$rem_4bit:
DD 0,0,0,471859200,0,943718400,0,610271232
DD 0,1887436800,0,1822425088,0,1220542464,0,1423966208
DD 0,3774873600,0,4246732800,0,3644850176,0,3311403008
DD 0,2441084928,0,2376073216,0,2847932416,0,3051356160
-$L$rem_8bit::
- DW 00000h,001C2h,00384h,00246h,00708h,006CAh,0048Ch,0054Eh
- DW 00E10h,00FD2h,00D94h,00C56h,00918h,008DAh,00A9Ch,00B5Eh
- DW 01C20h,01DE2h,01FA4h,01E66h,01B28h,01AEAh,018ACh,0196Eh
- DW 01230h,013F2h,011B4h,01076h,01538h,014FAh,016BCh,0177Eh
- DW 03840h,03982h,03BC4h,03A06h,03F48h,03E8Ah,03CCCh,03D0Eh
- DW 03650h,03792h,035D4h,03416h,03158h,0309Ah,032DCh,0331Eh
- DW 02460h,025A2h,027E4h,02626h,02368h,022AAh,020ECh,0212Eh
- DW 02A70h,02BB2h,029F4h,02836h,02D78h,02CBAh,02EFCh,02F3Eh
- DW 07080h,07142h,07304h,072C6h,07788h,0764Ah,0740Ch,075CEh
- DW 07E90h,07F52h,07D14h,07CD6h,07998h,0785Ah,07A1Ch,07BDEh
- DW 06CA0h,06D62h,06F24h,06EE6h,06BA8h,06A6Ah,0682Ch,069EEh
- DW 062B0h,06372h,06134h,060F6h,065B8h,0647Ah,0663Ch,067FEh
- DW 048C0h,04902h,04B44h,04A86h,04FC8h,04E0Ah,04C4Ch,04D8Eh
- DW 046D0h,04712h,04554h,04496h,041D8h,0401Ah,0425Ch,0439Eh
- DW 054E0h,05522h,05764h,056A6h,053E8h,0522Ah,0506Ch,051AEh
- DW 05AF0h,05B32h,05974h,058B6h,05DF8h,05C3Ah,05E7Ch,05FBEh
- DW 0E100h,0E0C2h,0E284h,0E346h,0E608h,0E7CAh,0E58Ch,0E44Eh
- DW 0EF10h,0EED2h,0EC94h,0ED56h,0E818h,0E9DAh,0EB9Ch,0EA5Eh
- DW 0FD20h,0FCE2h,0FEA4h,0FF66h,0FA28h,0FBEAh,0F9ACh,0F86Eh
- DW 0F330h,0F2F2h,0F0B4h,0F176h,0F438h,0F5FAh,0F7BCh,0F67Eh
- DW 0D940h,0D882h,0DAC4h,0DB06h,0DE48h,0DF8Ah,0DDCCh,0DC0Eh
- DW 0D750h,0D692h,0D4D4h,0D516h,0D058h,0D19Ah,0D3DCh,0D21Eh
- DW 0C560h,0C4A2h,0C6E4h,0C726h,0C268h,0C3AAh,0C1ECh,0C02Eh
- DW 0CB70h,0CAB2h,0C8F4h,0C936h,0CC78h,0CDBAh,0CFFCh,0CE3Eh
- DW 09180h,09042h,09204h,093C6h,09688h,0974Ah,0950Ch,094CEh
- DW 09F90h,09E52h,09C14h,09DD6h,09898h,0995Ah,09B1Ch,09ADEh
- DW 08DA0h,08C62h,08E24h,08FE6h,08AA8h,08B6Ah,0892Ch,088EEh
- DW 083B0h,08272h,08034h,081F6h,084B8h,0857Ah,0873Ch,086FEh
- DW 0A9C0h,0A802h,0AA44h,0AB86h,0AEC8h,0AF0Ah,0AD4Ch,0AC8Eh
- DW 0A7D0h,0A612h,0A454h,0A596h,0A0D8h,0A11Ah,0A35Ch,0A29Eh
- DW 0B5E0h,0B422h,0B664h,0B7A6h,0B2E8h,0B32Ah,0B16Ch,0B0AEh
- DW 0BBF0h,0BA32h,0B874h,0B9B6h,0BCF8h,0BD3Ah,0BF7Ch,0BEBEh
+$L$rem_8bit:
+ DW 0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E
+ DW 0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E
+ DW 0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E
+ DW 0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E
+ DW 0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E
+ DW 0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E
+ DW 0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E
+ DW 0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E
+ DW 0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE
+ DW 0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE
+ DW 0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE
+ DW 0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE
+ DW 0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E
+ DW 0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E
+ DW 0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE
+ DW 0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE
+ DW 0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E
+ DW 0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E
+ DW 0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E
+ DW 0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E
+ DW 0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E
+ DW 0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E
+ DW 0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E
+ DW 0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E
+ DW 0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE
+ DW 0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE
+ DW 0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE
+ DW 0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE
+ DW 0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E
+ DW 0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E
+ DW 0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE
+ DW 0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE
DB 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52
DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
DB 114,103,62,0
ALIGN 64
-EXTERN __imp_RtlVirtualUnwind:NEAR
+EXTERN __imp_RtlVirtualUnwind
ALIGN 16
-se_handler PROC PRIVATE
+se_handler:
push rsi
push rdi
push rbx
@@ -1392,58 +1394,58 @@ 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 rax,QWORD PTR[24+rax]
+ lea rax,[24+rax]
- mov rbx,QWORD PTR[((-8))+rax]
- mov rbp,QWORD PTR[((-16))+rax]
- mov r12,QWORD PTR[((-24))+rax]
- mov QWORD PTR[144+r8],rbx
- mov QWORD PTR[160+r8],rbp
- mov QWORD PTR[216+r8],r12
+ mov rbx,QWORD[((-8))+rax]
+ mov rbp,QWORD[((-16))+rax]
+ mov r12,QWORD[((-24))+rax]
+ mov QWORD[144+r8],rbx
+ mov QWORD[160+r8],rbp
+ mov QWORD[216+r8],r12
-$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
@@ -1457,54 +1459,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_gcm_gmult_4bit
- DD imagerel $L$SEH_end_gcm_gmult_4bit
- DD imagerel $L$SEH_info_gcm_gmult_4bit
-
- DD imagerel $L$SEH_begin_gcm_ghash_4bit
- DD imagerel $L$SEH_end_gcm_ghash_4bit
- DD imagerel $L$SEH_info_gcm_ghash_4bit
-
- DD imagerel $L$SEH_begin_gcm_init_clmul
- DD imagerel $L$SEH_end_gcm_init_clmul
- DD imagerel $L$SEH_info_gcm_init_clmul
-
- DD imagerel $L$SEH_begin_gcm_ghash_clmul
- DD imagerel $L$SEH_end_gcm_ghash_clmul
- DD imagerel $L$SEH_info_gcm_ghash_clmul
-.pdata ENDS
-.xdata SEGMENT READONLY ALIGN(8)
+ DD $L$SEH_begin_gcm_gmult_4bit wrt ..imagebase
+ DD $L$SEH_end_gcm_gmult_4bit wrt ..imagebase
+ DD $L$SEH_info_gcm_gmult_4bit wrt ..imagebase
+
+ DD $L$SEH_begin_gcm_ghash_4bit wrt ..imagebase
+ DD $L$SEH_end_gcm_ghash_4bit wrt ..imagebase
+ DD $L$SEH_info_gcm_ghash_4bit wrt ..imagebase
+
+ DD $L$SEH_begin_gcm_init_clmul wrt ..imagebase
+ DD $L$SEH_end_gcm_init_clmul wrt ..imagebase
+ DD $L$SEH_info_gcm_init_clmul wrt ..imagebase
+
+ DD $L$SEH_begin_gcm_ghash_clmul wrt ..imagebase
+ DD $L$SEH_end_gcm_ghash_clmul wrt ..imagebase
+ DD $L$SEH_info_gcm_ghash_clmul wrt ..imagebase
+section .xdata rdata align=8
ALIGN 8
-$L$SEH_info_gcm_gmult_4bit::
+$L$SEH_info_gcm_gmult_4bit:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$gmult_prologue,imagerel $L$gmult_epilogue
-$L$SEH_info_gcm_ghash_4bit::
+ DD se_handler wrt ..imagebase
+ DD $L$gmult_prologue wrt ..imagebase,$L$gmult_epilogue wrt ..imagebase
+$L$SEH_info_gcm_ghash_4bit:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$ghash_prologue,imagerel $L$ghash_epilogue
-$L$SEH_info_gcm_init_clmul::
-DB 001h,008h,003h,000h
-DB 008h,068h,000h,000h
-DB 004h,022h,000h,000h
-$L$SEH_info_gcm_ghash_clmul::
-DB 001h,033h,016h,000h
-DB 033h,0f8h,009h,000h
-DB 02eh,0e8h,008h,000h
-DB 029h,0d8h,007h,000h
-DB 024h,0c8h,006h,000h
-DB 01fh,0b8h,005h,000h
-DB 01ah,0a8h,004h,000h
-DB 015h,098h,003h,000h
-DB 010h,088h,002h,000h
-DB 00ch,078h,001h,000h
-DB 008h,068h,000h,000h
-DB 004h,001h,015h,000h
-
-.xdata ENDS
-END
+ DD se_handler wrt ..imagebase
+ DD $L$ghash_prologue wrt ..imagebase,$L$ghash_epilogue wrt ..imagebase
+$L$SEH_info_gcm_init_clmul:
+DB 0x01,0x08,0x03,0x00
+DB 0x08,0x68,0x00,0x00
+DB 0x04,0x22,0x00,0x00
+$L$SEH_info_gcm_ghash_clmul:
+DB 0x01,0x33,0x16,0x00
+DB 0x33,0xf8,0x09,0x00
+DB 0x2e,0xe8,0x08,0x00
+DB 0x29,0xd8,0x07,0x00
+DB 0x24,0xc8,0x06,0x00
+DB 0x1f,0xb8,0x05,0x00
+DB 0x1a,0xa8,0x04,0x00
+DB 0x15,0x98,0x03,0x00
+DB 0x10,0x88,0x02,0x00
+DB 0x0c,0x78,0x01,0x00
+DB 0x08,0x68,0x00,0x00
+DB 0x04,0x01,0x15,0x00
diff --git a/win-x86_64/crypto/rand/rdrand-x86_64.asm b/win-x86_64/crypto/rand/rdrand-x86_64.asm
new file mode 100644
index 0000000..a63ea69
--- /dev/null
+++ b/win-x86_64/crypto/rand/rdrand-x86_64.asm
@@ -0,0 +1,22 @@
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
+
+
+global CRYPTO_rdrand
+
+ALIGN 16
+CRYPTO_rdrand:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
+ mov rax,rsp
+$L$SEH_begin_CRYPTO_rdrand:
+ mov rdi,rcx
+
+
+DB 0x48,0x0f,0xc7,0xf0
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
+ DB 0F3h,0C3h ;repret
diff --git a/win-x86_64/crypto/rc4/rc4-md5-x86_64.asm b/win-x86_64/crypto/rc4/rc4-md5-x86_64.asm
index 9d823ae..f1ea965 100644
--- a/win-x86_64/crypto/rc4/rc4-md5-x86_64.asm
+++ b/win-x86_64/crypto/rc4/rc4-md5-x86_64.asm
@@ -1,24 +1,28 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
+
ALIGN 16
-PUBLIC rc4_md5_enc
+global rc4_md5_enc
-rc4_md5_enc PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+rc4_md5_enc:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_rc4_md5_enc::
+$L$SEH_begin_rc4_md5_enc:
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 r9,0
- je $L$abort
+ je NEAR $L$abort
push rbx
push rbp
push r12
@@ -26,7 +30,7 @@ $L$SEH_begin_rc4_md5_enc::
push r14
push r15
sub rsp,40
-$L$body::
+$L$body:
mov r11,rcx
mov r12,r9
mov r13,rsi
@@ -35,1194 +39,1194 @@ $L$body::
xor rbp,rbp
xor rcx,rcx
- lea rdi,QWORD PTR[8+rdi]
- mov bpl,BYTE PTR[((-8))+rdi]
- mov cl,BYTE PTR[((-4))+rdi]
+ lea rdi,[8+rdi]
+ mov bpl,BYTE[((-8))+rdi]
+ mov cl,BYTE[((-4))+rdi]
inc bpl
sub r14,r13
- mov eax,DWORD PTR[rbp*4+rdi]
+ mov eax,DWORD[rbp*4+rdi]
add cl,al
- lea rsi,QWORD PTR[rbp*4+rdi]
+ lea rsi,[rbp*4+rdi]
shl r12,6
add r12,r15
- mov QWORD PTR[16+rsp],r12
+ mov QWORD[16+rsp],r12
- mov QWORD PTR[24+rsp],r11
- mov r8d,DWORD PTR[r11]
- mov r9d,DWORD PTR[4+r11]
- mov r10d,DWORD PTR[8+r11]
- mov r11d,DWORD PTR[12+r11]
- jmp $L$oop
+ mov QWORD[24+rsp],r11
+ mov r8d,DWORD[r11]
+ mov r9d,DWORD[4+r11]
+ mov r10d,DWORD[8+r11]
+ mov r11d,DWORD[12+r11]
+ jmp NEAR $L$oop
ALIGN 16
-$L$oop::
- mov DWORD PTR[rsp],r8d
- mov DWORD PTR[4+rsp],r9d
- mov DWORD PTR[8+rsp],r10d
+$L$oop:
+ mov DWORD[rsp],r8d
+ mov DWORD[4+rsp],r9d
+ mov DWORD[8+rsp],r10d
mov r12d,r11d
- mov DWORD PTR[12+rsp],r11d
+ mov DWORD[12+rsp],r11d
pxor xmm0,xmm0
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r10d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
and r12d,r9d
- add r8d,DWORD PTR[r15]
+ add r8d,DWORD[r15]
add al,dl
- mov ebx,DWORD PTR[4+rsi]
+ mov ebx,DWORD[4+rsi]
add r8d,3614090360
xor r12d,r11d
movzx eax,al
- mov DWORD PTR[rsi],edx
+ mov DWORD[rsi],edx
add r8d,r12d
add cl,bl
rol r8d,7
mov r12d,r10d
- movd xmm0,DWORD PTR[rax*4+rdi]
+ movd xmm0,DWORD[rax*4+rdi]
add r8d,r9d
pxor xmm1,xmm1
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r9d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
and r12d,r8d
- add r11d,DWORD PTR[4+r15]
+ add r11d,DWORD[4+r15]
add bl,dl
- mov eax,DWORD PTR[8+rsi]
+ mov eax,DWORD[8+rsi]
add r11d,3905402710
xor r12d,r10d
movzx ebx,bl
- mov DWORD PTR[4+rsi],edx
+ mov DWORD[4+rsi],edx
add r11d,r12d
add cl,al
rol r11d,12
mov r12d,r9d
- movd xmm1,DWORD PTR[rbx*4+rdi]
+ movd xmm1,DWORD[rbx*4+rdi]
add r11d,r8d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r8d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
and r12d,r11d
- add r10d,DWORD PTR[8+r15]
+ add r10d,DWORD[8+r15]
add al,dl
- mov ebx,DWORD PTR[12+rsi]
+ mov ebx,DWORD[12+rsi]
add r10d,606105819
xor r12d,r9d
movzx eax,al
- mov DWORD PTR[8+rsi],edx
+ mov DWORD[8+rsi],edx
add r10d,r12d
add cl,bl
rol r10d,17
mov r12d,r8d
- pinsrw xmm0,WORD PTR[rax*4+rdi],1
+ pinsrw xmm0,WORD[rax*4+rdi],1
add r10d,r11d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r11d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
and r12d,r10d
- add r9d,DWORD PTR[12+r15]
+ add r9d,DWORD[12+r15]
add bl,dl
- mov eax,DWORD PTR[16+rsi]
+ mov eax,DWORD[16+rsi]
add r9d,3250441966
xor r12d,r8d
movzx ebx,bl
- mov DWORD PTR[12+rsi],edx
+ mov DWORD[12+rsi],edx
add r9d,r12d
add cl,al
rol r9d,22
mov r12d,r11d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],1
+ pinsrw xmm1,WORD[rbx*4+rdi],1
add r9d,r10d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r10d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
and r12d,r9d
- add r8d,DWORD PTR[16+r15]
+ add r8d,DWORD[16+r15]
add al,dl
- mov ebx,DWORD PTR[20+rsi]
+ mov ebx,DWORD[20+rsi]
add r8d,4118548399
xor r12d,r11d
movzx eax,al
- mov DWORD PTR[16+rsi],edx
+ mov DWORD[16+rsi],edx
add r8d,r12d
add cl,bl
rol r8d,7
mov r12d,r10d
- pinsrw xmm0,WORD PTR[rax*4+rdi],2
+ pinsrw xmm0,WORD[rax*4+rdi],2
add r8d,r9d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r9d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
and r12d,r8d
- add r11d,DWORD PTR[20+r15]
+ add r11d,DWORD[20+r15]
add bl,dl
- mov eax,DWORD PTR[24+rsi]
+ mov eax,DWORD[24+rsi]
add r11d,1200080426
xor r12d,r10d
movzx ebx,bl
- mov DWORD PTR[20+rsi],edx
+ mov DWORD[20+rsi],edx
add r11d,r12d
add cl,al
rol r11d,12
mov r12d,r9d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],2
+ pinsrw xmm1,WORD[rbx*4+rdi],2
add r11d,r8d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r8d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
and r12d,r11d
- add r10d,DWORD PTR[24+r15]
+ add r10d,DWORD[24+r15]
add al,dl
- mov ebx,DWORD PTR[28+rsi]
+ mov ebx,DWORD[28+rsi]
add r10d,2821735955
xor r12d,r9d
movzx eax,al
- mov DWORD PTR[24+rsi],edx
+ mov DWORD[24+rsi],edx
add r10d,r12d
add cl,bl
rol r10d,17
mov r12d,r8d
- pinsrw xmm0,WORD PTR[rax*4+rdi],3
+ pinsrw xmm0,WORD[rax*4+rdi],3
add r10d,r11d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r11d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
and r12d,r10d
- add r9d,DWORD PTR[28+r15]
+ add r9d,DWORD[28+r15]
add bl,dl
- mov eax,DWORD PTR[32+rsi]
+ mov eax,DWORD[32+rsi]
add r9d,4249261313
xor r12d,r8d
movzx ebx,bl
- mov DWORD PTR[28+rsi],edx
+ mov DWORD[28+rsi],edx
add r9d,r12d
add cl,al
rol r9d,22
mov r12d,r11d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],3
+ pinsrw xmm1,WORD[rbx*4+rdi],3
add r9d,r10d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r10d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
and r12d,r9d
- add r8d,DWORD PTR[32+r15]
+ add r8d,DWORD[32+r15]
add al,dl
- mov ebx,DWORD PTR[36+rsi]
+ mov ebx,DWORD[36+rsi]
add r8d,1770035416
xor r12d,r11d
movzx eax,al
- mov DWORD PTR[32+rsi],edx
+ mov DWORD[32+rsi],edx
add r8d,r12d
add cl,bl
rol r8d,7
mov r12d,r10d
- pinsrw xmm0,WORD PTR[rax*4+rdi],4
+ pinsrw xmm0,WORD[rax*4+rdi],4
add r8d,r9d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r9d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
and r12d,r8d
- add r11d,DWORD PTR[36+r15]
+ add r11d,DWORD[36+r15]
add bl,dl
- mov eax,DWORD PTR[40+rsi]
+ mov eax,DWORD[40+rsi]
add r11d,2336552879
xor r12d,r10d
movzx ebx,bl
- mov DWORD PTR[36+rsi],edx
+ mov DWORD[36+rsi],edx
add r11d,r12d
add cl,al
rol r11d,12
mov r12d,r9d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],4
+ pinsrw xmm1,WORD[rbx*4+rdi],4
add r11d,r8d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r8d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
and r12d,r11d
- add r10d,DWORD PTR[40+r15]
+ add r10d,DWORD[40+r15]
add al,dl
- mov ebx,DWORD PTR[44+rsi]
+ mov ebx,DWORD[44+rsi]
add r10d,4294925233
xor r12d,r9d
movzx eax,al
- mov DWORD PTR[40+rsi],edx
+ mov DWORD[40+rsi],edx
add r10d,r12d
add cl,bl
rol r10d,17
mov r12d,r8d
- pinsrw xmm0,WORD PTR[rax*4+rdi],5
+ pinsrw xmm0,WORD[rax*4+rdi],5
add r10d,r11d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r11d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
and r12d,r10d
- add r9d,DWORD PTR[44+r15]
+ add r9d,DWORD[44+r15]
add bl,dl
- mov eax,DWORD PTR[48+rsi]
+ mov eax,DWORD[48+rsi]
add r9d,2304563134
xor r12d,r8d
movzx ebx,bl
- mov DWORD PTR[44+rsi],edx
+ mov DWORD[44+rsi],edx
add r9d,r12d
add cl,al
rol r9d,22
mov r12d,r11d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],5
+ pinsrw xmm1,WORD[rbx*4+rdi],5
add r9d,r10d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r10d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
and r12d,r9d
- add r8d,DWORD PTR[48+r15]
+ add r8d,DWORD[48+r15]
add al,dl
- mov ebx,DWORD PTR[52+rsi]
+ mov ebx,DWORD[52+rsi]
add r8d,1804603682
xor r12d,r11d
movzx eax,al
- mov DWORD PTR[48+rsi],edx
+ mov DWORD[48+rsi],edx
add r8d,r12d
add cl,bl
rol r8d,7
mov r12d,r10d
- pinsrw xmm0,WORD PTR[rax*4+rdi],6
+ pinsrw xmm0,WORD[rax*4+rdi],6
add r8d,r9d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r9d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
and r12d,r8d
- add r11d,DWORD PTR[52+r15]
+ add r11d,DWORD[52+r15]
add bl,dl
- mov eax,DWORD PTR[56+rsi]
+ mov eax,DWORD[56+rsi]
add r11d,4254626195
xor r12d,r10d
movzx ebx,bl
- mov DWORD PTR[52+rsi],edx
+ mov DWORD[52+rsi],edx
add r11d,r12d
add cl,al
rol r11d,12
mov r12d,r9d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],6
+ pinsrw xmm1,WORD[rbx*4+rdi],6
add r11d,r8d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r8d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
and r12d,r11d
- add r10d,DWORD PTR[56+r15]
+ add r10d,DWORD[56+r15]
add al,dl
- mov ebx,DWORD PTR[60+rsi]
+ mov ebx,DWORD[60+rsi]
add r10d,2792965006
xor r12d,r9d
movzx eax,al
- mov DWORD PTR[56+rsi],edx
+ mov DWORD[56+rsi],edx
add r10d,r12d
add cl,bl
rol r10d,17
mov r12d,r8d
- pinsrw xmm0,WORD PTR[rax*4+rdi],7
+ pinsrw xmm0,WORD[rax*4+rdi],7
add r10d,r11d
- movdqu xmm2,XMMWORD PTR[r13]
- mov edx,DWORD PTR[rcx*4+rdi]
+ movdqu xmm2,XMMWORD[r13]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r11d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
and r12d,r10d
- add r9d,DWORD PTR[60+r15]
+ add r9d,DWORD[60+r15]
add bl,dl
- mov eax,DWORD PTR[64+rsi]
+ mov eax,DWORD[64+rsi]
add r9d,1236535329
xor r12d,r8d
movzx ebx,bl
- mov DWORD PTR[60+rsi],edx
+ mov DWORD[60+rsi],edx
add r9d,r12d
add cl,al
rol r9d,22
mov r12d,r10d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],7
+ pinsrw xmm1,WORD[rbx*4+rdi],7
add r9d,r10d
psllq xmm1,8
pxor xmm2,xmm0
pxor xmm2,xmm1
pxor xmm0,xmm0
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r9d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
and r12d,r11d
- add r8d,DWORD PTR[4+r15]
+ add r8d,DWORD[4+r15]
add al,dl
- mov ebx,DWORD PTR[68+rsi]
+ mov ebx,DWORD[68+rsi]
add r8d,4129170786
xor r12d,r10d
movzx eax,al
- mov DWORD PTR[64+rsi],edx
+ mov DWORD[64+rsi],edx
add r8d,r12d
add cl,bl
rol r8d,5
mov r12d,r9d
- movd xmm0,DWORD PTR[rax*4+rdi]
+ movd xmm0,DWORD[rax*4+rdi]
add r8d,r9d
pxor xmm1,xmm1
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r8d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
and r12d,r10d
- add r11d,DWORD PTR[24+r15]
+ add r11d,DWORD[24+r15]
add bl,dl
- mov eax,DWORD PTR[72+rsi]
+ mov eax,DWORD[72+rsi]
add r11d,3225465664
xor r12d,r9d
movzx ebx,bl
- mov DWORD PTR[68+rsi],edx
+ mov DWORD[68+rsi],edx
add r11d,r12d
add cl,al
rol r11d,9
mov r12d,r8d
- movd xmm1,DWORD PTR[rbx*4+rdi]
+ movd xmm1,DWORD[rbx*4+rdi]
add r11d,r8d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r11d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
and r12d,r9d
- add r10d,DWORD PTR[44+r15]
+ add r10d,DWORD[44+r15]
add al,dl
- mov ebx,DWORD PTR[76+rsi]
+ mov ebx,DWORD[76+rsi]
add r10d,643717713
xor r12d,r8d
movzx eax,al
- mov DWORD PTR[72+rsi],edx
+ mov DWORD[72+rsi],edx
add r10d,r12d
add cl,bl
rol r10d,14
mov r12d,r11d
- pinsrw xmm0,WORD PTR[rax*4+rdi],1
+ pinsrw xmm0,WORD[rax*4+rdi],1
add r10d,r11d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r10d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
and r12d,r8d
- add r9d,DWORD PTR[r15]
+ add r9d,DWORD[r15]
add bl,dl
- mov eax,DWORD PTR[80+rsi]
+ mov eax,DWORD[80+rsi]
add r9d,3921069994
xor r12d,r11d
movzx ebx,bl
- mov DWORD PTR[76+rsi],edx
+ mov DWORD[76+rsi],edx
add r9d,r12d
add cl,al
rol r9d,20
mov r12d,r10d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],1
+ pinsrw xmm1,WORD[rbx*4+rdi],1
add r9d,r10d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r9d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
and r12d,r11d
- add r8d,DWORD PTR[20+r15]
+ add r8d,DWORD[20+r15]
add al,dl
- mov ebx,DWORD PTR[84+rsi]
+ mov ebx,DWORD[84+rsi]
add r8d,3593408605
xor r12d,r10d
movzx eax,al
- mov DWORD PTR[80+rsi],edx
+ mov DWORD[80+rsi],edx
add r8d,r12d
add cl,bl
rol r8d,5
mov r12d,r9d
- pinsrw xmm0,WORD PTR[rax*4+rdi],2
+ pinsrw xmm0,WORD[rax*4+rdi],2
add r8d,r9d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r8d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
and r12d,r10d
- add r11d,DWORD PTR[40+r15]
+ add r11d,DWORD[40+r15]
add bl,dl
- mov eax,DWORD PTR[88+rsi]
+ mov eax,DWORD[88+rsi]
add r11d,38016083
xor r12d,r9d
movzx ebx,bl
- mov DWORD PTR[84+rsi],edx
+ mov DWORD[84+rsi],edx
add r11d,r12d
add cl,al
rol r11d,9
mov r12d,r8d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],2
+ pinsrw xmm1,WORD[rbx*4+rdi],2
add r11d,r8d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r11d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
and r12d,r9d
- add r10d,DWORD PTR[60+r15]
+ add r10d,DWORD[60+r15]
add al,dl
- mov ebx,DWORD PTR[92+rsi]
+ mov ebx,DWORD[92+rsi]
add r10d,3634488961
xor r12d,r8d
movzx eax,al
- mov DWORD PTR[88+rsi],edx
+ mov DWORD[88+rsi],edx
add r10d,r12d
add cl,bl
rol r10d,14
mov r12d,r11d
- pinsrw xmm0,WORD PTR[rax*4+rdi],3
+ pinsrw xmm0,WORD[rax*4+rdi],3
add r10d,r11d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r10d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
and r12d,r8d
- add r9d,DWORD PTR[16+r15]
+ add r9d,DWORD[16+r15]
add bl,dl
- mov eax,DWORD PTR[96+rsi]
+ mov eax,DWORD[96+rsi]
add r9d,3889429448
xor r12d,r11d
movzx ebx,bl
- mov DWORD PTR[92+rsi],edx
+ mov DWORD[92+rsi],edx
add r9d,r12d
add cl,al
rol r9d,20
mov r12d,r10d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],3
+ pinsrw xmm1,WORD[rbx*4+rdi],3
add r9d,r10d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r9d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
and r12d,r11d
- add r8d,DWORD PTR[36+r15]
+ add r8d,DWORD[36+r15]
add al,dl
- mov ebx,DWORD PTR[100+rsi]
+ mov ebx,DWORD[100+rsi]
add r8d,568446438
xor r12d,r10d
movzx eax,al
- mov DWORD PTR[96+rsi],edx
+ mov DWORD[96+rsi],edx
add r8d,r12d
add cl,bl
rol r8d,5
mov r12d,r9d
- pinsrw xmm0,WORD PTR[rax*4+rdi],4
+ pinsrw xmm0,WORD[rax*4+rdi],4
add r8d,r9d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r8d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
and r12d,r10d
- add r11d,DWORD PTR[56+r15]
+ add r11d,DWORD[56+r15]
add bl,dl
- mov eax,DWORD PTR[104+rsi]
+ mov eax,DWORD[104+rsi]
add r11d,3275163606
xor r12d,r9d
movzx ebx,bl
- mov DWORD PTR[100+rsi],edx
+ mov DWORD[100+rsi],edx
add r11d,r12d
add cl,al
rol r11d,9
mov r12d,r8d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],4
+ pinsrw xmm1,WORD[rbx*4+rdi],4
add r11d,r8d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r11d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
and r12d,r9d
- add r10d,DWORD PTR[12+r15]
+ add r10d,DWORD[12+r15]
add al,dl
- mov ebx,DWORD PTR[108+rsi]
+ mov ebx,DWORD[108+rsi]
add r10d,4107603335
xor r12d,r8d
movzx eax,al
- mov DWORD PTR[104+rsi],edx
+ mov DWORD[104+rsi],edx
add r10d,r12d
add cl,bl
rol r10d,14
mov r12d,r11d
- pinsrw xmm0,WORD PTR[rax*4+rdi],5
+ pinsrw xmm0,WORD[rax*4+rdi],5
add r10d,r11d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r10d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
and r12d,r8d
- add r9d,DWORD PTR[32+r15]
+ add r9d,DWORD[32+r15]
add bl,dl
- mov eax,DWORD PTR[112+rsi]
+ mov eax,DWORD[112+rsi]
add r9d,1163531501
xor r12d,r11d
movzx ebx,bl
- mov DWORD PTR[108+rsi],edx
+ mov DWORD[108+rsi],edx
add r9d,r12d
add cl,al
rol r9d,20
mov r12d,r10d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],5
+ pinsrw xmm1,WORD[rbx*4+rdi],5
add r9d,r10d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r9d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
and r12d,r11d
- add r8d,DWORD PTR[52+r15]
+ add r8d,DWORD[52+r15]
add al,dl
- mov ebx,DWORD PTR[116+rsi]
+ mov ebx,DWORD[116+rsi]
add r8d,2850285829
xor r12d,r10d
movzx eax,al
- mov DWORD PTR[112+rsi],edx
+ mov DWORD[112+rsi],edx
add r8d,r12d
add cl,bl
rol r8d,5
mov r12d,r9d
- pinsrw xmm0,WORD PTR[rax*4+rdi],6
+ pinsrw xmm0,WORD[rax*4+rdi],6
add r8d,r9d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r8d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
and r12d,r10d
- add r11d,DWORD PTR[8+r15]
+ add r11d,DWORD[8+r15]
add bl,dl
- mov eax,DWORD PTR[120+rsi]
+ mov eax,DWORD[120+rsi]
add r11d,4243563512
xor r12d,r9d
movzx ebx,bl
- mov DWORD PTR[116+rsi],edx
+ mov DWORD[116+rsi],edx
add r11d,r12d
add cl,al
rol r11d,9
mov r12d,r8d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],6
+ pinsrw xmm1,WORD[rbx*4+rdi],6
add r11d,r8d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r11d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
and r12d,r9d
- add r10d,DWORD PTR[28+r15]
+ add r10d,DWORD[28+r15]
add al,dl
- mov ebx,DWORD PTR[124+rsi]
+ mov ebx,DWORD[124+rsi]
add r10d,1735328473
xor r12d,r8d
movzx eax,al
- mov DWORD PTR[120+rsi],edx
+ mov DWORD[120+rsi],edx
add r10d,r12d
add cl,bl
rol r10d,14
mov r12d,r11d
- pinsrw xmm0,WORD PTR[rax*4+rdi],7
+ pinsrw xmm0,WORD[rax*4+rdi],7
add r10d,r11d
- movdqu xmm3,XMMWORD PTR[16+r13]
+ movdqu xmm3,XMMWORD[16+r13]
add bpl,32
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r10d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
and r12d,r8d
- add r9d,DWORD PTR[48+r15]
+ add r9d,DWORD[48+r15]
add bl,dl
- mov eax,DWORD PTR[rbp*4+rdi]
+ mov eax,DWORD[rbp*4+rdi]
add r9d,2368359562
xor r12d,r11d
movzx ebx,bl
- mov DWORD PTR[124+rsi],edx
+ mov DWORD[124+rsi],edx
add r9d,r12d
add cl,al
rol r9d,20
mov r12d,r11d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],7
+ pinsrw xmm1,WORD[rbx*4+rdi],7
add r9d,r10d
mov rsi,rcx
xor rcx,rcx
mov cl,sil
- lea rsi,QWORD PTR[rbp*4+rdi]
+ lea rsi,[rbp*4+rdi]
psllq xmm1,8
pxor xmm3,xmm0
pxor xmm3,xmm1
pxor xmm0,xmm0
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r10d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
xor r12d,r9d
- add r8d,DWORD PTR[20+r15]
+ add r8d,DWORD[20+r15]
add al,dl
- mov ebx,DWORD PTR[4+rsi]
+ mov ebx,DWORD[4+rsi]
add r8d,4294588738
movzx eax,al
add r8d,r12d
- mov DWORD PTR[rsi],edx
+ mov DWORD[rsi],edx
add cl,bl
rol r8d,4
mov r12d,r10d
- movd xmm0,DWORD PTR[rax*4+rdi]
+ movd xmm0,DWORD[rax*4+rdi]
add r8d,r9d
pxor xmm1,xmm1
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r9d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
xor r12d,r8d
- add r11d,DWORD PTR[32+r15]
+ add r11d,DWORD[32+r15]
add bl,dl
- mov eax,DWORD PTR[8+rsi]
+ mov eax,DWORD[8+rsi]
add r11d,2272392833
movzx ebx,bl
add r11d,r12d
- mov DWORD PTR[4+rsi],edx
+ mov DWORD[4+rsi],edx
add cl,al
rol r11d,11
mov r12d,r9d
- movd xmm1,DWORD PTR[rbx*4+rdi]
+ movd xmm1,DWORD[rbx*4+rdi]
add r11d,r8d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r8d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
xor r12d,r11d
- add r10d,DWORD PTR[44+r15]
+ add r10d,DWORD[44+r15]
add al,dl
- mov ebx,DWORD PTR[12+rsi]
+ mov ebx,DWORD[12+rsi]
add r10d,1839030562
movzx eax,al
add r10d,r12d
- mov DWORD PTR[8+rsi],edx
+ mov DWORD[8+rsi],edx
add cl,bl
rol r10d,16
mov r12d,r8d
- pinsrw xmm0,WORD PTR[rax*4+rdi],1
+ pinsrw xmm0,WORD[rax*4+rdi],1
add r10d,r11d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r11d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
xor r12d,r10d
- add r9d,DWORD PTR[56+r15]
+ add r9d,DWORD[56+r15]
add bl,dl
- mov eax,DWORD PTR[16+rsi]
+ mov eax,DWORD[16+rsi]
add r9d,4259657740
movzx ebx,bl
add r9d,r12d
- mov DWORD PTR[12+rsi],edx
+ mov DWORD[12+rsi],edx
add cl,al
rol r9d,23
mov r12d,r11d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],1
+ pinsrw xmm1,WORD[rbx*4+rdi],1
add r9d,r10d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r10d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
xor r12d,r9d
- add r8d,DWORD PTR[4+r15]
+ add r8d,DWORD[4+r15]
add al,dl
- mov ebx,DWORD PTR[20+rsi]
+ mov ebx,DWORD[20+rsi]
add r8d,2763975236
movzx eax,al
add r8d,r12d
- mov DWORD PTR[16+rsi],edx
+ mov DWORD[16+rsi],edx
add cl,bl
rol r8d,4
mov r12d,r10d
- pinsrw xmm0,WORD PTR[rax*4+rdi],2
+ pinsrw xmm0,WORD[rax*4+rdi],2
add r8d,r9d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r9d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
xor r12d,r8d
- add r11d,DWORD PTR[16+r15]
+ add r11d,DWORD[16+r15]
add bl,dl
- mov eax,DWORD PTR[24+rsi]
+ mov eax,DWORD[24+rsi]
add r11d,1272893353
movzx ebx,bl
add r11d,r12d
- mov DWORD PTR[20+rsi],edx
+ mov DWORD[20+rsi],edx
add cl,al
rol r11d,11
mov r12d,r9d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],2
+ pinsrw xmm1,WORD[rbx*4+rdi],2
add r11d,r8d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r8d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
xor r12d,r11d
- add r10d,DWORD PTR[28+r15]
+ add r10d,DWORD[28+r15]
add al,dl
- mov ebx,DWORD PTR[28+rsi]
+ mov ebx,DWORD[28+rsi]
add r10d,4139469664
movzx eax,al
add r10d,r12d
- mov DWORD PTR[24+rsi],edx
+ mov DWORD[24+rsi],edx
add cl,bl
rol r10d,16
mov r12d,r8d
- pinsrw xmm0,WORD PTR[rax*4+rdi],3
+ pinsrw xmm0,WORD[rax*4+rdi],3
add r10d,r11d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r11d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
xor r12d,r10d
- add r9d,DWORD PTR[40+r15]
+ add r9d,DWORD[40+r15]
add bl,dl
- mov eax,DWORD PTR[32+rsi]
+ mov eax,DWORD[32+rsi]
add r9d,3200236656
movzx ebx,bl
add r9d,r12d
- mov DWORD PTR[28+rsi],edx
+ mov DWORD[28+rsi],edx
add cl,al
rol r9d,23
mov r12d,r11d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],3
+ pinsrw xmm1,WORD[rbx*4+rdi],3
add r9d,r10d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r10d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
xor r12d,r9d
- add r8d,DWORD PTR[52+r15]
+ add r8d,DWORD[52+r15]
add al,dl
- mov ebx,DWORD PTR[36+rsi]
+ mov ebx,DWORD[36+rsi]
add r8d,681279174
movzx eax,al
add r8d,r12d
- mov DWORD PTR[32+rsi],edx
+ mov DWORD[32+rsi],edx
add cl,bl
rol r8d,4
mov r12d,r10d
- pinsrw xmm0,WORD PTR[rax*4+rdi],4
+ pinsrw xmm0,WORD[rax*4+rdi],4
add r8d,r9d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r9d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
xor r12d,r8d
- add r11d,DWORD PTR[r15]
+ add r11d,DWORD[r15]
add bl,dl
- mov eax,DWORD PTR[40+rsi]
+ mov eax,DWORD[40+rsi]
add r11d,3936430074
movzx ebx,bl
add r11d,r12d
- mov DWORD PTR[36+rsi],edx
+ mov DWORD[36+rsi],edx
add cl,al
rol r11d,11
mov r12d,r9d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],4
+ pinsrw xmm1,WORD[rbx*4+rdi],4
add r11d,r8d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r8d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
xor r12d,r11d
- add r10d,DWORD PTR[12+r15]
+ add r10d,DWORD[12+r15]
add al,dl
- mov ebx,DWORD PTR[44+rsi]
+ mov ebx,DWORD[44+rsi]
add r10d,3572445317
movzx eax,al
add r10d,r12d
- mov DWORD PTR[40+rsi],edx
+ mov DWORD[40+rsi],edx
add cl,bl
rol r10d,16
mov r12d,r8d
- pinsrw xmm0,WORD PTR[rax*4+rdi],5
+ pinsrw xmm0,WORD[rax*4+rdi],5
add r10d,r11d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r11d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
xor r12d,r10d
- add r9d,DWORD PTR[24+r15]
+ add r9d,DWORD[24+r15]
add bl,dl
- mov eax,DWORD PTR[48+rsi]
+ mov eax,DWORD[48+rsi]
add r9d,76029189
movzx ebx,bl
add r9d,r12d
- mov DWORD PTR[44+rsi],edx
+ mov DWORD[44+rsi],edx
add cl,al
rol r9d,23
mov r12d,r11d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],5
+ pinsrw xmm1,WORD[rbx*4+rdi],5
add r9d,r10d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r10d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
xor r12d,r9d
- add r8d,DWORD PTR[36+r15]
+ add r8d,DWORD[36+r15]
add al,dl
- mov ebx,DWORD PTR[52+rsi]
+ mov ebx,DWORD[52+rsi]
add r8d,3654602809
movzx eax,al
add r8d,r12d
- mov DWORD PTR[48+rsi],edx
+ mov DWORD[48+rsi],edx
add cl,bl
rol r8d,4
mov r12d,r10d
- pinsrw xmm0,WORD PTR[rax*4+rdi],6
+ pinsrw xmm0,WORD[rax*4+rdi],6
add r8d,r9d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r9d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
xor r12d,r8d
- add r11d,DWORD PTR[48+r15]
+ add r11d,DWORD[48+r15]
add bl,dl
- mov eax,DWORD PTR[56+rsi]
+ mov eax,DWORD[56+rsi]
add r11d,3873151461
movzx ebx,bl
add r11d,r12d
- mov DWORD PTR[52+rsi],edx
+ mov DWORD[52+rsi],edx
add cl,al
rol r11d,11
mov r12d,r9d
- pinsrw xmm1,WORD PTR[rbx*4+rdi],6
+ pinsrw xmm1,WORD[rbx*4+rdi],6
add r11d,r8d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r8d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
xor r12d,r11d
- add r10d,DWORD PTR[60+r15]
+ add r10d,DWORD[60+r15]
add al,dl
- mov ebx,DWORD PTR[60+rsi]
+ mov ebx,DWORD[60+rsi]
add r10d,530742520
movzx eax,al
add r10d,r12d
- mov DWORD PTR[56+rsi],edx
+ mov DWORD[56+rsi],edx
add cl,bl
rol r10d,16
mov r12d,r8d
- pinsrw xmm0,WORD PTR[rax*4+rdi],7
+ pinsrw xmm0,WORD[rax*4+rdi],7
add r10d,r11d
- movdqu xmm4,XMMWORD PTR[32+r13]
- mov edx,DWORD PTR[rcx*4+rdi]
+ movdqu xmm4,XMMWORD[32+r13]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r11d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
xor r12d,r10d
- add r9d,DWORD PTR[8+r15]
+ add r9d,DWORD[8+r15]
add bl,dl
- mov eax,DWORD PTR[64+rsi]
+ mov eax,DWORD[64+rsi]
add r9d,3299628645
movzx ebx,bl
add r9d,r12d
- mov DWORD PTR[60+rsi],edx
+ mov DWORD[60+rsi],edx
add cl,al
rol r9d,23
mov r12d,-1
- pinsrw xmm1,WORD PTR[rbx*4+rdi],7
+ pinsrw xmm1,WORD[rbx*4+rdi],7
add r9d,r10d
psllq xmm1,8
pxor xmm4,xmm0
pxor xmm4,xmm1
pxor xmm0,xmm0
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r11d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
or r12d,r9d
- add r8d,DWORD PTR[r15]
+ add r8d,DWORD[r15]
add al,dl
- mov ebx,DWORD PTR[68+rsi]
+ mov ebx,DWORD[68+rsi]
add r8d,4096336452
movzx eax,al
xor r12d,r10d
- mov DWORD PTR[64+rsi],edx
+ mov DWORD[64+rsi],edx
add r8d,r12d
add cl,bl
rol r8d,6
mov r12d,-1
- movd xmm0,DWORD PTR[rax*4+rdi]
+ movd xmm0,DWORD[rax*4+rdi]
add r8d,r9d
pxor xmm1,xmm1
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r10d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
or r12d,r8d
- add r11d,DWORD PTR[28+r15]
+ add r11d,DWORD[28+r15]
add bl,dl
- mov eax,DWORD PTR[72+rsi]
+ mov eax,DWORD[72+rsi]
add r11d,1126891415
movzx ebx,bl
xor r12d,r9d
- mov DWORD PTR[68+rsi],edx
+ mov DWORD[68+rsi],edx
add r11d,r12d
add cl,al
rol r11d,10
mov r12d,-1
- movd xmm1,DWORD PTR[rbx*4+rdi]
+ movd xmm1,DWORD[rbx*4+rdi]
add r11d,r8d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r9d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
or r12d,r11d
- add r10d,DWORD PTR[56+r15]
+ add r10d,DWORD[56+r15]
add al,dl
- mov ebx,DWORD PTR[76+rsi]
+ mov ebx,DWORD[76+rsi]
add r10d,2878612391
movzx eax,al
xor r12d,r8d
- mov DWORD PTR[72+rsi],edx
+ mov DWORD[72+rsi],edx
add r10d,r12d
add cl,bl
rol r10d,15
mov r12d,-1
- pinsrw xmm0,WORD PTR[rax*4+rdi],1
+ pinsrw xmm0,WORD[rax*4+rdi],1
add r10d,r11d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r8d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
or r12d,r10d
- add r9d,DWORD PTR[20+r15]
+ add r9d,DWORD[20+r15]
add bl,dl
- mov eax,DWORD PTR[80+rsi]
+ mov eax,DWORD[80+rsi]
add r9d,4237533241
movzx ebx,bl
xor r12d,r11d
- mov DWORD PTR[76+rsi],edx
+ mov DWORD[76+rsi],edx
add r9d,r12d
add cl,al
rol r9d,21
mov r12d,-1
- pinsrw xmm1,WORD PTR[rbx*4+rdi],1
+ pinsrw xmm1,WORD[rbx*4+rdi],1
add r9d,r10d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r11d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
or r12d,r9d
- add r8d,DWORD PTR[48+r15]
+ add r8d,DWORD[48+r15]
add al,dl
- mov ebx,DWORD PTR[84+rsi]
+ mov ebx,DWORD[84+rsi]
add r8d,1700485571
movzx eax,al
xor r12d,r10d
- mov DWORD PTR[80+rsi],edx
+ mov DWORD[80+rsi],edx
add r8d,r12d
add cl,bl
rol r8d,6
mov r12d,-1
- pinsrw xmm0,WORD PTR[rax*4+rdi],2
+ pinsrw xmm0,WORD[rax*4+rdi],2
add r8d,r9d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r10d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
or r12d,r8d
- add r11d,DWORD PTR[12+r15]
+ add r11d,DWORD[12+r15]
add bl,dl
- mov eax,DWORD PTR[88+rsi]
+ mov eax,DWORD[88+rsi]
add r11d,2399980690
movzx ebx,bl
xor r12d,r9d
- mov DWORD PTR[84+rsi],edx
+ mov DWORD[84+rsi],edx
add r11d,r12d
add cl,al
rol r11d,10
mov r12d,-1
- pinsrw xmm1,WORD PTR[rbx*4+rdi],2
+ pinsrw xmm1,WORD[rbx*4+rdi],2
add r11d,r8d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r9d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
or r12d,r11d
- add r10d,DWORD PTR[40+r15]
+ add r10d,DWORD[40+r15]
add al,dl
- mov ebx,DWORD PTR[92+rsi]
+ mov ebx,DWORD[92+rsi]
add r10d,4293915773
movzx eax,al
xor r12d,r8d
- mov DWORD PTR[88+rsi],edx
+ mov DWORD[88+rsi],edx
add r10d,r12d
add cl,bl
rol r10d,15
mov r12d,-1
- pinsrw xmm0,WORD PTR[rax*4+rdi],3
+ pinsrw xmm0,WORD[rax*4+rdi],3
add r10d,r11d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r8d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
or r12d,r10d
- add r9d,DWORD PTR[4+r15]
+ add r9d,DWORD[4+r15]
add bl,dl
- mov eax,DWORD PTR[96+rsi]
+ mov eax,DWORD[96+rsi]
add r9d,2240044497
movzx ebx,bl
xor r12d,r11d
- mov DWORD PTR[92+rsi],edx
+ mov DWORD[92+rsi],edx
add r9d,r12d
add cl,al
rol r9d,21
mov r12d,-1
- pinsrw xmm1,WORD PTR[rbx*4+rdi],3
+ pinsrw xmm1,WORD[rbx*4+rdi],3
add r9d,r10d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r11d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
or r12d,r9d
- add r8d,DWORD PTR[32+r15]
+ add r8d,DWORD[32+r15]
add al,dl
- mov ebx,DWORD PTR[100+rsi]
+ mov ebx,DWORD[100+rsi]
add r8d,1873313359
movzx eax,al
xor r12d,r10d
- mov DWORD PTR[96+rsi],edx
+ mov DWORD[96+rsi],edx
add r8d,r12d
add cl,bl
rol r8d,6
mov r12d,-1
- pinsrw xmm0,WORD PTR[rax*4+rdi],4
+ pinsrw xmm0,WORD[rax*4+rdi],4
add r8d,r9d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r10d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
or r12d,r8d
- add r11d,DWORD PTR[60+r15]
+ add r11d,DWORD[60+r15]
add bl,dl
- mov eax,DWORD PTR[104+rsi]
+ mov eax,DWORD[104+rsi]
add r11d,4264355552
movzx ebx,bl
xor r12d,r9d
- mov DWORD PTR[100+rsi],edx
+ mov DWORD[100+rsi],edx
add r11d,r12d
add cl,al
rol r11d,10
mov r12d,-1
- pinsrw xmm1,WORD PTR[rbx*4+rdi],4
+ pinsrw xmm1,WORD[rbx*4+rdi],4
add r11d,r8d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r9d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
or r12d,r11d
- add r10d,DWORD PTR[24+r15]
+ add r10d,DWORD[24+r15]
add al,dl
- mov ebx,DWORD PTR[108+rsi]
+ mov ebx,DWORD[108+rsi]
add r10d,2734768916
movzx eax,al
xor r12d,r8d
- mov DWORD PTR[104+rsi],edx
+ mov DWORD[104+rsi],edx
add r10d,r12d
add cl,bl
rol r10d,15
mov r12d,-1
- pinsrw xmm0,WORD PTR[rax*4+rdi],5
+ pinsrw xmm0,WORD[rax*4+rdi],5
add r10d,r11d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r8d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
or r12d,r10d
- add r9d,DWORD PTR[52+r15]
+ add r9d,DWORD[52+r15]
add bl,dl
- mov eax,DWORD PTR[112+rsi]
+ mov eax,DWORD[112+rsi]
add r9d,1309151649
movzx ebx,bl
xor r12d,r11d
- mov DWORD PTR[108+rsi],edx
+ mov DWORD[108+rsi],edx
add r9d,r12d
add cl,al
rol r9d,21
mov r12d,-1
- pinsrw xmm1,WORD PTR[rbx*4+rdi],5
+ pinsrw xmm1,WORD[rbx*4+rdi],5
add r9d,r10d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r11d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
or r12d,r9d
- add r8d,DWORD PTR[16+r15]
+ add r8d,DWORD[16+r15]
add al,dl
- mov ebx,DWORD PTR[116+rsi]
+ mov ebx,DWORD[116+rsi]
add r8d,4149444226
movzx eax,al
xor r12d,r10d
- mov DWORD PTR[112+rsi],edx
+ mov DWORD[112+rsi],edx
add r8d,r12d
add cl,bl
rol r8d,6
mov r12d,-1
- pinsrw xmm0,WORD PTR[rax*4+rdi],6
+ pinsrw xmm0,WORD[rax*4+rdi],6
add r8d,r9d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r10d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
or r12d,r8d
- add r11d,DWORD PTR[44+r15]
+ add r11d,DWORD[44+r15]
add bl,dl
- mov eax,DWORD PTR[120+rsi]
+ mov eax,DWORD[120+rsi]
add r11d,3174756917
movzx ebx,bl
xor r12d,r9d
- mov DWORD PTR[116+rsi],edx
+ mov DWORD[116+rsi],edx
add r11d,r12d
add cl,al
rol r11d,10
mov r12d,-1
- pinsrw xmm1,WORD PTR[rbx*4+rdi],6
+ pinsrw xmm1,WORD[rbx*4+rdi],6
add r11d,r8d
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r9d
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
or r12d,r11d
- add r10d,DWORD PTR[8+r15]
+ add r10d,DWORD[8+r15]
add al,dl
- mov ebx,DWORD PTR[124+rsi]
+ mov ebx,DWORD[124+rsi]
add r10d,718787259
movzx eax,al
xor r12d,r8d
- mov DWORD PTR[120+rsi],edx
+ mov DWORD[120+rsi],edx
add r10d,r12d
add cl,bl
rol r10d,15
mov r12d,-1
- pinsrw xmm0,WORD PTR[rax*4+rdi],7
+ pinsrw xmm0,WORD[rax*4+rdi],7
add r10d,r11d
- movdqu xmm5,XMMWORD PTR[48+r13]
+ movdqu xmm5,XMMWORD[48+r13]
add bpl,32
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
xor r12d,r8d
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
or r12d,r10d
- add r9d,DWORD PTR[36+r15]
+ add r9d,DWORD[36+r15]
add bl,dl
- mov eax,DWORD PTR[rbp*4+rdi]
+ mov eax,DWORD[rbp*4+rdi]
add r9d,3951481745
movzx ebx,bl
xor r12d,r11d
- mov DWORD PTR[124+rsi],edx
+ mov DWORD[124+rsi],edx
add r9d,r12d
add cl,al
rol r9d,21
mov r12d,-1
- pinsrw xmm1,WORD PTR[rbx*4+rdi],7
+ pinsrw xmm1,WORD[rbx*4+rdi],7
add r9d,r10d
mov rsi,rbp
@@ -1231,52 +1235,51 @@ $L$oop::
mov rsi,rcx
xor rcx,rcx
mov cl,sil
- lea rsi,QWORD PTR[rbp*4+rdi]
+ lea rsi,[rbp*4+rdi]
psllq xmm1,8
pxor xmm5,xmm0
pxor xmm5,xmm1
- add r8d,DWORD PTR[rsp]
- add r9d,DWORD PTR[4+rsp]
- add r10d,DWORD PTR[8+rsp]
- add r11d,DWORD PTR[12+rsp]
-
- movdqu XMMWORD PTR[r13*1+r14],xmm2
- movdqu XMMWORD PTR[16+r13*1+r14],xmm3
- movdqu XMMWORD PTR[32+r13*1+r14],xmm4
- movdqu XMMWORD PTR[48+r13*1+r14],xmm5
- lea r15,QWORD PTR[64+r15]
- lea r13,QWORD PTR[64+r13]
- cmp r15,QWORD PTR[16+rsp]
- jb $L$oop
-
- mov r12,QWORD PTR[24+rsp]
+ add r8d,DWORD[rsp]
+ add r9d,DWORD[4+rsp]
+ add r10d,DWORD[8+rsp]
+ add r11d,DWORD[12+rsp]
+
+ movdqu XMMWORD[r13*1+r14],xmm2
+ movdqu XMMWORD[16+r13*1+r14],xmm3
+ movdqu XMMWORD[32+r13*1+r14],xmm4
+ movdqu XMMWORD[48+r13*1+r14],xmm5
+ lea r15,[64+r15]
+ lea r13,[64+r13]
+ cmp r15,QWORD[16+rsp]
+ jb NEAR $L$oop
+
+ mov r12,QWORD[24+rsp]
sub cl,al
- mov DWORD PTR[r12],r8d
- mov DWORD PTR[4+r12],r9d
- mov DWORD PTR[8+r12],r10d
- mov DWORD PTR[12+r12],r11d
+ mov DWORD[r12],r8d
+ mov DWORD[4+r12],r9d
+ mov DWORD[8+r12],r10d
+ mov DWORD[12+r12],r11d
sub bpl,1
- mov DWORD PTR[((-8))+rdi],ebp
- mov DWORD PTR[((-4))+rdi],ecx
-
- mov r15,QWORD PTR[40+rsp]
- mov r14,QWORD PTR[48+rsp]
- mov r13,QWORD PTR[56+rsp]
- mov r12,QWORD PTR[64+rsp]
- mov rbp,QWORD PTR[72+rsp]
- mov rbx,QWORD PTR[80+rsp]
- lea rsp,QWORD PTR[88+rsp]
-$L$epilogue::
-$L$abort::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ mov DWORD[((-8))+rdi],ebp
+ mov DWORD[((-4))+rdi],ecx
+
+ mov r15,QWORD[40+rsp]
+ mov r14,QWORD[48+rsp]
+ mov r13,QWORD[56+rsp]
+ mov r12,QWORD[64+rsp]
+ mov rbp,QWORD[72+rsp]
+ mov rbx,QWORD[80+rsp]
+ lea rsp,[88+rsp]
+$L$epilogue:
+$L$abort:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_rc4_md5_enc::
-rc4_md5_enc ENDP
-EXTERN __imp_RtlVirtualUnwind:NEAR
+$L$SEH_end_rc4_md5_enc:
+EXTERN __imp_RtlVirtualUnwind
ALIGN 16
-se_handler PROC PRIVATE
+se_handler:
push rsi
push rdi
push rbx
@@ -1288,59 +1291,59 @@ 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$body]
+ lea r10,[$L$body]
cmp rbx,r10
- jb $L$in_prologue
+ jb NEAR $L$in_prologue
- mov rax,QWORD PTR[152+r8]
+ mov rax,QWORD[152+r8]
- lea r10,QWORD PTR[$L$epilogue]
+ lea r10,[$L$epilogue]
cmp rbx,r10
- jae $L$in_prologue
-
- mov r15,QWORD PTR[40+rax]
- mov r14,QWORD PTR[48+rax]
- mov r13,QWORD PTR[56+rax]
- mov r12,QWORD PTR[64+rax]
- mov rbp,QWORD PTR[72+rax]
- mov rbx,QWORD PTR[80+rax]
- lea rax,QWORD PTR[88+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 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]
+ jae NEAR $L$in_prologue
+
+ mov r15,QWORD[40+rax]
+ mov r14,QWORD[48+rax]
+ mov r13,QWORD[56+rax]
+ mov r12,QWORD[64+rax]
+ mov rbp,QWORD[72+rax]
+ mov rbx,QWORD[80+rax]
+ lea rax,[88+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 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
@@ -1354,21 +1357,16 @@ $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_rc4_md5_enc
- DD imagerel $L$SEH_end_rc4_md5_enc
- DD imagerel $L$SEH_info_rc4_md5_enc
+ DD $L$SEH_begin_rc4_md5_enc wrt ..imagebase
+ DD $L$SEH_end_rc4_md5_enc wrt ..imagebase
+ DD $L$SEH_info_rc4_md5_enc wrt ..imagebase
-.pdata ENDS
-.xdata SEGMENT READONLY ALIGN(8)
+section .xdata rdata align=8
ALIGN 8
-$L$SEH_info_rc4_md5_enc::
+$L$SEH_info_rc4_md5_enc:
DB 9,0,0,0
- DD imagerel se_handler
-
-.xdata ENDS
-END
+ DD se_handler wrt ..imagebase
diff --git a/win-x86_64/crypto/rc4/rc4-x86_64.asm b/win-x86_64/crypto/rc4/rc4-x86_64.asm
index c183cac..c7c3b7b 100644
--- a/win-x86_64/crypto/rc4/rc4-x86_64.asm
+++ b/win-x86_64/crypto/rc4/rc4-x86_64.asm
@@ -1,15 +1,19 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
-EXTERN OPENSSL_ia32cap_P:NEAR
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
-PUBLIC asm_RC4
+EXTERN OPENSSL_ia32cap_P
+
+global asm_RC4
ALIGN 16
-asm_RC4 PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+asm_RC4:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_asm_RC4::
+$L$SEH_begin_asm_RC4:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
@@ -17,538 +21,537 @@ $L$SEH_begin_asm_RC4::
or rsi,rsi
- jne $L$entry
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ jne NEAR $L$entry
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$entry::
+$L$entry:
push rbx
push r12
push r13
-$L$prologue::
+$L$prologue:
mov r11,rsi
mov r12,rdx
mov r13,rcx
xor r10,r10
xor rcx,rcx
- lea rdi,QWORD PTR[8+rdi]
- mov r10b,BYTE PTR[((-8))+rdi]
- mov cl,BYTE PTR[((-4))+rdi]
- cmp DWORD PTR[256+rdi],-1
- je $L$RC4_CHAR
- mov r8d,DWORD PTR[OPENSSL_ia32cap_P]
+ lea rdi,[8+rdi]
+ mov r10b,BYTE[((-8))+rdi]
+ mov cl,BYTE[((-4))+rdi]
+ cmp DWORD[256+rdi],-1
+ je NEAR $L$RC4_CHAR
+ mov r8d,DWORD[OPENSSL_ia32cap_P]
xor rbx,rbx
inc r10b
sub rbx,r10
sub r13,r12
- mov eax,DWORD PTR[r10*4+rdi]
+ mov eax,DWORD[r10*4+rdi]
test r11,-16
- jz $L$loop1
+ jz NEAR $L$loop1
bt r8d,30
- jc $L$intel
+ jc NEAR $L$intel
and rbx,7
- lea rsi,QWORD PTR[1+r10]
- jz $L$oop8
+ lea rsi,[1+r10]
+ jz NEAR $L$oop8
sub r11,rbx
-$L$oop8_warmup::
+$L$oop8_warmup:
add cl,al
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],eax
- mov DWORD PTR[r10*4+rdi],edx
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],eax
+ mov DWORD[r10*4+rdi],edx
add al,dl
inc r10b
- mov edx,DWORD PTR[rax*4+rdi]
- mov eax,DWORD PTR[r10*4+rdi]
- xor dl,BYTE PTR[r12]
- mov BYTE PTR[r13*1+r12],dl
- lea r12,QWORD PTR[1+r12]
+ mov edx,DWORD[rax*4+rdi]
+ mov eax,DWORD[r10*4+rdi]
+ xor dl,BYTE[r12]
+ mov BYTE[r13*1+r12],dl
+ lea r12,[1+r12]
dec rbx
- jnz $L$oop8_warmup
+ jnz NEAR $L$oop8_warmup
- lea rsi,QWORD PTR[1+r10]
- jmp $L$oop8
+ lea rsi,[1+r10]
+ jmp NEAR $L$oop8
ALIGN 16
-$L$oop8::
+$L$oop8:
add cl,al
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],eax
- mov ebx,DWORD PTR[rsi*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],eax
+ mov ebx,DWORD[rsi*4+rdi]
ror r8,8
- mov DWORD PTR[r10*4+rdi],edx
+ mov DWORD[r10*4+rdi],edx
add dl,al
- mov r8b,BYTE PTR[rdx*4+rdi]
+ mov r8b,BYTE[rdx*4+rdi]
add cl,bl
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],ebx
- mov eax,DWORD PTR[4+rsi*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],ebx
+ mov eax,DWORD[4+rsi*4+rdi]
ror r8,8
- mov DWORD PTR[4+r10*4+rdi],edx
+ mov DWORD[4+r10*4+rdi],edx
add dl,bl
- mov r8b,BYTE PTR[rdx*4+rdi]
+ mov r8b,BYTE[rdx*4+rdi]
add cl,al
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],eax
- mov ebx,DWORD PTR[8+rsi*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],eax
+ mov ebx,DWORD[8+rsi*4+rdi]
ror r8,8
- mov DWORD PTR[8+r10*4+rdi],edx
+ mov DWORD[8+r10*4+rdi],edx
add dl,al
- mov r8b,BYTE PTR[rdx*4+rdi]
+ mov r8b,BYTE[rdx*4+rdi]
add cl,bl
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],ebx
- mov eax,DWORD PTR[12+rsi*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],ebx
+ mov eax,DWORD[12+rsi*4+rdi]
ror r8,8
- mov DWORD PTR[12+r10*4+rdi],edx
+ mov DWORD[12+r10*4+rdi],edx
add dl,bl
- mov r8b,BYTE PTR[rdx*4+rdi]
+ mov r8b,BYTE[rdx*4+rdi]
add cl,al
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],eax
- mov ebx,DWORD PTR[16+rsi*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],eax
+ mov ebx,DWORD[16+rsi*4+rdi]
ror r8,8
- mov DWORD PTR[16+r10*4+rdi],edx
+ mov DWORD[16+r10*4+rdi],edx
add dl,al
- mov r8b,BYTE PTR[rdx*4+rdi]
+ mov r8b,BYTE[rdx*4+rdi]
add cl,bl
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],ebx
- mov eax,DWORD PTR[20+rsi*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],ebx
+ mov eax,DWORD[20+rsi*4+rdi]
ror r8,8
- mov DWORD PTR[20+r10*4+rdi],edx
+ mov DWORD[20+r10*4+rdi],edx
add dl,bl
- mov r8b,BYTE PTR[rdx*4+rdi]
+ mov r8b,BYTE[rdx*4+rdi]
add cl,al
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],eax
- mov ebx,DWORD PTR[24+rsi*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],eax
+ mov ebx,DWORD[24+rsi*4+rdi]
ror r8,8
- mov DWORD PTR[24+r10*4+rdi],edx
+ mov DWORD[24+r10*4+rdi],edx
add dl,al
- mov r8b,BYTE PTR[rdx*4+rdi]
+ mov r8b,BYTE[rdx*4+rdi]
add sil,8
add cl,bl
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],ebx
- mov eax,DWORD PTR[((-4))+rsi*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],ebx
+ mov eax,DWORD[((-4))+rsi*4+rdi]
ror r8,8
- mov DWORD PTR[28+r10*4+rdi],edx
+ mov DWORD[28+r10*4+rdi],edx
add dl,bl
- mov r8b,BYTE PTR[rdx*4+rdi]
+ mov r8b,BYTE[rdx*4+rdi]
add r10b,8
ror r8,8
sub r11,8
- xor r8,QWORD PTR[r12]
- mov QWORD PTR[r13*1+r12],r8
- lea r12,QWORD PTR[8+r12]
+ xor r8,QWORD[r12]
+ mov QWORD[r13*1+r12],r8
+ lea r12,[8+r12]
test r11,-8
- jnz $L$oop8
+ jnz NEAR $L$oop8
cmp r11,0
- jne $L$loop1
- jmp $L$exit
+ jne NEAR $L$loop1
+ jmp NEAR $L$exit
ALIGN 16
-$L$intel::
+$L$intel:
test r11,-32
- jz $L$loop1
+ jz NEAR $L$loop1
and rbx,15
- jz $L$oop16_is_hot
+ jz NEAR $L$oop16_is_hot
sub r11,rbx
-$L$oop16_warmup::
+$L$oop16_warmup:
add cl,al
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],eax
- mov DWORD PTR[r10*4+rdi],edx
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],eax
+ mov DWORD[r10*4+rdi],edx
add al,dl
inc r10b
- mov edx,DWORD PTR[rax*4+rdi]
- mov eax,DWORD PTR[r10*4+rdi]
- xor dl,BYTE PTR[r12]
- mov BYTE PTR[r13*1+r12],dl
- lea r12,QWORD PTR[1+r12]
+ mov edx,DWORD[rax*4+rdi]
+ mov eax,DWORD[r10*4+rdi]
+ xor dl,BYTE[r12]
+ mov BYTE[r13*1+r12],dl
+ lea r12,[1+r12]
dec rbx
- jnz $L$oop16_warmup
+ jnz NEAR $L$oop16_warmup
mov rbx,rcx
xor rcx,rcx
mov cl,bl
-$L$oop16_is_hot::
- lea rsi,QWORD PTR[r10*4+rdi]
+$L$oop16_is_hot:
+ lea rsi,[r10*4+rdi]
add cl,al
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
pxor xmm0,xmm0
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
add al,dl
- mov ebx,DWORD PTR[4+rsi]
+ mov ebx,DWORD[4+rsi]
movzx eax,al
- mov DWORD PTR[rsi],edx
+ mov DWORD[rsi],edx
add cl,bl
- pinsrw xmm0,WORD PTR[rax*4+rdi],0
- jmp $L$oop16_enter
+ pinsrw xmm0,WORD[rax*4+rdi],0
+ jmp NEAR $L$oop16_enter
ALIGN 16
-$L$oop16::
+$L$oop16:
add cl,al
- mov edx,DWORD PTR[rcx*4+rdi]
+ mov edx,DWORD[rcx*4+rdi]
pxor xmm2,xmm0
psllq xmm1,8
pxor xmm0,xmm0
- mov DWORD PTR[rcx*4+rdi],eax
+ mov DWORD[rcx*4+rdi],eax
add al,dl
- mov ebx,DWORD PTR[4+rsi]
+ mov ebx,DWORD[4+rsi]
movzx eax,al
- mov DWORD PTR[rsi],edx
+ mov DWORD[rsi],edx
pxor xmm2,xmm1
add cl,bl
- pinsrw xmm0,WORD PTR[rax*4+rdi],0
- movdqu XMMWORD PTR[r13*1+r12],xmm2
- lea r12,QWORD PTR[16+r12]
-$L$oop16_enter::
- mov edx,DWORD PTR[rcx*4+rdi]
+ pinsrw xmm0,WORD[rax*4+rdi],0
+ movdqu XMMWORD[r13*1+r12],xmm2
+ lea r12,[16+r12]
+$L$oop16_enter:
+ mov edx,DWORD[rcx*4+rdi]
pxor xmm1,xmm1
- mov DWORD PTR[rcx*4+rdi],ebx
+ mov DWORD[rcx*4+rdi],ebx
add bl,dl
- mov eax,DWORD PTR[8+rsi]
+ mov eax,DWORD[8+rsi]
movzx ebx,bl
- mov DWORD PTR[4+rsi],edx
+ mov DWORD[4+rsi],edx
add cl,al
- pinsrw xmm1,WORD PTR[rbx*4+rdi],0
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],eax
+ pinsrw xmm1,WORD[rbx*4+rdi],0
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],eax
add al,dl
- mov ebx,DWORD PTR[12+rsi]
+ mov ebx,DWORD[12+rsi]
movzx eax,al
- mov DWORD PTR[8+rsi],edx
+ mov DWORD[8+rsi],edx
add cl,bl
- pinsrw xmm0,WORD PTR[rax*4+rdi],1
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],ebx
+ pinsrw xmm0,WORD[rax*4+rdi],1
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],ebx
add bl,dl
- mov eax,DWORD PTR[16+rsi]
+ mov eax,DWORD[16+rsi]
movzx ebx,bl
- mov DWORD PTR[12+rsi],edx
+ mov DWORD[12+rsi],edx
add cl,al
- pinsrw xmm1,WORD PTR[rbx*4+rdi],1
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],eax
+ pinsrw xmm1,WORD[rbx*4+rdi],1
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],eax
add al,dl
- mov ebx,DWORD PTR[20+rsi]
+ mov ebx,DWORD[20+rsi]
movzx eax,al
- mov DWORD PTR[16+rsi],edx
+ mov DWORD[16+rsi],edx
add cl,bl
- pinsrw xmm0,WORD PTR[rax*4+rdi],2
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],ebx
+ pinsrw xmm0,WORD[rax*4+rdi],2
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],ebx
add bl,dl
- mov eax,DWORD PTR[24+rsi]
+ mov eax,DWORD[24+rsi]
movzx ebx,bl
- mov DWORD PTR[20+rsi],edx
+ mov DWORD[20+rsi],edx
add cl,al
- pinsrw xmm1,WORD PTR[rbx*4+rdi],2
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],eax
+ pinsrw xmm1,WORD[rbx*4+rdi],2
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],eax
add al,dl
- mov ebx,DWORD PTR[28+rsi]
+ mov ebx,DWORD[28+rsi]
movzx eax,al
- mov DWORD PTR[24+rsi],edx
+ mov DWORD[24+rsi],edx
add cl,bl
- pinsrw xmm0,WORD PTR[rax*4+rdi],3
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],ebx
+ pinsrw xmm0,WORD[rax*4+rdi],3
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],ebx
add bl,dl
- mov eax,DWORD PTR[32+rsi]
+ mov eax,DWORD[32+rsi]
movzx ebx,bl
- mov DWORD PTR[28+rsi],edx
+ mov DWORD[28+rsi],edx
add cl,al
- pinsrw xmm1,WORD PTR[rbx*4+rdi],3
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],eax
+ pinsrw xmm1,WORD[rbx*4+rdi],3
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],eax
add al,dl
- mov ebx,DWORD PTR[36+rsi]
+ mov ebx,DWORD[36+rsi]
movzx eax,al
- mov DWORD PTR[32+rsi],edx
+ mov DWORD[32+rsi],edx
add cl,bl
- pinsrw xmm0,WORD PTR[rax*4+rdi],4
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],ebx
+ pinsrw xmm0,WORD[rax*4+rdi],4
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],ebx
add bl,dl
- mov eax,DWORD PTR[40+rsi]
+ mov eax,DWORD[40+rsi]
movzx ebx,bl
- mov DWORD PTR[36+rsi],edx
+ mov DWORD[36+rsi],edx
add cl,al
- pinsrw xmm1,WORD PTR[rbx*4+rdi],4
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],eax
+ pinsrw xmm1,WORD[rbx*4+rdi],4
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],eax
add al,dl
- mov ebx,DWORD PTR[44+rsi]
+ mov ebx,DWORD[44+rsi]
movzx eax,al
- mov DWORD PTR[40+rsi],edx
+ mov DWORD[40+rsi],edx
add cl,bl
- pinsrw xmm0,WORD PTR[rax*4+rdi],5
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],ebx
+ pinsrw xmm0,WORD[rax*4+rdi],5
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],ebx
add bl,dl
- mov eax,DWORD PTR[48+rsi]
+ mov eax,DWORD[48+rsi]
movzx ebx,bl
- mov DWORD PTR[44+rsi],edx
+ mov DWORD[44+rsi],edx
add cl,al
- pinsrw xmm1,WORD PTR[rbx*4+rdi],5
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],eax
+ pinsrw xmm1,WORD[rbx*4+rdi],5
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],eax
add al,dl
- mov ebx,DWORD PTR[52+rsi]
+ mov ebx,DWORD[52+rsi]
movzx eax,al
- mov DWORD PTR[48+rsi],edx
+ mov DWORD[48+rsi],edx
add cl,bl
- pinsrw xmm0,WORD PTR[rax*4+rdi],6
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],ebx
+ pinsrw xmm0,WORD[rax*4+rdi],6
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],ebx
add bl,dl
- mov eax,DWORD PTR[56+rsi]
+ mov eax,DWORD[56+rsi]
movzx ebx,bl
- mov DWORD PTR[52+rsi],edx
+ mov DWORD[52+rsi],edx
add cl,al
- pinsrw xmm1,WORD PTR[rbx*4+rdi],6
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],eax
+ pinsrw xmm1,WORD[rbx*4+rdi],6
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],eax
add al,dl
- mov ebx,DWORD PTR[60+rsi]
+ mov ebx,DWORD[60+rsi]
movzx eax,al
- mov DWORD PTR[56+rsi],edx
+ mov DWORD[56+rsi],edx
add cl,bl
- pinsrw xmm0,WORD PTR[rax*4+rdi],7
+ pinsrw xmm0,WORD[rax*4+rdi],7
add r10b,16
- movdqu xmm2,XMMWORD PTR[r12]
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],ebx
+ movdqu xmm2,XMMWORD[r12]
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],ebx
add bl,dl
movzx ebx,bl
- mov DWORD PTR[60+rsi],edx
- lea rsi,QWORD PTR[r10*4+rdi]
- pinsrw xmm1,WORD PTR[rbx*4+rdi],7
- mov eax,DWORD PTR[rsi]
+ mov DWORD[60+rsi],edx
+ lea rsi,[r10*4+rdi]
+ pinsrw xmm1,WORD[rbx*4+rdi],7
+ mov eax,DWORD[rsi]
mov rbx,rcx
xor rcx,rcx
sub r11,16
mov cl,bl
test r11,-16
- jnz $L$oop16
+ jnz NEAR $L$oop16
psllq xmm1,8
pxor xmm2,xmm0
pxor xmm2,xmm1
- movdqu XMMWORD PTR[r13*1+r12],xmm2
- lea r12,QWORD PTR[16+r12]
+ movdqu XMMWORD[r13*1+r12],xmm2
+ lea r12,[16+r12]
cmp r11,0
- jne $L$loop1
- jmp $L$exit
+ jne NEAR $L$loop1
+ jmp NEAR $L$exit
ALIGN 16
-$L$loop1::
+$L$loop1:
add cl,al
- mov edx,DWORD PTR[rcx*4+rdi]
- mov DWORD PTR[rcx*4+rdi],eax
- mov DWORD PTR[r10*4+rdi],edx
+ mov edx,DWORD[rcx*4+rdi]
+ mov DWORD[rcx*4+rdi],eax
+ mov DWORD[r10*4+rdi],edx
add al,dl
inc r10b
- mov edx,DWORD PTR[rax*4+rdi]
- mov eax,DWORD PTR[r10*4+rdi]
- xor dl,BYTE PTR[r12]
- mov BYTE PTR[r13*1+r12],dl
- lea r12,QWORD PTR[1+r12]
+ mov edx,DWORD[rax*4+rdi]
+ mov eax,DWORD[r10*4+rdi]
+ xor dl,BYTE[r12]
+ mov BYTE[r13*1+r12],dl
+ lea r12,[1+r12]
dec r11
- jnz $L$loop1
- jmp $L$exit
+ jnz NEAR $L$loop1
+ jmp NEAR $L$exit
ALIGN 16
-$L$RC4_CHAR::
+$L$RC4_CHAR:
add r10b,1
- movzx eax,BYTE PTR[r10*1+rdi]
+ movzx eax,BYTE[r10*1+rdi]
test r11,-8
- jz $L$cloop1
- jmp $L$cloop8
+ jz NEAR $L$cloop1
+ jmp NEAR $L$cloop8
ALIGN 16
-$L$cloop8::
- mov r8d,DWORD PTR[r12]
- mov r9d,DWORD PTR[4+r12]
+$L$cloop8:
+ mov r8d,DWORD[r12]
+ mov r9d,DWORD[4+r12]
add cl,al
- lea rsi,QWORD PTR[1+r10]
- movzx edx,BYTE PTR[rcx*1+rdi]
+ lea rsi,[1+r10]
+ movzx edx,BYTE[rcx*1+rdi]
movzx esi,sil
- movzx ebx,BYTE PTR[rsi*1+rdi]
- mov BYTE PTR[rcx*1+rdi],al
+ movzx ebx,BYTE[rsi*1+rdi]
+ mov BYTE[rcx*1+rdi],al
cmp rcx,rsi
- mov BYTE PTR[r10*1+rdi],dl
- jne $L$cmov0
+ mov BYTE[r10*1+rdi],dl
+ jne NEAR $L$cmov0
mov rbx,rax
-$L$cmov0::
+$L$cmov0:
add dl,al
- xor r8b,BYTE PTR[rdx*1+rdi]
+ xor r8b,BYTE[rdx*1+rdi]
ror r8d,8
add cl,bl
- lea r10,QWORD PTR[1+rsi]
- movzx edx,BYTE PTR[rcx*1+rdi]
+ lea r10,[1+rsi]
+ movzx edx,BYTE[rcx*1+rdi]
movzx r10d,r10b
- movzx eax,BYTE PTR[r10*1+rdi]
- mov BYTE PTR[rcx*1+rdi],bl
+ movzx eax,BYTE[r10*1+rdi]
+ mov BYTE[rcx*1+rdi],bl
cmp rcx,r10
- mov BYTE PTR[rsi*1+rdi],dl
- jne $L$cmov1
+ mov BYTE[rsi*1+rdi],dl
+ jne NEAR $L$cmov1
mov rax,rbx
-$L$cmov1::
+$L$cmov1:
add dl,bl
- xor r8b,BYTE PTR[rdx*1+rdi]
+ xor r8b,BYTE[rdx*1+rdi]
ror r8d,8
add cl,al
- lea rsi,QWORD PTR[1+r10]
- movzx edx,BYTE PTR[rcx*1+rdi]
+ lea rsi,[1+r10]
+ movzx edx,BYTE[rcx*1+rdi]
movzx esi,sil
- movzx ebx,BYTE PTR[rsi*1+rdi]
- mov BYTE PTR[rcx*1+rdi],al
+ movzx ebx,BYTE[rsi*1+rdi]
+ mov BYTE[rcx*1+rdi],al
cmp rcx,rsi
- mov BYTE PTR[r10*1+rdi],dl
- jne $L$cmov2
+ mov BYTE[r10*1+rdi],dl
+ jne NEAR $L$cmov2
mov rbx,rax
-$L$cmov2::
+$L$cmov2:
add dl,al
- xor r8b,BYTE PTR[rdx*1+rdi]
+ xor r8b,BYTE[rdx*1+rdi]
ror r8d,8
add cl,bl
- lea r10,QWORD PTR[1+rsi]
- movzx edx,BYTE PTR[rcx*1+rdi]
+ lea r10,[1+rsi]
+ movzx edx,BYTE[rcx*1+rdi]
movzx r10d,r10b
- movzx eax,BYTE PTR[r10*1+rdi]
- mov BYTE PTR[rcx*1+rdi],bl
+ movzx eax,BYTE[r10*1+rdi]
+ mov BYTE[rcx*1+rdi],bl
cmp rcx,r10
- mov BYTE PTR[rsi*1+rdi],dl
- jne $L$cmov3
+ mov BYTE[rsi*1+rdi],dl
+ jne NEAR $L$cmov3
mov rax,rbx
-$L$cmov3::
+$L$cmov3:
add dl,bl
- xor r8b,BYTE PTR[rdx*1+rdi]
+ xor r8b,BYTE[rdx*1+rdi]
ror r8d,8
add cl,al
- lea rsi,QWORD PTR[1+r10]
- movzx edx,BYTE PTR[rcx*1+rdi]
+ lea rsi,[1+r10]
+ movzx edx,BYTE[rcx*1+rdi]
movzx esi,sil
- movzx ebx,BYTE PTR[rsi*1+rdi]
- mov BYTE PTR[rcx*1+rdi],al
+ movzx ebx,BYTE[rsi*1+rdi]
+ mov BYTE[rcx*1+rdi],al
cmp rcx,rsi
- mov BYTE PTR[r10*1+rdi],dl
- jne $L$cmov4
+ mov BYTE[r10*1+rdi],dl
+ jne NEAR $L$cmov4
mov rbx,rax
-$L$cmov4::
+$L$cmov4:
add dl,al
- xor r9b,BYTE PTR[rdx*1+rdi]
+ xor r9b,BYTE[rdx*1+rdi]
ror r9d,8
add cl,bl
- lea r10,QWORD PTR[1+rsi]
- movzx edx,BYTE PTR[rcx*1+rdi]
+ lea r10,[1+rsi]
+ movzx edx,BYTE[rcx*1+rdi]
movzx r10d,r10b
- movzx eax,BYTE PTR[r10*1+rdi]
- mov BYTE PTR[rcx*1+rdi],bl
+ movzx eax,BYTE[r10*1+rdi]
+ mov BYTE[rcx*1+rdi],bl
cmp rcx,r10
- mov BYTE PTR[rsi*1+rdi],dl
- jne $L$cmov5
+ mov BYTE[rsi*1+rdi],dl
+ jne NEAR $L$cmov5
mov rax,rbx
-$L$cmov5::
+$L$cmov5:
add dl,bl
- xor r9b,BYTE PTR[rdx*1+rdi]
+ xor r9b,BYTE[rdx*1+rdi]
ror r9d,8
add cl,al
- lea rsi,QWORD PTR[1+r10]
- movzx edx,BYTE PTR[rcx*1+rdi]
+ lea rsi,[1+r10]
+ movzx edx,BYTE[rcx*1+rdi]
movzx esi,sil
- movzx ebx,BYTE PTR[rsi*1+rdi]
- mov BYTE PTR[rcx*1+rdi],al
+ movzx ebx,BYTE[rsi*1+rdi]
+ mov BYTE[rcx*1+rdi],al
cmp rcx,rsi
- mov BYTE PTR[r10*1+rdi],dl
- jne $L$cmov6
+ mov BYTE[r10*1+rdi],dl
+ jne NEAR $L$cmov6
mov rbx,rax
-$L$cmov6::
+$L$cmov6:
add dl,al
- xor r9b,BYTE PTR[rdx*1+rdi]
+ xor r9b,BYTE[rdx*1+rdi]
ror r9d,8
add cl,bl
- lea r10,QWORD PTR[1+rsi]
- movzx edx,BYTE PTR[rcx*1+rdi]
+ lea r10,[1+rsi]
+ movzx edx,BYTE[rcx*1+rdi]
movzx r10d,r10b
- movzx eax,BYTE PTR[r10*1+rdi]
- mov BYTE PTR[rcx*1+rdi],bl
+ movzx eax,BYTE[r10*1+rdi]
+ mov BYTE[rcx*1+rdi],bl
cmp rcx,r10
- mov BYTE PTR[rsi*1+rdi],dl
- jne $L$cmov7
+ mov BYTE[rsi*1+rdi],dl
+ jne NEAR $L$cmov7
mov rax,rbx
-$L$cmov7::
+$L$cmov7:
add dl,bl
- xor r9b,BYTE PTR[rdx*1+rdi]
+ xor r9b,BYTE[rdx*1+rdi]
ror r9d,8
- lea r11,QWORD PTR[((-8))+r11]
- mov DWORD PTR[r13],r8d
- lea r12,QWORD PTR[8+r12]
- mov DWORD PTR[4+r13],r9d
- lea r13,QWORD PTR[8+r13]
+ lea r11,[((-8))+r11]
+ mov DWORD[r13],r8d
+ lea r12,[8+r12]
+ mov DWORD[4+r13],r9d
+ lea r13,[8+r13]
test r11,-8
- jnz $L$cloop8
+ jnz NEAR $L$cloop8
cmp r11,0
- jne $L$cloop1
- jmp $L$exit
+ jne NEAR $L$cloop1
+ jmp NEAR $L$exit
ALIGN 16
-$L$cloop1::
+$L$cloop1:
add cl,al
movzx ecx,cl
- movzx edx,BYTE PTR[rcx*1+rdi]
- mov BYTE PTR[rcx*1+rdi],al
- mov BYTE PTR[r10*1+rdi],dl
+ movzx edx,BYTE[rcx*1+rdi]
+ mov BYTE[rcx*1+rdi],al
+ mov BYTE[r10*1+rdi],dl
add dl,al
add r10b,1
movzx edx,dl
movzx r10d,r10b
- movzx edx,BYTE PTR[rdx*1+rdi]
- movzx eax,BYTE PTR[r10*1+rdi]
- xor dl,BYTE PTR[r12]
- lea r12,QWORD PTR[1+r12]
- mov BYTE PTR[r13],dl
- lea r13,QWORD PTR[1+r13]
+ movzx edx,BYTE[rdx*1+rdi]
+ movzx eax,BYTE[r10*1+rdi]
+ xor dl,BYTE[r12]
+ lea r12,[1+r12]
+ mov BYTE[r13],dl
+ lea r13,[1+r13]
sub r11,1
- jnz $L$cloop1
- jmp $L$exit
+ jnz NEAR $L$cloop1
+ jmp NEAR $L$exit
ALIGN 16
-$L$exit::
+$L$exit:
sub r10b,1
- mov DWORD PTR[((-8))+rdi],r10d
- mov DWORD PTR[((-4))+rdi],ecx
+ mov DWORD[((-8))+rdi],r10d
+ mov DWORD[((-4))+rdi],ecx
- mov r13,QWORD PTR[rsp]
- mov r12,QWORD PTR[8+rsp]
- mov rbx,QWORD PTR[16+rsp]
+ mov r13,QWORD[rsp]
+ mov r12,QWORD[8+rsp]
+ mov rbx,QWORD[16+rsp]
add rsp,24
-$L$epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+$L$epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_asm_RC4::
-asm_RC4 ENDP
-PUBLIC asm_RC4_set_key
+$L$SEH_end_asm_RC4:
+global asm_RC4_set_key
ALIGN 16
-asm_RC4_set_key PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+asm_RC4_set_key:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_asm_RC4_set_key::
+$L$SEH_begin_asm_RC4_set_key:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
- lea rdi,QWORD PTR[8+rdi]
- lea rdx,QWORD PTR[rsi*1+rdx]
+ lea rdi,[8+rdi]
+ lea rdx,[rsi*1+rdx]
neg rsi
mov rcx,rsi
xor eax,eax
@@ -556,100 +559,70 @@ $L$SEH_begin_asm_RC4_set_key::
xor r10,r10
xor r11,r11
- mov r8d,DWORD PTR[OPENSSL_ia32cap_P]
+ mov r8d,DWORD[OPENSSL_ia32cap_P]
bt r8d,20
- jc $L$c1stloop
- jmp $L$w1stloop
+ jc NEAR $L$c1stloop
+ jmp NEAR $L$w1stloop
ALIGN 16
-$L$w1stloop::
- mov DWORD PTR[rax*4+rdi],eax
+$L$w1stloop:
+ mov DWORD[rax*4+rdi],eax
add al,1
- jnc $L$w1stloop
+ jnc NEAR $L$w1stloop
xor r9,r9
xor r8,r8
ALIGN 16
-$L$w2ndloop::
- mov r10d,DWORD PTR[r9*4+rdi]
- add r8b,BYTE PTR[rsi*1+rdx]
+$L$w2ndloop:
+ mov r10d,DWORD[r9*4+rdi]
+ add r8b,BYTE[rsi*1+rdx]
add r8b,r10b
add rsi,1
- mov r11d,DWORD PTR[r8*4+rdi]
+ mov r11d,DWORD[r8*4+rdi]
cmovz rsi,rcx
- mov DWORD PTR[r8*4+rdi],r10d
- mov DWORD PTR[r9*4+rdi],r11d
+ mov DWORD[r8*4+rdi],r10d
+ mov DWORD[r9*4+rdi],r11d
add r9b,1
- jnc $L$w2ndloop
- jmp $L$exit_key
+ jnc NEAR $L$w2ndloop
+ jmp NEAR $L$exit_key
ALIGN 16
-$L$c1stloop::
- mov BYTE PTR[rax*1+rdi],al
+$L$c1stloop:
+ mov BYTE[rax*1+rdi],al
add al,1
- jnc $L$c1stloop
+ jnc NEAR $L$c1stloop
xor r9,r9
xor r8,r8
ALIGN 16
-$L$c2ndloop::
- mov r10b,BYTE PTR[r9*1+rdi]
- add r8b,BYTE PTR[rsi*1+rdx]
+$L$c2ndloop:
+ mov r10b,BYTE[r9*1+rdi]
+ add r8b,BYTE[rsi*1+rdx]
add r8b,r10b
add rsi,1
- mov r11b,BYTE PTR[r8*1+rdi]
- jnz $L$cnowrap
+ mov r11b,BYTE[r8*1+rdi]
+ jnz NEAR $L$cnowrap
mov rsi,rcx
-$L$cnowrap::
- mov BYTE PTR[r8*1+rdi],r10b
- mov BYTE PTR[r9*1+rdi],r11b
+$L$cnowrap:
+ mov BYTE[r8*1+rdi],r10b
+ mov BYTE[r9*1+rdi],r11b
add r9b,1
- jnc $L$c2ndloop
- mov DWORD PTR[256+rdi],-1
+ jnc NEAR $L$c2ndloop
+ mov DWORD[256+rdi],-1
ALIGN 16
-$L$exit_key::
+$L$exit_key:
xor eax,eax
- mov DWORD PTR[((-8))+rdi],eax
- mov DWORD PTR[((-4))+rdi],eax
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ mov DWORD[((-8))+rdi],eax
+ mov DWORD[((-4))+rdi],eax
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_asm_RC4_set_key::
-asm_RC4_set_key ENDP
-
-PUBLIC RC4_options
+$L$SEH_end_asm_RC4_set_key:
+EXTERN __imp_RtlVirtualUnwind
ALIGN 16
-RC4_options PROC PUBLIC
- lea rax,QWORD PTR[$L$opts]
- mov rdx,QWORD PTR[OPENSSL_ia32cap_P]
- mov edx,DWORD PTR[rdx]
- bt edx,20
- jc $L$8xchar
- bt edx,30
- jnc $L$done
- add rax,25
- DB 0F3h,0C3h ;repret
-$L$8xchar::
- add rax,12
-$L$done::
- DB 0F3h,0C3h ;repret
-ALIGN 64
-$L$opts::
-DB 114,99,52,40,56,120,44,105,110,116,41,0
-DB 114,99,52,40,56,120,44,99,104,97,114,41,0
-DB 114,99,52,40,49,54,120,44,105,110,116,41,0
-DB 82,67,52,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
-RC4_options ENDP
-EXTERN __imp_RtlVirtualUnwind:NEAR
-
-ALIGN 16
-stream_se_handler PROC PRIVATE
+stream_se_handler:
push rsi
push rdi
push rbx
@@ -661,41 +634,41 @@ stream_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$prologue]
+ lea r10,[$L$prologue]
cmp rbx,r10
- jb $L$in_prologue
+ jb NEAR $L$in_prologue
- mov rax,QWORD PTR[152+r8]
+ mov rax,QWORD[152+r8]
- lea r10,QWORD PTR[$L$epilogue]
+ lea r10,[$L$epilogue]
cmp rbx,r10
- jae $L$in_prologue
+ jae NEAR $L$in_prologue
+
+ lea rax,[24+rax]
- lea rax,QWORD PTR[24+rax]
+ mov rbx,QWORD[((-8))+rax]
+ mov r12,QWORD[((-16))+rax]
+ mov r13,QWORD[((-24))+rax]
+ mov QWORD[144+r8],rbx
+ mov QWORD[216+r8],r12
+ mov QWORD[224+r8],r13
- mov rbx,QWORD PTR[((-8))+rax]
- mov r12,QWORD PTR[((-16))+rax]
- mov r13,QWORD PTR[((-24))+rax]
- mov QWORD PTR[144+r8],rbx
- mov QWORD PTR[216+r8],r12
- mov QWORD PTR[224+r8],r13
+$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
-$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
+ jmp NEAR $L$common_seh_exit
- jmp $L$common_seh_exit
-stream_se_handler ENDP
ALIGN 16
-key_se_handler PROC PRIVATE
+key_se_handler:
push rsi
push rdi
push rbx
@@ -707,32 +680,32 @@ key_se_handler PROC PRIVATE
pushfq
sub rsp,64
- mov rax,QWORD PTR[152+r8]
- mov rdi,QWORD PTR[8+rax]
- mov rsi,QWORD PTR[16+rax]
- mov QWORD PTR[168+r8],rsi
- mov QWORD PTR[176+r8],rdi
+ mov rax,QWORD[152+r8]
+ mov rdi,QWORD[8+rax]
+ mov rsi,QWORD[16+rax]
+ mov QWORD[168+r8],rsi
+ mov QWORD[176+r8],rdi
-$L$common_seh_exit::
+$L$common_seh_exit:
- 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
@@ -746,28 +719,23 @@ $L$common_seh_exit::
pop rdi
pop rsi
DB 0F3h,0C3h ;repret
-key_se_handler ENDP
-.text$ ENDS
-.pdata SEGMENT READONLY ALIGN(4)
+
+section .pdata rdata align=4
ALIGN 4
- DD imagerel $L$SEH_begin_asm_RC4
- DD imagerel $L$SEH_end_asm_RC4
- DD imagerel $L$SEH_info_asm_RC4
+ DD $L$SEH_begin_asm_RC4 wrt ..imagebase
+ DD $L$SEH_end_asm_RC4 wrt ..imagebase
+ DD $L$SEH_info_asm_RC4 wrt ..imagebase
- DD imagerel $L$SEH_begin_asm_RC4_set_key
- DD imagerel $L$SEH_end_asm_RC4_set_key
- DD imagerel $L$SEH_info_asm_RC4_set_key
+ DD $L$SEH_begin_asm_RC4_set_key wrt ..imagebase
+ DD $L$SEH_end_asm_RC4_set_key wrt ..imagebase
+ DD $L$SEH_info_asm_RC4_set_key wrt ..imagebase
-.pdata ENDS
-.xdata SEGMENT READONLY ALIGN(8)
+section .xdata rdata align=8
ALIGN 8
-$L$SEH_info_asm_RC4::
+$L$SEH_info_asm_RC4:
DB 9,0,0,0
- DD imagerel stream_se_handler
-$L$SEH_info_asm_RC4_set_key::
+ DD stream_se_handler wrt ..imagebase
+$L$SEH_info_asm_RC4_set_key:
DB 9,0,0,0
- DD imagerel key_se_handler
-
-.xdata ENDS
-END
+ DD key_se_handler wrt ..imagebase
diff --git a/win-x86_64/crypto/sha/sha1-x86_64.asm b/win-x86_64/crypto/sha/sha1-x86_64.asm
index ecda6dc..0f5361a 100644
--- a/win-x86_64/crypto/sha/sha1-x86_64.asm
+++ b/win-x86_64/crypto/sha/sha1-x86_64.asm
@@ -1,29 +1,33 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
-EXTERN OPENSSL_ia32cap_P:NEAR
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
-PUBLIC sha1_block_data_order
+EXTERN OPENSSL_ia32cap_P
+
+global sha1_block_data_order
ALIGN 16
-sha1_block_data_order PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+sha1_block_data_order:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_sha1_block_data_order::
+$L$SEH_begin_sha1_block_data_order:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
- mov r9d,DWORD PTR[((OPENSSL_ia32cap_P+0))]
- mov r8d,DWORD PTR[((OPENSSL_ia32cap_P+4))]
- mov r10d,DWORD PTR[((OPENSSL_ia32cap_P+8))]
+ mov r9d,DWORD[((OPENSSL_ia32cap_P+0))]
+ mov r8d,DWORD[((OPENSSL_ia32cap_P+4))]
+ mov r10d,DWORD[((OPENSSL_ia32cap_P+8))]
test r8d,512
- jz $L$ialu
- jmp _ssse3_shortcut
+ jz NEAR $L$ialu
+ jmp NEAR _ssse3_shortcut
ALIGN 16
-$L$ialu::
+$L$ialu:
mov rax,rsp
push rbx
push rbp
@@ -35,579 +39,579 @@ $L$ialu::
mov r9,rsi
and rsp,-64
mov r10,rdx
- mov QWORD PTR[64+rsp],rax
-$L$prologue::
+ mov QWORD[64+rsp],rax
+$L$prologue:
- mov esi,DWORD PTR[r8]
- mov edi,DWORD PTR[4+r8]
- mov r11d,DWORD PTR[8+r8]
- mov r12d,DWORD PTR[12+r8]
- mov r13d,DWORD PTR[16+r8]
- jmp $L$loop
+ mov esi,DWORD[r8]
+ mov edi,DWORD[4+r8]
+ mov r11d,DWORD[8+r8]
+ mov r12d,DWORD[12+r8]
+ mov r13d,DWORD[16+r8]
+ jmp NEAR $L$loop
ALIGN 16
-$L$loop::
- mov edx,DWORD PTR[r9]
+$L$loop:
+ mov edx,DWORD[r9]
bswap edx
- mov ebp,DWORD PTR[4+r9]
+ mov ebp,DWORD[4+r9]
mov eax,r12d
- mov DWORD PTR[rsp],edx
+ mov DWORD[rsp],edx
mov ecx,esi
bswap ebp
xor eax,r11d
rol ecx,5
and eax,edi
- lea r13d,DWORD PTR[1518500249+r13*1+rdx]
+ lea r13d,[1518500249+r13*1+rdx]
add r13d,ecx
xor eax,r12d
rol edi,30
add r13d,eax
- mov r14d,DWORD PTR[8+r9]
+ mov r14d,DWORD[8+r9]
mov eax,r11d
- mov DWORD PTR[4+rsp],ebp
+ mov DWORD[4+rsp],ebp
mov ecx,r13d
bswap r14d
xor eax,edi
rol ecx,5
and eax,esi
- lea r12d,DWORD PTR[1518500249+r12*1+rbp]
+ lea r12d,[1518500249+r12*1+rbp]
add r12d,ecx
xor eax,r11d
rol esi,30
add r12d,eax
- mov edx,DWORD PTR[12+r9]
+ mov edx,DWORD[12+r9]
mov eax,edi
- mov DWORD PTR[8+rsp],r14d
+ mov DWORD[8+rsp],r14d
mov ecx,r12d
bswap edx
xor eax,esi
rol ecx,5
and eax,r13d
- lea r11d,DWORD PTR[1518500249+r11*1+r14]
+ lea r11d,[1518500249+r11*1+r14]
add r11d,ecx
xor eax,edi
rol r13d,30
add r11d,eax
- mov ebp,DWORD PTR[16+r9]
+ mov ebp,DWORD[16+r9]
mov eax,esi
- mov DWORD PTR[12+rsp],edx
+ mov DWORD[12+rsp],edx
mov ecx,r11d
bswap ebp
xor eax,r13d
rol ecx,5
and eax,r12d
- lea edi,DWORD PTR[1518500249+rdi*1+rdx]
+ lea edi,[1518500249+rdi*1+rdx]
add edi,ecx
xor eax,esi
rol r12d,30
add edi,eax
- mov r14d,DWORD PTR[20+r9]
+ mov r14d,DWORD[20+r9]
mov eax,r13d
- mov DWORD PTR[16+rsp],ebp
+ mov DWORD[16+rsp],ebp
mov ecx,edi
bswap r14d
xor eax,r12d
rol ecx,5
and eax,r11d
- lea esi,DWORD PTR[1518500249+rsi*1+rbp]
+ lea esi,[1518500249+rsi*1+rbp]
add esi,ecx
xor eax,r13d
rol r11d,30
add esi,eax
- mov edx,DWORD PTR[24+r9]
+ mov edx,DWORD[24+r9]
mov eax,r12d
- mov DWORD PTR[20+rsp],r14d
+ mov DWORD[20+rsp],r14d
mov ecx,esi
bswap edx
xor eax,r11d
rol ecx,5
and eax,edi
- lea r13d,DWORD PTR[1518500249+r13*1+r14]
+ lea r13d,[1518500249+r13*1+r14]
add r13d,ecx
xor eax,r12d
rol edi,30
add r13d,eax
- mov ebp,DWORD PTR[28+r9]
+ mov ebp,DWORD[28+r9]
mov eax,r11d
- mov DWORD PTR[24+rsp],edx
+ mov DWORD[24+rsp],edx
mov ecx,r13d
bswap ebp
xor eax,edi
rol ecx,5
and eax,esi
- lea r12d,DWORD PTR[1518500249+r12*1+rdx]
+ lea r12d,[1518500249+r12*1+rdx]
add r12d,ecx
xor eax,r11d
rol esi,30
add r12d,eax
- mov r14d,DWORD PTR[32+r9]
+ mov r14d,DWORD[32+r9]
mov eax,edi
- mov DWORD PTR[28+rsp],ebp
+ mov DWORD[28+rsp],ebp
mov ecx,r12d
bswap r14d
xor eax,esi
rol ecx,5
and eax,r13d
- lea r11d,DWORD PTR[1518500249+r11*1+rbp]
+ lea r11d,[1518500249+r11*1+rbp]
add r11d,ecx
xor eax,edi
rol r13d,30
add r11d,eax
- mov edx,DWORD PTR[36+r9]
+ mov edx,DWORD[36+r9]
mov eax,esi
- mov DWORD PTR[32+rsp],r14d
+ mov DWORD[32+rsp],r14d
mov ecx,r11d
bswap edx
xor eax,r13d
rol ecx,5
and eax,r12d
- lea edi,DWORD PTR[1518500249+rdi*1+r14]
+ lea edi,[1518500249+rdi*1+r14]
add edi,ecx
xor eax,esi
rol r12d,30
add edi,eax
- mov ebp,DWORD PTR[40+r9]
+ mov ebp,DWORD[40+r9]
mov eax,r13d
- mov DWORD PTR[36+rsp],edx
+ mov DWORD[36+rsp],edx
mov ecx,edi
bswap ebp
xor eax,r12d
rol ecx,5
and eax,r11d
- lea esi,DWORD PTR[1518500249+rsi*1+rdx]
+ lea esi,[1518500249+rsi*1+rdx]
add esi,ecx
xor eax,r13d
rol r11d,30
add esi,eax
- mov r14d,DWORD PTR[44+r9]
+ mov r14d,DWORD[44+r9]
mov eax,r12d
- mov DWORD PTR[40+rsp],ebp
+ mov DWORD[40+rsp],ebp
mov ecx,esi
bswap r14d
xor eax,r11d
rol ecx,5
and eax,edi
- lea r13d,DWORD PTR[1518500249+r13*1+rbp]
+ lea r13d,[1518500249+r13*1+rbp]
add r13d,ecx
xor eax,r12d
rol edi,30
add r13d,eax
- mov edx,DWORD PTR[48+r9]
+ mov edx,DWORD[48+r9]
mov eax,r11d
- mov DWORD PTR[44+rsp],r14d
+ mov DWORD[44+rsp],r14d
mov ecx,r13d
bswap edx
xor eax,edi
rol ecx,5
and eax,esi
- lea r12d,DWORD PTR[1518500249+r12*1+r14]
+ lea r12d,[1518500249+r12*1+r14]
add r12d,ecx
xor eax,r11d
rol esi,30
add r12d,eax
- mov ebp,DWORD PTR[52+r9]
+ mov ebp,DWORD[52+r9]
mov eax,edi
- mov DWORD PTR[48+rsp],edx
+ mov DWORD[48+rsp],edx
mov ecx,r12d
bswap ebp
xor eax,esi
rol ecx,5
and eax,r13d
- lea r11d,DWORD PTR[1518500249+r11*1+rdx]
+ lea r11d,[1518500249+r11*1+rdx]
add r11d,ecx
xor eax,edi
rol r13d,30
add r11d,eax
- mov r14d,DWORD PTR[56+r9]
+ mov r14d,DWORD[56+r9]
mov eax,esi
- mov DWORD PTR[52+rsp],ebp
+ mov DWORD[52+rsp],ebp
mov ecx,r11d
bswap r14d
xor eax,r13d
rol ecx,5
and eax,r12d
- lea edi,DWORD PTR[1518500249+rdi*1+rbp]
+ lea edi,[1518500249+rdi*1+rbp]
add edi,ecx
xor eax,esi
rol r12d,30
add edi,eax
- mov edx,DWORD PTR[60+r9]
+ mov edx,DWORD[60+r9]
mov eax,r13d
- mov DWORD PTR[56+rsp],r14d
+ mov DWORD[56+rsp],r14d
mov ecx,edi
bswap edx
xor eax,r12d
rol ecx,5
and eax,r11d
- lea esi,DWORD PTR[1518500249+rsi*1+r14]
+ lea esi,[1518500249+rsi*1+r14]
add esi,ecx
xor eax,r13d
rol r11d,30
add esi,eax
- xor ebp,DWORD PTR[rsp]
+ xor ebp,DWORD[rsp]
mov eax,r12d
- mov DWORD PTR[60+rsp],edx
+ mov DWORD[60+rsp],edx
mov ecx,esi
- xor ebp,DWORD PTR[8+rsp]
+ xor ebp,DWORD[8+rsp]
xor eax,r11d
rol ecx,5
- xor ebp,DWORD PTR[32+rsp]
+ xor ebp,DWORD[32+rsp]
and eax,edi
- lea r13d,DWORD PTR[1518500249+r13*1+rdx]
+ lea r13d,[1518500249+r13*1+rdx]
rol edi,30
xor eax,r12d
add r13d,ecx
rol ebp,1
add r13d,eax
- xor r14d,DWORD PTR[4+rsp]
+ xor r14d,DWORD[4+rsp]
mov eax,r11d
- mov DWORD PTR[rsp],ebp
+ mov DWORD[rsp],ebp
mov ecx,r13d
- xor r14d,DWORD PTR[12+rsp]
+ xor r14d,DWORD[12+rsp]
xor eax,edi
rol ecx,5
- xor r14d,DWORD PTR[36+rsp]
+ xor r14d,DWORD[36+rsp]
and eax,esi
- lea r12d,DWORD PTR[1518500249+r12*1+rbp]
+ lea r12d,[1518500249+r12*1+rbp]
rol esi,30
xor eax,r11d
add r12d,ecx
rol r14d,1
add r12d,eax
- xor edx,DWORD PTR[8+rsp]
+ xor edx,DWORD[8+rsp]
mov eax,edi
- mov DWORD PTR[4+rsp],r14d
+ mov DWORD[4+rsp],r14d
mov ecx,r12d
- xor edx,DWORD PTR[16+rsp]
+ xor edx,DWORD[16+rsp]
xor eax,esi
rol ecx,5
- xor edx,DWORD PTR[40+rsp]
+ xor edx,DWORD[40+rsp]
and eax,r13d
- lea r11d,DWORD PTR[1518500249+r11*1+r14]
+ lea r11d,[1518500249+r11*1+r14]
rol r13d,30
xor eax,edi
add r11d,ecx
rol edx,1
add r11d,eax
- xor ebp,DWORD PTR[12+rsp]
+ xor ebp,DWORD[12+rsp]
mov eax,esi
- mov DWORD PTR[8+rsp],edx
+ mov DWORD[8+rsp],edx
mov ecx,r11d
- xor ebp,DWORD PTR[20+rsp]
+ xor ebp,DWORD[20+rsp]
xor eax,r13d
rol ecx,5
- xor ebp,DWORD PTR[44+rsp]
+ xor ebp,DWORD[44+rsp]
and eax,r12d
- lea edi,DWORD PTR[1518500249+rdi*1+rdx]
+ lea edi,[1518500249+rdi*1+rdx]
rol r12d,30
xor eax,esi
add edi,ecx
rol ebp,1
add edi,eax
- xor r14d,DWORD PTR[16+rsp]
+ xor r14d,DWORD[16+rsp]
mov eax,r13d
- mov DWORD PTR[12+rsp],ebp
+ mov DWORD[12+rsp],ebp
mov ecx,edi
- xor r14d,DWORD PTR[24+rsp]
+ xor r14d,DWORD[24+rsp]
xor eax,r12d
rol ecx,5
- xor r14d,DWORD PTR[48+rsp]
+ xor r14d,DWORD[48+rsp]
and eax,r11d
- lea esi,DWORD PTR[1518500249+rsi*1+rbp]
+ lea esi,[1518500249+rsi*1+rbp]
rol r11d,30
xor eax,r13d
add esi,ecx
rol r14d,1
add esi,eax
- xor edx,DWORD PTR[20+rsp]
+ xor edx,DWORD[20+rsp]
mov eax,edi
- mov DWORD PTR[16+rsp],r14d
+ mov DWORD[16+rsp],r14d
mov ecx,esi
- xor edx,DWORD PTR[28+rsp]
+ xor edx,DWORD[28+rsp]
xor eax,r12d
rol ecx,5
- xor edx,DWORD PTR[52+rsp]
- lea r13d,DWORD PTR[1859775393+r13*1+r14]
+ xor edx,DWORD[52+rsp]
+ lea r13d,[1859775393+r13*1+r14]
xor eax,r11d
add r13d,ecx
rol edi,30
add r13d,eax
rol edx,1
- xor ebp,DWORD PTR[24+rsp]
+ xor ebp,DWORD[24+rsp]
mov eax,esi
- mov DWORD PTR[20+rsp],edx
+ mov DWORD[20+rsp],edx
mov ecx,r13d
- xor ebp,DWORD PTR[32+rsp]
+ xor ebp,DWORD[32+rsp]
xor eax,r11d
rol ecx,5
- xor ebp,DWORD PTR[56+rsp]
- lea r12d,DWORD PTR[1859775393+r12*1+rdx]
+ xor ebp,DWORD[56+rsp]
+ lea r12d,[1859775393+r12*1+rdx]
xor eax,edi
add r12d,ecx
rol esi,30
add r12d,eax
rol ebp,1
- xor r14d,DWORD PTR[28+rsp]
+ xor r14d,DWORD[28+rsp]
mov eax,r13d
- mov DWORD PTR[24+rsp],ebp
+ mov DWORD[24+rsp],ebp
mov ecx,r12d
- xor r14d,DWORD PTR[36+rsp]
+ xor r14d,DWORD[36+rsp]
xor eax,edi
rol ecx,5
- xor r14d,DWORD PTR[60+rsp]
- lea r11d,DWORD PTR[1859775393+r11*1+rbp]
+ xor r14d,DWORD[60+rsp]
+ lea r11d,[1859775393+r11*1+rbp]
xor eax,esi
add r11d,ecx
rol r13d,30
add r11d,eax
rol r14d,1
- xor edx,DWORD PTR[32+rsp]
+ xor edx,DWORD[32+rsp]
mov eax,r12d
- mov DWORD PTR[28+rsp],r14d
+ mov DWORD[28+rsp],r14d
mov ecx,r11d
- xor edx,DWORD PTR[40+rsp]
+ xor edx,DWORD[40+rsp]
xor eax,esi
rol ecx,5
- xor edx,DWORD PTR[rsp]
- lea edi,DWORD PTR[1859775393+rdi*1+r14]
+ xor edx,DWORD[rsp]
+ lea edi,[1859775393+rdi*1+r14]
xor eax,r13d
add edi,ecx
rol r12d,30
add edi,eax
rol edx,1
- xor ebp,DWORD PTR[36+rsp]
+ xor ebp,DWORD[36+rsp]
mov eax,r11d
- mov DWORD PTR[32+rsp],edx
+ mov DWORD[32+rsp],edx
mov ecx,edi
- xor ebp,DWORD PTR[44+rsp]
+ xor ebp,DWORD[44+rsp]
xor eax,r13d
rol ecx,5
- xor ebp,DWORD PTR[4+rsp]
- lea esi,DWORD PTR[1859775393+rsi*1+rdx]
+ xor ebp,DWORD[4+rsp]
+ lea esi,[1859775393+rsi*1+rdx]
xor eax,r12d
add esi,ecx
rol r11d,30
add esi,eax
rol ebp,1
- xor r14d,DWORD PTR[40+rsp]
+ xor r14d,DWORD[40+rsp]
mov eax,edi
- mov DWORD PTR[36+rsp],ebp
+ mov DWORD[36+rsp],ebp
mov ecx,esi
- xor r14d,DWORD PTR[48+rsp]
+ xor r14d,DWORD[48+rsp]
xor eax,r12d
rol ecx,5
- xor r14d,DWORD PTR[8+rsp]
- lea r13d,DWORD PTR[1859775393+r13*1+rbp]
+ xor r14d,DWORD[8+rsp]
+ lea r13d,[1859775393+r13*1+rbp]
xor eax,r11d
add r13d,ecx
rol edi,30
add r13d,eax
rol r14d,1
- xor edx,DWORD PTR[44+rsp]
+ xor edx,DWORD[44+rsp]
mov eax,esi
- mov DWORD PTR[40+rsp],r14d
+ mov DWORD[40+rsp],r14d
mov ecx,r13d
- xor edx,DWORD PTR[52+rsp]
+ xor edx,DWORD[52+rsp]
xor eax,r11d
rol ecx,5
- xor edx,DWORD PTR[12+rsp]
- lea r12d,DWORD PTR[1859775393+r12*1+r14]
+ xor edx,DWORD[12+rsp]
+ lea r12d,[1859775393+r12*1+r14]
xor eax,edi
add r12d,ecx
rol esi,30
add r12d,eax
rol edx,1
- xor ebp,DWORD PTR[48+rsp]
+ xor ebp,DWORD[48+rsp]
mov eax,r13d
- mov DWORD PTR[44+rsp],edx
+ mov DWORD[44+rsp],edx
mov ecx,r12d
- xor ebp,DWORD PTR[56+rsp]
+ xor ebp,DWORD[56+rsp]
xor eax,edi
rol ecx,5
- xor ebp,DWORD PTR[16+rsp]
- lea r11d,DWORD PTR[1859775393+r11*1+rdx]
+ xor ebp,DWORD[16+rsp]
+ lea r11d,[1859775393+r11*1+rdx]
xor eax,esi
add r11d,ecx
rol r13d,30
add r11d,eax
rol ebp,1
- xor r14d,DWORD PTR[52+rsp]
+ xor r14d,DWORD[52+rsp]
mov eax,r12d
- mov DWORD PTR[48+rsp],ebp
+ mov DWORD[48+rsp],ebp
mov ecx,r11d
- xor r14d,DWORD PTR[60+rsp]
+ xor r14d,DWORD[60+rsp]
xor eax,esi
rol ecx,5
- xor r14d,DWORD PTR[20+rsp]
- lea edi,DWORD PTR[1859775393+rdi*1+rbp]
+ xor r14d,DWORD[20+rsp]
+ lea edi,[1859775393+rdi*1+rbp]
xor eax,r13d
add edi,ecx
rol r12d,30
add edi,eax
rol r14d,1
- xor edx,DWORD PTR[56+rsp]
+ xor edx,DWORD[56+rsp]
mov eax,r11d
- mov DWORD PTR[52+rsp],r14d
+ mov DWORD[52+rsp],r14d
mov ecx,edi
- xor edx,DWORD PTR[rsp]
+ xor edx,DWORD[rsp]
xor eax,r13d
rol ecx,5
- xor edx,DWORD PTR[24+rsp]
- lea esi,DWORD PTR[1859775393+rsi*1+r14]
+ xor edx,DWORD[24+rsp]
+ lea esi,[1859775393+rsi*1+r14]
xor eax,r12d
add esi,ecx
rol r11d,30
add esi,eax
rol edx,1
- xor ebp,DWORD PTR[60+rsp]
+ xor ebp,DWORD[60+rsp]
mov eax,edi
- mov DWORD PTR[56+rsp],edx
+ mov DWORD[56+rsp],edx
mov ecx,esi
- xor ebp,DWORD PTR[4+rsp]
+ xor ebp,DWORD[4+rsp]
xor eax,r12d
rol ecx,5
- xor ebp,DWORD PTR[28+rsp]
- lea r13d,DWORD PTR[1859775393+r13*1+rdx]
+ xor ebp,DWORD[28+rsp]
+ lea r13d,[1859775393+r13*1+rdx]
xor eax,r11d
add r13d,ecx
rol edi,30
add r13d,eax
rol ebp,1
- xor r14d,DWORD PTR[rsp]
+ xor r14d,DWORD[rsp]
mov eax,esi
- mov DWORD PTR[60+rsp],ebp
+ mov DWORD[60+rsp],ebp
mov ecx,r13d
- xor r14d,DWORD PTR[8+rsp]
+ xor r14d,DWORD[8+rsp]
xor eax,r11d
rol ecx,5
- xor r14d,DWORD PTR[32+rsp]
- lea r12d,DWORD PTR[1859775393+r12*1+rbp]
+ xor r14d,DWORD[32+rsp]
+ lea r12d,[1859775393+r12*1+rbp]
xor eax,edi
add r12d,ecx
rol esi,30
add r12d,eax
rol r14d,1
- xor edx,DWORD PTR[4+rsp]
+ xor edx,DWORD[4+rsp]
mov eax,r13d
- mov DWORD PTR[rsp],r14d
+ mov DWORD[rsp],r14d
mov ecx,r12d
- xor edx,DWORD PTR[12+rsp]
+ xor edx,DWORD[12+rsp]
xor eax,edi
rol ecx,5
- xor edx,DWORD PTR[36+rsp]
- lea r11d,DWORD PTR[1859775393+r11*1+r14]
+ xor edx,DWORD[36+rsp]
+ lea r11d,[1859775393+r11*1+r14]
xor eax,esi
add r11d,ecx
rol r13d,30
add r11d,eax
rol edx,1
- xor ebp,DWORD PTR[8+rsp]
+ xor ebp,DWORD[8+rsp]
mov eax,r12d
- mov DWORD PTR[4+rsp],edx
+ mov DWORD[4+rsp],edx
mov ecx,r11d
- xor ebp,DWORD PTR[16+rsp]
+ xor ebp,DWORD[16+rsp]
xor eax,esi
rol ecx,5
- xor ebp,DWORD PTR[40+rsp]
- lea edi,DWORD PTR[1859775393+rdi*1+rdx]
+ xor ebp,DWORD[40+rsp]
+ lea edi,[1859775393+rdi*1+rdx]
xor eax,r13d
add edi,ecx
rol r12d,30
add edi,eax
rol ebp,1
- xor r14d,DWORD PTR[12+rsp]
+ xor r14d,DWORD[12+rsp]
mov eax,r11d
- mov DWORD PTR[8+rsp],ebp
+ mov DWORD[8+rsp],ebp
mov ecx,edi
- xor r14d,DWORD PTR[20+rsp]
+ xor r14d,DWORD[20+rsp]
xor eax,r13d
rol ecx,5
- xor r14d,DWORD PTR[44+rsp]
- lea esi,DWORD PTR[1859775393+rsi*1+rbp]
+ xor r14d,DWORD[44+rsp]
+ lea esi,[1859775393+rsi*1+rbp]
xor eax,r12d
add esi,ecx
rol r11d,30
add esi,eax
rol r14d,1
- xor edx,DWORD PTR[16+rsp]
+ xor edx,DWORD[16+rsp]
mov eax,edi
- mov DWORD PTR[12+rsp],r14d
+ mov DWORD[12+rsp],r14d
mov ecx,esi
- xor edx,DWORD PTR[24+rsp]
+ xor edx,DWORD[24+rsp]
xor eax,r12d
rol ecx,5
- xor edx,DWORD PTR[48+rsp]
- lea r13d,DWORD PTR[1859775393+r13*1+r14]
+ xor edx,DWORD[48+rsp]
+ lea r13d,[1859775393+r13*1+r14]
xor eax,r11d
add r13d,ecx
rol edi,30
add r13d,eax
rol edx,1
- xor ebp,DWORD PTR[20+rsp]
+ xor ebp,DWORD[20+rsp]
mov eax,esi
- mov DWORD PTR[16+rsp],edx
+ mov DWORD[16+rsp],edx
mov ecx,r13d
- xor ebp,DWORD PTR[28+rsp]
+ xor ebp,DWORD[28+rsp]
xor eax,r11d
rol ecx,5
- xor ebp,DWORD PTR[52+rsp]
- lea r12d,DWORD PTR[1859775393+r12*1+rdx]
+ xor ebp,DWORD[52+rsp]
+ lea r12d,[1859775393+r12*1+rdx]
xor eax,edi
add r12d,ecx
rol esi,30
add r12d,eax
rol ebp,1
- xor r14d,DWORD PTR[24+rsp]
+ xor r14d,DWORD[24+rsp]
mov eax,r13d
- mov DWORD PTR[20+rsp],ebp
+ mov DWORD[20+rsp],ebp
mov ecx,r12d
- xor r14d,DWORD PTR[32+rsp]
+ xor r14d,DWORD[32+rsp]
xor eax,edi
rol ecx,5
- xor r14d,DWORD PTR[56+rsp]
- lea r11d,DWORD PTR[1859775393+r11*1+rbp]
+ xor r14d,DWORD[56+rsp]
+ lea r11d,[1859775393+r11*1+rbp]
xor eax,esi
add r11d,ecx
rol r13d,30
add r11d,eax
rol r14d,1
- xor edx,DWORD PTR[28+rsp]
+ xor edx,DWORD[28+rsp]
mov eax,r12d
- mov DWORD PTR[24+rsp],r14d
+ mov DWORD[24+rsp],r14d
mov ecx,r11d
- xor edx,DWORD PTR[36+rsp]
+ xor edx,DWORD[36+rsp]
xor eax,esi
rol ecx,5
- xor edx,DWORD PTR[60+rsp]
- lea edi,DWORD PTR[1859775393+rdi*1+r14]
+ xor edx,DWORD[60+rsp]
+ lea edi,[1859775393+rdi*1+r14]
xor eax,r13d
add edi,ecx
rol r12d,30
add edi,eax
rol edx,1
- xor ebp,DWORD PTR[32+rsp]
+ xor ebp,DWORD[32+rsp]
mov eax,r11d
- mov DWORD PTR[28+rsp],edx
+ mov DWORD[28+rsp],edx
mov ecx,edi
- xor ebp,DWORD PTR[40+rsp]
+ xor ebp,DWORD[40+rsp]
xor eax,r13d
rol ecx,5
- xor ebp,DWORD PTR[rsp]
- lea esi,DWORD PTR[1859775393+rsi*1+rdx]
+ xor ebp,DWORD[rsp]
+ lea esi,[1859775393+rsi*1+rdx]
xor eax,r12d
add esi,ecx
rol r11d,30
add esi,eax
rol ebp,1
- xor r14d,DWORD PTR[36+rsp]
+ xor r14d,DWORD[36+rsp]
mov eax,r12d
- mov DWORD PTR[32+rsp],ebp
+ mov DWORD[32+rsp],ebp
mov ebx,r12d
- xor r14d,DWORD PTR[44+rsp]
+ xor r14d,DWORD[44+rsp]
and eax,r11d
mov ecx,esi
- xor r14d,DWORD PTR[4+rsp]
- lea r13d,DWORD PTR[((-1894007588))+r13*1+rbp]
+ xor r14d,DWORD[4+rsp]
+ lea r13d,[((-1894007588))+r13*1+rbp]
xor ebx,r11d
rol ecx,5
add r13d,eax
@@ -616,15 +620,15 @@ $L$loop::
add r13d,ecx
rol edi,30
add r13d,ebx
- xor edx,DWORD PTR[40+rsp]
+ xor edx,DWORD[40+rsp]
mov eax,r11d
- mov DWORD PTR[36+rsp],r14d
+ mov DWORD[36+rsp],r14d
mov ebx,r11d
- xor edx,DWORD PTR[48+rsp]
+ xor edx,DWORD[48+rsp]
and eax,edi
mov ecx,r13d
- xor edx,DWORD PTR[8+rsp]
- lea r12d,DWORD PTR[((-1894007588))+r12*1+r14]
+ xor edx,DWORD[8+rsp]
+ lea r12d,[((-1894007588))+r12*1+r14]
xor ebx,edi
rol ecx,5
add r12d,eax
@@ -633,15 +637,15 @@ $L$loop::
add r12d,ecx
rol esi,30
add r12d,ebx
- xor ebp,DWORD PTR[44+rsp]
+ xor ebp,DWORD[44+rsp]
mov eax,edi
- mov DWORD PTR[40+rsp],edx
+ mov DWORD[40+rsp],edx
mov ebx,edi
- xor ebp,DWORD PTR[52+rsp]
+ xor ebp,DWORD[52+rsp]
and eax,esi
mov ecx,r12d
- xor ebp,DWORD PTR[12+rsp]
- lea r11d,DWORD PTR[((-1894007588))+r11*1+rdx]
+ xor ebp,DWORD[12+rsp]
+ lea r11d,[((-1894007588))+r11*1+rdx]
xor ebx,esi
rol ecx,5
add r11d,eax
@@ -650,15 +654,15 @@ $L$loop::
add r11d,ecx
rol r13d,30
add r11d,ebx
- xor r14d,DWORD PTR[48+rsp]
+ xor r14d,DWORD[48+rsp]
mov eax,esi
- mov DWORD PTR[44+rsp],ebp
+ mov DWORD[44+rsp],ebp
mov ebx,esi
- xor r14d,DWORD PTR[56+rsp]
+ xor r14d,DWORD[56+rsp]
and eax,r13d
mov ecx,r11d
- xor r14d,DWORD PTR[16+rsp]
- lea edi,DWORD PTR[((-1894007588))+rdi*1+rbp]
+ xor r14d,DWORD[16+rsp]
+ lea edi,[((-1894007588))+rdi*1+rbp]
xor ebx,r13d
rol ecx,5
add edi,eax
@@ -667,15 +671,15 @@ $L$loop::
add edi,ecx
rol r12d,30
add edi,ebx
- xor edx,DWORD PTR[52+rsp]
+ xor edx,DWORD[52+rsp]
mov eax,r13d
- mov DWORD PTR[48+rsp],r14d
+ mov DWORD[48+rsp],r14d
mov ebx,r13d
- xor edx,DWORD PTR[60+rsp]
+ xor edx,DWORD[60+rsp]
and eax,r12d
mov ecx,edi
- xor edx,DWORD PTR[20+rsp]
- lea esi,DWORD PTR[((-1894007588))+rsi*1+r14]
+ xor edx,DWORD[20+rsp]
+ lea esi,[((-1894007588))+rsi*1+r14]
xor ebx,r12d
rol ecx,5
add esi,eax
@@ -684,15 +688,15 @@ $L$loop::
add esi,ecx
rol r11d,30
add esi,ebx
- xor ebp,DWORD PTR[56+rsp]
+ xor ebp,DWORD[56+rsp]
mov eax,r12d
- mov DWORD PTR[52+rsp],edx
+ mov DWORD[52+rsp],edx
mov ebx,r12d
- xor ebp,DWORD PTR[rsp]
+ xor ebp,DWORD[rsp]
and eax,r11d
mov ecx,esi
- xor ebp,DWORD PTR[24+rsp]
- lea r13d,DWORD PTR[((-1894007588))+r13*1+rdx]
+ xor ebp,DWORD[24+rsp]
+ lea r13d,[((-1894007588))+r13*1+rdx]
xor ebx,r11d
rol ecx,5
add r13d,eax
@@ -701,15 +705,15 @@ $L$loop::
add r13d,ecx
rol edi,30
add r13d,ebx
- xor r14d,DWORD PTR[60+rsp]
+ xor r14d,DWORD[60+rsp]
mov eax,r11d
- mov DWORD PTR[56+rsp],ebp
+ mov DWORD[56+rsp],ebp
mov ebx,r11d
- xor r14d,DWORD PTR[4+rsp]
+ xor r14d,DWORD[4+rsp]
and eax,edi
mov ecx,r13d
- xor r14d,DWORD PTR[28+rsp]
- lea r12d,DWORD PTR[((-1894007588))+r12*1+rbp]
+ xor r14d,DWORD[28+rsp]
+ lea r12d,[((-1894007588))+r12*1+rbp]
xor ebx,edi
rol ecx,5
add r12d,eax
@@ -718,15 +722,15 @@ $L$loop::
add r12d,ecx
rol esi,30
add r12d,ebx
- xor edx,DWORD PTR[rsp]
+ xor edx,DWORD[rsp]
mov eax,edi
- mov DWORD PTR[60+rsp],r14d
+ mov DWORD[60+rsp],r14d
mov ebx,edi
- xor edx,DWORD PTR[8+rsp]
+ xor edx,DWORD[8+rsp]
and eax,esi
mov ecx,r12d
- xor edx,DWORD PTR[32+rsp]
- lea r11d,DWORD PTR[((-1894007588))+r11*1+r14]
+ xor edx,DWORD[32+rsp]
+ lea r11d,[((-1894007588))+r11*1+r14]
xor ebx,esi
rol ecx,5
add r11d,eax
@@ -735,15 +739,15 @@ $L$loop::
add r11d,ecx
rol r13d,30
add r11d,ebx
- xor ebp,DWORD PTR[4+rsp]
+ xor ebp,DWORD[4+rsp]
mov eax,esi
- mov DWORD PTR[rsp],edx
+ mov DWORD[rsp],edx
mov ebx,esi
- xor ebp,DWORD PTR[12+rsp]
+ xor ebp,DWORD[12+rsp]
and eax,r13d
mov ecx,r11d
- xor ebp,DWORD PTR[36+rsp]
- lea edi,DWORD PTR[((-1894007588))+rdi*1+rdx]
+ xor ebp,DWORD[36+rsp]
+ lea edi,[((-1894007588))+rdi*1+rdx]
xor ebx,r13d
rol ecx,5
add edi,eax
@@ -752,15 +756,15 @@ $L$loop::
add edi,ecx
rol r12d,30
add edi,ebx
- xor r14d,DWORD PTR[8+rsp]
+ xor r14d,DWORD[8+rsp]
mov eax,r13d
- mov DWORD PTR[4+rsp],ebp
+ mov DWORD[4+rsp],ebp
mov ebx,r13d
- xor r14d,DWORD PTR[16+rsp]
+ xor r14d,DWORD[16+rsp]
and eax,r12d
mov ecx,edi
- xor r14d,DWORD PTR[40+rsp]
- lea esi,DWORD PTR[((-1894007588))+rsi*1+rbp]
+ xor r14d,DWORD[40+rsp]
+ lea esi,[((-1894007588))+rsi*1+rbp]
xor ebx,r12d
rol ecx,5
add esi,eax
@@ -769,15 +773,15 @@ $L$loop::
add esi,ecx
rol r11d,30
add esi,ebx
- xor edx,DWORD PTR[12+rsp]
+ xor edx,DWORD[12+rsp]
mov eax,r12d
- mov DWORD PTR[8+rsp],r14d
+ mov DWORD[8+rsp],r14d
mov ebx,r12d
- xor edx,DWORD PTR[20+rsp]
+ xor edx,DWORD[20+rsp]
and eax,r11d
mov ecx,esi
- xor edx,DWORD PTR[44+rsp]
- lea r13d,DWORD PTR[((-1894007588))+r13*1+r14]
+ xor edx,DWORD[44+rsp]
+ lea r13d,[((-1894007588))+r13*1+r14]
xor ebx,r11d
rol ecx,5
add r13d,eax
@@ -786,15 +790,15 @@ $L$loop::
add r13d,ecx
rol edi,30
add r13d,ebx
- xor ebp,DWORD PTR[16+rsp]
+ xor ebp,DWORD[16+rsp]
mov eax,r11d
- mov DWORD PTR[12+rsp],edx
+ mov DWORD[12+rsp],edx
mov ebx,r11d
- xor ebp,DWORD PTR[24+rsp]
+ xor ebp,DWORD[24+rsp]
and eax,edi
mov ecx,r13d
- xor ebp,DWORD PTR[48+rsp]
- lea r12d,DWORD PTR[((-1894007588))+r12*1+rdx]
+ xor ebp,DWORD[48+rsp]
+ lea r12d,[((-1894007588))+r12*1+rdx]
xor ebx,edi
rol ecx,5
add r12d,eax
@@ -803,15 +807,15 @@ $L$loop::
add r12d,ecx
rol esi,30
add r12d,ebx
- xor r14d,DWORD PTR[20+rsp]
+ xor r14d,DWORD[20+rsp]
mov eax,edi
- mov DWORD PTR[16+rsp],ebp
+ mov DWORD[16+rsp],ebp
mov ebx,edi
- xor r14d,DWORD PTR[28+rsp]
+ xor r14d,DWORD[28+rsp]
and eax,esi
mov ecx,r12d
- xor r14d,DWORD PTR[52+rsp]
- lea r11d,DWORD PTR[((-1894007588))+r11*1+rbp]
+ xor r14d,DWORD[52+rsp]
+ lea r11d,[((-1894007588))+r11*1+rbp]
xor ebx,esi
rol ecx,5
add r11d,eax
@@ -820,15 +824,15 @@ $L$loop::
add r11d,ecx
rol r13d,30
add r11d,ebx
- xor edx,DWORD PTR[24+rsp]
+ xor edx,DWORD[24+rsp]
mov eax,esi
- mov DWORD PTR[20+rsp],r14d
+ mov DWORD[20+rsp],r14d
mov ebx,esi
- xor edx,DWORD PTR[32+rsp]
+ xor edx,DWORD[32+rsp]
and eax,r13d
mov ecx,r11d
- xor edx,DWORD PTR[56+rsp]
- lea edi,DWORD PTR[((-1894007588))+rdi*1+r14]
+ xor edx,DWORD[56+rsp]
+ lea edi,[((-1894007588))+rdi*1+r14]
xor ebx,r13d
rol ecx,5
add edi,eax
@@ -837,15 +841,15 @@ $L$loop::
add edi,ecx
rol r12d,30
add edi,ebx
- xor ebp,DWORD PTR[28+rsp]
+ xor ebp,DWORD[28+rsp]
mov eax,r13d
- mov DWORD PTR[24+rsp],edx
+ mov DWORD[24+rsp],edx
mov ebx,r13d
- xor ebp,DWORD PTR[36+rsp]
+ xor ebp,DWORD[36+rsp]
and eax,r12d
mov ecx,edi
- xor ebp,DWORD PTR[60+rsp]
- lea esi,DWORD PTR[((-1894007588))+rsi*1+rdx]
+ xor ebp,DWORD[60+rsp]
+ lea esi,[((-1894007588))+rsi*1+rdx]
xor ebx,r12d
rol ecx,5
add esi,eax
@@ -854,15 +858,15 @@ $L$loop::
add esi,ecx
rol r11d,30
add esi,ebx
- xor r14d,DWORD PTR[32+rsp]
+ xor r14d,DWORD[32+rsp]
mov eax,r12d
- mov DWORD PTR[28+rsp],ebp
+ mov DWORD[28+rsp],ebp
mov ebx,r12d
- xor r14d,DWORD PTR[40+rsp]
+ xor r14d,DWORD[40+rsp]
and eax,r11d
mov ecx,esi
- xor r14d,DWORD PTR[rsp]
- lea r13d,DWORD PTR[((-1894007588))+r13*1+rbp]
+ xor r14d,DWORD[rsp]
+ lea r13d,[((-1894007588))+r13*1+rbp]
xor ebx,r11d
rol ecx,5
add r13d,eax
@@ -871,15 +875,15 @@ $L$loop::
add r13d,ecx
rol edi,30
add r13d,ebx
- xor edx,DWORD PTR[36+rsp]
+ xor edx,DWORD[36+rsp]
mov eax,r11d
- mov DWORD PTR[32+rsp],r14d
+ mov DWORD[32+rsp],r14d
mov ebx,r11d
- xor edx,DWORD PTR[44+rsp]
+ xor edx,DWORD[44+rsp]
and eax,edi
mov ecx,r13d
- xor edx,DWORD PTR[4+rsp]
- lea r12d,DWORD PTR[((-1894007588))+r12*1+r14]
+ xor edx,DWORD[4+rsp]
+ lea r12d,[((-1894007588))+r12*1+r14]
xor ebx,edi
rol ecx,5
add r12d,eax
@@ -888,15 +892,15 @@ $L$loop::
add r12d,ecx
rol esi,30
add r12d,ebx
- xor ebp,DWORD PTR[40+rsp]
+ xor ebp,DWORD[40+rsp]
mov eax,edi
- mov DWORD PTR[36+rsp],edx
+ mov DWORD[36+rsp],edx
mov ebx,edi
- xor ebp,DWORD PTR[48+rsp]
+ xor ebp,DWORD[48+rsp]
and eax,esi
mov ecx,r12d
- xor ebp,DWORD PTR[8+rsp]
- lea r11d,DWORD PTR[((-1894007588))+r11*1+rdx]
+ xor ebp,DWORD[8+rsp]
+ lea r11d,[((-1894007588))+r11*1+rdx]
xor ebx,esi
rol ecx,5
add r11d,eax
@@ -905,15 +909,15 @@ $L$loop::
add r11d,ecx
rol r13d,30
add r11d,ebx
- xor r14d,DWORD PTR[44+rsp]
+ xor r14d,DWORD[44+rsp]
mov eax,esi
- mov DWORD PTR[40+rsp],ebp
+ mov DWORD[40+rsp],ebp
mov ebx,esi
- xor r14d,DWORD PTR[52+rsp]
+ xor r14d,DWORD[52+rsp]
and eax,r13d
mov ecx,r11d
- xor r14d,DWORD PTR[12+rsp]
- lea edi,DWORD PTR[((-1894007588))+rdi*1+rbp]
+ xor r14d,DWORD[12+rsp]
+ lea edi,[((-1894007588))+rdi*1+rbp]
xor ebx,r13d
rol ecx,5
add edi,eax
@@ -922,15 +926,15 @@ $L$loop::
add edi,ecx
rol r12d,30
add edi,ebx
- xor edx,DWORD PTR[48+rsp]
+ xor edx,DWORD[48+rsp]
mov eax,r13d
- mov DWORD PTR[44+rsp],r14d
+ mov DWORD[44+rsp],r14d
mov ebx,r13d
- xor edx,DWORD PTR[56+rsp]
+ xor edx,DWORD[56+rsp]
and eax,r12d
mov ecx,edi
- xor edx,DWORD PTR[16+rsp]
- lea esi,DWORD PTR[((-1894007588))+rsi*1+r14]
+ xor edx,DWORD[16+rsp]
+ lea esi,[((-1894007588))+rsi*1+r14]
xor ebx,r12d
rol ecx,5
add esi,eax
@@ -939,267 +943,267 @@ $L$loop::
add esi,ecx
rol r11d,30
add esi,ebx
- xor ebp,DWORD PTR[52+rsp]
+ xor ebp,DWORD[52+rsp]
mov eax,edi
- mov DWORD PTR[48+rsp],edx
+ mov DWORD[48+rsp],edx
mov ecx,esi
- xor ebp,DWORD PTR[60+rsp]
+ xor ebp,DWORD[60+rsp]
xor eax,r12d
rol ecx,5
- xor ebp,DWORD PTR[20+rsp]
- lea r13d,DWORD PTR[((-899497514))+r13*1+rdx]
+ xor ebp,DWORD[20+rsp]
+ lea r13d,[((-899497514))+r13*1+rdx]
xor eax,r11d
add r13d,ecx
rol edi,30
add r13d,eax
rol ebp,1
- xor r14d,DWORD PTR[56+rsp]
+ xor r14d,DWORD[56+rsp]
mov eax,esi
- mov DWORD PTR[52+rsp],ebp
+ mov DWORD[52+rsp],ebp
mov ecx,r13d
- xor r14d,DWORD PTR[rsp]
+ xor r14d,DWORD[rsp]
xor eax,r11d
rol ecx,5
- xor r14d,DWORD PTR[24+rsp]
- lea r12d,DWORD PTR[((-899497514))+r12*1+rbp]
+ xor r14d,DWORD[24+rsp]
+ lea r12d,[((-899497514))+r12*1+rbp]
xor eax,edi
add r12d,ecx
rol esi,30
add r12d,eax
rol r14d,1
- xor edx,DWORD PTR[60+rsp]
+ xor edx,DWORD[60+rsp]
mov eax,r13d
- mov DWORD PTR[56+rsp],r14d
+ mov DWORD[56+rsp],r14d
mov ecx,r12d
- xor edx,DWORD PTR[4+rsp]
+ xor edx,DWORD[4+rsp]
xor eax,edi
rol ecx,5
- xor edx,DWORD PTR[28+rsp]
- lea r11d,DWORD PTR[((-899497514))+r11*1+r14]
+ xor edx,DWORD[28+rsp]
+ lea r11d,[((-899497514))+r11*1+r14]
xor eax,esi
add r11d,ecx
rol r13d,30
add r11d,eax
rol edx,1
- xor ebp,DWORD PTR[rsp]
+ xor ebp,DWORD[rsp]
mov eax,r12d
- mov DWORD PTR[60+rsp],edx
+ mov DWORD[60+rsp],edx
mov ecx,r11d
- xor ebp,DWORD PTR[8+rsp]
+ xor ebp,DWORD[8+rsp]
xor eax,esi
rol ecx,5
- xor ebp,DWORD PTR[32+rsp]
- lea edi,DWORD PTR[((-899497514))+rdi*1+rdx]
+ xor ebp,DWORD[32+rsp]
+ lea edi,[((-899497514))+rdi*1+rdx]
xor eax,r13d
add edi,ecx
rol r12d,30
add edi,eax
rol ebp,1
- xor r14d,DWORD PTR[4+rsp]
+ xor r14d,DWORD[4+rsp]
mov eax,r11d
- mov DWORD PTR[rsp],ebp
+ mov DWORD[rsp],ebp
mov ecx,edi
- xor r14d,DWORD PTR[12+rsp]
+ xor r14d,DWORD[12+rsp]
xor eax,r13d
rol ecx,5
- xor r14d,DWORD PTR[36+rsp]
- lea esi,DWORD PTR[((-899497514))+rsi*1+rbp]
+ xor r14d,DWORD[36+rsp]
+ lea esi,[((-899497514))+rsi*1+rbp]
xor eax,r12d
add esi,ecx
rol r11d,30
add esi,eax
rol r14d,1
- xor edx,DWORD PTR[8+rsp]
+ xor edx,DWORD[8+rsp]
mov eax,edi
- mov DWORD PTR[4+rsp],r14d
+ mov DWORD[4+rsp],r14d
mov ecx,esi
- xor edx,DWORD PTR[16+rsp]
+ xor edx,DWORD[16+rsp]
xor eax,r12d
rol ecx,5
- xor edx,DWORD PTR[40+rsp]
- lea r13d,DWORD PTR[((-899497514))+r13*1+r14]
+ xor edx,DWORD[40+rsp]
+ lea r13d,[((-899497514))+r13*1+r14]
xor eax,r11d
add r13d,ecx
rol edi,30
add r13d,eax
rol edx,1
- xor ebp,DWORD PTR[12+rsp]
+ xor ebp,DWORD[12+rsp]
mov eax,esi
- mov DWORD PTR[8+rsp],edx
+ mov DWORD[8+rsp],edx
mov ecx,r13d
- xor ebp,DWORD PTR[20+rsp]
+ xor ebp,DWORD[20+rsp]
xor eax,r11d
rol ecx,5
- xor ebp,DWORD PTR[44+rsp]
- lea r12d,DWORD PTR[((-899497514))+r12*1+rdx]
+ xor ebp,DWORD[44+rsp]
+ lea r12d,[((-899497514))+r12*1+rdx]
xor eax,edi
add r12d,ecx
rol esi,30
add r12d,eax
rol ebp,1
- xor r14d,DWORD PTR[16+rsp]
+ xor r14d,DWORD[16+rsp]
mov eax,r13d
- mov DWORD PTR[12+rsp],ebp
+ mov DWORD[12+rsp],ebp
mov ecx,r12d
- xor r14d,DWORD PTR[24+rsp]
+ xor r14d,DWORD[24+rsp]
xor eax,edi
rol ecx,5
- xor r14d,DWORD PTR[48+rsp]
- lea r11d,DWORD PTR[((-899497514))+r11*1+rbp]
+ xor r14d,DWORD[48+rsp]
+ lea r11d,[((-899497514))+r11*1+rbp]
xor eax,esi
add r11d,ecx
rol r13d,30
add r11d,eax
rol r14d,1
- xor edx,DWORD PTR[20+rsp]
+ xor edx,DWORD[20+rsp]
mov eax,r12d
- mov DWORD PTR[16+rsp],r14d
+ mov DWORD[16+rsp],r14d
mov ecx,r11d
- xor edx,DWORD PTR[28+rsp]
+ xor edx,DWORD[28+rsp]
xor eax,esi
rol ecx,5
- xor edx,DWORD PTR[52+rsp]
- lea edi,DWORD PTR[((-899497514))+rdi*1+r14]
+ xor edx,DWORD[52+rsp]
+ lea edi,[((-899497514))+rdi*1+r14]
xor eax,r13d
add edi,ecx
rol r12d,30
add edi,eax
rol edx,1
- xor ebp,DWORD PTR[24+rsp]
+ xor ebp,DWORD[24+rsp]
mov eax,r11d
- mov DWORD PTR[20+rsp],edx
+ mov DWORD[20+rsp],edx
mov ecx,edi
- xor ebp,DWORD PTR[32+rsp]
+ xor ebp,DWORD[32+rsp]
xor eax,r13d
rol ecx,5
- xor ebp,DWORD PTR[56+rsp]
- lea esi,DWORD PTR[((-899497514))+rsi*1+rdx]
+ xor ebp,DWORD[56+rsp]
+ lea esi,[((-899497514))+rsi*1+rdx]
xor eax,r12d
add esi,ecx
rol r11d,30
add esi,eax
rol ebp,1
- xor r14d,DWORD PTR[28+rsp]
+ xor r14d,DWORD[28+rsp]
mov eax,edi
- mov DWORD PTR[24+rsp],ebp
+ mov DWORD[24+rsp],ebp
mov ecx,esi
- xor r14d,DWORD PTR[36+rsp]
+ xor r14d,DWORD[36+rsp]
xor eax,r12d
rol ecx,5
- xor r14d,DWORD PTR[60+rsp]
- lea r13d,DWORD PTR[((-899497514))+r13*1+rbp]
+ xor r14d,DWORD[60+rsp]
+ lea r13d,[((-899497514))+r13*1+rbp]
xor eax,r11d
add r13d,ecx
rol edi,30
add r13d,eax
rol r14d,1
- xor edx,DWORD PTR[32+rsp]
+ xor edx,DWORD[32+rsp]
mov eax,esi
- mov DWORD PTR[28+rsp],r14d
+ mov DWORD[28+rsp],r14d
mov ecx,r13d
- xor edx,DWORD PTR[40+rsp]
+ xor edx,DWORD[40+rsp]
xor eax,r11d
rol ecx,5
- xor edx,DWORD PTR[rsp]
- lea r12d,DWORD PTR[((-899497514))+r12*1+r14]
+ xor edx,DWORD[rsp]
+ lea r12d,[((-899497514))+r12*1+r14]
xor eax,edi
add r12d,ecx
rol esi,30
add r12d,eax
rol edx,1
- xor ebp,DWORD PTR[36+rsp]
+ xor ebp,DWORD[36+rsp]
mov eax,r13d
mov ecx,r12d
- xor ebp,DWORD PTR[44+rsp]
+ xor ebp,DWORD[44+rsp]
xor eax,edi
rol ecx,5
- xor ebp,DWORD PTR[4+rsp]
- lea r11d,DWORD PTR[((-899497514))+r11*1+rdx]
+ xor ebp,DWORD[4+rsp]
+ lea r11d,[((-899497514))+r11*1+rdx]
xor eax,esi
add r11d,ecx
rol r13d,30
add r11d,eax
rol ebp,1
- xor r14d,DWORD PTR[40+rsp]
+ xor r14d,DWORD[40+rsp]
mov eax,r12d
mov ecx,r11d
- xor r14d,DWORD PTR[48+rsp]
+ xor r14d,DWORD[48+rsp]
xor eax,esi
rol ecx,5
- xor r14d,DWORD PTR[8+rsp]
- lea edi,DWORD PTR[((-899497514))+rdi*1+rbp]
+ xor r14d,DWORD[8+rsp]
+ lea edi,[((-899497514))+rdi*1+rbp]
xor eax,r13d
add edi,ecx
rol r12d,30
add edi,eax
rol r14d,1
- xor edx,DWORD PTR[44+rsp]
+ xor edx,DWORD[44+rsp]
mov eax,r11d
mov ecx,edi
- xor edx,DWORD PTR[52+rsp]
+ xor edx,DWORD[52+rsp]
xor eax,r13d
rol ecx,5
- xor edx,DWORD PTR[12+rsp]
- lea esi,DWORD PTR[((-899497514))+rsi*1+r14]
+ xor edx,DWORD[12+rsp]
+ lea esi,[((-899497514))+rsi*1+r14]
xor eax,r12d
add esi,ecx
rol r11d,30
add esi,eax
rol edx,1
- xor ebp,DWORD PTR[48+rsp]
+ xor ebp,DWORD[48+rsp]
mov eax,edi
mov ecx,esi
- xor ebp,DWORD PTR[56+rsp]
+ xor ebp,DWORD[56+rsp]
xor eax,r12d
rol ecx,5
- xor ebp,DWORD PTR[16+rsp]
- lea r13d,DWORD PTR[((-899497514))+r13*1+rdx]
+ xor ebp,DWORD[16+rsp]
+ lea r13d,[((-899497514))+r13*1+rdx]
xor eax,r11d
add r13d,ecx
rol edi,30
add r13d,eax
rol ebp,1
- xor r14d,DWORD PTR[52+rsp]
+ xor r14d,DWORD[52+rsp]
mov eax,esi
mov ecx,r13d
- xor r14d,DWORD PTR[60+rsp]
+ xor r14d,DWORD[60+rsp]
xor eax,r11d
rol ecx,5
- xor r14d,DWORD PTR[20+rsp]
- lea r12d,DWORD PTR[((-899497514))+r12*1+rbp]
+ xor r14d,DWORD[20+rsp]
+ lea r12d,[((-899497514))+r12*1+rbp]
xor eax,edi
add r12d,ecx
rol esi,30
add r12d,eax
rol r14d,1
- xor edx,DWORD PTR[56+rsp]
+ xor edx,DWORD[56+rsp]
mov eax,r13d
mov ecx,r12d
- xor edx,DWORD PTR[rsp]
+ xor edx,DWORD[rsp]
xor eax,edi
rol ecx,5
- xor edx,DWORD PTR[24+rsp]
- lea r11d,DWORD PTR[((-899497514))+r11*1+r14]
+ xor edx,DWORD[24+rsp]
+ lea r11d,[((-899497514))+r11*1+r14]
xor eax,esi
add r11d,ecx
rol r13d,30
add r11d,eax
rol edx,1
- xor ebp,DWORD PTR[60+rsp]
+ xor ebp,DWORD[60+rsp]
mov eax,r12d
mov ecx,r11d
- xor ebp,DWORD PTR[4+rsp]
+ xor ebp,DWORD[4+rsp]
xor eax,esi
rol ecx,5
- xor ebp,DWORD PTR[28+rsp]
- lea edi,DWORD PTR[((-899497514))+rdi*1+rdx]
+ xor ebp,DWORD[28+rsp]
+ lea edi,[((-899497514))+rdi*1+rdx]
xor eax,r13d
add edi,ecx
rol r12d,30
@@ -1208,67 +1212,66 @@ $L$loop::
mov eax,r11d
mov ecx,edi
xor eax,r13d
- lea esi,DWORD PTR[((-899497514))+rsi*1+rbp]
+ lea esi,[((-899497514))+rsi*1+rbp]
rol ecx,5
xor eax,r12d
add esi,ecx
rol r11d,30
add esi,eax
- add esi,DWORD PTR[r8]
- add edi,DWORD PTR[4+r8]
- add r11d,DWORD PTR[8+r8]
- add r12d,DWORD PTR[12+r8]
- add r13d,DWORD PTR[16+r8]
- mov DWORD PTR[r8],esi
- mov DWORD PTR[4+r8],edi
- mov DWORD PTR[8+r8],r11d
- mov DWORD PTR[12+r8],r12d
- mov DWORD PTR[16+r8],r13d
+ add esi,DWORD[r8]
+ add edi,DWORD[4+r8]
+ add r11d,DWORD[8+r8]
+ add r12d,DWORD[12+r8]
+ add r13d,DWORD[16+r8]
+ mov DWORD[r8],esi
+ mov DWORD[4+r8],edi
+ mov DWORD[8+r8],r11d
+ mov DWORD[12+r8],r12d
+ mov DWORD[16+r8],r13d
sub r10,1
- lea r9,QWORD PTR[64+r9]
- jnz $L$loop
+ lea r9,[64+r9]
+ jnz NEAR $L$loop
- mov rsi,QWORD PTR[64+rsp]
- mov r14,QWORD PTR[((-40))+rsi]
- mov r13,QWORD PTR[((-32))+rsi]
- mov r12,QWORD PTR[((-24))+rsi]
- mov rbp,QWORD PTR[((-16))+rsi]
- mov rbx,QWORD PTR[((-8))+rsi]
- lea rsp,QWORD PTR[rsi]
-$L$epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ mov rsi,QWORD[64+rsp]
+ mov r14,QWORD[((-40))+rsi]
+ mov r13,QWORD[((-32))+rsi]
+ mov r12,QWORD[((-24))+rsi]
+ mov rbp,QWORD[((-16))+rsi]
+ mov rbx,QWORD[((-8))+rsi]
+ lea rsp,[rsi]
+$L$epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_sha1_block_data_order::
-sha1_block_data_order ENDP
+$L$SEH_end_sha1_block_data_order:
ALIGN 16
-sha1_block_data_order_ssse3 PROC PRIVATE
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+sha1_block_data_order_ssse3:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_sha1_block_data_order_ssse3::
+$L$SEH_begin_sha1_block_data_order_ssse3:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
-_ssse3_shortcut::
+_ssse3_shortcut:
mov rax,rsp
push rbx
push rbp
push r12
push r13
push r14
- lea rsp,QWORD PTR[((-160))+rsp]
- movaps XMMWORD PTR[(-40-96)+rax],xmm6
- movaps XMMWORD PTR[(-40-80)+rax],xmm7
- movaps XMMWORD PTR[(-40-64)+rax],xmm8
- movaps XMMWORD PTR[(-40-48)+rax],xmm9
- movaps XMMWORD PTR[(-40-32)+rax],xmm10
- movaps XMMWORD PTR[(-40-16)+rax],xmm11
-$L$prologue_ssse3::
+ lea rsp,[((-160))+rsp]
+ movaps XMMWORD[(-40-96)+rax],xmm6
+ movaps XMMWORD[(-40-80)+rax],xmm7
+ movaps XMMWORD[(-40-64)+rax],xmm8
+ movaps XMMWORD[(-40-48)+rax],xmm9
+ movaps XMMWORD[(-40-32)+rax],xmm10
+ movaps XMMWORD[(-40-16)+rax],xmm11
+$L$prologue_ssse3:
mov r14,rax
and rsp,-64
mov r8,rdi
@@ -1277,24 +1280,24 @@ $L$prologue_ssse3::
shl r10,6
add r10,r9
- lea r11,QWORD PTR[((K_XX_XX+64))]
+ lea r11,[((K_XX_XX+64))]
- mov eax,DWORD PTR[r8]
- mov ebx,DWORD PTR[4+r8]
- mov ecx,DWORD PTR[8+r8]
- mov edx,DWORD PTR[12+r8]
+ mov eax,DWORD[r8]
+ mov ebx,DWORD[4+r8]
+ mov ecx,DWORD[8+r8]
+ mov edx,DWORD[12+r8]
mov esi,ebx
- mov ebp,DWORD PTR[16+r8]
+ mov ebp,DWORD[16+r8]
mov edi,ecx
xor edi,edx
and esi,edi
- movdqa xmm6,XMMWORD PTR[64+r11]
- movdqa xmm9,XMMWORD PTR[((-64))+r11]
- movdqu xmm0,XMMWORD PTR[r9]
- movdqu xmm1,XMMWORD PTR[16+r9]
- movdqu xmm2,XMMWORD PTR[32+r9]
- movdqu xmm3,XMMWORD PTR[48+r9]
+ movdqa xmm6,XMMWORD[64+r11]
+ movdqa xmm9,XMMWORD[((-64))+r11]
+ movdqu xmm0,XMMWORD[r9]
+ movdqu xmm1,XMMWORD[16+r9]
+ movdqu xmm2,XMMWORD[32+r9]
+ movdqu xmm3,XMMWORD[48+r9]
DB 102,15,56,0,198
DB 102,15,56,0,206
DB 102,15,56,0,214
@@ -1303,22 +1306,22 @@ DB 102,15,56,0,214
DB 102,15,56,0,222
paddd xmm1,xmm9
paddd xmm2,xmm9
- movdqa XMMWORD PTR[rsp],xmm0
+ movdqa XMMWORD[rsp],xmm0
psubd xmm0,xmm9
- movdqa XMMWORD PTR[16+rsp],xmm1
+ movdqa XMMWORD[16+rsp],xmm1
psubd xmm1,xmm9
- movdqa XMMWORD PTR[32+rsp],xmm2
+ movdqa XMMWORD[32+rsp],xmm2
psubd xmm2,xmm9
- jmp $L$oop_ssse3
+ jmp NEAR $L$oop_ssse3
ALIGN 16
-$L$oop_ssse3::
+$L$oop_ssse3:
ror ebx,2
pshufd xmm4,xmm0,238
xor esi,edx
movdqa xmm8,xmm3
paddd xmm9,xmm3
mov edi,eax
- add ebp,DWORD PTR[rsp]
+ add ebp,DWORD[rsp]
punpcklqdq xmm4,xmm1
xor ebx,ecx
rol eax,5
@@ -1332,11 +1335,11 @@ $L$oop_ssse3::
pxor xmm8,xmm2
xor edi,ecx
mov esi,ebp
- add edx,DWORD PTR[4+rsp]
+ add edx,DWORD[4+rsp]
pxor xmm4,xmm8
xor eax,ebx
rol ebp,5
- movdqa XMMWORD PTR[48+rsp],xmm9
+ movdqa XMMWORD[48+rsp],xmm9
add edx,edi
and esi,eax
movdqa xmm10,xmm4
@@ -1348,7 +1351,7 @@ $L$oop_ssse3::
pslldq xmm10,12
paddd xmm4,xmm4
mov edi,edx
- add ecx,DWORD PTR[8+rsp]
+ add ecx,DWORD[8+rsp]
psrld xmm8,31
xor ebp,eax
rol edx,5
@@ -1362,11 +1365,11 @@ $L$oop_ssse3::
por xmm4,xmm8
xor edi,eax
mov esi,ecx
- add ebx,DWORD PTR[12+rsp]
+ add ebx,DWORD[12+rsp]
pslld xmm9,2
pxor xmm4,xmm10
xor edx,ebp
- movdqa xmm10,XMMWORD PTR[((-64))+r11]
+ movdqa xmm10,XMMWORD[((-64))+r11]
rol ecx,5
add ebx,edi
and esi,edx
@@ -1379,7 +1382,7 @@ $L$oop_ssse3::
movdqa xmm9,xmm4
paddd xmm10,xmm4
mov edi,ebx
- add eax,DWORD PTR[16+rsp]
+ add eax,DWORD[16+rsp]
punpcklqdq xmm5,xmm2
xor ecx,edx
rol ebx,5
@@ -1393,11 +1396,11 @@ $L$oop_ssse3::
pxor xmm9,xmm3
xor edi,edx
mov esi,eax
- add ebp,DWORD PTR[20+rsp]
+ add ebp,DWORD[20+rsp]
pxor xmm5,xmm9
xor ebx,ecx
rol eax,5
- movdqa XMMWORD PTR[rsp],xmm10
+ movdqa XMMWORD[rsp],xmm10
add ebp,edi
and esi,ebx
movdqa xmm8,xmm5
@@ -1409,7 +1412,7 @@ $L$oop_ssse3::
pslldq xmm8,12
paddd xmm5,xmm5
mov edi,ebp
- add edx,DWORD PTR[24+rsp]
+ add edx,DWORD[24+rsp]
psrld xmm9,31
xor eax,ebx
rol ebp,5
@@ -1423,11 +1426,11 @@ $L$oop_ssse3::
por xmm5,xmm9
xor edi,ebx
mov esi,edx
- add ecx,DWORD PTR[28+rsp]
+ add ecx,DWORD[28+rsp]
pslld xmm10,2
pxor xmm5,xmm8
xor ebp,eax
- movdqa xmm8,XMMWORD PTR[((-32))+r11]
+ movdqa xmm8,XMMWORD[((-32))+r11]
rol edx,5
add ecx,edi
and esi,ebp
@@ -1440,7 +1443,7 @@ $L$oop_ssse3::
movdqa xmm10,xmm5
paddd xmm8,xmm5
mov edi,ecx
- add ebx,DWORD PTR[32+rsp]
+ add ebx,DWORD[32+rsp]
punpcklqdq xmm6,xmm3
xor edx,ebp
rol ecx,5
@@ -1454,11 +1457,11 @@ $L$oop_ssse3::
pxor xmm10,xmm4
xor edi,ebp
mov esi,ebx
- add eax,DWORD PTR[36+rsp]
+ add eax,DWORD[36+rsp]
pxor xmm6,xmm10
xor ecx,edx
rol ebx,5
- movdqa XMMWORD PTR[16+rsp],xmm8
+ movdqa XMMWORD[16+rsp],xmm8
add eax,edi
and esi,ecx
movdqa xmm9,xmm6
@@ -1470,7 +1473,7 @@ $L$oop_ssse3::
pslldq xmm9,12
paddd xmm6,xmm6
mov edi,eax
- add ebp,DWORD PTR[40+rsp]
+ add ebp,DWORD[40+rsp]
psrld xmm10,31
xor ebx,ecx
rol eax,5
@@ -1484,11 +1487,11 @@ $L$oop_ssse3::
por xmm6,xmm10
xor edi,ecx
mov esi,ebp
- add edx,DWORD PTR[44+rsp]
+ add edx,DWORD[44+rsp]
pslld xmm8,2
pxor xmm6,xmm9
xor eax,ebx
- movdqa xmm9,XMMWORD PTR[((-32))+r11]
+ movdqa xmm9,XMMWORD[((-32))+r11]
rol ebp,5
add edx,edi
and esi,eax
@@ -1501,7 +1504,7 @@ $L$oop_ssse3::
movdqa xmm8,xmm6
paddd xmm9,xmm6
mov edi,edx
- add ecx,DWORD PTR[48+rsp]
+ add ecx,DWORD[48+rsp]
punpcklqdq xmm7,xmm4
xor ebp,eax
rol edx,5
@@ -1515,11 +1518,11 @@ $L$oop_ssse3::
pxor xmm8,xmm5
xor edi,eax
mov esi,ecx
- add ebx,DWORD PTR[52+rsp]
+ add ebx,DWORD[52+rsp]
pxor xmm7,xmm8
xor edx,ebp
rol ecx,5
- movdqa XMMWORD PTR[32+rsp],xmm9
+ movdqa XMMWORD[32+rsp],xmm9
add ebx,edi
and esi,edx
movdqa xmm10,xmm7
@@ -1531,7 +1534,7 @@ $L$oop_ssse3::
pslldq xmm10,12
paddd xmm7,xmm7
mov edi,ebx
- add eax,DWORD PTR[56+rsp]
+ add eax,DWORD[56+rsp]
psrld xmm8,31
xor ecx,edx
rol ebx,5
@@ -1545,11 +1548,11 @@ $L$oop_ssse3::
por xmm7,xmm8
xor edi,edx
mov esi,eax
- add ebp,DWORD PTR[60+rsp]
+ add ebp,DWORD[60+rsp]
pslld xmm9,2
pxor xmm7,xmm10
xor ebx,ecx
- movdqa xmm10,XMMWORD PTR[((-32))+r11]
+ movdqa xmm10,XMMWORD[((-32))+r11]
rol eax,5
add ebp,edi
and esi,ebx
@@ -1561,7 +1564,7 @@ $L$oop_ssse3::
pxor xmm0,xmm4
xor esi,ecx
mov edi,ebp
- add edx,DWORD PTR[rsp]
+ add edx,DWORD[rsp]
punpcklqdq xmm9,xmm7
xor eax,ebx
rol ebp,5
@@ -1576,11 +1579,11 @@ $L$oop_ssse3::
ror ebp,7
xor edi,ebx
mov esi,edx
- add ecx,DWORD PTR[4+rsp]
+ add ecx,DWORD[4+rsp]
movdqa xmm9,xmm0
xor ebp,eax
rol edx,5
- movdqa XMMWORD PTR[48+rsp],xmm10
+ movdqa XMMWORD[48+rsp],xmm10
add ecx,edi
and esi,ebp
xor ebp,eax
@@ -1590,7 +1593,7 @@ $L$oop_ssse3::
psrld xmm9,30
xor esi,eax
mov edi,ecx
- add ebx,DWORD PTR[8+rsp]
+ add ebx,DWORD[8+rsp]
por xmm0,xmm9
xor edx,ebp
rol ecx,5
@@ -1599,7 +1602,7 @@ $L$oop_ssse3::
and edi,edx
xor edx,ebp
add ebx,ecx
- add eax,DWORD PTR[12+rsp]
+ add eax,DWORD[12+rsp]
xor edi,ebp
mov esi,ebx
rol ebx,5
@@ -1608,7 +1611,7 @@ $L$oop_ssse3::
ror ecx,7
add eax,ebx
pxor xmm1,xmm5
- add ebp,DWORD PTR[16+rsp]
+ add ebp,DWORD[16+rsp]
xor esi,ecx
punpcklqdq xmm10,xmm0
mov edi,eax
@@ -1621,17 +1624,17 @@ $L$oop_ssse3::
paddd xmm8,xmm0
add ebp,eax
pxor xmm1,xmm10
- add edx,DWORD PTR[20+rsp]
+ add edx,DWORD[20+rsp]
xor edi,ebx
mov esi,ebp
rol ebp,5
movdqa xmm10,xmm1
add edx,edi
xor esi,ebx
- movdqa XMMWORD PTR[rsp],xmm8
+ movdqa XMMWORD[rsp],xmm8
ror eax,7
add edx,ebp
- add ecx,DWORD PTR[24+rsp]
+ add ecx,DWORD[24+rsp]
pslld xmm1,2
xor esi,eax
mov edi,edx
@@ -1642,7 +1645,7 @@ $L$oop_ssse3::
ror ebp,7
por xmm1,xmm10
add ecx,edx
- add ebx,DWORD PTR[28+rsp]
+ add ebx,DWORD[28+rsp]
pshufd xmm8,xmm0,238
xor edi,ebp
mov esi,ecx
@@ -1652,7 +1655,7 @@ $L$oop_ssse3::
ror edx,7
add ebx,ecx
pxor xmm2,xmm6
- add eax,DWORD PTR[32+rsp]
+ add eax,DWORD[32+rsp]
xor esi,edx
punpcklqdq xmm8,xmm1
mov edi,ebx
@@ -1660,22 +1663,22 @@ $L$oop_ssse3::
pxor xmm2,xmm3
add eax,esi
xor edi,edx
- movdqa xmm10,XMMWORD PTR[r11]
+ movdqa xmm10,XMMWORD[r11]
ror ecx,7
paddd xmm9,xmm1
add eax,ebx
pxor xmm2,xmm8
- add ebp,DWORD PTR[36+rsp]
+ add ebp,DWORD[36+rsp]
xor edi,ecx
mov esi,eax
rol eax,5
movdqa xmm8,xmm2
add ebp,edi
xor esi,ecx
- movdqa XMMWORD PTR[16+rsp],xmm9
+ movdqa XMMWORD[16+rsp],xmm9
ror ebx,7
add ebp,eax
- add edx,DWORD PTR[40+rsp]
+ add edx,DWORD[40+rsp]
pslld xmm2,2
xor esi,ebx
mov edi,ebp
@@ -1686,7 +1689,7 @@ $L$oop_ssse3::
ror eax,7
por xmm2,xmm8
add edx,ebp
- add ecx,DWORD PTR[44+rsp]
+ add ecx,DWORD[44+rsp]
pshufd xmm9,xmm1,238
xor edi,eax
mov esi,edx
@@ -1696,7 +1699,7 @@ $L$oop_ssse3::
ror ebp,7
add ecx,edx
pxor xmm3,xmm7
- add ebx,DWORD PTR[48+rsp]
+ add ebx,DWORD[48+rsp]
xor esi,ebp
punpcklqdq xmm9,xmm2
mov edi,ecx
@@ -1709,17 +1712,17 @@ $L$oop_ssse3::
paddd xmm10,xmm2
add ebx,ecx
pxor xmm3,xmm9
- add eax,DWORD PTR[52+rsp]
+ add eax,DWORD[52+rsp]
xor edi,edx
mov esi,ebx
rol ebx,5
movdqa xmm9,xmm3
add eax,edi
xor esi,edx
- movdqa XMMWORD PTR[32+rsp],xmm10
+ movdqa XMMWORD[32+rsp],xmm10
ror ecx,7
add eax,ebx
- add ebp,DWORD PTR[56+rsp]
+ add ebp,DWORD[56+rsp]
pslld xmm3,2
xor esi,ecx
mov edi,eax
@@ -1730,7 +1733,7 @@ $L$oop_ssse3::
ror ebx,7
por xmm3,xmm9
add ebp,eax
- add edx,DWORD PTR[60+rsp]
+ add edx,DWORD[60+rsp]
pshufd xmm10,xmm2,238
xor edi,ebx
mov esi,ebp
@@ -1740,7 +1743,7 @@ $L$oop_ssse3::
ror eax,7
add edx,ebp
pxor xmm4,xmm0
- add ecx,DWORD PTR[rsp]
+ add ecx,DWORD[rsp]
xor esi,eax
punpcklqdq xmm10,xmm3
mov edi,edx
@@ -1753,17 +1756,17 @@ $L$oop_ssse3::
paddd xmm8,xmm3
add ecx,edx
pxor xmm4,xmm10
- add ebx,DWORD PTR[4+rsp]
+ add ebx,DWORD[4+rsp]
xor edi,ebp
mov esi,ecx
rol ecx,5
movdqa xmm10,xmm4
add ebx,edi
xor esi,ebp
- movdqa XMMWORD PTR[48+rsp],xmm8
+ movdqa XMMWORD[48+rsp],xmm8
ror edx,7
add ebx,ecx
- add eax,DWORD PTR[8+rsp]
+ add eax,DWORD[8+rsp]
pslld xmm4,2
xor esi,edx
mov edi,ebx
@@ -1774,7 +1777,7 @@ $L$oop_ssse3::
ror ecx,7
por xmm4,xmm10
add eax,ebx
- add ebp,DWORD PTR[12+rsp]
+ add ebp,DWORD[12+rsp]
pshufd xmm8,xmm3,238
xor edi,ecx
mov esi,eax
@@ -1784,7 +1787,7 @@ $L$oop_ssse3::
ror ebx,7
add ebp,eax
pxor xmm5,xmm1
- add edx,DWORD PTR[16+rsp]
+ add edx,DWORD[16+rsp]
xor esi,ebx
punpcklqdq xmm8,xmm4
mov edi,ebp
@@ -1797,17 +1800,17 @@ $L$oop_ssse3::
paddd xmm9,xmm4
add edx,ebp
pxor xmm5,xmm8
- add ecx,DWORD PTR[20+rsp]
+ add ecx,DWORD[20+rsp]
xor edi,eax
mov esi,edx
rol edx,5
movdqa xmm8,xmm5
add ecx,edi
xor esi,eax
- movdqa XMMWORD PTR[rsp],xmm9
+ movdqa XMMWORD[rsp],xmm9
ror ebp,7
add ecx,edx
- add ebx,DWORD PTR[24+rsp]
+ add ebx,DWORD[24+rsp]
pslld xmm5,2
xor esi,ebp
mov edi,ecx
@@ -1818,7 +1821,7 @@ $L$oop_ssse3::
ror edx,7
por xmm5,xmm8
add ebx,ecx
- add eax,DWORD PTR[28+rsp]
+ add eax,DWORD[28+rsp]
pshufd xmm9,xmm4,238
ror ecx,7
mov esi,ebx
@@ -1829,7 +1832,7 @@ $L$oop_ssse3::
xor ecx,edx
add eax,ebx
pxor xmm6,xmm2
- add ebp,DWORD PTR[32+rsp]
+ add ebp,DWORD[32+rsp]
and esi,ecx
xor ecx,edx
ror ebx,7
@@ -1845,14 +1848,14 @@ $L$oop_ssse3::
xor ebx,ecx
pxor xmm6,xmm9
add ebp,eax
- add edx,DWORD PTR[36+rsp]
+ add edx,DWORD[36+rsp]
and edi,ebx
xor ebx,ecx
ror eax,7
movdqa xmm9,xmm6
mov esi,ebp
xor edi,ebx
- movdqa XMMWORD PTR[16+rsp],xmm10
+ movdqa XMMWORD[16+rsp],xmm10
rol ebp,5
add edx,edi
xor esi,eax
@@ -1860,7 +1863,7 @@ $L$oop_ssse3::
xor eax,ebx
add edx,ebp
psrld xmm9,30
- add ecx,DWORD PTR[40+rsp]
+ add ecx,DWORD[40+rsp]
and esi,eax
xor eax,ebx
por xmm6,xmm9
@@ -1873,7 +1876,7 @@ $L$oop_ssse3::
xor edi,ebp
xor ebp,eax
add ecx,edx
- add ebx,DWORD PTR[44+rsp]
+ add ebx,DWORD[44+rsp]
and edi,ebp
xor ebp,eax
ror edx,7
@@ -1885,7 +1888,7 @@ $L$oop_ssse3::
xor edx,ebp
add ebx,ecx
pxor xmm7,xmm3
- add eax,DWORD PTR[48+rsp]
+ add eax,DWORD[48+rsp]
and esi,edx
xor edx,ebp
ror ecx,7
@@ -1895,20 +1898,20 @@ $L$oop_ssse3::
pxor xmm7,xmm0
rol ebx,5
add eax,esi
- movdqa xmm9,XMMWORD PTR[32+r11]
+ movdqa xmm9,XMMWORD[32+r11]
xor edi,ecx
paddd xmm8,xmm6
xor ecx,edx
pxor xmm7,xmm10
add eax,ebx
- add ebp,DWORD PTR[52+rsp]
+ add ebp,DWORD[52+rsp]
and edi,ecx
xor ecx,edx
ror ebx,7
movdqa xmm10,xmm7
mov esi,eax
xor edi,ecx
- movdqa XMMWORD PTR[32+rsp],xmm8
+ movdqa XMMWORD[32+rsp],xmm8
rol eax,5
add ebp,edi
xor esi,ebx
@@ -1916,7 +1919,7 @@ $L$oop_ssse3::
xor ebx,ecx
add ebp,eax
psrld xmm10,30
- add edx,DWORD PTR[56+rsp]
+ add edx,DWORD[56+rsp]
and esi,ebx
xor ebx,ecx
por xmm7,xmm10
@@ -1929,7 +1932,7 @@ $L$oop_ssse3::
xor edi,eax
xor eax,ebx
add edx,ebp
- add ecx,DWORD PTR[60+rsp]
+ add ecx,DWORD[60+rsp]
and edi,eax
xor eax,ebx
ror ebp,7
@@ -1941,7 +1944,7 @@ $L$oop_ssse3::
xor ebp,eax
add ecx,edx
pxor xmm0,xmm4
- add ebx,DWORD PTR[rsp]
+ add ebx,DWORD[rsp]
and esi,ebp
xor ebp,eax
ror edx,7
@@ -1957,14 +1960,14 @@ $L$oop_ssse3::
xor edx,ebp
pxor xmm0,xmm8
add ebx,ecx
- add eax,DWORD PTR[4+rsp]
+ add eax,DWORD[4+rsp]
and edi,edx
xor edx,ebp
ror ecx,7
movdqa xmm8,xmm0
mov esi,ebx
xor edi,edx
- movdqa XMMWORD PTR[48+rsp],xmm9
+ movdqa XMMWORD[48+rsp],xmm9
rol ebx,5
add eax,edi
xor esi,ecx
@@ -1972,7 +1975,7 @@ $L$oop_ssse3::
xor ecx,edx
add eax,ebx
psrld xmm8,30
- add ebp,DWORD PTR[8+rsp]
+ add ebp,DWORD[8+rsp]
and esi,ecx
xor ecx,edx
por xmm0,xmm8
@@ -1985,7 +1988,7 @@ $L$oop_ssse3::
xor edi,ebx
xor ebx,ecx
add ebp,eax
- add edx,DWORD PTR[12+rsp]
+ add edx,DWORD[12+rsp]
and edi,ebx
xor ebx,ecx
ror eax,7
@@ -1997,7 +2000,7 @@ $L$oop_ssse3::
xor eax,ebx
add edx,ebp
pxor xmm1,xmm5
- add ecx,DWORD PTR[16+rsp]
+ add ecx,DWORD[16+rsp]
and esi,eax
xor eax,ebx
ror ebp,7
@@ -2013,14 +2016,14 @@ $L$oop_ssse3::
xor ebp,eax
pxor xmm1,xmm9
add ecx,edx
- add ebx,DWORD PTR[20+rsp]
+ add ebx,DWORD[20+rsp]
and edi,ebp
xor ebp,eax
ror edx,7
movdqa xmm9,xmm1
mov esi,ecx
xor edi,ebp
- movdqa XMMWORD PTR[rsp],xmm10
+ movdqa XMMWORD[rsp],xmm10
rol ecx,5
add ebx,edi
xor esi,edx
@@ -2028,7 +2031,7 @@ $L$oop_ssse3::
xor edx,ebp
add ebx,ecx
psrld xmm9,30
- add eax,DWORD PTR[24+rsp]
+ add eax,DWORD[24+rsp]
and esi,edx
xor edx,ebp
por xmm1,xmm9
@@ -2041,7 +2044,7 @@ $L$oop_ssse3::
xor edi,ecx
xor ecx,edx
add eax,ebx
- add ebp,DWORD PTR[28+rsp]
+ add ebp,DWORD[28+rsp]
and edi,ecx
xor ecx,edx
ror ebx,7
@@ -2053,7 +2056,7 @@ $L$oop_ssse3::
xor ebx,ecx
add ebp,eax
pxor xmm2,xmm6
- add edx,DWORD PTR[32+rsp]
+ add edx,DWORD[32+rsp]
and esi,ebx
xor ebx,ecx
ror eax,7
@@ -2069,14 +2072,14 @@ $L$oop_ssse3::
xor eax,ebx
pxor xmm2,xmm10
add edx,ebp
- add ecx,DWORD PTR[36+rsp]
+ add ecx,DWORD[36+rsp]
and edi,eax
xor eax,ebx
ror ebp,7
movdqa xmm10,xmm2
mov esi,edx
xor edi,eax
- movdqa XMMWORD PTR[16+rsp],xmm8
+ movdqa XMMWORD[16+rsp],xmm8
rol edx,5
add ecx,edi
xor esi,ebp
@@ -2084,7 +2087,7 @@ $L$oop_ssse3::
xor ebp,eax
add ecx,edx
psrld xmm10,30
- add ebx,DWORD PTR[40+rsp]
+ add ebx,DWORD[40+rsp]
and esi,ebp
xor ebp,eax
por xmm2,xmm10
@@ -2097,7 +2100,7 @@ $L$oop_ssse3::
xor edi,edx
xor edx,ebp
add ebx,ecx
- add eax,DWORD PTR[44+rsp]
+ add eax,DWORD[44+rsp]
and edi,edx
xor edx,ebp
ror ecx,7
@@ -2108,7 +2111,7 @@ $L$oop_ssse3::
xor esi,edx
add eax,ebx
pxor xmm3,xmm7
- add ebp,DWORD PTR[48+rsp]
+ add ebp,DWORD[48+rsp]
xor esi,ecx
punpcklqdq xmm8,xmm2
mov edi,eax
@@ -2121,17 +2124,17 @@ $L$oop_ssse3::
paddd xmm9,xmm2
add ebp,eax
pxor xmm3,xmm8
- add edx,DWORD PTR[52+rsp]
+ add edx,DWORD[52+rsp]
xor edi,ebx
mov esi,ebp
rol ebp,5
movdqa xmm8,xmm3
add edx,edi
xor esi,ebx
- movdqa XMMWORD PTR[32+rsp],xmm9
+ movdqa XMMWORD[32+rsp],xmm9
ror eax,7
add edx,ebp
- add ecx,DWORD PTR[56+rsp]
+ add ecx,DWORD[56+rsp]
pslld xmm3,2
xor esi,eax
mov edi,edx
@@ -2142,7 +2145,7 @@ $L$oop_ssse3::
ror ebp,7
por xmm3,xmm8
add ecx,edx
- add ebx,DWORD PTR[60+rsp]
+ add ebx,DWORD[60+rsp]
xor edi,ebp
mov esi,ecx
rol ecx,5
@@ -2150,17 +2153,17 @@ $L$oop_ssse3::
xor esi,ebp
ror edx,7
add ebx,ecx
- add eax,DWORD PTR[rsp]
+ add eax,DWORD[rsp]
xor esi,edx
mov edi,ebx
rol ebx,5
paddd xmm10,xmm3
add eax,esi
xor edi,edx
- movdqa XMMWORD PTR[48+rsp],xmm10
+ movdqa XMMWORD[48+rsp],xmm10
ror ecx,7
add eax,ebx
- add ebp,DWORD PTR[4+rsp]
+ add ebp,DWORD[4+rsp]
xor edi,ecx
mov esi,eax
rol eax,5
@@ -2168,7 +2171,7 @@ $L$oop_ssse3::
xor esi,ecx
ror ebx,7
add ebp,eax
- add edx,DWORD PTR[8+rsp]
+ add edx,DWORD[8+rsp]
xor esi,ebx
mov edi,ebp
rol ebp,5
@@ -2176,7 +2179,7 @@ $L$oop_ssse3::
xor edi,ebx
ror eax,7
add edx,ebp
- add ecx,DWORD PTR[12+rsp]
+ add ecx,DWORD[12+rsp]
xor edi,eax
mov esi,edx
rol edx,5
@@ -2185,16 +2188,16 @@ $L$oop_ssse3::
ror ebp,7
add ecx,edx
cmp r9,r10
- je $L$done_ssse3
- movdqa xmm6,XMMWORD PTR[64+r11]
- movdqa xmm9,XMMWORD PTR[((-64))+r11]
- movdqu xmm0,XMMWORD PTR[r9]
- movdqu xmm1,XMMWORD PTR[16+r9]
- movdqu xmm2,XMMWORD PTR[32+r9]
- movdqu xmm3,XMMWORD PTR[48+r9]
+ je NEAR $L$done_ssse3
+ movdqa xmm6,XMMWORD[64+r11]
+ movdqa xmm9,XMMWORD[((-64))+r11]
+ movdqu xmm0,XMMWORD[r9]
+ movdqu xmm1,XMMWORD[16+r9]
+ movdqu xmm2,XMMWORD[32+r9]
+ movdqu xmm3,XMMWORD[48+r9]
DB 102,15,56,0,198
add r9,64
- add ebx,DWORD PTR[16+rsp]
+ add ebx,DWORD[16+rsp]
xor esi,ebp
mov edi,ecx
DB 102,15,56,0,206
@@ -2204,17 +2207,17 @@ DB 102,15,56,0,206
ror edx,7
paddd xmm0,xmm9
add ebx,ecx
- add eax,DWORD PTR[20+rsp]
+ add eax,DWORD[20+rsp]
xor edi,edx
mov esi,ebx
- movdqa XMMWORD PTR[rsp],xmm0
+ movdqa XMMWORD[rsp],xmm0
rol ebx,5
add eax,edi
xor esi,edx
ror ecx,7
psubd xmm0,xmm9
add eax,ebx
- add ebp,DWORD PTR[24+rsp]
+ add ebp,DWORD[24+rsp]
xor esi,ecx
mov edi,eax
rol eax,5
@@ -2222,7 +2225,7 @@ DB 102,15,56,0,206
xor edi,ecx
ror ebx,7
add ebp,eax
- add edx,DWORD PTR[28+rsp]
+ add edx,DWORD[28+rsp]
xor edi,ebx
mov esi,ebp
rol ebp,5
@@ -2230,7 +2233,7 @@ DB 102,15,56,0,206
xor esi,ebx
ror eax,7
add edx,ebp
- add ecx,DWORD PTR[32+rsp]
+ add ecx,DWORD[32+rsp]
xor esi,eax
mov edi,edx
DB 102,15,56,0,214
@@ -2240,17 +2243,17 @@ DB 102,15,56,0,214
ror ebp,7
paddd xmm1,xmm9
add ecx,edx
- add ebx,DWORD PTR[36+rsp]
+ add ebx,DWORD[36+rsp]
xor edi,ebp
mov esi,ecx
- movdqa XMMWORD PTR[16+rsp],xmm1
+ movdqa XMMWORD[16+rsp],xmm1
rol ecx,5
add ebx,edi
xor esi,ebp
ror edx,7
psubd xmm1,xmm9
add ebx,ecx
- add eax,DWORD PTR[40+rsp]
+ add eax,DWORD[40+rsp]
xor esi,edx
mov edi,ebx
rol ebx,5
@@ -2258,7 +2261,7 @@ DB 102,15,56,0,214
xor edi,edx
ror ecx,7
add eax,ebx
- add ebp,DWORD PTR[44+rsp]
+ add ebp,DWORD[44+rsp]
xor edi,ecx
mov esi,eax
rol eax,5
@@ -2266,7 +2269,7 @@ DB 102,15,56,0,214
xor esi,ecx
ror ebx,7
add ebp,eax
- add edx,DWORD PTR[48+rsp]
+ add edx,DWORD[48+rsp]
xor esi,ebx
mov edi,ebp
DB 102,15,56,0,222
@@ -2276,17 +2279,17 @@ DB 102,15,56,0,222
ror eax,7
paddd xmm2,xmm9
add edx,ebp
- add ecx,DWORD PTR[52+rsp]
+ add ecx,DWORD[52+rsp]
xor edi,eax
mov esi,edx
- movdqa XMMWORD PTR[32+rsp],xmm2
+ movdqa XMMWORD[32+rsp],xmm2
rol edx,5
add ecx,edi
xor esi,eax
ror ebp,7
psubd xmm2,xmm9
add ecx,edx
- add ebx,DWORD PTR[56+rsp]
+ add ebx,DWORD[56+rsp]
xor esi,ebp
mov edi,ecx
rol ecx,5
@@ -2294,32 +2297,32 @@ DB 102,15,56,0,222
xor edi,ebp
ror edx,7
add ebx,ecx
- add eax,DWORD PTR[60+rsp]
+ add eax,DWORD[60+rsp]
xor edi,edx
mov esi,ebx
rol ebx,5
add eax,edi
ror ecx,7
add eax,ebx
- add eax,DWORD PTR[r8]
- add esi,DWORD PTR[4+r8]
- add ecx,DWORD PTR[8+r8]
- add edx,DWORD PTR[12+r8]
- mov DWORD PTR[r8],eax
- add ebp,DWORD PTR[16+r8]
- mov DWORD PTR[4+r8],esi
+ add eax,DWORD[r8]
+ add esi,DWORD[4+r8]
+ add ecx,DWORD[8+r8]
+ add edx,DWORD[12+r8]
+ mov DWORD[r8],eax
+ add ebp,DWORD[16+r8]
+ mov DWORD[4+r8],esi
mov ebx,esi
- mov DWORD PTR[8+r8],ecx
+ mov DWORD[8+r8],ecx
mov edi,ecx
- mov DWORD PTR[12+r8],edx
+ mov DWORD[12+r8],edx
xor edi,edx
- mov DWORD PTR[16+r8],ebp
+ mov DWORD[16+r8],ebp
and esi,edi
- jmp $L$oop_ssse3
+ jmp NEAR $L$oop_ssse3
ALIGN 16
-$L$done_ssse3::
- add ebx,DWORD PTR[16+rsp]
+$L$done_ssse3:
+ add ebx,DWORD[16+rsp]
xor esi,ebp
mov edi,ecx
rol ecx,5
@@ -2327,7 +2330,7 @@ $L$done_ssse3::
xor edi,ebp
ror edx,7
add ebx,ecx
- add eax,DWORD PTR[20+rsp]
+ add eax,DWORD[20+rsp]
xor edi,edx
mov esi,ebx
rol ebx,5
@@ -2335,7 +2338,7 @@ $L$done_ssse3::
xor esi,edx
ror ecx,7
add eax,ebx
- add ebp,DWORD PTR[24+rsp]
+ add ebp,DWORD[24+rsp]
xor esi,ecx
mov edi,eax
rol eax,5
@@ -2343,7 +2346,7 @@ $L$done_ssse3::
xor edi,ecx
ror ebx,7
add ebp,eax
- add edx,DWORD PTR[28+rsp]
+ add edx,DWORD[28+rsp]
xor edi,ebx
mov esi,ebp
rol ebp,5
@@ -2351,7 +2354,7 @@ $L$done_ssse3::
xor esi,ebx
ror eax,7
add edx,ebp
- add ecx,DWORD PTR[32+rsp]
+ add ecx,DWORD[32+rsp]
xor esi,eax
mov edi,edx
rol edx,5
@@ -2359,7 +2362,7 @@ $L$done_ssse3::
xor edi,eax
ror ebp,7
add ecx,edx
- add ebx,DWORD PTR[36+rsp]
+ add ebx,DWORD[36+rsp]
xor edi,ebp
mov esi,ecx
rol ecx,5
@@ -2367,7 +2370,7 @@ $L$done_ssse3::
xor esi,ebp
ror edx,7
add ebx,ecx
- add eax,DWORD PTR[40+rsp]
+ add eax,DWORD[40+rsp]
xor esi,edx
mov edi,ebx
rol ebx,5
@@ -2375,7 +2378,7 @@ $L$done_ssse3::
xor edi,edx
ror ecx,7
add eax,ebx
- add ebp,DWORD PTR[44+rsp]
+ add ebp,DWORD[44+rsp]
xor edi,ecx
mov esi,eax
rol eax,5
@@ -2383,7 +2386,7 @@ $L$done_ssse3::
xor esi,ecx
ror ebx,7
add ebp,eax
- add edx,DWORD PTR[48+rsp]
+ add edx,DWORD[48+rsp]
xor esi,ebx
mov edi,ebp
rol ebp,5
@@ -2391,7 +2394,7 @@ $L$done_ssse3::
xor edi,ebx
ror eax,7
add edx,ebp
- add ecx,DWORD PTR[52+rsp]
+ add ecx,DWORD[52+rsp]
xor edi,eax
mov esi,edx
rol edx,5
@@ -2399,7 +2402,7 @@ $L$done_ssse3::
xor esi,eax
ror ebp,7
add ecx,edx
- add ebx,DWORD PTR[56+rsp]
+ add ebx,DWORD[56+rsp]
xor esi,ebp
mov edi,ecx
rol ecx,5
@@ -2407,65 +2410,64 @@ $L$done_ssse3::
xor edi,ebp
ror edx,7
add ebx,ecx
- add eax,DWORD PTR[60+rsp]
+ add eax,DWORD[60+rsp]
xor edi,edx
mov esi,ebx
rol ebx,5
add eax,edi
ror ecx,7
add eax,ebx
- add eax,DWORD PTR[r8]
- add esi,DWORD PTR[4+r8]
- add ecx,DWORD PTR[8+r8]
- mov DWORD PTR[r8],eax
- add edx,DWORD PTR[12+r8]
- mov DWORD PTR[4+r8],esi
- add ebp,DWORD PTR[16+r8]
- mov DWORD PTR[8+r8],ecx
- mov DWORD PTR[12+r8],edx
- mov DWORD PTR[16+r8],ebp
- movaps xmm6,XMMWORD PTR[((-40-96))+r14]
- movaps xmm7,XMMWORD PTR[((-40-80))+r14]
- movaps xmm8,XMMWORD PTR[((-40-64))+r14]
- movaps xmm9,XMMWORD PTR[((-40-48))+r14]
- movaps xmm10,XMMWORD PTR[((-40-32))+r14]
- movaps xmm11,XMMWORD PTR[((-40-16))+r14]
- lea rsi,QWORD PTR[r14]
- mov r14,QWORD PTR[((-40))+rsi]
- mov r13,QWORD PTR[((-32))+rsi]
- mov r12,QWORD PTR[((-24))+rsi]
- mov rbp,QWORD PTR[((-16))+rsi]
- mov rbx,QWORD PTR[((-8))+rsi]
- lea rsp,QWORD PTR[rsi]
-$L$epilogue_ssse3::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ add eax,DWORD[r8]
+ add esi,DWORD[4+r8]
+ add ecx,DWORD[8+r8]
+ mov DWORD[r8],eax
+ add edx,DWORD[12+r8]
+ mov DWORD[4+r8],esi
+ add ebp,DWORD[16+r8]
+ mov DWORD[8+r8],ecx
+ mov DWORD[12+r8],edx
+ mov DWORD[16+r8],ebp
+ movaps xmm6,XMMWORD[((-40-96))+r14]
+ movaps xmm7,XMMWORD[((-40-80))+r14]
+ movaps xmm8,XMMWORD[((-40-64))+r14]
+ movaps xmm9,XMMWORD[((-40-48))+r14]
+ movaps xmm10,XMMWORD[((-40-32))+r14]
+ movaps xmm11,XMMWORD[((-40-16))+r14]
+ lea rsi,[r14]
+ mov r14,QWORD[((-40))+rsi]
+ mov r13,QWORD[((-32))+rsi]
+ mov r12,QWORD[((-24))+rsi]
+ mov rbp,QWORD[((-16))+rsi]
+ mov rbx,QWORD[((-8))+rsi]
+ lea rsp,[rsi]
+$L$epilogue_ssse3:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_sha1_block_data_order_ssse3::
-sha1_block_data_order_ssse3 ENDP
+$L$SEH_end_sha1_block_data_order_ssse3:
ALIGN 64
-K_XX_XX::
- DD 05a827999h,05a827999h,05a827999h,05a827999h
- DD 05a827999h,05a827999h,05a827999h,05a827999h
- DD 06ed9eba1h,06ed9eba1h,06ed9eba1h,06ed9eba1h
- DD 06ed9eba1h,06ed9eba1h,06ed9eba1h,06ed9eba1h
- DD 08f1bbcdch,08f1bbcdch,08f1bbcdch,08f1bbcdch
- DD 08f1bbcdch,08f1bbcdch,08f1bbcdch,08f1bbcdch
- DD 0ca62c1d6h,0ca62c1d6h,0ca62c1d6h,0ca62c1d6h
- DD 0ca62c1d6h,0ca62c1d6h,0ca62c1d6h,0ca62c1d6h
- DD 000010203h,004050607h,008090a0bh,00c0d0e0fh
- DD 000010203h,004050607h,008090a0bh,00c0d0e0fh
-DB 0fh,0eh,0dh,0ch,0bh,0ah,09h,08h,07h,06h,05h,04h,03h,02h,01h,00h
+K_XX_XX:
+ DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999
+ DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999
+ DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
+ DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
+ DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
+ DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
+ DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
+ DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
+ DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
+ DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
+DB 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
DB 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115
DB 102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44
DB 32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60
DB 97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114
DB 103,62,0
ALIGN 64
-EXTERN __imp_RtlVirtualUnwind:NEAR
+EXTERN __imp_RtlVirtualUnwind
ALIGN 16
-se_handler PROC PRIVATE
+se_handler:
push rsi
push rdi
push rbx
@@ -2477,37 +2479,37 @@ 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$prologue]
+ lea r10,[$L$prologue]
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]
- lea r10,QWORD PTR[$L$epilogue]
+ lea r10,[$L$epilogue]
cmp rbx,r10
- jae $L$common_seh_tail
+ jae NEAR $L$common_seh_tail
+
+ mov rax,QWORD[64+rax]
- mov rax,QWORD PTR[64+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 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 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 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
+ jmp NEAR $L$common_seh_tail
- jmp $L$common_seh_tail
-se_handler ENDP
ALIGN 16
-ssse3_handler PROC PRIVATE
+ssse3_handler:
push rsi
push rdi
push rbx
@@ -2519,67 +2521,67 @@ ssse3_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[232+r8]
+ mov rax,QWORD[232+r8]
- lea rsi,QWORD PTR[((-40-96))+rax]
- lea rdi,QWORD PTR[512+r8]
+ lea rsi,[((-40-96))+rax]
+ lea rdi,[512+r8]
mov ecx,12
- DD 0a548f3fch
+ DD 0xa548f3fc
- 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 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 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 QWORD[144+r8],rbx
+ mov QWORD[160+r8],rbp
+ mov QWORD[216+r8],r12
+ mov QWORD[224+r8],r13
+ mov QWORD[232+r8],r14
-$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
+$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 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
@@ -2593,27 +2595,22 @@ $L$common_seh_tail::
pop rdi
pop rsi
DB 0F3h,0C3h ;repret
-ssse3_handler ENDP
-.text$ ENDS
-.pdata SEGMENT READONLY ALIGN(4)
+
+section .pdata rdata align=4
ALIGN 4
- DD imagerel $L$SEH_begin_sha1_block_data_order
- DD imagerel $L$SEH_end_sha1_block_data_order
- DD imagerel $L$SEH_info_sha1_block_data_order
- DD imagerel $L$SEH_begin_sha1_block_data_order_ssse3
- DD imagerel $L$SEH_end_sha1_block_data_order_ssse3
- DD imagerel $L$SEH_info_sha1_block_data_order_ssse3
-.pdata ENDS
-.xdata SEGMENT READONLY ALIGN(8)
+ DD $L$SEH_begin_sha1_block_data_order wrt ..imagebase
+ DD $L$SEH_end_sha1_block_data_order wrt ..imagebase
+ DD $L$SEH_info_sha1_block_data_order wrt ..imagebase
+ DD $L$SEH_begin_sha1_block_data_order_ssse3 wrt ..imagebase
+ DD $L$SEH_end_sha1_block_data_order_ssse3 wrt ..imagebase
+ DD $L$SEH_info_sha1_block_data_order_ssse3 wrt ..imagebase
+section .xdata rdata align=8
ALIGN 8
-$L$SEH_info_sha1_block_data_order::
+$L$SEH_info_sha1_block_data_order:
DB 9,0,0,0
- DD imagerel se_handler
-$L$SEH_info_sha1_block_data_order_ssse3::
+ DD se_handler wrt ..imagebase
+$L$SEH_info_sha1_block_data_order_ssse3:
DB 9,0,0,0
- DD imagerel ssse3_handler
- DD imagerel $L$prologue_ssse3,imagerel $L$epilogue_ssse3
-
-.xdata ENDS
-END
+ DD ssse3_handler wrt ..imagebase
+ DD $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase
diff --git a/win-x86_64/crypto/sha/sha256-x86_64.asm b/win-x86_64/crypto/sha/sha256-x86_64.asm
index 41f2edd..e6193c5 100644
--- a/win-x86_64/crypto/sha/sha256-x86_64.asm
+++ b/win-x86_64/crypto/sha/sha256-x86_64.asm
@@ -1,26 +1,30 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
-EXTERN OPENSSL_ia32cap_P:NEAR
-PUBLIC sha256_block_data_order
+
+EXTERN OPENSSL_ia32cap_P
+global sha256_block_data_order
ALIGN 16
-sha256_block_data_order PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+sha256_block_data_order:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_sha256_block_data_order::
+$L$SEH_begin_sha256_block_data_order:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
- lea r11,QWORD PTR[OPENSSL_ia32cap_P]
- mov r9d,DWORD PTR[r11]
- mov r10d,DWORD PTR[4+r11]
- mov r11d,DWORD PTR[8+r11]
+ lea r11,[OPENSSL_ia32cap_P]
+ mov r9d,DWORD[r11]
+ mov r10d,DWORD[4+r11]
+ mov r11d,DWORD[8+r11]
test r10d,512
- jnz $L$ssse3_shortcut
+ jnz NEAR $L$ssse3_shortcut
push rbx
push rbp
push r12
@@ -30,30 +34,30 @@ $L$SEH_begin_sha256_block_data_order::
mov r11,rsp
shl rdx,4
sub rsp,16*4+4*8
- lea rdx,QWORD PTR[rdx*4+rsi]
+ lea rdx,[rdx*4+rsi]
and rsp,-64
- mov QWORD PTR[((64+0))+rsp],rdi
- mov QWORD PTR[((64+8))+rsp],rsi
- mov QWORD PTR[((64+16))+rsp],rdx
- mov QWORD PTR[((64+24))+rsp],r11
-$L$prologue::
-
- mov eax,DWORD PTR[rdi]
- mov ebx,DWORD PTR[4+rdi]
- mov ecx,DWORD PTR[8+rdi]
- mov edx,DWORD PTR[12+rdi]
- mov r8d,DWORD PTR[16+rdi]
- mov r9d,DWORD PTR[20+rdi]
- mov r10d,DWORD PTR[24+rdi]
- mov r11d,DWORD PTR[28+rdi]
- jmp $L$loop
+ mov QWORD[((64+0))+rsp],rdi
+ mov QWORD[((64+8))+rsp],rsi
+ mov QWORD[((64+16))+rsp],rdx
+ mov QWORD[((64+24))+rsp],r11
+$L$prologue:
+
+ mov eax,DWORD[rdi]
+ mov ebx,DWORD[4+rdi]
+ mov ecx,DWORD[8+rdi]
+ mov edx,DWORD[12+rdi]
+ mov r8d,DWORD[16+rdi]
+ mov r9d,DWORD[20+rdi]
+ mov r10d,DWORD[24+rdi]
+ mov r11d,DWORD[28+rdi]
+ jmp NEAR $L$loop
ALIGN 16
-$L$loop::
+$L$loop:
mov edi,ebx
- lea rbp,QWORD PTR[K256]
+ lea rbp,[K256]
xor edi,ecx
- mov r12d,DWORD PTR[rsi]
+ mov r12d,DWORD[rsi]
mov r13d,r8d
mov r14d,eax
bswap r12d
@@ -64,7 +68,7 @@ $L$loop::
ror r14d,9
xor r15d,r10d
- mov DWORD PTR[rsp],r12d
+ mov DWORD[rsp],r12d
xor r14d,eax
and r15d,r8d
@@ -77,7 +81,7 @@ $L$loop::
add r12d,r15d
mov r15d,eax
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,eax
xor r15d,ebx
@@ -92,9 +96,9 @@ $L$loop::
add edx,r12d
add r11d,r12d
- lea rbp,QWORD PTR[4+rbp]
+ lea rbp,[4+rbp]
add r11d,r14d
- mov r12d,DWORD PTR[4+rsi]
+ mov r12d,DWORD[4+rsi]
mov r13d,edx
mov r14d,r11d
bswap r12d
@@ -105,7 +109,7 @@ $L$loop::
ror r14d,9
xor edi,r9d
- mov DWORD PTR[4+rsp],r12d
+ mov DWORD[4+rsp],r12d
xor r14d,r11d
and edi,edx
@@ -118,7 +122,7 @@ $L$loop::
add r12d,edi
mov edi,r11d
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,r11d
xor edi,eax
@@ -133,9 +137,9 @@ $L$loop::
add ecx,r12d
add r10d,r12d
- lea rbp,QWORD PTR[4+rbp]
+ lea rbp,[4+rbp]
add r10d,r14d
- mov r12d,DWORD PTR[8+rsi]
+ mov r12d,DWORD[8+rsi]
mov r13d,ecx
mov r14d,r10d
bswap r12d
@@ -146,7 +150,7 @@ $L$loop::
ror r14d,9
xor r15d,r8d
- mov DWORD PTR[8+rsp],r12d
+ mov DWORD[8+rsp],r12d
xor r14d,r10d
and r15d,ecx
@@ -159,7 +163,7 @@ $L$loop::
add r12d,r15d
mov r15d,r10d
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,r10d
xor r15d,r11d
@@ -174,9 +178,9 @@ $L$loop::
add ebx,r12d
add r9d,r12d
- lea rbp,QWORD PTR[4+rbp]
+ lea rbp,[4+rbp]
add r9d,r14d
- mov r12d,DWORD PTR[12+rsi]
+ mov r12d,DWORD[12+rsi]
mov r13d,ebx
mov r14d,r9d
bswap r12d
@@ -187,7 +191,7 @@ $L$loop::
ror r14d,9
xor edi,edx
- mov DWORD PTR[12+rsp],r12d
+ mov DWORD[12+rsp],r12d
xor r14d,r9d
and edi,ebx
@@ -200,7 +204,7 @@ $L$loop::
add r12d,edi
mov edi,r9d
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,r9d
xor edi,r10d
@@ -215,9 +219,9 @@ $L$loop::
add eax,r12d
add r8d,r12d
- lea rbp,QWORD PTR[20+rbp]
+ lea rbp,[20+rbp]
add r8d,r14d
- mov r12d,DWORD PTR[16+rsi]
+ mov r12d,DWORD[16+rsi]
mov r13d,eax
mov r14d,r8d
bswap r12d
@@ -228,7 +232,7 @@ $L$loop::
ror r14d,9
xor r15d,ecx
- mov DWORD PTR[16+rsp],r12d
+ mov DWORD[16+rsp],r12d
xor r14d,r8d
and r15d,eax
@@ -241,7 +245,7 @@ $L$loop::
add r12d,r15d
mov r15d,r8d
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,r8d
xor r15d,r9d
@@ -256,9 +260,9 @@ $L$loop::
add r11d,r12d
add edx,r12d
- lea rbp,QWORD PTR[4+rbp]
+ lea rbp,[4+rbp]
add edx,r14d
- mov r12d,DWORD PTR[20+rsi]
+ mov r12d,DWORD[20+rsi]
mov r13d,r11d
mov r14d,edx
bswap r12d
@@ -269,7 +273,7 @@ $L$loop::
ror r14d,9
xor edi,ebx
- mov DWORD PTR[20+rsp],r12d
+ mov DWORD[20+rsp],r12d
xor r14d,edx
and edi,r11d
@@ -282,7 +286,7 @@ $L$loop::
add r12d,edi
mov edi,edx
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,edx
xor edi,r8d
@@ -297,9 +301,9 @@ $L$loop::
add r10d,r12d
add ecx,r12d
- lea rbp,QWORD PTR[4+rbp]
+ lea rbp,[4+rbp]
add ecx,r14d
- mov r12d,DWORD PTR[24+rsi]
+ mov r12d,DWORD[24+rsi]
mov r13d,r10d
mov r14d,ecx
bswap r12d
@@ -310,7 +314,7 @@ $L$loop::
ror r14d,9
xor r15d,eax
- mov DWORD PTR[24+rsp],r12d
+ mov DWORD[24+rsp],r12d
xor r14d,ecx
and r15d,r10d
@@ -323,7 +327,7 @@ $L$loop::
add r12d,r15d
mov r15d,ecx
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,ecx
xor r15d,edx
@@ -338,9 +342,9 @@ $L$loop::
add r9d,r12d
add ebx,r12d
- lea rbp,QWORD PTR[4+rbp]
+ lea rbp,[4+rbp]
add ebx,r14d
- mov r12d,DWORD PTR[28+rsi]
+ mov r12d,DWORD[28+rsi]
mov r13d,r9d
mov r14d,ebx
bswap r12d
@@ -351,7 +355,7 @@ $L$loop::
ror r14d,9
xor edi,r11d
- mov DWORD PTR[28+rsp],r12d
+ mov DWORD[28+rsp],r12d
xor r14d,ebx
and edi,r9d
@@ -364,7 +368,7 @@ $L$loop::
add r12d,edi
mov edi,ebx
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,ebx
xor edi,ecx
@@ -379,9 +383,9 @@ $L$loop::
add r8d,r12d
add eax,r12d
- lea rbp,QWORD PTR[20+rbp]
+ lea rbp,[20+rbp]
add eax,r14d
- mov r12d,DWORD PTR[32+rsi]
+ mov r12d,DWORD[32+rsi]
mov r13d,r8d
mov r14d,eax
bswap r12d
@@ -392,7 +396,7 @@ $L$loop::
ror r14d,9
xor r15d,r10d
- mov DWORD PTR[32+rsp],r12d
+ mov DWORD[32+rsp],r12d
xor r14d,eax
and r15d,r8d
@@ -405,7 +409,7 @@ $L$loop::
add r12d,r15d
mov r15d,eax
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,eax
xor r15d,ebx
@@ -420,9 +424,9 @@ $L$loop::
add edx,r12d
add r11d,r12d
- lea rbp,QWORD PTR[4+rbp]
+ lea rbp,[4+rbp]
add r11d,r14d
- mov r12d,DWORD PTR[36+rsi]
+ mov r12d,DWORD[36+rsi]
mov r13d,edx
mov r14d,r11d
bswap r12d
@@ -433,7 +437,7 @@ $L$loop::
ror r14d,9
xor edi,r9d
- mov DWORD PTR[36+rsp],r12d
+ mov DWORD[36+rsp],r12d
xor r14d,r11d
and edi,edx
@@ -446,7 +450,7 @@ $L$loop::
add r12d,edi
mov edi,r11d
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,r11d
xor edi,eax
@@ -461,9 +465,9 @@ $L$loop::
add ecx,r12d
add r10d,r12d
- lea rbp,QWORD PTR[4+rbp]
+ lea rbp,[4+rbp]
add r10d,r14d
- mov r12d,DWORD PTR[40+rsi]
+ mov r12d,DWORD[40+rsi]
mov r13d,ecx
mov r14d,r10d
bswap r12d
@@ -474,7 +478,7 @@ $L$loop::
ror r14d,9
xor r15d,r8d
- mov DWORD PTR[40+rsp],r12d
+ mov DWORD[40+rsp],r12d
xor r14d,r10d
and r15d,ecx
@@ -487,7 +491,7 @@ $L$loop::
add r12d,r15d
mov r15d,r10d
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,r10d
xor r15d,r11d
@@ -502,9 +506,9 @@ $L$loop::
add ebx,r12d
add r9d,r12d
- lea rbp,QWORD PTR[4+rbp]
+ lea rbp,[4+rbp]
add r9d,r14d
- mov r12d,DWORD PTR[44+rsi]
+ mov r12d,DWORD[44+rsi]
mov r13d,ebx
mov r14d,r9d
bswap r12d
@@ -515,7 +519,7 @@ $L$loop::
ror r14d,9
xor edi,edx
- mov DWORD PTR[44+rsp],r12d
+ mov DWORD[44+rsp],r12d
xor r14d,r9d
and edi,ebx
@@ -528,7 +532,7 @@ $L$loop::
add r12d,edi
mov edi,r9d
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,r9d
xor edi,r10d
@@ -543,9 +547,9 @@ $L$loop::
add eax,r12d
add r8d,r12d
- lea rbp,QWORD PTR[20+rbp]
+ lea rbp,[20+rbp]
add r8d,r14d
- mov r12d,DWORD PTR[48+rsi]
+ mov r12d,DWORD[48+rsi]
mov r13d,eax
mov r14d,r8d
bswap r12d
@@ -556,7 +560,7 @@ $L$loop::
ror r14d,9
xor r15d,ecx
- mov DWORD PTR[48+rsp],r12d
+ mov DWORD[48+rsp],r12d
xor r14d,r8d
and r15d,eax
@@ -569,7 +573,7 @@ $L$loop::
add r12d,r15d
mov r15d,r8d
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,r8d
xor r15d,r9d
@@ -584,9 +588,9 @@ $L$loop::
add r11d,r12d
add edx,r12d
- lea rbp,QWORD PTR[4+rbp]
+ lea rbp,[4+rbp]
add edx,r14d
- mov r12d,DWORD PTR[52+rsi]
+ mov r12d,DWORD[52+rsi]
mov r13d,r11d
mov r14d,edx
bswap r12d
@@ -597,7 +601,7 @@ $L$loop::
ror r14d,9
xor edi,ebx
- mov DWORD PTR[52+rsp],r12d
+ mov DWORD[52+rsp],r12d
xor r14d,edx
and edi,r11d
@@ -610,7 +614,7 @@ $L$loop::
add r12d,edi
mov edi,edx
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,edx
xor edi,r8d
@@ -625,9 +629,9 @@ $L$loop::
add r10d,r12d
add ecx,r12d
- lea rbp,QWORD PTR[4+rbp]
+ lea rbp,[4+rbp]
add ecx,r14d
- mov r12d,DWORD PTR[56+rsi]
+ mov r12d,DWORD[56+rsi]
mov r13d,r10d
mov r14d,ecx
bswap r12d
@@ -638,7 +642,7 @@ $L$loop::
ror r14d,9
xor r15d,eax
- mov DWORD PTR[56+rsp],r12d
+ mov DWORD[56+rsp],r12d
xor r14d,ecx
and r15d,r10d
@@ -651,7 +655,7 @@ $L$loop::
add r12d,r15d
mov r15d,ecx
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,ecx
xor r15d,edx
@@ -666,9 +670,9 @@ $L$loop::
add r9d,r12d
add ebx,r12d
- lea rbp,QWORD PTR[4+rbp]
+ lea rbp,[4+rbp]
add ebx,r14d
- mov r12d,DWORD PTR[60+rsi]
+ mov r12d,DWORD[60+rsi]
mov r13d,r9d
mov r14d,ebx
bswap r12d
@@ -679,7 +683,7 @@ $L$loop::
ror r14d,9
xor edi,r11d
- mov DWORD PTR[60+rsp],r12d
+ mov DWORD[60+rsp],r12d
xor r14d,ebx
and edi,r9d
@@ -692,7 +696,7 @@ $L$loop::
add r12d,edi
mov edi,ebx
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,ebx
xor edi,ecx
@@ -707,12 +711,12 @@ $L$loop::
add r8d,r12d
add eax,r12d
- lea rbp,QWORD PTR[20+rbp]
- jmp $L$rounds_16_xx
+ lea rbp,[20+rbp]
+ jmp NEAR $L$rounds_16_xx
ALIGN 16
-$L$rounds_16_xx::
- mov r13d,DWORD PTR[4+rsp]
- mov r15d,DWORD PTR[56+rsp]
+$L$rounds_16_xx:
+ mov r13d,DWORD[4+rsp]
+ mov r15d,DWORD[56+rsp]
mov r12d,r13d
ror r13d,11
@@ -729,9 +733,9 @@ $L$rounds_16_xx::
ror r15d,17
xor r12d,r13d
xor r15d,r14d
- add r12d,DWORD PTR[36+rsp]
+ add r12d,DWORD[36+rsp]
- add r12d,DWORD PTR[rsp]
+ add r12d,DWORD[rsp]
mov r13d,r8d
add r12d,r15d
mov r14d,eax
@@ -742,7 +746,7 @@ $L$rounds_16_xx::
ror r14d,9
xor r15d,r10d
- mov DWORD PTR[rsp],r12d
+ mov DWORD[rsp],r12d
xor r14d,eax
and r15d,r8d
@@ -755,7 +759,7 @@ $L$rounds_16_xx::
add r12d,r15d
mov r15d,eax
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,eax
xor r15d,ebx
@@ -770,9 +774,9 @@ $L$rounds_16_xx::
add edx,r12d
add r11d,r12d
- lea rbp,QWORD PTR[4+rbp]
- mov r13d,DWORD PTR[8+rsp]
- mov edi,DWORD PTR[60+rsp]
+ lea rbp,[4+rbp]
+ mov r13d,DWORD[8+rsp]
+ mov edi,DWORD[60+rsp]
mov r12d,r13d
ror r13d,11
@@ -789,9 +793,9 @@ $L$rounds_16_xx::
ror edi,17
xor r12d,r13d
xor edi,r14d
- add r12d,DWORD PTR[40+rsp]
+ add r12d,DWORD[40+rsp]
- add r12d,DWORD PTR[4+rsp]
+ add r12d,DWORD[4+rsp]
mov r13d,edx
add r12d,edi
mov r14d,r11d
@@ -802,7 +806,7 @@ $L$rounds_16_xx::
ror r14d,9
xor edi,r9d
- mov DWORD PTR[4+rsp],r12d
+ mov DWORD[4+rsp],r12d
xor r14d,r11d
and edi,edx
@@ -815,7 +819,7 @@ $L$rounds_16_xx::
add r12d,edi
mov edi,r11d
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,r11d
xor edi,eax
@@ -830,9 +834,9 @@ $L$rounds_16_xx::
add ecx,r12d
add r10d,r12d
- lea rbp,QWORD PTR[4+rbp]
- mov r13d,DWORD PTR[12+rsp]
- mov r15d,DWORD PTR[rsp]
+ lea rbp,[4+rbp]
+ mov r13d,DWORD[12+rsp]
+ mov r15d,DWORD[rsp]
mov r12d,r13d
ror r13d,11
@@ -849,9 +853,9 @@ $L$rounds_16_xx::
ror r15d,17
xor r12d,r13d
xor r15d,r14d
- add r12d,DWORD PTR[44+rsp]
+ add r12d,DWORD[44+rsp]
- add r12d,DWORD PTR[8+rsp]
+ add r12d,DWORD[8+rsp]
mov r13d,ecx
add r12d,r15d
mov r14d,r10d
@@ -862,7 +866,7 @@ $L$rounds_16_xx::
ror r14d,9
xor r15d,r8d
- mov DWORD PTR[8+rsp],r12d
+ mov DWORD[8+rsp],r12d
xor r14d,r10d
and r15d,ecx
@@ -875,7 +879,7 @@ $L$rounds_16_xx::
add r12d,r15d
mov r15d,r10d
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,r10d
xor r15d,r11d
@@ -890,9 +894,9 @@ $L$rounds_16_xx::
add ebx,r12d
add r9d,r12d
- lea rbp,QWORD PTR[4+rbp]
- mov r13d,DWORD PTR[16+rsp]
- mov edi,DWORD PTR[4+rsp]
+ lea rbp,[4+rbp]
+ mov r13d,DWORD[16+rsp]
+ mov edi,DWORD[4+rsp]
mov r12d,r13d
ror r13d,11
@@ -909,9 +913,9 @@ $L$rounds_16_xx::
ror edi,17
xor r12d,r13d
xor edi,r14d
- add r12d,DWORD PTR[48+rsp]
+ add r12d,DWORD[48+rsp]
- add r12d,DWORD PTR[12+rsp]
+ add r12d,DWORD[12+rsp]
mov r13d,ebx
add r12d,edi
mov r14d,r9d
@@ -922,7 +926,7 @@ $L$rounds_16_xx::
ror r14d,9
xor edi,edx
- mov DWORD PTR[12+rsp],r12d
+ mov DWORD[12+rsp],r12d
xor r14d,r9d
and edi,ebx
@@ -935,7 +939,7 @@ $L$rounds_16_xx::
add r12d,edi
mov edi,r9d
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,r9d
xor edi,r10d
@@ -950,9 +954,9 @@ $L$rounds_16_xx::
add eax,r12d
add r8d,r12d
- lea rbp,QWORD PTR[20+rbp]
- mov r13d,DWORD PTR[20+rsp]
- mov r15d,DWORD PTR[8+rsp]
+ lea rbp,[20+rbp]
+ mov r13d,DWORD[20+rsp]
+ mov r15d,DWORD[8+rsp]
mov r12d,r13d
ror r13d,11
@@ -969,9 +973,9 @@ $L$rounds_16_xx::
ror r15d,17
xor r12d,r13d
xor r15d,r14d
- add r12d,DWORD PTR[52+rsp]
+ add r12d,DWORD[52+rsp]
- add r12d,DWORD PTR[16+rsp]
+ add r12d,DWORD[16+rsp]
mov r13d,eax
add r12d,r15d
mov r14d,r8d
@@ -982,7 +986,7 @@ $L$rounds_16_xx::
ror r14d,9
xor r15d,ecx
- mov DWORD PTR[16+rsp],r12d
+ mov DWORD[16+rsp],r12d
xor r14d,r8d
and r15d,eax
@@ -995,7 +999,7 @@ $L$rounds_16_xx::
add r12d,r15d
mov r15d,r8d
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,r8d
xor r15d,r9d
@@ -1010,9 +1014,9 @@ $L$rounds_16_xx::
add r11d,r12d
add edx,r12d
- lea rbp,QWORD PTR[4+rbp]
- mov r13d,DWORD PTR[24+rsp]
- mov edi,DWORD PTR[12+rsp]
+ lea rbp,[4+rbp]
+ mov r13d,DWORD[24+rsp]
+ mov edi,DWORD[12+rsp]
mov r12d,r13d
ror r13d,11
@@ -1029,9 +1033,9 @@ $L$rounds_16_xx::
ror edi,17
xor r12d,r13d
xor edi,r14d
- add r12d,DWORD PTR[56+rsp]
+ add r12d,DWORD[56+rsp]
- add r12d,DWORD PTR[20+rsp]
+ add r12d,DWORD[20+rsp]
mov r13d,r11d
add r12d,edi
mov r14d,edx
@@ -1042,7 +1046,7 @@ $L$rounds_16_xx::
ror r14d,9
xor edi,ebx
- mov DWORD PTR[20+rsp],r12d
+ mov DWORD[20+rsp],r12d
xor r14d,edx
and edi,r11d
@@ -1055,7 +1059,7 @@ $L$rounds_16_xx::
add r12d,edi
mov edi,edx
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,edx
xor edi,r8d
@@ -1070,9 +1074,9 @@ $L$rounds_16_xx::
add r10d,r12d
add ecx,r12d
- lea rbp,QWORD PTR[4+rbp]
- mov r13d,DWORD PTR[28+rsp]
- mov r15d,DWORD PTR[16+rsp]
+ lea rbp,[4+rbp]
+ mov r13d,DWORD[28+rsp]
+ mov r15d,DWORD[16+rsp]
mov r12d,r13d
ror r13d,11
@@ -1089,9 +1093,9 @@ $L$rounds_16_xx::
ror r15d,17
xor r12d,r13d
xor r15d,r14d
- add r12d,DWORD PTR[60+rsp]
+ add r12d,DWORD[60+rsp]
- add r12d,DWORD PTR[24+rsp]
+ add r12d,DWORD[24+rsp]
mov r13d,r10d
add r12d,r15d
mov r14d,ecx
@@ -1102,7 +1106,7 @@ $L$rounds_16_xx::
ror r14d,9
xor r15d,eax
- mov DWORD PTR[24+rsp],r12d
+ mov DWORD[24+rsp],r12d
xor r14d,ecx
and r15d,r10d
@@ -1115,7 +1119,7 @@ $L$rounds_16_xx::
add r12d,r15d
mov r15d,ecx
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,ecx
xor r15d,edx
@@ -1130,9 +1134,9 @@ $L$rounds_16_xx::
add r9d,r12d
add ebx,r12d
- lea rbp,QWORD PTR[4+rbp]
- mov r13d,DWORD PTR[32+rsp]
- mov edi,DWORD PTR[20+rsp]
+ lea rbp,[4+rbp]
+ mov r13d,DWORD[32+rsp]
+ mov edi,DWORD[20+rsp]
mov r12d,r13d
ror r13d,11
@@ -1149,9 +1153,9 @@ $L$rounds_16_xx::
ror edi,17
xor r12d,r13d
xor edi,r14d
- add r12d,DWORD PTR[rsp]
+ add r12d,DWORD[rsp]
- add r12d,DWORD PTR[28+rsp]
+ add r12d,DWORD[28+rsp]
mov r13d,r9d
add r12d,edi
mov r14d,ebx
@@ -1162,7 +1166,7 @@ $L$rounds_16_xx::
ror r14d,9
xor edi,r11d
- mov DWORD PTR[28+rsp],r12d
+ mov DWORD[28+rsp],r12d
xor r14d,ebx
and edi,r9d
@@ -1175,7 +1179,7 @@ $L$rounds_16_xx::
add r12d,edi
mov edi,ebx
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,ebx
xor edi,ecx
@@ -1190,9 +1194,9 @@ $L$rounds_16_xx::
add r8d,r12d
add eax,r12d
- lea rbp,QWORD PTR[20+rbp]
- mov r13d,DWORD PTR[36+rsp]
- mov r15d,DWORD PTR[24+rsp]
+ lea rbp,[20+rbp]
+ mov r13d,DWORD[36+rsp]
+ mov r15d,DWORD[24+rsp]
mov r12d,r13d
ror r13d,11
@@ -1209,9 +1213,9 @@ $L$rounds_16_xx::
ror r15d,17
xor r12d,r13d
xor r15d,r14d
- add r12d,DWORD PTR[4+rsp]
+ add r12d,DWORD[4+rsp]
- add r12d,DWORD PTR[32+rsp]
+ add r12d,DWORD[32+rsp]
mov r13d,r8d
add r12d,r15d
mov r14d,eax
@@ -1222,7 +1226,7 @@ $L$rounds_16_xx::
ror r14d,9
xor r15d,r10d
- mov DWORD PTR[32+rsp],r12d
+ mov DWORD[32+rsp],r12d
xor r14d,eax
and r15d,r8d
@@ -1235,7 +1239,7 @@ $L$rounds_16_xx::
add r12d,r15d
mov r15d,eax
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,eax
xor r15d,ebx
@@ -1250,9 +1254,9 @@ $L$rounds_16_xx::
add edx,r12d
add r11d,r12d
- lea rbp,QWORD PTR[4+rbp]
- mov r13d,DWORD PTR[40+rsp]
- mov edi,DWORD PTR[28+rsp]
+ lea rbp,[4+rbp]
+ mov r13d,DWORD[40+rsp]
+ mov edi,DWORD[28+rsp]
mov r12d,r13d
ror r13d,11
@@ -1269,9 +1273,9 @@ $L$rounds_16_xx::
ror edi,17
xor r12d,r13d
xor edi,r14d
- add r12d,DWORD PTR[8+rsp]
+ add r12d,DWORD[8+rsp]
- add r12d,DWORD PTR[36+rsp]
+ add r12d,DWORD[36+rsp]
mov r13d,edx
add r12d,edi
mov r14d,r11d
@@ -1282,7 +1286,7 @@ $L$rounds_16_xx::
ror r14d,9
xor edi,r9d
- mov DWORD PTR[36+rsp],r12d
+ mov DWORD[36+rsp],r12d
xor r14d,r11d
and edi,edx
@@ -1295,7 +1299,7 @@ $L$rounds_16_xx::
add r12d,edi
mov edi,r11d
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,r11d
xor edi,eax
@@ -1310,9 +1314,9 @@ $L$rounds_16_xx::
add ecx,r12d
add r10d,r12d
- lea rbp,QWORD PTR[4+rbp]
- mov r13d,DWORD PTR[44+rsp]
- mov r15d,DWORD PTR[32+rsp]
+ lea rbp,[4+rbp]
+ mov r13d,DWORD[44+rsp]
+ mov r15d,DWORD[32+rsp]
mov r12d,r13d
ror r13d,11
@@ -1329,9 +1333,9 @@ $L$rounds_16_xx::
ror r15d,17
xor r12d,r13d
xor r15d,r14d
- add r12d,DWORD PTR[12+rsp]
+ add r12d,DWORD[12+rsp]
- add r12d,DWORD PTR[40+rsp]
+ add r12d,DWORD[40+rsp]
mov r13d,ecx
add r12d,r15d
mov r14d,r10d
@@ -1342,7 +1346,7 @@ $L$rounds_16_xx::
ror r14d,9
xor r15d,r8d
- mov DWORD PTR[40+rsp],r12d
+ mov DWORD[40+rsp],r12d
xor r14d,r10d
and r15d,ecx
@@ -1355,7 +1359,7 @@ $L$rounds_16_xx::
add r12d,r15d
mov r15d,r10d
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,r10d
xor r15d,r11d
@@ -1370,9 +1374,9 @@ $L$rounds_16_xx::
add ebx,r12d
add r9d,r12d
- lea rbp,QWORD PTR[4+rbp]
- mov r13d,DWORD PTR[48+rsp]
- mov edi,DWORD PTR[36+rsp]
+ lea rbp,[4+rbp]
+ mov r13d,DWORD[48+rsp]
+ mov edi,DWORD[36+rsp]
mov r12d,r13d
ror r13d,11
@@ -1389,9 +1393,9 @@ $L$rounds_16_xx::
ror edi,17
xor r12d,r13d
xor edi,r14d
- add r12d,DWORD PTR[16+rsp]
+ add r12d,DWORD[16+rsp]
- add r12d,DWORD PTR[44+rsp]
+ add r12d,DWORD[44+rsp]
mov r13d,ebx
add r12d,edi
mov r14d,r9d
@@ -1402,7 +1406,7 @@ $L$rounds_16_xx::
ror r14d,9
xor edi,edx
- mov DWORD PTR[44+rsp],r12d
+ mov DWORD[44+rsp],r12d
xor r14d,r9d
and edi,ebx
@@ -1415,7 +1419,7 @@ $L$rounds_16_xx::
add r12d,edi
mov edi,r9d
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,r9d
xor edi,r10d
@@ -1430,9 +1434,9 @@ $L$rounds_16_xx::
add eax,r12d
add r8d,r12d
- lea rbp,QWORD PTR[20+rbp]
- mov r13d,DWORD PTR[52+rsp]
- mov r15d,DWORD PTR[40+rsp]
+ lea rbp,[20+rbp]
+ mov r13d,DWORD[52+rsp]
+ mov r15d,DWORD[40+rsp]
mov r12d,r13d
ror r13d,11
@@ -1449,9 +1453,9 @@ $L$rounds_16_xx::
ror r15d,17
xor r12d,r13d
xor r15d,r14d
- add r12d,DWORD PTR[20+rsp]
+ add r12d,DWORD[20+rsp]
- add r12d,DWORD PTR[48+rsp]
+ add r12d,DWORD[48+rsp]
mov r13d,eax
add r12d,r15d
mov r14d,r8d
@@ -1462,7 +1466,7 @@ $L$rounds_16_xx::
ror r14d,9
xor r15d,ecx
- mov DWORD PTR[48+rsp],r12d
+ mov DWORD[48+rsp],r12d
xor r14d,r8d
and r15d,eax
@@ -1475,7 +1479,7 @@ $L$rounds_16_xx::
add r12d,r15d
mov r15d,r8d
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,r8d
xor r15d,r9d
@@ -1490,9 +1494,9 @@ $L$rounds_16_xx::
add r11d,r12d
add edx,r12d
- lea rbp,QWORD PTR[4+rbp]
- mov r13d,DWORD PTR[56+rsp]
- mov edi,DWORD PTR[44+rsp]
+ lea rbp,[4+rbp]
+ mov r13d,DWORD[56+rsp]
+ mov edi,DWORD[44+rsp]
mov r12d,r13d
ror r13d,11
@@ -1509,9 +1513,9 @@ $L$rounds_16_xx::
ror edi,17
xor r12d,r13d
xor edi,r14d
- add r12d,DWORD PTR[24+rsp]
+ add r12d,DWORD[24+rsp]
- add r12d,DWORD PTR[52+rsp]
+ add r12d,DWORD[52+rsp]
mov r13d,r11d
add r12d,edi
mov r14d,edx
@@ -1522,7 +1526,7 @@ $L$rounds_16_xx::
ror r14d,9
xor edi,ebx
- mov DWORD PTR[52+rsp],r12d
+ mov DWORD[52+rsp],r12d
xor r14d,edx
and edi,r11d
@@ -1535,7 +1539,7 @@ $L$rounds_16_xx::
add r12d,edi
mov edi,edx
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,edx
xor edi,r8d
@@ -1550,9 +1554,9 @@ $L$rounds_16_xx::
add r10d,r12d
add ecx,r12d
- lea rbp,QWORD PTR[4+rbp]
- mov r13d,DWORD PTR[60+rsp]
- mov r15d,DWORD PTR[48+rsp]
+ lea rbp,[4+rbp]
+ mov r13d,DWORD[60+rsp]
+ mov r15d,DWORD[48+rsp]
mov r12d,r13d
ror r13d,11
@@ -1569,9 +1573,9 @@ $L$rounds_16_xx::
ror r15d,17
xor r12d,r13d
xor r15d,r14d
- add r12d,DWORD PTR[28+rsp]
+ add r12d,DWORD[28+rsp]
- add r12d,DWORD PTR[56+rsp]
+ add r12d,DWORD[56+rsp]
mov r13d,r10d
add r12d,r15d
mov r14d,ecx
@@ -1582,7 +1586,7 @@ $L$rounds_16_xx::
ror r14d,9
xor r15d,eax
- mov DWORD PTR[56+rsp],r12d
+ mov DWORD[56+rsp],r12d
xor r14d,ecx
and r15d,r10d
@@ -1595,7 +1599,7 @@ $L$rounds_16_xx::
add r12d,r15d
mov r15d,ecx
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,ecx
xor r15d,edx
@@ -1610,9 +1614,9 @@ $L$rounds_16_xx::
add r9d,r12d
add ebx,r12d
- lea rbp,QWORD PTR[4+rbp]
- mov r13d,DWORD PTR[rsp]
- mov edi,DWORD PTR[52+rsp]
+ lea rbp,[4+rbp]
+ mov r13d,DWORD[rsp]
+ mov edi,DWORD[52+rsp]
mov r12d,r13d
ror r13d,11
@@ -1629,9 +1633,9 @@ $L$rounds_16_xx::
ror edi,17
xor r12d,r13d
xor edi,r14d
- add r12d,DWORD PTR[32+rsp]
+ add r12d,DWORD[32+rsp]
- add r12d,DWORD PTR[60+rsp]
+ add r12d,DWORD[60+rsp]
mov r13d,r9d
add r12d,edi
mov r14d,ebx
@@ -1642,7 +1646,7 @@ $L$rounds_16_xx::
ror r14d,9
xor edi,r11d
- mov DWORD PTR[60+rsp],r12d
+ mov DWORD[60+rsp],r12d
xor r14d,ebx
and edi,r9d
@@ -1655,7 +1659,7 @@ $L$rounds_16_xx::
add r12d,edi
mov edi,ebx
- add r12d,DWORD PTR[rbp]
+ add r12d,DWORD[rbp]
xor r14d,ebx
xor edi,ecx
@@ -1670,91 +1674,90 @@ $L$rounds_16_xx::
add r8d,r12d
add eax,r12d
- lea rbp,QWORD PTR[20+rbp]
- cmp BYTE PTR[3+rbp],0
- jnz $L$rounds_16_xx
+ lea rbp,[20+rbp]
+ cmp BYTE[3+rbp],0
+ jnz NEAR $L$rounds_16_xx
- mov rdi,QWORD PTR[((64+0))+rsp]
+ mov rdi,QWORD[((64+0))+rsp]
add eax,r14d
- lea rsi,QWORD PTR[64+rsi]
-
- add eax,DWORD PTR[rdi]
- add ebx,DWORD PTR[4+rdi]
- add ecx,DWORD PTR[8+rdi]
- add edx,DWORD PTR[12+rdi]
- add r8d,DWORD PTR[16+rdi]
- add r9d,DWORD PTR[20+rdi]
- add r10d,DWORD PTR[24+rdi]
- add r11d,DWORD PTR[28+rdi]
-
- cmp rsi,QWORD PTR[((64+16))+rsp]
-
- mov DWORD PTR[rdi],eax
- mov DWORD PTR[4+rdi],ebx
- mov DWORD PTR[8+rdi],ecx
- mov DWORD PTR[12+rdi],edx
- mov DWORD PTR[16+rdi],r8d
- mov DWORD PTR[20+rdi],r9d
- mov DWORD PTR[24+rdi],r10d
- mov DWORD PTR[28+rdi],r11d
- jb $L$loop
-
- mov rsi,QWORD PTR[((64+24))+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$epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ lea rsi,[64+rsi]
+
+ add eax,DWORD[rdi]
+ add ebx,DWORD[4+rdi]
+ add ecx,DWORD[8+rdi]
+ add edx,DWORD[12+rdi]
+ add r8d,DWORD[16+rdi]
+ add r9d,DWORD[20+rdi]
+ add r10d,DWORD[24+rdi]
+ add r11d,DWORD[28+rdi]
+
+ cmp rsi,QWORD[((64+16))+rsp]
+
+ mov DWORD[rdi],eax
+ mov DWORD[4+rdi],ebx
+ mov DWORD[8+rdi],ecx
+ mov DWORD[12+rdi],edx
+ mov DWORD[16+rdi],r8d
+ mov DWORD[20+rdi],r9d
+ mov DWORD[24+rdi],r10d
+ mov DWORD[28+rdi],r11d
+ jb NEAR $L$loop
+
+ mov rsi,QWORD[((64+24))+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$epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_sha256_block_data_order::
-sha256_block_data_order ENDP
+$L$SEH_end_sha256_block_data_order:
ALIGN 64
-K256::
- DD 0428a2f98h,071374491h,0b5c0fbcfh,0e9b5dba5h
- DD 0428a2f98h,071374491h,0b5c0fbcfh,0e9b5dba5h
- DD 03956c25bh,059f111f1h,0923f82a4h,0ab1c5ed5h
- DD 03956c25bh,059f111f1h,0923f82a4h,0ab1c5ed5h
- DD 0d807aa98h,012835b01h,0243185beh,0550c7dc3h
- DD 0d807aa98h,012835b01h,0243185beh,0550c7dc3h
- DD 072be5d74h,080deb1feh,09bdc06a7h,0c19bf174h
- DD 072be5d74h,080deb1feh,09bdc06a7h,0c19bf174h
- DD 0e49b69c1h,0efbe4786h,00fc19dc6h,0240ca1cch
- DD 0e49b69c1h,0efbe4786h,00fc19dc6h,0240ca1cch
- DD 02de92c6fh,04a7484aah,05cb0a9dch,076f988dah
- DD 02de92c6fh,04a7484aah,05cb0a9dch,076f988dah
- DD 0983e5152h,0a831c66dh,0b00327c8h,0bf597fc7h
- DD 0983e5152h,0a831c66dh,0b00327c8h,0bf597fc7h
- DD 0c6e00bf3h,0d5a79147h,006ca6351h,014292967h
- DD 0c6e00bf3h,0d5a79147h,006ca6351h,014292967h
- DD 027b70a85h,02e1b2138h,04d2c6dfch,053380d13h
- DD 027b70a85h,02e1b2138h,04d2c6dfch,053380d13h
- DD 0650a7354h,0766a0abbh,081c2c92eh,092722c85h
- DD 0650a7354h,0766a0abbh,081c2c92eh,092722c85h
- DD 0a2bfe8a1h,0a81a664bh,0c24b8b70h,0c76c51a3h
- DD 0a2bfe8a1h,0a81a664bh,0c24b8b70h,0c76c51a3h
- DD 0d192e819h,0d6990624h,0f40e3585h,0106aa070h
- DD 0d192e819h,0d6990624h,0f40e3585h,0106aa070h
- DD 019a4c116h,01e376c08h,02748774ch,034b0bcb5h
- DD 019a4c116h,01e376c08h,02748774ch,034b0bcb5h
- DD 0391c0cb3h,04ed8aa4ah,05b9cca4fh,0682e6ff3h
- DD 0391c0cb3h,04ed8aa4ah,05b9cca4fh,0682e6ff3h
- DD 0748f82eeh,078a5636fh,084c87814h,08cc70208h
- DD 0748f82eeh,078a5636fh,084c87814h,08cc70208h
- DD 090befffah,0a4506cebh,0bef9a3f7h,0c67178f2h
- DD 090befffah,0a4506cebh,0bef9a3f7h,0c67178f2h
-
- DD 000010203h,004050607h,008090a0bh,00c0d0e0fh
- DD 000010203h,004050607h,008090a0bh,00c0d0e0fh
- DD 003020100h,00b0a0908h,0ffffffffh,0ffffffffh
- DD 003020100h,00b0a0908h,0ffffffffh,0ffffffffh
- DD 0ffffffffh,0ffffffffh,003020100h,00b0a0908h
- DD 0ffffffffh,0ffffffffh,003020100h,00b0a0908h
+K256:
+ DD 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
+ DD 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
+ DD 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
+ DD 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
+ DD 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
+ DD 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
+ DD 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
+ DD 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
+ DD 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
+ DD 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
+ DD 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
+ DD 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
+ DD 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
+ DD 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
+ DD 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
+ DD 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
+ DD 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
+ DD 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
+ DD 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
+ DD 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
+ DD 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
+ DD 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
+ DD 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
+ DD 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
+ DD 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
+ DD 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
+ DD 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
+ DD 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
+ DD 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
+ DD 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
+ DD 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
+ DD 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
+
+ DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
+ DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
+ DD 0x03020100,0x0b0a0908,0xffffffff,0xffffffff
+ DD 0x03020100,0x0b0a0908,0xffffffff,0xffffffff
+ DD 0xffffffff,0xffffffff,0x03020100,0x0b0a0908
+ DD 0xffffffff,0xffffffff,0x03020100,0x0b0a0908
DB 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
DB 110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54
DB 52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121
@@ -1762,17 +1765,17 @@ DB 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46
DB 111,114,103,62,0
ALIGN 64
-sha256_block_data_order_ssse3 PROC PRIVATE
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+sha256_block_data_order_ssse3:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_sha256_block_data_order_ssse3::
+$L$SEH_begin_sha256_block_data_order_ssse3:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
-$L$ssse3_shortcut::
+$L$ssse3_shortcut:
push rbx
push rbp
push r12
@@ -1782,61 +1785,61 @@ $L$ssse3_shortcut::
mov r11,rsp
shl rdx,4
sub rsp,160
- lea rdx,QWORD PTR[rdx*4+rsi]
+ lea rdx,[rdx*4+rsi]
and rsp,-64
- mov QWORD PTR[((64+0))+rsp],rdi
- mov QWORD PTR[((64+8))+rsp],rsi
- mov QWORD PTR[((64+16))+rsp],rdx
- mov QWORD PTR[((64+24))+rsp],r11
- movaps XMMWORD PTR[(64+32)+rsp],xmm6
- movaps XMMWORD PTR[(64+48)+rsp],xmm7
- movaps XMMWORD PTR[(64+64)+rsp],xmm8
- movaps XMMWORD PTR[(64+80)+rsp],xmm9
-$L$prologue_ssse3::
-
- mov eax,DWORD PTR[rdi]
- mov ebx,DWORD PTR[4+rdi]
- mov ecx,DWORD PTR[8+rdi]
- mov edx,DWORD PTR[12+rdi]
- mov r8d,DWORD PTR[16+rdi]
- mov r9d,DWORD PTR[20+rdi]
- mov r10d,DWORD PTR[24+rdi]
- mov r11d,DWORD PTR[28+rdi]
-
-
- jmp $L$loop_ssse3
+ mov QWORD[((64+0))+rsp],rdi
+ mov QWORD[((64+8))+rsp],rsi
+ mov QWORD[((64+16))+rsp],rdx
+ mov QWORD[((64+24))+rsp],r11
+ movaps XMMWORD[(64+32)+rsp],xmm6
+ movaps XMMWORD[(64+48)+rsp],xmm7
+ movaps XMMWORD[(64+64)+rsp],xmm8
+ movaps XMMWORD[(64+80)+rsp],xmm9
+$L$prologue_ssse3:
+
+ mov eax,DWORD[rdi]
+ mov ebx,DWORD[4+rdi]
+ mov ecx,DWORD[8+rdi]
+ mov edx,DWORD[12+rdi]
+ mov r8d,DWORD[16+rdi]
+ mov r9d,DWORD[20+rdi]
+ mov r10d,DWORD[24+rdi]
+ mov r11d,DWORD[28+rdi]
+
+
+ jmp NEAR $L$loop_ssse3
ALIGN 16
-$L$loop_ssse3::
- movdqa xmm7,XMMWORD PTR[((K256+512))]
- movdqu xmm0,XMMWORD PTR[rsi]
- movdqu xmm1,XMMWORD PTR[16+rsi]
- movdqu xmm2,XMMWORD PTR[32+rsi]
+$L$loop_ssse3:
+ movdqa xmm7,XMMWORD[((K256+512))]
+ movdqu xmm0,XMMWORD[rsi]
+ movdqu xmm1,XMMWORD[16+rsi]
+ movdqu xmm2,XMMWORD[32+rsi]
DB 102,15,56,0,199
- movdqu xmm3,XMMWORD PTR[48+rsi]
- lea rbp,QWORD PTR[K256]
+ movdqu xmm3,XMMWORD[48+rsi]
+ lea rbp,[K256]
DB 102,15,56,0,207
- movdqa xmm4,XMMWORD PTR[rbp]
- movdqa xmm5,XMMWORD PTR[32+rbp]
+ movdqa xmm4,XMMWORD[rbp]
+ movdqa xmm5,XMMWORD[32+rbp]
DB 102,15,56,0,215
paddd xmm4,xmm0
- movdqa xmm6,XMMWORD PTR[64+rbp]
+ movdqa xmm6,XMMWORD[64+rbp]
DB 102,15,56,0,223
- movdqa xmm7,XMMWORD PTR[96+rbp]
+ movdqa xmm7,XMMWORD[96+rbp]
paddd xmm5,xmm1
paddd xmm6,xmm2
paddd xmm7,xmm3
- movdqa XMMWORD PTR[rsp],xmm4
+ movdqa XMMWORD[rsp],xmm4
mov r14d,eax
- movdqa XMMWORD PTR[16+rsp],xmm5
+ movdqa XMMWORD[16+rsp],xmm5
mov edi,ebx
- movdqa XMMWORD PTR[32+rsp],xmm6
+ movdqa XMMWORD[32+rsp],xmm6
xor edi,ecx
- movdqa XMMWORD PTR[48+rsp],xmm7
+ movdqa XMMWORD[48+rsp],xmm7
mov r13d,r8d
- jmp $L$ssse3_00_47
+ jmp NEAR $L$ssse3_00_47
ALIGN 16
-$L$ssse3_00_47::
+$L$ssse3_00_47:
sub rbp,-128
ror r13d,14
movdqa xmm4,xmm1
@@ -1852,7 +1855,7 @@ DB 102,15,58,15,224,4
and r12d,r8d
xor r13d,r8d
DB 102,15,58,15,250,4
- add r11d,DWORD PTR[rsp]
+ add r11d,DWORD[rsp]
mov r15d,eax
xor r12d,r10d
ror r14d,11
@@ -1889,7 +1892,7 @@ DB 102,15,58,15,250,4
and r12d,edx
xor r13d,edx
pslld xmm5,11
- add r10d,DWORD PTR[4+rsp]
+ add r10d,DWORD[4+rsp]
mov edi,r11d
pxor xmm4,xmm6
xor r12d,r9d
@@ -1925,7 +1928,7 @@ DB 102,15,58,15,250,4
and r12d,ecx
pshufd xmm7,xmm7,128
xor r13d,ecx
- add r9d,DWORD PTR[8+rsp]
+ add r9d,DWORD[8+rsp]
mov r15d,r10d
psrldq xmm7,8
xor r12d,r8d
@@ -1959,7 +1962,7 @@ DB 102,15,58,15,250,4
psrlq xmm6,2
and r12d,ebx
xor r13d,ebx
- add r8d,DWORD PTR[12+rsp]
+ add r8d,DWORD[12+rsp]
pxor xmm7,xmm6
mov edi,r9d
xor r12d,edx
@@ -1967,7 +1970,7 @@ DB 102,15,58,15,250,4
pshufd xmm7,xmm7,8
xor edi,r10d
add r8d,r12d
- movdqa xmm6,XMMWORD PTR[rbp]
+ movdqa xmm6,XMMWORD[rbp]
ror r13d,6
and r15d,edi
pslldq xmm7,8
@@ -1981,7 +1984,7 @@ DB 102,15,58,15,250,4
paddd xmm6,xmm0
mov r13d,eax
add r14d,r8d
- movdqa XMMWORD PTR[rsp],xmm6
+ movdqa XMMWORD[rsp],xmm6
ror r13d,14
movdqa xmm4,xmm2
mov r8d,r14d
@@ -1996,7 +1999,7 @@ DB 102,15,58,15,225,4
and r12d,eax
xor r13d,eax
DB 102,15,58,15,251,4
- add edx,DWORD PTR[16+rsp]
+ add edx,DWORD[16+rsp]
mov r15d,r8d
xor r12d,ecx
ror r14d,11
@@ -2033,7 +2036,7 @@ DB 102,15,58,15,251,4
and r12d,r11d
xor r13d,r11d
pslld xmm5,11
- add ecx,DWORD PTR[20+rsp]
+ add ecx,DWORD[20+rsp]
mov edi,edx
pxor xmm4,xmm6
xor r12d,ebx
@@ -2069,7 +2072,7 @@ DB 102,15,58,15,251,4
and r12d,r10d
pshufd xmm7,xmm7,128
xor r13d,r10d
- add ebx,DWORD PTR[24+rsp]
+ add ebx,DWORD[24+rsp]
mov r15d,ecx
psrldq xmm7,8
xor r12d,eax
@@ -2103,7 +2106,7 @@ DB 102,15,58,15,251,4
psrlq xmm6,2
and r12d,r9d
xor r13d,r9d
- add eax,DWORD PTR[28+rsp]
+ add eax,DWORD[28+rsp]
pxor xmm7,xmm6
mov edi,ebx
xor r12d,r11d
@@ -2111,7 +2114,7 @@ DB 102,15,58,15,251,4
pshufd xmm7,xmm7,8
xor edi,ecx
add eax,r12d
- movdqa xmm6,XMMWORD PTR[32+rbp]
+ movdqa xmm6,XMMWORD[32+rbp]
ror r13d,6
and r15d,edi
pslldq xmm7,8
@@ -2125,7 +2128,7 @@ DB 102,15,58,15,251,4
paddd xmm6,xmm1
mov r13d,r8d
add r14d,eax
- movdqa XMMWORD PTR[16+rsp],xmm6
+ movdqa XMMWORD[16+rsp],xmm6
ror r13d,14
movdqa xmm4,xmm3
mov eax,r14d
@@ -2140,7 +2143,7 @@ DB 102,15,58,15,226,4
and r12d,r8d
xor r13d,r8d
DB 102,15,58,15,248,4
- add r11d,DWORD PTR[32+rsp]
+ add r11d,DWORD[32+rsp]
mov r15d,eax
xor r12d,r10d
ror r14d,11
@@ -2177,7 +2180,7 @@ DB 102,15,58,15,248,4
and r12d,edx
xor r13d,edx
pslld xmm5,11
- add r10d,DWORD PTR[36+rsp]
+ add r10d,DWORD[36+rsp]
mov edi,r11d
pxor xmm4,xmm6
xor r12d,r9d
@@ -2213,7 +2216,7 @@ DB 102,15,58,15,248,4
and r12d,ecx
pshufd xmm7,xmm7,128
xor r13d,ecx
- add r9d,DWORD PTR[40+rsp]
+ add r9d,DWORD[40+rsp]
mov r15d,r10d
psrldq xmm7,8
xor r12d,r8d
@@ -2247,7 +2250,7 @@ DB 102,15,58,15,248,4
psrlq xmm6,2
and r12d,ebx
xor r13d,ebx
- add r8d,DWORD PTR[44+rsp]
+ add r8d,DWORD[44+rsp]
pxor xmm7,xmm6
mov edi,r9d
xor r12d,edx
@@ -2255,7 +2258,7 @@ DB 102,15,58,15,248,4
pshufd xmm7,xmm7,8
xor edi,r10d
add r8d,r12d
- movdqa xmm6,XMMWORD PTR[64+rbp]
+ movdqa xmm6,XMMWORD[64+rbp]
ror r13d,6
and r15d,edi
pslldq xmm7,8
@@ -2269,7 +2272,7 @@ DB 102,15,58,15,248,4
paddd xmm6,xmm2
mov r13d,eax
add r14d,r8d
- movdqa XMMWORD PTR[32+rsp],xmm6
+ movdqa XMMWORD[32+rsp],xmm6
ror r13d,14
movdqa xmm4,xmm0
mov r8d,r14d
@@ -2284,7 +2287,7 @@ DB 102,15,58,15,227,4
and r12d,eax
xor r13d,eax
DB 102,15,58,15,249,4
- add edx,DWORD PTR[48+rsp]
+ add edx,DWORD[48+rsp]
mov r15d,r8d
xor r12d,ecx
ror r14d,11
@@ -2321,7 +2324,7 @@ DB 102,15,58,15,249,4
and r12d,r11d
xor r13d,r11d
pslld xmm5,11
- add ecx,DWORD PTR[52+rsp]
+ add ecx,DWORD[52+rsp]
mov edi,edx
pxor xmm4,xmm6
xor r12d,ebx
@@ -2357,7 +2360,7 @@ DB 102,15,58,15,249,4
and r12d,r10d
pshufd xmm7,xmm7,128
xor r13d,r10d
- add ebx,DWORD PTR[56+rsp]
+ add ebx,DWORD[56+rsp]
mov r15d,ecx
psrldq xmm7,8
xor r12d,eax
@@ -2391,7 +2394,7 @@ DB 102,15,58,15,249,4
psrlq xmm6,2
and r12d,r9d
xor r13d,r9d
- add eax,DWORD PTR[60+rsp]
+ add eax,DWORD[60+rsp]
pxor xmm7,xmm6
mov edi,ebx
xor r12d,r11d
@@ -2399,7 +2402,7 @@ DB 102,15,58,15,249,4
pshufd xmm7,xmm7,8
xor edi,ecx
add eax,r12d
- movdqa xmm6,XMMWORD PTR[96+rbp]
+ movdqa xmm6,XMMWORD[96+rbp]
ror r13d,6
and r15d,edi
pslldq xmm7,8
@@ -2413,9 +2416,9 @@ DB 102,15,58,15,249,4
paddd xmm6,xmm3
mov r13d,r8d
add r14d,eax
- movdqa XMMWORD PTR[48+rsp],xmm6
- cmp BYTE PTR[131+rbp],0
- jne $L$ssse3_00_47
+ movdqa XMMWORD[48+rsp],xmm6
+ cmp BYTE[131+rbp],0
+ jne NEAR $L$ssse3_00_47
ror r13d,14
mov eax,r14d
mov r12d,r9d
@@ -2426,7 +2429,7 @@ DB 102,15,58,15,249,4
xor r14d,eax
and r12d,r8d
xor r13d,r8d
- add r11d,DWORD PTR[rsp]
+ add r11d,DWORD[rsp]
mov r15d,eax
xor r12d,r10d
ror r14d,11
@@ -2452,7 +2455,7 @@ DB 102,15,58,15,249,4
xor r14d,r11d
and r12d,edx
xor r13d,edx
- add r10d,DWORD PTR[4+rsp]
+ add r10d,DWORD[4+rsp]
mov edi,r11d
xor r12d,r9d
ror r14d,11
@@ -2478,7 +2481,7 @@ DB 102,15,58,15,249,4
xor r14d,r10d
and r12d,ecx
xor r13d,ecx
- add r9d,DWORD PTR[8+rsp]
+ add r9d,DWORD[8+rsp]
mov r15d,r10d
xor r12d,r8d
ror r14d,11
@@ -2504,7 +2507,7 @@ DB 102,15,58,15,249,4
xor r14d,r9d
and r12d,ebx
xor r13d,ebx
- add r8d,DWORD PTR[12+rsp]
+ add r8d,DWORD[12+rsp]
mov edi,r9d
xor r12d,edx
ror r14d,11
@@ -2530,7 +2533,7 @@ DB 102,15,58,15,249,4
xor r14d,r8d
and r12d,eax
xor r13d,eax
- add edx,DWORD PTR[16+rsp]
+ add edx,DWORD[16+rsp]
mov r15d,r8d
xor r12d,ecx
ror r14d,11
@@ -2556,7 +2559,7 @@ DB 102,15,58,15,249,4
xor r14d,edx
and r12d,r11d
xor r13d,r11d
- add ecx,DWORD PTR[20+rsp]
+ add ecx,DWORD[20+rsp]
mov edi,edx
xor r12d,ebx
ror r14d,11
@@ -2582,7 +2585,7 @@ DB 102,15,58,15,249,4
xor r14d,ecx
and r12d,r10d
xor r13d,r10d
- add ebx,DWORD PTR[24+rsp]
+ add ebx,DWORD[24+rsp]
mov r15d,ecx
xor r12d,eax
ror r14d,11
@@ -2608,7 +2611,7 @@ DB 102,15,58,15,249,4
xor r14d,ebx
and r12d,r9d
xor r13d,r9d
- add eax,DWORD PTR[28+rsp]
+ add eax,DWORD[28+rsp]
mov edi,ebx
xor r12d,r11d
ror r14d,11
@@ -2634,7 +2637,7 @@ DB 102,15,58,15,249,4
xor r14d,eax
and r12d,r8d
xor r13d,r8d
- add r11d,DWORD PTR[32+rsp]
+ add r11d,DWORD[32+rsp]
mov r15d,eax
xor r12d,r10d
ror r14d,11
@@ -2660,7 +2663,7 @@ DB 102,15,58,15,249,4
xor r14d,r11d
and r12d,edx
xor r13d,edx
- add r10d,DWORD PTR[36+rsp]
+ add r10d,DWORD[36+rsp]
mov edi,r11d
xor r12d,r9d
ror r14d,11
@@ -2686,7 +2689,7 @@ DB 102,15,58,15,249,4
xor r14d,r10d
and r12d,ecx
xor r13d,ecx
- add r9d,DWORD PTR[40+rsp]
+ add r9d,DWORD[40+rsp]
mov r15d,r10d
xor r12d,r8d
ror r14d,11
@@ -2712,7 +2715,7 @@ DB 102,15,58,15,249,4
xor r14d,r9d
and r12d,ebx
xor r13d,ebx
- add r8d,DWORD PTR[44+rsp]
+ add r8d,DWORD[44+rsp]
mov edi,r9d
xor r12d,edx
ror r14d,11
@@ -2738,7 +2741,7 @@ DB 102,15,58,15,249,4
xor r14d,r8d
and r12d,eax
xor r13d,eax
- add edx,DWORD PTR[48+rsp]
+ add edx,DWORD[48+rsp]
mov r15d,r8d
xor r12d,ecx
ror r14d,11
@@ -2764,7 +2767,7 @@ DB 102,15,58,15,249,4
xor r14d,edx
and r12d,r11d
xor r13d,r11d
- add ecx,DWORD PTR[52+rsp]
+ add ecx,DWORD[52+rsp]
mov edi,edx
xor r12d,ebx
ror r14d,11
@@ -2790,7 +2793,7 @@ DB 102,15,58,15,249,4
xor r14d,ecx
and r12d,r10d
xor r13d,r10d
- add ebx,DWORD PTR[56+rsp]
+ add ebx,DWORD[56+rsp]
mov r15d,ecx
xor r12d,eax
ror r14d,11
@@ -2816,7 +2819,7 @@ DB 102,15,58,15,249,4
xor r14d,ebx
and r12d,r9d
xor r13d,r9d
- add eax,DWORD PTR[60+rsp]
+ add eax,DWORD[60+rsp]
mov edi,ebx
xor r12d,r11d
ror r14d,11
@@ -2832,53 +2835,52 @@ DB 102,15,58,15,249,4
add eax,r15d
mov r13d,r8d
add r14d,eax
- mov rdi,QWORD PTR[((64+0))+rsp]
+ mov rdi,QWORD[((64+0))+rsp]
mov eax,r14d
- add eax,DWORD PTR[rdi]
- lea rsi,QWORD PTR[64+rsi]
- add ebx,DWORD PTR[4+rdi]
- add ecx,DWORD PTR[8+rdi]
- add edx,DWORD PTR[12+rdi]
- add r8d,DWORD PTR[16+rdi]
- add r9d,DWORD PTR[20+rdi]
- add r10d,DWORD PTR[24+rdi]
- add r11d,DWORD PTR[28+rdi]
-
- cmp rsi,QWORD PTR[((64+16))+rsp]
-
- mov DWORD PTR[rdi],eax
- mov DWORD PTR[4+rdi],ebx
- mov DWORD PTR[8+rdi],ecx
- mov DWORD PTR[12+rdi],edx
- mov DWORD PTR[16+rdi],r8d
- mov DWORD PTR[20+rdi],r9d
- mov DWORD PTR[24+rdi],r10d
- mov DWORD PTR[28+rdi],r11d
- jb $L$loop_ssse3
-
- mov rsi,QWORD PTR[((64+24))+rsp]
- movaps xmm6,XMMWORD PTR[((64+32))+rsp]
- movaps xmm7,XMMWORD PTR[((64+48))+rsp]
- movaps xmm8,XMMWORD PTR[((64+64))+rsp]
- movaps xmm9,XMMWORD PTR[((64+80))+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$epilogue_ssse3::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ add eax,DWORD[rdi]
+ lea rsi,[64+rsi]
+ add ebx,DWORD[4+rdi]
+ add ecx,DWORD[8+rdi]
+ add edx,DWORD[12+rdi]
+ add r8d,DWORD[16+rdi]
+ add r9d,DWORD[20+rdi]
+ add r10d,DWORD[24+rdi]
+ add r11d,DWORD[28+rdi]
+
+ cmp rsi,QWORD[((64+16))+rsp]
+
+ mov DWORD[rdi],eax
+ mov DWORD[4+rdi],ebx
+ mov DWORD[8+rdi],ecx
+ mov DWORD[12+rdi],edx
+ mov DWORD[16+rdi],r8d
+ mov DWORD[20+rdi],r9d
+ mov DWORD[24+rdi],r10d
+ mov DWORD[28+rdi],r11d
+ jb NEAR $L$loop_ssse3
+
+ mov rsi,QWORD[((64+24))+rsp]
+ movaps xmm6,XMMWORD[((64+32))+rsp]
+ movaps xmm7,XMMWORD[((64+48))+rsp]
+ movaps xmm8,XMMWORD[((64+64))+rsp]
+ movaps xmm9,XMMWORD[((64+80))+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$epilogue_ssse3:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_sha256_block_data_order_ssse3::
-sha256_block_data_order_ssse3 ENDP
-EXTERN __imp_RtlVirtualUnwind:NEAR
+$L$SEH_end_sha256_block_data_order_ssse3:
+EXTERN __imp_RtlVirtualUnwind
ALIGN 16
-se_handler PROC PRIVATE
+se_handler:
push rsi
push rdi
push rbx
@@ -2890,74 +2892,74 @@ 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 rsi,rax
- mov rax,QWORD PTR[((64+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
-
- lea r10,QWORD PTR[$L$epilogue]
+ mov rax,QWORD[((64+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
+
+ lea r10,[$L$epilogue]
cmp rbx,r10
- jb $L$in_prologue
+ jb NEAR $L$in_prologue
- lea rsi,QWORD PTR[((64+32))+rsi]
- lea rdi,QWORD PTR[512+r8]
+ lea rsi,[((64+32))+rsi]
+ lea rdi,[512+r8]
mov ecx,8
- DD 0a548f3fch
+ DD 0xa548f3fc
-$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
@@ -2971,27 +2973,22 @@ $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_sha256_block_data_order
- DD imagerel $L$SEH_end_sha256_block_data_order
- DD imagerel $L$SEH_info_sha256_block_data_order
- DD imagerel $L$SEH_begin_sha256_block_data_order_ssse3
- DD imagerel $L$SEH_end_sha256_block_data_order_ssse3
- DD imagerel $L$SEH_info_sha256_block_data_order_ssse3
-.pdata ENDS
-.xdata SEGMENT READONLY ALIGN(8)
+ DD $L$SEH_begin_sha256_block_data_order wrt ..imagebase
+ DD $L$SEH_end_sha256_block_data_order wrt ..imagebase
+ DD $L$SEH_info_sha256_block_data_order wrt ..imagebase
+ DD $L$SEH_begin_sha256_block_data_order_ssse3 wrt ..imagebase
+ DD $L$SEH_end_sha256_block_data_order_ssse3 wrt ..imagebase
+ DD $L$SEH_info_sha256_block_data_order_ssse3 wrt ..imagebase
+section .xdata rdata align=8
ALIGN 8
-$L$SEH_info_sha256_block_data_order::
+$L$SEH_info_sha256_block_data_order:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$prologue,imagerel $L$epilogue
-$L$SEH_info_sha256_block_data_order_ssse3::
+ DD se_handler wrt ..imagebase
+ DD $L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase
+$L$SEH_info_sha256_block_data_order_ssse3:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$prologue_ssse3,imagerel $L$epilogue_ssse3
-
-.xdata ENDS
-END
+ DD se_handler wrt ..imagebase
+ DD $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase
diff --git a/win-x86_64/crypto/sha/sha512-x86_64.asm b/win-x86_64/crypto/sha/sha512-x86_64.asm
index e993c3c..b76cc0e 100644
--- a/win-x86_64/crypto/sha/sha512-x86_64.asm
+++ b/win-x86_64/crypto/sha/sha512-x86_64.asm
@@ -1,15 +1,19 @@
-OPTION DOTNAME
-.text$ SEGMENT ALIGN(256) 'CODE'
+default rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section .text code align=64
-EXTERN OPENSSL_ia32cap_P:NEAR
-PUBLIC sha512_block_data_order
+
+EXTERN OPENSSL_ia32cap_P
+global sha512_block_data_order
ALIGN 16
-sha512_block_data_order PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
+sha512_block_data_order:
+ mov QWORD[8+rsp],rdi ;WIN64 prologue
+ mov QWORD[16+rsp],rsi
mov rax,rsp
-$L$SEH_begin_sha512_block_data_order::
+$L$SEH_begin_sha512_block_data_order:
mov rdi,rcx
mov rsi,rdx
mov rdx,r8
@@ -24,30 +28,30 @@ $L$SEH_begin_sha512_block_data_order::
mov r11,rsp
shl rdx,4
sub rsp,16*8+4*8
- lea rdx,QWORD PTR[rdx*8+rsi]
+ lea rdx,[rdx*8+rsi]
and rsp,-64
- mov QWORD PTR[((128+0))+rsp],rdi
- mov QWORD PTR[((128+8))+rsp],rsi
- mov QWORD PTR[((128+16))+rsp],rdx
- mov QWORD PTR[((128+24))+rsp],r11
-$L$prologue::
-
- mov rax,QWORD PTR[rdi]
- mov rbx,QWORD PTR[8+rdi]
- mov rcx,QWORD PTR[16+rdi]
- mov rdx,QWORD PTR[24+rdi]
- mov r8,QWORD PTR[32+rdi]
- mov r9,QWORD PTR[40+rdi]
- mov r10,QWORD PTR[48+rdi]
- mov r11,QWORD PTR[56+rdi]
- jmp $L$loop
+ mov QWORD[((128+0))+rsp],rdi
+ mov QWORD[((128+8))+rsp],rsi
+ mov QWORD[((128+16))+rsp],rdx
+ mov QWORD[((128+24))+rsp],r11
+$L$prologue:
+
+ mov rax,QWORD[rdi]
+ mov rbx,QWORD[8+rdi]
+ mov rcx,QWORD[16+rdi]
+ mov rdx,QWORD[24+rdi]
+ mov r8,QWORD[32+rdi]
+ mov r9,QWORD[40+rdi]
+ mov r10,QWORD[48+rdi]
+ mov r11,QWORD[56+rdi]
+ jmp NEAR $L$loop
ALIGN 16
-$L$loop::
+$L$loop:
mov rdi,rbx
- lea rbp,QWORD PTR[K512]
+ lea rbp,[K512]
xor rdi,rcx
- mov r12,QWORD PTR[rsi]
+ mov r12,QWORD[rsi]
mov r13,r8
mov r14,rax
bswap r12
@@ -58,7 +62,7 @@ $L$loop::
ror r14,5
xor r15,r10
- mov QWORD PTR[rsp],r12
+ mov QWORD[rsp],r12
xor r14,rax
and r15,r8
@@ -71,7 +75,7 @@ $L$loop::
add r12,r15
mov r15,rax
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,rax
xor r15,rbx
@@ -86,9 +90,9 @@ $L$loop::
add rdx,r12
add r11,r12
- lea rbp,QWORD PTR[8+rbp]
+ lea rbp,[8+rbp]
add r11,r14
- mov r12,QWORD PTR[8+rsi]
+ mov r12,QWORD[8+rsi]
mov r13,rdx
mov r14,r11
bswap r12
@@ -99,7 +103,7 @@ $L$loop::
ror r14,5
xor rdi,r9
- mov QWORD PTR[8+rsp],r12
+ mov QWORD[8+rsp],r12
xor r14,r11
and rdi,rdx
@@ -112,7 +116,7 @@ $L$loop::
add r12,rdi
mov rdi,r11
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,r11
xor rdi,rax
@@ -127,9 +131,9 @@ $L$loop::
add rcx,r12
add r10,r12
- lea rbp,QWORD PTR[24+rbp]
+ lea rbp,[24+rbp]
add r10,r14
- mov r12,QWORD PTR[16+rsi]
+ mov r12,QWORD[16+rsi]
mov r13,rcx
mov r14,r10
bswap r12
@@ -140,7 +144,7 @@ $L$loop::
ror r14,5
xor r15,r8
- mov QWORD PTR[16+rsp],r12
+ mov QWORD[16+rsp],r12
xor r14,r10
and r15,rcx
@@ -153,7 +157,7 @@ $L$loop::
add r12,r15
mov r15,r10
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,r10
xor r15,r11
@@ -168,9 +172,9 @@ $L$loop::
add rbx,r12
add r9,r12
- lea rbp,QWORD PTR[8+rbp]
+ lea rbp,[8+rbp]
add r9,r14
- mov r12,QWORD PTR[24+rsi]
+ mov r12,QWORD[24+rsi]
mov r13,rbx
mov r14,r9
bswap r12
@@ -181,7 +185,7 @@ $L$loop::
ror r14,5
xor rdi,rdx
- mov QWORD PTR[24+rsp],r12
+ mov QWORD[24+rsp],r12
xor r14,r9
and rdi,rbx
@@ -194,7 +198,7 @@ $L$loop::
add r12,rdi
mov rdi,r9
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,r9
xor rdi,r10
@@ -209,9 +213,9 @@ $L$loop::
add rax,r12
add r8,r12
- lea rbp,QWORD PTR[24+rbp]
+ lea rbp,[24+rbp]
add r8,r14
- mov r12,QWORD PTR[32+rsi]
+ mov r12,QWORD[32+rsi]
mov r13,rax
mov r14,r8
bswap r12
@@ -222,7 +226,7 @@ $L$loop::
ror r14,5
xor r15,rcx
- mov QWORD PTR[32+rsp],r12
+ mov QWORD[32+rsp],r12
xor r14,r8
and r15,rax
@@ -235,7 +239,7 @@ $L$loop::
add r12,r15
mov r15,r8
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,r8
xor r15,r9
@@ -250,9 +254,9 @@ $L$loop::
add r11,r12
add rdx,r12
- lea rbp,QWORD PTR[8+rbp]
+ lea rbp,[8+rbp]
add rdx,r14
- mov r12,QWORD PTR[40+rsi]
+ mov r12,QWORD[40+rsi]
mov r13,r11
mov r14,rdx
bswap r12
@@ -263,7 +267,7 @@ $L$loop::
ror r14,5
xor rdi,rbx
- mov QWORD PTR[40+rsp],r12
+ mov QWORD[40+rsp],r12
xor r14,rdx
and rdi,r11
@@ -276,7 +280,7 @@ $L$loop::
add r12,rdi
mov rdi,rdx
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,rdx
xor rdi,r8
@@ -291,9 +295,9 @@ $L$loop::
add r10,r12
add rcx,r12
- lea rbp,QWORD PTR[24+rbp]
+ lea rbp,[24+rbp]
add rcx,r14
- mov r12,QWORD PTR[48+rsi]
+ mov r12,QWORD[48+rsi]
mov r13,r10
mov r14,rcx
bswap r12
@@ -304,7 +308,7 @@ $L$loop::
ror r14,5
xor r15,rax
- mov QWORD PTR[48+rsp],r12
+ mov QWORD[48+rsp],r12
xor r14,rcx
and r15,r10
@@ -317,7 +321,7 @@ $L$loop::
add r12,r15
mov r15,rcx
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,rcx
xor r15,rdx
@@ -332,9 +336,9 @@ $L$loop::
add r9,r12
add rbx,r12
- lea rbp,QWORD PTR[8+rbp]
+ lea rbp,[8+rbp]
add rbx,r14
- mov r12,QWORD PTR[56+rsi]
+ mov r12,QWORD[56+rsi]
mov r13,r9
mov r14,rbx
bswap r12
@@ -345,7 +349,7 @@ $L$loop::
ror r14,5
xor rdi,r11
- mov QWORD PTR[56+rsp],r12
+ mov QWORD[56+rsp],r12
xor r14,rbx
and rdi,r9
@@ -358,7 +362,7 @@ $L$loop::
add r12,rdi
mov rdi,rbx
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,rbx
xor rdi,rcx
@@ -373,9 +377,9 @@ $L$loop::
add r8,r12
add rax,r12
- lea rbp,QWORD PTR[24+rbp]
+ lea rbp,[24+rbp]
add rax,r14
- mov r12,QWORD PTR[64+rsi]
+ mov r12,QWORD[64+rsi]
mov r13,r8
mov r14,rax
bswap r12
@@ -386,7 +390,7 @@ $L$loop::
ror r14,5
xor r15,r10
- mov QWORD PTR[64+rsp],r12
+ mov QWORD[64+rsp],r12
xor r14,rax
and r15,r8
@@ -399,7 +403,7 @@ $L$loop::
add r12,r15
mov r15,rax
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,rax
xor r15,rbx
@@ -414,9 +418,9 @@ $L$loop::
add rdx,r12
add r11,r12
- lea rbp,QWORD PTR[8+rbp]
+ lea rbp,[8+rbp]
add r11,r14
- mov r12,QWORD PTR[72+rsi]
+ mov r12,QWORD[72+rsi]
mov r13,rdx
mov r14,r11
bswap r12
@@ -427,7 +431,7 @@ $L$loop::
ror r14,5
xor rdi,r9
- mov QWORD PTR[72+rsp],r12
+ mov QWORD[72+rsp],r12
xor r14,r11
and rdi,rdx
@@ -440,7 +444,7 @@ $L$loop::
add r12,rdi
mov rdi,r11
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,r11
xor rdi,rax
@@ -455,9 +459,9 @@ $L$loop::
add rcx,r12
add r10,r12
- lea rbp,QWORD PTR[24+rbp]
+ lea rbp,[24+rbp]
add r10,r14
- mov r12,QWORD PTR[80+rsi]
+ mov r12,QWORD[80+rsi]
mov r13,rcx
mov r14,r10
bswap r12
@@ -468,7 +472,7 @@ $L$loop::
ror r14,5
xor r15,r8
- mov QWORD PTR[80+rsp],r12
+ mov QWORD[80+rsp],r12
xor r14,r10
and r15,rcx
@@ -481,7 +485,7 @@ $L$loop::
add r12,r15
mov r15,r10
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,r10
xor r15,r11
@@ -496,9 +500,9 @@ $L$loop::
add rbx,r12
add r9,r12
- lea rbp,QWORD PTR[8+rbp]
+ lea rbp,[8+rbp]
add r9,r14
- mov r12,QWORD PTR[88+rsi]
+ mov r12,QWORD[88+rsi]
mov r13,rbx
mov r14,r9
bswap r12
@@ -509,7 +513,7 @@ $L$loop::
ror r14,5
xor rdi,rdx
- mov QWORD PTR[88+rsp],r12
+ mov QWORD[88+rsp],r12
xor r14,r9
and rdi,rbx
@@ -522,7 +526,7 @@ $L$loop::
add r12,rdi
mov rdi,r9
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,r9
xor rdi,r10
@@ -537,9 +541,9 @@ $L$loop::
add rax,r12
add r8,r12
- lea rbp,QWORD PTR[24+rbp]
+ lea rbp,[24+rbp]
add r8,r14
- mov r12,QWORD PTR[96+rsi]
+ mov r12,QWORD[96+rsi]
mov r13,rax
mov r14,r8
bswap r12
@@ -550,7 +554,7 @@ $L$loop::
ror r14,5
xor r15,rcx
- mov QWORD PTR[96+rsp],r12
+ mov QWORD[96+rsp],r12
xor r14,r8
and r15,rax
@@ -563,7 +567,7 @@ $L$loop::
add r12,r15
mov r15,r8
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,r8
xor r15,r9
@@ -578,9 +582,9 @@ $L$loop::
add r11,r12
add rdx,r12
- lea rbp,QWORD PTR[8+rbp]
+ lea rbp,[8+rbp]
add rdx,r14
- mov r12,QWORD PTR[104+rsi]
+ mov r12,QWORD[104+rsi]
mov r13,r11
mov r14,rdx
bswap r12
@@ -591,7 +595,7 @@ $L$loop::
ror r14,5
xor rdi,rbx
- mov QWORD PTR[104+rsp],r12
+ mov QWORD[104+rsp],r12
xor r14,rdx
and rdi,r11
@@ -604,7 +608,7 @@ $L$loop::
add r12,rdi
mov rdi,rdx
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,rdx
xor rdi,r8
@@ -619,9 +623,9 @@ $L$loop::
add r10,r12
add rcx,r12
- lea rbp,QWORD PTR[24+rbp]
+ lea rbp,[24+rbp]
add rcx,r14
- mov r12,QWORD PTR[112+rsi]
+ mov r12,QWORD[112+rsi]
mov r13,r10
mov r14,rcx
bswap r12
@@ -632,7 +636,7 @@ $L$loop::
ror r14,5
xor r15,rax
- mov QWORD PTR[112+rsp],r12
+ mov QWORD[112+rsp],r12
xor r14,rcx
and r15,r10
@@ -645,7 +649,7 @@ $L$loop::
add r12,r15
mov r15,rcx
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,rcx
xor r15,rdx
@@ -660,9 +664,9 @@ $L$loop::
add r9,r12
add rbx,r12
- lea rbp,QWORD PTR[8+rbp]
+ lea rbp,[8+rbp]
add rbx,r14
- mov r12,QWORD PTR[120+rsi]
+ mov r12,QWORD[120+rsi]
mov r13,r9
mov r14,rbx
bswap r12
@@ -673,7 +677,7 @@ $L$loop::
ror r14,5
xor rdi,r11
- mov QWORD PTR[120+rsp],r12
+ mov QWORD[120+rsp],r12
xor r14,rbx
and rdi,r9
@@ -686,7 +690,7 @@ $L$loop::
add r12,rdi
mov rdi,rbx
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,rbx
xor rdi,rcx
@@ -701,12 +705,12 @@ $L$loop::
add r8,r12
add rax,r12
- lea rbp,QWORD PTR[24+rbp]
- jmp $L$rounds_16_xx
+ lea rbp,[24+rbp]
+ jmp NEAR $L$rounds_16_xx
ALIGN 16
-$L$rounds_16_xx::
- mov r13,QWORD PTR[8+rsp]
- mov r15,QWORD PTR[112+rsp]
+$L$rounds_16_xx:
+ mov r13,QWORD[8+rsp]
+ mov r15,QWORD[112+rsp]
mov r12,r13
ror r13,7
@@ -723,9 +727,9 @@ $L$rounds_16_xx::
ror r15,19
xor r12,r13
xor r15,r14
- add r12,QWORD PTR[72+rsp]
+ add r12,QWORD[72+rsp]
- add r12,QWORD PTR[rsp]
+ add r12,QWORD[rsp]
mov r13,r8
add r12,r15
mov r14,rax
@@ -736,7 +740,7 @@ $L$rounds_16_xx::
ror r14,5
xor r15,r10
- mov QWORD PTR[rsp],r12
+ mov QWORD[rsp],r12
xor r14,rax
and r15,r8
@@ -749,7 +753,7 @@ $L$rounds_16_xx::
add r12,r15
mov r15,rax
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,rax
xor r15,rbx
@@ -764,9 +768,9 @@ $L$rounds_16_xx::
add rdx,r12
add r11,r12
- lea rbp,QWORD PTR[8+rbp]
- mov r13,QWORD PTR[16+rsp]
- mov rdi,QWORD PTR[120+rsp]
+ lea rbp,[8+rbp]
+ mov r13,QWORD[16+rsp]
+ mov rdi,QWORD[120+rsp]
mov r12,r13
ror r13,7
@@ -783,9 +787,9 @@ $L$rounds_16_xx::
ror rdi,19
xor r12,r13
xor rdi,r14
- add r12,QWORD PTR[80+rsp]
+ add r12,QWORD[80+rsp]
- add r12,QWORD PTR[8+rsp]
+ add r12,QWORD[8+rsp]
mov r13,rdx
add r12,rdi
mov r14,r11
@@ -796,7 +800,7 @@ $L$rounds_16_xx::
ror r14,5
xor rdi,r9
- mov QWORD PTR[8+rsp],r12
+ mov QWORD[8+rsp],r12
xor r14,r11
and rdi,rdx
@@ -809,7 +813,7 @@ $L$rounds_16_xx::
add r12,rdi
mov rdi,r11
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,r11
xor rdi,rax
@@ -824,9 +828,9 @@ $L$rounds_16_xx::
add rcx,r12
add r10,r12
- lea rbp,QWORD PTR[24+rbp]
- mov r13,QWORD PTR[24+rsp]
- mov r15,QWORD PTR[rsp]
+ lea rbp,[24+rbp]
+ mov r13,QWORD[24+rsp]
+ mov r15,QWORD[rsp]
mov r12,r13
ror r13,7
@@ -843,9 +847,9 @@ $L$rounds_16_xx::
ror r15,19
xor r12,r13
xor r15,r14
- add r12,QWORD PTR[88+rsp]
+ add r12,QWORD[88+rsp]
- add r12,QWORD PTR[16+rsp]
+ add r12,QWORD[16+rsp]
mov r13,rcx
add r12,r15
mov r14,r10
@@ -856,7 +860,7 @@ $L$rounds_16_xx::
ror r14,5
xor r15,r8
- mov QWORD PTR[16+rsp],r12
+ mov QWORD[16+rsp],r12
xor r14,r10
and r15,rcx
@@ -869,7 +873,7 @@ $L$rounds_16_xx::
add r12,r15
mov r15,r10
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,r10
xor r15,r11
@@ -884,9 +888,9 @@ $L$rounds_16_xx::
add rbx,r12
add r9,r12
- lea rbp,QWORD PTR[8+rbp]
- mov r13,QWORD PTR[32+rsp]
- mov rdi,QWORD PTR[8+rsp]
+ lea rbp,[8+rbp]
+ mov r13,QWORD[32+rsp]
+ mov rdi,QWORD[8+rsp]
mov r12,r13
ror r13,7
@@ -903,9 +907,9 @@ $L$rounds_16_xx::
ror rdi,19
xor r12,r13
xor rdi,r14
- add r12,QWORD PTR[96+rsp]
+ add r12,QWORD[96+rsp]
- add r12,QWORD PTR[24+rsp]
+ add r12,QWORD[24+rsp]
mov r13,rbx
add r12,rdi
mov r14,r9
@@ -916,7 +920,7 @@ $L$rounds_16_xx::
ror r14,5
xor rdi,rdx
- mov QWORD PTR[24+rsp],r12
+ mov QWORD[24+rsp],r12
xor r14,r9
and rdi,rbx
@@ -929,7 +933,7 @@ $L$rounds_16_xx::
add r12,rdi
mov rdi,r9
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,r9
xor rdi,r10
@@ -944,9 +948,9 @@ $L$rounds_16_xx::
add rax,r12
add r8,r12
- lea rbp,QWORD PTR[24+rbp]
- mov r13,QWORD PTR[40+rsp]
- mov r15,QWORD PTR[16+rsp]
+ lea rbp,[24+rbp]
+ mov r13,QWORD[40+rsp]
+ mov r15,QWORD[16+rsp]
mov r12,r13
ror r13,7
@@ -963,9 +967,9 @@ $L$rounds_16_xx::
ror r15,19
xor r12,r13
xor r15,r14
- add r12,QWORD PTR[104+rsp]
+ add r12,QWORD[104+rsp]
- add r12,QWORD PTR[32+rsp]
+ add r12,QWORD[32+rsp]
mov r13,rax
add r12,r15
mov r14,r8
@@ -976,7 +980,7 @@ $L$rounds_16_xx::
ror r14,5
xor r15,rcx
- mov QWORD PTR[32+rsp],r12
+ mov QWORD[32+rsp],r12
xor r14,r8
and r15,rax
@@ -989,7 +993,7 @@ $L$rounds_16_xx::
add r12,r15
mov r15,r8
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,r8
xor r15,r9
@@ -1004,9 +1008,9 @@ $L$rounds_16_xx::
add r11,r12
add rdx,r12
- lea rbp,QWORD PTR[8+rbp]
- mov r13,QWORD PTR[48+rsp]
- mov rdi,QWORD PTR[24+rsp]
+ lea rbp,[8+rbp]
+ mov r13,QWORD[48+rsp]
+ mov rdi,QWORD[24+rsp]
mov r12,r13
ror r13,7
@@ -1023,9 +1027,9 @@ $L$rounds_16_xx::
ror rdi,19
xor r12,r13
xor rdi,r14
- add r12,QWORD PTR[112+rsp]
+ add r12,QWORD[112+rsp]
- add r12,QWORD PTR[40+rsp]
+ add r12,QWORD[40+rsp]
mov r13,r11
add r12,rdi
mov r14,rdx
@@ -1036,7 +1040,7 @@ $L$rounds_16_xx::
ror r14,5
xor rdi,rbx
- mov QWORD PTR[40+rsp],r12
+ mov QWORD[40+rsp],r12
xor r14,rdx
and rdi,r11
@@ -1049,7 +1053,7 @@ $L$rounds_16_xx::
add r12,rdi
mov rdi,rdx
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,rdx
xor rdi,r8
@@ -1064,9 +1068,9 @@ $L$rounds_16_xx::
add r10,r12
add rcx,r12
- lea rbp,QWORD PTR[24+rbp]
- mov r13,QWORD PTR[56+rsp]
- mov r15,QWORD PTR[32+rsp]
+ lea rbp,[24+rbp]
+ mov r13,QWORD[56+rsp]
+ mov r15,QWORD[32+rsp]
mov r12,r13
ror r13,7
@@ -1083,9 +1087,9 @@ $L$rounds_16_xx::
ror r15,19
xor r12,r13
xor r15,r14
- add r12,QWORD PTR[120+rsp]
+ add r12,QWORD[120+rsp]
- add r12,QWORD PTR[48+rsp]
+ add r12,QWORD[48+rsp]
mov r13,r10
add r12,r15
mov r14,rcx
@@ -1096,7 +1100,7 @@ $L$rounds_16_xx::
ror r14,5
xor r15,rax
- mov QWORD PTR[48+rsp],r12
+ mov QWORD[48+rsp],r12
xor r14,rcx
and r15,r10
@@ -1109,7 +1113,7 @@ $L$rounds_16_xx::
add r12,r15
mov r15,rcx
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,rcx
xor r15,rdx
@@ -1124,9 +1128,9 @@ $L$rounds_16_xx::
add r9,r12
add rbx,r12
- lea rbp,QWORD PTR[8+rbp]
- mov r13,QWORD PTR[64+rsp]
- mov rdi,QWORD PTR[40+rsp]
+ lea rbp,[8+rbp]
+ mov r13,QWORD[64+rsp]
+ mov rdi,QWORD[40+rsp]
mov r12,r13
ror r13,7
@@ -1143,9 +1147,9 @@ $L$rounds_16_xx::
ror rdi,19
xor r12,r13
xor rdi,r14
- add r12,QWORD PTR[rsp]
+ add r12,QWORD[rsp]
- add r12,QWORD PTR[56+rsp]
+ add r12,QWORD[56+rsp]
mov r13,r9
add r12,rdi
mov r14,rbx
@@ -1156,7 +1160,7 @@ $L$rounds_16_xx::
ror r14,5
xor rdi,r11
- mov QWORD PTR[56+rsp],r12
+ mov QWORD[56+rsp],r12
xor r14,rbx
and rdi,r9
@@ -1169,7 +1173,7 @@ $L$rounds_16_xx::
add r12,rdi
mov rdi,rbx
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,rbx
xor rdi,rcx
@@ -1184,9 +1188,9 @@ $L$rounds_16_xx::
add r8,r12
add rax,r12
- lea rbp,QWORD PTR[24+rbp]
- mov r13,QWORD PTR[72+rsp]
- mov r15,QWORD PTR[48+rsp]
+ lea rbp,[24+rbp]
+ mov r13,QWORD[72+rsp]
+ mov r15,QWORD[48+rsp]
mov r12,r13
ror r13,7
@@ -1203,9 +1207,9 @@ $L$rounds_16_xx::
ror r15,19
xor r12,r13
xor r15,r14
- add r12,QWORD PTR[8+rsp]
+ add r12,QWORD[8+rsp]
- add r12,QWORD PTR[64+rsp]
+ add r12,QWORD[64+rsp]
mov r13,r8
add r12,r15
mov r14,rax
@@ -1216,7 +1220,7 @@ $L$rounds_16_xx::
ror r14,5
xor r15,r10
- mov QWORD PTR[64+rsp],r12
+ mov QWORD[64+rsp],r12
xor r14,rax
and r15,r8
@@ -1229,7 +1233,7 @@ $L$rounds_16_xx::
add r12,r15
mov r15,rax
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,rax
xor r15,rbx
@@ -1244,9 +1248,9 @@ $L$rounds_16_xx::
add rdx,r12
add r11,r12
- lea rbp,QWORD PTR[8+rbp]
- mov r13,QWORD PTR[80+rsp]
- mov rdi,QWORD PTR[56+rsp]
+ lea rbp,[8+rbp]
+ mov r13,QWORD[80+rsp]
+ mov rdi,QWORD[56+rsp]
mov r12,r13
ror r13,7
@@ -1263,9 +1267,9 @@ $L$rounds_16_xx::
ror rdi,19
xor r12,r13
xor rdi,r14
- add r12,QWORD PTR[16+rsp]
+ add r12,QWORD[16+rsp]
- add r12,QWORD PTR[72+rsp]
+ add r12,QWORD[72+rsp]
mov r13,rdx
add r12,rdi
mov r14,r11
@@ -1276,7 +1280,7 @@ $L$rounds_16_xx::
ror r14,5
xor rdi,r9
- mov QWORD PTR[72+rsp],r12
+ mov QWORD[72+rsp],r12
xor r14,r11
and rdi,rdx
@@ -1289,7 +1293,7 @@ $L$rounds_16_xx::
add r12,rdi
mov rdi,r11
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,r11
xor rdi,rax
@@ -1304,9 +1308,9 @@ $L$rounds_16_xx::
add rcx,r12
add r10,r12
- lea rbp,QWORD PTR[24+rbp]
- mov r13,QWORD PTR[88+rsp]
- mov r15,QWORD PTR[64+rsp]
+ lea rbp,[24+rbp]
+ mov r13,QWORD[88+rsp]
+ mov r15,QWORD[64+rsp]
mov r12,r13
ror r13,7
@@ -1323,9 +1327,9 @@ $L$rounds_16_xx::
ror r15,19
xor r12,r13
xor r15,r14
- add r12,QWORD PTR[24+rsp]
+ add r12,QWORD[24+rsp]
- add r12,QWORD PTR[80+rsp]
+ add r12,QWORD[80+rsp]
mov r13,rcx
add r12,r15
mov r14,r10
@@ -1336,7 +1340,7 @@ $L$rounds_16_xx::
ror r14,5
xor r15,r8
- mov QWORD PTR[80+rsp],r12
+ mov QWORD[80+rsp],r12
xor r14,r10
and r15,rcx
@@ -1349,7 +1353,7 @@ $L$rounds_16_xx::
add r12,r15
mov r15,r10
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,r10
xor r15,r11
@@ -1364,9 +1368,9 @@ $L$rounds_16_xx::
add rbx,r12
add r9,r12
- lea rbp,QWORD PTR[8+rbp]
- mov r13,QWORD PTR[96+rsp]
- mov rdi,QWORD PTR[72+rsp]
+ lea rbp,[8+rbp]
+ mov r13,QWORD[96+rsp]
+ mov rdi,QWORD[72+rsp]
mov r12,r13
ror r13,7
@@ -1383,9 +1387,9 @@ $L$rounds_16_xx::
ror rdi,19
xor r12,r13
xor rdi,r14
- add r12,QWORD PTR[32+rsp]
+ add r12,QWORD[32+rsp]
- add r12,QWORD PTR[88+rsp]
+ add r12,QWORD[88+rsp]
mov r13,rbx
add r12,rdi
mov r14,r9
@@ -1396,7 +1400,7 @@ $L$rounds_16_xx::
ror r14,5
xor rdi,rdx
- mov QWORD PTR[88+rsp],r12
+ mov QWORD[88+rsp],r12
xor r14,r9
and rdi,rbx
@@ -1409,7 +1413,7 @@ $L$rounds_16_xx::
add r12,rdi
mov rdi,r9
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,r9
xor rdi,r10
@@ -1424,9 +1428,9 @@ $L$rounds_16_xx::
add rax,r12
add r8,r12
- lea rbp,QWORD PTR[24+rbp]
- mov r13,QWORD PTR[104+rsp]
- mov r15,QWORD PTR[80+rsp]
+ lea rbp,[24+rbp]
+ mov r13,QWORD[104+rsp]
+ mov r15,QWORD[80+rsp]
mov r12,r13
ror r13,7
@@ -1443,9 +1447,9 @@ $L$rounds_16_xx::
ror r15,19
xor r12,r13
xor r15,r14
- add r12,QWORD PTR[40+rsp]
+ add r12,QWORD[40+rsp]
- add r12,QWORD PTR[96+rsp]
+ add r12,QWORD[96+rsp]
mov r13,rax
add r12,r15
mov r14,r8
@@ -1456,7 +1460,7 @@ $L$rounds_16_xx::
ror r14,5
xor r15,rcx
- mov QWORD PTR[96+rsp],r12
+ mov QWORD[96+rsp],r12
xor r14,r8
and r15,rax
@@ -1469,7 +1473,7 @@ $L$rounds_16_xx::
add r12,r15
mov r15,r8
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,r8
xor r15,r9
@@ -1484,9 +1488,9 @@ $L$rounds_16_xx::
add r11,r12
add rdx,r12
- lea rbp,QWORD PTR[8+rbp]
- mov r13,QWORD PTR[112+rsp]
- mov rdi,QWORD PTR[88+rsp]
+ lea rbp,[8+rbp]
+ mov r13,QWORD[112+rsp]
+ mov rdi,QWORD[88+rsp]
mov r12,r13
ror r13,7
@@ -1503,9 +1507,9 @@ $L$rounds_16_xx::
ror rdi,19
xor r12,r13
xor rdi,r14
- add r12,QWORD PTR[48+rsp]
+ add r12,QWORD[48+rsp]
- add r12,QWORD PTR[104+rsp]
+ add r12,QWORD[104+rsp]
mov r13,r11
add r12,rdi
mov r14,rdx
@@ -1516,7 +1520,7 @@ $L$rounds_16_xx::
ror r14,5
xor rdi,rbx
- mov QWORD PTR[104+rsp],r12
+ mov QWORD[104+rsp],r12
xor r14,rdx
and rdi,r11
@@ -1529,7 +1533,7 @@ $L$rounds_16_xx::
add r12,rdi
mov rdi,rdx
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,rdx
xor rdi,r8
@@ -1544,9 +1548,9 @@ $L$rounds_16_xx::
add r10,r12
add rcx,r12
- lea rbp,QWORD PTR[24+rbp]
- mov r13,QWORD PTR[120+rsp]
- mov r15,QWORD PTR[96+rsp]
+ lea rbp,[24+rbp]
+ mov r13,QWORD[120+rsp]
+ mov r15,QWORD[96+rsp]
mov r12,r13
ror r13,7
@@ -1563,9 +1567,9 @@ $L$rounds_16_xx::
ror r15,19
xor r12,r13
xor r15,r14
- add r12,QWORD PTR[56+rsp]
+ add r12,QWORD[56+rsp]
- add r12,QWORD PTR[112+rsp]
+ add r12,QWORD[112+rsp]
mov r13,r10
add r12,r15
mov r14,rcx
@@ -1576,7 +1580,7 @@ $L$rounds_16_xx::
ror r14,5
xor r15,rax
- mov QWORD PTR[112+rsp],r12
+ mov QWORD[112+rsp],r12
xor r14,rcx
and r15,r10
@@ -1589,7 +1593,7 @@ $L$rounds_16_xx::
add r12,r15
mov r15,rcx
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,rcx
xor r15,rdx
@@ -1604,9 +1608,9 @@ $L$rounds_16_xx::
add r9,r12
add rbx,r12
- lea rbp,QWORD PTR[8+rbp]
- mov r13,QWORD PTR[rsp]
- mov rdi,QWORD PTR[104+rsp]
+ lea rbp,[8+rbp]
+ mov r13,QWORD[rsp]
+ mov rdi,QWORD[104+rsp]
mov r12,r13
ror r13,7
@@ -1623,9 +1627,9 @@ $L$rounds_16_xx::
ror rdi,19
xor r12,r13
xor rdi,r14
- add r12,QWORD PTR[64+rsp]
+ add r12,QWORD[64+rsp]
- add r12,QWORD PTR[120+rsp]
+ add r12,QWORD[120+rsp]
mov r13,r9
add r12,rdi
mov r14,rbx
@@ -1636,7 +1640,7 @@ $L$rounds_16_xx::
ror r14,5
xor rdi,r11
- mov QWORD PTR[120+rsp],r12
+ mov QWORD[120+rsp],r12
xor r14,rbx
and rdi,r9
@@ -1649,7 +1653,7 @@ $L$rounds_16_xx::
add r12,rdi
mov rdi,rbx
- add r12,QWORD PTR[rbp]
+ add r12,QWORD[rbp]
xor r14,rbx
xor rdi,rcx
@@ -1664,144 +1668,143 @@ $L$rounds_16_xx::
add r8,r12
add rax,r12
- lea rbp,QWORD PTR[24+rbp]
- cmp BYTE PTR[7+rbp],0
- jnz $L$rounds_16_xx
+ lea rbp,[24+rbp]
+ cmp BYTE[7+rbp],0
+ jnz NEAR $L$rounds_16_xx
- mov rdi,QWORD PTR[((128+0))+rsp]
+ mov rdi,QWORD[((128+0))+rsp]
add rax,r14
- lea rsi,QWORD PTR[128+rsi]
-
- add rax,QWORD PTR[rdi]
- add rbx,QWORD PTR[8+rdi]
- add rcx,QWORD PTR[16+rdi]
- add rdx,QWORD PTR[24+rdi]
- add r8,QWORD PTR[32+rdi]
- add r9,QWORD PTR[40+rdi]
- add r10,QWORD PTR[48+rdi]
- add r11,QWORD PTR[56+rdi]
-
- cmp rsi,QWORD PTR[((128+16))+rsp]
-
- mov QWORD PTR[rdi],rax
- mov QWORD PTR[8+rdi],rbx
- mov QWORD PTR[16+rdi],rcx
- mov QWORD PTR[24+rdi],rdx
- mov QWORD PTR[32+rdi],r8
- mov QWORD PTR[40+rdi],r9
- mov QWORD PTR[48+rdi],r10
- mov QWORD PTR[56+rdi],r11
- jb $L$loop
-
- mov rsi,QWORD PTR[((128+24))+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$epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
+ lea rsi,[128+rsi]
+
+ add rax,QWORD[rdi]
+ add rbx,QWORD[8+rdi]
+ add rcx,QWORD[16+rdi]
+ add rdx,QWORD[24+rdi]
+ add r8,QWORD[32+rdi]
+ add r9,QWORD[40+rdi]
+ add r10,QWORD[48+rdi]
+ add r11,QWORD[56+rdi]
+
+ cmp rsi,QWORD[((128+16))+rsp]
+
+ mov QWORD[rdi],rax
+ mov QWORD[8+rdi],rbx
+ mov QWORD[16+rdi],rcx
+ mov QWORD[24+rdi],rdx
+ mov QWORD[32+rdi],r8
+ mov QWORD[40+rdi],r9
+ mov QWORD[48+rdi],r10
+ mov QWORD[56+rdi],r11
+ jb NEAR $L$loop
+
+ mov rsi,QWORD[((128+24))+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$epilogue:
+ mov rdi,QWORD[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_sha512_block_data_order::
-sha512_block_data_order ENDP
+$L$SEH_end_sha512_block_data_order:
ALIGN 64
-K512::
- DQ 0428a2f98d728ae22h,07137449123ef65cdh
- DQ 0428a2f98d728ae22h,07137449123ef65cdh
- DQ 0b5c0fbcfec4d3b2fh,0e9b5dba58189dbbch
- DQ 0b5c0fbcfec4d3b2fh,0e9b5dba58189dbbch
- DQ 03956c25bf348b538h,059f111f1b605d019h
- DQ 03956c25bf348b538h,059f111f1b605d019h
- DQ 0923f82a4af194f9bh,0ab1c5ed5da6d8118h
- DQ 0923f82a4af194f9bh,0ab1c5ed5da6d8118h
- DQ 0d807aa98a3030242h,012835b0145706fbeh
- DQ 0d807aa98a3030242h,012835b0145706fbeh
- DQ 0243185be4ee4b28ch,0550c7dc3d5ffb4e2h
- DQ 0243185be4ee4b28ch,0550c7dc3d5ffb4e2h
- DQ 072be5d74f27b896fh,080deb1fe3b1696b1h
- DQ 072be5d74f27b896fh,080deb1fe3b1696b1h
- DQ 09bdc06a725c71235h,0c19bf174cf692694h
- DQ 09bdc06a725c71235h,0c19bf174cf692694h
- DQ 0e49b69c19ef14ad2h,0efbe4786384f25e3h
- DQ 0e49b69c19ef14ad2h,0efbe4786384f25e3h
- DQ 00fc19dc68b8cd5b5h,0240ca1cc77ac9c65h
- DQ 00fc19dc68b8cd5b5h,0240ca1cc77ac9c65h
- DQ 02de92c6f592b0275h,04a7484aa6ea6e483h
- DQ 02de92c6f592b0275h,04a7484aa6ea6e483h
- DQ 05cb0a9dcbd41fbd4h,076f988da831153b5h
- DQ 05cb0a9dcbd41fbd4h,076f988da831153b5h
- DQ 0983e5152ee66dfabh,0a831c66d2db43210h
- DQ 0983e5152ee66dfabh,0a831c66d2db43210h
- DQ 0b00327c898fb213fh,0bf597fc7beef0ee4h
- DQ 0b00327c898fb213fh,0bf597fc7beef0ee4h
- DQ 0c6e00bf33da88fc2h,0d5a79147930aa725h
- DQ 0c6e00bf33da88fc2h,0d5a79147930aa725h
- DQ 006ca6351e003826fh,0142929670a0e6e70h
- DQ 006ca6351e003826fh,0142929670a0e6e70h
- DQ 027b70a8546d22ffch,02e1b21385c26c926h
- DQ 027b70a8546d22ffch,02e1b21385c26c926h
- DQ 04d2c6dfc5ac42aedh,053380d139d95b3dfh
- DQ 04d2c6dfc5ac42aedh,053380d139d95b3dfh
- DQ 0650a73548baf63deh,0766a0abb3c77b2a8h
- DQ 0650a73548baf63deh,0766a0abb3c77b2a8h
- DQ 081c2c92e47edaee6h,092722c851482353bh
- DQ 081c2c92e47edaee6h,092722c851482353bh
- DQ 0a2bfe8a14cf10364h,0a81a664bbc423001h
- DQ 0a2bfe8a14cf10364h,0a81a664bbc423001h
- DQ 0c24b8b70d0f89791h,0c76c51a30654be30h
- DQ 0c24b8b70d0f89791h,0c76c51a30654be30h
- DQ 0d192e819d6ef5218h,0d69906245565a910h
- DQ 0d192e819d6ef5218h,0d69906245565a910h
- DQ 0f40e35855771202ah,0106aa07032bbd1b8h
- DQ 0f40e35855771202ah,0106aa07032bbd1b8h
- DQ 019a4c116b8d2d0c8h,01e376c085141ab53h
- DQ 019a4c116b8d2d0c8h,01e376c085141ab53h
- DQ 02748774cdf8eeb99h,034b0bcb5e19b48a8h
- DQ 02748774cdf8eeb99h,034b0bcb5e19b48a8h
- DQ 0391c0cb3c5c95a63h,04ed8aa4ae3418acbh
- DQ 0391c0cb3c5c95a63h,04ed8aa4ae3418acbh
- DQ 05b9cca4f7763e373h,0682e6ff3d6b2b8a3h
- DQ 05b9cca4f7763e373h,0682e6ff3d6b2b8a3h
- DQ 0748f82ee5defb2fch,078a5636f43172f60h
- DQ 0748f82ee5defb2fch,078a5636f43172f60h
- DQ 084c87814a1f0ab72h,08cc702081a6439ech
- DQ 084c87814a1f0ab72h,08cc702081a6439ech
- DQ 090befffa23631e28h,0a4506cebde82bde9h
- DQ 090befffa23631e28h,0a4506cebde82bde9h
- DQ 0bef9a3f7b2c67915h,0c67178f2e372532bh
- DQ 0bef9a3f7b2c67915h,0c67178f2e372532bh
- DQ 0ca273eceea26619ch,0d186b8c721c0c207h
- DQ 0ca273eceea26619ch,0d186b8c721c0c207h
- DQ 0eada7dd6cde0eb1eh,0f57d4f7fee6ed178h
- DQ 0eada7dd6cde0eb1eh,0f57d4f7fee6ed178h
- DQ 006f067aa72176fbah,00a637dc5a2c898a6h
- DQ 006f067aa72176fbah,00a637dc5a2c898a6h
- DQ 0113f9804bef90daeh,01b710b35131c471bh
- DQ 0113f9804bef90daeh,01b710b35131c471bh
- DQ 028db77f523047d84h,032caab7b40c72493h
- DQ 028db77f523047d84h,032caab7b40c72493h
- DQ 03c9ebe0a15c9bebch,0431d67c49c100d4ch
- DQ 03c9ebe0a15c9bebch,0431d67c49c100d4ch
- DQ 04cc5d4becb3e42b6h,0597f299cfc657e2ah
- DQ 04cc5d4becb3e42b6h,0597f299cfc657e2ah
- DQ 05fcb6fab3ad6faech,06c44198c4a475817h
- DQ 05fcb6fab3ad6faech,06c44198c4a475817h
-
- DQ 00001020304050607h,008090a0b0c0d0e0fh
- DQ 00001020304050607h,008090a0b0c0d0e0fh
+K512:
+ DQ 0x428a2f98d728ae22,0x7137449123ef65cd
+ DQ 0x428a2f98d728ae22,0x7137449123ef65cd
+ DQ 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
+ DQ 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
+ DQ 0x3956c25bf348b538,0x59f111f1b605d019
+ DQ 0x3956c25bf348b538,0x59f111f1b605d019
+ DQ 0x923f82a4af194f9b,0xab1c5ed5da6d8118
+ DQ 0x923f82a4af194f9b,0xab1c5ed5da6d8118
+ DQ 0xd807aa98a3030242,0x12835b0145706fbe
+ DQ 0xd807aa98a3030242,0x12835b0145706fbe
+ DQ 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
+ DQ 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
+ DQ 0x72be5d74f27b896f,0x80deb1fe3b1696b1
+ DQ 0x72be5d74f27b896f,0x80deb1fe3b1696b1
+ DQ 0x9bdc06a725c71235,0xc19bf174cf692694
+ DQ 0x9bdc06a725c71235,0xc19bf174cf692694
+ DQ 0xe49b69c19ef14ad2,0xefbe4786384f25e3
+ DQ 0xe49b69c19ef14ad2,0xefbe4786384f25e3
+ DQ 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
+ DQ 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
+ DQ 0x2de92c6f592b0275,0x4a7484aa6ea6e483
+ DQ 0x2de92c6f592b0275,0x4a7484aa6ea6e483
+ DQ 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
+ DQ 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
+ DQ 0x983e5152ee66dfab,0xa831c66d2db43210
+ DQ 0x983e5152ee66dfab,0xa831c66d2db43210
+ DQ 0xb00327c898fb213f,0xbf597fc7beef0ee4
+ DQ 0xb00327c898fb213f,0xbf597fc7beef0ee4
+ DQ 0xc6e00bf33da88fc2,0xd5a79147930aa725
+ DQ 0xc6e00bf33da88fc2,0xd5a79147930aa725
+ DQ 0x06ca6351e003826f,0x142929670a0e6e70
+ DQ 0x06ca6351e003826f,0x142929670a0e6e70
+ DQ 0x27b70a8546d22ffc,0x2e1b21385c26c926
+ DQ 0x27b70a8546d22ffc,0x2e1b21385c26c926
+ DQ 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
+ DQ 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
+ DQ 0x650a73548baf63de,0x766a0abb3c77b2a8
+ DQ 0x650a73548baf63de,0x766a0abb3c77b2a8
+ DQ 0x81c2c92e47edaee6,0x92722c851482353b
+ DQ 0x81c2c92e47edaee6,0x92722c851482353b
+ DQ 0xa2bfe8a14cf10364,0xa81a664bbc423001
+ DQ 0xa2bfe8a14cf10364,0xa81a664bbc423001
+ DQ 0xc24b8b70d0f89791,0xc76c51a30654be30
+ DQ 0xc24b8b70d0f89791,0xc76c51a30654be30
+ DQ 0xd192e819d6ef5218,0xd69906245565a910
+ DQ 0xd192e819d6ef5218,0xd69906245565a910
+ DQ 0xf40e35855771202a,0x106aa07032bbd1b8
+ DQ 0xf40e35855771202a,0x106aa07032bbd1b8
+ DQ 0x19a4c116b8d2d0c8,0x1e376c085141ab53
+ DQ 0x19a4c116b8d2d0c8,0x1e376c085141ab53
+ DQ 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
+ DQ 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
+ DQ 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
+ DQ 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
+ DQ 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
+ DQ 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
+ DQ 0x748f82ee5defb2fc,0x78a5636f43172f60
+ DQ 0x748f82ee5defb2fc,0x78a5636f43172f60
+ DQ 0x84c87814a1f0ab72,0x8cc702081a6439ec
+ DQ 0x84c87814a1f0ab72,0x8cc702081a6439ec
+ DQ 0x90befffa23631e28,0xa4506cebde82bde9
+ DQ 0x90befffa23631e28,0xa4506cebde82bde9
+ DQ 0xbef9a3f7b2c67915,0xc67178f2e372532b
+ DQ 0xbef9a3f7b2c67915,0xc67178f2e372532b
+ DQ 0xca273eceea26619c,0xd186b8c721c0c207
+ DQ 0xca273eceea26619c,0xd186b8c721c0c207
+ DQ 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
+ DQ 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
+ DQ 0x06f067aa72176fba,0x0a637dc5a2c898a6
+ DQ 0x06f067aa72176fba,0x0a637dc5a2c898a6
+ DQ 0x113f9804bef90dae,0x1b710b35131c471b
+ DQ 0x113f9804bef90dae,0x1b710b35131c471b
+ DQ 0x28db77f523047d84,0x32caab7b40c72493
+ DQ 0x28db77f523047d84,0x32caab7b40c72493
+ DQ 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
+ DQ 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
+ DQ 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
+ DQ 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
+ DQ 0x5fcb6fab3ad6faec,0x6c44198c4a475817
+ DQ 0x5fcb6fab3ad6faec,0x6c44198c4a475817
+
+ DQ 0x0001020304050607,0x08090a0b0c0d0e0f
+ DQ 0x0001020304050607,0x08090a0b0c0d0e0f
DB 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
DB 110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54
DB 52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121
DB 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46
DB 111,114,103,62,0
-EXTERN __imp_RtlVirtualUnwind:NEAR
+EXTERN __imp_RtlVirtualUnwind
ALIGN 16
-se_handler PROC PRIVATE
+se_handler:
push rsi
push rdi
push rbx
@@ -1813,74 +1816,74 @@ 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 rsi,rax
- mov rax,QWORD PTR[((128+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
-
- lea r10,QWORD PTR[$L$epilogue]
+ mov rax,QWORD[((128+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
+
+ lea r10,[$L$epilogue]
cmp rbx,r10
- jb $L$in_prologue
+ jb NEAR $L$in_prologue
- lea rsi,QWORD PTR[((128+32))+rsi]
- lea rdi,QWORD PTR[512+r8]
+ lea rsi,[((128+32))+rsi]
+ lea rdi,[512+r8]
mov ecx,12
- DD 0a548f3fch
+ DD 0xa548f3fc
-$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
@@ -1894,20 +1897,15 @@ $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_sha512_block_data_order
- DD imagerel $L$SEH_end_sha512_block_data_order
- DD imagerel $L$SEH_info_sha512_block_data_order
-.pdata ENDS
-.xdata SEGMENT READONLY ALIGN(8)
+ DD $L$SEH_begin_sha512_block_data_order wrt ..imagebase
+ DD $L$SEH_end_sha512_block_data_order wrt ..imagebase
+ DD $L$SEH_info_sha512_block_data_order wrt ..imagebase
+section .xdata rdata align=8
ALIGN 8
-$L$SEH_info_sha512_block_data_order::
+$L$SEH_info_sha512_block_data_order:
DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$prologue,imagerel $L$epilogue
-
-.xdata ENDS
-END
+ DD se_handler wrt ..imagebase
+ DD $L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase