Function at 0x40a28c
Capabilities:
Delete registry key
Get installed programs
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x324
mov dl, byte [0x42868c]
push ebx
push esi
push edi
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x11b]
mov byte [ebp - 0x11c], dl
push 0x40
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x323]
mov byte [ebp - 0x324], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push str.__vRegDeleteUninstallInfo
mov dword [ebp - 8], 0x104
stosb byte es:[edi], al
call fcn.004013fd
mov dword [esp], str.shlwapi.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.SHDeleteKeyA
push eax
mov dword [ebp - 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [ebp - 4], eax
jne 0x40a30a
cmp byte [0x42a13c], al
je 0x40a6f0
cmp dword [ebp + 8], 0
je 0x40a36d
mov esi, 0x42a0f4
push esi
call fcn.0040c0a0
test eax, eax
pop ecx
je 0x40a35d
mov ebx, 0x42a114
push ebx
call fcn.0040c0a0
test eax, eax
pop ecx
je 0x40a35d
push esi
push ebx
push str.vRegDeleteUninstallInfo:_nPartial1___s__s
call fcn.004013fd
add esp, 0xc
mov edi, str.SoftwareVN_VUIns
lea eax, [ebp - 0x11c]
push esi
push ebx
push edi
push str._s_s_s
push eax
call fcn.0040becd
add esp, 0x14
jmp 0x40a38c
push str.vRegDeleteUninstallInfo:_nPartial1__No_UninstallString_Registry__just_return
call fcn.004013fd
pop ecx
jmp 0x40a70a
mov edi, str.SoftwareVN_VUIns
lea eax, [ebp - 0x11c]
push edi
push 0x425404
push eax
call fcn.0040becd
add esp, 0xc
mov ebx, 0x42a114
cmp byte [0x42a13c], 0
lea eax, [ebp - 0x11c]
push eax
je 0x40a3ce
push str.vRegDeleteUninstallInfo_RegDeleteKey_:__s
call fcn.004013fd
pop ecx
lea eax, [ebp - 0x11c]
pop ecx
mov esi, 0x80000002
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
je 0x40a403
lea ecx, [ebp - 0x11c]
push ecx
push eax
push str._Error_vRegDeleteUninstallInfo_RegDeleteKey_:__u_:__s
jmp 0x40a3fb
push str.vRegDeleteUninstallInfo_SHDeleteKey_:__s
call fcn.004013fd
pop ecx
lea eax, [ebp - 0x11c]
pop ecx
mov esi, 0x80000002
push eax
push esi
call dword [ebp - 4]
test eax, eax
je 0x40a403
lea ecx, [ebp - 0x11c]
push ecx
push eax
push str._Error_vRegDeleteUninstallInfo_SHDeleteKey_:__u_:__s
call fcn.004013fd
add esp, 0xc
cmp dword [ebp + 8], 0
je 0x40a57e
push ebx
push edi
lea eax, [ebp - 0x11c]
push str._s_s
push eax
call fcn.0040becd
lea eax, [ebp - 0x11c]
push eax
call fcn.0040a1f3
add esp, 0x14
mov ebx, str.vRegDeleteUninstallInfo_SHDeleteKey__s_:__u
test eax, eax
je 0x40a4bd
cmp eax, 0x103
jne 0x40a4bd
cmp byte [0x42a13c], 0
lea eax, [ebp - 0x11c]
push eax
push esi
je 0x40a489
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov dword [ebp + 8], eax
push eax
lea eax, [ebp - 0x11c]
push eax
push str.vRegDeleteUninstallInfo_RegDeleteKey__s_:__u
call fcn.004013fd
add esp, 0xc
cmp dword [ebp + 8], 0
je 0x40a4bd
lea eax, [ebp - 0x11c]
push eax
push dword [ebp + 8]
push str._Error_vRegDeleteUninstallInfo_RegDeleteKey_:__u_:__s
jmp 0x40a4b5
call dword [ebp - 4]
mov dword [ebp + 8], eax
push eax
lea eax, [ebp - 0x11c]
push eax
push ebx
call fcn.004013fd
add esp, 0xc
cmp dword [ebp + 8], 0
je 0x40a4bd
lea eax, [ebp - 0x11c]
push eax
push dword [ebp + 8]
push str._Error_vRegDeleteUninstallInfo_SHDeleteKey_:__u_:__s
call fcn.004013fd
add esp, 0xc
push edi
lea eax, [ebp - 0x11c]
push 0x425404
push eax
call fcn.0040becd
lea eax, [ebp - 0x11c]
push eax
call fcn.0040a1f3
add esp, 0x10
test eax, eax
je 0x40a559
cmp eax, 0x103
jne 0x40a559
cmp byte [0x42a13c], 0
lea eax, [ebp - 0x11c]
push eax
push esi
je 0x40a52a
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov edi, eax
lea eax, [ebp - 0x11c]
push edi
push eax
push str.vRegDeleteUninstallInfo_RegDeleteKey__s_:__u
call fcn.004013fd
add esp, 0xc
test edi, edi
je 0x40a559
lea eax, [ebp - 0x11c]
push eax
push edi
push str._Error_vRegDeleteUninstallInfo_RegDeleteKey_:__u_:__s
jmp 0x40a551
call dword [ebp - 4]
mov edi, eax
lea eax, [ebp - 0x11c]
push edi
push eax
push ebx
call fcn.004013fd
add esp, 0xc
test edi, edi
je 0x40a559
lea eax, [ebp - 0x11c]
push eax
push edi
push str._Error_vRegDeleteUninstallInfo_SHDeleteKey_:__u_:__s
call fcn.004013fd
add esp, 0xc
push 0x42a0f4
push 0x42a114
push str.VN_VUIns
lea eax, [ebp - 0x324]
push str._s__s__s
push eax
call fcn.0040becd
add esp, 0x14
jmp 0x40a597
push str.VN_VUIns
lea eax, [ebp - 0x324]
push 0x425404
push eax
call fcn.0040becd
add esp, 0xc
lea eax, [ebp - 0x10]
push eax
push 0xf003f
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall
push esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40a6f0
xor ebx, ebx
mov dword [ebp + 8], ebx
test ebx, ebx
je 0x40a5cb
cmp ebx, 0xea
jne 0x40a6f0
lea eax, [ebp - 0x11c]
push eax
call fcn.0040c0a0
push eax
xor edi, edi
lea eax, [ebp - 0x11c]
push edi
push eax
call fcn.0040ba40
add esp, 0x10
lea eax, [ebp - 0x18]
mov dword [ebp - 8], 0x104
push eax
push edi
push edi
lea eax, [ebp - 8]
push edi
push eax
lea eax, [ebp - 0x11c]
push eax
push dword [ebp + 8]
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
mov ebx, eax
lea eax, [ebp - 0x324]
push eax
call fcn.0040c0a0
push eax
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 0x324]
push eax
call fcn.0040c5df
add esp, 0x10
test eax, eax
jne 0x40a6e8
mov al, byte [0x42868c]
push 0x40
mov byte [ebp - 0x220], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x21f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x11c]
push eax
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall
lea eax, [ebp - 0x220]
push str._s_s
push eax
call fcn.0040becd
add esp, 0x10
cmp byte [0x42a13c], 0
lea eax, [ebp - 0x220]
push eax
je 0x40a6b3
push str.vRegDeleteUninstallInfo_RegDeleteKey_:__s
call fcn.004013fd
pop ecx
lea eax, [ebp - 0x220]
pop ecx
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
test eax, eax
je 0x40a6e5
lea eax, [ebp - 0x220]
push eax
push str._Error_vRegDeleteUninstallInfo_RegDeleteKey_:__s
jmp 0x40a6dc
push str.vRegDeleteUninstallInfo_SHDeleteKey_:__s
call fcn.004013fd
pop ecx
lea eax, [ebp - 0x220]
pop ecx
push eax
push esi
call dword [ebp - 4]
mov ebx, eax
test ebx, ebx
je 0x40a6e5
lea eax, [ebp - 0x220]
push eax
push str._Error_vRegDeleteUninstallInfo_SHDeleteKey_:__s
call fcn.004013fd
pop ecx
pop ecx
jmp 0x40a6e8
dec dword [ebp + 8]
inc dword [ebp + 8]
jmp 0x40a5bb
push 0x42726c
call fcn.004013fd
cmp dword [ebp - 0xc], 0
pop ecx
je 0x40a70a
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
pop ebx
leave
ret