Function at 0x4385ee
Capabilities:
Create process on windows

Disassembly:
mov eax, 0x479e06
call fcn.004461a8
sub esp, 0x120
push ebx
push esi
push edi
xor esi, esi
cmp byte [0x49c838], 0
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], ecx
jne 0x43861f
cmp byte [0x4a22e0], 0
je 0x4386aa
lea eax, [ebp - 0x16]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetupPreRequisite.cpp
lea ecx, [ebp - 0xb4]
call fcn.00401764
mov eax, str.CSetupPreRequisite::ExecuteGenericPrerequisite
mov ebx, 0x47e598
mov ecx, eax
mov dword [ebp - 4], esi
test ecx, ecx
mov dword [ebp - 0xdc], 0x47e5a0
mov dword [ebp - 0xbc], ebx
jne 0x43865d
mov eax, 0x49cc4c
lea ecx, [ebp - 0x15]
push esi
push ecx
push eax
lea ecx, [ebp - 0xdc]
call fcn.00408d43
lea eax, [ebp - 0xb4]
push 0x133
push eax
lea eax, [ebp - 0xdc]
push eax
mov byte [ebp - 4], 1
call fcn.0046c800
and byte [ebp - 4], 0
lea ecx, [ebp - 0xdc]
call fcn.00401bc7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xb4]
call fcn.00401bc7
jmp 0x4386af
mov ebx, 0x47e598
mov edi, dword [ebp + 8]
sub esp, 0x28
mov ecx, esp
mov dword [ebp - 0x24], esi
cmp edi, esi
mov dword [ebp - 0x28], esp
mov dword [ecx], 0x47e5e0
mov dword [ecx + 0x20], 0x47e5d8
mov eax, edi
jne 0x4386d5
mov eax, 0x49cc4c
lea edx, [ebp - 0x15]
push 0
push edx
push eax
call fcn.00403c0d
lea ecx, [ebp - 0x12c]
call fcn.00438cd4
push 0x3c
lea eax, [ebp - 0x8c]
pop esi
mov dword [ebp - 4], 2
push esi
push 0
push eax
mov byte [ebp - 4], 3
call fcn.00446a10
mov eax, dword [ebp - 0x14]
push 0x495fd4
mov dword [ebp - 0x8c], esi
lea ecx, [eax + 0x344]
add eax, 0x348
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
call fcn.0042839f
add esp, 0x14
xor ecx, ecx
test al, al
sete cl
mov esi, 0x47e5a0
mov dword [ebp - 0x70], ecx
test edi, edi
mov dword [ebp - 0x88], 0x440
mov dword [ebp - 0x74], edi
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0x94], ebx
jne 0x438762
mov edi, 0x49cc4c
lea eax, [ebp + 0xb]
push 0
push eax
push edi
lea ecx, [ebp - 0xb4]
call fcn.00408d43
mov edi, dword [ebp - 0x14]
lea ecx, [ebp - 0xb4]
mov byte [ebp - 4], 4
lea eax, [edi + 0x2a4]
push eax
call fcn.0043e4ad
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x7c], 0x47e5b8
test eax, eax
je 0x4387a1
mov dword [ebp - 0x7c], eax
mov ecx, edi
call fcn.00413051
test al, al
jne 0x4387b7
mov ecx, edi
call fcn.00438c4a
test al, al
je 0x4387be
mov dword [ebp - 0x80], str.open
cmp dword [ebp + 0xc], 0
jne 0x4387d3
cmp byte [edi + 0x261], 0
lea eax, [edi + 0x2cc]
je 0x4387d9
lea eax, [edi + 0x2f4]
push eax
lea eax, [ebp - 0xdc]
push eax
mov ecx, edi
call fcn.0043e02e
mov eax, dword [ebp - 0xd4]
mov byte [ebp - 4], 5
test eax, eax
mov dword [ebp - 0x78], 0x47e5b8
je 0x438800
mov dword [ebp - 0x78], eax
mov eax, str.Launching:
mov dword [ebp - 0x50], esi
mov ecx, eax
mov dword [ebp - 0x30], ebx
test ecx, ecx
mov edi, 0x49cc4c
jne 0x438818
mov eax, edi
lea ecx, [ebp + 0xf]
push 0
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00408d43
mov ecx, dword [ebp - 0x14]
push 0
lea eax, [ebp - 0x50]
push 0
push eax
mov byte [ebp - 4], 6
call fcn.0043a540
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 5
call fcn.00401bc7
mov ecx, dword [ebp - 0x14]
push 0
lea eax, [ebp - 0xb4]
push 0
push eax
call fcn.0043a540
mov eax, 0x496ac0
mov dword [ebp - 0x50], esi
mov ecx, eax
mov dword [ebp - 0x30], ebx
test ecx, ecx
jne 0x43886d
mov eax, edi
lea ecx, [ebp + 0xf]
push 0
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00408d43
mov ecx, dword [ebp - 0x14]
push 0
lea eax, [ebp - 0x50]
push 0
push eax
mov byte [ebp - 4], 7
call fcn.0043a540
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 5
call fcn.00401bc7
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x50], esi
test eax, eax
mov dword [ebp - 0x30], ebx
jne 0x4388ab
mov eax, edi
lea ecx, [ebp + 0xf]
push 0
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00408d43
mov ecx, dword [ebp - 0x14]
push 0
lea eax, [ebp - 0x50]
push 0
push eax
mov byte [ebp - 4], 8
call fcn.0043a540
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 5
call fcn.00401bc7
mov eax, 0x496ab8
mov dword [ebp - 0x50], esi
mov ecx, eax
mov dword [ebp - 0x30], ebx
test ecx, ecx
jne 0x4388ed
mov eax, edi
lea ecx, [ebp + 0xf]
push 0
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00408d43
mov ecx, dword [ebp - 0x14]
push 0
lea eax, [ebp - 0x50]
push 0
push eax
mov byte [ebp - 4], 9
call fcn.0043a540
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 5
call fcn.00401bc7
mov ecx, dword [ebp - 0x14]
push 0
lea eax, [ebp - 0xdc]
push 1
push eax
call fcn.0043a540
mov ecx, dword [ebp - 0x14]
call fcn.0043a084
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x14], 0x47e5b8
test eax, eax
je 0x43894b
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x50], esi
test eax, eax
mov dword [ebp - 0x30], ebx
jne 0x43895a
mov eax, edi
lea ecx, [ebp + 0xf]
push 0
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00408d43
mov eax, dword [ebp - 0x48]
mov byte [ebp - 4], 0xa
test eax, eax
mov dword [ebp - 0x28], 0x47e5b8
je 0x43897e
mov dword [ebp - 0x28], eax
mov ebx, dword [ebp - 0xac]
test ebx, ebx
jne 0x43898d
mov ebx, 0x47e5b8
lea eax, [ebp - 0x16]
push 1
mov edi, str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetupPreRequisite.cpp
push eax
push edi
lea ecx, [ebp - 0x104]
call fcn.00401764
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0xb
test eax, eax
mov esi, 0x47e5b8
jne 0x4389b6
mov eax, esi
push dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
mov dword [ebp - 0x1c], 0x157
push dword [ebp - 0x28]
push ebx
push str.Creating_new_process_for_prerequisite__launching_command_line__s___s___s
push eax
call fcn.00408437
add esp, 0x14
lea ecx, [ebp - 0x104]
mov byte [ebp - 4], 0xa
call fcn.00401bc7
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 5
call fcn.00401bc7
lea eax, [ebp - 0x8c]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
je 0x438b5f
cmp dword [ebp - 0x54], 0
jne 0x438a8a
lea eax, [ebp + 0xf]
push 1
push eax
push edi
lea ecx, [ebp - 0x104]
call fcn.00401764
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0xc
test eax, eax
jne 0x438a2d
mov eax, esi
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push str.No_process_created_by_successful_prerequisite_launch
push eax
mov dword [ebp - 0x1c], 0x15e
call fcn.00408437
pop ecx
mov byte [ebp - 4], 5
pop ecx
lea ecx, [ebp - 0x104]
call fcn.00401bc7
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 4
call fcn.00401bc7
lea ecx, [ebp - 0xb4]
mov byte [ebp - 4], 3
call fcn.00401bc7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x12c]
call fcn.00438d6f
xor eax, eax
jmp 0x438be4
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
mov esi, 0x113
xor ebx, ebx
push 0xff
push 0xffffffffffffffff
lea eax, [ebp - 0x54]
push ebx
push eax
push 1
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
cmp eax, ebx
je 0x438af9
cmp eax, 1
jne 0x438af9
push 1
push esi
push esi
lea eax, [ebp - 0x44]
push ebx
push eax
call edi
test eax, eax
jne 0x438ad5
push 0x270001
push ebx
push ebx
lea eax, [ebp - 0x44]
push ebx
push eax
call edi
test eax, eax
je 0x438a97
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push ebx
push dword [ebp - 0x54]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x438ab4
jmp 0x438a97
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x54]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
push dword [ebp - 0x54]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp + 0xf]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetupPreRequisite.cpp
lea ecx, [ebp - 0x104]
call fcn.00401764
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0xd
cmp eax, ebx
jne 0x438b35
mov eax, 0x47e5b8
push dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
mov dword [ebp - 0x1c], 0x182
push str.Prerequisite_process_exited_with_return_code__d
push eax
call fcn.00408437
add esp, 0xc
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x104]
jmp 0x438bad
lea eax, [ebp + 0xf]
push 1
push eax
push edi
lea ecx, [ebp - 0x104]
call fcn.00401764
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0xe
test eax, eax
jne 0x438b7e
mov eax, esi
push dword [ebp - 0x6c]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 0x186
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x20]
push str.Could_not_launch_prerequisite__last_error:__d__ShellExecute:__d
push eax
call fcn.00408437
add esp, 0x10
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x104]
call fcn.00401bc7
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 4
call fcn.00401bc7
lea ecx, [ebp - 0xb4]
mov byte [ebp - 4], 3
call fcn.00401bc7
mov esi, dword [ebp - 0x24]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x12c]
call fcn.00438d6f
mov eax, esi
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 8