Function at 0x180003f50
Capabilities:
Create pipe
Create process on windows
Get common file path
Read file on windows
Read pipe
Terminate process

Disassembly:
push rbp
push rbx
push rsi
lea rbp, [rsp - 0x390]
sub rsp, 0x490
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x360], rax
mov rax, qword [rbp + 0x3d8]
mov rbx, r8
mov qword [rbp - 0x48], rax
lea r8, [rbp - 0x78]
xor eax, eax
mov qword [rbp - 0x50], r9
mov dword [rsp + 0x68], edx
xor esi, esi
mov qword [rbp - 0x58], rcx
lea rdx, [rsp + 0x60]
mov qword [rbp - 0x78], rax
lea rcx, [rsp + 0x58]
mov qword [rbp - 0x68], rax
mov r9d, 0x100000
mov dword [rbp - 0x78], 0x18
mov dword [rbp - 0x68], 1
mov qword [rbp - 0x70], rsi
call qword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
je 0x1800044f9
mov rcx, qword [rsp + 0x58]
lea edx, [rsi + 1]
xor r8d, r8d
mov qword [rsp + 0x480], r13
call qword [sym.imp.KERNEL32.dll_SetHandleInformation]
xor edx, edx
lea r8d, [rsi + 0x68]
lea rcx, [rbp - 0x30]
call fcn.180008090
or dword [rbp + 0xc], 0x100
xor eax, eax
mov qword [rsp + 0x70], rax
mov rcx, rbx
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
mov rax, qword [rsp + 0x60]
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x28], rax
mov dword [rbp - 0x30], 0x68
call fcn.1800026a0
mov r13, rax
test rax, rax
je 0x1800044db
mov qword [rsp + 0x4b0], rdi
or rdi, 0xffffffffffffffff
mov rbx, rdi
mov qword [rsp + 0x470], r15
nop dword [rax]
inc rbx
cmp word [rax + rbx*2], si
jne 0x180004050
add rbx, 0x401
lea rcx, [rbx + rbx]
call fcn.180005210
mov qword [rbp - 0x40], rax
mov r15, rax
test rax, rax
je 0x1800044c3
lea rcx, [0x18001e670]
mov qword [rsp + 0x478], r14
call fcn.180006440
mov r9, r13
mov r8, rax
mov rdx, rbx
mov rcx, r15
mov r14, rax
call fcn.180001370
test r14, r14
je 0x1800040c2
mov r8d, dword [r14 - 8]
lea rcx, [r14 - 8]
add r8, 8
xor edx, edx
call fcn.180008090
lea rcx, [r14 - 8]
call fcn.180005280
lea rdx, [rbp + 0x150]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea rax, [rsp + 0x70]
xor r9d, r9d
mov qword [rsp + 0x48], rax
xor r8d, r8d
lea rax, [rbp - 0x30]
mov rdx, r15
mov qword [rsp + 0x40], rax
xor ecx, ecx
lea rax, [rbp + 0x150]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0x8000000
mov dword [rsp + 0x20], 1
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x1800044b3
mov rcx, qword [rsp + 0x70]
mov edx, 0x1388
mov qword [rsp + 0x488], r12
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, r13
call fcn.180003d60
mov rcx, qword [rsp + 0x58]
mov r12d, eax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rsi
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov dword [rsp + 0x50], esi
xor edx, edx
mov ebx, esi
call qword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test eax, eax
je 0x1800041b2
mov eax, dword [rsp + 0x50]
test eax, eax
jne 0x180004287
cmp ebx, 0x32
ja 0x1800041be
lea ecx, [rax + 0x64]
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rsi
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor edx, edx
inc ebx
call qword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test eax, eax
jne 0x180004170
mov eax, dword [rsp + 0x50]
test eax, eax
jne 0x180004287
mov r14d, 1
mov dword [rsp + 0x54], r14d
test r12d, r12d
je 0x18000427c
lea rdx, [rbp + 0x150]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov qword [rsp + 0x38], rsi
lea r8, [rbp + 0x150]
mov qword [rsp + 0x30], rsi
mov r9d, edi
mov dword [rsp + 0x28], esi
xor edx, edx
mov ecx, r14d
mov qword [rsp + 0x20], rsi
mov rbx, rsi
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movsxd r14, eax
test eax, eax
je 0x18000424f
mov rcx, r14
call fcn.180005210
mov rbx, rax
test rax, rax
je 0x18000424f
mov qword [rsp + 0x38], rsi
lea r8, [rbp + 0x150]
xor edx, edx
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], r14d
mov r9d, edi
mov qword [rsp + 0x20], rax
lea ecx, [rdx + 1]
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test rbx, rbx
je 0x18000426e
mov rax, rdi
inc rax
cmp byte [rbx + rax], sil
jne 0x180004257
mov r14d, dword [rsp + 0x54]
add eax, 3
mov dword [rsp + 0x50], eax
jmp 0x18000428f
mov eax, 1
mov dword [rsp + 0x50], eax
mov r14d, eax
jmp 0x18000428f
mov eax, 0x14
mov dword [rsp + 0x50], eax
jmp 0x18000428a
mov r14d, esi
mov rbx, qword [rsp + 0x60]
lea ecx, [rax + 1]
call fcn.180005210
mov r15, rax
test rax, rax
je 0x180004484
test r14d, r14d
je 0x180004339
test r12d, r12d
je 0x18000430a
test rbx, rbx
je 0x180004355
mov rdx, rax
mov rcx, rbx
sub rdx, rbx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx]
mov byte [rdx + rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x1800042d0
lea rdx, [r15 - 1]
cmp byte [rdx + 1], sil
lea rdx, [rdx + 1]
jne 0x1800042e2
movzx eax, word [0x18001e698]
mov rcx, rbx
mov word [rdx], ax
movzx eax, byte [0x18001e69a]
mov byte [rdx + 2], al
call fcn.180005280
jmp 0x180004355
lea rcx, [0x18001e6a0]
call fcn.1800062d0
mov r8, r15
mov rdx, rax
sub r8, rax
nop
movzx ecx, byte [rdx]
mov byte [r8 + rdx], cl
lea rdx, [rdx + 1]
test cl, cl
jne 0x180004320
mov rcx, rax
call fcn.1800065c0
jmp 0x180004355
mov r8d, dword [rsp + 0x50]
lea r9, [rbp - 0x60]
mov rcx, qword [rsp + 0x58]
mov rdx, rax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [rsp + 0x50]
lea rcx, [rcx*2 + 2]
call fcn.180005210
mov r12, rax
test rax, rax
je 0x18000447c
mov edx, dword [rsp + 0x50]
mov r9d, edi
inc edx
mov r8, r15
mov dword [rsp + 0x28], edx
xor edx, edx
mov qword [rsp + 0x20], rax
lea ecx, [rdx + 1]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov rcx, r12
call fcn.1800025f0
mov r14, rax
test rax, rax
je 0x180004474
mov eax, dword [rsp + 0x50]
test eax, eax
je 0x18000446c
lea rcx, [rax*2 + 0x402]
call fcn.180005210
mov rbx, rax
test rax, rax
je 0x18000446c
mov rax, qword [rbp - 0x58]
mov r8, rdi
mov dword [rbx + 0xc], 2
mov dword [rbx + 0x10], 4
mov ecx, dword [rax]
mov dword [rbx + 4], ecx
mov ecx, dword [rax + 4]
mov eax, dword [rsp + 0x68]
mov dword [rbx + 0x14], eax
mov dword [rbx + 8], ecx
inc r8
cmp byte [r14 + r8], sil
jne 0x1800043f2
lea rcx, [rbx + 0x24]
mov rdx, r14
call fcn.1800011e0
mov dword [rbx + 0x18], 0x24
lea rcx, [rbx + 4]
mov dword [rbx + 0x1c], eax
xor r8d, r8d
lea edx, [rax + 3]
and edx, 0xfffffffc
add edx, 0x24
mov dword [rsp + 0x50], edx
add edx, 0xfffffffc
call fcn.180001e30
mov dword [rbx], eax
mov rax, qword [rbp - 0x50]
inc rdi
cmp byte [rax + rdi], sil
jne 0x180004433
mov r8, rdi
lea rcx, [rbp + 0x40]
mov rdx, rax
call fcn.1800056a0
mov r9d, dword [rsp + 0x50]
lea rcx, [rbp + 0x40]
mov r8, rbx
mov rdx, rbx
call fcn.180005740
mov rcx, qword [rbp - 0x48]
mov rsi, rbx
mov eax, dword [rsp + 0x50]
mov dword [rcx], eax
mov rcx, r14
call fcn.180005280
mov rcx, r12
call fcn.180005280
mov rcx, r15
call fcn.180005280
mov rcx, qword [rsp + 0x70]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r15, qword [rbp - 0x40]
mov r12, qword [rsp + 0x488]
mov rcx, r15
call fcn.180005280
mov r14, qword [rsp + 0x478]
mov rcx, r13
call fcn.180005280
mov r15, qword [rsp + 0x470]
mov rdi, qword [rsp + 0x4b0]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r13, qword [rsp + 0x480]
mov rax, rsi
mov rcx, qword [rbp + 0x360]
xor rcx, rsp
call fcn.180006c40
add rsp, 0x490
pop rsi
pop rbx
pop rbp
ret