Function at 0x406f09
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1854
call fcn.00451730
push edi
mov dword [ebp - 0x838], 0
mov dword [ebp - 0x10], 0x400
mov eax, dword [str.SOFTWARECreative_TechMedia_Database_2PC_Media_Library_]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
push ecx
lea edx, [ebp - 0x1040]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov ax, word [0x468c34]
mov word [ebp - 0x834], ax
mov ecx, 0x200
xor eax, eax
lea edi, [ebp - 0x832]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 0x1c], 0x402
lea ecx, [ebp - 0x840]
push ecx
push 0x20019
push 0
lea edx, [ebp - 0x1040]
push edx
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x1048], eax
cmp dword [ebp - 0x1048], 0
je 0x406faa
cmp dword [ebp - 0x1048], 5
jne 0x406fa0
jmp 0x406faa
mov eax, 0xd
jmp 0x4071a2
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x24]
push ecx
lea edx, [ebp - 0x1044]
push edx
lea eax, [ebp - 4]
push eax
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x14]
push edx
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 0x83c]
push ecx
push 0
lea edx, [ebp - 0x1c]
push edx
lea eax, [ebp - 0x834]
push eax
mov ecx, dword [ebp - 0x840]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
mov dword [ebp - 0x1048], eax
cmp dword [ebp - 0x1048], 0
je 0x40700e
cmp dword [ebp - 0x1048], 5
jne 0x407004
jmp 0x40700e
mov eax, 0xd
jmp 0x4071a2
mov dword [ebp - 8], 0
mov dword [ebp - 0x18], 0
jmp 0x407027
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x83c]
jae 0x40715d
mov dword [ebp - 0x104c], 0x402
lea ecx, [ebp - 0x30]
push ecx
push 0
push 0
push 0
lea edx, [ebp - 0x104c]
push edx
lea eax, [ebp - 0x1850]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x840]
push edx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov dword [ebp - 0x1048], eax
cmp dword [ebp - 0x1048], 0
je 0x40709f
mov eax, dword [ebp - 0x840]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x1048], 5
jne 0x407090
jmp 0x40709a
mov eax, 0xd
jmp 0x4071a2
jmp 0x407158
cmp dword [ebp + 8], 0
jne 0x4070c7
lea ecx, [ebp - 0x1850]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edx, dword [ebp - 0x838]
lea eax, [edx + eax + 1]
mov dword [ebp - 0x838], eax
jmp 0x407158
lea ecx, [ebp - 0x1850]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edx, dword [ebp - 0x838]
lea eax, [edx + eax + 2]
cmp eax, dword [ebp + 0xc]
ja 0x407156
mov ecx, dword [ebp - 0x838]
mov edx, dword [ebp + 8]
lea eax, [edx + ecx*2]
mov dword [ebp - 0x1854], eax
cmp dword [ebp - 0x838], 0
jne 0x407114
lea ecx, [ebp - 0x1850]
push ecx
mov edx, dword [ebp - 0x1854]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
jmp 0x407128
lea eax, [ebp - 0x1850]
push eax
mov ecx, dword [ebp - 0x1854]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea edx, [ebp - 0x1850]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [ebp - 0x838]
lea edx, [ecx + eax + 1]
mov dword [ebp - 0x838], edx
mov eax, dword [ebp - 0x838]
mov ecx, dword [ebp + 8]
mov word [ecx + eax*2], 0
jmp 0x407158
jmp 0x40715d
jmp 0x40701e
mov edx, dword [ebp - 0x840]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x838], 0
jne 0x40717a
mov eax, 0xd
jmp 0x4071a2
mov eax, dword [ebp - 0x838]
add eax, 1
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x83c]
jae 0x4071a0
cmp dword [ebp + 8], 0
je 0x4071a0
mov eax, 0xa
jmp 0x4071a2
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret