diff options
Diffstat (limited to 'win-x86_64/crypto/md5')
-rw-r--r-- | win-x86_64/crypto/md5/md5-x86_64.asm | 470 |
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 |