Function at 0x14002cd00
Capabilities:
Delete registry key

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3f28]
mov eax, 0x4028
call fcn.1401945e0
sub rsp, rax
mov qword [rbp + 0x30], 0xfffffffffffffffe
mov rax, qword [0x14027bbd0]
xor rax, rsp
mov qword [rbp + 0x3f10], rax
mov ebx, r9d
mov edi, r8d
mov r12, rdx
mov r15, rcx
xor r8d, r8d
lea rdx, str.Tool_DeleteNetworkPrinter
lea rcx, [rsp + 0x50]
call fcn.140017fc0
nop
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], r12
mov r9, r15
lea r8, str.lpszPrinter___s__lpszVersion___s__bJob___d__bDebug___d
mov r14d, 1
mov edx, r14d
lea rcx, [rsp + 0x50]
call fcn.140017c80
call fcn.140054cb8
mov rcx, qword [rax + 8]
call fcn.14005f510
nop
xor eax, eax
mov dword [rbp - 0x68], eax
mov dword [rbp - 0x54], r14d
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x78], r14d
call fcn.140054cb8
mov rsi, qword [rax + 8]
mov qword [rbp - 0x70], rsi
xor r9d, r9d
xor r8d, r8d
mov edx, r14d
mov rcx, r15
call fcn.140019ad0
cmp eax, r14d
jne 0x14002ce04
test edi, edi
jne 0x14002ce04
lea r9d, [r14 + 2]
lea r8, str.return___08x
lea edx, [rdi + 2]
lea rcx, [rsp + 0x50]
call fcn.140017c80
nop
lea rcx, [rsp + 0x40]
call fcn.1400183d0
nop
lea rcx, [rsp + 0x50]
call fcn.140018150
lea eax, [rdi + 3]
jmp 0x14002dc9b
lea rax, [rsi + 0x798]
mov qword [rbp], rax
mov rdx, r15
mov rcx, rax
call fcn.14004a7b0
mov dword [rbp - 0x58], eax
xor edx, edx
mov r8d, 0x410
lea rcx, [rbp + 0x250]
call fcn.140192cb0
lea rdx, [rsp + 0x48]
mov qword [rsp + 0x30], rdx
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
xor edi, edi
mov dword [rsp + 0x20], edi
xor r9d, r9d
xor edx, edx
lea ecx, [rdi + 4]
lea r8d, [rdi + 2]
call sub.WINSPOOL.DRV_EnumPrintersW
test eax, eax
jne 0x14002cea0
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x14002cea0
mov r9d, r14d
lea r8, str.return___08x
lea edx, [rdi + 2]
lea rcx, [rsp + 0x50]
call fcn.140017c80
nop
lea rcx, [rsp + 0x40]
call fcn.1400183d0
nop
lea rcx, [rsp + 0x50]
call fcn.140018150
mov eax, r14d
jmp 0x14002dc9b
mov edx, dword [rsp + 0x44]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rsi, rax
test rax, rax
jne 0x14002ceec
mov r9d, r14d
lea r8, str.return___08x
lea edx, [rax + 2]
lea rcx, [rsp + 0x50]
call fcn.140017c80
nop
lea rcx, [rsp + 0x40]
call fcn.1400183d0
nop
lea rcx, [rsp + 0x50]
call fcn.140018150
mov eax, r14d
jmp 0x14002dc9b
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x20], eax
mov r9, rsi
xor edx, edx
lea ecx, [rdx + 4]
lea r8d, [rdx + 2]
call sub.WINSPOOL.DRV_EnumPrintersW
test eax, eax
je 0x14002cf75
mov r13d, edi
cmp dword [rsp + 0x48], edi
jbe 0x14002cf79
lea rdi, [rsi + 8]
nop word [rax + rax]
mov rdx, r15
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x14002cf55
inc r13d
add rdi, 0x88
cmp r13d, dword [rsp + 0x48]
jb 0x14002cf30
xor edi, edi
jmp 0x14002cf79
mov edx, r13d
imul rdx, rdx, 0x88
mov rdx, qword [rdx + rsi + 0x20]
lea rcx, [rbp + 0x250]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
xor edi, edi
jmp 0x14002cf79
mov r13d, dword [rbp - 0x58]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GlobalFree]
xor edx, edx
mov r8d, 0x820
lea rcx, [rbp + 0xe90]
call fcn.140192cb0
mov dword [rbp - 0x74], edi
lea r9, [rbp - 0x74]
mov r8d, 0x410
lea rdx, [rbp + 0xe90]
mov rcx, r15
call fcn.14000baf0
mov dword [rsp + 0x20], edi
xor r9d, r9d
mov rsi, qword [rbp - 0x70]
mov r8d, dword [rsi + 0x7b0]
mov rdx, r15
lea rcx, [rsi + 0x798]
call fcn.14004a940
test eax, eax
je 0x14002d042
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x50]
cmp eax, 5
jne 0x14002d01c
lea r9d, [rdx + 2]
call fcn.140017c80
nop
lea rcx, [rsp + 0x40]
call fcn.1400183d0
nop
lea rcx, [rsp + 0x50]
call fcn.140018150
mov eax, 4
jmp 0x14002dc9b
mov r9d, r14d
call fcn.140017c80
nop
lea rcx, [rsp + 0x40]
call fcn.1400183d0
nop
lea rcx, [rsp + 0x50]
call fcn.140018150
mov eax, r14d
jmp 0x14002dc9b
call fcn.140054cb8
mov rcx, qword [rax + 8]
call fcn.14005f550
cmp ebx, 1
jne 0x14002d088
mov r9d, r14d
mov r8, r15
lea rdx, str.Tool_DeleteNetworkPrinter__s__RET__ld_
lea rcx, [rbp + 0x1f10]
call qword [sym.imp.USER32.dll_wsprintfW]
xor r9d, r9d
lea r8, str.AddPrinter
lea rdx, [rbp + 0x1f10]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
call fcn.140051e58
mov rdx, rax
mov ecx, edi
test rax, rax
setne cl
test ecx, ecx
jne 0x14002d0a7
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x50], rax
lea rdx, [rbp + 0x250]
lea rcx, [rbp + 0x28]
call fcn.1400020c0
lea rdx, [rbp - 0x50]
mov rcx, rax
call fcn.14001de40
call fcn.140051e58
mov rdx, rax
mov ecx, edi
test rax, rax
setne cl
test ecx, ecx
jne 0x14002d0f3
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x68], rbx
call fcn.140051e58
mov rdx, rax
mov ecx, edi
test rax, rax
setne cl
test ecx, ecx
jne 0x14002d124
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x70], rax
mov rdx, r15
lea rcx, [rbp - 0x80]
call fcn.1400020c0
nop
mov rdx, r12
lea rcx, [rbp - 0x60]
call fcn.1400020c0
nop
mov dword [rbp - 0x78], edi
xor eax, eax
lea rdi, [0x1401cf4d8]
mov rsi, qword [rsi + 0x790]
mov ecx, 4
repe cmpsw word [rsi], word [rdi]
je 0x14002d172
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
or r12d, 0xffffffff
test al, al
je 0x14002d18f
mov rcx, r15
call fcn.140024190
mov dword [rbp - 0x78], eax
jmp 0x14002d3d4
mov rax, qword [rbp - 0x80]
mov r8d, dword [rax - 0x10]
dec r8d
lea rdx, [rbp + 0x10]
lea rcx, [rbp - 0x80]
call fcn.140017e80
nop
mov rsi, qword [rbp - 0x70]
mov r8, rax
lea rdx, [rsi + 0x1d8]
lea rcx, [rbp + 8]
call fcn.1400182c0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14002d21a
cmp dword [rbx + 0x10], 0
jl 0x14002d20b
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14002d20b
call fcn.140001950
mov rdi, rax
mov ecx, r12d
lock xadd dword [rbx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14002d200
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 + 0x68], rax
jmp 0x14002d21a
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x68]
call fcn.140001c20
nop
mov rdx, qword [rbp + 8]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002d23a
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, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002d259
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]
lea rsi, [rdi - 0x18]
cmp rcx, rsi
je 0x14002d2c0
cmp dword [rsi + 0x10], 0
jl 0x14002d2ad
mov rax, qword [rsi]
cmp qword [rcx], rax
jne 0x14002d2ad
call fcn.140001950
mov rdi, rax
mov ecx, r12d
lock xadd dword [rsi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14002d2a2
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add rdi, 0x18
mov qword [rsp + 0x70], rdi
jmp 0x14002d2c0
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x70]
call fcn.140001c20
mov rdi, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x68]
mov rdx, rsi
mov rcx, 0xffffffff80000001
call fcn.140018e80
mov rdx, rsi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rdx, r15
lea rcx, [rbp - 8]
call fcn.1400020c0
nop
mov edx, 0x5c
mov rcx, rsi
call fcn.140193dc0
test rax, rax
jne 0x14002d308
mov eax, r12d
jmp 0x14002d30e
sub rax, rsi
sar rax, 1
mov r8d, eax
lea rdx, [rbp + 0x20]
lea rcx, [rsp + 0x68]
call fcn.140017f20
nop
mov rsi, qword [rbp + 0x20]
mov rdx, rsi
mov rcx, 0xffffffff80000001
call fcn.140019030
cmp eax, 1
jne 0x14002d348
mov rdx, rsi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.140019030
cmp eax, 1
jne 0x14002d399
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 0x14002d399
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
nop
lea rdx, [rsi - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002d3b5
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, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002d3d4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
xor esi, esi
mov dword [rsp + 0x20], esi
xor r9d, r9d
xor edx, edx
xor ecx, ecx
lea r8d, [rsi + 3]
call sub.WINSPOOL.DRV_EnumPrinterDriversW
test eax, eax
jne 0x14002d4ec
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x14002d4ec
mov r9d, r14d
lea r8, str.return___08x
lea edx, [rsi + 2]
lea rcx, [rsp + 0x50]
call fcn.140017c80
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002d44d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002d46d
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 0x14002d48e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002d4af
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x14002d4cf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x40]
call fcn.1400183d0
nop
lea rcx, [rsp + 0x50]
call fcn.140018150
mov eax, r14d
jmp 0x14002dc9b
mov edx, dword [rsp + 0x44]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rdi, rax
mov qword [rbp - 0x38], rax
test rax, rax
jne 0x14002d5e2
mov r9d, r14d
lea r8, str.return___08x
lea edx, [rax + 2]
lea rcx, [rsp + 0x50]
call fcn.140017c80
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002d543
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002d563
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 0x14002d584
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002d5a5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x14002d5c5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x40]
call fcn.1400183d0
nop
lea rcx, [rsp + 0x50]
call fcn.140018150
mov eax, r14d
jmp 0x14002dc9b
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x20], eax
mov r9, rdi
xor edx, edx
xor ecx, ecx
lea r8d, [rdx + 3]
call sub.WINSPOOL.DRV_EnumPrinterDriversW
test eax, eax
je 0x14002d646
mov r13d, esi
cmp dword [rsp + 0x48], esi
jbe 0x14002d646
add rdi, 8
nop
lea rdx, [rbp + 0x250]
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x14002d642
inc r13d
add rdi, 0x50
cmp r13d, dword [rsp + 0x48]
jb 0x14002d620
mov rdi, qword [rbp - 0x38]
call fcn.14000c310
mov dword [rbp - 0x48], eax
cmp eax, 6
je 0x14002d65c
cmp eax, 0xa
jne 0x14002d966
mov ecx, r13d
lea r13, [rcx + rcx*4]
shl r13, 4
add r13, rdi
mov rdx, r15
mov rcx, qword [r13 + 8]
call fcn.140018ad0
test eax, eax
jne 0x14002d966
lea rdx, [rbp + 0x660]
mov rcx, r13
call fcn.14001f490
mov dword [rsp + 0x60], eax
mov word [rbp + 0x40], si
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x42]
call fcn.140192cb0
mov r15, rsi
mov qword [rbp - 0x28], rsi
mov rbx, rsi
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], rsi
mov rsi, qword [rbp - 0x70]
cmp dword [rsi + 0xa8c], 0
je 0x14002d71d
lea rcx, str.SPOOLER
call fcn.14000cdb0
lea rcx, str.SPOOLER
call fcn.140015e60
call fcn.14000e5a0
xor ecx, ecx
cmp eax, 0xb
sete cl
mov dword [rsi + 0xa8c], ecx
lea rcx, [rbp - 0x28]
call fcn.14000a260
lea rdx, [rbp - 0x28]
mov qword [rsp + 0x20], rdx
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x40]
mov rcx, qword [r13 + 8]
call fcn.14002a210
mov rbx, qword [rbp - 0x20]
mov r15, qword [rbp - 0x28]
call fcn.14001b270
test eax, eax
je 0x14002d73f
cmp eax, 2
je 0x14002d735
mov edx, dword [r13]
mov dword [rsp + 0x4c], edx
jmp 0x14002d747
mov dword [rsp + 0x4c], 5
jmp 0x14002d747
mov eax, dword [r13]
mov dword [rsp + 0x4c], eax
xor eax, eax
lea rdi, str.CAPT
mov rsi, qword [rsi + 0x790]
mov ecx, 5
repe cmpsw word [rsi], word [rdi]
je 0x14002d766
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
mov rsi, qword [rbp - 0x70]
test al, al
je 0x14002d793
cmp dword [rsi + 0x818], 0
je 0x14002d793
call fcn.140027b00
mov ecx, dword [rsp + 0x78]
test eax, eax
mov eax, 0
cmove ecx, eax
mov dword [rsp + 0x78], ecx
mov eax, dword [rbp - 0x74]
mov dword [rsp + 0x28], eax
lea rax, [rbp + 0xe90]
mov qword [rsp + 0x20], rax
mov r9d, dword [rsi + 0x7b0]
mov r8, qword [r13 + 8]
mov edx, dword [rsp + 0x4c]
lea rcx, [rsi + 0x798]
call fcn.14004aa40
xor ecx, ecx
mov edi, ecx
test eax, eax
sete dil
mov dword [rbp - 0x54], edi
test edi, edi
je 0x14002d7fd
lea rax, [rbp - 0x28]
mov qword [rsp + 0x20], rax
lea r9, [0x1401c6ea8]
mov r8d, r14d
lea rdx, [rbp + 0x40]
lea rcx, [0x1401c6ea8]
call fcn.14002a210
mov rbx, qword [rbp - 0x20]
mov r15, qword [rbp - 0x28]
cmp edi, 1
jne 0x14002d83a
cmp dword [rbp - 0x48], 0xa
jne 0x14002d81c
lea rcx, [rsi + 0x2b0]
mov r8, qword [r13 + 8]
mov rdx, qword [rcx + 0x10]
call fcn.140053fa4
cmp dword [rsp + 0x60], 0
jne 0x14002d83a
xor r8d, r8d
mov rdx, qword [r13 + 0x40]
lea rcx, [rbp + 0x660]
call fcn.140019180
mov dword [rbp - 0x68], r14d
mov dword [rsp + 0x4c], r14d
mov dword [rsp + 0x60], r14d
test r15, r15
je 0x14002d86e
mov rdi, r15
cmp r15, rbx
je 0x14002d866
mov rdx, rdi
lea rcx, [rbp - 0x10]
call fcn.14000a010
add rdi, 0x28
cmp rdi, rbx
jne 0x14002d851
mov rcx, r15
call fcn.140050e78
mov rax, qword [rsi + 0x260]
cmp dword [rax + 0x88], 0
jne 0x14002d966
xor edx, edx
mov rcx, qword [r13 + 8]
call fcn.1400100b0
test eax, eax
je 0x14002d8d4
call fcn.140011b00
xor edi, edi
mov qword [rbp - 0x40], rdi
lea rax, [rbp - 0x40]
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 0x14002d8d6
mov ebx, edi
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x14002d8da
xor edi, edi
mov ebx, dword [rsp + 0x4c]
call fcn.1400107c0
test eax, eax
je 0x14002d970
call fcn.140014ee0
mov qword [rbp - 0x30], rdi
mov word [rbp + 0x870], di
xor edx, edx
mov r8d, 0x616
lea rcx, [rbp + 0x872]
call fcn.140192cb0
lea r9, str.DIASUser
lea r8, str.SOFTWARECanonDIASSETUP
lea rdx, str._s_s
lea rcx, [rbp + 0x870]
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 + 0x870]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14002d970
mov r14d, edi
mov rcx, qword [rbp - 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x14002d970
mov ebx, r14d
cmp dword [rsp + 0x60], 0
je 0x14002d979
call fcn.14001b550
mov esi, eax
jmp 0x14002d97c
mov esi, r14d
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_GlobalFree]
cmp dword [rbp - 0x68], 0
je 0x14002d9a4
lea rcx, str.SPOOLER
call fcn.14000cdb0
lea rcx, str.SPOOLER
call fcn.140015e60
mov rdi, qword [rbp - 0x50]
add rdi, 0xffffffffffffffe8
mov rcx, rdi
call fcn.140001950
add rax, 0x18
mov qword [rbp + 0x18], rax
lea rcx, [rbp + 0x18]
call fcn.14001ce10
cmp dword [rbp - 0x58], 1
jne 0x14002d9ec
lea rcx, [rbp + 0x16b0]
call fcn.140019fd0
cmp eax, 1
jne 0x14002d9ec
lea rdx, [rbp + 0x16b0]
mov rcx, qword [rbp]
call fcn.14004a790
cmp dword [rbp - 0x54], 0
jne 0x14002dace
mov r9d, 6
lea r8, str.return___08x
lea edx, [r9 - 4]
lea rcx, [rsp + 0x50]
call fcn.140017c80
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002da32
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002da52
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 0x14002da73
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002da94
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lock xadd dword [rdi + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x14002daaf
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x40]
call fcn.1400183d0
nop
lea rcx, [rsp + 0x50]
call fcn.140018150
mov eax, 6
jmp 0x14002dc9b
test ebx, ebx
je 0x14002dbc8
test r14d, r14d
je 0x14002dbc8
test esi, esi
je 0x14002dbc8
cmp dword [rsp + 0x78], 0
je 0x14002dbc8
mov esi, dword [rbp - 0x78]
mov r9d, esi
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x50]
call fcn.140017c80
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002db2f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002db4f
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 0x14002db70
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002db91
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lock xadd dword [rdi + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x14002dbac
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x40]
call fcn.1400183d0
nop
lea rcx, [rsp + 0x50]
call fcn.140018150
mov eax, esi
jmp 0x14002dc9b
mov r9d, 5
lea r8, str.return___08x
lea edx, [r9 - 3]
lea rcx, [rsp + 0x50]
call fcn.140017c80
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002dc04
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002dc24
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 0x14002dc45
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14002dc66
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lock xadd dword [rdi + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x14002dc81
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x40]
call fcn.1400183d0
nop
lea rcx, [rsp + 0x50]
call fcn.140018150
mov eax, 5
mov rcx, qword [rbp + 0x3f10]
xor rcx, rsp
call fcn.1401945b0
add rsp, 0x4028
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret