mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
782 lines
14 KiB
782 lines
14 KiB
13 years ago
|
OPTION DOTNAME
|
||
|
.text$ SEGMENT ALIGN(64) 'CODE'
|
||
|
ALIGN 16
|
||
|
|
||
|
PUBLIC 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
|
||
|
mov rax,rsp
|
||
|
$L$SEH_begin_md5_block_asm_data_order::
|
||
|
mov rdi,rcx
|
||
|
mov rsi,rdx
|
||
|
mov rdx,r8
|
||
|
|
||
|
|
||
|
push rbp
|
||
|
push rbx
|
||
|
push r12
|
||
|
push r14
|
||
|
push r15
|
||
|
$L$prologue::
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
mov rbp,rdi
|
||
|
shl rdx,6
|
||
|
lea rdi,QWORD PTR[rdx*1+rsi]
|
||
|
mov eax,DWORD PTR[((0*4))+rbp]
|
||
|
mov ebx,DWORD PTR[((1*4))+rbp]
|
||
|
mov ecx,DWORD PTR[((2*4))+rbp]
|
||
|
mov edx,DWORD PTR[((3*4))+rbp]
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
cmp rsi,rdi
|
||
|
je $L$end
|
||
|
|
||
|
|
||
|
|
||
|
$L$loop::
|
||
|
mov r8d,eax
|
||
|
mov r9d,ebx
|
||
|
mov r14d,ecx
|
||
|
mov r15d,edx
|
||
|
mov r10d,DWORD PTR[((0*4))+rsi]
|
||
|
mov r11d,edx
|
||
|
xor r11d,ecx
|
||
|
lea eax,DWORD PTR[0d76aa478h+r10*1+rax]
|
||
|
and r11d,ebx
|
||
|
xor r11d,edx
|
||
|
mov r10d,DWORD PTR[((1*4))+rsi]
|
||
|
add eax,r11d
|
||
|
rol eax,7
|
||
|
mov r11d,ecx
|
||
|
add eax,ebx
|
||
|
xor r11d,ebx
|
||
|
lea edx,DWORD PTR[0e8c7b756h+r10*1+rdx]
|
||
|
and r11d,eax
|
||
|
xor r11d,ecx
|
||
|
mov r10d,DWORD PTR[((2*4))+rsi]
|
||
|
add edx,r11d
|
||
|
rol edx,12
|
||
|
mov r11d,ebx
|
||
|
add edx,eax
|
||
|
xor r11d,eax
|
||
|
lea ecx,DWORD PTR[0242070dbh+r10*1+rcx]
|
||
|
and r11d,edx
|
||
|
xor r11d,ebx
|
||
|
mov r10d,DWORD PTR[((3*4))+rsi]
|
||
|
add ecx,r11d
|
||
|
rol ecx,17
|
||
|
mov r11d,eax
|
||
|
add ecx,edx
|
||
|
xor r11d,edx
|
||
|
lea ebx,DWORD PTR[0c1bdceeeh+r10*1+rbx]
|
||
|
and r11d,ecx
|
||
|
xor r11d,eax
|
||
|
mov r10d,DWORD PTR[((4*4))+rsi]
|
||
|
add ebx,r11d
|
||
|
rol ebx,22
|
||
|
mov r11d,edx
|
||
|
add ebx,ecx
|
||
|
xor r11d,ecx
|
||
|
lea eax,DWORD PTR[0f57c0fafh+r10*1+rax]
|
||
|
and r11d,ebx
|
||
|
xor r11d,edx
|
||
|
mov r10d,DWORD PTR[((5*4))+rsi]
|
||
|
add eax,r11d
|
||
|
rol eax,7
|
||
|
mov r11d,ecx
|
||
|
add eax,ebx
|
||
|
xor r11d,ebx
|
||
|
lea edx,DWORD PTR[04787c62ah+r10*1+rdx]
|
||
|
and r11d,eax
|
||
|
xor r11d,ecx
|
||
|
mov r10d,DWORD PTR[((6*4))+rsi]
|
||
|
add edx,r11d
|
||
|
rol edx,12
|
||
|
mov r11d,ebx
|
||
|
add edx,eax
|
||
|
xor r11d,eax
|
||
|
lea ecx,DWORD PTR[0a8304613h+r10*1+rcx]
|
||
|
and r11d,edx
|
||
|
xor r11d,ebx
|
||
|
mov r10d,DWORD PTR[((7*4))+rsi]
|
||
|
add ecx,r11d
|
||
|
rol ecx,17
|
||
|
mov r11d,eax
|
||
|
add ecx,edx
|
||
|
xor r11d,edx
|
||
|
lea ebx,DWORD PTR[0fd469501h+r10*1+rbx]
|
||
|
and r11d,ecx
|
||
|
xor r11d,eax
|
||
|
mov r10d,DWORD PTR[((8*4))+rsi]
|
||
|
add ebx,r11d
|
||
|
rol ebx,22
|
||
|
mov r11d,edx
|
||
|
add ebx,ecx
|
||
|
xor r11d,ecx
|
||
|
lea eax,DWORD PTR[0698098d8h+r10*1+rax]
|
||
|
and r11d,ebx
|
||
|
xor r11d,edx
|
||
|
mov r10d,DWORD PTR[((9*4))+rsi]
|
||
|
add eax,r11d
|
||
|
rol eax,7
|
||
|
mov r11d,ecx
|
||
|
add eax,ebx
|
||
|
xor r11d,ebx
|
||
|
lea edx,DWORD PTR[08b44f7afh+r10*1+rdx]
|
||
|
and r11d,eax
|
||
|
xor r11d,ecx
|
||
|
mov r10d,DWORD PTR[((10*4))+rsi]
|
||
|
add edx,r11d
|
||
|
rol edx,12
|
||
|
mov r11d,ebx
|
||
|
add edx,eax
|
||
|
xor r11d,eax
|
||
|
lea ecx,DWORD PTR[0ffff5bb1h+r10*1+rcx]
|
||
|
and r11d,edx
|
||
|
xor r11d,ebx
|
||
|
mov r10d,DWORD PTR[((11*4))+rsi]
|
||
|
add ecx,r11d
|
||
|
rol ecx,17
|
||
|
mov r11d,eax
|
||
|
add ecx,edx
|
||
|
xor r11d,edx
|
||
|
lea ebx,DWORD PTR[0895cd7beh+r10*1+rbx]
|
||
|
and r11d,ecx
|
||
|
xor r11d,eax
|
||
|
mov r10d,DWORD PTR[((12*4))+rsi]
|
||
|
add ebx,r11d
|
||
|
rol ebx,22
|
||
|
mov r11d,edx
|
||
|
add ebx,ecx
|
||
|
xor r11d,ecx
|
||
|
lea eax,DWORD PTR[06b901122h+r10*1+rax]
|
||
|
and r11d,ebx
|
||
|
xor r11d,edx
|
||
|
mov r10d,DWORD PTR[((13*4))+rsi]
|
||
|
add eax,r11d
|
||
|
rol eax,7
|
||
|
mov r11d,ecx
|
||
|
add eax,ebx
|
||
|
xor r11d,ebx
|
||
|
lea edx,DWORD PTR[0fd987193h+r10*1+rdx]
|
||
|
and r11d,eax
|
||
|
xor r11d,ecx
|
||
|
mov r10d,DWORD PTR[((14*4))+rsi]
|
||
|
add edx,r11d
|
||
|
rol edx,12
|
||
|
mov r11d,ebx
|
||
|
add edx,eax
|
||
|
xor r11d,eax
|
||
|
lea ecx,DWORD PTR[0a679438eh+r10*1+rcx]
|
||
|
and r11d,edx
|
||
|
xor r11d,ebx
|
||
|
mov r10d,DWORD PTR[((15*4))+rsi]
|
||
|
add ecx,r11d
|
||
|
rol ecx,17
|
||
|
mov r11d,eax
|
||
|
add ecx,edx
|
||
|
xor r11d,edx
|
||
|
lea ebx,DWORD PTR[049b40821h+r10*1+rbx]
|
||
|
and r11d,ecx
|
||
|
xor r11d,eax
|
||
|
mov r10d,DWORD PTR[((0*4))+rsi]
|
||
|
add ebx,r11d
|
||
|
rol ebx,22
|
||
|
mov r11d,edx
|
||
|
add ebx,ecx
|
||
|
mov r10d,DWORD PTR[((1*4))+rsi]
|
||
|
mov r11d,edx
|
||
|
mov r12d,edx
|
||
|
not r11d
|
||
|
lea eax,DWORD PTR[0f61e2562h+r10*1+rax]
|
||
|
and r12d,ebx
|
||
|
and r11d,ecx
|
||
|
mov r10d,DWORD PTR[((6*4))+rsi]
|
||
|
or r12d,r11d
|
||
|
mov r11d,ecx
|
||
|
add eax,r12d
|
||
|
mov r12d,ecx
|
||
|
rol eax,5
|
||
|
add eax,ebx
|
||
|
not r11d
|
||
|
lea edx,DWORD PTR[0c040b340h+r10*1+rdx]
|
||
|
and r12d,eax
|
||
|
and r11d,ebx
|
||
|
mov r10d,DWORD PTR[((11*4))+rsi]
|
||
|
or r12d,r11d
|
||
|
mov r11d,ebx
|
||
|
add edx,r12d
|
||
|
mov r12d,ebx
|
||
|
rol edx,9
|
||
|
add edx,eax
|
||
|
not r11d
|
||
|
lea ecx,DWORD PTR[0265e5a51h+r10*1+rcx]
|
||
|
and r12d,edx
|
||
|
and r11d,eax
|
||
|
mov r10d,DWORD PTR[((0*4))+rsi]
|
||
|
or r12d,r11d
|
||
|
mov r11d,eax
|
||
|
add ecx,r12d
|
||
|
mov r12d,eax
|
||
|
rol ecx,14
|
||
|
add ecx,edx
|
||
|
not r11d
|
||
|
lea ebx,DWORD PTR[0e9b6c7aah+r10*1+rbx]
|
||
|
and r12d,ecx
|
||
|
and r11d,edx
|
||
|
mov r10d,DWORD PTR[((5*4))+rsi]
|
||
|
or r12d,r11d
|
||
|
mov r11d,edx
|
||
|
add ebx,r12d
|
||
|
mov r12d,edx
|
||
|
rol ebx,20
|
||
|
add ebx,ecx
|
||
|
not r11d
|
||
|
lea eax,DWORD PTR[0d62f105dh+r10*1+rax]
|
||
|
and r12d,ebx
|
||
|
and r11d,ecx
|
||
|
mov r10d,DWORD PTR[((10*4))+rsi]
|
||
|
or r12d,r11d
|
||
|
mov r11d,ecx
|
||
|
add eax,r12d
|
||
|
mov r12d,ecx
|
||
|
rol eax,5
|
||
|
add eax,ebx
|
||
|
not r11d
|
||
|
lea edx,DWORD PTR[02441453h+r10*1+rdx]
|
||
|
and r12d,eax
|
||
|
and r11d,ebx
|
||
|
mov r10d,DWORD PTR[((15*4))+rsi]
|
||
|
or r12d,r11d
|
||
|
mov r11d,ebx
|
||
|
add edx,r12d
|
||
|
mov r12d,ebx
|
||
|
rol edx,9
|
||
|
add edx,eax
|
||
|
not r11d
|
||
|
lea ecx,DWORD PTR[0d8a1e681h+r10*1+rcx]
|
||
|
and r12d,edx
|
||
|
and r11d,eax
|
||
|
mov r10d,DWORD PTR[((4*4))+rsi]
|
||
|
or r12d,r11d
|
||
|
mov r11d,eax
|
||
|
add ecx,r12d
|
||
|
mov r12d,eax
|
||
|
rol ecx,14
|
||
|
add ecx,edx
|
||
|
not r11d
|
||
|
lea ebx,DWORD PTR[0e7d3fbc8h+r10*1+rbx]
|
||
|
and r12d,ecx
|
||
|
and r11d,edx
|
||
|
mov r10d,DWORD PTR[((9*4))+rsi]
|
||
|
or r12d,r11d
|
||
|
mov r11d,edx
|
||
|
add ebx,r12d
|
||
|
mov r12d,edx
|
||
|
rol ebx,20
|
||
|
add ebx,ecx
|
||
|
not r11d
|
||
|
lea eax,DWORD PTR[021e1cde6h+r10*1+rax]
|
||
|
and r12d,ebx
|
||
|
and r11d,ecx
|
||
|
mov r10d,DWORD PTR[((14*4))+rsi]
|
||
|
or r12d,r11d
|
||
|
mov r11d,ecx
|
||
|
add eax,r12d
|
||
|
mov r12d,ecx
|
||
|
rol eax,5
|
||
|
add eax,ebx
|
||
|
not r11d
|
||
|
lea edx,DWORD PTR[0c33707d6h+r10*1+rdx]
|
||
|
and r12d,eax
|
||
|
and r11d,ebx
|
||
|
mov r10d,DWORD PTR[((3*4))+rsi]
|
||
|
or r12d,r11d
|
||
|
mov r11d,ebx
|
||
|
add edx,r12d
|
||
|
mov r12d,ebx
|
||
|
rol edx,9
|
||
|
add edx,eax
|
||
|
not r11d
|
||
|
lea ecx,DWORD PTR[0f4d50d87h+r10*1+rcx]
|
||
|
and r12d,edx
|
||
|
and r11d,eax
|
||
|
mov r10d,DWORD PTR[((8*4))+rsi]
|
||
|
or r12d,r11d
|
||
|
mov r11d,eax
|
||
|
add ecx,r12d
|
||
|
mov r12d,eax
|
||
|
rol ecx,14
|
||
|
add ecx,edx
|
||
|
not r11d
|
||
|
lea ebx,DWORD PTR[0455a14edh+r10*1+rbx]
|
||
|
and r12d,ecx
|
||
|
and r11d,edx
|
||
|
mov r10d,DWORD PTR[((13*4))+rsi]
|
||
|
or r12d,r11d
|
||
|
mov r11d,edx
|
||
|
add ebx,r12d
|
||
|
mov r12d,edx
|
||
|
rol ebx,20
|
||
|
add ebx,ecx
|
||
|
not r11d
|
||
|
lea eax,DWORD PTR[0a9e3e905h+r10*1+rax]
|
||
|
and r12d,ebx
|
||
|
and r11d,ecx
|
||
|
mov r10d,DWORD PTR[((2*4))+rsi]
|
||
|
or r12d,r11d
|
||
|
mov r11d,ecx
|
||
|
add eax,r12d
|
||
|
mov r12d,ecx
|
||
|
rol eax,5
|
||
|
add eax,ebx
|
||
|
not r11d
|
||
|
lea edx,DWORD PTR[0fcefa3f8h+r10*1+rdx]
|
||
|
and r12d,eax
|
||
|
and r11d,ebx
|
||
|
mov r10d,DWORD PTR[((7*4))+rsi]
|
||
|
or r12d,r11d
|
||
|
mov r11d,ebx
|
||
|
add edx,r12d
|
||
|
mov r12d,ebx
|
||
|
rol edx,9
|
||
|
add edx,eax
|
||
|
not r11d
|
||
|
lea ecx,DWORD PTR[0676f02d9h+r10*1+rcx]
|
||
|
and r12d,edx
|
||
|
and r11d,eax
|
||
|
mov r10d,DWORD PTR[((12*4))+rsi]
|
||
|
or r12d,r11d
|
||
|
mov r11d,eax
|
||
|
add ecx,r12d
|
||
|
mov r12d,eax
|
||
|
rol ecx,14
|
||
|
add ecx,edx
|
||
|
not r11d
|
||
|
lea ebx,DWORD PTR[08d2a4c8ah+r10*1+rbx]
|
||
|
and r12d,ecx
|
||
|
and r11d,edx
|
||
|
mov r10d,DWORD PTR[((0*4))+rsi]
|
||
|
or r12d,r11d
|
||
|
mov r11d,edx
|
||
|
add ebx,r12d
|
||
|
mov r12d,edx
|
||
|
rol ebx,20
|
||
|
add ebx,ecx
|
||
|
mov r10d,DWORD PTR[((5*4))+rsi]
|
||
|
mov r11d,ecx
|
||
|
lea eax,DWORD PTR[0fffa3942h+r10*1+rax]
|
||
|
mov r10d,DWORD PTR[((8*4))+rsi]
|
||
|
xor r11d,edx
|
||
|
xor r11d,ebx
|
||
|
add eax,r11d
|
||
|
rol eax,4
|
||
|
mov r11d,ebx
|
||
|
add eax,ebx
|
||
|
lea edx,DWORD PTR[08771f681h+r10*1+rdx]
|
||
|
mov r10d,DWORD PTR[((11*4))+rsi]
|
||
|
xor r11d,ecx
|
||
|
xor r11d,eax
|
||
|
add edx,r11d
|
||
|
rol edx,11
|
||
|
mov r11d,eax
|
||
|
add edx,eax
|
||
|
lea ecx,DWORD PTR[06d9d6122h+r10*1+rcx]
|
||
|
mov r10d,DWORD PTR[((14*4))+rsi]
|
||
|
xor r11d,ebx
|
||
|
xor r11d,edx
|
||
|
add ecx,r11d
|
||
|
rol ecx,16
|
||
|
mov r11d,edx
|
||
|
add ecx,edx
|
||
|
lea ebx,DWORD PTR[0fde5380ch+r10*1+rbx]
|
||
|
mov r10d,DWORD PTR[((1*4))+rsi]
|
||
|
xor r11d,eax
|
||
|
xor r11d,ecx
|
||
|
add ebx,r11d
|
||
|
rol ebx,23
|
||
|
mov r11d,ecx
|
||
|
add ebx,ecx
|
||
|
lea eax,DWORD PTR[0a4beea44h+r10*1+rax]
|
||
|
mov r10d,DWORD PTR[((4*4))+rsi]
|
||
|
xor r11d,edx
|
||
|
xor r11d,ebx
|
||
|
add eax,r11d
|
||
|
rol eax,4
|
||
|
mov r11d,ebx
|
||
|
add eax,ebx
|
||
|
lea edx,DWORD PTR[04bdecfa9h+r10*1+rdx]
|
||
|
mov r10d,DWORD PTR[((7*4))+rsi]
|
||
|
xor r11d,ecx
|
||
|
xor r11d,eax
|
||
|
add edx,r11d
|
||
|
rol edx,11
|
||
|
mov r11d,eax
|
||
|
add edx,eax
|
||
|
lea ecx,DWORD PTR[0f6bb4b60h+r10*1+rcx]
|
||
|
mov r10d,DWORD PTR[((10*4))+rsi]
|
||
|
xor r11d,ebx
|
||
|
xor r11d,edx
|
||
|
add ecx,r11d
|
||
|
rol ecx,16
|
||
|
mov r11d,edx
|
||
|
add ecx,edx
|
||
|
lea ebx,DWORD PTR[0bebfbc70h+r10*1+rbx]
|
||
|
mov r10d,DWORD PTR[((13*4))+rsi]
|
||
|
xor r11d,eax
|
||
|
xor r11d,ecx
|
||
|
add ebx,r11d
|
||
|
rol ebx,23
|
||
|
mov r11d,ecx
|
||
|
add ebx,ecx
|
||
|
lea eax,DWORD PTR[0289b7ec6h+r10*1+rax]
|
||
|
mov r10d,DWORD PTR[((0*4))+rsi]
|
||
|
xor r11d,edx
|
||
|
xor r11d,ebx
|
||
|
add eax,r11d
|
||
|
rol eax,4
|
||
|
mov r11d,ebx
|
||
|
add eax,ebx
|
||
|
lea edx,DWORD PTR[0eaa127fah+r10*1+rdx]
|
||
|
mov r10d,DWORD PTR[((3*4))+rsi]
|
||
|
xor r11d,ecx
|
||
|
xor r11d,eax
|
||
|
add edx,r11d
|
||
|
rol edx,11
|
||
|
mov r11d,eax
|
||
|
add edx,eax
|
||
|
lea ecx,DWORD PTR[0d4ef3085h+r10*1+rcx]
|
||
|
mov r10d,DWORD PTR[((6*4))+rsi]
|
||
|
xor r11d,ebx
|
||
|
xor r11d,edx
|
||
|
add ecx,r11d
|
||
|
rol ecx,16
|
||
|
mov r11d,edx
|
||
|
add ecx,edx
|
||
|
lea ebx,DWORD PTR[04881d05h+r10*1+rbx]
|
||
|
mov r10d,DWORD PTR[((9*4))+rsi]
|
||
|
xor r11d,eax
|
||
|
xor r11d,ecx
|
||
|
add ebx,r11d
|
||
|
rol ebx,23
|
||
|
mov r11d,ecx
|
||
|
add ebx,ecx
|
||
|
lea eax,DWORD PTR[0d9d4d039h+r10*1+rax]
|
||
|
mov r10d,DWORD PTR[((12*4))+rsi]
|
||
|
xor r11d,edx
|
||
|
xor r11d,ebx
|
||
|
add eax,r11d
|
||
|
rol eax,4
|
||
|
mov r11d,ebx
|
||
|
add eax,ebx
|
||
|
lea edx,DWORD PTR[0e6db99e5h+r10*1+rdx]
|
||
|
mov r10d,DWORD PTR[((15*4))+rsi]
|
||
|
xor r11d,ecx
|
||
|
xor r11d,eax
|
||
|
add edx,r11d
|
||
|
rol edx,11
|
||
|
mov r11d,eax
|
||
|
add edx,eax
|
||
|
lea ecx,DWORD PTR[01fa27cf8h+r10*1+rcx]
|
||
|
mov r10d,DWORD PTR[((2*4))+rsi]
|
||
|
xor r11d,ebx
|
||
|
xor r11d,edx
|
||
|
add ecx,r11d
|
||
|
rol ecx,16
|
||
|
mov r11d,edx
|
||
|
add ecx,edx
|
||
|
lea ebx,DWORD PTR[0c4ac5665h+r10*1+rbx]
|
||
|
mov r10d,DWORD PTR[((0*4))+rsi]
|
||
|
xor r11d,eax
|
||
|
xor r11d,ecx
|
||
|
add ebx,r11d
|
||
|
rol ebx,23
|
||
|
mov r11d,ecx
|
||
|
add ebx,ecx
|
||
|
mov r10d,DWORD PTR[((0*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
xor r11d,edx
|
||
|
lea eax,DWORD PTR[0f4292244h+r10*1+rax]
|
||
|
or r11d,ebx
|
||
|
xor r11d,ecx
|
||
|
add eax,r11d
|
||
|
mov r10d,DWORD PTR[((7*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
rol eax,6
|
||
|
xor r11d,ecx
|
||
|
add eax,ebx
|
||
|
lea edx,DWORD PTR[0432aff97h+r10*1+rdx]
|
||
|
or r11d,eax
|
||
|
xor r11d,ebx
|
||
|
add edx,r11d
|
||
|
mov r10d,DWORD PTR[((14*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
rol edx,10
|
||
|
xor r11d,ebx
|
||
|
add edx,eax
|
||
|
lea ecx,DWORD PTR[0ab9423a7h+r10*1+rcx]
|
||
|
or r11d,edx
|
||
|
xor r11d,eax
|
||
|
add ecx,r11d
|
||
|
mov r10d,DWORD PTR[((5*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
rol ecx,15
|
||
|
xor r11d,eax
|
||
|
add ecx,edx
|
||
|
lea ebx,DWORD PTR[0fc93a039h+r10*1+rbx]
|
||
|
or r11d,ecx
|
||
|
xor r11d,edx
|
||
|
add ebx,r11d
|
||
|
mov r10d,DWORD PTR[((12*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
rol ebx,21
|
||
|
xor r11d,edx
|
||
|
add ebx,ecx
|
||
|
lea eax,DWORD PTR[0655b59c3h+r10*1+rax]
|
||
|
or r11d,ebx
|
||
|
xor r11d,ecx
|
||
|
add eax,r11d
|
||
|
mov r10d,DWORD PTR[((3*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
rol eax,6
|
||
|
xor r11d,ecx
|
||
|
add eax,ebx
|
||
|
lea edx,DWORD PTR[08f0ccc92h+r10*1+rdx]
|
||
|
or r11d,eax
|
||
|
xor r11d,ebx
|
||
|
add edx,r11d
|
||
|
mov r10d,DWORD PTR[((10*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
rol edx,10
|
||
|
xor r11d,ebx
|
||
|
add edx,eax
|
||
|
lea ecx,DWORD PTR[0ffeff47dh+r10*1+rcx]
|
||
|
or r11d,edx
|
||
|
xor r11d,eax
|
||
|
add ecx,r11d
|
||
|
mov r10d,DWORD PTR[((1*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
rol ecx,15
|
||
|
xor r11d,eax
|
||
|
add ecx,edx
|
||
|
lea ebx,DWORD PTR[085845dd1h+r10*1+rbx]
|
||
|
or r11d,ecx
|
||
|
xor r11d,edx
|
||
|
add ebx,r11d
|
||
|
mov r10d,DWORD PTR[((8*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
rol ebx,21
|
||
|
xor r11d,edx
|
||
|
add ebx,ecx
|
||
|
lea eax,DWORD PTR[06fa87e4fh+r10*1+rax]
|
||
|
or r11d,ebx
|
||
|
xor r11d,ecx
|
||
|
add eax,r11d
|
||
|
mov r10d,DWORD PTR[((15*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
rol eax,6
|
||
|
xor r11d,ecx
|
||
|
add eax,ebx
|
||
|
lea edx,DWORD PTR[0fe2ce6e0h+r10*1+rdx]
|
||
|
or r11d,eax
|
||
|
xor r11d,ebx
|
||
|
add edx,r11d
|
||
|
mov r10d,DWORD PTR[((6*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
rol edx,10
|
||
|
xor r11d,ebx
|
||
|
add edx,eax
|
||
|
lea ecx,DWORD PTR[0a3014314h+r10*1+rcx]
|
||
|
or r11d,edx
|
||
|
xor r11d,eax
|
||
|
add ecx,r11d
|
||
|
mov r10d,DWORD PTR[((13*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
rol ecx,15
|
||
|
xor r11d,eax
|
||
|
add ecx,edx
|
||
|
lea ebx,DWORD PTR[04e0811a1h+r10*1+rbx]
|
||
|
or r11d,ecx
|
||
|
xor r11d,edx
|
||
|
add ebx,r11d
|
||
|
mov r10d,DWORD PTR[((4*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
rol ebx,21
|
||
|
xor r11d,edx
|
||
|
add ebx,ecx
|
||
|
lea eax,DWORD PTR[0f7537e82h+r10*1+rax]
|
||
|
or r11d,ebx
|
||
|
xor r11d,ecx
|
||
|
add eax,r11d
|
||
|
mov r10d,DWORD PTR[((11*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
rol eax,6
|
||
|
xor r11d,ecx
|
||
|
add eax,ebx
|
||
|
lea edx,DWORD PTR[0bd3af235h+r10*1+rdx]
|
||
|
or r11d,eax
|
||
|
xor r11d,ebx
|
||
|
add edx,r11d
|
||
|
mov r10d,DWORD PTR[((2*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
rol edx,10
|
||
|
xor r11d,ebx
|
||
|
add edx,eax
|
||
|
lea ecx,DWORD PTR[02ad7d2bbh+r10*1+rcx]
|
||
|
or r11d,edx
|
||
|
xor r11d,eax
|
||
|
add ecx,r11d
|
||
|
mov r10d,DWORD PTR[((9*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
rol ecx,15
|
||
|
xor r11d,eax
|
||
|
add ecx,edx
|
||
|
lea ebx,DWORD PTR[0eb86d391h+r10*1+rbx]
|
||
|
or r11d,ecx
|
||
|
xor r11d,edx
|
||
|
add ebx,r11d
|
||
|
mov r10d,DWORD PTR[((0*4))+rsi]
|
||
|
mov r11d,0ffffffffh
|
||
|
rol ebx,21
|
||
|
xor r11d,edx
|
||
|
add ebx,ecx
|
||
|
|
||
|
add eax,r8d
|
||
|
add ebx,r9d
|
||
|
add ecx,r14d
|
||
|
add edx,r15d
|
||
|
|
||
|
|
||
|
add rsi,64
|
||
|
cmp rsi,rdi
|
||
|
jb $L$loop
|
||
|
|
||
|
|
||
|
|
||
|
$L$end::
|
||
|
mov DWORD PTR[((0*4))+rbp],eax
|
||
|
mov DWORD PTR[((1*4))+rbp],ebx
|
||
|
mov DWORD PTR[((2*4))+rbp],ecx
|
||
|
mov DWORD PTR[((3*4))+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]
|
||
|
add rsp,40
|
||
|
$L$epilogue::
|
||
|
mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
|
||
|
mov rsi,QWORD PTR[16+rsp]
|
||
|
DB 0F3h,0C3h ;repret
|
||
|
$L$SEH_end_md5_block_asm_data_order::
|
||
|
md5_block_asm_data_order ENDP
|
||
|
EXTERN __imp_RtlVirtualUnwind:NEAR
|
||
|
|
||
|
ALIGN 16
|
||
|
se_handler PROC PRIVATE
|
||
|
push rsi
|
||
|
push rdi
|
||
|
push rbx
|
||
|
push rbp
|
||
|
push r12
|
||
|
push r13
|
||
|
push r14
|
||
|
push r15
|
||
|
pushfq
|
||
|
sub rsp,64
|
||
|
|
||
|
mov rax,QWORD PTR[120+r8]
|
||
|
mov rbx,QWORD PTR[248+r8]
|
||
|
|
||
|
lea r10,QWORD PTR[$L$prologue]
|
||
|
cmp rbx,r10
|
||
|
jb $L$in_prologue
|
||
|
|
||
|
mov rax,QWORD PTR[152+r8]
|
||
|
|
||
|
lea r10,QWORD PTR[$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]
|
||
|
mov rsi,r8
|
||
|
mov ecx,154
|
||
|
DD 0a548f3fch
|
||
|
|
||
|
|
||
|
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 eax,1
|
||
|
add rsp,64
|
||
|
popfq
|
||
|
pop r15
|
||
|
pop r14
|
||
|
pop r13
|
||
|
pop r12
|
||
|
pop rbp
|
||
|
pop rbx
|
||
|
pop rdi
|
||
|
pop rsi
|
||
|
DB 0F3h,0C3h ;repret
|
||
|
se_handler ENDP
|
||
|
|
||
|
.text$ ENDS
|
||
|
.pdata SEGMENT READONLY 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
|
||
|
|
||
|
.pdata ENDS
|
||
|
.xdata SEGMENT READONLY ALIGN(8)
|
||
|
ALIGN 8
|
||
|
$L$SEH_info_md5_block_asm_data_order::
|
||
|
DB 9,0,0,0
|
||
|
DD imagerel se_handler
|
||
|
|
||
|
.xdata ENDS
|
||
|
END
|