Function at 0x40a601
Capabilities:
Accept command line arguments
Create directory
Delete file
Get common file path
Get geographical location

Disassembly:
push ebp
lea ebp, [esp - 0x35bc]
mov eax, 0x363c
call fcn.004147d0
mov eax, dword [0x431420]
xor eax, ebp
mov dword [ebp + 0x35b8], eax
mov eax, dword [ebp + 0x35c4]
push ebx
push esi
push edi
push 0x4266a7
mov dword [ebp - 0x54], eax
call fcn.0040bee7
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
call fcn.0040ea3d
xor ebx, ebx
mov esi, 0x103
mov di, ax
push esi
lea eax, [ebp + 0x2ca5]
push ebx
push eax
mov word [0x4327c0], di
mov dword [ebp - 0x64], ebx
mov byte [ebp + 0x2ca4], bl
call fcn.004139c0
movzx eax, di
push eax
call fcn.0040eaab
add esp, 0x10
test eax, eax
je 0x40a6a0
movzx eax, word [0x4327c0]
push eax
push str.jre_d.MST
push 0xffffffffffffffff
mov dword [ebp - 0x64], eax
lea eax, [ebp + 0x2ca4]
push 0x104
push eax
call fcn.00416093
add esp, 0x14
mov edi, 0x3ff
push edi
lea eax, [ebp + 0x2599]
push ebx
push eax
mov byte [ebp + 0x2598], bl
call fcn.004139c0
push esi
lea eax, [ebp + 0x31ad]
push ebx
push eax
mov byte [ebp + 0x31ac], bl
call fcn.004139c0
push edi
lea eax, [ebp + 0x2199]
push ebx
push eax
mov byte [ebp + 0x2198], bl
call fcn.004139c0
push esi
lea eax, [ebp + 0x2ba1]
push ebx
push eax
mov byte [ebp + 0x2ba0], bl
call fcn.004139c0
push esi
lea eax, [ebp + 0x32b1]
push ebx
push eax
mov dword [ebp - 0x58], 1
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov byte [ebp + 0x32b0], bl
call fcn.004139c0
push edi
lea eax, [ebp + 0x1199]
push ebx
push eax
mov dword [ebp - 0x70], ebx
mov byte [ebp + 0x1198], bl
call fcn.004139c0
add esp, 0x48
push ebx
call fcn.0040d6fb
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov dword [esp], 0x427ac8
push 0x432d2c
call esi
push str.joff
push 0x432bd0
call esi
push 0x7f
lea eax, [ebp + 0x33b5]
push ebx
push eax
mov byte [ebp + 0x33b4], bl
call fcn.004139c0
lea eax, [ebp + 0x33b4]
push eax
call fcn.0040d38b
push 0x7f
lea eax, [ebp + 0x3435]
push ebx
push eax
mov byte [ebp + 0x3434], bl
call fcn.004139c0
lea eax, [ebp + 0x3434]
push 0x80
push eax
mov dword [ebp - 0x80], 0xffffff9d
call fcn.0040ede7
add esp, 0x24
test eax, eax
jne 0x40a7ca
push 0x427abc
lea eax, [ebp + 0x3434]
push eax
call esi
push str.No_Old_AU_Version_found_n
call fcn.0040cb43
pop ecx
push str.amd64
push str.i586
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x40a7e5
mov dword [ebp - 0x74], 1
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
xor eax, eax
inc eax
mov dword [ebp - 0x60], eax
cmp dword [0x4330c4], eax
jle 0x40aacf
mov eax, dword [0x4330c8]
mov esi, dword [ebp - 0x60]
push str.STATIC1
push dword [eax + esi*4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x40a81e
mov dword [ebp - 0x5c], 1
mov eax, dword [0x4330c8]
push str.OEMUPDATE1
push dword [eax + esi*4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x40a841
mov dword [ebp - 0x78], 1
jmp 0x40aab2
mov eax, dword [0x4330c8]
mov eax, dword [eax + esi*4]
push str._lang
push eax
call fcn.004137e0
test eax, eax
mov eax, dword [0x4330c8]
mov eax, dword [eax + esi*4]
pop ecx
pop ecx
je 0x40a8e0
push 0x427a6c
push eax
call fcn.004137e0
inc eax
push eax
call fcn.00416668
movzx eax, ax
push eax
mov dword [ebp - 0x68], eax
call fcn.0040eaab
add esp, 0x10
test eax, eax
je 0x40aab2
mov ax, word [ebp - 0x68]
mov word [0x4327c0], ax
mov eax, dword [0x4330c8]
push 0x427a6c
push dword [eax + esi*4]
call fcn.00416595
pop ecx
pop ecx
jmp 0x40a8d5
push esi
lea eax, [ebp + 0x2ca4]
push str.jre_s.MST
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
push esi
call fcn.00416668
push 0x427a6c
push ebx
mov dword [ebp - 0x64], eax
call fcn.00416595
add esp, 0x18
mov esi, eax
cmp esi, ebx
jne 0x40a8ab
jmp 0x40aab2
push str.COUNTRYOVERRIDE
push eax
call fcn.004137e0
pop ecx
test eax, eax
mov eax, dword [0x4330c8]
pop ecx
je 0x40a92a
mov esi, dword [eax + esi*4]
push 0x14
push 0x427a6c
push esi
call fcn.004137e0
pop ecx
pop ecx
inc eax
push eax
mov esi, 0x432d40
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push esi
push str.Country
push ebx
call fcn.0040c6db
add esp, 0xc
jmp 0x40aab2
mov eax, dword [eax + esi*4]
push str.SPONSORPREF
push eax
call fcn.004137e0
pop ecx
test eax, eax
mov eax, dword [0x4330c8]
pop ecx
je 0x40a974
mov esi, dword [eax + esi*4]
push 0xff
push 0x427a6c
push esi
call fcn.004137e0
pop ecx
pop ecx
inc eax
push eax
push 0x432be8
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov dword [0x432e5c], 1
jmp 0x40aab2
push 3
push 0x427a38
push dword [eax + esi*4]
call fcn.004164d5
add esp, 0xc
test eax, eax
jne 0x40a9ca
push 0x427a34
lea eax, [ebp + 0x2598]
push eax
call edi
mov eax, dword [0x4330c8]
push dword [eax + esi*4]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
sub eax, 4
push eax
mov eax, dword [0x4330c8]
mov eax, dword [eax + esi*4]
add eax, 3
push eax
lea eax, [ebp + 0x2598]
push eax
call fcn.004163a0
add esp, 0xc
jmp 0x40aaa4
mov eax, dword [0x4330c8]
push 2
push 0x427a30
push dword [eax + esi*4]
call fcn.004164d5
add esp, 0xc
test eax, eax
jne 0x40aa04
push 0x427a34
lea eax, [ebp + 0x2598]
push eax
call edi
mov eax, dword [0x4330c8]
mov eax, dword [eax + esi*4]
add eax, 2
push eax
jmp 0x40aa9b
mov eax, dword [0x4330c8]
push 0x427a2c
push dword [eax + esi*4]
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x40aa27
mov dword [ebp - 0x6c], 1
jmp 0x40aab2
mov eax, dword [0x4330c8]
push str.TEST_FINAL_DIALOG1
push dword [eax + esi*4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x40ab2c
mov eax, dword [0x4330c8]
push str.TEST_PROGRESS_DIALOG1
push dword [eax + esi*4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x40ab38
mov eax, dword [0x4330c8]
push str.TEST_WELCOME_DIALOG1
push dword [eax + esi*4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x40ab63
mov eax, dword [0x4330c8]
push str.TEST_CHANGE_DIALOG1
push dword [eax + esi*4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x40ab96
mov eax, dword [0x4330c8]
push dword [eax + esi*4]
lea eax, [ebp + 0x2598]
push eax
call edi
push 0x427a34
lea eax, [ebp + 0x2598]
push eax
call edi
inc dword [ebp - 0x60]
mov eax, dword [ebp - 0x60]
cmp eax, dword [0x4330c4]
jl 0x40a7fd
cmp dword [ebp - 0x6c], ebx
je 0x40aacf
mov dword [0x432d1c], ebx
push 0x3ff
lea eax, [ebp + 0x1d99]
push ebx
push eax
mov byte [ebp + 0x1d98], bl
call fcn.004139c0
push ebx
call fcn.0040eb5b
add esp, 0x10
test eax, eax
jne 0x40abc8
push 0x400
lea eax, [ebp + 0x1d98]
push eax
push 4
push dword [ebp - 0x54]
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x10
push 0x4266a7
lea eax, [ebp + 0x1d98]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0xfffffffffffffffe
pop eax
jmp 0x40b670
call fcn.0040a407
xor eax, eax
jmp 0x40b670
lea ecx, [ebp + 0x92c]
call fcn.004123e1
push ebx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp + 0x92c]
call fcn.0040a354
lea ecx, [ebp + 0x92c]
call fcn.0041228f
jmp 0x40ab31
lea ecx, [ebp + 0xc34]
call fcn.0041055d
push ebx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp + 0xc34]
call fcn.0040a258
cmp dword [ebp + 0xc48], ebx
je 0x40ab31
push dword [ebp + 0xc48]
call fcn.004134be
jmp 0x40ab31
lea ecx, [ebp + 0x2f48]
call fcn.004130c4
push ebx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp + 0x2f48]
call fcn.0040a2ac
cmp dword [ebp + 0x2f5c], ebx
je 0x40ab31
push dword [ebp + 0x2f5c]
jmp 0x40ab8f
push 0xff
lea eax, [ebp + 0x2da9]
push ebx
push eax
mov byte [ebp + 0x2da8], bl
call fcn.004139c0
add esp, 0xc
lea ecx, [ebp - 0x50]
call fcn.004020a3
mov dword [ebp - 0x60], ebx
cmp dword [ebp - 0x5c], ebx
jne 0x40ad0d
cmp dword [ebp - 0x40], ebx
je 0x40ac07
xor esi, esi
inc esi
mov dword [ebp - 0x5c], esi
jmp 0x40ad10
cmp dword [ebp - 0x3c], ebx
je 0x40ac57
xor esi, esi
inc esi
cmp dword [ebp - 0x3c], esi
jne 0x40ac3d
push str._REINSTALLMODEvaums_REINSTALLALL
lea eax, [ebp + 0x2da8]
push eax
mov dword [ebp - 0x60], esi
call edi
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp + 0x33b4]
push str.1.7.0_b147
push eax
call esi
pop ecx
pop ecx
jmp 0x40ac5d
lea ecx, [ebp - 0x50]
call fcn.004016f3
test eax, eax
jne 0x40abff
push str._REMOVEEXISTING1
lea eax, [ebp + 0x2da8]
push eax
call edi
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
push dword [ebp - 0x74]
lea eax, [ebp + 0x31ac]
push eax
call fcn.0040fe03
push 0x103
lea eax, [ebp + 0x2999]
push ebx
push eax
mov byte [ebp + 0x2998], bl
call fcn.004139c0
push 0x103
lea eax, [ebp + 0x30a9]
push ebx
push eax
mov byte [ebp + 0x30a8], bl
call fcn.004139c0
lea eax, [ebp + 0x30a8]
push eax
call fcn.0040bfd3
add esp, 0x24
push str.1.7.0
lea eax, [ebp + 0x30a8]
push 0x427988
push eax
lea eax, [ebp + 0x2ba0]
cmp dword [ebp - 0x74], ebx
je 0x40ad27
push str._sSunJava_s_s_x64Data1.cab
push eax
call esi
push str.1.7.0
push 0x427988
lea eax, [ebp + 0x30a8]
push eax
lea eax, [ebp + 0x2998]
push str._sSunJava_s_s_x64_
push eax
call esi
lea eax, [ebp + 0x2ca4]
push eax
push str.1.7.0
push 0x427988
lea eax, [ebp + 0x30a8]
push eax
push str._sSunJava_s_s_x64_s
jmp 0x40ad6b
xor esi, esi
inc esi
cmp dword [ebp - 0x40], ebx
jne 0x40ac14
cmp dword [ebp - 0x3c], esi
je 0x40ac49
jmp 0x40ac57
push str._sSunJava_s_sData1.cab
push eax
call esi
push str.1.7.0
push 0x427988
lea eax, [ebp + 0x30a8]
push eax
lea eax, [ebp + 0x2998]
push str._sSunJava_s_s_
push eax
call esi
lea eax, [ebp + 0x2ca4]
push eax
push str.1.7.0
push 0x427988
lea eax, [ebp + 0x30a8]
push eax
push str._sSunJava_s_s_s
lea eax, [ebp + 0x32b0]
push eax
call esi
add esp, 0x40
lea eax, [ebp + 0x2ba0]
push eax
push str.JAVA_INSTALLER
push 0x66
push dword [ebp - 0x54]
call fcn.0040ed15
add esp, 0x10
test eax, eax
je 0x40b642
lea eax, [ebp + 0x31ac]
push eax
push str.JAVA_INSTALLER
cmp dword [ebp - 0x5c], ebx
je 0x40adad
push 0x67
jmp 0x40adaf
push 0x65
push dword [ebp - 0x54]
call fcn.0040ed15
add esp, 0x10
cmp eax, ebx
je 0x40b642
push 0x3ff
lea eax, [ebp + 0x1599]
push ebx
push eax
mov byte [ebp + 0x1598], bl
call fcn.004139c0
push 0x103
lea eax, [ebp + 0x2a9d]
push ebx
push eax
mov byte [ebp + 0x2a9c], bl
call fcn.004139c0
lea eax, [ebp + 0x2a9c]
push eax
lea eax, [ebp + 0x2998]
push eax
lea eax, [ebp + 0x1598]
push eax
push dword [ebp - 0x54]
call fcn.00402463
push 0x104
push 0x4327c8
call fcn.0040ec0e
add esp, 0x30
test eax, eax
jne 0x40ae2c
push 0xfffffffffffffffd
jmp 0x40ab26
cmp dword [ebp - 0x6c], ebx
je 0x40ae56
lea eax, [ebp + 0x2598]
push 0x4278e0
push eax
call fcn.004137e0
pop ecx
pop ecx
test eax, eax
jne 0x40ae56
push str.__qn
lea eax, [ebp + 0x2598]
push eax
call edi
cmp dword [0x432d20], ebx
je 0x40ae88
push str._METHOD
lea eax, [ebp + 0x2598]
push eax
call edi
push 0x432bd0
lea eax, [ebp + 0x2598]
push eax
call edi
push 0x427a34
lea eax, [ebp + 0x2598]
push eax
call edi
mov eax, dword [ebp - 0x64]
mov ecx, 0x411
cmp eax, ecx
jg 0x40af21
je 0x40af11
sub eax, 0x404
je 0x40af01
sub eax, 3
je 0x40aef1
sub eax, 3
je 0x40aede
dec eax
dec eax
je 0x40aecb
sub eax, 4
jne 0x40af82
lea eax, [ebp + 0x32b0]
push eax
push str.JAVA_INSTALLER
push 0x5f
jmp 0x40af77
lea eax, [ebp + 0x32b0]
push eax
push str.JAVA_INSTALLER
push 0x5e
jmp 0x40af77
lea eax, [ebp + 0x32b0]
push eax
push str.JAVA_INSTALLER
push 0x5d
jmp 0x40af77
lea eax, [ebp + 0x32b0]
push eax
push str.JAVA_INSTALLER
push 0x5c
jmp 0x40af77
lea eax, [ebp + 0x32b0]
push eax
push str.JAVA_INSTALLER
push 0x5b
jmp 0x40af77
lea eax, [ebp + 0x32b0]
push eax
push str.JAVA_INSTALLER
push 0x60
jmp 0x40af77
sub eax, 0x412
je 0x40af69
sub eax, 4
je 0x40af59
sub eax, 7
je 0x40af49
sub eax, 0x3e7
jne 0x40af82
lea eax, [ebp + 0x32b0]
push eax
push str.JAVA_INSTALLER
push 0x63
jmp 0x40af77
lea eax, [ebp + 0x32b0]
push eax
push str.JAVA_INSTALLER
push 0x62
jmp 0x40af77
lea eax, [ebp + 0x32b0]
push eax
push str.JAVA_INSTALLER
push 0x6b
jmp 0x40af77
lea eax, [ebp + 0x32b0]
push eax
push str.JAVA_INSTALLER
push 0x61
push dword [ebp - 0x54]
call fcn.0040ed15
add esp, 0x10
mov eax, 0x409
cmp word [0x4327c0], ax
lea eax, [ebp + 0x2598]
push eax
je 0x40afbd
lea eax, [ebp + 0x2ca4]
push eax
lea eax, [ebp + 0x31ac]
push eax
push 0x4327c8
lea eax, [ebp + 0x2198]
push str.__s___i___s__TRANSFORMS_s__s
push eax
call esi
add esp, 0x18
jmp 0x40afda
lea eax, [ebp + 0x31ac]
push eax
push 0x4327c8
lea eax, [ebp + 0x2198]
push str.__s___i___s___s
push eax
call esi
add esp, 0x14
push 0x3ff
lea eax, [ebp + 0x1999]
push ebx
push eax
mov byte [ebp + 0x1998], bl
call fcn.004139c0
lea eax, [ebp + 0x2da8]
push eax
lea eax, [ebp + 0x2198]
push eax
lea eax, [ebp + 0x1998]
push str._s__s
push eax
call esi
add esp, 0x1c
cmp dword [ebp - 0x6c], ebx
jne 0x40b1ab
lea ecx, [ebp + 0xc34]
call fcn.0041055d
push ebx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp + 0xc34]
call fcn.0040a258
cmp eax, 1
jne 0x40b1db
push str._SKIPLICENSE1_PROG0_ENDDIALOG0
lea eax, [ebp + 0x1998]
push eax
call edi
push str._SKIPLICENSE1_PROG0_ENDDIALOG0
lea eax, [ebp + 0x2198]
push eax
call edi
mov eax, dword [ebp + 0xc5c]
mov dword [ebp - 0x5c], 1
cmp dword [ebp - 0x5c], 0x403
mov dword [ebp - 0x64], eax
jne 0x40b0c6
lea ecx, [ebp + 0x3c8]
call fcn.0041055d
push ebx
mov dword [ebp + 0x3f0], 1
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp + 0x3c8]
call fcn.0040a258
mov dword [ebp - 0x5c], eax
cmp eax, 1
jne 0x40b1db
mov eax, dword [ebp + 0x3f0]
mov dword [ebp - 0x64], eax
cmp dword [ebp + 0x3dc], ebx
je 0x40b0c6
push dword [ebp + 0x3dc]
call fcn.004134be
cmp dword [ebp - 0x64], ebx
je 0x40b18b
lea ecx, [ebp + 0x2f48]
call fcn.004130c4
push ebx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp + 0x2f48]
call fcn.0040a2ac
mov dword [ebp - 0x5c], eax
cmp eax, 1
jne 0x40b172
push 0x103
lea eax, [ebp + 0x34b5]
push ebx
push eax
mov byte [ebp + 0x34b4], bl
call fcn.004139c0
lea eax, [ebp + 0x2f70]
push eax
lea eax, [ebp + 0x34b4]
push eax
call fcn.00413a40
push 0x3ff
lea eax, [ebp + 0x52d]
push ebx
push eax
mov byte [ebp + 0x52c], bl
call fcn.004139c0
lea eax, [ebp + 0x34b4]
push eax
lea eax, [ebp + 0x52c]
push str._INSTALLDIR__s_
push eax
call esi
add esp, 0x2c
lea eax, [ebp + 0x52c]
push eax
lea eax, [ebp + 0x1998]
push eax
call edi
lea eax, [ebp + 0x52c]
push eax
lea eax, [ebp + 0x2198]
push eax
call edi
jmp 0x40b178
cmp dword [ebp - 0x5c], 2
je 0x40b1e1
cmp dword [ebp + 0x2f5c], ebx
je 0x40b18b
push dword [ebp + 0x2f5c]
call fcn.004134be
cmp dword [ebp - 0x5c], 0x403
je 0x40b076
cmp dword [ebp + 0xc48], ebx
je 0x40b1ab
push dword [ebp + 0xc48]
call fcn.004134be
call fcn.0040cead
mov edi, eax
cmp edi, ebx
je 0x40b225
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
lea eax, [ebp + 0x1d98]
push str.initial_ClearMSIStatus___failed.__Return_Code:__d__ErrorCode:__d
push eax
call esi
lea eax, [ebp + 0x1d98]
push eax
call fcn.0040cb43
add esp, 0x14
push ebx
call fcn.00416337
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push str.2.1.5.1
lea eax, [ebp + 0x3434]
push eax
push 0xffffffffffffff9d
push 0xffffffffffffffec
push ebx
mov eax, str.1.7.0_b147
push eax
lea ecx, [ebp + 0x33b4]
push ecx
push eax
push 0x432d2c
push 0x42780c
push 0x432bd0
push 0x432ad0
call fcn.0040dd1a
add esp, 0x4c
jmp 0x40b1db
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x7c], ebx
cmp dword [ebp - 0x6c], ebx
je 0x40b250
push str.SilentInstall
call fcn.0040fb67
lea eax, [ebp + 0x1998]
push eax
call fcn.00401bd7
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
jmp 0x40b3a4
lea ecx, [ebp + 0x92c]
call fcn.004123e1
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
lea ecx, [ebp + 0x92c]
call fcn.0040a3ab
cmp dword [0x432d1c], ebx
je 0x40b2b2
lea eax, [ebp + 0x2a9c]
push 0x432be8
push eax
call fcn.0040ef75
pop ecx
pop ecx
mov dword [ebp - 0x70], eax
cmp eax, 0xfffffffe
jne 0x40b2ad
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push str.2.1.5.1
lea eax, [ebp + 0x3434]
push eax
push 0xffffffffffffff9d
push 0xfffffffffffffffe
jmp 0x40b1f8
mov dword [0x432d54], eax
mov edi, str.InstallStatus
cmp dword [ebp - 0x60], ebx
je 0x40b2d1
push 0x400
lea eax, [ebp + 0x1198]
push eax
push edi
call fcn.0040d569
add esp, 0xc
lea eax, [ebp + 0x1998]
push eax
call fcn.00401bd7
mov dword [ebp - 0x58], eax
mov dword [esp], 0x1ff
lea eax, [ebp + 0x2ea9]
push ebx
push eax
mov byte [ebp + 0x2ea8], bl
call fcn.004139c0
push 0x200
lea eax, [ebp + 0x2ea8]
push eax
push edi
call fcn.0040d569
add esp, 0x18
push str.reinstall
lea eax, [ebp + 0x2ea8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x40b377
call fcn.0040cead
mov dword [ebp - 0x58], eax
cmp eax, ebx
je 0x40b35a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [ebp - 0x58]
lea eax, [ebp + 0x1d98]
push str.ClearMSIStatus___failed.__Return_Code:__d__ErrorCode:__d
push eax
call esi
lea eax, [ebp + 0x1d98]
push eax
call fcn.0040cb43
add esp, 0x14
jmp 0x40b377
push ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x7c], ebx
call fcn.0040d6fb
lea eax, [ebp + 0x2198]
push eax
call fcn.00401bd7
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], ebx
jne 0x40b38d
push ebx
lea ecx, [ebp + 0x92c]
call fcn.00411888
call fcn.0040a407
push dword [ebp + 0x930]
call dword [sym.imp.USER32.dll_DestroyWindow]
lea ecx, [ebp + 0x92c]
call fcn.0041228f
cmp dword [ebp - 0x58], ebx
je 0x40b413
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.0040d05c
mov edi, eax
pop ecx
pop ecx
cmp edi, ebx
je 0x40b3e3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
lea eax, [ebp + 0x1d98]
push str.GetMSIStatus___failed.__Return_Code:__d__ErrorCode:__d
push eax
call esi
lea eax, [ebp + 0x1d98]
push eax
call fcn.0040cb43
add esp, 0x14
call fcn.0040cead
mov edi, eax
cmp edi, ebx
je 0x40b413
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
lea eax, [ebp + 0x1d98]
push str.ClearMSIStatus___after_get_failed.__Return_Code:__d__ErrorCode:__d
push eax
call esi
lea eax, [ebp + 0x1d98]
push eax
call fcn.0040cb43
add esp, 0x14
cmp dword [ebp - 0x60], ebx
je 0x40b425
lea eax, [ebp + 0x1198]
push eax
call fcn.0040d6fb
pop ecx
call fcn.0040ea26
cmp dword [0x432d1c], ebx
je 0x40b49c
cmp dword [ebp - 0x58], ebx
jne 0x40b49c
push 0x103
lea eax, [ebp + 0x34b5]
push ebx
push eax
mov byte [ebp + 0x34b4], bl
call fcn.004139c0
add esp, 0xc
cmp dword [ebp - 0x70], 8
je 0x40b465
cmp dword [ebp - 0x70], 9
je 0x40b465
push str.SPWEB
jmp 0x40b46a
push str.MSDIR
lea eax, [ebp + 0x1598]
push eax
call fcn.0040efed
push eax
lea eax, [ebp + 0x34b4]
push eax
call esi
add esp, 0x10
lea eax, [ebp + 0x34b4]
push eax
push dword [ebp - 0x70]
lea eax, [ebp + 0x2a9c]
push eax
call fcn.0040efaf
add esp, 0xc
lea eax, [ebp + 0x2a9c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [ebp - 0x74], ebx
jne 0x40b5f0
cmp dword [ebp - 0x58], ebx
jne 0x40b5f0
push 0x103
lea eax, [ebp + 0x34b5]
push ebx
push eax
mov byte [ebp + 0x34b4], bl
call fcn.004139c0
lea eax, [ebp + 0x30a8]
push eax
lea eax, [ebp + 0x34b4]
push str._sSunJavaAU_
push eax
call esi
add esp, 0x18
push ebx
lea eax, [ebp + 0x34b4]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea eax, [ebp + 0x34b4]
push eax
lea eax, [ebp + 0x31ac]
push str._sau.msi
push eax
call esi
lea eax, [ebp + 0x34b4]
push eax
lea eax, [ebp + 0x2ba0]
push str._sau.cab
push eax
call esi
lea eax, [ebp + 0x2ba0]
push eax
mov edi, str.JAVA_INSTALLER
push edi
push 0x6a
push dword [ebp - 0x54]
call fcn.0040ed15
lea eax, [ebp + 0x31ac]
push eax
push edi
push 0x69
push dword [ebp - 0x54]
call fcn.0040ed15
add esp, 0x38
test eax, eax
je 0x40b5f0
call fcn.0040f6d1
lea eax, [ebp + 0x31ac]
push eax
push 0x4327c8
lea eax, [ebp + 0x2198]
cmp dword [ebp - 0x78], ebx
je 0x40b57a
push str.__s___i___s__ALLUSERS1_OEMUPDATE1__qn
jmp 0x40b57f
push str.__s___i___s__ALLUSERS1__qn
push eax
call esi
lea eax, [ebp + 0x2198]
add esp, 0x10
push eax
call fcn.00401bd7
mov dword [ebp - 0x80], eax
mov dword [esp], 0x103
lea eax, [ebp + 0x2fa5]
push ebx
push eax
mov byte [ebp + 0x2fa4], bl
call fcn.004139c0
add esp, 0xc
lea eax, [ebp + 0x2fa4]
push eax
push ebx
push ebx
push 0x2b
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
js 0x40b5f0
push str.1.7.0_b147
lea eax, [ebp + 0x2fa4]
push eax
lea eax, [ebp + 0x2198]
push str._sJavaJava_Updatejaureg.exe__r_jre__s
push eax
call esi
lea eax, [ebp + 0x2198]
push eax
call fcn.00401bd7
add esp, 0x14
push dword [ebp - 0x7c]
lea eax, [ebp + 0x3434]
push dword [ebp - 0x68]
lea ecx, [ebp + 0x33b4]
push ebx
push ebx
push ebx
push ebx
push ebx
push str.2.1.5.1
push eax
push dword [ebp - 0x80]
mov eax, str.1.7.0_b147
push dword [ebp - 0x58]
push ebx
push eax
push ecx
push eax
push 0x432d2c
push 0x42780c
push 0x432bd0
push 0x432ad0
call fcn.0040dd1a
add esp, 0x4c
cmp dword [ebp - 0x78], ebx
je 0x40b642
call fcn.0040cfd0
push str.SilentInstall
call fcn.0040fc03
push ebx
call fcn.0040d6fb
push ebx
push str.VisitorId
push ebx
call fcn.0040c6db
push ebx
push str.Method
push ebx
call fcn.0040c6db
mov eax, dword [ebp - 0x58]
add esp, 0x20
mov ecx, dword [ebp + 0x35b8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00413f3b
add ebp, 0x35bc
leave
ret 0x10