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

Disassembly:
push 0x9c
mov eax, 0x4869ee
call fcn.0045edb6
mov edx, ecx
mov dword [ebp - 0x9c], edx
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x98], edi
call fcn.0041b469
xor esi, esi
lea eax, [edx + 4]
mov dword [ebp - 4], esi
cmp dword [eax + 0x10], esi
je 0x41056b
push eax
lea ecx, [ebp - 0x28]
call fcn.0041e62b
push dword [ebp + 0xc]
lea ecx, [ebp - 0x2c]
call fcn.0041c39d
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.0041bada
jmp 0x41078a
lea ecx, [ebp - 0x48]
call fcn.004103be
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 0x410778
lea eax, [ebp - 0xa8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x4105c2
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x410778
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x98], eax
cmp ecx, esi
jg 0x4105b6
jl 0x4105b6
cmp eax, esi
jbe 0x4105b6
cmp ecx, esi
jl 0x4105eb
jg 0x4105b6
cmp eax, 0x7f8
jae 0x4105b6
push 0x800
call fcn.0045e3ba
mov esi, eax
mov dword [esp], 0x800
push 0
push esi
mov dword [ebp - 0x94], esi
call fcn.004606c0
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 0x41076b
cmp dword [ebp - 0x90], 0
jbe 0x41076b
mov esi, dword [ebp - 0x94]
lea ecx, [ebp - 0x80]
lea eax, [esi + 2]
push eax
call fcn.0041ba7d
push esi
call fcn.0045e17c
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], 0x49d9ec
call fcn.0041ba7d
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x8c]
push eax
lea ecx, [ebp - 0x80]
call fcn.0041dc32
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 3
call fcn.0041bf1b
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x8c]
push 0x1c
cdq
pop ecx
idiv ecx
cmp eax, 2
jb 0x41074e
push dword [ebp - 0x8c]
lea ecx, [ebp - 0x64]
call fcn.0041bada
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x8c]
lea ecx, [ecx + 0x1c]
call fcn.0041c38a
cmp dword [ebp - 0x50], 0xa
mov esi, eax
jle 0x410746
test esi, esi
je 0x410746
mov ebx, dword [ebp - 0x9c]
lea ecx, [ebx + 4]
cmp dword [ecx + 0x10], 0
jne 0x410746
lea eax, [ebp - 0x60]
push eax
call fcn.0041e62b
push dword [ebp + 0xc]
lea ecx, [ebp - 0x64]
mov dword [ebx + 0x1c], esi
call fcn.0041c39d
lea eax, [ebp - 0x64]
mov ecx, edi
push eax
call fcn.0041bada
lea ecx, [ebp - 0x64]
call fcn.0041bf1b
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 6
call fcn.00404495
lea ecx, [ebp - 0x80]
call fcn.0041bf1b
jmp 0x410782
lea ecx, [ebp - 0x64]
call fcn.0041bf1b
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 7
call fcn.00404495
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 1
call fcn.0041bf1b
jmp 0x410778
mov esi, dword [ebp - 0x94]
push esi
call fcn.0045e17c
pop ecx
mov dl, byte [ebp + 0xc]
mov ecx, edi
call fcn.0041079c
lea ecx, [ebp - 0x48]
call fcn.0041bf1b
lea ecx, [ebp - 0x2c]
call fcn.0041bf1b
mov eax, edi
call fcn.0045ed60
ret 8