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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x565127
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 8], eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp + 0x14]
call fcn.00564104
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
je 0x56510b
xor edx, edx
push ebp
push 0x565104
push dword fs:[edx]
mov dword fs:[edx], esp
push 0
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_GetFileSize_1
mov ebx, eax
mov eax, ebx
call fcn.004043b4
mov dword [ebp - 0xc], eax
xor edx, edx
push ebp
push 0x5650e6
push dword fs:[edx]
mov dword fs:[edx], esp
push 0
lea eax, [ebp - 0x14]
push eax
push ebx
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_ReadFile_1
test eax, eax
je 0x5650d0
cmp ebx, dword [ebp - 0x14]
jne 0x5650d0
lea eax, [ebp - 0x18]
push eax
movzx eax, word [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00564dcc
test eax, eax
je 0x564f6c
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + 4]
push eax
lea eax, [ebp - 4]
mov ecx, 1
mov edx, dword [0x564df4]
call fcn.00408c30
add esp, 4
mov dword [ebp - 0x1c], 0x7fffffff
mov eax, dword [ebp - 4]
call fcn.00408a70
mov esi, eax
test esi, esi
jl 0x564f73
inc esi
xor ebx, ebx
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + eax*2 + 0x12]
mov edx, dword [ebp - 4]
mov dword [edx + ebx*4], eax
cmp eax, dword [ebp - 0x1c]
jge 0x564f66
mov dword [ebp - 0x1c], eax
inc ebx
dec esi
jne 0x564f46
jmp 0x564f73
mov dword [ebp - 0x1c], 0x32
movzx eax, word [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.0056513c
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 4]
imul eax, eax, 0xe
add eax, 6
call fcn.004043b4
mov dword [ebp - 0x18], eax
xor eax, eax
push ebp
push 0x5650c9
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
mov ecx, 6
call fcn.0040458c
mov eax, dword [ebp - 0xc]
movzx esi, word [eax + 4]
dec esi
test esi, esi
jl 0x56508a
inc esi
xor ebx, ebx
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [ebp - 0x18]
lea edx, [edx + eax*2 + 6]
mov edi, ebx
add edi, edi
mov eax, dword [ebp - 0xc]
lea eax, [eax + edi*8 + 6]
mov ecx, 0xe
call fcn.0040458c
mov eax, dword [ebp - 4]
call fcn.00408a68
cmp ebx, eax
jge 0x565018
mov eax, dword [ebp - 4]
movzx eax, word [eax + ebx*4]
mov edx, ebx
add edx, edx
add edx, edx
add edx, edx
sub edx, ebx
mov ecx, dword [ebp - 0x18]
mov word [ecx + edx*2 + 0x12], ax
jmp 0x565034
push ebp
lea eax, [ebp - 0x1c]
call fcn.00564e1c
pop ecx
mov edx, ebx
add edx, edx
add edx, edx
add edx, edx
sub edx, ebx
mov ecx, dword [ebp - 0x18]
mov word [ecx + edx*2 + 0x12], ax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + edi*8 + 0xe]
push eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + edi*8 + 0x12]
add eax, dword [ebp - 0xc]
push eax
movzx eax, word [ebp + 0x10]
push eax
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + eax*2 + 0x12]
push eax
push 3
mov eax, dword [ebp + 8]
push eax
call fcn.00564be0
test eax, eax
jne 0x565082
call fcn.004066c8
call fcn.004066c8
call fcn.004066c8
jmp 0x56510b
inc ebx
dec esi
jne 0x564fcb
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + 4]
imul eax, eax, 0xe
add eax, 6
push eax
mov eax, dword [ebp - 0x18]
push eax
movzx eax, word [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
push 0xe
mov eax, dword [ebp + 8]
push eax
call fcn.00564be0
mov dword [ebp - 8], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5650d0
mov eax, dword [ebp - 0x18]
call fcn.004043d0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5650ed
mov eax, dword [ebp - 0xc]
call fcn.004043d0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x56512e
lea eax, [ebp - 4]
mov edx, dword [0x564df4]
call fcn.00408c3c
ret