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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x526196
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.00452790], 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.004526d0
mov dword [ebp - 4], 0
mov eax, dword [0x56513c]
mov dword [ebp - 0x358], 0
cmp word [eax], 0
jne 0x4b5f1c
test esi, esi
je 0x4b5da0
push esi
lea ecx, [ebp - 0x124]
call fcn.004525a0
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 0x4b5dea
push 0xffffffffffffffff
push dword [ebp - 0x120]
lea ecx, [ebp - 0x9c]
call fcn.004526d0
jmp 0x4b5e0d
push esi
call edi
test eax, eax
je 0x4b5e0d
lea ecx, [ebp - 0x9c]
test esi, esi
je 0x4b5e05
push 0xffffffffffffffff
push esi
call fcn.004526d0
jmp 0x4b5e0d
mov eax, dword [ebp - 0x9c]
call dword [eax]
mov eax, dword [ebp - 0x98]
cmp word [eax], 0
jne 0x4b5e79
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x9c], vtable.ui::CDuiString.0
cmp eax, ecx
je 0x4b5e36
push eax
call fcn.004fe1ff
add esp, 4
xor esi, esi
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0x11c]
mov dword [ebp - fcn.00452790], vtable.ui::CDuiString.0
cmp eax, ecx
je 0x4b5e5b
push eax
call fcn.004fe1ff
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.004e1de4
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 0x4b5f11
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x358], eax
cmp eax, 0xffffffff
je 0x4b5f11
inc eax
push eax
call fcn.004e2524
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 0x4b609f
push eax
call fcn.004fe1ff
add esp, 4
jmp 0x4b609f
mov eax, dword [ebp - 0x98]
jmp 0x4b5e19
push eax
lea ecx, [ebp - 0x124]
call fcn.004525a0
cmp byte [0x56e90c], 0
je 0x4b5f39
mov edi, dword [0x56e908]
jmp 0x4b5f4d
mov ecx, dword [ebp - 0x120]
xor edx, edx
push 2
call fcn.00474cd0
add esp, 4
mov edi, eax
test edi, edi
je 0x4b5e36
lea eax, [ebp - 0x354]
mov edx, esi
push eax
lea eax, [ebp - 0x35c]
push eax
push ecx
mov ecx, edi
call fcn.00474d50
add esp, 0xc
test eax, eax
je 0x4b6024
test esi, esi
je 0x4b5f88
push esi
lea ecx, [ebp - 0x124]
call fcn.004525a0
push dword [ebp - 0x120]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
call edi
test eax, eax
jne 0x4b5fad
push esi
call edi
test eax, eax
je 0x4b5fad
push esi
lea ecx, [ebp - 0x124]
call fcn.004527c0
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 0x4b5e36
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x358], eax
cmp eax, 0xffffffff
je 0x4b5e36
inc eax
push eax
call fcn.004e2524
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 0x4b609f
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x358], eax
test eax, eax
je 0x4b5e36
inc eax
push eax
call fcn.004e2524
push dword [ebp - 0x358]
mov edx, dword [ebp - 0x35c]
mov ebx, eax
push ebx
mov ecx, edi
call fcn.00474ea0
mov ecx, dword [ebp - 0x358]
add esp, 0xc
mov byte [ecx + ebx], 0
test eax, eax
je 0x4b608f
cmp eax, 0x600
je 0x4b608f
push ebx
call fcn.004e2516
add esp, 4
cmp byte [0x56e90c], 0
jne 0x4b5e36
mov ecx, edi
call fcn.00474ef0
jmp 0x4b5e36
cmp byte [0x56e90c], 0
jne 0x4b609f
mov ecx, edi
call fcn.00474ef0
test ebx, ebx
je 0x4b5e36
movss xmm2, dword [0x549064]
mov ecx, ebx
call fcn.004c6800
mov dword [ebp - 0x35c], eax
test eax, eax
je 0x4b5e36
movss xmm0, dword [eax]
mulss xmm0, dword [ebp - 0x360]
divss xmm0, dword [0x549064]
cvttss2si esi, xmm0
movss xmm0, dword [eax + 4]
mulss xmm0, dword [ebp - 0x360]
mov dword [ebp - 0x368], esi
divss xmm0, dword [0x549064]
cvttss2si edi, xmm0
mov dword [ebp - 0x364], edi
call fcn.004c6950
mov dword [ebp - 0x36c], eax
test eax, eax
je 0x4b5e36
mov ecx, edi
imul ecx, esi
shl ecx, 2
push ecx
call fcn.004e2524
movss xmm0, dword [ebp - 0x360]
add esp, 4
divss xmm0, dword [0x549064]
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.004ca760
add esp, 0x14
push ebx
call fcn.004e2516
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.004b3740
mov ecx, dword [ebp - 0x36c]
mov esi, eax
call fcn.004c6990
mov ecx, dword [ebp - 0x35c]
call fcn.004c68a0
push edi
call fcn.004e2516
add esp, 0x14
jmp 0x4b5e38