Function at 0x435579
Capabilities:
Query or enumerate registry key

Disassembly:
push 0x284
mov eax, 0x5148e5
call fcn.004d8af2
mov dword [ebp - 0x280], ecx
xor ebx, ebx
test ebx, ebx
je 0x4355a1
call fcn.004013b8
test al, al
je 0x43588d
xor esi, esi
mov dword [ebp - 0x260], esi
test esi, esi
jne 0x4355b5
test ebx, ebx
jne 0x43587d
and dword [ebp - 0x258], 0
and dword [ebp - 0x254], 0
and dword [ebp - 0x250], 0
and dword [ebp - 4], 0
lea ecx, [ebp - 0x258]
mov edi, ebx
neg edi
sbb edi, edi
xor eax, eax
and edi, 0x100
or edi, 0x20019
test esi, esi
push edi
setne al
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall
add eax, 0x80000001
push eax
call fcn.004d6087
test eax, eax
jne 0x435856
push 0x20a
push eax
mov dword [ebp - 0x240], eax
lea eax, [ebp - 0x220]
push eax
call fcn.004d9f30
add esp, 0xc
lea eax, [ebp - 0x220]
push 0x105
push eax
push 0
jmp 0x435842
xor eax, eax
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x244], eax
push edi
lea eax, [ebp - 0x220]
push eax
push dword [ebp - 0x258]
lea ecx, [ebp - 0x24c]
call fcn.004d6087
test eax, eax
jne 0x4357f0
lea ecx, [ebp - 0x278]
call fcn.0040687a
lea ecx, [ebp - 0x270]
mov byte [ebp - 0x274], 1
call fcn.0040687a
lea ecx, [ebp - 0x26c]
call fcn.0040687a
lea ecx, [ebp - 0x268]
call fcn.0040687a
mov byte [ebp - 0x264], 0
lea eax, [ebp - 0x220]
mov byte [ebp - 4], 2
test esi, esi
push eax
setne byte [ebp - 0x274]
call fcn.004ddaa2
pop ecx
push eax
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x278]
call fcn.00406efb
lea eax, [ebp - 0x26c]
mov dword [ebp - 0x238], str.Publisher
mov dword [ebp - 0x234], eax
lea ecx, [ebp - 0x238]
lea eax, [ebp - 0x270]
mov dword [ebp - 0x230], str.DisplayName
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x268]
mov dword [ebp - 0x224], eax
lea eax, [ebp - 0x220]
push eax
push ecx
lea ecx, [ebp - 0x288]
mov dword [ebp - 0x228], str.DisplayVersion
call fcn.004ad767
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x288]
mov eax, dword [eax]
mov dword [ebp - 0x25c], eax
cmp byte [eax + 0xd], 0
jne 0x4357b8
mov esi, dword [eax + 0x10]
lea ecx, [ebp - 0x23c]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x27c], eax
call fcn.0040687a
lea eax, [ebp - 0x23c]
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x24c]
mov edx, esi
push eax
call fcn.0042b675
pop ecx
test eax, eax
js 0x435789
mov ecx, dword [ebp - 0x27c]
lea eax, [ebp - 0x23c]
push eax
call fcn.00405d6e
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x23c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x25c]
call fcn.004094c2
mov eax, dword [ebp - 0x25c]
cmp byte [eax + 0xd], 0
je 0x435743
mov esi, dword [ebp - 0x260]
mov ecx, dword [ebp - 0x280]
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x290]
test ebx, ebx
push eax
setne byte [ebp - 0x264]
call fcn.004b9a7b
lea ecx, [ebp - 0x288]
call fcn.004acf41
lea ecx, [ebp - 0x278]
call fcn.0043624e
cmp dword [ebp - 0x24c], 0
je 0x43580c
push dword [ebp - 0x24c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
and dword [ebp - 0x24c], 0
and dword [ebp - 0x248], 0
lea eax, [ebp - 0x220]
inc dword [ebp - 0x240]
push 0x20a
push 0
push eax
call fcn.004d9f30
add esp, 0xc
lea eax, [ebp - 0x220]
push 0x105
push eax
mov eax, dword [ebp - 0x240]
push eax
push dword [ebp - 0x258]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
je 0x435634
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x258], 0
je 0x435876
push dword [ebp - 0x258]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
and dword [ebp - 0x258], 0
and dword [ebp - 0x254], 0
inc esi
mov dword [ebp - 0x260], esi
cmp esi, 2
jl 0x4355a9
inc ebx
cmp ebx, 2
jl 0x435590
call fcn.004d8aa1
ret