Function at 0x14005aea0
Capabilities:
Reference wmi statements

Disassembly:
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0xac0
mov qword [rsp + 0x250], 0xfffffffffffffffe
mov qword [rsp + 0xb00], rbx
mov rax, qword [0x14035d8c0]
xor rax, rsp
mov qword [rsp + 0xab0], rax
mov rsi, rdx
mov rdi, rcx
lea rcx, [rsp + 0x3a8]
call fcn.14000a1bc
nop
mov byte [rsp + 0x3a0], 0
mov r8d, 0x14
lea rdx, str.srl::WMI::GetGpuInfo
lea rcx, [rsp + 0x3a8]
call fcn.140009e14
nop
call fcn.140022850
cmp dword [rax + 8], 4
jl 0x14005af2d
mov byte [rsp + 0x3a0], 1
lea rcx, [rsp + 0x3a0]
call fcn.140018900
cmp byte [rdi + 0x28], 0
jne 0x14005af47
lea rcx, [rsp + 0x3a0]
call fcn.14001a370
xor al, al
jmp 0x14005b98f
xor bl, bl
mov byte [rsp + 0x30], bl
lea r8, [rsp + 0x88]
lea rdx, str.SELECT__FROM_Win32_VideoController
mov rcx, rdi
call fcn.14005dc90
test al, al
je 0x14005b978
xor r14d, r14d
mov dword [rsp + 0x54], r14d
mov rcx, qword [rsp + 0x88]
mov rax, qword [rcx]
lea rdx, [rsp + 0x54]
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x470]
lea edx, [r14 - 1]
mov r8d, MsiSourceListClearAllW
call qword [rax + 0x20]
test eax, eax
js 0x14005b969
mov dword [rsp + 0x50], r14d
lea r15, vtable.srl::Value.0
lea r12, vtable.srl::DeviceID.0
nop dword [rax]
mov edi, dword [rsp + 0x50]
cmp edi, dword [rsp + 0x54]
jae 0x14005b969
lea rcx, [rsp + 0x260]
call fcn.140028e70
nop
lea rcx, [rsp + 0x38]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov eax, edi
lea rdi, [rsp + 0x470]
lea rdi, [rdi + rax*8]
lea r9, [rsp + 0x38]
lea r8, str.DeviceID
mov rdx, qword [rdi]
call fcn.14005d5a0
lea r9, [rsp + 0x38]
lea r8, str.Name
mov rdx, qword [rdi]
call fcn.14005d5a0
test al, al
je 0x14005b19f
mov qword [rsp + 0x58], r14
cmp word [rsp + 0x38], 8
jne 0x14005b044
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x58]
call fcn.14005f640
jmp 0x14005b0a0
lea rcx, [rsp + 0x168]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov r9d, 8
xor r8d, r8d
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x168]
call qword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
mov dword [rsp + 0x158], eax
test eax, eax
js 0x14005b9b7
mov rdx, qword [rsp + 0x170]
lea rcx, [rsp + 0x58]
call fcn.14005f640
nop
lea rcx, [rsp + 0x168]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x14005b0af
mov rdx, qword [rax]
jmp 0x14005b0b2
mov rdx, r14
lea rcx, [rsp + 0x3c8]
call fcn.140009bd0
mov rdx, rax
mov qword [rsp + 0x258], rax
mov qword [rsp + 0x108], rax
cmp qword [rax + 0x18], 8
jb 0x14005b0e4
mov rdx, qword [rax]
mov qword [rsp + 0x108], rdx
test rdx, rdx
je 0x14005b10c
mov rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], 0
jne 0x14005b0f0
mov r8d, eax
lea rcx, [rsp + 0x268]
call fcn.140002a7c
jmp 0x14005b11a
lea rcx, [rsp + 0x268]
call fcn.1400028b4
nop
lea rcx, [rsp + 0x3c8]
call fcn.140009bb8
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14005b19a
mov qword [rsp + 0x110], rcx
mov eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
sub eax, 1
mov dword [rsp + 0x160], eax
jne 0x14005b195
mov rbx, qword [rsp + 0x110]
test rbx, rbx
je 0x14005b195
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005b16e
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005b188
mov qword [rsp + 0x1f8], rcx
call fcn.14008c190
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.1400045a8
mov qword [rsp + 0x58], r14
mov byte [rsp + 0x30], 1
lea r9, [rsp + 0x38]
lea r8, str.VideoProcessor
mov rdx, qword [rdi]
call fcn.14005d5a0
test al, al
je 0x14005b32f
mov qword [rsp + 0x60], r14
cmp word [rsp + 0x38], 8
jne 0x14005b1d9
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x60]
call fcn.14005f640
jmp 0x14005b235
lea rcx, [rsp + 0x180]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov r9d, 8
xor r8d, r8d
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x180]
call qword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
mov dword [rsp + 0xb8], eax
test eax, eax
js 0x14005b9bf
mov rdx, qword [rsp + 0x188]
lea rcx, [rsp + 0x60]
call fcn.14005f640
nop
lea rcx, [rsp + 0x180]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x14005b244
mov rdx, qword [rax]
jmp 0x14005b247
mov rdx, r14
lea rcx, [rsp + 0x3e8]
call fcn.140009bd0
mov rdx, rax
mov qword [rsp + 0x200], rax
mov qword [rsp + 0x118], rax
cmp qword [rax + 0x18], 8
jb 0x14005b279
mov rdx, qword [rax]
mov qword [rsp + 0x118], rdx
test rdx, rdx
je 0x14005b2a1
mov rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], 0
jne 0x14005b285
mov r8d, eax
lea rcx, [rsp + 0x278]
call fcn.140002a7c
jmp 0x14005b2af
lea rcx, [rsp + 0x278]
call fcn.1400028b4
nop
lea rcx, [rsp + 0x3e8]
call fcn.140009bb8
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14005b32f
mov qword [rsp + 0x120], rcx
mov eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
sub eax, 1
mov dword [rsp + 0xc0], eax
jne 0x14005b32a
mov rbx, qword [rsp + 0x120]
test rbx, rbx
je 0x14005b32a
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005b303
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005b31d
mov qword [rsp + 0x208], rcx
call fcn.14008c190
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.1400045a8
mov qword [rsp + 0x60], r14
lea r9, [rsp + 0x38]
lea r8, str.AdapterDACType
mov rdx, qword [rdi]
call fcn.14005d5a0
test al, al
je 0x14005b4bf
mov qword [rsp + 0x68], r14
cmp word [rsp + 0x38], 8
jne 0x14005b369
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x68]
call fcn.14005f640
jmp 0x14005b3c5
lea rcx, [rsp + 0x198]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov r9d, 8
xor r8d, r8d
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x198]
call qword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
mov dword [rsp + 0xc8], eax
test eax, eax
js 0x14005b9c7
mov rdx, qword [rsp + 0x1a0]
lea rcx, [rsp + 0x68]
call fcn.14005f640
nop
lea rcx, [rsp + 0x198]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x14005b3d4
mov rdx, qword [rax]
jmp 0x14005b3d7
mov rdx, r14
lea rcx, [rsp + 0x408]
call fcn.140009bd0
mov rdx, rax
mov qword [rsp + 0x210], rax
mov qword [rsp + 0x128], rax
cmp qword [rax + 0x18], 8
jb 0x14005b409
mov rdx, qword [rax]
mov qword [rsp + 0x128], rdx
test rdx, rdx
je 0x14005b431
mov rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], 0
jne 0x14005b415
mov r8d, eax
lea rcx, [rsp + 0x298]
call fcn.140002a7c
jmp 0x14005b43f
lea rcx, [rsp + 0x298]
call fcn.1400028b4
nop
lea rcx, [rsp + 0x408]
call fcn.140009bb8
nop
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14005b4bf
mov qword [rsp + 0x130], rcx
mov eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
sub eax, 1
mov dword [rsp + 0xd0], eax
jne 0x14005b4ba
mov rbx, qword [rsp + 0x130]
test rbx, rbx
je 0x14005b4ba
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005b493
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005b4ad
mov qword [rsp + 0x218], rcx
call fcn.14008c190
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.1400045a8
mov qword [rsp + 0x68], r14
lea r9, [rsp + 0x38]
lea r8, str.AdapterRAM
mov rdx, qword [rdi]
call fcn.14005d5a0
test al, al
je 0x14005b564
cmp word [rsp + 0x38], 0x17
jne 0x14005b4f0
mov ebx, dword [rsp + 0x40]
mov dword [rsp + 0x80], ebx
jmp 0x14005b54d
lea rcx, [rsp + 0x1b0]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov r9d, 0x17
xor r8d, r8d
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x1b0]
call qword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
mov dword [rsp + 0xd8], eax
test eax, eax
js 0x14005b9cf
mov ebx, dword [rsp + 0x1b8]
mov dword [rsp + 0xe0], ebx
lea rcx, [rsp + 0x1b0]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
mov dword [rsp + 0x80], ebx
mov edx, ebx
mov qword [rsp + 0x220], rdx
lea rcx, [rsp + 0x310]
call fcn.140080560
lea r9, [rsp + 0x38]
lea r8, str.DriverVersion
mov rdx, qword [rdi]
call fcn.14005d5a0
test al, al
je 0x14005b6f2
mov qword [rsp + 0x70], r14
cmp word [rsp + 0x38], 8
jne 0x14005b59e
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x70]
call fcn.14005f640
jmp 0x14005b5fa
lea rcx, [rsp + 0x1c8]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov r9d, 8
xor r8d, r8d
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x1c8]
call qword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
mov dword [rsp + 0xe8], eax
test eax, eax
js 0x14005b9d7
mov rdx, qword [rsp + 0x1d0]
lea rcx, [rsp + 0x70]
call fcn.14005f640
nop
lea rcx, [rsp + 0x1c8]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x14005b609
mov rdx, qword [rax]
jmp 0x14005b60c
mov rdx, r14
lea rcx, [rsp + 0x428]
call fcn.140009bd0
mov rdx, rax
mov qword [rsp + 0x228], rax
mov qword [rsp + 0x138], rax
cmp qword [rax + 0x18], 8
jb 0x14005b63e
mov rdx, qword [rax]
mov qword [rsp + 0x138], rdx
test rdx, rdx
jne 0x14005b648
mov eax, r14d
jmp 0x14005b65a
mov rax, 0xffffffffffffffff
nop
inc rax
cmp word [rdx + rax*2], 0
jne 0x14005b650
mov dword [rsp + 0x84], eax
mov r8d, eax
lea rcx, [rsp + 0x2b8]
call fcn.140002a7c
nop
lea rcx, [rsp + 0x428]
call fcn.140009bb8
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14005b6f2
mov qword [rsp + 0x140], rcx
mov eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
sub eax, 1
mov dword [rsp + 0xf0], eax
jne 0x14005b6ed
mov rbx, qword [rsp + 0x140]
test rbx, rbx
je 0x14005b6ed
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005b6c6
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005b6e0
mov qword [rsp + 0x230], rcx
call fcn.14008c190
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.1400045a8
mov qword [rsp + 0x70], r14
lea r9, [rsp + 0x38]
lea r8, str.InstalledDisplayDrivers
mov rdx, qword [rdi]
call fcn.14005d5a0
lea r9, [rsp + 0x38]
lea r8, str.PNPDeviceID
mov rdx, qword [rdi]
call fcn.14005d5a0
test al, al
je 0x14005b8f8
mov qword [rsp + 0x78], r14
cmp word [rsp + 0x38], 8
jne 0x14005b740
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x78]
call fcn.14005f640
jmp 0x14005b79c
lea rcx, [rsp + 0x1e0]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov r9d, 8
xor r8d, r8d
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x1e0]
call qword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
mov dword [rsp + 0xf8], eax
test eax, eax
js 0x14005b9df
mov rdx, qword [rsp + 0x1e8]
lea rcx, [rsp + 0x78]
call fcn.14005f640
nop
lea rcx, [rsp + 0x1e0]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14005b7ab
mov rdx, qword [rax]
jmp 0x14005b7ae
mov rdx, r14
lea rcx, [rsp + 0x448]
call fcn.140009bd0
mov rbx, rax
mov qword [rsp + 0x238], rax
mov qword [rsp + 0x90], r15
mov qword [rsp + 0x90], r12
lea rcx, [rsp + 0x98]
call fcn.140015830
nop
mov qword [rsp + 0x148], rbx
cmp qword [rbx + 0x18], 8
jb 0x14005b7fe
mov rbx, qword [rbx]
mov qword [rsp + 0x148], rbx
mov rdx, rbx
lea rcx, [rsp + 0x90]
call fcn.14006fb20
nop
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0x328]
call fcn.140002b88
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0x330], eax
mov eax, dword [rsp + 0xa4]
mov dword [rsp + 0x334], eax
mov eax, dword [rsp + 0xa8]
mov dword [rsp + 0x338], eax
mov eax, dword [rsp + 0xac]
mov dword [rsp + 0x33c], eax
mov eax, dword [rsp + 0xb0]
mov dword [rsp + 0x340], eax
lea rcx, [rsp + 0x90]
call fcn.14006fa70
nop
lea rcx, [rsp + 0x448]
call fcn.140009bb8
nop
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x14005b8f8
mov qword [rsp + 0x150], rcx
mov eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
sub eax, 1
mov dword [rsp + 0x100], eax
jne 0x14005b8f3
mov rbx, qword [rsp + 0x150]
test rbx, rbx
je 0x14005b8f3
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005b8cc
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005b8e6
mov qword [rsp + 0x240], rcx
call fcn.14008c190
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.1400045a8
mov qword [rsp + 0x78], r14
mov rax, qword [rsi + 8]
cmp qword [rsi + 0x10], rax
je 0x14005b924
mov qword [rsp + 0x248], rax
lea rdx, [rsp + 0x260]
mov rcx, rax
call fcn.14002b490
add qword [rsi + 8], 0x138
jmp 0x14005b937
lea r8, [rsp + 0x260]
mov rdx, rax
mov rcx, rsi
call fcn.14002b1c0
mov bl, 1
mov byte [rsp + 0x30], bl
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
lea rcx, [rsp + 0x38]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rsp + 0x260]
call fcn.14002b790
inc dword [rsp + 0x50]
jmp 0x14005afc0
mov rcx, qword [rsp + 0x88]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x14005b97f
lea rcx, [rsp + 0x3a0]
call fcn.14001a370
movzx eax, bl
mov rcx, qword [rsp + 0xab0]
xor rcx, rsp
call fcn.14022b120
mov rbx, qword [rsp + 0xb00]
add rsp, 0xac0
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
mov ecx, eax
call fcn.14022c4c0
nop
mov ecx, eax
call fcn.14022c4c0
nop
mov ecx, eax
call fcn.14022c4c0
nop
mov ecx, eax
call fcn.14022c4c0
nop
mov ecx, eax
call fcn.14022c4c0
nop
mov ecx, eax
call fcn.14022c4c0
int3