Function at 0x405be7
Capabilities:
Read file on windows

Disassembly:
mov ecx, dword [0x426674]
sub esp, 0x18
push ebx
push ebp
push esi
push edi
mov edi, 0x2000
xor ebp, ebp
xor ebx, ebx
cmp ecx, edi
jg 0x405cc2
push ebp
push ebp
push dword [0x426670]
call fcn.0040e9ab
push dword [0x426674]
push dword [0x42664c]
push dword [0x426670]
call fcn.00410b55
mov edx, dword [0x426674]
add esp, 0x18
cmp eax, edx
mov dword [0x426654], eax
jne 0x405e48
mov ecx, dword [0x42664c]
lea eax, [ecx + edx - 0x16]
cmp eax, ecx
mov dword [0x426650], eax
jb 0x405e48
cmp byte [eax], 0x50
jne 0x405c7a
push 4
push 0x416100
push eax
call fcn.00408780
add esp, 0xc
test eax, eax
je 0x405c7d
mov eax, dword [0x426650]
mov ecx, dword [0x42664c]
dec eax
jmp 0x405c49
mov eax, dword [0x42664c]
sub eax, dword [0x426650]
add dword [0x426654], eax
mov eax, dword [0x426678]
push 0x16
sub eax, dword [0x42664c]
add eax, dword [0x426650]
mov dword [0x419f18], eax
lea eax, [esp + 0x14]
push eax
call fcn.00403545
pop ecx
test eax, eax
pop ecx
jne 0x405ea9
push 0x33
pop eax
jmp 0x405f2f
mov eax, ecx
mov esi, edi
cdq
idiv esi
mov esi, edx
cmp esi, 0x12
jle 0x405d6e
sub ecx, esi
push ebp
push ecx
push dword [0x426670]
call fcn.0040e9ab
push esi
mov dword [0x426678], eax
push dword [0x42664c]
push dword [0x426670]
call fcn.00410b55
add esp, 0x18
cmp eax, esi
mov dword [0x426654], eax
jne 0x405e48
mov ecx, dword [0x42664c]
lea eax, [ecx + esi - 0x16]
cmp eax, ecx
mov dword [0x426650], eax
jb 0x405d5b
cmp byte [eax], 0x50
jne 0x405d41
push 4
push 0x416100
push eax
call fcn.00408780
add esp, 0xc
test eax, eax
je 0x405d44
mov eax, dword [0x426650]
mov ecx, dword [0x42664c]
dec eax
jmp 0x405d14
mov ecx, dword [0x42664c]
push 1
mov eax, ecx
pop ebx
sub eax, dword [0x426650]
add dword [0x426654], eax
push 3
push ecx
push dword [0x426684]
call fcn.00409410
add esp, 0xc
jmp 0x405d76
sub ecx, esi
mov dword [0x426678], ecx
mov eax, dword [esp + 0x2c]
mov ecx, edi
sub eax, esi
push 1
add eax, 0x1fff
pop esi
cdq
idiv ecx
test ebx, ebx
mov ebp, eax
jne 0x405c8e
cmp esi, ebp
jg 0x405e3e
sub dword [0x426678], edi
push 0
push dword [0x426678]
push dword [0x426670]
call fcn.0040e9ab
push edi
push dword [0x42664c]
push dword [0x426670]
call fcn.00410b55
add esp, 0x18
cmp eax, edi
mov dword [0x426654], eax
jne 0x405e3e
mov eax, dword [0x42664c]
lea ecx, [eax + 0x1fff]
cmp ecx, eax
mov dword [0x426650], ecx
jb 0x405e24
cmp byte [ecx], 0x50
jne 0x405e0b
push 4
push 0x416100
push ecx
call fcn.00408780
add esp, 0xc
test eax, eax
je 0x405e0e
mov ecx, dword [0x426650]
mov eax, dword [0x42664c]
dec ecx
jmp 0x405ddd
mov eax, dword [0x42664c]
push 1
mov ecx, eax
pop ebx
sub ecx, dword [0x426650]
add dword [0x426654], ecx
push 3
push eax
push dword [0x426684]
call fcn.00409410
add esp, 0xc
inc esi
test ebx, ebx
je 0x405d93
test ebx, ebx
jne 0x405c8e
xor ebp, ebp
cmp dword [0x419eb4], ebp
mov ebx, 0x401
mov esi, 0x41a644
mov edi, 0x419e80
jne 0x405e67
cmp dword [0x419e88], ebp
je 0x405e88
push ebx
push dword [0x42666c]
push str.__s__n
push esi
call fcn.00408690
add esp, 0xc
push eax
push esi
push edi
call dword [0x426880]
add esp, 0x10
push ebx
push str.__End_of_central_directory_signature_not_found._n
push esi
call fcn.00408690
pop ecx
pop ecx
push eax
push esi
push edi
call dword [0x426880]
add esp, 0x10
push 2
jmp 0x405cbc
lea eax, [esp + 0x14]
push eax
call fcn.00404272
mov word [0x4266d0], ax
lea eax, [esp + 0x1a]
push eax
call fcn.00404272
mov word [0x4266d2], ax
lea eax, [esp + 0x20]
push eax
call fcn.00404272
mov word [0x4266d4], ax
lea eax, [esp + 0x26]
push eax
call fcn.00404272
mov word [0x4266d6], ax
lea eax, [esp + 0x2c]
push eax
call fcn.00404281
mov dword [0x4266d8], eax
lea eax, [esp + 0x34]
push eax
call fcn.00404281
mov dword [0x4266dc], eax
lea eax, [esp + 0x3c]
push eax
call fcn.00404272
mov ecx, dword [0x4266dc]
mov word [0x4266e0], ax
mov eax, dword [0x4266d8]
add esp, 0x1c
add ecx, eax
xor eax, eax
mov dword [0x419f1c], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret