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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x100]
sub rsp, 0x200
mov rax, qword [0x14001e040]
xor rax, rsp
mov qword [rbp + 0xf0], rax
xor r12d, r12d
mov dword [rsp + 0x50], r12d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitializeEx]
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
mov esi, 0xffffffff
mov edx, esi
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitializeSecurity]
mov qword [rbp - 0x60], r12
lea rax, [rbp - 0x60]
mov qword [rsp + 0x20], rax
lea r9, [0x1400169f8]
xor edx, edx
mov r8d, 1
lea rcx, [0x140016a08]
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov qword [rbp - 0x68], r12
mov rax, qword [rbp - 0x60]
mov rcx, qword [rax]
mov rdi, qword [rcx + 0x18]
mov ecx, 0x18
call fcn.140012e40
mov rbx, rax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1400051dc
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rax
mov qword [rbx + 8], r12
mov dword [rbx + 0x10], 1
lea rcx, [0x140016ca0]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rbx], rax
test rax, rax
je 0x140005a9d
jmp 0x1400051df
mov rbx, r12
mov qword [rsp + 0x50], rbx
test rbx, rbx
je 0x140005ab3
lea rax, [rbp - 0x68]
mov qword [rsp + 0x40], rax
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, qword [rbx]
mov rcx, qword [rbp - 0x60]
call rdi
nop
mov eax, esi
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x140005256
mov rcx, qword [rbx]
test rcx, rcx
je 0x140005237
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r12
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140005249
call fcn.140012f4c
mov qword [rbx + 8], r12
mov edx, 0x18
mov rcx, rbx
call fcn.140012f4c
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
mov edx, 0xa
mov rcx, qword [rbp - 0x68]
call qword [sym.imp.ole32.dll_CoSetProxyBlanket]
mov qword [rbp - 0x50], r12
mov rax, qword [rbp - 0x68]
mov rcx, qword [rax]
mov r15, qword [rcx + 0xa0]
mov ecx, 0x18
call fcn.140012e40
mov rbx, rax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1400052d6
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rax
mov qword [rbx + 8], r12
mov dword [rbx + 0x10], 1
lea rcx, str.SELECT__FROM_Win32_VideoController
call fcn.140012100
mov qword [rbx], rax
jmp 0x1400052d9
mov rbx, r12
mov qword [rsp + 0x50], rbx
test rbx, rbx
je 0x140005ab3
mov r14, qword [rbx]
mov ecx, 0x18
call fcn.140012e40
mov rdi, rax
mov qword [rsp + 0x58], rax
test rax, rax
je 0x140005329
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], rax
mov qword [rdi + 8], r12
mov dword [rdi + 0x10], 1
lea rcx, [0x140016cdc]
call fcn.140012100
mov qword [rdi], rax
jmp 0x14000532c
mov rdi, r12
mov qword [rsp + 0x58], rdi
test rdi, rdi
je 0x140005abe
lea rax, [rbp - 0x50]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r12
mov r9d, 0x30
mov r8, r14
mov rdx, qword [rdi]
mov rcx, qword [rbp - 0x68]
call r15
nop
mov eax, esi
lock xadd dword [rdi + 0x10], eax
cmp eax, 1
jne 0x140005399
mov rcx, qword [rdi]
test rcx, rcx
je 0x140005379
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rdi], r12
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x14000538b
call fcn.140012f4c
mov qword [rdi + 8], r12
mov edx, 0x18
mov rcx, rdi
call fcn.140012f4c
nop
mov eax, esi
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x1400053d5
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400053b6
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r12
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1400053c8
call fcn.140012f4c
mov qword [rbx + 8], r12
mov edx, 0x18
mov rcx, rbx
call fcn.140012f4c
mov qword [rbp - 0x58], r12
mov dword [rbp - 0x30], r12d
xor edx, edx
mov r8d, 0xe8
lea rcx, [rbp]
call sub.VCRUNTIME140.dll_memset
lea rax, [0x140016f68]
mov qword [rbp], rax
lea rcx, [rbp + 0x88]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
mov dword [rsp + 0x50], 1
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 8]
lea rcx, [rbp]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64__bool____ptr64]
nop
mov rax, qword [rbp]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rcx], rax
mov rax, qword [rbp]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rbp + rcx - 4], edx
lea rcx, [rbp + 8]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
lea rax, vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + 8], rax
mov qword [rbp + 0x70], r12
mov dword [rbp + 0x78], 4
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x1400059f1
mov rax, qword [rcx]
lea rdx, [rbp - 0x30]
mov qword [rsp + 0x20], rdx
lea r9, [rbp - 0x58]
mov r8d, 1
mov edx, esi
call qword [rax + 0x20]
cmp dword [rbp - 0x30], 0
je 0x1400059f1
mov rcx, qword [rbp - 0x58]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rbp - 0x48]
xor r8d, r8d
lea rdx, [0x140016ce0]
call qword [rax + 0x20]
test eax, eax
js 0x140005581
mov rdi, qword [rbp - 0x40]
mov ecx, 0x18
call fcn.140012e40
mov rbx, rax
mov qword [rsp + 0x58], rax
test rax, rax
je 0x140005514
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rax
mov qword [rbx + 8], r12
mov dword [rbx + 0x10], 1
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rbx], rax
test rax, rax
jne 0x140005517
test rdi, rdi
jne 0x140005aa8
jmp 0x140005517
mov rbx, r12
mov qword [rsp + 0x58], rbx
test rbx, rbx
je 0x140005a92
mov rax, qword [rbx + 8]
test rax, rax
jne 0x14000553a
mov rcx, qword [rbx]
call fcn.140011fe0
mov qword [rbx + 8], rax
mov rdx, rax
lea rcx, [rbp]
call fcn.140002e80
nop
lock xadd dword [rbx + 0x10], esi
cmp esi, 1
jne 0x140005581
mov rcx, qword [rbx]
test rcx, rcx
je 0x140005562
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r12
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140005574
call fcn.140012f4c
mov qword [rbx + 8], r12
mov edx, 0x18
mov rcx, rbx
call fcn.140012f4c
lea rcx, [rbp - 0x48]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
mov rcx, qword [rbp - 0x58]
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
movdqa xmm1, xmmword [0x1400175c0]
movdqu xmmword [rbp - 0x78], xmm1
mov byte [rsp + 0x78], 0
mov dword [rsp + 0x50], 5
movups xmmword [rsp + 0x60], xmm0
mov ebx, dword [rbp + 0x78]
mov eax, ebx
and al, 0x22
cmp al, 2
je 0x1400055e9
mov rax, qword [rbp + 0x48]
mov r8, qword [rax]
test r8, r8
je 0x1400055e9
mov rax, qword [rbp + 0x28]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x70]
cmovb r8, qword [rbp + 0x70]
sub r8, rdx
jmp 0x14000561a
test bl, 4
jne 0x140005610
mov rax, qword [rbp + 0x40]
mov rcx, qword [rax]
test rcx, rcx
je 0x140005610
mov rax, qword [rbp + 0x20]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x58]
movsxd r8, dword [rax]
sub r8, rdx
add r8, rcx
jmp 0x14000561a
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x140005634
lea rcx, [rsp + 0x78]
call fcn.140002b20
mov ebx, dword [rbp + 0x78]
movdqa xmm1, xmmword [0x1400175c0]
lea rcx, [rsp + 0x78]
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rbp - 0x70]
cmp rsi, 0xf
cmova rcx, rdi
mov r8, qword [rbp - 0x78]
cmp r8, 0x1f
jne 0x140005671
lea rdx, str.Microsoft_Basic_Display_Adapter
call sub.VCRUNTIME140.dll_memcmp
movdqa xmm1, xmmword [0x1400175c0]
test eax, eax
jne 0x140005671
mov r14b, 1
jmp 0x140005674
xor r14b, r14b
cmp rsi, 0xf
jbe 0x1400056b6
lea rdx, [rsi + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x1400056a3
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400059d3
mov rcx, rdi
call fcn.140012f4c
mov ebx, dword [rbp + 0x78]
movdqa xmm1, xmmword [0x1400175c0]
test r14b, r14b
jne 0x140005a15
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
movdqu xmmword [rbp - 0x18], xmm1
mov byte [rbp - 0x28], r14b
mov dword [rsp + 0x50], 0x13
movups xmmword [rsp + 0x60], xmm0
mov eax, ebx
and al, 0x22
cmp al, 2
je 0x140005705
mov rax, qword [rbp + 0x48]
mov r8, qword [rax]
test r8, r8
je 0x140005705
mov rax, qword [rbp + 0x28]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x70]
cmovb r8, qword [rbp + 0x70]
sub r8, rdx
jmp 0x140005736
test bl, 4
jne 0x14000572c
mov rax, qword [rbp + 0x40]
mov rcx, qword [rax]
test rcx, rcx
je 0x14000572c
mov rax, qword [rbp + 0x20]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x58]
movsxd r8, dword [rax]
sub r8, rdx
add r8, rcx
jmp 0x140005736
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x140005745
lea rcx, [rbp - 0x28]
call fcn.140002b20
nop
lea rdi, [rbp - 0x28]
mov r14, qword [rbp - 0x28]
mov r13, qword [rbp - 0x10]
cmp r13, 0xf
cmova rdi, r14
lea rsi, [rbp - 0x28]
cmova rsi, r14
mov r15, qword [rbp - 0x18]
add rsi, r15
lea rbx, [rbp - 0x28]
cmp r13, 0xf
cmova rbx, r14
cmp rbx, rsi
je 0x1400057a0
sub rdi, rbx
nop dword [rax]
movzx ecx, byte [rbx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov byte [rdi + rbx], al
inc rbx
cmp rbx, rsi
jne 0x140005780
mov r13, qword [rbp - 0x10]
mov r15, qword [rbp - 0x18]
mov r14, qword [rbp - 0x28]
lea rbx, [rbp - 0x28]
cmp r13, 0xf
cmova rbx, r14
cmp r15, 6
jb 0x14000580b
lea rdi, [r15 + rbx]
lea r8, [rdi - 5]
sub r8, rbx
mov edx, 0x76
mov rcx, rbx
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x14000580b
nop
cmp dword [rax], 0x61776d76
jne 0x1400057e0
cmp word [rax + 4], 0x6572
je 0x1400057fe
inc rax
lea r8, [rdi - 5]
sub r8, rax
mov edx, 0x76
mov rcx, rax
call sub.VCRUNTIME140.dll_memchr
test rax, rax
jne 0x1400057d0
jmp 0x14000580b
sub rax, rbx
cmp rax, 0xffffffffffffffff
jne 0x1400059e3
lea rbx, [rbp - 0x28]
cmp r13, 0xf
cmova rbx, r14
cmp r15, 0xa
jb 0x14000587c
lea rdi, [r15 + rbx]
lea r8, [rdi - 9]
sub r8, rbx
mov edx, 0x76
mov rcx, rbx
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x14000587c
movabs rsi, 0x626c617574726976
cmp qword [rax], rsi
jne 0x140005851
cmp word [rax + 8], 0x786f
je 0x14000586f
inc rax
lea r8, [rdi - 9]
sub r8, rax
mov edx, 0x76
mov rcx, rax
call sub.VCRUNTIME140.dll_memchr
test rax, rax
jne 0x140005844
jmp 0x14000587c
sub rax, rbx
cmp rax, 0xffffffffffffffff
jne 0x1400059e3
lea rbx, [rbp - 0x28]
cmp r13, 0xf
cmova rbx, r14
cmp r15, 7
jb 0x1400058f1
lea rdi, [r15 + rbx]
lea r8, [rdi - 6]
sub r8, rbx
mov edx, 0x76
mov rcx, rbx
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x1400058f1
nop dword [rax + rax]
cmp dword [rax], 0x74726976
jne 0x1400058c6
cmp word [rax + 4], 0x6175
jne 0x1400058c6
cmp byte [rax + 6], 0x6c
je 0x1400058e4
inc rax
lea r8, [rdi - 6]
sub r8, rax
mov edx, 0x76
mov rcx, rax
call sub.VCRUNTIME140.dll_memchr
test rax, rax
jne 0x1400058b0
jmp 0x1400058f1
sub rax, rbx
cmp rax, 0xffffffffffffffff
jne 0x1400059e3
lea rbx, [rbp - 0x28]
cmp r13, 0xf
cmova rbx, r14
cmp r15, 4
jb 0x140005953
lea rdi, [r15 + rbx]
lea r8, [rdi - 3]
sub r8, rbx
mov edx, 0x71
mov rcx, rbx
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x140005953
cmp dword [rax], 0x756d6571
je 0x140005946
inc rax
lea r8, [rdi - 3]
sub r8, rax
mov edx, 0x71
mov rcx, rax
call sub.VCRUNTIME140.dll_memchr
test rax, rax
jne 0x140005920
jmp 0x140005953
sub rax, rbx
cmp rax, 0xffffffffffffffff
jne 0x1400059e3
lea rbx, [rbp - 0x28]
cmp r13, 0xf
cmova rbx, r14
cmp r15, 4
jb 0x1400059a6
lea rdi, [r15 + rbx]
lea r8, [rdi - 3]
sub r8, rbx
mov edx, 0x76
mov rcx, rbx
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x1400059a6
cmp dword [rax], 0x786f6276
je 0x1400059da
inc rax
lea r8, [rdi - 3]
sub r8, rax
mov edx, 0x76
mov rcx, rax
call sub.VCRUNTIME140.dll_memchr
test rax, rax
jne 0x140005982
xor bl, bl
cmp r13, 0xf
jbe 0x140005a17
lea rdx, [r13 + 1]
mov rax, r14
cmp rdx, 0x1000
jb 0x1400059e7
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400059e7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
sub rax, rbx
cmp rax, 0xffffffffffffffff
je 0x1400059a6
mov bl, 1
jmp 0x1400059a8
mov rcx, r14
call fcn.140012f4c
jmp 0x140005a17
mov rcx, qword [rbp - 0x68]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x60]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x50]
mov rax, qword [rcx]
call qword [rax + 0x10]
call qword [sym.imp.ole32.dll_CoUninitialize]
mov bl, 1
mov rcx, qword [rbp]
movsxd rdx, dword [rcx + 4]
lea rax, vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rdx], rax
mov rcx, qword [rbp]
movsxd rdx, dword [rcx + 4]
lea r8d, [rdx - 0x88]
mov dword [rbp + rdx - 4], r8d
lea rcx, [rbp + 8]
call fcn.1400079f0
lea rcx, [rbp + 0x10]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x88]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
movzx eax, bl
mov rcx, qword [rbp + 0xf0]
xor rcx, rsp
call fcn.140012e20
lea r11, [rsp + 0x200]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x8007000e
call fcn.140011fd0
nop
mov ecx, 0x8007000e
call fcn.140011fd0
nop
mov ecx, 0x8007000e
call fcn.140011fd0
nop
mov ecx, 0x8007000e
call fcn.140011fd0
nop
mov ecx, 0x8007000e
call fcn.140011fd0
int3