Function at 0x43d500
Capabilities:
Get file size
Read file on windows

Disassembly:
push 0x3dc
mov eax, 0x4a1564
call fcn.00482ae5
mov dword [ebp - 0x3e8], ecx
xor esi, esi
lea ecx, [ebp - 0x9c]
push 0x4d3b20
mov edi, esi
mov ebx, esi
call fcn.004270c3
mov dword [ebp - 4], esi
mov eax, dword [0x4d3ba8]
cmp word [eax], si
jne 0x43d5e3
mov eax, dword [ebp - 0x3e8]
test eax, eax
je 0x43d552
push eax
lea ecx, [ebp - 0x9c]
call fcn.004270f8
push esi
push 0x80
push 3
push esi
push 1
push SysReAllocString
push dword [ebp - 0x9c]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x3e0], eax
cmp eax, 0xffffffff
jne 0x43d58d
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9c]
call fcn.004270e8
jmp 0x43d75c
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
test ebx, ebx
je 0x43d579
push ebx
mov dword [ebp - 0x3e4], esi
call fcn.004827b9
pop ecx
push esi
mov edi, eax
lea eax, [ebp - 0x3e4]
push eax
push ebx
push edi
push dword [ebp - 0x3e0]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp - 0x3e0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x3e4], ebx
je 0x43d749
push edi
call fcn.00482102
pop ecx
mov edi, esi
jmp 0x43d579
push eax
lea ecx, [ebp - 0x9c]
call fcn.004270f8
cmp byte [0x4d3a88], 0
je 0x43d605
mov eax, dword [0x4d6808]
mov dword [ebp - 0x3e0], eax
jmp 0x43d664
push 0x4d3c30
lea ecx, [ebp - 0x1ac]
call fcn.004270c3
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x1ac]
call fcn.0041ab24
mov ecx, dword [ebp - 0x9c]
xor edx, edx
push eax
push 2
mov dword [ebp - 0x3e4], eax
call fcn.00413a5f
mov dword [ebp - 0x3e0], eax
mov eax, dword [ebp - 0x3e4]
pop ecx
pop ecx
test eax, eax
je 0x43d653
push eax
call fcn.00482102
pop ecx
lea ecx, [ebp - 0x1ac]
call fcn.004270e8
mov eax, dword [ebp - 0x3e0]
test eax, eax
je 0x43d579
push 0xffffffffffffffff
push dword [ebp - 0x3e8]
lea ecx, [ebp - 0x124]
mov dword [ebp - 0x3e4], esi
call fcn.0042709f
push 0x4ad330
push 0x4ac5e8
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 2
call fcn.00427528
mov edx, dword [ebp - 0x124]
lea eax, [ebp - 0x3dc]
push eax
lea eax, [ebp - 0x3e4]
push eax
push ecx
mov ecx, dword [ebp - 0x3e0]
call fcn.00413ad9
add esp, 0xc
test eax, eax
je 0x43d6d5
lea ecx, [ebp - 0x124]
call fcn.004270e8
jmp 0x43d579
mov ebx, dword [ebp - 0x1b0]
test ebx, ebx
je 0x43d6c5
push ebx
call fcn.004827b9
mov edx, dword [ebp - 0x3e4]
mov edi, eax
pop ecx
mov ecx, dword [ebp - 0x3e0]
push 3
push ebx
push edi
call fcn.00413b0c
add esp, 0xc
test eax, eax
je 0x43d72a
cmp eax, 0x600
je 0x43d72a
push edi
call fcn.00482102
cmp byte [0x4d3a88], 0
mov edi, esi
pop ecx
jne 0x43d6c5
mov ecx, dword [ebp - 0x3e0]
call fcn.00413b3f
jmp 0x43d6c5
cmp byte [0x4d3a88], 0
jne 0x43d73e
mov ecx, dword [ebp - 0x3e0]
call fcn.00413b3f
lea ecx, [ebp - 0x124]
call fcn.004270e8
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9c]
call fcn.004270e8
test edi, edi
jne 0x43d7ce
push esi
push 0x80
push 3
push esi
push 1
push SysReAllocString
push dword [ebp - 0x3e8]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x3e8], eax
cmp eax, 0xffffffff
je 0x43d7ca
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
test ebx, ebx
je 0x43d7ca
push ebx
mov dword [ebp - 0x3e0], esi
call fcn.004827b9
pop ecx
push esi
mov edi, eax
lea eax, [ebp - 0x3e0]
push eax
push ebx
push edi
push dword [ebp - 0x3e8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp - 0x3e8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x3e0], ebx
jne 0x43d7d9
test edi, edi
je 0x43d7e0
mov edx, ebx
mov ecx, edi
call fcn.0043d7e8
mov esi, eax
push edi
call fcn.00482102
pop ecx
mov eax, esi
call fcn.00482aa3
ret