Function at 0x4574c0
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 [0x6a73e8]
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 0x45750d
test edi, 0x40000000
je 0x457502
push esi
call dword [sym.imp.USER32.dll_GetParent]
jmp 0x45750b
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 0x4575a1
test ebx, ebx
je 0x45754e
push 0xfffffffffffffff0
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0x30000000
cmp eax, 0x10000000
je 0x45758c
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 0x457591
movups xmmword [ebp - 0x228], xmm0
jmp 0x4575e1
push 2
push ebx
jmp 0x457551
lea eax, [ebp - 0x228]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
jmp 0x4575e1
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 [0x6a10f0], 0
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x278], eax
je 0x4576a2
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 0x457692
push str.RtlGetNtVersionNumbers
push edi
call esi
test eax, eax
je 0x457667
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 0x457692
cmp dword [ebp - 0x218], 6
jne 0x457686
cmp dword [ebp - 0x214], 2
jae 0x457688
jmp 0x457692
jbe 0x457692
mov dword [0x6b4a04], 1
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x6a10f0], 0
cmp dword [0x6b4a04], 0
je 0x457805
push 0x208
xor ebx, ebx
lea eax, [ebp - 0x20c]
push ebx
push eax
call fcn.005fc2a0
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 0x457724
lea eax, [ebp - 0x20c]
push eax
call edi
mov edi, eax
test edi, edi
je 0x457724
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 0x457755
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 0x45777c
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 [0x644600]
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x6403a0]
mov eax, dword [ebp - 0x278]
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x218], xmm0
test eax, eax
je 0x457813
test ebx, ebx
je 0x4577df
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 [0x644600]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x6403a0]
divsd xmm0, xmm1
cvtpd2ps xmm1, xmm0
movss xmm0, dword [ebp - 0x218]
jmp 0x45781b
movss xmm0, dword [0x6445f8]
mov edi, dword [ebp - 0x274]
movss xmm1, dword [0x6445f8]
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 0x45787c
comiss xmm1, xmm0
movd xmm2, esi
movd xmm3, ebx
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm3, xmm3
jbe 0x457862
divss xmm1, xmm0
divss xmm2, xmm1
divss xmm3, xmm1
jmp 0x45786e
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 0x4578cb
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 0x4578e9
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.005bb391
mov esp, ebp
pop ebp
ret