Function at 0x4024c1
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x10
and dword [esp + 4], 0
cmp dword [esp + 0x14], 0
push ebx
push ebp
push esi
push edi
jbe 0x402c81
mov ebx, 0x401
mov esi, 0x41a644
mov edi, 0x419e80
mov eax, dword [esp + 0x28]
mov ecx, 0x2000
inc dword [eax]
mov eax, dword [esp + 0x14]
imul eax, eax, 0x1c
add eax, 0x419f40
mov dword [0x41a640], eax
mov ebp, dword [eax]
add ebp, dword [0x42667c]
mov eax, ebp
cdq
idiv ecx
mov eax, ebp
sub eax, edx
mov dword [esp + 0x18], edx
test ebp, ebp
mov dword [esp + 0x10], eax
jge 0x4025e0
push ebx
push str.___please_check_that_you_have_transferred_or_created_the_zipfile_in_the_n__appropriate_BINARY_mode_and_that_you_have_compiled_UnZip_properly__n
push dword [0x42666c]
push str.error___s_:__attempt_to_seek_before_beginning_of_zipfile_n_s
push esi
call fcn.00408690
add esp, 0x10
push eax
push esi
push edi
call dword [0x426880]
mov eax, dword [esp + 0x38]
add esp, 0x10
mov dword [esp + 0x3c], 2
cmp dword [eax], 1
jne 0x40279c
cmp dword [0x42667c], 0
je 0x40279c
push ebx
push str.___attempting_to_re_compensate__n
push esi
call fcn.00408690
pop ecx
pop ecx
push eax
push esi
push edi
call dword [0x426880]
mov ecx, dword [esp + 0x40]
mov eax, dword [0x42667c]
add esp, 0x10
mov dword [ecx], eax
mov eax, dword [0x41a640]
and dword [0x42667c], 0
mov ecx, 0x2000
mov ebp, dword [eax]
mov eax, ebp
cdq
idiv ecx
mov eax, ebp
sub eax, edx
mov dword [esp + 0x18], edx
test ebp, ebp
mov dword [esp + 0x10], eax
jge 0x4025d8
push ebx
push str.___please_check_that_you_have_transferred_or_created_the_zipfile_in_the_n__appropriate_BINARY_mode_and_that_you_have_compiled_UnZip_properly__n
push dword [0x42666c]
push str.error___s_:__attempt_to_seek_before_beginning_of_zipfile_n_s
push esi
call fcn.00408690
add esp, 0x10
jmp 0x402790
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
cmp eax, dword [0x426678]
je 0x40264a
push 0
push dword [esp + 0x14]
push dword [0x426670]
call fcn.0040e9ab
push 0x2000
mov dword [0x426678], eax
push dword [0x42664c]
push dword [0x426670]
call fcn.00410b55
add esp, 0x18
mov dword [0x426654], eax
test eax, eax
jg 0x40262f
push ebx
push dword [esp + 0x14]
push str.lseek
jmp 0x40277c
mov edx, dword [0x42664c]
mov ecx, dword [esp + 0x18]
add edx, ecx
sub eax, ecx
mov dword [0x426650], edx
mov dword [0x426654], eax
jmp 0x402669
mov eax, dword [0x426650]
sub eax, dword [0x42664c]
sub eax, edx
add dword [0x426654], eax
mov eax, dword [0x42664c]
add eax, edx
mov dword [0x426650], eax
push 4
push 0x419f30
call fcn.00403545
pop ecx
test eax, eax
pop ecx
jne 0x402687
push ebx
push ebp
push 0x416074
jmp 0x40277c
push 4
push 0x4160fc
push 0x419f30
call fcn.00408780
add esp, 0xc
test eax, eax
je 0x4027b3
mov eax, dword [esp + 0x28]
push ebx
push ebp
push str.local_header_sig
push dword [eax]
push str.file__lu:__bad_zipfile_offset___s_:___ld_n
push esi
call fcn.00408690
add esp, 0x14
push eax
push esi
push edi
call dword [0x426880]
mov eax, dword [esp + 0x38]
add esp, 0x10
mov dword [esp + 0x3c], 2
cmp dword [eax], 1
mov eax, dword [0x42667c]
jne 0x4026e4
test eax, eax
jne 0x4026f9
test eax, eax
jne 0x402c6f
mov eax, dword [esp + 0x30]
cmp dword [eax], 0
je 0x402c6f
push ebx
push str.___attempting_to_re_compensate__n
push esi
call fcn.00408690
pop ecx
pop ecx
push eax
push esi
push edi
call dword [0x426880]
mov eax, dword [0x42667c]
add esp, 0x10
test eax, eax
je 0x40272b
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
and dword [0x42667c], 0
jmp 0x402736
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov dword [0x42667c], eax
mov eax, dword [0x41a640]
push dword [eax]
call fcn.004036a4
test eax, eax
pop ecx
jne 0x4027a9
push 4
push 0x419f30
call fcn.00403545
pop ecx
test eax, eax
pop ecx
je 0x40267b
push 4
push 0x4160fc
push 0x419f30
call fcn.00408780
add esp, 0xc
test eax, eax
je 0x4027b3
push ebx
push ebp
push str.local_header_sig
mov eax, dword [esp + 0x34]
push dword [eax]
push str.file__lu:__bad_zipfile_offset___s_:___ld_n
push esi
call fcn.00408690
add esp, 0x14
push eax
push esi
push edi
call dword [0x426880]
add esp, 0x10
mov dword [esp + 0x3c], 3
jmp 0x402c6f
cmp eax, 3
je 0x40279c
jmp 0x40267b
call fcn.00406177
mov ebp, eax
test ebp, ebp
je 0x4027ec
mov eax, dword [esp + 0x28]
push 0x421
push dword [eax]
push str.file__lu:__bad_local_header_n
push esi
call fcn.00408690
add esp, 0xc
push eax
push esi
push edi
call dword [0x426880]
add esp, 0x10
mov dword [esp + 0x3c], ebp
jmp 0x402c6f
movzx eax, word [0x42669e]
push 6
push eax
call fcn.00403e0a
pop ecx
test eax, eax
pop ecx
je 0x402832
cmp eax, dword [esp + 0x3c]
jle 0x40280b
mov dword [esp + 0x3c], eax
cmp eax, 1
jle 0x402832
push ebx
push str.local
push 0x41e644
push 0x426748
call fcn.0040333b
pop ecx
pop ecx
push eax
push str._s:__bad_filename_length___s__n
jmp 0x402c07
cmp word [0x42669c], 0
jne 0x4028ad
mov eax, dword [0x426688]
mov dword [esp + 0x10], eax
mov eax, dword [0x41a640]
test byte [eax + 0x18], 1
je 0x402855
sub dword [esp + 0x10], 0xc
mov eax, dword [0x42668c]
cmp eax, dword [esp + 0x10]
je 0x4028ad
push ebx
mov ebp, 0x426748
push dword [esp + 0x14]
push eax
push 0x41e644
push ebp
call fcn.0040333b
pop ecx
pop ecx
push eax
push str._s:__ucsize__lu____csize__lu_for_STORED_entry_n_________continuing_with__compressed__size_value_n
push esi
call fcn.00408690
add esp, 0x14
push eax
push esi
push edi
call dword [0x426880]
mov eax, dword [esp + 0x20]
add esp, 0x10
cmp dword [esp + 0x3c], 1
mov dword [0x42668c], eax
jge 0x4028b2
mov dword [esp + 0x3c], 1
jmp 0x4028b2
mov ebp, 0x426748
mov eax, dword [0x426680]
test eax, eax
je 0x4028c9
push eax
call fcn.00409043
and dword [0x426680], 0
pop ecx
movzx eax, word [0x4266a0]
push 3
push eax
call fcn.00403e0a
pop ecx
test eax, eax
pop ecx
je 0x40290b
cmp eax, dword [esp + 0x3c]
jle 0x4028e8
mov dword [esp + 0x3c], eax
cmp eax, 1
jle 0x40290b
push ebx
push str.local
push 0x41e644
push ebp
call fcn.0040333b
pop ecx
pop ecx
push eax
push str._s:__bad_extra_field_length___s__n
jmp 0x402c07
cmp dword [0x419ec0], 0
jne 0x402c4c
cmp dword [0x419e90], 0
jne 0x402c4c
and dword [esp + 0x10], 0
cmp dword [esp + 0x10], 0
jne 0x402988
cmp byte [0x426748], 0x2f
jne 0x402988
push ebx
push 0x41e644
push ebp
call fcn.0040333b
push eax
push str.warning:__stripped_absolute_path_spec_from__s_n
push esi
call fcn.00408690
add esp, 0x14
push eax
push esi
push edi
call dword [0x426880]
add esp, 0x10
cmp dword [esp + 0x3c], 0
jne 0x402970
mov dword [esp + 0x3c], 1
mov eax, 0x426749
mov cl, byte [eax]
mov byte [eax - 1], cl
inc eax
test cl, cl
jne 0x402975
cmp byte [0x426748], 0x2f
je 0x402970
push dword [esp + 0x10]
call fcn.00406f58
pop ecx
mov ecx, eax
and ecx, 0xffff80ff
je 0x4029a6
cmp dword [esp + 0x3c], ecx
jge 0x4029a6
mov dword [esp + 0x3c], ecx
and eax, 0x7f00
cmp eax, 0x100
jg 0x402b6b
push ebp
call fcn.00403d8a
cmp eax, 0xffffffff
pop ecx
je 0x402b4e
test eax, eax
je 0x4029f1
cmp eax, 1
jne 0x402c4c
mov eax, dword [0x419f08]
cmp eax, 2
je 0x402c6f
cmp dword [0x419ec8], 0
je 0x4029ff
cmp dword [esp + 0x10], 0
jmp 0x4029f9
mov eax, dword [0x419f08]
cmp eax, 2
je 0x402c6f
cmp eax, 1
je 0x402c4c
push 0x81
mov ebp, 0x426748
push 0x41e644
push ebp
call fcn.0040333b
push eax
push str.replace__s___y_es___n_o___A_ll___N_one___r_ename:
push esi
call fcn.00408690
add esp, 0x14
push eax
push esi
push edi
call dword [0x426880]
push 0x4166a8
push 9
push 0x419f34
call fcn.0040927a
add esp, 0x1c
test eax, eax
jne 0x402a80
push 1
push str._NULL_n_assuming__N_one__n
push esi
call fcn.00408690
pop ecx
pop ecx
push eax
push esi
push edi
call dword [0x426880]
add esp, 0x10
cmp dword [esp + 0x3c], 0
mov al, 0x4e
mov byte [0x419f34], al
jne 0x402a85
mov dword [esp + 0x3c], 1
jmp 0x402a85
mov al, byte [0x419f34]
cmp al, 0x41
je 0x402c42
cmp al, 0x4e
je 0x402c36
cmp al, 0x52
je 0x402adf
cmp al, 0x59
je 0x402c4c
cmp al, 0x6e
je 0x402c6f
cmp al, 0x72
je 0x402ada
cmp al, 0x79
je 0x402c4c
movzx eax, al
push 1
push eax
push str.error:__invalid_response___c__n
push esi
call fcn.00408690
add esp, 0xc
push eax
push esi
push edi
call dword [0x426880]
add esp, 0x10
jmp 0x402a08
mov ebp, 0x426748
push 0x81
push str.new_name:
push esi
call fcn.00408690
pop ecx
pop ecx
push eax
push esi
push edi
call dword [0x426880]
push 0x4166a8
push 0x104
push ebp
call fcn.0040927a
push ebp
call fcn.00409390
push eax
push ebp
mov dword [esp + 0x38], eax
call fcn.004042a4
add esp, 0x28
cmp byte [eax], 0xa
jne 0x402b32
dec dword [esp + 0x10]
mov eax, dword [esp + 0x10]
and byte [eax + 0x426748], 0
cmp dword [esp + 0x10], 0
je 0x402adf
push ebp
push ebp
call dword [sym.imp.itional_Sort_OemToCharA]
mov dword [esp + 0x10], 1
jmp 0x40292a
cmp dword [0x419e98], 0
je 0x402c4c
cmp dword [esp + 0x10], 0
jne 0x402c4c
jmp 0x402c6f
cmp eax, 0x1000
jne 0x402bd8
lea eax, [esp + 0x1c]
push eax
call fcn.00406ace
pop ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x402bbf
test eax, eax
je 0x402c6f
push ebx
push str.warning:__cannot_alloc_memory_for_dir_times_permissions_UID_GID_n
push esi
call fcn.00408690
pop ecx
pop ecx
push eax
push esi
push edi
call dword [0x426880]
add esp, 0x10
cmp dword [esp + 0x3c], 0
jne 0x402c6f
mov dword [esp + 0x3c], 1
jmp 0x402c6f
mov eax, dword [esp + 0x38]
mov edx, dword [eax]
mov dword [ecx], edx
mov ecx, dword [esp + 0x1c]
mov dword [eax], ecx
mov eax, dword [esp + 0x34]
inc dword [eax]
jmp 0x402c6f
cmp eax, 0x1100
jne 0x402c1e
cmp dword [0x419ebc], 0
mov eax, str.hard_disk
jne 0x402bf2
mov eax, 0x419990
push ebx
push eax
push 0x41e644
push ebp
call fcn.0040333b
pop ecx
pop ecx
push eax
push str.___skipping:___22s___svolume_label_n
push esi
call fcn.00408690
add esp, 0x10
push eax
push esi
push edi
call dword [0x426880]
add esp, 0x10
jmp 0x402c6f
cmp eax, 0x200
jle 0x402c6f
cmp dword [esp + 0x3c], 2
jge 0x402c6f
mov dword [esp + 0x3c], 2
jmp 0x402c6f
mov dword [0x419f08], 2
jmp 0x402c6f
mov dword [0x419f08], 1
and dword [0x426718], 0
call fcn.00402c8d
test eax, eax
je 0x402c6f
cmp eax, dword [esp + 0x3c]
jle 0x402c66
mov dword [esp + 0x3c], eax
cmp dword [0x426718], 1
jg 0x402c81
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x24]
jb 0x4024e7
mov eax, dword [esp + 0x3c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret