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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd78
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x168], eax
xor eax, eax
push ebp
push 0x403357
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
push 0
push 0
push 3
push 0
push 1
push 0x80000000
lea edx, [ebp - 0x168]
xor eax, eax
call fcn.00401318
mov eax, dword [ebp - 0x168]
call fcn.004019bc
push eax
call sub.kernel32.dll_CreateFileA
mov esi, eax
push 0
push 0
push 0
push esi
call sub.kernel32.dll_SetFilePointer
push 0
lea eax, [ebp - 4]
push eax
push 0x40
lea eax, [ebp - 0x44]
push eax
push esi
call sub.kernel32.dll_ReadFile
cmp dword [ebp - 4], 0x40
jne 0x403328
push 0
push 0
mov eax, dword [ebp - 8]
push eax
push esi
call sub.kernel32.dll_SetFilePointer
push 0
lea eax, [ebp - 4]
push eax
push 0xf8
lea eax, [ebp - 0x13c]
push eax
push esi
call sub.kernel32.dll_ReadFile
cmp dword [ebp - 4], 0xf8
jne 0x403320
push 1
push 0
movzx eax, word [ebp - 0x136]
dec eax
shl eax, 3
lea eax, [eax + eax*4]
push eax
push esi
call sub.kernel32.dll_SetFilePointer
push 0
lea eax, [ebp - 4]
push eax
push 0x28
lea eax, [ebp - 0x164]
push eax
push esi
call sub.kernel32.dll_ReadFile
mov edi, dword [ebp - 0x150]
add edi, dword [ebp - 0x154]
push 0
push esi
call sub.kernel32.dll_GetFileSize
sub eax, edi
test eax, eax
jbe 0x403318
push 0
push 0
push edi
push esi
call sub.kernel32.dll_SetFilePointer
push 0
lea eax, [ebp - 4]
push eax
push 0x48
push 0x40619c
push esi
call sub.kernel32.dll_ReadFile
cmp dword [ebp - 4], 0x48
jne 0x403310
lea eax, [ebp - 0x270]
mov edx, 0x4061a6
call fcn.00401800
mov eax, dword [ebp - 0x270]
lea edx, [ebp - 0x26c]
call fcn.00402f8c
mov edx, dword [ebp - 0x26c]
lea eax, [ebp - 0x268]
mov ecx, 0xff
call fcn.00401824
lea edx, [ebp - 0x268]
mov eax, 0x4061a6
mov cl, 1
call fcn.00401378
lea eax, [ebp - 0x278]
mov edx, 0x4061a8
call fcn.00401800
mov eax, dword [ebp - 0x278]
lea edx, [ebp - 0x274]
call fcn.00402f8c
mov edx, dword [ebp - 0x274]
lea eax, [ebp - 0x268]
mov ecx, 0xff
call fcn.00401824
lea edx, [ebp - 0x268]
mov eax, 0x4061a8
mov cl, 1
call fcn.00401378
lea eax, [ebp - 0x280]
mov edx, 0x4061dd
call fcn.00401800
mov eax, dword [ebp - 0x280]
lea edx, [ebp - 0x27c]
call fcn.00402f8c
mov edx, dword [ebp - 0x27c]
lea eax, [ebp - 0x268]
mov ecx, 0xff
call fcn.00401824
lea edx, [ebp - 0x268]
mov eax, 0x4061dd
mov cl, 1
call fcn.00401378
lea eax, [ebp - 0x288]
mov edx, 0x4061aa
call fcn.00401800
mov eax, dword [ebp - 0x288]
lea edx, [ebp - 0x284]
call fcn.00402f8c
mov edx, dword [ebp - 0x284]
lea eax, [ebp - 0x268]
mov ecx, 0xff
call fcn.00401824
lea edx, [ebp - 0x268]
mov eax, 0x4061aa
mov cl, 0x32
call fcn.00401378
mov eax, dword [0x4061e0]
call fcn.004010e8
mov dword [0x4061e4], eax
push 0
push 0
add edi, 0x48
push edi
push esi
call sub.kernel32.dll_SetFilePointer
push 0
lea eax, [ebp - 4]
push eax
mov eax, dword [0x4061e0]
push eax
mov eax, dword [0x4061e4]
push eax
push esi
call sub.kernel32.dll_ReadFile
mov eax, dword [ebp - 4]
cmp eax, dword [0x4061e0]
jne 0x403308
mov bl, 1
push esi
call sub.kernel32.dll_CloseHandle
jmp 0x40332e
push esi
call sub.kernel32.dll_CloseHandle
jmp 0x40332e
push esi
call sub.kernel32.dll_CloseHandle
jmp 0x40332e
push esi
call sub.kernel32.dll_CloseHandle
jmp 0x40332e
push esi
call sub.kernel32.dll_CloseHandle
jmp 0x40332e
push esi
call sub.kernel32.dll_CloseHandle
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40335e
lea eax, [ebp - 0x288]
mov edx, 8
call fcn.004016c0
lea eax, [ebp - 0x168]
call fcn.0040169c
ret