Function at 0x4fba10
Capabilities:
Read file on windows

Disassembly:
mov eax, dword [esp + 8]
push esi
mov esi, dword [esp + 8]
test esi, esi
push edi
mov edi, eax
je 0x4fbc4c
cmp byte [esi + 0x5c], 0x72
jne 0x4fbc4c
mov ecx, dword [esi + 0x38]
or edx, 0xffffffff
cmp ecx, 0xfffffffd
je 0x4fbc47
cmp ecx, edx
je 0x4fbc47
cmp ecx, 1
jne 0x4fba4f
pop edi
xor eax, eax
pop esi
ret
push ebx
push ebp
mov ebp, dword [esp + 0x1c]
test ebp, ebp
mov ebx, eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ebp
je 0x4fba8f
cmp dword [esi + 0x6c], edx
je 0x4fba8f
mov cl, byte [esi + 0x6c]
mov byte [eax], cl
add dword [esi + 0x10], edx
lea ebx, [eax + 1]
mov eax, 1
add dword [esi + 0xc], eax
add dword [esi + 0x68], eax
cmp dword [esi + 0x70], 0
mov dword [esi + 0x6c], edx
mov edi, ebx
je 0x4fba8f
pop ebp
pop ebx
pop edi
mov dword [esi + 0x38], eax
pop esi
ret
cmp dword [esi + 0x10], 0
je 0x4fbc0c
lea esp, [esp]
cmp dword [esi + 0x58], 0
jne 0x4fbba3
cmp dword [esi + 4], 0
jne 0x4fbaff
cmp dword [esi + 0x3c], 0
jne 0x4fbaff
call fcn.0041d95a
mov dword [eax], 0
mov edx, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
push edx
push 0x4000
push 1
push eax
call fcn.00501672
add esp, 0x10
test eax, eax
mov dword [esi + 4], eax
jne 0x4fbafa
mov ecx, dword [esi + 0x40]
push ecx
mov dword [esi + 0x3c], 1
call fcn.0050283c
add esp, 4
test eax, eax
jne 0x4fbc05
mov edx, dword [esi + 0x44]
mov dword [esi], edx
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x10]
add dword [esi + 0x64], eax
add dword [esi + 0x68], ecx
push 0
push esi
call fcn.004f9c50
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0x10]
sub dword [esi + 0x64], edx
sub dword [esi + 0x68], ecx
add esp, 8
cmp eax, 1
mov dword [esi + 0x38], eax
jne 0x4fbb7e
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x4c]
sub edx, edi
push edx
push edi
push eax
call fcn.004fdac0
mov edi, dword [esi + 0xc]
mov dword [esi + 0x4c], eax
add esp, 0xc
mov eax, esi
call fcn.004fb6d0
cmp eax, dword [esi + 0x4c]
jne 0x4fbb9a
mov eax, esi
call fcn.004fb6d0
mov eax, esi
call fcn.004fb310
cmp dword [esi + 0x38], 0
jne 0x4fbc0c
push esi
call fcn.004f9a10
push 0
push 0
push 0
call fcn.004fdac0
add esp, 0x10
mov dword [esi + 0x4c], eax
cmp dword [esi + 0x38], 0
jne 0x4fbc0c
cmp dword [esi + 0x3c], 0
jne 0x4fbc0c
cmp dword [esi + 0x10], 0
jne 0x4fbaa0
jmp 0x4fbc0c
mov dword [esi + 0x38], 0xfffffffd
jmp 0x4fbc0c
mov edi, dword [esi + 4]
mov eax, dword [esi + 0x10]
cmp edi, eax
jbe 0x4fbbaf
mov edi, eax
test edi, edi
jbe 0x4fbbd0
mov ecx, dword [esi]
mov edx, dword [esi + 0xc]
push edi
push ecx
push edx
call fcn.00424270
add dword [esi], edi
sub dword [esi + 0x10], edi
add ebx, edi
add esp, 0xc
sub dword [esi + 4], edi
mov dword [esi + 0xc], ebx
mov eax, dword [esi + 0x10]
test eax, eax
jbe 0x4fbbea
mov ecx, dword [esi + 0x40]
push ecx
push eax
push 1
push ebx
call fcn.00501672
add esp, 0x10
sub dword [esi + 0x10], eax
sub ebp, dword [esi + 0x10]
add dword [esi + 0x64], ebp
add dword [esi + 0x68], ebp
test ebp, ebp
jne 0x4fbbfe
mov dword [esi + 0x3c], 1
mov eax, ebp
pop ebp
pop ebx
pop edi
pop esi
ret
mov dword [esi + 0x38], 0xffffffff
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x4c]
sub edx, edi
push edx
push edi
push eax
call fcn.004fdac0
mov ecx, dword [esi + 0x10]
add esp, 0xc
cmp ebp, ecx
mov dword [esi + 0x4c], eax
jne 0x4fbc3e
mov esi, dword [esi + 0x38]
cmp esi, 0xfffffffd
je 0x4fbc36
cmp esi, 0xffffffff
jne 0x4fbc3e
pop ebp
pop ebx
pop edi
or eax, 0xffffffff
pop esi
ret
mov eax, ebp
pop ebp
pop ebx
pop edi
sub eax, ecx
pop esi
ret
pop edi
mov eax, edx
pop esi
ret
pop edi
mov eax, 0xfffffffe
pop esi
ret