Function at 0x140038450
Capabilities:
Check if file exists
Create process on windows
Get common file path

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x600
mov rax, qword [0x1401c0030]
xor rax, rsp
mov qword [rsp + 0x5f0], rax
mov rdx, qword [rsp + 0x610]
lea rcx, [rsp + 0x170]
call fcn.14000b5f0
nop
lea rcx, [rsp + 0x170]
call fcn.140039480
mov rdx, qword [rsp + 0x618]
lea rcx, [rsp + 0x170]
call fcn.1400196b0
lea rcx, [rsp + 0x170]
call fcn.14000b420
mov rcx, rax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x140038507
lea rcx, [rsp + 0x170]
call fcn.14000b4e0
nop
mov rcx, qword [rsp + 0x610]
call fcn.14000b4e0
nop
mov rcx, qword [rsp + 0x618]
call fcn.14000b4e0
nop
mov rcx, qword [rsp + 0x620]
call fcn.14000b4e0
jmp 0x1400387c3
lea rax, [rsp + 0x1d0]
mov rdi, rax
xor eax, eax
mov ecx, 0x208
rep stosb byte [rdi], al
lea rax, [rsp + 0x3e0]
mov rdi, rax
xor eax, eax
mov ecx, 0x208
rep stosb byte [rdi], al
lea rdx, [rsp + 0x3e0]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea rax, [rsp + 0x110]
mov qword [rsp + 0x50], rax
mov rdx, qword [rsp + 0x610]
mov rcx, qword [rsp + 0x50]
call fcn.14000b5f0
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0x58]
call fcn.140039570
mov edx, 0x18
lea rcx, [rsp + 0x88]
call fcn.14000ab70
mov edx, 0x68
lea rcx, [rsp + 0xa0]
call fcn.14000ab70
mov dword [rsp + 0xa0], VarBstrFromR4
xor eax, eax
mov word [rsp + 0xe0], ax
mov rdx, qword [rsp + 0x618]
lea rcx, [rsp + 0x1b0]
call fcn.14000b5f0
nop
lea rdx, [0x14017abbc]
lea rcx, [rsp + 0x1b0]
call fcn.140019680
mov rdx, qword [rsp + 0x620]
lea rcx, [rsp + 0x1b0]
call fcn.1400196b0
lea rcx, [rsp + 0x1b0]
call fcn.14000b670
mov qword [rsp + 0x60], rax
lea rcx, [rsp + 0x1b0]
call fcn.14000b420
mov rcx, qword [rsp + 0x60]
mov r8, rcx
mov rdx, rax
lea rcx, [rsp + 0x1d0]
call fcn.14003df10
lea rdx, str.CUtility::executeProcess__CreateProcess:
lea rcx, [rsp + 0x190]
call fcn.140019710
nop
lea rdx, [rsp + 0x1d0]
lea rcx, [rsp + 0x190]
call fcn.140019680
lea rcx, [rsp + 0x170]
call fcn.14000b420
lea rcx, [rsp + 0x88]
mov qword [rsp + 0x48], rcx
lea rcx, [rsp + 0xa0]
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x8000000
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x1d0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
cmp qword [rsp + 0x88], 0
je 0x1400386f9
lea rdx, str._successfully__n
lea rcx, [rsp + 0x190]
call fcn.140019680
mov edx, 0xffffffff
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14003870d
lea rdx, str._failed__n
lea rcx, [rsp + 0x190]
call fcn.140019680
lea rax, [rsp + 0x130]
mov qword [rsp + 0x68], rax
lea rdx, [rsp + 0x190]
mov rcx, qword [rsp + 0x68]
call fcn.14000b5f0
mov qword [rsp + 0x70], rax
mov rcx, qword [rsp + 0x70]
call fcn.14003a900
lea rax, [rsp + 0x150]
mov qword [rsp + 0x78], rax
lea rdx, [rsp + 0x3e0]
mov rcx, qword [rsp + 0x78]
call fcn.140019710
mov qword [rsp + 0x80], rax
mov rcx, qword [rsp + 0x80]
call fcn.140039570
nop
lea rcx, [rsp + 0x190]
call fcn.14000b4e0
nop
lea rcx, [rsp + 0x1b0]
call fcn.14000b4e0
nop
lea rcx, [rsp + 0x170]
call fcn.14000b4e0
nop
mov rcx, qword [rsp + 0x610]
call fcn.14000b4e0
nop
mov rcx, qword [rsp + 0x618]
call fcn.14000b4e0
nop
mov rcx, qword [rsp + 0x620]
call fcn.14000b4e0
mov rcx, qword [rsp + 0x5f0]
xor rcx, rsp
call fcn.14005e8d0
add rsp, 0x600
pop rdi
ret