Function at 0x406c10
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x23c
mov eax, dword [0x45281c]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x238], ecx
mov eax, dword [ebp - 0x238]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x218], ecx
mov edx, dword [ebp - 0x238]
mov eax, dword [edx + 8]
and eax, 2
je 0x406c5a
push 1
mov ecx, dword [ebp - 0x238]
call fcn.00406ba0
movzx ecx, al
test ecx, ecx
je 0x406c66
mov edx, dword [ebp - 0x238]
cmp dword [edx + 4], 0
jne 0x406c6d
xor al, al
jmp 0x406ea5
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x228]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
mov ecx, dword [ebp - 0x238]
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
je 0x406ca3
xor al, al
jmp 0x406ea5
push 0x800
call fcn.0040c124
add esp, 4
mov dword [ebp - 0x230], eax
mov eax, dword [ebp - 0x230]
mov dword [ebp - 0x21c], eax
mov ecx, dword [ebp - 0x238]
mov edx, dword [ecx + 8]
or edx, 8
and edx, 0xfffffffd
mov eax, dword [ebp - 0x238]
mov dword [eax + 8], edx
mov ecx, dword [ebp - 0x238]
add ecx, 0x14
call fcn.00403cc0
cmp dword [ebp - 0x228], eax
jbe 0x406d05
mov ecx, dword [ebp - 0x228]
push ecx
mov ecx, dword [ebp - 0x238]
add ecx, 0x14
call fcn.00407900
mov dword [ebp - 0x22c], 0
jmp 0x406d20
mov edx, dword [ebp - 0x22c]
add edx, 1
mov dword [ebp - 0x22c], edx
mov eax, dword [ebp - 0x22c]
cmp eax, dword [ebp - 0x228]
jae 0x406e63
mov dword [ebp - 0x224], 0x208
mov dword [ebp - 0x220], 0x800
xor ecx, ecx
mov word [ebp - 0x210], cx
lea edx, [ebp - 0x220]
push edx
mov eax, dword [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x214]
push ecx
push 0
lea edx, [ebp - 0x224]
push edx
lea eax, [ebp - 0x210]
push eax
mov ecx, dword [ebp - 0x22c]
push ecx
mov edx, dword [ebp - 0x238]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
je 0x406d91
jmp 0x406d11
mov ecx, dword [ebp - 0x214]
mov dword [ebp - 0x23c], ecx
mov edx, dword [ebp - 0x23c]
sub edx, 1
mov dword [ebp - 0x23c], edx
cmp dword [ebp - 0x23c], 6
ja case.0x406dbf.1
mov eax, dword [ebp - 0x23c]
jmp dword [eax*4 + 0x406eb4]
mov ecx, dword [ebp - 0x21c]
push ecx
lea edx, [ebp - 0x210]
push edx
mov ecx, dword [ebp - 0x238]
call fcn.00406720
mov ecx, eax
call fcn.00405670
jmp case.0x406dbf.1
mov eax, dword [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x210]
push ecx
mov ecx, dword [ebp - 0x238]
call fcn.00406720
mov ecx, eax
call fcn.00405560
jmp case.0x406dbf.1
push 0
mov edx, dword [ebp - 0x220]
shr edx, 1
push edx
mov eax, dword [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x210]
push ecx
mov ecx, dword [ebp - 0x238]
call fcn.00406720
mov ecx, eax
call fcn.00405de0
jmp case.0x406dbf.1
mov edx, dword [ebp - 0x220]
push edx
mov eax, dword [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x210]
push ecx
mov ecx, dword [ebp - 0x238]
call fcn.00406720
mov ecx, eax
call fcn.00405af0
jmp 0x406d11
mov edx, dword [ebp - 0x238]
mov eax, dword [ebp - 0x218]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x218]
and ecx, 2
je 0x406e88
mov ecx, dword [ebp - 0x238]
call fcn.00406bf0
mov edx, dword [ebp - 0x21c]
mov dword [ebp - 0x234], edx
mov eax, dword [ebp - 0x234]
push eax
call fcn.0040c119
add esp, 4
mov al, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004288de
mov esp, ebp
pop ebp
ret