Function at 0x1400502b0
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 [0x14030c918]
xor rax, rsp
mov qword [rsp + 0x920], rax
mov rsi, rdx
mov rdi, rcx
xor r15d, r15d
mov qword [rsp + 0x218], r15
movdqa xmm0, xmmword [0x1402c75d0]
movdqu xmmword [rsp + 0x228], xmm0
mov word [rsp + 0x218], r15w
mov byte [rsp + 0x210], r15b
lea rdx, str.srl::WMI::GetGpuInfo
lea rcx, [rsp + 0x218]
call fcn.140009b0c
nop
call fcn.14001fcc0
cmp dword [rax + 8], 4
jl 0x140050336
lea rcx, [rsp + 0x210]
call fcn.140015ae0
cmp byte [rdi + 0x28], 0
jne 0x140050350
lea rcx, [rsp + 0x210]
call fcn.140017400
xor al, al
jmp 0x140050c0e
xor bl, bl
mov byte [rsp + 0x30], bl
lea r8, [rsp + 0x80]
lea rdx, str.SELECT__FROM_Win32_VideoController
mov rcx, rdi
call fcn.140052be0
test al, al
je 0x140050bf7
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 0x140050be8
mov r14d, r15d
lea r12, vtable.srl::DeviceID.0
nop word [rax + rax]
cmp r14d, dword [rsp + 0x38]
jae 0x140050be8
lea rcx, [rsp + 0xd0]
call fcn.140024ca0
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.140052450
lea r9, [rsp + 0x40]
lea r8, str.Name
mov rdx, qword [rdi]
call fcn.140052450
test al, al
je 0x140050556
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x58]
call fcn.1400540c0
nop
mov rax, qword [rax]
test rax, rax
je 0x140050441
mov rdx, qword [rax]
jmp 0x140050444
mov rdx, r15
lea rcx, [rsp + 0x238]
call fcn.140009744
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x14005045e
mov rdx, qword [rax]
test rdx, rdx
je 0x14005048c
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140050470
mov r8d, eax
lea rcx, [rsp + 0xd8]
call fcn.140002aa8
jmp 0x140050499
lea rcx, [rsp + 0xd8]
call fcn.1400028b4
mov rdx, qword [rsp + 0x250]
cmp rdx, 8
jb 0x1400504e1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x238]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400504dc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140050c36
call fcn.14000410c
mov qword [rsp + 0x248], r15
mov qword [rsp + 0x250], 7
mov word [rsp + 0x238], r15w
mov rbx, qword [rsp + 0x58]
test rbx, rbx
je 0x140050551
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x14005054c
test rbx, rbx
je 0x14005054c
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005052d
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005053f
call fcn.140075f74
mov qword [rbx + 8], r15
mov edx, 0x18
mov rcx, rbx
call fcn.14000410c
mov qword [rsp + 0x58], r15
mov byte [rsp + 0x30], 1
lea r9, [rsp + 0x40]
lea r8, str.VideoProcessor
mov rdx, qword [rdi]
call fcn.140052450
test al, al
je 0x1400506a1
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x60]
call fcn.1400540c0
nop
mov rax, qword [rax]
test rax, rax
je 0x14005058f
mov rdx, qword [rax]
jmp 0x140050592
mov rdx, r15
lea rcx, [rsp + 0x258]
call fcn.140009744
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x1400505ac
mov rdx, qword [rax]
test rdx, rdx
je 0x1400505dc
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400505c0
mov r8d, eax
lea rcx, [rsp + 0xe8]
call fcn.140002aa8
jmp 0x1400505e9
lea rcx, [rsp + 0xe8]
call fcn.1400028b4
mov rdx, qword [rsp + 0x270]
cmp rdx, 8
jb 0x140050631
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x258]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005062c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140050c3c
call fcn.14000410c
mov qword [rsp + 0x268], r15
mov qword [rsp + 0x270], 7
mov word [rsp + 0x258], r15w
mov rbx, qword [rsp + 0x60]
test rbx, rbx
je 0x1400506a1
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x14005069c
test rbx, rbx
je 0x14005069c
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005067d
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14005068f
call fcn.140075f74
mov qword [rbx + 8], r15
mov edx, 0x18
mov rcx, rbx
call fcn.14000410c
mov qword [rsp + 0x60], r15
lea r9, [rsp + 0x40]
lea r8, str.AdapterDACType
mov rdx, qword [rdi]
call fcn.140052450
test al, al
je 0x1400507e4
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x68]
call fcn.1400540c0
nop
mov rax, qword [rax]
test rax, rax
je 0x1400506da
mov rdx, qword [rax]
jmp 0x1400506dd
mov rdx, r15
lea rcx, [rsp + 0x278]
call fcn.140009744
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x1400506f7
mov rdx, qword [rax]
test rdx, rdx
je 0x14005071f
mov rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], 0
jne 0x140050703
mov r8d, eax
lea rcx, [rsp + 0x108]
call fcn.140002aa8
jmp 0x14005072c
lea rcx, [rsp + 0x108]
call fcn.1400028b4
mov rdx, qword [rsp + 0x290]
cmp rdx, 8
jb 0x140050774
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x278]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005076f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140050c42
call fcn.14000410c
mov qword [rsp + 0x288], r15
mov qword [rsp + 0x290], 7
mov word [rsp + 0x278], r15w
mov rbx, qword [rsp + 0x68]
test rbx, rbx
je 0x1400507e4
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x1400507df
test rbx, rbx
je 0x1400507df
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400507c0
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1400507d2
call fcn.140075f74
mov qword [rbx + 8], r15
mov edx, 0x18
mov rcx, rbx
call fcn.14000410c
mov qword [rsp + 0x68], r15
lea r9, [rsp + 0x40]
lea r8, str.AdapterRAM
mov rdx, qword [rdi]
call fcn.140052450
test al, al
je 0x140050861
cmp word [rsp + 0x40], 0x17
jne 0x14005080a
mov ebx, dword [rsp + 0x48]
jmp 0x140050852
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 0x140050c48
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.14006c530
lea r9, [rsp + 0x40]
lea r8, str.DriverVersion
mov rdx, qword [rdi]
call fcn.140052450
test al, al
je 0x1400509a2
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x70]
call fcn.1400540c0
nop
mov rax, qword [rax]
test rax, rax
je 0x14005089a
mov rdx, qword [rax]
jmp 0x14005089d
mov rdx, r15
lea rcx, [rsp + 0x298]
call fcn.140009744
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x1400508b7
mov rdx, qword [rax]
test rdx, rdx
jne 0x1400508c1
mov eax, r15d
jmp 0x1400508da
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400508d0
mov r8d, eax
lea rcx, [rsp + 0x128]
call fcn.140002aa8
mov rdx, qword [rsp + 0x2b0]
cmp rdx, 8
jb 0x140050932
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x298]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005092d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140050c50
call fcn.14000410c
mov qword [rsp + 0x2a8], r15
mov qword [rsp + 0x2b0], 7
mov word [rsp + 0x298], r15w
mov rbx, qword [rsp + 0x70]
test rbx, rbx
je 0x1400509a2
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x14005099d
test rbx, rbx
je 0x14005099d
mov rcx, qword [rbx]
test rcx, rcx
je 0x14005097e
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140050990
call fcn.140075f74
mov qword [rbx + 8], r15
mov edx, 0x18
mov rcx, rbx
call fcn.14000410c
mov qword [rsp + 0x70], r15
lea r9, [rsp + 0x40]
lea r8, str.InstalledDisplayDrivers
mov rdx, qword [rdi]
call fcn.140052450
lea r9, [rsp + 0x40]
lea r8, str.PNPDeviceID
mov rdx, qword [rdi]
call fcn.140052450
test al, al
je 0x140050b80
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x78]
call fcn.1400540c0
nop
mov rax, qword [rax]
test rax, rax
je 0x1400509ef
mov rdx, qword [rax]
jmp 0x1400509f2
mov rdx, r15
lea rcx, [rsp + 0x2b8]
call fcn.140009744
mov rbx, rax
mov qword [rsp + 0x88], r12
call fcn.140010210
mov rcx, rax
test rax, rax
je 0x140050c56
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x90], rax
cmp qword [rbx + 0x18], 8
jb 0x140050a37
mov rbx, qword [rbx]
mov rdx, rbx
lea rcx, [rsp + 0x88]
call fcn.1400617a0
nop
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x198]
call fcn.140002bd8
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 0x140050ac8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x2d0]
cmp rdx, 8
jb 0x140050b10
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x2b8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140050b0b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140050c61
call fcn.14000410c
mov qword [rsp + 0x2c8], r15
mov qword [rsp + 0x2d0], 7
mov word [rsp + 0x2b8], r15w
mov rbx, qword [rsp + 0x78]
test rbx, rbx
je 0x140050b80
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x140050b7b
test rbx, rbx
je 0x140050b7b
mov rcx, qword [rbx]
test rcx, rcx
je 0x140050b5c
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140050b6e
call fcn.140075f74
mov qword [rbx + 8], r15
mov edx, 0x18
mov rcx, rbx
call fcn.14000410c
mov qword [rsp + 0x78], r15
mov rax, qword [rsi + 8]
cmp rax, qword [rsi + 0x10]
je 0x140050ba4
lea rdx, [rsp + 0xd0]
mov rcx, rax
call fcn.140026430
add qword [rsi + 8], 0x138
jmp 0x140050bb7
lea r8, [rsp + 0xd0]
mov rdx, rax
mov rcx, rsi
call fcn.140026190
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.140026840
inc r14d
jmp 0x1400503c0
mov rcx, qword [rsp + 0x80]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x140050bfe
lea rcx, [rsp + 0x210]
call fcn.140017400
movzx eax, bl
mov rcx, qword [rsp + 0x920]
xor rcx, rsp
call fcn.140212f90
mov rbx, qword [rsp + 0x970]
add rsp, 0x930
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
call fcn.14021bfcc
nop
call fcn.14021bfcc
nop
call fcn.14021bfcc
nop
mov ecx, eax
call fcn.140214220
nop
call fcn.14021bfcc
nop
mov ecx, 0x80004005
call fcn.140002d2c
nop
call fcn.14021bfcc
int3