Function at 0x14015cf20
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create tcp socket
Get local ipv4 addresses
Get socket information
Set socket configuration
Start tcp server

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rax, qword [0x1403b9868]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r13, rcx
call fcn.14018e9e0
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov dword [rsp + 0x28], 1
xor r12d, r12d
mov dword [rsp + 0x20], r12d
xor r9d, r9d
lea edx, [r12 + 1]
lea r8d, [r12 + 6]
mov r15d, 2
mov ecx, r15d
call qword [sym.imp.WS2_32.dll_WSASocketW]
mov r14, rax
call fcn.14018e9e0
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rbp - 0x50], eax
mov qword [rbp - 0x48], rbx
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
mov rsi, 0xffffffffffffffff
cmp r14, rsi
jne 0x14015cfbe
mov r14, rsi
jmp 0x14015cfd7
mov dword [rbp - 0x50], r12d
call fcn.14018e9e0
mov qword [rbp - 0x48], rax
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
mov eax, r12d
mov qword [rbp - 0x30], r14
cmp r14, 0xffffffffffffffff
jne 0x14015d024
lea rdi, [fcn.140063630]
test eax, eax
cmove rdi, r12
test rdi, rdi
jne 0x14015d540
mov dword [rbp - 0x40], 1
call fcn.14018e9e0
mov qword [rbp - 0x18], r12
mov word [rbp - 0x20], r15w
mov ecx, 0x7f000001
call qword [sym.imp.WS2_32.dll_htonl]
mov dword [rbp - 0x1c], eax
mov word [rbp - 0x1e], r12w
jmp 0x14015d526
mov dword [rbp - 0x40], 1
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov dword [rsp + 0x20], 4
lea r9, [rbp - 0x40]
mov edx, 0xffff
mov r8d, 4
mov rcx, r14
call qword [sym.imp.WS2_32.dll_setsockopt]
mov ebx, eax
call fcn.14018e9e0
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
test ebx, ebx
jne 0x14015d0d6
call fcn.14018e9e0
mov qword [rbp - 0x18], r12
mov word [rbp - 0x20], r15w
mov ecx, 0x7f000001
call qword [sym.imp.WS2_32.dll_htonl]
mov dword [rbp - 0x1c], eax
mov word [rbp - 0x1e], r12w
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rbp - 0x20]
mov rcx, r14
call qword [sym.imp.WS2_32.dll_bind]
mov r15d, eax
call fcn.14018e9e0
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
mov dword [rbp - 0x50], eax
mov qword [rbp - 0x48], rbx
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
lea rdi, [fcn.140063630]
test r15d, r15d
jne 0x14015d0fe
call fcn.14018e9e0
jmp 0x14015d116
mov qword [rbp - 0x18], r12
mov word [rbp - 0x20], r15w
mov ecx, 0x7f000001
call qword [sym.imp.WS2_32.dll_htonl]
mov dword [rbp - 0x1c], eax
mov word [rbp - 0x1e], r12w
cmp r14, 0xffffffffffffffff
je 0x14015d526
jmp 0x14015d085
cmp r15d, 0xffffffff
jne 0x14015d116
mov rax, rdi
test ecx, ecx
cmove rax, r12
test rax, rax
jne 0x14015d540
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov dword [rbp - 0x38], reloc.WS2_32.dll_recv
lea r8, [rbp - 0x38]
lea rdx, [rbp - 0x20]
mov rcx, r14
call qword [sym.imp.WS2_32.dll_getsockname]
mov r15d, eax
movsxd r12, dword [rbp - 0x38]
call fcn.14018e9e0
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
mov dword [rbp - 0x50], eax
mov qword [rbp - 0x48], rbx
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
test r15d, r15d
jne 0x14015d169
call fcn.14018e9e0
jmp 0x14015d186
cmp r15d, 0xffffffff
jne 0x14015d186
mov rax, rdi
test ecx, ecx
mov ecx, 0
cmove rax, rcx
test rax, rax
jne 0x14015d540
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_htonl]
cmp dword [rbp - 0x1c], eax
jne 0x14015d1a1
mov ecx, 0x7f000001
call qword [sym.imp.WS2_32.dll_htonl]
mov dword [rbp - 0x1c], eax
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov edx, 0x7fffffff
mov rcx, r14
call qword [sym.imp.WS2_32.dll_listen]
mov r15d, eax
call fcn.14018e9e0
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
mov dword [rbp - 0x50], eax
mov qword [rbp - 0x48], rbx
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
test r15d, r15d
jne 0x14015d23b
call fcn.14018e9e0
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov dword [rsp + 0x28], 1
xor eax, eax
mov dword [rsp + 0x20], eax
xor r9d, r9d
lea edx, [rax + 1]
lea ecx, [rax + 2]
lea r8d, [rax + 6]
call qword [sym.imp.WS2_32.dll_WSASocketW]
mov r15, rax
call fcn.14018e9e0
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rbp - 0x50], eax
mov qword [rbp - 0x48], rbx
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
xor ebx, ebx
cmp r15, 0xffffffffffffffff
jne 0x14015d25a
mov r15, rsi
jmp 0x14015d271
cmp r15d, 0xffffffff
jne 0x14015d1e4
mov rax, rdi
test ecx, ecx
mov ecx, 0
cmove rax, rcx
test rax, rax
jne 0x14015d540
jmp 0x14015d1e4
mov dword [rbp - 0x50], ebx
call fcn.14018e9e0
mov qword [rbp - 0x48], rax
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
mov eax, ebx
mov qword [rbp - 0x38], r15
cmp r15, 0xffffffffffffffff
je 0x14015d551
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov r8d, r12d
lea rdx, [rbp - 0x20]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_connect]
mov r12d, eax
call fcn.14018e9e0
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
mov dword [rbp - 0x50], eax
mov qword [rbp - 0x48], rbx
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
test r12d, r12d
jne 0x14015d411
call fcn.14018e9e0
xor r12d, r12d
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
xor r8d, r8d
xor edx, edx
mov rcx, r14
call qword [sym.imp.WS2_32.dll_accept]
mov r14, rax
call fcn.14018e9e0
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
mov dword [rbp - 0x50], eax
mov qword [rbp - 0x48], rbx
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
cmp r14, 0xffffffffffffffff
je 0x14015d326
mov dword [rbp - 0x50], r12d
call fcn.14018e9e0
mov qword [rbp - 0x48], rax
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
mov rsi, r14
mov ecx, r12d
mov qword [rbp - 0x28], rsi
cmp rsi, 0xffffffffffffffff
jne 0x14015d342
mov rax, rdi
test ecx, ecx
cmove rax, r12
test rax, rax
jne 0x14015d59f
mov dword [rbp - 0x3c], 1
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
lea r8, [rbp - 0x3c]
mov edx, 0x8004667e
mov rcx, r15
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov r14d, eax
call fcn.14018e9e0
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
mov dword [rbp - 0x50], eax
mov qword [rbp - 0x48], rbx
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
test r14d, r14d
js 0x14015d3a7
mov dword [rbp - 0x50], r12d
call fcn.14018e9e0
mov qword [rbp - 0x48], rax
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
mov ecx, r12d
test r14d, r14d
je 0x14015d3bb
mov rax, rdi
test ecx, ecx
cmove rax, r12
test rax, rax
jne 0x14015d59f
mov dword [rbp - 0x40], 1
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov dword [rsp + 0x20], 4
lea r9, [rbp - 0x40]
mov edx, 6
lea r8d, [rdx - 5]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_setsockopt]
mov ebx, eax
call fcn.14018e9e0
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
test ebx, ebx
jne 0x14015d3fe
call fcn.14018e9e0
mov dword [rbp - 0x3c], 1
cmp rsi, 0xffffffffffffffff
je 0x14015d586
jmp 0x14015d438
cmp r12d, 0xffffffff
jne 0x14015d2c8
mov rax, rdi
test ecx, ecx
mov r12d, 0
cmove rax, r12
test rax, rax
jne 0x14015d575
jmp 0x14015d2cb
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
lea r8, [rbp - 0x3c]
mov edx, 0x8004667e
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov r14d, eax
call fcn.14018e9e0
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rbp - 0x50], eax
mov qword [rbp - 0x48], rbx
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
test r14d, r14d
js 0x14015d494
mov dword [rbp - 0x50], r12d
call fcn.14018e9e0
mov qword [rbp - 0x48], rax
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
mov eax, r12d
test r14d, r14d
je 0x14015d4a5
test eax, eax
cmove rdi, r12
test rdi, rdi
jne 0x14015d59f
mov dword [rbp - 0x40], 1
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov dword [rsp + 0x20], 4
lea r9, [rbp - 0x40]
mov edx, 6
lea r8d, [rdx - 5]
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_setsockopt]
mov ebx, eax
call fcn.14018e9e0
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
test ebx, ebx
jne 0x14015d4e8
call fcn.14018e9e0
mov qword [r13], rsi
mov qword [r13 + 8], r15
lea rcx, [rbp - 0x30]
call fcn.1400c82e0
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1402806f0
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x38]
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.14018e9e0
nop
mov dword [rbp - 0x50], 0x2719
mov qword [rbp - 0x48], rax
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
lea rdx, str.socket_select_interrupter
lea rcx, [rbp - 0x50]
call fcn.140063120
nop
test eax, eax
cmove rdi, rbx
test rdi, rdi
jne 0x14015d575
call fcn.14018e9e0
mov dword [rbp - 0x50], 0x2719
mov qword [rbp - 0x48], rax
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
lea rdx, str.socket_select_interrupter
lea rcx, [rbp - 0x50]
call fcn.140063120
nop
call fcn.14018e9e0
mov dword [rbp - 0x50], 0x2719
mov qword [rbp - 0x48], rax
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
lea rdx, str.socket_select_interrupter
lea rcx, [rbp - 0x50]
call fcn.140063120
int3