Function at 0x14004f850
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 - 0x27]
sub rsp, 0xc0
mov qword [rbp - 1], 0xfffffffffffffffe
mov qword [rsp + 0x100], rbx
mov rdi, rdx
xor r14d, r14d
mov qword [rbp - 0x39], r14
lea rax, [rbp - 0x39]
mov qword [rsp + 0x20], rax
lea r9, [0x1400f06d0]
xor edx, edx
lea r8d, [r14 + 1]
lea rcx, [0x1400f07a0]
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov r13d, eax
test eax, eax
js 0x14004fe72
mov ecx, r14d
mov qword [rbp - 0x49], rcx
cmp qword [rbp - 0x39], rcx
je 0x14004f98d
lea ecx, [r14 + 0x18]
call fcn.1400cafcc
mov rbx, rax
mov qword [rbp + 0x7f], rax
test rax, rax
je 0x14004f901
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
jne 0x14004f904
mov ecx, 0x8007000e
call fcn.1400cb6a0
int3
mov rbx, r14
mov qword [rbp + 7], rbx
test rbx, rbx
jne 0x14004f918
mov ecx, 0x8007000e
call fcn.1400cb6a0
nop
mov rcx, qword [rbp - 0x39]
mov rax, qword [rcx]
lea rdx, [rbp - 0x49]
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 r13d, eax
or eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
dec eax
jne 0x14004f97b
mov rcx, qword [rbx]
test rcx, rcx
je 0x14004f965
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14004f973
call sub.MSVCR100.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, rbx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_
test r13d, r13d
jns 0x14004f989
mov rcx, qword [rbp - 0x39]
jmp 0x14004fe6c
mov rcx, qword [rbp - 0x49]
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]
call qword [sym.imp.ole32.dll_CoSetProxyBlanket]
mov r13d, eax
test eax, eax
jns 0x14004f9da
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x14004f9d1
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
mov qword [rbp - 0x49], r14
mov rcx, qword [rbp - 0x39]
jmp 0x14004fe67
mov rcx, r14
mov qword [rbp - 0x31], rcx
mov rdx, qword [rbp - 0x49]
test rdx, rdx
je 0x14004fb1c
mov ecx, 0x18
call fcn.1400cafcc
mov rbx, rax
mov qword [rbp + 0x7f], rax
test rax, rax
je 0x14004fa20
mov qword [rax + 8], r14
mov dword [rax + 0x10], 1
lea rcx, str.SELECT__from_Win32_QuickFixEngineering
call fcn.1400cb6b0
mov qword [rbx], rax
jmp 0x14004fa23
mov rbx, r14
mov qword [rbp + 0x17], rbx
test rbx, rbx
jne 0x14004fa37
mov ecx, 0x8007000e
call fcn.1400cb6a0
nop
mov ecx, 0x18
call fcn.1400cafcc
mov rsi, rax
mov qword [rbp + 0x7f], rax
test rax, rax
je 0x14004fa69
mov qword [rax + 8], r14
mov dword [rax + 0x10], 1
lea rcx, [0x1400e51a8]
call fcn.1400cb6b0
mov qword [rsi], rax
jmp 0x14004fa6c
mov rsi, r14
mov qword [rbp + 0xf], rsi
test rsi, rsi
jne 0x14004fa80
mov ecx, 0x8007000e
call fcn.1400cb6a0
nop
mov rcx, qword [rbp - 0x49]
mov rax, qword [rcx]
lea rdx, [rbp - 0x31]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], r14
mov r9d, Ordinal_49
mov r8, qword [rbx]
mov rdx, qword [rsi]
call qword [rax + 0xa0]
mov r13d, eax
or eax, 0xffffffff
lock xadd dword [rsi + 0x10], eax
dec eax
jne 0x14004fadb
mov rcx, qword [rsi]
test rcx, rcx
je 0x14004fac4
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x14004fad2
call sub.MSVCR100.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, rsi
call sub.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_
nop
or eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
dec eax
jne 0x14004fb0b
mov rcx, qword [rbx]
test rcx, rcx
je 0x14004faf5
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14004fb03
call sub.MSVCR100.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, rbx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_
test r13d, r13d
js 0x14004f9be
mov rdx, qword [rbp - 0x49]
mov rcx, qword [rbp - 0x31]
mov dword [rbp + 0x77], r14d
test rcx, rcx
je 0x14004fe24
movabs r15, 0x1fffffffffffffff
movabs rsi, 0x1ffffffffffffffe
mov rax, qword [rcx]
lea rdx, [rbp + 0x77]
mov qword [rsp + 0x20], rdx
lea r9, [rbp - 0x29]
mov r8d, 1
or edx, 0xffffffff
call qword [rax + reloc.ATL100.DLL_Ordinal_32]
cmp dword [rbp + 0x77], 0
je 0x14004fe1c
mov rcx, qword [rbp - 0x29]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
lea r9, [rbp - 0x21]
xor r8d, r8d
lea rdx, str.HotFixID
call qword [rax + reloc.ATL100.DLL_Ordinal_32]
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x41], rax
movzx ecx, word [rbp - 0x21]
sub ecx, 2
je 0x14004fbd3
dec ecx
je 0x14004fbcd
sub ecx, 5
je 0x14004fbb7
cmp ecx, 3
jne 0x14004fbe8
jmp 0x14004fbd3
mov r8, qword [rbp - 0x19]
lea rdx, [0x1400de22c]
lea rcx, [rbp - 0x41]
call fcn.140004440
jmp 0x14004fbe8
mov r8d, dword [rbp - 0x19]
jmp 0x14004fbd8
movsx r8d, word [rbp - 0x19]
lea rdx, [0x1400de14c]
lea rcx, [rbp - 0x41]
call fcn.140004440
mov rcx, qword [rdi + 8]
lea rax, [rbp - 0x41]
cmp rax, rcx
jae 0x14004fce8
mov rax, qword [rdi]
lea rdx, [rbp - 0x41]
cmp rax, rdx
ja 0x14004fce8
lea rbx, [rbp - 0x41]
sub rbx, rax
sar rbx, 3
mov rdx, qword [rdi + 0x10]
cmp rcx, rdx
jne 0x14004fc64
sub rcx, rax
sar rcx, 3
cmp rcx, rsi
ja 0x14004fdf4
inc rcx
sub rdx, rax
sar rdx, 3
cmp rcx, rdx
jbe 0x14004fc64
mov r8, rdx
shr r8, 1
mov rax, r15
sub rax, r8
cmp rax, rdx
jae 0x14004fc52
mov rdx, r14
jmp 0x14004fc55
add rdx, r8
cmp rdx, rcx
cmovb rdx, rcx
mov rcx, rdi
call fcn.14000dcf0
mov rax, qword [rdi]
mov rsi, qword [rdi + 8]
mov qword [rbp + 0x7f], rsi
mov qword [rbp - 9], rsi
test rsi, rsi
je 0x14004fce3
mov rbx, qword [rax + rbx*8]
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
call qword [rax + reloc.ATL100.DLL_Ordinal_32]
mov rcx, rax
cmp dword [rbx - 8], 0
jl 0x14004fc9f
cmp rax, qword [rbx - 0x18]
jne 0x14004fc9f
lea r12, [rbx - 0x18]
lock inc dword [rbx - 8]
jmp 0x14004fcdb
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rbx - 0x10]
call qword [rax]
mov r12, rax
test rax, rax
je 0x14004fe02
mov ecx, dword [rbx - 0x10]
mov dword [rax + 8], ecx
mov ecx, dword [rbx - 0x10]
inc ecx
movsxd rdx, ecx
lea r9, [rdx + rdx]
mov r8, rbx
add rdx, rdx
lea rcx, [rax + 0x18]
call qword [sym.imp.MSVCR100.dll_memcpy_s]
lea rax, [r12 + 0x18]
mov qword [rsi], rax
jmp 0x14004fdb7
mov rdx, qword [rdi + 0x10]
cmp rcx, rdx
jne 0x14004fd3b
mov rax, qword [rdi]
sub rcx, rax
sar rcx, 3
cmp rcx, rsi
ja 0x14004fe08
inc rcx
sub rdx, rax
sar rdx, 3
cmp rcx, rdx
jbe 0x14004fd3b
mov r8, rdx
shr r8, 1
mov rax, r15
sub rax, r8
cmp rax, rdx
jae 0x14004fd29
mov rdx, r14
jmp 0x14004fd2c
add rdx, r8
cmp rdx, rcx
cmovb rdx, rcx
mov rcx, rdi
call fcn.14000dcf0
mov rsi, qword [rdi + 8]
mov qword [rbp + 0x7f], rsi
mov qword [rbp - 9], rsi
test rsi, rsi
je 0x14004fdb7
mov rbx, qword [rbp - 0x41]
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
call qword [rax + reloc.ATL100.DLL_Ordinal_32]
mov rcx, rax
cmp dword [rbx - 8], 0
jl 0x14004fd73
cmp rax, qword [rbx - 0x18]
jne 0x14004fd73
lea r12, [rbx - 0x18]
lock inc dword [rbx - 8]
jmp 0x14004fdaf
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rbx - 0x10]
call qword [rax]
mov r12, rax
test rax, rax
je 0x14004fe16
mov ecx, dword [rbx - 0x10]
mov dword [rax + 8], ecx
mov ecx, dword [rbx - 0x10]
inc ecx
movsxd rdx, ecx
lea r9, [rdx + rdx]
mov r8, rbx
add rdx, rdx
lea rcx, [rax + 0x18]
call qword [sym.imp.MSVCR100.dll_memcpy_s]
lea rax, [r12 + 0x18]
mov qword [rsi], rax
add qword [rdi + 8], 8
lea rcx, [rbp - 0x21]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rdx, qword [rbp - 0x41]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004fde6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rcx, qword [rbp - 0x31]
test rcx, rcx
je 0x14004fe20
jmp 0x14004fb33
lea rcx, str.vector_T__too_long
call qword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
nop
call fcn.140001920
nop
lea rcx, str.vector_T__too_long
call qword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
nop
call fcn.140001920
nop
mov rcx, qword [rbp - 0x31]
mov rdx, qword [rbp - 0x49]
test rdx, rdx
je 0x14004fe3a
mov rax, qword [rdx]
mov rcx, rdx
call qword [rax + Ordinal_17]
mov qword [rbp - 0x49], r14
mov rcx, qword [rbp - 0x31]
mov rdx, qword [rbp - 0x39]
test rdx, rdx
je 0x14004fe54
mov rax, qword [rdx]
mov rcx, rdx
call qword [rax + Ordinal_17]
mov qword [rbp - 0x39], r14
mov rcx, qword [rbp - 0x31]
test rcx, rcx
je 0x14004fe63
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
mov qword [rbp - 0x31], r14
mov rcx, qword [rbp - 0x29]
test rcx, rcx
je 0x14004fe72
mov rax, qword [rcx]
call qword [rax + Ordinal_17]
mov rcx, qword [rdi + 8]
sub rcx, qword [rdi]
sar rcx, 3
test ecx, ecx
cmovg r13d, r14d
mov eax, r13d
mov rbx, qword [rsp + 0x100]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret