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

Disassembly:
mov rax, rsp
push rbp
push rdi
push r14
lea rbp, [rax - 0x5f]
sub rsp, 0xf0
mov qword [rbp - 0x19], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x1403c9cb8]
xor rax, rsp
mov qword [rbp + 0x37], rax
mov rbx, rcx
xor esi, esi
mov qword [rbp + 0x27], rsi
lea r14d, [rsi + 7]
mov qword [rbp + 0x2f], r14
mov word [rbp + 0x17], si
mov byte [rbp - 0x11], sil
movups xmm0, xmmword [rbp + 0x17]
movups xmmword [rbp - 9], xmm0
movups xmm1, xmmword [rbp + 0x27]
movups xmmword [rbp + 7], xmm1
mov qword [rbp + 0x27], rsi
mov qword [rbp + 0x2f], r14
mov word [rbp + 0x17], si
lea rcx, [rbp + 0x17]
call fcn.14000c764
mov qword [rbp - 0x41], rsi
mov qword [rbp - 0x59], rsi
mov qword [rbp - 0x49], rsi
mov qword [rbp - 0x51], rsi
lea rcx, [rbp - 0x31]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
lea rax, [rbp - 0x41]
mov qword [rsp + 0x20], rax
lea r9, [0x1402b4f30]
xor edx, edx
lea r8d, [rsi + 0x17]
lea rcx, [0x1402b4ec0]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x14003c7e1
mov al, byte [rbp - 0x11]
mov byte [rbx], al
movups xmm0, xmmword [rbp - 9]
movups xmmword [rbx + 8], xmm0
movups xmm1, xmmword [rbp + 7]
movups xmmword [rbx + 0x18], xmm1
mov qword [rbp + 7], rsi
mov qword [rbp + 0xf], r14
mov word [rbp - 9], si
lea rcx, [rbp - 0x31]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
test eax, eax
jns 0x14003c770
mov edx, 0x75d25d
mov ecx, eax
call fcn.140023654
nop
mov rcx, qword [rbp - 0x51]
test rcx, rcx
je 0x14003c78b
mov qword [rbp - 0x51], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x14003c7a6
mov qword [rbp - 0x49], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x59]
test rcx, rcx
je 0x14003c7c1
mov qword [rbp - 0x59], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x41]
test rcx, rcx
je 0x14003c7dc
mov qword [rbp - 0x41], rsi
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x10]
call qword [case.0x14002a211.0]
nop
jmp 0x14003cec3
mov rcx, qword [rbp - 0x41]
mov rax, qword [rcx]
lea rdx, [rbp - 0x59]
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
xor r9d, r9d
xor r8d, r8d
lea rdx, str.ROOTCIMV2
mov rax, qword [rax + 0x18]
call qword [case.0x14002a211.0]
test eax, eax
jns 0x14003c8d0
mov al, byte [rbp - 0x11]
mov byte [rbx], al
movups xmm0, xmmword [rbp - 9]
movups xmmword [rbx + 8], xmm0
movups xmm1, xmmword [rbp + 7]
movups xmmword [rbx + 0x18], xmm1
mov qword [rbp + 7], rsi
mov qword [rbp + 0xf], r14
mov word [rbp - 9], si
lea rcx, [rbp - 0x31]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
test eax, eax
jns 0x14003c85f
mov edx, 0x75d25d
mov ecx, eax
call fcn.140023654
nop
mov rcx, qword [rbp - 0x51]
test rcx, rcx
je 0x14003c87a
mov qword [rbp - 0x51], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x14003c895
mov qword [rbp - 0x49], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x59]
test rcx, rcx
je 0x14003c8b0
mov qword [rbp - 0x59], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x41]
test rcx, rcx
je 0x14003c8cb
mov qword [rbp - 0x41], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
jmp 0x14003cec3
mov dword [rsp + 0x38], esi
mov qword [rsp + 0x30], rsi
mov eax, 3
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], eax
xor r9d, r9d
xor r8d, r8d
lea edx, [rax + 7]
mov rcx, qword [rbp - 0x59]
call qword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
jns 0x14003c9ae
mov al, byte [rbp - 0x11]
mov byte [rbx], al
movups xmm0, xmmword [rbp - 9]
movups xmmword [rbx + 8], xmm0
movups xmm1, xmmword [rbp + 7]
movups xmmword [rbx + 0x18], xmm1
mov qword [rbp + 7], rsi
mov qword [rbp + 0xf], r14
mov word [rbp - 9], si
lea rcx, [rbp - 0x31]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
test eax, eax
jns 0x14003c93d
mov edx, 0x75d25d
mov ecx, eax
call fcn.140023654
nop
mov rcx, qword [rbp - 0x51]
test rcx, rcx
je 0x14003c958
mov qword [rbp - 0x51], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x14003c973
mov qword [rbp - 0x49], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x59]
test rcx, rcx
je 0x14003c98e
mov qword [rbp - 0x59], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x41]
test rcx, rcx
je 0x14003c9a9
mov qword [rbp - 0x41], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
jmp 0x14003cec3
mov rcx, qword [rbp - 0x59]
mov rax, qword [rcx]
lea rdx, [rbp - 0x49]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rsi
mov r9d, 0x30
lea r8, [0x1402b4e48]
lea rdx, [0x1402b4e30]
mov rax, qword [rax + 0xa0]
call qword [case.0x14002a211.0]
test eax, eax
jns 0x14003ca99
mov al, byte [rbp - 0x11]
mov byte [rbx], al
movups xmm0, xmmword [rbp - 9]
movups xmmword [rbx + 8], xmm0
movups xmm1, xmmword [rbp + 7]
movups xmmword [rbx + 0x18], xmm1
mov qword [rbp + 7], rsi
mov qword [rbp + 0xf], r14
mov word [rbp - 9], si
lea rcx, [rbp - 0x31]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
test eax, eax
jns 0x14003ca28
mov edx, 0x75d25d
mov ecx, eax
call fcn.140023654
nop
mov rcx, qword [rbp - 0x51]
test rcx, rcx
je 0x14003ca43
mov qword [rbp - 0x51], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x14003ca5e
mov qword [rbp - 0x49], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x59]
test rcx, rcx
je 0x14003ca79
mov qword [rbp - 0x59], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x41]
test rcx, rcx
je 0x14003ca94
mov qword [rbp - 0x41], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
jmp 0x14003cec3
mov dword [rbp - 0x39], esi
mov rcx, qword [rbp - 0x49]
mov rax, qword [rcx]
lea rdx, [rbp - 0x39]
mov qword [rsp + 0x20], rdx
lea r9, [rbp - 0x51]
mov r8d, 1
or rdi, 0xffffffffffffffff
mov edx, edi
mov rax, qword [rax + 0x20]
call qword [case.0x14002a211.0]
test eax, eax
jns 0x14003cb7b
mov al, byte [rbp - 0x11]
mov byte [rbx], al
movups xmm0, xmmword [rbp - 9]
movups xmmword [rbx + 8], xmm0
movups xmm1, xmmword [rbp + 7]
movups xmmword [rbx + 0x18], xmm1
mov qword [rbp + 7], rsi
mov qword [rbp + 0xf], r14
mov word [rbp - 9], si
lea rcx, [rbp - 0x31]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
test eax, eax
jns 0x14003cb0a
mov edx, 0x75d25d
mov ecx, eax
call fcn.140023654
nop
mov rcx, qword [rbp - 0x51]
test rcx, rcx
je 0x14003cb25
mov qword [rbp - 0x51], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x14003cb40
mov qword [rbp - 0x49], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x59]
test rcx, rcx
je 0x14003cb5b
mov qword [rbp - 0x59], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x41]
test rcx, rcx
je 0x14003cb76
mov qword [rbp - 0x41], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
jmp 0x14003cec3
cmp dword [rbp - 0x39], esi
jne 0x14003cc31
mov al, byte [rbp - 0x11]
mov byte [rbx], al
movups xmm0, xmmword [rbp - 9]
movups xmmword [rbx + 8], xmm0
movups xmm1, xmmword [rbp + 7]
movups xmmword [rbx + 0x18], xmm1
mov qword [rbp + 7], rsi
mov qword [rbp + 0xf], r14
mov word [rbp - 9], si
lea rcx, [rbp - 0x31]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
test eax, eax
jns 0x14003cbc0
mov edx, 0x75d25d
mov ecx, eax
call fcn.140023654
nop
mov rcx, qword [rbp - 0x51]
test rcx, rcx
je 0x14003cbdb
mov qword [rbp - 0x51], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x14003cbf6
mov qword [rbp - 0x49], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x59]
test rcx, rcx
je 0x14003cc11
mov qword [rbp - 0x59], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x41]
test rcx, rcx
je 0x14003cc2c
mov qword [rbp - 0x41], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
jmp 0x14003cec3
mov rcx, qword [rbp - 0x51]
mov rax, qword [rcx]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
lea r9, [rbp - 0x31]
xor r8d, r8d
lea rdx, [0x1402b4ed0]
mov rax, qword [rax + 0x20]
call qword [case.0x14002a211.0]
test eax, eax
jns 0x14003cd0f
mov al, byte [rbp - 0x11]
mov byte [rbx], al
movups xmm0, xmmword [rbp - 9]
movups xmmword [rbx + 8], xmm0
movups xmm1, xmmword [rbp + 7]
movups xmmword [rbx + 0x18], xmm1
mov qword [rbp + 7], rsi
mov qword [rbp + 0xf], r14
mov word [rbp - 9], si
lea rcx, [rbp - 0x31]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
test eax, eax
jns 0x14003cc9e
mov edx, 0x75d25d
mov ecx, eax
call fcn.140023654
nop
mov rcx, qword [rbp - 0x51]
test rcx, rcx
je 0x14003ccb9
mov qword [rbp - 0x51], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x14003ccd4
mov qword [rbp - 0x49], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x59]
test rcx, rcx
je 0x14003ccef
mov qword [rbp - 0x59], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x41]
test rcx, rcx
je 0x14003cd0a
mov qword [rbp - 0x41], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
jmp 0x14003cec3
mov rdx, qword [rbp - 0x29]
lea rcx, [0x1402b4ee0]
call fcn.14023db0c
test eax, eax
jne 0x14003cdd4
mov al, byte [rbp - 0x11]
mov byte [rbx], al
movups xmm0, xmmword [rbp - 9]
movups xmmword [rbx + 8], xmm0
movups xmm1, xmmword [rbp + 7]
movups xmmword [rbx + 0x18], xmm1
mov qword [rbp + 7], rsi
mov qword [rbp + 0xf], r14
mov word [rbp - 9], si
lea rcx, [rbp - 0x31]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
test eax, eax
jns 0x14003cd63
mov edx, 0x75d25d
mov ecx, eax
call fcn.140023654
nop
mov rcx, qword [rbp - 0x51]
test rcx, rcx
je 0x14003cd7e
mov qword [rbp - 0x51], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x14003cd99
mov qword [rbp - 0x49], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x59]
test rcx, rcx
je 0x14003cdb4
mov qword [rbp - 0x59], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x41]
test rcx, rcx
je 0x14003cdcf
mov qword [rbp - 0x41], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
jmp 0x14003cec3
mov r8d, 1
lea rdx, [0x1402ae7a0]
lea rcx, [rbp - 9]
call fcn.140018284
mov rdx, qword [rbp - 0x29]
inc rdi
cmp word [rdx + rdi*2], si
jne 0x14003cdee
mov r8, rdi
lea rcx, [rbp - 9]
call fcn.14000c7ec
mov r8d, 1
lea rdx, [0x1402ae7a4]
lea rcx, [rbp - 9]
call fcn.14000c7ec
mov byte [rbp - 0x11], 1
mov byte [rbx], 1
movups xmm0, xmmword [rbp - 9]
movups xmmword [rbx + 8], xmm0
movups xmm1, xmmword [rbp + 7]
movups xmmword [rbx + 0x18], xmm1
mov qword [rbp + 7], rsi
mov qword [rbp + 0xf], r14
mov word [rbp - 9], si
lea rcx, [rbp - 0x31]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
test eax, eax
jns 0x14003ce57
mov edx, 0x75d25d
mov ecx, eax
call fcn.140023654
nop
mov rcx, qword [rbp - 0x51]
test rcx, rcx
je 0x14003ce72
mov qword [rbp - 0x51], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x14003ce8d
mov qword [rbp - 0x49], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x59]
test rcx, rcx
je 0x14003cea8
mov qword [rbp - 0x59], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
mov rcx, qword [rbp - 0x41]
test rcx, rcx
je 0x14003cec3
mov qword [rbp - 0x41], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x14002a211.0]
nop
lea rcx, [rbp - 9]
call fcn.14000c764
mov rax, rbx
mov rcx, qword [rbp + 0x37]
xor rcx, rsp
call fcn.14020ed60
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret