Function at 0x14004f390
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 [0x14030b918]
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 [0x1402c5610]
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.140020060
cmp dword [rax + 8], 4
jl 0x14004f416
lea rcx, [rsp + 0x210]
call fcn.140015b20
cmp byte [rdi + 0x28], 0
jne 0x14004f430
lea rcx, [rsp + 0x210]
call fcn.140017440
xor al, al
jmp 0x14004fcee
xor bl, bl
mov byte [rsp + 0x30], bl
lea r8, [rsp + 0x80]
lea rdx, str.SELECT__FROM_Win32_VideoController
mov rcx, rdi
call fcn.140051d60
test al, al
je 0x14004fcd7
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 0x14004fcc8
mov r14d, r15d
lea r12, vtable.srl::DeviceID.0
nop word [rax + rax]
cmp r14d, dword [rsp + 0x38]
jae 0x14004fcc8
lea rcx, [rsp + 0xd0]
call fcn.140025040
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.1400515d0
lea r9, [rsp + 0x40]
lea r8, str.Name
mov rdx, qword [rdi]
call fcn.1400515d0
test al, al
je 0x14004f636
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x58]
call fcn.140052cf0
nop
mov rax, qword [rax]
test rax, rax
je 0x14004f521
mov rdx, qword [rax]
jmp 0x14004f524
mov rdx, r15
lea rcx, [rsp + 0x238]
call fcn.140009744
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x14004f53e
mov rdx, qword [rax]
test rdx, rdx
je 0x14004f56c
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x14004f550
mov r8d, eax
lea rcx, [rsp + 0xd8]
call fcn.140002aa8
jmp 0x14004f579
lea rcx, [rsp + 0xd8]
call fcn.1400028b4
mov rdx, qword [rsp + 0x250]
cmp rdx, 8
jb 0x14004f5c1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x238]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004f5bc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004fd16
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 0x14004f631
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x14004f62c
test rbx, rbx
je 0x14004f62c
mov rcx, qword [rbx]
test rcx, rcx
je 0x14004f60d
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14004f61f
call fcn.140074954
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.1400515d0
test al, al
je 0x14004f781
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x60]
call fcn.140052cf0
nop
mov rax, qword [rax]
test rax, rax
je 0x14004f66f
mov rdx, qword [rax]
jmp 0x14004f672
mov rdx, r15
lea rcx, [rsp + 0x258]
call fcn.140009744
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x14004f68c
mov rdx, qword [rax]
test rdx, rdx
je 0x14004f6bc
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x14004f6a0
mov r8d, eax
lea rcx, [rsp + 0xe8]
call fcn.140002aa8
jmp 0x14004f6c9
lea rcx, [rsp + 0xe8]
call fcn.1400028b4
mov rdx, qword [rsp + 0x270]
cmp rdx, 8
jb 0x14004f711
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x258]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004f70c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004fd1c
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 0x14004f781
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x14004f77c
test rbx, rbx
je 0x14004f77c
mov rcx, qword [rbx]
test rcx, rcx
je 0x14004f75d
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14004f76f
call fcn.140074954
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.1400515d0
test al, al
je 0x14004f8c4
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x68]
call fcn.140052cf0
nop
mov rax, qword [rax]
test rax, rax
je 0x14004f7ba
mov rdx, qword [rax]
jmp 0x14004f7bd
mov rdx, r15
lea rcx, [rsp + 0x278]
call fcn.140009744
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x14004f7d7
mov rdx, qword [rax]
test rdx, rdx
je 0x14004f7ff
mov rax, 0xffffffffffffffff
inc rax
cmp word [rdx + rax*2], 0
jne 0x14004f7e3
mov r8d, eax
lea rcx, [rsp + 0x108]
call fcn.140002aa8
jmp 0x14004f80c
lea rcx, [rsp + 0x108]
call fcn.1400028b4
mov rdx, qword [rsp + 0x290]
cmp rdx, 8
jb 0x14004f854
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x278]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004f84f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004fd22
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 0x14004f8c4
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x14004f8bf
test rbx, rbx
je 0x14004f8bf
mov rcx, qword [rbx]
test rcx, rcx
je 0x14004f8a0
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14004f8b2
call fcn.140074954
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.1400515d0
test al, al
je 0x14004f941
cmp word [rsp + 0x40], 0x17
jne 0x14004f8ea
mov ebx, dword [rsp + 0x48]
jmp 0x14004f932
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 0x14004fd28
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.140069260
lea r9, [rsp + 0x40]
lea r8, str.DriverVersion
mov rdx, qword [rdi]
call fcn.1400515d0
test al, al
je 0x14004fa82
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x70]
call fcn.140052cf0
nop
mov rax, qword [rax]
test rax, rax
je 0x14004f97a
mov rdx, qword [rax]
jmp 0x14004f97d
mov rdx, r15
lea rcx, [rsp + 0x298]
call fcn.140009744
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x14004f997
mov rdx, qword [rax]
test rdx, rdx
jne 0x14004f9a1
mov eax, r15d
jmp 0x14004f9ba
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x14004f9b0
mov r8d, eax
lea rcx, [rsp + 0x128]
call fcn.140002aa8
mov rdx, qword [rsp + 0x2b0]
cmp rdx, 8
jb 0x14004fa12
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x298]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004fa0d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004fd30
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 0x14004fa82
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x14004fa7d
test rbx, rbx
je 0x14004fa7d
mov rcx, qword [rbx]
test rcx, rcx
je 0x14004fa5e
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14004fa70
call fcn.140074954
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.1400515d0
lea r9, [rsp + 0x40]
lea r8, str.PNPDeviceID
mov rdx, qword [rdi]
call fcn.1400515d0
test al, al
je 0x14004fc60
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x78]
call fcn.140052cf0
nop
mov rax, qword [rax]
test rax, rax
je 0x14004facf
mov rdx, qword [rax]
jmp 0x14004fad2
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 0x14004fd36
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x90], rax
cmp qword [rbx + 0x18], 8
jb 0x14004fb17
mov rbx, qword [rbx]
mov rdx, rbx
lea rcx, [rsp + 0x88]
call fcn.14005e5b0
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 0x14004fba8
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 0x14004fbf0
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x2b8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004fbeb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004fd41
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 0x14004fc60
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x14004fc5b
test rbx, rbx
je 0x14004fc5b
mov rcx, qword [rbx]
test rcx, rcx
je 0x14004fc3c
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r15
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14004fc4e
call fcn.140074954
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 0x14004fc84
lea rdx, [rsp + 0xd0]
mov rcx, rax
call fcn.1400267d0
add qword [rsi + 8], 0x138
jmp 0x14004fc97
lea r8, [rsp + 0xd0]
mov rdx, rax
mov rcx, rsi
call fcn.140026530
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.140026be0
inc r14d
jmp 0x14004f4a0
mov rcx, qword [rsp + 0x80]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
jmp 0x14004fcde
lea rcx, [rsp + 0x210]
call fcn.140017440
movzx eax, bl
mov rcx, qword [rsp + 0x920]
xor rcx, rsp
call fcn.140211970
mov rbx, qword [rsp + 0x970]
add rsp, 0x930
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
call fcn.14021a9ac
nop
call fcn.14021a9ac
nop
call fcn.14021a9ac
nop
mov ecx, eax
call fcn.140212c00
nop
call fcn.14021a9ac
nop
mov ecx, 0x80004005
call fcn.140002d2c
nop
call fcn.14021a9ac
int3