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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc6c
mov eax, dword [0x4c32cc]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x103
xor ebx, ebx
lea eax, [ebp - 0x10f]
push ebx
push eax
mov byte [ebp - 0x110], 0
call fcn.004a3190
mov eax, 0x80000002
add esp, 0xc
mov dword [ebp - 0xc38], 0x104
mov dword [ebp - 0xc3c], ebx
mov dword [ebp - 0xc4c], eax
mov dword [ebp - 0xc48], VariantCopy
mov dword [ebp - 0xc44], eax
cmp dword [0x4d2a68], ebx
je 0x49f6a1
cmp dword [0x4cd37c], ebx
je 0x49f6a1
cmp dword [0x4d2b24], ebx
je 0x49f6a1
cmp dword [0x4d2b00], ebx
je 0x49f6b4
push str.bMsgOpen
mov esi, str.return
call fcn.0047fb10
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a01d6
mov esp, ebp
pop ebp
ret
mov dword [0x4d2b00], 1
cmp dword [0x4d2afc], ebx
je 0x49f6fc
push str.VerifyUninstallPrograms
mov esi, str.Include_WOW64_64
call fcn.0047fb10
mov ecx, dword [0x4c6444]
mov edx, dword [0x4c6448]
add esp, 4
mov dword [ebp - 0xc24], 3
mov dword [ebp - 0xc28], ecx
mov dword [ebp - 0xc30], edx
jmp 0x49f706
mov dword [ebp - 0xc24], 2
cmp dword [ebp - 0xc24], ebx
jle 0x49f99e
mov edi, dword [ebp - 0xc2c]
cmp ebx, 2
jge 0x49f72e
mov eax, 0x20019
mov dword [0x4c6448], 0xf003f
jmp 0x49f733
mov eax, 0x20119
mov esi, eax
mov eax, ebx
sub eax, 0
mov dword [ebp - 0xc20], esi
mov dword [0x4c6444], 0x20019
je 0x49f77c
dec eax
je 0x49f767
dec eax
jne 0x49f79c
lea eax, [ebp - 0xc1c]
push eax
push 0x20019
push 0
push str.SoftwareBillP_StudiosWinPatrolUnInstall64
jmp 0x49f78f
lea ecx, [ebp - 0xc1c]
push ecx
push 0x20019
push 0
push str.SoftwareBillP_StudiosWinPatrolUnInstallUSER
jmp 0x49f78f
lea edx, [ebp - 0xc1c]
push edx
push 0x20019
push 0
push str.SoftwareBillP_StudiosWinPatrolUnInstall
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov edi, eax
mov dword [0x4c6444], esi
test edi, edi
jne 0x49f991
lea eax, [ebp - 0xc6c]
push eax
lea ecx, [ebp - 0xc64]
push ecx
lea edx, [ebp - 0xc50]
push edx
lea eax, [ebp - 0xc5c]
push eax
lea ecx, [ebp - 0xc34]
push ecx
lea edx, [ebp - 0xc54]
push edx
lea eax, [ebp - 0xc58]
push eax
lea ecx, [ebp - 0xc3c]
push ecx
mov ecx, dword [ebp - 0xc1c]
push edi
lea edx, [ebp - 0xc38]
push edx
lea eax, [ebp - 0x110]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
cmp dword [ebp - 0xc34], edi
je 0x49f984
xor esi, esi
lea esp, [esp]
mov eax, 0x200
mov dword [ebp - 0xc40], eax
mov dword [ebp - 0xc2c], eax
lea edx, [ebp - 0xc40]
push edx
lea eax, [ebp - 0x818]
push eax
lea ecx, [ebp - 0xc60]
push ecx
mov ecx, dword [ebp - 0xc1c]
push 0
lea edx, [ebp - 0xc2c]
push edx
lea eax, [ebp - 0xc18]
push eax
push esi
push ecx
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
mov edi, eax
test edi, edi
jne 0x49f977
lea edx, [ebp - 0x818]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x49f977
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall
mov edx, 0x7ffffffe
mov eax, 0x400
lea ecx, [ebp - 0x618]
call fcn.00401000
mov eax, 0x400
lea ecx, [ebp - 0x618]
cmp byte [ecx], 0
je 0x49f8a3
inc ecx
dec eax
jne 0x49f898
jmp 0x49f8cb
test eax, eax
je 0x49f8cb
mov ecx, 0x400
sub ecx, eax
mov eax, 0x400
sub eax, ecx
push 0x4b17dc
lea ecx, [ebp + ecx - 0x618]
mov edx, 0x7fffffff
call fcn.00401000
mov edx, 0x400
lea eax, [ebp - 0x618]
cmp byte [eax], 0
je 0x49f8e1
inc eax
dec edx
jne 0x49f8d6
jmp 0x49f90b
test edx, edx
je 0x49f90b
lea eax, [ebp - 0xc18]
push eax
mov ecx, 0x400
sub ecx, edx
mov eax, 0x400
sub eax, ecx
lea ecx, [ebp + ecx - 0x618]
mov edx, 0x7fffffff
call fcn.00401000
push 0xff
push str.DisplayName
cmp ebx, 2
jge 0x49f935
mov edx, dword [ebp + ebx*4 - 0xc4c]
lea ecx, [ebp - 0x618]
push ecx
lea ecx, [ebp - 0x218]
call fcn.0048e050
jmp 0x49f970
mov edx, dword [0x4c6444]
lea eax, [ebp - 0x618]
mov dword [ebp - 0xc20], edx
mov edx, dword [ebp + ebx*4 - 0xc4c]
push eax
lea ecx, [ebp - 0x218]
mov dword [0x4c6444], 0x20119
call fcn.0048e050
mov ecx, dword [ebp - 0xc20]
mov dword [0x4c6444], ecx
add esp, 0xc
test eax, eax
je 0x49f9de
inc esi
cmp edi, 0x103
jne 0x49f810
mov edx, dword [ebp - 0xc1c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
inc ebx
cmp ebx, dword [ebp - 0xc24]
jl 0x49f718
cmp dword [0x4d2afc], 0
je 0x49f9be
mov edx, dword [ebp - 0xc28]
mov eax, dword [ebp - 0xc30]
mov dword [0x4c6444], edx
mov dword [0x4c6448], eax
mov dword [0x4d2b00], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a01d6
mov esp, ebp
pop ebp
ret
cmp dword [0x4d2afc], 0
je 0x49f9f2
mov eax, dword [0x4c6444]
mov dword [ebp - 0xc20], eax
mov eax, ebx
sub eax, 0
mov dword [0x4c6444], 0x20019
je 0x49fa17
dec eax
je 0x49fa10
dec eax
jne 0x49fa2c
mov edi, str.SoftwareBillP_StudiosWinPatrolUnInstall64
jmp 0x49fa1c
mov edi, str.SoftwareBillP_StudiosWinPatrolUnInstallUSER
jmp 0x49fa1c
mov edi, str.SoftwareBillP_StudiosWinPatrolUnInstall
lea eax, [ebp - 0xc18]
mov ebx, 0x80000001
call fcn.0048e230
mov esi, dword [0x4d2afc]
test esi, esi
je 0x49fa42
mov ecx, dword [ebp - 0xc20]
mov dword [0x4c6444], ecx
lea edx, [ebp - 0x818]
push edx
mov edx, 0x7ffffffe
mov eax, 0x104
mov ecx, 0x4cc358
call fcn.00401000
test esi, esi
mov esi, dword [0x4c6444]
jne 0x49fa6d
mov esi, dword [ebp - 0xc20]
cmp dword [0x4d2aa4], 0
mov dword [0x4d2b00], 1
jne 0x49fad0
mov edx, 0x4b1938
mov ecx, 0x4cc358
call fcn.0047dee0
test eax, eax
je 0x49fa9a
mov edi, 6
jmp 0x49fad5
mov eax, dword [0x4c78c4]
mov ecx, dword [0x4cbe20]
push 0
push 0x47c230
push eax
push 0xc2
push ecx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
cmp dword [0x4d2aa4], 0
mov edi, eax
jge 0x49fad5
mov dword [0x4d2aa4], 0
jmp 0x49fad5
mov edi, 7
mov edx, dword [ebp - 0xc1c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [0x4d2afc]
test eax, eax
je 0x49faf1
mov dword [0x4c6444], esi
cmp edi, 7
jne 0x49fb00
mov dword [0x4d2b00], 0
test eax, eax
je 0x49fb1b
mov eax, dword [ebp - 0xc28]
mov ecx, dword [ebp - 0xc30]
mov dword [0x4c6444], eax
mov dword [0x4c6448], ecx
push 0
call fcn.0049c6e0
mov ecx, dword [ebp - 4]
mov eax, dword [0x4d2b00]
add esp, 4
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004a01d6
mov esp, ebp
pop ebp
ret