Function at 0x140004ea0
Capabilities:
Connect pipe
Create pipe
Create thread
Print debug messages

Disassembly:
mov r11, rsp
push rsi
push rdi
push r12
sub rsp, 0x90
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
xor r12d, r12d
mov dword [r11 + 0x18], r12d
xor eax, eax
mov qword [r11 - 0x40], rax
mov qword [r11 - 0x38], rax
mov qword [r11 - 0x30], rax
mov qword [r11 - 0x28], rax
cmp dword [0x140026d04], eax
je 0x140004eea
mov qword [r11 - 0x28], r12
mov qword [r11 - 0x50], r12
jmp 0x140004f09
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x58], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [0x140026d18], rax
mov qword [rsp + 0x60], rax
mov rbx, r12
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0x40], r12
xor r9d, r9d
lea r8, [rsp + 0x40]
lea edx, [r9 + 1]
lea rcx, str.S:_ML__NW___LW_D:_A__0x12019f___WD_
call sub.ADVAPI32.dll_ConvertStringSecurityDescriptorToSecurityDescriptorW
test eax, eax
jne 0x140004f5d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x140004f7b
mov edx, 0x18
lea ecx, [rdx + 0x28]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rdx, rax
test rax, rax
jne 0x140004f9a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x140004f90
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov qword [rsp + 0x40], r12
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140004fb8
mov dword [rax], 0x18
mov rax, qword [rsp + 0x40]
mov qword [rdx + 8], rax
mov dword [rdx + 0x10], r12d
mov rbx, rdx
mov qword [rsp + 0xc8], rdx
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
lea rdx, str..pipeIntegratedDRV
or rsi, 0xffffffffffffffff
test rdx, 0xffffffffffff0000
jne 0x140005009
movzx edi, dx
xor edx, edx
mov ecx, edi
call fcn.140001140
test rax, rax
je 0x140005026
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.140009760
jmp 0x140005026
xor eax, eax
mov rcx, rsi
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x48]
call fcn.140008bd0
nop
mov rdx, qword [0x140026d48]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x48]
call fcn.1400079a0
mov rdi, qword [rsp + 0x48]
mov rdx, rdi
lea rcx, str._PI_EXE__PipeName_:__s
call fcn.140004590
nop
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x28], 0x1000
mov dword [rsp + 0x20], 0x1000
mov edx, 0x40000003
mov r9d, 0xff
mov r8d, 6
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateNamedPipeW]
mov rbp, rax
cmp rax, 0xffffffffffffffff
je 0x14000528c
lea rdx, [rsp + 0x68]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ConnectNamedPipe]
or r9d, 0xffffffff
xor r8d, r8d
lea rdx, [rsp + 0x58]
lea ecx, [r8 + 2]
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
test eax, eax
je 0x140005131
sub eax, 1
je 0x1400051e6
lea rcx, str._PI_EXE_Plus_Call_Count
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
inc dword [0x140026d14]
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r12d
mov r9, rbp
lea r8, [0x140005380]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
je 0x14000518c
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x58], rax
jmp 0x140005050
lea rcx, str._PI_EXE_Plus_Call_Count
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
inc dword [0x140026d14]
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r12d
mov r9, rbp
lea r8, [0x140005380]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
je 0x140005235
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x140005050
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.CreateThread_failed__GLE_d._n
call fcn.14000a880
nop
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x1400051ba
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdi, qword [rsp + 0xc8]
test rdi, rdi
je 0x1400051df
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400051d6
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
xor al, al
jmp 0x1400052e1
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x140005209
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdi, qword [rsp + 0xc8]
test rdi, rdi
je 0x14000522e
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x140005225
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
xor al, al
jmp 0x1400052e1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.CreateThread_failed__GLE_d._n
call fcn.14000a880
nop
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x140005263
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdi, qword [rsp + 0xc8]
test rdi, rdi
je 0x140005288
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x14000527f
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
xor al, al
jmp 0x1400052e1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str._PI_EXE_CreateNamedPipe_failed__GLE_d._n
call fcn.140004590
nop
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x1400052ba
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdi, qword [rsp + 0xc8]
test rdi, rdi
je 0x1400052df
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400052d6
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
xor al, al
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret