Function at 0x10023ea1
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
lea ebp, [esp - 0x3004]
mov eax, 0x3004
call fcn.1003b1e0
push 0xffffffffffffffff
push 0x10069dd3
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x100be114]
xor eax, ebp
mov dword [ebp + 0x3000], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x300c]
mov esi, 0x1000
mov dword [ebp - 0x14], eax
xor ebx, ebx
mov eax, dword [ebp + 0x3010]
push esi
mov dword [ebp - 0x38], eax
lea eax, [ebp + 0x2000]
push ebx
push eax
call fcn.1003d660
push esi
lea eax, [ebp]
push ebx
push eax
call fcn.1003d660
push esi
lea eax, [ebp + 0x1000]
mov edi, 0x800
push ebx
push eax
mov dword [ebp - 0x10], edi
call fcn.1003d660
add esp, 0x24
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
push 0x20019
push 0x10083a58
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], ebx
call fcn.1001b2cc
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x10023f62
inc ebx
mov esi, dword [ebp - 0x28]
jmp 0x100240df
lea eax, [ebp - 0x30]
mov dword [ebp - 0x1c], ebx
push eax
push ebx
push ebx
push ebx
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp]
push eax
push ebx
jmp 0x100240af
lea eax, [ebp + 0x2000]
push eax
call fcn.100300e1
lea eax, [ebp]
mov esi, 0x800
push eax
push 0x10083ab8
lea eax, [ebp + 0x2000]
push esi
push eax
call fcn.10007104
add esp, 0x14
lea eax, [ebp + 0x2000]
lea ecx, [ebp - 0x28]
push 0x20019
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.1001b2cc
test eax, eax
jne 0x10023f5a
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 0x2000]
push eax
push 0x100839ec
lea ecx, [ebp - 0x28]
call fcn.1001b5c4
test eax, eax
jne 0x10023f5a
push 0x10083a9c
lea eax, [ebp + 0x2000]
push eax
push 0x10083aac
lea eax, [ebp + 0x1000]
push esi
push eax
call fcn.10007104
push 0x10083b0c
lea eax, [ebp + 0x1000]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.1002a94e
add esp, 0x20
mov eax, dword [eax]
mov byte [ebp - 4], 1
test eax, eax
je 0x10024025
mov eax, dword [eax]
jmp 0x10024027
mov eax, ebx
push dword [ebp - 0x38]
mov esi, dword [ebp - 0x14]
push eax
push 1
push esi
call fcn.10020f97
mov ecx, dword [ebp - 0x18]
add esp, 0x10
mov byte [ebp - 4], bl
test ecx, ecx
je 0x1002404b
call fcn.100016dc
mov dword [ebp - 0x18], ebx
push 0x10083b30
lea eax, [ebp + 0x1000]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1002a94e
add esp, 0xc
mov eax, dword [eax]
mov byte [ebp - 4], 2
test eax, eax
je 0x10024071
mov eax, dword [eax]
jmp 0x10024073
mov eax, ebx
push eax
push 1
push esi
call fcn.10020f3d
mov ecx, dword [ebp - 0x2c]
add esp, 0xc
mov byte [ebp - 4], bl
test ecx, ecx
je 0x10024091
call fcn.100016dc
mov dword [ebp - 0x2c], ebx
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x40]
push ecx
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], 0x800
push ecx
lea ecx, [ebp]
inc eax
push ecx
mov dword [ebp - 0x1c], eax
push eax
mov esi, dword [ebp - 0x28]
push esi
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov ecx, eax
test ecx, ecx
je 0x10023f7a
xor eax, eax
cmp ecx, 0x103
sete al
mov dword [ebp - 0x14], eax
test esi, esi
je 0x100240dd
push esi
call edi
mov eax, dword [ebp - 0x14]
mov esi, ebx
mov ebx, eax
test esi, esi
je 0x100240e6
push esi
call edi
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x3000]
xor ecx, ebp
call fcn.1003b105
add ebp, 0x3004
leave
ret