Function at 0x42a950
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e4527
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x2130
call fcn.004dfa50
mov eax, dword [0x56f734]
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 dword [ebp - 0x2048], ecx
mov dword [ebp - 0x204c], 0xffffffff
push str.MS::RPI
lea ecx, [ebp - 0x2044]
call fcn.00440bd0
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x2048]
cmp dword [eax + 0x1c], 0
jne 0x42a9e2
mov ecx, dword [ebp - 0x204c]
mov dword [ebp - 0x2094], ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2044]
call fcn.00440c90
mov eax, dword [ebp - 0x2094]
jmp 0x42b175
lea ecx, [ebp - 0x20b4]
call fcn.0040d500
mov byte [ebp - 4], 1
mov byte [ebp - 4], 2
mov byte [ebp - 0x2071], 0
lea edx, [ebp - 0x205c]
push edx
mov ecx, dword [ebp - 0x2048]
call fcn.0042d8e0
mov byte [ebp - 4], 3
lea eax, [ebp - 0x205c]
push eax
lea ecx, [ebp - 0x2060]
call dword [sym.imp.mfc120u.dll_Ordinal_280]
mov byte [ebp - 4], 4
push 0x503b90
lea ecx, [ebp - 0x2060]
call dword [sym.imp.mfc120u.dll_Ordinal_1687]
mov dword [ebp - 0x2078], 0
lea ecx, [ebp - 0x2140]
call sub.mfc120u.dll_Ordinal_971
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x20c8]
call sub.mfc120u.dll_Ordinal_971
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x212c]
call sub.mfc120u.dll_Ordinal_971
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2078]
push ecx
push 0x20019
push 0
lea ecx, [ebp - 0x2060]
call dword [sym.imp.mfc120u.dll_Ordinal_1658]
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x20b0], eax
cmp dword [ebp - 0x20b0], 0
jne 0x42aecf
mov dword [ebp - 0x207c], 0x800
mov dword [ebp - 0x2080], 0x800
mov dword [ebp - 0x2070], 0
push 0x503bb4
lea ecx, [ebp - 0x2088]
call dword [sym.imp.mfc120u.dll_Ordinal_286]
mov byte [ebp - 4], 8
push 0
lea edx, [ebp - 0x2080]
push edx
lea eax, [ebp - 0x201c]
push eax
push 0
lea ecx, [ebp - 0x207c]
push ecx
lea edx, [ebp - 0x1018]
push edx
mov eax, dword [ebp - 0x2070]
push eax
mov ecx, dword [ebp - 0x2078]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x42aeb2
lea edx, [ebp - 0x2060]
push edx
lea ecx, [ebp - 0x2064]
call dword [sym.imp.mfc120u.dll_Ordinal_280]
mov byte [ebp - 4], 9
push 0x503bc0
lea ecx, [ebp - 0x2064]
call dword [sym.imp.mfc120u.dll_Ordinal_1687]
lea eax, [ebp - 0x1018]
push eax
lea ecx, [ebp - 0x2064]
call dword [sym.imp.mfc120u.dll_Ordinal_1687]
lea ecx, [ebp - 0x206c]
push ecx
lea ecx, [ebp - 0x2088]
call dword [sym.imp.mfc120u.dll_Ordinal_1658]
push eax
lea ecx, [ebp - 0x2064]
call dword [sym.imp.mfc120u.dll_Ordinal_1658]
push eax
push SysReAllocString
call fcn.00409ef0
cmp dword [ebp - 0x206c], 0
jb 0x42ae7a
cmp dword [ebp - 0x206c], 3
jae 0x42ae7a
lea edx, [ebp - 0x1018]
push edx
lea ecx, [ebp - 0x2084]
call dword [sym.imp.mfc120u.dll_Ordinal_286]
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x2084]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x2110], esp
mov edx, dword [ebp - 0x2048]
mov eax, dword [edx + 0x24]
push eax
call fcn.0042fdd0
mov dword [ebp - 0x20ac], eax
mov ecx, dword [ebp - 0x20ac]
mov dword [ebp - 0x2108], ecx
mov byte [ebp - 4], 0xb
lea edx, [ebp - 0x2058]
push edx
mov byte [ebp - 4], 0xa
call fcn.0046ff10
mov dword [ebp - 0x2114], eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x2084]
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
push 0
lea ecx, [ebp - 0x2058]
call fcn.00442980
movzx eax, al
test eax, eax
je 0x42ac36
lea ecx, [ebp - 0x1018]
push ecx
lea ecx, [ebp - 0x2140]
call fcn.004301f0
jmp 0x42ae6b
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x210c], esp
lea edx, [ebp - 0x2058]
push edx
call fcn.0042fe40
mov dword [ebp - 0x209c], eax
mov eax, dword [ebp - 0x209c]
mov dword [ebp - 0x20fc], eax
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x2048]
mov edx, dword [ecx + 0x1c]
mov eax, dword [ebp - 0x2048]
mov ecx, dword [eax + 0x1c]
mov edx, dword [edx]
mov byte [ebp - 4], 0xd
mov eax, dword [edx + 0x38]
call eax
mov byte [ebp - 0x2050], al
movzx ecx, byte [ebp - 0x2050]
test ecx, ecx
je 0x42acea
push ecx
mov ecx, esp
mov dword [ebp - 0x20f8], esp
lea edx, [ebp - 0x2058]
push edx
call fcn.0042fe40
mov dword [ebp - 0x208c], eax
mov eax, dword [ebp - 0x208c]
mov dword [ebp - 0x2118], eax
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x2048]
mov edx, dword [ecx + 0x1c]
mov eax, dword [ebp - 0x2048]
mov ecx, dword [eax + 0x1c]
mov edx, dword [edx]
mov byte [ebp - 4], 0xd
mov eax, dword [edx + 0x3c]
call eax
mov byte [ebp - 0x204f], al
movzx ecx, byte [ebp - 0x204f]
test ecx, ecx
jne 0x42ad42
lea ecx, [ebp - 0x20f4]
call fcn.0045f6f0
mov byte [ebp - 4], 0x10
lea edx, [ebp - 0x1018]
push edx
lea ecx, [ebp - 0x20f4]
call fcn.0045f7d0
lea ecx, [ebp - 0x205c]
call dword [sym.imp.mfc120u.dll_Ordinal_1658]
push eax
lea ecx, [ebp - 0x20f4]
call fcn.0045f830
lea ecx, [ebp - 0x20f4]
call fcn.0045f870
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20f4]
call fcn.0045f760
jmp 0x42ae6b
cmp dword [ebp - 0x206c], 0
jne 0x42ae59
cmp dword [ebp + 8], 0
jne 0x42ae57
push 0x503bd4
push ecx
mov ecx, esp
mov dword [ebp - 0x2104], esp
lea eax, [ebp - 0x2058]
push eax
call fcn.0042fe40
mov dword [ebp - 0x2098], eax
mov ecx, dword [ebp - 0x2098]
mov dword [ebp - 0x2100], ecx
mov byte [ebp - 4], 0x11
lea edx, [ebp - 0x20a4]
push edx
mov byte [ebp - 4], 0xd
call fcn.0046efa0
mov dword [ebp - 0x20a0], eax
mov eax, dword [ebp - 0x20a0]
mov dword [ebp - 0x20a8], eax
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x20a8]
push ecx
call fcn.00405520
add esp, 8
mov byte [ebp - 0x204d], al
mov dl, byte [ebp - 0x204d]
mov byte [ebp - 0x204e], dl
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20a4]
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
movzx eax, byte [ebp - 0x204e]
test eax, eax
je 0x42ae57
lea ecx, [ebp - 0x20e4]
call fcn.0045f6f0
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x1018]
push ecx
lea ecx, [ebp - 0x20e4]
call fcn.0045f7d0
lea ecx, [ebp - 0x205c]
call dword [sym.imp.mfc120u.dll_Ordinal_1658]
push eax
lea ecx, [ebp - 0x20e4]
call fcn.0045f830
lea ecx, [ebp - 0x20e4]
call fcn.0045f980
movzx edx, al
test edx, edx
jne 0x42ae48
lea eax, [ebp - 0x1018]
push eax
lea ecx, [ebp - 0x212c]
call fcn.004301f0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20e4]
call fcn.0045f760
jmp 0x42ae6b
lea ecx, [ebp - 0x1018]
push ecx
lea ecx, [ebp - 0x20c8]
call fcn.004301f0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x2058]
call fcn.004085a0
mov edx, dword [ebp - 0x2070]
add edx, 1
mov dword [ebp - 0x2070], edx
mov dword [ebp - 0x207c], 0x800
mov dword [ebp - 0x2080], 0x800
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x2064]
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
jmp 0x42aadd
mov eax, dword [ebp - 0x2078]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2088]
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
lea ecx, [ebp - 0x20c8]
call fcn.004609c0
cmp eax, 1
jne 0x42af07
mov ecx, dword [ebp + 8]
push ecx
push 0
lea ecx, [ebp - 0x20c8]
call fcn.00430250
push eax
mov ecx, dword [ebp - 0x2048]
call fcn.0042fa90
mov dword [ebp - 0x204c], eax
jmp 0x42b011
lea ecx, [ebp - 0x20c8]
call fcn.004609c0
cmp eax, 1
jle 0x42b007
mov edx, dword [ebp - 0x2048]
cmp dword [edx + 0x2c], 0
je 0x42afe9
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x20c8]
push ecx
lea edx, [ebp - 0x2054]
push edx
mov ecx, dword [ebp - 0x2048]
call fcn.0042da30
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x2054]
call dword [sym.imp.mfc120u.dll_Ordinal_8064]
movzx eax, al
test eax, eax
jne 0x42afd7
push 0
push 0x503c08
lea ecx, [ebp - 0x2054]
call dword [sym.imp.mfc120u.dll_Ordinal_4621]
cmp eax, 0xffffffff
jne 0x42af95
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x2054]
push edx
mov ecx, dword [ebp - 0x2048]
call fcn.0042fa90
mov dword [ebp - 0x204c], eax
jmp 0x42afd7
lea ecx, [ebp - 0x2054]
call dword [sym.imp.mfc120u.dll_Ordinal_1658]
push eax
mov ecx, dword [ebp - 0x2048]
call fcn.0042d9b0
push 0
push 0
push 0
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0x2048]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x2048]
mov eax, dword [edx + 0xd4]
call eax
mov dword [ebp - 0x204c], 0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2054]
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
jmp 0x42b005
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x20c8]
push edx
mov ecx, dword [ebp - 0x2048]
call fcn.0042fcf0
mov dword [ebp - 0x204c], eax
jmp 0x42b011
mov dword [ebp - 0x204c], 0
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x212c]
push ecx
mov ecx, dword [ebp - 0x2048]
call fcn.0042fcf0
mov dword [ebp - 0x2068], eax
mov edx, dword [ebp - 0x2068]
push edx
mov eax, dword [ebp - 0x204c]
push eax
call fcn.0042fdb0
add esp, 8
mov dword [ebp - 0x204c], eax
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x2140]
push edx
mov ecx, dword [ebp - 0x2048]
call fcn.0042fcf0
mov dword [ebp - 0x2068], eax
mov eax, dword [ebp - 0x2068]
push eax
mov ecx, dword [ebp - 0x204c]
push ecx
call fcn.0042fdb0
add esp, 8
mov dword [ebp - 0x204c], eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x212c]
call sub.mfc120u.dll_Ordinal_1445
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x20c8]
call sub.mfc120u.dll_Ordinal_1445
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2140]
call sub.mfc120u.dll_Ordinal_1445
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2060]
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x205c]
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
jmp 0x42b132
mov dword [ebp - 4], 1
jmp 0x42b142
mov eax, dword [ebp - 0x204c]
mov dword [ebp - 0x2090], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20b4]
call fcn.0040d530
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2044]
call fcn.00440c90
mov eax, dword [ebp - 0x2090]
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.004df9ac
mov esp, ebp
pop ebp
ret 8