Function at 0x140016a50
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 + 0x58], 0xfffffffffffffffe
mov qword [rsp + 0x2110], rbx
mov rax, qword [0x140260d50]
xor rax, rsp
mov qword [rbp + 0x1fb0], rax
mov r14, rdx
mov rdi, rcx
mov qword [rbp - 0x60], rcx
xor r8d, r8d
lea rdx, str.Tool_DeletePrinter
lea rcx, [rsp + 0x30]
call fcn.14000b870
nop
xor r12d, r12d
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r14
mov r9, rdi
lea r8, str.hWnd___08x__lpszPrinter___s__bJob___d
mov r13d, 1
mov edx, r13d
lea rcx, [rsp + 0x30]
call fcn.14000ba50
mov qword [rsp + 0x50], r12
mov dword [rsp + 0x58], r12d
mov dword [rbp - 0x7c], r12d
mov dword [rbp - 0x6c], r13d
mov dword [rsp + 0x68], r12d
mov dword [rbp - 0x80], r13d
call fcn.140050920
mov rsi, qword [rax + 8]
mov qword [rsp + 0x40], rsi
xor r9d, r9d
xor r8d, r8d
mov edx, r13d
mov rcx, r14
call fcn.140019df0
cmp eax, r13d
jne 0x140016b4a
lea r9d, [r12 + 3]
lea r8, str.return___08x
lea edx, [r12 + 2]
lea rcx, [rsp + 0x30]
call fcn.14000ba50
nop
lea rcx, [rsp + 0x30]
call fcn.14000ba00
lea eax, [r12 + 3]
jmp 0x140017cd8
mov dword [rbp - 0x70], r12d
test r14, r14
je 0x140016b66
mov rax, qword [rsi + 0x7a8]
mov rcx, r14
call qword [rax + 0x148]
mov dword [rbp - 0x70], eax
mov qword [rbp + 0x40], r12
mov qword [rbp + 0x48], r12
mov dword [rbp + 0x50], 0xf000c
lea r8, [rbp + 0x40]
lea rdx, [rsp + 0x50]
mov rcx, r14
call qword [sym.imp.WINSPOOL.DRV_OpenPrinterW]
test eax, eax
jne 0x140016bd3
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x30]
cmp eax, 5
jne 0x140016bc5
lea r9d, [rdx + 2]
call fcn.14000ba50
nop
lea rcx, [rsp + 0x30]
call fcn.14000ba00
mov eax, 4
jmp 0x140017cd8
mov r9d, r13d
call fcn.14000ba50
nop
jmp 0x140017ccb
call fcn.14000cc50
mov ebx, eax
mov dword [rsp + 0x6c], eax
lea rdx, [rbp + 0x1340]
mov rcx, r14
call fcn.14001a550
mov rcx, qword [rsp + 0x50]
cmp eax, 0xffffffff
jne 0x140016c1c
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
mov r9d, r13d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x30]
call fcn.14000ba50
nop
jmp 0x140017ccb
mov dword [rsp + 0x58], r12d
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r12d
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 3]
call qword [sym.imp.WINSPOOL.DRV_GetPrinterDriverW]
test eax, eax
jne 0x140016c78
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x140016c78
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
mov r9d, r13d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x30]
call fcn.14000ba50
nop
jmp 0x140017ccb
mov edx, dword [rsp + 0x58]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov r15, rax
mov rcx, qword [rsp + 0x50]
test rax, rax
jne 0x140016cb8
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
mov r9d, r13d
lea r8, str.return___08x
lea edx, [r15 + 2]
lea rcx, [rsp + 0x30]
call fcn.14000ba50
nop
jmp 0x140017ccb
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x20], eax
mov r9, r15
xor edx, edx
lea r8d, [rdx + 3]
call qword [sym.imp.WINSPOOL.DRV_GetPrinterDriverW]
test eax, eax
jne 0x140016d10
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
mov r9d, r13d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x30]
call fcn.14000ba50
nop
jmp 0x140017ccb
xor edx, edx
mov rcx, qword [r15 + 0x38]
call fcn.14000d280
cmp eax, r13d
jne 0x140016ebc
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
call fcn.14004cde4
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x140016d58
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 - 0x78], rsi
call fcn.14004cde4
mov rcx, rax
test rax, rax
setne r12b
test r12d, r12d
jne 0x140016d88
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rbp - 0x38], rdi
mov ecx, 2
call fcn.14004cbb8
test rax, rax
je 0x140016dbb
mov r8d, 2
mov rdx, rax
lea rcx, [rbp - 0x78]
call fcn.1400012a0
mov rsi, qword [rbp - 0x78]
mov ecx, 3
call fcn.14004cbb8
test rax, rax
je 0x140016de0
mov r8d, 3
mov rdx, rax
lea rcx, [rbp - 0x38]
call fcn.1400012a0
mov rdi, qword [rbp - 0x38]
call fcn.140050920
mov rbx, qword [rax + 8]
mov rax, qword [rbx + 0x260]
cmp dword [rax + 0x4c], 0
je 0x140016e3c
mov rdx, rdi
mov rcx, qword [rbx + 0x268]
call fcn.140006da0
mov edx, 0xa
lea r8d, [rdx + 0x16]
lea rcx, [rbp - 0x78]
call fcn.140008d60
mov rdx, qword [rbp - 0x78]
mov rcx, qword [rbx + 0x268]
call fcn.140006da0
lea rdx, [0x140211300]
mov rcx, qword [rbx + 0x268]
call fcn.140006da0
jmp 0x140016e52
mov r9d, 0x30
mov r8, rdi
mov rdx, rsi
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.USER32.dll_MessageBoxW]
mov r9d, 2
lea r8, str.return___08x
mov edx, r9d
lea rcx, [rsp + 0x30]
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 0x140016e8b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x140016ea8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x30]
call fcn.14000ba00
mov eax, 2
jmp 0x140017cd8
mov r9d, r13d
mov r8d, 0x40
lea rdx, [rbp + 0x60]
mov rcx, qword [r15 + 0x18]
call fcn.14000dfa0
test eax, eax
jne 0x140016f09
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
mov r9d, r13d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x30]
call fcn.14000ba50
nop
jmp 0x140017ccb
xor edx, edx
mov r8d, 0x820
lea rcx, [rbp + 0x500]
call fcn.140193010
mov dword [rsp + 0x70], r12d
lea r8, [rsp + 0x70]
lea rdx, [rbp + 0x500]
mov rcx, r14
call fcn.14000aa70
mov edi, dword [rsi + 0x7b0]
mov rcx, qword [rsp + 0x50]
cmp ebx, 0xa
jne 0x140016f7a
call fcn.140024a40
mov edi, eax
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
test edi, edi
jne 0x140016f61
xor r8d, r8d
jmp 0x140016f83
lea rdx, [rbp + 0x500]
mov rcx, r14
call fcn.14001af70
mov rcx, r14
call fcn.14000a390
jmp 0x140016fa1
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
mov r8d, edi
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x20], eax
lea r9, [rbp + 0x500]
mov rdx, r14
lea rcx, [rsi + 0x798]
call fcn.140047a60
test eax, eax
jne 0x140017ca8
call fcn.14004cde4
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x140016fc9
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
call fcn.14004cde4
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x140016ffb
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, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001702d
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x58], rax
call fcn.14004cde4
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001705e
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x48], rax
mov rdx, qword [r15 + 8]
lea rcx, [rsp + 0x78]
call fcn.140001110
nop
mov r8d, 5
lea rdx, [rbp + 0x20]
lea rcx, [rsp + 0x78]
call fcn.1400166b0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x78]
add rdi, 0xffffffffffffffe8
or ebx, 0xffffffff
cmp rcx, rdi
je 0x1400170f9
cmp dword [rdi + 0x10], 0
jl 0x1400170ea
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400170ea
call fcn.140001620
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1400170da
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsi + 0x18]
mov qword [rsp + 0x78], rax
mov rsi, qword [rsp + 0x40]
jmp 0x1400170f9
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x78]
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 0x140017117
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [r15 + 8]
lea rcx, [rbp - 0x68]
call fcn.140001110
nop
call fcn.14004cde4
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x140017145
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x60], rax
mov rcx, qword [rbp - 0x68]
add rcx, 0xffffffffffffffe8
call fcn.140001620
add rax, 0x18
mov qword [rbp + 0x30], rax
lea rdx, [rbp - 0x60]
lea rcx, [rbp + 0x30]
call fcn.14001b680
xor eax, eax
lea rdi, [0x140214088]
mov rsi, qword [rsi + 0x790]
mov ecx, 4
repe cmpsw word [rsi], word [rdi]
je 0x140017197
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x1400171b5
lea r8, [rbp + 0x60]
mov rdx, qword [r15 + 8]
mov rcx, r14
call fcn.140027b40
jmp 0x1400175c1
mov rdx, r14
lea rcx, [rbp - 0x50]
call fcn.140001110
nop
mov r8d, 2
lea rdx, [0x140214090]
mov rcx, r14
call fcn.14018f1b4
test eax, eax
jne 0x1400173b2
mov rax, qword [rbp - 0x50]
mov r8d, dword [rax - 0x10]
dec r8d
lea rdx, [rbp + 0x28]
lea rcx, [rbp - 0x50]
call fcn.1400166b0
nop
mov rsi, qword [rsp + 0x40]
add rsi, 0x1d8
mov qword [rbp + 0x38], rsi
mov r8, rax
mov rdx, rsi
lea rcx, [rbp - 0x10]
call fcn.1400167f0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x48]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001727a
cmp dword [rdi + 0x10], 0
jl 0x14001726b
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001726b
call fcn.140001620
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001725c
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsi + 0x18]
mov qword [rsp + 0x48], rax
mov rsi, qword [rbp + 0x38]
jmp 0x14001727a
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x48]
call fcn.1400014d0
nop
mov rdx, qword [rbp - 0x10]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140017299
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x28]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400172b7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rsi]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x60]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x140017314
cmp dword [rdi + 0x10], 0
jl 0x140017306
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140017306
call fcn.140001620
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1400172fb
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsi + 0x18]
mov qword [rsp + 0x60], rax
jmp 0x140017314
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.1400014d0
mov rdi, qword [rsp + 0x48]
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 0x14001734e
mov eax, ebx
jmp 0x140017354
sub rax, rdi
sar rax, 1
mov r8d, eax
lea rdx, [rbp - 0x28]
lea rcx, [rsp + 0x48]
call fcn.140016750
nop
mov rdi, qword [rbp - 0x28]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.140018670
cmp eax, 1
jne 0x14001738f
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 0x14001754d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14001754d
mov rdx, r14
lea rcx, [rbp - 0x18]
call fcn.140001110
nop
mov rsi, qword [rsp + 0x40]
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 + 0x48]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001743b
cmp dword [rdi + 0x10], 0
jl 0x14001742c
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001742c
call fcn.140001620
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14001741c
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsi + 0x18]
mov qword [rsp + 0x48], rax
mov rsi, qword [rsp + 0x40]
jmp 0x14001743b
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x48]
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 0x14001745a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x18]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140017478
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 + 0x60]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x1400174de
cmp dword [rdi + 0x10], 0
jl 0x1400174d0
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400174d0
call fcn.140001620
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1400174c0
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsi + 0x18]
mov qword [rsp + 0x60], rax
mov rsi, qword [rsp + 0x40]
jmp 0x1400174de
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.1400014d0
mov rdi, qword [rsp + 0x48]
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 0x140017521
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x14001754d
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x14001754d
mov rcx, qword [rsp + 0x40]
cmp dword [rcx + 0x818], 0
je 0x14001754d
mov rcx, r14
call fcn.14002ba30
mov rdi, qword [rsp + 0x60]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.140018670
cmp eax, 1
jne 0x1400175a3
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 0x1400175a3
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
nop
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400175c1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, r14
mov rcx, qword [r15 + 8]
call fcn.140017d10
test eax, eax
jne 0x1400178ed
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x2f0]
call fcn.140193010
lea rdx, [rbp + 0x2f0]
mov rcx, qword [r15 + 8]
call fcn.14001b130
mov dword [rsp + 0x68], eax
mov word [rbp + 0xe0], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0xe2]
call fcn.140193010
mov qword [rbp], r12
mov qword [rbp + 8], r12
mov qword [rbp + 0x10], r12
mov rdi, qword [rsp + 0x40]
cmp dword [rdi + 0xa8c], 0
je 0x140017658
call fcn.14000fc40
lea rcx, str.SPOOLER
call fcn.14000fe40
call fcn.140015c10
mov ecx, r12d
cmp eax, 0xb
sete cl
mov dword [rdi + 0xa8c], ecx
lea rcx, [rbp]
call fcn.140008fd0
lea rdx, [rbp]
mov qword [rsp + 0x20], rdx
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0xe0]
mov rcx, qword [r15 + 8]
call fcn.140020ed0
call fcn.140023af0
test eax, eax
je 0x140017694
cmp eax, 2
mov r14d, 5
je 0x140017697
mov r14d, dword [r15]
xor eax, eax
lea rdi, str.CAPT
mov rdx, qword [rsp + 0x40]
mov rsi, qword [rdx + 0x790]
mov ecx, 5
repe cmpsw word [rsi], word [rdi]
je 0x1400176bb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x1400176e3
cmp dword [rdx + 0x818], 0
je 0x1400176e3
call fcn.140029280
mov ecx, dword [rbp - 0x80]
test eax, eax
cmove ecx, r12d
mov dword [rbp - 0x80], ecx
mov rdx, qword [rsp + 0x40]
lea rcx, [rdx + 0x798]
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x28], eax
lea rax, [rbp + 0x500]
mov qword [rsp + 0x20], rax
mov r9d, dword [rdx + 0x7b0]
mov r8, qword [r15 + 8]
mov edx, r14d
call fcn.1400473d0
mov r14d, r12d
test eax, eax
sete r14b
mov dword [rbp - 0x6c], r14d
test r14d, r14d
je 0x14001775f
lea rsi, [rbp + 0xe0]
lea rdi, [0x1402145dc]
mov rcx, r13
repe cmpsw word [rsi], word [rdi]
je 0x14001775f
lea rax, [rbp]
mov qword [rsp + 0x20], rax
lea r9, [0x1402145dc]
mov r8d, r13d
lea rdx, [rbp + 0xe0]
lea rcx, [0x1402145dc]
call fcn.140020ed0
cmp r14d, 1
jne 0x14001779e
cmp dword [rsp + 0x6c], 0xa
jne 0x140017785
mov rcx, qword [rsp + 0x40]
add rcx, 0x2b0
mov r8, qword [r15 + 8]
mov rdx, qword [rcx + 0x10]
call fcn.14004fc0c
cmp dword [rsp + 0x68], 0
jne 0x1400177a4
lea rcx, [rbp + 0x2f0]
call fcn.14001b350
mov dword [rbp - 0x7c], r13d
jmp 0x1400177a4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x6c], r13d
mov dword [rsp + 0x68], r13d
mov r14, qword [rbp]
test r14, r14
je 0x1400177f3
mov rdi, r14
mov rsi, qword [rbp + 8]
cmp r14, rsi
je 0x1400177eb
cmp qword [rdi + 0x18], 8
jb 0x1400177d2
mov rcx, qword [rdi]
call fcn.14004cabc
mov qword [rdi + 0x18], 7
mov qword [rdi + 0x10], r12
mov word [rdi], r12w
add rdi, 0x28
cmp rdi, rsi
jne 0x1400177c3
mov rcx, r14
call fcn.14004cabc
mov rdi, qword [rsp + 0x40]
mov rax, qword [rdi + 0x260]
cmp dword [rax + 0x88], 0
jne 0x1400178f2
mov rcx, qword [r15 + 8]
call fcn.14000e470
test eax, eax
je 0x14001785b
call fcn.14000eb20
mov qword [rbp - 0x30], r12
lea rax, [rbp - 0x30]
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 0x14001785b
mov r14d, r12d
mov rcx, qword [rbp - 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x140017860
mov r14d, dword [rsp + 0x6c]
call fcn.1400137e0
test eax, eax
je 0x1400178fc
call fcn.140013290
mov qword [rbp - 0x40], r12
mov word [rbp + 0xd20], r12w
xor edx, edx
mov r8d, 0x616
lea rcx, [rbp + 0xd22]
call fcn.140193010
lea r9, str.DIASUser
lea r8, str.SOFTWARECanonDIASSETUP
lea rdx, str._s_s
lea rcx, [rbp + 0xd20]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, [rbp - 0x40]
mov qword [rsp + 0x20], rdx
mov r9d, 0x2011f
xor r8d, r8d
lea rdx, [rbp + 0xd20]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400178fc
mov r13d, r12d
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x1400178fc
mov rdi, qword [rsp + 0x40]
mov r14d, r13d
cmp dword [rsp + 0x68], 0
je 0x140017905
call fcn.140028e30
mov esi, eax
jmp 0x140017908
mov esi, r13d
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GlobalFree]
cmp dword [rbp - 0x70], 1
jne 0x14001793c
lea rcx, [rbp + 0x1750]
call fcn.14001a050
cmp eax, 1
jne 0x14001793c
mov rax, qword [rdi + 0x7a8]
lea rcx, [rbp + 0x1750]
call qword [rax + 0x110]
cmp dword [rbp - 0x7c], 1
jne 0x140017953
call fcn.14000fc40
lea rcx, str.SPOOLER
call fcn.14000fe40
mov rdi, qword [rbp - 0x60]
add rdi, 0xffffffffffffffe8
mov rcx, rdi
call fcn.140001620
add rax, 0x18
mov qword [rbp - 8], rax
lea rcx, [rbp - 8]
call fcn.14001c3a0
cmp dword [rbp - 0x6c], 0
jne 0x140017a83
mov r9d, 6
lea r8, str.return___08x
lea edx, [r9 - 4]
lea rcx, [rsp + 0x30]
call fcn.14000ba50
nop
mov eax, ebx
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x1400179b4
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
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 0x1400179d3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400179f3
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, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140017a12
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140017a31
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 0x140017a51
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x140017a6f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x30]
call fcn.14000ba00
mov eax, 6
jmp 0x140017cd8
test r14d, r14d
je 0x140017ba6
test r13d, r13d
je 0x140017ba6
test esi, esi
je 0x140017ba6
cmp dword [rbp - 0x80], 0
je 0x140017ba6
xor r9d, r9d
lea r8, str.return___08x
lea edx, [r9 + 2]
lea rcx, [rsp + 0x30]
call fcn.14000ba50
nop
mov eax, ebx
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x140017ada
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
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 0x140017af9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140017b19
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, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140017b38
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140017b57
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 0x140017b77
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x140017b95
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x30]
call fcn.14000ba00
xor eax, eax
jmp 0x140017cd8
mov r9d, 5
lea r8, str.return___08x
lea edx, [r9 - 3]
lea rcx, [rsp + 0x30]
call fcn.14000ba50
nop
mov eax, ebx
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x140017bdc
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
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 0x140017bfb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140017c1b
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, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140017c3a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140017c59
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 0x140017c79
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x140017c97
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x30]
call fcn.14000ba00
mov eax, 5
jmp 0x140017cd8
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov r9d, r13d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x30]
call fcn.14000ba50
nop
lea rcx, [rsp + 0x30]
call fcn.14000ba00
mov eax, r13d
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