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

Disassembly:
push edi
push esi
push ebx
mov ebx, dword [esp + 0x10]
cmp dword [0x423d78], 0
je 0x417e72
cmp dword [0x41c5c0], 0
je 0x417e77
cmp dword [0x41c578], 0
je 0x417e77
call fcn.00417c68
push 0x41cab4
call fcn.004108c8
add esp, 4
test ebx, ebx
jne 0x417ea3
push 0x78
call fcn.00405aec
add esp, 4
cmp eax, 1
je 0x417eb1
call fcn.00417140
mov eax, ebx
jmp 0x4181a2
push ebx
push 0x41c9b0
call sub.crtdll.dll_strcpy
add esp, 8
mov eax, dword [0x41e708]
push eax
call fcn.0040c960
push 0xf
call fcn.0041242c
push 0
push pe_nt_image_headers32
push 4
push 0
push 0
push 0xc0000000
push 0x41c9b0
call sub.kernel32.dll_CreateFileA
mov dword [0x41c9ac], eax
add esp, 8
cmp eax, 0xffffffff
je 0x418163
mov edx, dword [0x42469c]
test edx, edx
jne 0x417f0d
push 2
push edx
push edx
push eax
call sub.kernel32.dll_SetFilePointer
cmp eax, 0xffffffff
je 0x418163
push 0x41770e
call fcn.00417490
add esp, 4
test eax, eax
je 0x418163
push 0x423c78
mov eax, dword [0x4269a0]
push eax
call fcn.00417594
add esp, 8
test eax, eax
je 0x418163
push 0x423f88
mov eax, dword [0x4269a4]
push eax
call fcn.00417594
add esp, 8
test eax, eax
je 0x418163
push 0x42418c
mov eax, dword [0x4269a8]
push eax
call fcn.00417594
add esp, 8
test eax, eax
je 0x418163
push 0x424394
mov eax, dword [0x4269ac]
push eax
call fcn.00417594
add esp, 8
test eax, eax
je 0x418163
push 0x423d80
mov eax, dword [0x4269b0]
push eax
call fcn.00417594
add esp, 8
test eax, eax
je 0x418163
push 0x423e88
mov eax, dword [0x4269b4]
push eax
call fcn.00417594
add esp, 8
test eax, eax
je 0x418163
mov eax, dword [0x424390]
dec eax
mov eax, dword [eax*4 + 0x4269e8]
push eax
mov eax, dword [0x4269b8]
push eax
call fcn.00417594
add esp, 8
test eax, eax
je 0x418163
call fcn.004177e0
test eax, eax
je 0x418163
push 0x417e4a
call fcn.00417490
add esp, 4
test eax, eax
je 0x4181a2
mov eax, dword [0x41c9ac]
push eax
call sub.kernel32.dll_SetEndOfFile
test eax, eax
je 0x418163
push 0
mov eax, dword [0x41c9ac]
push eax
call sub.kernel32.dll_GetFileSize
mov dword [0x423e80], eax
cmp eax, 0xffffffff
je 0x418163
call fcn.00417140
mov eax, dword [0x423e80]
inc eax
push eax
push 2
call sub.kernel32.dll_GlobalAlloc
push eax
call sub.kernel32.dll_GlobalLock
mov dword [0x42428c], eax
test eax, eax
je 0x418163
push 0
push 0
push 0
mov eax, dword [0x41c9ac]
push eax
call sub.kernel32.dll_SetFilePointer
cmp eax, 0xffffffff
je 0x418163
push 0
push 0x41d0d0
mov eax, dword [0x423e80]
push eax
mov eax, dword [0x42428c]
push eax
mov eax, dword [0x41c9ac]
push eax
call sub.kernel32.dll_ReadFile
test eax, eax
je 0x418163
mov eax, dword [0x423e80]
cmp dword [0x41d0d0], eax
jne 0x418163
mov eax, dword [0x41c9ac]
push eax
call sub.kernel32.dll_CloseHandle
test eax, eax
je 0x418163
mov eax, dword [0x423e80]
mov edx, dword [0x42428c]
mov byte [edx + eax - 4], 0
xor ebx, ebx
mov eax, dword [0x42428c]
mov byte [0x42459c], 0
mov dword [0x424594], 0
mov dword [0x424188], eax
mov dword [0x423e84], eax
mov edi, dword [0x424188]
call fcn.00416a84
mov esi, eax
inc ebx
test esi, esi
jne 0x4180f4
mov eax, dword [0x41e5cc]
push eax
call fcn.0040c960
dec ebx
mov dword [0x424188], edi
mov dword [0x423e84], edi
mov ecx, esi
mov dword [0x424594], esi
mov dword [0x426998], ebx
mov byte [0x42459c], cl
call fcn.00416a84
mov eax, dword [0x424188]
mov dword [0x424598], eax
call fcn.004095b0
push 1
push 0x100a
call fcn.0040d31c
push 0x41cab4
call fcn.004108c8
mov eax, 1
jmp 0x41819f
mov eax, dword [0x41c9ac]
cmp eax, 0xffffffff
je 0x418173
push eax
call sub.kernel32.dll_CloseHandle
mov eax, dword [0x41e5cc]
push eax
call fcn.0040c960
push 0x41c9b0
push 1
call fcn.004094f8
call fcn.00417140
mov byte [0x41cab4], 0
push 0
call fcn.004108c8
xor eax, eax
add esp, 0x10
pop ebx
pop esi
pop edi
ret