Function at 0x4046c6
Capabilities:
Query or enumerate registry key

Disassembly:
push 0x2c
mov eax, 0x430083
call fcn.0041ae41
mov esi, ecx
xor edi, edi
mov dword [ebp - 4], edi
call fcn.0040f4a1
push eax
lea ecx, [ebp - 0x10]
call fcn.00408f01
lea eax, [ebp - 0x38]
call fcn.0040938b
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp + 8]
push eax
mov byte [ebp - 4], 2
mov ebx, 0x200
push esi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edi
call fcn.0040414a
cmp eax, edi
je 0x404737
mov edi, eax
lea esi, [ebp - 0x38]
call fcn.004093a0
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00401128
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00401128
mov eax, edi
jmp 0x4048e3
push ecx
lea eax, [ebp + 8]
mov dword [ebp - 0x20], esp
mov ecx, esp
push eax
call fcn.00408f26
mov ecx, esi
call dword [ebp + 0xc]
cmp eax, edi
mov dword [ebp - 0x20], eax
jne 0x4048c2
test byte [esi + 0x68], 1
jne 0x4048c2
push ebx
lea ecx, [ebp - 0x10]
call fcn.00408ff1
push edi
push edi
push edi
push edi
lea ecx, [ebp - 0x18]
push ecx
push eax
push edi
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x10]
mov dword [esi + 0x44], eax
call fcn.00408daf
cmp dword [esi + 0x44], edi
mov dword [ebp - 0x1c], 1
jne 0x404806
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x20]
call fcn.00408f26
push ecx
lea eax, [ebp - 0x20]
mov dword [ebp - 0x24], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 3
call fcn.00408f26
mov edi, dword [ebp - 0x30]
lea ecx, [ebp - 0x38]
call fcn.004096a7
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00401128
push ebx
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x18], ebx
call fcn.00408ff1
xor edi, edi
push edi
push edi
push edi
push edi
lea ecx, [ebp - 0x18]
push ecx
push eax
push dword [ebp - 0x1c]
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x10]
mov dword [esi + 0x44], eax
call fcn.00408daf
inc dword [ebp - 0x1c]
cmp dword [esi + 0x44], edi
je 0x404795
cmp dword [esi + 0x44], 0x103
je 0x404825
cmp dword [ebp - 0x14], edi
je 0x40481d
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x17
pop edi
jmp 0x404712
cmp dword [ebp - 0x14], edi
mov dword [esi + 0x44], edi
je 0x404836
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ebx, ebx
cmp dword [ebp - 0x30], edi
jle 0x40489b
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x1c], eax
push dword [ebp + 0xc]
lea eax, [ebp + 8]
push 0x4341bc
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00408cea
add esp, 0xc
cmp ebx, edi
mov byte [ebp - 4], 4
jl 0x4048bd
cmp ebx, dword [ebp - 0x30]
jge 0x4048bd
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push dword [ebp - 0x1c]
push eax
push ecx
call fcn.00408c93
add esp, 0xc
mov ecx, esi
call fcn.004046c6
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00401128
add dword [ebp - 0x1c], 4
inc ebx
cmp ebx, dword [ebp - 0x30]
jl 0x404843
lea esi, [ebp - 0x38]
call fcn.004093a0
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00401128
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00401128
xor eax, eax
jmp 0x4048e3
call fcn.0040fb2c
lea esi, [ebp - 0x38]
call fcn.004093a0
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00401128
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00401128
mov eax, dword [ebp - 0x20]
call fcn.0041aee0
ret 8