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

Disassembly:
sub esp, 0x1e0
lea eax, [esp + 0xc]
push ebx
push esi
push edi
xor ebx, ebx
push eax
push 1
push ebx
push str.Config_ManagerEnum
mov esi, ecx
push reloc.OLEAUT32.dll_SysStringLen
xor edi, edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40467b
push ebp
push ebx
push ebx
mov edx, dword [esp + 0x24]
push ebx
push ebx
push ebx
lea ecx, [esp + 0x38]
push ebx
push ecx
push ebx
push ebx
push ebx
push ebx
push edx
mov dword [esp + 0x44], ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
inc eax
lea ecx, [esp + 0x30]
push eax
mov eax, dword [esp + 0x20]
push ecx
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
mov ebp, eax
cmp ebp, ebx
jne 0x404669
lea ecx, [esp + 0x30]
lea edx, [esp + 0xf0]
push ecx
push str.Config_ManagerEnum_s
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [esp + 0x10]
lea ecx, [esp + 0xf0]
push eax
push 1
push ebx
push ecx
push reloc.OLEAUT32.dll_SysStringLen
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40465e
lea edx, [esp + 0x18]
lea eax, [esp + 0x170]
push edx
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x2c]
push eax
push ecx
push ebx
push str.HardWareKey
push edx
mov dword [esp + 0x30], 0x80
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x170]
push eax
push ecx
mov ecx, esi
call fcn.004048a0
test eax, eax
je 0x40465e
lea edx, [esp + 0x18]
lea eax, [esp + 0x70]
push edx
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x24]
push eax
push ecx
push ebx
push str.Allocation
push edx
mov dword [esp + 0x38], 3
mov dword [esp + 0x30], 0x80
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
xor eax, eax
mov al, byte [esp + 0xb8]
mov ah, byte [esp + 0xb9]
lea edx, [eax + 8]
in al, dx
movsx eax, al
cmp eax, ebx
je 0x404640
mov edx, 1
cmp eax, edx
je 0x404640
cmp eax, 0x10
je 0x404625
cmp eax, 0x14
je 0x404625
cmp eax, 0x18
je 0x404625
cmp eax, 0x11
je 0x40460a
cmp eax, 0x15
je 0x40460a
cmp eax, 0x19
je 0x40460a
cmp eax, 0x20
je 0x404640
cmp eax, 0x24
je 0x404640
cmp eax, 0x28
je 0x404640
cmp eax, 0x21
je 0x4045ef
cmp eax, 0x25
je 0x4045ef
cmp eax, 0x29
je 0x4045ef
mov ecx, dword [esi + 0x8c]
lea eax, [ecx*8]
sub eax, ecx
lea eax, [eax + eax*4]
mov dword [eax*8 + 0x435ddc], ebx
jmp 0x404659
mov ecx, dword [esi + 0x8c]
lea eax, [ecx*8]
sub eax, ecx
lea ecx, [eax + eax*4]
mov dword [ecx*8 + 0x435ddc], edx
jmp 0x404659
mov ecx, dword [esi + 0x8c]
lea eax, [ecx*8]
sub eax, ecx
lea eax, [eax + eax*4]
mov dword [eax*8 + 0x435ddc], edx
jmp 0x404659
mov ecx, dword [esi + 0x8c]
lea eax, [ecx*8]
sub eax, ecx
lea ecx, [eax + eax*4]
mov dword [ecx*8 + 0x435ddc], ebx
jmp 0x404659
mov ecx, dword [esi + 0x8c]
lea eax, [ecx*8]
sub eax, ecx
lea edx, [eax + eax*4]
mov dword [edx*8 + 0x435ddc], ebx
mov edi, 1
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [esp + 0x14]
inc ecx
cmp ebp, ebx
mov dword [esp + 0x14], ecx
je 0x40447e
pop ebp
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp edi, ebx
je 0x404691
mov ecx, esi
call fcn.004046a0
mov eax, edi
pop edi
pop esi
pop ebx
add esp, 0x1e0
ret