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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2044
call fcn.004ec880
mov eax, dword [0x533014]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x2040], 0
mov eax, dword [ebp + 8]
cmp dword [eax], 0
jne 0x4bd4f0
xor eax, eax
jmp 0x4bd773
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0
mov ecx, dword [ebp + 8]
add ecx, 8
call fcn.0047ef80
test eax, eax
jne 0x4bd5ea
mov dword [ebp - 0x2014], 0x1000
lea ecx, [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
or eax, 8
push eax
push 0
mov ecx, dword [ebp + 8]
add ecx, 4
call fcn.0044ea20
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x2018], eax
cmp dword [ebp - 0x2018], 0
jne 0x4bd5e5
mov dword [ebp - 0x201c], 0
jmp 0x4bd57b
mov eax, dword [ebp - 0x201c]
add eax, 1
mov dword [ebp - 0x201c], eax
mov dword [ebp - 0x2014], 0x1000
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x2014]
push ecx
lea edx, [ebp - 0x2010]
push edx
mov eax, dword [ebp - 0x201c]
push eax
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x4bd5d4
lea edx, [ebp - 0x2010]
push edx
lea ecx, [ebp - 0x2028]
call fcn.0040f510
lea eax, [ebp - 0x2028]
push eax
mov ecx, dword [ebp + 0xc]
call fcn.00480780
lea ecx, [ebp - 0x2028]
call fcn.004335b0
jmp 0x4bd562
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 8], 1
jmp 0x4bd770
mov ecx, dword [ebp + 8]
add ecx, 4
call fcn.0047ef80
test eax, eax
je 0x4bd641
mov edx, dword [ebp + 8]
add edx, 8
push edx
push 0x50d6f8
mov eax, dword [ebp + 8]
add eax, 4
push eax
lea ecx, [ebp - 0x2034]
push ecx
call fcn.004185a0
add esp, 0xc
or dword [ebp - 0x2040], 1
push eax
lea edx, [ebp - 0x2038]
push edx
call fcn.0041f890
add esp, 0xc
or dword [ebp - 0x2040], 2
mov dword [ebp - 0x2044], eax
jmp 0x4bd64d
mov eax, dword [ebp + 8]
add eax, 8
mov dword [ebp - 0x2044], eax
mov ecx, dword [ebp - 0x2044]
mov dword [ebp - 0x2030], ecx
lea edx, [ebp - 4]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
or ecx, 1
push ecx
push 0
mov ecx, dword [ebp - 0x2030]
call fcn.0044ea20
push eax
mov edx, dword [ebp + 8]
mov eax, dword [edx]
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x2029], al
mov ecx, dword [ebp - 0x2040]
and ecx, 2
je 0x4bd6ab
and dword [ebp - 0x2040], 0xfffffffd
lea ecx, [ebp - 0x2038]
call fcn.004335b0
mov edx, dword [ebp - 0x2040]
and edx, 1
je 0x4bd6c8
and dword [ebp - 0x2040], 0xfffffffe
lea ecx, [ebp - 0x2034]
call fcn.004335b0
movzx eax, byte [ebp - 0x2029]
test eax, eax
je 0x4bd770
mov dword [ebp - 0x2020], 0x1000
mov dword [ebp - 0x2024], 0
jmp 0x4bd706
mov ecx, dword [ebp - 0x2024]
add ecx, 1
mov dword [ebp - 0x2024], ecx
mov dword [ebp - 0x2020], 0x1000
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x2020]
push edx
lea eax, [ebp - 0x2010]
push eax
mov ecx, dword [ebp - 0x2024]
push ecx
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x4bd75f
lea eax, [ebp - 0x2010]
push eax
lea ecx, [ebp - 0x203c]
call fcn.0040f510
lea ecx, [ebp - 0x203c]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00480780
lea ecx, [ebp - 0x203c]
call fcn.004335b0
jmp 0x4bd6ed
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 8], 1
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.004eabb3
mov esp, ebp
pop ebp
ret