Function at 0x140021c40
Capabilities:
Connect to wmi namespace via wbemlocator

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x218
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x190], 0xfffffffffffffffe
mov rsi, rcx
mov rbx, qword [rcx]
cmp rbx, 2
jne 0x140021e59
xor ecx, ecx
xor edx, edx
call sub.ole32.dll_CoInitializeEx
mov edi, eax
cmp eax, 2
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x50], 0
mov qword [rbp + 0x60], 0
setb byte [rbp + 0x70]
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], 0
xor ecx, ecx
mov edx, 0xffffffff
xor r8d, r8d
xor r9d, r9d
call sub.ole32.dll_CoInitializeSecurity
test eax, eax
js 0x140021e86
lea rax, [rbp + 0x48]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [rbp + 0xd0], xmm2
movups xmmword [rbp + 0xc0], xmm1
movups xmmword [rbp + 0xb0], xmm0
mov qword [rbp + 0xa8], 0
mov qword [rbp + 0x150], 0
lea rax, [rbp + 0x150]
mov qword [rsp + 0x20], rax
lea rcx, [0x1401f1f40]
lea r9, [0x1401f1f50]
xor edx, edx
mov r8d, 1
call sub.ole32.dll_CoCreateInstance
test eax, eax
js 0x140021e9e
lea rax, [rbp + 0xb0]
mov rcx, qword [rbp + 0x150]
mov qword [rbp + 0xb0], rcx
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [rbp - 0x28], xmm0
movups xmmword [rbp - 0x18], xmm1
movups xmmword [rbp - 8], xmm2
mov qword [rbp - 0x30], 1
lea rcx, [rbp + 0x150]
lea rdx, [rbp - 0x30]
call fcn.140022990
mov ebx, 2
cmp dword [rbp + 0x150], 2
je 0x140021f96
movups xmm0, xmmword [rbp + 0x150]
movups xmm1, xmmword [rbp + 0x160]
movups xmm2, xmmword [rbp + 0x170]
movaps xmmword [rbp + 0x120], xmm1
mov rax, qword [rbp + 0x180]
mov qword [rbp + 0x140], rax
movaps xmmword [rbp + 0x130], xmm2
movaps xmmword [rbp + 0x110], xmm0
mov rdi, qword [rbp + 0x120]
test rdi, rdi
je 0x140021efd
mov rcx, qword [rbp + 0x128]
mov dword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], 3
mov edx, 0xa
xor r8d, r8d
xor r9d, r9d
call sub.ole32.dll_CoSetProxyBlanket
test eax, eax
js 0x140021efd
mov rbx, qword [rbp + 0x110]
movups xmm0, xmmword [rbp + 0x118]
movaps xmmword [rbp + 0xe0], xmm0
movups xmm0, xmmword [rbp + 0x128]
movaps xmmword [rbp + 0xf0], xmm0
movups xmm0, xmmword [rbp + 0x138]
movaps xmmword [rbp + 0x100], xmm0
jmp 0x140021f96
movups xmm0, xmmword [rsi + 8]
movups xmm1, xmmword [rsi + 0x18]
movups xmm2, xmmword [rsi + 0x28]
movaps xmmword [rbp + 0x100], xmm2
movaps xmmword [rbp + 0xf0], xmm1
movaps xmmword [rbp + 0xe0], xmm0
mov qword [rsi], 2
jmp 0x140022075
mov ebx, 2
cmp edi, 1
ja 0x140021f96
call fcn.1401ddbdc
jmp 0x140021f96
cmp qword [rbp + 0xc8], 0
je 0x140021eba
mov rcx, qword [rbp + 0xd0]
test rcx, rcx
je 0x140021eba
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp + 0xc0]
cmp qword [rbp + 0xb8], 0
mov qword [rbp + 0xb8], 0
je 0x140021ee1
test rcx, rcx
je 0x140021ee1
mov rax, qword [rcx]
call qword [rax + 0x10]
mov ebx, 2
cmp byte [rbp + 0xd8], 0
je 0x140021f96
call fcn.1401ddbdc
jmp 0x140021f96
cmp qword [rbp + 0x130], 0
je 0x140021f23
mov rcx, qword [rbp + 0x138]
test rcx, rcx
je 0x140021f23
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x188], rdi
call rax
test rdi, rdi
je 0x140021f48
mov rcx, qword [rbp + 0x128]
test rcx, rcx
je 0x140021f48
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x188], 0
call rax
mov rcx, qword [rbp + 0x118]
cmp qword [rbp + 0x110], 0
mov qword [rbp + 0x110], 0
je 0x140021f7d
test rcx, rcx
je 0x140021f7d
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x188], 0
call rax
cmp byte [rbp + 0x140], 0
je 0x140021f96
mov qword [rbp + 0x188], 0
call fcn.1401ddbdc
movaps xmm0, xmmword [rbp + 0xe0]
movaps xmm1, xmmword [rbp + 0xf0]
movaps xmm2, xmmword [rbp + 0x100]
movups xmmword [rsi + 0x28], xmm2
movups xmmword [rsi + 0x18], xmm1
movups xmmword [rsi + 8], xmm0
movups xmm0, xmmword [rsi + 8]
movups xmm1, xmmword [rsi + 0x18]
movups xmm2, xmmword [rsi + 0x28]
movaps xmmword [rbp + 0x100], xmm2
movaps xmmword [rbp + 0xf0], xmm1
movaps xmmword [rbp + 0xe0], xmm0
mov qword [rsi], 2
movups xmm0, xmmword [rbp + 0x78]
movups xmm1, xmmword [rbp + 0x88]
movups xmm2, xmmword [rbp + 0x98]
movups xmmword [rsi + 8], xmm0
movups xmmword [rsi + 0x18], xmm1
movups xmmword [rsi + 0x28], xmm2
cmp rbx, 2
jne 0x140022075
mov qword [rbp + 0x150], 2
movups xmm0, xmmword [rbp + 0x78]
movups xmm1, xmmword [rbp + 0x88]
movups xmm2, xmmword [rbp + 0x98]
movups xmmword [rbp + 0x158], xmm0
movups xmmword [rbp + 0x178], xmm2
movups xmmword [rbp + 0x168], xmm1
mov rax, qword [rbp + 0x150]
mov qword [rsi], rax
mov rax, qword [rbp + 0x158]
mov qword [rsi + 8], rax
mov rax, qword [rbp + 0x180]
mov qword [rsi + 0x30], rax
movups xmm0, xmmword [rbp + 0x160]
movups xmmword [rsi + 0x10], xmm0
movups xmm0, xmmword [rbp + 0x170]
movups xmmword [rsi + 0x20], xmm0
cmp dword [rsi], 2
jne 0x1400220da
jmp 0x14002210d
mov qword [rbp + 8], rbx
movaps xmm0, xmmword [rbp + 0xe0]
movaps xmm1, xmmword [rbp + 0xf0]
movaps xmm2, xmmword [rbp + 0x100]
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm1
movups xmmword [rbp + 0x30], xmm2
lea rcx, [rbp + 0x150]
lea rdx, [rbp + 8]
call fcn.140022b00
mov rax, qword [rbp + 0x180]
mov qword [rsi + 0x30], rax
movups xmm0, xmmword [rbp + 0x150]
movups xmm1, xmmword [rbp + 0x160]
movups xmm2, xmmword [rbp + 0x170]
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
cmp dword [rsi], 2
je 0x14002210d
lea rcx, [rbp + 0x150]
mov rdx, rsi
xor r8d, r8d
call fcn.140022c90
cmp dword [rbp + 0x154], 2
je 0x14002210d
movss xmm0, dword [rbp + 0x150]
movss dword [rsi + 0x58], xmm0
ucomiss xmm0, dword [rsi + 0x5c]
jbe 0x14002210d
movss dword [rsi + 0x5c], xmm0
add rsp, 0x218
pop rbx
pop rdi
pop rsi
pop rbp
ret