Function at 0x40e09d
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
mov ebx, ecx
mov ecx, dword [ebx + 0x14]
xor edx, edx
push 0xa
mov eax, ecx
pop esi
div esi
and dword [ebp - 0xc], 0
mov edx, 0x186a0
cmp eax, edx
jae 0x40e0c6
mov dword [ebp - 0x1c], edx
jmp 0x40e0cc
shr ecx, 2
mov dword [ebp - 0x1c], ecx
mov edi, dword [ebp + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 4
push 0
push dword [ebp + 0xc]
call fcn.0044b3e0
add esp, 0xc
push 0
lea eax, [ebp - 0x14]
push eax
push 4
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 4
push dword [ebp + 0xc]
mov ecx, ebx
mov dword [ebp - 0x10], eax
call fcn.0040df1b
cmp dword [ebp - 0x10], 0
je 0x40e2e8
cmp dword [ebp - 0x14], 4
jne 0x40e2e8
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x1c]
ja 0x40e2e8
push 1
push 0
push 0xfffffffffffffffd
push dword [ebp + 8]
call esi
push dword [ebp + 0xc]
mov ecx, ebx
mov dword [edi], eax
call fcn.0040daa1
test eax, eax
je 0x40e0e4
push 1
push 0
push 0xffffffffffffffff
push dword [ebp + 8]
call esi
mov dword [edi], eax
lea eax, [ebx + 0x38]
push eax
push dword [ebp + 0xc]
mov ecx, ebx
call fcn.0040dc75
cmp dword [ebx + 0x10c], 0
jne 0x40e29d
push dword [edi]
mov ecx, ebx
push dword [ebp + 8]
call fcn.0040dba6
test eax, eax
jne 0x40e284
push dword [edi]
mov ecx, ebx
push dword [ebp + 8]
call fcn.0040daf8
test eax, eax
jne 0x40e284
push eax
push eax
push dword [edi]
push dword [ebp + 8]
call esi
mov dword [ebp + 0x10], 1
mov eax, dword [ebx + 0x5c]
cdq
idiv dword [ebp + 0x10]
mov ecx, dword [edi]
push 0
push 0
lea eax, [eax + ecx - 1]
push eax
push dword [ebp + 8]
call esi
and dword [ebp - 8], 0
push 4
lea eax, [ebp - 4]
push 0
push eax
call fcn.0044b3e0
add esp, 0xc
push 0
lea eax, [ebp - 0x14]
push eax
push 4
lea eax, [ebp - 4]
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0x10], eax
push 4
lea eax, [ebp - 4]
push eax
mov ecx, ebx
call fcn.0040df1b
cmp dword [ebp - 0x10], 0
je 0x40e2e8
cmp dword [ebp - 0x14], 4
jne 0x40e2e8
lea eax, [ebp - 4]
push eax
mov ecx, ebx
call fcn.0040daa1
test eax, eax
je 0x40e250
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, dword [ebp - 4]
mov edx, eax
xor edx, ecx
test edx, 0xffe00000
jne 0x40e250
mov edx, eax
xor edx, ecx
test edx, 0x180000
jne 0x40e250
mov edx, eax
xor edx, ecx
test edx, 0x60000
jne 0x40e250
xor eax, ecx
test ax, 0xc00
je 0x40e2d8
mov eax, dword [ebx + 0x5c]
cdq
idiv dword [ebp + 0x10]
push 0
push 0
add eax, dword [edi]
add eax, dword [ebp - 8]
push eax
push dword [ebp + 8]
call esi
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x40e1c0
mov eax, dword [ebp + 0x10]
inc dword [ebp + 0x10]
cmp eax, 1
jle 0x40e1a5
jmp 0x40e2c6
push 4
push dword [ebp + 0xc]
lea eax, [ebp - 0x18]
push eax
call fcn.0044c850
mov eax, dword [ebx + 0x108]
add esp, 0xc
jmp 0x40e2c8
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, eax
xor ecx, dword [ebp - 0x18]
test ecx, 0xffe00000
jne 0x40e2c6
mov ecx, eax
xor ecx, dword [ebp - 0x18]
test ecx, 0x180000
jne 0x40e2c6
xor eax, dword [ebp - 0x18]
test eax, 0x60000
je 0x40e2d8
mov eax, dword [edi]
push 0
push 0
inc eax
push eax
push dword [ebp + 8]
call esi
jmp 0x40e0d5
push 0
push 0
push dword [edi]
push dword [ebp + 8]
call esi
xor eax, eax
inc eax
jmp 0x40e2ea
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 0xc