Function at 0x14001a4a0
Capabilities:
Check if file exists
Delete directory
Delete file
Delete registry key
Delete registry value
Get common file path
Move file
Query or enumerate registry value
Set file attributes

Disassembly:
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x14b0]
mov eax, 0x15b0
call fcn.14019e810
sub rsp, rax
mov qword [rbp + 8], 0xfffffffffffffffe
mov qword [rsp + 0x15e0], rbx
mov qword [rsp + 0x15e8], rsi
mov qword [rsp + 0x15f0], rdi
mov rax, qword [0x14026fdb0]
xor rax, rsp
mov qword [rbp + 0x14a0], rax
xor r8d, r8d
lea rdx, str.Tool_UninstallDelete
lea rcx, [rbp - 0x70]
call fcn.140001190
nop
xor esi, esi
mov qword [rsp + 0x58], rsi
mov dword [rsp + 0x54], esi
mov dword [rsp + 0x50], esi
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x10]
call fcn.14019d7c0
call fcn.140059f20
mov r14, qword [rax + 8]
mov r15d, esi
mov qword [rsp + 0x78], rsi
mov word [rbp + 0xa60], si
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0xa62]
call fcn.14019d7c0
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x10]
call fcn.14019d7c0
call fcn.140056384
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14001a580
mov ecx, 0x80004005
call fcn.140004550
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x60], rbx
call fcn.140056384
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14001a5b1
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 + 0x68], rdi
mov rcx, qword [r14 + 0x260]
cmp dword [rcx + 0x88], 0
je 0x14001a845
lea rdx, [rbp - 0x30]
call fcn.1400166a0
mov rcx, qword [rax]
cmp dword [rcx - 0x10], 0
setne dil
mov rdx, qword [rbp - 0x30]
add rdx, 0xffffffffffffffe8
or r12, 0xffffffffffffffff
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001a60e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [r14 + 0x260]
test dil, dil
je 0x14001a71f
lea rdx, [rbp - 0x28]
call fcn.1400166a0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x60]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001a687
cmp dword [rdi + 0x10], 0
jl 0x14001a678
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001a678
call fcn.140006db0
mov rbx, rax
mov ecx, r12d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001a66d
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x60], rax
jmp 0x14001a687
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.1400059f0
nop
mov rdx, qword [rbp - 0x28]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001a6a6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp - 0x38]
mov rcx, qword [r14 + 0x260]
call fcn.1400166a0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x68]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001a716
cmp dword [rdi + 0x10], 0
jl 0x14001a707
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001a707
call fcn.140006db0
mov rbx, rax
mov ecx, r12d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001a6fc
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x68], rax
jmp 0x14001a716
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x68]
call fcn.1400059f0
nop
mov rdx, qword [rbp - 0x38]
jmp 0x14001a81b
lea rdx, [rbp - 0x20]
call fcn.140016670
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x60]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001a788
cmp dword [rdi + 0x10], 0
jl 0x14001a779
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001a779
call fcn.140006db0
mov rbx, rax
mov ecx, r12d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001a76e
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x60], rax
jmp 0x14001a788
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.1400059f0
nop
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001a7a7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp - 0x18]
mov rcx, qword [r14 + 0x260]
call fcn.140016670
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x68]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001a817
cmp dword [rdi + 0x10], 0
jl 0x14001a808
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001a808
call fcn.140006db0
mov rbx, rax
mov ecx, r12d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001a7fd
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x68], rax
jmp 0x14001a817
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x68]
call fcn.1400059f0
nop
mov rdx, qword [rbp - 0x18]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001a836
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
jmp 0x14001a919
mov rdx, qword [r14 + 0x1b8]
lea rcx, [rdx - 0x18]
lea rsi, [rbx - 0x18]
or r12, 0xffffffffffffffff
cmp rcx, rsi
je 0x14001a8b0
cmp dword [rsi + 0x10], 0
jl 0x14001a89d
mov rax, qword [rsi]
cmp qword [rcx], rax
jne 0x14001a89d
call fcn.140006db0
mov rbx, rax
mov ecx, r12d
lock xadd dword [rsi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001a88d
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add rbx, 0x18
mov qword [rsp + 0x60], rbx
mov rdi, qword [rsp + 0x68]
jmp 0x14001a8b0
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.1400059f0
mov rbx, qword [rsp + 0x60]
mov rdx, qword [r14 + 0x1c0]
lea rcx, [rdx - 0x18]
lea rsi, [rdi - 0x18]
cmp rcx, rsi
je 0x14001a917
cmp dword [rsi + 0x10], 0
jl 0x14001a904
mov rax, qword [rsi]
cmp qword [rcx], rax
jne 0x14001a904
call fcn.140006db0
mov rdi, rax
mov ecx, r12d
lock xadd dword [rsi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001a8f4
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add rdi, 0x18
mov qword [rsp + 0x68], rdi
mov rbx, qword [rsp + 0x60]
jmp 0x14001a917
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x68]
call fcn.1400059f0
mov rdi, qword [rsp + 0x68]
xor esi, esi
cmp dword [rbx - 0x10], 0
je 0x14001ba9a
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, 0xf003f
xor r8d, r8d
lea rdx, str.SOFTWARECanonPrnUninst
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14001ba9a
mov dword [rsp + 0x54], 0x208
mov r13d, 1
mov dword [rsp + 0x50], r13d
lea rax, [rsp + 0x54]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x10]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
mov rdx, rbx
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [rsp + 0x54], 0x208
mov dword [rsp + 0x50], r13d
lea rax, [rsp + 0x54]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x10]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
mov rdx, rdi
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
xor edx, edx
mov r8d, 0x200
lea rcx, [rbp + 0x12a0]
call fcn.14019d7c0
mov dword [rbp - 0x40], pe_nt_image_headers64
mov rdx, rbx
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov rdx, rdi
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
lea r9, [rbp - 0x40]
lea r8, [rbp + 0x12a0]
xor edx, edx
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp eax, 0x103
cmove esi, r13d
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
mov r9d, 0xf003f
xor r8d, r8d
mov rdx, rbx
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14001aaba
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov r9d, r13d
lea r8, str.return___08x
lea edx, [r13 + 1]
lea rcx, [rbp - 0x70]
call fcn.140001370
nop
lea rdx, [rdi - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001aa94
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x14001aab5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x14001baf5
mov dword [rsp + 0x54], 0x208
mov dword [rsp + 0x50], r13d
lea rax, [rsp + 0x54]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x10]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
lea rdx, str.exePath
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [rsp + 0x54], 0x208
mov dword [rsp + 0x50], r13d
lea rax, [rsp + 0x54]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0xa60]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
lea rdx, str.IcnPath
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rdx, rbx
mov rcx, qword [rsp + 0x58]
call fcn.1400222d0
mov rdx, rbx
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
lea rdx, str.SOFTWARECanonPrnUninst
mov rcx, 0xffffffff80000002
call fcn.1400224a0
test eax, eax
je 0x14001abab
cmp esi, r13d
jne 0x14001abab
lea rdx, str.SOFTWARECanonPrnUninst
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
test eax, eax
jne 0x14001abab
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000002
call fcn.1400224a0
test eax, eax
je 0x14001abab
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea r11, [rsp + 0x78]
mov qword [rsp + 0x20], r11
mov r9d, 0xf003f
xor r8d, r8d
mov rdx, rdi
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14001acdb
mov dword [rsp + 0x54], 0x208
mov dword [rsp + 0x50], r13d
lea rax, [rsp + 0x54]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x10]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
lea rdx, str.exePath
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [rsp + 0x54], 0x208
mov dword [rsp + 0x50], r13d
lea rax, [rsp + 0x54]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0xa60]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x50]
xor r8d, r8d
lea rdx, str.IcnPath
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rdx, rdi
mov rcx, qword [rsp + 0x58]
call fcn.1400222d0
mov rdx, rdi
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
lea rdx, str.SOFTWARECanonPrnUninst
mov rcx, 0xffffffff80000002
call fcn.1400224a0
test eax, eax
je 0x14001acd0
cmp esi, r13d
jne 0x14001acd0
lea rdx, str.SOFTWARECanonPrnUninst
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
test eax, eax
jne 0x14001acd0
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000002
call fcn.1400224a0
test eax, eax
je 0x14001acd0
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [rbp - 0x78], r13d
mov rax, qword [r14 + 0x260]
xor esi, esi
cmp dword [rax + 0x88], esi
jne 0x14001b074
mov word [rbp + 0x850], si
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x852]
call fcn.14019d7c0
mov qword [rsp + 0x58], rsi
mov r9, qword [r14 + 0x1b8]
lea r8, str.SOFTWAREMicrosoftWindowsCurrentVersion
lea rdx, str._sUninstall_s
lea rcx, [rbp + 0x850]
call qword [sym.imp.USER32.dll_wsprintfW]
lea r11, [rsp + 0x58]
mov qword [rsp + 0x20], r11
mov r9d, 0xf003f
xor r8d, r8d
lea rdx, [rbp + 0x850]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14001ade5
lea rdx, str.Publisher
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
lea rdx, str.DisplayName
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
lea rdx, str.DisplayVersion
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
lea rdx, str.DisplayIcon
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
lea rdx, str.UninstallString
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
lea rdx, [rbp + 0x850]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x220]
call fcn.14019d7c0
call fcn.1400166e0
call fcn.14001e9e0
test eax, eax
jne 0x14001b074
call fcn.14001bb40
mov rbx, rax
lea r9, str.Canon_Printer_Uninstaller
mov r8, rax
lea rdx, str._s_s
mov rcx, rax
call qword [sym.imp.USER32.dll_wsprintfW]
test rbx, rbx
je 0x14001aefc
lea rax, str..LNK
mov qword [rsp + 0x28], rax
lea rax, str.Uninstaller
mov qword [rsp + 0x20], rax
mov r9, qword [r14 + 0x1b8]
mov r8, rbx
lea rdx, str._s_s__s_s
lea rcx, [rbp + 0x220]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [rbp + 0x220]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14001ae97
lea rcx, [rbp + 0x220]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x14001ae9a
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov r15d, r13d
lea rax, str..LNK
mov qword [rsp + 0x28], rax
lea rax, str.Uninstaller
mov qword [rsp + 0x20], rax
mov r9, rdi
mov r8, rbx
lea rdx, str._s_s__s_s
lea rcx, [rbp + 0x220]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [rbp + 0x220]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14001aefc
lea rcx, [rbp + 0x220]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x14001aef9
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
jmp 0x14001aefc
mov r15d, esi
mov rcx, rbx
call qword [sym.imp.ole32.dll_CoTaskMemFree]
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x1090]
call fcn.14019d7c0
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x220]
call fcn.14019d7c0
lea rdx, [rbp + 0xa60]
lea rcx, [rbp + 0x220]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rdx, [rbp + 0x220]
lea rcx, [rbp - 0x80]
call fcn.1400054e0
nop
mov edx, 0x5c
mov rcx, qword [rbp - 0x80]
call fcn.14019a074
test rax, rax
jne 0x14001af6a
mov eax, r12d
jmp 0x14001af71
sub rax, qword [rbp - 0x80]
sar rax, 1
mov r8d, eax
lea rdx, [rbp - 8]
lea rcx, [rbp - 0x80]
call fcn.1400121e0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rbp - 0x80]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001afde
cmp dword [rdi + 0x10], 0
jl 0x14001afd0
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001afd0
call fcn.140006db0
mov rbx, rax
mov ecx, r12d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001afc6
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbx + 0x18]
mov qword [rbp - 0x80], rax
jmp 0x14001afde
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x80]
call fcn.1400059f0
nop
mov rdx, qword [rbp - 8]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001affd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rbp - 0x80]
lea rcx, [rbp + 0x1090]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov dword [rbp - 0x78], r15d
lea rcx, [rbp + 0x220]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14001b050
cmp word [rbp + 0x220], 0
je 0x14001b050
lea rcx, [rbp + 0x220]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x14001b04d
lea rcx, [rbp + 0x1090]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
jmp 0x14001b050
mov dword [rbp - 0x78], esi
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001b06f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rsp + 0x68]
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x640]
call fcn.14019d7c0
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0xc70]
call fcn.14019d7c0
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x430]
call fcn.14019d7c0
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0xe80]
call fcn.14019d7c0
mov r8d, 0x104
lea rdx, [rbp + 0xe80]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov r15d, eax
mov dword [rbp - 0x58], eax
mov rcx, qword [r14 + 0x260]
cmp dword [rcx + 0x88], 0
je 0x14001b569
call fcn.140056384
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14001b112
mov ecx, 0x80004005
call fcn.140004550
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x70], rbx
lea rcx, [rbp + 0x10]
lea rax, [rbp + 0x10]
test rax, 0xffffffffffff0000
jne 0x14001b161
movzx edi, cx
mov ecx, edi
call fcn.140056158
test rax, rax
je 0x14001b259
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140005730
mov rbx, qword [rsp + 0x70]
jmp 0x14001b259
xor eax, eax
mov rcx, r12
lea rdi, [rbp + 0x10]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rdi, rcx
test ecx, ecx
jne 0x14001b1d8
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x14001b259
cmp dword [rdx + 0x10], eax
jge 0x14001b1aa
cmp dword [rbx - 0xc], eax
jge 0x14001b19f
mov ecx, 0x80070057
call fcn.140004550
int3
mov dword [rbx - 0x10], esi
mov word [rbx], si
jmp 0x14001b259
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001b1c1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x70], rbx
jmp 0x14001b259
mov r15d, dword [rbx - 0x10]
lea rsi, [rbp + 0x10]
sub rsi, rbx
sar rsi, 1
test ecx, ecx
jns 0x14001b1f5
mov ecx, 0x80070057
call fcn.140004550
int3
mov ecx, r13d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14001b215
mov edx, edi
lea rcx, [rsp + 0x70]
call fcn.140005ae0
mov rbx, qword [rsp + 0x70]
movsxd rax, edi
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
add rdx, rdx
cmp rsi, r15
lea r15, [rax + rax]
mov r9, r15
ja 0x14001b239
lea r8, [rbx + rsi*2]
call fcn.140199418
jmp 0x14001b242
lea r8, [rbp + 0x10]
call fcn.140199918
cmp edi, dword [rbx - 0xc]
jg 0x14001b55e
mov dword [rbx - 0x10], edi
xor esi, esi
mov word [r15 + rbx], si
mov r15d, dword [rbp - 0x58]
call fcn.140056384
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14001b278
mov ecx, 0x80004005
call fcn.140004550
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rbp - 0x48], rdi
call fcn.140056384
mov r11, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14001b2a8
mov ecx, 0x80004005
call fcn.140004550
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rbp - 0x50], rsi
mov ecx, r13d
sub ecx, dword [rsi - 8]
mov eax, dword [rsi - 0xc]
sub eax, 0x100
or eax, ecx
jge 0x14001b2dd
mov edx, pe_nt_image_headers64
lea rcx, [rbp - 0x50]
call fcn.140005ae0
mov rsi, qword [rbp - 0x50]
mov ecx, r13d
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, 3
or eax, ecx
jge 0x14001b2ff
mov edx, 3
lea rcx, [rbp - 0x48]
call fcn.140005ae0
mov rdi, qword [rbp - 0x48]
xor eax, eax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], pe_nt_image_headers64
mov r9, rsi
lea r8d, [rax + 3]
mov rdx, rdi
mov rcx, rbx
call fcn.14019a34c
movsxd rdx, dword [rdi - 0xc]
mov rcx, rdi
call fcn.140199d34
test eax, eax
js 0x14001b553
cmp eax, dword [rdi - 0xc]
jg 0x14001b553
mov dword [rdi - 0x10], eax
cdqe
xor ecx, ecx
mov word [rdi + rax*2], cx
movsxd rdx, dword [rsi - 0xc]
mov rcx, rsi
call fcn.140199d34
test eax, eax
js 0x14001b548
cmp eax, dword [rsi - 0xc]
jg 0x14001b548
mov dword [rsi - 0x10], eax
cdqe
xor ecx, ecx
mov word [rsi + rax*2], cx
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x48]
lea rcx, [rbp]
call fcn.140012280
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14001b3ec
cmp dword [rbx + 0x10], 0
jl 0x14001b3dd
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14001b3dd
call fcn.140006db0
mov rdi, rax
mov ecx, r12d
lock xadd dword [rbx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001b3d2
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x70], rax
jmp 0x14001b3ec
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x70]
call fcn.1400059f0
nop
mov rdx, qword [rbp]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001b40b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rsp + 0x70]
mov ecx, dword [rdi - 0x10]
lea eax, [rcx - 1]
test eax, eax
js 0x14001b53d
cmp eax, ecx
jg 0x14001b53d
cdqe
cmp word [rdi + rax*2], 0x5c
jne 0x14001b4c4
lea r8d, [rcx - 1]
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x70]
call fcn.1400121e0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001b4a0
cmp dword [rdi + 0x10], 0
jl 0x14001b491
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001b491
call fcn.140006db0
mov rbx, rax
mov ecx, r12d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001b486
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x70], rax
jmp 0x14001b4a0
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x70]
call fcn.1400059f0
nop
mov rdx, qword [rbp - 0x10]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001b4bf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rsp + 0x70]
mov r8, rdi
mov edx, 0x104
lea rcx, [rbp + 0x10]
call fcn.14019a840
nop
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001b4f6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001b516
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001b536
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rsp + 0x68]
jmp 0x14001b569
mov ecx, 0x80070057
call fcn.140004550
int3
mov ecx, 0x80070057
call fcn.140004550
int3
mov ecx, 0x80070057
call fcn.140004550
nop
mov ecx, 0x80070057
call fcn.140004550
nop
test r15d, r15d
je 0x14001b5b3
cmp dword [r14 + 0x778], 0
jne 0x14001b5b3
mov edx, 0x5c
lea rcx, [rbp + 0xe80]
call fcn.14019a074
mov rbx, rax
lea r8, [rbp + 0x10]
lea rcx, [rbp + 0x640]
test rax, rax
je 0x14001b5be
mov r9, rax
lea rdx, [0x14021c280]
call qword [sym.imp.USER32.dll_wsprintfW]
xor esi, esi
mov word [rbx], si
jmp 0x14001b5d4
lea r8, [rbp + 0x10]
lea rcx, [rbp + 0x640]
lea r9, [0x14021f548]
lea rdx, str._s_s
call qword [sym.imp.USER32.dll_wsprintfW]
xor esi, esi
lea r9, str.Uninst.ini
lea r8, [rbp + 0x10]
lea rdx, str._s_s
lea rcx, [rbp + 0xc70]
call qword [sym.imp.USER32.dll_wsprintfW]
mov edx, 0x104
lea rcx, [rbp + 0x430]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov edx, 0x104
lea rcx, [rbp + 0x430]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
jne 0x14001b67f
xor r9d, r9d
lea r8, str.return___08x
lea edx, [rax + 2]
lea rcx, [rbp - 0x70]
call fcn.140001370
nop
lea rdx, [rdi - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001b64e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x14001b66f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp - 0x70]
call fcn.140001320
xor eax, eax
jmp 0x14001bb01
lea r9, str.UNINSTAL.tmp
lea r8, [rbp + 0x430]
lea rdx, str._s_s
lea rcx, [rbp + 0x430]
call qword [sym.imp.USER32.dll_wsprintfW]
mov edx, 0x80
lea rcx, [rbp + 0x430]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rbp + 0x430]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
lea rcx, [rbp + 0x640]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14001b7e9
lea rcx, [rbp + 0x640]
cmp dword [r14 + 0x778], 0
je 0x14001b758
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x14001b7e9
xor r9d, r9d
lea r8, str.return___08x
lea edx, [rax + 2]
lea rcx, [rbp - 0x70]
call fcn.140001370
nop
lea rdx, [rdi - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001b727
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x14001b748
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp - 0x70]
call fcn.140001320
xor eax, eax
jmp 0x14001bb01
mov r8d, 2
lea rdx, [rbp + 0x430]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x14001b784
xor edx, edx
lea r8d, [rdx + 4]
lea rcx, [rbp + 0x430]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x14001b7e9
xor r9d, r9d
lea r8, str.return___08x
lea edx, [r9 + 2]
lea rcx, [rbp - 0x70]
call fcn.140001370
nop
lea rdx, [rdi - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001b7b8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x14001b7d9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp - 0x70]
call fcn.140001320
xor eax, eax
jmp 0x14001bb01
lea rcx, [rbp + 0xc70]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14001b80c
lea rcx, [rbp + 0xc70]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov r15d, eax
jmp 0x14001b80f
mov r15d, r13d
call fcn.140056384
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14001b82e
mov ecx, 0x80004005
call fcn.140004550
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x60], rbx
lea rcx, [rbp + 0x10]
lea rax, [rbp + 0x10]
test rax, 0xffffffffffff0000
jne 0x14001b87a
movzx edi, cx
mov ecx, edi
call fcn.140056158
test rax, rax
je 0x14001b978
mov r8d, edi
mov rdx, rax
lea rcx, [rbp - 0x60]
call fcn.140005730
mov rbx, qword [rbp - 0x60]
jmp 0x14001b978
xor eax, eax
mov rcx, r12
lea rdi, [rbp + 0x10]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rdi, rcx
test ecx, ecx
jne 0x14001b8f0
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x14001b978
cmp dword [rdx + 0x10], eax
jge 0x14001b8c3
cmp dword [rbx - 0xc], eax
jge 0x14001b8b8
mov ecx, 0x80070057
call fcn.140004550
int3
mov dword [rbx - 0x10], esi
mov word [rbx], si
jmp 0x14001b978
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001b8da
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x60], rbx
jmp 0x14001b978
mov eax, dword [rbx - 0x10]
mov dword [rbp - 0x58], eax
lea rsi, [rbp + 0x10]
sub rsi, rbx
sar rsi, 1
test ecx, ecx
jns 0x14001b90f
mov ecx, 0x80070057
call fcn.140004550
int3
mov ecx, r13d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14001b92d
mov edx, edi
lea rcx, [rbp - 0x60]
call fcn.140005ae0
mov rbx, qword [rbp - 0x60]
mov eax, dword [rbp - 0x58]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
add rdx, rdx
cmp rsi, rax
movsxd rax, edi
ja 0x14001b956
add rax, rax
lea r8, [rbx + rsi*2]
mov rsi, rax
mov r9, rax
call fcn.140199418
jmp 0x14001b966
lea rsi, [rax + rax]
mov r9, rsi
lea r8, [rbp + 0x10]
call fcn.140199918
cmp edi, dword [rbx - 0xc]
jg 0x14001ba8f
mov dword [rbx - 0x10], edi
xor eax, eax
mov word [rbx + rsi], ax
lea rcx, [r14 + 0x218]
lea rsi, [rbx - 0x18]
mov rdi, qword [rcx]
sub rdi, 0x18
cmp rsi, rdi
je 0x14001b9dc
cmp dword [rdi + 0x10], 0
jl 0x14001b9cf
mov rax, qword [rdi]
cmp qword [rsi], rax
jne 0x14001b9cf
mov rcx, rsi
call fcn.140006db0
mov rbx, rax
mov ecx, r12d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001b9c2
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbx + 0x18]
mov qword [r14 + 0x218], rax
jmp 0x14001b9dc
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
call fcn.1400059f0
nop
mov eax, r12d
lock xadd dword [rsi + 0x10], eax
dec eax
test eax, eax
jg 0x14001b9f6
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp r15d, 1
jne 0x14001ba26
lea r9, [r14 + 0x368]
lea rcx, [r14 + 0x570]
lea r8, [rbp + 0x10]
lea rdx, str._s_s
call qword [sym.imp.USER32.dll_wsprintfW]
mov dword [r14 + 0x364], r13d
mov r15d, dword [rbp - 0x78]
mov r9d, r15d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rbp - 0x70]
call fcn.140001370
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001ba60
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x14001ba81
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp - 0x70]
call fcn.140001320
mov eax, r15d
jmp 0x14001bb01
mov ecx, 0x80070057
call fcn.140004550
nop
mov r13d, 1
mov r9d, r13d
lea r8, str.return___08x
lea edx, [r13 + 1]
lea rcx, [rbp - 0x70]
call fcn.140001370
nop
lea rdx, [rdi - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001bad4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x14001baf5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp - 0x70]
call fcn.140001320
mov eax, r13d
mov rcx, qword [rbp + 0x14a0]
xor rcx, rsp
call fcn.140198b40
lea r11, [rsp + 0x15b0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret