Function at 0x454366
Capabilities:
Query or enumerate registry value
Read .ini file

Disassembly:
mov eax, 0x4793f9
call fcn.00465b54
sub esp, 0x8ec
push ebx
push esi
mov esi, ecx
push edi
xor ebx, ebx
mov ecx, 0x1ff
xor eax, eax
lea edi, [ebp - 0x8f7]
mov byte [ebp - 0x8f8], bl
cmp word [ebp + 8], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 0x1c], esi
stosb byte es:[edi], al
jne 0x4544a3
lea eax, [ebp + 0xb]
push ebx
push eax
push 0x496d5c
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x47b4b8
mov dword [ebp - 0x54], 0x47b4b0
call fcn.004059b3
lea eax, [ebp - 0xf8]
lea ecx, [esi + 0xbc]
push eax
mov dword [ebp - 4], ebx
call fcn.004071be
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 1
push ecx
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.0041b7c1
add esp, 0xc
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 4
call fcn.00407f77
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 3
call fcn.00407f77
lea ecx, [ebp - 0x9c]
call fcn.0040650f
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push eax
mov esi, 0x800
lea eax, [ebp - 0x8f8]
push esi
push eax
push 0x49b2b8
mov ebx, 0x491450
push 0x496d4c
push ebx
call edi
mov ecx, dword [ebp - 0x1c]
xor eax, eax
cmp byte [ebp - 0x8f8], 0x4e
setne al
dec eax
mov word [ecx + 0x3f8], ax
lea ecx, [ebp - 0x9c]
call fcn.0040650f
push eax
lea eax, [ebp - 0x8f8]
push esi
push eax
push 0x49b2b8
push 0x496d40
push ebx
call edi
cmp byte [ebp - 0x8f8], 0x79
je 0x454485
cmp byte [ebp - 0x8f8], 0x59
jne 0x45448f
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x3f4], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9c]
call fcn.00407f77
jmp 0x454645
lea eax, [ebp + 0xb]
push 1
push eax
lea ecx, [ebp - 0x4c]
call fcn.0040554d
push 0x491704
lea ecx, [ebp - 0x4c]
mov dword [ebp - 4], 5
call fcn.00405710
push dword [0x47b4c4]
lea edi, [esi + 0x2f8]
mov eax, edi
neg eax
lea ecx, [edi + 4]
push ebx
sbb eax, eax
and eax, ecx
lea ecx, [ebp - 0x48]
push eax
call fcn.00408822
mov dword [ebp - 0x14], ebx
mov esi, 0x800
push edi
mov byte [ebp - 4], 6
mov dword [ebp - 0x24], esi
call fcn.00448701
neg al
sbb eax, eax
pop ecx
add eax, reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x4c]
mov dword [ebp + 8], eax
lea eax, [ebp - 0x14]
push eax
push 1
push ebx
call fcn.00406443
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x454540
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x8f8]
push eax
push ebx
push ebx
push 0x496d4c
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp byte [ebp - 0x8f8], bl
jne 0x454605
lea eax, [ebp - 0x15]
push 1
push eax
push 0x496ce4
lea ecx, [ebp - 0xc4]
call fcn.0040565e
push dword [0x47b4c4]
lea eax, [ebp - 0xc4]
neg eax
sbb eax, eax
lea ecx, [ebp - 0xc0]
and eax, ecx
push ebx
push eax
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 7
call fcn.00406fad
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 6
call fcn.00407f77
push dword [0x47b4c4]
mov eax, edi
add edi, 4
lea ecx, [ebp - 0x48]
neg eax
sbb eax, eax
push ebx
and eax, edi
push eax
call fcn.00408822
mov dword [ebp - 0x10], ebx
lea eax, [ebp - 0x10]
lea ecx, [ebp - 0x4c]
push eax
push 1
push ebx
mov byte [ebp - 4], 8
mov dword [ebp - 0x20], esi
call fcn.00406443
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4545f4
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x8f8]
push eax
push ebx
push ebx
push 0x496d4c
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp dword [ebp - 0x10], ebx
je 0x454605
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x10], ebx
cmp byte [ebp - 0x8f8], 0x4e
je 0x45461b
cmp byte [ebp - 0x8f8], 0x6e
je 0x45461b
xor eax, eax
jmp 0x45461e
or eax, 0xffffffff
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], ebx
mov word [ecx + 0x3f8], ax
je 0x454639
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x14], ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4c]
call fcn.00407f77
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 4