Function at 0x14015e4b0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
mov dword [rsp + 8], ecx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov ebp, dword [rsp + 0xb0]
xor r12d, r12d
mov r15, r9
mov r13, r8
mov r14, rdx
test ecx, ecx
je 0x14015ee64
inc dword [r14]
lea rdx, [0x1403a7170]
mov rsi, qword [0x1404971d8]
mov eax, r12d
imul rcx, rax, 0x38
add rcx, rdx
mov qword [0x140487170], rcx
mov rcx, qword [rcx]
add rsi, rcx
mov rax, rsi
mov rbx, rsi
cqo
and edx, 0x1fff
add rax, rdx
and eax, 0x1fff
sub rax, rdx
sub rbx, rax
mov rdi, rax
test rsi, rsi
jns 0x14015e64d
mov r8, qword [0x1404971b8]
lea r9, 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
lea rdx, str.error___s_:__attempt_to_seek_before_beginning_of_zipfile_n_s
lea rcx, [0x140487178]
call fcn.1400e1500
lea rsi, [0x1403a7080]
mov r8d, eax
mov rcx, rsi
lea rdx, [0x140487178]
mov r9d, 0x401
call qword [0x140497538]
cmp dword [r14], 1
mov ebp, 2
jne 0x14015e643
cmp qword [0x1404971d8], 0
je 0x14015e643
lea rdx, str.___attempting_to_re_compensate__n
lea rcx, [0x140487178]
call fcn.1400e1500
mov r8d, eax
lea rdx, [0x140487178]
mov r9d, 0x401
mov rcx, rsi
call qword [0x140497538]
mov rax, qword [0x1404971d8]
mov qword [r15], rax
mov rax, qword [0x140487170]
mov qword [0x1404971d8], 0
mov rsi, qword [rax]
mov rax, rsi
mov rbx, rsi
cqo
and edx, 0x1fff
add rax, rdx
and eax, 0x1fff
sub rax, rdx
sub rbx, rax
mov rdi, rax
test rsi, rsi
jns 0x14015e64d
mov r8, qword [0x1404971b8]
lea r9, 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
lea rdx, str.error___s_:__attempt_to_seek_before_beginning_of_zipfile_n_s
lea rcx, [0x140487178]
call fcn.1400e1500
lea rcx, [0x1403a7080]
lea rdx, [0x140487178]
mov r9d, 0x401
mov r8d, eax
call qword [0x140497538]
mov ebp, 3
jmp case.0x14015ef7d.110
cmp rbx, qword [0x1404971d0]
je 0x14015e6ce
mov ecx, dword [0x1404971c0]
xor r8d, r8d
mov rdx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__lseeki64]
mov rdx, qword [0x140497188]
mov r8d, 0x2000
mov ecx, dword [0x1404971c0]
mov qword [0x1404971d0], rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__read]
mov dword [0x140497198], eax
mov ecx, eax
test eax, eax
jg 0x14015e6ba
mov dword [rsp + 0x20], ebx
lea r9, str.lseek
mov r8d, dword [r14]
lea rdx, str.file__lu:__bad_zipfile_offset___s_:___ld_n
lea rcx, [0x140487178]
call fcn.1400e1500
jmp 0x14015e626
movsxd rax, edi
add rax, qword [0x140497188]
sub ecx, edi
mov dword [0x140497198], ecx
jmp 0x14015e6ec
mov eax, dword [0x140497190]
sub eax, dword [0x140497188]
sub eax, edi
add dword [0x140497198], eax
movsxd rax, edi
add rax, qword [0x140497188]
mov edx, 4
mov qword [0x140497190], rax
lea rcx, [0x1403a7160]
call fcn.14011e860
test eax, eax
jne 0x14015e715
mov dword [rsp + 0x20], esi
lea r9, [0x14025c6c0]
jmp 0x14015e69f
mov eax, dword [0x1403a7160]
cmp eax, dword [0x1403627c8]
je 0x14015e858
mov r8d, dword [r14]
lea r9, str.local_header_sig
lea rdx, str.file__lu:__bad_zipfile_offset___s_:___ld_n
mov dword [rsp + 0x20], esi
lea rcx, [0x140487178]
call fcn.1400e1500
lea rdi, [0x1403a7080]
mov r8d, eax
mov rcx, rdi
lea rdx, [0x140487178]
mov r9d, 0x401
call qword [0x140497538]
cmp dword [r14], 1
mov ebp, 2
jne 0x14015e77f
cmp qword [0x1404971d8], 0
jne 0x14015e797
jmp 0x14015e78d
cmp qword [0x1404971d8], 0
jne case.0x14015ef7d.110
cmp qword [r15], 0
je case.0x14015ef7d.110
lea rdx, str.___attempting_to_re_compensate__n
lea rcx, [0x140487178]
call fcn.1400e1500
mov r8d, eax
lea rdx, [0x140487178]
mov r9d, 0x401
mov rcx, rdi
call qword [0x140497538]
mov rax, qword [0x1404971d8]
test rax, rax
je 0x14015e7df
mov qword [r15], rax
mov qword [0x1404971d8], 0
jmp 0x14015e7e9
mov rax, qword [r15]
mov qword [0x1404971d8], rax
mov rcx, qword [0x140487170]
mov rcx, qword [rcx]
call fcn.14011ea90
test eax, eax
jne 0x14015e826
lea edx, [rax + 4]
lea rcx, [0x1403a7160]
call fcn.14011e860
test eax, eax
je 0x14015e82f
mov eax, dword [0x1403a7160]
cmp eax, dword [0x1403627c8]
je 0x14015e85f
lea r9, str.local_header_sig
jmp 0x14015e836
cmp eax, 3
je 0x14015e643
lea r9, [0x14025c6c0]
mov r8d, dword [r14]
lea rdx, str.file__lu:__bad_zipfile_offset___s_:___ld_n
lea rcx, [0x140487178]
mov dword [rsp + 0x20], esi
call fcn.1400e1500
mov rcx, rdi
jmp 0x14015e62d
lea rdi, [0x1403a7080]
call fcn.1401180a0
mov ebx, eax
test eax, eax
je 0x14015e8a0
mov r8d, dword [r14]
lea rdx, str.file__lu:__bad_local_header_n
lea rcx, [0x140487178]
call fcn.1400e1500
mov r8d, eax
lea rdx, [0x140487178]
mov r9d, 0x421
mov rcx, rdi
call qword [0x140497538]
mov ebp, ebx
jmp case.0x14015ef7d.110
mov rcx, qword [0x140487170]
movzx eax, word [0x14049720a]
shr eax, 0xb
and eax, 1
mov ebx, dword [rcx + 0x28]
shr ebx, 7
and ebx, 1
cmp eax, ebx
je 0x14015e921
cmp dword [0x1403a70c4], 0
jne 0x14015e916
mov rcx, qword [rcx + 0x30]
lea rdx, [0x14048f178]
mov r8d, 0x4000
call fcn.1401608c0
mov r8d, dword [r14]
lea rdx, str.file__lu___s_:_n_________mismatch_between_local_and_central_GPF_bit_11___UTF_8____n_________continuing_with_central_flag__IsUTF8___d__n
mov r9, rax
mov dword [rsp + 0x20], ebx
lea rcx, [0x140487178]
call fcn.1400e1500
mov r8d, eax
lea rdx, [0x140487178]
mov r9d, 0x421
mov rcx, rdi
call qword [0x140497538]
cmp ebp, 1
mov eax, 1
cmovl ebp, eax
movzx ecx, word [0x14049720e]
mov edx, 6
call fcn.14011d360
test eax, eax
je 0x14015e994
cmp eax, ebp
cmovg ebp, eax
cmp eax, 1
jle 0x14015e994
mov r8d, 0x4000
lea rdx, [0x14048f178]
lea rcx, [0x14049731c]
call fcn.1401608c0
lea rdx, str._s:__bad_filename_length___s__n
lea r9, str.local
mov r8, rax
lea rcx, [0x140487178]
call fcn.1400e1500
mov rcx, rdi
lea rdx, [0x140487178]
mov r9d, 0x401
mov r8d, eax
call qword [0x140497538]
jmp case.0x14015ef7d.110
mov rcx, qword [0x1404971e0]
test rcx, rcx
je 0x14015e9b1
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [0x1404971e0], 0
movzx ecx, word [0x140497210]
mov edx, 3
call fcn.14011d360
test eax, eax
je 0x14015e9f5
cmp eax, ebp
cmovg ebp, eax
cmp eax, 1
jle 0x14015e9f5
mov r8d, 0x4000
lea rdx, [0x14048f178]
lea rcx, [0x14049731c]
call fcn.1401608c0
lea rdx, str._s:__bad_extra_field_length___s__n
jmp 0x14015e960
mov rax, qword [0x140487170]
mov rcx, qword [rax + 0x30]
test rcx, rcx
je 0x14015eaec
lea rsi, [0x14049731c]
mov r8, rsi
sub r8, rcx
nop word [rax + rax]
movzx edx, byte [rcx]
movzx eax, byte [rcx + r8]
sub edx, eax
jne 0x14015ea33
inc rcx
test eax, eax
jne 0x14015ea20
test edx, edx
je 0x14015eacc
mov r8d, 0x4000
lea rdx, [0x14048f178]
mov rcx, rsi
call fcn.1401608c0
mov rcx, qword [0x140487170]
lea rdx, [0x140493178]
mov r8d, 0x4000
mov rbx, rax
mov rcx, qword [rcx + 0x30]
call fcn.1401608c0
mov r8, rax
lea rdx, str._s:__mismatching__local__filename___s___n_________continuing_with__central__filename_version_n
mov r9, rbx
lea rcx, [0x140487178]
call fcn.1400e1500
mov r8d, eax
lea rdx, [0x140487178]
mov r9d, 0x401
mov rcx, rdi
call qword [0x140497538]
mov rax, qword [0x140487170]
mov rdx, rsi
mov rcx, qword [rax + 0x30]
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
mov byte [rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x14015eab0
cmp ebp, 1
mov eax, 1
cmovl ebp, eax
mov rcx, qword [0x140487170]
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, qword [0x140487170]
mov qword [rax + 0x30], 0
cmp word [0x14049720c], 0
jne 0x14015ebb4
mov rax, qword [0x140487170]
mov rsi, qword [0x1404971f0]
test byte [rax + 0x28], 1
je 0x14015eb12
sub rsi, 0xc
cmp qword [0x1404971f8], rsi
je 0x14015ebb4
lea r8, [0x140204438]
xor edx, edx
mov rcx, rsi
call fcn.14011df90
mov rcx, qword [0x1404971f8]
lea r8, [0x140204438]
xor edx, edx
mov rdi, rax
call fcn.14011df90
mov r8d, 0x4000
lea rdx, [0x14048f178]
lea rcx, [0x14049731c]
mov rbx, rax
call fcn.1401608c0
mov r8, rax
mov qword [rsp + 0x20], rdi
mov r9, rbx
lea rdx, str._s:__ucsize__s____csize__s_for_STORED_entry_n_________continuing_with__compressed__size_value_n
lea rcx, [0x140487178]
call fcn.1400e1500
lea rdi, [0x1403a7080]
mov r8d, eax
mov rcx, rdi
lea rdx, [0x140487178]
mov r9d, 0x401
call qword [0x140497538]
cmp ebp, 1
mov qword [0x1404971f8], rsi
mov eax, 1
cmovl ebp, eax
mov rax, qword [0x140487170]
test byte [rax + 0x28], 1
je 0x14015ec71
mov rcx, qword [0x1403a7088]
call fcn.140163290
test eax, eax
je 0x14015ec71
cmp eax, 1
jne 0x14015ec38
cmp dword [0x1403a70c4], 0
jne 0x14015ec2f
mov r8d, 0x4000
lea rdx, [0x14048f178]
lea rcx, [0x14049731c]
call fcn.1401608c0
mov r8, rax
lea rdx, str.___skipping:___22s__incorrect_password_n
lea rcx, [0x140487178]
call fcn.1400e1500
mov r8d, eax
lea rdx, [0x140487178]
mov r9d, 0x401
mov rcx, rdi
call qword [0x140497538]
inc dword [r13]
jmp case.0x14015ef7d.110
cmp eax, ebp
lea rdx, [0x14048f178]
mov r8d, 0x4000
lea rcx, [0x14049731c]
cmovg ebp, eax
call fcn.1401608c0
mov r8, rax
lea rdx, str.___skipping:___22s__unable_to_get_password_n
lea rcx, [0x140487178]
call fcn.1400e1500
jmp 0x14015e976
cmp dword [0x1403a70d0], 0
jne case.0x14015ef7d.89
cmp dword [0x1403a709c], 0
jne case.0x14015ef7d.89
xor edi, edi
lea rsi, [0x1403a7080]
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [0x140487170]
lea rbx, [0x14049731c]
cmp byte [rax + 0x21], 0
jne 0x14015ed48
mov edx, 0x2f
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbschr]
test rax, rax
jne 0x14015ed48
cmp byte [0x14049731c], al
je 0x14015ed41
lea r15d, [rax + 1]
cmp byte [rbx], 0x5c
jne 0x14015ed28
cmp dword [0x1404972d4], 0
jne 0x14015ed25
mov r8, qword [0x1404971b8]
lea rdx, str.warning:___s_appears_to_use_backslashes_as_path_separators_n
lea rcx, [0x140487178]
call fcn.1400e1500
mov r8d, eax
lea rdx, [0x140487178]
mov r9d, 0x21
mov rcx, rsi
call qword [0x140497538]
test ebp, ebp
mov dword [0x1404972d4], r15d
cmove ebp, r15d
mov byte [rbx], 0x2f
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsinc]
mov rbx, rax
cmp byte [rax], 0
jne 0x14015ecd7
mov r15, qword [rsp + 0x98]
lea rbx, [0x14049731c]
test edi, edi
jne 0x14015edc7
cmp byte [0x14049731c], 0x2f
jne 0x14015edc7
mov r8d, 0x4000
lea rdx, [0x14048f178]
mov rcx, rbx
call fcn.1401608c0
mov r8, rax
lea rdx, str.warning:__stripped_absolute_path_spec_from__s_n
lea rcx, [0x140487178]
call fcn.1400e1500
mov r8d, eax
lea rdx, [0x140487178]
mov r9d, 0x401
mov rcx, rsi
call qword [0x140497538]
test ebp, ebp
mov eax, 1
cmove ebp, eax
lea rcx, [0x14049731d]
nop word [rax + rax]
movzx eax, byte [rcx]
mov byte [rcx - 1], al
lea rcx, [rcx + 1]
test al, al
jne 0x14015edb0
cmp byte [0x14049731c], 0x2f
je 0x14015eda3
mov ecx, edi
call fcn.140120b10
mov ecx, eax
and ecx, 0xffff80ff
je 0x14015eddd
cmp ebp, ecx
cmovl ebp, ecx
and eax, 0x7f00
cmp eax, 0x100
jg 0x14015f0d3
mov rcx, rbx
call fcn.14011d190
cmp eax, 0xffffffff
je 0x14015f0b9
test eax, eax
je 0x14015ee7e
cmp eax, 1
jne case.0x14015ef7d.89
mov ecx, dword [0x1403a7098]
mov eax, dword [0x1403a711c]
test ecx, ecx
jne 0x14015ee1c
cmp eax, 2
je case.0x14015ef7d.110
cmp dword [0x1403a70d8], 0
je 0x14015ee29
test edi, edi
je case.0x14015ef7d.110
cmp eax, 1
je case.0x14015ef7d.89
test ecx, ecx
je 0x14015ee97
mov dword [0x1404972d8], 0
call fcn.14015fd40
test eax, eax
je case.0x14015ef7d.110
cmp eax, ebp
cmovg ebp, eax
cmp dword [0x1404972d8], 1
jg 0x14015ee64
inc r12d
cmp r12d, dword [rsp + 0x80]
jb 0x14015e4e8
mov eax, ebp
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp dword [0x1403a7098], 0
jne case.0x14015ef7d.89
mov eax, dword [0x1403a711c]
cmp eax, 2
je case.0x14015ef7d.110
cmp eax, 1
je case.0x14015ef7d.89
lea rdi, [0x14049731c]
mov ebx, 1
nop dword [rax]
nop word [rax + rax]
mov r8d, 0x4000
lea rdx, [0x14048f178]
mov rcx, rdi
call fcn.1401608c0
mov r8, rax
lea rdx, str.replace__s___y_es___n_o___A_ll___N_one___r_ename:
lea rcx, [0x140487178]
call fcn.1400e1500
mov r8d, eax
lea rdx, [0x140487178]
mov r9d, 0x81
mov rcx, rsi
call qword [0x140497538]
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov edx, 0xa
lea rcx, [0x1403a7164]
mov r8, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgets]
test rax, rax
jne 0x14015ef4e
lea rdx, str._NULL_n_EOF_or_read_error__treating_as___N_one__...__n
lea rcx, [0x140487178]
call fcn.1400e1500
mov r8d, eax
lea rdx, [0x140487178]
mov r9d, ebx
mov rcx, rsi
call qword [0x140497538]
test ebp, ebp
mov al, 0x4e
mov byte [0x1403a7164], al
cmove ebp, ebx
jmp 0x14015ef55
movzx eax, byte [0x1403a7164]
movsx eax, al
add eax, 0xfffffff6
cmp eax, 0x6f
ja case.0x14015ef7d.11
lea r8, [0x140000000]
cdqe
movzx eax, byte [r8 + rax + 0x15f1f0]
mov ecx, dword [r8 + rax*4 + 0x15f1d4]
add rcx, r8
jmp rcx
xor ecx, ecx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx + r8 + 0x281da8]
mov byte [rcx + rsi + 0xe4], al
lea rcx, [rcx + 1]
test al, al
jne 0x14015ef90
or rbx, 0xffffffffffffffff
lea rax, [0x1403a7164]
inc rbx
cmp byte [rax + rbx], 0
jne 0x14015efb3
mov rdx, rbx
mov rcx, rax
call fcn.14011e800
cmp byte [rax], 0xa
jne 0x14015efd4
mov byte [rsi + rbx + 0xe3], 0
lea r8, [0x1403a7164]
lea rdx, str.error:__invalid_response___s__n
lea rcx, [0x140487178]
call fcn.1400e1500
mov ebx, 1
lea rdx, [0x140487178]
mov r9d, ebx
mov r8d, eax
mov rcx, rsi
call qword [0x140497538]
jmp 0x14015eeb0
lea rdx, str.new_name:
lea rcx, [0x140487178]
call fcn.1400e1500
mov r8d, eax
lea rdx, [0x140487178]
mov r9d, 0x81
mov rcx, rsi
call qword [0x140497538]
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov edx, 0x104
mov rcx, rdi
mov r8, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgets]
or rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp byte [rdi + rbx], 0
jne 0x14015f060
mov rdx, rbx
mov rcx, rdi
call fcn.14011e800
cmp byte [rax], 0xa
jne 0x14015f084
dec rbx
mov byte [rbx + rsi + 0xf029c], 0
test rbx, rbx
je case.0x14015ef7d.82
mov rdx, rdi
mov rcx, rdi
call qword [sym.imp.USER32.dll_OemToCharA]
mov edi, 1
jmp 0x14015eca0
mov dword [0x1403a711c], ebx
jmp case.0x14015ef7d.89
mov dword [0x1403a711c], 2
jmp case.0x14015ef7d.110
cmp dword [0x1403a70a8], 0
je case.0x14015ef7d.89
test edi, edi
jne case.0x14015ef7d.89
jmp case.0x14015ef7d.110
cmp eax, 0x1000
jne 0x14015f159
lea rcx, [rsp + 0x30]
call fcn.140120240
mov rcx, qword [rsp + 0x30]
test rcx, rcx
jne 0x14015f134
test eax, eax
je case.0x14015ef7d.110
lea rdx, str.warning:__cannot_alloc_memory_for_dir_times_permissions_UID_GID_n
lea rcx, [0x140487178]
call fcn.1400e1500
mov r8d, eax
lea rdx, [0x140487178]
mov r9d, 0x401
mov rcx, rsi
call qword [0x140497538]
test ebp, ebp
jne case.0x14015ef7d.110
mov ebp, 1
jmp case.0x14015ef7d.110
mov rdx, qword [rsp + 0xa8]
mov rax, qword [rdx]
mov qword [rcx], rax
mov rax, qword [rsp + 0x30]
mov qword [rdx], rax
mov rax, qword [rsp + 0xa0]
inc dword [rax]
jmp case.0x14015ef7d.110
cmp eax, 0x1100
jne 0x14015f1b3
cmp dword [0x1403a70cc], 0
lea rax, str.hard_disk
lea rbx, [0x1402b3878]
mov r8d, 0x4000
lea rdx, [0x14048f178]
cmovne rbx, rax
lea rcx, [0x14049731c]
call fcn.1401608c0
mov r8, rax
lea rdx, str.___skipping:___22s___svolume_label_n
mov r9, rbx
lea rcx, [0x140487178]
call fcn.1400e1500
mov rcx, rsi
jmp 0x14015e979
cmp eax, 0x200
jle case.0x14015ef7d.110
cmp ebp, 2
jge case.0x14015ef7d.110
mov ebp, 2
jmp case.0x14015ef7d.110