Function at 0x140013660
Capabilities:
Link many functions at runtime

Disassembly:
push rbp
push rsi
push r14
lea rbp, [rsp - 0x3b0]
sub rsp, 0x4b0
mov rax, qword [0x14006d0d8]
xor rax, rsp
mov qword [rbp + 0x390], rax
xorps xmm1, xmm1
xorps xmm0, xmm0
mov r14, rcx
lea rcx, str.gdi32.dll
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rbp - 0x10], xmm1
movups xmmword [rbp], xmm1
movups xmmword [rbp + 0x10], xmm1
movups xmmword [rbp + 0x20], xmm1
movups xmmword [rbp + 0x30], xmm1
call qword [sym.imp.KERNEL32.DLL_LoadLibraryW]
mov qword [r14 + 0x30], rax
test rax, rax
jne 0x1400136d8
lea rdx, str._Unable_to_link_with_gdi32.dll_n
jmp 0x140013b33
lea rdx, str.D3DKMTOpenAdapterFromGdiDisplayName
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov rcx, qword [r14 + 0x30]
lea rdx, str.D3DKMTOpenAdapterFromDeviceName
mov qword [rbp - 0x70], rax
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov rcx, qword [r14 + 0x30]
lea rdx, str.D3DKMTCloseAdapter
mov qword [rbp - 0x68], rax
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov rcx, qword [r14 + 0x30]
lea rdx, str.D3DKMTCreateDevice
mov qword [rbp - 0x60], rax
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov rcx, qword [r14 + 0x30]
lea rdx, str.D3DKMTDestroyDevice
mov qword [rbp - 0x58], rax
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov rcx, qword [r14 + 0x30]
lea rdx, str.D3DKMTEscape
mov qword [rbp - 0x50], rax
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
movups xmm0, xmmword [rbp - 0x70]
mov qword [rbp - 0x48], rax
movups xmm1, xmmword [rbp - 0x60]
movups xmmword [r14 + 0x38], xmm0
movups xmm0, xmmword [rbp - 0x50]
movups xmmword [r14 + 0x48], xmm1
movups xmmword [r14 + 0x58], xmm0
cmp qword [r14 + 0x50], 0
je 0x140013b2c
cmp qword [r14 + 0x58], 0
je 0x140013b2c
cmp qword [r14 + 0x38], 0
je 0x140013b2c
cmp qword [r14 + 0x40], 0
je 0x140013b2c
cmp qword [r14 + 0x48], 0
je 0x140013b2c
cmp qword [r14 + 0x60], 0
je 0x140013b2c
mov qword [rsp + 0x4d8], rbx
lea rcx, [rbp + 0x44]
mov qword [rsp + 0x4e0], rdi
xor edx, edx
mov qword [rsp + 0x4a0], r15
mov r8d, 0x344
xor r15d, r15d
mov edi, r15d
mov ebx, r15d
call fcn.14003a280
xor r9d, r9d
mov dword [rbp + 0x40], 0x348
lea r8, [rbp + 0x40]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.DLL_EnumDisplayDevicesW]
test eax, eax
je 0x140013866
lea r8, [rbp + 0x188]
xor ecx, ecx
lea rdx, str.Device__ID:_0x_x
call fcn.140005e60
test byte [rbp + 0x184], 1
je 0x140013836
lea rdx, str.VEN_8086
lea rcx, [rbp + 0x188]
call fcn.14003a410
test rax, rax
jne 0x14001384f
inc ebx
lea r8, [rbp + 0x40]
mov edx, ebx
xor r9d, r9d
xor ecx, ecx
call qword [sym.imp.USER32.DLL_EnumDisplayDevicesW]
test eax, eax
jne 0x140013800
jmp 0x140013866
lea r8, [rbp + 0x44]
mov edx, 0x20
lea rcx, [rbp - 0x10]
call fcn.14003ecf8
mov edi, 1
mov qword [rsp + 0x4e8], r12
lea rdx, str.DeviceFound_:__d
mov r8d, edi
mov qword [rsp + 0x4a8], r13
xor ecx, ecx
call fcn.140005e60
lea r8, [rbp - 0x10]
xor ecx, ecx
lea rdx, str.Display_Name_is:__s
call fcn.140005e60
mov esi, 0x80004005
test edi, edi
je 0x1400138d6
mov rax, qword [r14 + 0x38]
lea rcx, [rbp - 0x10]
call qword [case.0x140024e4a.0]
test eax, eax
je 0x1400138ca
mov r8d, eax
lea rdx, str.pfnOpenAdapterFromGDIDisplayName_failed__0x_x
xor ecx, ecx
call fcn.140005e60
jmp 0x140013b00
mov eax, dword [rbp + 0x30]
mov dword [r14 + 0x24], eax
jmp 0x140013a60
xor r9d, r9d
mov dword [rbp - 0x80], 0x1ca05180
xor r8d, r8d
mov dword [rbp - 0x7c], 0x450aa699
lea rdx, [rbp - 0x80]
mov dword [rbp - 0x78], 0x4fde0c9a
lea rcx, [rsp + 0x30]
mov dword [rbp - 0x74], 0x89dd3dbe
mov dword [rsp + 0x30], r15d
mov r12, r15
mov dword [r14 + 0x24], r15d
call qword [sym.imp.SETUPAPI.DLL_CM_Get_Device_Interface_List_SizeW]
test eax, eax
jne 0x140013af2
mov eax, dword [rsp + 0x30]
cmp eax, 1
jb 0x140013af2
mov ecx, eax
mov rbx, 0xffffffffffffffff
mov eax, 2
mul rcx
lea rdx, [0x1400700e0]
cmovo rax, rbx
mov rcx, rax
call fcn.14001be64
mov r13, rax
test rax, rax
je 0x140013af2
mov r9d, dword [rsp + 0x30]
lea rcx, [rbp - 0x80]
mov r8, rax
mov dword [rsp + 0x20], r15d
xor edx, edx
call qword [sym.imp.SETUPAPI.DLL_CM_Get_Device_Interface_ListW]
test eax, eax
je 0x14001397d
mov r15d, esi
jmp 0x140013a3f
mov rdi, r13
cmp word [r13], r15w
je 0x140013a3f
nop dword [rax + rax]
inc rbx
cmp word [rdi + rbx*2], r15w
jne 0x140013990
lea rdx, str.VEN_8086
mov rcx, rdi
inc rbx
call fcn.14003a410
test rax, rax
jne 0x1400139d5
lea rdx, str.ven_8086
mov rcx, rdi
call fcn.14003a410
test rax, rax
jne 0x1400139d5
lea rdi, [rdi + rbx*2]
lea rbx, [rax - 1]
cmp word [rdi], r15w
jne 0x140013990
jmp 0x140013a3f
mov rcx, 0xffffffffffffffff
mov eax, 2
mul rbx
lea rdx, [0x1400700e0]
cmovo rax, rcx
mov rcx, rax
call fcn.14001be64
mov r12, rax
test rax, rax
jne 0x140013a04
mov r15d, esi
jmp 0x140013a3f
mov r9, rbx
mov r8, rdi
mov rdx, rbx
mov rcx, r12
call fcn.14003d648
mov rax, qword [r14 + 0x40]
lea rcx, [rbp - 0x70]
xorps xmm0, xmm0
mov qword [rbp - 0x70], r12
movdqu xmmword [rbp - 0x68], xmm0
call qword [case.0x140024e4a.0]
test eax, eax
je 0x140013a38
mov r15d, esi
jmp 0x140013a3f
mov eax, dword [rbp - 0x68]
mov dword [r14 + 0x24], eax
mov rcx, r13
call fcn.14001ba4c
test r12, r12
je 0x140013a54
mov rcx, r12
call fcn.14001ba4c
test r15d, r15d
jne 0x140013af2
xor r15d, r15d
mov eax, dword [r14 + 0x24]
test eax, eax
je 0x140013af2
or dword [rsp + 0x48], 1
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], eax
mov rax, qword [r14 + 0x50]
call qword [case.0x140024e4a.0]
test eax, eax
je 0x140013a9b
mov r8d, eax
lea rdx, str.pfnCreateDevice_failed__x
xor ecx, ecx
call fcn.140005e60
jmp 0x140013b00
mov eax, dword [rsp + 0x4c]
mov dword [r14 + 0x20], eax
mov dword [rbp - 0x60], reloc.OLEAUT32.dll_SafeArrayAccessData
call qword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
mov r9d, 1
mov dword [rsp + 0x28], 5
lea rdx, [rbp - 0x60]
mov dword [rbp - 0x5c], eax
mov rcx, r14
mov dword [rsp + 0x20], r15d
lea r8d, [r9 + 0x43]
call fcn.140013100
mov esi, eax
test eax, eax
js 0x140013b00
cmp dword [rbp - 0x54], 1
jne 0x140013b00
mov ecx, dword [rbp - 0x50]
lea rdx, str.CPHS_disable_status_queried
mov dword [r14 + 0x28], ecx
jmp 0x140013af9
lea rdx, str.Failure_to_get_handle_to_adapter
xor ecx, ecx
call fcn.140005e60
mov r15, qword [rsp + 0x4a0]
mov eax, esi
mov r13, qword [rsp + 0x4a8]
mov r12, qword [rsp + 0x4e8]
mov rdi, qword [rsp + 0x4e0]
mov rbx, qword [rsp + 0x4d8]
jmp 0x140013b3f
lea rdx, str.Unable_to_find_D3DKMT_functions_n
xor ecx, ecx
call fcn.140005e60
mov eax, 0x80004005
mov rcx, qword [rbp + 0x390]
xor rcx, rsp
call fcn.14001bae0
add rsp, 0x4b0
pop r14
pop rsi
pop rbp
ret