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

Disassembly:
mov eax, 0x4729b3
call fcn.004549fc
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.0043d128
cmp eax, 6
jb 0x431056
call fcn.00430d01
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x85c]
push eax
mov dword [0x498778], eax
call fcn.0043261d
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 0x494ad8
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.00432a97
push 0x800
lea eax, [ebp - 0x85c]
push ebx
push 0x497f70
mov dword [0x498774], eax
call fcn.004550b0
add esp, 0xc
lea eax, [ebp - 0x40]
mov dword [0x498770], 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.0042768d
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.004333ea
cmp byte [ebp - 0x10], bl
je 0x431226
call fcn.00465a20
push ebx
call fcn.00465be0
cmp dword [ebp - 0x190], ebx
je 0x431226
lea eax, [ebp - 0xac]
lea ecx, [ebp - 0x19c]
push eax
call fcn.004333fb
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.00465a30
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xd4], 0x4765e0
cmp eax, ebx
mov dword [ebp - 0xb4], 0x4765d8
jne 0x431246
mov eax, 0x494ad8
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 0x43126f
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 0x431295
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 0x43142b
cmp byte [0x4946b8], bl
jne 0x431312
cmp byte [0x498ea8], bl
je 0x43139b
lea eax, [ebp + 0xb]
push 1
push eax
push str.C:Codebasesisdev_srcRuntimeMSISharedSetupSetup.cpp
lea ecx, [ebp - 0xac]
call fcn.00401889
mov eax, 0x48eb94
mov byte [ebp - 4], 0xa
mov ecx, eax
mov dword [ebp - 0xd4], 0x4765e0
test ecx, ecx
mov dword [ebp - 0xb4], 0x4765d8
jne 0x431350
mov eax, 0x494ad8
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.004659d0
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.00411498
pop ecx
push eax
lea ecx, [ebp - 0x26c]
mov byte [ebp - 4], 0xc
call fcn.00411365
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0xe
call fcn.00402424
lea ecx, [ebp - 0x26c]
call fcn.004115d2
test eax, eax
jne 0x4313de
mov esi, dword [0x498770]
jmp 0x431417
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 0x4313ff
mov eax, 0x494ad8
lea edx, [ebp + 0xb]
push ebx
push edx
push eax
call fcn.004011a9
lea ecx, [ebp - 0x26c]
call fcn.00411969
mov esi, eax
lea ecx, [ebp - 0x26c]
mov byte [ebp - 4], 6
call fcn.00411475
jmp 0x4325cc
cmp byte [ebp - 0x14], bl
je 0x431448
push ebx
push ebx
push ebx
push 0x48eb90
lea ecx, [ebp - 0x80]
call fcn.00408b7f
test al, al
je 0x43159a
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.0042768d
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.004333ea
cmp byte [ebp - 0xe], bl
je 0x43158b
cmp byte [0x4946b8], bl
jne 0x4314cb
cmp byte [0x498ea8], bl
je 0x431554
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 0x431509
mov eax, 0x494ad8
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.004659d0
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.004330d5
add esp, 0x2c
lea ecx, [ebp - 0x174]
mov esi, eax
mov byte [ebp - 4], 6
call fcn.00401093
jmp 0x4325cc
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 0x43178b
mov cx, word [eax]
cmp cx, 0x2d
je 0x4315b8
cmp cx, dx
jne 0x43162f
cmp word [eax + 2], 0x25
jne 0x43162f
add eax, 4
mov cx, word [eax]
inc eax
inc eax
cmp cx, dx
jne 0x4315c2
mov word [eax - 4], bx
mov ecx, dword [0x496ea0]
cmp ecx, ebx
jne 0x4315df
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.00436cfc
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 0x4323db
cmp cx, 0x2d
je 0x43163a
cmp cx, dx
jne 0x431699
mov dx, word [eax + 2]
cmp dx, 0x6b
je 0x43164a
cmp dx, 0x4b
jne 0x431696
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.00436ef5
jmp 0x4323db
push 0x2f
pop edx
cmp cx, 0x2d
je 0x4316a8
cmp cx, dx
jne 0x43178b
mov cx, word [eax + 2]
cmp cx, 0x67
je 0x4316bc
cmp cx, 0x47
jne 0x43178b
lea esi, [eax + 4]
mov ax, word [esi]
inc esi
inc esi
cmp ax, dx
jne 0x4316bf
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 0x43171d
cmp dx, 0x2f
jne 0x43173b
mov ax, word [ebp + eax*2 - 0x54e]
cmp ax, 0x73
je 0x431731
cmp ax, 0x53
jne 0x43173b
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.0043768d
add esp, 0xc
mov esi, eax
jmp 0x4325cc
cmp dword [ebp - 0x40], 1
mov dword [ebp - 0x1c], ebx
jbe 0x4317be
mov cx, word [eax]
cmp cx, 0x2d
je 0x4317a2
cmp cx, dx
jne 0x4317be
mov ax, word [eax + 2]
cmp ax, 0x71
je 0x4317b2
cmp ax, 0x51
jne 0x4317be
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.004337bc
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x240]
push eax
mov byte [ebp - 4], 0x15
call fcn.0043391d
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 0x431849
lea ecx, [ebp - 0x240]
call fcn.00433841
mov eax, dword [ebp - 0x230]
cmp eax, ebx
jne 0x43183d
mov eax, 0x494ad8
push eax
lea ecx, [ebp - 0xfc]
call fcn.00403d99
cmp dword [ebp - 0xf0], ebx
jne 0x431915
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 0x494ad8
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 0x494ad8
mov byte [ebp - 4], 0x18
call fcn.00402d75
lea eax, [ebp - 0xac]
push ebx
push eax
mov byte [ebp - 4], 0x15
call fcn.0043b83d
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 0x431941
mov eax, 0x476650
push eax
push 0x497f70
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 [0x498774]
call fcn.00432f24
cmp dword [ebp - 0x1c], ebx
je 0x43198c
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x43248b
cmp byte [ebp - 0x14], bl
jne 0x4319b4
mov eax, dword [ebp - 0x30]
push dword [eax]
call fcn.004368b6
test eax, eax
je 0x43248b
push dword [ebp + 0x10]
call fcn.00432f66
test al, al
pop ecx
je 0x43248b
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2d4], 0x476628
mov dword [ebp - 0x2b4], esi
mov eax, dword [eax]
cmp eax, ebx
jne 0x4319d2
mov eax, 0x494ad8
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 0x431a3e
mov eax, 0x494ad8
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 0x431b0c
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.0040faa8
lea eax, [ebp - 0xac]
lea ecx, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x124]
push eax
mov byte [ebp - 4], 0x25
call fcn.0040faa8
mov ecx, dword [ebp - 0x11c]
mov byte [ebp - 4], 0x26
cmp ecx, ebx
jne 0x431b61
mov ecx, 0x476650
mov eax, dword [ebp - 0x1bc]
cmp eax, ebx
jne 0x431b70
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 0x431bc6
mov eax, 0x494ad8
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.0040faa8
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 0x431c31
mov eax, 0x494ad8
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.0040faa8
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 0x431c93
mov ecx, 0x476650
mov eax, dword [ebp - 0x1bc]
cmp eax, ebx
jne 0x431ca2
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.0040faa8
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 0x431d52
mov eax, 0x494ad8
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.0040faa8
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 0x431db4
mov ecx, 0x476650
mov eax, dword [ebp - 0x1bc]
cmp eax, ebx
jne 0x431dc3
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.004376f2
add esp, 0x10
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x32
call fcn.00402ebf
cmp dword [ebp - 0x168], ebx
jne 0x431ea0
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.0040faa8
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.0040faa8
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 0x431f13
mov ecx, 0x476650
mov eax, dword [ebp - 0x1bc]
cmp eax, ebx
jne 0x431f22
mov eax, 0x476650
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x431f64
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.004376f2
push 0xa
lea eax, [ebp - 0x31c]
push ebx
push eax
call fcn.004558a3
add esp, 0x1c
cmp eax, ebx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], ebx
jbe 0x432158
push dword [ebp - 0x14]
lea eax, [ebp - 0x144]
push str.key_d
push eax
call fcn.004559aa
lea eax, [ebp - 0x60]
push 0x10
push eax
lea eax, [ebp - 0x144]
push eax
push str.Languages
call fcn.004376f2
push 0x10
lea eax, [ebp - 0x60]
push ebx
push eax
call fcn.004558a3
add esp, 0x28
cmp eax, ebx
mov dword [ebp - 0x18], eax
je 0x432149
mov eax, dword [ebp - 0x20c]
cmp eax, ebx
jne 0x431ff0
mov eax, 0x476650
push dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c4]
push str._s0x_04x.ini
push eax
call fcn.0040fb33
mov eax, dword [ebp - 0xf4]
add esp, 0x10
cmp eax, ebx
jne 0x432017
mov eax, 0x476650
push dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x124]
push str._s0x_04x.ini
push eax
call fcn.0040fb33
mov ecx, dword [ebp - 0x11c]
add esp, 0x10
cmp ecx, ebx
jne 0x43203e
mov ecx, 0x476650
mov eax, dword [ebp - 0x1bc]
cmp eax, ebx
jne 0x43204d
mov eax, 0x476650
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x432095
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 0x4320a4
mov eax, 0x476650
push dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c4]
push str._s_04x.mst
push eax
call fcn.0040fb33
mov eax, dword [ebp - 0xf4]
add esp, 0x10
cmp eax, ebx
jne 0x4320cb
mov eax, 0x476650
push dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x124]
push str._s_04x.mst
push eax
call fcn.0040fb33
mov ecx, dword [ebp - 0x11c]
add esp, 0x10
cmp ecx, ebx
jne 0x4320f2
mov ecx, 0x476650
mov eax, dword [ebp - 0x1bc]
cmp eax, ebx
jne 0x432101
mov eax, 0x476650
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x432149
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 0x431f9c
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 0x432195
mov eax, 0x494ad8
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 0x4321be
mov dword [ebp - 0x14], eax
mov eax, 0x497f70
mov dword [ebp - 0x68], edi
mov ecx, eax
mov dword [ebp - 0x48], esi
test ecx, ecx
jne 0x4321d4
mov eax, 0x494ad8
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 0x4321f7
mov edi, 0x476650
mov dword [ebp - 0x18], edi
jmp 0x4321ff
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.0040faa8
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x3d
cmp eax, ebx
mov esi, edi
je 0x432227
mov esi, eax
lea eax, [ebp - 0xac]
lea ecx, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x344]
push eax
call fcn.0040faa8
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x3e
cmp eax, ebx
jne 0x43224d
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.0040fb33
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 [0x4946b8], bl
jne 0x4322b2
cmp byte [0x498ea8], bl
je 0x43232c
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 0x4322ea
mov eax, 0x494ad8
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.004659d0
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 0x432338
mov eax, edi
push 1
push eax
call fcn.00436ef5
test eax, eax
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0x294]
je 0x432420
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.00432921
call dword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
jmp 0x43260c
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.004365a2
lea ecx, [ebp - 0x224]
call fcn.00414ea8
cmp byte [ebp - 0x10], bl
mov byte [ebp - 4], 0x41
je 0x4324ac
lea eax, [ebp - 0x19c]
jmp 0x4324e9
lea eax, [ebp + 0x13]
push ebx
push eax
push 0x494ad8
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.00414eed
test byte [ebp - 0x84], 1
mov esi, eax
mov dword [ebp - 4], 0x41
je 0x432534
lea ecx, [ebp - 0xac]
call fcn.00401093
cmp esi, ebx
je 0x432543
lea ecx, [ebp - 0x224]
call fcn.0041511e
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 0x432569
mov eax, 0x4765fc
push dword [0x498770]
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 [0x498770]
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x15
call fcn.00414ed8
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.00432921
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