Function at 0x4a3880
Capabilities:
Get file size
Hash data with md5
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d3546
mov eax, dword fs:[0]
push eax
sub esp, 0x94
mov eax, dword [0x502054]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov edi, ecx
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x88], edi
mov dword [ebp - 4], 0
mov dword [ebp - 0x9c], edi
push 0xc
mov dword [ebp - 0x90], 0
call fcn.004a9d6b
add esp, 4
mov dword [ebp - 0x6c], eax
mov dword [ebp - 4], 1
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 1
mov byte [ebp - 4], 0
mov dword [edi], eax
mov dword [ebp - 4], 0
push 0
push 0x8000000
push 3
push 0
push 1
push SysReAllocString
push esi
mov dword [ebp - 0x90], 1
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 4], 2
cmp ebx, 0xffffffff
je 0x4a3be3
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 0
push eax
push ebx
mov dword [ebp - 0x88], 0
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x4a3995
mov eax, dword [ebp - 0x88]
mov edx, eax
mov edi, dword [ebp - 0x8c]
mov ecx, edi
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x84], edx
test eax, eax
jne 0x4a39b1
test edi, edi
je 0x4a3be0
jmp 0x4a39b1
or ecx, 0xffffffff
mov dword [ebp - 0x78], 0xffffffff
or edx, 0xffffffff
mov dword [ebp - 0x80], ecx
or edi, 0xffffffff
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x6c], edi
cmp edx, 0xffffffff
ja 0x4a3be0
jb 0x4a39c5
cmp ecx, 0xffffffff
jae 0x4a3be0
xorps xmm0, xmm0
push 0xc
movlpd qword [ebp - 0x98], xmm0
call fcn.004a9d6b
mov esi, eax
mov dword [ebp - 0x88], esi
mov byte [ebp - 4], 3
push 0x10000
push 0
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 1
call fcn.004b3b9e
mov ecx, dword [esi + 4]
add esp, 0xc
mov edx, eax
mov dword [esi], edx
cmp ecx, 0x10000
jae 0x4a3a2b
mov eax, 0x10000
sub eax, ecx
push eax
lea eax, [ecx + edx]
push 0
push eax
call fcn.004abb60
add esp, 0xc
mov dword [esi + 4], 0x10000
mov byte [ebp - 4], 2
mov dword [ebp - 0x88], esi
mov byte [ebp - 4], 4
xorps xmm0, xmm0
mov eax, dword [ebp - 0x78]
xor edx, edx
movq qword [ebp - 0x58], xmm0
mov dword [ebp - 0x68], 0x67452301
mov dword [ebp - 0x64], 0xefcdab89
mov dword [ebp - 0x60], 0x98badcfe
mov dword [ebp - 0x5c], 0x10325476
mov ecx, dword [esi + 4]
cmp edx, eax
ja 0x4a3a76
jb 0x4a3a84
cmp ecx, edi
jb 0x4a3a84
mov eax, dword [ebp - 0x80]
mov ecx, eax
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x84]
push 0
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x74]
push eax
push ecx
mov dword [ebp - 0x74], ecx
push dword [esi]
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4a3ba6
mov ecx, dword [ebp - 0x94]
mov edi, dword [ebp - 0x98]
mov dword [ebp - 0x78], ecx
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x4a3b0c
mov edx, dword [esi]
lea ecx, [ebp - 0x68]
push eax
call fcn.004a3da0
mov edx, dword [ebp - 0x80]
add esp, 4
add edi, dword [ebp - 0x74]
mov eax, dword [ebp - 0x84]
adc dword [ebp - 0x78], 0
sub edx, edi
mov ecx, dword [esi + 4]
sbb eax, dword [ebp - 0x78]
mov dword [ebp - 0x74], 0
cmp dword [ebp - 0x74], eax
ja 0x4a3af0
jb 0x4a3af5
cmp ecx, edx
jb 0x4a3af5
mov ecx, dword [ebp - 0x6c]
sub ecx, edi
push 0
lea eax, [ebp - 0x74]
mov dword [ebp - 0x74], ecx
push eax
push ecx
push dword [esi]
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4a3ab1
cmp edi, dword [ebp - 0x80]
jne 0x4a3ba6
mov eax, dword [ebp - 0x84]
cmp dword [ebp - 0x78], eax
jne 0x4a3ba6
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x68]
call fcn.004a3750
mov dword [ebp - 0x78], eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x70]
mov edi, dword [eax]
add dword [edi + 8], 0xffffffff
jne 0x4a3b5d
cmp dword [edi + 4], 0
je 0x4a3b5d
push 0
push dword [edi]
call fcn.004b3b9e
add esp, 8
mov dword [edi], eax
mov dword [edi + 4], 0
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x70]
mov eax, dword [eax]
inc dword [eax + 8]
mov dword [ecx], eax
mov byte [ebp - 4], 4
mov edi, dword [ebp - 0x6c]
add dword [edi + 8], 0xffffffff
jne 0x4a3ba6
cmp dword [edi + 4], 0
je 0x4a3b92
push 0
push dword [edi]
call fcn.004b3b9e
add esp, 8
mov dword [edi], eax
mov dword [edi + 4], 0
push 0xc
push dword [ebp - 0x6c]
call fcn.004aa103
add esp, 8
mov dword [ebp - 0x6c], 0
mov byte [ebp - 4], 2
add dword [esi + 8], 0xffffffff
jne 0x4a3be0
cmp dword [esi + 4], 0
je 0x4a3bcb
push 0
push dword [esi]
call fcn.004b3b9e
add esp, 8
mov dword [esi], eax
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.004aa103
add esp, 8
mov dword [ebp - 0x88], 0
mov edi, dword [ebp - 0x70]
mov byte [ebp - 4], 0
cmp ebx, 0xffffffff
je 0x4a3bf3
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a9913
mov esp, ebp
pop ebp
ret