Function at 0x46ffb0
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 [0x604654]
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 0x46fffd
test edi, 0x40000000
je 0x46fff2
push esi
call dword [sym.imp.USER32.dll_GetParent]
jmp 0x46fffb
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 0x470091
test ebx, ebx
je 0x47003e
push 0xfffffffffffffff0
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0x30000000
cmp eax, 0x10000000
je 0x47007c
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 0x470081
movups xmmword [ebp - 0x228], xmm0
jmp 0x4700d1
push 2
push ebx
jmp 0x470041
lea eax, [ebp - 0x228]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
jmp 0x4700d1
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 [0x603520], 0
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x278], eax
je 0x470192
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 0x470182
push str.RtlGetNtVersionNumbers
push edi
call esi
test eax, eax
je 0x470157
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 0x470182
cmp dword [ebp - 0x218], 6
jne 0x470176
cmp dword [ebp - 0x214], 2
jae 0x470178
jmp 0x470182
jbe 0x470182
mov dword [0x610580], 1
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x603520], 0
cmp dword [0x610580], 0
je 0x4702f5
push 0x208
xor ebx, ebx
lea eax, [ebp - 0x20c]
push ebx
push eax
call fcn.0053c7b0
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 0x470214
lea eax, [ebp - 0x20c]
push eax
call edi
mov edi, eax
test edi, edi
je 0x470214
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 0x470245
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 0x47026c
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 [0x5b27f8]
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x5ac150]
mov eax, dword [ebp - 0x278]
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x218], xmm0
test eax, eax
je 0x470303
test ebx, ebx
je 0x4702cf
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 [0x5b27f8]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x5ac150]
divsd xmm0, xmm1
cvtpd2ps xmm1, xmm0
movss xmm0, dword [ebp - 0x218]
jmp 0x47030b
movss xmm0, dword [0x5b27e8]
mov edi, dword [ebp - 0x274]
movss xmm1, dword [0x5b27e8]
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 0x47036c
comiss xmm1, xmm0
movd xmm2, esi
movd xmm3, ebx
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm3, xmm3
jbe 0x470352
divss xmm1, xmm0
divss xmm2, xmm1
divss xmm3, xmm1
jmp 0x47035e
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 0x4703bb
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 0x4703d9
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.004a408b
mov esp, ebp
pop ebp
ret