Function at 0x140001800
Capabilities:
Create thread
Initialize winsock library
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket

Disassembly:
push rbp
push rbx
mov eax, 0x12f8
call fcn.14000cdc0
sub rsp, rax
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x1290], rcx
mov qword [rbp + 0x1298], rdx
mov qword [rbp + 0x12a0], r8
mov qword [rbp + 0x1268], 0xffffffffffffffff
mov qword [rbp + 0x10a8], 0
mov qword [rbp + 0x1260], 0
mov rdx, qword [rbp + 0x12a0]
lea rax, [rbp + 0xf60]
mov r9, rdx
lea r8, str.GET___s
mov edx, 0x104
mov rcx, rax
call sym.snprintf_char__unsigned_long_long__char_const__::_
lea rax, [rbp - 0x40]
mov r8d, 0xfa0
mov edx, 0
mov rcx, rax
call sym.memset
mov dword [rbp + 0x125c], 0xfa0
lea rax, [rbp + 0x10b0]
mov rdx, rax
mov ecx, 0x202
mov rax, qword [sym.imp.WS2_32.dll_WSAStartup]
call rax
mov dword [rbp + 0x1258], eax
cmp dword [rbp + 0x1258], 0
je 0x1400018fa
lea rax, str.____WSAStartup_fehlgeschlagen_mit_Fehler:
mov rdx, rax
mov rax, qword [0x1400bff60]
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 eax, dword [rbp + 0x1258]
mov edx, eax
call method.std::ostream.operator___int_
mov rcx, rax
mov rax, 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 rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
jmp 0x14000205d
lea rax, [rbp + 0x1070]
mov r8d, 0x30
mov edx, 0
mov rcx, rax
call sym.memset
mov dword [rbp + 0x1074], 2
mov dword [rbp + 0x1078], 1
mov dword [rbp + 0x107c], 6
lea r8, [rbp + 0x10a8]
lea rcx, [rbp + 0x1070]
mov rdx, qword [rbp + 0x1298]
mov rax, qword [rbp + 0x1290]
mov r9, r8
mov r8, rcx
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_getaddrinfo]
call rax
mov dword [rbp + 0x1258], eax
cmp dword [rbp + 0x1258], 0
je 0x1400019b8
lea rax, str.____Getaddrinfo_fehlgeschlagen_mit_Fehler:
mov rdx, rax
mov rax, qword [0x1400bff60]
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 eax, dword [rbp + 0x1258]
mov edx, eax
call method.std::ostream.operator___int_
mov rcx, rax
mov rax, 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 rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
jmp 0x14000205d
mov rax, qword [rbp + 0x10a8]
mov qword [rbp + 0x1260], rax
jmp 0x140001b1b
mov rax, qword [rbp + 0x1260]
mov ecx, dword [rax + 0xc]
mov rax, qword [rbp + 0x1260]
mov edx, dword [rax + 8]
mov rax, qword [rbp + 0x1260]
mov eax, dword [rax + 4]
mov r8d, ecx
mov ecx, eax
mov rax, qword [sym.imp.WS2_32.dll_socket]
call rax
mov qword [rbp + 0x1268], rax
cmp qword [rbp + 0x1268], 0xffffffffffffffff
jne 0x140001a4e
lea rax, str.____Socket_Fehler:
mov rdx, rax
mov rax, qword [0x1400bff60]
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 rbx, rax
mov rax, qword [sym.imp.WS2_32.dll_WSAGetLastError]
call rax
mov edx, eax
mov rcx, rbx
call method.std::ostream.operator___int_
mov rcx, rax
mov rax, 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 rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
jmp 0x140001b09
lea rax, str.___Versuch__eine_Verbindung_zu
mov rdx, rax
mov rax, qword [0x1400bff80]
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 + 0x1290]
mov rdx, 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
lea rax, [0x1400ba149]
mov rdx, 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 + 0x1298]
mov rdx, 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
lea rax, str._herzustellen
mov rdx, 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 [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 rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x1260]
mov rax, qword [rax + 0x10]
mov ecx, eax
mov rax, qword [rbp + 0x1260]
mov rdx, qword [rax + 0x20]
mov rax, qword [rbp + 0x1268]
mov r8d, ecx
mov rcx, rax
call sym.connectWithTimeout_unsigned_long_long__sockaddr_const__int_
cmp qword [rbp + 0x1268], 0xffffffffffffffff
jne 0x140001b2b
mov rax, qword [rbp + 0x1268]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_closesocket]
call rax
nop
mov rax, qword [rbp + 0x1260]
mov rax, qword [rax + 0x28]
mov qword [rbp + 0x1260], rax
cmp qword [rbp + 0x1260], 0
jne 0x1400019cb
jmp 0x140001b2c
nop
mov rax, qword [rbp + 0x10a8]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_freeaddrinfo]
call rax
cmp qword [rbp + 0x1268], 0xffffffffffffffff
jne 0x140001b82
lea rax, str.____Verbindung_zum_Server_fehlgeschlagen_
mov rdx, rax
mov rax, qword [0x1400bff60]
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 [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 rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [sym.imp.WS2_32.dll_WSACleanup]
call rax
jmp 0x14000205d
lea rax, [rbp + 0xf60]
mov rcx, rax
call sym.strlen
mov ecx, eax
lea rdx, [rbp + 0xf60]
mov rax, qword [rbp + 0x1268]
mov r9d, 0
mov r8d, ecx
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_send]
call rax
mov dword [rbp + 0x1258], eax
cmp dword [rbp + 0x1258], 0xffffffff
jne 0x140001c27
lea rax, str.____Senden_fehlgeschlagen_mit_Fehler:
mov rdx, rax
mov rax, qword [0x1400bff60]
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 rbx, rax
mov rax, qword [sym.imp.WS2_32.dll_WSAGetLastError]
call rax
mov edx, eax
mov rcx, rbx
call method.std::ostream.operator___int_
mov rcx, rax
mov rax, 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 rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x1268]
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
jmp 0x14000205d
lea rax, str._n___Gesendete_Bytes:
mov rdx, rax
mov rax, qword [0x1400bff80]
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 eax, dword [rbp + 0x1258]
mov edx, eax
call method.std::ostream.operator___int_
mov rcx, rax
mov rax, 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 rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x1268]
mov edx, 1
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_shutdown]
call rax
mov dword [rbp + 0x1258], eax
cmp dword [rbp + 0x1258], 0xffffffff
jne 0x140001ceb
lea rax, str.____Shutdown_fehlgeschlagen_mit_Fehler:
mov rdx, rax
mov rax, qword [0x1400bff60]
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 rbx, rax
mov rax, qword [sym.imp.WS2_32.dll_WSAGetLastError]
call rax
mov edx, eax
mov rcx, rbx
call method.std::ostream.operator___int_
mov rcx, rax
mov rax, 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 rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x1268]
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
jmp 0x14000205d
mov ecx, dword [rbp + 0x125c]
lea rdx, [rbp - 0x40]
mov rax, qword [rbp + 0x1268]
mov r9d, 0
mov r8d, ecx
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
mov dword [rbp + 0x1258], eax
cmp dword [rbp + 0x1258], 0
jle 0x140001fba
lea rax, str.___Empfangene_Bytes:
mov rdx, rax
mov rax, qword [0x1400bff80]
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 eax, dword [rbp + 0x1258]
mov edx, eax
call method.std::ostream.operator___int_
mov rcx, rax
mov rax, 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 rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov eax, dword [rbp + 0x1258]
cdqe
mov r9d, 4
mov r8d, 0x3000
mov rdx, rax
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_VirtualAlloc]
call rax
mov qword [rbp + 0x1250], rax
cmp qword [rbp + 0x1250], 0
jne 0x140001ded
lea rax, str.____Speicherzuweisung_fehlgeschlagen__
mov rdx, rax
mov rax, qword [0x1400bff60]
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 rbx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
mov rcx, rbx
call method.std::ostream.operator___unsigned_long_
mov rcx, rax
lea rax, [0x1400ba237]
mov rdx, 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 [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 rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
jmp 0x140002040
mov eax, dword [rbp + 0x1258]
movsxd rcx, eax
lea rdx, [rbp - 0x40]
mov rax, qword [rbp + 0x1250]
mov r8, rcx
mov rcx, rax
call sym.memcpy
mov eax, dword [rbp + 0x1258]
movsxd rdx, eax
lea rcx, [rbp - 0x44]
mov rax, qword [rbp + 0x1250]
mov r9, rcx
mov r8d, 0x20
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualProtect]
call rax
test eax, eax
sete al
test al, al
je 0x140001eb4
lea rax, str.____Fehler_beim_ndern_des_Speicherschutzes__
mov rdx, rax
mov rax, qword [0x1400bff60]
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 rbx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
mov rcx, rbx
call method.std::ostream.operator___unsigned_long_
mov rcx, rax
lea rax, [0x1400ba237]
mov rdx, 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 [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 rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x1250]
mov r8d, 0x8000
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFree]
call rax
jmp 0x140002040
mov rax, qword [rbp + 0x1250]
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov r9d, 0
mov r8, rax
mov edx, 0
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_CreateThread]
call rax
mov qword [rbp + 0x1248], rax
cmp qword [rbp + 0x1248], 0
jne 0x140001f6f
lea rax, str.____Fehler_beim_Erstellen_des_Threads__
mov rdx, rax
mov rax, qword [0x1400bff60]
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 rbx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov edx, eax
mov rcx, rbx
call method.std::ostream.operator___unsigned_long_
mov rcx, rax
lea rax, [0x1400ba237]
mov rdx, 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 [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 rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x1250]
mov r8d, 0x8000
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFree]
call rax
jmp 0x140002040
mov rax, qword [rbp + 0x1248]
mov edx, 0xffffffff
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call rax
mov rax, qword [rbp + 0x1248]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0x1250]
mov r8d, 0x8000
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_VirtualFree]
call rax
jmp 0x140002033
cmp dword [rbp + 0x1258], 0
jne 0x140001ff0
lea rax, str.___Verbindung_geschlossen
mov rdx, rax
mov rax, qword [0x1400bff80]
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 [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 rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
jmp 0x140002033
lea rax, str.____Empfangsfehler:
mov rdx, rax
mov rax, qword [0x1400bff60]
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 rbx, rax
mov rax, qword [sym.imp.WS2_32.dll_WSAGetLastError]
call rax
mov edx, eax
mov rcx, rbx
call method.std::ostream.operator___int_
mov rcx, rax
mov rax, 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 rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
jmp 0x140002040
cmp dword [rbp + 0x1258], 0
jg 0x140001ceb
mov rax, qword [rbp + 0x1268]
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
nop
add rsp, 0x12f8
pop rbx
pop rbp
ret