Function at 0x465260
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [0x4ea5e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x1090c]
xor ebx, ebx
push edi
cmp eax, 0x2000
jg 0x465371
mov eax, dword [esi + 0x10908]
push ebx
push ebx
push eax
call fcn.004af41e
mov ecx, dword [esi + 0x1090c]
mov edx, dword [esi + 0x108e4]
mov eax, dword [esi + 0x10908]
push ecx
push edx
push eax
call fcn.004aeb0a
mov ecx, dword [esi + 0x1090c]
add esp, 0x18
mov dword [esi + 0x108ec], eax
cmp eax, ecx
jne 0x46555a
mov eax, dword [esi + 0x108e4]
lea ecx, [eax + ecx - 0x16]
mov dword [esi + 0x108e8], ecx
cmp ecx, eax
jb 0x46555a
nop
mov eax, dword [esi + 0x108e8]
cmp byte [eax], 0x50
jne 0x4652ff
push 4
push 0x4eb5d8
push eax
call fcn.004a93c0
add esp, 0xc
test eax, eax
je 0x465318
dec dword [esi + 0x108e8]
mov ecx, dword [esi + 0x108e8]
cmp ecx, dword [esi + 0x108e4]
jae 0x4652e0
jmp 0x46555a
mov edx, dword [esi + 0x108e4]
sub edx, dword [esi + 0x108e8]
add dword [esi + 0x108ec], edx
mov ecx, dword [esi + 0x10910]
sub ecx, dword [esi + 0x108e4]
lea edx, [ebp - 0x1c]
add ecx, dword [esi + 0x108e8]
push edx
mov eax, 0x16
mov dword [esi + 0x88], ecx
call fcn.004660d0
add esp, 4
test eax, eax
jne 0x4655cb
pop edi
pop esi
mov eax, 0x33
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8a2f
mov esp, ebp
pop ebp
ret
mov edi, eax
and edi, 0x80001fff
jns 0x465383
dec edi
or edi, 0xffffe000
inc edi
sub eax, edi
cmp edi, 0x12
jle 0x465446
push 0
push eax
mov eax, dword [esi + 0x10908]
push eax
call fcn.004af41e
mov ecx, dword [esi + 0x108e4]
mov edx, dword [esi + 0x10908]
push edi
push ecx
push edx
mov dword [esi + 0x10910], eax
call fcn.004aeb0a
add esp, 0x18
mov dword [esi + 0x108ec], eax
cmp eax, edi
jne 0x46555a
mov eax, dword [esi + 0x108e4]
lea ecx, [eax + edi - 0x16]
mov dword [esi + 0x108e8], ecx
cmp ecx, eax
jb 0x46542c
lea esp, [esp]
mov eax, dword [esi + 0x108e8]
cmp byte [eax], 0x50
jne 0x4653ff
push 4
push 0x4eb5d8
push eax
call fcn.004a93c0
add esp, 0xc
test eax, eax
je 0x465415
dec dword [esi + 0x108e8]
mov eax, dword [esi + 0x108e8]
cmp eax, dword [esi + 0x108e4]
jae 0x4653e0
jmp 0x46542c
mov ecx, dword [esi + 0x108e4]
sub ecx, dword [esi + 0x108e8]
mov ebx, 1
add dword [esi + 0x108ec], ecx
mov eax, dword [esi + 0x108e4]
mov dx, word [eax]
mov ecx, dword [esi + 0x1091c]
mov word [ecx], dx
mov al, byte [eax + 2]
mov byte [ecx + 2], al
jmp 0x46544c
mov dword [esi + 0x10910], eax
mov eax, dword [ebp + 8]
sub eax, edi
add eax, 0x1fff
cdq
and edx, 0x1fff
add eax, edx
sar eax, 0xd
mov dword [ebp - 0x20], eax
mov edi, 1
test ebx, ebx
jne 0x46532a
jmp 0x465477
mov eax, dword [ebp - 0x20]
cmp edi, eax
jg 0x465552
add dword [esi + 0x10910], 0xffffe000
mov eax, dword [esi + 0x10910]
mov ecx, dword [esi + 0x10908]
push 0
push eax
push ecx
call fcn.004af41e
mov edx, dword [esi + 0x108e4]
mov eax, dword [esi + 0x10908]
push 0x2000
push edx
push eax
call fcn.004aeb0a
add esp, 0x18
mov dword [esi + 0x108ec], eax
cmp eax, 0x2000
jne 0x465552
mov eax, dword [esi + 0x108e4]
lea ecx, [eax + 0x1fff]
mov dword [esi + 0x108e8], ecx
cmp ecx, eax
jb 0x46552c
mov eax, dword [esi + 0x108e8]
cmp byte [eax], 0x50
jne 0x4654ff
push 4
push 0x4eb5d8
push eax
call fcn.004a93c0
add esp, 0xc
test eax, eax
je 0x465515
dec dword [esi + 0x108e8]
mov ecx, dword [esi + 0x108e8]
cmp ecx, dword [esi + 0x108e4]
jae 0x4654e0
jmp 0x46552c
mov edx, dword [esi + 0x108e4]
sub edx, dword [esi + 0x108e8]
mov ebx, 1
add dword [esi + 0x108ec], edx
mov eax, dword [esi + 0x108e4]
mov dx, word [eax]
mov ecx, dword [esi + 0x1091c]
mov word [ecx], dx
mov al, byte [eax + 2]
inc edi
mov byte [ecx + 2], al
test ebx, ebx
je 0x465474
jmp 0x46532a
test ebx, ebx
jne 0x46532a
cmp dword [esi + 0x38], 0
jne 0x465566
cmp dword [esi + 0xc], 0
je 0x465591
mov ecx, dword [esi + 0x10904]
push 0x401
push ecx
lea edi, [esi + 0x8dc]
push str.__s__n
push edi
call fcn.004a931b
mov edx, dword [esi + 0x10b54]
add esp, 0xc
push eax
push edi
push esi
call edx
push 0x401
lea edi, [esi + 0x8dc]
push str.__End_of_central_directory_signature_not_found.__Either_this_file_is_not_n__a_zipfile__or_it_constitutes_one_disk_of_a_multi_part_archive.__In_the_n__latter_case_the_central_directory_and_zipfile_comment_will_be_found_on_n__the_last_disk_s__of_this_archive._n
push edi
call fcn.004a931b
add esp, 8
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
pop edi
pop esi
mov eax, 2
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a8a2f
mov esp, ebp
pop ebp
ret
movzx eax, byte [ebp - 0x17]
movzx ecx, byte [ebp - 0x18]
movzx edx, byte [ebp - 0x15]
shl ax, 8
or ax, cx
movzx ecx, byte [ebp - 0x13]
shl dx, 8
mov word [esi + 0x10968], ax
movzx eax, byte [ebp - 0x16]
or dx, ax
movzx eax, byte [ebp - 0x11]
mov word [esi + 0x1096a], dx
movzx edx, byte [ebp - 0x14]
shl cx, 8
or cx, dx
movzx edx, byte [ebp - 0xd]
mov word [esi + 0x1096c], cx
movzx ecx, byte [ebp - 0x12]
shl ax, 8
or ax, cx
movzx ecx, byte [ebp - 0xf]
shl edx, 8
mov word [esi + 0x1096e], ax
movzx eax, byte [ebp - 0xe]
add edx, eax
movzx eax, byte [ebp - 0x10]
movzx edi, byte [ebp - 8]
shl edx, 8
add edx, ecx
movzx ecx, byte [ebp - 9]
shl edx, 8
add eax, edx
movzx edx, byte [ebp - 0xa]
shl ecx, 8
add ecx, edx
movzx edx, byte [ebp - 0xb]
shl ecx, 8
add ecx, edx
movzx edx, byte [ebp - 0xc]
shl ecx, 8
add ecx, edx
movzx edx, byte [ebp - 7]
mov dword [esi + 0x10974], ecx
add ecx, eax
shl dx, 8
or dx, di
mov dword [esi + 0x8c], ecx
mov ecx, dword [ebp - 4]
pop edi
mov dword [esi + 0x10970], eax
mov word [esi + 0x10978], dx
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.004a8a2f
mov esp, ebp
pop ebp
ret