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

Disassembly:
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1080]
mov eax, 0x1180
call fcn.14019e810
sub rsp, rax
mov qword [rbp - 0x18], 0xfffffffffffffffe
mov qword [rsp + 0x11b8], rbx
mov qword [rsp + 0x11c0], rsi
mov qword [rsp + 0x11c8], rdi
mov rax, qword [0x14026fdb0]
xor rax, rsp
mov qword [rbp + 0x1070], rax
mov rbx, rcx
xor r8d, r8d
lea rdx, str.CUNINSTALLERApp::ExitInstance
lea rcx, [rbp - 0x60]
call fcn.140001190
nop
cmp dword [rbx + 0xa80], 0
je 0x14003cc67
xor ecx, ecx
call fcn.14001c450
xor eax, eax
lea r14, [0x1402209ac]
mov rdi, r14
mov rsi, qword [rbx + 0x2a0]
mov r15d, 1
mov ecx, r15d
repe cmpsw word [rsi], word [rdi]
je 0x14003cc8d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
xor r12d, r12d
or esi, 0xffffffff
test al, al
je 0x14003cdd8
call fcn.140056384
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14003ccc0
mov ecx, 0x80004005
call fcn.140004550
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x50], rax
test r14, 0xffffffffffff0000
jne 0x14003ccfd
movzx edi, r14w
mov ecx, edi
call fcn.140056158
test rax, rax
je 0x14003cd0e
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.140005730
jmp 0x14003cd0e
xor r8d, r8d
mov rdx, r14
lea rcx, [rsp + 0x50]
call fcn.1400059f0
nop
lea r8, str.uninst.ini
lea rdx, [rbx + 0x2a0]
lea rcx, [rbp - 0x70]
call fcn.140012330
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x50]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14003cd84
cmp dword [rdi + 0x10], 0
jl 0x14003cd75
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14003cd75
call fcn.140006db0
mov r14, rax
mov ecx, esi
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14003cd6a
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 0x14003cd84
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x50]
call fcn.1400059f0
nop
mov rdx, qword [rbp - 0x70]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003cda2
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 0x14003cdd8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.14001f690
mov rcx, qword [rbx + 0x158]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp qword [rbx + 0x268], 0
je 0x14003ce7b
call fcn.140056384
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14003ce18
mov ecx, 0x80004005
call fcn.140004550
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.140056158
test rax, rax
je 0x14003ce51
mov r8d, 0x39
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140005730
mov rdi, qword [rsp + 0x60]
mov rdx, rdi
mov rcx, qword [rbx + 0x268]
call fcn.140012770
nop
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003ce7b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rbx + 0x840]
test rdi, rdi
je 0x14003cea9
call fcn.140059f20
mov qword [rax + 0x18], rdi
mov rcx, qword [rbx + 0x848]
test rcx, rcx
je 0x14003cea9
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [rbx + 0x848], r12
cmp qword [rbx + 0x790], 0
je 0x14003ceda
mov rax, qword [rbx + 0x7a0]
test rax, rax
je 0x14003cec2
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rbx + 0x790]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
test eax, eax
je 0x14003ceda
mov qword [rbx + 0x790], r12
cmp dword [rbx + 0x364], 1
jne 0x14003d23a
mov rcx, qword [rbx + 0xab0]
cmp dword [rcx - 0x10], 0
jge 0x14003cef8
mov eax, esi
jmp 0x14003cf17
lea rdx, [0x14021db24]
call fcn.1401998b4
test rax, rax
jne 0x14003cf0d
mov eax, esi
jmp 0x14003cf17
sub rax, qword [rbx + 0xab0]
sar rax, 1
mov r14d, r12d
cmp eax, 0xffffffff
setne r14b
test r14d, r14d
je 0x14003d0d6
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0xe60]
call fcn.14019d7c0
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0xc50]
call fcn.14019d7c0
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x620]
call fcn.14019d7c0
lea r13, [rbx + 0x570]
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 + 0xc50]
mov r8d, 0x104
lea rdx, [rbp + 0xe60]
mov rcx, r13
call fcn.14019a34c
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rbp + 0xc50]
lea r8, [rbp + 0xe60]
mov edx, 0x104
lea rcx, [rbp + 0x620]
call fcn.14019bf84
lea rcx, [rbp + 0x620]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rcx, [rbp - 0x50]
call fcn.140069bc0
nop
lea r8, [rbx + 0xab0]
lea rdx, [rbp + 0x620]
lea rcx, [rbp - 0x68]
call fcn.14003dd70
nop
xor r8d, r8d
mov rdx, qword [rax]
lea rcx, [rbp - 0x50]
call fcn.140069cc8
mov edi, eax
mov rdx, qword [rbp - 0x68]
add rdx, 0xffffffffffffffe8
mov ecx, esi
lock xadd dword [rdx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14003d02d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test edi, edi
je 0x14003d0cb
lea rcx, [rbp - 0x50]
call fcn.1400696e8
mov edi, eax
mov edx, 0x10
lea rcx, [rbp - 0x50]
mov rax, qword [rbp - 0x50]
call qword [rax + VarBstrFromDisp]
test eax, eax
jne 0x14003d0c3
lea rdx, [rbp - 0x78]
lea rcx, [rbp - 0x50]
call fcn.14006a130
mov edx, 0x20
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003d08d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x50]
call fcn.14006a130
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003d0c3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test edi, edi
jne 0x14003d035
lea rcx, [rbp - 0x50]
call fcn.140069c20
jmp 0x14003d0f4
lea r13, [rbx + 0x570]
mov edx, 0x20
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov word [rbp + 0x830], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x832]
call fcn.14019d7c0
mov word [rbp + 0xa40], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0xa42]
call fcn.14019d7c0
mov word [rbp - 0x10], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp - 0xe]
call fcn.14019d7c0
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 + 0xa40]
mov r8d, 0x104
lea rdx, [rbp + 0x830]
mov rcx, r13
call fcn.14019a34c
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rbp + 0xa40]
lea r8, [rbp + 0x830]
mov edx, 0x104
lea rcx, [rbp - 0x10]
call fcn.14019bf84
lea rcx, [rbp - 0x10]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
test r14d, r14d
je 0x14003d210
mov word [rbp + 0x200], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x202]
call fcn.14019d7c0
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0x200]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rdx, str.UninstLocale.ini
lea rcx, [rbp + 0x200]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
mov edx, 0x20
lea rcx, [rbp + 0x200]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rbp + 0x200]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
lea rdx, str.InsCmn.dll
lea rcx, [rbp - 0x10]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
mov edx, 0x20
lea rcx, [rbp - 0x10]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rbp - 0x10]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rcx, qword [rbx + 0x218]
sub rcx, 0x18
call fcn.140006db0
lea rdi, [rax + 0x18]
mov qword [rsp + 0x58], rdi
mov edx, 0x5c
mov rcx, rdi
call fcn.14019a074
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov edx, 0x5c
mov rcx, rdi
call fcn.14019a074
test rax, rax
jne 0x14003d27f
mov eax, esi
jmp 0x14003d285
sub rax, rdi
sar rax, 1
mov r8d, eax
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x58]
call fcn.1400121e0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14003d2f0
cmp dword [rdi + 0x10], 0
jl 0x14003d2e1
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14003d2e1
call fcn.140006db0
mov r13, rax
mov ecx, esi
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14003d2d6
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 0x14003d2f0
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x58]
call fcn.1400059f0
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003d30e
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 + 0x410]
call fcn.14019d7c0
xor r8d, r8d
lea rdx, str.Tool_GetProgramFilesFolder
lea rcx, [rsp + 0x68]
call fcn.140001190
nop
mov r9d, 0x208
lea r8, str.dwSize___08x
mov edx, r15d
lea rcx, [rsp + 0x68]
call fcn.140001370
lea rcx, [rbp + 0x410]
call fcn.14001e6a0
test eax, eax
cmovne r12d, r15d
mov dword [rsp + 0x20], r12d
lea r9, [rbp + 0x410]
lea r8, str.lpPath___s__return___08x
mov edx, 2
lea rcx, [rsp + 0x68]
call fcn.140001370
nop
lea rcx, [rsp + 0x68]
call fcn.140001320
lea rcx, [rbp + 0x410]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rdx, str.Canon_
lea rcx, [rbp + 0x410]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rcx, [rbp + 0x410]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov rcx, qword [rbx + 0x780]
test rcx, rcx
je 0x14003d3ed
movsxd r8, dword [rbx + 0x270]
xor r9d, r9d
mov edx, 0x8001
call qword [sym.imp.USER32.dll_PostMessageW]
mov rcx, rbx
call fcn.14006a4a0
mov r12d, eax
test eax, eax
jne 0x14003d403
mov r12d, dword [rbx + 0x270]
mov r9d, r12d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rbp - 0x60]
call fcn.140001370
nop
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x14003d435
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp - 0x60]
call fcn.140001320
mov eax, r12d
mov rcx, qword [rbp + 0x1070]
xor rcx, rsp
call fcn.140198b40
lea r11, [rsp + 0x1180]
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