Function at 0x1040a16
Capabilities:
Query or enumerate registry key

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x828
mov eax, dword [0x1079e94]
push ebx
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
xor esi, esi
dec eax
push edi
mov dword [ebp - 0x818], esi
mov dword [ebp - 0x810], esi
je 0x1040a47
push 0x88e
jmp 0x1040a4c
push 0x88d
call fcn.01052a94
push eax
call fcn.0105b329
mov ebx, 0x1003410
push ebx
call fcn.0105b329
pop ecx
pop ecx
lea eax, [ebp - 0x818]
push eax
mov eax, dword [ebp + 8]
and al, 1
neg al
push 9
push esi
mov edi, 0x100d000
push edi
sbb eax, eax
neg eax
add eax, 0x80000001
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, esi
mov dword [ebp - 0x80c], eax
je 0x1040ae3
push edi
push eax
push esi
push 0x100cea8
call fcn.0101c0ab
push 0x88f
call fcn.01052a94
push eax
call fcn.0105b329
push ebx
call fcn.0105b329
pop ecx
pop ecx
push dword [ebp - 0x80c]
push 0x5c8013a
push edi
call fcn.0105364b
cmp dword [ebp - 0x80c], 2
jne 0x1040cdc
mov dword [ebp - 0x80c], esi
jmp 0x1040cdc
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
lea eax, [ebp - 0x828]
push eax
push esi
push esi
push esi
lea eax, [ebp - 0x814]
push eax
lea eax, [ebp - 0x404]
push eax
mov dword [ebp - 0x820], esi
mov ebx, 0x200
push esi
jmp 0x1040c1d
lea eax, [ebp - 0x810]
push eax
push 9
push esi
lea eax, [ebp - 0x404]
push eax
push dword [ebp - 0x818]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, esi
mov dword [ebp - 0x808], eax
jne 0x1040c70
lea eax, [ebp - 0x828]
push eax
push esi
push esi
push esi
lea eax, [ebp - 0x814]
push eax
lea eax, [ebp - 0x804]
push eax
mov dword [ebp - 0x81c], esi
push esi
jmp 0x1040bc4
push dword [ebp - 0x810]
lea eax, [ebp - 0x804]
push eax
lea eax, [ebp - 0x404]
push eax
call fcn.010400cf
cmp eax, esi
mov dword [ebp - 0x808], eax
je 0x1040b8c
push eax
push 0x613013a
call fcn.01053610
cmp dword [ebp - 0x80c], esi
jne 0x1040ba0
mov eax, dword [ebp - 0x808]
mov dword [ebp - 0x80c], eax
inc dword [ebp - 0x81c]
lea eax, [ebp - 0x828]
push eax
push esi
push esi
push esi
lea eax, [ebp - 0x814]
push eax
lea eax, [ebp - 0x804]
push eax
push dword [ebp - 0x81c]
push dword [ebp - 0x810]
mov dword [ebp - 0x814], ebx
call edi
cmp eax, esi
mov dword [ebp - 0x808], eax
je 0x1040b5e
cmp eax, 0x103
jne 0x1040ca8
push dword [ebp - 0x810]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
inc dword [ebp - 0x820]
lea eax, [ebp - 0x828]
push eax
push esi
push esi
push esi
lea eax, [ebp - 0x814]
push eax
lea eax, [ebp - 0x404]
push eax
push dword [ebp - 0x820]
mov dword [ebp - 0x810], esi
push dword [ebp - 0x818]
mov dword [ebp - 0x814], ebx
call edi
cmp eax, esi
mov dword [ebp - 0x808], eax
je 0x1040b12
cmp eax, 0x103
je 0x1040cdc
push eax
push 0x100cfe4
call fcn.0101c17b
cmp dword [ebp - 0x80c], esi
jne 0x1040c63
mov eax, dword [ebp - 0x808]
mov dword [ebp - 0x80c], eax
push dword [ebp - 0x808]
push 0x5e8013a
jmp 0x1040cd7
push eax
push 0x100cea8
call fcn.0101c17b
cmp dword [ebp - 0x80c], esi
jne 0x1040c8f
mov eax, dword [ebp - 0x808]
mov dword [ebp - 0x80c], eax
push dword [ebp - 0x808]
lea eax, [ebp - 0x404]
push 0x5f7013a
push eax
call fcn.0105364b
jmp 0x1040cdc
push dword [ebp - 0x808]
push 0x100cfe4
call fcn.0101c17b
cmp dword [ebp - 0x80c], esi
jne 0x1040ccc
mov eax, dword [ebp - 0x808]
mov dword [ebp - 0x80c], eax
push dword [ebp - 0x808]
push 0x610013a
call fcn.01053610
cmp dword [ebp - 0x810], esi
je 0x1040cf0
push dword [ebp - 0x810]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x818], esi
pop edi
pop esi
pop ebx
je 0x1040d07
push dword [ebp - 0x818]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x80c]
call fcn.0104b509
leave
ret 4