Function at 0x42c480
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 [0x594584]
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 0x42c4cd
test edi, 0x40000000
je 0x42c4c2
push esi
call dword [sym.imp.USER32.dll_GetParent]
jmp 0x42c4cb
push 4
push esi
call dword [sym.imp.USER32.dll_GetWindow]
mov ebx, eax
lea eax, [ebp - 0x23c]
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowRect]
test edi, 0x40000000
mov dword [ebp - 0x26c], 0
mov edi, dword [sym.imp.USER32.dll_MonitorFromWindow]
jne 0x42c561
test ebx, ebx
je 0x42c50e
push 0xfffffffffffffff0
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0x30000000
cmp eax, 0x10000000
je 0x42c54c
xor ebx, ebx
push 2
push esi
call edi
lea ecx, [ebp - 0x264]
mov dword [ebp - 0x26c], eax
push ecx
push eax
mov dword [ebp - 0x264], 0x28
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
movups xmm0, xmmword [ebp - 0x250]
movups xmmword [ebp - 0x22c], xmm0
test ebx, ebx
jne 0x42c551
movups xmmword [ebp - 0x21c], xmm0
jmp 0x42c5a1
push 2
push ebx
jmp 0x42c511
lea eax, [ebp - 0x21c]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
jmp 0x42c5a1
push esi
call dword [sym.imp.USER32.dll_GetParent]
mov esi, dword [sym.imp.USER32.dll_GetClientRect]
mov edi, eax
lea eax, [ebp - 0x22c]
push eax
push edi
call esi
lea eax, [ebp - 0x21c]
push eax
push ebx
call esi
push 2
lea eax, [ebp - 0x21c]
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 [0x5941b8], 0
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x278], eax
je 0x42c662
push str.ntdll.dll
mov dword [ebp - 0x274], 0
xor ebx, ebx
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x268], 0
call edi
mov edi, eax
test edi, edi
je 0x42c652
push str.RtlGetNtVersionNumbers
push edi
call esi
test eax, eax
je 0x42c627
lea ecx, [ebp - 0x268]
push ecx
lea ecx, [ebp - 0x270]
push ecx
lea ecx, [ebp - 0x274]
push ecx
call eax
movzx eax, word [ebp - 0x268]
mov ebx, 1
mov dword [ebp - 0x268], eax
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test ebx, ebx
je 0x42c652
cmp dword [ebp - 0x274], 6
jne 0x42c646
cmp dword [ebp - 0x270], 2
jae 0x42c648
jmp 0x42c652
jbe 0x42c652
mov dword [0x59ad3c], 1
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x5941b8], 0
cmp dword [0x59ad3c], 0
je 0x42c7c5
push 0x208
xor ebx, ebx
lea eax, [ebp - 0x20c]
push ebx
push eax
call fcn.0050f150
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 0x42c6e4
lea eax, [ebp - 0x20c]
push eax
call edi
mov edi, eax
test edi, edi
je 0x42c6e4
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 0x42c715
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 - 0x26c]
mov dword [ebp - 0x270], 0
test ebx, ebx
je 0x42c73c
lea eax, [ebp - 0x270]
push eax
lea eax, [ebp - 0x268]
push eax
push 0
push edi
call ebx
mov ecx, dword [ebp - 0x268]
mov eax, ecx
movsd xmm1, qword [0x552048]
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x550e10]
mov eax, dword [ebp - 0x278]
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x274], xmm0
test eax, eax
je 0x42c7d3
test ebx, ebx
je 0x42c79f
lea ecx, [ebp - 0x270]
push ecx
lea ecx, [ebp - 0x268]
push ecx
push 0
push eax
call ebx
mov ecx, dword [ebp - 0x268]
movsd xmm1, qword [0x552048]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x550e10]
divsd xmm0, xmm1
cvtpd2ps xmm1, xmm0
movss xmm0, dword [ebp - 0x274]
jmp 0x42c7db
movss xmm0, dword [0x552040]
mov edi, dword [ebp - 0x26c]
movss xmm1, dword [0x552040]
mov esi, dword [ebp - 0x234]
mov ebx, dword [ebp - 0x230]
sub esi, dword [ebp - 0x23c]
sub ebx, dword [ebp - 0x238]
mov dword [ebp - 0x268], esi
cmp edi, dword [ebp - 0x278]
je 0x42c83c
comiss xmm1, xmm0
movd xmm2, esi
movd xmm3, ebx
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm3, xmm3
jbe 0x42c822
divss xmm1, xmm0
divss xmm2, xmm1
divss xmm3, xmm1
jmp 0x42c82e
divss xmm0, xmm1
mulss xmm2, xmm0
mulss xmm3, xmm0
cvttss2si esi, xmm2
cvttss2si ebx, xmm3
mov dword [ebp - 0x268], esi
mov eax, dword [ebp - 0x214]
add eax, dword [ebp - 0x21c]
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 - 0x210]
add eax, dword [ebp - 0x218]
cdq
sub eax, edx
mov esi, eax
mov eax, ebx
cdq
sub eax, edx
sar esi, 1
mov edx, dword [ebp - 0x224]
sar eax, 1
sub esi, eax
mov eax, dword [ebp - 0x268]
lea ecx, [edi + eax]
cmp ecx, edx
jle 0x42c88b
mov edi, edx
sub edi, eax
cmp edi, dword [ebp - 0x22c]
lea eax, [esi + ebx]
mov ecx, dword [ebp - 0x220]
cmovl edi, dword [ebp - 0x22c]
cmp eax, ecx
jle 0x42c8a9
mov esi, ecx
sub esi, ebx
cmp esi, dword [ebp - 0x228]
push 0x15
cmovl esi, dword [ebp - 0x228]
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.004cc1ce
mov esp, ebp
pop ebp
ret