Function at 0x401cab
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
and dword [ebp - 8], 0
cmp dword [ebp + 8], 0
push ebx
push esi
push edi
jbe 0x4025cf
mov ebx, 0x401
mov esi, 0x4e5064
mov edi, 0x424f80
mov eax, dword [ebp + 0xc]
inc dword [eax]
mov eax, dword [ebp - 8]
imul eax, eax, 0x30
add eax, 0x425060
mov dword [0x4e5060], eax
mov ecx, dword [eax]
add ecx, dword [0x4f10a8]
mov eax, dword [eax + 4]
adc eax, dword [0x4f10ac]
push 0
push 0x2000
push eax
push ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], eax
call fcn.0040ced0
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x10]
sbb eax, edx
cmp dword [ebp - 0x10], 0
jg 0x401e26
jl 0x401d32
cmp dword [ebp - 0x14], 0
jae 0x401e26
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 [0x4f108c]
push str.error___s_:__attempt_to_seek_before_beginning_of_zipfile_n_s
push esi
call fcn.0040ab01
add esp, 0x10
push eax
push esi
push edi
call dword [0x4f1380]
mov eax, dword [ebp + 0xc]
add esp, 0x10
cmp dword [eax], 1
mov dword [ebp + 0x1c], 2
jne 0x401e1a
mov eax, dword [0x4f10a8]
or eax, dword [0x4f10ac]
je 0x401e1a
push ebx
push str.___attempting_to_re_compensate__n
push esi
call fcn.0040ab01
pop ecx
pop ecx
push eax
push esi
push edi
call dword [0x4f1380]
mov ecx, dword [0x4f10a8]
mov eax, dword [ebp + 0x10]
mov dword [eax], ecx
mov ecx, dword [0x4f10ac]
mov dword [eax + 4], ecx
mov eax, dword [0x4e5060]
add esp, 0x10
xor edx, edx
push edx
mov dword [0x4f10a8], edx
mov dword [0x4f10ac], edx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
push 0x2000
push eax
push ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], eax
call fcn.0040ced0
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x10]
sbb eax, edx
cmp dword [ebp - 0x10], 0
jg 0x401e26
jl 0x401df4
cmp dword [ebp - 0x14], 0
jae 0x401e26
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 [0x4f108c]
push str.error___s_:__attempt_to_seek_before_beginning_of_zipfile_n_s
push esi
call fcn.0040ab01
add esp, 0x10
push eax
push esi
push edi
call dword [0x4f1380]
add esp, 0x10
mov dword [ebp + 0x1c], 3
jmp 0x4025c0
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [0x4f10a0]
jne 0x401e39
cmp eax, dword [0x4f10a4]
je 0x401eb2
push 0
push eax
push dword [ebp - 0x2c]
push dword [0x4f1090]
call fcn.0040cde4
push 0x2000
push dword [0x4f106c]
mov dword [0x4f10a0], eax
push dword [0x4f1090]
mov dword [0x4f10a4], edx
call fcn.00419c37
add esp, 0x1c
mov dword [0x4f1074], eax
test eax, eax
jg 0x401e98
push ebx
push dword [ebp - 0x2c]
push str.lseek
mov eax, dword [ebp + 0xc]
push dword [eax]
push str.file__lu:__bad_zipfile_offset___s_:___ld_n
push esi
call fcn.0040ab01
add esp, 0x14
jmp 0x401e0e
mov ecx, dword [ebp - 0x24]
mov edx, dword [0x4f106c]
add edx, ecx
sub eax, ecx
mov dword [0x4f1070], edx
mov dword [0x4f1074], eax
jmp 0x401ed0
mov ecx, dword [0x4f1070]
mov eax, dword [0x4f106c]
sub ecx, eax
sub ecx, dword [ebp - 0x24]
add dword [0x4f1074], ecx
add eax, dword [ebp - 0x24]
mov dword [0x4f1070], eax
push 4
push 0x425050
call fcn.00403132
pop ecx
pop ecx
test eax, eax
jne 0x401eed
push ebx
push dword [ebp - 0x14]
push 0x41d988
jmp 0x401e80
push 4
push 0x423004
push 0x425050
call fcn.0040b80b
add esp, 0xc
test eax, eax
je 0x40201f
mov eax, dword [ebp + 0xc]
push ebx
push dword [ebp - 0x14]
push str.local_header_sig
push dword [eax]
push str.file__lu:__bad_zipfile_offset___s_:___ld_n
push esi
call fcn.0040ab01
add esp, 0x14
push eax
push esi
push edi
call dword [0x4f1380]
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x4f10ac]
add esp, 0x10
cmp dword [eax], 1
mov eax, dword [0x4f10a8]
mov dword [ebp + 0x1c], 2
jne 0x401f51
mov edx, eax
or edx, ecx
jne 0x401f67
or eax, ecx
jne 0x4025c0
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
or ecx, dword [eax + 4]
je 0x4025c0
push ebx
push str.___attempting_to_re_compensate__n
push esi
call fcn.0040ab01
pop ecx
pop ecx
push eax
push esi
push edi
call dword [0x4f1380]
mov eax, dword [0x4f10a8]
mov ecx, eax
add esp, 0x10
or ecx, dword [0x4f10ac]
je 0x401fad
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
mov eax, dword [0x4f10ac]
mov dword [ecx + 4], eax
and dword [0x4f10a8], 0
and dword [0x4f10ac], 0
jmp 0x401fc0
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
mov dword [0x4f10a8], ecx
mov eax, dword [eax + 4]
mov dword [0x4f10ac], eax
mov eax, dword [0x4e5060]
push dword [eax + 4]
push dword [eax]
call fcn.004032b8
pop ecx
pop ecx
test eax, eax
jne 0x402011
push 4
push 0x425050
call fcn.00403132
pop ecx
pop ecx
test eax, eax
je 0x401ee2
push 4
push 0x423004
push 0x425050
call fcn.0040b80b
add esp, 0xc
test eax, eax
je 0x40201f
push ebx
push dword [ebp - 0x14]
push str.local_header_sig
jmp 0x401e80
cmp eax, 3
je 0x401e1a
jmp 0x401ee2
call fcn.00406897
mov dword [ebp - 4], eax
test eax, eax
je 0x40205a
mov eax, dword [ebp + 0xc]
push 0x421
push dword [eax]
push str.file__lu:__bad_local_header_n
push esi
call fcn.0040ab01
add esp, 0xc
push eax
push esi
push edi
call dword [0x4f1380]
mov eax, dword [ebp - 4]
add esp, 0x10
mov dword [ebp + 0x1c], eax
jmp 0x4025c0
movzx eax, word [0x4f10d6]
push 6
push eax
call fcn.00403979
pop ecx
pop ecx
test eax, eax
je 0x4020b9
cmp eax, dword [ebp + 0x1c]
jle 0x402077
mov dword [ebp + 0x1c], eax
cmp eax, 1
jle 0x4020b9
push ebx
push str.local
push 0x2000
push 0x4e9064
push 0x4f11c8
call fcn.0040141c
add esp, 0xc
push eax
push str._s:__bad_filename_length___s__n
push esi
call fcn.0040ab01
add esp, 0x10
push eax
push esi
push edi
call dword [0x4f1380]
add esp, 0x10
jmp 0x4025c0
mov eax, dword [0x4f10b0]
test eax, eax
je 0x4020d0
push eax
call fcn.0040a760
and dword [0x4f10b0], 0
pop ecx
movzx eax, word [0x4f10d8]
push 3
push eax
call fcn.00403979
pop ecx
pop ecx
test eax, eax
je 0x402117
cmp eax, dword [ebp + 0x1c]
jle 0x4020ed
mov dword [ebp + 0x1c], eax
cmp eax, 1
jle 0x402117
push ebx
push str.local
push 0x2000
push 0x4e9064
push 0x4f11c8
call fcn.0040141c
add esp, 0xc
push eax
push str._s:__bad_extra_field_length___s__n
jmp 0x40209f
cmp word [0x4f10d4], 0
jne 0x4021e2
mov eax, dword [0x4f10b8]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x4f10bc]
mov dword [ebp - 0x18], eax
mov eax, dword [0x4e5060]
test byte [eax + 0x28], 1
je 0x402148
add dword [ebp - 0x1c], 0xfffffff4
adc dword [ebp - 0x18], 0xffffffff
mov eax, dword [0x4f10c0]
cmp eax, dword [ebp - 0x1c]
jne 0x402160
mov eax, dword [0x4f10c4]
cmp eax, dword [ebp - 0x18]
je 0x4021e2
push ebx
push 0x41d97c
push 0
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call fcn.00404076
add esp, 0x10
push eax
push 0x41d97c
push 0
push dword [0x4f10c4]
push dword [0x4f10c0]
call fcn.00404076
add esp, 0x10
push eax
push 0x2000
push 0x4e9064
push 0x4f11c8
call fcn.0040141c
add esp, 0xc
push eax
push str._s:__ucsize__s____csize__s_for_STORED_entry_n_________continuing_with__compressed__size_value_n
push esi
call fcn.0040ab01
add esp, 0x14
push eax
push esi
push edi
call dword [0x4f1380]
mov eax, dword [ebp - 0x1c]
mov dword [0x4f10c0], eax
mov eax, dword [ebp - 0x18]
add esp, 0x10
cmp dword [ebp + 0x1c], 1
mov dword [0x4f10c4], eax
jge 0x4021e2
mov dword [ebp + 0x1c], 1
xor eax, eax
cmp dword [0x424fc8], eax
jne 0x40259f
cmp dword [0x424f94], eax
jne 0x40259f
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x402263
cmp byte [0x4f11c8], 0x2f
jne 0x402263
push ebx
push 0x2000
push 0x4e9064
push 0x4f11c8
call fcn.0040141c
push eax
push str.warning:__stripped_absolute_path_spec_from__s_n
push esi
call fcn.0040ab01
add esp, 0x18
push eax
push esi
push edi
call dword [0x4f1380]
add esp, 0x10
cmp dword [ebp + 0x1c], 0
jne 0x40224b
mov dword [ebp + 0x1c], 1
mov eax, 0x4f11c9
mov cl, byte [eax]
mov byte [eax - 1], cl
inc eax
test cl, cl
jne 0x402250
cmp byte [0x4f11c8], 0x2f
je 0x40224b
push dword [ebp - 4]
call fcn.0040a099
pop ecx
mov ecx, eax
and ecx, 0xffff80ff
je 0x40227e
cmp dword [ebp + 0x1c], ecx
jge 0x40227e
mov dword [ebp + 0x1c], ecx
and eax, 0x7f00
cmp eax, 0x100
jg 0x4024de
push 0x4f11c8
call fcn.004038af
pop ecx
cmp eax, 0xffffffff
je 0x4024c2
test eax, eax
je 0x4022ed
cmp eax, 1
jne 0x40259f
mov eax, dword [0x424f90]
mov ecx, dword [0x425014]
test eax, eax
jne 0x4022c7
cmp ecx, 2
je 0x4025c0
cmp dword [0x424fd0], 0
je 0x4022da
cmp dword [ebp - 4], 0
je 0x4025c0
cmp ecx, 1
je 0x40259f
test eax, eax
jne 0x40259f
jmp 0x402311
cmp dword [0x424f90], 0
jne 0x40259f
mov eax, dword [0x425014]
cmp eax, 2
je 0x4025c0
cmp eax, 1
je 0x40259f
push 0x81
push 0x2000
push 0x4e9064
push 0x4f11c8
call fcn.0040141c
push eax
push str.replace__s___y_es___n_o___A_ll___N_one___r_ename:
push esi
call fcn.0040ab01
add esp, 0x18
push eax
push esi
push edi
call dword [0x4f1380]
call fcn.0040b5c0
push eax
push 0xa
push 0x425054
call fcn.0040b488
add esp, 0x1c
test eax, eax
jne 0x40238a
push 1
push str._NULL_n_EOF_or_read_error__treating_as___N_one__...__n
push esi
call fcn.0040ab01
pop ecx
pop ecx
push eax
push esi
push edi
call dword [0x4f1380]
add esp, 0x10
cmp dword [ebp + 0x1c], 0
mov byte [0x425054], 0x4e
jne 0x40238a
mov dword [ebp + 0x1c], 1
movsx eax, byte [0x425054]
cmp eax, 0x52
jg 0x4023d6
je 0x402446
cmp eax, 0xa
je 0x4023c3
cmp eax, 0xd
je 0x4023c3
cmp eax, 0x41
je 0x402595
cmp eax, 0x4e
jne 0x4023f6
mov dword [0x425014], 2
jmp 0x4025c0
push str.ENTER
push 0x425054
call fcn.0040ab90
pop ecx
pop ecx
jmp 0x4023f6
cmp eax, 0x59
je 0x40259f
cmp eax, 0x6e
je 0x4025c0
cmp eax, 0x72
je 0x402446
cmp eax, 0x79
je 0x40259f
push 0x425054
call fcn.0040b780
push eax
push 0x425054
mov dword [ebp - 4], eax
call fcn.00404147
add esp, 0xc
cmp byte [eax], 0xa
jne 0x402420
mov eax, dword [ebp - 4]
mov byte [eax + 0x425053], 0
push 1
push 0x425054
push str.error:__invalid_response___s__n
push esi
call fcn.0040ab01
add esp, 0xc
push eax
push esi
push edi
call dword [0x4f1380]
add esp, 0x10
jmp 0x402311
push 0x81
push str.new_name:
push esi
call fcn.0040ab01
pop ecx
pop ecx
push eax
push esi
push edi
call dword [0x4f1380]
call fcn.0040b5c0
push eax
push 0x104
push 0x4f11c8
call fcn.0040b488
push 0x4f11c8
call fcn.0040b780
push eax
push 0x4f11c8
mov dword [ebp - 4], eax
call fcn.00404147
add esp, 0x28
cmp byte [eax], 0xa
jne 0x4024a3
dec dword [ebp - 4]
mov eax, dword [ebp - 4]
mov byte [eax + 0x4f11c8], 0
cmp dword [ebp - 4], 0
je 0x402446
mov eax, 0x4f11c8
push eax
push eax
call dword [sym.imp.USER32.dll_OemToCharA]
mov dword [ebp - 4], 1
jmp 0x4021ff
cmp dword [0x424fa0], 0
je 0x40259f
cmp dword [ebp - 4], 0
jne 0x40259f
jmp 0x4025c0
cmp eax, 0x1000
jne 0x402541
lea eax, [ebp - 0xc]
push eax
call fcn.004095f4
pop ecx
mov ecx, dword [ebp - 0xc]
test ecx, ecx
jne 0x40252e
test eax, eax
je 0x4025c0
push ebx
push str.warning:__cannot_alloc_memory_for_dir_times_permissions_UID_GID_n
push esi
call fcn.0040ab01
pop ecx
pop ecx
push eax
push esi
push edi
call dword [0x4f1380]
add esp, 0x10
cmp dword [ebp + 0x1c], 0
jne 0x4025c0
mov dword [ebp + 0x1c], 1
jmp 0x4025c0
mov eax, dword [ebp + 0x18]
mov edx, dword [eax]
mov dword [ecx], edx
mov ecx, dword [ebp - 0xc]
mov dword [eax], ecx
mov eax, dword [ebp + 0x14]
inc dword [eax]
jmp 0x4025c0
cmp eax, 0x1100
jne 0x40257f
cmp dword [0x424fc4], 0
mov eax, str.hard_disk
jne 0x40255b
mov eax, 0x41d965
push ebx
push eax
push 0x2000
push 0x4e9064
push 0x4f11c8
call fcn.0040141c
add esp, 0xc
push eax
push str.___skipping:___22s___svolume_label_n
jmp 0x40209f
cmp eax, 0x200
jle 0x4025c0
cmp dword [ebp + 0x1c], 2
jge 0x4025c0
mov dword [ebp + 0x1c], 2
jmp 0x4025c0
mov dword [0x425014], 1
and dword [0x4f1198], 0
call fcn.004017d4
test eax, eax
je 0x4025c0
cmp eax, dword [ebp + 0x1c]
jle 0x4025b7
mov dword [ebp + 0x1c], eax
cmp dword [0x4f1198], 1
jg 0x4025cf
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [ebp + 8]
jb 0x401cd1
mov eax, dword [ebp + 0x1c]
pop edi
pop esi
pop ebx
leave
ret