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

Disassembly:
push 0x98
mov eax, 0x612206
call fcn.00524043
mov edx, ecx
mov dword [ebp - 0x9c], edx
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x98], edi
call fcn.00461f9f
xor esi, esi
lea eax, [edx + 4]
mov dword [ebp - 4], esi
cmp dword [eax + 0x10], esi
je 0x456bcf
push eax
lea ecx, [ebp - 0x28]
call fcn.00465045
push dword [ebp + 0xc]
lea ecx, [ebp - 0x2c]
call fcn.00462ed6
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.0046260b
jmp 0x456dee
lea ecx, [ebp - 0x48]
call fcn.00456a24
push esi
push 0x80
push 3
push esi
mov byte [ebp - 4], 1
lea eax, [ebp - 0x44]
cmp dword [ebp - 0x30], 8
push 1
cmovae eax, dword [ebp - 0x44]
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x456ddc
lea eax, [ebp - 0xa4]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x456c26
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x456ddc
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x98], eax
cmp ecx, esi
jg 0x456c1a
jl 0x456c1a
cmp eax, esi
jbe 0x456c1a
cmp ecx, esi
jl 0x456c4f
jg 0x456c1a
cmp eax, 0x7f8
jae 0x456c1a
push 0x800
call fcn.00522ef7
mov esi, eax
mov dword [esp], 0x800
push 0
push esi
mov dword [ebp - 0x94], esi
call fcn.00524e30
and dword [ebp - 0x90], 0
lea eax, [ebp - 0x90]
add esp, 0xc
push 0
push eax
push dword [ebp - 0x98]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x456dcf
cmp dword [ebp - 0x90], 0
jbe 0x456dcf
mov esi, dword [ebp - 0x94]
lea ecx, [ebp - 0x80]
lea eax, [esi + 2]
push eax
call fcn.004625ae
push esi
call fcn.00522cf7
xor eax, eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x64]
mov dword [esp], 0x695414
call fcn.004625ae
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x8c]
push eax
lea ecx, [ebp - 0x80]
call fcn.0046476b
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 3
call fcn.00462a54
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x8c]
push 0x1c
cdq
pop ecx
idiv ecx
cmp eax, 2
jb 0x456db2
push dword [ebp - 0x8c]
lea ecx, [ebp - 0x64]
call fcn.0046260b
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x8c]
lea ecx, [ecx + 0x1c]
call fcn.00462ec3
cmp dword [ebp - 0x50], 0xa
mov esi, eax
jle 0x456daa
test esi, esi
je 0x456daa
mov ebx, dword [ebp - 0x9c]
lea ecx, [ebx + 4]
cmp dword [ecx + 0x10], 0
jne 0x456daa
lea eax, [ebp - 0x60]
push eax
call fcn.00465045
push dword [ebp + 0xc]
lea ecx, [ebp - 0x64]
mov dword [ebx + 0x1c], esi
call fcn.00462ed6
lea eax, [ebp - 0x64]
mov ecx, edi
push eax
call fcn.0046260b
lea ecx, [ebp - 0x64]
call fcn.00462a54
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 6
call fcn.0044b075
lea ecx, [ebp - 0x80]
call fcn.00462a54
jmp 0x456de6
lea ecx, [ebp - 0x64]
call fcn.00462a54
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 7
call fcn.0044b075
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 1
call fcn.00462a54
jmp 0x456ddc
mov esi, dword [ebp - 0x94]
push esi
call fcn.00522cf7
pop ecx
mov dl, byte [ebp + 0xc]
mov ecx, edi
call fcn.00456e00
lea ecx, [ebp - 0x48]
call fcn.00462a54
lea ecx, [ebp - 0x2c]
call fcn.00462a54
mov eax, edi
call fcn.00523fed
ret 8