Function at 0x4059fa
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x38c]
sub esp, 0x40c
mov eax, dword [0x424070]
xor eax, ebp
mov dword [ebp + 0x388], eax
push esi
push edi
mov esi, edx
mov edi, ecx
push esi
push edi
call fcn.00405838
mov dword [ebp - 0x80], eax
and eax, edx
mov dword [ebp - 0x7c], edx
or edx, 0xffffffff
pop ecx
pop ecx
cmp eax, edx
jne 0x405a3a
mov eax, edx
jmp 0x405c1e
xor ecx, ecx
push ebx
cmp byte [0x425620], cl
je 0x405c35
movzx ecx, byte [esi + 0xf]
movzx eax, byte [esi + 0xe]
movzx edx, byte [esi + 0xb]
movzx ebx, byte [esi + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0xd]
shl edx, 8
or edx, ebx
movzx ebx, byte [esi + 9]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0xc]
movzx esi, byte [esi + 8]
shl edx, 8
or edx, ebx
shl ecx, 8
or ecx, eax
shl edx, 8
or edx, esi
xor eax, eax
xor esi, esi
or eax, edx
or ecx, esi
jg 0x405a9f
jl 0x405ca0
test eax, eax
jb 0x405ca0
push 0
push ecx
push eax
push edi
call fcn.0040b1d0
add esp, 0x10
test edx, edx
jg 0x405abe
jl 0x405ca0
test eax, eax
jb 0x405ca0
push 0x400
lea eax, [ebp - 0x78]
push eax
push edi
call fcn.004174ab
add esp, 0xc
test eax, eax
js 0x405ca0
movzx eax, byte [ebp - 0x75]
movzx ecx, byte [ebp - 0x76]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebp - 0x77]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebp - 0x78]
shl eax, 8
or eax, ecx
cmp eax, 0x6064b50
jne 0x405ca0
movzx ecx, byte [ebp - 0x41]
movzx eax, byte [ebp - 0x42]
movzx edx, byte [ebp - 0x45]
movzx esi, byte [ebp - 0x46]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 0x43]
shl edx, 8
or edx, esi
movzx esi, byte [ebp - 0x47]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 0x44]
shl edx, 8
or edx, esi
movzx esi, byte [ebp - 0x48]
shl ecx, 8
or ecx, eax
shl edx, 8
or edx, esi
xor eax, eax
xor esi, esi
or eax, edx
or ecx, esi
jg 0x405b58
jl 0x405ca0
test eax, eax
jb 0x405ca0
push 0
push ecx
push eax
push edi
call fcn.0040b1d0
add esp, 0x10
test edx, edx
jg 0x405b77
jl 0x405ca0
test eax, eax
jb 0x405ca0
movzx eax, byte [ebp - 0x41]
movzx ecx, byte [ebp - 0x42]
movzx edx, byte [ebp - 0x45]
movzx esi, byte [ebp - 0x46]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebp - 0x43]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebp - 0x44]
shl edx, 8
or edx, esi
movzx esi, byte [ebp - 0x47]
movzx edi, byte [ebp - 0x4d]
movzx ebx, byte [ebp - 0x4e]
shl eax, 8
or eax, ecx
shl edx, 8
or edx, esi
movzx esi, byte [ebp - 0x48]
xor ecx, ecx
shl edx, 8
or edx, esi
xor esi, esi
or eax, esi
movzx esi, byte [ebp - 0x4a]
or ecx, edx
push 0xffffffffffffffc8
pop edx
sub edx, ecx
push 0xffffffffffffffff
pop ecx
sbb ecx, eax
movzx eax, byte [ebp - 0x49]
shl eax, 8
or eax, esi
movzx esi, byte [ebp - 0x4b]
shl edi, 8
or edi, ebx
movzx ebx, byte [ebp - 0x4f]
shl eax, 8
or eax, esi
movzx esi, byte [ebp - 0x4c]
shl edi, 8
or edi, ebx
movzx ebx, byte [ebp - 0x50]
shl eax, 8
or eax, esi
shl edi, 8
or edi, ebx
xor esi, esi
xor ebx, ebx
or esi, edi
or eax, ebx
sub edx, esi
sbb ecx, eax
add dword [ebp - 0x80], edx
adc dword [ebp - 0x7c], ecx
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
pop ebx
mov ecx, dword [ebp + 0x388]
pop edi
xor ecx, ebp
pop esi
call fcn.004098c8
add ebp, 0x38c
leave
ret
movzx eax, byte [esi + 0x13]
movzx edx, byte [esi + 0x12]
movzx ebx, byte [esi + 0xe]
shl eax, 8
or eax, edx
movzx edx, byte [esi + 0x11]
shl eax, 8
or eax, edx
movzx edx, byte [esi + 0x10]
shl eax, 8
or eax, edx
movzx edx, byte [esi + 0xf]
shl edx, 8
or edx, ebx
movzx ebx, byte [esi + 0xd]
movzx esi, byte [esi + 0xc]
shl edx, 8
or edx, ebx
shl edx, 8
or edx, esi
xor esi, esi
add edx, eax
adc esi, ecx
sub dword [ebp - 0x80], edx
push 0
sbb dword [ebp - 0x7c], esi
add eax, dword [ebp - 0x80]
adc ecx, dword [ebp - 0x7c]
push ecx
push eax
push edi
call fcn.0040b1d0
add esp, 0x10
test edx, edx
jg 0x405c17
jl 0x405ca0
test eax, eax
jae 0x405c17
or edx, 0xffffffff
mov eax, edx
jmp 0x405c1d