Function at 0x10018b64
Capabilities:
Check if file exists
Get file size
Read file on windows

Disassembly:
push 0xbbc
mov eax, 0x100416cd
call fcn.10021f0e
mov edi, edx
mov eax, dword [edi]
xor ebx, ebx
mov esi, ecx
mov dword [ebp - 0xbc8], edi
cmp dword [eax - 0xc], ebx
je 0x10018e89
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10018e89
push edi
push esi
lea eax, [ebp - 0xba4]
call fcn.10018a66
test al, al
jne 0x10018bbd
push str.CFileSendingThread::SendOneFile__:_make_spy_header_failed.
call fcn.10003e3a
pop ecx
or eax, 0xffffffff
jmp 0x10018e8c
call fcn.10004ba4
mov dword [ebp - 0xbb0], eax
cmp eax, 0xffffffff
jne 0x10018bd9
push str.CFileSendingThread::SendOneFile__:_socket___error
call fcn.10003fa8
jmp 0x10018bb4
push 2
pop eax
push 0x3f
mov word [ebp - 0x860], ax
lea eax, [ebp - 0x4f]
push ebx
push eax
mov byte [ebp - 0x50], bl
call fcn.10024270
mov esi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
add esp, 0xc
push ebx
push ebx
push 0x40
lea eax, [ebp - 0x50]
push eax
push 0xffffffffffffffff
push dword [0x1005bb9c]
push ebx
push ebx
call esi
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [ebp - 0x85c], eax
movzx eax, word [0x10059a04]
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x85e], ax
lea eax, [ebp - 0xbc4]
push eax
push 0x1006
push dword [ebp - 0xbb0]
mov dword [ebp - 0xbc4], 0xea60
call fcn.10004cc3
lea eax, [ebp - 0xbc4]
push eax
push 0x1005
push dword [ebp - 0xbb0]
call fcn.10004cc3
lea eax, [ebp - 0x860]
push eax
push dword [ebp - 0xbb0]
call fcn.10004c1d
add esp, 0x20
cmp eax, 0xffffffff
jne 0x10018c90
push str.CFileSendingThread::SendOneFile__:_Connect_to_server_failed
jmp 0x10018bd2
push 0x5c
mov ecx, edi
call fcn.10002215
lea edx, [eax + 1]
lea eax, [ebp - 0xbc0]
push eax
mov ecx, edi
call fcn.100042f8
push ebx
push ebx
push 0x104
lea eax, [ebp - 0xb96]
push eax
push 0xffffffffffffffff
mov dword [ebp - 4], ebx
push dword [ebp - 0xbc0]
push ebx
push 0xfde9
call esi
push 0x7ff
lea eax, [ebp - 0x84f]
push ebx
push eax
mov byte [ebp - 0x850], bl
call fcn.10024270
add esp, 0xc
or dword [ebp - 0xbac], 0xffffffff
mov dword [ebp - 0xba8], ebx
cmp dword [ebp - 0xbac], 0xffffffff
jne 0x10018daa
mov edi, dword [edi]
push ebx
push 0x80
push 3
push ebx
push ebx
push connect
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xbac], eax
cmp eax, 0xffffffff
je 0x10018e1f
lea ecx, [ebp - 0xbbc]
push ecx
push eax
mov dword [ebp - 0xbbc], ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0xba8], eax
cmp dword [ebp - 0xbbc], ebx
ja 0x10018e34
mov ecx, 0xd0
lea esi, [ebp - 0xba4]
lea edi, [ebp - 0x850]
rep movsd dword es:[edi], dword [esi]
push ebx
lea eax, [ebp - 0xbb8]
push eax
push 0x4be
lea eax, [ebp - 0x50e]
push eax
push dword [ebp - 0xbac]
movsw word es:[edi], word [esi]
mov dword [ebp - 0xbb8], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x10018e4c
mov ecx, dword [ebp - 0xbb8]
sub dword [ebp - 0xba8], ecx
mov edi, dword [ebp - 0xbc8]
lea eax, [ecx + 0x342]
jmp 0x10018df2
mov esi, 0x800
push esi
lea eax, [ebp - 0x850]
push ebx
push eax
mov dword [ebp - 0xbb4], ebx
call fcn.10024270
add esp, 0xc
push ebx
lea eax, [ebp - 0xbb4]
push eax
push esi
lea eax, [ebp - 0x850]
push eax
push dword [ebp - 0xbac]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x10018e4c
mov eax, dword [ebp - 0xbb4]
sub dword [ebp - 0xba8], eax
cmp eax, ebx
jle 0x10018e11
push eax
lea eax, [ebp - 0x850]
push eax
push dword [ebp - 0xbb0]
call fcn.10004c4d
add esp, 0xc
cmp eax, 0xffffffff
je 0x10018e40
cmp dword [ebp - 0xba8], ebx
ja 0x10018cf3
jmp 0x10018e5f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CFileSendingThread::SendOneFile__:_open_file_failed__d.
call fcn.10003e3a
pop ecx
pop ecx
jmp 0x10018e6b
push str.CFileSendingThread::SendOneFile__:_cannot_send_bigger_than_4G_file.
call fcn.10003e3a
jmp 0x10018e5e
push str.CFileSendingThread::SendOneFile__:_send___failed
call fcn.10003fa8
jmp 0x10018e5e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CFileSendingThread::SendOneFile__:_read_file_failed__d.
call fcn.10003e3a
pop ecx
pop ecx
push dword [ebp - 0xbac]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0xbb0]
call fcn.10004bcf
pop ecx
mov ecx, dword [ebp - 0xbc0]
add ecx, 0xfffffff0
call fcn.10002c37
xor eax, eax
jmp 0x10018e8c
push 5
pop eax
call fcn.10021f58
ret