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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x83c
push ebx
push esi
xor ebx, ebx
push edi
push ebx
mov dword [ebp - 0x78], ebx
call dword [sym.imp.ole32.dll_CoInitialize]
call fcn.0044f786
cmp eax, 6
jb 0x43795c
call fcn.00437614
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x83c]
push eax
mov dword [0x4c8ee8], eax
call fcn.00438d07
lea eax, [ebp - 9]
mov edi, 0x4a36b0
push ebx
push eax
lea ecx, [ebp - 0x1f0]
mov dword [ebp - 0x1f0], 0x4a36b8
mov dword [ebp - 0x1d0], edi
call fcn.00403cd9
mov esi, 0x104
lea eax, [ebp - 0x28]
push esi
push eax
lea ecx, [ebp - 0x1f0]
call fcn.00402f01
mov ecx, dword [eax]
mov dword [ebp - 0x38], eax
call fcn.004042dd
mov ecx, dword [ebp - 0x38]
push esi
push eax
push ebx
mov dword [ecx + 8], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [ebp - 0x28]
call fcn.00403013
sub esp, 0x28
lea eax, [ebp - 9]
mov dword [ebp - 0x14], esp
mov ecx, esp
push ebx
push eax
push 0x4c6e10
mov dword [ecx], 0x4a36b8
mov dword [ecx + 0x20], edi
call fcn.00404d89
sub esp, 0x28
lea eax, [ebp - 0x1f0]
mov ecx, esp
mov dword [ebp - 0x14], esp
push 1
push eax
call fcn.00407ae3
lea ecx, [ebp - 0x83c]
call fcn.004391a7
push 0x400
lea eax, [ebp - 0x83c]
push ebx
push 0x4c8ae0
mov dword [0x4c8ee4], eax
call fcn.0047daf0
mov eax, dword [0x4c91e4]
add esp, 0xc
mov dword [ebp - 0x38], eax
mov eax, dword [0x4c91e8]
push dword [ebp + 0x10]
lea ecx, [ebp - 0x74]
mov dword [0x4c8ee0], ebx
mov dword [ebp - 0x34], eax
call fcn.00438cc2
lea eax, [ebp - 9]
push ebx
push eax
lea ecx, [ebp - 0x150]
mov dword [ebp - 0x150], 0x4a3670
mov dword [ebp - 0x130], 0x4a3668
call fcn.00401907
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x150]
push eax
call fcn.0042e9f0
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.0040ae65
push ebx
push ebx
push eax
push str.debuglog
lea ecx, [ebp - 0x74]
call fcn.00408cf1
lea ecx, [ebp - 0x28]
mov byte [ebp - 0xa], al
call fcn.00439afd
cmp byte [ebp - 0xa], bl
je 0x437afa
call fcn.0048e040
push ebx
call fcn.0048e1d0
cmp dword [ebp - 0x144], ebx
je 0x437afa
lea eax, [ebp - 0x60]
lea ecx, [ebp - 0x150]
push eax
call fcn.00439b0e
lea ecx, [ebp - 0x60]
call fcn.00401093
sub esp, 0x28
lea eax, [ebp - 0x150]
mov dword [ebp - 0x14], esp
mov ecx, esp
push ebx
push eax
mov dword [ecx], 0x4a3670
mov dword [ecx + 0x20], 0x4a3668
call fcn.00401d87
call fcn.0048e050
lea eax, [ebp - 9]
push 1
push eax
lea ecx, [ebp - 0x118]
push dword [ebp + 0x10]
call fcn.00401884
add eax, 4
mov dword [ebp - 0x2c], 0x4a368c
mov eax, dword [eax + 4]
cmp eax, ebx
je 0x437b22
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 1]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetup.cpp
lea ecx, [ebp - 0x60]
call fcn.00401884
add eax, 4
mov eax, dword [eax + 4]
cmp eax, ebx
jne 0x437b44
mov eax, 0x4a368c
push dword [ebp - 0x2c]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0xa3
push str.InstallShield_setup.exe__Ansi__started__cmdline:__s
push eax
call fcn.0040a47f
add esp, 0xc
lea ecx, [ebp - 0x60]
call fcn.00401093
lea ecx, [ebp - 0x118]
call fcn.00401093
push 1
push 1
push ebx
push 0x4bb4f8
lea ecx, [ebp - 0x74]
call fcn.00408cf1
push ebx
push ebx
push ebx
push 0x4bb698
lea ecx, [ebp - 0x74]
mov byte [ebp - 8], al
call fcn.00408cf1
test al, al
je 0x437c93
cmp byte [0x4c6914], bl
jne 0x437bb2
cmp byte [0x4c9568], bl
je 0x437c2b
lea eax, [ebp + 0xb]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetup.cpp
lea ecx, [ebp - 0x118]
call fcn.00401884
mov eax, 0x4bf9d4
mov dword [ebp - 0x1a0], 0x4a3670
mov ecx, eax
mov dword [ebp - 0x180], 0x4a3668
test ecx, ecx
jne 0x437bec
mov eax, 0x4c6e10
lea ecx, [ebp - 1]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x1a0]
call fcn.004011a9
lea eax, [ebp - 0x118]
push 0xad
push eax
lea eax, [ebp - 0x1a0]
push eax
call fcn.0048dff0
lea ecx, [ebp - 0x1a0]
call fcn.00401093
lea ecx, [ebp - 0x118]
call fcn.00401093
lea eax, [ebp - 0x60]
push eax
call fcn.00410f12
pop ecx
push eax
lea ecx, [ebp - 0x244]
call fcn.00410de6
lea ecx, [ebp - 0x60]
call fcn.00402438
lea ecx, [ebp - 0x244]
call fcn.0041104f
test eax, eax
jne 0x437c60
mov esi, dword [0x4c8ee0]
jmp 0x437c83
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.00401884
lea ecx, [ebp - 0x244]
call fcn.004113e2
mov esi, eax
lea ecx, [ebp - 0x244]
call fcn.00410eef
jmp 0x438c8a
cmp byte [ebp - 8], bl
je 0x437cb0
push ebx
push ebx
push ebx
push 0x4bf9d0
lea ecx, [ebp - 0x74]
call fcn.00408cf1
test al, al
je 0x437dda
lea eax, [ebp - 1]
push ebx
push eax
lea ecx, [ebp - 0x178]
mov dword [ebp - 0x178], 0x4a3670
mov dword [ebp - 0x158], 0x4a3668
call fcn.00401907
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x178]
push eax
call fcn.0042e9f0
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.0040ae65
push 1
push ebx
push eax
push str.removeasmajorupgrade
lea ecx, [ebp - 0x74]
call fcn.00408cf1
lea ecx, [ebp - 0x28]
mov byte [ebp - 9], al
call fcn.00439afd
cmp byte [ebp - 9], bl
je 0x437dcf
cmp byte [0x4c6914], bl
jne 0x437d23
cmp byte [0x4c9568], bl
je 0x437d9c
lea eax, [ebp + 0x13]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetup.cpp
lea ecx, [ebp - 0x118]
call fcn.00401884
mov eax, str.Running_as_remove_major_upgrade
mov dword [ebp - 0x1a0], 0x4a3670
mov ecx, eax
mov dword [ebp - 0x180], 0x4a3668
test ecx, ecx
jne 0x437d5d
mov eax, 0x4c6e10
lea ecx, [ebp + 0xb]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x1a0]
call fcn.004011a9
lea eax, [ebp - 0x118]
push 0xbc
push eax
lea eax, [ebp - 0x1a0]
push eax
call fcn.0048dff0
lea ecx, [ebp - 0x1a0]
call fcn.00401093
lea ecx, [ebp - 0x118]
call fcn.00401093
push dword [ebp - 8]
lea eax, [ebp - 0x178]
sub esp, 0x28
mov ecx, esp
mov dword [ebp + 0x10], esp
push 1
push eax
call fcn.0040a8d2
call fcn.004397f3
add esp, 0x2c
lea ecx, [ebp - 0x178]
mov esi, eax
call fcn.00401093
jmp 0x438c8a
lea ecx, [ebp - 0x178]
call fcn.00401093
cmp dword [ebp - 0x38], 1
mov eax, dword [ebp + 0x10]
jbe 0x437f94
mov cl, byte [eax]
cmp cl, 0x2d
je 0x437df3
cmp cl, 0x2f
jne 0x437e57
cmp byte [eax + 1], 0x25
jne 0x437e57
add eax, 2
mov cl, byte [eax]
inc eax
cmp cl, 0x2f
jne 0x437dfc
mov byte [eax - 2], bl
dec eax
push eax
mov ecx, 0x4c8208
call fcn.00401a14
push eax
lea eax, [ebp - 0x528]
push str._s__s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x528]
push 1
push eax
call fcn.00449552
lea ecx, [ebp - 0x28]
call fcn.004020ad
push dword [ebp + 8]
lea ecx, [ebp - 0x28]
call fcn.004020e1
lea ecx, [ebp - 0x28]
call fcn.004020da
jmp 0x438a1f
cmp cl, 0x2d
je 0x437e61
cmp cl, 0x2f
jne 0x437eb8
mov dl, byte [eax + 1]
cmp dl, 0x6b
je 0x437e6e
cmp dl, 0x4b
jne 0x437eb8
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x423]
mov byte [ebp - 0x424], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp + 0x10]
add eax, 2
push eax
mov eax, dword [ebp - 0x34]
push dword [eax]
lea eax, [ebp - 0x424]
push 0x4bb958
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x424]
push 1
push eax
call fcn.00449732
jmp 0x438a1f
cmp cl, 0x2d
je 0x437ec6
cmp cl, 0x2f
jne 0x437f94
mov cl, byte [eax + 1]
cmp cl, 0x67
je 0x437ed7
cmp cl, 0x47
jne 0x437f94
lea esi, [eax + 2]
mov al, byte [esi]
inc esi
cmp al, 0x2f
jne 0x437eda
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x423]
mov byte [ebp - 0x424], 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 - 0x424]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x424]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov cl, byte [ebp + eax - 0x426]
lea eax, [ebp + eax - 0x424]
cmp cl, 0x2d
mov dword [ebp + 8], ebx
je 0x437f30
cmp cl, 0x2f
jne 0x437f47
mov cl, byte [eax - 1]
cmp cl, 0x73
je 0x437f3d
cmp cl, 0x53
jne 0x437f47
mov dword [ebp + 8], 1
mov byte [eax - 2], bl
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x527]
mov byte [ebp - 0x528], 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 - 0x528]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [ebp + 8]
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x528]
push eax
call fcn.00449ed5
add esp, 0xc
mov esi, eax
jmp 0x438c8a
cmp dword [ebp - 0x38], 1
mov dword [ebp - 0x2c], ebx
jbe 0x437fbf
mov cl, byte [eax]
cmp cl, 0x2d
je 0x437fa9
cmp cl, 0x2f
jne 0x437fbf
mov al, byte [eax + 1]
cmp al, 0x71
je 0x437fb4
cmp al, 0x51
jne 0x437fbf
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 4]
inc eax
inc eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 1]
push ebx
push eax
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0xc8], 0x4a36b8
mov dword [ebp - 0xa8], edi
call fcn.00403cd9
push 1
lea ecx, [ebp - 0x260]
call fcn.00439eb5
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0x260]
push eax
call fcn.0043a016
mov eax, dword [eax]
push ebx
add eax, 0x10
push ebx
push eax
push str.tempdisk1folder
lea ecx, [ebp - 0x74]
call fcn.00408cf1
test al, al
je 0x43803a
lea ecx, [ebp - 0x260]
call fcn.00439f3a
mov eax, dword [ebp - 0x250]
cmp eax, ebx
jne 0x43802e
mov eax, 0x4c6e10
push eax
lea ecx, [ebp - 0xc8]
call fcn.00403eb2
cmp dword [ebp - 0xbc], ebx
jne 0x4380e6
lea eax, [ebp - 0x28]
push esi
push eax
lea ecx, [ebp - 0xc8]
call fcn.00402f01
mov ecx, dword [eax]
mov dword [ebp - 0x10], eax
call fcn.004042dd
mov ecx, dword [ebp - 0x10]
push eax
push esi
mov dword [ecx + 8], eax
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea ecx, [ebp - 0x28]
call fcn.00403013
sub esp, 0x28
lea eax, [ebp - 1]
mov dword [ebp - 0x14], esp
mov ecx, esp
push ebx
push eax
push 0x4c6e10
mov dword [ecx], 0x4a36b8
mov dword [ecx + 0x20], edi
call fcn.00404d89
sub esp, 0x28
lea eax, [ebp - 9]
mov ecx, esp
mov dword [ebp - 0x14], esp
push 1
push eax
push 0x4c6e10
call fcn.0040ad1d
lea eax, [ebp - 0x60]
push ebx
push eax
call fcn.0044dd1c
add esp, 0x58
lea ecx, [ebp - 0xc8]
push eax
call fcn.004024b2
lea ecx, [ebp - 0x60]
call fcn.00402438
lea eax, [ebp - 0x60]
lea ecx, [ebp - 0xc8]
push eax
call fcn.0040509d
lea ecx, [ebp - 0x60]
call fcn.00402438
lea eax, [ebp - 0x60]
lea ecx, [ebp - 0xc8]
push eax
call fcn.0040ad70
lea ecx, [ebp - 0x60]
call fcn.00402438
lea ecx, [ebp - 0xc8]
call fcn.004042dd
push eax
push 0x4c8ae0
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
sub esp, 0x28
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x14], esp
mov ecx, esp
push ebx
push eax
mov dword [ecx], 0x4a36b8
mov dword [ecx + 0x20], edi
call fcn.00403d4e
mov ecx, dword [0x4c8ee4]
call fcn.00439634
cmp dword [ebp - 0x2c], ebx
je 0x438153
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jne 0x438aa4
cmp byte [ebp - 8], bl
jne 0x43817b
mov eax, dword [ebp - 0x34]
push dword [eax]
call fcn.00449134
test eax, eax
je 0x438aa4
push dword [ebp + 0x10]
call fcn.00439670
test al, al
pop ecx
je 0x438aa4
lea eax, [ebp - 0x1a0]
push ebx
push eax
lea eax, [ebp - 1]
push 1
push eax
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x60]
push dword [eax]
call fcn.00402e7f
mov ecx, eax
call fcn.00402f2e
lea ecx, [ebp - 0x60]
call fcn.00402438
lea eax, [ebp - 0x118]
push ebx
push eax
lea ecx, [ebp - 0x1a0]
call fcn.00402f2e
push ebx
lea eax, [ebp - 0x218]
push ebx
push eax
lea eax, [ebp - 1]
push 1
push eax
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x60]
push dword [eax]
call fcn.00402e7f
mov ecx, eax
call fcn.00403fe4
lea ecx, [ebp - 0x60]
call fcn.00402438
cmp dword [ebp - 0x20c], ebx
jne 0x438269
lea eax, [ebp - 1]
push ebx
push eax
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0xa0], 0x4a36b8
mov dword [ebp - 0x80], edi
call fcn.00403cd9
lea eax, [ebp - 0x1c]
push esi
push eax
lea ecx, [ebp - 0xa0]
call fcn.00402f01
mov ecx, dword [eax]
mov dword [ebp - 8], eax
call fcn.004042dd
mov ecx, dword [ebp - 8]
push esi
push eax
push ebx
mov dword [ecx + 8], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [ebp - 0x1c]
call fcn.00403013
push ebx
lea eax, [ebp - 0x60]
push ebx
push eax
lea ecx, [ebp - 0xa0]
call fcn.00403fe4
push eax
lea ecx, [ebp - 0x218]
call fcn.004024b2
lea ecx, [ebp - 0x60]
call fcn.00402438
lea ecx, [ebp - 0xa0]
call fcn.00402438
lea ecx, [ebp - 0x28]
call fcn.004020ad
lea eax, [ebp - 0x1a0]
lea ecx, [ebp - 0x218]
push eax
lea eax, [ebp - 0x1c8]
push eax
call fcn.0040f42b
lea eax, [ebp - 0x118]
lea ecx, [ebp - 0xc8]
push eax
lea eax, [ebp - 0xf0]
push eax
call fcn.0040f42b
lea ecx, [ebp - 0x1c8]
call fcn.004042dd
push ebx
lea ecx, [ebp - 0xf0]
mov dword [ebp - 8], eax
call fcn.004042dd
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x1c]
push esi
push eax
lea ecx, [ebp - 0xf0]
call fcn.00402f01
mov ecx, dword [eax]
mov dword [ebp - 8], eax
call fcn.004042dd
mov ecx, dword [ebp - 8]
push eax
mov dword [ecx + 8], eax
lea ecx, [ebp - 0x28]
call fcn.00402533
lea ecx, [ebp - 0x1c]
call fcn.00403013
lea eax, [ebp - 1]
push 1
push eax
lea ecx, [ebp - 0xa0]
push dword [0x4bf818]
call fcn.00402e7f
lea eax, [ebp - 0xa0]
lea ecx, [ebp - 0x218]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.0040f42b
push eax
lea ecx, [ebp - 0x1c8]
call fcn.004024b2
lea ecx, [ebp - 0x60]
call fcn.00402438
lea ecx, [ebp - 0xa0]
call fcn.00402438
lea eax, [ebp - 1]
push 1
push eax
lea ecx, [ebp - 0xa0]
push dword [0x4bf818]
call fcn.00402e7f
lea eax, [ebp - 0xa0]
lea ecx, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.0040f42b
push eax
lea ecx, [ebp - 0xf0]
call fcn.004024b2
lea ecx, [ebp - 0x60]
call fcn.00402438
lea ecx, [ebp - 0xa0]
call fcn.00402438
lea ecx, [ebp - 0x1c8]
call fcn.004042dd
mov dword [ebp - 8], eax
push ebx
lea ecx, [ebp - 0xf0]
call fcn.004042dd
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x1c]
push esi
push eax
lea ecx, [ebp - 0xf0]
call fcn.00402f01
mov ecx, dword [eax]
mov dword [ebp - 8], eax
call fcn.004042dd
mov ecx, dword [ebp - 8]
push eax
mov dword [ecx + 8], eax
lea ecx, [ebp - 0x28]
call fcn.00402533
lea ecx, [ebp - 0x1c]
call fcn.00403013
lea eax, [ebp - 1]
push 1
push eax
push str.ISSetup.dll
lea ecx, [ebp - 0xa0]
call fcn.00402e7f
lea eax, [ebp - 0xa0]
lea ecx, [ebp - 0x218]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.0040f42b
push eax
lea ecx, [ebp - 0x1c8]
call fcn.004024b2
lea ecx, [ebp - 0x60]
call fcn.00402438
lea ecx, [ebp - 0xa0]
call fcn.00402438
mov eax, 0x4bbd00
mov dword [ebp - 0xa0], 0x4a36b8
mov ecx, eax
mov dword [ebp - 0x80], edi
test ecx, ecx
jne 0x43844d
mov eax, 0x4c6e10
lea ecx, [ebp - 1]
push ebx
push ecx
push eax
lea ecx, [ebp - 0xa0]
call fcn.00404d89
lea eax, [ebp - 0xa0]
lea ecx, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.0040f42b
push eax
lea ecx, [ebp - 0xf0]
call fcn.004024b2
lea ecx, [ebp - 0x60]
call fcn.00402438
lea ecx, [ebp - 0xa0]
call fcn.00402438
lea ecx, [ebp - 0x1c8]
call fcn.004042dd
push ebx
lea ecx, [ebp - 0xf0]
mov dword [ebp - 8], eax
call fcn.004042dd
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x1c]
push esi
push eax
lea ecx, [ebp - 0xf0]
call fcn.00402f01
mov ecx, dword [eax]
mov dword [ebp - 8], eax
call fcn.004042dd
mov ecx, dword [ebp - 8]
push eax
mov dword [ecx + 8], eax
lea ecx, [ebp - 0x28]
call fcn.00402533
lea ecx, [ebp - 0x1c]
call fcn.00403013
lea eax, [ebp - 1]
push ebx
push eax
lea ecx, [ebp - 0x178]
mov dword [ebp - 0x178], 0x4a36b8
mov dword [ebp - 0x158], edi
call fcn.00403cd9
lea eax, [ebp - 0x1c]
push esi
push eax
lea ecx, [ebp - 0x178]
call fcn.00402f01
mov ecx, dword [eax]
mov dword [ebp - 8], eax
call fcn.004042dd
mov ecx, dword [ebp - 8]
push esi
push eax
push str.Skin
push 0x4bb2c0
mov dword [ecx + 8], eax
call fcn.00449f3a
add esp, 0x10
lea ecx, [ebp - 0x1c]
call fcn.00403013
cmp dword [ebp - 0x16c], ebx
jne 0x43857f
lea eax, [ebp - 1]
push 1
push eax
push str.setup.isn
lea ecx, [ebp - 0xa0]
call fcn.00402e7f
lea eax, [ebp - 0xa0]
lea ecx, [ebp - 0x178]
push eax
call fcn.004024b2
lea ecx, [ebp - 0xa0]
call fcn.00402438
lea eax, [ebp - 0x178]
lea ecx, [ebp - 0x218]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.0040f42b
push eax
lea ecx, [ebp - 0x1c8]
call fcn.004024b2
lea ecx, [ebp - 0x60]
call fcn.00402438
lea eax, [ebp - 0x178]
lea ecx, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.0040f42b
push eax
lea ecx, [ebp - 0xf0]
call fcn.004024b2
lea ecx, [ebp - 0x60]
call fcn.00402438
lea ecx, [ebp - 0x1c8]
call fcn.004042dd
push ebx
lea ecx, [ebp - 0xf0]
mov dword [ebp - 8], eax
call fcn.004042dd
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x43862c
lea eax, [ebp - 0x1c]
push esi
push eax
lea ecx, [ebp - 0xf0]
call fcn.00402f01
mov ecx, dword [eax]
mov dword [ebp - 8], eax
call fcn.004042dd
mov ecx, dword [ebp - 8]
push eax
mov dword [ecx + 8], eax
lea ecx, [ebp - 0x28]
call fcn.00402533
lea ecx, [ebp - 0x1c]
call fcn.00403013
lea eax, [ebp - 0x2e8]
push 0x10
push eax
push str.count
push str.Languages
call fcn.00449f3a
push 0xa
lea eax, [ebp - 0x2e8]
push ebx
push eax
call fcn.0047d7b8
add esp, 0x1c
cmp eax, ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 8], ebx
jbe 0x438818
push dword [ebp - 8]
lea eax, [ebp - 0x2d8]
push str.key_d
push eax
call fcn.0047d973
lea eax, [ebp - 0x2f8]
push 0x10
push eax
lea eax, [ebp - 0x2d8]
push eax
push str.Languages
call fcn.00449f3a
push 0x10
lea eax, [ebp - 0x2f8]
push ebx
push eax
call fcn.0047d7b8
add esp, 0x28
cmp eax, ebx
mov dword [ebp - 0x10], eax
je 0x438809
mov eax, dword [ebp - 0x210]
cmp eax, ebx
jne 0x4386be
mov eax, 0x4a36e0
push dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x1c8]
push str._s0x_04x.ini
push eax
call fcn.0040f4b6
mov eax, dword [ebp - 0xc0]
add esp, 0x10
cmp eax, ebx
jne 0x4386e5
mov eax, 0x4a36e0
push dword [ebp - 0x10]
push eax
lea eax, [ebp - 0xf0]
push str._s0x_04x.ini
push eax
call fcn.0040f4b6
add esp, 0x10
lea ecx, [ebp - 0x1c8]
call fcn.004042dd
push ebx
lea ecx, [ebp - 0xf0]
mov dword [ebp - 0x30], eax
call fcn.004042dd
push eax
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x43875c
lea eax, [ebp - 0x2c8]
push esi
push eax
lea ecx, [ebp - 0xf0]
call fcn.00402f01
mov ecx, dword [eax]
mov dword [ebp - 0x30], eax
call fcn.004042dd
mov ecx, dword [ebp - 0x30]
push eax
mov dword [ecx + 8], eax
lea ecx, [ebp - 0x28]
call fcn.00402533
lea ecx, [ebp - 0x2c8]
call fcn.00403013
mov eax, dword [ebp - 0x210]
cmp eax, ebx
jne 0x43876b
mov eax, 0x4a36e0
push dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x1c8]
push str._s_04x.mst
push eax
call fcn.0040f4b6
mov eax, dword [ebp - 0xc0]
add esp, 0x10
cmp eax, ebx
jne 0x438792
mov eax, 0x4a36e0
push dword [ebp - 0x10]
push eax
lea eax, [ebp - 0xf0]
push str._s_04x.mst
push eax
call fcn.0040f4b6
add esp, 0x10
lea ecx, [ebp - 0x1c8]
call fcn.004042dd
push ebx
lea ecx, [ebp - 0xf0]
mov dword [ebp - 0x30], eax
call fcn.004042dd
push eax
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x438809
lea eax, [ebp - 0x2bc]
push esi
push eax
lea ecx, [ebp - 0xf0]
call fcn.00402f01
mov ecx, dword [eax]
mov dword [ebp - 0x30], eax
call fcn.004042dd
mov ecx, dword [ebp - 0x30]
push eax
mov dword [ecx + 8], eax
lea ecx, [ebp - 0x28]
call fcn.00402533
lea ecx, [ebp - 0x2bc]
call fcn.00403013
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x14]
jb 0x438664
lea eax, [ebp - 1]
push ebx
push eax
lea ecx, [ebp - 0x2b0]
mov dword [ebp - 0x2b0], 0x4a36b8
mov dword [ebp - 0x290], edi
call fcn.00403cd9
lea eax, [ebp + 0x13]
push 1
push eax
lea ecx, [ebp - 0x240]
push dword [ebp + 0x10]
call fcn.00402e7f
add eax, 4
mov eax, dword [eax + 4]
cmp eax, ebx
jne 0x438860
mov esi, 0x4a36e0
mov dword [ebp - 8], esi
jmp 0x438868
mov dword [ebp - 8], eax
mov esi, 0x4a36e0
lea eax, [ebp - 1]
push 1
push eax
push 0x4c8ae0
lea ecx, [ebp - 0x320]
call fcn.00402e7f
add eax, 4
mov dword [ebp - 0x10], esi
mov eax, dword [eax + 4]
cmp eax, ebx
je 0x43888e
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1a0]
lea ecx, [ebp - 0x218]
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.0040f42b
add eax, 4
mov edi, esi
mov eax, dword [eax + 4]
cmp eax, ebx
je 0x4388b5
mov edi, eax
lea eax, [ebp - 0x118]
lea ecx, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.0040f42b
add eax, 4
mov eax, dword [eax + 4]
cmp eax, ebx
jne 0x4388d7
mov eax, esi
push dword [ebp - 8]
push dword [ebp - 0x10]
push edi
push eax
lea eax, [ebp - 0x2b0]
push str._s__q__s___tempdisk1folder__s___s
push eax
call fcn.0040f4b6
add esp, 0x18
lea ecx, [ebp - 0x60]
call fcn.00402438
lea ecx, [ebp - 0xa0]
call fcn.00402438
lea ecx, [ebp - 0x320]
call fcn.00402438
lea ecx, [ebp - 0x240]
call fcn.00402438
cmp byte [0x4c6914], bl
jne 0x43892c
cmp byte [0x4c9568], bl
je 0x438999
lea eax, [ebp + 0x13]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetup.cpp
lea ecx, [ebp - 0x60]
call fcn.00401884
mov eax, str.Relaunching_setup_from_temp
mov dword [ebp - 0xa0], 0x4a3670
mov ecx, eax
mov dword [ebp - 0x80], 0x4a3668
test ecx, ecx
jne 0x438960
mov eax, 0x4c6e10
lea ecx, [ebp - 1]
push ebx
push ecx
push eax
lea ecx, [ebp - 0xa0]
call fcn.004011a9
lea eax, [ebp - 0x60]
push 0x193
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.0048dff0
lea ecx, [ebp - 0xa0]
call fcn.00401093
lea ecx, [ebp - 0x60]
call fcn.00401093
push 1
lea ecx, [ebp - 0x2b0]
call fcn.004042dd
push eax
call fcn.00449732
test eax, eax
lea ecx, [ebp - 0x2b0]
je 0x438a55
call fcn.00402438
lea ecx, [ebp - 0x178]
call fcn.00402438
lea ecx, [ebp - 0xf0]
call fcn.00402438
lea ecx, [ebp - 0x1c8]
call fcn.00402438
lea ecx, [ebp - 0x28]
call fcn.004020da
lea ecx, [ebp - 0x218]
call fcn.00402438
lea ecx, [ebp - 0x118]
call fcn.00402438
lea ecx, [ebp - 0x1a0]
call fcn.00402438
lea ecx, [ebp - 0x260]
call fcn.0040cae1
lea ecx, [ebp - 0xc8]
call fcn.00402438
lea ecx, [ebp - 0x150]
call fcn.00401093
lea ecx, [ebp - 0x74]
call fcn.00408cab
lea ecx, [ebp - 0x1f0]
call fcn.00402438
lea ecx, [ebp - 0x83c]
call fcn.00439011
call dword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
jmp 0x438cbb
call fcn.00402438
lea ecx, [ebp - 0x178]
call fcn.00402438
lea ecx, [ebp - 0xf0]
call fcn.00402438
lea ecx, [ebp - 0x1c8]
call fcn.00402438
lea ecx, [ebp - 0x28]
call fcn.004020da
lea ecx, [ebp - 0x218]
call fcn.00402438
lea ecx, [ebp - 0x118]
call fcn.00402438
lea ecx, [ebp - 0x1a0]
call fcn.00402438
call fcn.00448e3d
lea ecx, [ebp - 0x128]
call fcn.00419b87
cmp byte [ebp - 0xa], bl
je 0x438ac1
lea eax, [ebp - 0x150]
jmp 0x438af7
lea eax, [ebp + 0x13]
push ebx
push eax
push 0x4c6e10
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x118], 0x4a3670
mov dword [ebp - 0xf8], 0x4a3668
call fcn.004011a9
mov dword [ebp - 0x78], 1
lea eax, [ebp - 0x118]
lea ecx, [ebp - 0x83c]
push ecx
sub esp, 0x28
mov ecx, esp
mov dword [ebp - 0x14], esp
push 1
push eax
call fcn.0040a8d2
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x128]
push dword [ebp - 0x34]
push dword [ebp - 0x38]
push dword [ebp + 8]
call fcn.00419bcc
test byte [ebp - 0x78], 1
je 0x438b36
lea ecx, [ebp - 0x118]
call fcn.00401093
lea eax, [ebp + 0x13]
push ebx
push eax
lea ecx, [ebp - 0x288]
mov dword [ebp - 0x288], 0x4a3670
mov dword [ebp - 0x268], 0x4a3668
call fcn.00401907
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x288]
push eax
call fcn.0042e9f0
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.0040ae65
push ebx
push ebx
push eax
push str.runprerequisites
lea ecx, [ebp - 0x74]
call fcn.00408cf1
cmp byte [ebp - 0x24], bl
mov byte [ebp + 0x13], al
je 0x438b97
mov ecx, dword [ebp - 0x28]
push dword [ecx + 0x1c]
call fcn.0040b18b
cmp byte [ebp + 0x13], bl
je 0x438bfc
lea eax, [ebp - 0x240]
lea ecx, [ebp - 0x288]
push eax
call fcn.00439b0e
lea ecx, [ebp - 0x240]
call fcn.00401093
lea eax, [ebp - 0x288]
lea ecx, [ebp - 0x128]
push eax
call fcn.00419e02
mov esi, eax
cmp esi, ebx
jne 0x438bdc
lea ecx, [ebp - 0x128]
call fcn.00419fd7
lea ecx, [ebp - 0x28]
call fcn.004020ad
push dword [0x4c8ee8]
lea ecx, [ebp - 0x28]
call fcn.004020e1
lea ecx, [ebp - 0x28]
call fcn.004020da
jmp 0x438c5e
lea ecx, [ebp - 0x128]
call fcn.00419df6
lea eax, [ebp + 0x13]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetup.cpp
lea ecx, [ebp - 0x240]
call fcn.00401884
add eax, 4
mov eax, dword [eax + 4]
cmp eax, ebx
jne 0x438c2c
mov eax, 0x4a368c
push dword [0x4c8ee0]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x1b5
push str.Setup_returning__d
push eax
call fcn.0040a47f
add esp, 0xc
lea ecx, [ebp - 0x240]
call fcn.00401093
mov esi, dword [0x4c8ee0]
lea ecx, [ebp - 0x288]
call fcn.00401093
lea ecx, [ebp - 0x128]
call fcn.00419bb7
lea ecx, [ebp - 0x260]
call fcn.0040cae1
lea ecx, [ebp - 0xc8]
call fcn.00402438
lea ecx, [ebp - 0x150]
call fcn.00401093
lea ecx, [ebp - 0x74]
call fcn.00408cab
lea ecx, [ebp - 0x1f0]
call fcn.00402438
lea ecx, [ebp - 0x83c]
call fcn.00439011
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 0x10