Function at 0x140052510
Capabilities:
Reference wmi statements

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x930
mov rax, qword [0x14031b940]
xor rax, rsp
mov qword [rsp + 0x920], rax
mov rsi, rdx
mov rdi, rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x218], xmm0
movdqa xmm1, xmmword [0x1402d4800]
movdqu xmmword [rsp + 0x228], xmm1
xor r15d, r15d
mov word [rsp + 0x218], r15w
mov byte [rsp + 0x210], r15b
lea rdx, str.srl::WMI::GetGpuInfo
lea rcx, [rsp + 0x218]
call fcn.1400182b0
nop
call fcn.140020e90
cmp dword [rax + 8], 4
jl 0x140052599
lea rcx, [rsp + 0x210]
call fcn.140016100
cmp byte [rdi + 0x28], 0
jne 0x1400525b3
lea rcx, [rsp + 0x210]
call fcn.140017b00
xor al, al
jmp 0x140052e63
xor bl, bl
mov byte [rsp + 0x30], bl
lea r8, [rsp + 0x80]
lea rdx, str.SELECT__FROM_Win32_VideoController
mov rcx, rdi
call fcn.140055150
test al, al
je 0x140052e4c
mov dword [rsp + 0x38], r15d
mov rcx, qword [rsp + 0x80]
mov rax, qword [rcx]
lea rdx, [rsp + 0x38]
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x2e0]
mov edx, 0xffffffff
mov r8d, MsiSourceListClearAllW
call qword [rax + 0x20]
test eax, eax
js 0x140052e3d
mov r14d, r15d
lea r12, vtable.srl::DeviceID.0
nop word [rax + rax]
cmp r14d, dword [rsp + 0x38]
jae 0x140052e3d
lea rcx, [rsp + 0xd0]
call fcn.140026370
nop
lea rcx, [rsp + 0x40]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov eax, r14d
lea rdi, [rsp + 0x2e0]
lea rdi, [rdi + rax*8]
lea r9, [rsp + 0x40]
lea r8, str.DeviceID
mov rdx, qword [rdi]
call fcn.140054890
lea r9, [rsp + 0x40]
lea r8, str.Name
mov rdx, qword [rdi]
call fcn.140054890
test al, al
je 0x1400527b7
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x58]
call fcn.1400568b0
nop
mov rax, qword [rax]
test rax, rax
je 0x1400526a1
mov rdx, qword [rax]
jmp 0x1400526a4
mov rdx, r15
lea rcx, [rsp + 0x238]
call fcn.1400092fc
cmp qword [rax + 0x18], 7
jbe 0x1400526bb
mov rax, qword [rax]
test rax, rax
je 0x1400526ed
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x1400526d0
mov rdx, rax
lea rcx, [rsp + 0xd8]
call fcn.140002b6c
jmp 0x1400526fa
lea rcx, [rsp + 0xd8]
call fcn.140002984
mov rdx, qword [rsp + 0x250]
cmp rdx, 7
jbe 0x140052742
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x238]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005273d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140052e8b
call fcn.140003e94
mov qword [rsp + 0x248], r15
mov qword [rsp + 0x250], 7
mov word [rsp + 0x238], r15w
mov rbx, qword [rsp + 0x58]
test rbx, rbx
je 0x1400527b2
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x1400527ad
test rbx, rbx
je 0x1400527ad
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005278e
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1400527a0
call fcn.140003e94
mov qword [rbx + 8], r15
mov edx, 0x18
mov rcx, rbx
call fcn.140003e94
mov qword [rsp + 0x58], r15
mov byte [rsp + 0x30], 1
lea r9, [rsp + 0x40]
lea r8, str.VideoProcessor
mov rdx, qword [rdi]
call fcn.140054890
test al, al
je 0x140052902
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x60]
call fcn.1400568b0
nop
mov rax, qword [rax]
test rax, rax
je 0x1400527f0
mov rdx, qword [rax]
jmp 0x1400527f3
mov rdx, r15
lea rcx, [rsp + 0x258]
call fcn.1400092fc
cmp qword [rax + 0x18], 7
jbe 0x14005280a
mov rax, qword [rax]
test rax, rax
je 0x14005283d
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x140052820
mov rdx, rax
lea rcx, [rsp + 0xe8]
call fcn.140002b6c
jmp 0x14005284a
lea rcx, [rsp + 0xe8]
call fcn.140002984
mov rdx, qword [rsp + 0x270]
cmp rdx, 7
jbe 0x140052892
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x258]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005288d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140052e91
call fcn.140003e94
mov qword [rsp + 0x268], r15
mov qword [rsp + 0x270], 7
mov word [rsp + 0x258], r15w
mov rbx, qword [rsp + 0x60]
test rbx, rbx
je 0x140052902
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x1400528fd
test rbx, rbx
je 0x1400528fd
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400528de
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1400528f0
call fcn.140003e94
mov qword [rbx + 8], r15
mov edx, 0x18
mov rcx, rbx
call fcn.140003e94
mov qword [rsp + 0x60], r15
lea r9, [rsp + 0x40]
lea r8, str.AdapterDACType
mov rdx, qword [rdi]
call fcn.140054890
test al, al
je 0x140052a43
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x68]
call fcn.1400568b0
nop
mov rax, qword [rax]
test rax, rax
je 0x14005293b
mov rdx, qword [rax]
jmp 0x14005293e
mov rdx, r15
lea rcx, [rsp + 0x278]
call fcn.1400092fc
cmp qword [rax + 0x18], 7
jbe 0x140052955
mov rax, qword [rax]
test rax, rax
je 0x14005297e
mov r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], 0
jne 0x140052961
mov rdx, rax
lea rcx, [rsp + 0x108]
call fcn.140002b6c
jmp 0x14005298b
lea rcx, [rsp + 0x108]
call fcn.140002984
mov rdx, qword [rsp + 0x290]
cmp rdx, 7
jbe 0x1400529d3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x278]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400529ce
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140052e97
call fcn.140003e94
mov qword [rsp + 0x288], r15
mov qword [rsp + 0x290], 7
mov word [rsp + 0x278], r15w
mov rbx, qword [rsp + 0x68]
test rbx, rbx
je 0x140052a43
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x140052a3e
test rbx, rbx
je 0x140052a3e
mov rcx, qword [rbx]
test rcx, rcx
je 0x140052a1f
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140052a31
call fcn.140003e94
mov qword [rbx + 8], r15
mov edx, 0x18
mov rcx, rbx
call fcn.140003e94
mov qword [rsp + 0x68], r15
lea r9, [rsp + 0x40]
lea r8, str.AdapterRAM
mov rdx, qword [rdi]
call fcn.140054890
test al, al
je 0x140052ac0
cmp word [rsp + 0x40], 0x17
jne 0x140052a69
mov ebx, dword [rsp + 0x48]
jmp 0x140052ab1
lea rcx, [rsp + 0xb0]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov r9d, 0x17
xor r8d, r8d
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0xb0]
call qword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
test eax, eax
js 0x140052e9d
mov ebx, dword [rsp + 0xb8]
lea rcx, [rsp + 0xb0]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, ebx
lea rcx, [rsp + 0x180]
call fcn.140075ba0
lea r9, [rsp + 0x40]
lea r8, str.DriverVersion
mov rdx, qword [rdi]
call fcn.140054890
test al, al
je 0x140052bf7
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x70]
call fcn.1400568b0
nop
mov rax, qword [rax]
test rax, rax
je 0x140052af9
mov rdx, qword [rax]
jmp 0x140052afc
mov rdx, r15
lea rcx, [rsp + 0x298]
call fcn.1400092fc
cmp qword [rax + 0x18], 7
jbe 0x140052b13
mov rax, qword [rax]
test rax, rax
jne 0x140052b1d
mov r8d, r15d
jmp 0x140052b2f
mov r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], 0
jne 0x140052b24
mov rdx, rax
lea rcx, [rsp + 0x128]
call fcn.140002b6c
mov rdx, qword [rsp + 0x2b0]
cmp rdx, 7
jbe 0x140052b87
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x298]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140052b82
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140052ea5
call fcn.140003e94
mov qword [rsp + 0x2a8], r15
mov qword [rsp + 0x2b0], 7
mov word [rsp + 0x298], r15w
mov rbx, qword [rsp + 0x70]
test rbx, rbx
je 0x140052bf7
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x140052bf2
test rbx, rbx
je 0x140052bf2
mov rcx, qword [rbx]
test rcx, rcx
je 0x140052bd3
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140052be5
call fcn.140003e94
mov qword [rbx + 8], r15
mov edx, 0x18
mov rcx, rbx
call fcn.140003e94
mov qword [rsp + 0x70], r15
lea r9, [rsp + 0x40]
lea r8, str.InstalledDisplayDrivers
mov rdx, qword [rdi]
call fcn.140054890
lea r9, [rsp + 0x40]
lea r8, str.PNPDeviceID
mov rdx, qword [rdi]
call fcn.140054890
test al, al
je 0x140052dd5
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x78]
call fcn.1400568b0
nop
mov rax, qword [rax]
test rax, rax
je 0x140052c44
mov rdx, qword [rax]
jmp 0x140052c47
mov rdx, r15
lea rcx, [rsp + 0x2b8]
call fcn.1400092fc
mov rbx, rax
mov qword [rsp + 0x88], r12
call fcn.140010070
mov rcx, rax
test rax, rax
je 0x140052eab
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x90], rax
cmp qword [rbx + 0x18], 7
jbe 0x140052c8c
mov rbx, qword [rbx]
mov rdx, rbx
lea rcx, [rsp + 0x88]
call fcn.140063620
nop
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x198]
call fcn.140002c9c
mov eax, dword [rsp + 0x98]
mov dword [rsp + 0x1a0], eax
mov eax, dword [rsp + 0x9c]
mov dword [rsp + reloc.OLEAUT32.dll_OleTranslateColor], eax
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0x1a8], eax
mov eax, dword [rsp + 0xa4]
mov dword [rsp + 0x1ac], eax
mov eax, dword [rsp + 0xa8]
mov dword [rsp + 0x1b0], eax
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140052d1d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x2d0]
cmp rdx, 7
jbe 0x140052d65
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x2b8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140052d60
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140052eb6
call fcn.140003e94
mov qword [rsp + 0x2c8], r15
mov qword [rsp + 0x2d0], 7
mov word [rsp + 0x2b8], r15w
mov rbx, qword [rsp + 0x78]
test rbx, rbx
je 0x140052dd5
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x140052dd0
test rbx, rbx
je 0x140052dd0
mov rcx, qword [rbx]
test rcx, rcx
je 0x140052db1
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140052dc3
call fcn.140003e94
mov qword [rbx + 8], r15
mov edx, 0x18
mov rcx, rbx
call fcn.140003e94
mov qword [rsp + 0x78], r15
mov rax, qword [rsi + 8]
cmp rax, qword [rsi + 0x10]
je 0x140052df9
lea rdx, [rsp + 0xd0]
mov rcx, rax
call fcn.140028530
add qword [rsi + 8], 0x138
jmp 0x140052e0c
lea r8, [rsp + 0xd0]
mov rdx, rax
mov rcx, rsi
call fcn.140028040
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 + 0x40]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rsp + 0xd0]
call fcn.1400282a0
inc r14d
jmp 0x140052620
mov rcx, qword [rsp + 0x80]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x140052e53
lea rcx, [rsp + 0x210]
call fcn.140017b00
movzx eax, bl
mov rcx, qword [rsp + 0x920]
xor rcx, rsp
call fcn.140220ab0
mov rbx, qword [rsp + 0x970]
add rsp, 0x930
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
call fcn.14022a250
nop
call fcn.14022a250
nop
call fcn.14022a250
nop
mov ecx, eax
call fcn.140221ba0
nop
call fcn.14022a250
nop
mov ecx, 0x80004005
call fcn.140002e3c
nop
call fcn.14022a250
int3