Function at 0x1400042c0
Capabilities:
Check if file exists
Create process on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1f0
mov rax, qword [0x14007c040]
xor rax, rsp
mov qword [rsp + 0x1e0], rax
mov r12, rcx
xor edi, edi
mov dword [rsp + 0x50], edi
mov rcx, qword [rcx + 0x10]
mov rax, r12
cmp qword [r12 + 0x18], 0xf
jbe 0x140004308
mov rax, qword [r12]
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], rcx
call fcn.14005e0f4
movaps xmm0, xmmword [rsp + 0x150]
movdqa xmmword [rsp + 0x70], xmm0
lea r8, [rsp + 0x70]
mov edx, eax
lea rcx, [rsp + 0x110]
call fcn.140001c60
nop
mov qword [rsp + 0x140], rdi
lea rax, [0x14007c0c0]
mov qword [rsp + 0x148], rax
lea rdx, [rsp + 0x140]
lea rcx, [rsp + 0x110]
call fcn.140003480
movzx ebx, al
cmp dword [rsp + 0x140], 0
jne 0x140004da2
mov rdx, qword [rsp + 0x128]
cmp rdx, 7
jbe 0x1400043c8
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x110]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400043c3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400043c3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14005f0ec
test bl, bl
jne 0x140004412
lea rdx, str.Folder_path_does_not_exist:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14000a090
mov r8, qword [r12 + 0x10]
cmp qword [r12 + 0x18], 0xf
jbe 0x1400043f0
mov r12, qword [r12]
mov rdx, r12
mov rcx, rax
call fcn.14000b540
lea rdx, [0x14000a450]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xor al, al
jmp 0x140004d75
mov rcx, qword [r12 + 0x10]
mov rax, r12
cmp qword [r12 + 0x18], 0xf
jbe 0x140004426
mov rax, qword [r12]
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], rcx
call fcn.14005e0f4
movaps xmm0, xmmword [rsp + 0x150]
movdqa xmmword [rsp + 0x70], xmm0
lea r8, [rsp + 0x70]
mov edx, eax
lea rcx, [rsp + 0x110]
call fcn.140001c60
mov r14d, 0xf000
mov dword [rsp + 0x50], r14d
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x130], xmm0
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x130]
call fcn.140009e20
test eax, eax
jne 0x140004dbf
mov rdx, qword [rsp + 0x128]
cmp rdx, 7
jbe 0x1400044dc
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x110]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400044d7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400044d7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14005f0ec
xorps xmm0, xmm0
movups xmmword [rsp + 0x140], xmm0
mov r15, qword [rsp + 0x138]
test r15, r15
je 0x140004506
lock inc dword [r15 + 8]
mov r15, qword [rsp + 0x138]
mov r14d, dword [rsp + 0x50]
movaps xmm0, xmmword [rsp + 0x130]
movdqa xmmword [rsp + 0x140], xmm0
test r15, r15
je 0x14000452e
lock inc dword [r15 + 8]
mov r15, qword [rsp + 0x138]
mov r14d, dword [rsp + 0x50]
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x160], xmm1
mov r13d, 0xffffffff
test r15, r15
je 0x140004590
mov eax, r13d
lock xadd dword [r15 + 8], eax
cmp eax, 1
jne 0x140004583
mov rbx, qword [rsp + 0x138]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r13d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140004583
mov r15, qword [rsp + 0x138]
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 8]
jmp 0x14000458b
mov r15, qword [rsp + 0x138]
mov r14d, dword [rsp + 0x50]
lea rbx, str..exe
nop word [rax + rax]
mov rsi, qword [rsp + 0x140]
cmp rsi, qword [rsp + 0x160]
je 0x140004ce5
mov r8d, 3
lea rdx, [rsp + 0x80]
mov rcx, rsi
call fcn.140002e10
mov edx, dword [rsp + 0x88]
mov rax, qword [rsp + 0x80]
test edx, edx
je 0x1400045ee
lea ecx, [rax - 1]
test ecx, 0xfffffff7
jne 0x140004dd6
cmp eax, 2
jne 0x140004785
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x98], 4
call fcn.14005e0f4
movaps xmm0, xmmword [rsp + 0x90]
movdqa xmmword [rsp + 0x60], xmm0
lea r8, [rsp + 0x60]
mov edx, eax
lea rcx, [rsp + 0xf0]
call fcn.140001c60
or r14d, 0xc
or r14d, 1
mov dword [rsp + 0x50], r14d
lea rcx, [rsi + 0x20]
cmp qword [rsi + 0x38], 7
jbe 0x14000464e
mov rcx, qword [rsi + 0x20]
mov rax, qword [rsi + 0x30]
lea rdx, [rcx + rax*2]
mov rbx, rdx
call fcn.140001dc0
cmp rax, rdx
je 0x14000469c
movzx ecx, word [rax]
cmp cx, 0x5c
je 0x140004672
cmp cx, 0x2f
jne 0x14000467b
add rax, 2
cmp rax, rdx
jne 0x140004663
cmp rax, rdx
je 0x14000469c
lea r8, [rbx - 2]
movzx ecx, word [r8]
cmp cx, 0x5c
je 0x14000469c
cmp cx, 0x2f
je 0x14000469c
mov rbx, r8
cmp rax, r8
jne 0x140004680
mov r8d, 0x3a
mov rcx, rbx
call fcn.14005e9b0
cmp rbx, rax
je 0x1400046e7
lea rdx, [rax - 2]
cmp rbx, rdx
je 0x1400046e7
cmp word [rdx], 0x2e
jne 0x1400046cf
lea rcx, [rdx - 2]
cmp rbx, rcx
jne 0x1400046ea
cmp word [rcx], 0x2e
jne 0x1400046ea
jmp 0x1400046e7
sub rdx, 2
cmp rbx, rdx
je 0x1400046e7
cmp word [rdx], 0x2e
je 0x1400046ea
sub rdx, 2
cmp rbx, rdx
jne 0x1400046d8
mov rdx, rax
sub rax, rdx
sar rax, 1
xorps xmm0, xmm0
movups xmmword [rsp + 0x110], xmm0
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x128], rdi
mov r8, rax
lea rcx, [rsp + 0x110]
call fcn.14000ab10
or r14d, 0x382
mov dword [rsp + 0x50], r14d
lea rax, [rsp + 0xf0]
mov rbx, qword [rsp + 0x108]
cmp rbx, 7
cmova rax, qword [rsp + 0xf0]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0xa8], rax
movaps xmm0, xmmword [rsp + 0xa0]
movdqa xmmword [rsp + 0x60], xmm0
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x110]
call fcn.140002100
test eax, eax
jne 0x14000478d
mov dil, 1
jmp 0x140004790
mov rbx, qword [rsp + 0x108]
xor dil, dil
test r14b, 2
je 0x140004814
and r14d, 0xfffffffd
mov dword [rsp + 0x50], r14d
mov rdx, qword [rsp + 0x128]
cmp rdx, 7
jbe 0x1400047f6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x110]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400047e9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400047e9
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14005f0ec
mov rbx, qword [rsp + 0x108]
xor eax, eax
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], 7
mov word [rsp + 0x110], ax
test r14b, 1
je 0x140004866
and r14d, 0xfffffffe
mov dword [rsp + 0x50], r14d
cmp rbx, 7
jbe 0x140004866
lea rdx, [rbx*2 + 2]
mov rcx, qword [rsp + 0xf0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004861
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140004861
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14005f0ec
test dil, dil
je 0x140004cc2
lea rcx, [rsi + 0x20]
cmp qword [rsi + 0x38], 7
jbe 0x14000487e
mov rcx, qword [rsi + 0x20]
mov rax, qword [rsi + 0x30]
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0xb8], rax
call fcn.14005e0f4
movaps xmm0, xmmword [rsp + 0xb0]
movdqa xmmword [rsp + 0x60], xmm0
lea r8, [rsp + 0x60]
mov edx, eax
lea rcx, [rsp + 0x110]
call fcn.140009b60
or r14d, 0x70
lea rdx, str.Launching_executable:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.14000a090
lea rdx, [rsp + 0x110]
cmp qword [rsp + 0x128], 0xf
cmova rdx, qword [rsp + 0x110]
mov r8, qword [rsp + 0x120]
mov rcx, rax
call fcn.14000b540
lea rdx, [0x14000a450]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
lea rax, [rsp + 0x110]
cmp qword [rsp + 0x128], 0xf
cmova rax, qword [rsp + 0x110]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0x78], rax
call fcn.14005e0f4
movaps xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0x60], xmm0
lea r8, [rsp + 0x60]
mov edx, eax
lea rcx, [rsp + 0xc0]
call fcn.140001c60
or r14d, 0xc00
mov dword [rsp + 0x50], r14d
xor edi, edi
mov qword [rsp + 0x150], rdi
lea rax, [0x14007c0c0]
mov qword [rsp + 0x158], rax
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0xc0]
call fcn.140003480
movzx ebx, al
cmp dword [rsp + 0x150], edi
jne 0x140004de7
mov rdx, qword [rsp + 0xd8]
cmp rdx, 7
jbe 0x1400049ef
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400049ea
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400049ea
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14005f0ec
test bl, bl
jne 0x140004a91
lea rdx, str.File_does_not_exist:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14000a090
lea rdx, [rsp + 0x110]
cmp qword [rsp + 0x128], 0xf
cmova rdx, qword [rsp + 0x110]
mov r8, qword [rsp + 0x120]
mov rcx, rax
call fcn.14000b540
lea rdx, [0x14000a450]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
nop
mov rdx, qword [rsp + 0x128]
cmp rdx, 0xf
jbe 0x140004cc4
inc rdx
mov rcx, qword [rsp + 0x110]
cmp rdx, 0x1000
mov rax, rcx
jb 0x140004a87
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140004cbb
call fcn.14005f0ec
jmp 0x140004cc4
lea rcx, [rsp + 0x110]
cmp qword [rsp + 0x128], 0xf
cmova rcx, qword [rsp + 0x110]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x140004b16
lea rdx, str.File_
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14000a090
lea rdx, [rsp + 0x110]
cmp qword [rsp + 0x128], 0xf
cmova rdx, qword [rsp + 0x110]
mov r8, qword [rsp + 0x120]
mov rcx, rax
call fcn.14000b540
lea rdx, str._does_not_exist.
mov rcx, rax
call fcn.14000a090
lea rdx, [0x14000a450]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
jmp 0x140004a45
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x174], xmm0
movups xmmword [rsp + 0x184], xmm0
movups xmmword [rsp + 0x194], xmm0
movups xmmword [rsp + 0x1a4], xmm0
movups xmmword [rsp + 0x1b4], xmm0
movups xmmword [rsp + 0x1c4], xmm0
mov dword [rsp + 0x1d4], eax
mov dword [rsp + 0x170], 0x68
movups xmmword [rsp + 0xf0], xmm0
mov qword [rsp + 0x100], rax
mov rax, r12
cmp qword [r12 + 0x18], 0xf
jbe 0x140004b7c
mov rax, qword [r12]
lea rdx, [rsp + 0x110]
cmp qword [rsp + 0x128], 0xf
cmova rdx, qword [rsp + 0x110]
lea rcx, [rsp + 0xf0]
mov qword [rsp + 0x48], rcx
lea rcx, [rsp + 0x170]
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], edi
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x140004c39
lea rdx, str.Failed_to_launch_executable_
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14000a090
lea rdx, [rsp + 0x110]
cmp qword [rsp + 0x128], 0xf
cmova rdx, qword [rsp + 0x110]
mov r8, qword [rsp + 0x120]
mov rcx, rax
call fcn.14000b540
lea rdx, [0x140062e5c]
mov rcx, rax
call fcn.14000a090
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
jmp 0x140004b01
lea rdx, str.Executable_launched_successfully.
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.14000a090
lea rdx, [0x14000a450]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, qword [rsp + 0xf0]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0xf8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rdx, qword [rsp + 0x128]
cmp rdx, 0xf
jbe 0x140004cc4
inc rdx
mov rcx, qword [rsp + 0x110]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004a87
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140004a87
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
xor edi, edi
lea rcx, [rsp + 0x140]
call fcn.140002f70
test eax, eax
lea rbx, str..exe
jne 0x140004e04
jmp 0x1400045a0
mov rcx, qword [rsp + 0x148]
test rcx, rcx
je 0x140004d32
mov eax, r13d
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x140004d2a
mov rbx, qword [rsp + 0x148]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r13d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140004d2a
mov rcx, qword [rsp + 0x148]
mov rax, qword [rcx]
call qword [rax + 8]
mov r15, qword [rsp + 0x138]
test r15, r15
je 0x140004d6f
mov eax, r13d
lock xadd dword [r15 + 8], eax
cmp eax, 1
jne 0x140004d6f
mov rbx, qword [rsp + 0x138]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], r13d
cmp r13d, 1
jne 0x140004d6f
mov rcx, qword [rsp + 0x138]
mov rax, qword [rcx]
call qword [rax + 8]
mov al, 1
jmp 0x140004d75
mov rcx, qword [rsp + 0x1e0]
xor rcx, rsp
call fcn.14005ea90
lea r11, [rsp + 0x1f0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
lea r8, [rsp + 0x110]
lea rdx, [rsp + 0x140]
lea rcx, str.exists
call fcn.140002db0
nop
lea r8, [rsp + 0x110]
mov edx, eax
lea rcx, str.directory_iterator::directory_iterator
call fcn.140002d40
nop
lea r8, [rsi + 0x20]
lea rcx, str.directory_entry::status
call fcn.140002d40
nop
lea r8, [rsp + 0xc0]
lea rdx, [rsp + 0x150]
lea rcx, str.exists
call fcn.140002db0
nop
mov edx, eax
call fcn.140002c50
int3