Function at 0x430002
Capabilities:
Accept command line arguments
Copy file
Get common file path

Disassembly:
mov eax, 0x4722c7
call fcn.0045454c
sub esp, 0xa58
push ebx
push esi
xor ebx, ebx
push edi
push ebx
mov dword [ebp - 0x84], ebx
call dword [sym.imp.ole32.dll_CoInitialize]
mov dword [ebp - 4], ebx
call fcn.0043cbf3
cmp eax, 6
jb 0x430036
call fcn.0042fce1
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x85c]
push eax
mov dword [0x498478], eax
call fcn.004315f7
lea eax, [ebp - 0x6a]
mov esi, 0x476620
push ebx
push eax
lea ecx, [ebp - 0x1ec]
mov byte [ebp - 4], 1
mov dword [ebp - 0x1ec], 0x476628
mov dword [ebp - 0x1cc], esi
call fcn.00403bf5
mov edi, 0x104
lea eax, [ebp - 0x3c]
push edi
push eax
lea ecx, [ebp - 0x1ec]
mov byte [ebp - 4], 2
call fcn.00402dad
mov ecx, dword [eax]
mov byte [ebp - 4], 3
mov byte [eax + 4], 1
call fcn.00403dc2
mov eax, dword [eax]
push edi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 2
call fcn.00402ebf
sub esp, 0x28
lea eax, [ebp - 0xe]
mov dword [ebp - 0x20], esp
mov ecx, esp
push ebx
push eax
push 0x4947d8
mov dword [ecx], 0x476628
mov dword [ecx + 0x20], esi
call fcn.00403cfd
sub esp, 0x28
lea eax, [ebp - 0x1ec]
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 1
push eax
mov byte [ebp - 4], 4
call fcn.0040798e
lea ecx, [ebp - 0x85c]
mov byte [ebp - 4], 2
call fcn.00431a71
push 0x800
lea eax, [ebp - 0x85c]
push ebx
push 0x497c70
mov dword [0x498474], eax
call fcn.00454c00
add esp, 0xc
lea eax, [ebp - 0x40]
mov dword [0x498470], ebx
mov dword [ebp - 0x40], ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
push dword [ebp + 0x10]
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x30], eax
call fcn.00408af7
mov byte [ebp - 4], 5
mov dword [ebp - 0x19c], 0x4765e0
mov dword [ebp - 0x17c], 0x4765d8
push ebx
lea eax, [ebp - 0x69]
lea ecx, [ebp - 0x19c]
push eax
call fcn.0040190c
lea eax, [ebp - 0x3c]
lea ecx, [ebp - 0x19c]
push eax
mov byte [ebp - 4], 6
call fcn.004273ec
mov ecx, dword [eax]
mov byte [ebp - 4], 7
mov byte [eax + 4], 1
call fcn.0040afdf
push ebx
push ebx
push eax
push str.debuglog
lea ecx, [ebp - 0x80]
call fcn.00408b7f
lea ecx, [ebp - 0x3c]
mov byte [ebp - 0x10], al
mov byte [ebp - 4], 6
call fcn.004323c4
cmp byte [ebp - 0x10], bl
je 0x430206
call fcn.00465570
push ebx
call fcn.00465730
cmp dword [ebp - 0x190], ebx
je 0x430206
lea eax, [ebp - 0xac]
lea ecx, [ebp - 0x19c]
push eax
call fcn.004323d5
lea ecx, [ebp - 0xac]
call fcn.00401093
sub esp, 0x28
lea eax, [ebp - 0x19c]
mov dword [ebp - 0x20], esp
mov ecx, esp
push ebx
push eax
mov dword [ecx], 0x4765e0
mov dword [ecx + 0x20], 0x4765d8
call fcn.00401d8c
call fcn.00465580
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xd4], 0x4765e0
cmp eax, ebx
mov dword [ebp - 0xb4], 0x4765d8
jne 0x430226
mov eax, 0x4947d8
lea ecx, [ebp - 0xe]
push ebx
push ecx
push eax
lea ecx, [ebp - 0xd4]
call fcn.004011a9
mov eax, dword [ebp - 0xcc]
mov byte [ebp - 4], 8
cmp eax, ebx
mov dword [ebp - 0x1c], 0x4765fc
je 0x43024f
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0xf]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetup.cpp
lea ecx, [ebp - 0xac]
call fcn.00401889
mov eax, dword [eax + 8]
mov byte [ebp - 4], 9
cmp eax, ebx
jne 0x430275
mov eax, 0x4765fc
push dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
mov dword [ebp - 0x20], 0xa1
push str.InstallShield_setup.exe__Unicode__started__cmdline:__s
push eax
call fcn.0040a580
add esp, 0xc
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 8
call fcn.00401093
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 6
call fcn.00401093
push 1
push 1
push ebx
push str.runfromtemp
lea ecx, [ebp - 0x80]
call fcn.00408b7f
push ebx
push ebx
push ebx
push str.reboot
lea ecx, [ebp - 0x80]
mov byte [ebp - 0x14], al
call fcn.00408b7f
cmp al, bl
je 0x43040b
cmp byte [0x4943b8], bl
jne 0x4302f2
cmp byte [0x498ba8], bl
je 0x43037b
lea eax, [ebp + 0xb]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetup.cpp
lea ecx, [ebp - 0xac]
call fcn.00401889
mov eax, 0x48e7e0
mov byte [ebp - 4], 0xa
mov ecx, eax
mov dword [ebp - 0xd4], 0x4765e0
test ecx, ecx
mov dword [ebp - 0xb4], 0x4765d8
jne 0x430330
mov eax, 0x4947d8
lea ecx, [ebp - 0xf]
push ebx
push ecx
push eax
lea ecx, [ebp - 0xd4]
call fcn.004011a9
lea eax, [ebp - 0xac]
push 0xad
push eax
lea eax, [ebp - 0xd4]
push eax
mov byte [ebp - 4], 0xb
call fcn.00465520
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0xa
call fcn.00401093
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 6
call fcn.00401093
lea eax, [ebp - 0xac]
push eax
call fcn.0041145a
pop ecx
push eax
lea ecx, [ebp - 0x26c]
mov byte [ebp - 4], 0xc
call fcn.00411327
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0xe
call fcn.00402424
lea ecx, [ebp - 0x26c]
call fcn.00411594
test eax, eax
jne 0x4303be
mov esi, dword [0x498470]
jmp 0x4303f7
mov eax, dword [ebp + 0x10]
sub esp, 0x28
mov ecx, esp
mov dword [ebp + 8], esp
cmp eax, ebx
mov dword [ecx], 0x4765e0
mov dword [ecx + 0x20], 0x4765d8
jne 0x4303df
mov eax, 0x4947d8
lea edx, [ebp + 0xb]
push ebx
push edx
push eax
call fcn.004011a9
lea ecx, [ebp - 0x26c]
call fcn.0041192b
mov esi, eax
lea ecx, [ebp - 0x26c]
mov byte [ebp - 4], 6
call fcn.00411437
jmp 0x4315a6
cmp byte [ebp - 0x14], bl
je 0x430428
push ebx
push ebx
push ebx
push 0x48e7dc
lea ecx, [ebp - 0x80]
call fcn.00408b7f
test al, al
je 0x43057a
lea eax, [ebp - 0xf]
push ebx
push eax
lea ecx, [ebp - 0x174]
mov dword [ebp - 0x174], 0x4765e0
mov dword [ebp - 0x154], 0x4765d8
call fcn.0040190c
lea eax, [ebp - 0x3c]
lea ecx, [ebp - 0x174]
push eax
mov byte [ebp - 4], 0xf
call fcn.004273ec
mov ecx, dword [eax]
mov byte [ebp - 4], 0x10
mov byte [eax + 4], 1
call fcn.0040afdf
push 1
push ebx
push eax
push str.removeasmajorupgrade
lea ecx, [ebp - 0x80]
call fcn.00408b7f
lea ecx, [ebp - 0x3c]
mov byte [ebp - 0xe], al
mov byte [ebp - 4], 0xf
call fcn.004323c4
cmp byte [ebp - 0xe], bl
je 0x43056b
cmp byte [0x4943b8], bl
jne 0x4304ab
cmp byte [0x498ba8], bl
je 0x430534
lea eax, [ebp + 0x13]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetup.cpp
lea ecx, [ebp - 0xac]
call fcn.00401889
mov eax, str.Running_as_remove_major_upgrade
mov byte [ebp - 4], 0x11
mov ecx, eax
mov dword [ebp - 0xd4], 0x4765e0
test ecx, ecx
mov dword [ebp - 0xb4], 0x4765d8
jne 0x4304e9
mov eax, 0x4947d8
lea ecx, [ebp + 0xb]
push ebx
push ecx
push eax
lea ecx, [ebp - 0xd4]
call fcn.004011a9
lea eax, [ebp - 0xac]
push 0xbc
push eax
lea eax, [ebp - 0xd4]
push eax
mov byte [ebp - 4], 0x12
call fcn.00465520
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0x11
call fcn.00401093
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0xf
call fcn.00401093
push dword [ebp - 0x14]
lea eax, [ebp - 0x174]
sub esp, 0x28
mov ecx, esp
mov dword [ebp + 0x10], esp
push 1
push eax
call fcn.0040a9f0
call fcn.004320af
add esp, 0x2c
lea ecx, [ebp - 0x174]
mov esi, eax
mov byte [ebp - 4], 6
call fcn.00401093
jmp 0x4315a6
lea ecx, [ebp - 0x174]
mov byte [ebp - 4], 6
call fcn.00401093
cmp dword [ebp - 0x40], 1
mov eax, dword [ebp + 0x10]
push 0x2f
pop edx
jbe 0x43076b
mov cx, word [eax]
cmp cx, 0x2d
je 0x430598
cmp cx, dx
jne 0x43060f
cmp word [eax + 2], 0x25
jne 0x43060f
add eax, 4
mov cx, word [eax]
inc eax
inc eax
cmp cx, dx
jne 0x4305a2
mov word [eax - 4], bx
mov ecx, dword [0x496ba0]
cmp ecx, ebx
jne 0x4305bf
mov ecx, 0x4765fc
add eax, 0xfffffffe
push eax
push ecx
lea eax, [ebp - 0xa64]
push str._s__s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [ebp - 0xa64]
push 1
push eax
call fcn.00435cd6
lea ecx, [ebp - 0x3c]
call fcn.004020b2
push dword [ebp + 8]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x13
call fcn.004020e6
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 6
call fcn.004020df
jmp 0x4313bb
cmp cx, 0x2d
je 0x43061a
cmp cx, dx
jne 0x430679
mov dx, word [eax + 2]
cmp dx, 0x6b
je 0x43062a
cmp dx, 0x4b
jne 0x430676
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x54a]
add dword [ebp + 0x10], 4
mov word [ebp - 0x54c], bx
push dword [ebp + 0x10]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [ebp - 0x30]
push dword [eax]
lea eax, [ebp - 0x54c]
push 0x48a9ec
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [ebp - 0x54c]
push 1
push eax
call fcn.00435ecf
jmp 0x4313bb
push 0x2f
pop edx
cmp cx, 0x2d
je 0x430688
cmp cx, dx
jne 0x43076b
mov cx, word [eax + 2]
cmp cx, 0x67
je 0x43069c
cmp cx, 0x47
jne 0x43076b
lea esi, [eax + 4]
mov ax, word [esi]
inc esi
inc esi
cmp ax, dx
jne 0x43069f
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x54a]
mov word [ebp - 0x54c], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esi + 4]
push eax
lea eax, [ebp - 0x54c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [ebp - 0x54c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dx, word [ebp + eax*2 - 0x550]
lea ecx, [ebp + eax*2 - 0x550]
cmp dx, 0x2d
mov dword [ebp + 8], ebx
je 0x4306fd
cmp dx, 0x2f
jne 0x43071b
mov ax, word [ebp + eax*2 - 0x54e]
cmp ax, 0x73
je 0x430711
cmp ax, 0x53
jne 0x43071b
mov dword [ebp + 8], 1
mov word [ecx], bx
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0xa62]
mov word [ebp - 0xa64], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [ebp + 0x10]
mov word [esi - 4], bx
add eax, 6
push eax
lea eax, [ebp - 0xa64]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push dword [ebp + 8]
lea eax, [ebp - 0x54c]
push eax
lea eax, [ebp - 0xa64]
push eax
call fcn.00436667
add esp, 0xc
mov esi, eax
jmp 0x4315a6
cmp dword [ebp - 0x40], 1
mov dword [ebp - 0x1c], ebx
jbe 0x43079e
mov cx, word [eax]
cmp cx, 0x2d
je 0x430782
cmp cx, dx
jne 0x43079e
mov ax, word [eax + 2]
cmp ax, 0x71
je 0x430792
cmp ax, 0x51
jne 0x43079e
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
add eax, 4
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0xf]
push ebx
push eax
lea ecx, [ebp - 0xfc]
mov dword [ebp - 0xfc], 0x476628
mov dword [ebp - 0xdc], esi
call fcn.00403bf5
push 1
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0x14
call fcn.00432796
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x240]
push eax
mov byte [ebp - 4], 0x15
call fcn.004328f7
mov eax, dword [eax]
push ebx
add eax, 0x10
push ebx
push eax
push str.tempdisk1folder
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x16
call fcn.00408b7f
cmp al, bl
mov byte [ebp - 4], 0x15
je 0x430829
lea ecx, [ebp - 0x240]
call fcn.0043281b
mov eax, dword [ebp - 0x230]
cmp eax, ebx
jne 0x43081d
mov eax, 0x4947d8
push eax
lea ecx, [ebp - 0xfc]
call fcn.00403d99
cmp dword [ebp - 0xf0], ebx
jne 0x4308f5
lea eax, [ebp - 0x3c]
push edi
push eax
lea ecx, [ebp - 0xfc]
call fcn.00402dad
mov ecx, dword [eax]
mov byte [ebp - 4], 0x17
mov byte [eax + 4], 1
call fcn.00403dc2
push dword [eax]
push edi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x15
call fcn.00402ebf
sub esp, 0x28
lea eax, [ebp - 0xe]
mov dword [ebp - 0x20], esp
mov ecx, esp
push ebx
push eax
push 0x4947d8
mov dword [ecx], 0x476628
mov dword [ecx + 0x20], esi
call fcn.00403cfd
sub esp, 0x28
lea eax, [ebp - 0x2b]
mov ecx, esp
mov dword [ebp - 0x18], esp
push 1
push eax
push 0x4947d8
mov byte [ebp - 4], 0x18
call fcn.00402d75
lea eax, [ebp - 0xac]
push ebx
push eax
mov byte [ebp - 4], 0x15
call fcn.0043b308
add esp, 0x58
push eax
lea ecx, [ebp - 0xfc]
mov byte [ebp - 4], 0x19
call fcn.0040249e
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0x15
call fcn.00402424
lea eax, [ebp - 0xac]
lea ecx, [ebp - 0xfc]
push eax
call fcn.00404ca6
lea ecx, [ebp - 0xac]
call fcn.00402424
lea eax, [ebp - 0xac]
lea ecx, [ebp - 0xfc]
push eax
call fcn.0040ae50
lea ecx, [ebp - 0xac]
call fcn.00402424
mov eax, dword [ebp - 0xf4]
cmp eax, ebx
jne 0x430921
mov eax, 0x476650
push eax
push 0x497c70
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
sub esp, 0x28
lea eax, [ebp - 0xfc]
mov dword [ebp - 0x20], esp
mov ecx, esp
push ebx
push eax
mov dword [ecx], 0x476628
mov dword [ecx + 0x20], esi
call fcn.00403c6a
mov ecx, dword [0x498474]
call fcn.00431efe
cmp dword [ebp - 0x1c], ebx
je 0x43096c
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x43146b
cmp byte [ebp - 0x14], bl
jne 0x430994
mov eax, dword [ebp - 0x30]
push dword [eax]
call fcn.00435890
test eax, eax
je 0x43146b
push dword [ebp + 0x10]
call fcn.00431f40
test al, al
pop ecx
je 0x43146b
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2d4], 0x476628
mov dword [ebp - 0x2b4], esi
mov eax, dword [eax]
cmp eax, ebx
jne 0x4309b2
mov eax, 0x4947d8
lea ecx, [ebp - 0x2b]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x2d4]
call fcn.00403cfd
lea eax, [ebp - 0xd4]
push ebx
push eax
lea ecx, [ebp - 0x2d4]
mov byte [ebp - 4], 0x1a
call fcn.00402dda
lea ecx, [ebp - 0x2d4]
mov byte [ebp - 4], 0x1c
call fcn.00402424
lea eax, [ebp - 0xac]
push ebx
push eax
lea ecx, [ebp - 0xd4]
call fcn.00402dda
mov eax, dword [ebp - 0x30]
mov byte [ebp - 4], 0x1d
mov dword [ebp - 0x2fc], 0x476628
mov dword [ebp - 0x2dc], esi
mov eax, dword [eax]
cmp eax, ebx
jne 0x430a1e
mov eax, 0x4947d8
lea ecx, [ebp - 0xe]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x2fc]
call fcn.00403cfd
push ebx
lea eax, [ebp - 0x214]
push ebx
push eax
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 0x1e
call fcn.00403fd1
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 0x20
call fcn.00402424
cmp dword [ebp - 0x208], ebx
jne 0x430aec
lea eax, [ebp - 0xd]
push ebx
push eax
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x68], 0x476628
mov dword [ebp - 0x48], esi
call fcn.00403bf5
lea eax, [ebp - 0x28]
push edi
push eax
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x21
call fcn.00402dad
mov ecx, dword [eax]
mov byte [ebp - 4], 0x22
mov byte [eax + 4], 1
call fcn.00403dc2
mov eax, dword [eax]
push edi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x21
call fcn.00402ebf
push ebx
lea eax, [ebp - 0x14c]
push ebx
push eax
lea ecx, [ebp - 0x68]
call fcn.00403fd1
push eax
lea ecx, [ebp - 0x214]
mov byte [ebp - 4], 0x23
call fcn.0040249e
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x21
call fcn.00402424
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x20
call fcn.00402424
lea ecx, [ebp - 0x3c]
call fcn.004020b2
lea eax, [ebp - 0xd4]
lea ecx, [ebp - 0x214]
push eax
lea eax, [ebp - 0x1c4]
push eax
mov byte [ebp - 4], 0x24
call fcn.0040fa6a
lea eax, [ebp - 0xac]
lea ecx, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x124]
push eax
mov byte [ebp - 4], 0x25
call fcn.0040fa6a
mov ecx, dword [ebp - 0x11c]
mov byte [ebp - 4], 0x26
cmp ecx, ebx
jne 0x430b41
mov ecx, 0x476650
mov eax, dword [ebp - 0x1bc]
cmp eax, ebx
jne 0x430b50
mov eax, 0x476650
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea eax, [ebp - 0x28]
push edi
push eax
lea ecx, [ebp - 0x124]
call fcn.00402dad
mov ecx, dword [eax]
mov byte [ebp - 4], 0x27
mov byte [eax + 4], 1
call fcn.00403dc2
push dword [eax]
lea ecx, [ebp - 0x3c]
call fcn.0040251f
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x26
call fcn.00402ebf
mov eax, dword [str.Setup.INI]
mov dword [ebp - 0x68], 0x476628
cmp eax, ebx
mov dword [ebp - 0x48], esi
jne 0x430ba6
mov eax, 0x4947d8
lea ecx, [ebp - 0xd]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.00403cfd
lea eax, [ebp - 0x68]
lea ecx, [ebp - 0x214]
push eax
lea eax, [ebp - 0x14c]
push eax
mov byte [ebp - 4], 0x28
call fcn.0040fa6a
push eax
lea ecx, [ebp - 0x1c4]
mov byte [ebp - 4], 0x29
call fcn.0040249e
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x28
call fcn.00402424
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x26
call fcn.00402424
mov eax, dword [str.Setup.INI]
mov dword [ebp - 0x68], 0x476628
cmp eax, ebx
mov dword [ebp - 0x48], esi
jne 0x430c11
mov eax, 0x4947d8
lea ecx, [ebp - 0xd]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.00403cfd
lea eax, [ebp - 0x68]
lea ecx, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x14c]
push eax
mov byte [ebp - 4], 0x2a
call fcn.0040fa6a
push eax
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 0x2b
call fcn.0040249e
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x2a
call fcn.00402424
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x26
call fcn.00402424
mov ecx, dword [ebp - 0x11c]
cmp ecx, ebx
jne 0x430c73
mov ecx, 0x476650
mov eax, dword [ebp - 0x1bc]
cmp eax, ebx
jne 0x430c82
mov eax, 0x476650
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea eax, [ebp - 0x28]
push edi
push eax
lea ecx, [ebp - 0x124]
call fcn.00402dad
mov ecx, dword [eax]
mov byte [ebp - 4], 0x2c
mov byte [eax + 4], 1
call fcn.00403dc2
push dword [eax]
lea ecx, [ebp - 0x3c]
call fcn.0040251f
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x26
call fcn.00402ebf
lea eax, [ebp - 0xd]
push 1
push eax
push str.ISSetup.dll
lea ecx, [ebp - 0x68]
call fcn.00403f1b
lea eax, [ebp - 0x68]
lea ecx, [ebp - 0x214]
push eax
lea eax, [ebp - 0x14c]
push eax
mov byte [ebp - 4], 0x2d
call fcn.0040fa6a
push eax
lea ecx, [ebp - 0x1c4]
mov byte [ebp - 4], 0x2e
call fcn.0040249e
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x2d
call fcn.00402424
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x26
call fcn.00402424
mov eax, 0x48ae3c
mov dword [ebp - 0x68], 0x476628
mov ecx, eax
mov dword [ebp - 0x48], esi
test ecx, ecx
jne 0x430d32
mov eax, 0x4947d8
lea ecx, [ebp - 0xd]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.00403cfd
lea eax, [ebp - 0x68]
lea ecx, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x14c]
push eax
mov byte [ebp - 4], 0x2f
call fcn.0040fa6a
push eax
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 0x30
call fcn.0040249e
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x2f
call fcn.00402424
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x26
call fcn.00402424
mov ecx, dword [ebp - 0x11c]
cmp ecx, ebx
jne 0x430d94
mov ecx, 0x476650
mov eax, dword [ebp - 0x1bc]
cmp eax, ebx
jne 0x430da3
mov eax, 0x476650
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea eax, [ebp - 0x28]
push edi
push eax
lea ecx, [ebp - 0x124]
call fcn.00402dad
mov ecx, dword [eax]
mov byte [ebp - 4], 0x31
mov byte [eax + 4], 1
call fcn.00403dc2
push dword [eax]
lea ecx, [ebp - 0x3c]
call fcn.0040251f
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x26
call fcn.00402ebf
lea eax, [ebp - 0xd]
push ebx
push eax
lea ecx, [ebp - 0x174]
mov dword [ebp - 0x174], 0x476628
mov dword [ebp - 0x154], esi
call fcn.00403bf5
lea eax, [ebp - 0x28]
push edi
push eax
lea ecx, [ebp - 0x174]
mov byte [ebp - 4], 0x32
call fcn.00402dad
mov ecx, dword [eax]
mov byte [ebp - 4], 0x33
mov byte [eax + 4], 1
call fcn.00403dc2
mov eax, dword [eax]
push edi
push eax
push str.Skin
push str.Startup
call fcn.004366cc
add esp, 0x10
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x32
call fcn.00402ebf
cmp dword [ebp - 0x168], ebx
jne 0x430e80
lea eax, [ebp - 0x2a]
push 1
push eax
push str.setup.isn
lea ecx, [ebp - 0x68]
call fcn.00403f1b
lea eax, [ebp - 0x68]
lea ecx, [ebp - 0x174]
push eax
mov byte [ebp - 4], 0x34
call fcn.0040249e
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x32
call fcn.00402424
lea eax, [ebp - 0x174]
lea ecx, [ebp - 0x214]
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.0040fa6a
push eax
lea ecx, [ebp - 0x1c4]
mov byte [ebp - 4], 0x35
call fcn.0040249e
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x32
call fcn.00402424
lea eax, [ebp - 0x174]
lea ecx, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.0040fa6a
push eax
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 0x36
call fcn.0040249e
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x32
call fcn.00402424
mov ecx, dword [ebp - 0x11c]
cmp ecx, ebx
jne 0x430ef3
mov ecx, 0x476650
mov eax, dword [ebp - 0x1bc]
cmp eax, ebx
jne 0x430f02
mov eax, 0x476650
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x430f44
lea eax, [ebp - 0x28]
push edi
push eax
lea ecx, [ebp - 0x124]
call fcn.00402dad
mov ecx, dword [eax]
mov byte [ebp - 4], 0x37
mov byte [eax + 4], 1
call fcn.00403dc2
push dword [eax]
lea ecx, [ebp - 0x3c]
call fcn.0040251f
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x32
call fcn.00402ebf
lea eax, [ebp - 0x31c]
push 0x10
push eax
push str.count
push str.Languages
call fcn.004366cc
push 0xa
lea eax, [ebp - 0x31c]
push ebx
push eax
call fcn.004553f3
add esp, 0x1c
cmp eax, ebx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], ebx
jbe 0x431138
push dword [ebp - 0x14]
lea eax, [ebp - 0x144]
push str.key_d
push eax
call fcn.004554fa
lea eax, [ebp - 0x60]
push 0x10
push eax
lea eax, [ebp - 0x144]
push eax
push str.Languages
call fcn.004366cc
push 0x10
lea eax, [ebp - 0x60]
push ebx
push eax
call fcn.004553f3
add esp, 0x28
cmp eax, ebx
mov dword [ebp - 0x18], eax
je 0x431129
mov eax, dword [ebp - 0x20c]
cmp eax, ebx
jne 0x430fd0
mov eax, 0x476650
push dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c4]
push str._s0x_04x.ini
push eax
call fcn.0040faf5
mov eax, dword [ebp - 0xf4]
add esp, 0x10
cmp eax, ebx
jne 0x430ff7
mov eax, 0x476650
push dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x124]
push str._s0x_04x.ini
push eax
call fcn.0040faf5
mov ecx, dword [ebp - 0x11c]
add esp, 0x10
cmp ecx, ebx
jne 0x43101e
mov ecx, 0x476650
mov eax, dword [ebp - 0x1bc]
cmp eax, ebx
jne 0x43102d
mov eax, 0x476650
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x431075
lea eax, [ebp - 0x2a0]
push edi
push eax
lea ecx, [ebp - 0x124]
call fcn.00402dad
mov ecx, dword [eax]
mov byte [ebp - 4], 0x38
mov byte [eax + 4], 1
call fcn.00403dc2
push dword [eax]
lea ecx, [ebp - 0x3c]
call fcn.0040251f
lea ecx, [ebp - 0x2a0]
mov byte [ebp - 4], 0x32
call fcn.00402ebf
mov eax, dword [ebp - 0x20c]
cmp eax, ebx
jne 0x431084
mov eax, 0x476650
push dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c4]
push str._s_04x.mst
push eax
call fcn.0040faf5
mov eax, dword [ebp - 0xf4]
add esp, 0x10
cmp eax, ebx
jne 0x4310ab
mov eax, 0x476650
push dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x124]
push str._s_04x.mst
push eax
call fcn.0040faf5
mov ecx, dword [ebp - 0x11c]
add esp, 0x10
cmp ecx, ebx
jne 0x4310d2
mov ecx, 0x476650
mov eax, dword [ebp - 0x1bc]
cmp eax, ebx
jne 0x4310e1
mov eax, 0x476650
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x431129
lea eax, [ebp - 0x2ac]
push edi
push eax
lea ecx, [ebp - 0x124]
call fcn.00402dad
mov ecx, dword [eax]
mov byte [ebp - 4], 0x39
mov byte [eax + 4], 1
call fcn.00403dc2
push dword [eax]
lea ecx, [ebp - 0x3c]
call fcn.0040251f
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 0x32
call fcn.00402ebf
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x20]
jb 0x430f7c
lea eax, [ebp - 0x2a]
mov edi, 0x476628
push ebx
push eax
lea ecx, [ebp - 0x294]
mov dword [ebp - 0x294], edi
mov dword [ebp - 0x274], esi
call fcn.00403bf5
mov eax, dword [ebp + 0x10]
mov byte [ebp - 4], 0x3a
cmp eax, ebx
mov dword [ebp - 0x14c], edi
mov dword [ebp - 0x12c], esi
jne 0x431175
mov eax, 0x4947d8
lea ecx, [ebp + 0x13]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x14c]
call fcn.00403cfd
mov eax, dword [ebp - 0x144]
mov byte [ebp - 4], 0x3b
cmp eax, ebx
mov dword [ebp - 0x14], 0x476650
je 0x43119e
mov dword [ebp - 0x14], eax
mov eax, 0x497c70
mov dword [ebp - 0x68], edi
mov ecx, eax
mov dword [ebp - 0x48], esi
test ecx, ecx
jne 0x4311b4
mov eax, 0x4947d8
lea ecx, [ebp - 0x29]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.00403cfd
mov eax, dword [ebp - 0x60]
mov byte [ebp - 4], 0x3c
cmp eax, ebx
jne 0x4311d7
mov edi, 0x476650
mov dword [ebp - 0x18], edi
jmp 0x4311df
mov dword [ebp - 0x18], eax
mov edi, 0x476650
lea eax, [ebp - 0xd4]
lea ecx, [ebp - 0x214]
push eax
lea eax, [ebp - 0x268]
push eax
call fcn.0040fa6a
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x3d
cmp eax, ebx
mov esi, edi
je 0x431207
mov esi, eax
lea eax, [ebp - 0xac]
lea ecx, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x344]
push eax
call fcn.0040fa6a
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x3e
cmp eax, ebx
jne 0x43122d
mov eax, edi
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push esi
push eax
lea eax, [ebp - 0x294]
push str._s__q__s___tempdisk1folder__s___s
push eax
call fcn.0040faf5
add esp, 0x18
lea ecx, [ebp - 0x344]
mov byte [ebp - 4], 0x3d
call fcn.00402424
lea ecx, [ebp - 0x268]
mov byte [ebp - 4], 0x3c
call fcn.00402424
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x3b
call fcn.00402424
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x3a
call fcn.00402424
cmp byte [0x4943b8], bl
jne 0x431292
cmp byte [0x498ba8], bl
je 0x43130c
lea eax, [ebp + 0x13]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetup.cpp
lea ecx, [ebp - 0x14c]
call fcn.00401889
mov eax, str.Relaunching_setup_from_temp
mov byte [ebp - 4], 0x3f
mov ecx, eax
mov dword [ebp - 0x68], 0x4765e0
test ecx, ecx
mov dword [ebp - 0x48], 0x4765d8
jne 0x4312ca
mov eax, 0x4947d8
lea ecx, [ebp - 0x29]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.004011a9
lea eax, [ebp - 0x14c]
push 0x193
push eax
lea eax, [ebp - 0x68]
push eax
mov byte [ebp - 4], 0x40
call fcn.00465520
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x3f
call fcn.00401093
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x3a
call fcn.00401093
mov eax, dword [ebp - 0x28c]
cmp eax, ebx
jne 0x431318
mov eax, edi
push 1
push eax
call fcn.00435ecf
test eax, eax
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0x294]
je 0x431400
call fcn.00402424
lea ecx, [ebp - 0x174]
mov byte [ebp - 4], 0x26
call fcn.00402424
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 0x25
call fcn.00402424
lea ecx, [ebp - 0x1c4]
mov byte [ebp - 4], 0x24
call fcn.00402424
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x20
call fcn.004020df
lea ecx, [ebp - 0x214]
mov byte [ebp - 4], 0x1d
call fcn.00402424
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0x1c
call fcn.00402424
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0x15
call fcn.00402424
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0x14
call fcn.0040d3ca
lea ecx, [ebp - 0xfc]
mov byte [ebp - 4], 6
call fcn.00402424
lea ecx, [ebp - 0x19c]
mov byte [ebp - 4], 5
call fcn.00401093
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 2
call fcn.00408b39
lea ecx, [ebp - 0x1ec]
mov byte [ebp - 4], 1
call fcn.00402424
lea ecx, [ebp - 0x85c]
mov byte [ebp - 4], bl
call fcn.004318fb
call dword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
jmp 0x4315e6
call fcn.00402424
lea ecx, [ebp - 0x174]
mov byte [ebp - 4], 0x26
call fcn.00402424
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 0x25
call fcn.00402424
lea ecx, [ebp - 0x1c4]
mov byte [ebp - 4], 0x24
call fcn.00402424
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x20
call fcn.004020df
lea ecx, [ebp - 0x214]
mov byte [ebp - 4], 0x1d
call fcn.00402424
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0x1c
call fcn.00402424
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0x15
call fcn.00402424
call fcn.0043557c
lea ecx, [ebp - 0x224]
call fcn.00414e6a
cmp byte [ebp - 0x10], bl
mov byte [ebp - 4], 0x41
je 0x43148c
lea eax, [ebp - 0x19c]
jmp 0x4314c9
lea eax, [ebp + 0x13]
push ebx
push eax
push 0x4947d8
lea ecx, [ebp - 0xac]
mov dword [ebp - 0xac], 0x4765e0
mov dword [ebp - 0x8c], 0x4765d8
call fcn.004011a9
mov dword [ebp - 0x84], 1
lea eax, [ebp - 0xac]
mov byte [ebp - 4], 0x42
lea ecx, [ebp - 0x85c]
push ecx
sub esp, 0x28
mov ecx, esp
mov dword [ebp - 0x20], esp
push 1
push eax
call fcn.0040a9f0
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x224]
push dword [ebp - 0x30]
push dword [ebp - 0x40]
push dword [ebp + 8]
call fcn.00414eaf
test byte [ebp - 0x84], 1
mov dword [ebp - 4], 0x41
je 0x431512
lea ecx, [ebp - 0xac]
call fcn.00401093
lea ecx, [ebp - 0x224]
call fcn.004150e0
lea eax, [ebp + 0x13]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupSetup.cpp
lea ecx, [ebp - 0x268]
call fcn.00401889
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x43
cmp eax, ebx
jne 0x431543
mov eax, 0x4765fc
push dword [0x498470]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
mov dword [ebp - 0x20], 0x1b5
push str.Setup_returning__d
push eax
call fcn.0040a580
add esp, 0xc
lea ecx, [ebp - 0x268]
mov byte [ebp - 4], 0x41
call fcn.00401093
mov esi, dword [0x498470]
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x15
call fcn.00414e9a
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0x14
call fcn.0040d3ca
lea ecx, [ebp - 0xfc]
mov byte [ebp - 4], 6
call fcn.00402424
lea ecx, [ebp - 0x19c]
mov byte [ebp - 4], 5
call fcn.00401093
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 2
call fcn.00408b39
lea ecx, [ebp - 0x1ec]
mov byte [ebp - 4], 1
call fcn.00402424
lea ecx, [ebp - 0x85c]
mov byte [ebp - 4], bl
call fcn.004318fb
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, esi
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x10