Function at 0x404e60
Capabilities:
Hash data with md5
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x542b01
mov eax, dword fs:[0]
push eax
mov eax, 0x10dc
call fcn.00481a50
mov eax, dword [0x594aa4]
xor eax, esp
mov dword [esp + 0x10d8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x594aa4]
xor eax, esp
push eax
lea eax, [esp + 0x10f0]
mov dword fs:[0], eax
mov eax, dword [esp + 0x1104]
mov esi, dword [0x5ab7c8]
mov edi, dword [0x5ab7c4]
mov ebp, dword [esp + 0x1100]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov ecx, esi
sub ecx, edi
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x1c], ebp
jne 0x404eed
call fcn.00481387
mov esi, dword [0x5ab7c8]
mov edi, dword [0x5ab7c4]
mov ebx, dword [edi + 0x1c]
sub esi, edi
mov eax, 0x2e8ba2e9
imul esi
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x404f10
call fcn.00481387
mov edi, dword [0x5ab7c4]
lea eax, [edi + 0x3c]
push 0xffffffffffffffff
xor edi, edi
push edi
mov esi, 0xf
push eax
lea ecx, [esp + 0x6c]
mov dword [esp + 0x84], esi
mov dword [esp + 0x80], edi
mov byte [esp + 0x70], 0
call fcn.00406c30
mov dword [esp + 0x10f8], edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], edi
mov byte [esp + 0x48], 0
mov byte [esp + 0x10f8], 1
cmp dword [ebp + 0x35c], 8
jb 0x404f67
mov eax, dword [ebp + 0x348]
jmp 0x404f6d
lea eax, [ebp + 0x348]
push 0x57d464
push eax
call fcn.00480455
mov esi, eax
add esp, 8
mov dword [esp + 0x18], esi
push edi
cmp esi, edi
jne 0x404fa1
push 0x57d78c
push 0x57d794
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
mov esi, 0x10
jmp 0x405195
mov edx, dword [ebp + 0x33c]
mov eax, dword [ebp + 0x338]
push edx
push eax
push esi
mov byte [esp + 0xf4], 0
mov dword [esp + 0xa0], edi
mov dword [esp + 0x9c], edi
mov dword [esp + 0x8c], 0x67452301
mov dword [esp + 0x90], 0xefcdab89
mov dword [esp + 0x94], 0x98badcfe
mov dword [esp + 0x98], 0x10325476
call fcn.0048602f
add esp, 0x10
test eax, eax
je 0x405023
push esi
call fcn.0048012f
add esp, 4
push edi
push 0x57d78c
push 0x57d7b4
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
mov esi, 0x10
jmp 0x405195
push 0xfff
lea ecx, [esp + 0xf1]
push edi
push ecx
mov byte [esp + 0xf8], 0
call fcn.004804c0
push esi
push 0x1000
lea edx, [esp + 0x100]
push 1
push edx
xor ebp, ebp
call fcn.00485f76
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x4050f2
mov eax, esi
cdq
add edi, eax
lea eax, [esp + 0xec]
push eax
mov eax, esi
lea ecx, [esp + 0x80]
adc ebp, edx
call fcn.00414cb0
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x405091
push ebp
push edi
xor eax, eax
push eax
push ebx
push eax
push eax
call ecx
mov ecx, ebx
mov edx, 0
sub ecx, edi
mov eax, edx
sbb eax, ebp
test eax, eax
jg 0x4050b2
jl 0x4050ac
cmp ecx, 0x1000
jae 0x4050b2
mov esi, ebx
sub esi, edi
jmp 0x4050bc
cmp edx, ebp
jl 0x4050f2
jg 0x4050bc
cmp ebx, edi
jbe 0x4050f2
push 0x1000
lea ecx, [esp + 0xf0]
push 0
push ecx
call fcn.004804c0
mov edx, dword [esp + 0x24]
push edx
push esi
lea eax, [esp + 0x100]
push 1
push eax
call fcn.00485f76
mov esi, eax
add esp, 0x1c
test esi, esi
jne 0x405062
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0048012f
add esp, 4
lea edi, [esp + 0x28]
lea eax, [esp + 0x7c]
call fcn.00415620
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x50]
mov byte [esp + 0x1104], 2
call fcn.00406c30
mov esi, 0x10
mov byte [esp + 0x10f8], 1
cmp dword [esp + 0x40], esi
jb 0x405142
mov edx, dword [esp + 0x2c]
push edx
call fcn.0044687d
add esp, 4
mov ecx, dword [esp + 0x48]
cmp dword [esp + 0x5c], esi
jae 0x405150
lea ecx, [esp + 0x48]
mov eax, dword [esp + 0x64]
cmp dword [esp + 0x78], esi
jae 0x40515e
lea eax, [esp + 0x64]
push ecx
push eax
call fcn.0048618c
add esp, 8
test eax, eax
je 0x4051df
mov ecx, dword [esp + 0x1c]
push str.Single_package_md5_validate_fail
push str.12990103
call fcn.00403a00
push 1
push 0x57d78c
push 0x57d7f8
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor edi, edi
mov eax, dword [esp + 0x20]
push edi
push edi
push 0x12
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
cmp dword [esp + 0x5c], esi
jb 0x4051b7
mov ecx, dword [esp + 0x48]
push ecx
call fcn.0044687d
add esp, 4
mov dword [esp + 0x5c], 0xf
mov dword [esp + 0x58], edi
mov byte [esp + 0x48], 0
cmp dword [esp + 0x78], esi
jb 0x4051db
mov edx, dword [esp + 0x64]
push edx
call fcn.0044687d
add esp, 4
xor al, al
jmp 0x40521c
cmp dword [esp + 0x5c], esi
jb 0x4051f2
mov eax, dword [esp + 0x48]
push eax
call fcn.0044687d
add esp, 4
mov dword [esp + 0x5c], 0xf
mov dword [esp + 0x58], 0
mov byte [esp + 0x48], 0
cmp dword [esp + 0x78], esi
jb 0x40521a
mov ecx, dword [esp + 0x64]
push ecx
call fcn.0044687d
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x10f0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x10d8]
xor ecx, esp
call fcn.0047ff9f
add esp, 0x10e8
ret 8