Function at 0x456d50
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x18
push ebx
push ebp
push esi
mov esi, dword [esp + 0x28]
xor ebp, ebp
push edi
mov eax, dword [esi + 0xc908]
cmp eax, 0x2000
jg 0x456e67
mov eax, dword [esi + 0xc904]
push ebp
push ebp
push eax
call fcn.0046d36a
mov ecx, dword [esi + 0xc908]
mov edx, dword [esi + 0xc8e0]
mov eax, dword [esi + 0xc904]
push ecx
push edx
push eax
call fcn.0046d7e4
mov ecx, dword [esi + 0xc908]
add esp, 0x18
cmp eax, ecx
mov dword [esi + 0xc8e8], eax
jne 0x457068
mov eax, dword [esi + 0xc8e0]
lea ecx, [eax + ecx - 0x16]
cmp ecx, eax
mov dword [esi + 0xc8e4], ecx
jb 0x457068
mov eax, dword [esi + 0xc8e4]
cmp byte [eax], 0x50
jne 0x456de4
push 4
push 0x493d94
push eax
call fcn.00462150
add esp, 0xc
test eax, eax
je 0x456e0a
mov edx, dword [esi + 0xc8e4]
mov ecx, dword [esi + 0xc8e0]
dec edx
mov eax, edx
mov dword [esi + 0xc8e4], edx
cmp eax, ecx
jae 0x456dc5
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x18
ret
mov ecx, dword [esi + 0xc8e0]
mov edx, dword [esi + 0xc8e4]
mov eax, dword [esi + 0xc8e8]
sub ecx, edx
add eax, ecx
mov dword [esi + 0xc8e8], eax
mov eax, dword [esi + 0xc90c]
mov edx, dword [esi + 0xc8e0]
mov ecx, dword [esi + 0xc8e4]
sub eax, edx
add eax, ecx
lea ecx, [esp + 0x10]
push 0x16
push ecx
push esi
mov dword [esi + 0x80], eax
call fcn.00457a70
add esp, 0xc
test eax, eax
jne 0x457075
pop edi
pop esi
pop ebp
mov eax, 0x33
pop ebx
add esp, 0x18
ret
mov edi, eax
and edi, 0x80001fff
jns 0x456e79
dec edi
or edi, 0xffffe000
inc edi
cmp edi, 0x12
jle 0x456f47
mov edx, dword [esi + 0xc904]
sub eax, edi
push 0
push eax
push edx
call fcn.0046d36a
mov ecx, dword [esi + 0xc904]
mov dword [esi + 0xc90c], eax
mov eax, dword [esi + 0xc8e0]
push edi
push eax
push ecx
call fcn.0046d7e4
add esp, 0x18
cmp eax, edi
mov dword [esi + 0xc8e8], eax
jne 0x457068
mov eax, dword [esi + 0xc8e0]
lea ecx, [eax + edi - 0x16]
cmp ecx, eax
mov dword [esi + 0xc8e4], ecx
jb 0x456f2d
mov eax, dword [esi + 0xc8e4]
cmp byte [eax], 0x50
jne 0x456ef1
push 4
push 0x493d94
push eax
call fcn.00462150
add esp, 0xc
test eax, eax
je 0x456f0c
mov edx, dword [esi + 0xc8e4]
mov ecx, dword [esi + 0xc8e0]
dec edx
mov eax, edx
mov dword [esi + 0xc8e4], edx
cmp eax, ecx
jae 0x456ed2
jmp 0x456f2d
mov edx, dword [esi + 0xc8e0]
mov ecx, dword [esi + 0xc8e4]
mov eax, dword [esi + 0xc8e8]
sub edx, ecx
add eax, edx
mov ebp, 1
mov dword [esi + 0xc8e8], eax
mov eax, dword [esi + 0xc8e0]
mov ecx, dword [esi + 0xc918]
mov dx, word [eax]
mov word [ecx], dx
mov al, byte [eax + 2]
mov byte [ecx + 2], al
jmp 0x456f4f
sub eax, edi
mov dword [esi + 0xc90c], eax
mov eax, dword [esp + 0x30]
mov ebx, 1
sub eax, edi
add eax, 0x1fff
cdq
and edx, 0x1fff
add eax, edx
mov edi, eax
sar edi, 0xd
test ebp, ebp
jne 0x456e26
cmp ebx, edi
jg 0x457060
mov eax, dword [esi + 0xc90c]
mov ecx, dword [esi + 0xc904]
add eax, 0xffffe000
push 0
push eax
push ecx
mov dword [esi + 0xc90c], eax
call fcn.0046d36a
mov edx, dword [esi + 0xc8e0]
mov eax, dword [esi + 0xc904]
push 0x2000
push edx
push eax
call fcn.0046d7e4
add esp, 0x18
cmp eax, 0x2000
mov dword [esi + 0xc8e8], eax
jne 0x457060
mov eax, dword [esi + 0xc8e0]
lea ecx, [eax + 0x1fff]
cmp ecx, eax
mov dword [esi + 0xc8e4], ecx
jb 0x45703a
mov eax, dword [esi + 0xc8e4]
cmp byte [eax], 0x50
jne 0x456ffe
push 4
push 0x493d94
push eax
call fcn.00462150
add esp, 0xc
test eax, eax
je 0x457019
mov edx, dword [esi + 0xc8e4]
mov ecx, dword [esi + 0xc8e0]
dec edx
mov eax, edx
mov dword [esi + 0xc8e4], edx
cmp eax, ecx
jae 0x456fdf
jmp 0x45703a
mov ecx, dword [esi + 0xc8e0]
mov edx, dword [esi + 0xc8e4]
mov eax, dword [esi + 0xc8e8]
sub ecx, edx
add eax, ecx
mov ebp, 1
mov dword [esi + 0xc8e8], eax
mov edx, dword [esi + 0xc8e0]
mov eax, dword [esi + 0xc918]
inc ebx
mov cx, word [edx]
mov word [eax], cx
mov dl, byte [edx + 2]
test ebp, ebp
mov byte [eax + 2], dl
je 0x456f75
jmp 0x456e26
test ebp, ebp
jne 0x456e26
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x18
ret
lea edx, [esp + 0x14]
push edx
call fcn.00458760
mov word [esi + 0xc964], ax
lea eax, [esp + 0x1a]
push eax
call fcn.00458760
lea ecx, [esp + 0x20]
mov word [esi + 0xc966], ax
push ecx
call fcn.00458760
lea edx, [esp + 0x26]
mov word [esi + 0xc968], ax
push edx
call fcn.00458760
mov word [esi + 0xc96a], ax
lea eax, [esp + 0x2c]
push eax
call fcn.00458770
lea ecx, [esp + 0x34]
mov dword [esi + 0xc96c], eax
push ecx
call fcn.00458770
lea edx, [esp + 0x3c]
mov dword [esi + 0xc970], eax
push edx
call fcn.00458760
mov ecx, dword [esi + 0xc970]
mov word [esi + 0xc974], ax
mov eax, dword [esi + 0xc96c]
add esp, 0x1c
add eax, ecx
mov dword [esi + 0x84], eax
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18
ret