Function at 0x4a8020
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x24], 0
xor ecx, ecx
push edi
xor edi, edi
mov dword [ebp - 0x14], ecx
lea eax, [esi + 0xd8]
mov dword [ebp - 4], edi
mov dword [esi + 0x8d8], eax
mov eax, dword [esi + 0x6c]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x18], ecx
mov dword [esi + 0x84], 1
mov dword [esi + 0x109bc], ecx
test eax, eax
je 0x4a8099
shl eax, 2
push eax
call fcn.004dad8d
mov ecx, eax
add esp, 4
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x4a8099
xor eax, eax
cmp dword [esi + 0x6c], eax
jbe 0x4a8099
nop dword [eax]
mov dword [ecx + eax*4], edi
inc eax
cmp eax, dword [esi + 0x6c]
jb 0x4a8090
mov eax, dword [esi + 0x70]
test eax, eax
je 0x4a80c9
shl eax, 2
push eax
call fcn.004dad8d
mov ebx, eax
add esp, 4
mov dword [ebp - 0x20], ebx
test ebx, ebx
je 0x4a80c9
xor eax, eax
cmp dword [esi + 0x70], eax
jbe 0x4a80c9
nop dword [eax]
mov dword [ebx + eax*4], edi
inc eax
cmp eax, dword [esi + 0x70]
jb 0x4a80c0
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x34], 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.004a3d50
add esp, 4
test eax, eax
je 0x4a841b
push 4
lea eax, [esi + 0xc8]
push 0x558acc
push eax
call fcn.004d5610
add esp, 0xc
test eax, eax
jne 0x4a839c
mov ecx, esi
call fcn.0049fb00
test eax, eax
jne 0x4a8395
movzx edx, word [esi + 0x10954]
mov ecx, esi
push 2
call fcn.004a4ab0
add esp, 4
test eax, eax
je 0x4a8160
cmp eax, edi
cmovg edi, eax
mov dword [ebp - 4], edi
cmp eax, 1
jg 0x4a8300
movzx ebx, word [esi + 0x10956]
test ebx, ebx
je 0x4a81f3
mov eax, dword [esi + 0x10918]
test eax, eax
je 0x4a8182
push eax
call fcn.004dab64
add esp, 4
push ebx
call fcn.004dad8d
add esp, 4
mov dword [esi + 0x10918], eax
test eax, eax
jne 0x4a81de
push 0x401
push ecx
push ebx
lea edi, [esi + 0x8dc]
push str.warning:__extra_field_too_long___d_.__Ignoring..._n
push edi
call fcn.0041e8c0
add esp, 0x10
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov edx, dword [esi + 0x10910]
mov ecx, esi
sub edx, dword [esi + 0x10914]
sub edx, dword [esi + 0x108e4]
add edx, dword [esi + 0x108e8]
add edx, ebx
call fcn.004a3f60
jmp 0x4a81f3
push ebx
mov edx, eax
mov ecx, esi
call fcn.004a3d50
add esp, 4
test eax, eax
je 0x4a8344
movzx eax, word [esi + 0x10958]
test eax, eax
je 0x4a821f
mov edx, dword [esi + 0x10910]
mov ecx, esi
sub edx, dword [esi + 0x10914]
sub edx, dword [esi + 0x108e4]
add edx, dword [esi + 0x108e8]
add edx, eax
call fcn.004a3f60
cmp dword [esi + 0x74], 0
je 0x4a8247
mov ecx, esi
call fcn.004a8940
mov ecx, dword [ebp - 0xc]
test eax, eax
mov eax, dword [ebp - 8]
je 0x4a8242
inc eax
add ecx, 0x20
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], ecx
jmp 0x4a828b
inc dword [ebp - 0x14]
jmp 0x4a828b
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x4a82b1
xor edi, edi
test eax, eax
je 0x4a8285
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [esi + 0xc0]
lea edx, [esi + 0x109f0]
push dword [esi + 0x18]
mov ecx, dword [eax + edi*4]
call fcn.004a2bd0
add esp, 4
cmp eax, 1
je 0x4a82a3
inc edi
cmp edi, dword [esi + 0x6c]
jb 0x4a8260
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 0x4a842a
jmp 0x4a80e9
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4a82b1
mov dword [eax + edi*4], 1
xor edi, edi
cmp dword [esi + 0x70], edi
jbe 0x4a8225
nop dword [eax]
mov eax, dword [esi + 0xc4]
lea edx, [esi + 0x109f0]
push dword [esi + 0x18]
mov ecx, dword [eax + edi*4]
call fcn.004a2bd0
add esp, 4
cmp eax, 1
je 0x4a82ea
inc edi
cmp edi, dword [esi + 0x70]
jb 0x4a82c0
jmp 0x4a8225
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
test ebx, ebx
je 0x4a828b
mov dword [ebx + edi*4], 1
jmp 0x4a828b
push 0x401
push ecx
push 0x54ee04
lea edx, [esi + 0x88dc]
lea ecx, [esi + 0x109f0]
lea edi, [esi + 0x8dc]
call fcn.004aaf80
push eax
push str._s:__bad_filename_length___s__n
push edi
call fcn.0041e8c0
add esp, 0x14
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov edi, dword [ebp - 4]
jmp 0x4a8423
mov eax, 0x33
lea edx, [esi + 0x88dc]
cmp edi, eax
push 0x401
push ecx
cmovge eax, edi
lea ecx, [esi + 0x109f0]
push 0x54ee04
mov dword [ebp - 4], eax
lea edi, [esi + 0x8dc]
call fcn.004aaf80
push eax
push str._s:__bad_extra_field_length___s__n
push edi
call fcn.0041e8c0
add esp, 0x14
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov edi, dword [ebp - 4]
jmp 0x4a8423
mov edi, eax
jmp 0x4a8420
cmp bx, word [esi + 0x1096e]
jne 0x4a83c6
push 4
lea eax, [esi + 0xc8]
push 0x558ac8
push eax
call fcn.004d5610
add esp, 0xc
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x34], eax
jmp 0x4a8423
mov eax, dword [ebp - 8]
lea edi, [esi + 0x8dc]
mov ecx, dword [ebp - 0x28]
inc eax
push 0x401
push ecx
add eax, ecx
push eax
push str.error:__expected_central_file_header_signature_not_found__file__lu_._n
push edi
call fcn.0041e8c0
add esp, 0x10
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
push 0x401
push ecx
push 0x53ab48
push edi
call fcn.0041e8c0
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov edi, 3
jmp 0x4a8420
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 - 0x18]
push edi
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.004a8c50
add esp, 0x18
test eax, eax
je 0x4a847e
cmp eax, edi
cmovg edi, eax
cmp dword [esi + 0x109c0], 1
mov dword [ebp - 4], edi
jg 0x4a84d2
cmp edi, 0x50
je 0x4a84d2
push 0
push ebx
push dword [esi + 0x10908]
call fcn.004df34d
add esp, 0xc
mov dword [esi + 0x10910], eax
push 0x2000
push dword [esi + 0x108e4]
push dword [esi + 0x10908]
call fcn.004de977
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 0x4a84d9
mov ebx, dword [ebp - 0x2c]
jmp 0x4a80d9
mov dword [ebp - 0x10], 0
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x4a8627
lea eax, [ebx*4]
push eax
call fcn.004dad8d
mov edi, eax
add esp, 4
mov dword [ebp - 0x3c], edi
test edi, edi
jne 0x4a8544
push 0x401
push ecx
lea edi, [esi + 0x8dc]
push str.warning:__cannot_alloc_memory_to_sort_dir_times_perms_etc._n
push edi
call fcn.0041e8c0
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov edi, dword [ebp - 0x18]
test edi, edi
je 0x4a8624
nop dword [eax]
push edi
mov edi, dword [edi]
call fcn.004dab64
add esp, 4
test edi, edi
jne 0x4a8530
jmp 0x4a8624
mov dword [ebp - 0x2c], 0
cmp ebx, 1
jne 0x4a8557
mov eax, dword [ebp - 0x18]
mov dword [edi], eax
jmp 0x4a857f
xor eax, eax
test ebx, ebx
je 0x4a856a
mov ecx, dword [ebp - 0x18]
mov dword [edi + eax*4], ecx
inc eax
mov ecx, dword [ecx]
cmp eax, ebx
jb 0x4a8560
push 0x4aafe0
push 4
push ebx
push edi
call fcn.004e17f0
add esp, 0x10
test ebx, ebx
je 0x4a85e5
xor ebx, ebx
mov eax, dword [edi + ebx*4]
mov ecx, esi
mov edx, eax
mov dword [ebp - 0x28], eax
call fcn.004a0cd0
mov dword [ebp - 0x40], eax
test eax, eax
je 0x4a85d4
mov eax, dword [ebp - 0x28]
lea edi, [esi + 0x8dc]
inc dword [ebp - 0x2c]
push 0x201
push ecx
push dword [eax + 4]
push str.warning:__set_times_attribs_failed_for__s_n
push edi
call fcn.0041e8c0
add esp, 0x10
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 - 0x3c]
cmove eax, dword [ebp - 0x40]
mov dword [ebp - 4], eax
push dword [ebp - 0x28]
call fcn.004dab64
inc ebx
add esp, 4
cmp ebx, dword [ebp - 0x30]
jb 0x4a8581
push edi
call fcn.004dab64
add esp, 4
cmp dword [esi + 0x44], 0
jne 0x4a8624
cmp dword [esi + 0x38], 0
jne 0x4a8624
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4a8624
push 0
push ecx
push eax
lea edi, [esi + 0x8dc]
push str._____failed_setting_attrib_times_for__lu_dir_entries
push edi
call fcn.0041e8c0
add esp, 0x10
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov edi, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4a86b3
cmp dword [ebp - 0x10], 0
je 0x4a86aa
xor ebx, ebx
cmp dword [esi + 0x6c], ebx
jbe 0x4a86aa
lea ecx, [ebx + 0xb]
cmp dword [eax + ebx*4], 0
jne 0x4a86a4
cmp dword [esi + 0xa0], 0
jne 0x4a8695
cmp dword [esi + 0xa4], 0
jne 0x4a8695
mov eax, dword [esi + 0xc0]
lea edi, [esi + 0x8dc]
push 0x401
push ecx
push dword [eax + ebx*4]
push str.caution:_filename_not_matched:___s_n
push edi
call fcn.0041e8c0
add esp, 0x10
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov edi, dword [ebp - 4]
mov ecx, 0xb
mov eax, dword [ebp - 0x1c]
jmp 0x4a869b
inc dword [esi + 0x9c]
cmp edi, 1
cmovle edi, ecx
mov dword [ebp - 4], edi
inc ebx
cmp ebx, dword [esi + 0x6c]
jb 0x4a8642
push eax
call fcn.004dab64
add esp, 4
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4a870d
cmp dword [ebp - 0x10], 0
je 0x4a8704
xor ebx, ebx
cmp dword [esi + 0x70], ebx
jbe 0x4a8704
cmp dword [eax + ebx*4], 0
jne 0x4a86fe
mov eax, dword [esi + 0xc4]
lea edi, [esi + 0x8dc]
push 0x401
push ecx
push dword [eax + ebx*4]
push str.caution:_excluded_filename_not_matched:___s_n
push edi
call fcn.0041e8c0
add esp, 0x10
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov eax, dword [ebp - 0x20]
inc ebx
cmp ebx, dword [esi + 0x70]
jb 0x4a86c7
push eax
call fcn.004dab64
add esp, 4
cmp dword [ebp - 0x10], 0
jne 0x4a871d
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x34], 0
mov ebx, 1
je 0x4a8779
push 0x401
push ecx
lea edi, [esi + 0x8dc]
push str._nnote:__didnt_find_end_of_central_dir_signature_at_end_of_central_dir._n
push edi
call fcn.0041e8c0
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
push 0x401
push ecx
push 0x53ab48
push edi
call fcn.0041e8c0
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov ecx, dword [ebp - 4]
test ecx, ecx
cmove ecx, ebx
mov dword [ebp - 4], ecx
jmp 0x4a877c
mov ecx, dword [ebp - 4]
cmp dword [esi + 0x44], 0
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x38]
je 0x4a88ca
mov edx, edi
sub edx, ebx
cmp dword [esi + 0x38], 2
jge 0x4a88ca
mov eax, 0x518188
test ecx, ecx
je 0x4a87d6
push 0
push ecx
push dword [esi + 0x10904]
cmp ecx, 1
lea edi, [esi + 0x8dc]
mov ecx, 0x518188
mov eax, str.warning_
cmovne eax, ecx
push eax
push str.At_least_one__serror_was_detected_in__s._n
push edi
call fcn.0041e8c0
add esp, 0x14
jmp 0x4a8855
test edx, edx
jne 0x4a87f8
push edx
push ecx
push dword [esi + 0x10904]
lea edi, [esi + 0x8dc]
push str.Caution:__zero_files_tested_in__s._n
push edi
call fcn.0041e8c0
add esp, 0x10
jmp 0x4a8855
cmp dword [esi + 0x74], 0
je 0x4a882b
mov ecx, dword [ebp - 0x14]
lea eax, [ebx + ecx]
test eax, eax
jne 0x4a8826
push eax
push ecx
push dword [esi + 0x10904]
lea edi, [esi + 0x8dc]
push str.No_errors_detected_in_compressed_data_of__s._n
push edi
call fcn.0041e8c0
add esp, 0x10
jmp 0x4a8855
mov eax, 0x518188
push 0
cmp edx, 1
lea edi, [esi + 0x8dc]
mov ecx, 0x54e864
push ecx
cmovne eax, ecx
push eax
push edx
push dword [esi + 0x10904]
push str.No_errors_detected_in__s_for_the__lu_file_s_tested._n
push edi
call fcn.0041e8c0
add esp, 0x18
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x4a8895
push 0
cmp ecx, 1
mov edx, 0x54e864
push ecx
mov eax, 0x518188
cmovne eax, edx
push eax
push ecx
push str._lu_file_s_skipped_because_of_unsupported_compression_or_encoding._n
push edi
call fcn.0041e8c0
add esp, 0x14
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
test ebx, ebx
je 0x4a88c7
push 0
mov ecx, 0x54e864
cmp ebx, 1
push ecx
mov eax, 0x518188
cmovne eax, ecx
push eax
push ebx
push str._lu_file_s_skipped_because_of_incorrect_password._n
push edi
call fcn.0041e8c0
add esp, 0x14
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 4]
test edi, edi
jne 0x4a88ec
cmp eax, 1
jg 0x4a88ec
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 edi, ebx
jne 0x4a8903
cmp eax, 1
jg 0x4a8903
mov ebx, 0x52
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x14], 0
je 0x4a891c
cmp eax, 1
jg 0x4a891c
mov ebx, 0x51
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
mov ebx, dword [ebp - 4]
je 0x4a892d
test ebx, ebx
mov eax, 1
cmove ebx, eax
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret