Function at 0x404197
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, 0xf7c
push ebx
push esi
push edi
xor edi, edi
push 0x100
push edi
mov dword [ebp + 0x14], edi
mov dword [ebp - 4], edi
mov dword [ebp - 0xc], edi
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
push 4
mov dword [ebp + 0x70], eax
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov dword [ebp], edi
mov dword [ebp - 8], edi
mov dword [ebp + 0x18], edi
mov dword [ebp - 0x10], edi
mov dword [ebp + 0xc], edi
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x24], edi
mov dword [ebp + 0x20], edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov esi, eax
mov al, byte [esi]
cmp al, 0x22
mov dword [ebp + 0x50], esi
jne 0x40421d
jmp 0x4041ff
cmp al, 0x22
je 0x40420d
inc esi
mov al, byte [esi]
test al, al
mov dword [ebp + 0x50], esi
jne 0x4041fb
cmp al, 0x22
jne 0x404221
inc esi
mov dword [ebp + 0x50], esi
jmp 0x404221
cmp al, 0x20
je 0x404226
inc esi
mov al, byte [esi]
mov dword [ebp + 0x50], esi
test al, al
jne 0x404213
cmp byte [esi], 0x20
jne 0x40422f
inc esi
cmp byte [esi], 0x20
je 0x404226
mov dword [ebp + 0x50], esi
mov cl, byte [esi]
cmp cl, 0x2f
je 0x404250
mov eax, esi
jmp 0x404242
cmp cl, 0x3d
je 0x404246
inc eax
mov cl, byte [eax]
test cl, cl
jne 0x40423a
cmp byte [eax], 0
jne 0x404250
mov esi, eax
mov dword [ebp + 0x50], esi
push 5
push str._awm
push esi
call fcn.00402973
add esp, 0xc
test eax, eax
jne 0x4042e8
add esi, 5
mov al, byte [esi]
cmp al, 0x22
mov dword [ebp + 0x50], esi
mov ebx, esi
jne 0x4042b5
inc esi
mov ebx, esi
jmp 0x404280
cmp al, 0x22
je 0x404289
inc esi
mov al, byte [esi]
test al, al
mov dword [ebp + 0x50], esi
jne 0x40427b
cmp esi, ebx
je 0x4042aa
mov eax, esi
sub eax, ebx
inc eax
push eax
push ebx
push 0x409500
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov eax, 0x409501
sub eax, ebx
mov byte [eax + esi], 0
cmp byte [esi], 0x22
jne 0x4042e8
inc esi
mov dword [ebp + 0x50], esi
jmp 0x4042e8
test al, al
je 0x4042e8
cmp al, 0x20
je 0x4042c7
inc esi
mov al, byte [esi]
test al, al
mov dword [ebp + 0x50], esi
jne 0x4042b9
cmp esi, ebx
je 0x4042e8
mov eax, esi
sub eax, ebx
inc eax
push eax
push ebx
push 0x409500
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov eax, 0x409501
sub eax, ebx
mov byte [eax + esi], 0
push esi
call fcn.00403447
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, 0x100
push esi
lea ecx, [ebp - 0x14c]
push ecx
push eax
mov dword [0x409a10], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push edi
lea eax, [ebp - 0x14c]
push eax
call dword [sym.imp.KERNEL32.dll__lopen]
cmp eax, edi
mov dword [0x40a010], eax
jge 0x404333
push edi
call fcn.00402dac
pop ecx
push edi
jmp 0x406e90
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.00402f41
test eax, eax
pop ecx
jne 0x404326
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0xbb4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [ebp - 0xbb4], 0
je 0x404414
cmp dword [0x409a00], edi
jne 0x4043b6
cmp byte [0x409500], 0
je 0x4043b6
push 0x409500
push esi
lea eax, [ebp - 0xbb4]
push eax
push eax
push str.ModuleFileName
push str.Settings
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0xbb4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea esi, [ebp + eax - 0xbb4]
jmp 0x4043d2
cmp byte [esi], 0x5c
je 0x4043e1
dec esi
lea eax, [ebp - 0xbb4]
cmp esi, eax
ja 0x4043cc
cmp byte [esi], 0x5c
jne 0x4043fc
lea eax, [ebp - 0xbb4]
push eax
push str.WiseSourceDir
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
mov byte [esi], 0x5c
inc esi
jmp 0x404411
lea eax, [ebp - 0xbb4]
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 - 0xf04]
mov dword [0x40a008], eax
xor eax, eax
cmp dword [0x409a00], eax
mov ebx, 0x409a20
mov edi, str.WiseInstaller
je 0x40479c
and dword [ebp + 0x3c], eax
push 0x4c
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 - 0x14c]
push eax
push dword [0x40a010]
call esi
movzx eax, byte [0x409d61]
push eax
push dword [ebp + 0x70]
push dword [0x40a010]
call esi
movzx eax, byte [0x409d62]
push eax
lea eax, [ebp - 0x18c]
push eax
push dword [0x40a010]
call esi
movzx eax, byte [0x409d63]
push eax
lea eax, [ebp - 0xe04]
push eax
push dword [0x40a010]
call esi
movzx eax, byte [0x409d64]
push eax
lea eax, [ebp - 0x550]
push eax
push dword [0x40a010]
call esi
push 0x408058
lea eax, [ebp - 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x4044fa
mov dword [ebp + 0x3c], 1
push 0x15
push edi
push dword [0x40a010]
call esi
lea eax, [ebp - 0x4b0]
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 - 0xd04]
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 + 0x2c], eax
movzx eax, byte [0x409d6b]
push eax
push ebx
push dword [0x40a010]
mov dword [ebp + 0x28], eax
call esi
push 1
push 0
push dword [0x40a010]
call edi
mov dword [ebp - 0x1c], eax
movzx eax, byte [0x409d6c]
mov dword [ebp + 0x20], eax
push eax
push ebx
push dword [0x40a010]
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 - 0x28], eax
movzx eax, byte [0x409d6d]
push eax
push ebx
push dword [0x40a010]
mov dword [ebp + 0x24], eax
call esi
push 4
lea eax, [ebp + 0xc]
push eax
push dword [0x40a010]
call esi
push 1
push 0
push dword [0x40a010]
call edi
mov dword [ebp - 0x20], eax
movzx eax, byte [0x409d74]
push eax
push ebx
push dword [0x40a010]
mov dword [ebp + 0x1c], eax
call esi
push 4
lea eax, [ebp - 0x10]
push eax
push dword [0x40a010]
call esi
push 1
push 0
push dword [0x40a010]
call edi
mov dword [ebp - 0x24], eax
movzx eax, byte [0x409d6e]
push eax
push ebx
push dword [0x40a010]
mov dword [ebp + 0x40], eax
call esi
push 4
lea eax, [ebp + 0x18]
push eax
push dword [0x40a010]
call esi
push 1
push 0
push dword [0x40a010]
call edi
mov dword [ebp - 0x2c], eax
movzx eax, byte [0x409d71]
push eax
push ebx
push dword [0x40a010]
mov dword [ebp + 8], eax
call esi
push 4
lea eax, [ebp - 8]
push eax
push dword [0x40a010]
call esi
cmp byte [0x409d72], 0
jne 0x404774
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 0x404734
and eax, 0xffff0000
cmp eax, 0x20000
jl 0x404749
mov eax, dword [0x409de0]
test eax, eax
je 0x404750
and eax, 0xffff0000
cmp eax, 0x20000
jge 0x404750
mov byte [0x40a004], 0
cmp dword [0x409c2c], 0
je 0x4050fc
mov eax, dword [0x409a08]
test eax, eax
je 0x40476d
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push 0
jmp 0x406e90
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 0x40471f
mov dword [0x409c2c], 1
jmp 0x40471f
cmp byte [ebp - 0x14c], 0
mov dword [ebp + 0x3c], 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 - 0xd04], 0
mov byte [ebp - 0xf02], 0
mov byte [ebp - 0xf03], 0
mov byte [ebp - 0xf04], 0
je 0x404734
lea eax, [ebp - 0x14c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + eax - 0x14c]
jmp 0x404815
cmp byte [eax], 0x2e
je 0x404828
dec eax
lea ecx, [ebp - 0x14c]
cmp eax, ecx
ja 0x40480f
cmp byte [eax], 0x2e
jne 0x40471f
push str..ini
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [0x409500], 0
je 0x40485f
push 0x409500
push 0x100
lea eax, [ebp - 0x14c]
push eax
push eax
push str.ExeINIFilePath
push str.Settings
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40747d
push str.Runtime9XVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push dword [ebp + 0x70]
call fcn.00402fef
shl eax, 0x10
mov dword [0x409dac], eax
mov eax, dword [ebp + 0x70]
pop ecx
mov dword [ebp + 0x74], eax
jmp 0x4048a2
cmp al, 0x2e
je 0x4048b0
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404898
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x4048b3
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fef
or dword [0x409dac], eax
pop ecx
jmp 0x4048cb
cmp al, 0x2e
je 0x4048dc
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x4048c4
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x4048df
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fef
shl eax, 0x10
pop ecx
mov dword [0x409db0], eax
jmp 0x4048f9
cmp al, 0x2e
je 0x40490a
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x4048f2
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x40490d
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fef
or dword [0x409db0], eax
pop ecx
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40747d
push str.RuntimeNTVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push dword [ebp + 0x70]
call fcn.00402fef
shl eax, 0x10
mov dword [0x409de0], eax
mov eax, dword [ebp + 0x70]
pop ecx
mov dword [ebp + 0x74], eax
jmp 0x40495f
cmp al, 0x2e
je 0x40496d
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404955
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404970
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fef
or dword [0x409de0], eax
pop ecx
jmp 0x404988
cmp al, 0x2e
je 0x404999
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404981
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x40499c
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fef
shl eax, 0x10
pop ecx
mov dword [0x409de4], eax
jmp 0x4049b6
cmp al, 0x2e
je 0x4049c7
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x4049af
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x4049ca
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fef
or dword [0x409de4], eax
pop ecx
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40747d
push str.Runtime2KVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push dword [ebp + 0x70]
call fcn.00402fef
shl eax, 0x10
mov dword [0x409dc8], eax
mov eax, dword [ebp + 0x70]
pop ecx
mov dword [ebp + 0x74], eax
jmp 0x404a1c
cmp al, 0x2e
je 0x404a2a
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404a12
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404a2d
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fef
or dword [0x409dc8], eax
pop ecx
jmp 0x404a45
cmp al, 0x2e
je 0x404a56
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404a3e
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404a59
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fef
shl eax, 0x10
pop ecx
mov dword [0x409dcc], eax
jmp 0x404a73
cmp al, 0x2e
je 0x404a84
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404a6c
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404a87
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fef
or dword [0x409dcc], eax
pop ecx
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40747d
push str.RuntimeDotNetVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push dword [ebp + 0x70]
call fcn.00402fef
shl eax, 0x10
mov dword [0x409dd4], eax
mov eax, dword [ebp + 0x70]
pop ecx
mov dword [ebp + 0x74], eax
jmp 0x404ad9
cmp al, 0x2e
je 0x404ae7
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404acf
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404aea
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fef
or dword [0x409dd4], eax
pop ecx
jmp 0x404b02
cmp al, 0x2e
je 0x404b13
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404afb
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404b16
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fef
shl eax, 0x10
pop ecx
mov dword [0x409dd8], eax
jmp 0x404b30
cmp al, 0x2e
je 0x404b41
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404b29
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404b44
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fef
or dword [0x409dd8], eax
pop ecx
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40747d
push str.RuntimeDotNetUpdateVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push dword [ebp + 0x70]
call fcn.00402fef
shl eax, 0x10
mov dword [0x409dbc], eax
mov eax, dword [ebp + 0x70]
pop ecx
mov dword [ebp + 0x74], eax
jmp 0x404b96
cmp al, 0x2e
je 0x404ba4
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404b8c
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404ba7
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fef
or dword [0x409dbc], eax
pop ecx
jmp 0x404bbf
cmp al, 0x2e
je 0x404bd0
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404bb8
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404bd3
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.00402fef
shl eax, 0x10
pop ecx
mov dword [0x409dc0], eax
jmp 0x404bed
cmp al, 0x2e
je 0x404bfe
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404be6
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404c01
inc dword [ebp + 0x74]
push 4
push str.2033
push dword [ebp + 0x74]
call fcn.00401000
add esp, 0xc
test eax, eax
jne 0x404c1e
mov eax, dword [ebp + 0x74]
mov byte [eax + 3], 0x32
push dword [ebp + 0x74]
call fcn.00402fef
or dword [0x409dc0], eax
pop ecx
lea eax, [ebp - 0x14c]
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 - 0x14c]
push eax
push 0
push str.CharSet
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov byte [0x409d60], al
lea eax, [ebp - 0x14c]
push eax
push 8
push str.CharSize
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov byte [0x409d61], al
lea eax, [ebp - 0x14c]
push eax
push 0
push str.WiseInitLangAlwaysPrompt
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
je 0x404ca4
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 - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40747d
push str.ProductName
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push dword [ebp + 0x70]
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 - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push str.Initializing
push str.WiseInitPrefix
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x404d40
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp + 0x70]
cmp byte [eax + ecx], 0x20
je 0x404d40
push 0x407f54
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push dword [ebp + 0x70]
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 - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push str._Wizard...
push str.WiseInitSuffix
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0x5e
jne 0x404d9d
mov byte [eax], 0x20
push dword [ebp + 0x70]
push dword [ebp + 0x74]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40747d
push str.Runtime9X
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x404ddc
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov dword [ebp + 0x20], eax
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40747d
push str.RuntimeSize9X
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x404e13
push eax
call fcn.00402fef
pop ecx
mov dword [ebp + 4], eax
mov dword [0x409db4], eax
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40747d
push str.RuntimeNT
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x404e46
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov dword [ebp + 0x24], eax
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40747d
push str.RuntimeSizeNT
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x404e7d
push eax
call fcn.00402fef
pop ecx
mov dword [ebp + 0xc], eax
mov dword [0x409da4], eax
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40747d
push str.Runtime2K
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x404eb0
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov dword [ebp + 0x1c], eax
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40747d
push str.RuntimeSize2K
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x404ee7
push eax
call fcn.00402fef
pop ecx
mov dword [ebp - 0x10], eax
mov dword [0x409dc4], eax
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40747d
push str.RuntimeDotNet
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x404f1a
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov dword [ebp + 0x40], eax
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40747d
push str.RuntimeSizeDotNet
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x404f51
push eax
call fcn.00402fef
pop ecx
mov dword [ebp + 0x18], eax
mov dword [0x409dd0], eax
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40747d
push str.RuntimeDotNetUpdate
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x404f84
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov dword [ebp + 8], eax
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40747d
push str.RuntimeSizeDotNetUpdate
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x404fbb
push eax
call fcn.00402fef
pop ecx
mov dword [ebp - 8], eax
mov dword [0x409ddc], eax
lea eax, [ebp - 0x14c]
push eax
push 0
push str.RuntimeDotNetShowEULA
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [0x409de8], eax
lea eax, [ebp - 0x14c]
push eax
push 0xff
lea eax, [ebp - 0x4b0]
push eax
push 0x40747d
push str.CmdLine
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x4b0]
push eax
mov byte [ebp - 0x3b1], 0
call fcn.00403447
pop ecx
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
mov byte [ebp - 0x4b0], 0
push 0x40747d
push str.ProductCode
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea eax, [ebp - 0x18c]
push eax
push 0x40747d
push str.ProductVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea eax, [ebp - 0xe04]
push eax
push 0x40747d
push str.TransformMSI
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x14c]
push eax
push 0
push str.Remove_Previous
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp eax, 1
jne 0x405099
mov dword [ebp + 0x3c], eax
lea eax, [ebp - 0x14c]
push eax
push 0
push str.DelayReboot
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov byte [0x40a004], al
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x40476d
cmp byte [ebp - 0x18c], 0
je 0x40476d
lea eax, [ebp - 0x14c]
push eax
push 0x100
push ebx
push 0x40747d
push str.Language1
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [0x409a20], 0
je 0x40471f
jmp 0x404774
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x40513a
lea eax, [ebp + 0x68]
push eax
push 0x2001b
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionRun
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40513a
push str.WiseStubReboot
push dword [ebp + 0x68]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
push dword [ebp + 0x68]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call fcn.00402d4f
cmp dword [0x409a00], 0
je 0x405194
cmp dword [0x409da8], 0
je 0x405194
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 + 0x30], eax
call edi
push 0
push dword [ebp + 0x30]
mov dword [ebp + 0x68], eax
push dword [0x40a010]
call edi
mov eax, dword [ebp + 0x68]
cmp eax, dword [0x409da8]
je 0x405194
push 0
jmp 0x40611a
lea eax, [ebp - 0xc84]
push eax
mov dword [ebp - 0xc84], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
xor eax, eax
cmp dword [ebp - 0xc74], 2
push 0x100
sete al
cmp dword [ebp - 0xc80], 5
push ebx
sbb edi, edi
inc edi
mov dword [ebp - 0x18], edi
mov dword [ebp + 0x68], 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 0x4051ef
push 0x40779c
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 + 0x10]
push eax
lea eax, [ebp + 0x34]
push eax
push ebx
call fcn.00402dca
lea eax, [ebp - 0x4d0]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0x34]
call fcn.004034d1
add esp, 0x18
test edi, edi
je 0x405234
cmp byte [ebp - 0x4cf], 0x31
je 0x40523b
cmp byte [ebp - 0x4cf], 0x32
je 0x40523b
mov dword [ebp - 4], 1
xor edi, edi
cmp dword [ebp + 0x68], edi
je 0x40531c
lea eax, [ebp + 0x48]
push eax
push 0x2001b
push edi
push str.SYSTEMCurrentControlSetControlSession_ManagerEnvironment
push closesocket
mov dword [ebp + 0x60], 1
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40531c
lea eax, [ebp + 0x6c]
push eax
push edi
lea eax, [ebp + 0x4c]
push eax
push edi
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp - 0xab4]
push eax
mov dword [ebp + 0x58], 0x400
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0x54], edi
push edi
jmp 0x4052c6
cmp dword [ebp + 0x4c], 2
jne 0x4052a0
cmp dword [ebp + 0x6c], 1
jbe 0x4052d5
inc dword [ebp + 0x54]
mov eax, 0x400
mov dword [ebp + 0x6c], eax
mov dword [ebp + 0x58], eax
lea eax, [ebp + 0x6c]
push eax
push edi
lea eax, [ebp + 0x4c]
push eax
push edi
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp - 0xab4]
push eax
push dword [ebp + 0x54]
push dword [ebp + 0x48]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
je 0x405294
jmp 0x40530a
lea eax, [ebp - 0xab4]
push eax
push dword [ebp + 0x48]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
test eax, eax
jne 0x40530a
push 1
push 0x40747d
push 1
push edi
lea eax, [ebp - 0xab4]
push eax
push dword [ebp + 0x48]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x40530a
mov dword [ebp + 0x60], edi
push dword [ebp + 0x48]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp + 0x60], edi
je 0x405246
cmp dword [0x409a00], edi
je 0x405336
push 1
push edi
push dword [0x40a010]
call dword [sym.imp.KERNEL32.dll__llseek]
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x64], edi
xor eax, eax
push 0x3f
pop ecx
mov byte [ebp - 0x28c], 0
lea edi, [ebp - 0x28b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
push 0x3f
mov byte [ebp - 0x3b0], 0
pop ecx
lea edi, [ebp - 0x3af]
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 + 0x38], eax
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x6c], eax
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x74], eax
mov dword [ebp + 0x44], eax
je 0x40539e
push eax
push dword [ebp + 0x30]
push dword [0x40a010]
call dword [sym.imp.KERNEL32.dll__llseek]
xor eax, eax
cmp dword [ebp + 0x64], eax
jne 0x4053fe
push dword [0x409dd8]
push dword [0x409dd4]
call fcn.004034f8
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
mov dword [ebp + 0x38], eax
je 0x405f75
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x74], eax
lea eax, [ebp - 0x570]
push eax
push dword [0x409dd8]
push dword [0x409dd4]
call fcn.004034d1
add esp, 0xc
cmp byte [ebp - 0x56f], 0x32
jne 0x405597
mov dword [ebp + 0x14], 1
jmp 0x405597
cmp dword [ebp + 0x64], 1
jne 0x405493
push dword [0x409dc0]
push dword [0x409dbc]
call fcn.004034f8
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
mov dword [ebp + 0x38], eax
je 0x405432
mov eax, dword [ebp - 8]
mov dword [ebp + 0x4c], 1
mov dword [ebp + 0x74], eax
lea eax, [ebp - 0x16c]
push eax
push dword [0x409dc0]
push dword [0x409dbc]
call fcn.004034d1
push 9
lea eax, [ebp - 0x16c]
push str.v1.0.3705
push eax
call fcn.00401000
add esp, 0x18
test eax, eax
jne 0x40558d
call fcn.00403658
test eax, eax
jne 0x40558d
xor esi, esi
push esi
push str.Wise_for_Windows_Installer
push str.The_.Net_framework_upgrade_does_not_have_the_base_version_v1.0.3705_installed.
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
call fcn.00402ec8
jmp 0x406e8f
cmp dword [ebp + 0x64], 2
jne 0x405f75
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x18], 0
je 0x4054ef
cmp dword [0x409dc4], ecx
jg 0x4054b3
cmp dword [ebp + 0x1c], ecx
jle 0x4054ef
mov eax, dword [0x409dc8]
test eax, eax
jne 0x4054c4
cmp dword [0x409dcc], eax
je 0x4054e1
cmp dword [ebp + 0x34], eax
jb 0x4054e1
mov eax, 0xffff0000
jne 0x4054f4
mov edx, dword [0x409dcc]
mov edi, dword [ebp + 0x10]
and edx, eax
and edi, eax
cmp edi, edx
jae 0x4054f4
mov eax, dword [ebp - 0x10]
mov dword [ebp + 0x48], ecx
mov dword [ebp + 0x74], eax
jmp 0x405597
mov eax, 0xffff0000
xor edi, edi
cmp dword [ebp + 0x68], edi
je 0x40553a
cmp dword [0x409da4], ecx
jg 0x405508
cmp dword [ebp + 0x24], ecx
jle 0x40557d
mov edx, dword [0x409de0]
cmp edx, edi
jne 0x40551a
cmp dword [0x409de4], edi
je 0x405532
cmp dword [ebp + 0x34], edx
jb 0x405532
jne 0x40557d
mov edx, dword [0x409de4]
mov edi, dword [ebp + 0x10]
and edx, eax
and edi, eax
cmp edi, edx
jae 0x40557d
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x58], ecx
jmp 0x405577
cmp dword [0x409db4], ecx
jg 0x405547
cmp dword [ebp + 0x20], ecx
jle 0x40557d
mov edx, dword [0x409dac]
cmp edx, edi
jne 0x405559
cmp dword [0x409db0], edi
je 0x405571
cmp dword [ebp + 0x34], edx
jb 0x405571
jne 0x40557d
mov edx, dword [0x409db0]
mov edi, dword [ebp + 0x10]
and edx, eax
and edi, eax
cmp edi, edx
jae 0x40557d
mov eax, dword [ebp + 4]
mov dword [ebp + 0x54], ecx
mov dword [ebp + 0x4c], ecx
mov dword [ebp + 0x74], eax
cmp dword [ebp + 0x14], 0
je 0x40558d
cmp dword [ebp - 4], 0
je 0x406049
cmp dword [ebp + 0x4c], 0
je 0x405f75
xor edi, edi
cmp dword [0x409a00], edi
jne 0x4056bd
cmp dword [ebp + 0x64], edi
jne 0x4055da
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea eax, [ebp - 0x28c]
push eax
push 0x40747d
push str.RuntimeDotNet
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x18]
jmp 0x40578a
cmp dword [ebp + 0x64], 1
jne 0x405610
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea eax, [ebp - 0x28c]
push eax
push 0x40747d
push str.RuntimeDotNetUpdate
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 8]
jmp 0x40578a
cmp dword [ebp + 0x64], 2
jne 0x40578d
cmp dword [ebp + 0x48], edi
je 0x40564f
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea eax, [ebp - 0x28c]
push eax
push 0x40747d
push str.Runtime2K
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 0x10]
jmp 0x40578a
cmp dword [ebp + 0x58], edi
je 0x405684
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea eax, [ebp - 0x28c]
push eax
push 0x40747d
push str.RuntimeNT
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0xc]
jmp 0x40578a
cmp dword [ebp + 0x54], edi
je 0x40578d
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea eax, [ebp - 0x28c]
push eax
push 0x40747d
push str.Runtime9X
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 4]
jmp 0x40578a
cmp dword [ebp + 0x64], edi
jne 0x4056ee
mov eax, dword [ebp - 0x24]
mov ecx, dword [0x409db4]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x40]
mov dword [ebp + 0x6c], eax
mov eax, dword [0x409da4]
add eax, ecx
add eax, dword [0x409dc4]
mov dword [ebp + 0x44], eax
mov eax, dword [0x409dd0]
jmp 0x40578a
cmp dword [ebp + 0x64], 1
jne 0x405723
mov eax, dword [ebp - 0x2c]
mov ecx, dword [0x409da4]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 8]
mov dword [ebp + 0x6c], eax
mov eax, dword [0x409dd0]
add eax, ecx
add eax, dword [0x409db4]
add eax, dword [0x409dc4]
mov dword [ebp + 0x44], eax
mov eax, dword [0x409ddc]
jmp 0x40578a
cmp dword [ebp + 0x64], 2
jne 0x40578d
cmp dword [ebp + 0x48], edi
je 0x405751
mov eax, dword [ebp - 0x20]
mov ecx, dword [0x409db4]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp + 0x6c], eax
mov eax, dword [0x409da4]
add eax, ecx
mov dword [ebp + 0x44], eax
mov eax, dword [0x409dc4]
jmp 0x40578a
cmp dword [ebp + 0x58], edi
je 0x405771
mov eax, dword [ebp - 0x28]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x6c], eax
mov eax, dword [0x409db4]
mov dword [ebp + 0x44], eax
mov eax, dword [0x409da4]
jmp 0x40578a
cmp dword [ebp + 0x54], edi
je 0x40578d
mov eax, dword [ebp - 0x1c]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x6c], eax
mov eax, dword [0x409db4]
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x74], eax
xor eax, eax
cmp dword [ebp + 0x74], 1
setle al
cmp dword [0x409a00], edi
mov dword [ebp + 0x4c], eax
je 0x405855
cmp eax, edi
jne 0x405812
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp - 0x28c]
push eax
call fcn.00403745
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
pop ecx
pop ecx
push 1
push 0
push dword [0x40a010]
call edi
push 1
push dword [ebp + 0x44]
mov dword [ebp + 0x6c], eax
push dword [0x40a010]
call edi
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x5c]
call fcn.0040408e
add esp, 0xc
test eax, eax
push dword [ebp + 0x5c]
jne 0x40605b
call dword [sym.imp.KERNEL32.dll__lclose]
cmp dword [0x409c2c], 0
jne 0x4060a4
push 0
push dword [ebp + 0x6c]
jmp 0x40584b
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
push 1
push 0
push dword [0x40a010]
call edi
push 0
push dword [ebp + 0x60]
mov dword [ebp + 0x44], eax
push dword [0x40a010]
call edi
push dword [ebp + 0x6c]
lea eax, [ebp - 0x28c]
push eax
push dword [0x40a010]
call esi
push 0
push dword [ebp + 0x44]
push dword [0x40a010]
call edi
xor edi, edi
cmp byte [ebp - 0x28c], 0
je 0x405f75
cmp dword [ebp + 0x4c], edi
je 0x4059d2
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp - 0x3b0]
push eax
call fcn.00403745
pop ecx
pop ecx
push dword [ebp + 0x5c]
call dword [sym.imp.KERNEL32.dll__lclose]
call fcn.00403f5f
push edi
push 0xfa
push 0x4d2
push dword [0x40a014]
call dword [sym.imp.USER32.dll_SetTimer]
call fcn.00402e8b
mov eax, dword [0x40a014]
cmp eax, edi
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
je 0x405914
push 0x3ef
push eax
call edi
test eax, eax
je 0x4058cb
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x70
push dword [0x40a014]
call edi
test eax, eax
je 0x4058e2
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 2
push dword [0x40a014]
call edi
test eax, eax
je 0x4058f9
push 1
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
push str.The_Wise_Installation_Wizard_is_downloading_and_installing_prerequisite_files._This_may_take_several_minutes_...
push 0x3f1
push dword [0x40a014]
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
call fcn.00403348
mov eax, dword [ebp + 0x74]
lea ecx, [ebp - 0x6b0]
push ecx
push 0
push 0
push eax
push eax
push 0x409d78
push dword [0x40a014]
mov dword [0x409c28], eax
lea eax, [ebp - 0x3b0]
push eax
lea eax, [ebp - 0x28c]
push eax
push 0x409c2c
mov byte [ebp - 0x6b0], 0
call sym.STUB32.EXE__t1_40
mov dword [ebp + 0x60], eax
mov eax, dword [0x409d78]
cmp eax, dword [0x409c28]
jne 0x4059a2
xor eax, eax
push eax
push eax
push 3
push eax
push 1
mov dword [0x409d78], eax
push closesocket
lea eax, [ebp - 0x3b0]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp + 0x6c], eax
je 0x4059a2
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push dword [ebp + 0x6c]
mov dword [0x409d78], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x409c2c], 0
jne 0x4060b6
cmp dword [ebp + 0x60], 0
jl 0x4060b6
push 2
push dword [0x40a014]
call edi
test eax, eax
je 0x4059ec
push 0
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
jmp 0x4059ec
lea eax, [ebp - 0x28c]
push eax
lea eax, [ebp - 0x3b0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
cmp byte [ebp - 0x3b0], 0
je 0x405f75
xor ecx, ecx
cmp dword [ebp + 0x68], ecx
je 0x405a1e
push 0xe0000000
push ecx
push ecx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
test eax, eax
je 0x406125
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor ecx, ecx
cmp dword [ebp + 0x38], ecx
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x74], str._q__r:n
je 0x405a72
cmp dword [0x409de8], ecx
jne 0x405a6b
mov eax, 0xffff
test dword [0x409db0], eax
je 0x405a62
mov edx, dword [0x409dac]
and edx, eax
cmp edx, 1
je 0x405a62
cmp dword [ebp + 0x64], ecx
jne 0x405a6b
cmp dword [0x409db4], ecx
jne 0x405a62
cmp dword [ebp + 8], 1
jle 0x405a6b
mov dword [ebp + 0x74], str._q:a__c:_Install__q_
jmp 0x405a72
mov dword [ebp + 0x74], str._q:a
cmp byte [0x40a004], 0
je 0x405a87
cmp dword [ebp + 0x38], ecx
jne 0x405a87
mov dword [ebp + 0x74], str._c:_msiinst__delayreboot_q_
cmp dword [0x409a00], ecx
jne 0x405b1e
cmp dword [ebp + 0x38], ecx
jne 0x405b1e
lea eax, [ebp - 0x14c]
push eax
push 0x80
lea eax, [ebp - 0x550]
push eax
push str._q__r:n
push str.InstMsi_CmdLine
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x550]
push eax
push dword [ebp + 0x74]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x405adf
mov dword [ebp + 0x60], 1
cmp byte [0x40a004], 0
je 0x405b13
push str._q__r:n
lea eax, [ebp - 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x405b13
and dword [ebp + 0x60], eax
push str._c:_msiinst__delayrebootq_
lea eax, [ebp - 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x550]
mov dword [ebp + 0x74], eax
xor ecx, ecx
cmp dword [ebp + 0x48], ecx
je 0x405b3e
push str.__quiet__norestart
lea eax, [ebp - 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x550]
mov dword [ebp + 0x74], eax
call fcn.00403a05
cmp dword [ebp + 0x38], 0
mov dword [ebp - 0x14], eax
je 0x405ba2
call fcn.00403f5f
mov eax, dword [0x40a014]
test eax, eax
je 0x405ba2
push 0x3ef
push eax
call edi
test eax, eax
je 0x405b6f
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x70
push dword [0x40a014]
call edi
test eax, eax
je 0x405b86
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 2
push dword [0x40a014]
call edi
test eax, eax
je 0x405b9d
push 0
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
call fcn.00403348
cmp dword [ebp + 0x4c], 0
je 0x405e02
xor eax, eax
push 7
mov byte [ebp - 0x4c], 0
pop ecx
lea edi, [ebp - 0x4b]
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 0x405d45
cmp dword [ebp + 0x58], eax
jne 0x405d45
cmp dword [ebp + 0x48], eax
jne 0x405d45
cmp dword [ebp + 0x38], eax
je 0x405e02
cmp byte [ebp - 0x3b0], 0x32
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x6c], eax
jl 0x405c55
push 0xf
pop ecx
mov word [ebp - 0x5b0], 0x30
lea edi, [ebp - 0x5ae]
rep stosd dword es:[edi], eax
push 0x104
push 0
stosw word es:[edi], ax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edi, eax
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push str.msi.dll
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x5b0]
push eax
push edi
call fcn.00402b65
pop ecx
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp byte [ebp - 0x5b0], 0x33
jl 0x40616b
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x3b0]
push eax
call fcn.00402b65
pop ecx
pop ecx
xor eax, eax
push eax
push eax
push 3
push eax
push 1
push closesocket
lea eax, [ebp - 0x3b0]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x405c9c
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push edi
mov dword [ebp + 0x6c], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpA]
lea eax, [ebp - 0x4c]
push eax
push str.1.0.871.2738
call edi
test eax, eax
jne 0x405cc1
cmp dword [ebp + 0x6c], 0xa35340
jne 0x405d17
push str.1.1.4322.2032
jmp 0x405d0d
lea eax, [ebp - 0x4c]
push eax
push 0x408058
call edi
test eax, eax
jne 0x405ce0
cmp dword [ebp + 0x6c], 0x7cb4f0
jne 0x405d17
push str.1.1.4322.2033
jmp 0x405d0d
lea eax, [ebp - 0x4c]
push eax
push str.5.50.4134.600
call edi
test eax, eax
jne 0x405d17
cmp dword [ebp + 0x6c], 0x121890
jne 0x405cff
push str.1.0.3705.209
jmp 0x405d0d
cmp dword [ebp + 0x6c], 0x66fb90
jne 0x405d17
push str.1.0.3705.288
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.004037c0
push dword [ebp + 0x58]
push dword [ebp + 0x54]
call fcn.004034f8
add esp, 0x14
test eax, eax
je 0x405e02
xor edi, edi
jmp 0x405ee2
push 7
xor eax, eax
pop ecx
mov byte [ebp - 0x2b0], 0
lea edi, [ebp - 0x2af]
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 + 0x44], eax
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x6c], eax
push 0x104
lea eax, [ebp - 0x7b8]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push str.msi.dll
lea eax, [ebp - 0x7b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x7b8]
push eax
call fcn.00402b65
lea eax, [ebp - 0x2b0]
push eax
lea eax, [ebp - 0x3b0]
push eax
call fcn.00402b65
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.004037c0
lea eax, [ebp + 0x6c]
push eax
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp - 0x2b0]
push eax
call fcn.004037c0
mov eax, dword [ebp + 0x54]
add esp, 0x28
test eax, eax
je 0x405e02
cmp eax, dword [ebp + 0x58]
ja 0x405d3e
jne 0x405e02
mov ecx, dword [ebp + 0x6c]
mov edx, dword [ebp + 0x44]
mov eax, 0xffff0000
and ecx, eax
and edx, eax
cmp edx, ecx
jae 0x405d3e
xor edi, edi
cmp dword [ebp + 0x64], edi
jne 0x405e4b
cmp dword [ebp + 0x14], edi
je 0x405e58
cmp dword [ebp - 4], edi
jne 0x405e58
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
cmp eax, edi
mov dword [ebp - 0xc], eax
je 0x405f75
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x3b0]
push ecx
push eax
call edi
push dword [ebp + 0x74]
lea eax, [ebp - 0xbf0]
push eax
call edi
jmp 0x405f75
cmp dword [ebp + 0x64], 1
jne 0x405e58
mov dword [ebp + 0x74], str._q:a
push dword [ebp + 0x70]
lea eax, [ebp - 0x3b0]
push 1
push dword [ebp + 0x74]
push eax
call fcn.0040383b
add esp, 0x10
cmp dword [ebp + 0x64], 1
mov edi, eax
jle 0x405eaf
xor eax, eax
cmp dword [ebp + 0x48], eax
je 0x405eaf
cmp dword [ebp + 0x14], eax
je 0x405eaf
cmp dword [ebp - 4], eax
jne 0x405eaf
cmp dword [ebp - 0xc], eax
je 0x405eaf
push dword [ebp + 0x70]
lea eax, [ebp - 0xbf0]
push 1
push eax
push dword [ebp - 0xc]
call fcn.0040383b
add esp, 0x10
push dword [ebp - 0xc]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
test edi, edi
jne 0x405ebe
call fcn.00403a05
cmp dword [ebp - 0x14], eax
je 0x405ebe
inc edi
cmp dword [ebp + 0x38], 0
je 0x405ed6
cmp edi, 0x661
jne 0x405ed6
cmp dword [ebp + 0x64], 0
je 0x4061ba
cmp edi, 0x800401fa
je 0x4061dd
cmp dword [ebp + 0x4c], 0
jne 0x405ef1
cmp dword [0x409a00], 0
je 0x405efe
lea eax, [ebp - 0x3b0]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
call fcn.00402e8b
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00402e8b
test edi, edi
je 0x405f75
cmp dword [ebp + 0x60], 0
jne 0x405f75
cmp byte [0x40a004], 0
jne 0x405f6e
push 4
push str.Reboot
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x3b0]
push 9
push eax
call fcn.0040302c
mov eax, dword [0x40a008]
add esp, 0x14
jmp 0x405f4d
inc eax
cmp byte [eax], 0
jne 0x405f4c
push 4
inc eax
push eax
lea eax, [ebp - 0x3b0]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x406226
mov dword [ebp], 1
inc dword [ebp + 0x64]
cmp dword [ebp + 0x64], 3
jl 0x405339
cmp dword [0x409a00], 0
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
je 0x405fc8
push 0
push dword [ebp + 0x30]
push dword [0x40a010]
call edi
mov eax, dword [0x409ddc]
mov ecx, dword [0x409dd0]
add eax, ecx
add eax, dword [0x409da4]
push 1
add eax, dword [0x409db4]
add eax, dword [0x409dc4]
push eax
push dword [0x40a010]
call edi
cmp byte [0x409dec], 0
jne 0x406e51
cmp dword [0x409d84], 0
jne 0x406e67
cmp dword [0x409a00], 0
je 0x406291
cmp byte [0x409d63], 1
jbe 0x406291
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 0x406372
push dword [0x409d80]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
movzx ecx, byte [0x409d63]
dec ecx
cmp eax, ecx
jne 0x405ffc
mov ecx, dword [0x409d80]
mov dword [0x409d7c], 0x5bc25a
jmp 0x40623f
xor esi, esi
push esi
push str.Wise_for_Windows_Installer
push str.The_.Net_framework_2.0_install_requires_Windows_Installer_3.0_or_later_to_continue.
jmp 0x405482
call dword [sym.imp.KERNEL32.dll__lclose]
lea eax, [ebp - 0x28c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [0x409a0c], 0
lea eax, [ebp - 0x14c]
je 0x406089
push 2
push str.CRCError
push eax
push 8
jmp 0x406093
push 3
push str.SpaceError
push eax
push 7
lea eax, [ebp - 0x3b0]
push eax
call fcn.0040302c
add esp, 0x14
jmp 0x406113
lea eax, [ebp - 0x28c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x40476d
lea eax, [ebp - 0x3b0]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [0x409c2c], 0
jne 0x40476d
push 6
push str.Internet
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x3b0]
push 0xa
push eax
call fcn.0040302c
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
add esp, 0x14
push 0x407f54
lea eax, [ebp - 0x3b0]
push eax
call esi
lea eax, [ebp - 0x6b0]
push eax
lea eax, [ebp - 0x3b0]
push eax
call esi
lea eax, [ebp - 0x3b0]
push eax
call fcn.00402dac
pop ecx
jmp 0x40476d
push 1
push str.AdminError
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x4b0]
push 5
push eax
call fcn.0040302c
mov eax, dword [0x40a008]
add esp, 0x14
jmp 0x40614c
inc eax
cmp byte [eax], 0
jne 0x40614b
push 0
inc eax
push eax
lea eax, [ebp - 0x4b0]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 2
jmp 0x406e90
mov esi, dword [0x40a008]
jmp 0x406174
inc esi
cmp byte [esi], 0
jne 0x406173
push 0x100
lea eax, [ebp - 0x3b0]
push eax
push 7
push dword [0x409a10]
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x10000
inc esi
push esi
lea eax, [ebp - 0x3b0]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
call fcn.00402916
call fcn.00402ec8
push 0xfffffffffffffffd
jmp 0x406e90
call fcn.00402ec8
push dword [ebp + 0x70]
lea eax, [ebp - 0x3b0]
push 1
push str._q:a
push eax
call fcn.0040383b
add esp, 0x10
jmp 0x40476d
call fcn.00402ec8
push 0x13
push str.MinVerMessage
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x3b0]
push 0x13
push eax
call fcn.0040302c
mov eax, dword [0x40a008]
add esp, 0x14
jmp 0x406209
inc eax
cmp byte [eax], 0
jne 0x406208
xor esi, esi
push esi
inc eax
push eax
lea eax, [ebp - 0x3b0]
push eax
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x406e8f
call fcn.00402ec8
jmp 0x40476d
mov al, byte [ecx]
cmp al, 0x61
jl 0x40623e
cmp al, 0x7a
jg 0x40623e
sub al, 0x20
mov byte [ecx], al
inc ecx
cmp byte [ecx], 0
jne 0x406230
movzx eax, byte [0x409d63]
dec eax
push eax
push dword [0x409d80]
call fcn.00403975
mov eax, dword [0x409d80]
pop ecx
pop ecx
movzx ecx, byte [0x409d63]
dec ecx
mov dword [ebp + 0x68], ecx
je 0x406281
lea ecx, [ebp - 0xd04]
sub ecx, eax
mov dl, byte [eax]
cmp dl, byte [eax + ecx]
jne 0x406281
inc eax
dec dword [ebp + 0x68]
jne 0x406274
xor eax, eax
cmp dword [ebp + 0x68], eax
sete al
test eax, eax
je 0x405ffc
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x406457
cmp byte [ebp - 0x18c], 0
je 0x406457
cmp dword [ebp + 0x3c], 0
je 0x406457
push str.MSI.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
mov dword [ebp + 0x3c], eax
je 0x406457
push str.MsiGetProductInfoA
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MsiConfigureProductA
push dword [ebp + 0x3c]
mov dword [ebp + 0x40], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp dword [ebp + 0x40], 0
mov dword [ebp + 0x30], eax
je 0x40644e
lea eax, [ebp + 0x68]
push eax
lea eax, [ebp - 0x8b4]
push eax
push str.VersionString
push dword [ebp + 0x70]
mov dword [ebp + 0x68], 0x100
call dword [ebp + 0x40]
test eax, eax
jne 0x40644e
cmp byte [ebp - 0x8b4], 0
je 0x406448
lea eax, [ebp - 0x18c]
push eax
lea eax, [ebp - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x406448
push 5
push str.ExistError
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x28c]
push 6
push eax
call fcn.0040302c
add esp, 0x14
cmp dword [0x409a00], 0
je 0x406397
mov edi, dword [0x40a008]
jmp 0x40638f
mov eax, dword [0x409a08]
test eax, eax
je 0x406382
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
call fcn.00402916
push 1
jmp 0x406e90
inc edi
cmp byte [edi], 0
jne 0x40638e
inc edi
jmp 0x4063c1
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea edi, [ebp - 0x6b0]
mov eax, edi
push eax
push 0x40747d
push str.ProductName
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push edi
lea eax, [ebp - 0x18c]
push eax
push edi
lea eax, [ebp - 0x8b4]
push eax
push edi
lea eax, [ebp - 0x28c]
push eax
push ebx
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [0x40a008]
add esp, 0x1c
jmp 0x4063eb
inc eax
cmp byte [eax], 0
jne 0x4063ea
push 0x104
inc eax
push eax
push ebx
xor edi, edi
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 7
je 0x406637
cmp dword [ebp + 0x30], edi
je 0x406423
push 2
push edi
push dword [ebp + 0x70]
call dword [ebp + 0x30]
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp + 0x68]
push eax
lea eax, [ebp - 0x8b4]
push eax
push str.VersionString
push dword [ebp + 0x70]
mov dword [ebp + 0x68], 0x100
call dword [ebp + 0x40]
test eax, eax
je 0x406319
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [0x409a00], 0
je 0x406876
cmp dword [ebp + 0x28], 1
jle 0x406646
push 1
push 0
push dword [0x40a010]
call edi
push 0
push dword [ebp + 0x2c]
mov dword [ebp - 0x14], eax
push dword [0x40a010]
call edi
push dword [ebp + 0x28]
push ebx
push dword [0x40a010]
call esi
push 0
push dword [ebp - 0x14]
push dword [0x40a010]
call edi
mov eax, dword [0x40a00c]
test eax, eax
mov byte [ebp - 0x8b4], 0
je 0x40698a
xor ecx, ecx
inc ecx
cmp eax, ecx
mov dword [ebp + 0x68], ecx
jle 0x4064ea
push 4
lea eax, [ebp + 0x40]
push eax
push dword [0x40a010]
call esi
push 1
push dword [ebp + 0x40]
push dword [0x40a010]
call edi
inc dword [ebp + 0x68]
mov eax, dword [ebp + 0x68]
cmp eax, dword [0x40a00c]
jl 0x4064c1
push 4
lea eax, [ebp + 0x40]
push eax
push dword [0x40a010]
call esi
push ebx
lea eax, [ebp - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 6
lea eax, [ebp - 0x8b4]
push str.http:__
push eax
call fcn.00402973
add esp, 0xc
test eax, eax
je 0x40653a
push 5
lea eax, [ebp - 0x8b4]
push str.ftp:__
push eax
call fcn.00402973
add esp, 0xc
test eax, eax
jne 0x406583
lea eax, [ebp - 0x8b4]
push eax
call fcn.00402cc8
test eax, eax
pop ecx
jne 0x40655d
lea eax, [ebp - 0x8b4]
push eax
push 0x200
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push 0x40779c
lea eax, [ebp - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
sub eax, 4
test eax, eax
jle 0x4065aa
push str..MST
lea eax, [ebp + eax - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0
lea eax, [ebp - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll__lcreat]
push eax
call dword [sym.imp.KERNEL32.dll__lclose]
push 2
lea eax, [ebp - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll__lopen]
test eax, eax
mov dword [ebp + 0x5c], eax
jl 0x4067a4
xor eax, eax
mov al, 1
cmp al, byte [0x409d63]
sbb eax, eax
neg eax
push eax
push dword [ebp + 0x40]
push dword [ebp + 0x5c]
call fcn.0040408e
add esp, 0xc
test eax, eax
push dword [ebp + 0x5c]
je 0x406851
call dword [sym.imp.KERNEL32.dll__lclose]
lea eax, [ebp - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [0x409a0c], 0
lea eax, [ebp - 0x14c]
je 0x406826
push 2
push str.CRCError
push eax
push 8
jmp 0x406830
call fcn.00402916
call fcn.00402ec8
jmp 0x406387
lea eax, [ebp - 0x6b4]
push eax
call fcn.00402cc8
test eax, eax
pop ecx
je 0x4066be
push 0x40779c
lea eax, [ebp - 0x6b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x6b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp byte [ebp - 0xe04], 0
mov eax, 0x407b0c
jne 0x406690
mov eax, 0x407b08
push eax
lea eax, [ebp - 0x6b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [ebp - 0x6b4]
sub ecx, 3
add eax, ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x6b4]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [ebp - 0x14c], 0
je 0x406739
cmp byte [0x409a20], 0
jne 0x406749
lea eax, [ebp - 0x28c]
push eax
push 0x100
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
cmp byte [ebp - 0x28c], 0
je 0x406739
lea eax, [ebp - 0x28c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [ebp - 0x28c]
dec ecx
cmp byte [eax + ecx], 0x5c
je 0x406717
push 0x40779c
lea eax, [ebp - 0x28c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x28c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x28c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [0x409a20], 0
jne 0x406749
push ebx
call fcn.00402d78
pop ecx
cmp dword [0x409db8], 4
jle 0x4064a3
push ebx
call fcn.004039bd
pop ecx
push 0
push ebx
call dword [sym.imp.KERNEL32.dll__lcreat]
push eax
mov dword [ebp + 0x5c], eax
call dword [sym.imp.KERNEL32.dll__lclose]
cmp dword [ebp + 0x5c], 0xffffffff
jne 0x406794
push ebx
call fcn.00402d78
push ebx
call fcn.004039bd
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 + 0x5c], eax
jge 0x4067ab
push 0
jmp 0x406846
xor eax, eax
mov al, 1
cmp al, byte [0x409d63]
sbb eax, eax
neg eax
push eax
push dword [0x409db8]
push dword [ebp + 0x5c]
call fcn.0040408e
add esp, 0xc
test eax, eax
push dword [ebp + 0x5c]
je 0x406810
call dword [sym.imp.KERNEL32.dll__lclose]
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [0x409a0c], 0
lea eax, [ebp - 0x14c]
je 0x4067fa
push 2
push str.CRCError
push eax
push 8
jmp 0x406804
push 3
push str.SpaceError
push eax
push 7
push ebx
call fcn.0040302c
add esp, 0x14
push ebx
jmp 0x406846
call dword [sym.imp.KERNEL32.dll__lclose]
cmp dword [0x409c2c], 0
je 0x4064a3
push ebx
jmp 0x40686b
push 3
push str.SpaceError
push eax
push 7
lea eax, [ebp - 0x8b4]
push eax
call fcn.0040302c
add esp, 0x14
lea eax, [ebp - 0x8b4]
push eax
call fcn.00402dac
pop ecx
jmp 0x406387
call dword [sym.imp.KERNEL32.dll__lclose]
cmp dword [0x409c2c], 0
je 0x40698a
lea eax, [ebp - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x406387
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea eax, [ebp - 0x28c]
push eax
push 0x40747d
push str.ProductFile
push str.WiseInstaller
mov byte [ebp - 0x8b4], 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x28c], 0
jne 0x4068b8
mov dword [0x409db8], 4
mov eax, dword [0x40a00c]
test eax, eax
je 0x406939
push eax
push str.LanguageFile_d
push ebx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x14c]
push eax
push 0x104
lea eax, [ebp - 0x8b4]
push eax
push 0x40747d
push ebx
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 4
jle 0x406939
push str..mst
lea eax, [ebp + eax - 0x8b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x406939
lea eax, [ebp - 0x8b4]
push eax
lea eax, [ebp - 0x28c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov byte [ebp - 0x8b4], 0
lea eax, [ebp - 0x28c]
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 0x40697c
lea eax, [ebp - 0xbb4]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x28c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x40698a
lea eax, [ebp - 0x28c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
call fcn.00402ec8
mov eax, dword [ebp + 0x50]
mov byte [ebp - 0x4b0], 0
cmp byte [eax], 0
jne 0x406a1b
cmp dword [0x409a00], 0
je 0x4069ec
push 1
push 0
push dword [0x40a010]
call edi
push 0
push dword [0x409d88]
mov dword [ebp + 0x2c], eax
push dword [0x40a010]
call edi
movzx eax, byte [0x409d64]
push eax
lea eax, [ebp - 0x4b0]
push eax
push dword [0x40a010]
call esi
push 0
push dword [ebp + 0x2c]
push dword [0x40a010]
call edi
jmp 0x406a1b
lea eax, [ebp - 0x14c]
push eax
push 0xff
lea eax, [ebp - 0x4b0]
push eax
push 0x40747d
push str.CmdLine
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov byte [ebp - 0x3b1], 0
cmp byte [ebp - 0x8b4], 0
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
je 0x406a47
lea eax, [ebp - 0x8b4]
push eax
push str._TRANSFORMS__s_
push 0x409e00
mov byte [0x409e00], 0
call edi
add esp, 0xc
mov eax, dword [ebp + 0x50]
mov cl, byte [eax]
cmp cl, 0x2f
jne 0x406a7a
cmp byte [eax + 1], 0x2a
jne 0x406a7a
add eax, 2
jmp 0x406a5d
inc eax
cmp byte [eax], 0x20
je 0x406a5c
push 0x200
lea ecx, [ebp - 0x8b4]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
jmp 0x406c18
cmp byte [ebp - 0x4b0], 0
mov esi, dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
je 0x406a8d
test cl, cl
je 0x406ab4
test cl, cl
je 0x406aa2
push 0x200
lea ecx, [ebp - 0x4b0]
push ecx
push eax
call esi
jmp 0x406ab4
push 0x407acc
lea eax, [ebp - 0x4b0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [ebp - 0x4b0], 0x2f
jne 0x406aef
cmp byte [ebp - 0x4af], 0x2a
jne 0x406aef
cmp byte [ebp - 0x4ae], 0x20
lea eax, [ebp - 0x4ae]
jne 0x406adb
inc eax
cmp byte [eax], 0x20
je 0x406ad5
push 0x200
lea ecx, [ebp - 0x8b4]
push ecx
push eax
call esi
jmp 0x406c18
cmp byte [ebp - 0x4b0], 0
lea esi, [ebp - 0x4b0]
je 0x406b8c
cmp byte [esi], 0x2f
jne 0x406b66
push 7
lea eax, [ebp - 0x4af]
push str.package
push eax
call fcn.00401000
add esp, 0xc
test eax, eax
je 0x406b6c
push 9
lea eax, [ebp - 0x4af]
push str.uninstall
push eax
call fcn.00401000
add esp, 0xc
test eax, eax
je 0x406b6c
mov al, byte [esi + 1]
cmp al, 0x49
je 0x406b6c
cmp al, 0x69
je 0x406b6c
cmp al, 0x4a
je 0x406b6c
cmp al, 0x6a
je 0x406b6c
cmp al, 0x58
je 0x406b6c
cmp al, 0x78
je 0x406b6c
cmp al, 0x41
je 0x406b6c
cmp al, 0x61
je 0x406b6c
cmp al, 0x46
je 0x406b6c
cmp al, 0x66
je 0x406b6c
inc esi
cmp byte [esi], 0
jne 0x406b02
cmp byte [esi], 0
jne 0x406b9e
cmp byte [ebp - 0x4b0], 0
je 0x406b8c
push 0x407f54
lea eax, [ebp - 0x4b0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x407acc
lea eax, [ebp - 0x4b0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp byte [ebp - 0xe04], 0
lea eax, [ebp - 0xe04]
jne 0x406baf
mov eax, ebx
push eax
lea eax, [ebp - 0x4b0]
push eax
lea eax, [ebp - 0x8b4]
push str._s___s_
push eax
call edi
add esp, 0x10
cmp byte [ebp - 0xe04], 0
je 0x406bf1
push ebx
push str._TRANSFORMS__s_
lea eax, [ebp - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + eax - 0x8b4]
push eax
call edi
add esp, 0xc
cmp byte [0x409e00], 0
je 0x406c18
push 0x409e00
lea eax, [ebp - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + eax - 0x8b4]
push eax
call edi
pop ecx
pop ecx
call fcn.00402e8b
xor esi, esi
cmp dword [0x409d84], esi
jne 0x406e69
cmp byte [ebp - 0x8b4], 0
je 0x406e69
push 0x100
push ebx
push dword [0x409a10]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
cmp dword [0x409a00], esi
jne 0x406c77
cmp byte [0x409500], 0
je 0x406c77
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 - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + eax - 0x8b4]
push eax
call edi
add esp, 0xc
cmp dword [ebp], esi
je 0x406d50
cmp byte [0x40a004], 0
jne 0x406d50
lea eax, [ebp - 0x8b4]
push eax
push str.MSIEXEC
push str._s__s
push ebx
call edi
add esp, 0x10
cmp byte [0x409500], 0
je 0x406cdb
lea eax, [ebp - 0x8b4]
push eax
call fcn.004029fd
jmp 0x406ce5
push ebx
push dword [ebp + 0x70]
call fcn.00403230
pop ecx
pop ecx
lea eax, [ebp + 0x2c]
push eax
push 0x28
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x406d38
lea eax, [ebp - 0x15c]
push eax
push str.SeShutdownPrivilege
push esi
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueA]
push esi
push esi
push esi
lea eax, [ebp - 0x160]
push eax
push esi
push dword [ebp + 0x2c]
mov dword [ebp - 0x160], 1
mov dword [ebp - 0x154], 2
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
push esi
push 2
call dword [sym.imp.USER32.dll_ExitWindowsEx]
mov dword [0x409d84], 1
jmp 0x406e69
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.MSIEXEC
lea eax, [ebp - 0x290]
push eax
call edi
cmp dword [ebp], esi
je 0x406e13
cmp byte [0x40a004], 0
je 0x406e13
lea eax, [ebp + 0x28]
push eax
push 0x20019
push esi
push str.SOFTWAREMicrosoftWindowsCurrentVersionInstaller
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x406e01
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp - 0x6b4]
push eax
lea eax, [ebp - 0x14]
push eax
push esi
push str.InstallerLocation
push dword [ebp + 0x28]
mov dword [ebp + 0x2c], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x406df8
cmp byte [ebp - 0x6b4], al
je 0x406df8
lea eax, [ebp - 0x6b4]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea eax, [ebp - 0x6b4]
push eax
lea eax, [ebp - 0x290]
push eax
call edi
push str.MSIEXEC.EXE
lea eax, [ebp - 0x290]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push dword [ebp + 0x28]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str._WISEDELAYEDREBOOT1
lea eax, [ebp - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp byte [0x409500], 0
je 0x406e2b
lea eax, [ebp - 0x8b4]
push eax
call fcn.004029fd
pop ecx
jmp 0x406e69
cmp dword [0x409db8], 4
je 0x406e69
push dword [ebp + 0x70]
lea eax, [ebp - 0x8b4]
push 1
push eax
lea eax, [ebp - 0x290]
push eax
call fcn.0040383b
add esp, 0x10
jmp 0x406e69
cmp dword [0x409d84], 0
jne 0x406e67
call fcn.00402ec8
push 0
call fcn.00402dac
pop ecx
xor esi, esi
call fcn.00402ec8
call fcn.00402916
push dword [0x40a010]
call dword [sym.imp.KERNEL32.dll__lclose]
mov eax, dword [0x409a08]
cmp eax, esi
je 0x406e8f
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
call dword [sym.imp.KERNEL32.dll_ExitProcess]