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

Disassembly:
mov eax, 0x47bead
call fcn.00467ed8
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 0x4561e1
lea eax, [ebp + 0xb]
push ebx
push eax
push 0x49b094
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x47e4b8
mov dword [ebp - 0x54], 0x47e4b0
call fcn.00405ab2
lea eax, [ebp - 0xf8]
lea ecx, [esi + 0xbc]
push eax
mov dword [ebp - 4], ebx
call fcn.00406c84
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 1
push ecx
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.0041c301
add esp, 0xc
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 4
call fcn.00407d51
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 3
call fcn.00407d51
lea ecx, [ebp - 0x9c]
call fcn.00406617
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push eax
mov esi, 0x800
lea eax, [ebp - 0x8f8]
push esi
push eax
push 0x49f738
mov ebx, 0x4954a8
push 0x49b084
push ebx
call edi
mov ecx, dword [ebp - 0x1c]
xor eax, eax
cmp byte [ebp - 0x8f8], 0x4e
setne al
dec eax
mov word [ecx + 0x3fa], ax
lea ecx, [ebp - 0x9c]
call fcn.00406617
push eax
lea eax, [ebp - 0x8f8]
push esi
push eax
push 0x49f738
push 0x49b078
push ebx
call edi
cmp byte [ebp - 0x8f8], 0x79
je 0x4561c3
cmp byte [ebp - 0x8f8], 0x59
jne 0x4561cd
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x3f5], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9c]
call fcn.00407d51
jmp 0x456383
lea eax, [ebp + 0xb]
push 1
push eax
lea ecx, [ebp - 0x4c]
call fcn.0040562c
push 0x495744
lea ecx, [ebp - 0x4c]
mov dword [ebp - 4], 5
call fcn.004057ef
push dword [0x47e4c4]
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.00408bae
mov dword [ebp - 0x14], ebx
mov esi, 0x800
push edi
mov byte [ebp - 4], 6
mov dword [ebp - 0x24], esi
call fcn.0044a28c
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.0040654b
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x45627e
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x8f8]
push eax
push ebx
push ebx
push 0x49b084
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp byte [ebp - 0x8f8], bl
jne 0x456343
lea eax, [ebp - 0x15]
push 1
push eax
push 0x49b01c
lea ecx, [ebp - 0xc4]
call fcn.0040573d
push dword [0x47e4c4]
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.004079e1
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 6
call fcn.00407d51
push dword [0x47e4c4]
mov eax, edi
add edi, 4
lea ecx, [ebp - 0x48]
neg eax
sbb eax, eax
push ebx
and eax, edi
push eax
call fcn.00408bae
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.0040654b
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x456332
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x8f8]
push eax
push ebx
push ebx
push 0x49b084
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp dword [ebp - 0x10], ebx
je 0x456343
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x10], ebx
cmp byte [ebp - 0x8f8], 0x4e
je 0x456359
cmp byte [ebp - 0x8f8], 0x6e
je 0x456359
xor eax, eax
jmp 0x45635c
or eax, 0xffffffff
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], ebx
mov word [ecx + 0x3fa], ax
je 0x456377
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.00407d51
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 4