Function at 0x1800030e0
Capabilities:
Connect socket
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x6610]
mov eax, 0x6710
call fcn.180005590
sub rsp, rax
mov rax, qword [0x18135e6d8]
xor rax, rsp
mov qword [rbp + 0x6600], rax
mov rbx, rdx
movzx edi, cl
xor esi, esi
xor edx, edx
mov r8d, 0x6400
lea rcx, [rbp + 0x200]
call sub.VCRUNTIME140.dll_memset
mov ecx, 0x202
lea rdx, [rbp - 0x30]
call qword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x180003179
lea rdx, str.WSAStartup_failed_
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.180001bf0
mov rcx, rax
lea rdx, [0x180002710]
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]
lea rax, [rsi - 1]
jmp 0x180003b56
mov edx, 1
lea r8d, [rdx + 5]
mov r14d, 2
mov ecx, r14d
call qword [sym.imp.WS2_32.dll_socket]
mov r15, rax
cmp rax, 0xffffffffffffffff
jne 0x1800031cb
lea rdx, str.socket_failed_
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.180001bf0
mov rcx, rax
lea rdx, [0x180002710]
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]
call qword [sym.imp.WS2_32.dll_WSACleanup]
mov rax, r15
jmp 0x180003b56
mov word [rbp - 0x68], r14w
lea rcx, str.127.0.0.1
call qword [sym.imp.WS2_32.dll_inet_addr]
mov dword [rbp - 0x64], eax
mov ecx, 0xa119
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp - 0x66], ax
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rbp - 0x68]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x180003245
lea rdx, str.connect_failed_
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.180001bf0
mov rcx, rax
lea rdx, [0x180002710]
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]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
mov rax, 0xffffffffffffffff
jmp 0x180003b56
test dil, dil
je 0x180003516
mov rdi, 0xffffffffffffffff
mov r8, rdi
nop dword [rax + rax]
inc r8
cmp byte [rbx + r8], sil
jne 0x180003260
xor r9d, r9d
mov rdx, rbx
mov rcx, r15
call qword [sym.imp.WS2_32.dll_send]
cmp eax, edi
jne 0x1800032b5
lea rdx, str.send_failed_
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.180001bf0
mov rcx, rax
lea rdx, [0x180002710]
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]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, edi
jmp 0x180003b56
xor r9d, r9d
mov r8d, 0x6400
lea rdx, [rbp + 0x200]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_recv]
lea rdx, [0x180002710]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
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]
mov rcx, rax
lea rdx, [rbp + 0x200]
call fcn.180001bf0
mov rcx, rax
lea rdx, [0x180002710]
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]
xorps xmm0, xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x170], xmm1
mov qword [rbp + 0x180], rsi
movups xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], rsi
mov qword [rbp - 0x70], rsi
lea rax, [rbp + 0x200]
nop word [rax + rax]
inc rdi
cmp byte [rax + rdi], 0
jne 0x180003330
movabs r14, 0x7fffffffffffffff
cmp rdi, r14
ja 0x180003b92
cmp rdi, 0x10
jae 0x180003379
mov qword [rbp - 0x78], rdi
mov qword [rbp - 0x70], recv
mov r8, rdi
lea rdx, [rbp + 0x200]
lea rcx, [rsp + 0x78]
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsp + rdi + 0x78], 0
jmp 0x1800033c8
mov rax, rdi
or rax, 0xf
cmp rax, r14
ja 0x180003394
mov r14, rax
mov ecx, socket
cmp rax, rcx
cmovb r14, rcx
lea rdx, [r14 + 1]
lea rcx, [rsp + 0x78]
call fcn.180004060
mov rbx, rax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x78], rdi
mov qword [rbp - 0x70], r14
mov r8, rdi
lea rdx, [rbp + 0x200]
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov byte [rbx + rdi], 0
lea r8, [rbp + 0x170]
mov dl, 0x7c
lea rcx, [rsp + 0x78]
call fcn.180003bd0
mov rbx, qword [rbp + 0x170]
mov rdi, qword [rbp + 0x178]
lea r14, [0x18135e5e0]
cmp rbx, rdi
je 0x1800034ac
lea r15, [0x180000000]
mov rdx, rbx
lea rcx, [rsp + 0x58]
call fcn.180002750
nop
cmp esi, 7
ja case.default.0x180003421
movsxd rax, esi
mov ecx, dword [r15 + rax*4 + 0x3ba4]
add rcx, r15
jmp rcx
lea rcx, [0x18135e5a0]
jmp 0x180003465
lea rcx, [0x18135e5c0]
jmp 0x180003465
lea rcx, [0x18135e600]
jmp 0x180003465
lea rcx, [0x18135e620]
jmp 0x180003465
mov rcx, r14
jmp 0x180003465
lea rcx, [0x18135e640]
jmp 0x180003465
lea rcx, [0x18135e660]
jmp 0x180003465
lea rcx, [0x18135e680]
lea rdx, [rsp + 0x58]
cmp qword [rsp + 0x70], 0x10
mov r8, qword [rsp + 0x68]
cmovae rdx, qword [rsp + 0x58]
call fcn.1800040c0
inc esi
mov r8, qword [rsp + 0x70]
cmp r8, 0x10
jb 0x18000349f
inc r8
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0x58]
call fcn.180004130
add rbx, 0x20
cmp rbx, rdi
jne 0x180003400
lea rdx, [0x180002710]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
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]
cmp qword [0x18135e5f8], 0x10
cmovae r14, qword [0x18135e5e0]
mov r8, qword [0x18135e5f0]
mov rdx, r14
mov rcx, rax
call fcn.180002160
nop
mov r8, qword [rbp - 0x70]
cmp r8, 0x10
jb 0x180003500
inc r8
mov rdx, qword [rsp + 0x78]
lea rcx, [rsp + 0x78]
call fcn.180004130
nop
lea rcx, [rbp + 0x170]
call fcn.180002a80
mov eax, 1
jmp 0x180003b56
mov edx, 0x19
lea rcx, [rsp + 0x58]
call fcn.1800042a0
nop
lea r9, [rsp + 0x58]
cmp qword [rsp + 0x70], 0x10
cmovae r9, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x68]
mov rax, qword [0x18135e808]
lea r12, [0x18135e7f0]
cmp rdi, rax
ja 0x180003579
mov rbx, r12
cmp rax, 0x10
cmovae rbx, qword [0x18135e7f0]
mov qword [0x18135e800], rdi
mov r8, rdi
mov rdx, r9
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov byte [rbx + rdi], 0
jmp 0x180003587
xor r8d, r8d
mov rdx, rdi
mov rcx, r12
call fcn.1800023b0
mov rdx, qword [0x18135e800]
mov qword [rsp + 0x48], rdx
movabs r14, 0x7fffffffffffffff
mov rax, r14
sub rax, rdx
cmp rax, 4
jb 0x180003b98
mov r9, r12
cmp qword [0x18135e808], 0x10
cmovae r9, qword [0x18135e7f0]
mov qword [rsp + 0x50], r9
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x78], xmm1
lea r13, [rdx + 4]
mov ebx, recv
lea rdi, [rsp + 0x78]
lea eax, [rbx + 7]
cmp r13, rbx
jbe 0x18000367c
mov rbx, r13
or rbx, 0xf
cmp rbx, r14
jbe 0x180003631
mov rbx, r14
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.1800050b8
test rax, rax
je 0x180003654
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
mov rdx, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
jmp 0x180003677
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x18000365b
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180003b8c
jmp 0x18000360c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
test rcx, rcx
je 0x180003674
call fcn.1800050b8
mov rdi, rax
mov rdx, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
jmp 0x180003677
mov rdi, rsi
mov qword [rsp + 0x78], rdi
mov qword [rbp - 0x78], r13
mov qword [rbp - 0x70], rbx
mov dword [rdi], 0x7c4c474a
lea rcx, [rdi + 4]
mov r8, rdx
mov rdx, r9
call sub.VCRUNTIME140.dll_memcpy
mov byte [rdi + r13], 0
lea rcx, [rsp + 0x78]
mov rdi, qword [rsp + 0x78]
mov rbx, qword [rbp - 0x70]
cmp rbx, 0x10
cmovae rcx, rdi
lea rdx, [rbp + 0x170]
sub rdx, rcx
nop
movzx eax, byte [rcx]
mov byte [rdx + rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x1800036c0
mov rcx, rsi
movzx eax, byte [rbp + rcx + 0x170]
mov byte [rbp + rcx + 0x190], al
lea rcx, [rcx + 1]
test al, al
jne 0x1800036d1
mov rcx, qword [0x18135e800]
mov rax, r14
sub rax, rcx
cmp rax, 4
jb 0x180003b9e
mov rax, r12
cmp qword [0x18135e808], 0x10
cmovae rax, qword [0x18135e7f0]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 4
lea r9, str.JGL
mov r8, r12
movzx edx, byte [rsp + 0x40]
lea rcx, [rbp + 0x170]
call fcn.180002810
nop
lea rdx, str.send
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.180001bf0
lea rdx, [rbp + 0x170]
cmp qword [rbp + 0x188], 0x10
cmovae rdx, qword [rbp + 0x170]
mov r8, qword [rbp + 0x180]
mov rcx, rax
call fcn.180002160
nop
mov r8, qword [rbp + 0x188]
cmp r8, 0x10
jb 0x18000379e
inc r8
mov rdx, qword [rbp + 0x170]
lea rcx, [rbp + 0x170]
call fcn.180004130
xor r9d, r9d
lea r8d, [r9 + 0x64]
lea rdx, [rbp + 0x190]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x180003817
lea rdx, str.send_error
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.180001bf0
nop
cmp rbx, 0x10
jb 0x1800037e6
lea r8, [rbx + 1]
mov rdx, rdi
lea rcx, [rsp + 0x78]
call fcn.180004130
nop
mov r8, qword [rsp + 0x70]
cmp r8, 0x10
jb 0x180003803
inc r8
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0x58]
call fcn.180004130
mov rcx, r15
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
jmp 0x180003b56
cmp rbx, 0x10
jb 0x18000382f
lea r8, [rbx + 1]
mov rdx, rdi
lea rcx, [rsp + 0x78]
call fcn.180004130
nop
mov r8, qword [rsp + 0x70]
cmp r8, 0x10
jb 0x18000384c
inc r8
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0x58]
call fcn.180004130
xor r9d, r9d
mov r8d, 0x6400
lea rdx, [rbp + 0x200]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_recv]
lea rdx, [0x180002710]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
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]
mov rcx, rax
lea rdx, [rbp + 0x200]
call fcn.180001bf0
mov rcx, rax
lea rdx, [0x180002710]
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]
xorps xmm0, xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x170], xmm1
mov qword [rbp + 0x180], rsi
movups xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], rsi
mov qword [rbp - 0x70], rsi
lea rax, [rbp + 0x200]
mov rdi, 0xffffffffffffffff
nop dword [rax + rax]
inc rdi
cmp byte [rax + rdi], 0
jne 0x1800038d0
cmp rdi, r14
ja 0x180003b86
cmp rdi, 0x10
jae 0x18000390f
mov qword [rbp - 0x78], rdi
mov qword [rbp - 0x70], recv
mov r8, rdi
lea rdx, [rbp + 0x200]
lea rcx, [rsp + 0x78]
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsp + rdi + 0x78], 0
jmp 0x18000395f
mov rax, rdi
or rax, 0xf
cmp rax, r14
ja 0x18000392b
mov r14, rax
cmp rax, 0x16
mov ecx, socket
cmovb r14, rcx
lea rdx, [r14 + 1]
lea rcx, [rsp + 0x78]
call fcn.180004060
mov rbx, rax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x78], rdi
mov qword [rbp - 0x70], r14
mov r8, rdi
lea rdx, [rbp + 0x200]
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov byte [rbx + rdi], 0
lea r8, [rbp + 0x170]
mov dl, 0x7c
lea rcx, [rsp + 0x78]
call fcn.180003bd0
mov edi, esi
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], recv
mov byte [rsp + 0x58], dil
mov rbx, qword [rbp + 0x170]
mov r14, qword [rbp + 0x178]
cmp rbx, r14
je 0x1800039f5
mov rdx, rbx
lea rcx, [rbp - 0x58]
call fcn.180002750
nop
cmp edi, 1
jne 0x1800039d0
lea rdx, [rbp - 0x58]
cmp qword [rbp - 0x40], 0x10
cmovae rdx, qword [rbp - 0x58]
mov r8, qword [rbp - 0x48]
lea rcx, [rsp + 0x58]
call fcn.1800040c0
inc edi
mov r8, qword [rbp - 0x40]
cmp r8, 0x10
jb 0x1800039ec
inc r8
mov rdx, qword [rbp - 0x58]
lea rcx, [rbp - 0x58]
call fcn.180004130
add rbx, 0x20
cmp rbx, r14
jne 0x1800039a2
lea rdx, str.asd:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.180001bf0
lea rdx, [rsp + 0x58]
cmp qword [rsp + 0x70], 0x10
cmovae rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x68]
mov rcx, rax
call fcn.180002160
lea rdx, [0x18000b75c]
mov rcx, rax
call fcn.180001bf0
mov rdx, r12
cmp qword [0x18135e808], 0x10
cmovae rdx, qword [0x18135e7f0]
mov r8, qword [0x18135e800]
mov rcx, rax
call fcn.180002160
cmp qword [0x18135e808], 0x10
cmovae r12, qword [0x18135e7f0]
lea rcx, [rsp + 0x58]
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x70]
cmp rbx, 0x10
cmovae rcx, rdi
mov r8, qword [rsp + 0x68]
cmp r8, qword [0x18135e800]
jne 0x180003b01
mov rdx, r12
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x180003b01
cmp rbx, 0x10
jb 0x180003aaf
lea r8, [rbx + 1]
mov rdx, rdi
lea rcx, [rsp + 0x58]
call fcn.180004130
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], recv
mov byte [rsp + 0x58], 0
mov r8, qword [rbp - 0x70]
cmp r8, 0x10
jb 0x180003adf
inc r8
mov rdx, qword [rsp + 0x78]
lea rcx, [rsp + 0x78]
call fcn.180004130
nop
lea rcx, [rbp + 0x170]
call fcn.180002a80
mov rcx, r15
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, 1
jmp 0x180003b56
cmp rbx, 0x10
jb 0x180003b18
lea r8, [rbx + 1]
mov rdx, rdi
lea rcx, [rsp + 0x58]
call fcn.180004130
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], recv
mov byte [rsp + 0x58], 0
mov r8, qword [rbp - 0x70]
cmp r8, 0x10
jb 0x180003b48
inc r8
mov rdx, qword [rsp + 0x78]
lea rcx, [rsp + 0x78]
call fcn.180004130
nop
lea rcx, [rbp + 0x170]
call fcn.180002a80
xor eax, eax
mov rcx, qword [rbp + 0x6600]
xor rcx, rsp
call fcn.1800055f0
lea r11, [rsp + 0x6710]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.180004000
nop
call fcn.180003fe0
nop
call fcn.180004000
nop
call fcn.180004000
nop
call fcn.180004000
int3