Function at 0x42c0c0
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e60a7
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x2130
call fcn.004e13f0
mov eax, dword [0x572734]
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.00445910
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x2048]
cmp dword [eax + 0x1c], 0
jne 0x42c152
mov ecx, dword [ebp - 0x204c]
mov dword [ebp - 0x2094], ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2044]
call fcn.004459d0
mov eax, dword [ebp - 0x2094]
jmp 0x42c8e5
lea ecx, [ebp - 0x20b4]
call fcn.0040e230
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.0042f0e0
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 0x506bdc
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 0x42c63f
mov dword [ebp - 0x207c], 0x800
mov dword [ebp - 0x2080], 0x800
mov dword [ebp - 0x2070], 0
push 0x506c80
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 0x42c622
lea edx, [ebp - 0x2060]
push edx
lea ecx, [ebp - 0x2064]
call dword [sym.imp.mfc120u.dll_Ordinal_280]
mov byte [ebp - 4], 9
push 0x506c8c
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.0040ab10
cmp dword [ebp - 0x206c], 0
jb 0x42c5ea
cmp dword [ebp - 0x206c], 3
jae 0x42c5ea
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.004316e0
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.00474a00
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.004091d0
movzx eax, al
test eax, eax
je 0x42c3a6
lea ecx, [ebp - 0x1018]
push ecx
lea ecx, [ebp - 0x2140]
call fcn.00431a80
jmp 0x42c5db
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x210c], esp
lea edx, [ebp - 0x2058]
push edx
call fcn.00431770
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 0x42c45a
push ecx
mov ecx, esp
mov dword [ebp - 0x20f8], esp
lea edx, [ebp - 0x2058]
push edx
call fcn.00431770
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 0x42c4b2
lea ecx, [ebp - 0x20f4]
call fcn.00464560
mov byte [ebp - 4], 0x10
lea edx, [ebp - 0x1018]
push edx
lea ecx, [ebp - 0x20f4]
call fcn.00464640
lea ecx, [ebp - 0x205c]
call dword [sym.imp.mfc120u.dll_Ordinal_1658]
push eax
lea ecx, [ebp - 0x20f4]
call fcn.004646a0
lea ecx, [ebp - 0x20f4]
call fcn.004646e0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20f4]
call fcn.004645d0
jmp 0x42c5db
cmp dword [ebp - 0x206c], 0
jne 0x42c5c9
cmp dword [ebp + 8], 0
jne 0x42c5c7
push 0x506ca0
push ecx
mov ecx, esp
mov dword [ebp - 0x2104], esp
lea eax, [ebp - 0x2058]
push eax
call fcn.00431770
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.00473a90
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.00405e40
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 0x42c5c7
lea ecx, [ebp - 0x20e4]
call fcn.00464560
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x1018]
push ecx
lea ecx, [ebp - 0x20e4]
call fcn.00464640
lea ecx, [ebp - 0x205c]
call dword [sym.imp.mfc120u.dll_Ordinal_1658]
push eax
lea ecx, [ebp - 0x20e4]
call fcn.004646a0
lea ecx, [ebp - 0x20e4]
call fcn.004647f0
movzx edx, al
test edx, edx
jne 0x42c5b8
lea eax, [ebp - 0x1018]
push eax
lea ecx, [ebp - 0x212c]
call fcn.00431a80
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20e4]
call fcn.004645d0
jmp 0x42c5db
lea ecx, [ebp - 0x1018]
push ecx
lea ecx, [ebp - 0x20c8]
call fcn.00431a80
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x2058]
call fcn.00409150
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 0x42c24d
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.00465830
cmp eax, 1
jne 0x42c677
mov ecx, dword [ebp + 8]
push ecx
push 0
lea ecx, [ebp - 0x20c8]
call fcn.00431ae0
push eax
mov ecx, dword [ebp - 0x2048]
call fcn.004312a0
mov dword [ebp - 0x204c], eax
jmp 0x42c781
lea ecx, [ebp - 0x20c8]
call fcn.00465830
cmp eax, 1
jle 0x42c777
mov edx, dword [ebp - 0x2048]
cmp dword [edx + 0x2c], 0
je 0x42c759
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.0042f230
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x2054]
call dword [sym.imp.mfc120u.dll_Ordinal_8064]
movzx eax, al
test eax, eax
jne 0x42c747
push 0
push 0x506cc8
lea ecx, [ebp - 0x2054]
call dword [sym.imp.mfc120u.dll_Ordinal_4621]
cmp eax, 0xffffffff
jne 0x42c705
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x2054]
push edx
mov ecx, dword [ebp - 0x2048]
call fcn.004312a0
mov dword [ebp - 0x204c], eax
jmp 0x42c747
lea ecx, [ebp - 0x2054]
call dword [sym.imp.mfc120u.dll_Ordinal_1658]
push eax
mov ecx, dword [ebp - 0x2048]
call fcn.0042f1b0
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 0x42c775
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x20c8]
push edx
mov ecx, dword [ebp - 0x2048]
call fcn.00431600
mov dword [ebp - 0x204c], eax
jmp 0x42c781
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.00431600
mov dword [ebp - 0x2068], eax
mov edx, dword [ebp - 0x2068]
push edx
mov eax, dword [ebp - 0x204c]
push eax
call fcn.004316c0
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.00431600
mov dword [ebp - 0x2068], eax
mov eax, dword [ebp - 0x2068]
push eax
mov ecx, dword [ebp - 0x204c]
push ecx
call fcn.004316c0
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 0x42c8a2
mov dword [ebp - 4], 1
jmp 0x42c8b2
mov eax, dword [ebp - 0x204c]
mov dword [ebp - 0x2090], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20b4]
call fcn.0040e260
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2044]
call fcn.004459d0
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.004e134c
mov esp, ebp
pop ebp
ret 8