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

Disassembly:
push 0x9c
mov eax, 0x486213
call fcn.0045e574
mov edx, ecx
mov dword [ebp - 0x9c], edx
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x98], edi
call fcn.0041b087
xor esi, esi
lea eax, [edx + 4]
mov dword [ebp - 4], esi
cmp dword [eax + 0x10], esi
je 0x4101cb
push eax
lea ecx, [ebp - 0x28]
call fcn.0041e21c
push dword [ebp + 0xc]
lea ecx, [ebp - 0x2c]
call fcn.0041bfa4
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.0041b6f8
jmp 0x4103ea
lea ecx, [ebp - 0x48]
call fcn.0041001e
push esi
push 0x80
push 3
push esi
mov byte [ebp - 4], 1
lea eax, [ebp - 0x44]
cmp dword [ebp - 0x30], 8
push 1
cmovae eax, dword [ebp - 0x44]
push connect
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4103d8
lea eax, [ebp - 0xa8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x410222
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4103d8
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x98], eax
cmp ecx, esi
jg 0x410216
jl 0x410216
cmp eax, esi
jbe 0x410216
cmp ecx, esi
jl 0x41024b
jg 0x410216
cmp eax, 0x7f8
jae 0x410216
push 0x800
call fcn.0045dc17
mov esi, eax
mov dword [esp], 0x800
push 0
push esi
mov dword [ebp - 0x94], esi
call fcn.0045fe80
and dword [ebp - 0x90], 0
lea eax, [ebp - 0x90]
add esp, 0xc
push 0
push eax
push dword [ebp - 0x98]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x4103cb
cmp dword [ebp - 0x90], 0
jbe 0x4103cb
mov esi, dword [ebp - 0x94]
lea ecx, [ebp - 0x80]
lea eax, [esi + 2]
push eax
call fcn.0041b69b
push esi
call fcn.0045dbd4
xor eax, eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x64]
mov dword [esp], 0x49c944
call fcn.0041b69b
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x8c]
push eax
lea ecx, [ebp - 0x80]
call fcn.0041d823
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 3
call fcn.0041bb22
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x8c]
push 0x1c
cdq
pop ecx
idiv ecx
cmp eax, 2
jb 0x4103ae
push dword [ebp - 0x8c]
lea ecx, [ebp - 0x64]
call fcn.0041b6f8
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x8c]
lea ecx, [ecx + 0x1c]
call fcn.0041bf91
cmp dword [ebp - 0x50], 0xa
mov esi, eax
jle 0x4103a6
test esi, esi
je 0x4103a6
mov ebx, dword [ebp - 0x9c]
lea ecx, [ebx + 4]
cmp dword [ecx + 0x10], 0
jne 0x4103a6
lea eax, [ebp - 0x60]
push eax
call fcn.0041e21c
push dword [ebp + 0xc]
lea ecx, [ebp - 0x64]
mov dword [ebx + 0x1c], esi
call fcn.0041bfa4
lea eax, [ebp - 0x64]
mov ecx, edi
push eax
call fcn.0041b6f8
lea ecx, [ebp - 0x64]
call fcn.0041bb22
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 6
call fcn.00404357
lea ecx, [ebp - 0x80]
call fcn.0041bb22
jmp 0x4103e2
lea ecx, [ebp - 0x64]
call fcn.0041bb22
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 7
call fcn.00404357
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 1
call fcn.0041bb22
jmp 0x4103d8
mov esi, dword [ebp - 0x94]
push esi
call fcn.0045dbd4
pop ecx
mov dl, byte [ebp + 0xc]
mov ecx, edi
call fcn.004103fc
lea ecx, [ebp - 0x48]
call fcn.0041bb22
lea ecx, [ebp - 0x2c]
call fcn.0041bb22
mov eax, edi
call fcn.0045e51e
ret 8