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

Disassembly:
sub esp, 0x20
mov eax, dword [0x451540]
xor eax, esp
mov dword [esp + 0x1c], eax
push ebp
xor ebp, ebp
cmp dword [esi + 0x100c], ebp
push edi
mov edi, ecx
jne 0x43b325
mov eax, dword [esi + 0x1098]
cmp eax, 5
jne 0x43b290
mov dword [esi + 0x1098], 1
mov ecx, dword [esi + 0x1098]
cmp ecx, 2
jne 0x43b285
mov eax, dword [esi + 0x1084]
cmp eax, ebp
je 0x43b2a3
push eax
call fcn.00402196
add esp, 4
mov eax, dword [esi + 0x108c]
cmp eax, ebp
je 0x43b2b6
push eax
call fcn.00402196
add esp, 4
mov eax, dword [esi + 0x109c]
cmp eax, ebp
je 0x43b2cd
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [esi + 0x109c], ebp
push ebp
push 0x80
push 3
push ebp
push 1
push SysReAllocStringLen
push edi
mov dword [esi + 0x108c], ebp
mov dword [esi + 0x1084], ebp
mov dword [esi + 0x1070], ebp
mov dword [esi + 0x105c], ebp
mov dword [esi + 0x1050], ebp
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x43b325
lea edx, [esp + 0x10]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
mov dword [esp + 0xc], eax
jne 0x43b338
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.0042485a
add esp, 0x20
ret
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
push ebp
lea eax, [esp + 0x10]
push eax
push 0xd
lea ecx, [esp + 0x24]
push ecx
push edi
call ebx
cmp dword [esp + 0xc], 0xd
jne 0x43b42e
cmp byte [esp + 0x18], 0x47
jne 0x43b42e
cmp byte [esp + 0x19], 0x49
jne 0x43b42e
cmp byte [esp + 0x1a], 0x46
jne 0x43b42e
cmp byte [esp + 0x1b], 0x38
jne 0x43b42e
mov al, byte [esp + 0x1c]
cmp al, 0x37
je 0x43b396
cmp al, 0x39
jne 0x43b42e
cmp byte [esp + 0x1d], 0x61
jne 0x43b42e
movzx ecx, byte [esp + 0x23]
movzx edx, word [esp + 0x1e]
movzx eax, word [esp + 0x20]
mov dword [esi + 0x104c], ecx
movzx ecx, byte [esp + 0x22]
test cl, cl
mov dword [esi + 0x10a0], edx
mov dword [esi + 0x10a4], eax
jns 0x43b449
and ecx, 7
add ecx, 1
mov eax, 1
shl eax, cl
lea edx, [eax + eax*2]
push edx
mov dword [esi + 0x105c], eax
call fcn.0040219b
add esp, 4
push ebp
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esi + 0x105c]
lea edx, [ecx + ecx*2]
push edx
push eax
push edi
mov dword [esi + 0x1084], eax
call ebx
mov eax, dword [esi + 0x105c]
lea eax, [eax + eax*2]
cmp dword [esp + 0xc], eax
je 0x43b449
mov ecx, dword [esi + 0x1084]
push ecx
call fcn.00402196
add esp, 4
mov dword [esi + 0x1084], ebp
mov dword [esi + 0x105c], ebp
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop ebx
pop edi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.0042485a
add esp, 0x20
ret
mov eax, dword [esi + 0x105c]
add eax, 4
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
sub eax, edx
push eax
mov dword [esi + 0x1050], eax
call fcn.0040219b
mov edx, dword [esi + 0x1050]
add esp, 4
push ebp
lea ecx, [esp + 0x10]
push ecx
push edx
push eax
push edi
mov dword [esi + 0x108c], eax
mov dword [esi + 0x1090], eax
call ebx
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x28]
pop ebx
pop edi
pop ebp
xor ecx, esp
mov eax, 1
call fcn.0042485a
add esp, 0x20
ret