Function at 0x41fa70
Capabilities:
Accept command line arguments
Check mutex on windows
Check os version
Create process on windows
Create thread
Resolve function by parsing pe exports
Self delete

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4dc
mov eax, dword [0x486850]
xor eax, esp
mov dword [esp + 0x4d8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [esp + 0x24], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea ecx, [esp + 0x14]
push ecx
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov ebx, eax
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x2c], 8
mov dword [esp + 0x30], 0x4000
mov dword [esp + 0x24], 0
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
cmp dword [esp + 0x14], 2
jne 0x41fba8
mov eax, dword [ebx + 4]
mov edx, str._webinstaller
mov ecx, eax
mov si, word [ecx]
cmp si, word [edx]
jne 0x41fb0a
test si, si
je 0x41fb06
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x41fb0a
add ecx, 4
add edx, 4
test si, si
jne 0x41fae4
xor ecx, ecx
jmp 0x41fb0f
sbb ecx, ecx
or ecx, 1
test ecx, ecx
sete byte [0x4893f2]
mov edx, str._webinstaller_nodialog
mov ecx, eax
nop
mov si, word [ecx]
cmp si, word [edx]
jne 0x41fb46
test si, si
je 0x41fb42
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x41fb46
add ecx, 4
add edx, 4
test si, si
jne 0x41fb20
xor ecx, ecx
jmp 0x41fb4b
sbb ecx, ecx
or ecx, 1
test ecx, ecx
sete bl
mov byte [0x4893f0], bl
mov ecx, str._webinstaller_admin
jmp 0x41fb60
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41fb86
test dx, dx
je 0x41fb82
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41fb86
add eax, 4
add ecx, 4
test dx, dx
jne 0x41fb60
xor eax, eax
jmp 0x41fb8b
sbb eax, eax
or eax, 1
test eax, eax
sete al
mov byte [0x4893f1], al
test al, al
jne 0x41fb9d
test bl, bl
je 0x41fba4
mov byte [0x4893f2], 1
mov ebx, dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, eax
call fcn.00417730
cmp eax, 2
je 0x41feb5
push 0x114
lea eax, [esp + 0x1c4]
push 0
push eax
call fcn.00444380
add esp, 0xc
lea eax, [esp + 0x1c0]
push eax
mov dword [esp + 0x1c4], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x41fe6f
cmp dword [esp + 0x1c4], 6
setae al
test al, al
je 0x41fe6f
cmp byte [0x4893f2], 0
je 0x41fc63
cmp byte [0x4893f0], 0
jne 0x41fc63
call fcn.004395f0
cmp eax, 1
je 0x41fc63
sub esp, 0x18
mov ecx, esp
push 0x46aba0
mov dword [esp + 0x3c], 1
call fcn.00402a00
sub esp, 0x18
mov ecx, esp
push 0x487ad8
call fcn.004033b0
push 0
mov edx, 0x642
lea ecx, [esp + 0x54]
call fcn.0041a180
add esp, 0x34
jmp 0x421218
push 0x468378
lea ecx, [esp + 0x70]
call fcn.00402a00
mov esi, 1
cmp dword [esp + 0x14], esi
jle 0x41fcc3
lea esp, [esp]
mov edx, dword [ebx + esi*4]
cmp word [edx], 0
jne 0x41fc8d
xor ecx, ecx
jmp 0x41fca1
mov ecx, edx
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41fc92
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [esp + 0x74]
call fcn.00401b20
push 1
push 0x468d04
lea ecx, [esp + 0x74]
call fcn.00401b20
inc esi
cmp esi, dword [esp + 0x14]
jl 0x41fc80
push 0x104
lea eax, [esp + 0x2dc]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
cmp dword [esp + 0x80], 8
lea eax, [esp + 0x2d8]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x30], 0x3c
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], str.runas
jae 0x41fd15
lea eax, [esp + 0x6c]
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x9c], eax
push 0x1c
lea eax, [esp + 0xa0]
push eax
push 1
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 1
mov dword [esp + 0x5c], 0
mov dword [esp + 0xb8], 1
call dword [sym.imp.USER32.dll_SendInput]
mov edi, dword [sym.imp.SHELL32.dll_ShellExecuteExW]
lea eax, [esp + 0x30]
push eax
call edi
test eax, eax
jne 0x41fe50
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
cmp eax, 0x4c7
jne 0x41fe50
mov ebx, dword [sym.imp.KERNEL32.dll_EnumResourceNamesW]
nop
call fcn.0042e280
cmp byte [0x4893d5], 0
jne 0x41fdd2
push 0
push 0x4396f0
push 0xa
push 0
call ebx
mov byte [0x4893d5], 1
push 0
push 0x43aeb0
push 0
push 0x7d1
push dword [esp + 0x34]
call dword [sym.imp.USER32.dll_DialogBoxParamW]
cmp eax, 4
jne 0x41fe01
lea eax, [esp + 0x30]
push eax
call edi
call esi
cmp eax, 0x4c7
je 0x41fdb0
jmp 0x41fe50
sub esp, 0x18
mov ecx, esp
push 0x46abb4
mov dword [esp + 0x3c], 1
call fcn.00402a00
sub esp, 0x18
mov ecx, esp
xor eax, eax
push 0xffffffffffffffff
push eax
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push 0x487ad8
mov word [ecx], ax
call fcn.004024b0
push 0
mov edx, 0x642
lea ecx, [esp + 0x54]
call fcn.0041a180
add esp, 0x34
cmp dword [esp + 0x80], 8
jb 0x421218
push dword [esp + 0x6c]
call fcn.0043d3af
add esp, 4
jmp 0x421218
call fcn.00439640
sub esp, 0x18
mov ecx, esp
push 0x46ab98
mov dword [esp + 0x3c], 1
call fcn.00402a00
sub esp, 0x18
mov ecx, esp
xor eax, eax
push 0xffffffffffffffff
push eax
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push 0x487ad8
mov word [ecx], ax
call fcn.004024b0
jmp 0x41fc4b
push str.TuneUp2012Installer
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
test eax, eax
jne 0x41fee4
mov eax, 0xffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4d8]
xor ecx, esp
call fcn.0043d3b4
mov esp, ebp
pop ebp
ret 0x10
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x41ff08
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4d8]
xor ecx, esp
call fcn.0043d3b4
mov esp, ebp
pop ebp
ret 0x10
xor eax, eax
lea ecx, [esp + 0x178]
mov dword [esp + 0x114], 7
mov dword [esp + 0x110], 0
mov word [esp + 0x100], ax
mov dword [esp + 0x15c], 7
mov dword [esp + 0x158], eax
mov word [esp + 0x148], ax
mov dword [esp + 0x12c], 7
mov dword [esp + 0x128], eax
mov word [esp + 0x118], ax
mov dword [esp + 0x144], 7
mov dword [esp + 0x140], eax
mov word [esp + 0x130], ax
mov dword [esp + 0x174], 7
mov dword [esp + 0x170], eax
mov word [esp + 0x160], ax
call fcn.0041f970
push 0x4693a4
lea ecx, [esp + 0x70]
call fcn.00402a00
push eax
push 0x468d04
lea ecx, [esp + 0x8c]
call fcn.00402a00
mov edx, eax
lea ecx, [esp + 0x17c]
call fcn.0041fa10
add esp, 4
cmp dword [esp + 0x98], 8
jb 0x41ffe6
push dword [esp + 0x84]
call fcn.0043d3af
add esp, 4
xor eax, eax
cmp dword [esp + 0x80], 8
mov dword [esp + 0x98], 7
mov dword [esp + 0x94], 0
mov word [esp + 0x84], ax
jb 0x42001c
push dword [esp + 0x6c]
call fcn.0043d3af
add esp, 4
push str._0_:
lea ecx, [esp + 0x70]
call fcn.00402a00
push eax
push 0x468d08
lea ecx, [esp + 0x8c]
call fcn.00402a00
mov edx, eax
lea ecx, [esp + 0x17c]
call fcn.0041fa10
add esp, 4
cmp dword [esp + 0x98], 8
jb 0x420066
push dword [esp + 0x84]
call fcn.0043d3af
add esp, 4
xor eax, eax
cmp dword [esp + 0x80], 8
mov dword [esp + 0x98], 7
mov dword [esp + 0x94], 0
mov word [esp + 0x84], ax
jb 0x42009c
push dword [esp + 0x6c]
call fcn.0043d3af
add esp, 4
push str..log
lea eax, [esp + 0x17c]
push eax
push str.TUInstallLogBP_
lea ecx, [esp + 0xa8]
call fcn.0041f8e0
mov edx, eax
lea ecx, [esp + 0x78]
call fcn.0040a580
add esp, 4
mov edx, eax
lea ecx, [esp + 0x8c]
call fcn.00401e00
add esp, 4
mov edx, eax
lea ecx, [esp + 0x194]
call fcn.0040a580
add esp, 4
cmp dword [esp + 0x98], 8
jb 0x420103
push dword [esp + 0x84]
call fcn.0043d3af
add esp, 4
xor eax, eax
cmp dword [esp + 0x80], 8
mov dword [esp + 0x98], 7
mov dword [esp + 0x94], 0
mov word [esp + 0x84], ax
jb 0x420139
push dword [esp + 0x6c]
call fcn.0043d3af
add esp, 4
xor eax, eax
cmp dword [esp + 0xb0], 8
mov dword [esp + 0x80], 7
mov dword [esp + 0x7c], 0
mov word [esp + 0x6c], ax
jb 0x42016c
push dword [esp + 0x9c]
call fcn.0043d3af
add esp, 4
push str..log
lea eax, [esp + 0x17c]
push eax
push str.TUInstallLogLP_
lea ecx, [esp + 0xa8]
call fcn.0041f8e0
mov edx, eax
lea ecx, [esp + 0x78]
call fcn.0040a580
add esp, 4
mov edx, eax
lea ecx, [esp + 0x8c]
call fcn.00401e00
add esp, 4
mov edx, eax
lea ecx, [esp + 0x1ac]
call fcn.0040a580
add esp, 4
cmp dword [esp + 0x98], 8
jb 0x4201d3
push dword [esp + 0x84]
call fcn.0043d3af
add esp, 4
xor eax, eax
cmp dword [esp + 0x80], 8
mov dword [esp + 0x98], 7
mov dword [esp + 0x94], 0
mov word [esp + 0x84], ax
jb 0x420209
push dword [esp + 0x6c]
call fcn.0043d3af
add esp, 4
xor eax, eax
cmp dword [esp + 0xb0], 8
mov dword [esp + 0x80], 7
mov dword [esp + 0x7c], 0
mov word [esp + 0x6c], ax
jb 0x42023c
push dword [esp + 0x9c]
call fcn.0043d3af
add esp, 4
xor eax, eax
xor edi, edi
mov dword [esp + 0xfc], 7
mov dword [esp + 0xf8], 0
mov word [esp + 0xe8], ax
mov dword [esp + 0xcc], 7
mov dword [esp + 0xc8], eax
mov word [esp + 0xb8], ax
mov dword [esp + 0xe4], 7
mov dword [esp + 0xe0], eax
mov word [esp + 0xd0], ax
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
call fcn.0041ece0
mov esi, dword [esp + 0x14]
cmp esi, 2
jne 0x42030e
mov eax, dword [ebx + 4]
mov ecx, str.__force_shell_restart
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4202da
test dx, dx
je 0x4202d6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4202da
add eax, 4
add ecx, 4
test dx, dx
jne 0x4202b4
xor eax, eax
jmp 0x4202df
sbb eax, eax
or eax, 1
test eax, eax
jne 0x42030e
call fcn.0041bc90
lea ecx, [esp + 0x6c]
call fcn.0040b2d0
lea ecx, [esp + 0xd0]
call fcn.004023c0
lea ecx, [esp + 0xb8]
call fcn.004023c0
jmp 0x4211ac
test ebx, ebx
je 0x420cb0
xor eax, eax
mov dword [esp + 0x1c], eax
test esi, esi
jle 0x420c84
mov edi, 1
mov dword [esp + 0x18], edi
lea ecx, [ecx]
mov edx, dword [ebx + eax*4]
mov ecx, edx
lea esi, [ecx + 2]
jmp 0x420340
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420340
sub ecx, esi
sar ecx, 1
lea eax, [ecx + 1]
push eax
push edx
call fcn.0043feab
mov esi, dword [esp + 0x24]
add esp, 8
mov esi, dword [ebx + esi*4]
mov ecx, str._silent
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x420396
test dx, dx
je 0x420392
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x420396
add eax, 4
add ecx, 4
test dx, dx
jne 0x420370
xor eax, eax
jmp 0x42039b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4203ea
push 1
push 0x4692ac
lea ecx, [esp + 0x108]
call fcn.00402900
cmp dword [esp + 0x14], edi
jle 0x4203d8
mov eax, dword [esp + 0x1c]
mov eax, dword [ebx + eax*4 + 4]
cmp word [eax], 0x2f
je 0x4203d8
push eax
lea ecx, [esp + 0x134]
call fcn.004019b0
jmp 0x420c68
cmp byte [0x4893f3], 0
jne 0x420c68
jmp 0x421231
mov ecx, str._reducedui
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x420417
test dx, dx
je 0x420413
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x420417
add eax, 4
add ecx, 4
test dx, dx
jne 0x4203f1
xor eax, eax
jmp 0x42041c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x420469
push 0x4692ac
lea ecx, [esp + 0x14c]
call fcn.004019b0
cmp dword [esp + 0x14], edi
jle 0x420457
mov eax, dword [esp + 0x1c]
mov eax, dword [ebx + eax*4 + 4]
cmp word [eax], 0x2f
je 0x420457
push eax
lea ecx, [esp + 0x134]
call fcn.004019b0
jmp 0x420c68
cmp byte [0x4893f3], 0
jne 0x420c68
jmp 0x421250
mov ecx, str._noui
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x420496
test dx, dx
je 0x420492
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x420496
add eax, 4
add ecx, 4
test dx, dx
jne 0x420470
xor eax, eax
jmp 0x42049b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4204e8
push 0x4692ac
lea ecx, [esp + 0x11c]
call fcn.004019b0
cmp dword [esp + 0x14], edi
jle 0x4204d6
mov eax, dword [esp + 0x1c]
mov eax, dword [ebx + eax*4 + 4]
cmp word [eax], 0x2f
je 0x4204d6
push eax
lea ecx, [esp + 0x134]
call fcn.004019b0
jmp 0x420c68
cmp byte [0x4893f3], 0
jne 0x420c68
jmp 0x42126f
mov ecx, str._launchtu
mov eax, esi
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x420516
test dx, dx
je 0x420512
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x420516
add eax, 4
add ecx, 4
test dx, dx
jne 0x4204f0
xor eax, eax
jmp 0x42051b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x420535
push 0x4692ac
lea ecx, [esp + 0x164]
call fcn.004019b0
jmp 0x420c68
mov ecx, str._language
mov eax, esi
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x420566
test dx, dx
je 0x420562
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x420566
add eax, 4
add ecx, 4
test dx, dx
jne 0x420540
xor eax, eax
jmp 0x42056b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4206ce
cmp dword [esp + 0x14], edi
jle 0x420c68
mov eax, dword [esp + 0x1c]
mov eax, dword [ebx + eax*4 + 4]
cmp word [eax], 0x2f
je 0x420c68
push eax
lea ecx, [esp + 0xec]
xor edi, edi
call fcn.004019b0
push edi
push 0x46adcc
lea ecx, [esp + 0xf0]
call fcn.00412800
test eax, eax
je 0x4206b4
push ecx
push 0x46adcc
lea ecx, [esp + 0xf0]
call fcn.00421530
mov ebx, eax
xor eax, eax
mov dword [esp + 0x98], 7
mov dword [esp + 0x94], edi
mov word [esp + 0x84], ax
test ebx, ebx
jle 0x42064f
lea esp, [esp]
push edi
push 0x46adcc
lea ecx, [esp + 0xf0]
call fcn.00412800
mov esi, eax
mov ecx, esi
sub ecx, edi
push ecx
push edi
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0xf4]
call fcn.00403970
push eax
lea ecx, [esp + 0x88]
call fcn.00401970
lea ecx, [esp + 0x9c]
call fcn.004023c0
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x70]
call fcn.004216b0
lea edi, [esi + 1]
cmp edi, ebx
jl 0x4205f0
mov eax, dword [esp + 0xf8]
sub eax, edi
je 0x42069b
push 0xffffffffffffffff
push edi
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0xf4]
call fcn.00403970
push eax
lea ecx, [esp + 0x88]
call fcn.00401970
lea ecx, [esp + 0x9c]
call fcn.004023c0
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x70]
call fcn.004216b0
lea ecx, [esp + 0x84]
call fcn.004023c0
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jmp 0x420c68
lea eax, [esp + 0xe8]
push eax
lea ecx, [esp + 0x70]
call fcn.004216b0
mov edi, dword [esp + 0x18]
jmp 0x420c68
mov ecx, 0x46add0
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4206fb
test dx, dx
je 0x4206f7
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4206fb
add eax, 4
add ecx, 4
test dx, dx
jne 0x4206d5
xor eax, eax
jmp 0x420700
sbb eax, eax
or eax, 1
test eax, eax
jne 0x420732
cmp dword [esp + 0x14], edi
jle 0x420c68
mov eax, dword [esp + 0x1c]
mov eax, dword [ebx + eax*4 + 4]
cmp word [eax], 0x2f
je 0x420c68
push eax
lea ecx, [esp + 0x194]
call fcn.004019b0
jmp 0x420c68
mov ecx, str._loglp
mov eax, esi
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x420766
test dx, dx
je 0x420762
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x420766
add eax, 4
add ecx, 4
test dx, dx
jne 0x420740
xor eax, eax
jmp 0x42076b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x42079d
cmp dword [esp + 0x14], edi
jle 0x420c68
mov eax, dword [esp + 0x1c]
mov eax, dword [ebx + eax*4 + 4]
cmp word [eax], 0x2f
je 0x420c68
push eax
lea ecx, [esp + 0x1ac]
call fcn.004019b0
jmp 0x420c68
mov ecx, str._lpprops
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4207ca
test dx, dx
je 0x4207c6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4207ca
add eax, 4
add ecx, 4
test dx, dx
jne 0x4207a4
xor eax, eax
jmp 0x4207cf
sbb eax, eax
or eax, 1
test eax, eax
jne 0x42082d
push 0x468378
lea ecx, [esp + 0xbc]
call fcn.004019b0
mov esi, edi
cmp edi, dword [esp + 0x14]
jge 0x420c68
cmp dword [esp + 0x14], esi
jle 0x420821
mov eax, dword [ebx + esi*4]
cmp word [eax], 0x2f
je 0x420c68
push eax
lea ecx, [esp + 0xbc]
call fcn.00401a00
push 0x468d04
lea ecx, [esp + 0xbc]
call fcn.00401a00
inc esi
cmp dword [esp + 0x14], esi
jg 0x4207f6
jmp 0x420c68
mov ecx, str._bpprops
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x42085a
test dx, dx
je 0x420856
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x42085a
add eax, 4
add ecx, 4
test dx, dx
jne 0x420834
xor eax, eax
jmp 0x42085f
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4208bd
push 0x468378
lea ecx, [esp + 0xd4]
call fcn.004019b0
mov esi, edi
cmp edi, dword [esp + 0x14]
jge 0x420c68
cmp dword [esp + 0x14], esi
jle 0x4208b1
mov eax, dword [ebx + esi*4]
cmp word [eax], 0x2f
je 0x420c68
push eax
lea ecx, [esp + 0xd4]
call fcn.00401a00
push 0x468d04
lea ecx, [esp + 0xd4]
call fcn.00401a00
inc esi
cmp dword [esp + 0x14], esi
jg 0x420886
jmp 0x420c68
mov ecx, str._supportedlang
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4208ea
test dx, dx
je 0x4208e6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4208ea
add eax, 4
add ecx, 4
test dx, dx
jne 0x4208c4
xor eax, eax
jmp 0x4208ef
sbb eax, eax
or eax, 1
test eax, eax
jne 0x42098b
call fcn.0043b5f0
mov eax, dword [0x489544]
sub eax, dword [0x489540]
test eax, 0xfffffffc
je 0x42129a
call fcn.0042c3b0
test eax, eax
je 0x420c68
push str._nSupported_languages:_n
call fcn.0043fc69
mov eax, dword [0x489544]
mov ecx, dword [0x489540]
sub eax, ecx
sar eax, 2
add esp, 4
xor esi, esi
test eax, eax
je 0x42128e
jmp 0x420950
mov eax, dword [ecx + esi*4]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [ecx*4 + 0x4877e0]
push eax
push str.___s_n
call fcn.0043fc69
mov eax, dword [0x489544]
mov ecx, dword [0x489540]
sub eax, ecx
inc esi
sar eax, 2
add esp, 8
cmp esi, eax
jb 0x420950
jmp 0x42128e
mov ecx, str._avg1
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4209b8
test dx, dx
je 0x4209b4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4209b8
add eax, 4
add ecx, 4
test dx, dx
jne 0x420992
xor eax, eax
jmp 0x4209bd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4209d0
mov dword [0x487790], 1
jmp 0x420c68
mov ecx, str._avg2
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4209fd
test dx, dx
je 0x4209f9
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4209fd
add eax, 4
add ecx, 4
test dx, dx
jne 0x4209d7
xor eax, eax
jmp 0x420a02
sbb eax, eax
or eax, 1
test eax, eax
jne 0x420a15
mov dword [0x487790], 2
jmp 0x420c68
mov ecx, str._avg0
mov eax, esi
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x420a46
test dx, dx
je 0x420a42
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x420a46
add eax, 4
add ecx, 4
test dx, dx
jne 0x420a20
xor eax, eax
jmp 0x420a4b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x420a5e
mov dword [0x487790], 4
jmp 0x420c68
mov ecx, str._webinstaller
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x420a8b
test dx, dx
je 0x420a87
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x420a8b
add eax, 4
add ecx, 4
test dx, dx
jne 0x420a65
xor eax, eax
jmp 0x420a90
sbb eax, eax
or eax, 1
test eax, eax
je 0x420c68
mov ecx, str._webinstaller_nodialog
mov eax, esi
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x420ac6
test dx, dx
je 0x420ac2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x420ac6
add eax, 4
add ecx, 4
test dx, dx
jne 0x420aa0
xor eax, eax
jmp 0x420acb
sbb eax, eax
or eax, 1
test eax, eax
je 0x420c68
mov ecx, str._webinstaller_admin
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x420b06
test dx, dx
je 0x420b02
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x420b06
add eax, 4
add ecx, 4
test dx, dx
jne 0x420ae0
xor eax, eax
jmp 0x420b0b
sbb eax, eax
or eax, 1
test eax, eax
je 0x420c68
mov ecx, str._cid
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x420b46
test dx, dx
je 0x420b42
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x420b46
add eax, 4
add ecx, 4
test dx, dx
jne 0x420b20
xor eax, eax
jmp 0x420b4b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x420b70
cmp dword [esp + 0x14], edi
jle 0x4212bc
mov eax, dword [esp + 0x1c]
mov ecx, 0x489574
push dword [ebx + eax*4 + 4]
call fcn.004019b0
jmp 0x420c68
mov ecx, str._cidflags
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x420b9d
test dx, dx
je 0x420b99
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x420b9d
add eax, 4
add ecx, 4
test dx, dx
jne 0x420b77
xor eax, eax
jmp 0x420ba2
sbb eax, eax
or eax, 1
test eax, eax
jne 0x420bc7
cmp dword [esp + 0x14], edi
jle 0x4212de
mov eax, dword [esp + 0x1c]
mov ecx, 0x48958c
push dword [ebx + eax*4 + 4]
call fcn.004019b0
jmp 0x420c68
mov ecx, str._caller
mov eax, esi
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x420bf6
test dx, dx
je 0x420bf2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x420bf6
add eax, 4
add ecx, 4
test dx, dx
jne 0x420bd0
xor eax, eax
jmp 0x420bfb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x420c55
cmp dword [esp + 0x14], edi
jle 0x421300
mov eax, dword [esp + 0x1c]
mov ecx, 0x46af3c
mov eax, dword [ebx + eax*4 + 4]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x420c45
test dx, dx
je 0x420c38
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x420c45
add eax, 4
add ecx, 4
test dx, dx
jne 0x420c16
xor eax, eax
test eax, eax
sete byte [0x4893d6]
jmp 0x420c68
sbb eax, eax
or eax, 1
test eax, eax
sete byte [0x4893d6]
jmp 0x420c68
cmp word [esi], 0x2f
jne 0x420c68
call fcn.0042c3b0
test eax, eax
jne 0x421322
mov eax, dword [esp + 0x1c]
inc eax
inc edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edi
cmp eax, dword [esp + 0x14]
jl 0x420330
mov edi, dword [esp + 0x6c]
cmp dword [esp + 0x110], 0
jbe 0x420ca9
cmp dword [esp + 0x158], 0
jbe 0x420ca9
push 0x468378
lea ecx, [esp + 0x14c]
call fcn.004019b0
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
push ecx
call fcn.0040a920
add esp, 4
push 0x59c
call fcn.0043d3c3
mov esi, eax
add esp, 4
test esi, esi
je 0x420d2b
push 0
sub esp, 0x18
mov ecx, esp
push 0x468378
call fcn.00402a00
sub esp, 0x18
mov ecx, esp
push 0x468378
call fcn.00402a00
sub esp, 0x18
mov ecx, esp
xor eax, eax
push 0xffffffffffffffff
push eax
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push 0x489574
mov word [ecx], ax
call fcn.004024b0
sub esp, 0x18
mov ecx, esp
push str.AWL2014
call fcn.00402a00
mov ecx, esi
call fcn.0040bac0
mov esi, eax
jmp 0x420d2d
xor esi, esi
lea ecx, [esp + 0x9c]
call fcn.0041f790
mov edx, eax
cmp dword [edx + 0x14], 8
jb 0x420d43
mov edx, dword [edx]
cmp word [edx], 0
jne 0x420d4d
xor ecx, ecx
jmp 0x420d61
mov ecx, edx
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420d52
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [esi + 0x580]
call fcn.00402900
cmp dword [esp + 0xb0], 8
jb 0x420d87
push dword [esp + 0x9c]
call fcn.0043d3af
add esp, 4
mov ecx, esi
call fcn.0040fdd0
test esi, esi
je 0x420da2
mov ecx, esi
call fcn.0040c090
push esi
call fcn.0043d3af
add esp, 4
mov ecx, dword [esp + 0x24]
call fcn.0041b330
push str.01BD4FC9_2F86_4706_A62E_774BB7E9D308
lea ecx, [esp + 0x88]
call fcn.00402a00
lea eax, [esp + 0x18]
push eax
push 0x3e9017c
mov edx, 0xe0000
lea ecx, [esp + 0x8c]
call fcn.00418d20
add esp, 8
cmp dword [esp + 0x98], 8
mov esi, eax
jb 0x420df5
push dword [esp + 0x84]
call fcn.0043d3af
add esp, 4
test esi, esi
js 0x421342
mov ebx, dword [esp + 0x18]
xor al, al
lea esi, [ebx - 1]
cmp esi, 2
ja 0x420e0d
mov al, 1
cmp byte [0x4893d6], 0
je 0x420e62
test al, al
je 0x420e62
push 4
call fcn.0043d3c3
add esp, 4
test eax, eax
je 0x420e32
push ecx
mov ecx, eax
call fcn.0042aff0
jmp 0x420e34
xor eax, eax
lea ecx, [esp + 0x18]
push ecx
push 0
push eax
push 0x42b370
push 0
push 0
mov dword [esp + 0x38], eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [0x4879e0], eax
test eax, eax
jne 0x420e62
mov dword [0x4879e0], 0xffffffff
cmp esi, 6
ja case.0x420e6b.5
jmp dword [esi*4 + 0x421364]
sub esp, 0x18
mov ecx, esp
push 0x487b20
call fcn.004033b0
xor ecx, ecx
call fcn.004390c0
add esp, 0x18
jmp case.0x420e6b.5
sub esp, 0x18
mov ecx, esp
push 0x487b20
call fcn.004033b0
mov ecx, 1
call fcn.004390c0
add esp, 0x18
cmp eax, 6
jne 0x420fb6
call fcn.00419ea0
sub esp, 0x18
lea eax, [esp + 0x130]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0x130]
mov ecx, esp
push eax
call fcn.004033b0
push 0
mov dl, 1
mov ecx, ebx
call fcn.0041bed0
add esp, 0x1c
lea eax, [esp + 0xe8]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0xe8]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0x1f0]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0x1f0]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0x1d8]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0x1c0]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0x1c0]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0x208]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0x1d8]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0xc
lea eax, [esp + 0x150]
mov ecx, esp
push eax
call fcn.00421580
push dword [esp + 0x108]
mov edx, ebx
call fcn.0041d190
add esp, 0xe8
jmp case.0x420e6b.5
call fcn.00418700
jmp case.0x420e6b.5
mov byte [0x4893d7], 1
call fcn.00419ea0
sub esp, 0x18
lea eax, [esp + 0xe8]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0xe8]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0x1f0]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0x1f0]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0x1d8]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0x1c0]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0x1c0]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0x208]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0x1d8]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0xc
lea eax, [esp + 0x150]
mov ecx, esp
push eax
call fcn.00421580
push dword [esp + 0x108]
mov edx, ebx
call fcn.0041d190
add esp, 0xe8
jmp case.0x420e6b.5
sub esp, 0x18
lea eax, [esp + 0x130]
mov ecx, esp
push eax
call fcn.004033b0
sub esp, 0x18
lea eax, [esp + 0x130]
mov ecx, esp
push eax
call fcn.004033b0
push 0
xor dl, dl
mov ecx, ebx
call fcn.0041bed0
add esp, 0x34
cmp dword [0x4879e0], 0xffffffff
je 0x4210f6
mov ecx, 0x469ac4
call fcn.0042b670
mov ecx, str.FINISH
call fcn.0042b670
push 0x2710
push dword [0x4879e0]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x42111d
mov esi, dword [ebx]
test esi, esi
je 0x421114
mov ecx, esi
call fcn.00403900
push esi
call fcn.0043d3af
add esp, 4
push ebx
call fcn.0043d3af
add esp, 4
test edi, edi
je 0x42113a
push dword [esp + 0x20]
mov edx, dword [esp + 0x74]
push ecx
mov ecx, edi
call fcn.0040b890
push edi
call fcn.0043d3af
add esp, 0xc
cmp dword [esp + 0xe4], 8
jb 0x421153
push dword [esp + 0xd0]
call fcn.0043d3af
add esp, 4
xor eax, eax
cmp dword [esp + 0xcc], 8
mov dword [esp + 0xe4], 7
mov dword [esp + 0xe0], 0
mov word [esp + 0xd0], ax
jb 0x42118c
push dword [esp + 0xb8]
call fcn.0043d3af
add esp, 4
xor eax, eax
mov dword [esp + 0xcc], 7
mov dword [esp + 0xc8], 0
mov word [esp + 0xb8], ax
lea ecx, [esp + 0xe8]
call fcn.004023c0
lea ecx, [esp + 0x1a8]
call fcn.004023c0
lea ecx, [esp + 0x190]
call fcn.004023c0
lea ecx, [esp + 0x178]
call fcn.004023c0
lea ecx, [esp + 0x160]
call fcn.004023c0
lea ecx, [esp + 0x130]
call fcn.004023c0
lea ecx, [esp + 0x118]
call fcn.004023c0
lea ecx, [esp + 0x148]
call fcn.004023c0
lea ecx, [esp + 0x100]
call fcn.004023c0
mov ecx, dword [esp + 0x4e4]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0043d3b4
mov esp, ebp
pop ebp
ret 0x10
push str._silent_parameter_requires_a_license_number
lea ecx, [esp + 0xa0]
call fcn.00402a00
xor edx, edx
lea ecx, [esp + 0x9c]
call fcn.00418810
push str._reducedui_parameter_requires_a_license_number
lea ecx, [esp + 0xa0]
call fcn.00402a00
xor edx, edx
lea ecx, [esp + 0x9c]
call fcn.00418810
push str._noui_parameter_requires_a_license_number
lea ecx, [esp + 0xa0]
call fcn.00402a00
xor edx, edx
lea ecx, [esp + 0x9c]
call fcn.00418810
call fcn.0042c400
xor ecx, ecx
call fcn.004187d0
push str.No_language_pack_found
lea ecx, [esp + 0xa0]
call fcn.00402a00
mov edx, 0x80004005
lea ecx, [esp + 0x9c]
call fcn.00418810
push str._cid_requires_an_argument
lea ecx, [esp + 0xa0]
call fcn.00402a00
mov edx, 0x80004005
lea ecx, [esp + 0x9c]
call fcn.00418810
push str._cidflags_requires_an_argument
lea ecx, [esp + 0xa0]
call fcn.00402a00
mov edx, 0x80004005
lea ecx, [esp + 0x9c]
call fcn.00418810
push str._caller_requires_an_argument
lea ecx, [esp + 0xa0]
call fcn.00402a00
mov edx, 0x80004005
lea ecx, [esp + 0x9c]
call fcn.00418810
mov eax, dword [esp + 0x1c]
push dword [ebx + eax*4]
push str._nParameter___s__is_not_supported__n
call fcn.0043fc69
add esp, 8
call fcn.0042c400
xor ecx, ecx
call fcn.004187d0
push str.GetRequiredMsiConfigureAction_failed:
lea ecx, [esp + 0xa0]
call fcn.00402a00
mov edx, esi
lea ecx, [esp + 0x9c]
call fcn.00418810
lea ecx, [ecx]
int3