Function at 0x14006bd16
Capabilities:
Create pipe
Create process on windows
Query environment variable
Read file on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
mov eax, 0x11448
call fcn.140072b30
sub rsp, rax
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x11410], rcx
mov rbx, rdx
mov rax, qword [rbx]
mov rdx, qword [rbx + 8]
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x113b8], 0
mov qword [rbp + 0x113a0], 0
mov qword [rbp + 0x11398], 0
mov dword [rbp + 0x11380], 0
mov qword [rbp + 0x11388], 0
mov byte [rbp + 0x11390], 0
mov dword [rbp + 0x11380], 0x18
mov byte [rbp + 0x11390], 1
lea rcx, [rbp + 0x11380]
lea rdx, [rbp + 0x11398]
lea rax, [rbp + 0x113a0]
mov r9d, 0
mov r8, rcx
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CreatePipe]
call rax
mov byte [rbp + 0x113b7], al
cmp byte [rbp + 0x113b7], 0
jne 0x14006beb2
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov dword [rbp + 0x113a8], eax
lea rax, [rbp + 0x1a0]
mov edx, dword [rbp + 0x113a8]
mov rcx, rax
call sym.os__get_error_msg
mov eax, dword [rbp + 0x113a8]
mov dword [rbp + 0x180], eax
pxor xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
lea rax, str.exec_failed__CreatePipe_:
mov qword [rbp + 0x20], rax
mov dword [rbp + 0x28], 0x1a
mov dword [rbp + 0x2c], 1
mov dword [rbp + 0x30], 0xfe10
mov rax, qword [rbp + 0x1a0]
mov rdx, qword [rbp + 0x1a8]
mov qword [rbp + 0x38], rax
mov qword [rbp + 0x40], rdx
lea rax, [0x140088256]
mov qword [rbp + 0x48], rax
mov dword [rbp + 0x54], 1
lea rax, [rbp + 0x188]
lea rdx, [rbp + 0x20]
mov r8, rdx
mov edx, 2
mov rcx, rax
call sym.str_intp
mov rcx, qword [rbp + 0x11410]
mov rax, qword [rbp + 0x180]
mov rdx, qword [rbp + 0x188]
mov qword [rcx], rax
mov qword [rcx + 8], rdx
mov rax, qword [rbp + 0x190]
mov qword [rcx + 0x10], rax
jmp 0x14006c70e
mov rax, qword [rbp + 0x113a0]
mov r8d, 0
mov edx, 1
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetHandleInformation]
call rax
mov byte [rbp + 0x113b6], al
cmp byte [rbp + 0x113b6], 0
jne 0x14006bfba
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov dword [rbp + 0x113ac], eax
lea rax, [rbp + 0x150]
mov edx, dword [rbp + 0x113ac]
mov rcx, rax
call sym.os__get_error_msg
mov eax, dword [rbp + 0x113ac]
mov dword [rbp + 0x130], eax
pxor xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
lea rax, str.exec_failed__SetHandleInformation_:
mov qword [rbp + 0x20], rax
mov dword [rbp + 0x28], 0x24
mov dword [rbp + 0x2c], 1
mov dword [rbp + 0x30], 0xfe10
mov rax, qword [rbp + 0x150]
mov rdx, qword [rbp + 0x158]
mov qword [rbp + 0x38], rax
mov qword [rbp + 0x40], rdx
lea rax, [0x140088256]
mov qword [rbp + 0x48], rax
mov dword [rbp + 0x54], 1
lea rax, [rbp + 0x138]
lea rdx, [rbp + 0x20]
mov r8, rdx
mov edx, 2
mov rcx, rax
call sym.str_intp
mov rcx, qword [rbp + 0x11410]
mov rax, qword [rbp + 0x130]
mov rdx, qword [rbp + 0x138]
mov qword [rcx], rax
mov qword [rcx + 8], rdx
mov rax, qword [rbp + 0x140]
mov qword [rcx + 0x10], rax
jmp 0x14006c70e
mov qword [rbp + 0x11340], 0
mov qword [rbp + 0x11348], 0
mov dword [rbp + 0x11350], 0
mov dword [rbp + 0x11354], 0
mov dword [rbp + 0x112b0], 0x68
mov qword [rbp + 0x112b8], 0
mov qword [rbp + 0x112c0], 0
mov qword [rbp + 0x112c8], 0
mov dword [rbp + 0x112d0], 0
mov dword [rbp + 0x112d4], 0
mov dword [rbp + 0x112d8], 0
mov dword [rbp + 0x112dc], 0
mov dword [rbp + 0x112e0], 0
mov dword [rbp + 0x112e4], 0
mov dword [rbp + 0x112e8], 0
mov dword [rbp + 0x112ec], 0x100
mov word [rbp + 0x112f0], 0
mov word [rbp + 0x112f2], 0
mov qword [rbp + 0x112f8], 0
mov rax, qword [rbp + 0x113b8]
mov qword [rbp + 0x11300], rax
mov rax, qword [rbp + 0x11398]
mov qword [rbp + 0x11308], rax
mov rax, qword [rbp + 0x11398]
mov qword [rbp + 0x11310], rax
mov rax, qword [rbp + 0x10]
mov rdx, qword [rbp + 0x18]
mov qword [rbp + 0x11230], rax
mov qword [rbp + 0x11238], rdx
lea r12, [0x14008a7ed]
mov rdx, r13
movabs rax, 0xffffffff00000000
and rax, rdx
or rax, 2
mov r13, rax
mov rax, r13
mov edx, eax
movabs rax, 0x100000000
or rax, rdx
mov r13, rax
mov rax, qword [rbp + 0x10]
mov rdx, qword [rbp + 0x18]
mov qword [rbp], rax
mov qword [rbp + 8], rdx
mov qword [rbp - 0x10], r12
mov qword [rbp - 8], r13
lea rdx, [rbp - 0x10]
mov rax, rbp
mov rcx, rax
call sym.string_contains
test al, al
je 0x14006c1d3
lea r14, [0x14008a7f0]
mov rdx, r15
movabs rax, 0xffffffff00000000
and rax, rdx
or rax, 2
mov r15, rax
mov rax, r15
mov edx, eax
movabs rax, 0x100000000
or rax, rdx
mov r15, rax
lea rax, [0x14008a7ed]
mov qword [rbp - 0x30], rax
mov rdx, qword [rbp - 0x28]
movabs rax, 0xffffffff00000000
and rax, rdx
or rax, 2
mov qword [rbp - 0x28], rax
mov rax, qword [rbp - 0x28]
mov edx, eax
movabs rax, 0x100000000
or rax, rdx
mov qword [rbp - 0x28], rax
lea rcx, [rbp + 0x11230]
mov rax, qword [rbp + 0x11230]
mov rdx, qword [rbp + 0x11238]
mov qword [rbp], rax
mov qword [rbp + 8], rdx
movdqu xmm1, xmmword [rbp - 0x30]
movups xmmword [rbp - 0x10], xmm1
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], r15
lea r8, [rbp - 0x20]
lea rdx, [rbp - 0x10]
mov rax, rbp
mov r9, r8
mov r8, rdx
mov rdx, rax
call sym.string_replace
lea rsi, [0x14008a7f3]
mov rdx, rdi
movabs rax, 0xffffffff00000000
and rax, rdx
or rax, 2
mov rdi, rax
mov rax, rdi
mov edx, eax
movabs rax, 0x100000000
or rax, rdx
mov rdi, rax
mov rax, qword [rbp + 0x10]
mov rdx, qword [rbp + 0x18]
mov qword [rbp], rax
mov qword [rbp + 8], rdx
mov qword [rbp - 0x10], rsi
mov qword [rbp - 8], rdi
lea rdx, [rbp - 0x10]
mov rax, rbp
mov rcx, rax
call sym.string_contains
test al, al
je 0x14006c2ce
pxor xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
lea rax, str.cmd__c__
mov qword [rbp + 0x20], rax
mov dword [rbp + 0x28], 8
mov dword [rbp + 0x2c], 1
mov dword [rbp + 0x30], 0xfe10
mov rax, qword [rbp + 0x11230]
mov rdx, qword [rbp + 0x11238]
mov qword [rbp + 0x38], rax
mov qword [rbp + 0x40], rdx
lea rax, [0x140088edb]
mov qword [rbp + 0x48], rax
mov dword [rbp + 0x50], 1
mov dword [rbp + 0x54], 1
mov rax, rbp
lea rdx, [rbp + 0x20]
mov r8, rdx
mov edx, 2
mov rcx, rax
call sym.str_intp
mov rax, qword [rbp]
mov rdx, qword [rbp + 8]
mov qword [rbp + 0x11230], rax
mov qword [rbp + 0x11238], rdx
jmp 0x14006c362
pxor xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
lea rax, str.cmd__c__
mov qword [rbp + 0x20], rax
mov dword [rbp + 0x28], 8
mov dword [rbp + 0x2c], 1
mov dword [rbp + 0x30], 0xfe10
mov rax, qword [rbp + 0x11230]
mov rdx, qword [rbp + 0x11238]
mov qword [rbp + 0x38], rax
mov qword [rbp + 0x40], rdx
lea rax, str._2_1_
mov qword [rbp + 0x48], rax
mov dword [rbp + 0x50], 6
mov dword [rbp + 0x54], 1
mov rax, rbp
lea rdx, [rbp + 0x20]
mov r8, rdx
mov edx, 2
mov rcx, rax
call sym.str_intp
mov rax, qword [rbp]
mov rdx, qword [rbp + 8]
mov qword [rbp + 0x11230], rax
mov qword [rbp + 0x11238], rdx
lea rax, [rbp + 0x1230]
mov edx, 0x10000
mov r8, rdx
mov edx, 0
mov rcx, rax
call sym.memset
mov rax, qword [rbp + 0x11230]
mov rdx, qword [rbp + 0x11238]
mov qword [rbp], rax
mov qword [rbp + 8], rdx
mov rax, rbp
mov rcx, rax
call sym.string_to_wide
mov rcx, rax
lea rax, [rbp + 0x1230]
mov r8d, 0x8000
mov rdx, rax
mov rax, qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
call rax
lea rax, [rbp + 0x1230]
lea rdx, [rbp + 0x11340]
mov qword [rsp + 0x48], rdx
lea rdx, [rbp + 0x112b0]
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 1
mov r9d, 0
mov r8d, 0
mov rdx, rax
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_CreateProcessW]
call rax
mov byte [rbp + 0x113b5], al
cmp byte [rbp + 0x113b5], 0
jne 0x14006c567
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
mov dword [rbp + 0x113b0], eax
lea rax, [rbp + 0x100]
mov edx, dword [rbp + 0x113b0]
mov rcx, rax
call sym.os__get_error_msg
mov eax, dword [rbp + 0x113b0]
mov dword [rbp + 0xe0], eax
lea rdx, [rbp + 0x20]
mov eax, 0
mov ecx, 0x14
mov rdi, rdx
rep stosq qword [rdi], rax
lea rax, str.exec_failed__CreateProcess__with_code
mov qword [rbp + 0x20], rax
mov dword [rbp + 0x28], 0x26
mov dword [rbp + 0x2c], 1
mov dword [rbp + 0x30], 0xfe07
mov eax, dword [rbp + 0x113b0]
mov dword [rbp + 0x38], eax
lea rax, [0x140088ddd]
mov qword [rbp + 0x48], rax
mov dword [rbp + 0x50], 2
mov dword [rbp + 0x54], 1
mov dword [rbp + 0x58], 0xfe10
mov rax, qword [rbp + 0x100]
mov rdx, qword [rbp + 0x108]
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x68], rdx
lea rax, str._cmd:
mov qword [rbp + 0x70], rax
mov dword [rbp + 0x78], 6
mov dword [rbp + 0x7c], 1
mov dword [rbp + 0x80], 0xfe10
mov rax, qword [rbp + 0x10]
mov rdx, qword [rbp + 0x18]
mov qword [rbp + 0x88], rax
mov qword [rbp + 0x90], rdx
lea rax, [0x140088256]
mov qword [rbp + 0x98], rax
mov dword [rbp + 0xa4], 1
lea rax, [rbp + 0xe8]
lea rdx, [rbp + 0x20]
mov r8, rdx
mov edx, 4
mov rcx, rax
call sym.str_intp
mov rcx, qword [rbp + 0x11410]
mov rax, qword [rbp + 0xe0]
mov rdx, qword [rbp + 0xe8]
mov qword [rcx], rax
mov qword [rcx + 8], rdx
mov rax, qword [rbp + 0xf0]
mov qword [rcx + 0x10], rax
jmp 0x14006c70e
mov rax, qword [rbp + 0x113b8]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0x11398]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
lea rdx, [rbp + 0x230]
mov eax, 0
mov ecx, 0x200
mov rdi, rdx
rep stosq qword [rdi], rax
mov dword [rbp + 0x22c], 0
lea rax, [rbp + 0x200]
mov edx, 0x400
mov rcx, rax
call sym.strings__new_builder
mov byte [rbp + 0x113b4], 0
mov rax, qword [rbp + 0x113a0]
lea rcx, [rbp + 0x22c]
lea rdx, [rbp + 0x230]
mov qword [rsp + 0x20], 0
mov r9, rcx
mov r8d, 0x3e8
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_ReadFile]
call rax
mov byte [rbp + 0x113b4], al
mov eax, dword [rbp + 0x22c]
mov ecx, eax
lea rdx, [rbp + 0x230]
lea rax, [rbp + 0x200]
mov r8d, ecx
mov rcx, rax
call sym.strings__Builder_write_ptr
cmp byte [rbp + 0x113b4], 0
je 0x14006c638
mov eax, dword [rbp + 0x22c]
test eax, eax
je 0x14006c638
jmp 0x14006c5c2
lea rax, [rbp + 0x1f0]
lea rdx, [rbp + 0x200]
mov rcx, rax
call sym.strings__Builder_str
lea rax, [rbp + 0x200]
mov rcx, rax
call sym.strings__Builder_free
mov dword [rbp + 0x1ec], 0
mov rax, qword [rbp + 0x11340]
mov edx, 0xffffffff
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call rax
mov rax, qword [rbp + 0x11340]
lea rdx, [rbp + 0x1ec]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
call rax
mov rax, qword [rbp + 0x11340]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0x11348]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov eax, dword [rbp + 0x1ec]
mov dword [rbp + 0x1d0], eax
mov rax, qword [rbp + 0x1f0]
mov rdx, qword [rbp + 0x1f8]
mov qword [rbp + 0x1d8], rax
mov qword [rbp + 0x1e0], rdx
mov rcx, qword [rbp + 0x11410]
mov rax, qword [rbp + 0x1d0]
mov rdx, qword [rbp + 0x1d8]
mov qword [rcx], rax
mov qword [rcx + 8], rdx
mov rax, qword [rbp + 0x1e0]
mov qword [rcx + 0x10], rax
mov rax, qword [rbp + 0x11410]
add rsp, 0x11448
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret