Function at 0x140059d20
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 [0x14035c8c0]
xor rax, rsp
mov qword [rsp + 0xab0], rax
mov rsi, rdx
mov rdi, rcx
lea rcx, [rsp + 0x3a8]
call fcn.140009e28
nop
mov byte [rsp + 0x3a0], 0
mov r8d, 0x14
lea rdx, str.srl::WMI::GetGpuInfo
lea rcx, [rsp + 0x3a8]
call fcn.140009a80
nop
call fcn.1400224d0
cmp dword [rax + 8], 4
jl 0x140059dad
mov byte [rsp + 0x3a0], 1
lea rcx, [rsp + 0x3a0]
call fcn.140018570
cmp byte [rdi + 0x28], 0
jne 0x140059dc7
lea rcx, [rsp + 0x3a0]
call fcn.140019fe0
xor al, al
jmp 0x14005a80f
xor bl, bl
mov byte [rsp + 0x30], bl
lea r8, [rsp + 0x88]
lea rdx, str.SELECT__FROM_Win32_VideoController
mov rcx, rdi
call fcn.14005c790
test al, al
je 0x14005a7f8
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 0x14005a7e9
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 0x14005a7e9
lea rcx, [rsp + 0x260]
call fcn.140028af0
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.14005c0a0
lea r9, [rsp + 0x38]
lea r8, str.Name
mov rdx, qword [rdi]
call fcn.14005c0a0
test al, al
je 0x14005a01f
mov qword [rsp + 0x58], r14
cmp word [rsp + 0x38], 8
jne 0x140059ec4
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x58]
call fcn.14005e140
jmp 0x140059f20
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 0x14005a837
mov rdx, qword [rsp + 0x170]
lea rcx, [rsp + 0x58]
call fcn.14005e140
nop
lea rcx, [rsp + 0x168]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x140059f2f
mov rdx, qword [rax]
jmp 0x140059f32
mov rdx, r14
lea rcx, [rsp + 0x3c8]
call fcn.14000983c
mov rdx, rax
mov qword [rsp + 0x258], rax
mov qword [rsp + 0x108], rax
cmp qword [rax + 0x18], 8
jb 0x140059f64
mov rdx, qword [rax]
mov qword [rsp + 0x108], rdx
test rdx, rdx
je 0x140059f8c
mov rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], 0
jne 0x140059f70
mov r8d, eax
lea rcx, [rsp + 0x268]
call fcn.140002a7c
jmp 0x140059f9a
lea rcx, [rsp + 0x268]
call fcn.1400028b4
nop
lea rcx, [rsp + 0x3c8]
call fcn.140009824
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14005a01a
mov qword [rsp + 0x110], rcx
mov eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
sub eax, 1
mov dword [rsp + 0x160], eax
jne 0x14005a015
mov rbx, qword [rsp + 0x110]
test rbx, rbx
je 0x14005a015
mov rcx, qword [rbx]
test rcx, rcx
je 0x140059fee
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005a008
mov qword [rsp + 0x1f8], rcx
call fcn.14008ae10
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.140004518
mov qword [rsp + 0x58], r14
mov byte [rsp + 0x30], 1
lea r9, [rsp + 0x38]
lea r8, str.VideoProcessor
mov rdx, qword [rdi]
call fcn.14005c0a0
test al, al
je 0x14005a1af
mov qword [rsp + 0x60], r14
cmp word [rsp + 0x38], 8
jne 0x14005a059
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x60]
call fcn.14005e140
jmp 0x14005a0b5
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 0x14005a83f
mov rdx, qword [rsp + 0x188]
lea rcx, [rsp + 0x60]
call fcn.14005e140
nop
lea rcx, [rsp + 0x180]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x14005a0c4
mov rdx, qword [rax]
jmp 0x14005a0c7
mov rdx, r14
lea rcx, [rsp + 0x3e8]
call fcn.14000983c
mov rdx, rax
mov qword [rsp + 0x200], rax
mov qword [rsp + 0x118], rax
cmp qword [rax + 0x18], 8
jb 0x14005a0f9
mov rdx, qword [rax]
mov qword [rsp + 0x118], rdx
test rdx, rdx
je 0x14005a121
mov rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], 0
jne 0x14005a105
mov r8d, eax
lea rcx, [rsp + 0x278]
call fcn.140002a7c
jmp 0x14005a12f
lea rcx, [rsp + 0x278]
call fcn.1400028b4
nop
lea rcx, [rsp + 0x3e8]
call fcn.140009824
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14005a1af
mov qword [rsp + 0x120], rcx
mov eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
sub eax, 1
mov dword [rsp + 0xc0], eax
jne 0x14005a1aa
mov rbx, qword [rsp + 0x120]
test rbx, rbx
je 0x14005a1aa
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005a183
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005a19d
mov qword [rsp + 0x208], rcx
call fcn.14008ae10
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.140004518
mov qword [rsp + 0x60], r14
lea r9, [rsp + 0x38]
lea r8, str.AdapterDACType
mov rdx, qword [rdi]
call fcn.14005c0a0
test al, al
je 0x14005a33f
mov qword [rsp + 0x68], r14
cmp word [rsp + 0x38], 8
jne 0x14005a1e9
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x68]
call fcn.14005e140
jmp 0x14005a245
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 0x14005a847
mov rdx, qword [rsp + 0x1a0]
lea rcx, [rsp + 0x68]
call fcn.14005e140
nop
lea rcx, [rsp + 0x198]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x14005a254
mov rdx, qword [rax]
jmp 0x14005a257
mov rdx, r14
lea rcx, [rsp + 0x408]
call fcn.14000983c
mov rdx, rax
mov qword [rsp + 0x210], rax
mov qword [rsp + 0x128], rax
cmp qword [rax + 0x18], 8
jb 0x14005a289
mov rdx, qword [rax]
mov qword [rsp + 0x128], rdx
test rdx, rdx
je 0x14005a2b1
mov rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], 0
jne 0x14005a295
mov r8d, eax
lea rcx, [rsp + 0x298]
call fcn.140002a7c
jmp 0x14005a2bf
lea rcx, [rsp + 0x298]
call fcn.1400028b4
nop
lea rcx, [rsp + 0x408]
call fcn.140009824
nop
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14005a33f
mov qword [rsp + 0x130], rcx
mov eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
sub eax, 1
mov dword [rsp + 0xd0], eax
jne 0x14005a33a
mov rbx, qword [rsp + 0x130]
test rbx, rbx
je 0x14005a33a
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005a313
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005a32d
mov qword [rsp + 0x218], rcx
call fcn.14008ae10
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.140004518
mov qword [rsp + 0x68], r14
lea r9, [rsp + 0x38]
lea r8, str.AdapterRAM
mov rdx, qword [rdi]
call fcn.14005c0a0
test al, al
je 0x14005a3e4
cmp word [rsp + 0x38], 0x17
jne 0x14005a370
mov ebx, dword [rsp + 0x40]
mov dword [rsp + 0x80], ebx
jmp 0x14005a3cd
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 0x14005a84f
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.14007f060
lea r9, [rsp + 0x38]
lea r8, str.DriverVersion
mov rdx, qword [rdi]
call fcn.14005c0a0
test al, al
je 0x14005a572
mov qword [rsp + 0x70], r14
cmp word [rsp + 0x38], 8
jne 0x14005a41e
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x70]
call fcn.14005e140
jmp 0x14005a47a
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 0x14005a857
mov rdx, qword [rsp + 0x1d0]
lea rcx, [rsp + 0x70]
call fcn.14005e140
nop
lea rcx, [rsp + 0x1c8]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x14005a489
mov rdx, qword [rax]
jmp 0x14005a48c
mov rdx, r14
lea rcx, [rsp + 0x428]
call fcn.14000983c
mov rdx, rax
mov qword [rsp + 0x228], rax
mov qword [rsp + 0x138], rax
cmp qword [rax + 0x18], 8
jb 0x14005a4be
mov rdx, qword [rax]
mov qword [rsp + 0x138], rdx
test rdx, rdx
jne 0x14005a4c8
mov eax, r14d
jmp 0x14005a4da
mov rax, 0xffffffffffffffff
nop
inc rax
cmp word [rdx + rax*2], 0
jne 0x14005a4d0
mov dword [rsp + 0x84], eax
mov r8d, eax
lea rcx, [rsp + 0x2b8]
call fcn.140002a7c
nop
lea rcx, [rsp + 0x428]
call fcn.140009824
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14005a572
mov qword [rsp + 0x140], rcx
mov eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
sub eax, 1
mov dword [rsp + 0xf0], eax
jne 0x14005a56d
mov rbx, qword [rsp + 0x140]
test rbx, rbx
je 0x14005a56d
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005a546
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005a560
mov qword [rsp + 0x230], rcx
call fcn.14008ae10
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.140004518
mov qword [rsp + 0x70], r14
lea r9, [rsp + 0x38]
lea r8, str.InstalledDisplayDrivers
mov rdx, qword [rdi]
call fcn.14005c0a0
lea r9, [rsp + 0x38]
lea r8, str.PNPDeviceID
mov rdx, qword [rdi]
call fcn.14005c0a0
test al, al
je 0x14005a778
mov qword [rsp + 0x78], r14
cmp word [rsp + 0x38], 8
jne 0x14005a5c0
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x78]
call fcn.14005e140
jmp 0x14005a61c
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 0x14005a85f
mov rdx, qword [rsp + 0x1e8]
lea rcx, [rsp + 0x78]
call fcn.14005e140
nop
lea rcx, [rsp + 0x1e0]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14005a62b
mov rdx, qword [rax]
jmp 0x14005a62e
mov rdx, r14
lea rcx, [rsp + 0x448]
call fcn.14000983c
mov rbx, rax
mov qword [rsp + 0x238], rax
mov qword [rsp + 0x90], r15
mov qword [rsp + 0x90], r12
lea rcx, [rsp + 0x98]
call fcn.1400154a0
nop
mov qword [rsp + 0x148], rbx
cmp qword [rbx + 0x18], 8
jb 0x14005a67e
mov rbx, qword [rbx]
mov qword [rsp + 0x148], rbx
mov rdx, rbx
lea rcx, [rsp + 0x90]
call fcn.14006e620
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.14006e570
nop
lea rcx, [rsp + 0x448]
call fcn.140009824
nop
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x14005a778
mov qword [rsp + 0x150], rcx
mov eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
sub eax, 1
mov dword [rsp + 0x100], eax
jne 0x14005a773
mov rbx, qword [rsp + 0x150]
test rbx, rbx
je 0x14005a773
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005a74c
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005a766
mov qword [rsp + 0x240], rcx
call fcn.14008ae10
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.140004518
mov qword [rsp + 0x78], r14
mov rax, qword [rsi + 8]
cmp qword [rsi + 0x10], rax
je 0x14005a7a4
mov qword [rsp + 0x248], rax
lea rdx, [rsp + 0x260]
mov rcx, rax
call fcn.14002b110
add qword [rsi + 8], 0x138
jmp 0x14005a7b7
lea r8, [rsp + 0x260]
mov rdx, rax
mov rcx, rsi
call fcn.14002ae40
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.14002b410
inc dword [rsp + 0x50]
jmp 0x140059e40
mov rcx, qword [rsp + 0x88]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x14005a7ff
lea rcx, [rsp + 0x3a0]
call fcn.140019fe0
movzx eax, bl
mov rcx, qword [rsp + 0xab0]
xor rcx, rsp
call fcn.140229da0
mov rbx, qword [rsp + 0xb00]
add rsp, 0xac0
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
mov ecx, eax
call fcn.14022b140
nop
mov ecx, eax
call fcn.14022b140
nop
mov ecx, eax
call fcn.14022b140
nop
mov ecx, eax
call fcn.14022b140
nop
mov ecx, eax
call fcn.14022b140
nop
mov ecx, eax
call fcn.14022b140
int3