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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x440220
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x10f8
call fcn.00423590
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xffffffff
jne 0x401186
push 0x44f320
push 0x193
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040105d
add esp, 0xc
xor eax, eax
jmp 0x40145c
mov dword [ebp - 4], 0
push 0
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x10c8], eax
lea eax, [ebp - 0x10e0]
push eax
push 0
push 0
mov ecx, dword [ebp - 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
jne 0x4011d3
mov dword [ebp - 0x10f4], 0x44f348
push 0x449698
lea edx, [ebp - 0x10f4]
push edx
call fcn.004236ae
lea eax, [ebp - 0x10d8]
push eax
lea ecx, [ebp - 0x10e0]
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
jne 0x401206
mov dword [ebp - 0x10f8], 0x44f368
push 0x449698
lea edx, [ebp - 0x10f8]
push edx
call fcn.004236ae
push 0x50
lea eax, [ebp - 0x10b4]
push eax
lea ecx, [ebp - 0x10d8]
push ecx
call fcn.0040e240
add esp, 0xc
lea edx, [ebp - 0x10c4]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
push 0x50
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x10c4]
push ecx
call fcn.0040e240
add esp, 0xc
push 0x44f384
mov edx, dword [ebp + 8]
push edx
call fcn.0040d6c0
add esp, 8
lea eax, [ebp - 0x64]
push eax
push str.Date:__s_r_n
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040d6c0
add esp, 0xc
push str.Server:_Apache_2.0.47__Unix__r_n
mov edx, dword [ebp + 8]
push edx
call fcn.0040d6c0
add esp, 8
lea eax, [ebp - 0x10b4]
push eax
push str.Last_Modified:__s_r_n
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040d6c0
add esp, 0xc
push str.ETag:__69a78_a4d_f1df0140__r_n
mov edx, dword [ebp + 8]
push edx
call fcn.0040d6c0
add esp, 8
push str.Content_Location:_http:__www.microsoft.com_Default.htm
mov eax, dword [ebp + 8]
push eax
call fcn.0040d6c0
add esp, 8
push str.Accept_Ranges:_bytes_r_n
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040d6c0
add esp, 8
mov edx, dword [ebp - 0x10c8]
push edx
push str.Content_Length:__ld_r_n
mov eax, dword [ebp + 8]
push eax
call fcn.0040d6c0
add esp, 0xc
push 0x2e
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00423280
add esp, 8
push eax
call fcn.00402d09
add esp, 4
mov dword [ebp - 0x1100], eax
mov edx, dword [ebp - 0x1100]
push edx
push str.Content_Type:__s_r_n
mov eax, dword [ebp + 8]
push eax
call fcn.0040d6c0
add esp, 0xc
push str.Connection:_keep_alive_r_n
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040d6c0
add esp, 8
push 0x44f490
mov edx, dword [ebp + 8]
push edx
call fcn.0040d6c0
add esp, 8
cmp dword [ebp - 0x10c8], 0
jbe 0x4013f7
mov dword [ebp - 0x10e4], 0
push 0
lea eax, [ebp - 0x10e4]
push eax
push 0x1000
lea ecx, [ebp - 0x1064]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x40137a
push str._nRead_failure.
call fcn.00423230
add esp, 4
jmp 0x4013f7
push 0
mov eax, dword [ebp - 0x10e4]
push eax
lea ecx, [ebp - 0x1064]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0040d100
mov dword [ebp - 0x1104], eax
mov eax, dword [ebp - 0x1104]
mov dword [ebp - 0x10e8], eax
mov ecx, dword [ebp - 0x10e8]
cmp ecx, dword [ebp - 0x10e4]
je 0x4013e0
call fcn.0040cf70
mov dword [ebp - 0x1108], eax
mov edx, dword [ebp - 0x1108]
mov dword [ebp - 0x10ec], edx
mov eax, dword [ebp - 0x10ec]
push eax
push str._nError__d:_Send_failure.
call fcn.00423230
add esp, 8
jmp 0x4013f7
mov ecx, dword [ebp - 0x10c8]
sub ecx, dword [ebp - 0x10e4]
mov dword [ebp - 0x10c8], ecx
jmp 0x401331
jmp 0x401446
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret