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

Disassembly:
mov eax, 0x467d9d
call fcn.004571ec
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 0x4493a0
lea eax, [ebp + 0xb]
push ebx
push eax
push 0x481878
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], 0x469494
mov dword [ebp - 0x54], 0x46948c
call fcn.00404c93
lea eax, [ebp - 0xf8]
lea ecx, [esi + 0xc0]
push eax
mov dword [ebp - 4], ebx
call fcn.00417e3f
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 1
push ecx
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.004180ae
add esp, 0xc
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 4
call fcn.004060f2
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 3
call fcn.004060f2
lea ecx, [ebp - 0x9c]
call fcn.00405599
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push eax
mov esi, 0x800
lea eax, [ebp - 0x8f8]
push esi
push eax
push 0x485ac0
mov ebx, str.Startup
push str.DoMaintenance
push ebx
call edi
mov ecx, dword [ebp - 0x1c]
xor eax, eax
cmp byte [ebp - 0x8f8], 0x4e
setne al
dec eax
mov word [ecx + 0x3d4], ax
lea ecx, [ebp - 0x9c]
call fcn.00405599
push eax
lea eax, [ebp - 0x8f8]
push esi
push eax
push 0x485ac0
push str.NoAddRemove
push ebx
call edi
cmp byte [ebp - 0x8f8], 0x79
je 0x449382
cmp byte [ebp - 0x8f8], 0x59
jne 0x44938c
mov eax, dword [ebp - 0x1c]
mov byte [eax + 0x3d0], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9c]
call fcn.004060f2
jmp 0x449542
lea eax, [ebp + 0xb]
push 1
push eax
lea ecx, [ebp - 0x4c]
call fcn.0040487b
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall_
lea ecx, [ebp - 0x4c]
mov dword [ebp - 4], 5
call fcn.004049a2
push dword [0x469488]
lea edi, [esi + 0x2fc]
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.00406edb
mov dword [ebp - 0x14], ebx
mov esi, 0x800
push edi
mov byte [ebp - 4], 6
mov dword [ebp - 0x24], esi
call fcn.0043eff3
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.004054cd
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x44943d
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x8f8]
push eax
push ebx
push ebx
push str.DoMaintenance
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp byte [ebp - 0x8f8], bl
jne 0x449502
lea eax, [ebp - 0x15]
push 1
push eax
push str.SoftwareMicrosoftWindowsCurrentVersionUninstallInstallShield_Uninstall_Information_
lea ecx, [ebp - 0xc4]
call fcn.004048f0
push dword [0x469488]
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.00405e76
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 6
call fcn.004060f2
push dword [0x469488]
mov eax, edi
add edi, 4
lea ecx, [ebp - 0x48]
neg eax
sbb eax, eax
push ebx
and eax, edi
push eax
call fcn.00406edb
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.004054cd
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4494f1
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x8f8]
push eax
push ebx
push ebx
push str.DoMaintenance
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp dword [ebp - 0x10], ebx
je 0x449502
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x10], ebx
cmp byte [ebp - 0x8f8], 0x4e
je 0x449518
cmp byte [ebp - 0x8f8], 0x6e
je 0x449518
xor eax, eax
jmp 0x44951b
or eax, 0xffffffff
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], ebx
mov word [ecx + 0x3d4], ax
je 0x449536
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.004060f2
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 4