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

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
mov qword [rsp + 0x98], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov r15, r9
mov r13, r8
mov rax, rdx
mov r14, rcx
mov rsi, qword [rsp + 0x100]
mov qword [rsp + 0x60], rsi
mov rdx, qword [rsp + 0x108]
test rdx, rdx
je 0x18000e5a5
sub rsi, rdx
xor r8d, r8d
mov rcx, rax
call fcn.1800318e8
lea rcx, [0x18005d078]
mov rax, qword [0x18005d078]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
mov rax, qword [r15]
mov qword [rsp + 0x20], rax
mov r9, qword [r13]
mov r8, qword [0x18005fdf8]
lea rdx, str._s_t_s_t_s
lea rcx, [rsp + 0x40]
call fcn.180002980
mov rbx, qword [rsp + 0x40]
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rsp + 0x68]
call fcn.18000da80
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
or edi, 0xffffffff
cmp rcx, rbx
je 0x18000e657
cmp dword [rbx + 0x10], 0
jl 0x18000e648
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x18000e648
call fcn.180001790
mov rbp, rax
mov ecx, edi
lock xadd dword [rbx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x18000e63d
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.WS2_32.dll_htonl + 8]
lea rax, [rbp + 0x18]
mov qword [rsp + 0x40], rax
jmp 0x18000e657
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x40]
call fcn.180001b40
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000e676
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rbx, qword [rsp + 0x40]
mov ecx, dword [rbx - 0x10]
add ecx, 0x400
mov eax, 0x7d000
mov r8d, 0x200000
mov r12d, dword [rsp + 0x118]
test r12d, r12d
cmove r8d, eax
mov dword [rsp + 0x108], r8d
mov r9d, r8d
mov qword [rsp + 0x70], r9
xor edx, edx
mov rax, rsi
div r9
mov qword [rsp + 0x50], rdx
mov rsi, rax
mov qword [rsp + 0x78], rax
add ecx, r8d
call fcn.18002f604
mov rbp, rax
xor ecx, ecx
mov dword [rsp + 0x100], ecx
mov dword [rsp + 0x48], ecx
test rsi, rsi
je 0x18000eacb
nop word [rax + rax]
mov rsi, qword [r13]
mov rcx, qword [rsi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rsi - 8], 0
jl 0x18000e71c
cmp rax, qword [rsi - 0x18]
jne 0x18000e71c
lea r12, [rsi - 0x18]
lock inc dword [rsi - 8]
mov rbx, qword [rsp + 0x40]
jmp 0x18000e753
mov rax, qword [rax]
mov r8d, 1
mov edx, dword [rsi - 0x10]
call qword [rax]
mov r12, rax
test rax, rax
je 0x18000eac5
mov ecx, dword [rsi - 0x10]
mov dword [rax + 8], ecx
mov ecx, dword [rsi - 0x10]
inc ecx
movsxd rdx, ecx
mov r8, rsi
lea rcx, [rax + 0x18]
mov r9, rdx
call fcn.18002feb4
lea rax, [r12 + 0x18]
mov qword [rsp + 0x90], rax
lea rcx, [rsp + 0x90]
call fcn.18002a960
test eax, eax
jne 0x18000e9db
lea ecx, [rax + 5]
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r12d, dword [rsp + 0x100]
inc r12d
mov dword [rsp + 0x100], r12d
cmp r12d, 0x32
jb 0x18000e7fd
lea rax, [rsp + 0x58]
mov qword [rsp + 0x100], rax
mov rcx, qword [r15]
sub rcx, 0x18
call fcn.180001790
add rax, 0x18
mov qword [rsp + 0x58], rax
mov rcx, qword [r13]
sub rcx, 0x18
call fcn.180001790
add rax, 0x18
mov qword [rsp + 0x80], rax
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x80]
mov r12d, dword [rsp + 0x118]
mov edx, r12d
mov rcx, r14
call fcn.18000e180
xor ecx, ecx
mov dword [rsp + 0x100], ecx
jmp 0x18000e805
mov r12d, dword [rsp + 0x118]
mov rcx, qword [rsp + 0xe8]
call fcn.1800317c0
mov byte [rbp], gethostbyname
xor ecx, ecx
mov dword [rbp + 1], ecx
lea rcx, [rbp + 5]
mov edx, dword [rsp + 0x108]
mov dword [rsp + 0x30], edx
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov r9, rbx
mov r8d, dword [rsp + 0x110]
lea rdx, str.31_u_s_t_llu_t_llu_t_u_n
call fcn.18003069c
movsxd rsi, eax
add rsi, 5
lea rcx, [rsi + rbp]
mov r9, qword [rsp + 0xe8]
mov r8, qword [rsp + 0x70]
mov edx, 1
call fcn.180031c44
cmp eax, dword [rsp + 0x108]
jne 0x18000e976
mov eax, eax
add rsi, rax
lea eax, [rsi - 5]
mov dword [rbp + 1], eax
mov r8d, esi
mov rdx, rbp
test r12d, r12d
je 0x18000e8a3
xor r9d, r9d
mov rcx, r14
call qword [sym.imp.WS2_32.dll_send]
jmp 0x18000e8ab
mov ecx, r14d
call fcn.180004ae0
cdqe
cmp rax, rsi
jne 0x18000e931
mov edx, r12d
mov rcx, r14
call fcn.18000e4b0
test eax, eax
je 0x18000e8e9
mov r12d, dword [rsp + 0x48]
inc r12d
mov dword [rsp + 0x48], r12d
mov eax, r12d
cmp rax, qword [rsp + 0x78]
jb 0x18000e6f0
mov r12d, dword [rsp + 0x118]
jmp 0x18000eacb
mov rcx, rbp
call fcn.18002f934
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000e90d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [r13]
sub rdx, 0x18
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000e92c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
jmp 0x18000e9b9
mov rcx, rbp
call fcn.18002f934
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000e955
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [r13]
sub rdx, 0x18
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000e974
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
jmp 0x18000e9b9
mov rcx, rbp
call fcn.18002f934
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000e99a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [r13]
sub rdx, 0x18
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000e9b9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [r15]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x18000e9d4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
xor eax, eax
jmp 0x18000ecc4
mov rsi, qword [r13]
mov rcx, qword [rsi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rsi - 8], 0
jl 0x18000ea07
cmp rax, qword [rsi - 0x18]
jne 0x18000ea07
lea r12, [rsi - 0x18]
lock inc dword [rsi - 8]
mov rbx, qword [rsp + 0x40]
jmp 0x18000ea43
mov rax, qword [rax]
mov r8d, 1
mov edx, dword [rsi - 0x10]
call qword [rax]
mov r12, rax
test rax, rax
jne 0x18000ea23
call fcn.180001c20
int3
mov eax, dword [rsi - 0x10]
mov dword [r12 + 8], eax
mov eax, dword [rsi - 0x10]
inc eax
movsxd rdx, eax
mov r8, rsi
lea rcx, [r12 + 0x18]
mov r9, rdx
call fcn.18002feb4
lea rax, [r12 + 0x18]
mov qword [rsp + 0x88], rax
lea rcx, [rsp + 0x88]
call fcn.18002ad50
mov rcx, rbp
call fcn.18002f934
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000ea81
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [r13]
sub rdx, 0x18
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000eaa0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [r15]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x18000ecbf
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.WS2_32.dll_htonl + 8]
jmp 0x18000ecbf
call fcn.180001c20
int3
mov rsi, qword [rsp + 0x50]
test rsi, rsi
je 0x18000ec61
mov rcx, qword [rsp + 0xe8]
call fcn.1800317c0
mov byte [rbp], gethostbyname
xor ecx, ecx
mov dword [rbp + 1], ecx
lea rcx, [rbp + 5]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov r9, rbx
mov r8d, dword [rsp + 0x110]
lea rdx, str.31_u_s_t_llu_t_llu_t_u_n
call fcn.18003069c
movsxd rsi, eax
add rsi, 5
lea rcx, [rsi + rbp]
mov r9, qword [rsp + 0xe8]
mov r8, qword [rsp + 0x50]
mov edx, 1
call fcn.180031c44
mov ecx, eax
cmp rcx, qword [rsp + 0x50]
je 0x18000eb91
mov rcx, rbp
call fcn.18002f934
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000eb6d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [r13]
sub rdx, 0x18
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000eb8c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
jmp 0x18000e9b9
add rsi, rcx
lea eax, [rsi - 5]
mov dword [rbp + 1], eax
mov r8d, esi
mov rdx, rbp
test r12d, r12d
je 0x18000ebb3
xor r9d, r9d
mov rcx, r14
call qword [sym.imp.WS2_32.dll_send]
jmp 0x18000ebbb
mov ecx, r14d
call fcn.180004ae0
mov eax, eax
cmp rax, rsi
je 0x18000ec0a
mov rcx, rbp
call fcn.18002f934
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000ebe6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [r13]
sub rdx, 0x18
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000ec05
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
jmp 0x18000e9b9
mov edx, r12d
mov rcx, r14
call fcn.18000e4b0
test eax, eax
jne 0x18000ec61
mov rcx, rbp
call fcn.18002f934
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000ec3d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [r13]
sub rdx, 0x18
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000ec5c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
jmp 0x18000e9b9
mov rcx, rbp
call fcn.18002f934
nop
lea rdx, [rbx - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000ec85
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [r13]
sub rdx, 0x18
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000eca4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [r15]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x18000ecbf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, 1
mov rbx, qword [rsp + 0xe0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret