Function at 0x14002ba30
Capabilities:
Delete registry key

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1fd0]
mov eax, 0x20d0
call fcn.1401945e0
sub rsp, rax
mov qword [rbp + 0x68], 0xfffffffffffffffe
mov qword [rsp + 0x2128], rbx
mov rax, qword [0x14027bbd0]
xor rax, rsp
mov qword [rbp + 0x1fc0], rax
mov edi, r8d
mov r14, rdx
mov rsi, rcx
mov qword [rbp - 0x68], rcx
xor r8d, r8d
lea rdx, str.Tool_DeletePrinter
lea rcx, [rsp + 0x30]
call fcn.140017fc0
nop
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], r14
mov r9, rsi
lea r8, str.hWnd___08x__lpszPrinter___s__bJob___d
mov r12d, 1
mov edx, r12d
lea rcx, [rsp + 0x30]
call fcn.140017c80
xor r13d, r13d
mov qword [rsp + 0x40], r13
mov dword [rsp + 0x58], r13d
mov dword [rbp - 0x70], r13d
mov dword [rbp - 0x80], r12d
mov dword [rsp + 0x6c], r13d
mov dword [rsp + 0x74], r12d
call fcn.140054cb8
mov rsi, qword [rax + 8]
mov qword [rsp + 0x50], rsi
xor r9d, r9d
xor r8d, r8d
mov edx, r12d
mov rcx, r14
call fcn.140019ad0
cmp eax, r12d
jne 0x14002bb2d
test edi, edi
jne 0x14002bb2d
lea r9d, [r12 + 2]
lea r8, str.return___08x
lea edx, [rdi + 2]
lea rcx, [rsp + 0x30]
call fcn.140017c80
nop
lea rcx, [rsp + 0x30]
call fcn.140018150
lea eax, [rdi + 3]
jmp 0x14002ccc5
lea rax, [rsi + 0x798]
mov qword [rbp + 0x18], rax
mov rdx, r14
mov rcx, rax
call fcn.14004a7b0
mov dword [rbp - 0x50], eax
mov qword [rbp + 0x50], r13
mov qword [rbp + 0x58], r13
mov dword [rbp + 0x60], 0xf000c
lea r8, [rbp + 0x50]
lea rdx, [rsp + 0x40]
mov rcx, r14
call sub.WINSPOOL.DRV_OpenPrinterW
test eax, eax
jne 0x14002bbb2
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x30]
cmp eax, 5
jne 0x14002bba4
lea r9d, [rdx + 2]
call fcn.140017c80
nop
lea rcx, [rsp + 0x30]
call fcn.140018150
mov eax, 4
jmp 0x14002ccc5
mov r9d, r12d
call fcn.140017c80
nop
jmp 0x14002ccb8
call fcn.14000c310
mov ebx, eax
mov dword [rsp + 0x68], eax
lea rdx, [rbp + 0x1350]
mov rcx, r14
call fcn.14001f6b0
mov rcx, qword [rsp + 0x40]
cmp eax, 0xffffffff
jne 0x14002bbfa
call sub.WINSPOOL.DRV_ClosePrinter
mov r9d, r12d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x30]
call fcn.140017c80
nop
jmp 0x14002ccb8
mov dword [rsp + 0x58], r13d
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r13d
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 3]
call sub.WINSPOOL.DRV_GetPrinterDriverW
test eax, eax
jne 0x14002bc54
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x14002bc54
mov rcx, qword [rsp + 0x40]
call sub.WINSPOOL.DRV_ClosePrinter
mov r9d, r12d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x30]
call fcn.140017c80
nop
jmp 0x14002ccb8
mov edx, dword [rsp + 0x58]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov r15, rax
mov rcx, qword [rsp + 0x40]
test rax, rax
jne 0x14002bc93
call sub.WINSPOOL.DRV_ClosePrinter
mov r9d, r12d
lea r8, str.return___08x
lea edx, [r15 + 2]
lea rcx, [rsp + 0x30]
call fcn.140017c80
nop
jmp 0x14002ccb8
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 sub.WINSPOOL.DRV_GetPrinterDriverW
test eax, eax
jne 0x14002bce9
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rcx, qword [rsp + 0x40]
call sub.WINSPOOL.DRV_ClosePrinter
mov r9d, r12d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x30]
call fcn.140017c80
nop
jmp 0x14002ccb8
mov dword [rsp + 0x20], r13d
xor r9d, r9d
mov r8, qword [r15 + 8]
mov rdx, r14
mov rcx, qword [r15 + 0x38]
call fcn.140010e90
cmp eax, r12d
jne 0x14002bea1
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rcx, qword [rsp + 0x40]
call sub.WINSPOOL.DRV_ClosePrinter
call fcn.140051e58
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14002bd3d
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rbp - 0x78], rsi
call fcn.140051e58
mov rcx, rax
test rax, rax
setne r13b
test r13d, r13d
jne 0x14002bd6d
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rbp - 0x28], rdi
mov ecx, 2
call fcn.140051c2c
test rax, rax
je 0x14002bda0
mov r8d, 2
mov rdx, rax
lea rcx, [rbp - 0x78]
call fcn.140001b00
mov rsi, qword [rbp - 0x78]
mov ecx, 3
call fcn.140051c2c
test rax, rax
je 0x14002bdc5
mov r8d, 3
mov rdx, rax
lea rcx, [rbp - 0x28]
call fcn.140001b00
mov rdi, qword [rbp - 0x28]
call fcn.140054cb8
mov rbx, qword [rax + 8]
mov rax, qword [rbx + 0x260]
cmp dword [rax + 0x4c], 0
je 0x14002be21
mov rdx, rdi
mov rcx, qword [rbx + 0x268]
call fcn.140007c90
mov edx, 0xa
lea r8d, [rdx + 0x16]
lea rcx, [rbp - 0x78]
call fcn.140009e00
mov rdx, qword [rbp - 0x78]
mov rcx, qword [rbx + 0x268]
call fcn.140007c90
lea rdx, [0x1401c7948]
mov rcx, qword [rbx + 0x268]
call fcn.140007c90
jmp 0x14002be37
mov r9d, 0x30
mov r8, rdi
mov rdx, rsi
mov rcx, qword [rbp - 0x68]
call qword [sym.imp.USER32.dll_MessageBoxW]
mov r9d, 2
lea r8, str.return___08x
mov edx, r9d
lea rcx, [rsp + 0x30]
call fcn.140017c80
nop
lea rdx, [rdi - 0x18]
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002be70
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 0x14002be8d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x30]
call fcn.140018150
mov eax, 2
jmp 0x14002ccc5
mov r9d, r12d
mov r8d, 0x40
lea rdx, [rbp + 0x70]
mov rcx, qword [r15 + 0x18]
call fcn.14000fd10
test eax, eax
jne 0x14002beed
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rcx, qword [rsp + 0x40]
call sub.WINSPOOL.DRV_ClosePrinter
mov r9d, r12d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x30]
call fcn.140017c80
nop
jmp 0x14002ccb8
xor edx, edx
mov r8d, 0x820
lea rcx, [rbp + 0xb30]
call fcn.140192cb0
mov dword [rsp + 0x70], r13d
lea r9, [rsp + 0x70]
mov r8d, 0x410
lea rdx, [rbp + 0xb30]
mov rcx, r14
call fcn.14000baf0
mov edi, dword [rsi + 0x7b0]
mov rcx, qword [rsp + 0x40]
cmp ebx, 0xa
jne 0x14002bf6b
call fcn.140021eb0
mov edi, eax
mov rcx, qword [rsp + 0x40]
call sub.WINSPOOL.DRV_ClosePrinter
test edi, edi
jne 0x14002bf52
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x20], eax
xor r8d, r8d
jmp 0x14002bf7b
lea rdx, [rbp + 0xb30]
mov rcx, r14
call fcn.14001a750
mov rcx, r14
call fcn.14000b770
jmp 0x14002bf91
call sub.WINSPOOL.DRV_ClosePrinter
mov edx, dword [rsp + 0x70]
mov dword [rsp + 0x20], edx
mov r8d, edi
lea r9, [rbp + 0xb30]
mov rdx, r14
lea rcx, [rsi + 0x798]
call fcn.14004a940
test eax, eax
jne 0x14002cc95
call fcn.140051e58
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14002bfb9
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
call fcn.140051e58
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14002bfeb
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x60], rax
call fcn.140051e58
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14002c01d
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x58], rax
call fcn.140051e58
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14002c04e
mov ecx, 0x80004005
call fcn.140001010
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.1400020c0
nop
mov r8d, 5
lea rdx, [rbp + 0x40]
lea rcx, [rsp + 0x78]
call fcn.140017e80
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x78]
add rdi, 0xffffffffffffffe8
or ebx, 0xffffffff
cmp rcx, rdi
je 0x14002c0e9
cmp dword [rdi + 0x10], 0
jl 0x14002c0da
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14002c0da
call fcn.140001950
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14002c0ca
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 + 0x50]
jmp 0x14002c0e9
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x78]
call fcn.140001c20
nop
mov rdx, qword [rbp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002c107
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [r15 + 8]
lea rcx, [rbp - 0x60]
call fcn.1400020c0
nop
call fcn.140051e58
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14002c135
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x68], rax
mov rcx, qword [rbp - 0x60]
add rcx, 0xffffffffffffffe8
call fcn.140001950
add rax, 0x18
mov qword [rbp + 8], rax
lea rdx, [rbp - 0x68]
lea rcx, [rbp + 8]
call fcn.14001de40
xor eax, eax
lea rdi, [0x1401cf4d8]
mov rsi, qword [rsi + 0x790]
mov ecx, 4
repe cmpsw word [rsi], word [rdi]
je 0x14002c187
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x14002c1a5
lea r8, [rbp + 0x70]
mov rdx, qword [r15 + 8]
mov rcx, r14
call fcn.1400235e0
jmp 0x14002c5b1
mov rdx, r14
lea rcx, [rbp - 0x40]
call fcn.1400020c0
nop
mov r8d, 2
lea rdx, [0x1401cceb8]
mov rcx, r14
call fcn.140194830
test eax, eax
jne 0x14002c3a2
mov rax, qword [rbp - 0x40]
mov r8d, dword [rax - 0x10]
dec r8d
lea rdx, [rbp + 0x48]
lea rcx, [rbp - 0x40]
call fcn.140017e80
nop
mov rsi, qword [rsp + 0x50]
add rsi, 0x1d8
mov qword [rbp + 0x30], rsi
mov r8, rax
mov rdx, rsi
lea rcx, [rbp + 0x38]
call fcn.1400182c0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x48]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14002c26a
cmp dword [rdi + 0x10], 0
jl 0x14002c25b
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14002c25b
call fcn.140001950
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14002c24c
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 + 0x30]
jmp 0x14002c26a
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x48]
call fcn.140001c20
nop
mov rdx, qword [rbp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002c289
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 0x14002c2a7
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 0x14002c304
cmp dword [rdi + 0x10], 0
jl 0x14002c2f6
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14002c2f6
call fcn.140001950
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14002c2eb
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 0x14002c304
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.140001c20
mov rdi, qword [rsp + 0x48]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.140018e80
mov rdx, rdi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov edx, 0x5c
mov rcx, rdi
call fcn.140193dc0
test rax, rax
jne 0x14002c33e
mov eax, ebx
jmp 0x14002c344
sub rax, rdi
sar rax, 1
mov r8d, eax
lea rdx, [rbp + 0x20]
lea rcx, [rsp + 0x48]
call fcn.140017f20
nop
mov rdi, qword [rbp + 0x20]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.140019030
cmp eax, 1
jne 0x14002c37f
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 0x14002c53d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14002c53d
mov rdx, r14
lea rcx, [rbp + 0x10]
call fcn.1400020c0
nop
mov rsi, qword [rsp + 0x50]
lea rdx, [rsi + 0x1d0]
mov r8, rax
lea rcx, [rbp]
call fcn.1400182c0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x48]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14002c42b
cmp dword [rdi + 0x10], 0
jl 0x14002c41c
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14002c41c
call fcn.140001950
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14002c40c
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 + 0x50]
jmp 0x14002c42b
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x48]
call fcn.140001c20
nop
mov rdx, qword [rbp]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002c44a
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 0x14002c468
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 0x14002c4ce
cmp dword [rdi + 0x10], 0
jl 0x14002c4c0
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14002c4c0
call fcn.140001950
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14002c4b0
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 + 0x50]
jmp 0x14002c4ce
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.140001c20
mov rdi, qword [rsp + 0x48]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.140018e80
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 0x14002c511
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x14002c53d
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x14002c53d
mov rcx, qword [rsp + 0x50]
cmp dword [rcx + 0x818], 0
je 0x14002c53d
mov rcx, r14
call fcn.140025e10
mov rdi, qword [rsp + 0x60]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.140019030
cmp eax, 1
jne 0x14002c593
mov rdx, rdi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call fcn.140019030
cmp eax, 1
jne 0x14002c593
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
nop
mov rdx, qword [rbp - 0x40]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002c5b1
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.140018ad0
test eax, eax
jne 0x14002c8db
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x300]
call fcn.140192cb0
xor r9d, r9d
mov r8d, 0x104
lea rdx, [rbp + 0x300]
mov rcx, qword [r15 + 8]
call fcn.14001a910
mov dword [rsp + 0x6c], eax
mov word [rbp + 0xf0], r13w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0xf2]
call fcn.140192cb0
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x10], r13
mov rsi, qword [rsp + 0x50]
cmp dword [rsi + 0xa8c], 0
je 0x14002c658
lea rcx, str.SPOOLER
call fcn.14000cdb0
lea rcx, str.SPOOLER
call fcn.140015e60
call fcn.14000e5a0
mov ecx, r13d
cmp eax, 0xb
sete cl
mov dword [rsi + 0xa8c], ecx
lea rcx, [rbp - 0x20]
call fcn.14000a260
lea rdx, [rbp - 0x20]
mov qword [rsp + 0x20], rdx
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0xf0]
mov rcx, qword [r15 + 8]
call fcn.14002a210
call fcn.14001b270
test eax, eax
je 0x14002c694
cmp eax, 2
mov r14d, 5
je 0x14002c697
mov r14d, dword [r15]
xor eax, eax
lea rdi, str.CAPT
mov rsi, qword [rsi + 0x790]
mov ecx, 5
repe cmpsw word [rsi], word [rdi]
je 0x14002c6b6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
mov rdi, qword [rsp + 0x50]
test al, al
je 0x14002c6e0
cmp dword [rdi + 0x818], 0
je 0x14002c6e0
call fcn.140027b00
mov ecx, dword [rsp + 0x74]
test eax, eax
cmove ecx, r13d
mov dword [rsp + 0x74], ecx
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x28], eax
lea rax, [rbp + 0xb30]
mov qword [rsp + 0x20], rax
mov r9d, dword [rdi + 0x7b0]
mov r8, qword [r15 + 8]
mov edx, r14d
lea rcx, [rdi + 0x798]
call fcn.14004aa40
mov r14d, r13d
test eax, eax
sete r14b
mov dword [rbp - 0x80], r14d
test r14d, r14d
je 0x14002c761
lea rsi, [rbp + 0xf0]
lea rdi, [0x1401c6ea8]
mov rcx, r12
repe cmpsw word [rsi], word [rdi]
je 0x14002c75c
lea rax, [rbp - 0x20]
mov qword [rsp + 0x20], rax
lea r9, [0x1401c6ea8]
mov r8d, r12d
lea rdx, [rbp + 0xf0]
lea rcx, [0x1401c6ea8]
call fcn.14002a210
mov rdi, qword [rsp + 0x50]
cmp r14d, 1
jne 0x14002c79d
cmp dword [rsp + 0x68], 0xa
jne 0x14002c782
lea rcx, [rdi + 0x2b0]
mov r8, qword [r15 + 8]
mov rdx, qword [rcx + 0x10]
call fcn.140053fa4
cmp dword [rsp + 0x6c], 0
jne 0x14002c7a3
xor edx, edx
lea rcx, [rbp + 0x300]
call fcn.14001fc60
mov dword [rbp - 0x70], r12d
jmp 0x14002c7a3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x68], r12d
mov dword [rsp + 0x6c], r12d
mov r14, qword [rbp - 0x20]
test r14, r14
je 0x14002c7df
mov rdi, r14
mov rsi, qword [rbp - 0x18]
cmp r14, rsi
je 0x14002c7d7
mov rdx, rdi
lea rcx, [rbp - 8]
call fcn.14000a010
add rdi, 0x28
cmp rdi, rsi
jne 0x14002c7c2
mov rcx, r14
call fcn.140050e78
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx + 0x260]
cmp dword [rax + 0x88], 0
jne 0x14002c8db
xor edx, edx
mov rcx, qword [r15 + 8]
call fcn.1400100b0
test eax, eax
je 0x14002c849
call fcn.140011b00
mov qword [rbp - 0x38], r13
lea rax, [rbp - 0x38]
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 0x14002c849
mov r14d, r13d
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x14002c84e
mov r14d, dword [rsp + 0x68]
call fcn.1400107c0
test eax, eax
je 0x14002c8e5
call fcn.140014ee0
mov qword [rbp - 0x30], r13
mov word [rbp + 0x510], r13w
xor edx, edx
mov r8d, 0x616
lea rcx, [rbp + 0x512]
call fcn.140192cb0
lea r9, str.DIASUser
lea r8, str.SOFTWARECanonDIASSETUP
lea rdx, str._s_s
lea rcx, [rbp + 0x510]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, [rbp - 0x30]
mov qword [rsp + 0x20], rdx
mov r9d, 0x2011f
xor r8d, r8d
lea rdx, [rbp + 0x510]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14002c8e5
mov r12d, r13d
mov rcx, qword [rbp - 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x14002c8e5
mov r14d, r12d
cmp dword [rsp + 0x6c], 0
je 0x14002c8ee
call fcn.14001b550
mov esi, eax
jmp 0x14002c8f1
mov esi, r12d
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GlobalFree]
cmp dword [rbp - 0x50], 1
jne 0x14002c921
lea rcx, [rbp + 0x1760]
call fcn.140019fd0
cmp eax, 1
jne 0x14002c921
lea rdx, [rbp + 0x1760]
mov rcx, qword [rbp + 0x18]
call fcn.14004a790
cmp dword [rbp - 0x70], 1
jne 0x14002c93f
lea rcx, str.SPOOLER
call fcn.14000cdb0
lea rcx, str.SPOOLER
call fcn.140015e60
mov rdi, qword [rbp - 0x68]
add rdi, 0xffffffffffffffe8
mov rcx, rdi
call fcn.140001950
add rax, 0x18
mov qword [rbp + 0x28], rax
lea rcx, [rbp + 0x28]
call fcn.14001ce10
cmp dword [rbp - 0x80], 0
jne 0x14002ca6f
mov r9d, 6
lea r8, str.return___08x
lea edx, [r9 - 4]
lea rcx, [rsp + 0x30]
call fcn.140017c80
nop
mov eax, ebx
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x14002c9a0
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002c9bf
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 0x14002c9df
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 0x14002c9fe
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 0x14002ca1d
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 0x14002ca3d
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 0x14002ca5b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x30]
call fcn.140018150
mov eax, 6
jmp 0x14002ccc5
test r14d, r14d
je 0x14002cb93
test r12d, r12d
je 0x14002cb93
test esi, esi
je 0x14002cb93
cmp dword [rsp + 0x74], 0
je 0x14002cb93
xor r9d, r9d
lea r8, str.return___08x
lea edx, [r9 + 2]
lea rcx, [rsp + 0x30]
call fcn.140017c80
nop
mov eax, ebx
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x14002cac7
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002cae6
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 0x14002cb06
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 0x14002cb25
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 0x14002cb44
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 0x14002cb64
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 0x14002cb82
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x30]
call fcn.140018150
xor eax, eax
jmp 0x14002ccc5
mov r9d, 5
lea r8, str.return___08x
lea edx, [r9 - 3]
lea rcx, [rsp + 0x30]
call fcn.140017c80
nop
mov eax, ebx
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x14002cbc9
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002cbe8
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 0x14002cc08
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 0x14002cc27
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 0x14002cc46
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 0x14002cc66
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 0x14002cc84
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x30]
call fcn.140018150
mov eax, 5
jmp 0x14002ccc5
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov r9d, r12d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x30]
call fcn.140017c80
nop
lea rcx, [rsp + 0x30]
call fcn.140018150
mov eax, r12d
mov rcx, qword [rbp + 0x1fc0]
xor rcx, rsp
call fcn.1401945b0
mov rbx, qword [rsp + 0x2128]
add rsp, 0x20d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret