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

Disassembly:
push rbp
sub rsp, 0x2d0
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x270], r15
mov qword [rbp + 0x278], r14
mov qword [rbp + 0x280], r13
mov r13, rcx
mov qword [rbp + 0x288], r12
mov qword [rbp + 0x250], 0xfffffffffffffffe
mov dword [rbp + 0x230], 0
call fcn.1400cc560
xor ecx, ecx
mov qword [rbp + 0x238], rax
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rax, rsp
mov ecx, 2
mov edx, 1
mov r8d, 6
xor r9d, r9d
mov dword [rax + 0x20], 0
mov dword [rax + 0x28], 1
call qword [sym.imp.WS2_32.dll_WSASocketA]
mov r12, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r14d, eax
call fcn.1400cc560
mov dword [rbp], r14d
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
cmp r12, 0xffffffffffffffff
jne 0x1400c4433
mov qword [rbp + 0x258], r12
je 0x1400c43aa
mov dword [rbp + 0x294], 1
je 0x1400c4388
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rax, rsp
mov rcx, r12
mov edx, 0xffff
mov r8d, 4
lea r9, [rbp + 0x294]
mov dword [rax + 0x20], 4
call qword [sym.imp.WS2_32.dll_setsockopt]
mov r14d, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r12d, eax
call fcn.1400cc560
mov dword [rbp], r12d
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
test r14d, r14d
je 0x1400c4344
mov r12d, setsockopt
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0x240], xmm0
lea rcx, str.127.0.0.1
mov eax, 2
mov word [rbp + 0x240], ax
call qword [sym.imp.WS2_32.dll_inet_addr]
mov r14, qword [rbp + 0x258]
mov dword [rbp + 0x244], eax
xor eax, eax
mov word [rbp + 0x242], ax
cmp r14, 0xffffffffffffffff
je 0x1400c39d4
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rcx, r14
lea rdx, [rbp + 0x240]
mov r8d, setsockopt
call qword [sym.imp.WS2_32.dll_bind]
mov r15d, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r14d, eax
call fcn.1400cc560
mov dword [rbp], r14d
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
test r15d, r15d
je 0x1400c40d6
cmp r15d, 0xffffffff
je 0x1400c39f1
jmp 0x1400c39fe
call fcn.1400cc560
mov dword [rbp], 0x2719
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
cmp dword [rbp + 0x230], 0
jne 0x1400c4077
mov r14, qword [rbp + 0x258]
cmp r14, 0xffffffffffffffff
je 0x1400c3a72
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rcx, r14
lea rdx, [rbp + 0x240]
mov dword [rbp + 0x290], setsockopt
lea r8, [rbp + 0x290]
call qword [sym.imp.WS2_32.dll_getsockname]
mov r15d, eax
mov r12d, dword [rbp + 0x290]
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r14d, eax
call fcn.1400cc560
mov dword [rbp], r14d
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
test r15d, r15d
je 0x1400c40f8
cmp r15d, 0xffffffff
je 0x1400c3a8f
jmp 0x1400c3a9c
call fcn.1400cc560
mov dword [rbp], 0x2719
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
cmp dword [rbp + 0x230], 0
jne 0x1400c4012
lea rcx, str.127.0.0.1
call qword [sym.imp.WS2_32.dll_inet_addr]
mov r14, qword [rbp + 0x258]
mov dword [rbp + 0x244], eax
cmp r14, 0xffffffffffffffff
je 0x1400c3b09
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rcx, r14
mov edx, 0x7fffffff
call qword [sym.imp.WS2_32.dll_listen]
mov r15d, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r14d, eax
call fcn.1400cc560
mov dword [rbp], r14d
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
test r15d, r15d
je 0x1400c411a
cmp r15d, 0xffffffff
je 0x1400c3b26
jmp 0x1400c3b33
call fcn.1400cc560
mov dword [rbp], 0x2719
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
cmp dword [rbp + 0x230], 0
jne 0x1400c3f9e
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rax, rsp
mov ecx, 2
mov edx, 1
mov r8d, 6
xor r9d, r9d
mov dword [rax + 0x20], 0
mov dword [rax + 0x28], 1
call qword [sym.imp.WS2_32.dll_WSASocketA]
mov r15, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r14d, eax
call fcn.1400cc560
mov dword [rbp], r14d
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
cmp r15, 0xffffffffffffffff
jne 0x1400c427f
mov qword [rbp + 0x260], r15
je 0x1400c42a5
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rcx, r15
lea rdx, [rbp + 0x240]
mov r8d, r12d
call qword [sym.imp.WS2_32.dll_connect]
mov r14d, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r12d, eax
call fcn.1400cc560
mov dword [rbp], r12d
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
test r14d, r14d
je 0x1400c425d
cmp r14d, 0xffffffff
je 0x1400c41dc
mov r12, qword [rbp + 0x258]
cmp r12, 0xffffffffffffffff
je 0x1400c3c4b
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
xor edx, edx
mov rcx, r12
xor r8d, r8d
call qword [sym.imp.WS2_32.dll_accept]
mov r12, rax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r14d, eax
call fcn.1400cc560
mov dword [rbp], r14d
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
cmp r12, 0xffffffffffffffff
jne 0x1400c413c
jmp 0x1400c3c6f
call fcn.1400cc560
mov dword [rbp], 0x2719
mov r12, 0xffffffffffffffff
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
mov qword [rbp + 0x268], r12
cmp r12, 0xffffffffffffffff
je 0x1400c41a2
mov r12, qword [rbp + 0x260]
mov dword [rbp + 0x298], 1
cmp r12, 0xffffffffffffffff
je 0x1400c3d03
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rcx, r12
mov edx, 0x8004667e
lea r8, [rbp + 0x298]
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov r12d, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r14d, eax
call fcn.1400cc560
mov dword [rbp], r14d
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
test r12d, r12d
jl 0x1400c3d20
mov dword [rbp], 0
call fcn.1400cc560
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
test r12d, r12d
jne 0x1400c3d20
jmp 0x1400c3d33
call fcn.1400cc560
mov dword [rbp], 0x2719
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
lea rdx, str.socket_select_interrupter
lea rcx, [rbp + 0x230]
call fcn.1400c29d0
mov r12, qword [rbp + 0x260]
mov dword [rbp + 0x294], 1
cmp r12, 0xffffffffffffffff
je 0x1400c4180
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rax, rsp
mov rcx, r12
mov edx, 6
mov r8d, 1
lea r9, [rbp + 0x294]
mov dword [rax + 0x20], 4
call qword [sym.imp.WS2_32.dll_setsockopt]
mov r14d, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r12d, eax
call fcn.1400cc560
mov dword [rbp], r12d
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
test r14d, r14d
je 0x1400c415e
mov r12, qword [rbp + 0x268]
mov dword [rbp + 0x298], 1
cmp r12, 0xffffffffffffffff
je 0x1400c3e2d
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rcx, r12
mov edx, 0x8004667e
lea r8, [rbp + 0x298]
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov r12d, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r14d, eax
call fcn.1400cc560
mov dword [rbp], r14d
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
test r12d, r12d
jl 0x1400c3e4a
mov dword [rbp], 0
call fcn.1400cc560
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
test r12d, r12d
jne 0x1400c3e4a
jmp 0x1400c3e57
call fcn.1400cc560
mov dword [rbp], 0x2719
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
cmp dword [rbp + 0x230], 0
jne 0x1400c3f2a
mov r12, qword [rbp + 0x268]
mov dword [rbp + 0x294], 1
cmp r12, 0xffffffffffffffff
je 0x1400c41ba
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov rax, rsp
mov rcx, r12
mov edx, 6
mov r8d, 1
lea r9, [rbp + 0x294]
mov dword [rax + 0x20], 4
call qword [sym.imp.WS2_32.dll_setsockopt]
mov r14d, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r12d, eax
call fcn.1400cc560
mov dword [rbp], r12d
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
test r14d, r14d
je 0x1400c4366
mov rcx, qword [rbp + 0x260]
mov rdx, 0xffffffffffffffff
mov rax, qword [rbp + 0x268]
mov qword [r13 + 8], rcx
lea rcx, [rbp + 0x258]
mov qword [rbp + 0x268], rdx
mov qword [r13], rax
mov qword [rbp + 0x260], rdx
call fcn.1400b9950
mov r12, qword [rbp + 0x288]
mov r13, qword [rbp + 0x280]
mov r14, qword [rbp + 0x278]
mov r15, qword [rbp + 0x270]
lea rsp, [rbp + 0x2a0]
pop rbp
ret
lea rcx, [rbp + 0x168]
vmovups xmm0, xmmword [rbp + 0x230]
vmovups xmmword [rbp], xmm0
lea rax, str.socket_select_interrupter
lea rdx, [rbp + 0x220]
mov qword [rbp + 0x220], rax
call fcn.140114a10
nop
lea rcx, [rbp + 0x168]
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x180], xmm0
lea rax, [0x1401e34d0]
mov qword [rbp + 0x168], rax
mov qword [rbp + 0x1a8], setsockopt
mov qword [rbp + 0x1a0], 0
mov byte [rbp + 0x190], 0
call fcn.1400c2a60
nop
lea rcx, [rbp + 0x1c8]
vmovups xmm0, xmmword [rbp + 0x230]
vmovups xmmword [rbp], xmm0
lea rax, str.socket_select_interrupter
lea rdx, [rbp + 0x228]
mov qword [rbp + 0x228], rax
call fcn.140114a10
nop
lea rcx, [rbp + 0x1c8]
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x1e0], xmm0
lea rax, [0x1401e34d0]
mov qword [rbp + 0x1c8], rax
mov qword [rbp + 0x208], setsockopt
mov qword [rbp + 0x200], 0
mov byte [rbp + 0x1f0], 0
call fcn.1400c2a60
nop
lea rcx, [rbp + 0x48]
vmovups xmm0, xmmword [rbp + 0x230]
vmovups xmmword [rbp], xmm0
lea rax, str.socket_select_interrupter
lea rdx, [rbp + 0x1b8]
mov qword [rbp + 0x1b8], rax
call fcn.140114a10
nop
lea rcx, [rbp + 0x48]
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x60], xmm0
lea rax, [0x1401e34d0]
mov qword [rbp + 0x48], rax
mov qword [rbp + 0x88], setsockopt
mov qword [rbp + 0x80], 0
mov byte [rbp + 0x70], 0
call fcn.1400c2a60
nop
lea rcx, [rbp]
vmovups xmm0, xmmword [rbp + 0x230]
vmovups xmmword [rbp + 0x48], xmm0
lea rax, str.socket_select_interrupter
lea rdx, [rbp + 0x1b0]
mov qword [rbp + 0x1b0], rax
call fcn.140114a10
nop
lea rcx, [rbp]
vmovups xmm0, xmmword [rbp + 0x48]
vmovups xmmword [rbp + 0x18], xmm0
lea rax, [0x1401e34d0]
mov qword [rbp], rax
mov qword [rbp + 0x40], setsockopt
mov qword [rbp + 0x38], 0
mov byte [rbp + 0x28], 0
call fcn.1400c2a60
nop
mov dword [rbp], 0
call fcn.1400cc560
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
jmp 0x1400c39fe
mov dword [rbp], 0
call fcn.1400cc560
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
jmp 0x1400c3a9c
mov dword [rbp], 0
call fcn.1400cc560
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
jmp 0x1400c3b33
mov dword [rbp], 0
call fcn.1400cc560
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
jmp 0x1400c3c6f
mov dword [rbp], 0
call fcn.1400cc560
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
jmp 0x1400c3daa
call fcn.1400cc560
mov dword [rbp], 0x2719
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
jmp 0x1400c3daa
lea rdx, str.socket_select_interrupter
lea rcx, [rbp + 0x230]
call fcn.1400c29d0
jmp 0x1400c3c80
call fcn.1400cc560
mov dword [rbp], 0x2719
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
jmp 0x1400c3ece
cmp dword [rbp + 0x230], 0
je 0x1400c3bf6
lea rcx, [rbp + 0x90]
vmovups xmm0, xmmword [rbp + 0x230]
vmovups xmmword [rbp], xmm0
lea rax, str.socket_select_interrupter
lea rdx, [rbp + 0x1c0]
mov qword [rbp + 0x1c0], rax
call fcn.140114a10
nop
lea rcx, [rbp + 0x90]
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0xa8], xmm0
lea rax, [0x1401e34d0]
mov qword [rbp + 0x90], rax
mov qword [rbp + 0xd0], setsockopt
mov qword [rbp + 0xc8], 0
mov byte [rbp + 0xb8], 0
call fcn.1400c2a60
nop
mov dword [rbp], 0
call fcn.1400cc560
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
jmp 0x1400c3bf6
mov dword [rbp], 0
call fcn.1400cc560
mov qword [rbp + 8], rax
cmp r15, 0xffffffffffffffff
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
jmp 0x1400c3b95
cmp dword [rbp + 0x230], 0
jne 0x1400c42d0
call fcn.1400cc560
mov dword [rbp], 0x2719
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
jmp 0x1400c41dc
lea rcx, [rbp + 0x120]
vmovups xmm0, xmmword [rbp + 0x230]
vmovups xmmword [rbp], xmm0
lea rax, str.socket_select_interrupter
lea rdx, [rbp + 0x218]
mov qword [rbp + 0x218], rax
call fcn.140114a10
nop
lea rcx, [rbp + 0x120]
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x138], xmm0
lea rax, [0x1401e34d0]
mov qword [rbp + 0x120], rax
mov qword [rbp + 0x160], setsockopt
mov qword [rbp + 0x158], 0
mov byte [rbp + 0x148], 0
call fcn.1400c2a60
nop
mov dword [rbp], 0
call fcn.1400cc560
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
jmp 0x1400c3938
mov dword [rbp], 0
call fcn.1400cc560
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
jmp 0x1400c3ece
call fcn.1400cc560
mov dword [rbp], 0x2719
mov qword [rbp + 8], rax
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
jmp 0x1400c3938
cmp dword [rbp + 0x230], 0
jne 0x1400c43bf
mov dword [rbp + 0x294], 1
jmp 0x1400c4388
lea rcx, [rbp + 0xd8]
vmovups xmm0, xmmword [rbp + 0x230]
vmovups xmmword [rbp], xmm0
lea rax, str.socket_select_interrupter
lea rdx, [rbp + 0x210]
mov qword [rbp + 0x210], rax
call fcn.140114a10
nop
lea rcx, [rbp + 0xd8]
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0xf0], xmm0
lea rax, [0x1401e34d0]
mov qword [rbp + 0xd8], rax
mov qword [rbp + 0x118], setsockopt
mov qword [rbp + 0x110], 0
mov byte [rbp + 0x100], 0
call fcn.1400c2a60
nop
mov dword [rbp], 0
call fcn.1400cc560
mov qword [rbp + 8], rax
cmp r12, 0xffffffffffffffff
vmovups xmm0, xmmword [rbp]
vmovups xmmword [rbp + 0x230], xmm0
jmp 0x1400c38bf