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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x562440
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
push ebx
push esi
push edi
lea eax, [ebp - 0x30]
mov dword [ebp - 0x10], esp
push 0
lea ecx, [ebp - 0x18]
push eax
lea edx, [ebp - 0x14]
push ecx
lea eax, [ebp - 0x34]
push edx
push eax
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x28]
push 0
lea edx, [ebp - 0x40]
push ecx
push edx
push 0
push 0
push 0
push eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x30], 0x20019
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
je 0x4b3811
mov ecx, dword [ebp + 8]
push str._Cannot_read_information_about_this_key.
call fcn.0054259a
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp - 0x28]
inc eax
push eax
mov dword [ebp - 0x28], eax
call fcn.0054276d
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x18]
add esp, 4
inc eax
mov dword [ebp - 0x18], eax
push eax
call fcn.0054276d
mov esi, eax
mov eax, dword [ebp - 0x14]
add esp, 4
inc eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x14], eax
push eax
call fcn.0054276d
mov edi, dword [ebp + 8]
add esp, 4
mov ebx, eax
xor eax, eax
mov dword [ebp - 0x24], eax
cmp eax, dword [ebp - 0x34]
jae 0x4b398f
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x38], ecx
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], edx
push ecx
lea edx, [ebp - 0x2c]
push esi
push edx
mov edx, dword [ebp + 0xc]
lea ecx, [ebp - 0x38]
push 0
push ecx
push ebx
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
je 0x4b389c
push str.Cannot_enumerate_this_object.
mov ecx, edi
call fcn.0054259a
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
jmp 0x4b3853
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x2c]
push esi
push ecx
push 0
push ebx
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x4b38cb
push str.Cannot_read_Value.
mov ecx, edi
call fcn.0054259a
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
jmp 0x4b3853
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4b38ef
push str.DisplayName
push ebx
call fcn.0052f680
add esp, 8
test eax, eax
jne 0x4b3983
push str.name
jmp 0x4b38fc
push ebx
mov ecx, edi
call fcn.0054259a
push 0x5a9ef4
mov ecx, edi
call fcn.0054259a
mov esi, str.Password
mov eax, ebx
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4b392e
test cl, cl
je 0x4b392a
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4b392e
add eax, 2
add esi, 2
test cl, cl
jne 0x4b390a
xor eax, eax
jmp 0x4b3933
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4b3945
push 0x5b9104
mov ecx, edi
call fcn.0054259a
jmp 0x4b3974
mov eax, dword [ebp - 0x2c]
cmp eax, 4
je 0x4b3963
test eax, eax
je 0x4b3963
cmp eax, 3
je 0x4b3963
mov eax, dword [ebp - 0x20]
mov ecx, edi
push eax
call fcn.0054259a
jmp 0x4b3974
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
push ecx
push edx
push edi
call fcn.004b3670
add esp, 0xc
push 0x5b90c8
mov ecx, edi
call fcn.0054259a
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
jmp 0x4b3853
mov eax, dword [ebp - 0x3c]
push eax
call fcn.00542796
add esp, 4
push esi
call fcn.00542796
add esp, 4
push ebx
call fcn.00542796
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x40]
add esp, 4
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc