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

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xc0
mov rsi, rcx
xor r13d, r13d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitializeEx]
mov ebx, eax
test eax, eax
jns 0x140041730
lea rdx, str.Failed_to_initialize_COM_library._Error_code__0x
lea rcx, [0x1400e77e0]
call fcn.140049620
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
mov ecx, dword [rdx + rax + 0x18]
and ecx, 0xfffff9ff
bts ecx, 0xb
mov dword [rdx + rax + 0x18], ecx
mov edx, ebx
mov rcx, rax
call fcn.140045d90
mov rcx, rax
call fcn.140049580
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov qword [rsi + 0x10], 4
mov qword [rsi + 0x18], 0xf
mov eax, dword [str.NULL]
mov dword [rsi], eax
mov byte [rsi + 4], r13b
mov rax, rsi
mov rbx, qword [rsp + 0x100]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov qword [rsp + 0x40], r13
mov dword [rsp + 0x38], r13d
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], r13d
xor r9d, r9d
xor r8d, r8d
mov r14, 0xffffffffffffffff
mov edx, r14d
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitializeSecurity]
mov ebx, eax
test eax, eax
jns 0x1400417b3
lea rdx, str.Failed_to_initialize_security._Error_code__0x
lea rcx, [0x1400e77e0]
call fcn.140049620
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
mov ecx, dword [rdx + rax + 0x18]
and ecx, 0xfffff9ff
bts ecx, 0xb
mov dword [rdx + rax + 0x18], ecx
mov edx, ebx
mov rcx, rax
call fcn.140045d90
mov rcx, rax
call fcn.140049580
call qword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x1400416f0
mov qword [rbp - 0x49], r13
lea rax, [rbp - 0x49]
mov qword [rsp + 0x20], rax
lea r9, [0x1400a1908]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x1400a1918]
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov ebx, eax
test eax, eax
jns 0x140041802
lea rdx, str.Failed_to_create_IWbemLocator_object.
lea rcx, [0x1400e77e0]
call fcn.140049620
mov rcx, rax
lea rdx, str._Err_code__0x
jmp 0x140041778
mov qword [rbp + 0x7f], r13
mov rax, qword [rbp - 0x49]
mov rcx, qword [rax]
mov rdi, qword [rcx + 0x18]
mov ecx, 0x18
call fcn.14004cd94
mov rbx, rax
mov qword [rbp + 0x77], rax
test rax, rax
je 0x14004184d
mov qword [rax + 8], r13
mov dword [rax + 0x10], 1
lea rcx, str.ROOTCIMV2
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rbx], rax
test rax, rax
je 0x140041d1c
jmp 0x140041850
mov rbx, r13
mov qword [rbp - 9], rbx
test rbx, rbx
je 0x140041d27
lea rax, [rbp + 0x7f]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rbx]
mov rcx, qword [rbp - 0x49]
call rdi
mov edi, eax
mov ecx, r14d
lock xadd dword [rbx + 0x10], ecx
cmp ecx, 1
jne 0x1400418c8
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400418a9
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r13
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1400418bb
call fcn.14004cd1c
mov qword [rbx + 8], r13
mov edx, 0x18
mov rcx, rbx
call fcn.14004cd1c
test edi, edi
jns 0x140041941
lea rdx, str.Could_not_connect._Error_code__0x
lea rcx, [0x1400e77e0]
call fcn.140049620
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
mov ecx, dword [rdx + rax + 0x18]
and ecx, 0xfffff9ff
bts ecx, 0xb
mov dword [rdx + rax + 0x18], ecx
mov edx, edi
mov rcx, rax
call fcn.140045d90
mov rcx, rax
call fcn.140049580
mov rcx, qword [rbp - 0x49]
mov rax, qword [rcx]
call qword [rax + 0x10]
call qword [sym.imp.ole32.dll_CoUninitialize]
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov qword [rsi + 0x10], 4
mov qword [rsi + 0x18], 0xf
mov eax, dword [str.NULL]
mov dword [rsi], eax
mov byte [rsi + 4], 0
jmp 0x140041712
mov dword [rsp + 0x38], r13d
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0xa]
mov rcx, qword [rbp + 0x7f]
call qword [sym.imp.ole32.dll_CoSetProxyBlanket]
mov ebx, eax
test eax, eax
jns 0x1400419c2
lea rdx, str.Could_not_set_proxy_blanket._Error_code__0x
lea rcx, [0x1400e77e0]
call fcn.140049620
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
mov ecx, dword [rdx + rax + 0x18]
and ecx, 0xfffff9ff
bts ecx, 0xb
mov dword [rdx + rax + 0x18], ecx
mov edx, ebx
mov rcx, rax
call fcn.140045d90
mov rcx, rax
call fcn.140049580
mov rcx, qword [rbp + 0x7f]
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x14004190a
mov qword [rbp - 0x41], r13
mov rax, qword [rbp + 0x7f]
mov rcx, qword [rax]
mov r12, qword [rcx + 0xa0]
mov ecx, 0x18
call fcn.14004cd94
mov rbx, rax
mov qword [rbp + 0x77], rax
test rax, rax
je 0x140041a06
mov qword [rax + 8], r13
mov dword [rax + 0x10], 1
lea rcx, str.SELECT__FROM_Win32_OperatingSystem
call fcn.14004f200
mov qword [rbx], rax
jmp 0x140041a09
mov rbx, r13
mov qword [rbp - 1], rbx
test rbx, rbx
je 0x140041d27
mov r15, qword [rbx]
mov ecx, 0x18
call fcn.14004cd94
mov rdi, rax
mov qword [rbp + 0x77], rax
test rax, rax
je 0x140041a4b
mov qword [rax + 8], r13
mov dword [rax + 0x10], 1
lea rcx, [0x1400b32e4]
call fcn.14004f200
mov qword [rdi], rax
jmp 0x140041a4e
mov rdi, r13
mov qword [rbp + 7], rdi
test rdi, rdi
je 0x140041d32
lea rax, [rbp - 0x41]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r13
mov r9d, 0x30
mov r8, r15
mov rdx, qword [rdi]
mov rcx, qword [rbp + 0x7f]
call r12
mov r15d, eax
mov ecx, r14d
lock xadd dword [rdi + 0x10], ecx
cmp ecx, 1
jne 0x140041abd
mov rcx, qword [rdi]
test rcx, rcx
je 0x140041a9d
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rdi], r13
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x140041aaf
call fcn.14004cd1c
mov qword [rdi + 8], r13
mov edx, 0x18
mov rcx, rdi
call fcn.14004cd1c
nop
mov eax, r14d
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x140041afa
mov rcx, qword [rbx]
test rcx, rcx
je 0x140041adb
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r13
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140041aed
call fcn.14004cd1c
mov qword [rbx + 8], r13
mov edx, 0x18
mov rcx, rbx
call fcn.14004cd1c
test r15d, r15d
jns 0x140041b5c
lea rdx, str.Query_for_operating_system_failed.
lea rcx, [0x1400e77e0]
call fcn.140049620
mov rcx, rax
lea rdx, str._Error_code__0x
call fcn.140049620
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
mov ecx, dword [rdx + rax + 0x18]
and ecx, 0xfffff9ff
bts ecx, 0xb
mov dword [rdx + rax + 0x18], ecx
mov edx, r15d
mov rcx, rax
call fcn.140045d90
mov rcx, rax
call fcn.140049580
mov rcx, qword [rbp + 0x7f]
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x14004190a
mov qword [rbp - 0x39], r13
mov dword [rbp + 0x6f], r13d
lea rbx, str.NULL
mov rcx, qword [rbp - 0x41]
test rcx, rcx
je 0x140041be5
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rcx]
lea rdx, [rbp + 0x6f]
mov qword [rsp + 0x20], rdx
lea r9, [rbp - 0x39]
mov r8d, 1
mov edx, r14d
call qword [rax + 0x20]
cmp dword [rbp + 0x6f], 0
je 0x140041be5
mov rcx, qword [rbp - 0x39]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r13
lea r9, [rbp + 0xf]
xor r8d, r8d
lea rdx, str.SerialNumber
call qword [rax + 0x20]
mov rbx, qword [rbp + 0x17]
lea rcx, [rbp + 0xf]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
mov rcx, qword [rbp - 0x39]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x41]
test rcx, rcx
jne 0x140041b80
mov rcx, qword [rbp + 0x7f]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x49]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x41]
mov rax, qword [rcx]
call qword [rax + 0x10]
call qword [sym.imp.ole32.dll_CoUninitialize]
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_VariantInit]
mov r8d, eax
xorps xmm0, xmm0
movups xmmword [rbp - 0x31], xmm0
mov qword [rbp - 0x21], r13
mov qword [rbp - 0x19], r13
mov rdx, rbx
lea rcx, [rbp - 0x31]
call fcn.140049f60
nop
mov edi, dword [rbp - 0x21]
lea r8, [rbp - 0x31]
cmp qword [rbp - 0x19], 8
cmovae r8, qword [rbp - 0x31]
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r13
lea r9d, [rdi + 1]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movsxd rbx, eax
mov rcx, rbx
call fcn.14004cdd0
mov r15, rax
lea r8, [rbp - 0x31]
cmp qword [rbp - 0x19], 8
cmovae r8, qword [rbp - 0x31]
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rax
lea r9d, [rdi + 1]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov qword [rsi + 0x10], r13
mov qword [rsi + 0x18], r13
nop
inc r14
cmp byte [r15 + r14], 0
jne 0x140041cb0
mov r8, r14
mov rdx, r15
mov rcx, rsi
call fcn.14004a220
mov rcx, r15
call fcn.14004cd1c
nop
mov rdx, qword [rbp - 0x19]
cmp rdx, 8
jb 0x140041712
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x31]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140041d0c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140041d16
call fcn.14004cd1c
jmp 0x140041712
call fcn.1400620f8
nop
mov ecx, 0x8007000e
call fcn.14004f1f0
nop
mov ecx, 0x8007000e
call fcn.14004f1f0
nop
mov ecx, 0x8007000e
call fcn.14004f1f0
int3