Function at 0x100a638
Capabilities:
Query or enumerate registry key

Disassembly:
push 0x23c
mov eax, 0x10210f1
call fcn.01013585
xor ebx, ebx
mov dword [ebp - 0x224], ecx
mov dword [ebp - 0x244], ebx
mov dword [ebp - 0x240], ebx
mov dword [ebp - 0x23c], ebx
mov edi, 0x20019
push edi
push 0x1002408
mov dword [ebp - 4], ebx
call fcn.010110be
mov esi, eax
mov dword [ebp - 0x234], esi
cmp esi, ebx
je 0x100a7d4
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 esi
mov dword [ebp - 0x244], esi
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x100a7c9
mov dword [ebp - 0x21c], ebx
cmp dword [ebp - 0x220], ebx
jbe 0x100a7c9
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x21c]
mov dword [ebp - 0x238], 0x104
push esi
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x100a7b1
mov dword [ebp - 0x230], ebx
mov dword [ebp - 0x22c], ebx
mov dword [ebp - 0x228], ebx
push ebx
push edi
lea eax, [ebp - 0x218]
push eax
push esi
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 1
call fcn.01004964
test eax, eax
jne 0x100a7a3
push 0x30
call sub.MFC42u.dll_operatornew
pop ecx
mov ecx, eax
mov dword [ebp - 0x248], ecx
mov byte [ebp - 4], 2
cmp ecx, ebx
je 0x100a741
call fcn.01008513
mov esi, eax
jmp 0x100a743
xor esi, esi
mov byte [ebp - 4], 1
cmp esi, ebx
je 0x100a792
push dword [ebp - 0x230]
lea eax, [ebp - 0x218]
push eax
mov ecx, esi
call fcn.01009287
test eax, eax
je 0x100a78a
mov ecx, dword [ebp - 0x224]
push esi
call fcn.0100823b
test eax, eax
jl 0x100a78a
mov ecx, dword [ebp - 0x224]
mov eax, dword [ecx + 0xa4]
push ebx
dec eax
push eax
push esi
call fcn.01008b89
jmp 0x100a792
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
lea ecx, [ebp - 0x230]
call fcn.01004403
mov esi, dword [ebp - 0x234]
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], bl
call fcn.01004403
inc dword [ebp - 0x21c]
mov eax, dword [ebp - 0x21c]
cmp eax, dword [ebp - 0x220]
jb 0x100a6bc
lea ecx, [ebp - 0x244]
call fcn.01004403
push edi
push 0x10024bc
call fcn.010110be
mov esi, eax
mov dword [ebp - 0x234], esi
cmp esi, ebx
je 0x100a93f
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 esi
mov dword [ebp - 0x244], esi
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x100a934
mov dword [ebp - 0x21c], ebx
cmp dword [ebp - 0x220], ebx
jbe 0x100a934
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x21c]
mov dword [ebp - 0x238], 0x104
push esi
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x100a91c
mov dword [ebp - 0x230], ebx
mov dword [ebp - 0x22c], ebx
mov dword [ebp - 0x228], ebx
push ebx
push edi
lea eax, [ebp - 0x218]
push eax
push esi
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 3
call fcn.01004964
test eax, eax
jne 0x100a90e
push 0x2c
call sub.MFC42u.dll_operatornew
pop ecx
mov ecx, eax
mov dword [ebp - 0x248], ecx
mov byte [ebp - 4], 4
cmp ecx, ebx
je 0x100a8ac
call fcn.010086de
mov esi, eax
jmp 0x100a8ae
xor esi, esi
mov byte [ebp - 4], 3
cmp esi, ebx
je 0x100a8fd
push dword [ebp - 0x230]
lea eax, [ebp - 0x218]
push eax
mov ecx, esi
call fcn.0100950e
test eax, eax
je 0x100a8f5
mov ecx, dword [ebp - 0x224]
push esi
call fcn.0100823b
test eax, eax
jl 0x100a8f5
mov ecx, dword [ebp - 0x224]
mov eax, dword [ecx + 0xa4]
push ebx
dec eax
push eax
push esi
call fcn.01008b89
jmp 0x100a8fd
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
lea ecx, [ebp - 0x230]
call fcn.01004403
mov esi, dword [ebp - 0x234]
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], bl
call fcn.01004403
inc dword [ebp - 0x21c]
mov eax, dword [ebp - 0x21c]
cmp eax, dword [ebp - 0x220]
jb 0x100a827
lea ecx, [ebp - 0x244]
call fcn.01004403
lea ecx, [ebp - 0x244]
call fcn.01004403
call fcn.01013617
ret