Function at 0x140059cd0
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 [0x14035b8c0]
xor rax, rsp
mov qword [rsp + 0xab0], rax
mov rsi, rdx
mov rdi, rcx
lea rcx, [rsp + 0x3a8]
call fcn.140009d24
nop
mov byte [rsp + 0x3a0], 0
mov r8d, 0x14
lea rdx, str.srl::WMI::GetGpuInfo
lea rcx, [rsp + 0x3a8]
call fcn.14000997c
nop
call fcn.140022280
cmp dword [rax + 8], 4
jl 0x140059d5d
mov byte [rsp + 0x3a0], 1
lea rcx, [rsp + 0x3a0]
call fcn.1400183a0
cmp byte [rdi + 0x28], 0
jne 0x140059d77
lea rcx, [rsp + 0x3a0]
call fcn.140019d90
xor al, al
jmp 0x14005a7bf
xor bl, bl
mov byte [rsp + 0x30], bl
lea r8, [rsp + 0x88]
lea rdx, str.SELECT__FROM_Win32_VideoController
mov rcx, rdi
call fcn.14005c730
test al, al
je 0x14005a7a8
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 0x14005a799
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 0x14005a799
lea rcx, [rsp + 0x260]
call fcn.1400288a0
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.14005c040
lea r9, [rsp + 0x38]
lea r8, str.Name
mov rdx, qword [rdi]
call fcn.14005c040
test al, al
je 0x140059fcf
mov qword [rsp + 0x58], r14
cmp word [rsp + 0x38], 8
jne 0x140059e74
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x58]
call fcn.14005e0d0
jmp 0x140059ed0
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 0x14005a7e7
mov rdx, qword [rsp + 0x170]
lea rcx, [rsp + 0x58]
call fcn.14005e0d0
nop
lea rcx, [rsp + 0x168]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x140059edf
mov rdx, qword [rax]
jmp 0x140059ee2
mov rdx, r14
lea rcx, [rsp + 0x3c8]
call fcn.140009580
mov rdx, rax
mov qword [rsp + 0x258], rax
mov qword [rsp + 0x108], rax
cmp qword [rax + 0x18], 8
jb 0x140059f14
mov rdx, qword [rax]
mov qword [rsp + 0x108], rdx
test rdx, rdx
je 0x140059f3c
mov rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], 0
jne 0x140059f20
mov r8d, eax
lea rcx, [rsp + 0x268]
call fcn.1400029fc
jmp 0x140059f4a
lea rcx, [rsp + 0x268]
call fcn.140002834
nop
lea rcx, [rsp + 0x3c8]
call fcn.140009568
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x140059fca
mov qword [rsp + 0x110], rcx
mov eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
sub eax, 1
mov dword [rsp + 0x160], eax
jne 0x140059fc5
mov rbx, qword [rsp + 0x110]
test rbx, rbx
je 0x140059fc5
mov rcx, qword [rbx]
test rcx, rcx
je 0x140059f9e
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140059fb8
mov qword [rsp + 0x1f8], rcx
call fcn.14008a738
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.140004154
mov qword [rsp + 0x58], r14
mov byte [rsp + 0x30], 1
lea r9, [rsp + 0x38]
lea r8, str.VideoProcessor
mov rdx, qword [rdi]
call fcn.14005c040
test al, al
je 0x14005a15f
mov qword [rsp + 0x60], r14
cmp word [rsp + 0x38], 8
jne 0x14005a009
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x60]
call fcn.14005e0d0
jmp 0x14005a065
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 0x14005a7ef
mov rdx, qword [rsp + 0x188]
lea rcx, [rsp + 0x60]
call fcn.14005e0d0
nop
lea rcx, [rsp + 0x180]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x14005a074
mov rdx, qword [rax]
jmp 0x14005a077
mov rdx, r14
lea rcx, [rsp + 0x3e8]
call fcn.140009580
mov rdx, rax
mov qword [rsp + 0x200], rax
mov qword [rsp + 0x118], rax
cmp qword [rax + 0x18], 8
jb 0x14005a0a9
mov rdx, qword [rax]
mov qword [rsp + 0x118], rdx
test rdx, rdx
je 0x14005a0d1
mov rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], 0
jne 0x14005a0b5
mov r8d, eax
lea rcx, [rsp + 0x278]
call fcn.1400029fc
jmp 0x14005a0df
lea rcx, [rsp + 0x278]
call fcn.140002834
nop
lea rcx, [rsp + 0x3e8]
call fcn.140009568
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14005a15f
mov qword [rsp + 0x120], rcx
mov eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
sub eax, 1
mov dword [rsp + 0xc0], eax
jne 0x14005a15a
mov rbx, qword [rsp + 0x120]
test rbx, rbx
je 0x14005a15a
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005a133
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005a14d
mov qword [rsp + 0x208], rcx
call fcn.14008a738
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.140004154
mov qword [rsp + 0x60], r14
lea r9, [rsp + 0x38]
lea r8, str.AdapterDACType
mov rdx, qword [rdi]
call fcn.14005c040
test al, al
je 0x14005a2ef
mov qword [rsp + 0x68], r14
cmp word [rsp + 0x38], 8
jne 0x14005a199
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x68]
call fcn.14005e0d0
jmp 0x14005a1f5
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 0x14005a7f7
mov rdx, qword [rsp + 0x1a0]
lea rcx, [rsp + 0x68]
call fcn.14005e0d0
nop
lea rcx, [rsp + 0x198]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x14005a204
mov rdx, qword [rax]
jmp 0x14005a207
mov rdx, r14
lea rcx, [rsp + 0x408]
call fcn.140009580
mov rdx, rax
mov qword [rsp + 0x210], rax
mov qword [rsp + 0x128], rax
cmp qword [rax + 0x18], 8
jb 0x14005a239
mov rdx, qword [rax]
mov qword [rsp + 0x128], rdx
test rdx, rdx
je 0x14005a261
mov rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], 0
jne 0x14005a245
mov r8d, eax
lea rcx, [rsp + 0x298]
call fcn.1400029fc
jmp 0x14005a26f
lea rcx, [rsp + 0x298]
call fcn.140002834
nop
lea rcx, [rsp + 0x408]
call fcn.140009568
nop
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14005a2ef
mov qword [rsp + 0x130], rcx
mov eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
sub eax, 1
mov dword [rsp + 0xd0], eax
jne 0x14005a2ea
mov rbx, qword [rsp + 0x130]
test rbx, rbx
je 0x14005a2ea
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005a2c3
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005a2dd
mov qword [rsp + 0x218], rcx
call fcn.14008a738
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.140004154
mov qword [rsp + 0x68], r14
lea r9, [rsp + 0x38]
lea r8, str.AdapterRAM
mov rdx, qword [rdi]
call fcn.14005c040
test al, al
je 0x14005a394
cmp word [rsp + 0x38], 0x17
jne 0x14005a320
mov ebx, dword [rsp + 0x40]
mov dword [rsp + 0x80], ebx
jmp 0x14005a37d
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 0x14005a7ff
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.14007f9d0
lea r9, [rsp + 0x38]
lea r8, str.DriverVersion
mov rdx, qword [rdi]
call fcn.14005c040
test al, al
je 0x14005a522
mov qword [rsp + 0x70], r14
cmp word [rsp + 0x38], 8
jne 0x14005a3ce
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x70]
call fcn.14005e0d0
jmp 0x14005a42a
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 0x14005a807
mov rdx, qword [rsp + 0x1d0]
lea rcx, [rsp + 0x70]
call fcn.14005e0d0
nop
lea rcx, [rsp + 0x1c8]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x14005a439
mov rdx, qword [rax]
jmp 0x14005a43c
mov rdx, r14
lea rcx, [rsp + 0x428]
call fcn.140009580
mov rdx, rax
mov qword [rsp + 0x228], rax
mov qword [rsp + 0x138], rax
cmp qword [rax + 0x18], 8
jb 0x14005a46e
mov rdx, qword [rax]
mov qword [rsp + 0x138], rdx
test rdx, rdx
jne 0x14005a478
mov eax, r14d
jmp 0x14005a48a
mov rax, 0xffffffffffffffff
nop
inc rax
cmp word [rdx + rax*2], 0
jne 0x14005a480
mov dword [rsp + 0x84], eax
mov r8d, eax
lea rcx, [rsp + 0x2b8]
call fcn.1400029fc
nop
lea rcx, [rsp + 0x428]
call fcn.140009568
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14005a522
mov qword [rsp + 0x140], rcx
mov eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
sub eax, 1
mov dword [rsp + 0xf0], eax
jne 0x14005a51d
mov rbx, qword [rsp + 0x140]
test rbx, rbx
je 0x14005a51d
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005a4f6
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005a510
mov qword [rsp + 0x230], rcx
call fcn.14008a738
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.140004154
mov qword [rsp + 0x70], r14
lea r9, [rsp + 0x38]
lea r8, str.InstalledDisplayDrivers
mov rdx, qword [rdi]
call fcn.14005c040
lea r9, [rsp + 0x38]
lea r8, str.PNPDeviceID
mov rdx, qword [rdi]
call fcn.14005c040
test al, al
je 0x14005a728
mov qword [rsp + 0x78], r14
cmp word [rsp + 0x38], 8
jne 0x14005a570
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x78]
call fcn.14005e0d0
jmp 0x14005a5cc
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 0x14005a80f
mov rdx, qword [rsp + 0x1e8]
lea rcx, [rsp + 0x78]
call fcn.14005e0d0
nop
lea rcx, [rsp + 0x1e0]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14005a5db
mov rdx, qword [rax]
jmp 0x14005a5de
mov rdx, r14
lea rcx, [rsp + 0x448]
call fcn.140009580
mov rbx, rax
mov qword [rsp + 0x238], rax
mov qword [rsp + 0x90], r15
mov qword [rsp + 0x90], r12
lea rcx, [rsp + 0x98]
call fcn.1400152d0
nop
mov qword [rsp + 0x148], rbx
cmp qword [rbx + 0x18], 8
jb 0x14005a62e
mov rbx, qword [rbx]
mov qword [rsp + 0x148], rbx
mov rdx, rbx
lea rcx, [rsp + 0x90]
call fcn.14006e5b0
nop
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0x328]
call fcn.140002b08
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.14006e500
nop
lea rcx, [rsp + 0x448]
call fcn.140009568
nop
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x14005a728
mov qword [rsp + 0x150], rcx
mov eax, 0xffffffff
lock xadd dword [rcx + 0x10], eax
sub eax, 1
mov dword [rsp + 0x100], eax
jne 0x14005a723
mov rbx, qword [rsp + 0x150]
test rbx, rbx
je 0x14005a723
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005a6fc
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005a716
mov qword [rsp + 0x240], rcx
call fcn.14008a738
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.140004154
mov qword [rsp + 0x78], r14
mov rax, qword [rsi + 8]
cmp qword [rsi + 0x10], rax
je 0x14005a754
mov qword [rsp + 0x248], rax
lea rdx, [rsp + 0x260]
mov rcx, rax
call fcn.14002aec0
add qword [rsi + 8], 0x138
jmp 0x14005a767
lea r8, [rsp + 0x260]
mov rdx, rax
mov rcx, rsi
call fcn.14002abf0
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.14002b1c0
inc dword [rsp + 0x50]
jmp 0x140059df0
mov rcx, qword [rsp + 0x88]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x14005a7af
lea rcx, [rsp + 0x3a0]
call fcn.140019d90
movzx eax, bl
mov rcx, qword [rsp + 0xab0]
xor rcx, rsp
call fcn.140229750
mov rbx, qword [rsp + 0xb00]
add rsp, 0xac0
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
mov ecx, eax
call fcn.14022aaf0
nop
mov ecx, eax
call fcn.14022aaf0
nop
mov ecx, eax
call fcn.14022aaf0
nop
mov ecx, eax
call fcn.14022aaf0
nop
mov ecx, eax
call fcn.14022aaf0
nop
mov ecx, eax
call fcn.14022aaf0
int3