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

Disassembly:
mov eax, 0x1010
call fcn.004b8eb0
mov eax, dword [0x630ddc]
xor eax, esp
mov dword [esp + 0x100c], eax
push esi
mov esi, ecx
push edi
mov ecx, 0x6322f8
call fcn.00403e20
mov ecx, dword [eax]
mov edx, dword [ecx + 0xb0]
push str.ProcDIASInst
push str.Action_start__s.
push eax
call edx
push 0x56c6d8
xor edi, edi
call fcn.004030c0
add esp, 0x10
test eax, eax
je 0x489121
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
mov ecx, esi
call edx
mov esi, eax
neg esi
sbb esi, esi
neg esi
jmp 0x489137
push 0x56d164
call fcn.004030c0
add esp, 4
mov esi, eax
neg esi
sbb esi, esi
add esi, 1
call fcn.004028a0
cmp eax, 2
jne 0x48916e
call fcn.00402190
test eax, eax
je 0x48916e
test esi, esi
je 0x48916e
mov ecx, 0x6322f8
call fcn.00403e00
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x168]
call eax
mov edi, eax
test edi, edi
jne 0x48931a
call fcn.00402190
test eax, eax
je 0x48919c
call fcn.004022e0
test eax, eax
je 0x48919c
mov ecx, 0x6322f8
call fcn.00403e00
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
push 5
call eax
mov edi, eax
jmp 0x48931a
call fcn.00402190
test eax, eax
je 0x48931a
push 0x56c6d8
call fcn.004030c0
add esp, 4
test eax, eax
jne 0x4891cf
push 0x56d164
call fcn.004030c0
add esp, 4
test eax, eax
je 0x48931a
lea ecx, [esp + 8]
push ecx
push 0xf003f
push 0
push str.SOFTWARECanonDIASSETUPDIASUser
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x48931a
mov ecx, 0x6322f8
call fcn.00403df0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x28]
call eax
mov edx, dword [eax]
mov edx, dword [edx + 0xc]
lea ecx, [esp + 0x14]
push ecx
push str.TEMPPATH
mov ecx, eax
call edx
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashA]
push str.InsDrv.ini
lea ecx, [esp + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [esp + 0x14]
push edx
push 0x400
lea eax, [esp + 0x81c]
push eax
push 0x56ab79
push str.Product
push str.Installer_Info
call esi
lea ecx, [esp + 0x14]
push ecx
push 0x400
lea edx, [esp + 0x41c]
push edx
push 0x56ab79
push str.Version
push str.Installer_Info
call esi
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0xc18]
push ecx
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x18]
push edx
push 0
lea eax, [esp + 0x824]
push eax
push ecx
mov dword [esp + 0x24], 0x400
mov dword [esp + 0x28], 1
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x48930f
lea edx, [esp + 0xc14]
push edx
lea eax, [esp + 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x48930f
lea ecx, [esp + 0x414]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [esp + 8]
add eax, 1
push eax
lea edx, [esp + 0x418]
push edx
push 1
push 0
lea eax, [esp + 0x824]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x48930f
mov edi, 0x25
mov edx, dword [esp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, 0x6322f8
call fcn.00403e20
mov ecx, dword [eax]
mov edx, dword [ecx + 0xb0]
push edi
push str.ProcDIASInst
push str.Action_ended__s._Return_value__08x.
push eax
call edx
mov ecx, dword [esp + 0x1024]
add esp, 0x10
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.004b6bdf
add esp, 0x1010
ret