summaryrefslogtreecommitdiffstats
path: root/win-x86_64/crypto/md5
diff options
context:
space:
mode:
Diffstat (limited to 'win-x86_64/crypto/md5')
-rw-r--r--win-x86_64/crypto/md5/md5-x86_64.asm470
1 files changed, 234 insertions, 236 deletions
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