Function at 0x14009d160
Capabilities:
Create thread
Initialize winsock library
Link many functions at runtime
Set socket configuration

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
push rbp
lea rbp, [rsp - 0xcf0]
sub rsp, 0xdf0
mov rax, qword [0x140263a80]
xor rax, rsp
mov qword [rbp + 0xce0], rax
lea rcx, [0x140268210]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [0x140267e78]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [0x140267eb0]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call fcn.14009ce90
lea rcx, [0x1402682c0]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [0x1402682f0]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov ecx, 0x78
call fcn.1401d0330
mov rbx, rax
mov qword [rsp + 0x30], rax
lea rax, str..pipemonect_pipe_service
mov qword [rbx], rax
lea rax, str..pipemonect_pipe_app
mov qword [rbx + 8], rax
xor edi, edi
mov qword [rbx + 0x10], rdi
mov qword [rbx + 0x18], rdi
mov qword [rbx + 0x20], rdi
lea ecx, [rdi + 0x18]
call fcn.1401d0330
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rbx + 0x18], rax
lea rcx, [rbx + 0x28]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [rbx + 0x50]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
nop
mov qword [0x140268120], rbx
lea ecx, [rdi + 0x60]
call fcn.1401d0330
mov qword [rsp + 0x30], rax
mov edx, 0x6f23
mov rcx, rax
call fcn.1400b4d50
mov qword [0x1402682a0], rax
lea rcx, [0x140268540]
call fcn.140087620
mov eax, dword [0x140268548]
mov dword [0x140267edc], eax
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0xad0]
call sub.VCRUNTIME140.dll_memset
mov r8d, 0x104
lea rdx, [rbp + 0xad0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x14009d2dc
xor edx, edx
lea r8d, [rdi + 0x5c]
lea rcx, [rbp + 0xad0]
call qword [sym.imp.SHLWAPI.dll_StrRChrW]
lea rcx, [rax + 2]
lea rax, [rbp + 0xcd8]
sub rax, rcx
sar rax, 1
cmp rax, 0xc
jb 0x14009d2dc
movups xmm0, xmmword [str.channel.dll]
movups xmmword [rcx], xmm0
movsd xmm0, qword [0x1402480c8]
movsd qword [rcx + 0x10], xmm0
lea rcx, [rbp + 0xad0]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x140268208], rax
test rax, rax
je 0x14009d461
lea rdx, str.RTCInit
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140268200], rax
lea rdx, str.RTCCleanup
mov rcx, qword [0x140268208]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402681f8], rax
lea rdx, str.RTCMessageFromPeer
mov rcx, qword [0x140268208]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402681f0], rax
lea rdx, str.RTCSendToDataChannel
mov rcx, qword [0x140268208]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140267ea0], rax
lea rdx, str.RTCIsDataChannelAvailable
mov rcx, qword [0x140268208]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402681e8], rax
lea rdx, str.RTCDisconnectPeer
mov rcx, qword [0x140268208]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402681e0], rax
lea rdx, str.RTCGetConnectedPeerCount
mov rcx, qword [0x140268208]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402681d8], rax
lea rdx, str.RTCGetPeerFromID
mov rcx, qword [0x140268208]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402681d0], rax
lea rdx, str.RTCSendBroadcast
mov rcx, qword [0x140268208]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402681c8], rax
lea rdx, str.RTCGetBufferedAmount
mov rcx, qword [0x140268208]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.RTCCreateCallerPeer
mov rcx, qword [0x140268208]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.RTCUpdateIceServer
mov rcx, qword [0x140268208]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140268128], rax
lea rdx, str.RTCAddConnectionLostCallback
mov rcx, qword [0x140268208]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140267e68], rax
lea rdx, str.RTCRemoveConnectionLostCallback
mov rcx, qword [0x140268208]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140267e60], rax
mov r10, qword [0x140268200]
test r10, r10
je 0x14009da7f
cmp qword [0x1402681f8], 0
je 0x14009da7f
cmp qword [0x1402681f0], 0
je 0x14009da7f
cmp qword [0x140267ea0], 0
je 0x14009da7f
cmp qword [0x1402681e8], 0
je 0x14009da7f
cmp qword [0x1402681e0], 0
je 0x14009da7f
cmp qword [0x1402681d8], 0
je 0x14009da7f
mov rax, qword [0x140269a50]
mov qword [rsp + 0x20], rax
lea r9, [0x14009d0b0]
lea r8, [0x140095f00]
lea rdx, [0x1400963b0]
lea rcx, [0x1400963e0]
call r10
mov ecx, 0x1588
call fcn.1401d0330
mov rbx, rax
mov qword [rsp + 0x30], rax
xor edx, edx
mov r8d, 0x9e0
lea rcx, [rsp + 0x70]
call sub.VCRUNTIME140.dll_memset
mov rcx, rbx
lea rdx, [rsp + 0x70]
mov r8d, 0x9e0
call sub.VCRUNTIME140.dll_memcpy
xor edx, edx
mov r8d, 0xb58
lea rcx, [rsp + 0x70]
call sub.VCRUNTIME140.dll_memset
lea rcx, [rbx + 0x9e0]
lea rdx, [rsp + 0x70]
mov r8d, 0xb58
call sub.VCRUNTIME140.dll_memcpy
mov qword [rbx + 0x1538], rdi
mov qword [rbx + 0x1540], rdi
mov ecx, reloc.WLDAP32.dll_Ordinal_32
call fcn.1401d0330
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rbx + 0x1538], rax
mov qword [rbx + 0x1570], rdi
mov qword [rbx + 0x1578], rdi
mov qword [rbx + 0x1580], rdi
lea rcx, [rbx + 0x1548]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov rcx, rbx
call fcn.140090130
mov rcx, rbx
call fcn.140090630
mov rcx, rbx
call fcn.140090b30
nop
mov qword [0x140268238], rbx
lea rdx, [rsp + 0x50]
call fcn.140091dd0
nop
lea rcx, [rsp + 0x50]
cmp qword [rsp + 0x68], 0x10
cmovae rcx, qword [rsp + 0x50]
mov edx, dword [rsp + 0x60]
call qword [0x140268128]
mov rbx, qword [0x1402682b0]
test rbx, rbx
jne 0x14009d616
lea ecx, [rbx + 0x40]
call fcn.1401d0330
mov rbx, rax
mov qword [rsp + 0x30], rax
mov qword [rax], rdi
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rdi
lea rcx, [rax + 0x18]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov qword [0x1402682b0], rbx
cmp qword [rbx], 0
jne 0x14009d665
mov ecx, 0x60
call fcn.1401d0330
mov qword [rsp + 0x30], rax
mov edx, 0x6f2a
mov rcx, rax
call fcn.1400b4d50
mov qword [rbx], rax
mov dword [rsp + 0x30], 0x3e8
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x30]
mov edx, 0xffff
mov r8d, 0x1006
mov rcx, qword [rax + 0x18]
call qword [sym.imp.WS2_32.dll_setsockopt]
mov ecx, 0x2a8
call fcn.1401d0330
mov qword [rsp + 0x30], rax
mov rcx, rax
call fcn.14008a9e0
nop
mov ecx, 0xe8
call fcn.1401d0330
mov rbx, rax
mov qword [rsp + 0x30], rax
mov qword [rax], rdi
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rdi
mov dword [rax + 0x18], 1
mov qword [rax + 0x28], rdi
mov qword [rax + 0x30], rdi
mov qword [rax + 0x38], rdi
mov qword [rax + 0x48], rdi
mov qword [rax + 0x50], rdi
mov dword [rax + 0x58], 1
mov qword [rax + 0x60], rdi
mov qword [rax + 0x68], rdi
mov qword [rax + 0x70], rdi
mov dword [rax + 0x78], edi
mov qword [rax + 0x80], rdi
mov qword [rax + 0x88], rdi
mov qword [rax + 0x90], rdi
mov qword [rax + 0x98], rdi
mov qword [rax + 0xa0], rdi
mov qword [rax + 0xa8], rdi
mov qword [rax + 0xb0], rdi
mov qword [rax + 0xb8], rdi
mov qword [rax + 0xc0], rdi
mov qword [rax + 0xc8], rdi
mov qword [rax + 0xd0], rdi
mov qword [rax + 0xd8], rdi
mov qword [rax + 0xe0], rdi
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
mov rcx, rbx
call fcn.1400888d0
nop
mov qword [0x140267e70], rbx
mov ecx, 0x60
call fcn.1401d0330
mov qword [rsp + 0x30], rax
mov edx, 0x6f23
mov rcx, rax
call fcn.1400b46a0
mov qword [0x140268290], rax
mov ecx, 0x278
call fcn.1401d0330
mov rbx, rax
mov qword [rsp + 0x30], rax
lea rax, vtable.CBTHNetwork.0
mov qword [rbx], rax
cmp dword [0x14026831c], 0
jne 0x14009d7a0
mov ecx, 0x202
lea rdx, [rsp + 0x70]
call qword [sym.imp.WS2_32.dll_WSAStartup]
mov dword [0x14026831c], 1
mov qword [rbx + 0x10], rdi
mov qword [rbx + 0x18], rdi
mov qword [rbx + 0x270], rdi
mov dword [rbx + 0x268], edi
mov rcx, rbx
call fcn.14008a240
cmp dword [rbx + 8], 0
je 0x14009d7cb
mov rcx, rbx
call fcn.14008a350
mov qword [0x140268298], rbx
mov dword [0x140263af0], 0x19000
lea rax, [0x140096c30]
mov qword [0x140267d00], rax
mov rbx, qword [0x140268120]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], edi
mov r9, rbx
lea r8, [0x1400766d0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rbx + 0x10], rax
mov rcx, qword [0x140268240]
test rcx, rcx
je 0x14009d82d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x14009d851
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [0x140096820]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [0x140268240], rax
call fcn.1400b5630
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [0x140098600]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [0x140268260], rax
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [0x14009af90]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
je 0x14009d8a5
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [0x14009c880]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
je 0x14009d8d0
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [0x1400965f0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
je 0x14009d8fb
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [0x140077a80]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
je 0x14009d926
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [0x140268298]
cmp dword [rax + 8], 0
je 0x14009d957
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [0x140098960]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [0x140268250], rax
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [0x140098670]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
je 0x14009d982
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea r8, str.Globalmonect_service_ready
xor edx, edx
lea ecx, [rdx + 2]
call qword [sym.imp.KERNEL32.dll_OpenEventW]
mov rbx, rax
test rax, rax
je 0x14009d9ae
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [0x140268248]
test rcx, rcx
je 0x14009d9c9
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x14009d9fa
mov rcx, qword [0x140269a40]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [0x140096870]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [0x140268248], rax
lea rcx, [0x140268160]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov qword [0x1402681b0], rdi
mov qword [0x1402681a8], rdi
mov qword [0x1402681a0], rdi
xorps xmm0, xmm0
xor eax, eax
mov qword [rsp + 0x48], rax
movups xmmword [0x140268188], xmm0
movsd xmm0, qword [rsp + 0x48]
movsd qword [0x140268198], xmm0
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x14009da7b
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009da76
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14009da76
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401d0398
xor eax, eax
jmp 0x14009da84
mov eax, 1
mov rcx, qword [rbp + 0xce0]
xor rcx, rsp
call fcn.1401d0310
lea r11, [rsp + 0xdf0]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
mov rsp, r11
pop rbp
ret