Function at 0x14002a524
Capabilities:
Create pipe
Create two anonymous pipes
Spoof parent pid

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x78]
sub rsp, 0x178
mov rax, qword [0x140077100]
xor rax, rsp
mov qword [rbp + 0x60], rax
mov r13, r9
mov qword [rsp + 0x50], r8
mov r15d, edx
mov rdi, rcx
mov qword [rbp - 0x18], rcx
mov r14, qword [rbp + 0xe0]
mov r12, qword [rbp + 0xe8]
mov esi, dword [rbp + 0xf0]
xor ebx, ebx
cmp dword [0x140079050], ebx
je 0x14002a63b
lea r8, [0x140079050]
lea rdx, [rbp - 0x70]
lea rcx, [0x140079058]
call fcn.1400066f8
mov rax, qword [rax]
mov rax, qword [rax + 0x28]
cmp qword [rax + 8], rbx
je 0x14002a63b
test esi, esi
jne 0x14002a8d3
lea rax, [rsp + 0x58]
mov qword [rbp - 0x70], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], rbx
mov rdx, rdi
cmp qword [rdi + 0x18], 7
jbe 0x14002a5d7
mov rdx, qword [rdi]
mov r8, qword [rdi + 0x10]
lea rcx, [rsp + 0x58]
call fcn.140002d44
nop
cmp dword [0x140079050], ebx
je 0x14002a610
lea r8, [0x140079050]
lea rdx, [rbp - 0x80]
lea rcx, [0x140079058]
call fcn.1400066f8
mov rax, qword [rax]
mov rax, qword [rax + 0x28]
mov rbx, qword [rax + 8]
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r13
mov r9, qword [rsp + 0x50]
mov r8d, r15d
lea rdx, [rsp + 0x58]
mov rcx, rbx
call fcn.14002aef0
mov bl, al
jmp 0x14002a8d3
mov qword [rsp + 0x78], rbx
mov qword [rbp - 0x60], rbx
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x50], rbx
xor edx, edx
lea r8d, [rdx + 0x70]
lea rcx, [rbp - 0x10]
call fcn.140059690
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x38], rax
test r14, r14
je 0x14002a6f1
mov dword [rbp - 0x30], 0x18
mov dword [rbp - 0x20], 1
mov qword [rbp - 0x28], rbx
xor r9d, r9d
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
je 0x14002a8d3
xor r9d, r9d
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x58]
call qword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
je 0x14002a8d3
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_SetHandleInformation]
test eax, eax
je 0x14002a8d3
mov rax, qword [rbp - 0x60]
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x48], rax
mov rax, qword [rbp - 0x58]
mov qword [rbp + 0x40], rax
bts dword [rbp + 0x2c], 8
test esi, esi
je 0x14002a7e8
mov r8d, esi
xor edx, edx
mov ecx, 0x2000000
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov qword [rbp - 0x80], rax
test rax, rax
je 0x14002a8d3
mov qword [rbp - 0x70], rbx
lea r9, [rbp - 0x70]
xor r8d, r8d
lea edx, [r8 + 1]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_InitializeProcThreadAttributeList]
test eax, eax
jne 0x14002a7d9
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x14002a7d9
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, qword [rbp - 0x70]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rbp + 0x58], rax
test rax, rax
je 0x14002a7d9
lea r9, [rbp - 0x70]
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_InitializeProcThreadAttributeList]
test eax, eax
jne 0x14002a79e
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, qword [rbp + 0x58]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14002a8d3
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], 8
lea r9, [rbp - 0x80]
xor edx, edx
mov r8d, 0x20000
mov rcx, qword [rbp + 0x58]
call qword [sym.imp.KERNEL32.dll_UpdateProcThreadAttribute]
test eax, eax
je 0x14002a77a
mov dword [rbp - 0x10], 0x70
bts r15d, 0x13
jmp 0x14002a7ef
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14002a8d3
mov dword [rbp - 0x10], 0x68
mov rcx, qword [rdi + 0x10]
inc rcx
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.140034dd0
mov rsi, rax
mov rdx, rdi
cmp qword [rdi + 0x18], 7
jbe 0x14002a821
mov rdx, qword [rdi]
mov r8, qword [rdi + 0x10]
lea r8, [r8*2 + 2]
mov rcx, rsi
call fcn.140059a50
lea rax, [rbp - 0x48]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x10]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
xor ecx, ecx
call fcn.140026a5c
mov rcx, rsi
test eax, eax
jne 0x14002a87c
call fcn.140034bfc
jmp 0x14002a8d3
call fcn.140034bfc
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14002a894
mov rax, qword [rbp - 0x48]
mov qword [rcx], rax
jmp 0x14002a89e
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r13, r13
je 0x14002a8ad
mov rax, qword [rbp - 0x40]
mov qword [r13], rax
jmp 0x14002a8b7
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r14, r14
je 0x14002a8c4
mov rax, qword [rsp + 0x78]
mov qword [r14], rax
test r12, r12
je 0x14002a8d1
mov rax, qword [rbp - 0x50]
mov qword [r12], rax
mov bl, 1
mov rcx, rdi
call fcn.140002044
mov al, bl
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.140034ca0
add rsp, 0x178
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret