Function at 0x4a7d10
Capabilities:
Check if file exists
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x509426
mov eax, dword fs:[0]
push eax
sub esp, 0x368
mov eax, dword [0x541074]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
movss dword [ebp - 0x360], xmm2
mov esi, edx
mov dword [ebp - 0x370], ecx
lea eax, [ebp - 0x11c]
mov dword [ebp - fcn.00434720], vtable.ui::CDuiString.0
push 0xffffffffffffffff
push dword [0x542094]
mov dword [ebp - 0x120], eax
lea ecx, [ebp - 0x124]
xor eax, eax
mov word [ebp - 0x11c], ax
call fcn.00434660
mov dword [ebp - 4], 0
mov eax, dword [0x54211c]
mov dword [ebp - 0x358], 0
cmp word [eax], 0
jne 0x4a7f2c
test esi, esi
je 0x4a7db0
push esi
lea ecx, [ebp - 0x124]
call fcn.00434530
lea eax, [ebp - 0x94]
mov dword [ebp - 0x9c], vtable.ui::CDuiString.0
mov dword [ebp - 0x98], eax
xor eax, eax
mov word [ebp - 0x94], ax
mov byte [ebp - 4], 1
push dword [ebp - 0x120]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
call edi
test eax, eax
je 0x4a7dfa
push 0xffffffffffffffff
push dword [ebp - 0x120]
lea ecx, [ebp - 0x9c]
call fcn.00434660
jmp 0x4a7e1d
push esi
call edi
test eax, eax
je 0x4a7e1d
lea ecx, [ebp - 0x9c]
test esi, esi
je 0x4a7e15
push 0xffffffffffffffff
push esi
call fcn.00434660
jmp 0x4a7e1d
mov eax, dword [ebp - 0x9c]
call dword [eax]
mov eax, dword [ebp - 0x98]
cmp word [eax], 0
jne 0x4a7e89
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x9c], vtable.ui::CDuiString.0
cmp eax, ecx
je 0x4a7e46
push eax
call fcn.004e7744
add esp, 4
xor esi, esi
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0x11c]
mov dword [ebp - fcn.00434720], vtable.ui::CDuiString.0
cmp eax, ecx
je 0x4a7e6b
push eax
call fcn.004e7744
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004c8882
mov esp, ebp
pop ebp
ret
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4a7f21
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x358], eax
cmp eax, 0xffffffff
je 0x4a7f21
inc eax
push eax
call fcn.004c8b41
add esp, 4
mov ebx, eax
lea eax, [ebp - 0x358]
push 0
push eax
push dword [ebp - 0x358]
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [ebp - 0x358]
push esi
mov byte [ecx + ebx], 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x94]
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x9c], vtable.ui::CDuiString.0
cmp eax, ecx
je 0x4a80af
push eax
call fcn.004e7744
add esp, 4
jmp 0x4a80af
mov eax, dword [ebp - 0x98]
jmp 0x4a7e29
push eax
lea ecx, [ebp - 0x124]
call fcn.00434530
cmp byte [0x5480b6], 0
je 0x4a7f49
mov edi, dword [0x548130]
jmp 0x4a7f5d
mov ecx, dword [ebp - 0x120]
xor edx, edx
push 2
call fcn.00450e90
add esp, 4
mov edi, eax
test edi, edi
je 0x4a7e46
lea eax, [ebp - 0x354]
mov edx, esi
push eax
lea eax, [ebp - 0x35c]
push eax
push ecx
mov ecx, edi
call fcn.00450f10
add esp, 0xc
test eax, eax
je 0x4a8034
test esi, esi
je 0x4a7f98
push esi
lea ecx, [ebp - 0x124]
call fcn.00434530
push dword [ebp - 0x120]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
call edi
test eax, eax
jne 0x4a7fbd
push esi
call edi
test eax, eax
je 0x4a7fbd
push esi
lea ecx, [ebp - 0x124]
call fcn.00434750
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
push dword [ebp - 0x120]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4a7e46
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x358], eax
cmp eax, 0xffffffff
je 0x4a7e46
inc eax
push eax
call fcn.004c8b41
add esp, 4
mov ebx, eax
lea eax, [ebp - 0x358]
push 0
push eax
push dword [ebp - 0x358]
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0x358]
push esi
mov byte [eax + ebx], 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4a80af
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x358], eax
test eax, eax
je 0x4a7e46
inc eax
push eax
call fcn.004c8b41
push dword [ebp - 0x358]
mov edx, dword [ebp - 0x35c]
mov ebx, eax
push ebx
mov ecx, edi
call fcn.00451060
mov ecx, dword [ebp - 0x358]
add esp, 0xc
mov byte [ecx + ebx], 0
test eax, eax
je 0x4a809f
cmp eax, 0x600
je 0x4a809f
push ebx
call fcn.004c8d6c
add esp, 4
cmp byte [0x5480b6], 0
jne 0x4a7e46
mov ecx, edi
call fcn.004510b0
jmp 0x4a7e46
cmp byte [0x5480b6], 0
jne 0x4a80af
mov ecx, edi
call fcn.004510b0
test ebx, ebx
je 0x4a7e46
movss xmm2, dword [0x52adac]
mov ecx, ebx
call fcn.004bab90
mov dword [ebp - 0x35c], eax
test eax, eax
je 0x4a7e46
movss xmm0, dword [eax]
mulss xmm0, dword [ebp - 0x360]
divss xmm0, dword [0x52adac]
cvttss2si esi, xmm0
movss xmm0, dword [eax + 4]
mulss xmm0, dword [ebp - 0x360]
mov dword [ebp - 0x368], esi
divss xmm0, dword [0x52adac]
cvttss2si edi, xmm0
mov dword [ebp - 0x364], edi
call fcn.004bace0
mov dword [ebp - 0x36c], eax
test eax, eax
je 0x4a7e46
mov ecx, edi
imul ecx, esi
shl ecx, 2
push ecx
call fcn.004c8b41
movss xmm0, dword [ebp - 0x360]
add esp, 4
divss xmm0, dword [0x52adac]
mov edx, dword [ebp - 0x35c]
mov edi, eax
shl esi, 2
push esi
xorps xmm3, xmm3
xorps xmm2, xmm2
push dword [ebp - 0x364]
push dword [ebp - 0x368]
push edi
push ecx
mov ecx, dword [ebp - 0x36c]
movss dword [esp], xmm0
call fcn.004beae0
add esp, 0x14
push ebx
call fcn.004c8d6c
mov ecx, dword [ebp - 0x370]
mov edx, edi
push esi
push dword [ebp - 0x364]
push dword [ebp - 0x368]
call fcn.004a4c20
mov ecx, dword [ebp - 0x36c]
mov esi, eax
call fcn.004bad20
mov ecx, dword [ebp - 0x35c]
call fcn.004bac30
push edi
call fcn.004c8d6c
add esp, 0x14
jmp 0x4a7e48