Function at 0x401540
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push rbp
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov dword [rbp + 0x20], r8d
mov qword [rbp + 0x28], r9
mov rax, qword [rbp + 0x10]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp + 0x18]
mov qword [rbp - 0x28], rax
lea rdx, str.Callback_called_with
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 rcx, rax
mov eax, dword [rbp + 0x20]
mov edx, eax
call method.std::ostream.operator___unsigned_long_
lea rdx, str._frames
mov rcx, rax
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__
pxor xmm0, xmm0
movss dword [rbp - 0x50], xmm0
mov dword [rbp - 0x14], 0
mov eax, dword [rbp - 0x14]
cmp eax, dword [rbp + 0x20]
jae 0x401607
mov eax, dword [rbp - 0x14]
lea rdx, [rax*4]
mov rax, qword [rbp - 0x20]
add rax, rdx
mov eax, dword [rax]
movd xmm0, eax
call method.std.abs_float_
movd eax, xmm0
mov dword [rbp - 0x4c], eax
lea rdx, [rbp - 0x4c]
lea rax, [rbp - 0x50]
mov rcx, rax
call method.float_const_std.max_float__float_const__float_const_
movss xmm0, dword [rax]
movss dword [rbp - 0x50], xmm0
add dword [rbp - 0x14], 1
jmp 0x4015bc
lea rdx, str.Max_input_level:
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_
movss xmm0, dword [rbp - 0x50]
movups xmm1, xmm0
mov rcx, rax
call method.std::ostream.operator___float_
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, dword [rbp + 0x20]
shl eax, 2
mov eax, eax
mov qword [rbp - 0x30], rax
mov rax, qword [rbp - 0x30]
mov ecx, eax
mov rax, qword [0x004de040]
mov rdx, qword [rbp - 0x20]
mov r9d, 0
mov r8d, ecx
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_send]
call rax
mov dword [rbp - 0x34], eax
cmp dword [rbp - 0x34], 0
jns 0x4016b8
lea rdx, str.Error_sending_data:
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 rax, qword [sym.imp.msvcrt.dll__errno]
call rax
mov eax, dword [rax]
mov ecx, eax
call sym.strerror
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__
jmp 0x401710
mov eax, dword [rbp - 0x34]
cdqe
cmp qword [rbp - 0x30], rax
je 0x401710
lea rdx, str.Partial_send:
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 rcx, rax
mov eax, dword [rbp - 0x34]
mov edx, eax
call method.std::ostream.operator___int_
lea rdx, str._bytes_of
mov rcx, rax
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 rcx, rax
mov rax, qword [rbp - 0x30]
mov rdx, rax
call method.std::ostream.operator___unsigned_long_long_
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, dword [rbp + 0x20]
shl eax, 2
mov eax, eax
mov qword [rbp - 0x40], rax
mov rax, qword [rbp - 0x40]
mov ecx, eax
mov rax, qword [0x004de040]
mov rdx, qword [rbp - 0x28]
mov r9d, 0
mov r8d, ecx
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
mov dword [rbp - 0x44], eax
cmp dword [rbp - 0x44], 0
jns 0x40178f
lea rdx, str.Error_receiving_data:
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 rax, qword [sym.imp.msvcrt.dll__errno]
call rax
mov eax, dword [rax]
mov ecx, eax
call sym.strerror
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__
jmp 0x4017e7
mov eax, dword [rbp - 0x44]
cdqe
cmp qword [rbp - 0x40], rax
je 0x4017e7
lea rdx, str.Partial_receive:
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 rcx, rax
mov eax, dword [rbp - 0x44]
mov edx, eax
call method.std::ostream.operator___int_
lea rdx, str._bytes_of
mov rcx, rax
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 rcx, rax
mov rax, qword [rbp - 0x40]
mov rdx, rax
call method.std::ostream.operator___unsigned_long_long_
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__
pxor xmm0, xmm0
movss dword [rbp - 0x54], xmm0
mov dword [rbp - 0x18], 0
mov eax, dword [rbp - 0x18]
cmp eax, dword [rbp + 0x20]
jae 0x401842
mov eax, dword [rbp - 0x18]
lea rdx, [rax*4]
mov rax, qword [rbp - 0x28]
add rax, rdx
mov eax, dword [rax]
movd xmm0, eax
call method.std.abs_float_
movd eax, xmm0
mov dword [rbp - 0x48], eax
lea rdx, [rbp - 0x48]
lea rax, [rbp - 0x54]
mov rcx, rax
call method.float_const_std.max_float__float_const__float_const_
movss xmm0, dword [rax]
movss dword [rbp - 0x54], xmm0
add dword [rbp - 0x18], 1
jmp 0x4017f7
lea rdx, str.Max_output_level:
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_
movss xmm0, dword [rbp - 0x54]
movups xmm1, xmm0
mov rcx, rax
call method.std::ostream.operator___float_
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, 0
add rsp, 0x78
pop rbx
pop rbp
ret