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

Disassembly:
push rbp
push rdi
push r14
lea rbp, [rsp - 0x1310]
mov eax, 0x1410
call fcn.1401b7a40
sub rsp, rax
mov qword [rbp - 0x68], 0xfffffffffffffffe
mov qword [rsp + 0x1438], rbx
mov qword [rsp + 0x1440], rsi
mov rax, qword [0x1402ac7a8]
xor rax, rsp
mov qword [rbp + 0x1300], rax
mov rsi, rcx
xor edx, edx
mov r8d, 0x104
lea rcx, [rbp - 0x30]
call fcn.1401bcf80
xor edx, edx
mov r8d, 0x104
lea rcx, [rbp + 0xe0]
call fcn.1401bcf80
xor edx, edx
mov r8d, 0x104
lea rcx, [rbp + 0x1f0]
call fcn.1401bcf80
xor edx, edx
mov r8d, 0x800
lea rcx, [rbp + 0x300]
call fcn.1401bcf80
xor edx, edx
mov r8d, 0x800
lea rcx, [rbp + 0xb00]
call fcn.1401bcf80
xor r14d, r14d
mov qword [rsp + 0x58], r14
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
lea r9, [0x1401fdcd0]
xor edx, edx
lea r8d, [r14 + 1]
lea rcx, [0x1401fdce0]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x140020e1f
mov qword [rsp + 0x50], r14
lea ecx, [r14 + 0x18]
call fcn.14003561c
mov rbx, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14002098c
mov qword [rax + 8], r14
mov dword [rax + 0x10], 1
lea rcx, str.ROOTCIMV2
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rbx], rax
test rax, rax
je 0x140020e53
jmp 0x14002098f
mov rbx, r14
mov qword [rbp - 0x60], rbx
test rbx, rbx
je 0x140020e5e
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r14
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rbx]
call qword [rax + 0x18]
mov edi, eax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
cmp ecx, 1
jne 0x140020a0f
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400209f0
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140020a02
call fcn.140035664
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.1400356ac
test edi, edi
js 0x140020a51
mov dword [rsp + 0x38], r14d
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0xa]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
jns 0x140020a5b
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x58]
jmp 0x140020e19
mov ecx, 0x18
call fcn.14003561c
mov rbx, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x140020a8e
mov qword [rax + 8], r14
mov dword [rax + 0x10], 1
lea rcx, str.Win32_PnPEntity
call fcn.1401bb6e0
mov qword [rbx], rax
jmp 0x140020a91
mov rbx, r14
mov qword [rbp - 0x58], rbx
test rbx, rbx
je 0x140020e69
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx]
lea rdx, [rsp + 0x78]
mov qword [rsp + 0x20], rdx
xor r9d, r9d
lea r8d, [r9 + 1]
mov rdx, qword [rbx]
call qword [rax + 0x90]
nop
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x140020b00
mov rcx, qword [rbx]
test rcx, rcx
je 0x140020ae1
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140020af3
call fcn.140035664
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.1400356ac
mov dword [rsp + 0x68], r14d
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
lea rdx, [rsp + 0x68]
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x70]
mov edx, 0x2710
mov r8d, 1
call qword [rax + 0x20]
cmp eax, 1
je 0x140020def
test eax, eax
jne 0x140020b00
lea ecx, [rax + 0x18]
call fcn.14003561c
mov rbx, rax
mov qword [rbp - 0x50], rax
test rax, rax
je 0x140020b67
mov qword [rax + 8], r14
mov dword [rax + 0x10], 1
lea rcx, str.DeviceID
call fcn.1401bb6e0
mov qword [rbx], rax
jmp 0x140020b6a
mov rbx, r14
mov qword [rbp - 0x48], rbx
test rbx, rbx
je 0x140020e48
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
lea r9, [rbp - 0x80]
xor r8d, r8d
mov rdx, qword [rbx]
call qword [rax + 0x20]
nop
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x140020bd6
mov rcx, qword [rbx]
test rcx, rcx
je 0x140020bb7
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140020bc9
call fcn.140035664
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.1400356ac
cmp word [rbp - 0x80], 1
je 0x140020c19
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x104
lea rax, [rbp + 0x300]
mov qword [rsp + 0x20], rax
mov r9d, 0xffffffff
mov r8, qword [rbp - 0x78]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rcx, [rbp - 0x80]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp byte [rbp + 0x300], 0
je 0x140020b00
mov r8d, 7
lea rdx, str.DISPLAY
lea rcx, [rbp + 0x300]
call fcn.1401ca640
test eax, eax
jne 0x140020b00
lea rdx, str.DEFAULT_MONITOR_
lea rcx, [rbp + 0x300]
call fcn.1401bc204
test rax, rax
jne 0x140020b00
lea ecx, [rax + 0x18]
call fcn.14003561c
mov rbx, rax
mov qword [rbp - 0x40], rax
test rax, rax
je 0x140020c93
mov qword [rax + 8], r14
mov dword [rax + 0x10], 1
lea rcx, str.Manufacturer
call fcn.1401bb6e0
mov qword [rbx], rax
jmp 0x140020c96
mov rbx, r14
mov qword [rbp - 0x38], rbx
test rbx, rbx
je 0x140020e74
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
lea r9, [rbp - 0x80]
xor r8d, r8d
mov rdx, qword [rbx]
call qword [rax + 0x20]
nop
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x140020d02
mov rcx, qword [rbx]
test rcx, rcx
je 0x140020ce3
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140020cf5
call fcn.140035664
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.1400356ac
cmp word [rbp - 0x80], 1
je 0x140020d45
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], reloc.OLEAUT32.dll_SetErrorInfo
lea rax, [rbp + 0xb00]
mov qword [rsp + 0x20], rax
mov r9d, 0xffffffff
mov r8, qword [rbp - 0x78]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rcx, [rbp - 0x80]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
movzx eax, byte [rbp + 0x300]
mov ecx, eax
cmp al, 0x28
cmove ecx, r14d
mov byte [rbp + 0x300], cl
lea r8, [rbp + 0x300]
mov edx, 0x104
lea rcx, [rbp - 0x30]
call fcn.1401c97bc
lea r8, [rbp + 0x1f0]
lea rdx, [rbp + 0xe0]
lea rcx, [rbp - 0x30]
call fcn.140020e80
lea r8, str.Monitor:
mov edx, 0x800
mov rcx, rsi
call fcn.1401c99f4
lea r8, [rbp + 0xe0]
mov edx, 0x800
mov rcx, rsi
call fcn.1401c99f4
lea r8, str._serial:
mov edx, 0x800
mov rcx, rsi
call fcn.1401c99f4
lea r8, [rbp + 0x1f0]
mov edx, 0x800
mov rcx, rsi
call fcn.1401c99f4
lea r8, [0x14026a824]
mov edx, 0x800
mov rcx, rsi
call fcn.1401c99f4
jmp 0x140020b00
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140020dff
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x140020e0f
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140020e1f
mov rax, qword [rcx]
call qword [rax + 0x10]
xor eax, eax
mov rcx, qword [rbp + 0x1300]
xor rcx, rsp
call fcn.1401b6fc0
lea r11, [rsp + 0x1410]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
mov ecx, 0x8007000e
call fcn.1401bb6d0
nop
mov ecx, 0x8007000e
call fcn.1401bb6d0
nop
mov ecx, 0x8007000e
call fcn.1401bb6d0
int3
mov ecx, 0x8007000e
call fcn.1401bb6d0
int3
mov ecx, 0x8007000e
call fcn.1401bb6d0
int3