Function at 0x53f7d0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x110
mov eax, dword [str.data_]
mov dword [esp + 8], ecx
mov cx, word [0x6018fc]
push ebx
push ebp
push esi
movsx ebp, word [0xd3b5be]
push edi
mov dword [esp + 0x1c], eax
mov word [esp + 0x20], cx
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x22]
rep stosd dword es:[edi], eax
mov ebx, dword [esp + 0x12c]
or ecx, 0xffffffff
stosw word es:[edi], ax
mov edi, dword [esp + 0x124]
xor eax, eax
shl ebp, 1
sub ebp, ebx
lea edx, [esp + 0x1c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x5e06e0
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x20]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 1
call fcn.004ce310
lea ecx, [esp + 0x24]
push 0x8000
push ecx
call fcn.00568eab
mov esi, eax
add esp, 0x10
cmp esi, 0xffffffff
jne 0x53f907
or ecx, eax
lea edi, [esp + 0x1c]
xor eax, eax
mov dl, byte [0xe38e62]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov byte [0x5e05ac], dl
mov esi, edi
mov edx, ecx
mov edi, 0x5e05ac
or ecx, 0xffffffff
mov byte [0x5e05af], 0
push 0x8000
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push 0x5e05ac
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00568eab
mov esi, eax
add esp, 8
cmp esi, 0xffffffff
jne 0x53f907
cmp dword [esp + 0x10], 1
jne 0x53f902
call fcn.004ce9e0
push 0x8000
push 0x5e05ac
mov dword [esp + 0x18], eax
call fcn.00568eab
mov esi, eax
add esp, 8
cmp esi, 0xffffffff
je 0x53f8d7
jmp 0x53f907
cmp esi, 0xffffffff
je 0x53f980
mov eax, dword [esp + 0x134]
push 0
push eax
push esi
call fcn.005662e3
add esp, 0xc
cmp eax, 0xffffffff
je 0x53f962
mov eax, dword [esp + 0x130]
test eax, eax
jle 0x53f962
mov edi, dword [esp + 0x128]
mov dword [esp + 0x10], eax
push ebx
push edi
push esi
call fcn.005660ed
mov ecx, dword [esp + 0x20]
push 1
add ecx, eax
push ebp
push esi
mov dword [esp + 0x2c], ecx
call fcn.005662e3
mov eax, dword [esp + 0x28]
add esp, 0x18
add edi, ebx
dec eax
mov dword [esp + 0x10], eax
jne 0x53f935
jmp 0x53f969
mov edi, dword [esp + 0x128]
push esi
call fcn.005647eb
mov esi, dword [esp + 0x18]
add esp, 4
test esi, esi
jg 0x53fa12
jmp 0x53f987
mov edi, dword [esp + 0x128]
lea ecx, [esp + 0x1c]
push ecx
call fcn.004ce100
lea edx, [esp + 0x20]
push 0x8000
push edx
call fcn.00568eab
mov esi, eax
add esp, 0xc
cmp esi, 0xffffffff
je 0x53fa05
mov eax, dword [esp + 0x134]
push 0
push eax
push esi
call fcn.005662e3
add esp, 0xc
cmp eax, 0xffffffff
je 0x53f9fc
mov eax, dword [esp + 0x130]
test eax, eax
jle 0x53f9fc
mov dword [esp + 0x10], eax
push ebx
push edi
push esi
call fcn.005660ed
mov ecx, dword [esp + 0x20]
push 1
add ecx, eax
push ebp
push esi
mov dword [esp + 0x2c], ecx
call fcn.005662e3
mov eax, dword [esp + 0x28]
add esp, 0x18
add edi, ebx
dec eax
mov dword [esp + 0x10], eax
jne 0x53f9d1
push esi
call fcn.005647eb
add esp, 4
call fcn.004ce2d0
mov esi, dword [esp + 0x14]
test esi, esi
je 0x53fa26
mov ecx, dword [esp + 0x18]
push esi
mov edx, dword [ecx + 0x30f5c0]
push edx
call fcn.004cdf20
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0x14