Function at 0x47ac40
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov dword [ebp - 8], 0
cmp dword [ebp + 8], 0
jne 0x47ac5a
xor eax, eax
jmp 0x47b4e8
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 6
ja case.0x47ac6d.4
mov ecx, dword [ebp - 0x4c]
jmp dword [ecx*4 + 0x47b4ec]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x10], edx
mov dword [ebp - 4], 0x10000
cmp dword [ebp - 0x10], 0
jle 0x47af79
cmp dword [ebp - 4], 0
jle 0x47af79
mov eax, dword [0x72cc7c]
mov dword [ebp - 0x14], eax
mov ecx, dword [0x72cc7c]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x10], 0x10000
jle 0x47acb8
mov dword [ebp - 0x50], 0x10000
jmp 0x47acbe
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x50]
push eax
mov ecx, dword [0x72cc7c]
push ecx
call fcn.0047a440
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x47ace4
mov eax, 0x33
jmp 0x47b4e8
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp - 4]
mov dword [ebp - 0x10], edx
mov eax, dword [0x72cc7c]
add eax, dword [ebp - 4]
mov byte [eax], 0
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx]
test edx, edx
je 0x47ad36
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax]
cmp ecx, 0xd
jne 0x47ad18
mov edx, dword [ebp - 0x14]
add edx, 1
mov dword [ebp - 0x14], edx
jmp 0x47ad02
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
jmp 0x47acf8
mov edx, dword [ebp - 0x18]
mov byte [edx], 0
cmp dword [ebp + 0xc], 5
jne 0x47adec
mov eax, dword [0x720b7c]
cmp dword [eax + 0x14], 0
jne 0x47ad7e
xor ecx, ecx
jne 0x47ad66
mov edx, dword [0x720b7c]
mov eax, dword [edx + 0x1c]
shr eax, 6
and eax, 1
je 0x47ada1
mov ecx, dword [0x720b7c]
cmp dword [ecx + 0x10], 0x19
jl 0x47ada1
mov edx, dword [0x720b7c]
cmp dword [edx + 0x10], 0x1a
jg 0x47ada1
mov eax, dword [0x720b7c]
cmp dword [eax + 0x14], 6
je 0x47ada1
mov ecx, dword [0x720b7c]
cmp dword [ecx + 0x14], 0xb
jne 0x47adb6
mov edx, dword [0x720b7c]
cmp dword [edx + 0x10], 0x32
jne 0x47adb6
mov eax, dword [0x72cc7c]
push eax
mov ecx, dword [0x72cc7c]
push ecx
call dword [sym.imp.USER32.dll_OemToCharA]
jmp 0x47add9
mov edx, dword [0x72cc7c]
cmp edx, dword [0x72cc7c]
je 0x47add9
mov eax, dword [0x72cc7c]
push eax
mov ecx, dword [0x72cc7c]
push ecx
call fcn.00532580
add esp, 8
mov edx, dword [0x72cc7c]
push edx
mov eax, dword [0x72cc7c]
push eax
call dword [sym.imp.USER32.dll_CharToOemA]
mov ecx, dword [0x72cc7c]
sub ecx, 1
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], 0x720b80
mov edx, dword [ebp - 0x14]
add edx, 1
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax]
test ecx, ecx
je 0x47af55
mov dword [ebp - 0x1c], 0
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx]
cmp eax, 0x1b
jne 0x47ae4b
mov ecx, dword [ebp - 0x18]
mov byte [ecx], 0x5e
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov byte [eax], 0x5b
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
jmp 0x47aef0
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx]
cmp eax, 0x13
jne 0x47aedd
mov dword [ebp - 0x1c], 1
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + 1]
cmp edx, 0xa
jne 0x47ae8b
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
jmp 0x47aedb
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + 1]
cmp eax, 0xd
jne 0x47aedb
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + 2]
cmp edx, 0xa
jne 0x47aedb
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x14]
add edx, 1
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
jmp 0x47aef0
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
sub edx, 0x720b80
cmp edx, 0x7ffd
ja 0x47af07
cmp dword [ebp - 0x1c], 0
je 0x47af50
push 0
mov eax, dword [ebp - 0x18]
sub eax, 0x720b80
push eax
push 0x720b80
push 0x7202c0
call dword [0x72cdc8]
add esp, 0x10
mov dword [ebp - 0x18], 0x720b80
cmp dword [ebp - 0x1c], 0
je 0x47af50
cmp dword [0x720348], 0
je 0x47af50
push 0
push str.____Press__Q_to_quit__or_any_other_key_to_continue____
push 0x7202c0
call dword [0x72cdd0]
add esp, 0xc
jmp 0x47adff
push 0
mov ecx, dword [ebp - 0x18]
sub ecx, 0x720b80
push ecx
push 0x720b80
push 0x7202c0
call dword [0x72cdc8]
add esp, 0x10
jmp 0x47ac81
push 0x40
push 0
push 0x720b80
push 0x7202c0
call dword [0x72cdc8]
add esp, 0x10
jmp case.0x47ac6d.4
xor edx, edx
mov word [ebp - 0xc], dx
cmp dword [ebp + 8], 0x104
jb 0x47afe9
push 0x401
push str.warning:__filename_too_long__truncating._n
push 0x720b80
call fcn.00532706
add esp, 8
push eax
push 0x720b80
push 0x7202c0
call dword [0x72cdc8]
add esp, 0x10
mov dword [ebp - 8], 1
mov eax, dword [ebp + 8]
sub eax, 0x103
mov word [ebp - 0xc], ax
mov dword [ebp + 8], 0x103
mov ecx, dword [ebp + 8]
push ecx
push 0x72cc90
call fcn.0047a440
add esp, 8
test eax, eax
jne 0x47b008
mov eax, 0x33
jmp 0x47b4e8
mov edx, dword [ebp + 8]
mov byte [edx + 0x72cc90], 0
mov eax, dword [0x720b7c]
cmp dword [eax + 0x14], 0
jne 0x47b04b
cmp dword [ebp + 0xc], 6
je 0x47b034
mov ecx, dword [0x720b7c]
mov edx, dword [ecx + 0x1c]
shr edx, 6
and edx, 1
je 0x47b06e
mov eax, dword [0x720b7c]
cmp dword [eax + 0x10], 0x19
jl 0x47b06e
mov ecx, dword [0x720b7c]
cmp dword [ecx + 0x10], 0x1a
jg 0x47b06e
mov edx, dword [0x720b7c]
cmp dword [edx + 0x14], 6
je 0x47b06e
mov eax, dword [0x720b7c]
cmp dword [eax + 0x14], 0xb
jne 0x47b080
mov ecx, dword [0x720b7c]
cmp dword [ecx + 0x10], 0x32
jne 0x47b080
push 0x72cc90
push 0x72cc90
call dword [sym.imp.USER32.dll_OemToCharA]
jmp 0x47b09f
mov edx, 0x72cc90
cmp edx, 0x72cc90
je 0x47b09f
push 0x72cc90
push 0x72cc90
call fcn.00532580
add esp, 8
mov eax, dword [0x720b7c]
mov ecx, dword [eax + 0x1c]
shr ecx, 4
and ecx, 1
je 0x47b16f
mov dword [ebp - 0x20], 0x72cc90
mov dword [ebp - 0x28], 0x72cc90
mov edx, dword [ebp - 0x20]
mov al, byte [edx]
mov byte [ebp - 0x29], al
movsx ecx, byte [ebp - 0x29]
test ecx, ecx
je 0x47b169
call fcn.00536952
push eax
mov edx, dword [ebp - 0x20]
push edx
call fcn.00536589
add esp, 8
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 1
jbe 0x47b120
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
sub ecx, 1
mov dword [ebp - 0x24], ecx
test eax, eax
je 0x47b11e
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov cl, byte [eax]
mov byte [edx], cl
mov edx, dword [ebp - 0x28]
add edx, 1
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
jmp 0x47b0f0
jmp 0x47b164
movsx ecx, byte [ebp - 0x29]
push ecx
call fcn.005355e9
add esp, 4
test eax, eax
je 0x47b143
movsx edx, byte [ebp - 0x29]
push edx
call fcn.00535a59
add esp, 4
mov dword [ebp - 0x54], eax
jmp 0x47b14a
movsx eax, byte [ebp - 0x29]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x28]
mov dl, byte [ebp - 0x54]
mov byte [ecx], dl
mov eax, dword [ebp - 0x28]
add eax, 1
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x20]
add ecx, 1
mov dword [ebp - 0x20], ecx
jmp 0x47b0c1
mov edx, dword [ebp - 0x28]
mov byte [edx], 0
mov eax, dword [0x720b7c]
mov ecx, dword [eax + 0x1c]
shr ecx, 5
and ecx, 1
je 0x47b1b8
cmp dword [ebp + 8], 8
jbe 0x47b1b8
movsx edx, byte [0x72cc98]
cmp edx, 0x2e
jne 0x47b1b8
mov dword [ebp - 0x30], 0x72cc98
mov eax, dword [ebp - 0x30]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
test ecx, ecx
je 0x47b1b8
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx]
mov byte [eax - 1], dl
jmp 0x47b198
movzx eax, word [ebp - 0xc]
test eax, eax
jne 0x47b1c5
jmp case.0x47ac6d.4
push 0x401
push 0x724b80
push 0x72cc90
call fcn.0047a220
add esp, 8
push eax
push str.___s___n
push 0x720b80
call fcn.00532706
add esp, 0xc
push eax
push 0x720b80
push 0x7202c0
call dword [0x72cdc8]
add esp, 0x10
movzx ecx, word [ebp - 0xc]
mov dword [ebp + 8], ecx
mov edx, dword [0x72cbb4]
sub edx, dword [0x72cbb8]
mov eax, dword [0x72cb8c]
sub eax, dword [0x72cb88]
add edx, dword [ebp + 8]
add eax, edx
add eax, dword [0x72cbb8]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x3c]
and ecx, 0x80001fff
jns 0x47b242
dec ecx
or ecx, 0xffffe000
inc ecx
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0x3c]
sub edx, dword [ebp - 0x34]
mov dword [ebp - 0x38], edx
cmp dword [ebp - 0x3c], 0
jge 0x47b296
push 1
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
mov eax, dword [0x72cba8]
push eax
push str.error___s_:__attempt_to_seek_before_beginning_of_zipfile_n_s
push 0x720b80
call fcn.00532706
add esp, 0x10
push eax
push 0x720b80
push 0x7202c0
call dword [0x72cdc8]
add esp, 0x10
mov eax, 3
jmp 0x47b4e8
mov ecx, dword [ebp - 0x38]
cmp ecx, dword [0x72cbb4]
je 0x47b30b
push 0
mov edx, dword [ebp - 0x38]
push edx
mov eax, dword [0x72cbac]
push eax
call fcn.0053b3c3
add esp, 0xc
mov dword [0x72cbb4], eax
push 0x2000
mov ecx, dword [0x72cb88]
push ecx
mov edx, dword [0x72cbac]
push edx
call fcn.0053b251
add esp, 0xc
mov dword [0x72cb90], eax
cmp dword [0x72cb90], 0
jg 0x47b2ed
mov eax, 0x33
jmp 0x47b4e8
mov eax, dword [0x72cb88]
add eax, dword [ebp - 0x34]
mov dword [0x72cb8c], eax
mov ecx, dword [0x72cb90]
sub ecx, dword [ebp - 0x34]
mov dword [0x72cb90], ecx
jmp 0x47b333
mov edx, dword [0x72cb8c]
sub edx, dword [0x72cb88]
sub edx, dword [ebp - 0x34]
add edx, dword [0x72cb90]
mov dword [0x72cb90], edx
mov eax, dword [0x72cb88]
add eax, dword [ebp - 0x34]
mov dword [0x72cb8c], eax
jmp case.0x47ac6d.4
cmp dword [0x72cbbc], 0
je 0x47b350
mov ecx, dword [0x72cbbc]
push ecx
call fcn.00532828
add esp, 4
mov edx, dword [ebp + 8]
push edx
call fcn.005324a9
add esp, 4
mov dword [0x72cbbc], eax
cmp dword [0x72cbbc], 0
jne 0x47b4c7
push 0x401
mov eax, dword [ebp + 8]
push eax
push str.warning:__extra_field_too_long___d_.__Ignoring..._n
push 0x720b80
call fcn.00532706
add esp, 0xc
push eax
push 0x720b80
push 0x7202c0
call dword [0x72cdc8]
add esp, 0x10
mov ecx, dword [0x72cbb4]
sub ecx, dword [0x72cbb8]
mov edx, dword [0x72cb8c]
sub edx, dword [0x72cb88]
add ecx, dword [ebp + 8]
add edx, ecx
add edx, dword [0x72cbb8]
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0x48]
and eax, 0x80001fff
jns 0x47b3d4
dec eax
or eax, 0xffffe000
inc eax
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x48]
sub ecx, dword [ebp - 0x40]
mov dword [ebp - 0x44], ecx
cmp dword [ebp - 0x48], 0
jge 0x47b429
push 1
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
mov edx, dword [0x72cba8]
push edx
push str.error___s_:__attempt_to_seek_before_beginning_of_zipfile_n_s
push 0x720b80
call fcn.00532706
add esp, 0x10
push eax
push 0x720b80
push 0x7202c0
call dword [0x72cdc8]
add esp, 0x10
mov eax, 3
jmp 0x47b4e8
mov eax, dword [ebp - 0x44]
cmp eax, dword [0x72cbb4]
je 0x47b49b
push 0
mov ecx, dword [ebp - 0x44]
push ecx
mov edx, dword [0x72cbac]
push edx
call fcn.0053b3c3
add esp, 0xc
mov dword [0x72cbb4], eax
push 0x2000
mov eax, dword [0x72cb88]
push eax
mov ecx, dword [0x72cbac]
push ecx
call fcn.0053b251
add esp, 0xc
mov dword [0x72cb90], eax
cmp dword [0x72cb90], 0
jg 0x47b47d
mov eax, 0x33
jmp 0x47b4e8
mov edx, dword [0x72cb88]
add edx, dword [ebp - 0x40]
mov dword [0x72cb8c], edx
mov eax, dword [0x72cb90]
sub eax, dword [ebp - 0x40]
mov dword [0x72cb90], eax
jmp 0x47b4c5
mov ecx, dword [0x72cb8c]
sub ecx, dword [0x72cb88]
sub ecx, dword [ebp - 0x40]
add ecx, dword [0x72cb90]
mov dword [0x72cb90], ecx
mov edx, dword [0x72cb88]
add edx, dword [ebp - 0x40]
mov dword [0x72cb8c], edx
jmp case.0x47ac6d.4
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [0x72cbbc]
push ecx
call fcn.0047a440
add esp, 8
test eax, eax
jne case.0x47ac6d.4
mov eax, 0x33
jmp 0x47b4e8
mov eax, dword [ebp - 8]
mov esp, ebp
pop ebp
ret