Function at 0x43495a
Capabilities:
Copy file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x504
push ebx
push esi
xor ebx, ebx
push edi
push ebx
mov dword [ebp - 0x7c], ebx
call dword [sym.imp.ole32.dll_CoInitialize]
call fcn.00457032
cmp eax, 6
jb 0x434981
call fcn.00434639
mov eax, dword [ebp + 8]
push 0x400
push ebx
push 0x49b2ec
mov dword [0x49b6f8], eax
call fcn.004455c0
mov eax, dword [0x49b770]
add esp, 0xc
mov dword [ebp - 0x3c], eax
mov eax, dword [0x49b774]
push dword [ebp + 0x10]
lea ecx, [ebp - 0x78]
mov dword [0x49b6ec], ebx
mov dword [ebp - 0x38], eax
call fcn.00435bd0
lea eax, [ebp - 9]
mov edi, 0x47b560
mov esi, 0x47b558
push ebx
push eax
lea ecx, [ebp - 0x154]
mov dword [ebp - 0x154], edi
mov dword [ebp - 0x134], esi
call fcn.004017e1
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x154]
push eax
call fcn.004296ae
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.00408ddc
push ebx
push ebx
push eax
push str.debuglog
lea ecx, [ebp - 0x78]
call fcn.00435c5b
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x11], al
call fcn.00436412
cmp byte [ebp - 0x11], bl
je 0x434a66
call fcn.0046a480
push ebx
call fcn.0046a640
cmp dword [ebp - 0x148], ebx
je 0x434a66
lea eax, [ebp - 0x64]
lea ecx, [ebp - 0x154]
push eax
call fcn.00436423
lea ecx, [ebp - 0x64]
call fcn.00401bc2
sub esp, 0x28
lea eax, [ebp - 0x154]
mov dword [ebp - 0x18], esp
mov ecx, esp
push ebx
push eax
mov dword [ecx], edi
mov dword [ecx + 0x20], esi
call fcn.0040e922
call fcn.0046a490
lea eax, [ebp - 9]
push 1
push eax
lea ecx, [ebp - 0x11c]
push dword [ebp + 0x10]
call fcn.0040175f
add eax, 4
mov dword [ebp - 0x24], 0x47b578
mov eax, dword [eax + 4]
cmp eax, ebx
je 0x434a8e
mov dword [ebp - 0x24], eax
lea eax, [ebp - 1]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetup.cpp
lea ecx, [ebp - 0x64]
call fcn.0040175f
add eax, 4
mov eax, dword [eax + 4]
cmp eax, ebx
jne 0x434ab0
mov eax, 0x47b578
push dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18], 0x99
push str.InstallShield_setup.exe__Ansi__started__cmdline:__s
push eax
call fcn.004084c8
add esp, 0xc
lea ecx, [ebp - 0x64]
call fcn.00401bc2
lea ecx, [ebp - 0x11c]
call fcn.00401bc2
push 1
push 1
push ebx
push str.runfromtemp
lea ecx, [ebp - 0x78]
call fcn.00435c5b
push ebx
push ebx
push ebx
push str.reboot
lea ecx, [ebp - 0x78]
mov byte [ebp - 0x10], al
call fcn.00435c5b
test al, al
je 0x434bf7
cmp byte [0x498990], bl
jne 0x434b1e
cmp byte [0x49bca8], bl
je 0x434b8f
lea eax, [ebp + 0xb]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetup.cpp
lea ecx, [ebp - 0x11c]
call fcn.0040175f
mov eax, 0x4929e4
mov dword [ebp - 0x1a4], edi
mov ecx, eax
mov dword [ebp - 0x184], esi
test ecx, ecx
jne 0x434b50
mov eax, 0x498d9c
lea ecx, [ebp - 1]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x1a4]
call fcn.00408d40
lea eax, [ebp - 0x11c]
push 0xa3
push eax
lea eax, [ebp - 0x1a4]
push eax
call fcn.0046a430
lea ecx, [ebp - 0x1a4]
call fcn.00401bc2
lea ecx, [ebp - 0x11c]
call fcn.00401bc2
lea eax, [ebp - 0x64]
push eax
call fcn.0040d8da
pop ecx
push eax
lea ecx, [ebp - 0x220]
call fcn.0040d7ae
lea ecx, [ebp - 0x64]
call fcn.00401f95
lea ecx, [ebp - 0x220]
call fcn.0040da17
test eax, eax
jne 0x434bc4
mov esi, dword [0x49b6ec]
jmp 0x434be7
sub esp, 0x28
lea eax, [ebp + 0x13]
mov ecx, esp
mov dword [ebp + 8], esp
push 1
push eax
push dword [ebp + 0x10]
call fcn.0040175f
lea ecx, [ebp - 0x220]
call fcn.0040dd9f
mov esi, eax
lea ecx, [ebp - 0x220]
call fcn.0040d8b7
jmp 0x435bae
cmp byte [ebp - 0x10], bl
je 0x434c14
push ebx
push ebx
push ebx
push 0x4929e0
lea ecx, [ebp - 0x78]
call fcn.00435c5b
test al, al
je 0x434d2e
lea eax, [ebp - 1]
push ebx
push eax
lea ecx, [ebp - 0x17c]
mov dword [ebp - 0x17c], edi
mov dword [ebp - 0x15c], esi
call fcn.004017e1
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x17c]
push eax
call fcn.004296ae
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.00408ddc
push 1
push ebx
push eax
push str.removeasmajorupgrade
lea ecx, [ebp - 0x78]
call fcn.00435c5b
lea ecx, [ebp - 0x34]
mov byte [ebp - 9], al
call fcn.00436412
cmp byte [ebp - 9], bl
je 0x434d23
cmp byte [0x498990], bl
jne 0x434c7f
cmp byte [0x49bca8], bl
je 0x434cf0
lea eax, [ebp + 0x13]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetup.cpp
lea ecx, [ebp - 0x11c]
call fcn.0040175f
mov eax, str.Running_as_remove_major_upgrade
mov dword [ebp - 0x1a4], edi
mov ecx, eax
mov dword [ebp - 0x184], esi
test ecx, ecx
jne 0x434cb1
mov eax, 0x498d9c
lea ecx, [ebp + 0xb]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x1a4]
call fcn.00408d40
lea eax, [ebp - 0x11c]
push 0xb2
push eax
lea eax, [ebp - 0x1a4]
push eax
call fcn.0046a430
lea ecx, [ebp - 0x1a4]
call fcn.00401bc2
lea ecx, [ebp - 0x11c]
call fcn.00401bc2
push dword [ebp - 0x10]
lea eax, [ebp - 0x17c]
sub esp, 0x28
mov ecx, esp
mov dword [ebp + 0x10], esp
push 1
push eax
call fcn.0040e12e
call fcn.00436109
add esp, 0x2c
lea ecx, [ebp - 0x17c]
mov esi, eax
call fcn.00401bc2
jmp 0x435bae
lea ecx, [ebp - 0x17c]
call fcn.00401bc2
mov edx, dword [ebp + 0x10]
push 1
pop esi
cmp dword [ebp - 0x3c], esi
jbe 0x434ee0
mov al, byte [edx]
cmp al, 0x2d
je 0x434d47
cmp al, 0x2f
jne 0x434daa
cmp byte [edx + 1], 0x25
jne 0x434daa
lea eax, [edx + 2]
mov cl, byte [eax]
inc eax
cmp cl, 0x2f
jne 0x434d50
mov byte [eax - 2], bl
dec eax
push eax
mov ecx, 0x49ae38
call fcn.0040198d
push eax
lea eax, [ebp - 0x504]
push str._s__s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x504]
push esi
push eax
call fcn.00440e9e
lea ecx, [ebp - 0x34]
call fcn.00401c1f
push dword [ebp + 8]
lea ecx, [ebp - 0x34]
call fcn.00401c53
lea ecx, [ebp - 0x34]
call fcn.00401c4c
jmp 0x435951
cmp al, 0x2d
je 0x434db2
cmp al, 0x2f
jne 0x434e05
mov cl, byte [edx + 1]
cmp cl, 0x6b
je 0x434dbf
cmp cl, 0x4b
jne 0x434e05
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x3ff]
mov byte [ebp - 0x400], bl
add edx, 2
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp - 0x38]
push edx
push dword [eax]
lea eax, [ebp - 0x400]
push 0x48f4a8
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x400]
push esi
push eax
call fcn.0044107e
jmp 0x435951
cmp al, 0x2d
je 0x434e11
cmp al, 0x2f
jne 0x434ee0
mov al, byte [edx + 1]
cmp al, 0x67
je 0x434e20
cmp al, 0x47
jne 0x434ee0
mov eax, dword [ebp + 0x10]
lea esi, [eax + 2]
mov al, byte [esi]
inc esi
cmp al, 0x2f
jne 0x434e26
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x3ff]
mov byte [ebp - 0x400], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esi + 2]
push eax
lea eax, [ebp - 0x400]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x400]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov cl, byte [ebp + eax - 0x402]
lea eax, [ebp + eax - 0x400]
cmp cl, 0x2d
mov dword [ebp + 8], ebx
je 0x434e7c
cmp cl, 0x2f
jne 0x434e93
mov cl, byte [eax - 1]
cmp cl, 0x73
je 0x434e89
cmp cl, 0x53
jne 0x434e93
mov dword [ebp + 8], 1
mov byte [eax - 2], bl
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x503]
mov byte [ebp - 0x504], bl
mov byte [esi - 2], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp + 0x10]
add eax, 3
push eax
lea eax, [ebp - 0x504]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [ebp + 8]
lea eax, [ebp - 0x400]
push eax
lea eax, [ebp - 0x504]
push eax
call fcn.00441c82
add esp, 0xc
mov esi, eax
jmp 0x435bae
cmp dword [ebp - 0x3c], esi
mov dword [ebp - 0x24], ebx
jbe 0x434f0a
mov al, byte [edx]
cmp al, 0x2d
je 0x434ef2
cmp al, 0x2f
jne 0x434f0a
mov dl, byte [edx + 1]
cmp dl, 0x71
je 0x434eff
cmp dl, 0x51
jne 0x434f0a
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 4]
inc eax
inc eax
mov dword [ebp - 0x24], eax
lea eax, [ebp - 1]
push ebx
push eax
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0xcc], 0x47b5a0
mov dword [ebp - 0xac], 0x47b598
call fcn.00402b2c
push esi
lea ecx, [ebp - 0x23c]
call fcn.0042c24a
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x23c]
push eax
call fcn.00436557
mov eax, dword [eax]
push ebx
add eax, 0x10
push ebx
push eax
push str.tempdisk1folder
lea ecx, [ebp - 0x78]
call fcn.00435c5b
test al, al
je 0x434f88
lea ecx, [ebp - 0x23c]
call fcn.0043647b
mov eax, dword [ebp - 0x22c]
cmp eax, ebx
jne 0x434f7c
mov eax, 0x498d9c
push eax
lea ecx, [ebp - 0xcc]
call fcn.00403f87
cmp dword [ebp - 0xc0], ebx
mov esi, 0x104
jne 0x43503d
lea eax, [ebp - 0x34]
push esi
push eax
lea ecx, [ebp - 0xcc]
call fcn.004024e5
mov ecx, dword [eax]
mov dword [ebp - 8], eax
call fcn.0040305e
mov ecx, dword [ebp - 8]
push eax
push esi
mov dword [ecx + 8], eax
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea ecx, [ebp - 0x34]
call fcn.004025f7
sub esp, 0x28
lea eax, [ebp - 1]
mov dword [ebp - 0x18], esp
mov ecx, esp
push ebx
push eax
push 0x498d9c
mov dword [ecx], 0x47b5a0
mov dword [ecx + 0x20], 0x47b598
call fcn.00403ed5
sub esp, 0x28
lea eax, [ebp - 9]
mov ecx, esp
mov dword [ebp - 0x18], esp
push 1
push eax
push 0x498d9c
call fcn.00433185
lea eax, [ebp - 0x64]
push ebx
push eax
call fcn.00455a70
add esp, 0x58
lea ecx, [ebp - 0xcc]
push eax
call fcn.0040200f
lea ecx, [ebp - 0x64]
call fcn.00401f95
lea eax, [ebp - 0x64]
lea ecx, [ebp - 0xcc]
push eax
call fcn.004041c0
lea ecx, [ebp - 0x64]
call fcn.00401f95
lea eax, [ebp - 0x64]
lea ecx, [ebp - 0xcc]
push eax
call fcn.004256e6
lea ecx, [ebp - 0x64]
call fcn.00401f95
lea ecx, [ebp - 0xcc]
call fcn.0040305e
push eax
push 0x49b2ec
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [ebp - 0x24], ebx
je 0x435081
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jne 0x4359c5
cmp byte [ebp - 0x10], bl
jne 0x4350a9
mov eax, dword [ebp - 0x38]
push dword [eax]
call fcn.00440a7e
test eax, eax
je 0x4359c5
push dword [ebp + 0x10]
call fcn.00435f86
test al, al
pop ecx
je 0x4359c5
mov edi, dword [ebp - 0x38]
lea eax, [ebp - 0x1a4]
push ebx
push eax
lea eax, [ebp - 1]
push 1
push eax
lea ecx, [ebp - 0x64]
push dword [edi]
call fcn.00402caf
mov ecx, eax
call fcn.00402512
lea ecx, [ebp - 0x64]
call fcn.00401f95
lea eax, [ebp - 0x11c]
push ebx
push eax
lea ecx, [ebp - 0x1a4]
call fcn.00402512
push ebx
lea eax, [ebp - 0x1f4]
push ebx
push eax
lea eax, [ebp - 1]
push 1
push eax
lea ecx, [ebp - 0x64]
push dword [edi]
call fcn.00402caf
mov ecx, eax
call fcn.00402d65
lea ecx, [ebp - 0x64]
call fcn.00401f95
cmp dword [ebp - 0x1e8], ebx
jne 0x43519b
lea eax, [ebp - 1]
push ebx
push eax
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0xa4], 0x47b5a0
mov dword [ebp - 0x84], 0x47b598
call fcn.00402b2c
lea eax, [ebp - 0x20]
push esi
push eax
lea ecx, [ebp - 0xa4]
call fcn.004024e5
mov edi, eax
mov ecx, dword [edi]
call fcn.0040305e
push esi
push eax
push ebx
mov dword [edi + 8], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [ebp - 0x20]
call fcn.004025f7
push ebx
lea eax, [ebp - 0x64]
push ebx
push eax
lea ecx, [ebp - 0xa4]
call fcn.00402d65
push eax
lea ecx, [ebp - 0x1f4]
call fcn.0040200f
lea ecx, [ebp - 0x64]
call fcn.00401f95
lea ecx, [ebp - 0xa4]
call fcn.00401f95
lea ecx, [ebp - 0x34]
call fcn.00401c1f
lea eax, [ebp - 0x1a4]
lea ecx, [ebp - 0x1f4]
push eax
lea eax, [ebp - 0x1cc]
push eax
call fcn.0040e41b
lea eax, [ebp - 0x11c]
lea ecx, [ebp - 0xcc]
push eax
lea eax, [ebp - 0xf4]
push eax
call fcn.0040e41b
lea ecx, [ebp - 0x1cc]
call fcn.0040305e
push ebx
lea ecx, [ebp - 0xf4]
mov edi, eax
call fcn.0040305e
push eax
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CopyFileA]
call edi
lea eax, [ebp - 0x20]
push esi
push eax
lea ecx, [ebp - 0xf4]
call fcn.004024e5
mov ecx, dword [eax]
mov dword [ebp - 8], eax
call fcn.0040305e
mov ecx, dword [ebp - 8]
push eax
mov dword [ecx + 8], eax
lea ecx, [ebp - 0x34]
call fcn.00402090
lea ecx, [ebp - 0x20]
call fcn.004025f7
lea eax, [ebp - 1]
push 1
push eax
lea ecx, [ebp - 0xa4]
push dword [0x492834]
call fcn.00402caf
lea eax, [ebp - 0xa4]
lea ecx, [ebp - 0x1f4]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0040e41b
push eax
lea ecx, [ebp - 0x1cc]
call fcn.0040200f
lea ecx, [ebp - 0x64]
call fcn.00401f95
lea ecx, [ebp - 0xa4]
call fcn.00401f95
lea eax, [ebp - 1]
push 1
push eax
lea ecx, [ebp - 0xa4]
push dword [0x492834]
call fcn.00402caf
lea eax, [ebp - 0xa4]
lea ecx, [ebp - 0xcc]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0040e41b
push eax
lea ecx, [ebp - 0xf4]
call fcn.0040200f
lea ecx, [ebp - 0x64]
call fcn.00401f95
lea ecx, [ebp - 0xa4]
call fcn.00401f95
lea ecx, [ebp - 0x1cc]
call fcn.0040305e
mov dword [ebp - 8], eax
push ebx
lea ecx, [ebp - 0xf4]
call fcn.0040305e
push eax
push dword [ebp - 8]
call edi
lea eax, [ebp - 0x20]
push esi
push eax
lea ecx, [ebp - 0xf4]
call fcn.004024e5
mov ecx, dword [eax]
mov dword [ebp - 8], eax
call fcn.0040305e
mov ecx, dword [ebp - 8]
push eax
mov dword [ecx + 8], eax
lea ecx, [ebp - 0x34]
call fcn.00402090
lea ecx, [ebp - 0x20]
call fcn.004025f7
lea eax, [ebp - 1]
push 1
push eax
push str.ISSetup.dll
lea ecx, [ebp - 0xa4]
call fcn.00402caf
lea eax, [ebp - 0xa4]
lea ecx, [ebp - 0x1f4]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0040e41b
push eax
lea ecx, [ebp - 0x1cc]
call fcn.0040200f
lea ecx, [ebp - 0x64]
call fcn.00401f95
lea ecx, [ebp - 0xa4]
call fcn.00401f95
mov eax, 0x48f7d0
mov dword [ebp - 0xa4], 0x47b5a0
mov ecx, eax
mov dword [ebp - 0x84], 0x47b598
test ecx, ecx
jne 0x435381
mov eax, 0x498d9c
lea ecx, [ebp - 1]
push ebx
push ecx
push eax
lea ecx, [ebp - 0xa4]
call fcn.00403ed5
lea eax, [ebp - 0xa4]
lea ecx, [ebp - 0xcc]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0040e41b
push eax
lea ecx, [ebp - 0xf4]
call fcn.0040200f
lea ecx, [ebp - 0x64]
call fcn.00401f95
lea ecx, [ebp - 0xa4]
call fcn.00401f95
lea ecx, [ebp - 0x1cc]
call fcn.0040305e
push ebx
lea ecx, [ebp - 0xf4]
mov dword [ebp - 8], eax
call fcn.0040305e
push eax
push dword [ebp - 8]
call edi
lea eax, [ebp - 0x20]
push esi
push eax
lea ecx, [ebp - 0xf4]
call fcn.004024e5
mov ecx, dword [eax]
mov dword [ebp - 8], eax
call fcn.0040305e
mov ecx, dword [ebp - 8]
push eax
mov dword [ecx + 8], eax
lea ecx, [ebp - 0x34]
call fcn.00402090
lea ecx, [ebp - 0x20]
call fcn.004025f7
lea eax, [ebp - 1]
push ebx
push eax
lea ecx, [ebp - 0x17c]
mov dword [ebp - 0x17c], 0x47b5a0
mov dword [ebp - 0x15c], 0x47b598
call fcn.00402b2c
lea eax, [ebp - 0x20]
push esi
push eax
lea ecx, [ebp - 0x17c]
call fcn.004024e5
mov ecx, dword [eax]
mov dword [ebp - 8], eax
call fcn.0040305e
mov ecx, dword [ebp - 8]
push esi
push eax
push str.Skin
push str.Startup
mov dword [ecx + 8], eax
call fcn.00441ce7
add esp, 0x10
lea ecx, [ebp - 0x20]
call fcn.004025f7
cmp dword [ebp - 0x170], ebx
jne 0x4354b3
lea eax, [ebp - 1]
push 1
push eax
push str.setup.isn
lea ecx, [ebp - 0xa4]
call fcn.00402caf
lea eax, [ebp - 0xa4]
lea ecx, [ebp - 0x17c]
push eax
call fcn.0040200f
lea ecx, [ebp - 0xa4]
call fcn.00401f95
lea eax, [ebp - 0x17c]
lea ecx, [ebp - 0x1f4]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0040e41b
push eax
lea ecx, [ebp - 0x1cc]
call fcn.0040200f
lea ecx, [ebp - 0x64]
call fcn.00401f95
lea eax, [ebp - 0x17c]
lea ecx, [ebp - 0xcc]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0040e41b
push eax
lea ecx, [ebp - 0xf4]
call fcn.0040200f
lea ecx, [ebp - 0x64]
call fcn.00401f95
lea ecx, [ebp - 0x1cc]
call fcn.0040305e
push ebx
lea ecx, [ebp - 0xf4]
mov dword [ebp - 8], eax
call fcn.0040305e
push eax
push dword [ebp - 8]
call edi
test eax, eax
je 0x43555c
lea eax, [ebp - 0x20]
push esi
push eax
lea ecx, [ebp - 0xf4]
call fcn.004024e5
mov ecx, dword [eax]
mov dword [ebp - 8], eax
call fcn.0040305e
mov ecx, dword [ebp - 8]
push eax
mov dword [ecx + 8], eax
lea ecx, [ebp - 0x34]
call fcn.00402090
lea ecx, [ebp - 0x20]
call fcn.004025f7
lea eax, [ebp - 0x2d4]
push 0x10
push eax
push str.count
push str.Languages
call fcn.00441ce7
push 0xa
lea eax, [ebp - 0x2d4]
push ebx
push eax
call fcn.00444fa1
add esp, 0x1c
cmp eax, ebx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
jbe 0x435740
push dword [ebp - 0x10]
lea eax, [ebp - 0x2c4]
push str.key_d
push eax
call fcn.0044513b
lea eax, [ebp - 0x2b4]
push 0x10
push eax
lea eax, [ebp - 0x2c4]
push eax
push str.Languages
call fcn.00441ce7
push 0x10
lea eax, [ebp - 0x2b4]
push ebx
push eax
call fcn.00444fa1
add esp, 0x28
cmp eax, ebx
mov dword [ebp - 0x28], eax
je 0x435731
mov eax, dword [ebp - 0x1ec]
cmp eax, ebx
jne 0x4355ee
mov eax, 0x47b5bc
push dword [ebp - 0x28]
push eax
lea eax, [ebp - 0x1cc]
push str._s0x_04x.ini
push eax
call fcn.00414f6e
mov eax, dword [ebp - 0xc4]
add esp, 0x10
cmp eax, ebx
jne 0x435615
mov eax, 0x47b5bc
push dword [ebp - 0x28]
push eax
lea eax, [ebp - 0xf4]
push str._s0x_04x.ini
push eax
call fcn.00414f6e
add esp, 0x10
lea ecx, [ebp - 0x1cc]
call fcn.0040305e
push ebx
lea ecx, [ebp - 0xf4]
mov dword [ebp - 8], eax
call fcn.0040305e
push eax
push dword [ebp - 8]
call edi
test eax, eax
je 0x435688
lea eax, [ebp - 0x298]
push esi
push eax
lea ecx, [ebp - 0xf4]
call fcn.004024e5
mov ecx, dword [eax]
mov dword [ebp - 8], eax
call fcn.0040305e
mov ecx, dword [ebp - 8]
push eax
mov dword [ecx + 8], eax
lea ecx, [ebp - 0x34]
call fcn.00402090
lea ecx, [ebp - 0x298]
call fcn.004025f7
mov eax, dword [ebp - 0x1ec]
cmp eax, ebx
jne 0x435697
mov eax, 0x47b5bc
push dword [ebp - 0x28]
push eax
lea eax, [ebp - 0x1cc]
push str._s_04x.mst
push eax
call fcn.00414f6e
mov eax, dword [ebp - 0xc4]
add esp, 0x10
cmp eax, ebx
jne 0x4356be
mov eax, 0x47b5bc
push dword [ebp - 0x28]
push eax
lea eax, [ebp - 0xf4]
push str._s_04x.mst
push eax
call fcn.00414f6e
add esp, 0x10
lea ecx, [ebp - 0x1cc]
call fcn.0040305e
push ebx
lea ecx, [ebp - 0xf4]
mov dword [ebp - 8], eax
call fcn.0040305e
push eax
push dword [ebp - 8]
call edi
test eax, eax
je 0x435731
lea eax, [ebp - 0x2a4]
push esi
push eax
lea ecx, [ebp - 0xf4]
call fcn.004024e5
mov ecx, dword [eax]
mov dword [ebp - 8], eax
call fcn.0040305e
mov ecx, dword [ebp - 8]
push eax
mov dword [ecx + 8], eax
lea ecx, [ebp - 0x34]
call fcn.00402090
lea ecx, [ebp - 0x2a4]
call fcn.004025f7
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x18]
jb 0x435594
lea eax, [ebp - 1]
push ebx
push eax
lea ecx, [ebp - 0x28c]
mov dword [ebp - 0x28c], 0x47b5a0
mov dword [ebp - 0x26c], 0x47b598
call fcn.00402b2c
lea eax, [ebp + 0x13]
push 1
push eax
lea ecx, [ebp - 0x21c]
push dword [ebp + 0x10]
call fcn.00402caf
push 4
pop edi
add eax, edi
mov eax, dword [eax + 4]
cmp eax, ebx
jne 0x43578e
mov esi, 0x47b5bc
mov dword [ebp - 0x10], esi
jmp 0x435796
mov dword [ebp - 0x10], eax
mov esi, 0x47b5bc
lea eax, [ebp - 1]
push 1
push eax
push 0x49b2ec
lea ecx, [ebp - 0x2fc]
call fcn.00402caf
add eax, edi
mov dword [ebp - 0x28], esi
mov eax, dword [eax + 4]
cmp eax, ebx
je 0x4357bb
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x1a4]
lea ecx, [ebp - 0x1f4]
push eax
lea eax, [ebp - 0xa4]
push eax
call fcn.0040e41b
add eax, edi
mov dword [ebp - 8], esi
mov eax, dword [eax + 4]
cmp eax, ebx
je 0x4357e3
mov dword [ebp - 8], eax
lea eax, [ebp - 0x11c]
lea ecx, [ebp - 0xcc]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0040e41b
add eax, edi
mov eax, dword [eax + 4]
cmp eax, ebx
jne 0x435804
mov eax, esi
push dword [ebp - 0x10]
push dword [ebp - 0x28]
push dword [ebp - 8]
push eax
lea eax, [ebp - 0x28c]
push str._s__q__s___tempdisk1folder__s___s
push eax
call fcn.00414f6e
add esp, 0x18
lea ecx, [ebp - 0x64]
call fcn.00401f95
lea ecx, [ebp - 0xa4]
call fcn.00401f95
lea ecx, [ebp - 0x2fc]
call fcn.00401f95
lea ecx, [ebp - 0x21c]
call fcn.00401f95
cmp byte [0x498990], bl
jne 0x43585b
cmp byte [0x49bca8], bl
je 0x4358cb
lea eax, [ebp + 0x13]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetup.cpp
lea ecx, [ebp - 0x64]
call fcn.0040175f
mov eax, str.Relaunching_setup_from_temp
mov dword [ebp - 0xa4], 0x47b560
mov ecx, eax
mov dword [ebp - 0x84], 0x47b558
test ecx, ecx
jne 0x435892
mov eax, 0x498d9c
lea ecx, [ebp - 1]
push ebx
push ecx
push eax
lea ecx, [ebp - 0xa4]
call fcn.00408d40
lea eax, [ebp - 0x64]
push 0x187
push eax
lea eax, [ebp - 0xa4]
push eax
call fcn.0046a430
lea ecx, [ebp - 0xa4]
call fcn.00401bc2
lea ecx, [ebp - 0x64]
call fcn.00401bc2
push 1
lea ecx, [ebp - 0x28c]
call fcn.0040305e
push eax
call fcn.0044107e
test eax, eax
lea ecx, [ebp - 0x28c]
je 0x435971
call fcn.00401f95
lea ecx, [ebp - 0x17c]
call fcn.00401f95
lea ecx, [ebp - 0xf4]
call fcn.00401f95
lea ecx, [ebp - 0x1cc]
call fcn.00401f95
lea ecx, [ebp - 0x34]
call fcn.00401c4c
lea ecx, [ebp - 0x1f4]
call fcn.00401f95
lea ecx, [ebp - 0x11c]
call fcn.00401f95
lea ecx, [ebp - 0x1a4]
call fcn.00401f95
lea ecx, [ebp - 0x23c]
call fcn.0040a756
lea ecx, [ebp - 0xcc]
call fcn.00401f95
lea ecx, [ebp - 0x154]
call fcn.00401bc2
lea ecx, [ebp - 0x78]
call fcn.00435c15
call dword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
jmp 0x435bc9
call fcn.00401f95
lea ecx, [ebp - 0x17c]
call fcn.00401f95
lea ecx, [ebp - 0xf4]
call fcn.00401f95
lea ecx, [ebp - 0x1cc]
call fcn.00401f95
lea ecx, [ebp - 0x34]
call fcn.00401c4c
lea ecx, [ebp - 0x1f4]
call fcn.00401f95
lea ecx, [ebp - 0x11c]
call fcn.00401f95
lea ecx, [ebp - 0x1a4]
call fcn.00401f95
mov edi, 0x47b560
call fcn.00440787
lea ecx, [ebp - 0x12c]
mov dword [0x49b6f4], ebx
mov dword [0x49b6f0], ebx
call fcn.00415bcc
cmp byte [ebp - 0x11], bl
je 0x4359f3
lea eax, [ebp - 0x154]
mov esi, 0x47b558
jmp 0x435a26
lea eax, [ebp + 0x13]
push ebx
mov esi, 0x47b558
push eax
push 0x498d9c
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x11c], edi
mov dword [ebp - 0xfc], esi
call fcn.00408d40
mov dword [ebp - 0x7c], 1
lea eax, [ebp - 0x11c]
sub esp, 0x28
mov dword [ebp - 0x18], esp
mov ecx, esp
push ebx
push eax
mov dword [ecx], edi
mov dword [ecx + 0x20], esi
call fcn.0040e922
push dword [ebp - 0x24]
lea ecx, [ebp - 0x12c]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push dword [ebp + 8]
call fcn.00415c11
test byte [ebp - 0x7c], 1
je 0x435a62
lea ecx, [ebp - 0x11c]
call fcn.00401bc2
lea eax, [ebp + 0x13]
push ebx
push eax
lea ecx, [ebp - 0x264]
mov dword [ebp - 0x264], edi
mov dword [ebp - 0x244], esi
call fcn.004017e1
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x264]
push eax
call fcn.004296ae
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.00408ddc
push ebx
push ebx
push eax
push str.runprerequisites
lea ecx, [ebp - 0x78]
call fcn.00435c5b
cmp byte [ebp - 0x30], bl
mov byte [ebp + 0x13], al
je 0x435abb
mov ecx, dword [ebp - 0x34]
push dword [ecx + 0x1c]
call fcn.00401964
cmp byte [ebp + 0x13], bl
je 0x435b20
lea eax, [ebp - 0x21c]
lea ecx, [ebp - 0x264]
push eax
call fcn.00436423
lea ecx, [ebp - 0x21c]
call fcn.00401bc2
lea eax, [ebp - 0x264]
lea ecx, [ebp - 0x12c]
push eax
call fcn.00415e3b
mov esi, eax
cmp esi, ebx
jne 0x435b00
lea ecx, [ebp - 0x12c]
call fcn.00415fde
lea ecx, [ebp - 0x34]
call fcn.00401c1f
push dword [0x49b6f8]
lea ecx, [ebp - 0x34]
call fcn.00401c53
lea ecx, [ebp - 0x34]
call fcn.00401c4c
jmp 0x435b82
lea ecx, [ebp - 0x12c]
call fcn.00415e2f
lea eax, [ebp + 0x13]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetup.cpp
lea ecx, [ebp - 0x21c]
call fcn.0040175f
add eax, 4
mov eax, dword [eax + 4]
cmp eax, ebx
jne 0x435b50
mov eax, 0x47b578
push dword [0x49b6ec]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18], 0x1d0
push str.Setup_returning__d
push eax
call fcn.004084c8
add esp, 0xc
lea ecx, [ebp - 0x21c]
call fcn.00401bc2
mov esi, dword [0x49b6ec]
lea ecx, [ebp - 0x264]
call fcn.00401bc2
lea ecx, [ebp - 0x12c]
call fcn.00415bfc
lea ecx, [ebp - 0x23c]
call fcn.0040a756
lea ecx, [ebp - 0xcc]
call fcn.00401f95
lea ecx, [ebp - 0x154]
call fcn.00401bc2
lea ecx, [ebp - 0x78]
call fcn.00435c15
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 0x10