Function at 0x140005a70
Capabilities:
Read and send data from client to server
Read file on windows
Send data
Send data on socket

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd08
pxor xmm0, xmm0
mov ebx, dword [rsp + 0xd70]
mov qword [rsp + 0xd50], rcx
mov rcx, r8
mov rsi, rdx
mov rdi, r8
mov qword [rsp + 0xd68], r9
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rsp + 0x80], xmm0
movups xmmword [rsp + 0x90], xmm0
call sym.strlen
sub eax, 1
mov ebp, eax
jns 0x140005adf
jmp 0x1400060ca
lea rax, [rbp - 1]
test ebp, ebp
je 0x140005c88
mov rbp, rax
cmp byte [rdi + rbp], 0x5c
jne 0x140005ad0
lea rdx, [rsp + 0x70]
mov rcx, rdi
call dbg.stat
test eax, eax
js 0x140005c98
mov eax, dword [rsp + 0x84]
lea rdx, [0x14001051b]
mov rcx, rdi
mov dword [rsp + 0x58], eax
call sym.fopen
mov qword [rsp + 0x40], rax
test rax, rax
je 0x140005c98
lea r15, [rdi + rbp + 1]
lea r13, [rsp + 0x68]
xor edi, edi
mov rcx, r15
call sym.strlen
mov rbp, qword [rsi]
mov r12, qword [sym.imp.WS2_32.dll_send]
mov esi, 8
mov r14, rax
bswap rax
mov qword [rsp + 0x68], rax
jmp 0x140005b67
cdqe
add rdi, rax
cmp rdi, 7
ja 0x140005cd0
mov r8d, esi
lea rdx, [r13 + rdi]
mov r9d, ebx
mov rcx, rbp
sub r8d, edi
call r12
cmp eax, 0xffffffff
jne 0x140005b58
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rsi, [rsp + 0x8e0]
mov r9d, 0x400
xor edx, edx
mov edi, eax
mov ecx, 0x1300
lea rax, [rsp + 0xa0]
mov qword [rsp + 0xa0], 0
mov r8d, edi
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov r8d, edi
mov edx, 2
mov rcx, rsi
mov r9, qword [rsp + 0xa0]
lea rdi, [rsp + 0x4c0]
call sym.tb_err
mov rcx, qword [rsp + 0xa0]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov qword [rsp + 0x50], rdi
mov ecx, 0x83
mov edx, dword [rsp + 0x8f0]
rep movsq qword [rdi], qword [rsi]
test edx, edx
je 0x140005d09
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov ecx, 0x83
mov dword [rsp + 0x4d0], edx
rep movsq qword [rdi], qword [rsi]
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x50], edx
call sym.fclose
mov edx, dword [rsp + 0x50]
mov rsi, qword [rsp + 0x48]
mov ecx, 0x83
mov rdi, qword [rsp + 0xd50]
mov dword [rsp + 0xb0], edx
rep movsq qword [rdi], qword [rsi]
mov rax, qword [rsp + 0xd50]
add rsp, 0xd08
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
sub ebp, 1
movsxd rbp, ebp
jmp 0x140005ae5
mov rsi, qword [sym.imp.msvcrt.dll__errno]
call rsi
mov ecx, dword [rax]
call sym.strerror
mov rbx, rax
call rsi
mov rcx, qword [rsp + 0xd50]
mov r9, rbx
mov edx, 1
movsxd r8, dword [rax]
call sym.tb_err
jmp 0x140005c66
lea rax, [rsp + 0x4c0]
xor edx, edx
xor r9d, r9d
xor r8d, r8d
mov rcx, rax
mov qword [rsp + 0x50], rax
call sym.tb_err.constprop.0
mov edx, dword [rsp + 0x4d0]
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x48], rax
test edx, edx
jne 0x140005c1f
mov edi, r14d
xor esi, esi
test r14, r14
jne 0x140005d2e
jmp 0x140006020
cdqe
add rsi, rax
cmp rsi, r14
jae 0x140006020
mov r8d, edi
lea rdx, [r15 + rsi]
mov r9d, ebx
mov rcx, rbp
sub r8d, esi
call r12
cmp eax, 0xffffffff
jne 0x140005d20
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rsi, [rsp + 0x8e0]
mov r9d, 0x400
xor edx, edx
mov edi, eax
mov r8d, eax
mov ecx, 0x1300
mov qword [rsp + 0x20], r13
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov r9, qword [rsp + 0x68]
mov r8d, edi
mov rcx, rsi
mov edx, 2
call sym.tb_err
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rdi, qword [rsp + 0x48]
mov ecx, 0x83
mov edx, dword [rsp + 0x8f0]
rep movsq qword [rdi], qword [rsi]
test edx, edx
jne 0x140005c38
movsxd rax, dword [rsp + 0x58]
xor r14d, r14d
lea rdi, [rsp + 0x60]
mov esi, 8
bswap rax
mov qword [rsp + 0x60], rax
jmp 0x140005df7
cdqe
add r14, rax
cmp r14, 7
ja 0x140006040
mov r8d, esi
lea rdx, [rdi + r14]
mov r9d, ebx
mov rcx, rbp
sub r8d, r14d
call r12
cmp eax, 0xffffffff
jne 0x140005de8
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rsi, [rsp + 0x8e0]
mov r9d, 0x400
xor edx, edx
mov edi, eax
mov r8d, eax
mov ecx, 0x1300
mov qword [rsp + 0x20], r13
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov r9, qword [rsp + 0x68]
mov r8d, edi
mov rcx, rsi
mov edx, 2
call sym.tb_err
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rdi, qword [rsp + 0x50]
mov ecx, 0x83
mov edx, dword [rsp + 0x8f0]
rep movsq qword [rdi], qword [rsi]
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov ecx, 0x83
mov dword [rsp + 0x4d0], edx
rep movsq qword [rdi], qword [rsi]
test edx, edx
jne 0x140005c38
mov rcx, qword [rsp + 0xd68]
call sym.malloc
mov r14, rax
test rax, rax
je 0x1400060d2
mov qword [rsp + 0x58], r13
mov r15, qword [rsp + 0xd68]
jmp 0x140005ee1
cmp r15, r13
jne 0x1400060a4
mov rdi, qword [rsp + 0x40]
mov rcx, r14
mov r8, r15
mov edx, 1
mov r9, rdi
call sym.fread
mov rcx, rdi
mov rsi, rax
call sym.ferror
test eax, eax
jne 0x14000605e
movsxd r13, esi
test esi, esi
jle 0x140005ed8
xor edi, edi
jmp 0x140005f2e
cdqe
add rdi, rax
cmp rdi, r13
jae 0x140006000
mov r8d, esi
lea rdx, [r14 + rdi]
mov r9d, ebx
mov rcx, rbp
sub r8d, edi
call r12
cmp eax, 0xffffffff
jne 0x140005f20
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rsi, [rsp + 0x8e0]
mov r9d, 0x400
xor edx, edx
mov edi, eax
mov rax, qword [rsp + 0x58]
mov ecx, 0x1300
mov qword [rsp + 0x68], 0
mov r8d, edi
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov r9, qword [rsp + 0x68]
mov r8d, edi
mov rcx, rsi
mov edx, 2
call sym.tb_err
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rdi, qword [rsp + 0x50]
mov ecx, 0x83
mov edx, dword [rsp + 0x8f0]
rep movsq qword [rdi], qword [rsi]
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov ecx, 0x83
mov dword [rsp + 0x4d0], edx
rep movsq qword [rdi], qword [rsi]
test edx, edx
je 0x140005ed8
mov rcx, r14
mov dword [rsp + 0x50], edx
call sym.free
mov edx, dword [rsp + 0x50]
jmp 0x140005c38
mov rcx, qword [rsp + 0x50]
xor edx, edx
xor r9d, r9d
xor r8d, r8d
call sym.tb_err.constprop.0
mov edx, dword [rsp + 0x4d0]
jmp 0x140005fc4
mov rcx, qword [rsp + 0x48]
xor edx, edx
xor r9d, r9d
xor r8d, r8d
call sym.tb_err.constprop.0
mov edx, dword [rsp + 0xb0]
jmp 0x140005dbf
mov rcx, qword [rsp + 0x50]
xor edx, edx
xor r9d, r9d
xor r8d, r8d
call sym.tb_err.constprop.0
mov edx, dword [rsp + 0x4d0]
jmp 0x140005e88
mov rsi, qword [sym.imp.msvcrt.dll__errno]
call rsi
mov ecx, dword [rax]
call sym.strerror
mov rbx, rax
call rsi
mov rcx, qword [rsp + 0x48]
mov r9, rbx
mov edx, 1
movsxd r8, dword [rax]
call sym.tb_err
mov edx, dword [rsp + 0xb0]
mov rcx, r14
mov dword [rsp + 0x50], edx
call sym.free
mov edx, dword [rsp + 0x50]
jmp 0x140005c38
mov rcx, r14
call sym.free
mov rcx, qword [rsp + 0x48]
xor edx, edx
xor r9d, r9d
xor r8d, r8d
call sym.tb_err.constprop.0
mov edx, dword [rsp + 0xb0]
jmp 0x140005c38
movsxd rbp, eax
jmp 0x140005ae5
mov r8d, 0x69d
lea rdx, str.._cli_.._common_tb.h
lea rcx, str.buf___NULL___Out_of_memory__
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x140005ec2