Function at 0x140096720
Capabilities:
Create pipe
Create process on windows
Create two anonymous pipes

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov rax, qword [0x140298cb8]
xor rax, rsp
mov qword [rbp + 0x78], rax
mov dword [rsp + 0x60], r8d
mov r12, rdx
mov qword [rsp + 0x78], rcx
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_CreatePipe]
xor ebx, ebx
lea rdi, [rbx - 1]
test eax, eax
jne 0x14009686e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ebx
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x20], rcx
mov r9d, 0x409
mov r8d, eax
xor edx, edx
mov ecx, 0x1300
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x30], rbx
mov qword [rbp + 0x38], 0xf
mov byte [rbp + 0x20], bl
mov rdx, qword [rsp + 0x58]
mov r8, rdi
inc r8
cmp byte [rdx + r8], bl
jne 0x1400967c4
lea rcx, [rbp + 0x20]
call fcn.140003300
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_LocalFree]
nop
mov r9d, 0x61
lea r8, str..._third_partyprotobuf_srcgoogleprotobufcompiler_subprocess.cc
lea edx, [r9 - 0x5e]
lea rcx, [rbp + 0x40]
call fcn.14013f680
nop
lea rdx, str.CreatePipe:
mov rcx, rax
call fcn.14013fb20
mov rcx, rax
lea rdx, [rbp + 0x20]
call fcn.14013f840
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.14013f7a0
nop
lea rcx, [rbp + 0x40]
call fcn.14013f730
nop
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x14009686e
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140096869
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140096869
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401f41fc
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x78]
call qword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
jne 0x140096981
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ebx
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x20], rcx
mov r9d, 0x409
mov r8d, eax
xor edx, edx
mov ecx, 0x1300
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x30], rbx
mov qword [rbp + 0x38], 0xf
mov byte [rbp + 0x20], 0
mov rdx, qword [rsp + 0x58]
mov r8, rdi
inc r8
cmp byte [rdx + r8], 0
jne 0x1400968d6
lea rcx, [rbp + 0x20]
call fcn.140003300
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_LocalFree]
nop
mov r9d, 0x64
lea r8, str..._third_partyprotobuf_srcgoogleprotobufcompiler_subprocess.cc
lea edx, [r9 - 0x61]
lea rcx, [rbp + 0x40]
call fcn.14013f680
nop
lea rdx, str.CreatePipe:
mov rcx, rax
call fcn.14013fb20
mov rcx, rax
lea rdx, [rbp + 0x20]
call fcn.14013f840
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.14013f7a0
nop
lea rcx, [rbp + 0x40]
call fcn.14013f730
nop
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x140096981
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009697c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14009697c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401f41fc
mov edx, 1
mov r8d, edx
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_SetHandleInformation]
test eax, eax
jne 0x140096a9b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ebx
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x20], rcx
mov r9d, 0x409
mov r8d, eax
xor edx, edx
mov ecx, 0x1300
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x30], rbx
mov qword [rbp + 0x38], 0xf
mov byte [rbp + 0x20], 0
mov rdx, qword [rsp + 0x58]
mov r8, rdi
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x1400969f0
lea rcx, [rbp + 0x20]
call fcn.140003300
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_LocalFree]
nop
mov r9d, 0x6a
lea r8, str..._third_partyprotobuf_srcgoogleprotobufcompiler_subprocess.cc
lea edx, [r9 - 0x67]
lea rcx, [rbp + 0x40]
call fcn.14013f680
nop
lea rdx, str.SetHandleInformation:
mov rcx, rax
call fcn.14013fb20
mov rcx, rax
lea rdx, [rbp + 0x20]
call fcn.14013f840
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.14013f7a0
nop
lea rcx, [rbp + 0x40]
call fcn.14013f730
nop
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x140096a9b
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140096a96
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140096a96
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401f41fc
mov edx, 1
mov r8d, edx
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_SetHandleInformation]
test eax, eax
jne 0x140096bac
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ebx
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x20], rcx
mov r9d, 0x409
mov r8d, eax
xor edx, edx
mov ecx, 0x1300
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x30], rbx
mov qword [rbp + 0x38], 0xf
mov byte [rbp + 0x20], 0
mov rdx, qword [rsp + 0x58]
mov r8, rdi
inc r8
cmp byte [rdx + r8], 0
jne 0x140096b01
lea rcx, [rbp + 0x20]
call fcn.140003300
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_LocalFree]
nop
mov r9d, 0x6f
lea r8, str..._third_partyprotobuf_srcgoogleprotobufcompiler_subprocess.cc
lea edx, [r9 - 0x6c]
lea rcx, [rbp + 0x40]
call fcn.14013f680
nop
lea rdx, str.SetHandleInformation:
mov rcx, rax
call fcn.14013fb20
mov rcx, rax
lea rdx, [rbp + 0x20]
call fcn.14013f840
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.14013f7a0
nop
lea rcx, [rbp + 0x40]
call fcn.14013f730
nop
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x140096bac
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140096ba7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140096ba7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401f41fc
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
mov qword [rbp + 0x10], rax
mov dword [rbp - 0x50], 0x68
mov dword [rbp - 0x14], 0x100
mov rax, qword [rsp + 0x68]
mov qword [rbp], rax
mov rax, qword [rsp + 0x70]
mov qword [rbp + 8], rax
mov ecx, 0xfffffff4
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov qword [rbp + 0x10], rax
cmp rax, 0xffffffffffffffff
jne 0x140096cfc
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ebx
lea rdx, [rsp + 0x58]
mov qword [rsp + 0x20], rdx
mov r9d, 0x409
mov r8d, eax
xor edx, edx
mov ecx, 0x1300
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x30], rbx
mov qword [rbp + 0x38], 0xf
mov byte [rbp + 0x20], 0
mov rdx, qword [rsp + 0x58]
mov r8, rdi
inc r8
cmp byte [rdx + r8], 0
jne 0x140096c51
lea rcx, [rbp + 0x20]
call fcn.140003300
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_LocalFree]
nop
mov r9d, 0x7d
lea r8, str..._third_partyprotobuf_srcgoogleprotobufcompiler_subprocess.cc
lea edx, [r9 - 0x7a]
lea rcx, [rbp + 0x40]
call fcn.14013f680
nop
lea rdx, str.GetStdHandle:
mov rcx, rax
call fcn.14013fb20
mov rcx, rax
lea rdx, [rbp + 0x20]
call fcn.14013f840
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.14013f7a0
nop
lea rcx, [rbp + 0x40]
call fcn.14013f730
nop
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x140096cfc
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140096cf7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140096cf7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401f41fc
mov r15, qword [r12 + 0x10]
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, r15
cmp rax, 0xc
jb 0x140097020
mov r13, r12
cmp qword [r12 + 0x18], 0x10
jb 0x140096d2a
mov r13, qword [r12]
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x30], rbx
mov qword [rbp + 0x38], rbx
lea r14, [r15 + 0xc]
mov ebx, 0xf
lea rsi, [rbp + 0x20]
cmp r14, rbx
jbe 0x140096dc0
mov rbx, r14
or rbx, 0xf
cmp rbx, rcx
jbe 0x140096d7c
mov rbx, rcx
movabs rax, 0x8000000000000027
mov rcx, rax
call fcn.1401f41c0
test rax, rax
je 0x140096da4
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x140096dbc
mov eax, 0x16
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x140096dab
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140097026
jmp 0x140096d61
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
test rcx, rcx
je 0x140096dba
call fcn.1401f41c0
mov rsi, rax
jmp 0x140096dbc
xor esi, esi
mov qword [rbp + 0x20], rsi
mov qword [rbp + 0x30], r14
mov qword [rbp + 0x38], rbx
movsd xmm0, qword [str.cmd.exe__c__]
movsd qword [rsi], xmm0
mov eax, dword [0x140216798]
mov dword [rsi + 8], eax
lea rcx, [rsi + 0xc]
mov r8, r15
mov rdx, r13
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsi + r14], 0
mov rcx, qword [rbp + 0x30]
mov rdx, qword [rbp + 0x38]
mov rax, rdx
sub rax, rcx
cmp rax, 1
jb 0x140096e26
lea rax, [rcx + 1]
mov qword [rbp + 0x30], rax
lea rax, [rbp + 0x20]
cmp rdx, 0x10
cmovae rax, qword [rbp + 0x20]
mov word [rax + rcx], 0x22
lea rax, [rbp + 0x20]
jmp 0x140096e46
mov qword [rsp + 0x20], 1
lea r9, [0x140204638]
xor r8d, r8d
lea edx, [r8 + 1]
lea rcx, [rbp + 0x20]
call fcn.140003960
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x50], xmm1
xor r15d, r15d
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 0xf
mov byte [rax], r15b
lea rbx, [rbp + 0x40]
movq rsi, xmm0
psrldq xmm1, 8
movq r14, xmm1
cmp r14, 0x10
cmovae rbx, rsi
lea rdi, [rdi + 1]
cmp byte [rbx + rdi], r15b
jne 0x140096e82
lea rcx, [rdi + 1]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
test rax, rax
je 0x140096ebe
mov rdx, rax
sub rdx, rbx
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [rbx]
mov byte [rbx + rdx], cl
lea rbx, [rbx + 1]
test cl, cl
jne 0x140096eb0
cmp r14, 0x10
jb 0x140096ef9
lea rdx, [r14 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140096ef0
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140096ef0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rsi
call fcn.1401f41fc
nop
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x140096f37
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140096f32
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140096f32
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401f41fc
mov eax, dword [rsp + 0x60]
test eax, eax
jne 0x140096f44
mov r12, r15
jmp 0x140096f50
cmp qword [r12 + 0x18], 0x10
jb 0x140096f50
mov r12, qword [r12]
mov rdx, r15
test eax, eax
cmove rdx, rdi
lea rax, [rbp - 0x70]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x140096fbd
mov rax, qword [rbp - 0x70]
mov rbx, qword [rsp + 0x78]
mov qword [rbx + 8], rax
mov rcx, qword [rbp - 0x68]
call fcn.140095af0
mov rax, qword [rbp - 0x80]
mov qword [rbx + 0x10], rax
mov rax, qword [rbp - 0x78]
mov qword [rbx + 0x18], rax
jmp 0x140096fdc
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x78]
mov dword [rcx], eax
mov rcx, qword [rbp - 0x80]
call fcn.140095af0
mov rcx, qword [rbp - 0x78]
call fcn.140095af0
mov rcx, qword [rsp + 0x68]
call fcn.140095af0
mov rcx, qword [rsp + 0x70]
call fcn.140095af0
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [rbp + 0x78]
xor rcx, rsp
call fcn.1401f42a0
mov rbx, qword [rsp + 0x1d8]
add rsp, 0x180
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140003280
int3
call fcn.140003260
int3