Function at 0x404095
Capabilities:
Accept command line arguments
Check os version
Delete file
Delete registry value
Get common file path
Get file size
Hide graphical window
Persist via run registry key
Query environment variable
Query or enumerate registry value
Read .ini file
Set current directory
Set environment variable
Set registry value
Shutdown system
Terminate process

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0xfec
push ebx
push esi
push edi
push 4
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
xor edi, edi
mov dword [ebp + 0x2c], edi
mov dword [ebp + 0x20], edi
mov dword [ebp + 4], edi
mov dword [ebp + 0x28], edi
mov dword [ebp + 0x24], edi
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x4c], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x18], edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov esi, eax
mov al, byte [esi]
cmp al, 0x22
mov dword [ebp + 0x58], esi
jne 0x404103
jmp 0x4040e5
cmp al, 0x22
je 0x4040f3
inc esi
mov al, byte [esi]
test al, al
mov dword [ebp + 0x58], esi
jne 0x4040e1
cmp al, 0x22
jne 0x404107
inc esi
mov dword [ebp + 0x58], esi
jmp 0x404107
cmp al, 0x20
je 0x40410c
inc esi
mov al, byte [esi]
mov dword [ebp + 0x58], esi
test al, al
jne 0x4040f9
cmp byte [esi], 0x20
jne 0x404115
inc esi
cmp byte [esi], 0x20
je 0x40410c
mov dword [ebp + 0x58], esi
mov cl, byte [esi]
cmp cl, 0x2f
je 0x404136
mov eax, esi
jmp 0x404128
cmp cl, 0x3d
je 0x40412c
inc eax
mov cl, byte [eax]
test cl, cl
jne 0x404120
cmp byte [eax], 0
jne 0x404136
mov esi, eax
mov dword [ebp + 0x58], esi
push 5
push str._awm
push esi
call fcn.00402973
add esp, 0xc
test eax, eax
mov ebx, 0x409500
jne 0x4041c9
add esi, 5
mov al, byte [esi]
cmp al, 0x22
mov dword [ebp + 0x58], esi
mov edi, esi
jne 0x404198
inc esi
mov edi, esi
jmp 0x404167
cmp al, 0x22
je 0x404170
inc esi
mov al, byte [esi]
test al, al
mov dword [ebp + 0x58], esi
jne 0x404162
cmp esi, edi
je 0x40418d
mov eax, esi
sub eax, edi
inc eax
push eax
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov eax, 0x409501
sub eax, edi
mov byte [eax + esi], 0
cmp byte [esi], 0x22
jne 0x4041c7
inc esi
mov dword [ebp + 0x58], esi
jmp 0x4041c7
test al, al
je 0x4041c7
cmp al, 0x20
je 0x4041aa
inc esi
mov al, byte [esi]
test al, al
mov dword [ebp + 0x58], esi
jne 0x40419c
cmp esi, edi
je 0x4041c7
mov eax, esi
sub eax, edi
inc eax
push eax
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov eax, 0x409501
sub eax, edi
mov byte [eax + esi], 0
xor edi, edi
push esi
call fcn.00403432
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, 0x100
push esi
lea ecx, [ebp - 0x1b8]
push ecx
push eax
mov dword [0x409a10], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push edi
lea eax, [ebp - 0x1b8]
push eax
call dword [sym.imp.KERNEL32.dll__lopen]
cmp eax, edi
mov dword [0x40a010], eax
jge 0x404214
push edi
call fcn.00c91000
pop ecx
push edi
jmp 0x406a0b
call fcn.004028c7
push 0x10000
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
mov dword [0x40a018], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push dword [0x40a010]
mov dword [0x409d44], eax
call fcn.00402f2c
test eax, eax
pop ecx
jne 0x404207
lea eax, [ebp - 0x1b8]
push eax
lea eax, [ebp - 0xbe0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [ebp - 0xbe0], 0
je 0x4042f1
cmp dword [0x409a00], edi
jne 0x404293
cmp byte [0x409500], 0
je 0x404293
push ebx
push esi
lea eax, [ebp - 0xbe0]
push eax
push eax
push str.ModuleFileName
push str.Settings
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0xbe0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea esi, [ebp + eax - 0xbe0]
jmp 0x4042af
cmp byte [esi], 0x5c
je 0x4042be
dec esi
lea eax, [ebp - 0xbe0]
cmp esi, eax
ja 0x4042a9
cmp byte [esi], 0x5c
jne 0x4042d9
lea eax, [ebp - 0xbe0]
push eax
push str.WiseSourceDir
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
mov byte [esi], 0x5c
inc esi
jmp 0x4042ee
lea eax, [ebp - 0xbe0]
push eax
push str.WiseSourceDir
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
mov byte [esi], 0
mov esi, dword [sym.imp.KERNEL32.dll__lread]
lea eax, [ebp - 0xe74]
mov dword [0x40a008], eax
xor eax, eax
cmp dword [0x409a00], eax
mov ebx, 0x409a20
mov edi, str.WiseInstaller
je 0x404689
and dword [ebp + 0xc], eax
push 0x48
push 0x409da0
push dword [0x40a010]
call esi
push 1
push 0x40a004
push dword [0x40a010]
call esi
push 5
mov edi, 0x409d60
push edi
push dword [0x40a010]
call esi
movzx eax, byte [0x409d60]
push eax
lea eax, [ebp - 0x1b8]
push eax
push dword [0x40a010]
call esi
movzx eax, byte [0x409d61]
push eax
lea eax, [ebp - 0x80]
push eax
push dword [0x40a010]
call esi
movzx eax, byte [0x409d62]
push eax
lea eax, [ebp - 0xae0]
push eax
push dword [0x40a010]
call esi
movzx eax, byte [0x409d63]
push eax
lea eax, [ebp - 0xd74]
push eax
push dword [0x40a010]
call esi
movzx eax, byte [0x409d64]
push eax
lea eax, [ebp - 0x55c]
push eax
push dword [0x40a010]
call esi
push 0x407e70
lea eax, [ebp - 0x55c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x4043d8
mov dword [ebp + 0xc], 1
push 0x15
push edi
push dword [0x40a010]
call esi
lea eax, [ebp - 0x4dc]
mov dword [0x409d80], eax
movzx eax, byte [0x409d62]
push eax
push dword [0x40a008]
push dword [0x40a010]
call esi
movzx eax, byte [0x409d63]
push eax
lea eax, [ebp - 0xf74]
push eax
push dword [0x40a010]
call esi
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
push 1
push 0
push dword [0x40a010]
call edi
mov dword [0x409d88], eax
movzx eax, byte [0x409d64]
push eax
push ebx
push dword [0x40a010]
call esi
movzx eax, byte [0x409d65]
push eax
push ebx
push dword [0x40a010]
call esi
movzx eax, byte [0x409d66]
push eax
push ebx
push dword [0x40a010]
call esi
movzx eax, byte [0x409d67]
push eax
push ebx
push dword [0x40a010]
call esi
movzx eax, byte [0x409d68]
push eax
push ebx
push dword [0x40a010]
call esi
movzx eax, byte [0x409d69]
push eax
push ebx
push dword [0x40a010]
call esi
movzx eax, byte [0x409d6a]
push eax
push ebx
push dword [0x40a010]
call esi
movzx eax, byte [0x409d73]
push eax
push ebx
push dword [0x40a010]
call esi
push 1
push 0
push dword [0x40a010]
call edi
mov dword [ebp + 0x38], eax
movzx eax, byte [0x409d6b]
push eax
push ebx
push dword [0x40a010]
mov dword [ebp + 0x30], eax
call esi
push 1
push 0
push dword [0x40a010]
call edi
mov dword [ebp - 0x90], eax
movzx eax, byte [0x409d6c]
mov dword [ebp + 0x18], eax
push eax
push ebx
push dword [0x40a010]
call esi
push 4
lea eax, [ebp + 0x1c]
push eax
push dword [0x40a010]
call esi
push 1
push 0
push dword [0x40a010]
call edi
mov dword [ebp - 0x84], eax
movzx eax, byte [0x409d6d]
push eax
push ebx
push dword [0x40a010]
mov dword [ebp + 0x14], eax
call esi
push 4
lea eax, [ebp + 0x24]
push eax
push dword [0x40a010]
call esi
push 1
push 0
push dword [0x40a010]
call edi
mov dword [ebp - 0x98], eax
movzx eax, byte [0x409d74]
push eax
push ebx
push dword [0x40a010]
mov dword [ebp + 8], eax
call esi
push 4
lea eax, [ebp + 0x28]
push eax
push dword [0x40a010]
call esi
push 1
push 0
push dword [0x40a010]
call edi
mov dword [ebp - 0x8c], eax
movzx eax, byte [0x409d6e]
push eax
push ebx
push dword [0x40a010]
mov dword [ebp + 0x4c], eax
call esi
push 4
lea eax, [ebp + 4]
push eax
push dword [0x40a010]
call esi
push 1
push 0
push dword [0x40a010]
call edi
mov dword [ebp - 0x88], eax
movzx eax, byte [0x409d71]
push eax
push ebx
push dword [0x40a010]
mov dword [ebp + 0x10], eax
call esi
push 4
lea eax, [ebp + 0x20]
push eax
push dword [0x40a010]
call esi
cmp byte [0x409d72], 0
jne 0x404661
movzx eax, byte [0x409d6f]
push eax
push ebx
push dword [0x40a010]
call esi
movzx eax, byte [0x409d70]
push eax
push ebx
push dword [0x40a010]
call esi
mov eax, dword [0x409dac]
test eax, eax
je 0x404621
and eax, 0xffff0000
cmp eax, 0x20000
jl 0x404636
mov eax, dword [0x409de0]
test eax, eax
je 0x40463d
and eax, 0xffff0000
cmp eax, 0x20000
jge 0x40463d
mov byte [0x40a004], 0
cmp dword [0x409c2c], 0
je 0x404fd1
mov eax, dword [0x409a08]
test eax, eax
je 0x40465a
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push 0
jmp 0x406a0b
push 0
push sym.STUB32.EXE__LanguageDlg_16
push 0
push 0x6f
push dword [0x409a10]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
cmp eax, 2
jne 0x40460c
mov dword [0x409c2c], 1
jmp 0x40460c
cmp byte [ebp - 0x1b8], 0
mov dword [ebp + 0xc], eax
mov dword [0x409dcc], eax
mov dword [0x409dc8], eax
mov dword [0x409dc4], eax
mov dword [0x409db4], eax
mov dword [0x409db0], eax
mov dword [0x409dac], eax
mov dword [0x409da4], eax
mov byte [0x409d60], 0
mov byte [0x409d61], 8
mov byte [ebp - 0xf74], 0
mov byte [ebp - 0xe72], 0
mov byte [ebp - 0xe73], 0
mov byte [ebp - 0xe74], 0
je 0x404621
lea eax, [ebp - 0x1b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + eax - 0x1b8]
jmp 0x404702
cmp byte [eax], 0x2e
je 0x404715
dec eax
lea ecx, [ebp - 0x1b8]
cmp eax, ecx
ja 0x4046fc
cmp byte [eax], 0x2e
jne 0x40460c
push str..ini
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [0x409500], 0
je 0x40474c
push 0x409500
push 0x100
lea eax, [ebp - 0x1b8]
push eax
push eax
push str.ExeINIFilePath
push str.Settings
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.Runtime9XVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x80]
push eax
call fcn.00402fda
shl eax, 0x10
mov dword [0x409dac], eax
lea eax, [ebp - 0x80]
mov dword [ebp + 0x74], eax
mov al, byte [ebp - 0x80]
pop ecx
jmp 0x404796
cmp al, 0x2e
je 0x4047a2
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x40478a
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x4047a5
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fda
or dword [0x409dac], eax
pop ecx
jmp 0x4047bd
cmp al, 0x2e
je 0x4047ce
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x4047b6
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x4047d1
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fda
shl eax, 0x10
pop ecx
mov dword [0x409db0], eax
jmp 0x4047eb
cmp al, 0x2e
je 0x4047fc
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x4047e4
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x4047ff
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fda
or dword [0x409db0], eax
pop ecx
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.RuntimeNTVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x80]
push eax
call fcn.00402fda
shl eax, 0x10
mov dword [0x409de0], eax
lea eax, [ebp - 0x80]
mov dword [ebp + 0x74], eax
mov al, byte [ebp - 0x80]
pop ecx
jmp 0x404858
cmp al, 0x2e
je 0x404864
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x40484c
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404867
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fda
or dword [0x409de0], eax
pop ecx
jmp 0x40487f
cmp al, 0x2e
je 0x404890
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404878
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404893
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fda
shl eax, 0x10
pop ecx
mov dword [0x409de4], eax
jmp 0x4048ad
cmp al, 0x2e
je 0x4048be
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x4048a6
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x4048c1
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fda
or dword [0x409de4], eax
pop ecx
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.Runtime2KVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x80]
push eax
call fcn.00402fda
shl eax, 0x10
mov dword [0x409dc8], eax
lea eax, [ebp - 0x80]
mov dword [ebp + 0x74], eax
mov al, byte [ebp - 0x80]
pop ecx
jmp 0x40491a
cmp al, 0x2e
je 0x404926
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x40490e
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404929
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fda
or dword [0x409dc8], eax
pop ecx
jmp 0x404941
cmp al, 0x2e
je 0x404952
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x40493a
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404955
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fda
shl eax, 0x10
pop ecx
mov dword [0x409dcc], eax
jmp 0x40496f
cmp al, 0x2e
je 0x404980
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404968
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404983
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fda
or dword [0x409dcc], eax
pop ecx
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.RuntimeDotNetVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x80]
push eax
call fcn.00402fda
shl eax, 0x10
mov dword [0x409dd4], eax
lea eax, [ebp - 0x80]
mov dword [ebp + 0x74], eax
mov al, byte [ebp - 0x80]
pop ecx
jmp 0x4049dc
cmp al, 0x2e
je 0x4049e8
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x4049d0
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x4049eb
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fda
or dword [0x409dd4], eax
pop ecx
jmp 0x404a03
cmp al, 0x2e
je 0x404a14
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x4049fc
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404a17
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fda
shl eax, 0x10
pop ecx
mov dword [0x409dd8], eax
jmp 0x404a31
cmp al, 0x2e
je 0x404a42
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404a2a
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404a45
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fda
or dword [0x409dd8], eax
pop ecx
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.RuntimeDotNetUpdateVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x80]
push eax
call fcn.00402fda
shl eax, 0x10
mov dword [0x409dbc], eax
lea eax, [ebp - 0x80]
mov dword [ebp + 0x74], eax
mov al, byte [ebp - 0x80]
pop ecx
jmp 0x404a9e
cmp al, 0x2e
je 0x404aaa
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404a92
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404aad
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fda
or dword [0x409dbc], eax
pop ecx
jmp 0x404ac5
cmp al, 0x2e
je 0x404ad6
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404abe
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404ad9
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fda
shl eax, 0x10
pop ecx
mov dword [0x409dc0], eax
jmp 0x404af3
cmp al, 0x2e
je 0x404b04
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404aec
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404b07
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fda
or dword [0x409dc0], eax
pop ecx
lea eax, [ebp - 0x1b8]
push eax
push 0x100
push dword [0x40a008]
push str.MS_Sans_Serif
push str.CharFont
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x1b8]
push eax
push 0
push str.CharSet
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov byte [0x409d60], al
lea eax, [ebp - 0x1b8]
push eax
push 8
push str.CharSize
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov byte [0x409d61], al
lea eax, [ebp - 0x1b8]
push eax
push 0
push str.WiseInitLangAlwaysPrompt
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
je 0x404b8d
or byte [0x409d61], 0x80
push dword [0x40a008]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [0x40a008]
lea eax, [eax + ecx + 1]
mov dword [ebp + 0x74], eax
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.ProductName
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x80]
push eax
push dword [ebp + 0x74]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [ebp + 0x74]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp + 0x74]
lea eax, [ecx + eax + 1]
mov dword [ebp + 0x74], eax
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push str.Initializing
push str.WiseInitPrefix
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x80], 0
je 0x404c2e
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [ebp + eax - 0x80], 0x20
je 0x404c2e
push 0x407d74
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x80]
push eax
push dword [ebp + 0x74]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [ebp + 0x74]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add dword [ebp + 0x74], eax
push str.Wise_Installation
push dword [ebp + 0x74]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [ebp + 0x74]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add dword [ebp + 0x74], eax
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push str._Wizard...
push str.WiseInitSuffix
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x80], 0x5e
jne 0x404c8c
mov byte [ebp - 0x80], 0x20
lea eax, [ebp - 0x80]
push eax
push dword [ebp + 0x74]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.Runtime9X
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x80], 0
je 0x404cce
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.RuntimeSize9X
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x80], 0
je 0x404d07
lea eax, [ebp - 0x80]
push eax
call fcn.00402fda
pop ecx
mov dword [ebp + 0x1c], eax
mov dword [0x409db4], eax
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.RuntimeNT
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x80], 0
je 0x404d3c
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov dword [ebp + 0x14], eax
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.RuntimeSizeNT
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x80], 0
je 0x404d75
lea eax, [ebp - 0x80]
push eax
call fcn.00402fda
pop ecx
mov dword [ebp + 0x24], eax
mov dword [0x409da4], eax
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.Runtime2K
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x80], 0
je 0x404daa
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov dword [ebp + 8], eax
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.RuntimeSize2K
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x80], 0
je 0x404de3
lea eax, [ebp - 0x80]
push eax
call fcn.00402fda
pop ecx
mov dword [ebp + 0x28], eax
mov dword [0x409dc4], eax
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.RuntimeDotNet
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x80], 0
je 0x404e18
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov dword [ebp + 0x4c], eax
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.RuntimeSizeDotNet
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x80], 0
je 0x404e51
lea eax, [ebp - 0x80]
push eax
call fcn.00402fda
pop ecx
mov dword [ebp + 4], eax
mov dword [0x409dd0], eax
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.RuntimeDotNetUpdate
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x80], 0
je 0x404e86
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov dword [ebp + 0x10], eax
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.RuntimeSizeDotNetUpdate
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x80], 0
je 0x404ebf
lea eax, [ebp - 0x80]
push eax
call fcn.00402fda
pop ecx
mov dword [ebp + 0x20], eax
mov dword [0x409ddc], eax
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.CmdLine
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x80]
push eax
call fcn.00403432
pop ecx
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x80]
push eax
push 0x407475
push str.ProductCode
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0xae0]
push eax
push 0x407475
push str.ProductVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0xd74]
push eax
push 0x407475
push str.TransformMSI
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x1b8]
push eax
push 0
push str.Remove_Previous
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp eax, 1
jne 0x404f70
mov dword [ebp + 0xc], eax
lea eax, [ebp - 0x1b8]
push eax
push 0
push str.DelayReboot
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp byte [ebp - 0x80], 0
mov byte [0x40a004], al
je 0x40465a
cmp byte [ebp - 0xae0], 0
je 0x40465a
lea eax, [ebp - 0x1b8]
push eax
push 0x100
push ebx
push 0x407475
push str.Language1
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [0x409a20], 0
je 0x40460c
jmp 0x404661
cmp byte [ebp - 0x80], 0
je 0x40500d
lea eax, [ebp + 0x70]
push eax
push 0x2001b
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionRun
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40500d
push str.WiseStubReboot
push dword [ebp + 0x70]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
push dword [ebp + 0x70]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call fcn.00402d4f
cmp dword [0x409a00], 0
je 0x405067
cmp dword [0x409da8], 0
je 0x405067
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
push 1
push 0
push dword [0x40a010]
call edi
push 2
push 0
push dword [0x40a010]
mov dword [ebp + 0x40], eax
call edi
push 0
push dword [ebp + 0x40]
mov dword [ebp + 0x70], eax
push dword [0x40a010]
call edi
mov eax, dword [ebp + 0x70]
cmp eax, dword [0x409da8]
je 0x40506d
push 0
jmp 0x405cd7
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
lea eax, [ebp - 0xc74]
push eax
mov dword [ebp - 0xc74], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
xor eax, eax
cmp dword [ebp - 0xc64], 2
push 0x100
sete al
cmp dword [ebp - 0xc70], 5
push ebx
mov dword [ebp + 0x70], eax
sbb eax, eax
inc eax
mov dword [ebp - 0x94], eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, ebx
dec ecx
cmp byte [eax + ecx], 0x5c
je 0x4050cb
push 0x407794
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push str.MSI.DLL
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x34]
push eax
push ebx
call fcn.00402dca
add esp, 0xc
cmp dword [ebp + 0x70], 0
je 0x4051cc
lea eax, [ebp + 0x6c]
push eax
push 0x2001b
push 0
push str.SYSTEMCurrentControlSetControlSession_ManagerEnvironment
push closesocket
mov dword [ebp + 0x50], 1
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4051cc
lea ecx, [ebp + 0x5c]
push ecx
push eax
lea ecx, [ebp + 0x54]
push ecx
push eax
lea ecx, [ebp + 0x48]
push ecx
lea ecx, [ebp - 0xa60]
push ecx
mov dword [ebp + 0x48], 0x400
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x64], eax
push eax
jmp 0x405175
cmp dword [ebp + 0x54], 2
jne 0x40514d
cmp dword [ebp + 0x5c], 1
jbe 0x405184
inc dword [ebp + 0x64]
mov eax, 0x400
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x48], eax
lea eax, [ebp + 0x5c]
push eax
push 0
lea eax, [ebp + 0x54]
push eax
push 0
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp - 0xa60]
push eax
push dword [ebp + 0x64]
push dword [ebp + 0x6c]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
je 0x405141
jmp 0x4051b9
lea eax, [ebp - 0xa60]
push eax
push dword [ebp + 0x6c]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
test eax, eax
jne 0x4051b9
push 1
push 0x407475
push 1
push eax
lea eax, [ebp - 0xa60]
push eax
push dword [ebp + 0x6c]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x4051b9
and dword [ebp + 0x50], eax
push dword [ebp + 0x6c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp + 0x50], 0
je 0x4050f2
cmp dword [0x409a00], 0
je 0x4051e4
push 1
push 0
push dword [0x40a010]
call edi
mov dword [ebp + 0x40], eax
and dword [ebp + 0x60], 0
xor eax, eax
push 0x3f
pop ecx
mov byte [ebp - 0x2b8], 0
lea edi, [ebp - 0x2b7]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
push 0x3f
mov byte [ebp - 0x3dc], 0
pop ecx
lea edi, [ebp - 0x3db]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
cmp dword [0x409a00], eax
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x6c], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x68], eax
je 0x405247
push eax
push dword [ebp + 0x40]
push dword [0x40a010]
call dword [sym.imp.KERNEL32.dll__llseek]
xor eax, eax
cmp dword [ebp + 0x60], eax
jne 0x405275
push dword [0x409dd8]
push dword [0x409dd4]
call fcn.004034e3
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
mov dword [ebp + 0x44], eax
je 0x405bb5
mov edi, dword [ebp + 4]
jmp 0x4053ae
cmp dword [ebp + 0x60], 1
jne 0x4052a4
push dword [0x409dc0]
push dword [0x409dbc]
call fcn.004034e3
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
mov dword [ebp + 0x44], eax
je 0x405bb5
mov edi, dword [ebp + 0x20]
jmp 0x4053ae
cmp dword [ebp + 0x60], 2
jne 0x405bb5
cmp dword [ebp - 0x94], 0
je 0x405300
xor ecx, ecx
inc ecx
cmp dword [0x409dc4], ecx
jg 0x4052c7
cmp dword [ebp + 8], ecx
jle 0x405300
mov eax, dword [0x409dc8]
test eax, eax
jne 0x4052d8
cmp dword [0x409dcc], eax
je 0x4052f5
cmp dword [ebp + 0x34], eax
jb 0x4052f5
jne 0x405300
mov edx, dword [0x409dcc]
mov edi, dword [ebp + 0x3c]
mov eax, 0xffff0000
and edx, eax
and edi, eax
cmp edi, edx
jae 0x405300
mov edi, dword [ebp + 0x28]
mov dword [ebp + 0x5c], ecx
jmp 0x4053ae
cmp dword [ebp + 0x70], 0
je 0x40535b
cmp dword [0x409da4], 1
jg 0x405319
cmp dword [ebp + 0x14], 1
jle 0x405bb5
mov eax, dword [0x409de0]
test eax, eax
jne 0x40532a
cmp dword [0x409de4], eax
je 0x40534f
cmp dword [ebp + 0x34], eax
jb 0x40534f
jne 0x405bb5
mov ecx, dword [0x409de4]
mov edx, dword [ebp + 0x3c]
mov eax, 0xffff0000
and ecx, eax
and edx, eax
cmp edx, ecx
jae 0x405bb5
mov edi, dword [ebp + 0x24]
mov dword [ebp + 0x64], 1
jmp 0x4053ae
cmp dword [0x409db4], 1
jg 0x40536e
cmp dword [ebp + 0x18], 1
jle 0x405bb5
mov eax, dword [0x409dac]
test eax, eax
jne 0x40537f
cmp dword [0x409db0], eax
je 0x4053a4
cmp dword [ebp + 0x34], eax
jb 0x4053a4
jne 0x405bb5
mov ecx, dword [0x409db0]
mov edx, dword [ebp + 0x3c]
mov eax, 0xffff0000
and ecx, eax
and edx, eax
cmp edx, ecx
jae 0x405bb5
mov edi, dword [ebp + 0x1c]
mov dword [ebp + 0x54], 1
xor eax, eax
cmp dword [0x409a00], eax
jne 0x4054d4
cmp dword [ebp + 0x60], eax
jne 0x4053f1
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x2b8]
push eax
push 0x407475
push str.RuntimeDotNet
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edi, dword [ebp + 4]
jmp 0x4055a9
cmp dword [ebp + 0x60], 1
jne 0x405427
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x2b8]
push eax
push 0x407475
push str.RuntimeDotNetUpdate
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edi, dword [ebp + 0x20]
jmp 0x4055a9
cmp dword [ebp + 0x60], 2
jne 0x4055a9
cmp dword [ebp + 0x5c], eax
je 0x405466
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x2b8]
push eax
push 0x407475
push str.Runtime2K
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edi, dword [ebp + 0x28]
jmp 0x4055a9
cmp dword [ebp + 0x64], eax
je 0x40549b
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x2b8]
push eax
push 0x407475
push str.RuntimeNT
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edi, dword [ebp + 0x24]
jmp 0x4055a9
cmp dword [ebp + 0x54], eax
je 0x4055a9
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x2b8]
push eax
push 0x407475
push str.Runtime9X
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edi, dword [ebp + 0x1c]
jmp 0x4055a9
cmp dword [ebp + 0x60], eax
jne 0x405506
mov eax, dword [ebp - 0x8c]
mov ecx, dword [0x409db4]
mov edi, dword [0x409dd0]
mov dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x4c]
mov dword [ebp + 0x6c], eax
mov eax, dword [0x409da4]
add eax, ecx
add eax, dword [0x409dc4]
jmp 0x4055a6
cmp dword [ebp + 0x60], 1
jne 0x40553c
mov eax, dword [ebp - 0x88]
mov ecx, dword [0x409da4]
mov edi, dword [0x409ddc]
mov dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x6c], eax
mov eax, dword [0x409dd0]
add eax, ecx
add eax, dword [0x409db4]
add eax, dword [0x409dc4]
jmp 0x4055a6
cmp dword [ebp + 0x60], 2
jne 0x4055a9
cmp dword [ebp + 0x5c], eax
je 0x40556b
mov eax, dword [ebp - 0x98]
mov ecx, dword [0x409db4]
mov edi, dword [0x409dc4]
mov dword [ebp + 0x50], eax
mov eax, dword [ebp + 8]
mov dword [ebp + 0x6c], eax
mov eax, dword [0x409da4]
add eax, ecx
jmp 0x4055a6
cmp dword [ebp + 0x64], eax
je 0x40558c
mov eax, dword [ebp - 0x84]
mov edi, dword [0x409da4]
mov dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x6c], eax
mov eax, dword [0x409db4]
jmp 0x4055a6
cmp dword [ebp + 0x54], eax
je 0x4055a9
mov ecx, dword [ebp - 0x90]
mov edi, dword [0x409db4]
mov dword [ebp + 0x50], ecx
mov ecx, dword [ebp + 0x18]
mov dword [ebp + 0x6c], ecx
mov dword [ebp + 0x68], eax
xor eax, eax
cmp edi, 1
setle al
cmp dword [0x409a00], 0
mov dword [ebp + 0x48], eax
je 0x405675
test eax, eax
jne 0x40562e
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp - 0x2b8]
push eax
call fcn.00403643
pop ecx
pop ecx
push 1
push 0
push dword [0x40a010]
call dword [sym.imp.KERNEL32.dll__llseek]
push 1
push dword [ebp + 0x68]
mov dword [ebp + 0x6c], eax
push dword [0x40a010]
call dword [sym.imp.KERNEL32.dll__llseek]
push 0
push edi
push dword [ebp + 0x74]
call fcn.00403f8c
add esp, 0xc
test eax, eax
push dword [ebp + 0x74]
jne 0x405c89
call dword [sym.imp.KERNEL32.dll__lclose]
cmp dword [0x409c2c], 0
jne 0x405ce2
push 0
push dword [ebp + 0x6c]
jmp 0x405669
push 1
push 0
push dword [0x40a010]
call dword [sym.imp.KERNEL32.dll__llseek]
push 0
push dword [ebp + 0x50]
mov dword [ebp + 0x68], eax
push dword [0x40a010]
call dword [sym.imp.KERNEL32.dll__llseek]
push dword [ebp + 0x6c]
lea eax, [ebp - 0x2b8]
push eax
push dword [0x40a010]
call esi
push 0
push dword [ebp + 0x68]
push dword [0x40a010]
call dword [sym.imp.KERNEL32.dll__llseek]
cmp byte [ebp - 0x2b8], 0
je 0x405bb5
cmp dword [ebp + 0x48], 0
je 0x4057c9
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp - 0x3dc]
push eax
call fcn.00403643
pop ecx
pop ecx
push dword [ebp + 0x74]
call dword [sym.imp.KERNEL32.dll__lclose]
call fcn.00403e5d
push 0
push 0xfa
push 0x4d2
push dword [0x40a014]
call dword [sym.imp.USER32.dll_SetTimer]
call fcn.00402e76
lea eax, [ebp - 0x65c]
push eax
push 0
push 0
push edi
push edi
push 0x409d78
push dword [0x40a014]
lea eax, [ebp - 0x3dc]
push eax
lea eax, [ebp - 0x2b8]
push eax
push 0x409c2c
mov byte [ebp - 0x65c], 0
mov dword [0x409c28], edi
call sym.STUB32.EXE__t1_40
mov dword [ebp + 0x6c], eax
mov eax, dword [0x409d78]
cmp eax, dword [0x409c28]
jne 0x405752
xor eax, eax
push eax
push eax
push 3
push eax
push 1
mov dword [0x409d78], eax
push closesocket
lea eax, [ebp - 0x3dc]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x405752
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push edi
mov dword [0x409d78], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor edi, edi
cmp dword [0x409c2c], edi
jne 0x405761
cmp dword [ebp + 0x6c], edi
jge 0x4057dd
lea eax, [ebp - 0x3dc]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [0x409c2c], edi
jne 0x40420e
push 6
push str.Internet
lea eax, [ebp - 0x1b8]
push eax
lea eax, [ebp - 0x3dc]
push 0xa
push eax
call fcn.00403017
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
add esp, 0x14
push 0x407d74
lea eax, [ebp - 0x3dc]
push eax
call esi
lea eax, [ebp - 0x65c]
push eax
lea eax, [ebp - 0x3dc]
push eax
call esi
lea eax, [ebp - 0x3dc]
push eax
jmp 0x404208
lea eax, [ebp - 0x2b8]
push eax
lea eax, [ebp - 0x3dc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [ebp - 0x3dc], 0
je 0x405bb5
xor edi, edi
cmp dword [ebp + 0x70], edi
je 0x40580d
push 0xe0000000
push edi
push edi
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
cmp eax, edi
je 0x405cf4
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp dword [ebp + 0x44], edi
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x68], str._q__r:n
je 0x405859
mov eax, 0xffff
test dword [0x409db0], eax
je 0x405852
mov ecx, dword [0x409dac]
and ecx, eax
cmp ecx, 1
je 0x405852
cmp dword [ebp + 0x60], edi
jne 0x405849
cmp dword [0x409db4], edi
jne 0x405852
cmp dword [ebp + 0x10], 1
jg 0x405852
mov dword [ebp + 0x68], str._q:a
jmp 0x405859
mov dword [ebp + 0x68], str._q:a__c:_Install__q_
cmp byte [0x40a004], 0
je 0x40586e
cmp dword [ebp + 0x44], edi
jne 0x40586e
mov dword [ebp + 0x68], str._c:_msiinst__delayrebootq_
cmp dword [0x409a00], edi
jne 0x405903
cmp dword [ebp + 0x44], edi
jne 0x405903
lea eax, [ebp - 0x1b8]
push eax
push 0x80
lea eax, [ebp - 0x55c]
push eax
push str._q__r:n
push str.InstMsi_CmdLine
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
lea eax, [ebp - 0x55c]
push eax
push dword [ebp + 0x68]
call edi
test eax, eax
je 0x4058c8
mov dword [ebp + 0x6c], 1
cmp byte [0x40a004], 0
je 0x4058f8
push str._q__r:n
lea eax, [ebp - 0x55c]
push eax
call edi
test eax, eax
jne 0x4058f8
and dword [ebp + 0x6c], eax
push str._c:_msiinst__delayrebootq_
lea eax, [ebp - 0x55c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x55c]
mov dword [ebp + 0x68], eax
xor edi, edi
cmp dword [ebp + 0x5c], edi
je 0x405923
push str.__quiet__norestart
lea eax, [ebp - 0x55c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x55c]
mov dword [ebp + 0x68], eax
call fcn.00403903
cmp dword [ebp + 0x44], edi
mov dword [ebp], eax
je 0x40598e
call fcn.00403e5d
mov eax, dword [0x40a014]
cmp eax, edi
je 0x40598e
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push 0x3ef
push eax
call edi
test eax, eax
je 0x405959
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x70
push dword [0x40a014]
call edi
test eax, eax
je 0x405970
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 2
push dword [0x40a014]
call edi
test eax, eax
je 0x405987
push 0
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
call fcn.00403333
xor edi, edi
cmp dword [ebp + 0x48], edi
je 0x405ad5
xor eax, eax
push 7
mov byte [ebp - 0xb8], 0
pop ecx
lea edi, [ebp - 0xb7]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
cmp dword [ebp + 0x54], eax
jne 0x405a12
cmp dword [ebp + 0x64], eax
jne 0x405a12
cmp dword [ebp + 0x5c], eax
jne 0x405a12
cmp dword [ebp + 0x44], eax
je 0x405ad5
and dword [ebp + 0x54], eax
and dword [ebp + 0x64], eax
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x3dc]
push eax
call fcn.00402b65
lea eax, [ebp + 0x64]
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.004036be
push dword [ebp + 0x64]
push dword [ebp + 0x54]
call fcn.004034e3
add esp, 0x1c
test eax, eax
je 0x405ad5
xor edi, edi
jmp 0x405b22
push 7
xor eax, eax
pop ecx
mov byte [ebp - 0x2dc], 0
lea edi, [ebp - 0x2db]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x5c], eax
push 0x104
lea eax, [ebp - 0x764]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push str.msi.dll
lea eax, [ebp - 0x764]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x764]
push eax
call fcn.00402b65
lea eax, [ebp - 0x2dc]
push eax
lea eax, [ebp - 0x3dc]
push eax
call fcn.00402b65
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.004036be
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x64]
push eax
lea eax, [ebp - 0x2dc]
push eax
call fcn.004036be
mov eax, dword [ebp + 0x54]
add esp, 0x28
test eax, eax
je 0x405ad5
cmp eax, dword [ebp + 0x64]
ja 0x405a0b
jne 0x405ad5
mov ecx, dword [ebp + 0x5c]
mov edx, dword [ebp + 0x50]
mov eax, 0xffff0000
and ecx, eax
and edx, eax
cmp edx, ecx
jae 0x405a0b
lea eax, [ebp - 0x80]
push eax
push 1
push dword [ebp + 0x68]
lea eax, [ebp - 0x3dc]
push eax
call fcn.00403739
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x405afe
call fcn.00403903
cmp dword [ebp], eax
je 0x405afe
inc edi
cmp dword [ebp + 0x44], 0
je 0x405b16
cmp edi, 0x661
jne 0x405b16
cmp dword [ebp + 0x60], 0
je 0x405d38
cmp edi, 0x800401fa
je 0x405d5c
cmp dword [ebp + 0x48], 0
jne 0x405b31
cmp dword [0x409a00], 0
je 0x405b3e
lea eax, [ebp - 0x3dc]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
call fcn.00402e76
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00402e76
test edi, edi
je 0x405bb5
cmp dword [ebp + 0x6c], 0
jne 0x405bb5
cmp byte [0x40a004], 0
jne 0x405bae
push 4
push str.Reboot
lea eax, [ebp - 0x1b8]
push eax
lea eax, [ebp - 0x3dc]
push 9
push eax
call fcn.00403017
mov eax, dword [0x40a008]
add esp, 0x14
jmp 0x405b8d
inc eax
cmp byte [eax], 0
jne 0x405b8c
push 4
inc eax
push eax
lea eax, [ebp - 0x3dc]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x405da5
mov dword [ebp + 0x2c], 1
inc dword [ebp + 0x60]
cmp dword [ebp + 0x60], 3
jl 0x4051e8
cmp dword [0x409a00], 0
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
je 0x405c08
push 0
push dword [ebp + 0x40]
push dword [0x40a010]
call edi
mov eax, dword [0x409dd0]
mov ecx, dword [0x409ddc]
add ecx, eax
add ecx, dword [0x409da4]
push 1
add ecx, dword [0x409db4]
add ecx, dword [0x409dc4]
push ecx
push dword [0x40a010]
call edi
cmp byte [0x409de8], 0
jne 0x4069cc
cmp dword [0x409d84], 0
jne 0x4069e2
cmp dword [0x409a00], 0
je 0x405e10
cmp byte [0x409d63], 1
jbe 0x405e10
push 0
push sym.STUB32.EXE__PasswordDlg_16
push 0
push 0x6d
push dword [0x409a10]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
cmp eax, 2
je 0x405ef0
push dword [0x409d80]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
movzx ecx, byte [0x409d63]
dec ecx
cmp eax, ecx
jne 0x405c3c
mov ecx, dword [0x409d80]
mov dword [0x409d7c], 0x5bc25a
jmp 0x405dbe
call dword [sym.imp.KERNEL32.dll__lclose]
lea eax, [ebp - 0x2b8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [0x409a0c], 0
lea eax, [ebp - 0x1b8]
je 0x405cb7
push 2
push str.CRCError
push eax
push 8
jmp 0x405cc1
push 3
push str.SpaceError
push eax
push 7
lea eax, [ebp - 0x3dc]
push eax
call fcn.00403017
add esp, 0x14
lea eax, [ebp - 0x3dc]
push eax
call fcn.00402dac
pop ecx
jmp 0x40465a
lea eax, [ebp - 0x2b8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x40465a
push 1
push str.AdminError
lea eax, [ebp - 0x1b8]
push eax
lea eax, [ebp - 0x4dc]
push 5
push eax
call fcn.00403017
mov eax, dword [0x40a008]
add esp, 0x14
jmp 0x405d1b
inc eax
cmp byte [eax], 0
jne 0x405d1a
push edi
inc eax
push eax
lea eax, [ebp - 0x4dc]
push eax
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
push 2
jmp 0x406a0b
call fcn.00402eb3
lea eax, [ebp - 0x80]
push eax
push 1
lea eax, [ebp - 0x3dc]
push str._q:a
push eax
call fcn.00403739
add esp, 0x10
jmp 0x40465a
call fcn.00402eb3
push 0x13
push str.MinVerMessage
lea eax, [ebp - 0x1b8]
push eax
lea eax, [ebp - 0x3dc]
push 0x13
push eax
call fcn.00403017
mov eax, dword [0x40a008]
add esp, 0x14
jmp 0x405d88
inc eax
cmp byte [eax], 0
jne 0x405d87
xor esi, esi
push esi
inc eax
push eax
lea eax, [ebp - 0x3dc]
push eax
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x406a0a
call fcn.00402eb3
jmp 0x40465a
mov al, byte [ecx]
cmp al, 0x61
jl 0x405dbd
cmp al, 0x7a
jg 0x405dbd
sub al, 0x20
mov byte [ecx], al
inc ecx
cmp byte [ecx], 0
jne 0x405daf
movzx eax, byte [0x409d63]
dec eax
push eax
push dword [0x409d80]
call fcn.00403873
mov eax, dword [0x409d80]
pop ecx
pop ecx
movzx ecx, byte [0x409d63]
dec ecx
mov dword [ebp + 0x70], ecx
je 0x405e00
lea ecx, [ebp - 0xf74]
sub ecx, eax
mov dl, byte [eax]
cmp dl, byte [eax + ecx]
jne 0x405e00
inc eax
dec dword [ebp + 0x70]
jne 0x405df3
xor eax, eax
cmp dword [ebp + 0x70], eax
sete al
test eax, eax
je 0x405c3c
cmp byte [ebp - 0x80], 0
je 0x405fd7
cmp byte [ebp - 0xae0], 0
je 0x405fd7
cmp dword [ebp + 0xc], 0
je 0x405fd7
push str.MSI.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
mov dword [ebp + 0x3c], eax
je 0x405fd7
push str.MsiGetProductInfoA
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MsiConfigureProductA
push dword [ebp + 0x3c]
mov dword [ebp + 0x4c], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp dword [ebp + 0x4c], 0
mov dword [ebp + 0x40], eax
je 0x405fce
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp - 0x860]
push eax
push str.VersionString
lea eax, [ebp - 0x80]
push eax
mov dword [ebp + 0x70], 0x100
call dword [ebp + 0x4c]
test eax, eax
jne 0x405fce
cmp byte [ebp - 0x860], 0
je 0x405fc8
lea eax, [ebp - 0xae0]
push eax
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x405fc8
push 5
push str.ExistError
lea eax, [ebp - 0x1b8]
push eax
lea eax, [ebp - 0x2b8]
push 6
push eax
call fcn.00403017
add esp, 0x14
cmp dword [0x409a00], 0
je 0x405f15
mov edi, dword [0x40a008]
jmp 0x405f0d
mov eax, dword [0x409a08]
test eax, eax
je 0x405f00
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
call fcn.00402916
push 1
jmp 0x406a0b
inc edi
cmp byte [edi], 0
jne 0x405f0c
inc edi
jmp 0x405f3f
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea edi, [ebp - 0x65c]
mov eax, edi
push eax
push 0x407475
push str.ProductName
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push edi
lea eax, [ebp - 0xae0]
push eax
push edi
lea eax, [ebp - 0x860]
push eax
push edi
lea eax, [ebp - 0x2b8]
push eax
push ebx
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [0x40a008]
add esp, 0x1c
jmp 0x405f69
inc eax
cmp byte [eax], 0
jne 0x405f68
push 0x104
inc eax
push eax
push ebx
xor edi, edi
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 7
je 0x4061b7
cmp dword [ebp + 0x40], edi
je 0x405fa2
push 2
push edi
lea eax, [ebp - 0x80]
push eax
call dword [ebp + 0x40]
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp - 0x860]
push eax
push str.VersionString
lea eax, [ebp - 0x80]
push eax
mov dword [ebp + 0x70], 0x100
call dword [ebp + 0x4c]
test eax, eax
je 0x405e97
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [0x409a00], 0
je 0x4063f6
cmp dword [ebp + 0x30], 1
jle 0x4061c6
push 1
push 0
push dword [0x40a010]
call edi
push 0
push dword [ebp + 0x38]
mov dword [ebp], eax
push dword [0x40a010]
call edi
push dword [ebp + 0x30]
push ebx
push dword [0x40a010]
call esi
push 0
push dword [ebp]
push dword [0x40a010]
call edi
mov eax, dword [0x40a00c]
test eax, eax
mov byte [ebp - 0x860], 0
je 0x40650a
xor ecx, ecx
inc ecx
cmp eax, ecx
mov dword [ebp + 0x70], ecx
jle 0x40606a
push 4
lea eax, [ebp + 0x4c]
push eax
push dword [0x40a010]
call esi
push 1
push dword [ebp + 0x4c]
push dword [0x40a010]
call edi
inc dword [ebp + 0x70]
mov eax, dword [ebp + 0x70]
cmp eax, dword [0x40a00c]
jl 0x406041
push 4
lea eax, [ebp + 0x4c]
push eax
push dword [0x40a010]
call esi
push ebx
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 6
lea eax, [ebp - 0x860]
push str.http:__
push eax
call fcn.00402973
add esp, 0xc
test eax, eax
je 0x4060ba
push 5
lea eax, [ebp - 0x860]
push str.ftp:__
push eax
call fcn.00402973
add esp, 0xc
test eax, eax
jne 0x406103
lea eax, [ebp - 0x860]
push eax
call fcn.00402cc8
test eax, eax
pop ecx
jne 0x4060dd
lea eax, [ebp - 0x860]
push eax
push 0x200
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push 0x407794
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x1b8]
push eax
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
sub eax, 4
test eax, eax
jle 0x40612a
push str..MST
lea eax, [ebp + eax - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll__lcreat]
push eax
call dword [sym.imp.KERNEL32.dll__lclose]
push 2
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll__lopen]
test eax, eax
mov dword [ebp + 0x74], eax
jl 0x406324
xor eax, eax
mov al, 1
cmp al, byte [0x409d63]
sbb eax, eax
neg eax
push eax
push dword [ebp + 0x4c]
push dword [ebp + 0x74]
call fcn.00403f8c
add esp, 0xc
test eax, eax
push dword [ebp + 0x74]
je 0x4063d1
call dword [sym.imp.KERNEL32.dll__lclose]
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [0x409a0c], 0
lea eax, [ebp - 0x1b8]
je 0x4063a6
push 2
push str.CRCError
push eax
push 8
jmp 0x4063b0
call fcn.00402916
call fcn.00402eb3
jmp 0x405f05
lea eax, [ebp - 0x660]
push eax
call fcn.00402cc8
test eax, eax
pop ecx
je 0x40623e
push 0x407794
lea eax, [ebp - 0x660]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x1b8]
push eax
lea eax, [ebp - 0x660]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp byte [ebp - 0xd74], 0
mov eax, 0x407af8
jne 0x406210
mov eax, 0x407af4
push eax
lea eax, [ebp - 0x660]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [ebp - 0x660]
sub ecx, 3
add eax, ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x660]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [ebp - 0x1b8], 0
je 0x4062b9
cmp byte [0x409a20], 0
jne 0x4062c9
lea eax, [ebp - 0x2b8]
push eax
push 0x100
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
cmp byte [ebp - 0x2b8], 0
je 0x4062b9
lea eax, [ebp - 0x2b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [ebp - 0x2b8]
dec ecx
cmp byte [eax + ecx], 0x5c
je 0x406297
push 0x407794
lea eax, [ebp - 0x2b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x1b8]
push eax
lea eax, [ebp - 0x2b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x2b8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [0x409a20], 0
jne 0x4062c9
push ebx
call fcn.00402d78
pop ecx
cmp dword [0x409db8], 4
jle 0x406023
push ebx
call fcn.004038bb
pop ecx
push 0
push ebx
call dword [sym.imp.KERNEL32.dll__lcreat]
push eax
mov dword [ebp + 0x74], eax
call dword [sym.imp.KERNEL32.dll__lclose]
cmp dword [ebp + 0x74], 0xffffffff
jne 0x406314
push ebx
call fcn.00402d78
push ebx
call fcn.004038bb
pop ecx
pop ecx
push 0
push ebx
call dword [sym.imp.KERNEL32.dll__lcreat]
push eax
call dword [sym.imp.KERNEL32.dll__lclose]
push 2
push ebx
call dword [sym.imp.KERNEL32.dll__lopen]
test eax, eax
mov dword [ebp + 0x74], eax
jge 0x40632b
push 0
jmp 0x4063c6
xor eax, eax
mov al, 1
cmp al, byte [0x409d63]
sbb eax, eax
neg eax
push eax
push dword [0x409db8]
push dword [ebp + 0x74]
call fcn.00403f8c
add esp, 0xc
test eax, eax
push dword [ebp + 0x74]
je 0x406390
call dword [sym.imp.KERNEL32.dll__lclose]
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [0x409a0c], 0
lea eax, [ebp - 0x1b8]
je 0x40637a
push 2
push str.CRCError
push eax
push 8
jmp 0x406384
push 3
push str.SpaceError
push eax
push 7
push ebx
call fcn.00403017
add esp, 0x14
push ebx
jmp 0x4063c6
call dword [sym.imp.KERNEL32.dll__lclose]
cmp dword [0x409c2c], 0
je 0x406023
push ebx
jmp 0x4063eb
push 3
push str.SpaceError
push eax
push 7
lea eax, [ebp - 0x860]
push eax
call fcn.00403017
add esp, 0x14
lea eax, [ebp - 0x860]
push eax
call fcn.00402dac
pop ecx
jmp 0x405f05
call dword [sym.imp.KERNEL32.dll__lclose]
cmp dword [0x409c2c], 0
je 0x40650a
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x405f05
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x2b8]
push eax
push 0x407475
push str.ProductFile
push str.WiseInstaller
mov byte [ebp - 0x860], 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x2b8], 0
jne 0x406438
mov dword [0x409db8], 4
mov eax, dword [0x40a00c]
test eax, eax
je 0x4064b9
push eax
push str.LanguageFile_d
push ebx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x1b8]
push eax
push 0x104
lea eax, [ebp - 0x860]
push eax
push 0x407475
push ebx
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 4
jle 0x4064b9
push str..mst
lea eax, [ebp + eax - 0x864]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x4064b9
lea eax, [ebp - 0x860]
push eax
lea eax, [ebp - 0x2b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov byte [ebp - 0x860], 0
lea eax, [ebp - 0x2b8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.http:__
push ebx
mov byte [0x409a27], 0
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x4064fc
lea eax, [ebp - 0xbe0]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x2b8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x40650a
lea eax, [ebp - 0x2b8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
call fcn.00402eb3
mov eax, dword [ebp + 0x58]
mov byte [ebp - 0x4dc], 0
cmp byte [eax], 0
jne 0x406594
cmp dword [0x409a00], 0
je 0x40656c
push 1
push 0
push dword [0x40a010]
call edi
push 0
push dword [0x409d88]
mov dword [ebp + 0x38], eax
push dword [0x40a010]
call edi
movzx eax, byte [0x409d64]
push eax
lea eax, [ebp - 0x4dc]
push eax
push dword [0x40a010]
call esi
push 0
push dword [ebp + 0x38]
push dword [0x40a010]
call edi
jmp 0x406594
lea eax, [ebp - 0x1b8]
push eax
push 0x100
lea eax, [ebp - 0x4dc]
push eax
push 0x407475
push str.CmdLine
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x860], 0
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
je 0x4065c0
lea eax, [ebp - 0x860]
push eax
push str._TRANSFORMS__s_
push 0x409e00
mov byte [0x409e00], 0
call edi
add esp, 0xc
mov eax, dword [ebp + 0x58]
mov cl, byte [eax]
cmp cl, 0x2f
jne 0x4065f3
cmp byte [eax + 1], 0x2a
jne 0x4065f3
add eax, 2
jmp 0x4065d6
inc eax
cmp byte [eax], 0x20
je 0x4065d5
push 0x200
lea ecx, [ebp - 0x860]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
jmp 0x406791
cmp byte [ebp - 0x4dc], 0
mov esi, dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
je 0x406606
test cl, cl
je 0x40662d
test cl, cl
je 0x40661b
push 0x200
lea ecx, [ebp - 0x4dc]
push ecx
push eax
call esi
jmp 0x40662d
push 0x407ab8
lea eax, [ebp - 0x4dc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [ebp - 0x4dc], 0x2f
jne 0x406668
cmp byte [ebp - 0x4db], 0x2a
jne 0x406668
cmp byte [ebp - 0x4da], 0x20
lea eax, [ebp - 0x4da]
jne 0x406654
inc eax
cmp byte [eax], 0x20
je 0x40664e
push 0x200
lea ecx, [ebp - 0x860]
push ecx
push eax
call esi
jmp 0x406791
cmp byte [ebp - 0x4dc], 0
lea esi, [ebp - 0x4dc]
je 0x406705
cmp byte [esi], 0x2f
jne 0x4066df
push 7
lea eax, [ebp - 0x4db]
push str.package
push eax
call fcn.00401000
add esp, 0xc
test eax, eax
je 0x4066e5
push 9
lea eax, [ebp - 0x4db]
push str.uninstall
push eax
call fcn.00401000
add esp, 0xc
test eax, eax
je 0x4066e5
mov al, byte [esi + 1]
cmp al, 0x49
je 0x4066e5
cmp al, 0x69
je 0x4066e5
cmp al, 0x4a
je 0x4066e5
cmp al, 0x6a
je 0x4066e5
cmp al, 0x58
je 0x4066e5
cmp al, 0x78
je 0x4066e5
cmp al, 0x41
je 0x4066e5
cmp al, 0x61
je 0x4066e5
cmp al, 0x46
je 0x4066e5
cmp al, 0x66
je 0x4066e5
inc esi
cmp byte [esi], 0
jne 0x40667b
cmp byte [esi], 0
jne 0x406717
cmp byte [ebp - 0x4dc], 0
je 0x406705
push 0x407d74
lea eax, [ebp - 0x4dc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x407ab8
lea eax, [ebp - 0x4dc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp byte [ebp - 0xd74], 0
lea eax, [ebp - 0xd74]
jne 0x406728
mov eax, ebx
push eax
lea eax, [ebp - 0x4dc]
push eax
lea eax, [ebp - 0x860]
push str._s___s_
push eax
call edi
add esp, 0x10
cmp byte [ebp - 0xd74], 0
je 0x40676a
push ebx
push str._TRANSFORMS__s_
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + eax - 0x860]
push eax
call edi
add esp, 0xc
cmp byte [0x409e00], 0
je 0x406791
push 0x409e00
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + eax - 0x860]
push eax
call edi
pop ecx
pop ecx
call fcn.00402e76
xor esi, esi
cmp dword [0x409d84], esi
jne 0x4069e4
cmp byte [ebp - 0x860], 0
je 0x4069e4
push 0x100
push ebx
push dword [0x409a10]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
cmp dword [0x409a00], esi
jne 0x4067f0
cmp byte [0x409500], 0
je 0x4067f0
push 0x409500
push 0x200
push ebx
push ebx
push str.ModuleFileName
push str.Settings
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push ebx
push str._WISE_SETUP_EXE_PATH__s_
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + eax - 0x860]
push eax
call edi
add esp, 0xc
cmp dword [ebp + 0x2c], esi
je 0x4068ca
cmp byte [0x40a004], 0
jne 0x4068ca
lea eax, [ebp - 0x860]
push eax
push str.MSIEXEC
push str._s__s
push ebx
call edi
add esp, 0x10
cmp byte [0x409500], 0
je 0x406854
lea eax, [ebp - 0x860]
push eax
call fcn.004029fd
jmp 0x40685f
lea eax, [ebp - 0x80]
push ebx
push eax
call fcn.0040321b
pop ecx
pop ecx
lea eax, [ebp + 0x38]
push eax
push 0x28
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x4068b2
lea eax, [ebp - 0xa4]
push eax
push str.SeShutdownPrivilege
push esi
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueA]
push esi
push esi
push esi
lea eax, [ebp - 0xa8]
push eax
push esi
push dword [ebp + 0x38]
mov dword [ebp - 0xa8], 1
mov dword [ebp - 0x9c], 2
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
push esi
push 2
call dword [sym.imp.USER32.dll_ExitWindowsEx]
mov dword [0x409d84], 1
jmp 0x4069e4
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.MSIEXEC
lea eax, [ebp - 0x2bc]
push eax
call edi
cmp dword [ebp + 0x2c], esi
je 0x40698d
cmp byte [0x40a004], 0
je 0x40698d
lea eax, [ebp + 0x30]
push eax
push 0x20019
push esi
push str.SOFTWAREMicrosoftWindowsCurrentVersionInstaller
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40697b
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0x660]
push eax
lea eax, [ebp]
push eax
push esi
push str.InstallerLocation
push dword [ebp + 0x30]
mov dword [ebp + 0x38], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x406972
cmp byte [ebp - 0x660], al
je 0x406972
lea eax, [ebp - 0x660]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea eax, [ebp - 0x660]
push eax
lea eax, [ebp - 0x2bc]
push eax
call edi
push str.MSIEXEC.EXE
lea eax, [ebp - 0x2bc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push dword [ebp + 0x30]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str._WISEDELAYEDREBOOT1
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp byte [0x409500], 0
je 0x4069a5
lea eax, [ebp - 0x860]
push eax
call fcn.004029fd
pop ecx
jmp 0x4069e4
cmp dword [0x409db8], 4
je 0x4069e4
lea eax, [ebp - 0x80]
push eax
push 1
lea eax, [ebp - 0x860]
push eax
lea eax, [ebp - 0x2bc]
push eax
call fcn.00403739
add esp, 0x10
jmp 0x4069e4
cmp dword [0x409d84], 0
jne 0x4069e2
call fcn.00402eb3
push 0
call fcn.00402dac
pop ecx
xor esi, esi
call fcn.00402eb3
call fcn.00402916
push dword [0x40a010]
call dword [sym.imp.KERNEL32.dll__lclose]
mov eax, dword [0x409a08]
cmp eax, esi
je 0x406a0a
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
call dword [sym.imp.KERNEL32.dll_ExitProcess]