Function at 0x4223c0
Capabilities:
Create process on windows

Disassembly:
sub rsp, 0x618
mov qword [rsp + 0x610], rbx
mov qword [rsp + 0x608], rbp
mov qword [rsp + 0x600], rsi
mov qword [rsp + 0x5f8], rdi
mov qword [rsp + 0x5f0], r12
mov rbp, r8
mov r12d, r9d
mov rsi, rdx
call fcn.004545a0
test eax, eax
je 0x422478
lea rdx, str.CSetupApp::SpawnApp_n
lea rcx, [rsp + 0xe0]
xor r8d, r8d
call fcn.00486850
movabs rdx, 0x203a5952544e45
xor eax, eax
mov qword [rsp + 0x1e0], rdx
lea rdi, [rsp + 0x1e0]
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
xor ecx, ecx
lea rdx, [rsp + 0xe0]
movzx eax, byte [rdx + rcx]
inc rcx
test al, al
mov byte [rdi + rcx - 2], al
jne 0x422447
call fcn.004546e0
mov rcx, rax
call fcn.004545b0
call fcn.004546e0
lea rdx, [rsp + 0x1e0]
mov rcx, rax
call fcn.004548a0
call fcn.004545a0
test eax, eax
je 0x4224b0
lea rdx, str.pszExeName___s__pszCmdArg___s_n
lea rcx, [rsp + 0xe0]
mov r9, rbp
mov r8, rsi
call fcn.00486850
call fcn.004546e0
lea rdx, [rsp + 0xe0]
mov rcx, rax
call fcn.004548a0
xor ebx, ebx
call fcn.0047fa50
mov edi, dword [rsp + 0x640]
cmp eax, 0xb
je 0x4224cc
cmp eax, 0xc
jne 0x422646
test edi, edi
jne 0x4224f7
lea rdx, str._c_s_c
lea rcx, [rsp + 0x2e0]
mov r9, rsi
mov r8d, 0x22
mov dword [rsp + 0x20], 0x22
call fcn.00486850
jmp 0x422513
lea rdx, [rsp + 0x2e0]
mov rcx, rsi
sub rdx, rsi
movzx eax, byte [rcx]
inc rcx
test al, al
mov byte [rdx + rcx - 1], al
jne 0x422505
lea rcx, [rsp + 0x70]
mov r8d, 0x70
xor edx, edx
call fcn.00499630
call fcn.004545a0
test eax, eax
je 0x42255f
lea r8, [rsp + 0x2e0]
lea rdx, str.szExeName___s_n
lea rcx, [rsp + 0xe0]
call fcn.00486850
call fcn.004546e0
lea rdx, [rsp + 0xe0]
mov rcx, rax
call fcn.004548a0
call fcn.004545a0
test eax, eax
je 0x422594
lea rdx, str.pszCmdArg___s_n
lea rcx, [rsp + 0xe0]
mov r8, rbp
call fcn.00486850
call fcn.004546e0
lea rdx, [rsp + 0xe0]
mov rcx, rax
call fcn.004548a0
lea rax, str.runas
lea rcx, [rsp + 0x70]
mov dword [rsp + 0x70], 0x70
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0x2e0]
mov qword [rsp + 0x78], rbx
mov dword [rsp + 0x74], 0x540
mov qword [rsp + 0x90], rbp
mov dword [rsp + 0xa0], 1
mov qword [rsp + 0x88], rax
call qword [sym.imp.SHELL32.dll_ShellExecuteExA]
test eax, eax
je 0x42260b
test r12d, r12d
je 0x4227a4
mov rcx, qword [rsp + 0xd8]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x4227a4
call fcn.004545a0
test eax, eax
je 0x422646
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.Failed_ShellExecuteEx_:_GetLastError_____d_n
lea rcx, [rsp + 0xe0]
mov r8d, eax
call fcn.00486850
call fcn.004546e0
lea rdx, [rsp + 0xe0]
mov rcx, rax
call fcn.004548a0
call fcn.004545a0
test eax, eax
je 0x422663
call fcn.004546e0
lea rdx, str.Trying_to_Spawn_with_CreateProcess_n
mov rcx, rax
call fcn.004548a0
test edi, edi
lea rcx, [rsp + 0x2e0]
jne 0x4226ab
test rbp, rbp
mov r9, rsi
mov r8d, 0x22
jne 0x422690
lea rdx, str._c_s_c
mov dword [rsp + 0x20], r8d
call fcn.00486850
jmp 0x4226d0
lea rdx, str._c_s_c_s
mov qword [rsp + 0x28], rbp
mov dword [rsp + 0x20], 0x22
call fcn.00486850
jmp 0x4226d0
test rbp, rbp
mov r8, rsi
jne 0x4226c1
lea rdx, [0x004add98]
call fcn.00486850
jmp 0x4226d0
lea rdx, str._s_s
mov r9, rbp
call fcn.00486850
lea rcx, [rsp + 0x70]
mov r8d, 0x68
xor edx, edx
call fcn.00499630
xor eax, eax
mov dword [rsp + 0x70], 0x68
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
call fcn.004545a0
test eax, eax
je 0x422735
lea r8, [rsp + 0x2e0]
lea rdx, str.szCmdLine___s_n
lea rcx, [rsp + 0xe0]
call fcn.00486850
call fcn.004546e0
lea rdx, [rsp + 0xe0]
mov rcx, rax
call fcn.004548a0
lea rax, [rsp + 0x50]
lea rdx, [rsp + 0x2e0]
xor r9d, r9d
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x70]
xor r8d, r8d
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
xor ecx, ecx
mov dword [rsp + 0x28], InitCommonControls
mov dword [rsp + 0x20], ebx
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x4227a9
test r12d, r12d
je 0x42278e
mov rcx, qword [rsp + 0x50]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, 1
call fcn.004545a0
mov r12, qword [rsp + 0x5f0]
mov rsi, qword [rsp + 0x600]
test eax, eax
mov rbp, qword [rsp + 0x608]
je 0x422841
lea rdx, str.CSetupApp::SpawnApp_:_bRetVal___d_n
lea rcx, [rsp + 0xe0]
mov r8d, ebx
call fcn.00486850
xor eax, eax
movabs rdx, 0x20203a54495845
mov qword [rsp + 0x1e0], rdx
lea rdi, [rsp + 0x1e0]
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rax, [rsp + 0xe0]
xor edx, edx
movzx ecx, byte [rax + rdx]
inc rdx
test cl, cl
mov byte [rdi + rdx - 2], cl
jne 0x422810
call fcn.004546e0
lea rdx, [rsp + 0x1e0]
mov rcx, rax
call fcn.004548a0
call fcn.004546e0
mov rcx, rax
call fcn.004545c0
mov rdi, qword [rsp + 0x5f8]
mov eax, ebx
mov rbx, qword [rsp + 0x610]
add rsp, 0x618
ret