Function at 0x45a541
Capabilities:
Get file size
Read file on windows

Disassembly:
push 0x6a0
mov eax, 0x521d42
call fcn.004e63cc
mov esi, ecx
lea ecx, [ebp - 0x47c]
call fcn.00438ecc
xor ebx, ebx
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x47c]
push ebx
push ebx
push esi
call fcn.00438f49
push 0x84
lea eax, [ebp - 0x1a4]
push ebx
push eax
call fcn.004e7ca0
add esp, 0xc
lea eax, [ebp - 0x374]
lea ecx, [ebp - 0x1a4]
push eax
call fcn.00448c30
mov byte [ebp - 4], 1
lea eax, [ebp - 0x9c]
push 0x84
push ebx
push eax
mov esi, ebx
mov edi, ebx
call fcn.004e7ca0
add esp, 0xc
lea ecx, [ebp - 0x9c]
push 0x570f98
call fcn.00448c30
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x9c]
mov eax, dword [0x570f10]
cmp word [eax], bx
jne 0x45a664
push dword [ebp - 0x1a4]
call fcn.00448ca3
push ebx
push 0x80
push 3
push ebx
push 1
push SysReAllocString
push dword [ebp - 0x9c]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x45a61e
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x9c]
call fcn.00448c55
jmp 0x45a746
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
test edi, edi
je 0x45a60a
and dword [ebp - 0x14], 0
push edi
call fcn.004e582b
pop ecx
push 0
mov esi, eax
lea eax, [ebp - 0x14]
push eax
push edi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x14], edi
je 0x45a733
push esi
call fcn.004e5256
pop ecx
xor esi, esi
jmp 0x45a60a
push eax
call fcn.00448ca3
mov ebx, dword [0x575b70]
test ebx, ebx
je 0x45a60a
and dword [ebp - 0x14], 0
lea eax, [ebp - 0x120]
push 0x84
push 0
push eax
call fcn.004e7ca0
add esp, 0xc
lea eax, [ebp - 0x1a4]
lea ecx, [ebp - 0x120]
push eax
call fcn.00448c30
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x120]
push 0x54a820
push 0x5455a4
call fcn.00449038
mov edx, dword [ebp - 0x120]
lea eax, [ebp - 0x6ac]
push eax
lea eax, [ebp - 0x14]
push eax
push ecx
mov ecx, ebx
call fcn.004648ca
add esp, 0xc
test eax, eax
je 0x45a6ed
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x120]
call fcn.00448c55
jmp 0x45a60a
mov edi, dword [ebp - 0x480]
test edi, edi
je 0x45a6d9
push edi
call fcn.004e582b
mov edx, dword [ebp - 0x14]
mov esi, eax
push edi
push esi
mov ecx, ebx
call fcn.004648fd
add esp, 0xc
test eax, eax
je 0x45a724
cmp eax, 0x600
je 0x45a724
push esi
call fcn.004e5256
pop ecx
xor esi, esi
jmp 0x45a6d9
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x120]
call fcn.00448c55
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x9c]
call fcn.00448c55
test esi, esi
jne 0x45a7ab
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
push dword [ebp - 0x1a4]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x45a7ab
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
test edi, edi
je 0x45a7ab
and dword [ebp - 0x18], 0
push edi
call fcn.004e582b
pop ecx
push 0
mov esi, eax
lea eax, [ebp - 0x18]
push eax
push edi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x18], edi
je 0x45a7ab
push esi
call fcn.004e5256
pop ecx
xor esi, esi
xor ebx, ebx
test esi, esi
je 0x45a7c3
mov edx, edi
mov ecx, esi
call fcn.0045a7e9
push esi
mov ebx, eax
call fcn.004e5256
pop ecx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1a4]
call fcn.00448c55
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x47c]
call fcn.00439dff
mov eax, ebx
call fcn.004e6376
ret