Function at 0x14002f350
Capabilities:
Check if file exists
Get common file path
Link many functions at runtime

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x218]
sub rsp, 0x2f0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
mov rax, qword [0x14029e8b8]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
mov rdi, rdx
mov rsi, rcx
mov edx, 0xfffffff0
call qword [sym.imp.USER32.dll_GetWindowLongW]
mov ebx, eax
test rdi, rdi
jne 0x14002f3c1
mov rcx, rsi
bt eax, 0x1e
jae 0x14002f3b3
call qword [sym.imp.USER32.dll_GetParent]
jmp 0x14002f3be
mov edx, 4
call qword [sym.imp.USER32.dll_GetWindow]
mov rdi, rax
lea rdx, [rsp + 0x70]
mov rcx, rsi
call qword [sym.imp.USER32.dll_GetWindowRect]
xor r12d, r12d
mov r14d, r12d
bt ebx, 0x1e
jb 0x14002f44c
test rdi, rdi
je 0x14002f3fd
lea edx, [r12 - 0x10]
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0x30000000
cmp eax, 0x10000000
je 0x14002f437
mov edi, r12d
mov rcx, rsi
mov edx, 2
call qword [sym.imp.USER32.dll_MonitorFromWindow]
lea rdx, [rbp - 0x80]
mov dword [rbp - 0x80], 0x28
mov rcx, rax
mov r14, rax
call qword [sym.imp.USER32.dll_GetMonitorInfoW]
movups xmm0, xmmword [rbp - 0x6c]
movups xmmword [rsp + 0x60], xmm0
test rdi, rdi
jne 0x14002f43c
movups xmmword [rsp + 0x50], xmm0
jmp 0x14002f48b
mov rcx, rdi
jmp 0x14002f400
lea rdx, [rsp + 0x50]
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindowRect]
jmp 0x14002f48b
mov rcx, rsi
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
lea rdx, [rsp + 0x60]
mov rbx, rax
call qword [sym.imp.USER32.dll_GetClientRect]
lea rdx, [rsp + 0x50]
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetClientRect]
mov r9d, 2
lea r8, [rsp + 0x50]
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.USER32.dll_MapWindowPoints]
mov edx, 2
mov rcx, rsi
call qword [sym.imp.USER32.dll_MonitorFromWindow]
cmp dword [0x14029e158], r12d
mov r15, rax
movss xmm6, dword [0x1401fbb58]
movaps xmm7, xmm6
je 0x14002f53f
lea rcx, str.ntdll.dll
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x44], r12d
mov edi, r12d
mov dword [rsp + 0x40], r12d
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rbx, rax
test rax, rax
je 0x14002f538
lea rdx, str.RtlGetNtVersionNumbers
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x14002f50f
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x44]
lea rcx, [rsp + 0x48]
call rax
movzx eax, word [rsp + 0x40]
mov edi, 1
mov dword [rsp + 0x40], eax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
test edi, edi
je 0x14002f538
cmp dword [rsp + 0x48], 6
jne 0x14002f52c
cmp dword [rsp + 0x44], 2
jae 0x14002f52e
jmp 0x14002f538
jbe 0x14002f538
mov dword [0x1402b77e0], 1
mov dword [0x14029e158], r12d
cmp dword [0x1402b77e0], r12d
je 0x14002f690
xor edx, edx
lea rcx, [rbp - 0x50]
mov r8d, 0x208
mov rbx, r12
call fcn.1401afc90
mov edx, 0x104
lea rcx, [rbp - 0x50]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rdx, str.Shcore.dll
lea rcx, [rbp - 0x50]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rcx, [rbp - 0x50]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14002f5d3
lea rcx, [rbp - 0x50]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rdi, rax
test rax, rax
je 0x14002f5d3
lea rdx, str.SetProcessDpiAwareness
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetProcessDpiAwareness
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.GetDpiForMonitor
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
lea rcx, str.User32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rdi, rax
test rax, rax
je 0x14002f628
lea rdx, str.SetProcessDPIAware
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.IsProcessDPIAware
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.LogicalToPhysicalPoint
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.PhysicalToLogicalPoint
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [rsp + 0x44], r12d
test rbx, rbx
je 0x14002f643
lea r9, [rsp + 0x44]
xor edx, edx
lea r8, [rsp + 0x40]
mov rcx, r14
call rbx
mov ecx, dword [rsp + 0x40]
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
divsd xmm0, qword [0x1401fbb68]
cvtpd2ps xmm6, xmm0
test r15, r15
je 0x14002f690
test rbx, rbx
je 0x14002f67a
lea r9, [rsp + 0x44]
xor edx, edx
lea r8, [rsp + 0x40]
mov rcx, r15
call rbx
mov ecx, dword [rsp + 0x40]
xorps xmm0, xmm0
mov eax, ecx
cvtsi2sd xmm0, rax
divsd xmm0, qword [0x1401fbb68]
cvtpd2ps xmm7, xmm0
mov r11d, dword [rsp + 0x78]
mov r8d, dword [rsp + 0x7c]
sub r11d, dword [rsp + 0x70]
sub r8d, dword [rsp + 0x74]
cmp r14, r15
je 0x14002f6e2
comiss xmm7, xmm6
movd xmm0, r11d
movd xmm1, r8d
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
jbe 0x14002f6cc
divss xmm7, xmm6
divss xmm0, xmm7
divss xmm1, xmm7
jmp 0x14002f6d8
divss xmm6, xmm7
mulss xmm0, xmm6
mulss xmm1, xmm6
cvttss2si r8d, xmm1
cvttss2si r11d, xmm0
mov eax, dword [rsp + 0x58]
add eax, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x68]
cdq
sub eax, edx
sar eax, 1
mov r10d, eax
mov eax, r11d
cdq
sub eax, edx
sar eax, 1
sub r10d, eax
mov eax, dword [rsp + 0x5c]
add eax, dword [rsp + 0x54]
cdq
sub eax, edx
sar eax, 1
mov r9d, eax
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
sub r9d, eax
lea eax, [r10 + r11]
cmp eax, ecx
jle 0x14002f72a
mov r10d, ecx
sub r10d, r11d
cmp r10d, dword [rsp + 0x60]
lea eax, [r9 + r8]
mov ecx, dword [rsp + 0x6c]
cmovl r10d, dword [rsp + 0x60]
cmp eax, ecx
jle 0x14002f747
mov r9d, ecx
sub r9d, r8d
cmp r9d, dword [rsp + 0x64]
mov r8d, r10d
mov dword [rsp + 0x30], reloc.SHELL32.dll_ILIsEqual
mov rcx, rsi
cmovl r9d, dword [rsp + 0x64]
xor edx, edx
mov dword [rsp + 0x28], 0xffffffff
mov dword [rsp + 0x20], 0xffffffff
call qword [sym.imp.USER32.dll_SetWindowPos]
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.140160a40
lea r11, [rsp + 0x2f0]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret