Function at 0x401880
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Initialize winsock library
Set socket configuration

Disassembly:
push rbp
push rbx
sub rsp, 0x258
lea rbp, [rsp + 0x80]
call dbg.__main
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 0x4018e0
lea rdx, str.Failed_to_initialize_Winsock
mov rcx, qword [0x004b91b0]
call method.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 rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov eax, 1
jmp 0x401d78
mov r8d, 0
mov edx, 1
mov ecx, 2
mov rax, qword [sym.imp.WS2_32.dll_socket]
call rax
mov qword [0x004de040], rax
mov rax, qword [0x004de040]
cmp rax, 0xffffffffffffffff
jne 0x401939
lea rdx, str.Failed_to_create_socket
mov rcx, qword [0x004b91b0]
call method.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 rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov eax, 1
jmp 0x401d78
mov dword [rbp + 0x2c], 1
mov rax, qword [0x004de040]
lea rdx, [rbp + 0x2c]
mov dword [rsp + 0x20], 4
mov r9, rdx
mov r8d, 1
mov edx, 6
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_setsockopt]
call rax
shr eax, 0x1f
test al, al
je 0x4019a0
lea rdx, str.Failed_to_set_TCP_NODELAY
mov rcx, qword [0x004b91b0]
call method.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 rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov eax, 1
jmp 0x401d78
mov word [rbp + 0x10], 2
mov ecx, 0x159d
mov rax, qword [sym.imp.WS2_32.dll_htons]
call rax
mov word [rbp + 0x12], ax
lea rcx, str.185.78.76.22
mov rax, qword [sym.imp.WS2_32.dll_inet_addr]
call rax
mov dword [rbp + 0x14], eax
mov rax, qword [0x004de040]
lea rdx, [rbp + 0x10]
mov r8d, 0x10
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_connect]
call rax
shr eax, 0x1f
test al, al
je 0x401a2e
lea rdx, str.Connection_failed
mov rcx, qword [0x004b91b0]
call method.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 rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [0x004de040]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
mov eax, 1
jmp 0x401d78
lea rdx, str.Connected_to_server
mov rcx, qword [0x004b91d0]
call method.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 rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
call sym.Pa_Initialize
mov dword [rbp + 0x1cc], eax
cmp dword [rbp + 0x1cc], 0
je 0x401aab
lea rdx, str.PortAudio_error:
mov rcx, qword [0x004b91b0]
call method.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 rbx, rax
mov eax, dword [rbp + 0x1cc]
mov ecx, eax
call sym.Pa_GetErrorText
mov rdx, rax
mov rcx, rbx
call method.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 rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov eax, 1
jmp 0x401d78
call sym.Pa_GetDefaultInputDevice
mov dword [rbp - 0x20], eax
call sym.Pa_GetDefaultOutputDevice
mov dword [rbp - 0x40], eax
mov eax, dword [rbp - 0x20]
cmp eax, 0xffffffff
jne 0x401aef
lea rdx, str.Error:_No_default_input_device.
mov rcx, qword [0x004b91b0]
call method.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 rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov eax, 1
jmp 0x401d78
mov eax, dword [rbp - 0x40]
cmp eax, 0xffffffff
jne 0x401b23
lea rdx, str.Error:_No_default_output_device.
mov rcx, qword [0x004b91b0]
call method.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 rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov eax, 1
jmp 0x401d78
mov dword [rbp - 0x1c], 1
mov dword [rbp - 0x18], 1
mov eax, dword [rbp - 0x20]
mov ecx, eax
call sym.Pa_GetDeviceInfo
movsd xmm0, qword [rax + 0x20]
movsd qword [rbp - 0x10], xmm0
mov qword [rbp - 8], 0
mov dword [rbp - 0x3c], 1
mov dword [rbp - 0x38], 1
mov eax, dword [rbp - 0x40]
mov ecx, eax
call sym.Pa_GetDeviceInfo
movsd xmm0, qword [rax + 0x28]
movsd qword [rbp - 0x30], xmm0
mov qword [rbp - 0x28], 0
movsd xmm0, qword [0x004b4220]
lea r8, [rbp - 0x40]
lea rdx, [rbp - 0x20]
lea rax, [rbp + 8]
mov qword [rsp + 0x38], 0
lea rcx, [sym.audioCallback_void_const__void__unsigned_long__PaStreamCallbackTimeInfo_const__unsigned_long__void_]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0x1000
movupd xmm3, xmm0
mov rcx, rax
call sym.Pa_OpenStream
mov dword [rbp + 0x1cc], eax
cmp dword [rbp + 0x1cc], 0
je 0x401c12
lea rdx, str.Error_opening_stream:
mov rcx, qword [0x004b91b0]
call method.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 rbx, rax
mov eax, dword [rbp + 0x1cc]
mov ecx, eax
call sym.Pa_GetErrorText
mov rdx, rax
mov rcx, rbx
call method.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 rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov eax, 1
jmp 0x401d78
mov rax, qword [rbp + 8]
mov rcx, rax
call sym.Pa_StartStream
mov dword [rbp + 0x1cc], eax
cmp dword [rbp + 0x1cc], 0
je 0x401c74
lea rdx, str.Error_starting_stream:
mov rcx, qword [0x004b91b0]
call method.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 rbx, rax
mov eax, dword [rbp + 0x1cc]
mov ecx, eax
call sym.Pa_GetErrorText
mov rdx, rax
mov rcx, rbx
call method.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 rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov eax, 1
jmp 0x401d78
lea rdx, str.Stream_started._Press_Enter_to_stop...
mov rcx, qword [0x004b91d0]
call method.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 rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rcx, qword [0x004b91a0]
call method.std::istream.get__
mov rax, qword [rbp + 8]
mov rcx, rax
call sym.Pa_StopStream
mov dword [rbp + 0x1cc], eax
cmp dword [rbp + 0x1cc], 0
je 0x401cfa
lea rdx, str.Error_stopping_stream:
mov rcx, qword [0x004b91b0]
call method.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 rbx, rax
mov eax, dword [rbp + 0x1cc]
mov ecx, eax
call sym.Pa_GetErrorText
mov rdx, rax
mov rcx, rbx
call method.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 rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 8]
mov rcx, rax
call sym.Pa_CloseStream
mov dword [rbp + 0x1cc], eax
cmp dword [rbp + 0x1cc], 0
je 0x401d52
lea rdx, str.Error_closing_stream:
mov rcx, qword [0x004b91b0]
call method.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 rbx, rax
mov eax, dword [rbp + 0x1cc]
mov ecx, eax
call sym.Pa_GetErrorText
mov rdx, rax
mov rcx, rbx
call method.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 rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
call sym.Pa_Terminate
mov rax, qword [0x004de040]
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, 0x258
pop rbx
pop rbp
ret