Function at 0x140002cb0
Capabilities:
Link many functions at runtime

Disassembly:
push rbp
push rsi
push r14
lea rbp, [rsp - 0x10]
sub rsp, 0x110
mov rax, qword [0x1400700d8]
xor rax, rsp
mov qword [rbp - 0x20], rax
mov rsi, rcx
lea rcx, str.gdi32.dll
call qword [sym.imp.kernel32.dll_LoadLibraryW]
mov qword [rsi + 0x30], rax
test rax, rax
je 0x14000310f
lea rdx, str.D3DKMTOpenAdapterFromGdiDisplayName
mov rcx, rax
call qword [sym.imp.kernel32.dll_GetProcAddress]
mov rcx, qword [rsi + 0x30]
lea rdx, str.D3DKMTOpenAdapterFromDeviceName
mov qword [rsp + 0x38], rax
call qword [sym.imp.kernel32.dll_GetProcAddress]
mov rcx, qword [rsi + 0x30]
lea rdx, str.D3DKMTCloseAdapter
mov qword [rsp + 0x40], rax
call qword [sym.imp.kernel32.dll_GetProcAddress]
mov rcx, qword [rsi + 0x30]
lea rdx, str.D3DKMTCreateDevice
mov qword [rsp + 0x48], rax
call qword [sym.imp.kernel32.dll_GetProcAddress]
mov rcx, qword [rsi + 0x30]
lea rdx, str.D3DKMTDestroyDevice
mov qword [rsp + 0x50], rax
call qword [sym.imp.kernel32.dll_GetProcAddress]
mov rcx, qword [rsi + 0x30]
lea rdx, str.D3DKMTEscape
mov qword [rsp + 0x58], rax
call qword [sym.imp.kernel32.dll_GetProcAddress]
movups xmm0, xmmword [rsp + 0x38]
mov qword [rsp + 0x60], rax
movups xmm1, xmmword [rsp + 0x48]
movups xmmword [rsi + 0x38], xmm0
movups xmm0, xmmword [rsp + 0x58]
movups xmmword [rsi + 0x48], xmm1
movups xmmword [rsi + 0x58], xmm0
cmp qword [rsi + 0x50], 0
je 0x14000310f
cmp qword [rsi + 0x58], 0
je 0x14000310f
cmp qword [rsi + 0x38], 0
je 0x14000310f
cmp qword [rsi + 0x40], 0
je 0x14000310f
cmp qword [rsi + 0x48], 0
je 0x14000310f
cmp qword [rsi + 0x60], 0
je 0x14000310f
mov qword [rsp + 0x138], rbx
lea rdx, [0x140051500]
xor ebx, ebx
mov qword [rsp + 0x140], rdi
mov qword [rsp + 0x148], r12
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x108], r13
xor r9d, r9d
mov qword [rsp + 0x100], r15
xor r8d, r8d
mov r15d, ebx
mov dword [rsp + 0x30], ebx
mov r12d, ebx
mov dword [rsi + 0x20], ebx
call qword [sym.imp.setupapi.dll_CM_Get_Device_Interface_List_SizeW]
mov r14d, 0x80004005
test eax, eax
jne 0x1400030e2
mov eax, dword [rsp + 0x30]
cmp eax, 1
jb 0x1400030e2
mov ecx, eax
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
lea rdx, [0x1400730a0]
cmovo rax, rcx
mov rcx, rax
call fcn.14001bfe4
mov r13, rax
test rax, rax
je 0x1400030e2
mov r9d, dword [rsp + 0x30]
lea rcx, [0x140051500]
mov r8, rax
mov dword [rsp + 0x20], ebx
xor edx, edx
call qword [sym.imp.setupapi.dll_CM_Get_Device_Interface_ListW]
test eax, eax
je 0x140002e8d
mov r15d, r14d
jmp 0x140002f61
mov rdi, r13
cmp word [r13], bx
je 0x140002f61
nop dword [rax + rax]
mov rbx, 0xffffffffffffffff
nop word [rax + rax]
inc rbx
cmp word [rdi + rbx*2], r12w
jne 0x140002eb0
lea rdx, str.VEN_8086
mov rcx, rdi
inc rbx
call fcn.14003af50
test rax, rax
jne 0x140002ef2
lea rdx, str.ven_8086
mov rcx, rdi
call fcn.14003af50
test rax, rax
jne 0x140002ef2
cmp word [rdi + rbx*2], r12w
lea rdi, [rdi + rbx*2]
jne 0x140002ea0
jmp 0x140002f5f
mov rcx, 0xffffffffffffffff
mov eax, 2
mul rbx
lea rdx, [0x1400730a0]
cmovo rax, rcx
mov rcx, rax
call fcn.14001bfe4
mov r12, rax
test rax, rax
jne 0x140002f21
mov r15d, r14d
jmp 0x140002f5f
mov r9, rbx
mov r8, rdi
mov rdx, rbx
mov rcx, r12
call fcn.14003fce0
mov rax, qword [rsi + 0x40]
lea rcx, [rsp + 0x68]
xorps xmm0, xmm0
mov qword [rsp + 0x68], r12
movdqu xmmword [rsp + 0x70], xmm0
call qword [case.0x14002508a.0]
test eax, eax
je 0x140002f58
mov r15d, r14d
jmp 0x140002f5f
mov eax, dword [rsp + 0x70]
mov dword [rsi + 0x20], eax
xor ebx, ebx
mov rcx, r13
call fcn.14001bbcc
test r12, r12
je 0x140002f76
mov rcx, r12
call fcn.14001bbcc
test r15d, r15d
jne 0x1400030e2
cmp dword [rsi + 0x20], r15d
je 0x1400030e2
movaps xmmword [rsp + 0xf0], xmm6
xor r15d, r15d
xorps xmm6, xmm6
mov dword [rbp - 0x30], r15d
movaps xmmword [rbp - 0x70], xmm6
mov dword [rbp - 0x70], reloc.OLEAUT32.dll_SafeArrayAccessData
movaps xmmword [rbp - 0x80], xmm6
movaps xmmword [rbp - 0x60], xmm6
movaps xmmword [rbp - 0x50], xmm6
movaps xmmword [rbp - 0x40], xmm6
call qword [sym.imp.kernel32.dll_GetCurrentProcessId]
mov dword [rbp - 0x6c], eax
mov dword [rsp + 0x3c], ebx
mov dword [rsp + 0x44], ebx
mov dword [rsp + 0x54], ebx
cmp dword [rsi + 0x20], r15d
je 0x1400030c9
lea ecx, [r15 + 0x54]
call fcn.14003f948
mov rdi, rax
test rax, rax
je 0x1400030c9
and dword [rsp + 0x44], 0xfffffffe
lea r8, [rbp - 0x70]
xorps xmm0, xmm0
mov dword [rsp + 0x40], ebx
movups xmmword [rdi], xmm0
xor eax, eax
lea edx, [r15 + 0x44]
movups xmmword [rdi + 0x10], xmm0
mov rcx, rsi
mov qword [rsp + 0x48], rdi
movups xmmword [rdi + 0x20], xmm0
mov dword [rsp + 0x50], 0x54
movups xmmword [rdi + 0x30], xmm0
movups xmmword [rdi + 0x40], xmm0
mov dword [rdi + 0x50], eax
mov eax, dword [rsi + 0x20]
mov dword [rsp + 0x38], eax
mov dword [rdi + 8], 5
mov dword [rdi], 0x44
call fcn.140002960
lea rbx, [rdi + 0x10]
mov dword [rdi + 4], eax
test rbx, rbx
jne 0x14000305d
call fcn.14003fcac
mov dword [rax], reloc.OLEAUT32.dll_SafeArrayAccessData
call fcn.14003fb64
jmp 0x140003074
movaps xmm0, xmmword [rbp - 0x70]
movups xmmword [rbx], xmm0
movups xmmword [rbx + 0x10], xmm6
movups xmmword [rbx + 0x20], xmm6
movups xmmword [rbx + 0x30], xmm6
mov dword [rbx + 0x40], r15d
mov rax, qword [rsi + 0x60]
lea rcx, [rsp + 0x38]
call qword [case.0x14002508a.0]
mov r14d, eax
test eax, eax
jne 0x1400030c1
test rbx, rbx
je 0x1400030a3
lfence
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movaps xmmword [rbp - 0x70], xmm0
movaps xmmword [rbp - 0x60], xmm1
jmp 0x1400030be
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
call fcn.14003fcac
mov dword [rax], reloc.OLEAUT32.dll_SafeArrayAccessData
call fcn.14003fb64
xor r14d, r14d
mov rcx, rdi
call fcn.14003fccc
movaps xmm6, xmmword [rsp + 0xf0]
test r14d, r14d
js 0x1400030e2
cmp dword [rbp - 0x64], 1
jne 0x1400030e2
mov eax, dword [rbp - 0x60]
mov dword [rsi + 0x28], eax
mov r15, qword [rsp + 0x100]
mov eax, r14d
mov r13, qword [rsp + 0x108]
mov r12, qword [rsp + 0x148]
mov rdi, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x138]
jmp 0x140003114
mov eax, 0x80004005
mov rcx, qword [rbp - 0x20]
xor rcx, rsp
call fcn.14001bc60
add rsp, 0x110
pop r14
pop rsi
pop rbp
ret