Function at 0x14001afb0
Capabilities:
Connect to wmi namespace via wbemlocator
Reference wmi statements

Disassembly:
test rcx, rcx
je 0x14001b81d
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x30]
sub rsp, 0x130
mov r15, rcx
xor r12d, r12d
mov qword [rcx], r12
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitializeEx]
mov dword [rbp + 0x78], eax
mov qword [rbp - 0x10], r12
mov qword [rsp + 0x40], r12
mov dword [rsp + 0x38], r12d
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], r12d
xor r9d, r9d
xor r8d, r8d
lea edx, [r12 - 1]
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitializeSecurity]
test eax, eax
js 0x14001b7f9
mov qword [rbp + 0x88], r12
lea rax, [rbp + 0x88]
mov qword [rsp + 0x20], rax
lea r9, [0x140101560]
xor edx, edx
lea r8d, [r12 + 1]
lea rcx, [0x140101550]
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov rcx, qword [rbp + 0x88]
test eax, eax
js 0x14001b7e6
test rcx, rcx
je 0x14001b7e6
mov qword [rbp + 0x80], r12
lea rcx, str.ROOTCIMV2
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rsp + 0x78], rax
test rax, rax
je 0x14001b829
mov rcx, qword [rbp + 0x88]
mov rax, qword [rcx]
lea rdx, [rbp + 0x80]
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rax, qword [rax + 0x18]
call qword [case.0x140029715.0]
test eax, eax
js 0x14001b7b9
mov rcx, qword [rbp + 0x80]
test rcx, rcx
je 0x14001b7b9
mov dword [rsp + 0x38], r12d
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
lea edx, [r12 + 0xa]
call qword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
jns 0x14001b144
lfence
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, qword [rbp + 0x80]
test rcx, rcx
je 0x14001b138
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140029715.0]
nop
mov rcx, qword [rbp + 0x88]
jmp 0x14001b7e6
mov qword [rsp + 0x58], r12
lea rcx, [0x1400f46d8]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rbp - 0x18], rax
test rax, rax
je 0x14001b834
lea rcx, str.SELECT__FROM_Win32_Printer
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rbp - 0x20], rax
test rax, rax
je 0x14001b81e
mov rcx, qword [rbp + 0x80]
mov rdx, qword [rcx]
mov r10, qword [rdx + 0xa0]
lea rdx, [rsp + 0x58]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], r12
mov r9d, 0x30
mov r8, rax
mov rdx, rbx
mov rax, r10
call qword [case.0x140029715.0]
test eax, eax
js 0x14001b759
cmp qword [rsp + 0x58], 0
je 0x14001b759
lfence
lea rcx, [rbp + 0x10]
call fcn.140019360
nop
lea rcx, [rbp + 0x10]
call fcn.14001ac10
mov qword [rsp + 0x50], r12
mov dword [rbp + 0x70], r12d
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx]
lea rdx, [rbp + 0x70]
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x50]
mov edx, 0xffffffff
lea r8d, [rdx + 2]
mov rax, qword [rax + 0x20]
call qword [case.0x140029715.0]
cmp dword [rbp + 0x70], 0
je 0x14001b6d7
nop dword [rax + rax]
mov rsi, qword [rsp + 0x50]
test rsi, rsi
je 0x14001b67b
mov edx, 0x28
lea ecx, [rdx + 0x18]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rdi, rax
test rax, rax
je 0x14001b67b
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], rax
lea rcx, [rsp + 0x60]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsi]
mov rax, qword [rcx + 0x20]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x60]
xor r8d, r8d
lea rdx, str.Attributes
mov rcx, rsi
call qword [case.0x140029715.0]
test eax, eax
js 0x14001b670
cmp word [rsp + 0x60], 3
jne 0x14001b670
lfence
mov eax, dword [rsp + 0x68]
mov dword [rdi], eax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], rax
lea rcx, [rbp - 0x80]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov rax, qword [rsi]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rbp - 0x80]
xor r8d, r8d
lea rdx, str.Default
mov rcx, rsi
mov rax, qword [rax + 0x20]
call qword [case.0x140029715.0]
test eax, eax
js 0x14001b665
cmp word [rbp - 0x80], 0xb
jne 0x14001b665
lfence
mov eax, r12d
cmp word [rbp - 0x78], 0xffff
sete al
mov dword [rdi + 4], eax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x40], rax
lea rcx, [rbp - 0x50]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov rax, qword [rsi]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rbp - 0x50]
xor r8d, r8d
lea rdx, str.Local
mov rcx, rsi
mov rax, qword [rax + 0x20]
call qword [case.0x140029715.0]
test eax, eax
js 0x14001b65a
cmp word [rbp - 0x50], 0xb
jne 0x14001b65a
lfence
mov eax, r12d
cmp word [rbp - 0x48], 0xffff
sete al
mov dword [rdi + 8], eax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x68], xmm0
mov qword [rbp - 0x58], rax
lea rcx, [rbp - 0x68]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov rax, qword [rsi]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rbp - 0x68]
xor r8d, r8d
lea rdx, str.Name
mov rcx, rsi
mov rax, qword [rax + 0x20]
call qword [case.0x140029715.0]
test eax, eax
js 0x14001b64f
cmp word [rbp - 0x68], 8
jne 0x14001b64f
lea rbx, [rdi + 0x10]
test rbx, rbx
je 0x14001b64f
mov rcx, qword [rbp - 0x60]
test rcx, rcx
jne 0x14001b400
lea edx, [rcx + 4]
lea ecx, [rdx + 0x3c]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rbx], rax
test rax, rax
je 0x14001b64f
mov word [rax], r12w
mov rax, qword [rbx + 8]
mov word [rax], r12w
jmp 0x14001b43c
call qword [sym.imp.OLEAUT32.dll_VariantInit]
inc eax
mov r14d, eax
lea rdx, [rax + rax]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rbx], rax
test rax, rax
je 0x14001b64f
mov r9, 0xffffffffffffffff
mov r8, qword [rbp - 0x60]
mov edx, r14d
mov rcx, rax
call fcn.1400bf734
lfence
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x38], xmm0
mov qword [rbp - 0x28], rax
lea rcx, [rbp - 0x38]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov rax, qword [rsi]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rbp - 0x38]
xor r8d, r8d
lea rdx, str.PortName
mov rcx, rsi
mov rax, qword [rax + 0x20]
call qword [case.0x140029715.0]
test eax, eax
js 0x14001b644
cmp word [rbp - 0x38], 8
jne 0x14001b644
lea rbx, [rdi + 0x18]
test rbx, rbx
je 0x14001b644
mov rcx, qword [rbp - 0x30]
test rcx, rcx
jne 0x14001b4ce
lea edx, [rcx + 4]
lea ecx, [rdx + 0x3c]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rbx], rax
test rax, rax
je 0x14001b644
mov word [rax], r12w
mov rax, qword [rbx + 8]
mov word [rax], r12w
jmp 0x14001b50a
call qword [sym.imp.OLEAUT32.dll_VariantInit]
inc eax
mov r14d, eax
lea rdx, [rax + rax]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rbx], rax
test rax, rax
je 0x14001b644
mov r9, 0xffffffffffffffff
mov r8, qword [rbp - 0x30]
mov edx, r14d
mov rcx, rax
call fcn.1400bf734
lfence
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 8], xmm0
mov qword [rbp + 8], rax
lea rcx, [rbp - 8]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov rax, qword [rsi]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rbp - 8]
xor r8d, r8d
lea rdx, str.PrintProcessor
mov rcx, rsi
mov rax, qword [rax + 0x20]
call qword [case.0x140029715.0]
test eax, eax
js 0x14001b639
cmp word [rbp - 8], 8
jne 0x14001b639
lea rbx, [rdi + 0x20]
test rbx, rbx
je 0x14001b639
mov rcx, qword [rbp]
test rcx, rcx
jne 0x14001b59c
lea edx, [rcx + 4]
lea ecx, [rdx + 0x3c]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rbx], rax
test rax, rax
je 0x14001b639
mov word [rax], r12w
mov rax, qword [rbx + 8]
mov word [rax], r12w
jmp 0x14001b5d2
call qword [sym.imp.OLEAUT32.dll_VariantInit]
inc eax
mov esi, eax
lea rdx, [rax + rax]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rbx], rax
test rax, rax
je 0x14001b639
mov r9, 0xffffffffffffffff
mov r8, qword [rbp]
mov edx, esi
mov rcx, rax
call fcn.1400bf734
mov dword [rdi + 0xc], 0xffffffff
lea rcx, [rbp - 8]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rbp - 0x38]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rbp - 0x68]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rbp - 0x50]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rbp - 0x80]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rsp + 0x60]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
call fcn.140012960
mov rdx, rax
mov rcx, rdi
call fcn.1400128f0
mov rdx, rdi
lea rcx, [rbp - 0x10]
call fcn.140012770
jmp 0x14001b683
lea rcx, [rbp - 8]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rbp - 0x38]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rbp - 0x68]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rbp - 0x50]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rbp - 0x80]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rsp + 0x60]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
xor ecx, ecx
call fcn.140012810
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14001b69b
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140029715.0]
nop
mov qword [rsp + 0x50], r12
mov dword [rbp + 0x70], r12d
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx]
lea rdx, [rbp + 0x70]
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x50]
mov edx, 0xffffffff
lea r8d, [rdx + 2]
mov rax, qword [rax + 0x20]
call qword [case.0x140029715.0]
cmp dword [rbp + 0x70], 0
jne 0x14001b220
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14001b6ef
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140029715.0]
nop
lea rcx, [rbp + 0x10]
call fcn.140019470
nop
mov rcx, qword [rbp - 0x20]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14001b727
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140029715.0]
nop
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, qword [rbp + 0x80]
test rcx, rcx
je 0x14001b74d
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140029715.0]
nop
mov rcx, qword [rbp + 0x88]
jmp 0x14001b7e6
lfence
mov rcx, qword [rbp - 0x20]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14001b78a
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140029715.0]
nop
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, qword [rbp + 0x80]
test rcx, rcx
je 0x14001b7b0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140029715.0]
nop
mov rcx, qword [rbp + 0x88]
jmp 0x14001b7e6
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, qword [rbp + 0x80]
test rcx, rcx
je 0x14001b7dd
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140029715.0]
nop
mov rcx, qword [rbp + 0x88]
jmp 0x14001b7e6
test rcx, rcx
je 0x14001b7f9
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140029715.0]
nop
mov rax, qword [rbp - 0x10]
mov qword [r15], rax
cmp dword [rbp + 0x78], 0
jl 0x14001b80c
call qword [sym.imp.ole32.dll_CoUninitialize]
add rsp, 0x130
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x8007000e
call fcn.140004950
nop
mov ecx, 0x8007000e
call fcn.140004950
nop
mov ecx, 0x8007000e
call fcn.140004950
int3