Function at 0x1009d76
Capabilities:
Query or enumerate registry key

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x220
mov eax, dword [0x1017048]
push ebx
xor ebx, ebx
cmp byte [0x1018810], bl
push esi
mov dword [ebp - 4], eax
push edi
jne 0x1009fef
lea ecx, [ebp - 0x208]
mov dword [ebp - 0x208], ebx
call fcn.01008658
push eax
mov edi, 0x20019
push edi
push ebx
push 0x1003178
mov esi, 0x80000002
push esi
call fcn.01008692
add esp, 0x14
cmp eax, ebx
je 0x1009ddf
cmp eax, 2
je 0x1009ddf
lea ecx, [ebp - 0x208]
call fcn.01008676
jmp 0x100a000
cmp dword [ebp - 0x208], ebx
mov dword [ebp - 0x218], ebx
je 0x1009e0e
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x218]
push eax
push ebx
push ebx
push ebx
push dword [ebp - 0x208]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x1009dcf
lea ecx, [ebp - 0x20c]
mov dword [ebp - 0x20c], ebx
call fcn.01008658
push eax
push edi
push ebx
push 0x1003100
push esi
call fcn.01008692
add esp, 0x14
cmp eax, ebx
je 0x1009e39
cmp eax, 2
jne 0x1009e8d
cmp dword [ebp - 0x20c], ebx
mov dword [ebp - 0x220], ebx
je 0x1009e68
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x220]
push eax
push ebx
push ebx
push ebx
push dword [ebp - 0x20c]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x1009e8d
mov eax, dword [ebp - 0x218]
mov ecx, dword [ebp - 0x220]
lea esi, [ecx + eax + 2]
mov eax, esi
shl eax, 2
push eax
call fcn.0100f60c
cmp eax, ebx
pop ecx
mov dword [0x1018818], eax
jne 0x1009e9d
lea ecx, [ebp - 0x20c]
call fcn.01008676
jmp 0x1009dcf
push 0x100125c
call fcn.0100f642
pop ecx
mov ecx, dword [0x1018818]
mov dword [ecx], eax
xor ecx, ecx
inc ecx
cmp esi, ecx
mov eax, ecx
jle 0x1009ec7
mov edx, dword [0x1018818]
mov dword [edx + eax*4], ebx
inc eax
cmp eax, esi
jl 0x1009eb9
cmp dword [ebp - 0x218], ebx
mov esi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov edi, 0x100
mov dword [ebp - 0x210], ecx
mov dword [ebp - 0x214], edi
je 0x1009f44
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x204]
push eax
push ebx
jmp 0x1009f38
lea eax, [ebp - 0x204]
push eax
call fcn.0100f642
mov edx, dword [0x1018818]
pop ecx
mov ecx, dword [ebp - 0x210]
push ebx
push ebx
mov dword [edx + ecx*4], eax
push ebx
push ebx
lea eax, [ebp - 0x214]
push eax
inc ecx
lea eax, [ebp - 0x204]
mov dword [ebp - 0x210], ecx
push eax
dec ecx
mov dword [ebp - 0x214], edi
push ecx
push dword [ebp - 0x208]
call esi
test eax, eax
je 0x1009efb
cmp dword [ebp - 0x220], ebx
je 0x1009fd7
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x204]
push eax
push ebx
push dword [ebp - 0x20c]
mov dword [ebp - 0x21c], ebx
call esi
test eax, eax
jne 0x1009fd7
mov eax, dword [ebp - 0x210]
shl eax, 2
mov dword [ebp - 0x210], eax
lea eax, [ebp - 0x204]
push eax
call fcn.0100f642
mov edx, dword [ebp - 0x210]
inc dword [ebp - 0x21c]
add dword [ebp - 0x210], 4
pop ecx
mov ecx, dword [0x1018818]
push ebx
push ebx
push ebx
mov dword [edx + ecx], eax
push ebx
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x204]
push eax
push dword [ebp - 0x21c]
mov dword [ebp - 0x214], edi
push dword [ebp - 0x20c]
call esi
test eax, eax
je 0x1009f84
lea ecx, [ebp - 0x20c]
call fcn.01008676
lea ecx, [ebp - 0x208]
call fcn.01008676
jmp 0x100a01f
push 8
call fcn.0100f60c
cmp eax, ebx
pop ecx
mov dword [0x1018818], eax
jne 0x100a004
xor al, al
jmp 0x100a021
push 0x10030e4
call fcn.0100f642
pop ecx
mov ecx, dword [0x1018818]
mov dword [ecx], eax
mov eax, dword [0x1018818]
mov dword [eax + 4], ebx
mov al, 1
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0100f0dc
leave
ret