Function at 0x14001dc50
Capabilities:
Delete registry key

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1fc0]
mov eax, 0x20c0
call fcn.140193d30
sub rsp, rax
mov qword [rbp + 0x60], 0xfffffffffffffffe
mov qword [rsp + 0x2110], rbx
mov rax, qword [0x140260d50]
xor rax, rsp
mov qword [rbp + 0x1fb0], rax
mov r15, rdx
mov rdi, rcx
mov qword [rbp - 0x40], rcx
xor r8d, r8d
lea rdx, str.Tool_DeletePrinterStd
lea rcx, [rsp + 0x48]
call fcn.14000b870
nop
xor r13d, r13d
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r15
mov r9, rdi
lea r8, str.hWnd___08x__lpszPrinter___s__bJob___d
mov r12d, 1
mov edx, r12d
lea rcx, [rsp + 0x48]
call fcn.14000ba50
mov qword [rsp + 0x68], r13
mov dword [rsp + 0x40], r13d
mov r14d, r13d
mov word [rbp + 0x1750], r13w
xor edx, edx
mov r8d, 0x85e
lea rcx, [rbp + 0x1752]
call fcn.140193010
mov dword [rbp - 0x5c], r12d
mov word [rbp + 0x500], r13w
xor edx, edx
mov r8d, 0x40e
lea rcx, [rbp + 0x502]
call fcn.140193010
mov qword [rbp - 0x50], r13
mov dword [rsp + 0x44], r13d
mov word [rbp + 0xf0], r13w
xor edx, edx
mov r8d, 0x40e
lea rcx, [rbp + 0xf2]
call fcn.140193010
mov esi, r13d
mov dword [rsp + 0x58], r13d
mov dword [rsp + 0x70], r12d
mov dword [rbp - 0x60], r12d
mov dword [rbp - 0x6c], r12d
call fcn.140050920
mov rbx, qword [rax + 8]
mov qword [rbp - 0x78], rbx
xor edx, edx
mov r8d, 0x410
lea rcx, [rbp + 0x500]
call fcn.140193010
call fcn.14000cc50
mov dword [rsp + 0x60], eax
mov dword [rbp - 0x70], r13d
mov rcx, qword [rbx + 0x40]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1004
mov rcx, qword [rcx + 0x158]
call qword [sym.imp.USER32.dll_SendMessageW]
mov qword [rbp - 0x30], rax
test eax, eax
jle 0x14001e227
xor r9d, r9d
xor r8d, r8d
mov edx, r12d
mov rcx, r15
call fcn.140019df0
cmp eax, r12d
jne 0x14001ddf7
lea r9d, [r13 + 3]
lea r8, str.return___08x
lea edx, [r13 + 2]
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
lea rcx, [rsp + 0x48]
call fcn.14000ba00
lea eax, [r13 + 3]
jmp 0x14001f16d
mov dword [rbp - 0x70], r13d
test r15, r15
je 0x14001de13
mov rax, qword [rbx + 0x7a8]
mov rcx, r15
call qword [rax + 0x148]
mov dword [rbp - 0x70], eax
xor edx, edx
mov r8d, 0x410
lea rcx, [rbp + 0xf0]
call fcn.140193010
lea rdx, [rsp + 0x44]
mov qword [rsp + 0x30], rdx
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r13d
xor r9d, r9d
xor edx, edx
lea ecx, [rdx + 6]
lea r8d, [r9 + 2]
call qword [sym.imp.WINSPOOL.DRV_EnumPrintersW]
test eax, eax
jne 0x14001de80
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x14001de80
mov r9d, r12d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
jmp 0x14001f160
mov edx, dword [rsp + 0x40]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rbx, rax
test rax, rax
jne 0x14001deb4
mov r9d, r12d
lea r8, str.return___08x
lea edx, [rax + 2]
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
jmp 0x14001f160
lea rax, [rsp + 0x44]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x20], eax
mov r9, rbx
xor edx, edx
lea ecx, [rdx + 6]
lea r8d, [rdx + 2]
call qword [sym.imp.WINSPOOL.DRV_EnumPrintersW]
test eax, eax
je 0x14001df53
mov edi, r13d
cmp dword [rsp + 0x44], esi
jbe 0x14001df53
lea rsi, [rbx + 8]
mov rdx, r15
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x14001df14
inc edi
add rsi, 0x88
cmp edi, dword [rsp + 0x44]
jb 0x14001def3
jmp 0x14001df50
imul rdi, rdi, 0x88
mov rax, qword [rdi + rbx + 8]
cmp word [rax], 0x5c
jne 0x14001df50
mov rcx, qword [rdi + rbx]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x14001df50
mov esi, r12d
mov dword [rsp + 0x58], r12d
mov rdx, qword [rdi + rbx + 0x20]
lea rcx, [rbp + 0xf0]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
jmp 0x14001df53
mov esi, r13d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalFree]
test esi, esi
jne 0x14001e107
mov qword [rbp + 0x48], r13
mov qword [rbp + 0x50], r13
mov dword [rbp + 0x58], 0xf000c
lea r8, [rbp + 0x48]
lea rdx, [rsp + 0x68]
mov rcx, r15
call qword [sym.imp.WINSPOOL.DRV_OpenPrinterW]
mov dword [rsp + 0x70], eax
test eax, eax
jne 0x14001dfd1
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r8, str.return___08x
lea edx, [rsi + 2]
lea rcx, [rsp + 0x48]
cmp eax, 5
jne 0x14001dfc3
lea r9d, [rsi + 4]
call fcn.14000ba50
nop
lea rcx, [rsp + 0x48]
call fcn.14000ba00
lea eax, [rsi + 4]
jmp 0x14001f16d
mov r9d, r12d
call fcn.14000ba50
nop
jmp 0x14001f160
lea rdx, [rbp + 0x500]
mov rcx, r15
call fcn.14001a550
mov rcx, qword [rsp + 0x68]
cmp eax, 0xffffffff
jne 0x14001e00f
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
mov r9d, r12d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
jmp 0x14001f160
mov dword [rsp + 0x40], r13d
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r13d
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 3]
call qword [sym.imp.WINSPOOL.DRV_GetPrinterDriverW]
test eax, eax
jne 0x14001e06b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x14001e06b
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
mov r9d, r12d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
jmp 0x14001f160
mov edx, dword [rsp + 0x40]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov r14, rax
mov rcx, qword [rsp + 0x68]
test rax, rax
jne 0x14001e0ab
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
mov r9d, r12d
lea r8, str.return___08x
lea edx, [r14 + 2]
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
jmp 0x14001f160
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x20], eax
mov r9, r14
xor edx, edx
lea r8d, [rdx + 3]
call qword [sym.imp.WINSPOOL.DRV_GetPrinterDriverW]
test eax, eax
jne 0x14001e3b9
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
mov r9d, r12d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
jmp 0x14001f160
lea rax, [rsp + 0x44]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r13d
xor r9d, r9d
xor edx, edx
xor ecx, ecx
lea r8d, [r9 + 3]
call qword [sym.imp.WINSPOOL.DRV_EnumPrinterDriversW]
test eax, eax
jne 0x14001e15f
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x14001e15f
mov r9d, r12d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
jmp 0x14001f160
mov edx, dword [rsp + 0x40]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rbx, rax
mov qword [rbp - 0x50], rax
test rax, rax
jne 0x14001e197
mov r9d, r12d
lea r8, str.return___08x
lea edx, [rax + 2]
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
jmp 0x14001f160
lea rax, [rsp + 0x44]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x20], eax
mov r9, rbx
xor edx, edx
xor ecx, ecx
lea r8d, [rdx + 3]
call qword [sym.imp.WINSPOOL.DRV_EnumPrinterDriversW]
test eax, eax
je 0x14001e3c1
mov edi, r13d
cmp dword [rsp + 0x44], r13d
jbe 0x14001e3c1
lea rsi, [rbx + 8]
nop
lea rdx, [rbp + 0xf0]
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x14001e209
inc edi
add rsi, 0x50
cmp edi, dword [rsp + 0x44]
jb 0x14001e1e0
mov esi, dword [rsp + 0x58]
jmp 0x14001e3c1
mov word [rbp + 0x500], r13w
mov eax, edi
lea r14, [rax + rax*4]
shl r14, 4
add r14, rbx
mov esi, dword [rsp + 0x58]
jmp 0x14001e3c1
xor eax, eax
lea rdi, [0x140214e04]
mov rsi, qword [rbx + 0x1c8]
mov ecx, 2
repe cmpsw word [rsi], word [rdi]
je 0x14001e246
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x14001f146
mov rax, qword [rbx + 0x260]
cmp dword [rax + 0x4c], r13d
je 0x14001f146
cmp dword [rax + 0x6c], r13d
je 0x14001f146
mov r8, r15
mov edx, 0x208
lea rcx, [rbp + 0xf0]
call fcn.140190fb0
lea rdx, [rsp + 0x44]
mov qword [rsp + 0x30], rdx
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r13d
xor r9d, r9d
xor edx, edx
xor ecx, ecx
lea r8d, [r9 + 3]
call qword [sym.imp.WINSPOOL.DRV_EnumPrinterDriversW]
test eax, eax
jne 0x14001e2eb
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x14001e2eb
mov r9d, 6
lea r8, str.return___08x
lea edx, [r9 - 4]
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
lea rcx, [rsp + 0x48]
call fcn.14000ba00
mov eax, 6
jmp 0x14001f16d
mov edx, dword [rsp + 0x40]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rbx, rax
mov qword [rbp - 0x50], rax
test rax, rax
jne 0x14001e331
lea r9d, [rax + 6]
lea r8, str.return___08x
lea edx, [rax + 2]
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
lea rcx, [rsp + 0x48]
call fcn.14000ba00
lea eax, [rbx + 6]
jmp 0x14001f16d
lea rax, [rsp + 0x44]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x20], eax
mov r9, rbx
xor edx, edx
xor ecx, ecx
lea r8d, [rdx + 3]
call qword [sym.imp.WINSPOOL.DRV_EnumPrinterDriversW]
test eax, eax
je 0x14001f11f
mov edi, r13d
cmp dword [rsp + 0x44], r13d
jbe 0x14001f11f
lea rsi, [rbx + 8]
nop dword [rax + rax]
lea rdx, [rbp + 0xf0]
mov rcx, qword [rsi]
call fcn.14018ea5c
test eax, eax
je 0x14001e3a4
inc edi
add rsi, 0x50
cmp edi, dword [rsp + 0x44]
jb 0x14001e380
jmp 0x14001f11f
mov eax, edi
lea r14, [rax + rax*4]
shl r14, 4
add r14, rbx
je 0x14001f11f
jmp 0x14001e3be
mov rbx, r13
jmp 0x14001e3c1
mov esi, r13d
xor edx, edx
mov rcx, qword [r14 + 0x38]
call fcn.14000d280
cmp eax, r12d
jne 0x14001e57c
test esi, esi
je 0x14001e3e4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x14001e3f8
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
call fcn.140050920
mov rbx, qword [rax + 8]
call fcn.14004cde4
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001e421
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rbp - 0x58], rsi
call fcn.14004cde4
mov rcx, rax
test rax, rax
setne r13b
test r13d, r13d
jne 0x14001e451
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rbp - 0x10], rdi
mov ecx, 2
call fcn.14004cbb8
test rax, rax
je 0x14001e484
mov r8d, 2
mov rdx, rax
lea rcx, [rbp - 0x58]
call fcn.1400012a0
mov rsi, qword [rbp - 0x58]
mov ecx, 3
call fcn.14004cbb8
test rax, rax
je 0x14001e4a9
mov r8d, 3
mov rdx, rax
lea rcx, [rbp - 0x10]
call fcn.1400012a0
mov rdi, qword [rbp - 0x10]
mov rax, qword [rbx + 0x260]
cmp dword [rax + 0x4c], 0
je 0x14001e4fc
mov rdx, rdi
mov rcx, qword [rbx + 0x268]
call fcn.140006da0
mov edx, 0xa
lea r8d, [rdx + 0x16]
lea rcx, [rbp - 0x58]
call fcn.140008d60
mov rdx, qword [rbp - 0x58]
mov rcx, qword [rbx + 0x268]
call fcn.140006da0
lea rdx, [0x140211300]
mov rcx, qword [rbx + 0x268]
call fcn.140006da0
jmp 0x14001e512
mov r9d, 0x30
mov r8, rdi
mov rdx, rsi
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.USER32.dll_MessageBoxW]
mov r9d, 2
lea r8, str.return___08x
mov edx, r9d
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
lea rdx, [rdi - 0x18]
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001e54b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x14001e568
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x48]
call fcn.14000ba00
mov eax, 2
jmp 0x14001f16d
mov r9d, r12d
mov r8d, 0x40
lea rdx, [rbp + 0x70]
mov rcx, qword [r14 + 0x18]
call fcn.14000dfa0
test eax, eax
jne 0x14001e5d8
test esi, esi
je 0x14001e5a5
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x14001e5b9
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
mov r9d, r12d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
jmp 0x14001f160
xor eax, eax
mov dword [rbp - 0x38], eax
mov byte [rbp - 0x34], al
lea rdx, [rbp - 0x38]
mov rcx, r15
call fcn.14000a870
xor edx, edx
mov r8d, 0x820
lea rcx, [rbp + 0x910]
call fcn.140193010
mov dword [rbp - 0x80], r13d
lea r8, [rbp - 0x80]
lea rdx, [rbp + 0x910]
mov rcx, r15
call fcn.14000aa70
mov rdi, qword [rbp - 0x30]
test edi, edi
jle 0x14001e745
test esi, esi
mov rsi, qword [rbp - 0x78]
jne 0x14001e6d2
mov edi, dword [rsi + 0x7b0]
mov rcx, qword [rsp + 0x68]
cmp dword [rsp + 0x60], 0xa
jne 0x14001e675
call fcn.140024a40
mov edi, eax
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
test edi, edi
jne 0x14001e65c
xor r8d, r8d
jmp 0x14001e67e
lea rdx, [rbp + 0x910]
mov rcx, r15
call fcn.14001af70
mov rcx, r15
call fcn.14000a390
jmp 0x14001e69b
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
mov r8d, edi
mov eax, dword [rbp - 0x80]
mov dword [rsp + 0x20], eax
lea r9, [rbp + 0x910]
mov rdx, r15
lea rcx, [rsi + 0x798]
call fcn.140047a60
cmp dword [rsp + 0x70], r13d
je 0x14001e6aa
test eax, eax
je 0x14001e74b
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov r9d, r12d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
jmp 0x14001f160
lea rcx, [rsi + 0x798]
mov dword [rsp + 0x20], r13d
xor r9d, r9d
mov r8d, dword [rsi + 0x7b0]
mov rdx, r15
call fcn.140047a60
test eax, eax
je 0x14001e74f
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalFree]
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x48]
cmp eax, 5
jne 0x14001e737
lea r9d, [rdx + 2]
call fcn.14000ba50
nop
lea rcx, [rsp + 0x48]
call fcn.14000ba00
mov eax, 4
jmp 0x14001f16d
mov r9d, r12d
call fcn.14000ba50
nop
jmp 0x14001f160
mov rsi, qword [rbp - 0x78]
jmp 0x14001e74f
mov rdi, qword [rbp - 0x30]
mov rdx, qword [r14 + 8]
lea rcx, [rbp - 0x48]
call fcn.140001110
nop
call fcn.14004cde4
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001e77d
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x40], rax
mov rcx, qword [rbp - 0x48]
add rcx, 0xffffffffffffffe8
call fcn.140001620
add rax, 0x18
mov qword [rbp + 0x18], rax
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0x18]
call fcn.14001b680
or ebx, 0xffffffff
test edi, edi
jle 0x14001edd2
call fcn.14004cde4
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001e7db
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x60], rax
call fcn.14004cde4
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001e80d
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x70], rax
call fcn.14004cde4
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001e83f
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 8], rax
call fcn.14004cde4
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001e870
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 8], rax
mov rdx, qword [r14 + 8]
lea rcx, [rbp - 0x68]
call fcn.140001110
nop
mov r8d, 5
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x68]
call fcn.1400166b0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rbp - 0x68]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001e905
cmp dword [rdi + 0x10], 0
jl 0x14001e8f7
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001e8f7
call fcn.140001620
mov qword [rsp + 0x78], rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001e8ed
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsp + 0x78]
add rax, 0x18
mov qword [rbp - 0x68], rax
jmp 0x14001e905
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x68]
call fcn.1400014d0
nop
mov rdx, qword [rbp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001e923
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, r15
lea rcx, [rbp - 0x28]
call fcn.140001110
nop
mov r8d, 2
lea rdx, [0x140214090]
mov rcx, r15
call fcn.14018f1b4
test eax, eax
jne 0x14001eb22
mov rax, qword [rbp - 0x28]
mov r8d, dword [rax - 0x10]
dec r8d
lea rdx, [rbp + 0x10]
lea rcx, [rbp - 0x28]
call fcn.1400166b0
nop
mov r8, rax
lea rdx, [rsi + 0x1d8]
lea rcx, [rbp + 0x38]
call fcn.1400167f0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x60]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001e9df
cmp dword [rdi + 0x10], 0
jl 0x14001e9d0
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001e9d0
call fcn.140001620
mov qword [rsp + 0x78], rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001e9c5
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsp + 0x78]
add rax, 0x18
mov qword [rsp + 0x60], rax
jmp 0x14001e9df
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.1400014d0
nop
mov rdx, qword [rbp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001e9fe
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x10]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001ea1c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rsi + 0x1d8]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x70]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001ea84
cmp dword [rdi + 0x10], 0
jl 0x14001ea76
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001ea76
call fcn.140001620
mov qword [rsp + 0x78], rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001ea6b
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsp + 0x78]
add rax, 0x18
mov qword [rsp + 0x70], rax
jmp 0x14001ea84
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x70]
call fcn.1400014d0
mov rdi, qword [rsp + 0x60]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.1400184c0
mov rdx, rdi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov edx, 0x5c
mov rcx, rdi
call fcn.14018f7cc
test rax, rax
jne 0x14001eabe
mov eax, ebx
jmp 0x14001eac4
sub rax, rdi
sar rax, 1
mov r8d, eax
lea rdx, [rbp + 0x30]
lea rcx, [rsp + 0x60]
call fcn.140016750
nop
mov rdi, qword [rbp + 0x30]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.140018670
cmp eax, 1
jne 0x14001eaff
mov rdx, rdi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
nop
lea rdx, [rdi - 0x18]
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001ecc1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14001ecc1
mov rdx, r15
lea rcx, [rbp]
call fcn.140001110
nop
lea rdx, [rsi + 0x1d0]
mov r8, rax
lea rcx, [rbp + 0x20]
call fcn.1400167f0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x60]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001eba8
cmp dword [rdi + 0x10], 0
jl 0x14001eb99
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001eb99
call fcn.140001620
mov qword [rsp + 0x78], rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001eb8e
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsp + 0x78]
add rax, 0x18
mov qword [rsp + 0x60], rax
jmp 0x14001eba8
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.1400014d0
nop
mov rdx, qword [rbp + 0x20]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001ebc7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001ebe5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rsi + 0x1d8]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x70]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001ec4d
cmp dword [rdi + 0x10], 0
jl 0x14001ec3f
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001ec3f
call fcn.140001620
mov qword [rsp + 0x78], rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001ec34
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsp + 0x78]
add rax, 0x18
mov qword [rsp + 0x70], rax
jmp 0x14001ec4d
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x70]
call fcn.1400014d0
mov rdi, qword [rsp + 0x60]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.1400184c0
mov rdx, rdi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
xor eax, eax
lea rdi, str.CAPT
mov rsi, qword [rsi + 0x790]
mov ecx, 5
repe cmpsw word [rsi], word [rdi]
je 0x14001ec90
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x14001ecbd
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rsi, qword [rbp - 0x78]
test eax, eax
je 0x14001ecc1
cmp dword [rsi + 0x818], 0
je 0x14001ecc1
mov rcx, r15
call fcn.14002ba30
jmp 0x14001ecc1
mov rsi, qword [rbp - 0x78]
mov rdi, qword [rsp + 0x70]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.140018670
cmp eax, 1
jne 0x14001ed17
mov rdx, rdi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call fcn.140018670
cmp eax, 1
jne 0x14001ed17
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
nop
mov rdx, qword [rbp - 0x28]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001ed36
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x68]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001ed55
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 8]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001ed74
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 8]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001ed93
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, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001edb3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14001edd2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, r15
mov rcx, qword [r14 + 8]
call fcn.140017d10
test eax, eax
je 0x14001edea
mov eax, r13d
jmp 0x14001ef3d
xor eax, eax
lea rdi, str.CAPT
mov rsi, qword [rsi + 0x790]
mov ecx, 5
repe cmpsw word [rsi], word [rdi]
je 0x14001ee09
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
mov rsi, qword [rbp - 0x78]
test al, al
je 0x14001ee30
cmp dword [rsi + 0x818], 0
je 0x14001ee30
call fcn.140029280
mov ecx, dword [rbp - 0x6c]
test eax, eax
cmove ecx, r13d
mov dword [rbp - 0x6c], ecx
mov r8d, dword [rbp - 0x80]
lea rdx, [rbp + 0x910]
mov rcx, r14
call fcn.14001f1a0
mov dword [rbp - 0x60], eax
mov rcx, qword [rsi + 0x260]
cmp dword [rcx + 0x88], 0
jne 0x14001ef3a
mov rcx, qword [r14 + 8]
call fcn.14000e470
test eax, eax
je 0x14001eea9
call fcn.14000eb20
mov qword [rbp - 0x18], r13
lea rax, [rbp - 0x18]
mov qword [rsp + 0x20], rax
mov r9d, 0x2011f
xor r8d, r8d
lea rdx, str.SOFTWARECanonVDCSETUPVDCUser
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14001eea9
mov r15d, r13d
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x14001eead
mov r15d, dword [rbp - 0x5c]
call fcn.1400137e0
test eax, eax
je 0x14001ef44
call fcn.140013290
mov qword [rbp - 0x20], r13
mov word [rbp + 0x1130], r13w
xor edx, edx
mov r8d, 0x616
lea rcx, [rbp + 0x1132]
call fcn.140193010
lea r9, str.DIASUser
lea r8, str.SOFTWARECanonDIASSETUP
lea rdx, str._s_s
lea rcx, [rbp + 0x1130]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, [rbp - 0x20]
mov qword [rsp + 0x20], rdx
mov r9d, 0x2011f
xor r8d, r8d
lea rdx, [rbp + 0x1130]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14001ef44
mov r12d, r13d
mov rcx, qword [rbp - 0x20]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x14001ef44
mov eax, r12d
mov r15d, r12d
test eax, eax
je 0x14001ef4e
call fcn.140028e30
mov r13d, eax
jmp 0x14001ef51
mov r13d, r12d
mov rdi, qword [rbp - 0x30]
test edi, edi
jle 0x14001ef6b
cmp dword [rsp + 0x58], 0
je 0x14001ef66
mov rcx, qword [rbp - 0x50]
jmp 0x14001ef74
mov rcx, r14
jmp 0x14001ef74
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x14001ef7a
call qword [sym.imp.KERNEL32.dll_GlobalFree]
cmp dword [rsi + 0x844], 0
je 0x14001ef88
call fcn.1400146e0
test edi, edi
jle 0x14001efb7
cmp dword [rbp - 0x70], 1
jne 0x14001efb7
lea rcx, [rbp + 0x1750]
call fcn.14001a050
cmp eax, 1
jne 0x14001efb7
mov rax, qword [rsi + 0x7a8]
lea rcx, [rbp + 0x1750]
call qword [rax + 0x110]
mov rdi, qword [rbp - 0x40]
add rdi, 0xffffffffffffffe8
mov rcx, rdi
call fcn.140001620
add rax, 0x18
mov qword [rbp + 0x28], rax
lea rcx, [rbp + 0x28]
call fcn.14001c3a0
cmp dword [rbp - 0x60], 0
jne 0x14001f045
mov r9d, 6
lea r8, str.return___08x
lea edx, [r9 - 4]
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
mov eax, ebx
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x14001f014
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x14001f031
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x48]
call fcn.14000ba00
mov eax, 6
jmp 0x14001f16d
test r15d, r15d
je 0x14001f0bb
test r12d, r12d
je 0x14001f0bb
test r13d, r13d
je 0x14001f0bb
cmp dword [rbp - 0x6c], 0
je 0x14001f0bb
xor r9d, r9d
lea r8, str.return___08x
lea edx, [r9 + 2]
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
mov eax, ebx
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x14001f08d
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x14001f0aa
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x48]
call fcn.14000ba00
xor eax, eax
jmp 0x14001f16d
mov r9d, 5
lea r8, str.return___08x
lea edx, [r9 - 3]
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
mov eax, ebx
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x14001f0f1
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x14001f10e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x48]
call fcn.14000ba00
mov eax, 5
jmp 0x14001f16d
xor r9d, r9d
lea r8, str.return___08x
lea edx, [r9 + 2]
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
lea rcx, [rsp + 0x48]
call fcn.14000ba00
xor eax, eax
jmp 0x14001f16d
mov r9d, r12d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x48]
call fcn.14000ba50
nop
lea rcx, [rsp + 0x48]
call fcn.14000ba00
mov eax, r12d
mov rcx, qword [rbp + 0x1fb0]
xor rcx, rsp
call fcn.14018e5d0
mov rbx, qword [rsp + 0x2110]
add rsp, 0x20c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret