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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x557250
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 0x4ac011
mov ecx, dword [ebp + 8]
push str._Cannot_read_information_about_this_key.
call fcn.00537ee0
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.005380a1
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x18]
add esp, 4
inc eax
mov dword [ebp - 0x18], eax
push eax
call fcn.005380a1
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.005380a1
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 0x4ac18f
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 0x4ac09c
push str.Cannot_enumerate_this_object.
mov ecx, edi
call fcn.00537ee0
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
jmp 0x4ac053
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 0x4ac0cb
push str.Cannot_read_Value.
mov ecx, edi
call fcn.00537ee0
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
jmp 0x4ac053
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4ac0ef
push str.DisplayName
push ebx
call fcn.00524fd0
add esp, 8
test eax, eax
jne 0x4ac183
push str.name
jmp 0x4ac0fc
push ebx
mov ecx, edi
call fcn.00537ee0
push 0x59dbe0
mov ecx, edi
call fcn.00537ee0
mov esi, 0x5a5d68
mov eax, ebx
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4ac12e
test cl, cl
je 0x4ac12a
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4ac12e
add eax, 2
add esi, 2
test cl, cl
jne 0x4ac10a
xor eax, eax
jmp 0x4ac133
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4ac145
push 0x5ac664
mov ecx, edi
call fcn.00537ee0
jmp 0x4ac174
mov eax, dword [ebp - 0x2c]
cmp eax, 4
je 0x4ac163
test eax, eax
je 0x4ac163
cmp eax, 3
je 0x4ac163
mov eax, dword [ebp - 0x20]
mov ecx, edi
push eax
call fcn.00537ee0
jmp 0x4ac174
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
push ecx
push edx
push edi
call fcn.004abe70
add esp, 0xc
push 0x5ac628
mov ecx, edi
call fcn.00537ee0
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
jmp 0x4ac053
mov eax, dword [ebp - 0x3c]
push eax
call fcn.005380ca
add esp, 4
push esi
call fcn.005380ca
add esp, 4
push ebx
call fcn.005380ca
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