Function at 0x14005cbfc
Capabilities:
Create process on windows

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x298
mov qword [rsp + 0xb0], 0xfffffffffffffffe
mov rax, qword [0x14010bfc0]
xor rax, rsp
mov qword [rsp + 0x280], rax
mov rsi, r9
mov r14d, r8d
mov r12d, edx
mov rdi, rcx
mov r13, qword [rsp + 0x300]
mov dword [rsp + 0x50], 0x57
xor ebp, ebp
lea r15d, [rbp + 1]
cmp rcx, rbp
je 0x14005cc64
call fcn.1400980d0
cmp rax, rbp
jbe 0x14005cc64
mov ecx, r15d
jmp 0x14005cc66
mov ecx, ebp
mov eax, ebp
cmp ecx, ebp
setne al
cmp eax, ebp
jne 0x14005cc9c
xor ecx, ecx
call fcn.14004d8f0
mov r9, rax
lea r8, str.Invalid_command_line
lea rdx, str._s_failed_returning__s_n
lea rcx, [0x14010f570]
call fcn.14004b7ec
xor eax, eax
jmp 0x14005d256
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rsi
mov r9d, r12d
mov r8, rdi
lea rdx, str.LaunchApp__s__d__p__p__n
lea rbx, [0x14010f570]
mov rcx, rbx
call fcn.14004b9f0
mov dword [rsp + 0x50], ebp
mov dword [rsp + 0x68], ebp
mov dword [rsp + 0x6c], ebp
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], rbp
mov dword [rsp + 0x130], 0x68
mov eax, dword [rsp + 0x310]
cmp eax, r15d
je 0x14005ce20
cmp r12d, ebp
jne 0x14005cd00
cmp eax, ebp
je 0x14005ce20
mov r15d, ebp
mov r9, rdi
lea r8, str.Using_CreateProcess_cmdline___s__n
mov edx, 0x20
mov rcx, rbx
call fcn.140001000
lea rcx, [rsp + 0x130]
call qword [sym.imp.KERNEL32.dll_GetStartupInfoA]
mov qword [rsp + 0x90], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rsp + 0x88], rbp
mov byte [rsp + 0x78], bpl
mov rcx, rdi
call fcn.1400980d0
mov r8, rax
mov rdx, rdi
lea rcx, [rsp + 0x70]
call fcn.14000352c
lea rdx, [rsp + 0x78]
cmp qword [rsp + 0x90], 0x10
cmovae rdx, qword [rsp + 0x78]
lea r8, [rsp + 0x70]
lea rcx, [rsp + 0xa0]
call fcn.14000c3fc
mov rbp, qword [rsp + 0xa0]
cmp rbp, 0xfffffffffffffffc
je 0x14005cdbb
test rbp, rbp
jne 0x14005cd97
call fcn.14009861c
cmp qword [rbp + 0x20], 0x10
jb 0x14005cda4
mov rcx, qword [rbp + 8]
jmp 0x14005cda8
lea rcx, [rbp + 8]
add rcx, qword [rbp + 0x18]
cmp qword [rsp + 0xa8], rcx
jb 0x14005cdbb
call fcn.14009861c
lea rax, [rsp + 0x58]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x130]
mov qword [rsp + 0x40], rax
xor eax, eax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x20
mov dword [rsp + 0x20], eax
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rsp + 0xa8]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
mov ebp, eax
cmp qword [rsp + 0x90], 0x10
jb 0x14005cf5b
mov rcx, qword [rsp + 0x78]
call fcn.14006127c
jmp 0x14005cf5b
mov rdx, rdi
lea rcx, [rsp + 0x1a0]
call fcn.14005ff6c
nop
lea rax, [rsp + 0x260]
cmp qword [rsp + 0x278], 0x10
cmovae rax, qword [rsp + 0x260]
lea r9, [rsp + 0x238]
cmp qword [rsp + 0x250], 0x10
cmovae r9, qword [rsp + 0x238]
mov qword [rsp + 0x20], rax
lea r8, str.Using_shellExecute_file___s_and_param__s_n
mov edx, 0x20
mov rcx, rbx
call fcn.140001000
mov dword [rsp + 0xc0], 0x70
mov eax, 0x440
mov ecx, 0x540
cmp r12d, ebp
cmove eax, ecx
mov dword [rsp + 0xc4], eax
mov qword [rsp + 0xc8], rbp
mov qword [rsp + 0xd0], rbp
lea rax, [rsp + 0x238]
cmp qword [rsp + 0x250], 0x10
cmovae rax, qword [rsp + 0x238]
mov qword [rsp + 0xd8], rax
lea rax, [rsp + 0x260]
cmp qword [rsp + 0x278], 0x10
cmovae rax, qword [rsp + 0x260]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], rbp
mov dword [rsp + 0xf0], 1
mov qword [rsp + 0xf8], rbp
mov qword [rsp + 0x128], rbp
lea rcx, [rsp + 0xc0]
call qword [sym.imp.SHELL32.dll_ShellExecuteExA]
mov ebp, eax
test eax, eax
je 0x14005cf4e
xor edx, edx
lea r8d, [rdx + 0x18]
lea rcx, [rsp + 0x58]
call fcn.1400988d0
mov r11, qword [rsp + 0x128]
mov qword [rsp + 0x58], r11
and qword [rsp + 0x60], 0
lea rcx, [rsp + 0x1a0]
call fcn.14005f1a0
test ebp, ebp
jne 0x14005cf95
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rsi
mov r9d, r12d
mov r8, rdi
lea rdx, str.LaunchApp__s__d__p__p__failed_with__d_n
mov rcx, rbx
call fcn.14004b7ec
mov eax, dword [rsp + 0x50]
jmp 0x14005d256
test rsi, rsi
je 0x14005cfc9
mov edx, 0xbb8
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.USER32.dll_WaitForInputIdle]
xor r8d, r8d
mov rdx, r13
mov rcx, qword [rsp + 0x58]
call rsi
mov r8, rsi
lea rdx, str.Called__p_callback_before_waiting_n
mov rcx, rbx
call fcn.14004b9f0
test r12d, r12d
je 0x14005d247
xor r12d, r12d
cmp dword [rsp + 0x308], r12d
je 0x14005d174
mov r8, rdi
lea rdx, str.Waiting_for__s__or_any_messages__n
mov rcx, rbx
call fcn.14004b9f0
mov dword [rsp + 0x20], 0xff
mov r9d, r14d
xor r8d, r8d
lea rdx, [rsp + 0x58]
lea ecx, [r12 + 1]
call qword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
mov dword [rsp + 0x50], eax
mov ebp, 0x80
cmp eax, 1
jne 0x14005d0d7
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x70]
call qword [sym.imp.USER32.dll_PeekMessageA]
cmp eax, r12d
je 0x14005d0ad
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x20], eax
mov r9, rdi
lea r8, str.Received_message_while_waiting_for__s...__0x_x
mov edx, ebp
mov rcx, rbx
call fcn.140001000
cmp dword [rsp + 0x78], 0x12
jne 0x14005d077
mov ecx, dword [rsp + 0x80]
call qword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x14005d08d
lea rcx, [rsp + 0x70]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rsp + 0x70]
call qword [sym.imp.USER32.dll_DispatchMessageA]
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x70]
call qword [sym.imp.USER32.dll_PeekMessageA]
cmp eax, r12d
jne 0x14005d045
mov dword [rsp + 0x20], 0xff
mov r9d, r14d
xor r8d, r8d
lea rdx, [rsp + 0x58]
lea ecx, [r8 + 1]
call qword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
mov dword [rsp + 0x50], eax
cmp eax, 1
je 0x14005d025
cmp rsi, r12
je 0x14005d102
mov r8d, 1
mov rdx, r13
mov rcx, qword [rsp + 0x58]
call rsi
mov r8, rsi
lea rdx, str.Called__p_callback_after_waiting_n
mov rcx, rbx
call fcn.14004b9f0
mov eax, dword [rsp + 0x50]
cmp eax, 0xffffffff
je 0x14005d13e
cmp eax, ebp
je 0x14005d13e
cmp eax, 0x102
je 0x14005d13e
lea rdx, [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov r9d, dword [rsp + 0x50]
mov r8, rdi
lea rdx, str._s_finished_with__d_n
mov rcx, rbx
call fcn.14004b9f0
jmp 0x14005d232
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x50], eax
mov r9d, eax
mov r8, rdi
lea rdx, str._s_MsgWaitForMultipleObjects_failed_with__d_n
mov rcx, rbx
call fcn.14004b7ec
mov r11d, dword [rsp + 0x50]
cmp r11d, 0x7e
cmove r11d, r12d
mov dword [rsp + 0x50], r11d
jmp 0x14005d232
mov r8, rdi
lea rdx, str.Waiting_for__s_n
mov rcx, rbx
call fcn.14004b9f0
mov edx, r14d
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [rsp + 0x50], eax
cmp rsi, r12
je 0x14005d1c3
mov r8d, 1
mov rdx, r13
mov rcx, qword [rsp + 0x58]
call rsi
mov r8, rsi
lea rdx, str.Called__p_callback_after_waiting_n
mov rcx, rbx
call fcn.14004b9f0
mov eax, dword [rsp + 0x50]
cmp eax, 0xffffffff
je 0x14005d201
mov ebp, 0x80
cmp eax, ebp
je 0x14005d201
cmp eax, 0x102
je 0x14005d201
lea rdx, [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov r9d, dword [rsp + 0x50]
mov r8, rdi
lea rdx, str._s_finsihed_with__d_n
mov rcx, rbx
call fcn.14004b9f0
jmp 0x14005d232
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x50], eax
mov r9d, eax
mov r8, rdi
lea rdx, str._s_WaitForSingleObject_failed_with__d_n
mov rcx, rbx
call fcn.14004b7ec
mov r11d, dword [rsp + 0x50]
cmp r11d, 0x7e
cmove r11d, r12d
mov dword [rsp + 0x50], r11d
cmp r15d, r12d
jne 0x14005d247
mov rcx, qword [rsp + 0x60]
cmp rcx, r12
je 0x14005d247
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x50]
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
call fcn.140061100
add rsp, 0x298
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret