Function at 0x40bd90
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x430
push esi
xor esi, esi
push esi
lea eax, [ebp - 0x28]
push esi
push eax
lea eax, [ebp - 0x1c]
push eax
push esi
lea eax, [ebp - 0x24]
push esi
push eax
push esi
push esi
push esi
push esi
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
jne 0x40bfb4
mov eax, dword [ebp - 0x24]
push ebx
inc eax
push edi
mov edi, dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
push eax
push esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], eax
call edi
lea ecx, [ebp - 0x30]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
push ecx
push esi
push esi
lea ecx, [ebp - 8]
push esi
push ecx
push eax
push esi
push dword [ebp + 0xc]
mov dword [ebp - 4], eax
call ebx
test eax, eax
jne 0x40beab
mov eax, dword [ebp + 0x14]
cmp eax, esi
jle 0x40be18
mov dword [ebp - 0x14], eax
push 0x4133fc
push dword [ebp + 8]
call fcn.0040c816
dec dword [ebp - 0x14]
pop ecx
pop ecx
jne 0x40be04
push 0x4133f8
push dword [ebp + 8]
call fcn.0040c816
pop ecx
lea eax, [ebp - 0x430]
pop ecx
push dword [ebp - 4]
push str._s_r_n
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x430]
push eax
push dword [ebp + 8]
call fcn.0040c816
add esp, 0x14
cmp dword [ebp + 0x10], esi
je 0x40be88
lea eax, [ebp - 0x10]
push eax
push 9
push esi
push dword [ebp - 4]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40be88
mov eax, dword [ebp + 0x14]
inc eax
push eax
push 1
push dword [ebp - 0x10]
push dword [ebp + 8]
call fcn.0040bd90
add esp, 0x10
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x24]
inc dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], eax
lea eax, [ebp - 0x30]
push eax
push esi
push esi
lea eax, [ebp - 8]
push esi
push eax
push dword [ebp - 4]
push dword [ebp - 0xc]
push dword [ebp + 0xc]
jmp 0x40bdf0
push dword [ebp - 4]
mov ebx, dword [sym.imp.KERNEL32.DLL_GlobalFree]
call ebx
mov eax, dword [ebp - 0x28]
push eax
push esi
mov dword [ebp - 0x18], eax
call edi
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0xc], esi
push eax
push esi
mov dword [ebp - 8], eax
call edi
lea ecx, [ebp - 0x18]
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
push ecx
lea ecx, [ebp - 0x20]
push dword [ebp + 0x10]
mov dword [ebp - 4], eax
push ecx
lea ecx, [ebp - 8]
push esi
push ecx
push eax
push esi
push dword [ebp + 0xc]
call edi
test eax, eax
jne 0x40bfa8
push dword [ebp - 0x18]
lea eax, [ebp - 0x14]
push dword [ebp + 0x10]
push dword [ebp - 0x20]
push eax
call fcn.0040c1c0
mov eax, dword [ebp + 0x14]
add esp, 0x10
cmp eax, esi
jle 0x40bf2c
mov dword [ebp - 0x10], eax
push 0x4133fc
push dword [ebp + 8]
call fcn.0040c816
dec dword [ebp - 0x10]
pop ecx
pop ecx
jne 0x40bf18
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
test eax, eax
jne 0x40bf40
push str._Default_
jmp 0x40bf43
push dword [ebp - 4]
push dword [ebp + 8]
call fcn.0040c816
pop ecx
pop ecx
push 0x4133e8
push dword [ebp + 8]
call fcn.0040c816
push dword [ebp - 0x14]
push dword [ebp + 8]
call fcn.0040c816
push 0x412f30
push dword [ebp + 8]
call fcn.0040c816
add esp, 0x18
push dword [ebp - 0x14]
call ebx
mov eax, dword [ebp - 0x1c]
inc dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push dword [ebp + 0x10]
push eax
lea eax, [ebp - 8]
push esi
push eax
push dword [ebp - 4]
push dword [ebp - 0xc]
push dword [ebp + 0xc]
jmp 0x40beef
push dword [ebp + 0x10]
call ebx
push dword [ebp - 4]
call ebx
pop edi
pop ebx
pop esi
leave
ret