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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x50]
sub rsp, 0x150
mov qword [rbp - 0x40], 0xfffffffffffffffe
mov qword [rsp + 0x190], rbx
mov r13, rdx
mov r14d, 0x80004005
lea rcx, [rbp - 0x30]
call fcn.140021c60
nop
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rcx, [rax + 0x18]
mov qword [rsp + 0x60], rcx
lea rsi, str.MEFirmwareVersion
mov r12d, 1
xor r15d, r15d
test rsi, 0xffffffffffff0000
jne 0x1400a77a5
movzx edi, si
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x1400a781c
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140001f70
jmp 0x1400a781c
mov ebx, dword [rcx - 0x10]
mov rdi, rsi
sub rdi, rcx
sar rdi, 1
mov edx, r12d
sub edx, dword [rcx - 8]
mov eax, dword [rcx - 0xc]
sub eax, 0x11
or eax, edx
jge 0x1400a77d5
mov edx, reloc.ATL100.DLL_Ordinal_17
lea rcx, [rsp + 0x60]
call fcn.140001c20
mov rcx, qword [rsp + 0x60]
movsxd rdx, dword [rcx - 0xc]
mov r9d, 0x22
add rdx, rdx
cmp rdi, rbx
ja 0x1400a77f3
lea r8, [rcx + rdi*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x1400a77fc
mov r8, rsi
call qword [sym.imp.MSVCR100.dll_memcpy_s]
mov rax, qword [rsp + 0x60]
cmp dword [rax - 0xc], 0x11
jl 0x1400a8071
mov dword [rax - 0x10], 0x11
mov rax, qword [rsp + 0x60]
mov word [rax + 0x22], r15w
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rcx, [rax + 0x18]
mov qword [rsp + 0x68], rcx
lea rsi, str.DebugInfoSearchEx
test rsi, 0xffffffffffff0000
jne 0x1400a786d
movzx edi, si
xor edx, edx
mov ecx, edi
call fcn.1400017e0
test rax, rax
je 0x1400a78e4
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.140001f70
jmp 0x1400a78e4
mov ebx, dword [rcx - 0x10]
mov rdi, rsi
sub rdi, rcx
sar rdi, 1
mov edx, r12d
sub edx, dword [rcx - 8]
mov eax, dword [rcx - 0xc]
sub eax, 0x11
or eax, edx
jge 0x1400a789d
mov edx, reloc.ATL100.DLL_Ordinal_17
lea rcx, [rsp + 0x68]
call fcn.140001c20
mov rcx, qword [rsp + 0x68]
movsxd rdx, dword [rcx - 0xc]
mov r9d, 0x22
add rdx, rdx
cmp rdi, rbx
ja 0x1400a78bb
lea r8, [rcx + rdi*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x1400a78c4
mov r8, rsi
call qword [sym.imp.MSVCR100.dll_memcpy_s]
mov rax, qword [rsp + 0x68]
cmp dword [rax - 0xc], 0x11
jl 0x1400a8066
mov dword [rax - 0x10], 0x11
mov rax, qword [rsp + 0x68]
mov word [rax + 0x22], r15w
mov r9, r13
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x68]
lea rcx, [rbp - 0x30]
call fcn.140021600
movzx edi, al
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
or r12, 0xffffffffffffffff
mov ecx, r12d
lock xadd dword [rdx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1400a7922
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400a7942
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test dil, dil
je 0x1400a794f
mov r14d, r15d
jmp 0x1400a8058
mov rdx, qword [0x14011e2f8]
mov r8d, dword [rdx - 0x10]
test r8d, r8d
je 0x1400a79ba
lea rcx, [rdx - 0x18]
mov rdi, qword [r13]
sub rdi, 0x18
cmp rcx, rdi
je 0x1400a79b2
cmp dword [rdi + 0x10], 0
jl 0x1400a79aa
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400a79aa
call fcn.140001b90
mov rbx, rax
lock xadd dword [rdi + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x1400a79a0
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rbx + 0x18]
mov qword [r13], rax
jmp 0x1400a79b2
mov rcx, r13
call fcn.140001e80
mov r14d, r15d
jmp 0x1400a8058
mov qword [rsp + 0x50], r15
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea r9, [0x1400e0938]
xor edx, edx
lea r8d, [rdx + 0x17]
lea rcx, [0x1400f07a0]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x1400a79fd
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400a79f8
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
jmp 0x1400a8058
mov qword [rsp + 0x58], r15
mov rbx, qword [rsp + 0x50]
mov ecx, 0x18
call fcn.1400cafcc
mov rdi, rax
mov qword [rbp + 0xa8], rax
test rax, rax
je 0x1400a7a4b
mov qword [rax + 8], r15
mov dword [rax + 0x10], 1
lea rcx, str.._rootcimv2
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rdi], rax
test rax, rax
jne 0x1400a7a4e
mov ecx, 0x8007000e
call fcn.1400cb6a0
int3
mov rdi, r15
mov qword [rbp - 0x38], rdi
test rdi, rdi
jne 0x1400a7a62
mov ecx, 0x8007000e
call fcn.1400cb6a0
nop
mov rax, qword [rbx]
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r15
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rdi]
mov rcx, rbx
call qword [rax + 0x18]
nop
mov eax, r12d
lock xadd dword [rdi + 0x10], eax
dec eax
jne 0x1400a7ac3
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400a7aad
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400a7abb
call sub.MSVCR100.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, rdi
call sub.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_
mov rcx, qword [rsp + 0x58]
test rcx, rcx
jne 0x1400a7ae3
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400a7ade
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
jmp 0x1400a8058
mov dword [rsp + 0x38], r15d
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0xa]
call qword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
jns 0x1400a7b38
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1400a7b22
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400a7b33
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
jmp 0x1400a8058
mov qword [rsp + 0x70], r15
mov rsi, qword [rsp + 0x58]
mov ecx, 0x18
call fcn.1400cafcc
mov rdi, rax
mov qword [rbp + 0xa8], rax
test rax, rax
je 0x1400a7b86
mov qword [rax + 8], r15
mov dword [rax + 0x10], 1
lea rcx, str.Select__From_Win32_ComputerSystem
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rdi], rax
test rax, rax
jne 0x1400a7b89
mov ecx, 0x8007000e
call fcn.1400cb6a0
int3
mov rdi, r15
mov qword [rbp - 0x48], rdi
test rdi, rdi
jne 0x1400a7b9d
mov ecx, 0x8007000e
call fcn.1400cb6a0
nop
mov ecx, 0x18
call fcn.1400cafcc
mov rbx, rax
mov qword [rbp + 0xa8], rax
test rax, rax
je 0x1400a7be1
mov qword [rax + 8], r15
mov dword [rax + 0x10], 1
lea rcx, [0x1400e0b18]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rbx], rax
test rax, rax
jne 0x1400a7be4
mov ecx, 0x8007000e
call fcn.1400cb6a0
int3
mov rbx, r15
mov qword [rbp - 0x58], rbx
test rbx, rbx
jne 0x1400a7bf8
mov ecx, 0x8007000e
call fcn.1400cb6a0
nop
mov rax, qword [rsi]
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], r15
mov r9d, Ordinal_49
mov r8, qword [rdi]
mov rdx, qword [rbx]
mov rcx, rsi
call qword [rax + 0xa0]
nop
mov eax, r12d
lock xadd dword [rbx + 0x10], eax
dec eax
jne 0x1400a7c51
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400a7c3a
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1400a7c48
call sub.MSVCR100.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, rbx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_
nop
mov eax, r12d
lock xadd dword [rdi + 0x10], eax
dec eax
jne 0x1400a7c81
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400a7c6b
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400a7c79
call sub.MSVCR100.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, rdi
call sub.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_
mov rcx, qword [rsp + 0x70]
test rcx, rcx
jne 0x1400a7cb2
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1400a7c9c
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400a7cad
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
jmp 0x1400a8058
mov qword [rsp + 0x78], r15
mov dword [rbp + 0xa0], r15d
mov rax, qword [rcx]
lea rdx, [rbp + 0xa0]
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x78]
mov esi, 1
mov r8d, esi
mov edx, r12d
call qword [rax + reloc.ATL100.DLL_Ordinal_32]
cmp qword [rsp + 0x78], 0
jne 0x1400a7d20
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400a7cf9
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1400a7d0a
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400a7d1b
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
jmp 0x1400a8058
lea rcx, [rbp - 0x78]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov rdi, qword [rsp + 0x78]
test rdi, rdi
jne 0x1400a7d89
lea rcx, [rbp - 0x78]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x1400a7d51
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400a7d62
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1400a7d73
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400a7d84
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
jmp 0x1400a8058
mov ecx, 0x18
call fcn.1400cafcc
mov rbx, rax
mov qword [rbp + 0xa8], rax
test rax, rax
je 0x1400a7dc9
mov qword [rax + 8], r15
mov dword [rax + 0x10], esi
lea rcx, str.OEMStringArray
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rbx], rax
test rax, rax
jne 0x1400a7dcc
mov ecx, 0x8007000e
call fcn.1400cb6a0
int3
mov rbx, r15
mov qword [rbp - 0x50], rbx
test rbx, rbx
jne 0x1400a7de0
mov ecx, 0x8007000e
call fcn.1400cb6a0
nop
mov rax, qword [rdi]
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
lea r9, [rbp - 0x78]
xor r8d, r8d
mov rdx, qword [rbx]
mov rcx, rdi
call qword [rax + reloc.ATL100.DLL_Ordinal_32]
test eax, eax
sets dil
mov eax, r12d
lock xadd dword [rbx + 0x10], eax
dec eax
jne 0x1400a7e33
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400a7e1d
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1400a7e2b
call sub.MSVCR100.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, rbx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_
test dil, dil
je 0x1400a7e8c
lea rcx, [rbp - 0x78]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x1400a7e54
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400a7e65
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1400a7e76
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400a7e87
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
jmp 0x1400a8058
mov r14d, r15d
cmp si, word [rbp - 0x78]
je 0x1400a8009
lea rdx, [rbp - 0x60]
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.OLEAUT32.dll_SafeArrayUnaccessData]
mov rdx, qword [rbp - 0x60]
mov rbx, qword [rdx + 0x20]
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rbp - 0x80], rdi
test rbx, rbx
je 0x1400a7f0b
test rbx, 0xffffffffffff0000
jne 0x1400a7ef8
movzx ebx, bx
xor edx, edx
mov ecx, ebx
call fcn.1400017e0
test rax, rax
je 0x1400a7f21
mov r8d, ebx
mov rdx, rax
lea rcx, [rbp - 0x80]
call fcn.140001f70
jmp 0x1400a7f1d
xor eax, eax
mov rcx, r12
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
dec rcx
jmp 0x1400a7f0e
mov ecx, r15d
mov r8d, ecx
mov rdx, rbx
lea rcx, [rbp - 0x80]
call fcn.140001e80
mov rdi, qword [rbp - 0x80]
lea rsi, [rdi - 0x18]
mov rbx, qword [r13]
sub rbx, 0x18
cmp rsi, rbx
je 0x1400a7f7e
cmp dword [rbx + 0x10], 0
jl 0x1400a7f6f
mov rax, qword [rbx]
cmp qword [rsi], rax
jne 0x1400a7f6f
mov rcx, rsi
call fcn.140001b90
mov rdi, rax
mov ecx, r12d
lock xadd dword [rbx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1400a7f65
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + 8]
lea rax, [rdi + 0x18]
mov qword [r13], rax
jmp 0x1400a7f7e
mov r8d, dword [rdi - 0x10]
mov rdx, rdi
mov rcx, r13
call fcn.140001e80
mov rdx, qword [r13]
lea rcx, [rdx - 0x18]
mov rdi, qword [0x14011e2f8]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x1400a7fe3
cmp dword [rdi + 0x10], 0
jl 0x1400a7fd3
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400a7fd3
call fcn.140001b90
mov rbx, rax
mov ecx, r12d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1400a7fc6
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rbx + 0x18]
mov qword [0x14011e2f8], rax
jmp 0x1400a7fe3
mov r8d, dword [rdx - 0x10]
lea rcx, [0x14011e2f8]
call fcn.140001e80
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.OLEAUT32.dll_SafeArrayGetElement]
nop
lock xadd dword [rsi + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x1400a8009
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 8]
nop
lea rcx, [rbp - 0x78]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x1400a8025
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400a8036
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1400a8047
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400a8058
mov rdx, qword [rcx]
call qword [rdx + Ordinal_17]
nop
lea rcx, [rbp - 0x30]
call fcn.140021ae0
mov eax, r14d
jmp 0x1400a807c
mov ecx, 0x80070057
call fcn.140001000
nop
mov ecx, 0x80070057
call fcn.140001000
nop
mov rbx, qword [rsp + 0x190]
add rsp, 0x150
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret