Function at 0x403a30
Capabilities:
Create process on windows
Delete file
Get installed programs
Read file on windows
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbd8
push esi
push edi
mov dword [ebp - 0x998], 0xffffffff
mov dword [ebp - 0x984], 0
mov dword [ebp - 0x978], 0
mov dword [ebp - 0x97c], 0
mov dword [ebp - 0x994], 0
push 0x4168dc
push 0x4162a8
call fcn.0040a8f0
add esp, 8
push 0x104
push 0x4162a8
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [ebp - 0x9a0], 0
push 0x411864
call fcn.0040a9f0
add esp, 4
mov esi, eax
push 0x4162a8
call fcn.0040a9f0
add esp, 4
lea ecx, [esi + eax + 1]
push ecx
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xae8], eax
mov edx, dword [ebp - 0xae8]
mov dword [ebp - 0x9a0], edx
push 0x4162a8
push str.opening__exe_s__for_I_O
mov eax, dword [ebp - 0x9a0]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov ecx, dword [ebp - 0x9a0]
push ecx
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0x9a0], 0
je 0x403b2f
mov edx, dword [ebp - 0x9a0]
mov dword [ebp - 0xaec], edx
mov eax, dword [ebp - 0xaec]
push eax
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x9a0], 0
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push 0x4162a8
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x998], eax
cmp dword [ebp - 0x998], 0xffffffff
jne 0x403b60
jmp 0x405204
push str.open_successful
call fcn.0040665b
add esp, 4
push str.looking_for_install_options
call fcn.0040665b
add esp, 4
push 2
push 0
push 0xfffffffffffffffc
mov ecx, dword [ebp - 0x998]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea edx, [ebp - 0x988]
push edx
push 4
lea eax, [ebp - 0x99c]
push eax
mov ecx, dword [ebp - 0x998]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0x9a4], 0
push 0x4118c8
call fcn.0040a9f0
add esp, 4
add eax, 0x15
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xaf0], eax
mov edx, dword [ebp - 0xaf0]
mov dword [ebp - 0x9a4], edx
mov eax, dword [ebp - 0x988]
push eax
push str.found_install_options__nbytes_ld_
mov ecx, dword [ebp - 0x9a4]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov edx, dword [ebp - 0x9a4]
push edx
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0x9a4], 0
je 0x403c3a
mov eax, dword [ebp - 0x9a4]
mov dword [ebp - 0xaf4], eax
mov ecx, dword [ebp - 0xaf4]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x9a4], 0
push str.loading_install_options
call fcn.0040665b
add esp, 4
push 2
push 0
push 0xfffffb32
mov edx, dword [ebp - 0x998]
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x988]
push eax
push 0x4ca
push 0x4163b0
mov ecx, dword [ebp - 0x998]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push str.loaded
call fcn.0040665b
add esp, 4
mov byte [0x4164bf], 0
mov byte [0x416610], 0
mov byte [0x416661], 0
mov edx, dword [ebp + 8]
push edx
call fcn.004030a0
add esp, 4
mov dword [ebp - 0x980], 0
jmp 0x403cc6
mov eax, dword [ebp - 0x980]
add eax, 1
mov dword [ebp - 0x980], eax
mov ecx, dword [ebp - 0x980]
cmp ecx, dword [ebp - 0x99c]
jge 0x404083
push 2
push 0
mov edx, dword [ebp - 0x980]
add edx, 1
imul edx, edx, 0x167
add edx, 0x4ce
xor eax, eax
sub eax, edx
push eax
mov ecx, dword [ebp - 0x998]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea edx, [ebp - 0x988]
push edx
push 0x167
lea eax, [ebp - 0x974]
push eax
mov ecx, dword [ebp - 0x998]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov byte [ebp - 0x935], 0
mov byte [ebp - 0x92a], 0
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x919]
and edx, 0x20
cmp edx, 0x20
jne 0x403e0e
cmp dword [0x4168b4], 1
jne 0x403e0e
mov dword [ebp - 0x9a8], 0
push 0x411930
call fcn.0040a9f0
add esp, 4
mov esi, eax
lea eax, [ebp - 0x974]
push eax
call fcn.0040a9f0
add esp, 4
lea ecx, [esi + eax + 1]
push ecx
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xaf8], eax
mov edx, dword [ebp - 0xaf8]
mov dword [ebp - 0x9a8], edx
lea eax, [ebp - 0x974]
push eax
push str.skipping:__s__system_files_ok_
mov ecx, dword [ebp - 0x9a8]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov edx, dword [ebp - 0x9a8]
push edx
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0x9a8], 0
je 0x403e00
mov eax, dword [ebp - 0x9a8]
mov dword [ebp - 0xafc], eax
mov ecx, dword [ebp - 0xafc]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x9a8], 0
mov dword [ebp - 4], 1
mov dword [ebp - 8], 1
cmp dword [ebp - 4], 0
jne 0x403fbd
mov dword [ebp - 0x9ac], 0
push 0x411970
call fcn.0040a9f0
add esp, 4
mov esi, eax
lea edx, [ebp - 0x974]
push edx
call fcn.0040a9f0
add esp, 4
lea eax, [esi + eax + 1]
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb00], eax
mov ecx, dword [ebp - 0xb00]
mov dword [ebp - 0x9ac], ecx
lea edx, [ebp - 0x974]
push edx
push str.extracting:__s
mov eax, dword [ebp - 0x9ac]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov ecx, dword [ebp - 0x9ac]
push ecx
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0x9ac], 0
je 0x403eb8
mov edx, dword [ebp - 0x9ac]
mov dword [ebp - 0xb04], edx
mov eax, dword [ebp - 0xb04]
push eax
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x9ac], 0
sub esp, 0x168
mov ecx, 0x59
lea esi, [ebp - 0x974]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x998]
push ecx
call section..text
add esp, 0x16c
mov dword [ebp - 8], eax
mov dword [ebp - 0x9b0], 0
cmp dword [ebp - 8], 0
je 0x403f01
mov dword [ebp - 0xbd4], 0x4119a4
jmp 0x403f0b
mov dword [ebp - 0xbd4], 0x4119a8
push 0x411990
call fcn.0040a9f0
add esp, 4
mov esi, eax
mov edx, dword [ebp - 0xbd4]
push edx
call fcn.0040a9f0
add esp, 4
lea eax, [esi + eax + 1]
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb08], eax
mov ecx, dword [ebp - 0xb08]
mov dword [ebp - 0x9b0], ecx
cmp dword [ebp - 8], 0
je 0x403f5a
mov dword [ebp - 0xbd8], 0x4119b0
jmp 0x403f64
mov dword [ebp - 0xbd8], str.error
mov edx, dword [ebp - 0xbd8]
push edx
push str.extract_result__s
mov eax, dword [ebp - 0x9b0]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov ecx, dword [ebp - 0x9b0]
push ecx
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0x9b0], 0
je 0x403fbd
mov edx, dword [ebp - 0x9b0]
mov dword [ebp - 0xb0c], edx
mov eax, dword [ebp - 0xb0c]
push eax
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x9b0], 0
cmp dword [ebp - 8], 0
jne 0x40407e
mov dword [ebp - 0x9b4], 0
push 0x4119d0
call fcn.0040a9f0
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x974]
push ecx
call fcn.00405951
add esp, 4
push eax
call fcn.0040a9f0
add esp, 4
lea edx, [esi + eax + 1]
push edx
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb10], eax
mov eax, dword [ebp - 0xb10]
mov dword [ebp - 0x9b4], eax
lea ecx, [ebp - 0x974]
push ecx
call fcn.00405951
add esp, 4
push eax
push str.Runtime_installation_error._r_nCould_not_install:__s
mov edx, dword [ebp - 0x9b4]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, dword [ebp - 0x9b4]
push eax
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0x9b4], 0
je 0x404079
mov ecx, dword [ebp - 0x9b4]
mov dword [ebp - 0xb14], ecx
mov edx, dword [ebp - 0xb14]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x9b4], 0
jmp 0x4051ff
jmp 0x403cb7
push 0x4168e0
call fcn.0040665b
add esp, 4
cmp dword [0x4163b4], 1
jne 0x4040dc
push 0x104
lea eax, [ebp - 0xab8]
push eax
mov ecx, dword [0x416890]
push ecx
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
push str.system.ini
lea edx, [ebp - 0xab8]
push edx
push str.SCRNSAVE.EXE
push str.boot
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 1
push 0
push 1
push 0x11
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
cmp dword [0x4168b0], 1
jne 0x404114
mov dword [ebp - 0xabc], str.Some_system_files_have_been_updated._You_must_restart__r_nyour_computer_for_these_changes_to_take_effect._r_n_r_nWould_you_like_to_restart_now_
push 0x44
push 0x4165c0
mov eax, dword [ebp - 0xabc]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x40410f
call fcn.00406767
jmp 0x4051fa
cmp dword [0x4163b0], 1
jne 0x404131
push 0x40
push 0x4165c0
push 0x4163c0
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp dword [0x4163b8], 1
jne 0x404147
push 1
push str.rundll32.exe_shell32.dll_Control_RunDLL_desk.cpl__1
call dword [sym.imp.KERNEL32.dll_WinExec]
cmp dword [0x41666a], 1
jne 0x40443f
push str.Shortcut_creation_flag_is_on
call fcn.0040665b
add esp, 4
cmp dword [0x41666e], 0x100
jne 0x40421f
mov dword [ebp - 0xac0], 0
push 0x411b3c
call fcn.0040a9f0
add esp, 4
mov esi, eax
mov ecx, dword [0x4168a8]
push ecx
call fcn.0040a9f0
add esp, 4
lea edx, [esi + eax + 1]
push edx
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb18], eax
mov eax, dword [ebp - 0xb18]
mov dword [ebp - 0xac0], eax
mov ecx, dword [0x4168a8]
push ecx
push str.creating_shortcut_dir___s_
mov edx, dword [ebp - 0xac0]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, dword [ebp - 0xac0]
push eax
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0xac0], 0
je 0x404211
mov ecx, dword [ebp - 0xac0]
mov dword [ebp - 0xb1c], ecx
mov edx, dword [ebp - 0xb1c]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0xac0], 0
mov eax, dword [0x4168a8]
push eax
call fcn.00406539
add esp, 4
cmp dword [0x4168ac], 0
je 0x40424d
mov ecx, dword [0x4168ac]
mov dword [ebp - 0xb20], ecx
mov edx, dword [ebp - 0xb20]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [0x4168ac], 0
mov eax, dword [0x4168a8]
push eax
call fcn.0040a9f0
add esp, 4
add eax, 1
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb24], eax
mov ecx, dword [ebp - 0xb24]
mov dword [0x4168ac], ecx
mov edx, dword [0x4168a8]
push edx
mov eax, dword [0x4168ac]
push eax
call fcn.0040a8f0
add esp, 8
push 0x411b74
push 0x4168ac
call fcn.004055a0
add esp, 8
push 0x416611
push 0x4168ac
call fcn.004055a0
add esp, 8
push str..lnk
push 0x4168ac
call fcn.004055a0
add esp, 8
mov dword [ebp - 0xac4], 0
push 0x411b80
call fcn.0040a9f0
add esp, 4
mov esi, eax
mov ecx, dword [0x4168ac]
push ecx
call fcn.0040a9f0
add esp, 4
lea edx, [esi + eax + 1]
push edx
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb28], eax
mov eax, dword [ebp - 0xb28]
mov dword [ebp - 0xac4], eax
mov ecx, dword [0x4168ac]
push ecx
push str.shortcut_is___s_
mov edx, dword [ebp - 0xac4]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, dword [ebp - 0xac4]
push eax
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0xac4], 0
je 0x404364
mov ecx, dword [ebp - 0xac4]
mov dword [ebp - 0xb2c], ecx
mov edx, dword [ebp - 0xb2c]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0xac4], 0
mov dword [ebp - 0xac8], 0
push 0x411ba8
call fcn.0040a9f0
add esp, 4
mov esi, eax
mov eax, dword [0x416890]
push eax
call fcn.0040a9f0
add esp, 4
lea ecx, [esi + eax + 1]
push ecx
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb30], eax
mov edx, dword [ebp - 0xb30]
mov dword [ebp - 0xac8], edx
mov eax, dword [0x416890]
push eax
push str.shortcut_to___s_
mov ecx, dword [ebp - 0xac8]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov edx, dword [ebp - 0xac8]
push edx
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0xac8], 0
je 0x404402
mov eax, dword [ebp - 0xac8]
mov dword [ebp - 0xb34], eax
mov ecx, dword [ebp - 0xb34]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0xac8], 0
mov edx, dword [0x4168ac]
push edx
push 0x416611
mov eax, dword [0x416890]
push eax
call fcn.00406e66
add esp, 0xc
cmp eax, 1
jne 0x404430
push str.shortcut_created_successfully
call fcn.0040665b
add esp, 4
jmp 0x40443d
push str.shortcut_creation_failed
call fcn.0040665b
add esp, 4
jmp 0x40444c
push str.Shortcut_creation_flag_is_off
call fcn.0040665b
add esp, 4
cmp dword [0x4168bc], 1
jne 0x404d03
push str.make_uninstall_registry_entries
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0x978], 0
je 0x404494
mov ecx, dword [ebp - 0x978]
mov dword [ebp - 0xb38], ecx
mov edx, dword [ebp - 0xb38]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x978], 0
push 0x411c4c
call fcn.0040a9f0
add esp, 4
add eax, 1
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb3c], eax
mov eax, dword [ebp - 0xb3c]
mov dword [ebp - 0x978], eax
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall_
mov ecx, dword [ebp - 0x978]
push ecx
call fcn.0040a8f0
add esp, 8
push 0x416611
lea edx, [ebp - 0x978]
push edx
call fcn.004055a0
add esp, 8
mov eax, dword [ebp - 0x978]
push eax
call fcn.00405951
add esp, 4
mov dword [ebp - 0xacc], 0
push 0x411cbc
call fcn.0040a9f0
add esp, 4
mov esi, eax
mov ecx, dword [ebp - 0x978]
push ecx
call fcn.0040a9f0
add esp, 4
lea edx, [esi + eax + 1]
push edx
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb40], eax
mov eax, dword [ebp - 0xb40]
mov dword [ebp - 0xacc], eax
mov ecx, dword [ebp - 0x978]
push ecx
push str.key___s_
mov edx, dword [ebp - 0xacc]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, dword [ebp - 0xacc]
push eax
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0xacc], 0
je 0x404596
mov ecx, dword [ebp - 0xacc]
mov dword [ebp - 0xb44], ecx
mov edx, dword [ebp - 0xb44]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0xacc], 0
lea eax, [ebp - 0x98c]
push eax
lea ecx, [ebp - 0x990]
push ecx
push 0
push 0xf003f
push 0
push 0x4168e4
push 0
mov edx, dword [ebp - 0x978]
push edx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x404cd5
push str.key_created__setting_values
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0x97c], 0
je 0x40460e
mov eax, dword [ebp - 0x97c]
mov dword [ebp - 0xb48], eax
mov ecx, dword [ebp - 0xb48]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x97c], 0
push 0x416611
call fcn.0040a9f0
add esp, 4
add eax, 1
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb4c], eax
mov edx, dword [ebp - 0xb4c]
mov dword [ebp - 0x97c], edx
push 0x416611
mov eax, dword [ebp - 0x97c]
push eax
call fcn.0040a8f0
add esp, 8
mov ecx, dword [ebp - 0x97c]
push ecx
call fcn.00405951
add esp, 4
cmp dword [0x4168b8], 1
jne 0x404679
push str._Screen_Saver
lea edx, [ebp - 0x97c]
push edx
call fcn.004055a0
add esp, 8
mov dword [ebp - 0xad0], 0
push 0x411d00
call fcn.0040a9f0
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x97c]
push eax
call fcn.0040a9f0
add esp, 4
lea ecx, [esi + eax + 1]
push ecx
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb50], eax
mov edx, dword [ebp - 0xb50]
mov dword [ebp - 0xad0], edx
mov eax, dword [ebp - 0x97c]
push eax
push str.DisplayName_value___s_
mov ecx, dword [ebp - 0xad0]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov edx, dword [ebp - 0xad0]
push edx
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0xad0], 0
je 0x404719
mov eax, dword [ebp - 0xad0]
mov dword [ebp - 0xb54], eax
mov ecx, dword [ebp - 0xb54]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0xad0], 0
mov edx, dword [ebp - 0x97c]
push edx
call fcn.0040a9f0
add esp, 4
push eax
mov eax, dword [ebp - 0x97c]
push eax
push 1
push 0
push str.DisplayName
mov ecx, dword [ebp - 0x990]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov dword [ebp - 0xc], eax
mov edx, dword [0x4168a4]
push edx
lea eax, [ebp - 0x994]
push eax
call fcn.004055a0
add esp, 8
push 0x411d3c
lea ecx, [ebp - 0x994]
push ecx
call fcn.004055a0
add esp, 8
push str.REMOVE
lea edx, [ebp - 0x994]
push edx
call fcn.004055a0
add esp, 8
push 0x416611
lea eax, [ebp - 0x994]
push eax
call fcn.004055a0
add esp, 8
mov dword [ebp - 0xad4], 0
push 0x411d48
call fcn.0040a9f0
add esp, 4
mov esi, eax
mov ecx, dword [ebp - 0x97c]
push ecx
call fcn.0040a9f0
add esp, 4
lea edx, [esi + eax + 1]
push edx
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb58], eax
mov eax, dword [ebp - 0xb58]
mov dword [ebp - 0xad4], eax
mov ecx, dword [ebp - 0x97c]
push ecx
push str.UninstallString_value___s_
mov edx, dword [ebp - 0xad4]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, dword [ebp - 0xad4]
push eax
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0xad4], 0
je 0x40483b
mov ecx, dword [ebp - 0xad4]
mov dword [ebp - 0xb5c], ecx
mov edx, dword [ebp - 0xb5c]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0xad4], 0
mov eax, dword [ebp - 0x994]
push eax
call fcn.0040a9f0
add esp, 4
push eax
mov ecx, dword [ebp - 0x994]
push ecx
push 1
push 0
push str.UninstallString
mov edx, dword [ebp - 0x990]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov dword [ebp - 0xad8], 0
push 0x411d90
call fcn.0040a9f0
add esp, 4
mov esi, eax
mov eax, dword [0x4168a0]
push eax
call fcn.0040a9f0
add esp, 4
lea ecx, [esi + eax + 1]
push ecx
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb60], eax
mov edx, dword [ebp - 0xb60]
mov dword [ebp - 0xad8], edx
mov eax, dword [0x4168a0]
push eax
push str.InstallDir_value___s_
mov ecx, dword [ebp - 0xad8]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov edx, dword [ebp - 0xad8]
push edx
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0xad8], 0
je 0x404906
mov eax, dword [ebp - 0xad8]
mov dword [ebp - 0xb64], eax
mov ecx, dword [ebp - 0xb64]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0xad8], 0
mov edx, dword [0x4168a0]
push edx
call fcn.0040a9f0
add esp, 4
push eax
mov eax, dword [0x4168a0]
push eax
push 1
push 0
push str.InstallDir
mov ecx, dword [ebp - 0x990]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp dword [0x4168b8], 1
jne 0x404a0e
mov dword [ebp - 0xadc], 0
push 0x411dcc
call fcn.0040a9f0
add esp, 4
mov esi, eax
mov edx, dword [0x416894]
push edx
call fcn.0040a9f0
add esp, 4
lea eax, [esi + eax + 1]
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb68], eax
mov ecx, dword [ebp - 0xb68]
mov dword [ebp - 0xadc], ecx
mov edx, dword [0x416894]
push edx
push str.PathToSCR_value___s_
mov eax, dword [ebp - 0xadc]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov ecx, dword [ebp - 0xadc]
push ecx
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0xadc], 0
je 0x4049df
mov edx, dword [ebp - 0xadc]
mov dword [ebp - 0xb6c], edx
mov eax, dword [ebp - 0xb6c]
push eax
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0xadc], 0
mov ecx, dword [0x416894]
push ecx
call fcn.0040a9f0
add esp, 4
push eax
mov edx, dword [0x416894]
push edx
push 1
push 0
push 0x411dfc
mov eax, dword [ebp - 0x990]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
jmp 0x404a44
push str.PathToSCR_not_set__this_is_an_EXE
call fcn.0040665b
add esp, 4
push 0x4168e8
call fcn.0040a9f0
add esp, 4
push eax
push 0x4168ec
push 1
push 0
push str.PathToSCR
mov ecx, dword [ebp - 0x990]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp dword [0x4168b8], 1
jne 0x404abe
push str.Shortcut_dir_not_set__this_is_an_SCR
call fcn.0040665b
add esp, 4
push 0x4168f0
call fcn.0040a9f0
add esp, 4
push eax
push 0x4168f4
push 1
push 0
push 0x411e60
mov edx, dword [ebp - 0x990]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push str.Path_to_LNK_not_set__this_is_an_SCR
call fcn.0040665b
add esp, 4
push 0x4168f8
call fcn.0040a9f0
add esp, 4
push eax
push 0x4168fc
push 1
push 0
push 0x411e90
mov eax, dword [ebp - 0x990]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
jmp 0x404cb9
cmp dword [0x41666e], 0x100
jne 0x404b9c
mov dword [ebp - 0xae0], 0
push 0x411e9c
call fcn.0040a9f0
add esp, 4
mov esi, eax
mov ecx, dword [0x4168a8]
push ecx
call fcn.0040a9f0
add esp, 4
lea edx, [esi + eax + 1]
push edx
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb70], eax
mov eax, dword [ebp - 0xb70]
mov dword [ebp - 0xae0], eax
mov ecx, dword [0x4168a8]
push ecx
push str.Shortcut_dir___s_
mov edx, dword [ebp - 0xae0]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, dword [ebp - 0xae0]
push eax
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0xae0], 0
je 0x404b6e
mov ecx, dword [ebp - 0xae0]
mov dword [ebp - 0xb74], ecx
mov edx, dword [ebp - 0xb74]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0xae0], 0
mov eax, dword [0x4168a8]
push eax
call fcn.0040a9f0
add esp, 4
push eax
mov ecx, dword [0x4168a8]
push ecx
push 1
push 0
push 0x411ec4
mov edx, dword [ebp - 0x990]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
jmp 0x404bd2
push str.Shortcut_is_on_desktop
call fcn.0040665b
add esp, 4
push 0x416900
call fcn.0040a9f0
add esp, 4
push eax
push 0x416904
push 1
push 0
push str.ShortcutDir
mov eax, dword [ebp - 0x990]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp dword [0x4168ac], 0
jne 0x404bed
push str.bad_news_m_psLink_is_null
call fcn.0040665b
add esp, 4
jmp 0x404cb9
mov dword [ebp - 0xae4], 0
push 0x411f10
call fcn.0040a9f0
add esp, 4
mov esi, eax
mov ecx, dword [0x4168ac]
push ecx
call fcn.0040a9f0
add esp, 4
lea edx, [esi + eax + 1]
push edx
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb78], eax
mov eax, dword [ebp - 0xb78]
mov dword [ebp - 0xae4], eax
mov ecx, dword [0x4168ac]
push ecx
push str.Path_to_LNK_file_is___s_
mov edx, dword [ebp - 0xae4]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, dword [ebp - 0xae4]
push eax
call fcn.0040665b
add esp, 4
cmp dword [ebp - 0xae4], 0
je 0x404c8d
mov ecx, dword [ebp - 0xae4]
mov dword [ebp - 0xb7c], ecx
mov edx, dword [ebp - 0xb7c]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0xae4], 0
mov eax, dword [0x4168ac]
push eax
call fcn.0040a9f0
add esp, 4
push eax
mov ecx, dword [0x4168ac]
push ecx
push 1
push 0
push str.PathToLNK
mov edx, dword [ebp - 0x990]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [ebp - 0x990]
push eax
call dword [sym.imp.ADVAPI32.dll_RegFlushKey]
mov ecx, dword [ebp - 0x990]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x404d03
push str.the_key_could_not_be_created
call fcn.0040665b
add esp, 4
mov dword [ebp - 8], 0
push 0x416611
push str.Runtime_installation_error._r_nCould_not_register_uninstaller_for__s
lea edx, [ebp - 0x80c]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
cmp dword [0x4163bc], 1
jne 0x404e7b
mov eax, dword [0x416890]
push eax
call fcn.00405fa9
add esp, 4
test eax, eax
je 0x404e7b
cmp dword [ebp - 0x984], 0
je 0x404d54
mov ecx, dword [ebp - 0x984]
mov dword [ebp - 0xb80], ecx
mov edx, dword [ebp - 0xb80]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x984], 0
mov eax, dword [0x416890]
push eax
call fcn.0040a9f0
add esp, 4
add eax, 1
push eax
call fcn.0040a9e0
add esp, 4
mov dword [ebp - 0xb84], eax
mov ecx, dword [ebp - 0xb84]
mov dword [ebp - 0x984], ecx
mov edx, dword [0x416890]
push edx
mov eax, dword [ebp - 0x984]
push eax
call fcn.0040a8f0
add esp, 8
push str.___
lea ecx, [ebp - 0x984]
push ecx
call fcn.004055a0
add esp, 8
push 0x411fbc
lea edx, [ebp - 0x984]
push edx
call fcn.004055a0
add esp, 8
push 0x4162a8
lea eax, [ebp - 0x984]
push eax
call fcn.004055a0
add esp, 8
push 0x411fc0
lea ecx, [ebp - 0x984]
push ecx
call fcn.004055a0
add esp, 8
push 0x411fc4
lea edx, [ebp - 0x984]
push edx
call fcn.004055a0
add esp, 8
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x984]
push ecx
call fcn.004055a0
add esp, 8
push 0
push 1
mov edx, dword [ebp - 0x984]
push edx
call fcn.00406061
add esp, 0xc
mov eax, dword [0x416890]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [0x4168c0], 0
je 0x404e7b
mov ecx, dword [0x4168c8]
push ecx
call fcn.004061de
add esp, 4
mov edx, dword [0x4168c8]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [0x4168c4], 0
je 0x404e7b
mov eax, dword [0x4168c4]
push eax
call fcn.0040a9f0
add esp, 4
test eax, eax
jbe 0x404e7b
mov ecx, dword [0x4168c4]
push ecx
call fcn.0040617b
add esp, 4
cmp dword [ebp - 0x984], 0
je 0x404ea9
mov edx, dword [ebp - 0x984]
mov dword [ebp - 0xb88], edx
mov eax, dword [ebp - 0xb88]
push eax
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x984], 0
cmp dword [ebp - 0x978], 0
je 0x404ed7
mov ecx, dword [ebp - 0x978]
mov dword [ebp - 0xb8c], ecx
mov edx, dword [ebp - 0xb8c]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x978], 0
cmp dword [ebp - 0x97c], 0
je 0x404f05
mov eax, dword [ebp - 0x97c]
mov dword [ebp - 0xb90], eax
mov ecx, dword [ebp - 0xb90]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x97c], 0
cmp dword [ebp - 0x994], 0
je 0x404f33
mov edx, dword [ebp - 0x994]
mov dword [ebp - 0xb94], edx
mov eax, dword [ebp - 0xb94]
push eax
call fcn.0040aa6b
add esp, 4
mov dword [ebp - 0x994], 0
cmp dword [0x41687c], 0
je 0x404f61
mov ecx, dword [0x41687c]
mov dword [ebp - 0xb98], ecx
mov edx, dword [ebp - 0xb98]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [0x41687c], 0
cmp dword [0x416880], 0
je 0x404f8e
mov eax, dword [0x416880]
mov dword [ebp - 0xb9c], eax
mov ecx, dword [ebp - 0xb9c]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [0x416880], 0
cmp dword [0x416884], 0
je 0x404fbc
mov edx, dword [0x416884]
mov dword [ebp - 0xba0], edx
mov eax, dword [ebp - 0xba0]
push eax
call fcn.0040aa6b
add esp, 4
mov dword [0x416884], 0
cmp dword [0x416888], 0
je 0x404fea
mov ecx, dword [0x416888]
mov dword [ebp - 0xba4], ecx
mov edx, dword [ebp - 0xba4]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [0x416888], 0
cmp dword [0x41688c], 0
je 0x405017
mov eax, dword [0x41688c]
mov dword [ebp - 0xba8], eax
mov ecx, dword [ebp - 0xba8]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [0x41688c], 0
cmp dword [0x416890], 0
je 0x405045
mov edx, dword [0x416890]
mov dword [ebp - 0xbac], edx
mov eax, dword [ebp - 0xbac]
push eax
call fcn.0040aa6b
add esp, 4
mov dword [0x416890], 0
cmp dword [0x416894], 0
je 0x405073
mov ecx, dword [0x416894]
mov dword [ebp - 0xbb0], ecx
mov edx, dword [ebp - 0xbb0]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [0x416894], 0
cmp dword [0x416898], 0
je 0x4050a0
mov eax, dword [0x416898]
mov dword [ebp - 0xbb4], eax
mov ecx, dword [ebp - 0xbb4]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [0x416898], 0
cmp dword [0x41689c], 0
je 0x4050ce
mov edx, dword [0x41689c]
mov dword [ebp - 0xbb8], edx
mov eax, dword [ebp - 0xbb8]
push eax
call fcn.0040aa6b
add esp, 4
mov dword [0x41689c], 0
cmp dword [0x4168a0], 0
je 0x4050fc
mov ecx, dword [0x4168a0]
mov dword [ebp - 0xbbc], ecx
mov edx, dword [ebp - 0xbbc]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [0x4168a0], 0
cmp dword [0x4168a4], 0
je 0x405129
mov eax, dword [0x4168a4]
mov dword [ebp - 0xbc0], eax
mov ecx, dword [ebp - 0xbc0]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [0x4168a4], 0
cmp dword [0x4168a8], 0
je 0x405157
mov edx, dword [0x4168a8]
mov dword [ebp - 0xbc4], edx
mov eax, dword [ebp - 0xbc4]
push eax
call fcn.0040aa6b
add esp, 4
mov dword [0x4168a8], 0
cmp dword [0x4168ac], 0
je 0x405185
mov ecx, dword [0x4168ac]
mov dword [ebp - 0xbc8], ecx
mov edx, dword [ebp - 0xbc8]
push edx
call fcn.0040aa6b
add esp, 4
mov dword [0x4168ac], 0
cmp dword [0x4168c4], 0
je 0x4051b2
mov eax, dword [0x4168c4]
mov dword [ebp - 0xbcc], eax
mov ecx, dword [ebp - 0xbcc]
push ecx
call fcn.0040aa6b
add esp, 4
mov dword [0x4168c4], 0
cmp dword [0x4168c8], 0
je 0x4051e0
mov edx, dword [0x4168c8]
mov dword [ebp - 0xbd0], edx
mov eax, dword [ebp - 0xbd0]
push eax
call fcn.0040aa6b
add esp, 4
mov dword [0x4168c8], 0
cmp dword [ebp - 0x998], 0xffffffff
je 0x4051f6
mov ecx, dword [ebp - 0x998]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x405209
jmp 0x404e7b
jmp 0x404e7b
jmp 0x404e7b
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10