Function at 0x1400341e0
Capabilities:
Delete directory
Delete file
Set file attributes

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x818]
sub rsp, 0x8f0
mov qword [rbp - 0x68], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x140260d50]
xor rax, rsp
mov qword [rbp + 0x7e0], rax
mov rbx, rcx
xor r8d, r8d
lea rdx, str.CUNINSTALLERApp::ExitInstance
lea rcx, [rbp - 0x78]
call fcn.14000b870
nop
cmp dword [rbx + 0xa88], 0
je 0x140034246
xor ecx, ecx
call fcn.1400127c0
xor eax, eax
lea r14, [0x1402145dc]
mov rdi, r14
mov rsi, qword [rbx + 0x2a0]
mov r15d, 1
mov ecx, r15d
repe cmpsw word [rsi], word [rdi]
je 0x14003426c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
xor r12d, r12d
or esi, 0xffffffff
test al, al
je 0x1400343b9
call fcn.14004cde4
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14003429f
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x50], rax
test r14, 0xffffffffffff0000
jne 0x1400342dc
movzx edi, r14w
mov ecx, edi
call fcn.14004cbb8
test rax, rax
je 0x1400342ed
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.1400012a0
jmp 0x1400342ed
xor r8d, r8d
mov rdx, r14
lea rcx, [rsp + 0x50]
call fcn.1400014d0
nop
lea r8, str.uninst.ini
lea rdx, [rbx + 0x2a0]
lea rcx, [rsp + 0x68]
call fcn.140006ef0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x50]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x140034364
cmp dword [rdi + 0x10], 0
jl 0x140034355
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140034355
call fcn.140001620
mov r14, rax
mov ecx, esi
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14003434a
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [r14 + 0x18]
mov qword [rsp + 0x50], rax
jmp 0x140034364
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x50]
call fcn.1400014d0
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140034383
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rsp + 0x50]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rcx, qword [rbx + 0x2a0]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
nop
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400343b9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.140015910
mov rcx, qword [rbx + 0x158]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp qword [rbx + 0x268], 0
je 0x14003445c
call fcn.14004cde4
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x1400343f9
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x60], rdi
mov ecx, 0x39
call fcn.14004cbb8
test rax, rax
je 0x140034432
mov r8d, 0x39
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.1400012a0
mov rdi, qword [rsp + 0x60]
mov rdx, rdi
mov rcx, qword [rbx + 0x268]
call fcn.140006da0
nop
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003445c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rbx + 0x848]
test rdi, rdi
je 0x14003448a
call fcn.140050920
mov qword [rax + 0x18], rdi
mov rcx, qword [rbx + 0x850]
test rcx, rcx
je 0x14003448a
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [rbx + 0x850], r12
cmp qword [rbx + 0x798], 0
je 0x1400344bb
mov rax, qword [rbx + 0x7a8]
test rax, rax
je 0x1400344a3
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rbx + 0x798]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
test eax, eax
je 0x1400344bb
mov qword [rbx + 0x798], r12
cmp dword [rbx + 0x36c], 1
jne 0x1400345cc
mov edx, 0x20
lea rcx, [rbx + 0x578]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rbx + 0x578]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov word [rbp + 0x5d0], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x5d2]
call fcn.140193010
mov word [rbp + 0x3c0], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x3c2]
call fcn.140193010
mov word [rbp - 0x60], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp - 0x5e]
call fcn.140193010
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], 0x104
lea r9, [rbp + 0x3c0]
mov r8d, 0x104
lea rdx, [rbp + 0x5d0]
lea rcx, [rbx + 0x578]
call fcn.1401912a0
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rbp + 0x3c0]
lea r8, [rbp + 0x5d0]
mov edx, 0x104
lea rcx, [rbp - 0x60]
call fcn.140191794
lea rcx, [rbp - 0x60]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rdx, str.InsCmn.dll
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
mov edx, 0x20
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rcx, qword [rbx + 0x218]
sub rcx, 0x18
call fcn.140001620
lea rdi, [rax + 0x18]
mov qword [rsp + 0x58], rdi
mov edx, 0x5c
mov rcx, rdi
call fcn.14018f7cc
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov edx, 0x5c
mov rcx, rdi
call fcn.14018f7cc
test rax, rax
jne 0x140034611
mov eax, esi
jmp 0x140034617
sub rax, rdi
sar rax, 1
mov r8d, eax
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x58]
call fcn.140016750
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x140034682
cmp dword [rdi + 0x10], 0
jl 0x140034673
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140034673
call fcn.140001620
mov r13, rax
mov ecx, esi
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x140034668
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [r13 + 0x18]
mov qword [rsp + 0x58], rax
jmp 0x140034682
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x58]
call fcn.1400014d0
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400346a0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rsp + 0x58]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x1b0]
call fcn.140193010
xor r8d, r8d
lea rdx, str.Tool_GetProgramFilesFolder
lea rcx, [rsp + 0x70]
call fcn.14000b870
nop
mov r9d, 0x208
lea r8, str.dwSize___08x
mov edx, r15d
lea rcx, [rsp + 0x70]
call fcn.14000ba50
lea rcx, [rbp + 0x1b0]
call fcn.140014960
test eax, eax
cmovne r12d, r15d
mov dword [rsp + 0x20], r12d
lea r9, [rbp + 0x1b0]
lea r8, str.lpPath___s__return___08x
mov edx, 2
lea rcx, [rsp + 0x70]
call fcn.14000ba50
nop
lea rcx, [rsp + 0x70]
call fcn.14000ba00
lea rcx, [rbp + 0x1b0]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rdx, str.Canon_
lea rcx, [rbp + 0x1b0]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rcx, [rbp + 0x1b0]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov rcx, qword [rbx + 0x788]
test rcx, rcx
je 0x14003477f
movsxd r8, dword [rbx + 0x270]
xor r9d, r9d
mov edx, 0x8001
call qword [sym.imp.USER32.dll_PostMessageW]
mov rcx, rbx
call fcn.14005fab4
mov r12d, eax
test eax, eax
jne 0x140034795
mov r12d, dword [rbx + 0x270]
mov r9d, r12d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rbp - 0x78]
call fcn.14000ba50
nop
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x1400347c7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp - 0x78]
call fcn.14000ba00
mov eax, r12d
mov rcx, qword [rbp + 0x7e0]
xor rcx, rsp
call fcn.14018e5d0
lea r11, [rsp + 0x8f0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret