Function at 0x571e20
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
test ebx, ebx
je 0x572030
cmp byte [ebx + 0x5c], 0x72
jne 0x572030
mov eax, dword [ebx + 0x38]
mov edx, eax
and edx, 0xfffffffd
cmp edx, 0xfffffffd
je 0x572010
dec eax
je 0x572023
mov dword [ebx + 0xc], edi
mov dword [ebx + 0x10], esi
test esi, esi
je 0x571f73
mov eax, dword [ebx + 0x6c]
cmp eax, 0xffffffff
je 0x572040
mov byte [edi], al
inc edi
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
inc eax
dec edx
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 0x68]
inc eax
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x68], eax
mov eax, dword [ebx + 0x70]
mov dword [ebx + 0x6c], 0xffffffff
test eax, eax
jne 0x572015
mov ebp, edi
jmp 0x571efd
mov ecx, dword [ebx + 0x64]
add ecx, eax
mov eax, dword [ebx + 0x68]
add eax, edx
mov dword [ebx + 0x64], ecx
mov dword [ebx + 0x68], eax
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.00575890
mov edx, dword [ebx + 4]
mov ecx, dword [ebx + 0x64]
mov dword [ebx + 0x38], eax
sub ecx, edx
mov edx, dword [ebx + 0x10]
mov dword [ebx + 0x64], ecx
mov ecx, dword [ebx + 0x68]
sub ecx, edx
cmp eax, 1
mov dword [ebx + 0x68], ecx
je 0x571fd0
test eax, eax
jne 0x571fa0
mov eax, dword [ebx + 0x3c]
test eax, eax
jne 0x571fa0
mov edx, dword [ebx + 0x10]
test edx, edx
je 0x571fa0
mov eax, dword [ebx + 0x58]
test eax, eax
mov eax, dword [ebx + 4]
jne 0x572047
test eax, eax
jne 0x571ea5
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
jne 0x571ea5
call sub.msvcrt.dll__errno
mov dword [eax], 0
mov eax, dword [ebx + 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x4000
mov dword [esp + 4], 1
mov eax, dword [ebx + 0x44]
mov dword [esp], eax
call sub.msvcrt.dll_fread
mov dword [ebx + 4], eax
test eax, eax
jne 0x571f66
mov edx, dword [ebx + 0x40]
mov dword [ebx + 0x3c], 1
test byte [edx + 0xc], 0x20
jne 0x57210e
mov edx, dword [ebx + 0x44]
mov dword [ebx], edx
mov edx, dword [ebx + 0x10]
jmp 0x571ea5
xor edx, edx
jmp 0x571ea1
mov eax, ebx
call fcn.00571800
mov eax, ebx
call fcn.00571850
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x5720df
lea esi, [esi]
mov edx, dword [ebx + 0x4c]
mov eax, dword [ebx + 0xc]
mov dword [esp + 4], ebp
sub eax, ebp
mov dword [esp], edx
mov dword [esp + 8], eax
call fcn.00575050
mov dword [ebx + 0x4c], eax
mov eax, dword [ebx + 0x10]
cmp esi, eax
je 0x572005
sub esi, eax
mov eax, esi
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebx + 0xc]
mov dword [esp + 4], ebp
sub eax, ebp
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x4c]
mov dword [esp], eax
call fcn.00575050
mov ebp, dword [ebx + 0xc]
mov dword [ebx + 0x4c], eax
mov eax, ebx
call fcn.00571800
mov edx, dword [ebx + 0x4c]
cmp eax, edx
je 0x571f80
mov dword [ebx + 0x38], 0xfffffffd
jmp 0x571fa3
mov edx, dword [ebx + 0x38]
and edx, 0xfffffffd
cmp edx, 0xfffffffd
jne 0x571fc2
or eax, 0xffffffff
jmp 0x571fc6
mov dword [ebx + 0x38], 1
mov eax, 1
jmp 0x571fc6
add esp, 0x2c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
add esp, 0x2c
mov eax, 0xfffffffe
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, esi
jmp 0x571ea1
cmp eax, edx
ja 0x57209f
test eax, eax
jne 0x57209d
mov eax, dword [ebx + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], edi
mov dword [esp + 0x1c], edx
call sub.msvcrt.dll_fread
mov edx, dword [esp + 0x1c]
sub edx, eax
mov dword [ebx + 0x10], edx
sub esi, edx
mov edi, dword [ebx + 0x64]
mov ebp, dword [ebx + 0x68]
add edi, esi
add ebp, esi
mov dword [ebx + 0x64], edi
mov dword [ebx + 0x68], ebp
test esi, esi
jne 0x571fc4
mov dword [ebx + 0x3c], 1
jmp 0x571fc4
mov edx, eax
mov ecx, dword [ebx]
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp + 0x1c], edx
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
add eax, edx
add edi, edx
mov dword [ebx], eax
mov eax, dword [ebx + 0x10]
sub eax, edx
sub ecx, edx
mov dword [ebx + 0xc], edi
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], ecx
test eax, eax
jne 0x57211d
xor edx, edx
jmp 0x572077
mov dword [esp], ebx
call fcn.00575640
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00575050
mov dword [ebx + 0x4c], eax
mov eax, dword [ebx + 0x38]
jmp 0x571ee7
mov dword [ebx + 0x38], 0xffffffff
mov edx, dword [ebx + 0x4c]
jmp 0x571fa3
mov edx, eax
jmp 0x57204f