Function at 0x1400012e0
Capabilities:
Convert ip address from string
Get common file path
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket
Set current directory

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
push r13
push r14
push r15
mov eax, 0x2340
call fcn.140002ec0
sub rsp, rax
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x2330], rax
mov ecx, 0x202
lea rdx, [rsp + 0x80]
call qword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x140001355
lea rcx, str.Error_initializing_Winsock__n
call fcn.140001010
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.Error_is:__lu_n
call fcn.140001010
jmp 0x140001908
xor r8d, r8d
mov edx, 1
mov edi, 2
mov ecx, edi
call qword [sym.imp.WS2_32.dll_socket]
mov r14, rax
mov qword [rsp + 0x20], rax
cmp rax, 0xffffffffffffffff
jne 0x1400013a3
lea rcx, str.Error_in_creating_socket__n
call fcn.140001010
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
lea rcx, str.Error_is:__lu_n
call fcn.140001010
call qword [sym.imp.WS2_32.dll_WSACleanup]
jmp 0x140001908
mov word [rsp + 0x68], di
mov ecx, 0x539
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0x6a], ax
lea r8, [rsp + 0x6c]
lea rdx, str.192.168.1.103
mov ecx, edi
call qword [sym.imp.WS2_32.dll_inet_pton]
cmp eax, 1
je 0x140001405
lea rcx, str.Error_in_setting_server_address__n
call fcn.140001010
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
lea rcx, str.Error_is:__lu_n
call fcn.140001010
mov rcx, r14
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
jmp 0x140001908
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x68]
mov rcx, r14
call qword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
jne 0x140001452
lea rcx, str.Bind_failed._n
call fcn.140001010
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
lea rcx, str.Error_is:__lu_n
call fcn.140001010
mov rcx, r14
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
jmp 0x140001908
mov edx, edi
mov rcx, r14
call qword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
jne 0x140001496
lea rcx, str.Listen_failed._n
call fcn.140001010
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
lea rcx, str.Error_is:__lu_n
call fcn.140001010
mov rcx, r14
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
jmp 0x140001908
lea rcx, str.Server_listening_for_connection..._n
call fcn.140001010
nop
xor r8d, r8d
xor edx, edx
mov rcx, r14
call qword [sym.imp.WS2_32.dll_accept]
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x14000193f
lea rdx, str.Connection_accepted__n
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140001a40
nop
xor r12d, r12d
movabs rsi, 0x7fffffffffffffff
lea r13, [0x140004684]
lea rbx, str.quit
nop dword [rax]
lea rcx, str.___Please_enter_a_command:
call fcn.140001010
mov r8d, 0x1000
lea rdx, [rsp + 0x330]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_istream_char__struct_std::char_traits_char__::getline_char____ptr64__long_long___int64_____ptr64]
lea rcx, [rsp + 0x330]
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], 0
jne 0x140001526
test rax, rax
je 0x1400014f0
mov r8, rdi
lea rdx, [0x1400045c0]
lea rcx, [rsp + 0x330]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
test eax, eax
jne 0x1400017c1
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r12
lea rax, [rsp + 0x333]
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rax + rbx], 0
jne 0x140001575
cmp rbx, rsi
ja 0x140001961
cmp rbx, 0xf
ja 0x1400015ba
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], send
mov r8, rbx
lea rdx, [rsp + 0x333]
lea rcx, [rsp + 0x48]
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsp + rbx + 0x48], 0
jmp 0x140001666
mov rdi, rbx
or rdi, 0xf
cmp rdi, rsi
jbe 0x1400015d9
mov rdi, rsi
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x14000160a
cmp rdi, 0x16
mov eax, socket
cmovb rdi, rax
lea rcx, [rdi + 1]
test rcx, rcx
jne 0x1400015f4
mov rsi, r12
jmp 0x140001631
cmp rcx, 0x1000
jb 0x140001629
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14000195b
mov rcx, rax
call fcn.1400020f0
test rax, rax
je 0x1400018b9
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x140001631
call fcn.1400020f0
mov rsi, rax
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rdi
mov r8, rbx
lea rdx, [rsp + 0x333]
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsi + rbx], 0
movabs rsi, 0x7fffffffffffffff
mov edi, 2
lea rax, [rsp + 0x48]
mov rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x60]
cmp r8, 0xf
cmova rax, rdx
cmp qword [rsp + 0x58], 2
jne 0x1400016b2
cmp word [rax], 0x2e2e
jne 0x1400016b2
lea rcx, [0x1400045c4]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
test eax, eax
jne 0x14000170a
lea rdx, str.Failed_to_move_up_a_directory.
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.140001a40
jmp 0x1400016fa
lea rcx, [rsp + 0x48]
cmp r8, 0xf
cmova rcx, rdx
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
test eax, eax
jne 0x14000170a
lea rdx, str.Failed_to_change_directory_to:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.140001a40
lea rdx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x58]
mov rcx, rax
call fcn.140001c60
lea rdx, [0x140001c20]
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]
lea rdx, [rsp + 0x220]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x140001750
lea rax, [rsp + 0x220]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x140001730
xor r9d, r9d
lea rdx, [rsp + 0x220]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_send]
jmp 0x140001774
lea rdx, str.Failed_to_get_current_directory.
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.140001a40
mov rcx, rax
lea rdx, [0x140001c20]
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]
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 0xf
lea rbx, str.quit
jbe 0x1400014f0
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400017b7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400018b9
call fcn.14000212c
jmp 0x1400014e6
lea rax, [rsp + 0x330]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x1400017d0
xor r9d, r9d
lea rdx, [rsp + 0x330]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je 0x1400018e6
xor r9d, r9d
mov r8d, 0xfff
lea rdx, [rsp + 0x1330]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x1400018c0
cdqe
cmp rax, 0x1000
jae 0x140001967
mov byte [rsp + rax + 0x1330], 0
lea rdx, [rsp + 0x1330]
lea rcx, str.Result:__s_n
call fcn.140001010
mov rcx, r12
lea rdx, [rsp + 0x330]
nop
movzx eax, byte [rdx + rcx]
inc rcx
cmp al, byte [rcx + r13 - 1]
jne 0x14000188f
cmp rcx, 5
jne 0x140001850
lea rcx, str.Connection_closed_by_server_exit__n
call fcn.140001010
mov rcx, r15
call qword [sym.imp.WS2_32.dll_closesocket]
mov rcx, r14
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
xor eax, eax
jmp 0x14000190d
mov rcx, r12
lea rdx, [rsp + 0x330]
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
inc rcx
cmp al, byte [rbx + rcx - 1]
jne 0x1400014f0
cmp rcx, 5
jne 0x1400018a0
jmp 0x140001864
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
lea rcx, str.No_receiving_data_or_connection_closed_by_client__n
call fcn.140001010
mov rcx, r15
call qword [sym.imp.WS2_32.dll_closesocket]
mov rcx, r14
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
jmp 0x140001908
lea rcx, str.Send_failed._n
call fcn.140001010
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
lea rcx, str.Error_is:__lu_n
call fcn.140001010
jmp 0x1400018cc
mov eax, 1
mov rcx, qword [rsp + 0x2330]
xor rcx, rsp
call fcn.140001e30
lea r11, [rsp + 0x2340]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
ret
lea rcx, [rsp + 0x30]
call fcn.140001230
lea rdx, [0x140005200]
lea rcx, [rsp + 0x30]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
call fcn.140001170
int3
call fcn.140001210
int3
call fcn.140001f58
int3