Function at 0x62e8575c
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x2c
mov ebx, eax
mov eax, dword [eax + 0x58]
mov ecx, eax
test eax, eax
je 0x62e857d8
lea eax, [ecx - 1]
mov dword [ebx + 0x58], eax
mov ecx, dword [ebx + 0x54]
movzx esi, byte [ecx]
inc ecx
mov dword [ebx + 0x54], ecx
test eax, eax
je 0x62e85920
dec eax
mov dword [ebx + 0x58], eax
mov edi, dword [ebx + 0x54]
movzx ecx, byte [edi]
shl ecx, 8
inc edi
mov dword [ebx + 0x54], edi
add esi, ecx
test eax, eax
je 0x62e85804
dec eax
mov dword [ebx + 0x58], eax
mov edi, dword [ebx + 0x54]
movzx ecx, byte [edi]
shl ecx, 0x10
inc edi
mov dword [ebx + 0x54], edi
add esi, ecx
test eax, eax
je 0x62e8581c
dec eax
mov dword [ebx + 0x58], eax
mov ecx, dword [ebx + 0x54]
movzx eax, byte [ecx]
inc ecx
mov dword [ebx + 0x54], ecx
shl eax, 0x18
add esi, eax
mov dword [edx], esi
xor eax, eax
add esp, 0x2c
pop ebx
pop esi
pop edi
leave
ret
mov edi, dword [ebx + 0x4c]
test edi, edi
jne 0x62e858a0
mov esi, dword [ebx + 0x28]
test esi, esi
je 0x62e858aa
mov esi, 0xffffffff
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x62e859b4
sub esi, 0x100
mov edi, dword [ebx + 0x4c]
test edi, edi
jne 0x62e85864
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x62e85a30
sub esi, 0x10000
mov eax, dword [ebx + 0x4c]
test eax, eax
jne 0x62e8582e
mov edi, dword [ebx + 0x28]
test edi, edi
je 0x62e85938
mov eax, 0xffffffff
add esp, 0x2c
pop ebx
pop esi
pop edi
leave
ret
mov dword [ebp - 0x28], edx
call sub.msvcrt.dll__errno
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 8], eax
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call fcn.62e84d6c
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x58]
mov ecx, 0xffff0000
jmp 0x62e857b0
mov dword [ebp - 0x28], edx
call sub.msvcrt.dll__errno
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 8], eax
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call fcn.62e84d6c
mov eax, dword [ebx + 0x58]
mov edx, dword [ebp - 0x28]
lea esi, [esi]
mov esi, 0xffffffff
jmp 0x62e85780
lea edi, [ebx + 0x58]
mov esi, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x18]
mov dword [ebx + 0x58], 0
mov dword [ebp - 0x1c], edx
mov edx, ebx
mov ebx, ecx
jmp 0x62e858d0
add eax, dword [edi]
mov dword [edi], eax
cmp esi, eax
jbe 0x62e85aa8
mov ecx, esi
sub ecx, eax
mov dword [esp + 8], ecx
lea eax, [ebx + eax]
mov dword [esp + 4], eax
mov eax, dword [edx + 4]
mov dword [esp], eax
mov dword [ebp - 0x28], edx
call sub.msvcrt.dll__read
cmp eax, 0
mov edx, dword [ebp - 0x28]
jg 0x62e858c4
mov ebx, edx
mov edx, dword [ebp - 0x1c]
jne 0x62e85871
mov dword [ebx + 0x28], 1
mov eax, dword [ebx + 0x18]
mov dword [ebx + 0x54], eax
mov ecx, dword [ebx + 0x58]
test ecx, ecx
jne 0x62e85770
mov esi, 0xffffffff
lea esi, [esi]
mov ecx, dword [ebx + 0x4c]
test ecx, ecx
je 0x62e857f3
mov eax, dword [ebx + 0x58]
mov ecx, 0xffffff00
jmp 0x62e85799
lea edi, [ebx + 0x58]
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x18]
mov dword [ebp - 0x1c], ecx
mov dword [ebx + 0x58], 0
mov dword [ebp - 0x20], esi
mov esi, ebx
mov ebx, eax
mov dword [ebp - 0x24], edx
mov eax, dword [edi]
jmp 0x62e85968
add eax, dword [edi]
mov dword [edi], eax
cmp ebx, eax
jbe 0x62e85ac9
mov edx, ebx
sub edx, eax
mov dword [esp + 8], edx
add eax, dword [ebp - 0x1c]
mov dword [esp + 4], eax
mov eax, dword [esi + 4]
mov dword [esp], eax
call sub.msvcrt.dll__read
cmp eax, 0
jg 0x62e8595c
mov ebx, esi
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
jne 0x62e85b04
mov dword [ebx + 0x28], 1
mov eax, dword [ebx + 0x18]
mov dword [ebx + 0x54], eax
mov eax, dword [ebx + 0x58]
test eax, eax
je 0x62e8582e
jmp 0x62e857b6
lea edi, [ebx + 0x58]
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x18]
mov dword [ebp - 0x1c], ecx
mov dword [ebx + 0x58], 0
mov dword [ebp - 0x20], esi
mov esi, ebx
mov ebx, eax
mov dword [ebp - 0x24], edx
mov eax, dword [edi]
jmp 0x62e859e4
add eax, dword [edi]
mov dword [edi], eax
cmp ebx, eax
jbe 0x62e85ab2
mov edx, ebx
sub edx, eax
mov dword [esp + 8], edx
add eax, dword [ebp - 0x1c]
mov dword [esp + 4], eax
mov eax, dword [esi + 4]
mov dword [esp], eax
call sub.msvcrt.dll__read
cmp eax, 0
jg 0x62e859d8
mov ebx, esi
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
jne 0x62e85ad6
mov dword [ebx + 0x28], 1
mov eax, dword [ebx + 0x18]
mov dword [ebx + 0x54], eax
mov eax, dword [ebx + 0x58]
test eax, eax
je 0x62e857fe
jmp 0x62e85788
lea edi, [ebx + 0x58]
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x18]
mov dword [ebp - 0x1c], ecx
mov dword [ebx + 0x58], 0
mov dword [ebp - 0x20], esi
mov esi, ebx
mov ebx, eax
mov dword [ebp - 0x24], edx
mov eax, dword [edi]
jmp 0x62e85a5c
add eax, dword [edi]
mov dword [edi], eax
cmp ebx, eax
jbe 0x62e85abf
mov edx, ebx
sub edx, eax
mov dword [esp + 8], edx
add eax, dword [ebp - 0x1c]
mov dword [esp + 4], eax
mov eax, dword [esi + 4]
mov dword [esp], eax
call sub.msvcrt.dll__read
cmp eax, 0
jg 0x62e85a54
mov ebx, esi
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
jne 0x62e8583b
mov dword [ebx + 0x28], 1
mov eax, dword [ebx + 0x18]
mov dword [ebx + 0x54], eax
mov eax, dword [ebx + 0x58]
test eax, eax
je 0x62e85816
jmp 0x62e8579f
mov ebx, edx
mov edx, dword [ebp - 0x1c]
jmp 0x62e85907
mov ebx, esi
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
jmp 0x62e85a18
mov ebx, esi
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
jmp 0x62e85a90
mov ebx, esi
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
jmp 0x62e8599c
mov dword [ebp - 0x28], edx
call sub.msvcrt.dll__errno
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 8], eax
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call fcn.62e84d6c
mov edx, dword [ebp - 0x28]
jmp 0x62e8592b
call sub.msvcrt.dll__errno
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 8], eax
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call fcn.62e84d6c
or eax, 0xffffffff
jmp 0x62e857cd