Function at 0x140013890
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 0x140013908
lea rdx, str._Unable_to_link_with_gdi32.dll_n
jmp 0x140013d63
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 0x140013d5c
cmp qword [r14 + 0x58], 0
je 0x140013d5c
cmp qword [r14 + 0x38], 0
je 0x140013d5c
cmp qword [r14 + 0x40], 0
je 0x140013d5c
cmp qword [r14 + 0x48], 0
je 0x140013d5c
cmp qword [r14 + 0x60], 0
je 0x140013d5c
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.14003a210
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 0x140013a96
lea r8, [rbp + 0x188]
xor ecx, ecx
lea rdx, str.Device__ID:_0x_x
call fcn.140005e60
test byte [rbp + 0x184], 1
je 0x140013a66
lea rdx, str.VEN_8086
lea rcx, [rbp + 0x188]
call fcn.14003a3a0
test rax, rax
jne 0x140013a7f
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 0x140013a30
jmp 0x140013a96
lea r8, [rbp + 0x44]
mov edx, 0x20
lea rcx, [rbp - 0x10]
call fcn.14003ec88
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 0x140013b06
mov rax, qword [r14 + 0x38]
lea rcx, [rbp - 0x10]
call qword [case.0x140024dda.0]
test eax, eax
je 0x140013afa
mov r8d, eax
lea rdx, str.pfnOpenAdapterFromGDIDisplayName_failed__0x_x
xor ecx, ecx
call fcn.140005e60
jmp 0x140013d30
mov eax, dword [rbp + 0x30]
mov dword [r14 + 0x24], eax
jmp 0x140013c90
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 0x140013d22
mov eax, dword [rsp + 0x30]
cmp eax, 1
jb 0x140013d22
mov ecx, eax
mov rbx, 0xffffffffffffffff
mov eax, 2
mul rcx
lea rdx, [0x1400700e0]
cmovo rax, rbx
mov rcx, rax
call fcn.14001bdf4
mov r13, rax
test rax, rax
je 0x140013d22
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 0x140013bad
mov r15d, esi
jmp 0x140013c6f
mov rdi, r13
cmp word [r13], r15w
je 0x140013c6f
nop dword [rax + rax]
inc rbx
cmp word [rdi + rbx*2], r15w
jne 0x140013bc0
lea rdx, str.VEN_8086
mov rcx, rdi
inc rbx
call fcn.14003a3a0
test rax, rax
jne 0x140013c05
lea rdx, str.ven_8086
mov rcx, rdi
call fcn.14003a3a0
test rax, rax
jne 0x140013c05
lea rdi, [rdi + rbx*2]
lea rbx, [rax - 1]
cmp word [rdi], r15w
jne 0x140013bc0
jmp 0x140013c6f
mov rcx, 0xffffffffffffffff
mov eax, 2
mul rbx
lea rdx, [0x1400700e0]
cmovo rax, rcx
mov rcx, rax
call fcn.14001bdf4
mov r12, rax
test rax, rax
jne 0x140013c34
mov r15d, esi
jmp 0x140013c6f
mov r9, rbx
mov r8, rdi
mov rdx, rbx
mov rcx, r12
call fcn.14003d5d8
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.0x140024dda.0]
test eax, eax
je 0x140013c68
mov r15d, esi
jmp 0x140013c6f
mov eax, dword [rbp - 0x68]
mov dword [r14 + 0x24], eax
mov rcx, r13
call fcn.14001b9dc
test r12, r12
je 0x140013c84
mov rcx, r12
call fcn.14001b9dc
test r15d, r15d
jne 0x140013d22
xor r15d, r15d
mov eax, dword [r14 + 0x24]
test eax, eax
je 0x140013d22
or dword [rsp + 0x48], 1
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], eax
mov rax, qword [r14 + 0x50]
call qword [case.0x140024dda.0]
test eax, eax
je 0x140013ccb
mov r8d, eax
lea rdx, str.pfnCreateDevice_failed__x
xor ecx, ecx
call fcn.140005e60
jmp 0x140013d30
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.140013330
mov esi, eax
test eax, eax
js 0x140013d30
cmp dword [rbp - 0x54], 1
jne 0x140013d30
mov ecx, dword [rbp - 0x50]
lea rdx, str.CPHS_disable_status_queried
mov dword [r14 + 0x28], ecx
jmp 0x140013d29
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 0x140013d6f
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.14001ba70
add rsp, 0x4b0
pop r14
pop rsi
pop rbp
ret