Function at 0x14004c280
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, 0xb0
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 0x14004c330
lea rdx, str.Failed_to_initialize_COM_library._Error_code__0x
lea rcx, [0x1400d3280]
call fcn.140054010
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.140051030
mov rcx, rax
call fcn.140053f70
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 + 0xf0]
add rsp, 0xb0
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 0x14004c3b3
lea rdx, str.Failed_to_initialize_security._Error_code__0x
lea rcx, [0x1400d3280]
call fcn.140054010
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.140051030
mov rcx, rax
call fcn.140053f70
call qword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x14004c2f0
mov qword [rbp - 0x39], r13
lea rax, [rbp - 0x39]
mov qword [rsp + 0x20], rax
lea r9, [0x14008cd30]
xor edx, edx
mov r8d, 1
lea rcx, [0x14008cd40]
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov ebx, eax
test eax, eax
jns 0x14004c404
lea rdx, str.Failed_to_create_IWbemLocator_object.
lea rcx, [0x1400d3280]
call fcn.140054010
mov rcx, rax
lea rdx, str._Err_code__0x
jmp 0x14004c378
mov qword [rbp + 0x7f], r13
mov rax, qword [rbp - 0x39]
mov rcx, qword [rax]
mov rdi, qword [rcx + 0x18]
mov ecx, 0x18
call fcn.140057db4
mov rbx, rax
mov qword [rbp + 0x77], rax
test rax, rax
je 0x14004c44f
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 0x14004c91c
jmp 0x14004c452
mov rbx, r13
mov qword [rbp + 0x77], rbx
test rbx, rbx
je 0x14004c927
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 - 0x39]
call rdi
mov edi, eax
mov ecx, r14d
lock xadd dword [rbx + 0x10], ecx
cmp ecx, 1
jne 0x14004c4ca
mov rcx, qword [rbx]
test rcx, rcx
je 0x14004c4ab
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r13
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14004c4bd
call fcn.140057d3c
mov qword [rbx + 8], r13
mov edx, 0x18
mov rcx, rbx
call fcn.140057d3c
test edi, edi
jns 0x14004c543
lea rdx, str.Could_not_connect._Error_code__0x
lea rcx, [0x1400d3280]
call fcn.140054010
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.140051030
mov rcx, rax
call fcn.140053f70
mov rcx, qword [rbp - 0x39]
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 0x14004c312
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
mov edx, 0xa
mov rcx, qword [rbp + 0x7f]
call qword [sym.imp.ole32.dll_CoSetProxyBlanket]
mov ebx, eax
test eax, eax
jns 0x14004c5c5
lea rdx, str.Could_not_set_proxy_blanket._Error_code__0x
lea rcx, [0x1400d3280]
call fcn.140054010
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.140051030
mov rcx, rax
call fcn.140053f70
mov rcx, qword [rbp + 0x7f]
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x14004c50c
mov qword [rbp - 0x31], r13
mov rax, qword [rbp + 0x7f]
mov rcx, qword [rax]
mov r12, qword [rcx + 0xa0]
mov ecx, 0x18
call fcn.140057db4
mov rbx, rax
mov qword [rbp + 0x77], rax
test rax, rax
je 0x14004c609
mov qword [rax + 8], r13
mov dword [rax + 0x10], 1
lea rcx, str.SELECT__FROM_Win32_OperatingSystem
call fcn.140059a40
mov qword [rbx], rax
jmp 0x14004c60c
mov rbx, r13
mov qword [rbp + 0x77], rbx
test rbx, rbx
je 0x14004c927
mov r15, qword [rbx]
mov ecx, 0x18
call fcn.140057db4
mov rdi, rax
mov qword [rbp + 7], rax
test rax, rax
je 0x14004c64e
mov qword [rax + 8], r13
mov dword [rax + 0x10], 1
lea rcx, [0x14009b574]
call fcn.140059a40
mov qword [rdi], rax
jmp 0x14004c651
mov rdi, r13
mov qword [rbp + 7], rdi
test rdi, rdi
je 0x14004c932
lea rax, [rbp - 0x31]
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 0x14004c6c0
mov rcx, qword [rdi]
test rcx, rcx
je 0x14004c6a0
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rdi], r13
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x14004c6b2
call fcn.140057d3c
mov qword [rdi + 8], r13
mov edx, 0x18
mov rcx, rdi
call fcn.140057d3c
nop
mov eax, r14d
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x14004c6fd
mov rcx, qword [rbx]
test rcx, rcx
je 0x14004c6de
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r13
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14004c6f0
call fcn.140057d3c
mov qword [rbx + 8], r13
mov edx, 0x18
mov rcx, rbx
call fcn.140057d3c
test r15d, r15d
jns 0x14004c75f
lea rdx, str.Query_for_operating_system_failed.
lea rcx, [0x1400d3280]
call fcn.140054010
mov rcx, rax
lea rdx, str._Error_code__0x
call fcn.140054010
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.140051030
mov rcx, rax
call fcn.140053f70
mov rcx, qword [rbp + 0x7f]
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x14004c50c
mov qword [rbp - 0x29], r13
mov dword [rbp + 0x6f], r13d
lea rbx, str.NULL
mov rcx, qword [rbp - 0x31]
test rcx, rcx
je 0x14004c7e5
nop word [rax + rax]
mov rax, qword [rcx]
lea rdx, [rbp + 0x6f]
mov qword [rsp + 0x20], rdx
lea r9, [rbp - 0x29]
mov r8d, 1
mov edx, r14d
call qword [rax + 0x20]
cmp dword [rbp + 0x6f], 0
je 0x14004c7e5
mov rcx, qword [rbp - 0x29]
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 - 0x29]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x31]
test rcx, rcx
jne 0x14004c780
mov rcx, qword [rbp + 0x7f]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x39]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x31]
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 - 0x21], xmm0
mov qword [rbp - 0x11], r13
mov qword [rbp - 9], r13
mov rdx, rbx
lea rcx, [rbp - 0x21]
call fcn.140054940
nop
mov edi, dword [rbp - 0x11]
lea r8, [rbp - 0x21]
cmp qword [rbp - 9], 7
cmova r8, qword [rbp - 0x21]
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.140057df0
mov r15, rax
lea r8, [rbp - 0x21]
cmp qword [rbp - 9], 7
cmova r8, qword [rbp - 0x21]
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 0x14004c8b0
mov r8, r14
mov rdx, r15
mov rcx, rsi
call fcn.140054d70
mov rcx, r15
call fcn.140057d3c
nop
mov rdx, qword [rbp - 9]
cmp rdx, 7
jbe 0x14004c312
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004c90c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004c916
call fcn.140057d3c
jmp 0x14004c312
call fcn.14006bb30
nop
mov ecx, 0x8007000e
call fcn.140059a30
nop
mov ecx, 0x8007000e
call fcn.140059a30
nop
mov ecx, 0x8007000e
call fcn.140059a30
int3