Function at 0x1400580a0
Capabilities:
Delete directory

Disassembly:
push rbp
push rdi
push r12
lea rbp, [rsp - 0x23b0]
mov eax, 0x24b0
call fcn.14024c240
sub rsp, rax
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x24d8], rbx
mov qword [rsp + 0x24e0], rsi
mov rax, qword [0x140398250]
xor rax, rsp
mov qword [rbp + 0x23a0], rax
mov rdi, rcx
xor r8d, r8d
lea rdx, str.CBaseFuncMgr::FN_FinishInstaller
lea rcx, [rsp + 0x58]
call fcn.1400075a0
nop
call fcn.140102a14
mov r11, rax
xor r12d, r12d
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14005811f
mov ecx, 0x80004005
call fcn.140005210
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x68], rbx
mov ecx, 1
call fcn.1401027e8
test rax, rax
je 0x140058158
mov r8d, 1
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.140005b00
mov rbx, qword [rsp + 0x68]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x20]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x260]
mov qword [rsp + 0x40], r12
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov r9, qword [rax]
lea r8, [rbp + 0xba0]
lea rdx, str.ISFINISH
mov rcx, rax
call qword [r9 + 0x18]
lea r9, [rbp + 0xba0]
lea r8, str._t_t_tISFINISH_s
mov edx, 7
lea rcx, [rsp + 0x58]
call fcn.140007780
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov r9, qword [rax]
lea r8, [rbp + 0x3a0]
lea rdx, str.RebootYesNo
mov rcx, rax
call qword [r9 + 0x18]
lea r9, [rbp + 0x3a0]
lea r8, str._t_t_tRebootYesNo_s
mov edx, 7
lea rcx, [rsp + 0x58]
call fcn.140007780
cmp word [rbp + 0xba0], 0x31
jne 0x14005820e
cmp word [rbp + 0x3a0], 0x59
je 0x1400583f3
mov rcx, qword [0x1403b9758]
mov rax, qword [rcx]
mov edx, 1
call qword [rax + 0x2a8]
mov rcx, qword [0x1403b9758]
mov rax, qword [rcx]
mov edx, 2
call qword [rax + 0x2a8]
mov rcx, qword [0x1403b9758]
mov rax, qword [rcx]
mov edx, 4
call qword [rax + 0x2a8]
mov rcx, qword [0x1403b9758]
mov rax, qword [rcx]
mov edx, 5
call qword [rax + 0x2a8]
mov rcx, qword [0x1403b9758]
mov rax, qword [rcx]
mov edx, 6
call qword [rax + 0x2a8]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov r9, qword [rax]
lea r8, [rbp + 0x3a0]
lea rdx, str.INTEGRATEDINSTALLER
mov rcx, rax
call qword [r9 + 0x18]
lea rdx, str.NULL
lea rcx, [rbp + 0x3a0]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x1400583f3
mov rcx, qword [0x1403b9768]
mov rax, qword [rcx]
lea r9, [rbp + 0x3a0]
lea r8, [rsp + 0x48]
mov edx, 1
call qword [rax + 0x28]
movsxd rsi, dword [rsp + 0x48]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov rdx, qword [rax + 8]
add rdx, 0x4814
lea rcx, [rbp + 0x3a0]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov rcx, qword [0x1403b9768]
mov rax, qword [rcx]
lea r9, [rbp + 0x3a0]
lea r8, [rsp + 0x40]
xor edx, edx
call qword [rax + 0x28]
mov r11d, dword [0x1403b95bc]
mov rax, qword [rsp + 0x40]
test rax, rax
cmovne r11d, r12d
mov dword [0x1403b95bc], r11d
mov edi, r11d
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x401
mov r9, rsi
lea r8, str._t_t_tPostMessage_HWND:__08x_H__MSG:__x_H__wParam:__x_H__lParam:__x_H_
mov edx, 7
lea rcx, [rsp + 0x58]
call fcn.140007780
mov r9d, edi
mov r8, qword [rsp + 0x40]
mov edx, 0x401
mov rcx, rsi
call qword [sym.imp.USER32.dll_PostMessageW]
test eax, eax
jne 0x1400583f3
mov qword [rsp + 0x50], r12
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 0x409
mov r8d, edi
xor edx, edx
mov ecx, 0x1300
call qword [sym.imp.KERNEL32.dll_FormatMessageW]
test eax, eax
je 0x1400583e3
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], edi
lea r9, str._tPostMessage
lea r8, str.ApiName:__s__ErrorCode:__d_:__s
mov edx, 6
lea rcx, [rsp + 0x58]
call fcn.140007780
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400583f3
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov r8, qword [rax]
xor edx, edx
mov rcx, rax
call qword [r8 + 0x18]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8 + 0x18]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0xa8]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x68]
mov r8, qword [rax]
xor edx, edx
mov rcx, rax
call qword [r8 + gethostbyaddr]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x50]
mov r8, qword [rax]
xor edx, edx
mov rcx, rax
call qword [r8 + 0x120]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x78]
test eax, eax
jne 0x1400585bf
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp - 0x80]
call fcn.14024b970
xor edx, edx
mov r8d, 0x800
lea rcx, [rbp + 0x1ba0]
call fcn.14024b970
xor edx, edx
mov r8d, 0x800
lea rcx, [rbp + 0x13a0]
call fcn.14024b970
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x190]
call fcn.14024b970
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov r9, qword [rax]
lea r8, [rbp + 0x13a0]
lea rdx, str.ProgramFilesFolder
mov rcx, rax
call qword [r9 + 0x18]
lea rdx, [rbp + 0x13a0]
lea rcx, [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rcx, [rbp - 0x80]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rdx, str.Canon_
lea rcx, [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rcx, [rbp - 0x80]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rdx, str.InstRestore
lea rcx, [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rcx, [rbp - 0x80]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rdx, [rbp - 0x80]
lea rcx, [rbp + 0x190]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov r9, qword [rax]
lea r8, [rbp + 0x1ba0]
lea rdx, str.PRODUCT
mov rcx, rax
call qword [r9 + 0x18]
lea rdx, [rbp + 0x1ba0]
lea rcx, [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
mov rcx, qword [0x1403b9768]
mov rax, qword [rcx]
lea rdx, [rbp - 0x80]
call qword [rax + 0xe8]
lea rcx, [rbp + 0x190]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
xor r9d, r9d
lea r8, str.return__08x
lea edx, [r9 + 2]
lea rcx, [rsp + 0x58]
call fcn.140007780
nop
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400585f4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x58]
call fcn.140007730
xor eax, eax
mov rcx, qword [rbp + 0x23a0]
xor rcx, rsp
call fcn.140245660
lea r11, [rsp + 0x24b0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r12
pop rdi
pop rbp
ret