Function at 0x14012f9a0
Capabilities:
Connect pipe
Create pipe
Create thread

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x30]
sub rsp, 0x130
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rsp + 0x170], rbx
mov rax, qword [0x14027e238]
xor rax, rsp
mov qword [rbp + 0x28], rax
mov r12, r9
mov r14, r8
mov r15, rdx
mov qword [rbp - 0x80], rdx
xor r13d, r13d
lea rdi, [0x14028c520]
nop
movzx eax, byte [r12]
test al, al
je 0x14012fd84
lea rdx, [rbp - 0x38]
mov rcx, r15
call fcn.140136fe0
cmp qword [rax + 0x18], 8
jb 0x14012fa13
mov rax, qword [rax]
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x28], 0x1000
mov dword [rsp + 0x20], 0x1000
mov edx, 3
lea r9d, [rdx + 2]
lea r8d, [rdx + 3]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CreateNamedPipeW]
mov rsi, rax
mov r8, qword [rbp - 0x20]
cmp r8, 8
jb 0x14012fa60
inc r8
mov rdx, qword [rbp - 0x38]
lea rcx, [rbp - 0x38]
call fcn.1400be810
mov qword [rbp - 0x20], 7
mov qword [rbp - 0x28], r13
mov word [rbp - 0x38], r13w
cmp rsi, 0xffffffffffffffff
jne 0x14012fa87
mov ecx, 0x1f4
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x14012f9f0
mov rax, rsi
xchg qword [r14], rax
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ConnectNamedPipe]
test eax, eax
je 0x14012faa0
mov cl, 1
jmp 0x14012faae
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x217
sete cl
movzx eax, byte [r12]
test al, al
je 0x14012fd84
mov rax, r13
xchg qword [r14], rax
test cl, cl
je 0x14012fbdf
mov qword [rbp - 0x60], 7
mov qword [rbp - 0x68], r13
mov word [rbp - 0x78], r13w
mov r8d, 0x2f
lea rdx, str._Wa3rdPartyHost::ServerListen__client_connected
lea rcx, [rbp - 0x78]
call fcn.1400be520
nop
call fcn.1400da700
mov rbx, rax
mov qword [rsp + 0x60], rdi
mov rcx, rdi
call fcn.140166188
test eax, eax
je 0x14012fb11
mov ecx, eax
call fcn.140165cf4
mov byte [rsp + 0x68], 1
cmp qword [rbx + 0x48], 0
je 0x14012fb59
mov dword [rsp + 0x40], 1
mov rdi, qword [rbx + 0x48]
test rdi, rdi
je 0x14012fc7a
mov rax, qword [rdi]
mov rbx, qword [rax + 0x10]
mov rcx, rbx
call qword [fcn.1400059b0]
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x78]
mov rcx, rdi
call rbx
lea rdi, [0x14028c520]
jmp 0x14012fb66
lea rdx, [rbp - 0x78]
mov rcx, rbx
call fcn.1400d5cb0
nop
mov rcx, rdi
call fcn.1401661ac
test eax, eax
je 0x14012fb7a
mov ecx, eax
call fcn.140165cf4
nop
mov r8, qword [rbp - 0x60]
cmp r8, 8
jb 0x14012fb94
inc r8
mov rdx, qword [rbp - 0x78]
lea rcx, [rbp - 0x78]
call fcn.1400be810
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
call fcn.1401649b4
mov qword [rax + 8], rsi
mov qword [rax], r15
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r13d
mov r9, rax
lea r8, [0x140136690]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
je 0x14012fc80
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14012f9f0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, [rbp + 8]
call fcn.140105710
nop
mov r8, rax
lea rdx, str._Wa3rdPartyHost::ServerListen__client_could_not_connect__error
lea rcx, [rbp - 0x18]
call fcn.1400c58d0
mov rbx, rax
call fcn.1400da700
mov rcx, rax
mov r8d, 1
mov rdx, rbx
call fcn.1400d5bf0
nop
mov r8, qword [rbp]
cmp r8, 8
jb 0x14012fc38
inc r8
mov rdx, qword [rbp - 0x18]
lea rcx, [rbp - 0x18]
call fcn.1400be810
mov qword [rbp], 7
mov qword [rbp - 8], r13
mov word [rbp - 0x18], r13w
mov r8, qword [rbp + 0x20]
cmp r8, 8
jb 0x14012fc63
inc r8
mov rdx, qword [rbp + 8]
lea rcx, [rbp + 8]
call fcn.1400be810
test rsi, rsi
je 0x14012f9f0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14012f9f0
call fcn.140165b94
nop
mov qword [rbp - 0x40], 7
mov qword [rbp - 0x48], r13
mov word [rbp - 0x58], r13w
mov r8d, 0x32
lea rdx, str._Wa3rdPartyHost::ServerListen__CreateThread_failed
lea rcx, [rbp - 0x58]
call fcn.1400be520
nop
call fcn.1400da700
mov rbx, rax
mov qword [rsp + 0x70], rdi
mov rcx, rdi
call fcn.140166188
test eax, eax
je 0x14012fcc8
mov ecx, eax
call fcn.140165cf4
mov byte [rsp + 0x78], 1
cmp qword [rbx + 0x48], 0
je 0x14012fd12
mov dword [rsp + 0x48], 1
mov rdi, qword [rbx + 0x48]
test rdi, rdi
jne 0x14012fceb
call fcn.140165b94
int3
mov rax, qword [rdi]
mov rbx, qword [rax + 0x10]
mov rcx, rbx
call qword [fcn.1400059b0]
lea r8, [rsp + 0x48]
lea rdx, [rbp - 0x58]
mov rcx, rdi
call rbx
lea rdi, [0x14028c520]
jmp 0x14012fd1f
lea rdx, [rbp - 0x58]
mov rcx, rbx
call fcn.1400d5cb0
nop
mov rcx, rdi
call fcn.1401661ac
test eax, eax
je 0x14012fd33
mov ecx, eax
call fcn.140165cf4
nop
mov r8, qword [rbp - 0x40]
cmp r8, 8
jb 0x14012fd4e
inc r8
mov rdx, qword [rbp - 0x58]
lea rcx, [rbp - 0x58]
call fcn.1400be810
nop
lea rbx, [r15 + 8]
mov r8, qword [rbx + 0x18]
cmp r8, 8
jb 0x14012fd6a
inc r8
mov rdx, qword [rbx]
mov rcx, rbx
call fcn.1400be810
mov qword [rbx + 0x18], 7
mov qword [rbx + 0x10], r13
cmp qword [rbx + 0x18], 8
jb 0x14012fd80
mov rbx, qword [rbx]
xor al, al
jmp 0x14012fdb8
lea rbx, [r15 + 8]
mov r8, qword [rbx + 0x18]
cmp r8, 8
jb 0x14012fda0
inc r8
mov rdx, qword [rbx]
mov rcx, rbx
call fcn.1400be810
mov qword [rbx + 0x18], 7
mov qword [rbx + 0x10], r13
cmp qword [rbx + 0x18], 8
jb 0x14012fdb6
mov rbx, qword [rbx]
mov al, 1
mov word [rbx], r13w
mov rcx, qword [rbp + 0x28]
xor rcx, rsp
call fcn.1401646e0
mov rbx, qword [rsp + 0x170]
add rsp, 0x130
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret