Function at 0x14004b8a0
Capabilities:
Create a process with modified i/o handles and window
Create pipe
Create process on windows
Create two anonymous pipes
Print debug messages

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x450
mov rax, qword [0x140126108]
xor rax, rsp
mov qword [rsp + 0x440], rax
mov r12, qword [rsp + 0x4b8]
mov r13, rcx
mov r14, r8
mov rbx, rdx
lea rcx, [rsp + 0x331]
mov r8d, 0x103
xor edx, edx
mov byte [rsp + 0x330], 0
call fcn.1400a0a70
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x78]
xor r9d, r9d
xor r8d, r8d
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_CreatePipe]
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x88]
xor r9d, r9d
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CreatePipe]
mov rdx, qword [rsp + 0x78]
mov dword [rsp + 0x30], 3
lea r9, [rsp + 0x50]
xor esi, esi
mov r8, rdi
mov rcx, rdi
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], esi
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
mov rdx, qword [rsp + 0x90]
mov dword [rsp + 0x30], 3
lea r9, [rsp + 0x58]
mov r8, rdi
mov rcx, rdi
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], esi
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
lea r8d, [rsi + 0x68]
lea rcx, [rsp + 0xa0]
xor edx, edx
call fcn.1400a0a70
mov rax, qword [rsp + 0x58]
xor edx, edx
mov qword [rsp + 0xf8], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0xf0], rax
mov rax, qword [r13 + 0x18]
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rdx
mov dword [rsp + 0xa0], 0x68
mov dword [rsp + 0xdc], 0x101
mov word [rsp + 0xe0], dx
mov rbp, qword [rax + 0xa0]
lea r15, [0x1400e8c12]
test rbp, rbp
jne 0x14004bb14
lea rdx, [0x1400f6a54]
mov rcx, rbx
call fcn.1400a2350
test rax, rax
mov rsi, rax
je 0x14004bace
lea rcx, [rsp + 0x110]
mov r8, rax
mov edx, 0x104
call fcn.1400a1ef0
lea rdx, [rsp + 0x110]
lea rcx, [0x1400f72e0]
mov al, byte [rdx]
cmp al, byte [rcx]
jne 0x14004ba58
mov al, byte [rdx + 1]
cmp al, byte [rcx + 1]
jne 0x14004ba58
xor edx, edx
mov ecx, edx
jmp 0x14004ba5f
sbb ecx, ecx
sbb ecx, 0xffffffff
xor edx, edx
movzx eax, byte [rsp + 0x112]
test ecx, ecx
lea rdi, [rsp + 0x110]
cmovne eax, edx
or rcx, 0xffffffffffffffff
mov byte [rsp + 0x112], al
xor eax, eax
repne scasb al, byte [rdi]
lea rdi, [rsp + 0x110]
lea rax, [rsp + 0x110]
sub rdi, 1
not rcx
sub rcx, 1
add rdi, rcx
cmp rdi, rax
jbe 0x14004bac6
movsx ecx, byte [rdi]
call fcn.14009ddb0
test eax, eax
je 0x14004bac6
lea rax, [rsp + 0x110]
mov byte [rdi], 0
sub rdi, 1
cmp rdi, rax
ja 0x14004baa6
mov rcx, rsi
call fcn.14009ee10
cmp byte [rsp + 0x112], 0
lea rax, [0x1400f72e4]
lea r9, [rsp + 0x112]
cmove rax, r15
lea r8, str._s_s_s
lea rcx, [rsp + 0x220]
mov edx, 0x104
mov qword [rsp + 0x28], rbx
lea rbp, [rsp + 0x112]
mov qword [rsp + 0x20], rax
call fcn.14004a910
mov edx, 0x2f
mov rcx, rbx
call fcn.1400a2a10
test rax, rax
je 0x14004bb2a
lea rbx, [rax + 1]
mov rdi, r15
mov rsi, rbp
mov ecx, 1
repe cmpsb byte [rsi], byte [rdi]
lea rcx, [rsp + 0x220]
mov edx, 0x104
jne 0x14004bb57
lea r8, [0x1400f66e8]
mov r9, rbx
call fcn.14004a910
jmp 0x14004bb6b
lea r8, str._s__s
mov r9, rbp
mov qword [rsp + 0x20], rbx
call fcn.14004a910
lea r8, [0x1400f66e8]
lea rcx, [rsp + 0x110]
mov r9, r12
mov edx, 0x104
call fcn.14004a910
cmp byte [rsp + 0x110], 0
lea rbp, [rsp + 0x110]
je 0x14004bbe9
nop
nop
movzx eax, byte [rbp]
cmp al, 0x2f
jne 0x14004bbae
mov byte [rbp], 0x5c
jmp 0x14004bbb2
cmp al, 0x5c
jne 0x14004bbdf
movzx eax, byte [rbp + 1]
cmp al, 0x5c
je 0x14004bbbe
cmp al, 0x2f
jne 0x14004bbdf
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rbp + 2]
repne scasb al, byte [rdi]
lea rdx, [rbp + 2]
not rcx
mov r8, rcx
lea rcx, [rbp + 1]
call fcn.1400a51c0
jmp 0x14004bbb2
add rbp, 1
cmp byte [rbp], 0
jne 0x14004bba0
cmp byte [rsp + 0x220], 0
lea rbp, [rsp + 0x220]
je 0x14004bc49
nop
nop
movzx eax, byte [rbp]
cmp al, 0x2f
jne 0x14004bc0e
mov byte [rbp], 0x5c
jmp 0x14004bc12
cmp al, 0x5c
jne 0x14004bc3f
movzx eax, byte [rbp + 1]
cmp al, 0x5c
je 0x14004bc1e
cmp al, 0x2f
jne 0x14004bc3f
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rbp + 2]
repne scasb al, byte [rdi]
lea rdx, [rbp + 2]
not rcx
mov r8, rcx
lea rcx, [rbp + 1]
call fcn.1400a51c0
jmp 0x14004bc12
add rbp, 1
cmp byte [rbp], 0
jne 0x14004bc00
mov rbx, qword [rsp + 0x88]
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400a2590
test rax, rax
mov rdi, rax
jne 0x14004bc7c
lea rdx, str..compat_win32.c
lea rcx, str.tp___NULL
mov r8d, 0x190
call fcn.1400a32e0
movsxd rsi, dword [rsp + 0x4b0]
xor eax, eax
lea rcx, [0x14004b750]
mov r8, rdi
xor edx, edx
mov qword [rdi + 8], rbx
mov qword [rdi], rsi
mov dword [rdi + 0x10], eax
call fcn.1400a2cb0
mov ebx, dword [r13 + 0x22c]
mov rbp, qword [rsp + 0x80]
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400a2590
test rax, rax
mov rdi, rax
jne 0x14004bcdb
lea rdx, str..compat_win32.c
lea rcx, str.tp___NULL
mov r8d, 0x190
call fcn.1400a32e0
lea rcx, [0x14004b5f0]
mov r8, rdi
xor edx, edx
mov qword [rdi], rsi
mov qword [rdi + 8], rbp
mov dword [rdi + 0x10], ebx
call fcn.1400a2cb0
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x330]
lea rdx, [rsp + 0x110]
repne scasb al, byte [rdi]
xor ecx, ecx
movzx eax, byte [rdx + rcx]
add rcx, 1
test al, al
mov byte [rdi + rcx - 2], al
jne 0x14004bd10
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x330]
repne scasb al, byte [rdi]
movzx eax, word [0x1400f72f8]
or rcx, 0xffffffffffffffff
mov word [rdi - 1], ax
xor eax, eax
lea rdi, [rsp + 0x330]
repne scasb al, byte [rdi]
xor ecx, ecx
lea rdx, [rsp + 0x220]
nop
nop
nop
movzx eax, byte [rdx + rcx]
add rcx, 1
test al, al
mov byte [rdi + rcx - 2], al
jne 0x14004bd60
lea rax, [rsp + 0x60]
lea rdx, [rsp + 0x330]
xor r9d, r9d
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0xa0]
xor r8d, r8d
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x110]
xor ecx, ecx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x200
mov dword [rsp + 0x20], 1
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x14004be08
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [rsp + 0x110]
lea r9, [rsp + 0x220]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
lea r8, str.redirect:_CreateProcess__s___s_:__d
mov ecx, 2
mov rdx, r13
call fcn.1400488b0
lea rcx, str.ERROR
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
or eax, 0xffffffff
jmp 0x14004be36
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.14009cca0
mov rbx, qword [rsp + 0x4a8]
add rsp, 0x450
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret