Function at 0x42458e
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x68
mov dword [ebp - 0x10], ecx
push ebx
lea ecx, [ebp - 0x68]
call fcn.0041eab0
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x68]
push eax
call fcn.004221e9
lea ecx, [ebp - 0x5c]
call fcn.0041eab0
mov ecx, 0x482704
call fcn.0041fa6a
push eax
mov ecx, 0x482ee8
call fcn.0041fa6a
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0041f193
mov ecx, dword [ebp - 0x10]
add esp, 0xc
lea eax, [ebp - 0x5c]
push eax
call fcn.004221e9
xor ebx, ebx
push str.Software_
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], ebx
call fcn.0041eb20
push 0x4826f8
lea ecx, [ebp - 0x50]
call fcn.0041edf1
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0x50]
push eax
mov eax, dword [0x483658]
or eax, 0x20019
push eax
push ebx
call fcn.0041fa6a
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4247d5
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x14]
push ebx
push eax
lea eax, [ebp - 0x24]
push eax
push ebx
push ebx
push ebx
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
jne 0x4247d5
push esi
push edi
push dword [ebp - 0x14]
call fcn.00428529
cmp dword [ebp - 0x24], ebx
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc], ebx
jbe 0x4247c0
mov esi, 0x100
mov edi, dword [ebp - 0x1c]
cmp edi, ebx
je 0x4247b0
push dword [ebp - 0x14]
push ebx
push edi
call fcn.00427c50
mov eax, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x38]
push eax
push ebx
push ebx
lea eax, [ebp - 0x28]
push ebx
push eax
push edi
push dword [ebp - 0xc]
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
push edi
lea ecx, [ebp - 0x44]
call fcn.0041eb20
lea eax, [ebp - 0x20]
push eax
mov eax, dword [0x483658]
or eax, 0x20019
push eax
push ebx
push edi
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x424797
push esi
call fcn.00428529
mov edi, eax
pop ecx
cmp edi, ebx
je 0x4247b5
push esi
push ebx
push edi
call fcn.00427c50
add esp, 0xc
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 8], 1
push eax
lea eax, [ebp - 8]
push edi
push eax
push ebx
push str.Version
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp byte [edi], bl
je 0x424734
cmp dword [ebp - 8], 1
jne 0x424734
push edi
mov ecx, 0x482ef4
call fcn.0041fa6a
push eax
lea eax, [ebp - 0x44]
push str.__s__s
push eax
call fcn.0041f193
add esp, 0x10
push esi
push ebx
push edi
call fcn.00427c50
add esp, 0xc
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], esi
push eax
lea eax, [ebp - 8]
push edi
push eax
push ebx
push str.Installed
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp byte [edi], bl
je 0x424781
cmp dword [ebp - 8], 1
jne 0x424781
push edi
mov ecx, 0x482f00
call fcn.0041fa6a
push eax
lea eax, [ebp - 0x44]
push str.___s:__s
push eax
call fcn.0041f193
add esp, 0x10
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x44]
push eax
call fcn.004221e9
inc dword [ebp - 4]
push edi
call fcn.0042851e
pop ecx
lea ecx, [ebp - 0x44]
call fcn.0041ebe6
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x24]
jb 0x42466e
jmp 0x4247c0
inc dword [ebp - 4]
jmp 0x4247ce
inc dword [ebp - 4]
lea ecx, [ebp - 0x44]
call fcn.0041ebe6
cmp dword [ebp - 0x1c], ebx
je 0x4247ce
push dword [ebp - 0x1c]
call fcn.0042851e
pop ecx
cmp dword [ebp - 4], ebx
pop edi
pop esi
jne 0x4247e2
mov ecx, dword [ebp - 0x10]
push 0x482f0c
call fcn.004221e9
lea ecx, [ebp - 0x50]
call fcn.0041ebe6
lea ecx, [ebp - 0x5c]
call fcn.0041ebe6
lea ecx, [ebp - 0x68]
call fcn.0041ebe6
pop ebx
leave
ret