Function at 0x140001900
Capabilities:
Connect socket
Encode data using xor
Generate random numbers using a mersenne twister
Initialize winsock library
Send data
Send data on socket

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
mov eax, 0x1580
call fcn.140002190
sub rsp, rax
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x1570], rax
mov rsi, rcx
lea rdx, [rsp + 0x40]
mov ecx, 0x101
call qword [sym.imp.WS2_32.dll_WSAStartup]
mov ebx, 2
mov edx, ebx
mov ecx, ebx
lea r8d, [rbx + 0xf]
call qword [sym.imp.WS2_32.dll_socket]
mov rcx, qword [rsi + 0x18]
mov r12, rax
mov word [rsp + 0x30], bx
movzx ecx, word [rcx]
call qword [sym.imp.WS2_32.dll_htons]
mov rcx, qword [rsi]
mov word [rsp + 0x32], ax
mov rcx, qword [rcx]
call qword [sym.imp.WS2_32.dll_inet_addr]
mov dword [rsp + 0x34], eax
lea r8d, [rbx + 0xe]
lea rdx, [rsp + 0x30]
mov rcx, r12
xor eax, eax
mov qword [rsp + 0x38], rax
call qword [sym.imp.WS2_32.dll_connect]
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov dword [rsp + 0x1e4], eax
lea edx, [rbx - 1]
mov dword [rsp + 0x1564], 0xffffffff
nop dword [rax]
nop dword [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x1e4], eax
inc rdx
cmp rdx, 0x270
jb 0x1400019c0
mov rax, qword [rsi + 0x20]
xor ebx, ebx
mov dword [rsp + 0x1e0], 0x270
mov r15d, dword [rax]
cmp qword [rax], rbx
jbe 0x140001a62
lea rax, [rsp + 0x1e0]
mov qword [rsp + 0x20], rax
nop dword [rax + rax]
lea rcx, [rsp + 0x20]
call fcn.140001c10
mov eax, eax
imul rdx, rax, 0xff
test edx, edx
jne 0x140001a48
nop word [rax + rax]
lea rcx, [rsp + 0x20]
call fcn.140001c10
mov eax, eax
imul rdx, rax, 0xff
cmp edx, 1
jb 0x140001a30
mov rax, qword [rsi + 0x38]
shr rdx, 0x20
mov rcx, qword [rax]
mov byte [rbx + rcx], dl
inc rbx
mov rax, qword [rsi + 0x20]
cmp rbx, qword [rax]
jb 0x140001a10
lea rax, [rsp + 0x1e0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x1e0]
mov qword [rsp + 0x20], rax
nop dword [rax]
lea rcx, [rsp + 0x28]
call fcn.140001c10
mov eax, eax
imul rbx, rax, 0xff
test ebx, ebx
jne 0x140001ab8
nop word [rax + rax]
lea rcx, [rsp + 0x28]
call fcn.140001c10
mov eax, eax
imul rbx, rax, 0xff
cmp ebx, 1
jb 0x140001aa0
mov rax, qword [rsi + 0x38]
lea rcx, [rsp + 0x20]
shr rbx, 0x20
mov r14, qword [rax]
test r15d, r15d
jne 0x140001ad6
call fcn.140001c10
mov ecx, eax
jmp 0x140001b18
mov rdi, r15
call fcn.140001c10
mov ecx, eax
imul rcx, r15
cmp ecx, r15d
jae 0x140001b14
xor edx, edx
mov eax, edi
neg eax
div edi
mov ebp, edx
cmp ecx, edx
jae 0x140001b14
nop word [rax + rax]
lea rcx, [rsp + 0x20]
call fcn.140001c10
mov ecx, eax
imul rcx, rdi
cmp ecx, ebp
jb 0x140001b00
shr rcx, 0x20
mov eax, ecx
xor r9d, r9d
mov rcx, r12
mov byte [rax + r14], bl
mov r8, qword [rsi + 0x20]
mov rdx, qword [rsi + 0x38]
mov r8d, dword [r8]
mov rdx, qword [rdx]
call qword [sym.imp.WS2_32.dll_send]
movsxd rdi, eax
cmp rdi, 0xffffffffffffffff
jne 0x140001b69
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Send_failure
call fcn.1400010a0
lea rdx, [0x140001590]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
jmp 0x140001a80
mov rbx, qword [rsi + 0x28]
mov rcx, rbx
call sub.MSVCP140.dll__Mtx_lock
test eax, eax
jne 0x140001baf
cmp dword [rbx + 0x4c], 0x7fffffff
je 0x140001b9d
mov rax, qword [rsi + 0x10]
mov rcx, rbx
add qword [rax], rdi
mov rax, qword [rsi + 8]
inc qword [rax]
call sub.MSVCP140.dll__Mtx_unlock
jmp 0x140001a80
mov ecx, 6
mov dword [rbx + 0x4c], 0x7ffffffe
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
int3
mov ecx, 5
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
int3