Function at 0x42e8e0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x617610
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2c
push ebx
push esi
mov esi, ecx
xor eax, eax
cmp dword [esi + 8], eax
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x24], esi
jle 0x42e930
mov edx, dword [esi + 0x14]
mov ecx, edx
mov edi, dword [ecx]
cmp edi, dword [ebp + 0xc]
jne 0x42e925
mov edi, dword [ecx + 4]
cmp edi, dword [ebp + 0x10]
je 0x42e9ac
add eax, 1
add ecx, 0x18
cmp eax, dword [esi + 8]
jl 0x42e912
mov edx, dword [ebp + 8]
push edx
mov ecx, esi
call fcn.0042e780
mov edi, dword [esi + 4]
add dword [esi + 0x10], 1
test edi, edi
mov ecx, dword [ebp + 0x10]
mov ebx, eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], 0
jl 0x42ea2f
push 0
push ecx
mov ecx, dword [ebp + 0xc]
cdq
push ecx
push edx
push eax
call fcn.005f8550
push edx
push eax
push edi
call fcn.005fa91c
add esp, 0x10
cmp eax, 0xffffffff
jne 0x42e9d2
cmp edx, eax
jne 0x42e9d2
call fcn.005fa855
mov edx, dword [eax]
push edx
call fcn.005fa7b3
push eax
lea eax, [ebp - 0x18]
push str.FastRead_seek_error:__s.
push eax
call fcn.0051c348
add esp, 0x10
push 0x694d20
lea ecx, [ebp - 0x18]
push ecx
call fcn.005f8355
lea ecx, [eax + eax*2]
lea edx, [edx + ecx*8 + 8]
mov ecx, dword [ebp + 8]
mov esi, 1
shl esi, cl
or dword [edx], esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 4]
push eax
imul eax, ebx
add eax, dword [esi + 0x18]
push eax
push edx
call fcn.005fa693
add esp, 0xc
test eax, eax
jge 0x42ea1a
call fcn.005fa855
mov eax, dword [eax]
push eax
call fcn.005fa7b3
push eax
lea ecx, [ebp - 0x1c]
push str.FastRead_read_error:__s.
push ecx
call fcn.0051c348
add esp, 0x10
push 0x694d20
lea edx, [ebp - 0x1c]
push edx
call fcn.005f8355
mov ecx, dword [esi + 0x14]
lea edx, [ebx + ebx*2]
add edx, edx
add edx, edx
add edx, edx
mov dword [edx + ecx + 0xc], eax
jmp 0x42eb19
push ecx
mov ecx, dword [ebp + 0xc]
mov edi, eax
imul edi, dword [ebp + 0xc]
cdq
push ecx
push edx
push eax
call fcn.005f8550
mov cl, 0x20
call fcn.005f8600
push 0
lea edx, [ebp - 0x20]
push edx
mov dword [ebp - 0x20], eax
mov eax, dword [esi]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
jne 0x42ea8f
call edi
test eax, eax
je 0x42ea8f
call edi
push eax
lea ecx, [ebp - 0x30]
push str.FastRead_seek_error:___s
push ecx
call fcn.0051d61a
add esp, 0xc
push 0x697a88
lea edx, [ebp - 0x30]
push edx
call fcn.005f8355
mov eax, dword [esi + 0xc]
mov edx, dword [esi]
push 0
lea ecx, [ebp - 0x28]
push ecx
push eax
imul eax, ebx
add eax, dword [esi + 0x18]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x42eb06
call edi
push eax
lea eax, [ebp - 0x38]
push str.FastRead_read_error:___s
push eax
call fcn.0051d61a
add esp, 0xc
push 0x697a88
lea ecx, [ebp - 0x38]
push ecx
call fcn.005f8355
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov ecx, dword [edx + 0x14]
lea eax, [eax + eax*2]
add eax, eax
add eax, eax
add eax, eax
mov dword [eax + ecx], 0xffffffff
mov dword [eax + ecx + 4], 0xffffffff
mov edx, dword [edx + 0x14]
mov dword [eax + edx + 8], 0
mov eax, 0x42eb01
ret
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp - 0x28]
lea edx, [ebx + ebx*2]
add edx, edx
add edx, edx
add edx, edx
mov dword [edx + eax + 0xc], ecx
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp + 0xc]
mov dword [edx + eax], ecx
mov ecx, dword [ebp + 0x10]
mov dword [edx + eax + 4], ecx
mov ecx, dword [ebp + 8]
mov eax, 1
shl eax, cl
mov ecx, dword [esi + 0x14]
mov dword [edx + ecx + 8], eax
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
mov dword [edx + eax + 0x14], ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov eax, ebx
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc