Function at 0x407fb0
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_2Audio_CD_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 [0x468c3c]
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 0x408051
cmp dword [ebp - 0x1048], 5
jne 0x408047
jmp 0x408051
mov eax, 0xd
jmp 0x408249
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 0x4080b5
cmp dword [ebp - 0x1048], 5
jne 0x4080ab
jmp 0x4080b5
mov eax, 0xd
jmp 0x408249
mov dword [ebp - 8], 0
mov dword [ebp - 0x18], 0
jmp 0x4080ce
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x83c]
jae 0x408204
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 0x408146
mov eax, dword [ebp - 0x840]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x1048], 5
jne 0x408137
jmp 0x408141
mov eax, 0xd
jmp 0x408249
jmp 0x4081ff
cmp dword [ebp + 8], 0
jne 0x40816e
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 0x4081ff
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 0x4081fd
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 0x4081bb
lea ecx, [ebp - 0x1850]
push ecx
mov edx, dword [ebp - 0x1854]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
jmp 0x4081cf
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 0x4081ff
jmp 0x408204
jmp 0x4080c5
mov edx, dword [ebp - 0x840]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x838], 0
jne 0x408221
mov eax, 0xd
jmp 0x408249
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 0x408247
cmp dword [ebp + 8], 0
je 0x408247
mov eax, 0xa
jmp 0x408249
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret