Function at 0x409f23
Capabilities:
Accept command line arguments
Delete file

Disassembly:
push ebp
mov eax, 0x2c14
lea ebp, [esp - 0x68]
call fcn.004118d0
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
call fcn.00408f4f
mov dword [0x427cb4], eax
call fcn.004089be
xor ebx, ebx
push ebx
mov word [0x427670], ax
call dword [sym.imp.ole32.dll_CoInitialize]
push ebx
push dword [ebp + 0x70]
mov ecx, 0x427cc8
push 0x427c90
call fcn.004085fc
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x420338
push 0x427c8c
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x60], ebx
mov byte [ebp - 0xfac], bl
mov byte [ebp - 0xbac], bl
mov byte [ebp - 0x27ac], bl
mov byte [ebp - 0x1bac], bl
mov byte [0x427878], bl
mov byte [ebp - 0x13ac], bl
mov byte [0x427678], bl
call esi
push str.jother
push 0x427c78
call esi
call dword [0x426060]
push ebx
mov dword [ebp + 0x54], eax
call fcn.0040f7d2
lea eax, [ebp - 0x3ac]
mov dword [esp], 0x420344
push eax
call esi
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x23ac]
push str.http:__www.installengine.com_Msiengine20
push eax
call edi
push 0x800
lea eax, [ebp - 0xfac]
push eax
push str.InstallerXmlURL
call fcn.0040f74f
add esp, 0x14
test eax, eax
jne 0x40a020
push str.http:__java.sun.com_update_1.6.0_1.6.0_b105.xml
lea eax, [ebp - 0xfac]
push 0x4203b4
push eax
call edi
add esp, 0xc
lea eax, [ebp - 0xfac]
push eax
lea eax, [ebp - 0x13ac]
push eax
call esi
xor eax, eax
inc eax
cmp dword [0x427e70], eax
mov dword [ebp + 0x64], eax
jle 0x40a303
mov edi, dword [ebp + 0x64]
mov eax, dword [0x427e74]
push 0x4203b8
shl edi, 2
push dword [edi + eax]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x40a06b
mov dword [ebp + 0x60], 1
jmp 0x40a277
mov eax, dword [0x427e74]
push str._singlemsi
push dword [edi + eax]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x40a091
mov dword [0x427cc4], 1
jmp 0x40a277
mov eax, dword [0x427e74]
push str._installurl
push dword [edi + eax]
call fcn.00411a80
pop ecx
test eax, eax
mov eax, dword [0x427e74]
pop ecx
je 0x40a13b
push 0x4203d8
push dword [edi + eax]
call fcn.00411a80
pop ecx
inc eax
pop ecx
mov dword [ebp + 0x5c], eax
jne 0x40a0cb
xor eax, eax
jmp 0x40a0f6
push dword [ebp + 0x5c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov dword [ebp + 0x58], eax
add eax, eax
add eax, 3
and eax, 0xfffffffc
call fcn.004118d0
mov eax, esp
push dword [ebp + 0x54]
push dword [ebp + 0x58]
push dword [ebp + 0x5c]
push eax
call fcn.004084ed
push ebx
push eax
push ebx
call sub.urlmon.dll_IsValidURL
neg eax
sbb eax, eax
neg eax
mov dword [ebp + 0x5c], eax
mov eax, dword [0x427e74]
push 0x4203dc
push dword [edi + eax]
call fcn.00411a80
pop ecx
pop ecx
inc eax
push eax
lea eax, [ebp - 0xfac]
push eax
call esi
lea eax, [ebp - 0xfac]
push eax
lea eax, [ebp - 0x13ac]
push eax
call esi
jmp 0x40a277
push str._installmethod
push dword [edi + eax]
call fcn.00411a80
pop ecx
test eax, eax
mov eax, dword [0x427e74]
pop ecx
je 0x40a176
push 0x13
push 0x4203f0
push dword [edi + eax]
call fcn.00411a80
pop ecx
pop ecx
inc eax
push eax
push 0x427c78
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
jmp 0x40a277
push str._lang
push dword [edi + eax]
call fcn.00411a80
pop ecx
test eax, eax
mov eax, dword [0x427e74]
pop ecx
je 0x40a1c1
push 0x4203fc
push dword [edi + eax]
call fcn.00411a80
inc eax
push eax
call fcn.004128bc
mov edi, eax
push edi
call fcn.00408a1d
add esp, 0x10
test eax, eax
je 0x40a277
mov word [0x427670], di
jmp 0x40a277
push 0x420400
push dword [edi + eax]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x40a1df
mov dword [ebp + 0x5c], 1
jmp 0x40a277
mov eax, dword [0x427e74]
push str.SPONSORS0
push dword [edi + eax]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x40a1fe
mov dword [0x426170], ebx
jmp 0x40a277
mov eax, dword [0x427e74]
push 0x420410
push dword [edi + eax]
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x40a250
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x420414
lea eax, [ebp - 0x3ac]
push eax
call edi
inc dword [ebp + 0x64]
mov eax, dword [0x427e74]
mov ecx, dword [ebp + 0x64]
push dword [eax + ecx*4]
lea eax, [ebp - 0x3ac]
push eax
call edi
push 0x420418
lea eax, [ebp - 0x3ac]
push eax
call edi
jmp 0x40a277
mov eax, dword [0x427e74]
push dword [edi + eax]
lea eax, [ebp - 0x3ac]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x42041c
lea eax, [ebp - 0x3ac]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
inc dword [ebp + 0x64]
mov eax, dword [ebp + 0x64]
cmp eax, dword [0x427e70]
jl 0x40a042
cmp dword [ebp + 0x5c], ebx
je 0x40a303
cmp dword [ebp + 0x60], ebx
jne 0x40a2f7
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
mov esi, 0x400
push esi
lea eax, [ebp - 0x1ac]
push eax
push 0x7d3
push dword [ebp + 0x70]
call edi
mov eax, dword [0x427e74]
push dword [eax]
lea eax, [ebp - 0x1ac]
push eax
lea eax, [ebp - 0x7ac]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push esi
lea eax, [ebp - 0x1ac]
push eax
push 0x7d4
push dword [ebp + 0x70]
call edi
push 0x10
lea eax, [ebp - 0x1ac]
push eax
lea eax, [ebp - 0x7ac]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [ebp + 0x64], 0xfffffffe
jmp 0x40a868
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
mov esi, 0x400
push esi
lea eax, [ebp - 0x1ac]
push eax
push 0x7d4
push dword [ebp + 0x70]
call edi
mov dword [0x427cbc], ebx
jmp 0x40a379
cmp eax, 0x80070210
je 0x40a41d
cmp eax, 0x80070211
je 0x40a42c
push esi
lea eax, [ebp - 0x7ac]
push eax
push 0x7ed
push dword [ebp + 0x70]
call edi
cmp dword [ebp + 0x60], ebx
jne 0x40a94a
push 5
lea eax, [ebp - 0x1ac]
push eax
lea eax, [ebp - 0x7ac]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 2
je 0x40a94a
lea eax, [ebp - 0x13ac]
push eax
call fcn.0040929b
cmp eax, ebx
pop ecx
jl 0x40a328
call fcn.00408928
test eax, eax
jne 0x40a4ab
cmp dword [ebp + 0x60], ebx
jne 0x40a411
push esi
lea eax, [ebp - 0x7ac]
push eax
push 0x7e4
push dword [ebp + 0x70]
call edi
push esi
lea eax, [ebp - 0x17ac]
push eax
push 0x7e8
push dword [ebp + 0x70]
call edi
lea eax, [ebp - 0x17ac]
push eax
lea eax, [ebp - 0x7ac]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push esi
lea eax, [ebp - 0x17ac]
push eax
push 0x7e6
push dword [ebp + 0x70]
call edi
lea eax, [ebp - 0x17ac]
push eax
lea eax, [ebp - 0x7ac]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x10
lea eax, [ebp - 0x1ac]
push eax
lea eax, [ebp - 0x7ac]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [ebp + 0x64], 0xfffffffd
jmp 0x40a868
mov dword [0x427cbc], 1
jmp 0x40a38a
lea eax, [ebp - 0x13ac]
push eax
call fcn.00408f99
test eax, eax
pop ecx
je 0x40a472
push esi
lea eax, [ebp - 0x7ac]
push eax
push 0x7ee
push dword [ebp + 0x70]
call edi
cmp dword [ebp + 0x60], ebx
jne 0x40a46a
push ebx
lea eax, [ebp - 0x1ac]
push eax
lea eax, [ebp - 0x7ac]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0xfffffffffffffff9
pop eax
jmp 0x40a899
push pe_nt_image_headers32
lea eax, [ebp - 0xac]
push eax
push 0x7d5
push dword [ebp + 0x70]
call edi
lea eax, [ebp - 0x13ac]
push eax
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x7ac]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x40a92f
call fcn.00408a60
cmp dword [0x427cc4], ebx
mov dword [ebp + 0x58], eax
jne 0x40a4db
cmp dword [0x427cbc], ebx
jne 0x40a4db
cmp dword [0x427cb4], ebx
je 0x40a4d3
cmp dword [0x427cb8], ebx
je 0x40a4db
mov dword [0x427cc4], ebx
jmp 0x40a4e5
mov dword [0x427cc4], 1
lea eax, [ebp - 0xbac]
push eax
call fcn.004096b3
test eax, eax
pop ecx
jge 0x40a4ff
or dword [ebp + 0x64], 0xffffffff
jmp 0x40a868
cmp dword [ebp + 0x58], ebx
jne 0x40a583
lea ecx, [ebp - 0x70]
call fcn.00402e0c
mov eax, dword [ebp + 0x60]
cmp eax, ebx
lea ecx, [ebp - 0x23ac]
mov dword [ebp - 0x40], ecx
lea ecx, [ebp - 0x27ac]
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0xbac]
mov dword [ebp - 0x34], ecx
lea ecx, [ebp - 0x1fac]
mov dword [ebp - 0x38], ecx
lea ecx, [ebp - 0x3ac]
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], ebx
mov dword [ebp - 0x50], 0x42041e
mov dword [ebp - 0x30], ecx
mov dword [ebp + 0x1c], ebx
je 0x40a562
lea eax, [ebp - 0x70]
push eax
call fcn.004029b2
test eax, eax
jne 0x40a57b
jmp 0x40a74b
push ebx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x70]
call fcn.0040ce51
cmp eax, 1
jne 0x40a74b
lea ecx, [ebp - 0x70]
call fcn.00402d63
cmp dword [0x427cc4], ebx
jne 0x40a5a0
lea eax, [ebp - 0xfac]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x40a682
lea ecx, [ebp - 0x70]
call fcn.00402e0c
movzx eax, word [0x427670]
push eax
push 0x420420
lea eax, [ebp - 0x17ac]
push str._s_d.MST
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
xor eax, eax
mov ax, word [0x427670]
push eax
lea eax, [ebp - 0x1bac]
push 0x427878
push eax
call fcn.00408cb6
mov eax, dword [ebp + 0x60]
lea ecx, [ebp - 0x1bac]
mov dword [ebp - 0x4c], ecx
lea ecx, [ebp - 0xfac]
mov dword [ebp - 0x50], ecx
lea ecx, [ebp - 0xbac]
mov dword [ebp - 0x34], ecx
lea ecx, [ebp - 0x1fac]
mov dword [ebp - 0x38], ecx
lea ecx, [ebp - 0x3ac]
mov dword [ebp - 0x30], ecx
mov ecx, dword [0x427cc4]
mov dword [ebp + 0x1c], ecx
add esp, 0x1c
cmp eax, ebx
lea ecx, [ebp - 0x17ac]
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], 1
mov dword [ebp - 0x48], 0x427878
mov dword [ebp - 0x44], ecx
je 0x40a732
lea eax, [ebp - 0x70]
push eax
call fcn.004029b2
test eax, eax
je 0x40a74b
push 0x420430
push 0x420438
push dword [ebp - 0x38]
lea eax, [ebp - 0x2bac]
push str._s__s_s_iftw.msi
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [ebp + 0x1c]
add esp, 0x14
lea ecx, [ebp - 0x70]
mov dword [0x427cc4], eax
call fcn.00402d63
cmp dword [0x427cc0], ebx
je 0x40a69b
push 0x427c8c
push 0x427678
call fcn.0040cfe2
pop ecx
pop ecx
cmp dword [0x427cc4], ebx
je 0x40a8a9
lea eax, [ebp - 0x1bac]
push eax
call fcn.00408879
test eax, eax
pop ecx
jne 0x40a75f
lea eax, [ebp - 0xbac]
push eax
lea eax, [ebp - 0x1fac]
push eax
lea eax, [ebp - 0x7ac]
push str.Unable_to_download__s_ninto__s.
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
cmp dword [ebp + 0x60], ebx
jne 0x40a6fb
push 0x10
lea eax, [ebp - 0x1ac]
push eax
lea eax, [ebp - 0x7ac]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp dword [0x427cc0], ebx
push 0xfffffffffffffffa
pop esi
je 0x40a72a
push esi
push ebx
push ebx
push 0x420470
push 0x427c8c
push 0x42047c
push 0x427c78
push 0x427778
call fcn.0040fe4a
add esp, 0x20
mov dword [ebp + 0x64], esi
jmp 0x40a868
push ebx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x70]
call fcn.0040ce51
cmp eax, 1
je 0x40a650
lea ecx, [ebp - 0x70]
mov dword [ebp + 0x64], 0xfffffffe
call fcn.00402d63
jmp 0x40a868
lea eax, [ebp - 0x1fac]
push eax
lea eax, [ebp - 0x1bac]
push eax
call fcn.00408e5f
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp + 0x64], eax
je 0x40a79e
cmp dword [0x427cc0], ebx
je 0x40a868
push eax
push ebx
push ebx
push 0x420480
push 0x427c8c
push 0x42048c
jmp 0x40a856
cmp dword [0x427cc4], ebx
je 0x40a8a9
lea eax, [ebp - 0x1bac]
push eax
lea eax, [ebp - 0xbac]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
pop ecx
pop ecx
cmp dword [ebp + 0x60], ebx
je 0x40a7da
lea eax, [ebp - 0x3ac]
push eax
lea eax, [ebp - 0xbac]
push eax
call fcn.00409155
pop ecx
pop ecx
cmp dword [0x427cc0], ebx
je 0x40a812
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
push str._METHOD
lea eax, [ebp - 0x3ac]
push eax
call esi
push 0x427c78
lea eax, [ebp - 0x3ac]
push eax
call esi
push 0x42049c
lea eax, [ebp - 0x3ac]
push eax
call esi
lea eax, [ebp - 0x3ac]
push eax
lea eax, [ebp - 0xbac]
push eax
call fcn.00409811
cmp dword [0x427cc0], ebx
pop ecx
pop ecx
mov dword [ebp + 0x64], eax
je 0x40a868
cmp eax, ebx
je 0x40a868
cmp eax, 0xbc2
je 0x40a868
cmp eax, 0x669
je 0x40a868
push eax
push ebx
push ebx
push 0x4204a0
push 0x427c8c
push 0x4204ac
push 0x427c78
push 0x427778
call fcn.0040fe4a
add esp, 0x20
lea eax, [ebp - 0xbac]
push eax
call fcn.00408f99
test eax, eax
pop ecx
jne 0x40a886
lea eax, [ebp - 0xbac]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, 0x427cc8
call fcn.0040a9d9
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [ebp + 0x64]
lea esp, [ebp - 0x2bb8]
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10
lea eax, [ebp - 0xfac]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x40a7c0
lea eax, [ebp - 0x2bac]
push eax
lea eax, [ebp - 0xbac]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0xbac]
push eax
call fcn.00408f99
add esp, 0xc
test eax, eax
je 0x40a7c0
lea eax, [ebp - 0x13ac]
push eax
lea eax, [ebp - 0xbac]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x40a7c0
lea eax, [ebp - 0xbac]
push eax
call fcn.0040929b
cmp eax, 0x80070211
pop ecx
jne 0x40a7c0
push esi
lea eax, [ebp - 0x7ac]
push eax
push 0x7ee
push dword [ebp + 0x70]
call edi
cmp dword [ebp + 0x60], ebx
jne 0x40a94a
push ebx
lea eax, [ebp - 0x1ac]
push eax
lea eax, [ebp - 0x7ac]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
or eax, 0xffffffff
jmp 0x40a899