Function at 0x404387
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 0x40440d
jmp 0x4043ef
cmp al, 0x22
je 0x4043fd
inc esi
mov al, byte [esi]
test al, al
mov dword [ebp + 0x50], esi
jne 0x4043eb
cmp al, 0x22
jne 0x404411
inc esi
mov dword [ebp + 0x50], esi
jmp 0x404411
cmp al, 0x20
je 0x404416
inc esi
mov al, byte [esi]
mov dword [ebp + 0x50], esi
test al, al
jne 0x404403
cmp byte [esi], 0x20
jne 0x40441f
inc esi
cmp byte [esi], 0x20
je 0x404416
mov dword [ebp + 0x50], esi
mov cl, byte [esi]
cmp cl, 0x2f
je 0x404440
mov eax, esi
jmp 0x404432
cmp cl, 0x3d
je 0x404436
inc eax
mov cl, byte [eax]
test cl, cl
jne 0x40442a
cmp byte [eax], 0
jne 0x404440
mov esi, eax
mov dword [ebp + 0x50], esi
push 5
push str._awm
push esi
call fcn.004029ee
add esp, 0xc
test eax, eax
jne 0x4044d8
add esi, 5
mov al, byte [esi]
cmp al, 0x22
mov dword [ebp + 0x50], esi
mov ebx, esi
jne 0x4044a5
inc esi
mov ebx, esi
jmp 0x404470
cmp al, 0x22
je 0x404479
inc esi
mov al, byte [esi]
test al, al
mov dword [ebp + 0x50], esi
jne 0x40446b
cmp esi, ebx
je 0x40449a
mov eax, esi
sub eax, ebx
inc eax
push eax
push ebx
push 0x40a500
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov eax, 0x40a501
sub eax, ebx
mov byte [eax + esi], 0
cmp byte [esi], 0x22
jne 0x4044d8
inc esi
mov dword [ebp + 0x50], esi
jmp 0x4044d8
test al, al
je 0x4044d8
cmp al, 0x20
je 0x4044b7
inc esi
mov al, byte [esi]
test al, al
mov dword [ebp + 0x50], esi
jne 0x4044a9
cmp esi, ebx
je 0x4044d8
mov eax, esi
sub eax, ebx
inc eax
push eax
push ebx
push 0x40a500
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov eax, 0x40a501
sub eax, ebx
mov byte [eax + esi], 0
push esi
call fcn.004034c2
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 [0x40aa10], 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 [0x40b010], eax
jge 0x404523
push edi
call fcn.00402e27
pop ecx
push edi
jmp 0x4070a4
call fcn.004028c7
push 0x10000
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
mov dword [0x40b018], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push dword [0x40b010]
mov dword [0x40ad44], eax
call fcn.00402fbc
test eax, eax
pop ecx
jne 0x404516
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 0x404604
cmp dword [0x40aa00], edi
jne 0x4045a6
cmp byte [0x40a500], 0
je 0x4045a6
push 0x40a500
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 0x4045c2
cmp byte [esi], 0x5c
je 0x4045d1
dec esi
lea eax, [ebp - 0xbb4]
cmp esi, eax
ja 0x4045bc
cmp byte [esi], 0x5c
jne 0x4045ec
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 0x404601
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 [0x40b008], eax
xor eax, eax
cmp dword [0x40aa00], eax
mov ebx, 0x40aa20
mov edi, str.WiseInstaller
je 0x40498c
and dword [ebp + 0x3c], eax
push 0x4c
push 0x40ada0
push dword [0x40b010]
call esi
push 1
push 0x40b004
push dword [0x40b010]
call esi
push 5
mov edi, 0x40ad60
push edi
push dword [0x40b010]
call esi
movzx eax, byte [0x40ad60]
push eax
lea eax, [ebp - 0x14c]
push eax
push dword [0x40b010]
call esi
movzx eax, byte [0x40ad61]
push eax
push dword [ebp + 0x70]
push dword [0x40b010]
call esi
movzx eax, byte [0x40ad62]
push eax
lea eax, [ebp - 0x18c]
push eax
push dword [0x40b010]
call esi
movzx eax, byte [0x40ad63]
push eax
lea eax, [ebp - 0xe04]
push eax
push dword [0x40b010]
call esi
movzx eax, byte [0x40ad64]
push eax
lea eax, [ebp - 0x550]
push eax
push dword [0x40b010]
call esi
push 0x409070
lea eax, [ebp - 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x4046ea
mov dword [ebp + 0x3c], 1
push 0x15
push edi
push dword [0x40b010]
call esi
lea eax, [ebp - 0x4b0]
mov dword [0x40ad80], eax
movzx eax, byte [0x40ad62]
push eax
push dword [0x40b008]
push dword [0x40b010]
call esi
movzx eax, byte [0x40ad63]
push eax
lea eax, [ebp - 0xd04]
push eax
push dword [0x40b010]
call esi
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
push 1
push 0
push dword [0x40b010]
call edi
mov dword [0x40ad88], eax
movzx eax, byte [0x40ad64]
push eax
push ebx
push dword [0x40b010]
call esi
movzx eax, byte [0x40ad65]
push eax
push ebx
push dword [0x40b010]
call esi
movzx eax, byte [0x40ad66]
push eax
push ebx
push dword [0x40b010]
call esi
movzx eax, byte [0x40ad67]
push eax
push ebx
push dword [0x40b010]
call esi
movzx eax, byte [0x40ad68]
push eax
push ebx
push dword [0x40b010]
call esi
movzx eax, byte [0x40ad69]
push eax
push ebx
push dword [0x40b010]
call esi
movzx eax, byte [0x40ad6a]
push eax
push ebx
push dword [0x40b010]
call esi
movzx eax, byte [0x40ad73]
push eax
push ebx
push dword [0x40b010]
call esi
push 1
push 0
push dword [0x40b010]
call edi
mov dword [ebp + 0x2c], eax
movzx eax, byte [0x40ad6b]
push eax
push ebx
push dword [0x40b010]
mov dword [ebp + 0x28], eax
call esi
push 1
push 0
push dword [0x40b010]
call edi
mov dword [ebp - 0x1c], eax
movzx eax, byte [0x40ad6c]
mov dword [ebp + 0x20], eax
push eax
push ebx
push dword [0x40b010]
call esi
push 4
lea eax, [ebp + 4]
push eax
push dword [0x40b010]
call esi
push 1
push 0
push dword [0x40b010]
call edi
mov dword [ebp - 0x28], eax
movzx eax, byte [0x40ad6d]
push eax
push ebx
push dword [0x40b010]
mov dword [ebp + 0x24], eax
call esi
push 4
lea eax, [ebp + 0xc]
push eax
push dword [0x40b010]
call esi
push 1
push 0
push dword [0x40b010]
call edi
mov dword [ebp - 0x20], eax
movzx eax, byte [0x40ad74]
push eax
push ebx
push dword [0x40b010]
mov dword [ebp + 0x1c], eax
call esi
push 4
lea eax, [ebp - 0x10]
push eax
push dword [0x40b010]
call esi
push 1
push 0
push dword [0x40b010]
call edi
mov dword [ebp - 0x24], eax
movzx eax, byte [0x40ad6e]
push eax
push ebx
push dword [0x40b010]
mov dword [ebp + 0x40], eax
call esi
push 4
lea eax, [ebp + 0x18]
push eax
push dword [0x40b010]
call esi
push 1
push 0
push dword [0x40b010]
call edi
mov dword [ebp - 0x2c], eax
movzx eax, byte [0x40ad71]
push eax
push ebx
push dword [0x40b010]
mov dword [ebp + 8], eax
call esi
push 4
lea eax, [ebp - 8]
push eax
push dword [0x40b010]
call esi
cmp byte [0x40ad72], 0
jne 0x404964
movzx eax, byte [0x40ad6f]
push eax
push ebx
push dword [0x40b010]
call esi
movzx eax, byte [0x40ad70]
push eax
push ebx
push dword [0x40b010]
call esi
mov eax, dword [0x40adac]
test eax, eax
je 0x404924
and eax, 0xffff0000
cmp eax, 0x20000
jl 0x404939
mov eax, dword [0x40ade0]
test eax, eax
je 0x404940
and eax, 0xffff0000
cmp eax, 0x20000
jge 0x404940
mov byte [0x40b004], 0
cmp dword [0x40ac2c], 0
je 0x4052ec
mov eax, dword [0x40aa08]
test eax, eax
je 0x40495d
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push 0
jmp 0x4070a4
push 0
push sym.STUB32.EXE__LanguageDlg_16
push 0
push 0x6f
push dword [0x40aa10]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
cmp eax, 2
jne 0x40490f
mov dword [0x40ac2c], 1
jmp 0x40490f
cmp byte [ebp - 0x14c], 0
mov dword [ebp + 0x3c], eax
mov dword [0x40adcc], eax
mov dword [0x40adc8], eax
mov dword [0x40adc4], eax
mov dword [0x40adb4], eax
mov dword [0x40adb0], eax
mov dword [0x40adac], eax
mov dword [0x40ada4], eax
mov byte [0x40ad60], 0
mov byte [0x40ad61], 8
mov byte [ebp - 0xd04], 0
mov byte [ebp - 0xf02], 0
mov byte [ebp - 0xf03], 0
mov byte [ebp - 0xf04], 0
je 0x404924
lea eax, [ebp - 0x14c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + eax - 0x14c]
jmp 0x404a05
cmp byte [eax], 0x2e
je 0x404a18
dec eax
lea ecx, [ebp - 0x14c]
cmp eax, ecx
ja 0x4049ff
cmp byte [eax], 0x2e
jne 0x40490f
push str..ini
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [0x40a500], 0
je 0x404a4f
push 0x40a500
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 0x40847d
push str.Runtime9XVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push dword [ebp + 0x70]
call fcn.0040306a
shl eax, 0x10
mov dword [0x40adac], eax
mov eax, dword [ebp + 0x70]
pop ecx
mov dword [ebp + 0x74], eax
jmp 0x404a92
cmp al, 0x2e
je 0x404aa0
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404a88
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404aa3
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.0040306a
or dword [0x40adac], eax
pop ecx
jmp 0x404abb
cmp al, 0x2e
je 0x404acc
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404ab4
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404acf
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.0040306a
shl eax, 0x10
pop ecx
mov dword [0x40adb0], eax
jmp 0x404ae9
cmp al, 0x2e
je 0x404afa
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404ae2
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404afd
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.0040306a
or dword [0x40adb0], eax
pop ecx
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40847d
push str.RuntimeNTVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push dword [ebp + 0x70]
call fcn.0040306a
shl eax, 0x10
mov dword [0x40ade0], eax
mov eax, dword [ebp + 0x70]
pop ecx
mov dword [ebp + 0x74], eax
jmp 0x404b4f
cmp al, 0x2e
je 0x404b5d
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404b45
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404b60
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.0040306a
or dword [0x40ade0], eax
pop ecx
jmp 0x404b78
cmp al, 0x2e
je 0x404b89
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404b71
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404b8c
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.0040306a
shl eax, 0x10
pop ecx
mov dword [0x40ade4], eax
jmp 0x404ba6
cmp al, 0x2e
je 0x404bb7
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404b9f
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404bba
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.0040306a
or dword [0x40ade4], eax
pop ecx
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40847d
push str.Runtime2KVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push dword [ebp + 0x70]
call fcn.0040306a
shl eax, 0x10
mov dword [0x40adc8], eax
mov eax, dword [ebp + 0x70]
pop ecx
mov dword [ebp + 0x74], eax
jmp 0x404c0c
cmp al, 0x2e
je 0x404c1a
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404c02
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404c1d
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.0040306a
or dword [0x40adc8], eax
pop ecx
jmp 0x404c35
cmp al, 0x2e
je 0x404c46
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404c2e
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404c49
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.0040306a
shl eax, 0x10
pop ecx
mov dword [0x40adcc], eax
jmp 0x404c63
cmp al, 0x2e
je 0x404c74
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404c5c
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404c77
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.0040306a
or dword [0x40adcc], eax
pop ecx
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40847d
push str.RuntimeDotNetVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push dword [ebp + 0x70]
call fcn.0040306a
shl eax, 0x10
mov dword [0x40add4], eax
mov eax, dword [ebp + 0x70]
pop ecx
mov dword [ebp + 0x74], eax
jmp 0x404cc9
cmp al, 0x2e
je 0x404cd7
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404cbf
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404cda
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.0040306a
or dword [0x40add4], eax
pop ecx
jmp 0x404cf2
cmp al, 0x2e
je 0x404d03
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404ceb
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404d06
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.0040306a
shl eax, 0x10
pop ecx
mov dword [0x40add8], eax
jmp 0x404d20
cmp al, 0x2e
je 0x404d31
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404d19
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404d34
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.0040306a
or dword [0x40add8], eax
pop ecx
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40847d
push str.RuntimeDotNetUpdateVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push dword [ebp + 0x70]
call fcn.0040306a
shl eax, 0x10
mov dword [0x40adbc], eax
mov eax, dword [ebp + 0x70]
pop ecx
mov dword [ebp + 0x74], eax
jmp 0x404d86
cmp al, 0x2e
je 0x404d94
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404d7c
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404d97
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.0040306a
or dword [0x40adbc], eax
pop ecx
jmp 0x404daf
cmp al, 0x2e
je 0x404dc0
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404da8
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404dc3
inc dword [ebp + 0x74]
push dword [ebp + 0x74]
call fcn.0040306a
shl eax, 0x10
pop ecx
mov dword [0x40adc0], eax
jmp 0x404ddd
cmp al, 0x2e
je 0x404dee
inc dword [ebp + 0x74]
mov eax, dword [ebp + 0x74]
mov al, byte [eax]
test al, al
jne 0x404dd6
mov eax, dword [ebp + 0x74]
cmp byte [eax], 0x2e
jne 0x404df1
inc dword [ebp + 0x74]
push 4
push str.2033
push dword [ebp + 0x74]
call fcn.00401000
add esp, 0xc
test eax, eax
jne 0x404e0e
mov eax, dword [ebp + 0x74]
mov byte [eax + 3], 0x32
push dword [ebp + 0x74]
call fcn.0040306a
or dword [0x40adc0], eax
pop ecx
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [0x40b008]
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 [0x40ad60], al
lea eax, [ebp - 0x14c]
push eax
push 8
push str.CharSize
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov byte [0x40ad61], 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 0x404e94
or byte [0x40ad61], 0x80
push dword [0x40b008]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [0x40b008]
lea eax, [eax + ecx + 1]
mov dword [ebp + 0x74], eax
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40847d
push 0x408f90
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 0x404f30
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp + 0x70]
cmp byte [eax + ecx], 0x20
je 0x404f30
push 0x408f6c
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 0x404f8d
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 0x40847d
push str.Runtime9X
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x404fcc
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 0x40847d
push str.RuntimeSize9X
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x405003
push eax
call fcn.0040306a
pop ecx
mov dword [ebp + 4], eax
mov dword [0x40adb4], eax
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40847d
push str.RuntimeNT
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x405036
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 0x40847d
push str.RuntimeSizeNT
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x40506d
push eax
call fcn.0040306a
pop ecx
mov dword [ebp + 0xc], eax
mov dword [0x40ada4], eax
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40847d
push str.Runtime2K
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x4050a0
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 0x40847d
push str.RuntimeSize2K
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x4050d7
push eax
call fcn.0040306a
pop ecx
mov dword [ebp - 0x10], eax
mov dword [0x40adc4], eax
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40847d
push str.RuntimeDotNet
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x40510a
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 0x40847d
push str.RuntimeSizeDotNet
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x405141
push eax
call fcn.0040306a
pop ecx
mov dword [ebp + 0x18], eax
mov dword [0x40add0], eax
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
push 0x40847d
push str.RuntimeDotNetUpdate
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x405174
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 0x40847d
push str.RuntimeSizeDotNetUpdate
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x4051ab
push eax
call fcn.0040306a
pop ecx
mov dword [ebp - 8], eax
mov dword [0x40addc], eax
lea eax, [ebp - 0x14c]
push eax
push 0
push str.RuntimeDotNetShowEULA
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [0x40ade8], eax
lea eax, [ebp - 0x14c]
push eax
push 0xff
lea eax, [ebp - 0x4b0]
push eax
push 0x40847d
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.004034c2
pop ecx
lea eax, [ebp - 0x14c]
push eax
push 0x100
push dword [ebp + 0x70]
mov byte [ebp - 0x4b0], 0
push 0x40847d
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 0x40847d
push 0x408e5c
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea eax, [ebp - 0xe04]
push eax
push 0x40847d
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 0x405289
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 [0x40b004], al
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x40495d
cmp byte [ebp - 0x18c], 0
je 0x40495d
lea eax, [ebp - 0x14c]
push eax
push 0x100
push ebx
push 0x40847d
push str.Language1
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [0x40aa20], 0
je 0x40490f
jmp 0x404964
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x40532a
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 0x40532a
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.00402dca
cmp dword [0x40aa00], 0
je 0x405384
cmp dword [0x40ada8], 0
je 0x405384
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
push 1
push 0
push dword [0x40b010]
call edi
push 2
push 0
push dword [0x40b010]
mov dword [ebp + 0x30], eax
call edi
push 0
push dword [ebp + 0x30]
mov dword [ebp + 0x68], eax
push dword [0x40b010]
call edi
mov eax, dword [ebp + 0x68]
cmp eax, dword [0x40ada8]
je 0x405384
push 0
jmp 0x40632e
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 0x4053df
push 0x40879c
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.00402e45
lea eax, [ebp - 0x4d0]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0x34]
call fcn.0040354c
add esp, 0x18
test edi, edi
je 0x405424
cmp byte [ebp - 0x4cf], 0x31
je 0x40542b
cmp byte [ebp - 0x4cf], 0x32
je 0x40542b
mov dword [ebp - 4], 1
xor edi, edi
cmp dword [ebp + 0x68], edi
je 0x40550c
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 0x40550c
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 0x4054b6
cmp dword [ebp + 0x4c], 2
jne 0x405490
cmp dword [ebp + 0x6c], 1
jbe 0x4054c5
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 0x405484
jmp 0x4054fa
lea eax, [ebp - 0xab4]
push eax
push dword [ebp + 0x48]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
test eax, eax
jne 0x4054fa
push 1
push 0x40847d
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 0x4054fa
mov dword [ebp + 0x60], edi
push dword [ebp + 0x48]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp + 0x60], edi
je 0x405436
cmp dword [0x40aa00], edi
je 0x405526
push 1
push edi
push dword [0x40b010]
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 [0x40aa00], 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 0x40558e
push eax
push dword [ebp + 0x30]
push dword [0x40b010]
call dword [sym.imp.KERNEL32.dll__llseek]
xor eax, eax
cmp dword [ebp + 0x64], eax
jne 0x4055ee
push dword [0x40add8]
push dword [0x40add4]
call fcn.004035ee
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
mov dword [ebp + 0x38], eax
je 0x406189
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x74], eax
lea eax, [ebp - 0x570]
push eax
push dword [0x40add8]
push dword [0x40add4]
call fcn.0040354c
add esp, 0xc
cmp byte [ebp - 0x56f], 0x32
jne 0x405787
mov dword [ebp + 0x14], 1
jmp 0x405787
cmp dword [ebp + 0x64], 1
jne 0x405683
push dword [0x40adc0]
push dword [0x40adbc]
call fcn.004035ee
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
mov dword [ebp + 0x38], eax
je 0x405622
mov eax, dword [ebp - 8]
mov dword [ebp + 0x4c], 1
mov dword [ebp + 0x74], eax
lea eax, [ebp - 0x16c]
push eax
push dword [0x40adc0]
push dword [0x40adbc]
call fcn.0040354c
push 9
lea eax, [ebp - 0x16c]
push str.v1.0.3705
push eax
call fcn.00401000
add esp, 0x18
test eax, eax
jne 0x40577d
call fcn.004038c3
test eax, eax
jne 0x40577d
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.00402f43
jmp 0x4070a3
cmp dword [ebp + 0x64], 2
jne 0x406189
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x18], 0
je 0x4056df
cmp dword [0x40adc4], ecx
jg 0x4056a3
cmp dword [ebp + 0x1c], ecx
jle 0x4056df
mov eax, dword [0x40adc8]
test eax, eax
jne 0x4056b4
cmp dword [0x40adcc], eax
je 0x4056d1
cmp dword [ebp + 0x34], eax
jb 0x4056d1
mov eax, 0xffff0000
jne 0x4056e4
mov edx, dword [0x40adcc]
mov edi, dword [ebp + 0x10]
and edx, eax
and edi, eax
cmp edi, edx
jae 0x4056e4
mov eax, dword [ebp - 0x10]
mov dword [ebp + 0x48], ecx
mov dword [ebp + 0x74], eax
jmp 0x405787
mov eax, 0xffff0000
xor edi, edi
cmp dword [ebp + 0x68], edi
je 0x40572a
cmp dword [0x40ada4], ecx
jg 0x4056f8
cmp dword [ebp + 0x24], ecx
jle 0x40576d
mov edx, dword [0x40ade0]
cmp edx, edi
jne 0x40570a
cmp dword [0x40ade4], edi
je 0x405722
cmp dword [ebp + 0x34], edx
jb 0x405722
jne 0x40576d
mov edx, dword [0x40ade4]
mov edi, dword [ebp + 0x10]
and edx, eax
and edi, eax
cmp edi, edx
jae 0x40576d
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x58], ecx
jmp 0x405767
cmp dword [0x40adb4], ecx
jg 0x405737
cmp dword [ebp + 0x20], ecx
jle 0x40576d
mov edx, dword [0x40adac]
cmp edx, edi
jne 0x405749
cmp dword [0x40adb0], edi
je 0x405761
cmp dword [ebp + 0x34], edx
jb 0x405761
jne 0x40576d
mov edx, dword [0x40adb0]
mov edi, dword [ebp + 0x10]
and edx, eax
and edi, eax
cmp edi, edx
jae 0x40576d
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 0x40577d
cmp dword [ebp - 4], 0
je 0x40625d
cmp dword [ebp + 0x4c], 0
je 0x406189
xor edi, edi
cmp dword [0x40aa00], edi
jne 0x4058ad
cmp dword [ebp + 0x64], edi
jne 0x4057ca
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea eax, [ebp - 0x28c]
push eax
push 0x40847d
push str.RuntimeDotNet
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0x18]
jmp 0x40597a
cmp dword [ebp + 0x64], 1
jne 0x405800
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea eax, [ebp - 0x28c]
push eax
push 0x40847d
push str.RuntimeDotNetUpdate
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 8]
jmp 0x40597a
cmp dword [ebp + 0x64], 2
jne 0x40597d
cmp dword [ebp + 0x48], edi
je 0x40583f
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea eax, [ebp - 0x28c]
push eax
push 0x40847d
push str.Runtime2K
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 0x10]
jmp 0x40597a
cmp dword [ebp + 0x58], edi
je 0x405874
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea eax, [ebp - 0x28c]
push eax
push 0x40847d
push str.RuntimeNT
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 0xc]
jmp 0x40597a
cmp dword [ebp + 0x54], edi
je 0x40597d
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea eax, [ebp - 0x28c]
push eax
push 0x40847d
push str.Runtime9X
push str.WiseInstaller
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 4]
jmp 0x40597a
cmp dword [ebp + 0x64], edi
jne 0x4058de
mov eax, dword [ebp - 0x24]
mov ecx, dword [0x40adb4]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x40]
mov dword [ebp + 0x6c], eax
mov eax, dword [0x40ada4]
add eax, ecx
add eax, dword [0x40adc4]
mov dword [ebp + 0x44], eax
mov eax, dword [0x40add0]
jmp 0x40597a
cmp dword [ebp + 0x64], 1
jne 0x405913
mov eax, dword [ebp - 0x2c]
mov ecx, dword [0x40ada4]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 8]
mov dword [ebp + 0x6c], eax
mov eax, dword [0x40add0]
add eax, ecx
add eax, dword [0x40adb4]
add eax, dword [0x40adc4]
mov dword [ebp + 0x44], eax
mov eax, dword [0x40addc]
jmp 0x40597a
cmp dword [ebp + 0x64], 2
jne 0x40597d
cmp dword [ebp + 0x48], edi
je 0x405941
mov eax, dword [ebp - 0x20]
mov ecx, dword [0x40adb4]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp + 0x6c], eax
mov eax, dword [0x40ada4]
add eax, ecx
mov dword [ebp + 0x44], eax
mov eax, dword [0x40adc4]
jmp 0x40597a
cmp dword [ebp + 0x58], edi
je 0x405961
mov eax, dword [ebp - 0x28]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x6c], eax
mov eax, dword [0x40adb4]
mov dword [ebp + 0x44], eax
mov eax, dword [0x40ada4]
jmp 0x40597a
cmp dword [ebp + 0x54], edi
je 0x40597d
mov eax, dword [ebp - 0x1c]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x6c], eax
mov eax, dword [0x40adb4]
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x74], eax
xor eax, eax
cmp dword [ebp + 0x74], 1
setle al
cmp dword [0x40aa00], edi
mov dword [ebp + 0x4c], eax
je 0x405a45
cmp eax, edi
jne 0x405a02
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp - 0x28c]
push eax
call fcn.004039b0
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
pop ecx
pop ecx
push 1
push 0
push dword [0x40b010]
call edi
push 1
push dword [ebp + 0x44]
mov dword [ebp + 0x6c], eax
push dword [0x40b010]
call edi
push 0
push dword [ebp + 0x74]
push dword [ebp + 0x5c]
call fcn.0040427e
add esp, 0xc
test eax, eax
push dword [ebp + 0x5c]
jne 0x40626f
call dword [sym.imp.KERNEL32.dll__lclose]
cmp dword [0x40ac2c], 0
jne 0x4062b8
push 0
push dword [ebp + 0x6c]
jmp 0x405a3b
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
push 1
push 0
push dword [0x40b010]
call edi
push 0
push dword [ebp + 0x60]
mov dword [ebp + 0x44], eax
push dword [0x40b010]
call edi
push dword [ebp + 0x6c]
lea eax, [ebp - 0x28c]
push eax
push dword [0x40b010]
call esi
push 0
push dword [ebp + 0x44]
push dword [0x40b010]
call edi
xor edi, edi
cmp byte [ebp - 0x28c], 0
je 0x406189
cmp dword [ebp + 0x4c], edi
je 0x405bc2
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp - 0x3b0]
push eax
call fcn.004039b0
pop ecx
pop ecx
push dword [ebp + 0x5c]
call dword [sym.imp.KERNEL32.dll__lclose]
call fcn.0040414f
push edi
push 0xfa
push 0x4d2
push dword [0x40b014]
call dword [sym.imp.USER32.dll_SetTimer]
call fcn.00402f06
mov eax, dword [0x40b014]
cmp eax, edi
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
je 0x405b04
push 0x3ef
push eax
call edi
test eax, eax
je 0x405abb
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x70
push dword [0x40b014]
call edi
test eax, eax
je 0x405ad2
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 2
push dword [0x40b014]
call edi
test eax, eax
je 0x405ae9
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 [0x40b014]
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
call fcn.004033c3
mov eax, dword [ebp + 0x74]
lea ecx, [ebp - 0x6b0]
push ecx
push 0
push 0
push eax
push eax
push 0x40ad78
push dword [0x40b014]
mov dword [0x40ac28], eax
lea eax, [ebp - 0x3b0]
push eax
lea eax, [ebp - 0x28c]
push eax
push 0x40ac2c
mov byte [ebp - 0x6b0], 0
call sym.STUB32.EXE__t1_40
mov dword [ebp + 0x60], eax
mov eax, dword [0x40ad78]
cmp eax, dword [0x40ac28]
jne 0x405b92
xor eax, eax
push eax
push eax
push 3
push eax
push 1
mov dword [0x40ad78], 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 0x405b92
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push dword [ebp + 0x6c]
mov dword [0x40ad78], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x40ac2c], 0
jne 0x4062ca
cmp dword [ebp + 0x60], 0
jl 0x4062ca
push 2
push dword [0x40b014]
call edi
test eax, eax
je 0x405bdc
push 0
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
jmp 0x405bdc
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 0x406189
cmp dword [ebp + 0x68], 0
je 0x405c0d
push 0xe0000000
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
test eax, eax
je 0x406339
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor eax, eax
cmp dword [ebp + 0x38], eax
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x74], str._q__r:n
je 0x405c87
mov ecx, dword [0x40ade8]
cmp ecx, eax
jne 0x405c62
mov eax, 0xffff
test dword [0x40adb0], eax
je 0x405c57
mov edx, dword [0x40adac]
and edx, eax
cmp edx, 1
je 0x405c57
xor eax, eax
cmp dword [ebp + 0x64], eax
jne 0x405c62
cmp dword [0x40adb4], eax
jne 0x405c57
cmp dword [ebp + 8], 1
jle 0x405c62
mov dword [ebp + 0x74], str._q:a__c:_Install__q_
xor eax, eax
jmp 0x405c69
mov dword [ebp + 0x74], str._q:a
cmp dword [0x40add4], 0x30000
jl 0x405c87
cmp ecx, eax
mov dword [ebp + 0x74], 0x40847d
jne 0x405c87
mov dword [ebp + 0x74], 0x408cc8
cmp byte [0x40b004], 0
je 0x405c9c
cmp dword [ebp + 0x38], eax
jne 0x405c9c
mov dword [ebp + 0x74], str._c:_msiinst__delayreboot_q_
cmp dword [0x40aa00], eax
jne 0x405d31
cmp dword [ebp + 0x38], eax
jne 0x405d31
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 0x405cf4
mov dword [ebp + 0x60], 1
cmp byte [0x40b004], 0
je 0x405d28
push str._q__r:n
lea eax, [ebp - 0x550]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x405d28
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
cmp dword [ebp + 0x48], 0
je 0x405d52
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.00403bf5
cmp dword [ebp + 0x38], 0
mov dword [ebp - 0x14], eax
je 0x405db6
call fcn.0040414f
mov eax, dword [0x40b014]
test eax, eax
je 0x405db6
push 0x3ef
push eax
call edi
test eax, eax
je 0x405d83
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x70
push dword [0x40b014]
call edi
test eax, eax
je 0x405d9a
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 2
push dword [0x40b014]
call edi
test eax, eax
je 0x405db1
push 0
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
call fcn.004033c3
cmp dword [ebp + 0x4c], 0
je 0x406016
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 0x405f59
cmp dword [ebp + 0x58], eax
jne 0x405f59
cmp dword [ebp + 0x48], eax
jne 0x405f59
cmp dword [ebp + 0x38], eax
je 0x406016
cmp byte [ebp - 0x3b0], 0x32
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x6c], eax
jl 0x405e69
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.00402be0
pop ecx
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp byte [ebp - 0x5b0], 0x33
jl 0x40637f
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x3b0]
push eax
call fcn.00402be0
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 0x405eb0
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 0x405ed5
cmp dword [ebp + 0x6c], 0xa35340
jne 0x405f2b
push str.1.1.4322.2032
jmp 0x405f21
lea eax, [ebp - 0x4c]
push eax
push 0x409070
call edi
test eax, eax
jne 0x405ef4
cmp dword [ebp + 0x6c], 0x7cb4f0
jne 0x405f2b
push str.1.1.4322.2033
jmp 0x405f21
lea eax, [ebp - 0x4c]
push eax
push str.5.50.4134.600
call edi
test eax, eax
jne 0x405f2b
cmp dword [ebp + 0x6c], 0x121890
jne 0x405f13
push str.1.0.3705.209
jmp 0x405f21
cmp dword [ebp + 0x6c], 0x66fb90
jne 0x405f2b
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.00403573
push dword [ebp + 0x58]
push dword [ebp + 0x54]
call fcn.004035ee
add esp, 0x14
test eax, eax
je 0x406016
xor edi, edi
jmp 0x4060f6
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.00402be0
lea eax, [ebp - 0x2b0]
push eax
lea eax, [ebp - 0x3b0]
push eax
call fcn.00402be0
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.00403573
lea eax, [ebp + 0x6c]
push eax
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp - 0x2b0]
push eax
call fcn.00403573
mov eax, dword [ebp + 0x54]
add esp, 0x28
test eax, eax
je 0x406016
cmp eax, dword [ebp + 0x58]
ja 0x405f52
jne 0x406016
mov ecx, dword [ebp + 0x6c]
mov edx, dword [ebp + 0x44]
mov eax, 0xffff0000
and ecx, eax
and edx, eax
cmp edx, ecx
jae 0x405f52
xor edi, edi
cmp dword [ebp + 0x64], edi
jne 0x40605f
cmp dword [ebp + 0x14], edi
je 0x40606c
cmp dword [ebp - 4], edi
jne 0x40606c
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
cmp eax, edi
mov dword [ebp - 0xc], eax
je 0x406189
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 0x406189
cmp dword [ebp + 0x64], 1
jne 0x40606c
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.00403a2b
add esp, 0x10
cmp dword [ebp + 0x64], 1
mov edi, eax
jle 0x4060c3
xor eax, eax
cmp dword [ebp + 0x48], eax
je 0x4060c3
cmp dword [ebp + 0x14], eax
je 0x4060c3
cmp dword [ebp - 4], eax
jne 0x4060c3
cmp dword [ebp - 0xc], eax
je 0x4060c3
push dword [ebp + 0x70]
lea eax, [ebp - 0xbf0]
push 1
push eax
push dword [ebp - 0xc]
call fcn.00403a2b
add esp, 0x10
push dword [ebp - 0xc]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
test edi, edi
jne 0x4060d2
call fcn.00403bf5
cmp dword [ebp - 0x14], eax
je 0x4060d2
inc edi
cmp dword [ebp + 0x38], 0
je 0x4060ea
cmp edi, 0x661
jne 0x4060ea
cmp dword [ebp + 0x64], 0
je 0x4063ce
cmp edi, 0x800401fa
je 0x4063f1
cmp dword [ebp + 0x4c], 0
jne 0x406105
cmp dword [0x40aa00], 0
je 0x406112
lea eax, [ebp - 0x3b0]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
call fcn.00402f06
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00402f06
test edi, edi
je 0x406189
cmp dword [ebp + 0x60], 0
jne 0x406189
cmp byte [0x40b004], 0
jne 0x406182
push 4
push str.Reboot
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x3b0]
push 9
push eax
call fcn.004030a7
mov eax, dword [0x40b008]
add esp, 0x14
jmp 0x406161
inc eax
cmp byte [eax], 0
jne 0x406160
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 0x40643a
mov dword [ebp], 1
inc dword [ebp + 0x64]
cmp dword [ebp + 0x64], 3
jl 0x405529
cmp dword [0x40aa00], 0
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
je 0x4061dc
push 0
push dword [ebp + 0x30]
push dword [0x40b010]
call edi
mov eax, dword [0x40addc]
mov ecx, dword [0x40add0]
add eax, ecx
add eax, dword [0x40ada4]
push 1
add eax, dword [0x40adb4]
add eax, dword [0x40adc4]
push eax
push dword [0x40b010]
call edi
cmp byte [0x40adec], 0
jne 0x407065
cmp dword [0x40ad84], 0
jne 0x40707b
cmp dword [0x40aa00], 0
je 0x4064a5
cmp byte [0x40ad63], 1
jbe 0x4064a5
push 0
push sym.STUB32.EXE__PasswordDlg_16
push 0
push 0x6d
push dword [0x40aa10]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
cmp eax, 2
je 0x406586
push dword [0x40ad80]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
movzx ecx, byte [0x40ad63]
dec ecx
cmp eax, ecx
jne 0x406210
mov ecx, dword [0x40ad80]
mov dword [0x40ad7c], 0x5bc25a
jmp 0x406453
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 0x405672
call dword [sym.imp.KERNEL32.dll__lclose]
lea eax, [ebp - 0x28c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [0x40aa0c], 0
lea eax, [ebp - 0x14c]
je 0x40629d
push 2
push str.CRCError
push eax
push 8
jmp 0x4062a7
push 3
push str.SpaceError
push eax
push 7
lea eax, [ebp - 0x3b0]
push eax
call fcn.004030a7
add esp, 0x14
jmp 0x406327
lea eax, [ebp - 0x28c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x40495d
lea eax, [ebp - 0x3b0]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [0x40ac2c], 0
jne 0x40495d
push 6
push str.Internet
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x3b0]
push 0xa
push eax
call fcn.004030a7
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
add esp, 0x14
push 0x408f6c
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.00402e27
pop ecx
jmp 0x40495d
push 1
push str.AdminError
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x4b0]
push 5
push eax
call fcn.004030a7
mov eax, dword [0x40b008]
add esp, 0x14
jmp 0x406360
inc eax
cmp byte [eax], 0
jne 0x40635f
push 0
inc eax
push eax
lea eax, [ebp - 0x4b0]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 2
jmp 0x4070a4
mov esi, dword [0x40b008]
jmp 0x406388
inc esi
cmp byte [esi], 0
jne 0x406387
push 0x100
lea eax, [ebp - 0x3b0]
push eax
push 7
push dword [0x40aa10]
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.00402f43
push 0xfffffffffffffffd
jmp 0x4070a4
call fcn.00402f43
push dword [ebp + 0x70]
lea eax, [ebp - 0x3b0]
push 1
push str._q:a
push eax
call fcn.00403a2b
add esp, 0x10
jmp 0x40495d
call fcn.00402f43
push 0x13
push str.MinVerMessage
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x3b0]
push 0x13
push eax
call fcn.004030a7
mov eax, dword [0x40b008]
add esp, 0x14
jmp 0x40641d
inc eax
cmp byte [eax], 0
jne 0x40641c
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 0x4070a3
call fcn.00402f43
jmp 0x40495d
mov al, byte [ecx]
cmp al, 0x61
jl 0x406452
cmp al, 0x7a
jg 0x406452
sub al, 0x20
mov byte [ecx], al
inc ecx
cmp byte [ecx], 0
jne 0x406444
movzx eax, byte [0x40ad63]
dec eax
push eax
push dword [0x40ad80]
call fcn.00403b65
mov eax, dword [0x40ad80]
pop ecx
pop ecx
movzx ecx, byte [0x40ad63]
dec ecx
mov dword [ebp + 0x68], ecx
je 0x406495
lea ecx, [ebp - 0xd04]
sub ecx, eax
mov dl, byte [eax]
cmp dl, byte [eax + ecx]
jne 0x406495
inc eax
dec dword [ebp + 0x68]
jne 0x406488
xor eax, eax
cmp dword [ebp + 0x68], eax
sete al
test eax, eax
je 0x406210
mov eax, dword [ebp + 0x70]
cmp byte [eax], 0
je 0x40666b
cmp byte [ebp - 0x18c], 0
je 0x40666b
cmp dword [ebp + 0x3c], 0
je 0x40666b
push str.MSI.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
mov dword [ebp + 0x3c], eax
je 0x40666b
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 0x406662
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 0x406662
cmp byte [ebp - 0x8b4], 0
je 0x40665c
lea eax, [ebp - 0x18c]
push eax
lea eax, [ebp - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x40665c
push 5
push str.ExistError
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x28c]
push 6
push eax
call fcn.004030a7
add esp, 0x14
cmp dword [0x40aa00], 0
je 0x4065ab
mov edi, dword [0x40b008]
jmp 0x4065a3
mov eax, dword [0x40aa08]
test eax, eax
je 0x406596
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
call fcn.00402916
push 1
jmp 0x4070a4
inc edi
cmp byte [edi], 0
jne 0x4065a2
inc edi
jmp 0x4065d5
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea edi, [ebp - 0x6b0]
mov eax, edi
push eax
push 0x40847d
push 0x408f90
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 [0x40b008]
add esp, 0x1c
jmp 0x4065ff
inc eax
cmp byte [eax], 0
jne 0x4065fe
push 0x104
inc eax
push eax
push ebx
xor edi, edi
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 7
je 0x40684b
cmp dword [ebp + 0x30], edi
je 0x406637
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 0x40652d
mov edi, dword [sym.imp.KERNEL32.dll__llseek]
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [0x40aa00], 0
je 0x406a8a
cmp dword [ebp + 0x28], 1
jle 0x40685a
push 1
push 0
push dword [0x40b010]
call edi
push 0
push dword [ebp + 0x2c]
mov dword [ebp - 0x14], eax
push dword [0x40b010]
call edi
push dword [ebp + 0x28]
push ebx
push dword [0x40b010]
call esi
push 0
push dword [ebp - 0x14]
push dword [0x40b010]
call edi
mov eax, dword [0x40b00c]
test eax, eax
mov byte [ebp - 0x8b4], 0
je 0x406b9e
xor ecx, ecx
inc ecx
cmp eax, ecx
mov dword [ebp + 0x68], ecx
jle 0x4066fe
push 4
lea eax, [ebp + 0x40]
push eax
push dword [0x40b010]
call esi
push 1
push dword [ebp + 0x40]
push dword [0x40b010]
call edi
inc dword [ebp + 0x68]
mov eax, dword [ebp + 0x68]
cmp eax, dword [0x40b00c]
jl 0x4066d5
push 4
lea eax, [ebp + 0x40]
push eax
push dword [0x40b010]
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.004029ee
add esp, 0xc
test eax, eax
je 0x40674e
push 5
lea eax, [ebp - 0x8b4]
push str.ftp:__
push eax
call fcn.004029ee
add esp, 0xc
test eax, eax
jne 0x406797
lea eax, [ebp - 0x8b4]
push eax
call fcn.00402d43
test eax, eax
pop ecx
jne 0x406771
lea eax, [ebp - 0x8b4]
push eax
push 0x200
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push 0x40879c
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 0x4067be
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 0x4069b8
xor eax, eax
mov al, 1
cmp al, byte [0x40ad63]
sbb eax, eax
neg eax
push eax
push dword [ebp + 0x40]
push dword [ebp + 0x5c]
call fcn.0040427e
add esp, 0xc
test eax, eax
push dword [ebp + 0x5c]
je 0x406a65
call dword [sym.imp.KERNEL32.dll__lclose]
lea eax, [ebp - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [0x40aa0c], 0
lea eax, [ebp - 0x14c]
je 0x406a3a
push 2
push str.CRCError
push eax
push 8
jmp 0x406a44
call fcn.00402916
call fcn.00402f43
jmp 0x40659b
lea eax, [ebp - 0x6b4]
push eax
call fcn.00402d43
test eax, eax
pop ecx
je 0x4068d2
push 0x40879c
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, 0x408b1c
jne 0x4068a4
mov eax, 0x408b18
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 0x40694d
cmp byte [0x40aa20], 0
jne 0x40695d
lea eax, [ebp - 0x28c]
push eax
push 0x100
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
cmp byte [ebp - 0x28c], 0
je 0x40694d
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 0x40692b
push 0x40879c
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 [0x40aa20], 0
jne 0x40695d
push ebx
call fcn.00402df3
pop ecx
cmp dword [0x40adb8], 4
jle 0x4066b7
push ebx
call fcn.00403bad
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 0x4069a8
push ebx
call fcn.00402df3
push ebx
call fcn.00403bad
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 0x4069bf
push 0
jmp 0x406a5a
xor eax, eax
mov al, 1
cmp al, byte [0x40ad63]
sbb eax, eax
neg eax
push eax
push dword [0x40adb8]
push dword [ebp + 0x5c]
call fcn.0040427e
add esp, 0xc
test eax, eax
push dword [ebp + 0x5c]
je 0x406a24
call dword [sym.imp.KERNEL32.dll__lclose]
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [0x40aa0c], 0
lea eax, [ebp - 0x14c]
je 0x406a0e
push 2
push str.CRCError
push eax
push 8
jmp 0x406a18
push 3
push str.SpaceError
push eax
push 7
push ebx
call fcn.004030a7
add esp, 0x14
push ebx
jmp 0x406a5a
call dword [sym.imp.KERNEL32.dll__lclose]
cmp dword [0x40ac2c], 0
je 0x4066b7
push ebx
jmp 0x406a7f
push 3
push str.SpaceError
push eax
push 7
lea eax, [ebp - 0x8b4]
push eax
call fcn.004030a7
add esp, 0x14
lea eax, [ebp - 0x8b4]
push eax
call fcn.00402e27
pop ecx
jmp 0x40659b
call dword [sym.imp.KERNEL32.dll__lclose]
cmp dword [0x40ac2c], 0
je 0x406b9e
lea eax, [ebp - 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x40659b
lea eax, [ebp - 0x14c]
push eax
push 0x100
lea eax, [ebp - 0x28c]
push eax
push 0x40847d
push str.ProductFile
push str.WiseInstaller
mov byte [ebp - 0x8b4], 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x28c], 0
jne 0x406acc
mov dword [0x40adb8], 4
mov eax, dword [0x40b00c]
test eax, eax
je 0x406b4d
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 0x40847d
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 0x406b4d
push str..mst
lea eax, [ebp + eax - 0x8b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x406b4d
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 [0x40aa27], 0
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x406b90
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 0x406b9e
lea eax, [ebp - 0x28c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
call fcn.00402f43
mov eax, dword [ebp + 0x50]
mov byte [ebp - 0x4b0], 0
cmp byte [eax], 0
jne 0x406c2f
cmp dword [0x40aa00], 0
je 0x406c00
push 1
push 0
push dword [0x40b010]
call edi
push 0
push dword [0x40ad88]
mov dword [ebp + 0x2c], eax
push dword [0x40b010]
call edi
movzx eax, byte [0x40ad64]
push eax
lea eax, [ebp - 0x4b0]
push eax
push dword [0x40b010]
call esi
push 0
push dword [ebp + 0x2c]
push dword [0x40b010]
call edi
jmp 0x406c2f
lea eax, [ebp - 0x14c]
push eax
push 0xff
lea eax, [ebp - 0x4b0]
push eax
push 0x40847d
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 0x406c5b
lea eax, [ebp - 0x8b4]
push eax
push str._TRANSFORMS__s_
push 0x40ae00
mov byte [0x40ae00], 0
call edi
add esp, 0xc
mov eax, dword [ebp + 0x50]
mov cl, byte [eax]
cmp cl, 0x2f
jne 0x406c8e
cmp byte [eax + 1], 0x2a
jne 0x406c8e
add eax, 2
jmp 0x406c71
inc eax
cmp byte [eax], 0x20
je 0x406c70
push 0x200
lea ecx, [ebp - 0x8b4]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
jmp 0x406e2c
cmp byte [ebp - 0x4b0], 0
mov esi, dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
je 0x406ca1
test cl, cl
je 0x406cc8
test cl, cl
je 0x406cb6
push 0x200
lea ecx, [ebp - 0x4b0]
push ecx
push eax
call esi
jmp 0x406cc8
push 0x408adc
lea eax, [ebp - 0x4b0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [ebp - 0x4b0], 0x2f
jne 0x406d03
cmp byte [ebp - 0x4af], 0x2a
jne 0x406d03
cmp byte [ebp - 0x4ae], 0x20
lea eax, [ebp - 0x4ae]
jne 0x406cef
inc eax
cmp byte [eax], 0x20
je 0x406ce9
push 0x200
lea ecx, [ebp - 0x8b4]
push ecx
push eax
call esi
jmp 0x406e2c
cmp byte [ebp - 0x4b0], 0
lea esi, [ebp - 0x4b0]
je 0x406da0
cmp byte [esi], 0x2f
jne 0x406d7a
push 7
lea eax, [ebp - 0x4af]
push str.package
push eax
call fcn.00401000
add esp, 0xc
test eax, eax
je 0x406d80
push 9
lea eax, [ebp - 0x4af]
push str.uninstall
push eax
call fcn.00401000
add esp, 0xc
test eax, eax
je 0x406d80
mov al, byte [esi + 1]
cmp al, 0x49
je 0x406d80
cmp al, 0x69
je 0x406d80
cmp al, 0x4a
je 0x406d80
cmp al, 0x6a
je 0x406d80
cmp al, 0x58
je 0x406d80
cmp al, 0x78
je 0x406d80
cmp al, 0x41
je 0x406d80
cmp al, 0x61
je 0x406d80
cmp al, 0x46
je 0x406d80
cmp al, 0x66
je 0x406d80
inc esi
cmp byte [esi], 0
jne 0x406d16
cmp byte [esi], 0
jne 0x406db2
cmp byte [ebp - 0x4b0], 0
je 0x406da0
push 0x408f6c
lea eax, [ebp - 0x4b0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x408adc
lea eax, [ebp - 0x4b0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp byte [ebp - 0xe04], 0
lea eax, [ebp - 0xe04]
jne 0x406dc3
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 0x406e05
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 [0x40ae00], 0
je 0x406e2c
push 0x40ae00
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.00402f06
xor esi, esi
cmp dword [0x40ad84], esi
jne 0x40707d
cmp byte [ebp - 0x8b4], 0
je 0x40707d
push 0x100
push ebx
push dword [0x40aa10]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
cmp dword [0x40aa00], esi
jne 0x406e8b
cmp byte [0x40a500], 0
je 0x406e8b
push 0x40a500
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 0x406f64
cmp byte [0x40b004], 0
jne 0x406f64
lea eax, [ebp - 0x8b4]
push eax
push str.MSIEXEC
push str._s__s
push ebx
call edi
add esp, 0x10
cmp byte [0x40a500], 0
je 0x406eef
lea eax, [ebp - 0x8b4]
push eax
call fcn.00402a78
jmp 0x406ef9
push ebx
push dword [ebp + 0x70]
call fcn.004032ab
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 0x406f4c
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 [0x40ad84], 1
jmp 0x40707d
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.MSIEXEC
lea eax, [ebp - 0x290]
push eax
call edi
cmp dword [ebp], esi
je 0x407027
cmp byte [0x40b004], 0
je 0x407027
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 0x407015
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 0x40700c
cmp byte [ebp - 0x6b4], al
je 0x40700c
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 [0x40a500], 0
je 0x40703f
lea eax, [ebp - 0x8b4]
push eax
call fcn.00402a78
pop ecx
jmp 0x40707d
cmp dword [0x40adb8], 4
je 0x40707d
push dword [ebp + 0x70]
lea eax, [ebp - 0x8b4]
push 1
push eax
lea eax, [ebp - 0x290]
push eax
call fcn.00403a2b
add esp, 0x10
jmp 0x40707d
cmp dword [0x40ad84], 0
jne 0x40707b
call fcn.00402f43
push 0
call fcn.00402e27
pop ecx
xor esi, esi
call fcn.00402f43
call fcn.00402916
push dword [0x40b010]
call dword [sym.imp.KERNEL32.dll__lclose]
mov eax, dword [0x40aa08]
cmp eax, esi
je 0x4070a3
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
call dword [sym.imp.KERNEL32.dll_ExitProcess]