Function at 0x14001b1d0
Capabilities:
Connect to wmi namespace via wbemlocator

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x880
mov rax, qword [0x14003c150]
xor rax, rsp
mov qword [rsp + 0x870], rax
mov r15, rcx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
js 0x14001c7eb
xor r12d, r12d
mov qword [rsp + 0xb8], r12
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x20], rax
lea r9, [0x14002fff0]
xor edx, edx
lea r8d, [r12 + 1]
lea rcx, [0x140030000]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x14001b255
call qword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x14001c7eb
mov qword [rsp + 0xb0], r12
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax]
mov rdi, qword [rcx + 0x18]
mov ecx, 0x18
call fcn.140028930
mov rbx, rax
mov qword [rsp + 0x100], rax
test rax, rax
je 0x14001b2ac
mov qword [rax + 8], r12
mov dword [rax + 0x10], 1
lea rcx, str.ROOTCIMV2
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rbx], rax
test rax, rax
je 0x14001c819
jmp 0x14001b2af
mov rbx, r12
mov qword [rsp + 0x168], rbx
test rbx, rbx
je 0x14001c824
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rbx]
mov rcx, qword [rsp + 0xb8]
call rdi
mov edi, eax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
cmp ecx, 1
jne 0x14001b335
mov rcx, qword [rbx]
test rcx, rcx
je 0x14001b316
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r12
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14001b328
call fcn.1400286c0
mov qword [rbx + 8], r12
mov edx, 0x18
mov rcx, rbx
call fcn.1400286c0
test edi, edi
jns 0x14001b352
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rcx]
call qword [rax + 0x10]
call qword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x14001c7eb
mov dword [rsp + 0x38], r12d
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0xa]
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
jns 0x14001b3af
mov rcx, qword [rsp + 0xb0]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rcx]
call qword [rax + 0x10]
call qword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x14001c7eb
mov qword [rsp + 0xf8], r12
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rax]
mov r14, qword [rcx + 0xa0]
mov ecx, 0x18
call fcn.140028930
mov rbx, rax
mov qword [rsp + 0xe8], rax
test rax, rax
je 0x14001b3ff
mov qword [rax + 8], r12
mov dword [rax + 0x10], 1
lea rcx, str.SELECT_Availability__AdapterCompatibility__AdapterRAM__Caption__Description__DriverDate__DriverVersion__VideoModeDescription__PNPDeviceID_InstalledDisplayDrivers_CurrentHorizontalResolution_CurrentVerticalResolution_CurrentNumberOfColors__CurrentScanMode_CurrentBitsPerPixel_VideoProcessor_Name_FROM_Win32_VideoController
call fcn.140029910
mov qword [rbx], rax
jmp 0x14001b402
mov rbx, r12
mov qword [rsp + 0x158], rbx
test rbx, rbx
je 0x14001c82e
mov rsi, qword [rbx]
mov ecx, 0x18
call fcn.140028930
mov rdi, rax
mov qword [rsp + 0xe8], rax
test rax, rax
je 0x14001b44c
mov qword [rax + 8], r12
mov dword [rax + 0x10], 1
lea rcx, [0x14002ec54]
call fcn.140029910
mov qword [rdi], rax
jmp 0x14001b44f
mov rdi, r12
mov qword [rsp + 0x160], rdi
test rdi, rdi
je 0x14001c839
lea rax, [rsp + 0xf8]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r12
mov r9d, 0x20
mov r8, rsi
mov rdx, qword [rdi]
mov rcx, qword [rsp + 0xb0]
call r14
mov esi, eax
mov ecx, 0xffffffff
lock xadd dword [rdi + 0x10], ecx
cmp ecx, 1
jne 0x14001b4cb
mov rcx, qword [rdi]
test rcx, rcx
je 0x14001b4ab
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rdi], r12
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x14001b4bd
call fcn.1400286c0
mov qword [rdi + 8], r12
mov edx, 0x18
mov rcx, rdi
call fcn.1400286c0
nop
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x14001b50a
mov rcx, qword [rbx]
test rcx, rcx
je 0x14001b4eb
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r12
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14001b4fd
call fcn.1400286c0
mov qword [rbx + 8], r12
mov edx, 0x18
mov rcx, rbx
call fcn.1400286c0
test esi, esi
jns 0x14001b535
mov rcx, qword [rsp + 0xb0]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rcx]
call qword [rax + 0x10]
call qword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x14001c7eb
mov qword [rsp + 0x68], r12
mov dword [rsp + 0xd8], r12d
lea rsi, [0x140030024]
nop dword [rax]
mov rcx, qword [rsp + 0xf8]
test rcx, rcx
je 0x14001c7ba
mov rax, qword [rcx]
lea rdx, [rsp + 0xd8]
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x68]
mov edx, 0xffffffff
lea r8d, [rdx + 2]
call qword [rax + 0x20]
test eax, eax
je 0x14001b594
cmp dword [rsp + 0xd8], 0
je 0x14001c7ba
call fcn.140001540
mov rcx, rax
test rax, rax
je 0x14001c844
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xf0], rax
lea rcx, [rsp + 0xf0]
cmp rsi, 0x10000
jae 0x14001b5d2
movzx edx, si
call fcn.14000acd0
jmp 0x14001b5de
xor r8d, r8d
mov rdx, rsi
call fcn.14000aee0
nop
call fcn.140001540
mov rcx, rax
test rax, rax
je 0x14001c84f
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xa8], rax
lea rcx, [rsp + 0xa8]
cmp rsi, 0x10000
jae 0x14001b61c
movzx edx, si
call fcn.14000acd0
jmp 0x14001b628
xor r8d, r8d
mov rdx, rsi
call fcn.14000aee0
nop
call fcn.140001540
mov rcx, rax
test rax, rax
je 0x14001c85a
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xa0], rax
lea rcx, [rsp + 0xa0]
cmp rsi, 0x10000
jae 0x14001b666
movzx edx, si
call fcn.14000acd0
jmp 0x14001b672
xor r8d, r8d
mov rdx, rsi
call fcn.14000aee0
nop
call fcn.140001540
mov rcx, rax
test rax, rax
je 0x14001c865
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xe0], rax
lea rcx, [rsp + 0xe0]
cmp rsi, 0x10000
jae 0x14001b6b0
movzx edx, si
call fcn.14000acd0
jmp 0x14001b6bc
xor r8d, r8d
mov rdx, rsi
call fcn.14000aee0
nop
call fcn.140001540
mov rcx, rax
test rax, rax
je 0x14001c870
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x98], rax
lea rcx, [rsp + 0x98]
cmp rsi, 0x10000
jae 0x14001b6fa
movzx edx, si
call fcn.14000acd0
jmp 0x14001b706
xor r8d, r8d
mov rdx, rsi
call fcn.14000aee0
nop
call fcn.140001540
mov rcx, rax
test rax, rax
je 0x14001c87b
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x90], rax
lea rcx, [rsp + 0x90]
cmp rsi, 0x10000
jae 0x14001b744
movzx edx, si
call fcn.14000acd0
jmp 0x14001b750
xor r8d, r8d
mov rdx, rsi
call fcn.14000aee0
nop
call fcn.140001540
mov rcx, rax
test rax, rax
je 0x14001c886
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x88], rax
lea rcx, [rsp + 0x88]
cmp rsi, 0x10000
jae 0x14001b78e
movzx edx, si
call fcn.14000acd0
jmp 0x14001b79a
xor r8d, r8d
mov rdx, rsi
call fcn.14000aee0
nop
call fcn.140001540
mov rcx, rax
test rax, rax
je 0x14001c891
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x80], rax
lea rcx, [rsp + 0x80]
cmp rsi, 0x10000
jae 0x14001b7d8
movzx edx, si
call fcn.14000acd0
jmp 0x14001b7e4
xor r8d, r8d
mov rdx, rsi
call fcn.14000aee0
nop
call fcn.140001540
mov rcx, rax
test rax, rax
je 0x14001c89c
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x78]
cmp rsi, 0x10000
jae 0x14001b81c
movzx edx, si
call fcn.14000acd0
jmp 0x14001b828
xor r8d, r8d
mov rdx, rsi
call fcn.14000aee0
nop
call fcn.140001540
mov rcx, rax
test rax, rax
je 0x14001c8a7
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x70], rax
lea rcx, [rsp + 0x70]
cmp rsi, 0x10000
jae 0x14001b860
movzx edx, si
call fcn.14000acd0
jmp 0x14001b86c
xor r8d, r8d
mov rdx, rsi
call fcn.14000aee0
nop
call fcn.140001540
mov rcx, rax
test rax, rax
je 0x14001c8b2
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x60], rax
lea rcx, [rsp + 0x60]
cmp rsi, 0x10000
jae 0x14001b8a4
movzx edx, si
call fcn.14000acd0
jmp 0x14001b8b0
xor r8d, r8d
mov rdx, rsi
call fcn.14000aee0
nop
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0xc0]
xor r8d, r8d
lea rdx, [0x14002ec58]
call qword [rax + 0x20]
test eax, eax
jne 0x14001b987
movzx edx, word [rsp + 0xc8]
lea rcx, [rsp + 0x148]
call fcn.14001aa60
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0xa8]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14001b963
mov eax, dword [rbx + 0x10]
shr eax, 0x1f
test al, al
jne 0x14001b951
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14001b951
call fcn.14000adf0
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14001b943
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rVariantCopy + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0xa8], rax
jmp 0x14001b963
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xa8]
call fcn.14000aee0
nop
mov rdx, qword [rsp + 0x148]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001b987
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0xc0]
xor r8d, r8d
lea rdx, str.AdapterCompatibility
call qword [rax + 0x20]
test eax, eax
jne 0x14001bad8
mov r8, qword [rsp + 0xc8]
test r8, r8
je 0x14001bad8
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x100
lea rax, [rsp + 0x170]
mov qword [rsp + 0x20], rax
xor edx, edx
xor ecx, ecx
lea r9d, [rdx - 1]
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rdx, [rsp + 0x170]
lea rcx, [rsp + 0xa0]
call fcn.14000a8c0
lea rcx, [rsp + 0xa0]
call fcn.14001fd00
mov rax, qword [rsp + 0xa0]
mov r9d, 0x64
cmp dword [rax - 0x10], r9d
cmovl r9d, dword [rax - 0x10]
xor r8d, r8d
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0xa0]
call fcn.14001cce0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0xa0]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14001bab4
mov eax, dword [rbx + 0x10]
shr eax, 0x1f
test al, al
jne 0x14001baa2
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14001baa2
call fcn.14000adf0
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14001ba94
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rVariantCopy + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0xa0], rax
jmp 0x14001bab4
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xa0]
call fcn.14000aee0
nop
mov rdx, qword [rsp + 0x150]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001bad8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0xc0]
xor r8d, r8d
lea rdx, str.AdapterRAM
call qword [rax + 0x20]
test eax, eax
jne 0x14001bb29
mov rax, qword [rsp + 0xc8]
test eax, eax
je 0x14001bb29
shr eax, 0x14
mov r8d, eax
lea rdx, str._u_MB
lea rcx, [rsp + 0xe0]
call fcn.14000b540
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0xc0]
xor r8d, r8d
lea rdx, str.Caption
call qword [rax + 0x20]
test eax, eax
jne 0x14001bc7a
mov r8, qword [rsp + 0xc8]
test r8, r8
je 0x14001bc7a
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x100
lea rax, [rsp + 0x270]
mov qword [rsp + 0x20], rax
xor edx, edx
xor ecx, ecx
lea r9d, [rdx - 1]
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rdx, [rsp + 0x270]
lea rcx, [rsp + 0x98]
call fcn.14000a8c0
lea rcx, [rsp + 0x98]
call fcn.14001fd00
mov rax, qword [rsp + 0x98]
mov r9d, 0x64
cmp dword [rax - 0x10], r9d
cmovl r9d, dword [rax - 0x10]
xor r8d, r8d
lea rdx, [rsp + 0x108]
lea rcx, [rsp + 0x98]
call fcn.14001cce0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x98]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14001bc56
mov eax, dword [rbx + 0x10]
shr eax, 0x1f
test al, al
jne 0x14001bc44
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14001bc44
call fcn.14000adf0
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14001bc36
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rVariantCopy + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x98], rax
jmp 0x14001bc56
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x98]
call fcn.14000aee0
nop
mov rdx, qword [rsp + 0x108]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001bc7a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0xc0]
xor r8d, r8d
lea rdx, str.Description
call qword [rax + 0x20]
test eax, eax
jne 0x14001bdcb
mov r8, qword [rsp + 0xc8]
test r8, r8
je 0x14001bdcb
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x100
lea rax, [rsp + 0x370]
mov qword [rsp + 0x20], rax
xor edx, edx
xor ecx, ecx
lea r9d, [rdx - 1]
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rdx, [rsp + 0x370]
lea rcx, [rsp + 0x90]
call fcn.14000a8c0
lea rcx, [rsp + 0x90]
call fcn.14001fd00
mov rax, qword [rsp + 0x90]
mov r9d, 0x64
cmp dword [rax - 0x10], r9d
cmovl r9d, dword [rax - 0x10]
xor r8d, r8d
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x90]
call fcn.14001cce0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x90]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14001bda7
mov eax, dword [rbx + 0x10]
shr eax, 0x1f
test al, al
jne 0x14001bd95
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14001bd95
call fcn.14000adf0
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14001bd87
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rVariantCopy + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x90], rax
jmp 0x14001bda7
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x90]
call fcn.14000aee0
nop
mov rdx, qword [rsp + 0x110]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001bdcb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0xc0]
xor r8d, r8d
lea rdx, str.DriverDate
call qword [rax + 0x20]
test eax, eax
jne 0x14001bf1c
mov r8, qword [rsp + 0xc8]
test r8, r8
je 0x14001bf1c
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x100
lea rax, [rsp + 0x470]
mov qword [rsp + 0x20], rax
xor edx, edx
xor ecx, ecx
lea r9d, [rdx - 1]
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rdx, [rsp + 0x470]
lea rcx, [rsp + 0x88]
call fcn.14000a8c0
lea rcx, [rsp + 0x88]
call fcn.14001fd00
mov rax, qword [rsp + 0x88]
mov r9d, 0x64
cmp dword [rax - 0x10], r9d
cmovl r9d, dword [rax - 0x10]
xor r8d, r8d
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0x88]
call fcn.14001cce0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x88]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14001bef8
mov eax, dword [rbx + 0x10]
shr eax, 0x1f
test al, al
jne 0x14001bee6
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14001bee6
call fcn.14000adf0
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14001bed8
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rVariantCopy + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x88], rax
jmp 0x14001bef8
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x88]
call fcn.14000aee0
nop
mov rdx, qword [rsp + 0x118]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001bf1c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0xc0]
xor r8d, r8d
lea rdx, str.DriverVersion
call qword [rax + 0x20]
test eax, eax
jne 0x14001c06d
mov r8, qword [rsp + 0xc8]
test r8, r8
je 0x14001c06d
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x100
lea rax, [rsp + 0x570]
mov qword [rsp + 0x20], rax
xor edx, edx
xor ecx, ecx
lea r9d, [rdx - 1]
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rdx, [rsp + 0x570]
lea rcx, [rsp + 0x80]
call fcn.14000a8c0
lea rcx, [rsp + 0x80]
call fcn.14001fd00
mov rax, qword [rsp + 0x80]
mov r9d, 0x64
cmp dword [rax - 0x10], r9d
cmovl r9d, dword [rax - 0x10]
xor r8d, r8d
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x80]
call fcn.14001cce0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x80]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14001c049
mov eax, dword [rbx + 0x10]
shr eax, 0x1f
test al, al
jne 0x14001c037
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14001c037
call fcn.14000adf0
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14001c029
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rVariantCopy + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x80], rax
jmp 0x14001c049
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x80]
call fcn.14000aee0
nop
mov rdx, qword [rsp + 0x120]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c06d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0xc0]
xor r8d, r8d
lea rdx, str.VideoModeDescription
call qword [rax + 0x20]
test eax, eax
jne 0x14001c1a9
mov r8, qword [rsp + 0xc8]
test r8, r8
je 0x14001c1a9
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x100
lea rax, [rsp + 0x670]
mov qword [rsp + 0x20], rax
xor edx, edx
xor ecx, ecx
lea r9d, [rdx - 1]
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rdx, [rsp + 0x670]
lea rcx, [rsp + 0x78]
call fcn.14000a8c0
lea rcx, [rsp + 0x78]
call fcn.14001fd00
mov rax, qword [rsp + 0x78]
mov r9d, 0x64
cmp dword [rax - 0x10], r9d
cmovl r9d, dword [rax - 0x10]
xor r8d, r8d
lea rdx, [rsp + 0x128]
lea rcx, [rsp + 0x78]
call fcn.14001cce0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x78]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14001c185
mov eax, dword [rbx + 0x10]
shr eax, 0x1f
test al, al
jne 0x14001c176
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14001c176
call fcn.14000adf0
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14001c16b
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rVariantCopy + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x78], rax
jmp 0x14001c185
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x78]
call fcn.14000aee0
nop
mov rdx, qword [rsp + 0x128]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c1a9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0xc0]
xor r8d, r8d
lea rdx, str.PNPDeviceID
call qword [rax + 0x20]
test eax, eax
jne 0x14001c2e5
mov r8, qword [rsp + 0xc8]
test r8, r8
je 0x14001c2e5
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x100
lea rax, [rsp + 0x770]
mov qword [rsp + 0x20], rax
xor edx, edx
xor ecx, ecx
lea r9d, [rdx - 1]
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rdx, [rsp + 0x770]
lea rcx, [rsp + 0x70]
call fcn.14000a8c0
lea rcx, [rsp + 0x70]
call fcn.14001fd00
mov rax, qword [rsp + 0x70]
mov r9d, 0x64
cmp dword [rax - 0x10], r9d
cmovl r9d, dword [rax - 0x10]
xor r8d, r8d
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x70]
call fcn.14001cce0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x70]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14001c2c1
mov eax, dword [rbx + 0x10]
shr eax, 0x1f
test al, al
jne 0x14001c2b2
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14001c2b2
call fcn.14000adf0
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14001c2a7
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rVariantCopy + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x70], rax
jmp 0x14001c2c1
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x70]
call fcn.14000aee0
nop
mov rdx, qword [rsp + 0x130]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c2e5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0xc0]
xor r8d, r8d
lea rdx, str.InstalledDisplayDrivers
call qword [rax + 0x20]
test eax, eax
jne 0x14001c563
mov rax, qword [rsp + 0xc8]
mov rdx, rsi
test rax, rax
cmovne rdx, rax
test rdx, rdx
jne 0x14001c330
mov eax, r12d
jmp 0x14001c34a
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x14001c340
mov r8d, eax
lea rcx, [rsp + 0x60]
call fcn.14000aee0
mov rax, qword [rsp + 0x60]
mov r9d, 0x1000
cmp dword [rax - 0x10], r9d
cmovl r9d, dword [rax - 0x10]
xor r8d, r8d
lea rdx, [rsp + 0x138]
lea rcx, [rsp + 0x60]
call fcn.14001cce0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x60]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14001c3e6
mov eax, dword [rbx + 0x10]
shr eax, 0x1f
test al, al
jne 0x14001c3d7
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14001c3d7
call fcn.14000adf0
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14001c3cc
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rVariantCopy + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x60], rax
jmp 0x14001c3e6
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.14000aee0
nop
mov rdx, qword [rsp + 0x138]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c40a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x140]
call fcn.14001c8c0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x60]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14001c482
mov eax, dword [rbx + 0x10]
shr eax, 0x1f
test al, al
jne 0x14001c473
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14001c473
call fcn.14000adf0
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14001c468
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rVariantCopy + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x60], rax
jmp 0x14001c482
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.14000aee0
nop
mov rdx, qword [rsp + 0x140]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c4a6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
lea rcx, [rsp + 0x60]
call fcn.14001fd00
mov rax, qword [rsp + 0x60]
mov r9d, 0x64
cmp dword [rax - 0x10], r9d
cmovl r9d, dword [rax - 0x10]
xor r8d, r8d
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x60]
call fcn.14001cce0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x60]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14001c53f
mov eax, dword [rbx + 0x10]
shr eax, 0x1f
test al, al
jne 0x14001c530
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14001c530
call fcn.14000adf0
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14001c525
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rVariantCopy + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x60], rax
jmp 0x14001c53f
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.14000aee0
nop
mov rdx, qword [rsp + 0x100]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c563
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xa8]
lea rdx, str._gpuinfo_availability__s__adapterCompatibility__s__adapterRAM__s__caption__s__description__s__driverDate__s__driverVersion__s__videoModeDescription__s__pnpDeviceID__s__installedDisplayDrivers__s___
lea rcx, [rsp + 0xf0]
call fcn.14000b540
mov rdx, qword [rsp + 0xf0]
lea rbx, [rdx - 0x18]
mov r8d, dword [rbx + 8]
mov rcx, r15
call fcn.14000ab00
mov r8d, 1
lea rdx, [0x140031388]
mov rcx, r15
call fcn.14000ab00
lea rcx, [rsp + 0xc0]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c64f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c671
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c693
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0x80]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c6b8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0x88]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c6dd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c702
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c727
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0xe0]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c74c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c771
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0xa8]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c796
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov eax, 0xffffffff
lock xadd dword [rbx + 0x10], eax
sub eax, 1
jg 0x14001b550
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + VariantCopy]
jmp 0x14001b550
mov rcx, qword [rsp + 0xb0]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0xf8]
mov rax, qword [rcx]
call qword [rax + 0x10]
call qword [sym.imp.ole32.dll_CoUninitialize]
nop
mov rcx, qword [rsp + 0x870]
xor rcx, rsp
call fcn.1400286a0
lea r11, [rsp + 0x880]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
ret
mov ecx, 0x8007000e
call fcn.140029900
nop
mov ecx, 0x8007000e
call fcn.140029900
mov ecx, 0x8007000e
call fcn.140029900
nop
mov ecx, 0x8007000e
call fcn.140029900
nop
mov ecx, 0x80004005
call fcn.140001300
nop
mov ecx, 0x80004005
call fcn.140001300
nop
mov ecx, 0x80004005
call fcn.140001300
nop
mov ecx, 0x80004005
call fcn.140001300
nop
mov ecx, 0x80004005
call fcn.140001300
nop
mov ecx, 0x80004005
call fcn.140001300
nop
mov ecx, 0x80004005
call fcn.140001300
nop
mov ecx, 0x80004005
call fcn.140001300
nop
mov ecx, 0x80004005
call fcn.140001300
nop
mov ecx, 0x80004005
call fcn.140001300
nop
mov ecx, 0x80004005
call fcn.140001300
int3