Function at 0x576c31
Capabilities:
Read file on windows

Disassembly:
mov eax, dword [0x5fbf2c]
push ebx
push esi
mov esi, 0x5c2bb0
inc word [eax + 0x3b8]
xor ebx, ebx
mov eax, dword [0x5fbf2c]
cmp dword [eax + 0xf624], ebx
je 0x576cd2
call fcn.0059607d
push esi
call fcn.004507f0
mov eax, dword [0x5fbf2c]
pop ecx
cmp byte [eax + 0xf638], 0x6c
je 0x576c93
movsx ecx, word [eax + 0x3b8]
push ecx
push dword [eax + 0xf668]
push str.About_to_start_restore__s_disk_number__d_n
call fcn.005746d5
push eax
call fcn.004507f0
mov eax, dword [0x5fbf2c]
add esp, 0x10
lea ecx, [eax + 0x2c4]
push ecx
movsx ecx, word [eax + 0x3b8]
push ecx
push dword [eax + 0xf668]
push str.Place__s_disk__d_in_drive__s_and_n
call fcn.005746d5
push eax
call fcn.004507f0
push str.Strike_any_key_when_ready...
call fcn.004507f0
call fcn.00450818
push esi
call fcn.004507f0
add esp, 0x1c
jmp 0x576cdc
mov dword [eax + 0xf624], 1
mov eax, dword [0x5fbf2c]
push 0x8000
add eax, 0x2c7
push eax
call fcn.005745b5
pop ecx
push eax
call fcn.005a0209
pop ecx
pop ecx
mov ecx, dword [0x5fbf2c]
mov dword [ecx + 0x2b0], eax
mov eax, dword [0x5fbf2c]
cmp dword [eax + 0x2b0], 0xffffffff
jne 0x576d32
add eax, 0x2c7
push eax
push str.cant_open__s_n
call fcn.005746d5
push eax
call fcn.004507f0
add esp, 0xc
jmp 0x576c46
mov dword [eax + 0xf4f4], 0x5e
mov eax, dword [0x5fbf2c]
push 0x5e
lea ecx, [eax + 0x1b6]
push ecx
push dword [eax + 0x2b0]
call fcn.0059a0e4
add esp, 0xc
cmp eax, 0x5e
je 0x576d7b
mov eax, dword [0x5fbf2c]
add eax, 0x2c7
push eax
push str.Read_error_for_file__s_n
call fcn.005746d5
push eax
call fcn.00574720
add esp, 0xc
mov eax, dword [0x5fbf2c]
mov cx, word [eax + 0x1b6]
cmp cx, 4
je 0x576da9
movsx eax, cx
push eax
push str.This_disk_was_created_with_version__d_n
call fcn.005746d5
push eax
call fcn.00574720
mov eax, dword [0x5fbf2c]
add esp, 0xc
mov dx, word [eax + 0x1b8]
mov cx, word [eax + 0x3b8]
cmp dx, cx
je 0x576e9a
movsx eax, dx
cmp cx, 1
push eax
jne 0x576dfa
push str.Starting_on_disk_number__d_n
call fcn.005746d5
push eax
call fcn.004507f0
mov eax, dword [0x5fbf2c]
add esp, 0xc
cmp dword [eax + 0x1ba], ebx
jne 0x576e16
push str.No_files_begin_on_this_disk._n
call fcn.004507f0
pop ecx
jmp 0x576c46
movsx eax, cx
push eax
push str._nThis_is_NOT_disk_number__d_its__d_n_n
call fcn.005746d5
push eax
call fcn.004507f0
add esp, 0x10
jmp 0x576c46
push str.Strike_any_key_to_continue...
call fcn.004507f0
call fcn.00450818
push esi
call fcn.004507f0
mov eax, dword [0x5fbf2c]
push ebx
push dword [eax + 0x1ba]
push dword [eax + 0x2b0]
call fcn.00595983
add esp, 0x14
cmp eax, 0xffffffff
jne 0x576e68
mov eax, dword [0x5fbf2c]
add eax, 0x2c7
push eax
push str.seek_error_on__s_n
call fcn.005746d5
push eax
call fcn.00574720
add esp, 0xc
mov ecx, dword [0x5fbf2c]
mov esi, 0x800
mov eax, dword [ecx + 0x1ba]
cdq
idiv esi
mov dword [ecx + 0xf4f4], edx
mov eax, dword [0x5fbf2c]
mov cx, word [eax + 0x1b8]
mov word [eax + 0x3b8], cx
mov eax, dword [0x5fbf2c]
cmp dword [eax + 0xf634], ebx
jne 0x576f03
cmp dword [eax + 0xf670], ebx
je 0x576ebc
call fcn.0057706e
mov eax, dword [0x5fbf2c]
mov dword [eax + 0xf670], ebx
jmp 0x576f03
cmp byte [eax + 0x1c4], bl
lea ecx, [eax + 0x1c4]
je 0x576ee8
movsx eax, word [eax + 0x3b8]
push ecx
push eax
push str._nDisk__d_of__s_n_n
call fcn.005746d5
push eax
call fcn.004507f0
add esp, 0x10
jmp 0x576f03
movsx eax, word [eax + 0x3b8]
push eax
push str._nDisk_number__d_n_n
call fcn.005746d5
push eax
call fcn.004507f0
add esp, 0xc
pop esi
pop ebx
ret