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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x27c
mov eax, dword [0x10176120]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
push edi
push 0xfffffffffffffff0
push esi
mov dword [ebp - 0x27c], esi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
test ebx, ebx
jne 0x10012b0d
test edi, 0x40000000
je 0x10012b02
push esi
call dword [sym.imp.USER32.dll_GetParent]
jmp 0x10012b0b
push 4
push esi
call dword [sym.imp.USER32.dll_GetWindow]
mov ebx, eax
lea eax, [ebp - 0x248]
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowRect]
test edi, 0x40000000
mov dword [ebp - 0x274], 0
mov edi, dword [sym.imp.USER32.dll_MonitorFromWindow]
jne 0x10012ba1
test ebx, ebx
je 0x10012b4e
push 0xfffffffffffffff0
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0x30000000
cmp eax, 0x10000000
je 0x10012b8c
xor ebx, ebx
push 2
push esi
call edi
lea ecx, [ebp - 0x270]
mov dword [ebp - 0x274], eax
push ecx
push eax
mov dword [ebp - 0x270], 0x28
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
movups xmm0, xmmword [ebp - 0x25c]
movups xmmword [ebp - 0x238], xmm0
test ebx, ebx
jne 0x10012b91
movups xmmword [ebp - 0x228], xmm0
jmp 0x10012be1
push 2
push ebx
jmp 0x10012b51
lea eax, [ebp - 0x228]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
jmp 0x10012be1
push esi
call dword [sym.imp.USER32.dll_GetParent]
mov esi, dword [sym.imp.USER32.dll_GetClientRect]
mov edi, eax
lea eax, [ebp - 0x238]
push eax
push edi
call esi
lea eax, [ebp - 0x228]
push eax
push ebx
call esi
push 2
lea eax, [ebp - 0x228]
push eax
push edi
push ebx
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov esi, dword [ebp - 0x27c]
mov edi, dword [sym.imp.USER32.dll_MonitorFromWindow]
push 2
push esi
call edi
cmp dword [0x1017605c], 0
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x278], eax
je 0x10012ca2
push str.ntdll.dll
mov dword [ebp - 0x218], 0
xor ebx, ebx
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x210], 0
call edi
mov edi, eax
test edi, edi
je 0x10012c92
push str.RtlGetNtVersionNumbers
push edi
call esi
test eax, eax
je 0x10012c67
lea ecx, [ebp - 0x210]
push ecx
lea ecx, [ebp - 0x214]
push ecx
lea ecx, [ebp - 0x218]
push ecx
call eax
movzx eax, word [ebp - 0x210]
mov ebx, 1
mov dword [ebp - 0x210], eax
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test ebx, ebx
je 0x10012c92
cmp dword [ebp - 0x218], 6
jne 0x10012c86
cmp dword [ebp - 0x214], 2
jae 0x10012c88
jmp 0x10012c92
jbe 0x10012c92
mov dword [0x1017fa10], 1
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x1017605c], 0
cmp dword [0x1017fa10], 0
je 0x10012e05
push 0x208
xor ebx, ebx
lea eax, [ebp - 0x20c]
push ebx
push eax
call fcn.100da4a0
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push str.Shcore.dll
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10012d24
lea eax, [ebp - 0x20c]
push eax
call edi
mov edi, eax
test edi, edi
je 0x10012d24
push str.SetProcessDpiAwareness
push edi
call esi
push str.GetProcessDpiAwareness
push edi
call esi
push str.GetDpiForMonitor
push edi
call esi
mov ebx, eax
push str.User32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, eax
test edi, edi
je 0x10012d55
push str.SetProcessDPIAware
push edi
call esi
push str.IsProcessDPIAware
push edi
call esi
push str.LogicalToPhysicalPoint
push edi
call esi
push str.PhysicalToLogicalPoint
push edi
call esi
mov edi, dword [ebp - 0x274]
mov dword [ebp - 0x214], 0
test ebx, ebx
je 0x10012d7c
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x210]
push eax
push 0
push edi
call ebx
mov ecx, dword [ebp - 0x210]
mov eax, ecx
movsd xmm1, qword [0x10136338]
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x10136340]
mov eax, dword [ebp - 0x278]
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x218], xmm0
test eax, eax
je 0x10012e13
test ebx, ebx
je 0x10012ddf
lea ecx, [ebp - 0x214]
push ecx
lea ecx, [ebp - 0x210]
push ecx
push 0
push eax
call ebx
mov ecx, dword [ebp - 0x210]
movsd xmm1, qword [0x10136338]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x10136340]
divsd xmm0, xmm1
cvtpd2ps xmm1, xmm0
movss xmm0, dword [ebp - 0x218]
jmp 0x10012e1b
movss xmm0, dword [0x10136334]
mov edi, dword [ebp - 0x274]
movss xmm1, dword [0x10136334]
mov esi, dword [ebp - 0x240]
mov ebx, dword [ebp - 0x23c]
sub esi, dword [ebp - 0x248]
sub ebx, dword [ebp - 0x244]
mov dword [ebp - 0x210], esi
cmp edi, dword [ebp - 0x278]
je 0x10012e7c
comiss xmm1, xmm0
movd xmm2, esi
movd xmm3, ebx
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm3, xmm3
jbe 0x10012e62
divss xmm1, xmm0
divss xmm2, xmm1
divss xmm3, xmm1
jmp 0x10012e6e
divss xmm0, xmm1
mulss xmm2, xmm0
mulss xmm3, xmm0
cvttss2si esi, xmm2
cvttss2si ebx, xmm3
mov dword [ebp - 0x210], esi
mov eax, dword [ebp - 0x220]
add eax, dword [ebp - 0x228]
cdq
sub eax, edx
mov edi, eax
mov eax, esi
cdq
sub eax, edx
sar edi, 1
sar eax, 1
sub edi, eax
mov eax, dword [ebp - 0x21c]
add eax, dword [ebp - 0x224]
cdq
sub eax, edx
mov esi, eax
mov eax, ebx
cdq
sub eax, edx
sar esi, 1
mov edx, dword [ebp - 0x230]
sar eax, 1
sub esi, eax
mov eax, dword [ebp - 0x210]
lea ecx, [edi + eax]
cmp ecx, edx
jle 0x10012ecb
mov edi, edx
sub edi, eax
cmp edi, dword [ebp - 0x238]
lea eax, [esi + ebx]
mov ecx, dword [ebp - 0x22c]
cmovl edi, dword [ebp - 0x238]
cmp eax, ecx
jle 0x10012ee9
mov esi, ecx
sub esi, ebx
cmp esi, dword [ebp - 0x234]
push 0x15
cmovl esi, dword [ebp - 0x234]
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push edi
push 0
push dword [ebp - 0x27c]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10031a8d
mov esp, ebp
pop ebp
ret