Function at 0x46a870
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
xor ebx, ebx
push esi
mov esi, eax
push edi
mov edi, dword [esi + 0x6c]
lea eax, [esi + 0xd8]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x40], eax
mov dword [esi + 0x8d8], eax
mov dword [esi + 0x84], 1
mov dword [esi + 0x109bc], ebx
cmp edi, ebx
jbe 0x46a8e2
lea eax, [edi*4]
push eax
call fcn.004aa188
add esp, 4
mov dword [ebp - 0x1c], eax
cmp eax, ebx
je 0x46a8e2
cmp edi, ebx
jbe 0x46a8e2
mov ecx, edi
mov edi, dword [ebp - 0x1c]
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [esi + 0x70]
cmp edi, ebx
jbe 0x46a90d
lea ecx, [edi*4]
push ecx
call fcn.004aa188
add esp, 4
mov dword [ebp - 0x14], eax
cmp eax, ebx
je 0x46a90d
cmp edi, ebx
jbe 0x46a90d
mov ecx, edi
mov edi, dword [ebp - 0x14]
xor eax, eax
rep stosd dword es:[edi], eax
lea edi, [esi + 0xc8]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x2c], ebx
jmp 0x46a933
mov edi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x8d8], eax
push edi
mov eax, 4
call fcn.004660d0
add esp, 4
test eax, eax
je 0x46ac2c
push 4
push 0x4eb5d0
push edi
call fcn.004a93c0
add esp, 0xc
test eax, eax
jne 0x46ac38
call fcn.00465720
test eax, eax
jne 0x46acbc
movzx ecx, word [esi + 0x10954]
push 2
push ecx
mov edi, esi
call fcn.00466e20
add esp, 8
test eax, eax
je 0x46a9ad
cmp eax, dword [ebp - 4]
jle 0x46a9a4
mov dword [ebp - 4], eax
cmp eax, 1
jg 0x46acc4
movzx edi, word [esi + 0x10956]
test edi, edi
je 0x46aa3d
mov eax, dword [esi + 0x10918]
test eax, eax
je 0x46a9cf
push eax
call fcn.004aa14e
add esp, 4
push edi
call fcn.004aa188
add esp, 4
mov dword [esi + 0x10918], eax
test eax, eax
jne 0x46aa2a
push 0x401
push edi
lea ebx, [esi + 0x8dc]
push str.warning:__extra_field_too_long___d_.__Ignoring..._n
push ebx
call fcn.004a931b
mov edx, dword [esi + 0x10b54]
add esp, 0xc
push eax
push ebx
push esi
call edx
sub edi, dword [esi + 0x10914]
sub edi, dword [esi + 0x108e4]
add edi, dword [esi + 0x10910]
add edi, dword [esi + 0x108e8]
push edi
call fcn.004662f0
add esp, 4
jmp 0x46aa3d
push eax
mov eax, edi
call fcn.004660d0
add esp, 4
test eax, eax
je 0x46ab2a
movzx eax, word [esi + 0x10958]
test eax, eax
je 0x46aa69
sub eax, dword [esi + 0x10914]
sub eax, dword [esi + 0x108e4]
add eax, dword [esi + 0x10910]
add eax, dword [esi + 0x108e8]
push eax
call fcn.004662f0
add esp, 4
cmp dword [esi + 0x74], 0
jne 0x46aaf2
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x46aac2
xor edi, edi
test eax, eax
je 0x46ab19
lea ebx, [esi + 0x109f0]
lea ebx, [ebx]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0xc0]
mov ecx, dword [ecx + edi*4]
push eax
push ebx
push ecx
call fcn.004727e0
add esp, 0xc
cmp eax, 1
je 0x46aab4
inc edi
cmp edi, dword [esi + 0x6c]
jb 0x46aa90
jmp 0x46ab19
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x46aac2
mov dword [eax + edi*4], 1
xor edi, edi
cmp dword [esi + 0x70], edi
jbe 0x46aaf2
lea ebx, [esi + 0x109f0]
nop
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0xc4]
mov ecx, dword [edx + edi*4]
push eax
push ebx
push ecx
call fcn.004727e0
add esp, 0xc
cmp eax, 1
je 0x46ab04
inc edi
cmp edi, dword [esi + 0x70]
jb 0x46aad0
call fcn.0046b1b0
test eax, eax
je 0x46ab16
inc dword [ebp - 0x10]
add dword [ebp - 0x18], 0x20
jmp 0x46ab19
cmp dword [ebp - 0x14], 0
je 0x46ab19
mov eax, dword [ebp - 0x14]
mov dword [eax + edi*4], 1
jmp 0x46ab19
inc dword [ebp - 0xc]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x10], 0x40
jae 0x46ab79
mov edi, dword [ebp - 0x34]
jmp 0x46a940
mov eax, 0x33
cmp dword [ebp - 4], eax
jge 0x46ab37
mov dword [ebp - 4], eax
push 0x401
push 0x4e01c8
lea ebx, [esi + 0x88dc]
lea eax, [esi + 0x109f0]
lea edi, [esi + 0x8dc]
call fcn.0046d700
push eax
push str._s:__bad_extra_field_length___s__n
push edi
call fcn.004a931b
mov edx, dword [esi + 0x10b54]
add esp, 0x10
push eax
push edi
push esi
call edx
mov dword [ebp - 8], 1
mov eax, dword [esi + 0x108ec]
mov ecx, dword [ebp - 4]
mov edi, dword [esi + 0x10910]
mov ebx, dword [esi + 0x108e8]
push ecx
mov dword [ebp - 0x18], eax
lea edx, [ebp - 0x20]
push edx
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x44]
push ecx
mov ecx, dword [ebp - 0x10]
lea edx, [ebp - 0x3c]
push edx
lea eax, [ebp - 0x30]
push eax
push ecx
mov eax, esi
call fcn.0046b530
add esp, 0x1c
test eax, eax
je 0x46abd7
cmp eax, dword [ebp - 4]
jle 0x46abc0
mov dword [ebp - 4], eax
cmp dword [esi + 0x109c0], 1
jg 0x46ad04
cmp dword [ebp - 4], 0x50
je 0x46ad04
mov edx, dword [esi + 0x10908]
push 0
push edi
push edx
call fcn.004af41e
mov ecx, dword [esi + 0x10908]
add esp, 0xc
mov dword [esi + 0x10910], eax
mov eax, dword [esi + 0x108e4]
push 0x2000
push eax
push ecx
call fcn.004aeb0a
mov edx, dword [ebp - 0x18]
add dword [ebp - 0x2c], 0x40
add esp, 0xc
cmp dword [ebp - 8], 0
mov dword [esi + 0x108e8], ebx
mov dword [esi + 0x108ec], edx
je 0x46a930
jmp 0x46ad0b
mov dword [ebp - 4], 0x33
jmp 0x46ab72
mov cx, word [ebp - 0x28]
cmp cx, word [esi + 0x1096e]
jne 0x46ac63
push 4
push 0x4eb5d8
push edi
call fcn.004a93c0
add esp, 0xc
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x38], eax
jmp 0x46ab72
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
push 0x401
lea ecx, [edx + eax + 1]
push ecx
lea edi, [esi + 0x8dc]
push str.error:__expected_central_file_header_signature_not_found__file__lu_._n
push edi
call fcn.004a931b
mov edx, dword [esi + 0x10b54]
add esp, 0xc
push eax
push edi
push esi
call edx
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.004a931b
add esp, 8
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov dword [ebp - 4], 3
jmp 0x46ab72
mov dword [ebp - 4], eax
jmp 0x46ab72
push 0x401
push 0x4e01c8
lea ebx, [esi + 0x88dc]
lea eax, [esi + 0x109f0]
lea edi, [esi + 0x8dc]
call fcn.0046d700
push eax
push str._s:__bad_filename_length___s__n
push edi
call fcn.004a931b
mov ecx, dword [esi + 0x10b54]
add esp, 0x10
push eax
push edi
push esi
call ecx
jmp 0x46ab72
mov dword [ebp - 8], 0
cmp dword [ebp - 0x24], 0
jbe 0x46ae56
mov edi, dword [ebp - 0x24]
lea eax, [edi*4]
push eax
call fcn.004aa188
xor ebx, ebx
add esp, 4
mov dword [ebp - 0x34], eax
cmp eax, ebx
jne 0x46ad74
push 0x401
lea edi, [esi + 0x8dc]
push str.warning:__cannot_alloc_memory_to_sort_dir_times_perms_etc._n
push edi
call fcn.004a931b
mov ecx, dword [esi + 0x10b54]
add esp, 8
push eax
push edi
push esi
call ecx
mov edi, dword [ebp - 0x20]
cmp edi, ebx
je 0x46ae56
push edi
mov edi, dword [edi]
call fcn.004aa14e
add esp, 4
test edi, edi
jne 0x46ad60
jmp 0x46ae56
mov dword [ebp - 0x28], ebx
cmp edi, 1
jne 0x46ad83
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
jmp 0x46adab
xor ecx, ecx
cmp edi, ebx
jbe 0x46ad9a
mov edx, dword [ebp - 0x20]
lea esp, [esp]
mov dword [eax + ecx*4], edx
mov edx, dword [edx]
inc ecx
cmp ecx, edi
jb 0x46ad90
push 0x46d750
push 4
push edi
push eax
call fcn.004b1300
add esp, 0x10
mov dword [ebp - 0x2c], ebx
cmp edi, ebx
jbe 0x46ae15
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x2c]
mov ebx, dword [eax + ecx*4]
mov eax, ebx
call fcn.00467eb0
mov dword [ebp - 0x44], eax
test eax, eax
je 0x46ae00
mov edx, dword [ebx + 4]
inc dword [ebp - 0x28]
push 0x201
push edx
lea edi, [esi + 0x8dc]
push str.warning:__set_times_attribs_failed_for__s_n
push edi
call fcn.004a931b
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
cmp dword [ebp - 4], 0
jne 0x46ae00
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 4], ecx
push ebx
call fcn.004aa14e
mov eax, dword [ebp - 0x2c]
inc eax
add esp, 4
mov dword [ebp - 0x2c], eax
cmp eax, dword [ebp - 0x24]
jb 0x46adb2
mov edx, dword [ebp - 0x34]
push edx
call fcn.004aa14e
add esp, 4
cmp dword [esi + 0x44], 0
jne 0x46ae56
cmp dword [esi + 0x38], 0
jne 0x46ae56
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x46ae56
push 0
push eax
lea edi, [esi + 0x8dc]
push str._____failed_setting_attrib_times_for__lu_dir_entries
push edi
call fcn.004a931b
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x46aee3
cmp dword [ebp - 8], 0
je 0x46aeda
xor ebx, ebx
cmp dword [esi + 0x6c], ebx
jbe 0x46aeda
lea ecx, [ebx + 1]
cmp dword [eax + ebx*4], 0
jne 0x46aed3
cmp dword [esi + 0xa0], 0
jne 0x46aec1
cmp dword [esi + 0xa4], 0
jne 0x46aec1
mov ecx, dword [esi + 0xc0]
mov edx, dword [ecx + ebx*4]
push 0x401
push edx
lea edi, [esi + 0x8dc]
push str.caution:_filename_not_matched:___s_n
push edi
call fcn.004a931b
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov eax, dword [ebp - 0x1c]
mov ecx, 1
jmp 0x46aec7
add dword [esi + 0x9c], ecx
cmp dword [ebp - 4], ecx
jg 0x46aed3
mov dword [ebp - 4], 0xb
add ebx, ecx
cmp ebx, dword [esi + 0x6c]
jb 0x46ae71
push eax
call fcn.004aa14e
add esp, 4
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x46af3d
cmp dword [ebp - 8], 0
je 0x46af34
xor edi, edi
cmp dword [esi + 0x70], edi
jbe 0x46af34
cmp dword [eax + edi*4], 0
jne 0x46af2e
mov ecx, dword [esi + 0xc4]
mov edx, dword [ecx + edi*4]
push 0x401
push edx
lea ebx, [esi + 0x8dc]
push str.caution:_excluded_filename_not_matched:___s_n
push ebx
call fcn.004a931b
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push ebx
push esi
call eax
mov eax, dword [ebp - 0x14]
inc edi
cmp edi, dword [esi + 0x70]
jb 0x46aef7
push eax
call fcn.004aa14e
add esp, 4
cmp dword [ebp - 8], 0
je 0x46b197
cmp dword [ebp - 0x38], 0
je 0x46af9d
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.004a931b
mov ecx, dword [esi + 0x10b54]
add esp, 8
push eax
push edi
push esi
call ecx
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.004a931b
mov edx, dword [esi + 0x10b54]
add esp, 8
push eax
push edi
push esi
call edx
mov edx, dword [ebp - 4]
test edx, edx
jne 0x46afa0
mov dword [ebp - 4], 1
mov edx, dword [ebp - 4]
cmp dword [esi + 0x44], 0
mov ebx, dword [ebp - 0x3c]
je 0x46b12b
mov eax, dword [ebp - 0x30]
mov ecx, dword [esi + 0x38]
sub eax, ebx
cmp ecx, 2
jge 0x46b0f8
test edx, edx
je 0x46aff4
mov eax, str.warning_
cmp edx, 1
je 0x46afd1
mov eax, 0x4ce44c
mov ecx, dword [esi + 0x10904]
push 0
push ecx
push eax
lea edi, [esi + 0x8dc]
push str.At_least_one__serror_was_detected_in__s._n
push edi
call fcn.004a931b
add esp, 0x10
jmp 0x46b088
test eax, eax
jne 0x46b021
push eax
mov eax, dword [esi + 0x10904]
push eax
lea edi, [esi + 0x8dc]
push str.Caution:__zero_files_tested_in__s._n
push edi
call fcn.004a931b
mov ecx, dword [esi + 0x10b54]
add esp, 0xc
push eax
push edi
push esi
call ecx
jmp 0x46b093
cmp dword [esi + 0x74], 0
je 0x46b05a
mov edx, dword [ebp - 0xc]
lea ecx, [ebx + edx]
test ecx, ecx
jne 0x46b05a
mov edx, dword [esi + 0x10904]
push ecx
push edx
lea edi, [esi + 0x8dc]
push str.No_errors_detected_in_compressed_data_of__s._n
push edi
call fcn.004a931b
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
jmp 0x46b093
mov ecx, 0x4ce44c
cmp eax, 1
je 0x46b069
mov ecx, 0x4dfd4c
push 0
push ecx
mov ecx, dword [esi + 0x10904]
push eax
push ecx
lea edi, [esi + 0x8dc]
push str.No_errors_detected_in__s_for_the__lu_file_s_tested._n
push edi
call fcn.004a931b
add esp, 0x14
mov edx, dword [esi + 0x10b54]
push eax
push edi
push esi
call edx
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x46b0c6
mov eax, 0x4ce44c
cmp ecx, 1
je 0x46b0a9
mov eax, 0x4dfd4c
push 0
push eax
push ecx
push str._lu_file_s_skipped_because_of_unsupported_compression_or_encoding._n
push edi
call fcn.004a931b
add esp, 0x10
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
test ebx, ebx
je 0x46b12b
mov eax, 0x4ce44c
cmp ebx, 1
je 0x46b0d9
mov eax, 0x4dfd4c
push 0
push eax
push ebx
push str._lu_file_s_skipped_because_of_incorrect_password._n
push edi
call fcn.004a931b
mov ecx, dword [esi + 0x10b54]
add esp, 0x10
push eax
push edi
push esi
call ecx
jmp 0x46b12b
test ecx, ecx
jne 0x46b12b
test edx, edx
jne 0x46b12b
test eax, eax
jne 0x46b12b
mov edx, dword [esi + 0x10904]
push eax
push edx
lea edi, [esi + 0x8dc]
push str.Caution:__zero_files_tested_in__s._n
push edi
call fcn.004a931b
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x46b14f
cmp dword [ebp - 4], 1
jg 0x46b14f
xor ecx, ecx
cmp ecx, dword [ebp - 0xc]
sbb eax, eax
and eax, 0x46
add eax, 0xb
mov dword [ebp - 4], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, ebx
mov eax, dword [ebp - 4]
jne 0x46b16c
cmp eax, 1
jg 0x46b16c
mov dword [ebp - 4], 0x52
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0xc], 0
jbe 0x46b188
cmp eax, 1
jg 0x46b188
mov dword [ebp - 4], 0x51
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x46b197
test eax, eax
jne 0x46b197
mov dword [ebp - 4], 1
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret