Function at 0x48c3a0
Capabilities:
Delete file
Delete registry key
Delete registry value
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a318e
mov eax, dword fs:[0]
push eax
mov eax, 0x1d30
call fcn.0056e430
mov eax, dword [0x608554]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push ecx
push str.UninstallerInstall::DeleteOldUnInst
lea ecx, [ebp - 0x1d10]
call fcn.0040a480
mov dword [ebp - 4], 0
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x48c42b
test byte [ecx + 0x1c], 1
je 0x48c42b
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5d0fec
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x1e
call fcn.00401840
add esp, 0xc
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00571c00
push 0x800
lea eax, [ebp - 0xc20]
push 0
push eax
call fcn.00571c00
push 0x800
lea eax, [ebp - 0x1c20]
push 0
push eax
call fcn.00571c00
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x1c20]
add esp, 0x24
mov ecx, dword [ecx + 0x1c]
push eax
push str.PDL_TYPE
call fcn.004f65f0
mov ecx, 0x5c8a8c
lea eax, [ebp - 0x1c20]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x48c4b6
test dx, dx
je 0x48c4b2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x48c4b6
add eax, 4
add ecx, 4
test dx, dx
jne 0x48c490
xor eax, eax
jmp 0x48c4bb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x48c4c6
mov ecx, esi
call fcn.0048cd90
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0xc20]
push eax
push str.UninstallerRegKeyName
mov ecx, dword [ecx + 0x1c]
call fcn.004f65f0
lea ecx, [ebp - 0x1d3c]
call fcn.004066e0
lea ecx, [ebp - 0x1d3c]
mov byte [ebp - 4], 1
call fcn.004068b0
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 0x1d3c]
push eax
push 0xf003f
push 0
push str.SOFTWARECanonPrnUninst
push reloc.OLEAUT32.dll_SysReAllocString
call edi
test eax, eax
je 0x48c56b
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x48c80e
test byte [ecx + 0x1c], 4
je 0x48c80e
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5d0fec
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x1f
call fcn.00401840
add esp, 0xc
jmp 0x48c80e
push 0
lea eax, [ebp - 0x1d14]
mov dword [ebp - 0x1d14], 0
push eax
lea eax, [ebp - 0xc20]
push eax
lea ecx, [ebp - 0x1d3c]
call fcn.00406aa0
test eax, eax
jne 0x48c5ae
push dword [ebp - 0x1d14]
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.005746e6
add esp, 0xc
mov eax, dword [ebp - 0x1d3c]
test eax, eax
je 0x48c5c6
lea ecx, [ebp - 0xc20]
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
lea ecx, [ebp - 0x1c88]
call fcn.004066e0
mov byte [ebp - 4], 2
mov esi, dword [ebp - 0x1d3c]
test esi, esi
je 0x48c7bf
lea ecx, [ebp - 0x1c88]
call fcn.004068b0
lea eax, [ebp - 0x1c88]
push eax
push 0xf003f
push 0
lea eax, [ebp - 0xc20]
push eax
push esi
call edi
test eax, eax
jne 0x48c7bf
push eax
mov dword [ebp - 0x1d14], eax
lea ecx, [ebp - 0x1c88]
lea eax, [ebp - 0x1d14]
push eax
push str.exePath
call fcn.00406aa0
test eax, eax
jne 0x48c64a
push dword [ebp - 0x1d14]
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.005746e6
add esp, 0xc
lea ecx, [ebp - 0x1c88]
call fcn.004068b0
mov esi, dword [ebp - 0x1d3c]
push ecx
push 0x5c6b7c
lea ecx, [ebp - 0x1cd8]
call fcn.0040a480
mov byte [ebp - 4], 3
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x48c6b0
test byte [ecx + 0x1c], 1
je 0x48c6b0
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5c6b6c
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0xa
call fcn.00401840
add esp, 0xc
lea ecx, [ebp - 0x1c48]
call fcn.004066e0
lea eax, [ebp - 0xc20]
mov byte [ebp - 4], 4
push eax
push esi
lea ecx, [ebp - 0x1c48]
call fcn.00406de0
lea eax, [ebp - 0xc20]
push eax
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
call esi
lea ecx, [ebp - 0x1c48]
call fcn.004068b0
lea eax, [ebp - 0x1c48]
push eax
push 0xf003f
push 0
push str.SOFTWARE
push reloc.OLEAUT32.dll_SysReAllocString
call edi
test eax, eax
jne 0x48c751
push str.SOFTWARECanonPrnUninst
push ecx
call fcn.00407070
test eax, eax
je 0x48c751
mov eax, dword [ebp - 0x1c48]
test eax, eax
je 0x48c751
push str.CanonPrnUninst
push eax
call esi
test eax, eax
jne 0x48c751
push str.SOFTWARECANON_
push ecx
call fcn.00407070
test eax, eax
je 0x48c751
mov eax, dword [ebp - 0x1c48]
test eax, eax
je 0x48c751
push str.CANON
push eax
call esi
mov byte [ebp - 0x1cd4], 1
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x48c798
test byte [ecx + 0x1c], 1
je 0x48c798
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5c6b6c
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0xb
call fcn.00401840
add esp, 0xc
lea ecx, [ebp - 0x1c48]
call fcn.004067f0
lea ecx, [ebp - 0x1cd8]
mov byte [ebp - 4], 2
call fcn.0040a570
lea ecx, [ebp - 0x1d3c]
call fcn.004068b0
jmp 0x48c7ff
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x48c7ff
test byte [ecx + 0x1c], 4
je 0x48c7ff
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5d0fec
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x20
call fcn.00401840
add esp, 0xc
lea ecx, [ebp - 0x1c88]
mov byte [ebp - 4], 1
call fcn.004067f0
push 0x800
lea eax, [ebp - 0x1420]
push 0
push eax
call fcn.00571c00
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0xc20]
push str..LNK
push str.Uninstaller
push eax
lea eax, [ebp - 0x1420]
push str._s__s_s
push eax
call edi
add esp, 0x20
lea eax, [ebp - 0x1420]
push eax
push 0
call fcn.00408b00
call fcn.0048d8f0
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.00571c00
mov ecx, dword [0x6184f4]
lea eax, [ebp - 0x420]
add esp, 0xc
mov ecx, dword [ecx + 4]
push eax
push 1
call fcn.005094b0
mov esi, eax
push esi
call fcn.00409160
push eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x1420]
push eax
push str.UNINST_PDL_MENU
mov ecx, dword [ecx + 0x1c]
call fcn.004f65f0
push str..LNK
lea eax, [ebp - 0x1420]
push eax
push 0x5c70f4
push eax
call edi
add esp, 0x10
lea eax, [ebp - 0x1420]
push eax
push esi
call fcn.00408b00
push ecx
push str.UninstallerInstall::DeleteUnInstFiles
lea ecx, [ebp - 0x1cd8]
call fcn.0040a480
mov byte [ebp - 4], 5
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x48c92b
test byte [ecx + 0x1c], 1
je 0x48c92b
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5d0fec
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x27
call fcn.00401840
add esp, 0xc
push 0x208
lea eax, [ebp - 0x1628]
push 0
push eax
call fcn.00571c00
add esp, 0xc
lea eax, [ebp - 0x1628]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
jne 0x48c990
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x48c9eb
test byte [ecx + 0x1c], 4
je 0x48c9eb
cmp dword [0x608f68], 8
mov eax, 0x608f54
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x28
jmp 0x48c9de
mov ecx, dword [0x6184f4]
lea eax, [ebp - 0x1628]
push eax
push 0
mov ecx, dword [ecx + 4]
call fcn.005094b0
test eax, eax
jne 0x48c9eb
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x48c9eb
test byte [ecx + 0x1c], 4
je 0x48c9eb
cmp dword [0x608f68], 8
mov eax, 0x608f54
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x29
mov edx, 0x5d0fec
call fcn.00401840
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
call fcn.00408c90
lea eax, [ebp - 0x218]
push eax
call fcn.00408f00
lea eax, [ebp - 0x218]
push eax
call fcn.00409030
mov byte [ebp - 0x1cd4], 1
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x48ca56
test byte [ecx + 0x1c], 1
je 0x48ca56
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5d0fec
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x2a
call fcn.00401840
add esp, 0xc
lea ecx, [ebp - 0x1cd8]
mov byte [ebp - 4], 1
call fcn.0040a570
push 0xa
xor eax, eax
mov dword [ebp - 0x1c28], 0
push str.InsCmn.dll
lea ecx, [ebp - 0x1c38]
mov dword [ebp - 0x1c24], 7
mov word [ebp - 0x1c38], ax
call fcn.004035d0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1c78]
push 1
xor eax, eax
mov dword [ebp - 0x1c68], 0
push 0x5c692c
mov dword [ebp - 0x1c64], 7
mov word [ebp - 0x1c78], ax
call fcn.004035d0
lea ecx, [ebp - 0x218]
mov byte [ebp - 4], 7
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x48cad4
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
push ecx
lea ecx, [ebp - 0x1c78]
call fcn.00425910
mov dword [ebp - 0x1c50], 0
xor ecx, ecx
mov dword [ebp - 0x1c4c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1c60], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1c50], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea eax, [ebp - 0x1c38]
mov byte [ebp - 4], 8
push eax
lea edx, [ebp - 0x1c60]
lea ecx, [ebp - 0x1ca0]
call fcn.00425880
add esp, 4
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x1c4c]
cmp edx, 8
jb 0x48cb98
mov ecx, dword [ebp - 0x1c60]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x48cb8e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48cd6c
push edx
push ecx
call fcn.0056deb6
add esp, 8
xor eax, eax
mov dword [ebp - 0x1c50], 0
mov dword [ebp - 0x1c4c], 7
mov word [ebp - 0x1c60], ax
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x1c64]
cmp edx, 8
jb 0x48cbf9
mov ecx, dword [ebp - 0x1c78]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x48cbef
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48cd71
push edx
push ecx
call fcn.0056deb6
add esp, 8
xor eax, eax
mov dword [ebp - 0x1c68], 0
mov dword [ebp - 0x1c64], 7
mov word [ebp - 0x1c78], ax
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x1c24]
cmp edx, 8
jb 0x48cc5a
mov ecx, dword [ebp - 0x1c38]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x48cc50
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48cd76
push edx
push ecx
call fcn.0056deb6
add esp, 8
xor eax, eax
mov dword [ebp - 0x1c28], 0
cmp dword [ebp - 0x1c8c], 8
mov word [ebp - 0x1c38], ax
lea eax, [ebp - 0x1ca0]
cmovae eax, dword [ebp - 0x1ca0]
push eax
mov dword [ebp - 0x1c24], 7
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
call fcn.0048dc90
mov byte [ebp - 0x1d0c], 1
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x48cce0
test byte [ecx + 0x1c], 1
je 0x48cce0
cmp dword [0x608f68], 8
mov eax, 0x608f54
push 0
cmovae eax, dword [0x608f54]
mov edx, 0x5d0fec
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x21
call fcn.004018a0
add esp, 0x10
mov edx, dword [ebp - 0x1c8c]
cmp edx, 8
jb 0x48cd1c
mov ecx, dword [ebp - 0x1ca0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x48cd12
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48cd7b
push edx
push ecx
call fcn.0056deb6
add esp, 8
xor eax, eax
mov dword [ebp - 0x1c90], 0
lea ecx, [ebp - 0x1d3c]
mov dword [ebp - 0x1c8c], 7
mov word [ebp - 0x1ca0], ax
call fcn.004067f0
lea ecx, [ebp - 0x1d10]
call fcn.0040a570
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0056d977
mov esp, ebp
pop ebp
ret
call fcn.00574908
call fcn.00574908
call fcn.00574908
call fcn.00574908
int3