Function at 0x4905a0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x34], 0
xor edx, edx
xor ebx, ebx
push edi
xor edi, edi
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], edi
lea eax, [esi + 0xd8]
mov edi, dword [esi + 0x6c]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x1c], edx
mov dword [esi + 0x8d8], eax
mov dword [esi + 0x84], 1
mov dword [esi + 0x109bc], edx
test edi, edi
je 0x490618
lea eax, [edi*4]
push eax
call fcn.004ae57a
mov edx, eax
add esp, 4
mov dword [ebp - 0x20], edx
test edx, edx
je 0x490618
test edi, edi
je 0x490618
mov ecx, edi
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [esi + 0x70]
test edi, edi
je 0x490644
lea eax, [edi*4]
push eax
call fcn.004ae57a
mov ebx, eax
add esp, 4
mov dword [ebp - 0x24], ebx
test ebx, ebx
je 0x490644
test edi, edi
je 0x490644
mov ecx, edi
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x2c], ebx
xor edi, edi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x28], ebx
lea ecx, [esi + 0xd8]
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], ecx
lea eax, [esi + 0xc8]
mov dword [esi + 0x8d8], ecx
push 4
mov edx, eax
mov ecx, esi
call fcn.0048bf20
add esp, 4
test eax, eax
je 0x490984
push 4
lea eax, [esi + 0xc8]
push 0x4f6a14
push eax
call fcn.004ad660
add esp, 0xc
test eax, eax
jne 0x490909
mov ecx, esi
call fcn.0048b570
test eax, eax
jne 0x490902
movzx edx, word [esi + 0x10954]
mov ecx, esi
push 2
call fcn.0048cc70
add esp, 4
test eax, eax
je 0x4906dd
cmp eax, edi
cmovg edi, eax
mov dword [ebp - 4], edi
cmp eax, 1
jg 0x490870
movzx ebx, word [esi + 0x10956]
test ebx, ebx
je 0x49076f
mov eax, dword [esi + 0x10918]
test eax, eax
je 0x4906ff
push eax
call fcn.004ae337
add esp, 4
push ebx
call fcn.004ae57a
add esp, 4
mov dword [esi + 0x10918], eax
test eax, eax
jne 0x49075a
push 0x401
push ebx
lea edi, [esi + 0x8dc]
push str.warning:__extra_field_too_long___d_.__Ignoring..._n
push edi
call fcn.004ad5d8
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
sub ebx, dword [esi + 0x10914]
mov ecx, esi
sub ebx, dword [esi + 0x108e4]
add ebx, dword [esi + 0x10910]
add ebx, dword [esi + 0x108e8]
mov edx, ebx
call fcn.0048c100
jmp 0x49076f
push ebx
mov edx, eax
mov ecx, esi
call fcn.0048bf20
add esp, 4
test eax, eax
je 0x4908b3
movzx edx, word [esi + 0x10958]
test edx, edx
je 0x490799
sub edx, dword [esi + 0x10914]
mov ecx, esi
sub edx, dword [esi + 0x108e4]
add edx, dword [esi + 0x10910]
add edx, dword [esi + 0x108e8]
call fcn.0048c100
cmp dword [esi + 0x74], 0
je 0x4907c1
mov ecx, esi
call fcn.00490ec0
mov ecx, dword [ebp - 0xc]
test eax, eax
mov eax, dword [ebp - 8]
je 0x4907bc
inc eax
add ecx, 0x20
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], ecx
jmp 0x4907fb
inc dword [ebp - 0x14]
jmp 0x4907fb
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x490821
xor edi, edi
test eax, eax
je 0x4907f5
mov edi, edi
mov eax, dword [esi + 0xc0]
lea edx, [esi + 0x109f0]
push dword [esi + 0x18]
mov ecx, dword [eax + edi*4]
call fcn.00498220
add esp, 4
cmp eax, 1
je 0x490813
inc edi
cmp edi, dword [esi + 0x6c]
jb 0x4907d0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov ebx, dword [ebp - 0x2c]
mov edi, dword [ebp - 4]
inc ebx
mov dword [ebp - 0x2c], ebx
cmp eax, 0x40
jae 0x490993
jmp 0x490666
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x490821
mov dword [eax + edi*4], 1
xor edi, edi
cmp dword [esi + 0x70], edi
jbe 0x49079f
lea esp, [esp]
mov eax, dword [esi + 0xc4]
lea edx, [esi + 0x109f0]
push dword [esi + 0x18]
mov ecx, dword [eax + edi*4]
call fcn.00498220
add esp, 4
cmp eax, 1
je 0x49085a
inc edi
cmp edi, dword [esi + 0x70]
jb 0x490830
jmp 0x49079f
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
test ebx, ebx
je 0x4907fb
mov dword [ebx + edi*4], 1
jmp 0x4907fb
push 0x401
push 0x4ec440
lea edx, [esi + 0x88dc]
lea ecx, [esi + 0x109f0]
lea edi, [esi + 0x8dc]
call fcn.00493320
push eax
push str._s:__bad_filename_length___s__n
push edi
call fcn.004ad5d8
add esp, 0x10
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov edi, dword [ebp - 4]
jmp 0x49098c
cmp edi, 0x33
jge 0x4908bf
mov dword [ebp - 4], 0x33
push 0x401
push 0x4ec440
lea edx, [esi + 0x88dc]
lea ecx, [esi + 0x109f0]
lea edi, [esi + 0x8dc]
call fcn.00493320
push eax
push str._s:__bad_extra_field_length___s__n
push edi
call fcn.004ad5d8
add esp, 0x10
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov edi, dword [ebp - 4]
jmp 0x49098c
mov edi, eax
jmp 0x490989
cmp bx, word [esi + 0x1096e]
jne 0x490933
push 4
lea eax, [esi + 0xc8]
push 0x4f6a1c
push eax
call fcn.004ad660
add esp, 0xc
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x38], eax
jmp 0x49098c
mov eax, dword [ebp - 8]
lea edi, [esi + 0x8dc]
inc eax
add eax, dword [ebp - 0x28]
push 0x401
push eax
push str.error:__expected_central_file_header_signature_not_found__file__lu_._n
push edi
call fcn.004ad5d8
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
push 0x401
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 edi
call fcn.004ad5d8
add esp, 8
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov edi, 3
jmp 0x490989
mov edi, 0x33
mov dword [ebp - 4], edi
mov dword [ebp - 0x10], 1
mov eax, dword [esi + 0x108e8]
mov ecx, esi
mov edx, dword [ebp - 8]
mov ebx, dword [esi + 0x10910]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x108ec]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x1c]
push edi
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.00491210
add esp, 0x18
test eax, eax
je 0x4909e7
cmp eax, edi
cmovg edi, eax
cmp dword [esi + 0x109c0], 1
mov dword [ebp - 4], edi
jg 0x490a3b
cmp edi, 0x50
je 0x490a3b
push 0
push ebx
push dword [esi + 0x10908]
call fcn.004b2e42
add esp, 0xc
mov dword [esi + 0x10910], eax
push 0x2000
push dword [esi + 0x108e4]
push dword [esi + 0x10908]
call fcn.004b1dd1
mov eax, dword [ebp - 0xc]
add esp, 0xc
add dword [ebp - 0x28], 0x40
cmp dword [ebp - 0x10], 0
mov dword [esi + 0x108e8], eax
mov eax, dword [ebp - 0x40]
mov dword [esi + 0x108ec], eax
jne 0x490a42
mov ebx, dword [ebp - 0x2c]
jmp 0x490656
mov dword [ebp - 0x10], 0
mov edi, dword [ebp - 0x30]
test edi, edi
je 0x490b95
lea eax, [edi*4]
push eax
call fcn.004ae57a
mov edx, eax
add esp, 4
mov dword [ebp - 0x2c], edx
test edx, edx
jne 0x490aa9
push 0x401
lea edi, [esi + 0x8dc]
push str.warning:__cannot_alloc_memory_to_sort_dir_times_perms_etc._n
push edi
call fcn.004ad5d8
add esp, 8
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov edi, dword [ebp - 0x1c]
test edi, edi
je 0x490b95
push edi
mov edi, dword [edi]
call fcn.004ae337
add esp, 4
test edi, edi
jne 0x490a95
jmp 0x490b95
mov dword [ebp - 0x28], 0
cmp edi, 1
jne 0x490abe
mov eax, dword [ebp - 0x1c]
xor ebx, ebx
mov dword [edx], eax
jmp 0x490af0
xor eax, eax
test edi, edi
je 0x490ad1
mov ecx, dword [ebp - 0x1c]
mov dword [edx + eax*4], ecx
inc eax
mov ecx, dword [ecx]
cmp eax, edi
jb 0x490ac7
push 0x493370
push 4
push edi
push edx
call fcn.004b4650
add esp, 0x10
xor ebx, ebx
test edi, edi
je 0x490b55
mov edx, dword [ebp - 0x2c]
jmp 0x490af0
mov eax, dword [edx + ebx*4]
mov ecx, esi
mov edx, eax
mov dword [ebp - 0x1c], eax
call fcn.0048dd00
mov dword [ebp - 0x40], eax
test eax, eax
je 0x490b42
mov eax, dword [ebp - 0x1c]
lea edi, [esi + 0x8dc]
inc dword [ebp - 0x28]
push 0x201
push dword [eax + 4]
push str.warning:__set_times_attribs_failed_for__s_n
push edi
call fcn.004ad5d8
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov eax, dword [ebp - 4]
test eax, eax
mov edi, dword [ebp - 0x30]
cmove eax, dword [ebp - 0x40]
mov dword [ebp - 4], eax
push dword [ebp - 0x1c]
call fcn.004ae337
mov edx, dword [ebp - 0x2c]
inc ebx
add esp, 4
cmp ebx, edi
jb 0x490af0
push dword [ebp - 0x2c]
call fcn.004ae337
add esp, 4
cmp dword [esi + 0x44], 0
jne 0x490b95
cmp dword [esi + 0x38], 0
jne 0x490b95
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x490b95
push 0
push eax
lea edi, [esi + 0x8dc]
push str._____failed_setting_attrib_times_for__lu_dir_entries
push edi
call fcn.004ad5d8
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x490c20
cmp dword [ebp - 0x10], 0
je 0x490c17
xor ebx, ebx
cmp dword [esi + 0x6c], ebx
jbe 0x490c17
lea ecx, [ebx + 0xb]
cmp dword [eax + ebx*4], 0
jne 0x490c11
cmp dword [esi + 0xa0], 0
jne 0x490bfc
cmp dword [esi + 0xa4], 0
jne 0x490bfc
mov eax, dword [esi + 0xc0]
lea edi, [esi + 0x8dc]
push 0x401
push dword [eax + ebx*4]
push str.caution:_filename_not_matched:___s_n
push edi
call fcn.004ad5d8
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov ecx, 0xb
jmp 0x490c02
inc dword [esi + 0x9c]
mov eax, dword [ebp - 4]
cmp eax, 1
cmovle eax, ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x20]
inc ebx
cmp ebx, dword [esi + 0x6c]
jb 0x490bb0
push eax
call fcn.004ae337
add esp, 4
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x490c79
cmp dword [ebp - 0x10], 0
je 0x490c70
xor ebx, ebx
cmp dword [esi + 0x70], ebx
jbe 0x490c70
cmp dword [eax + ebx*4], 0
jne 0x490c6a
mov eax, dword [esi + 0xc4]
lea edi, [esi + 0x8dc]
push 0x401
push dword [eax + ebx*4]
push str.caution:_excluded_filename_not_matched:___s_n
push edi
call fcn.004ad5d8
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov eax, dword [ebp - 0x24]
inc ebx
cmp ebx, dword [esi + 0x70]
jb 0x490c34
push eax
call fcn.004ae337
add esp, 4
cmp dword [ebp - 0x10], 0
jne 0x490c89
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x490ce1
push 0x401
lea edi, [esi + 0x8dc]
push str._nnote:__didnt_find_end_of_central_dir_signature_at_end_of_central_dir._n
push edi
call fcn.004ad5d8
add esp, 8
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
push 0x401
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 edi
call fcn.004ad5d8
add esp, 8
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov ebx, dword [ebp - 4]
mov eax, 1
test ebx, ebx
cmove ebx, eax
jmp 0x490ce4
mov ebx, dword [ebp - 4]
cmp dword [esi + 0x44], 0
mov eax, dword [ebp - 0x18]
je 0x490e48
mov ecx, dword [ebp - 0x34]
mov edx, dword [esi + 0x38]
sub ecx, eax
cmp edx, 2
jge 0x490e13
mov edx, 0x4d9f42
test ebx, ebx
je 0x490d35
push 0
push dword [esi + 0x10904]
cmp ebx, 1
lea edi, [esi + 0x8dc]
mov eax, str.warning_
cmovne eax, edx
push eax
push str.At_least_one__serror_was_detected_in__s._n
push edi
call fcn.004ad5d8
add esp, 0x10
jmp 0x490da9
test ecx, ecx
jne 0x490d56
push ecx
push dword [esi + 0x10904]
lea edi, [esi + 0x8dc]
push str.Caution:__zero_files_tested_in__s._n
push edi
call fcn.004ad5d8
add esp, 0xc
jmp 0x490da9
cmp dword [esi + 0x74], 0
je 0x490d7e
add eax, dword [ebp - 0x14]
jne 0x490d7e
push eax
push dword [esi + 0x10904]
lea edi, [esi + 0x8dc]
push str.No_errors_detected_in_compressed_data_of__s._n
push edi
call fcn.004ad5d8
add esp, 0xc
jmp 0x490da9
mov eax, edx
lea edi, [esi + 0x8dc]
push 0
cmp ecx, 1
mov edx, 0x4ebfc8
cmovne eax, edx
push eax
push ecx
push dword [esi + 0x10904]
push str.No_errors_detected_in__s_for_the__lu_file_s_tested._n
push edi
call fcn.004ad5d8
add esp, 0x14
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x490de8
cmp ecx, 1
mov edx, 0x4ebfc8
push 0
mov eax, 0x4d9f42
cmovne eax, edx
push eax
push ecx
push str._lu_file_s_skipped_because_of_unsupported_compression_or_encoding._n
push edi
call fcn.004ad5d8
add esp, 0x10
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x490e48
cmp eax, 1
mov edx, 0x4ebfc8
push 0
mov ecx, 0x4d9f42
cmovne ecx, edx
push ecx
push eax
push str._lu_file_s_skipped_because_of_incorrect_password._n
push edi
call fcn.004ad5d8
add esp, 0x10
jmp 0x490e3a
test edx, edx
jne 0x490e48
test ebx, ebx
jne 0x490e48
test ecx, ecx
jne 0x490e48
push ecx
push dword [esi + 0x10904]
lea edi, [esi + 0x8dc]
push str.Caution:__zero_files_tested_in__s._n
push edi
call fcn.004ad5d8
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x34]
test ecx, ecx
jne 0x490e6a
cmp ebx, 1
jg 0x490e6a
xor eax, eax
cmp eax, dword [ebp - 0x14]
sbb ebx, ebx
and ebx, 0x46
add ebx, 0xb
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, eax
jne 0x490e81
cmp ebx, 1
jg 0x490e81
mov ebx, 0x52
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0x14]
test edi, edi
je 0x490e9b
cmp ebx, 1
jg 0x490e9b
mov ebx, 0x51
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test eax, eax
je 0x490ea9
test ebx, ebx
mov eax, 1
cmove ebx, eax
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret