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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x525f36
mov eax, dword fs:[0]
push eax
sub esp, 0x368
mov eax, dword [0x5640a8]
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.004524a0], vtable.ui::CDuiString.0
push 0xffffffffffffffff
push dword [0x5651c4]
mov dword [ebp - 0x120], eax
lea ecx, [ebp - 0x124]
xor eax, eax
mov word [ebp - 0x11c], ax
call fcn.004523e0
mov dword [ebp - 4], 0
mov eax, dword [0x56513c]
mov dword [ebp - 0x358], 0
cmp word [eax], 0
jne 0x4b5cec
test esi, esi
je 0x4b5b70
push esi
lea ecx, [ebp - 0x124]
call fcn.004522b0
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 0x4b5bba
push 0xffffffffffffffff
push dword [ebp - 0x120]
lea ecx, [ebp - 0x9c]
call fcn.004523e0
jmp 0x4b5bdd
push esi
call edi
test eax, eax
je 0x4b5bdd
lea ecx, [ebp - 0x9c]
test esi, esi
je 0x4b5bd5
push 0xffffffffffffffff
push esi
call fcn.004523e0
jmp 0x4b5bdd
mov eax, dword [ebp - 0x9c]
call dword [eax]
mov eax, dword [ebp - 0x98]
cmp word [eax], 0
jne 0x4b5c49
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x9c], vtable.ui::CDuiString.0
cmp eax, ecx
je 0x4b5c06
push eax
call fcn.004fdfef
add esp, 4
xor esi, esi
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0x11c]
mov dword [ebp - fcn.004524a0], vtable.ui::CDuiString.0
cmp eax, ecx
je 0x4b5c2b
push eax
call fcn.004fdfef
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.004e1bb1
mov esp, ebp
pop ebp
ret
push 0
push 0x80
push 3
push 0
push 1
push Ordinal_1
push eax
call dword [sym.imp.KERNEL32.DLL_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4b5ce1
push 0
push esi
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
mov dword [ebp - 0x358], eax
cmp eax, 0xffffffff
je 0x4b5ce1
inc eax
push eax
call fcn.004e22d3
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 0x4b5e6f
push eax
call fcn.004fdfef
add esp, 4
jmp 0x4b5e6f
mov eax, dword [ebp - 0x98]
jmp 0x4b5be9
push eax
lea ecx, [ebp - 0x124]
call fcn.004522b0
cmp byte [0x56e830], 0
je 0x4b5d09
mov edi, dword [0x56e82c]
jmp 0x4b5d1d
mov ecx, dword [ebp - 0x120]
xor edx, edx
push 2
call fcn.004749d0
add esp, 4
mov edi, eax
test edi, edi
je 0x4b5c06
lea eax, [ebp - 0x354]
mov edx, esi
push eax
lea eax, [ebp - 0x35c]
push eax
push ecx
mov ecx, edi
call fcn.00474a50
add esp, 0xc
test eax, eax
je 0x4b5df4
test esi, esi
je 0x4b5d58
push esi
lea ecx, [ebp - 0x124]
call fcn.004522b0
push dword [ebp - 0x120]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
call edi
test eax, eax
jne 0x4b5d7d
push esi
call edi
test eax, eax
je 0x4b5d7d
push esi
lea ecx, [ebp - 0x124]
call fcn.004524d0
push 0
push 0x80
push 3
push 0
push 1
push Ordinal_1
push dword [ebp - 0x120]
call dword [sym.imp.KERNEL32.DLL_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4b5c06
push 0
push esi
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
mov dword [ebp - 0x358], eax
cmp eax, 0xffffffff
je 0x4b5c06
inc eax
push eax
call fcn.004e22d3
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 0x4b5e6f
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x358], eax
test eax, eax
je 0x4b5c06
inc eax
push eax
call fcn.004e22d3
push dword [ebp - 0x358]
mov edx, dword [ebp - 0x35c]
mov ebx, eax
push ebx
mov ecx, edi
call fcn.00474ba0
mov ecx, dword [ebp - 0x358]
add esp, 0xc
mov byte [ecx + ebx], 0
test eax, eax
je 0x4b5e5f
cmp eax, 0x600
je 0x4b5e5f
push ebx
call fcn.004e22c5
add esp, 4
cmp byte [0x56e830], 0
jne 0x4b5c06
mov ecx, edi
call fcn.00474bf0
jmp 0x4b5c06
cmp byte [0x56e830], 0
jne 0x4b5e6f
mov ecx, edi
call fcn.00474bf0
test ebx, ebx
je 0x4b5c06
movss xmm2, dword [0x549034]
mov ecx, ebx
call fcn.004c65c0
mov dword [ebp - 0x35c], eax
test eax, eax
je 0x4b5c06
movss xmm0, dword [eax]
mulss xmm0, dword [ebp - 0x360]
divss xmm0, dword [0x549034]
cvttss2si esi, xmm0
movss xmm0, dword [eax + 4]
mulss xmm0, dword [ebp - 0x360]
mov dword [ebp - 0x368], esi
divss xmm0, dword [0x549034]
cvttss2si edi, xmm0
mov dword [ebp - 0x364], edi
call fcn.004c6710
mov dword [ebp - 0x36c], eax
test eax, eax
je 0x4b5c06
mov ecx, edi
imul ecx, esi
shl ecx, 2
push ecx
call fcn.004e22d3
movss xmm0, dword [ebp - 0x360]
add esp, 4
divss xmm0, dword [0x549034]
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.004ca510
add esp, 0x14
push ebx
call fcn.004e22c5
mov ecx, dword [ebp - 0x370]
add esp, 4
mov edx, edi
push 0x1c
push esi
push dword [ebp - 0x364]
push dword [ebp - 0x368]
call fcn.004b3530
mov ecx, dword [ebp - 0x36c]
mov esi, eax
call fcn.004c6750
mov ecx, dword [ebp - 0x35c]
call fcn.004c6660
push edi
call fcn.004e22c5
add esp, 0x14
jmp 0x4b5c08