Function at 0x47f5d0
Capabilities:
Get installed programs
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a22f1
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x4264
call fcn.0048e930
mov eax, dword [0x4e3ec8]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0x4230], edi
mov dword [ebp - 0x4234], esi
lea ecx, [ebp - 0x4220]
mov dword [ebp - 4], esi
call dword [sym.imp.mfc100.dll_Ordinal_316]
lea ecx, [ebp - 0x421c]
call dword [sym.imp.mfc100.dll_Ordinal_316]
mov bl, 3
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100.dll_Ordinal_13125]
lea ecx, [ebp - 0x421c]
cmp dword [ebp + 0x10], esi
jne 0x47f652
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
jmp 0x47f657
push str.SOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionUninstall
call dword [sym.imp.mfc100.dll_Ordinal_1316]
lea eax, [ebp - 0x4224]
push eax
push 0x20119
push esi
lea ecx, [ebp - 0x421c]
call dword [sym.imp.mfc100.dll_Ordinal_1448]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x47f6f4
push 0xffffffffffffffff
push ecx
mov ecx, esp
mov dword [ebp - 0x4234], esp
push 0x4af974
call dword [sym.imp.mfc100.dll_Ordinal_310]
push ecx
mov ecx, esp
mov dword [ebp - 0x4230], esp
push str.CommonUtils_checkIfApplicationInstalled_enable_to_open_Registry_file
mov byte [ebp - 4], 4
call dword [sym.imp.mfc100.dll_Ordinal_310]
mov byte [ebp - 4], bl
call fcn.0047c140
add esp, 0xc
push 0x4ae26b
mov ecx, edi
call dword [sym.imp.mfc100.dll_Ordinal_310]
lea ecx, [ebp - 0x421c]
call dword [sym.imp.mfc100.dll_Ordinal_901]
lea ecx, [ebp - 0x4220]
call dword [sym.imp.mfc100.dll_Ordinal_901]
lea ecx, [ebp + 0xc]
call dword [sym.imp.mfc100.dll_Ordinal_901]
mov eax, edi
jmp 0x47fa50
push 0x103
lea ecx, [ebp - 0x117]
push esi
push ecx
mov byte [ebp - 0x118], 0
call sub.MSVCR100.dll_memset
add esp, 0xc
push str.DisplayName
lea ecx, [ebp - 0x4238]
mov dword [ebp - 0x4248], 0x104
mov dword [ebp - 0x423c], esi
call dword [sym.imp.mfc100.dll_Ordinal_310]
push str.Publisher
lea ecx, [ebp - 0x4240]
mov byte [ebp - 4], 5
call dword [sym.imp.mfc100.dll_Ordinal_310]
lea edx, [ebp - 0x425c]
push edx
lea eax, [ebp - 0x4260]
push eax
lea ecx, [ebp - 0x4250]
push ecx
lea edx, [ebp - 0x4270]
push edx
lea eax, [ebp - 0x4264]
push eax
lea ecx, [ebp - 0x426c]
push ecx
lea edx, [ebp - 0x4274]
push edx
lea eax, [ebp - 0x423c]
push eax
mov eax, dword [ebp - 0x4224]
push esi
lea ecx, [ebp - 0x4248]
push ecx
lea edx, [ebp - 0x118]
push edx
push eax
mov byte [ebp - 4], 6
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
cmp eax, esi
jne 0x47f98d
cmp dword [ebp - 0x423c], esi
je 0x47f97e
mov ebx, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
jmp 0x47f7c0
cmp esi, dword [ebp - 0x423c]
jae 0x47f97e
lea ecx, [ebp - 0x425c]
push ecx
mov ecx, dword [ebp - 0x4224]
push 0
push 0
push 0
lea edx, [ebp - 0x424c]
push edx
lea eax, [ebp - 0x218]
push eax
push esi
push ecx
mov dword [ebp - 0x424c], 0xff
call ebx
test eax, eax
jne 0x47f93f
mov ecx, dword [ebp - 0x4224]
lea edx, [ebp - 0x4244]
push edx
push 0x20019
push eax
lea eax, [ebp - 0x218]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x47f978
lea edx, [ebp - 0x4234]
push edx
lea eax, [ebp - 0x4218]
push eax
lea ecx, [ebp - 0x4268]
push ecx
push 0
lea ecx, [ebp - 0x4238]
mov dword [ebp - 0x4234], 0x3fff
call dword [sym.imp.mfc100.dll_Ordinal_1448]
mov edx, dword [ebp - 0x4244]
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov edi, eax
lea eax, [ebp - 0x4218]
push eax
lea ecx, [ebp - 0x4220]
call dword [sym.imp.mfc100.dll_Ordinal_1316]
push 0
lea ecx, [ebp + 0xc]
call dword [sym.imp.mfc100.dll_Ordinal_1448]
push eax
lea ecx, [ebp - 0x4220]
call dword [sym.imp.mfc100.dll_Ordinal_4144]
test eax, eax
js 0x47f8ed
mov esi, dword [ebp - 0x4230]
lea ecx, [ebp - 0x4220]
push ecx
mov ecx, esi
call dword [sym.imp.mfc100.dll_Ordinal_300]
lea ecx, [ebp - 0x4240]
call dword [sym.imp.mfc100.dll_Ordinal_901]
lea ecx, [ebp - 0x4238]
call dword [sym.imp.mfc100.dll_Ordinal_901]
lea ecx, [ebp - 0x421c]
call dword [sym.imp.mfc100.dll_Ordinal_901]
lea ecx, [ebp - 0x4220]
call dword [sym.imp.mfc100.dll_Ordinal_901]
lea ecx, [ebp + 0xc]
call dword [sym.imp.mfc100.dll_Ordinal_901]
mov eax, esi
jmp 0x47fa50
push edi
push ecx
mov ecx, esp
mov dword [ebp - 0x4228], esp
push 0x4ae26b
call dword [sym.imp.mfc100.dll_Ordinal_310]
push ecx
mov ecx, esp
mov dword [ebp - 0x422c], esp
push str.Error_in_Display_key
mov byte [ebp - 4], 7
call dword [sym.imp.mfc100.dll_Ordinal_310]
mov byte [ebp - 4], 6
call fcn.0047c140
mov edx, dword [ebp - 0x4244]
add esp, 0xc
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, dword [ebp - 0x4230]
inc esi
jmp 0x47f7c0
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x422c], esp
push 0x4ae26b
call dword [sym.imp.mfc100.dll_Ordinal_310]
push ecx
mov ecx, esp
mov dword [ebp - 0x4228], esp
push str.Error_in_Enumeration_the_subkeys_retCode
mov byte [ebp - 4], 8
call dword [sym.imp.mfc100.dll_Ordinal_310]
mov byte [ebp - 4], 6
call fcn.0047c140
add esp, 0xc
inc esi
jmp 0x47f7c0
mov eax, dword [ebp - 0x4224]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x47f9d4
mov ecx, dword [ebp - 0x4224]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0xffffffffffffffff
push ecx
mov ecx, esp
mov dword [ebp - 0x422c], esp
push 0x4af974
call dword [sym.imp.mfc100.dll_Ordinal_310]
push ecx
mov ecx, esp
mov dword [ebp - 0x4228], esp
push str.utils_checkIfApplicationInstalled_enable_to_open_Registry_file
mov byte [ebp - 4], 9
call dword [sym.imp.mfc100.dll_Ordinal_310]
mov byte [ebp - 4], 6
call fcn.0047c140
add esp, 0xc
push 0x4ae26b
mov ecx, edi
call dword [sym.imp.mfc100.dll_Ordinal_310]
lea ecx, [ebp - 0x4240]
call dword [sym.imp.mfc100.dll_Ordinal_901]
lea ecx, [ebp - 0x4238]
call dword [sym.imp.mfc100.dll_Ordinal_901]
jmp 0x47f6cc
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0048e770
mov esp, ebp
pop ebp
ret