Function at 0x1400139a0
Capabilities:
Link many functions at runtime

Disassembly:
push rbp
push rsi
push r14
lea rbp, [rsp - 0x3b0]
sub rsp, 0x4b0
mov rax, qword [0x1400700d8]
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 0x140013a18
lea rdx, str._Unable_to_link_with_gdi32.dll_n
jmp 0x140013e8c
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 0x140013e85
cmp qword [r14 + 0x58], 0
je 0x140013e85
cmp qword [r14 + 0x38], 0
je 0x140013e85
cmp qword [r14 + 0x40], 0
je 0x140013e85
cmp qword [r14 + 0x48], 0
je 0x140013e85
cmp qword [r14 + 0x60], 0
je 0x140013e85
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.14003adb0
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 0x140013ba6
lea r8, [rbp + 0x188]
xor ecx, ecx
lea rdx, str.Device__ID:_0x_x
call fcn.140005ea0
test byte [rbp + 0x184], 1
je 0x140013b76
lea rdx, str.VEN_8086
lea rcx, [rbp + 0x188]
call fcn.14003af50
test rax, rax
jne 0x140013b8f
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 0x140013b40
jmp 0x140013ba6
lea r8, [rbp + 0x44]
mov edx, 0x20
lea rcx, [rbp - 0x10]
call fcn.140041488
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.140005ea0
lea r8, [rbp - 0x10]
xor ecx, ecx
lea rdx, str.Display_Name_is:__s
call fcn.140005ea0
mov esi, 0x80004005
test edi, edi
je 0x140013c16
mov rax, qword [r14 + 0x38]
lea rcx, [rbp - 0x10]
call qword [case.0x14002508a.0]
test eax, eax
je 0x140013c0a
mov r8d, eax
lea rdx, str.pfnOpenAdapterFromGDIDisplayName_failed__0x_x
xor ecx, ecx
call fcn.140005ea0
jmp 0x140013e59
mov eax, dword [rbp + 0x30]
mov dword [r14 + 0x24], eax
jmp 0x140013da0
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 0x140013e4b
mov eax, dword [rsp + 0x30]
cmp eax, 1
jb 0x140013e4b
mov ecx, eax
mov rbx, 0xffffffffffffffff
mov eax, 2
mul rcx
lea rdx, [0x1400730a0]
cmovo rax, rbx
mov rcx, rax
call fcn.14001bfe4
mov r13, rax
test rax, rax
je 0x140013e4b
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 0x140013cbd
mov r15d, esi
jmp 0x140013d7f
mov rdi, r13
cmp word [r13], r15w
je 0x140013d7f
nop dword [rax + rax]
inc rbx
cmp word [rdi + rbx*2], r15w
jne 0x140013cd0
lea rdx, str.VEN_8086
mov rcx, rdi
inc rbx
call fcn.14003af50
test rax, rax
jne 0x140013d15
lea rdx, str.ven_8086
mov rcx, rdi
call fcn.14003af50
test rax, rax
jne 0x140013d15
lea rdi, [rdi + rbx*2]
lea rbx, [rax - 1]
cmp word [rdi], r15w
jne 0x140013cd0
jmp 0x140013d7f
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 0x140013d44
mov r15d, esi
jmp 0x140013d7f
mov r9, rbx
mov r8, rdi
mov rdx, rbx
mov rcx, r12
call fcn.14003fce0
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.0x14002508a.0]
test eax, eax
je 0x140013d78
mov r15d, esi
jmp 0x140013d7f
mov eax, dword [rbp - 0x68]
mov dword [r14 + 0x24], eax
mov rcx, r13
call fcn.14001bbcc
test r12, r12
je 0x140013d94
mov rcx, r12
call fcn.14001bbcc
test r15d, r15d
jne 0x140013e4b
xor r15d, r15d
mov eax, dword [r14 + 0x24]
test eax, eax
je 0x140013e4b
or dword [rsp + 0x48], 1
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], eax
mov rax, qword [r14 + 0x50]
call qword [case.0x14002508a.0]
test eax, eax
je 0x140013ddb
mov r8d, eax
lea rdx, str.pfnCreateDevice_failed__x
xor ecx, ecx
call fcn.140005ea0
jmp 0x140013e59
mov eax, dword [rsp + 0x4c]
xorps xmm0, xmm0
mov dword [r14 + 0x20], eax
xor eax, eax
movaps xmmword [rbp - 0x60], xmm0
mov dword [rbp - 0x20], eax
movaps xmmword [rbp - 0x70], xmm0
movaps xmmword [rbp - 0x50], xmm0
movaps xmmword [rbp - 0x40], xmm0
movaps xmmword [rbp - 0x30], xmm0
mov dword [rbp - 0x60], reloc.OLEAUT32.dll_SafeArrayAccessData
call qword [sym.imp.kernel32.dll_GetCurrentProcessId]
xor r9d, r9d
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 + 0x44]
call fcn.140013440
mov esi, eax
test eax, eax
js 0x140013e59
cmp dword [rbp - 0x54], 1
jne 0x140013e59
mov ecx, dword [rbp - 0x50]
lea rdx, str.CPHS_disable_status_queried
mov dword [r14 + 0x28], ecx
jmp 0x140013e52
lea rdx, str.Failure_to_get_handle_to_adapter
xor ecx, ecx
call fcn.140005ea0
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 0x140013e98
lea rdx, str.Unable_to_find_D3DKMT_functions_n
xor ecx, ecx
call fcn.140005ea0
mov eax, 0x80004005
mov rcx, qword [rbp + 0x390]
xor rcx, rsp
call fcn.14001bc60
add rsp, 0x4b0
pop r14
pop rsi
pop rbp
ret