Function at 0x40fc76
Capabilities:
Accept command line arguments
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
push edi
mov edi, eax
lea ecx, [edi + 0x5c]
call fcn.0043112d
push 0
lea ebx, [edi + 0xe0]
push eax
mov eax, ebx
call fcn.00403bf8
test al, al
jne 0x40fcb4
push str.CInstallManager::InitializeEmbeddedData_1437__:_failed_to_initialize_data_extender
call fcn.00416f04
pop ecx
mov eax, 0x80047d71
pop edi
pop esi
pop ebx
leave
ret 4
mov esi, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
call esi
push eax
push 0x4e22
mov eax, ebx
call fcn.0040439e
lea ecx, [edi + 0x40]
push str.NOTUPGRADELAYOUT
call fcn.0043d201
test al, al
je 0x40fce5
push 0
push 0x13
mov eax, ebx
call fcn.00404360
push 0x4e21
mov eax, ebx
call fcn.00404425
test al, al
jne 0x40fd04
call esi
push eax
push 0x4e21
mov eax, ebx
call fcn.0040439e
lea eax, [edi + 0xd0]
push eax
push 0
mov eax, ebx
call fcn.0040440e
test al, al
jne 0x40fd2a
push str.CInstallManager::InitializeEmbeddedData_1458__:_ProductID_not_set_in_Embedded_Data
call fcn.00416f04
pop ecx
mov eax, 0x80047d72
jmp 0x40fcad
lea esi, [edi + 0xd8]
push esi
push 9
mov eax, ebx
call fcn.0040440e
test al, al
jne 0x40fd53
push str.CInstallManager::InitializeEmbeddedData_1465__:_isolation_guid_not_found._exit
call fcn.00416ef0
pop ecx
mov eax, 0x80047c0d
jmp 0x40fcad
push dword [esi]
call fcn.0043cd40
pop ecx
test al, al
jne 0x40fd6e
push dword [esi]
push str.CInstallManager::InitializeEmbeddedData_1472__:_SetSiloID_failed:__s
call fcn.00416f04
pop ecx
jmp 0x40fd48
push 0x497a28
lea ecx, [ebp - 4]
call fcn.004037fc
lea eax, [ebp - 4]
push eax
push 0x12
mov eax, ebx
call fcn.0040440e
test al, al
jne 0x40fda4
push str.CInstallManager::InitializeEmbeddedData_1480__:_isolation_guid_not_found
call fcn.00416f04
pop ecx
mov ecx, dword [ebp - 4]
add ecx, 0xfffffff0
call fcn.00403af7
jmp 0x40fd49
push dword [ebp - 4]
call fcn.0043cf55
pop ecx
test al, al
jne 0x40fdd7
push dword [ebp - 4]
push str.CInstallManager::InitializeEmbeddedData_1487__:_SetSiloRegistryRoot_failed:__s
call fcn.00416f04
pop ecx
pop ecx
mov esi, 0x80047c0d
mov ecx, dword [ebp - 4]
add ecx, 0xfffffff0
call fcn.00403af7
mov eax, esi
jmp 0x40fcad
lea eax, [edi + 0xc0]
lea esi, [edi + 0xc4]
push eax
mov ecx, esi
call fcn.0040382b
cmp byte [ebp + 8], 0
jne 0x40fe0a
push dword [edi + 0xd8]
push esi
call fcn.0042e4ce
pop ecx
pop ecx
test al, al
jne 0x40fe0a
mov esi, 0x8007000e
jmp 0x40fdc5
mov ecx, dword [esi]
call fcn.0040f64b
mov dword [ebp - 0x14], eax
test eax, eax
jge 0x40fe2d
push eax
push dword [esi]
push str.CInstallManager::InitializeEmbeddedData_1505__:_failed_to_create_directory___s___0x_08x_
call fcn.00416f04
mov esi, dword [ebp - 0x14]
add esp, 0xc
jmp 0x40fdc5
cmp byte [ebp + 8], 0
jne 0x40ff9e
lea eax, [ebp + 0xb]
push eax
push 0xb
mov eax, ebx
mov byte [ebp + 0xb], 0
call fcn.004043d3
test al, al
je 0x40feac
cmp byte [ebp + 0xb], 0
je 0x40feac
push 0
push 0x4c
mov eax, ebx
call fcn.00404360
push 0
push 0x4e
mov eax, ebx
call fcn.00404360
push 0
push 0x4f
mov eax, ebx
call fcn.00404360
push str.AddOns
push esi
call fcn.0042e4ce
pop ecx
pop ecx
test al, al
je 0x40fe03
push dword [edi + 0xd0]
push esi
call fcn.0042e4ce
pop ecx
pop ecx
test al, al
je 0x40fe03
push esi
lea ecx, [edi + 0xc0]
call fcn.0040382b
jmp 0x40ff0d
push esi
lea ecx, [edi + 0xc0]
call fcn.0040382b
push dword [edi + 0xd0]
push esi
call fcn.0042e4ce
pop ecx
pop ecx
test al, al
je 0x40fe03
push 0x497a28
lea ecx, [ebp - 0xc]
call fcn.004037fc
push esi
lea eax, [ebp - 0xc]
push eax
push edi
call fcn.004135f8
push dword [ebp - 0xc]
push esi
call fcn.0042e4ce
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc]
test al, al
jne 0x40ff05
add ecx, 0xfffffff0
call fcn.00403af7
jmp 0x40fe03
add ecx, 0xfffffff0
call fcn.00403af7
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
push eax
push 1
mov eax, ebx
call fcn.004043f2
lea eax, [ebp - 0x20]
push eax
push 2
mov eax, ebx
call fcn.004043f2
lea eax, [ebp - 0x1c]
push eax
push 3
mov eax, ebx
call fcn.004043f2
lea eax, [ebp - 0x18]
push eax
push 4
mov eax, ebx
call fcn.004043f2
push 0x497a28
lea ecx, [ebp - 0x10]
call fcn.004037fc
push dword [ebp - 0x18]
mov eax, dword [esi]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push 0x47f978
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0042e630
add esp, 0x1c
test al, al
jne 0x40ff88
mov ecx, dword [ebp - 0x10]
jmp 0x40fef8
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
call fcn.0040382b
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00403af7
mov ecx, dword [edi + 0x1bc]
test ecx, ecx
je 0x40ffb4
push dword [esi]
mov eax, dword [ecx]
push 0x64
call dword [eax + 0x90]
push dword [esi]
push str.Install_Cache:__s
call fcn.00416edc
pop ecx
pop ecx
mov ecx, dword [esi]
call fcn.0040f64b
mov dword [ebp - 0x14], eax
test eax, eax
jge 0x40ffdd
push eax
push dword [esi]
push str.CInstallManager::InitializeEmbeddedData_1583__:_failed_to_create_directory:__s__0x_08x_
jmp 0x40fe20
push 0x497a28
lea ecx, [ebp - 8]
call fcn.004037fc
mov esi, dword [esi]
push str.install.dat
push 0x48151c
lea eax, [ebp - 8]
push esi
push eax
call fcn.0042e630
add esp, 0x10
test al, al
jne 0x41000f
mov ecx, dword [ebp - 8]
jmp 0x40fef8
push str.DELETEMODE
lea ecx, [edi + 0x40]
call fcn.0043d201
test al, al
jne 0x410046
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x410046
push dword [ebp - 8]
push ebx
call fcn.004041f2
test al, al
jne 0x410046
push str.CInstallManager::InitializeEmbeddedData_1600__:_unable_to_import_external_settings
call fcn.00416f04
pop ecx
mov esi, str.DEFLANG
push esi
lea ecx, [edi + 0x40]
call fcn.0043d201
test al, al
je 0x41006f
push esi
lea ecx, [edi + 0x40]
call fcn.0043e5fb
test eax, eax
je 0x41006f
push eax
push 5
mov eax, ebx
call fcn.0040439e
add edi, 0x144
push edi
push 0xc739
mov eax, ebx
call fcn.004043d3
mov ecx, dword [ebp - 8]
add ecx, 0xfffffff0
call fcn.00403af7
xor esi, esi
jmp 0x40fdc5