Function at 0x1400187f0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x48
mov rbx, rcx
xor ebp, ebp
mov ecx, 0x4000
mov qword [rsp + 0x88], rbp
mov edi, ebp
call fcn.140022488
mov rsi, rax
test rax, rax
jne 0x14001882a
lea eax, [rbp + 4]
add rsp, 0x48
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r13
or rcx, 0xffffffffffffffff
cmp dword [0x140057994], edi
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r15
je 0x140018862
mov rax, qword [0x140057910]
cmp dword [0x140057920], edi
cmove rax, rcx
mov qword [0x140057910], rax
cmp dword [0x1400578c8], 2
jne 0x14001888e
cmp rbx, 0xfffffffffffffffe
jne 0x14001888e
mov rcx, qword [0x140057a10]
call fcn.140026b84
mov dword [rsp + 0x78], ebp
mov edi, 1
mov qword [rsp + 0x88], rax
movzx r12d, byte [rsp + 0x7b]
movzx r13d, byte [rsp + 0x7a]
movzx r14d, byte [rsp + 0x79]
movsxd rdi, edi
mov dword [0x1400578f0], ebp
mov r15, rbp
mov qword [rsp + 0x80], rdi
test rdi, rdi
jne 0x1400188dc
cmp rbx, 0xffffffffffffffff
je 0x1400188dc
cmp r15, rbx
jae 0x140019083
mov edi, 0x4000
mov rax, rbx
sub rax, r15
cmp rax, rdi
cmovb rdi, rax
jmp 0x1400188e1
mov edi, 0x4000
mov rcx, qword [0x140057a10]
call fcn.140026b84
mov r9, qword [0x140057a10]
mov r8, rdi
mov edx, 1
mov rcx, rsi
mov rbp, rax
call fcn.140026874
mov rbx, rax
test rax, rax
je 0x140019056
mov rdi, qword [rsp + 0x80]
test rdi, rdi
je 0x140018cca
xor eax, eax
mov dword [0x1400578f4], eax
mov qword [0x1400578f8], rax
mov qword [0x140057900], rax
cmp byte [rsi], 0x50
jne 0x140018c47
cmp byte [rsi + 1], 0x4b
jne 0x140018c47
cmp byte [rsi + 2], 7
jne 0x140018c47
cmp byte [rsi + 3], 8
jne 0x140018c47
cmp dword [0x1400579a0], eax
mov dword [0x1400578f0], eax
je 0x140018b29
cmp rbx, 0x18
jb 0x140018cd3
movzx eax, byte [rsi + 7]
shl ax, 8
movzx edx, ax
movzx eax, byte [rsi + 6]
or edx, eax
movzx eax, byte [rsi + 5]
shl ax, 8
shl edx, 0x10
movzx ecx, ax
movzx eax, byte [rsi + 4]
or edx, ecx
or edx, eax
mov dword [0x1400578f4], edx
movzx eax, byte [rsi + 0xf]
shl ax, 8
movzx edi, ax
movzx eax, byte [rsi + 0xe]
or edi, eax
movzx eax, byte [rsi + 0xd]
shl ax, 8
shl edi, 0x10
movzx eax, ax
or rdi, rax
movzx eax, byte [rsi + 0xc]
or rdi, rax
movzx eax, byte [rsi + 0xb]
shl ax, 8
shl rdi, 0x20
movzx ecx, ax
movzx eax, byte [rsi + 0xa]
or eax, ecx
shl eax, 0x10
or rdi, rax
movzx eax, byte [rsi + 9]
shl ax, 8
movzx ecx, ax
movzx eax, byte [rsi + 8]
or rdi, rcx
or rdi, rax
mov qword [0x1400578f8], rdi
movzx eax, byte [rsi + 0x17]
shl ax, 8
movzx edx, ax
movzx eax, byte [rsi + 0x16]
or edx, eax
movzx eax, byte [rsi + 0x15]
shl ax, 8
shl edx, 0x10
movzx eax, ax
or rdx, rax
movzx eax, byte [rsi + 0x14]
or rdx, rax
movzx eax, byte [rsi + 0x13]
shl ax, 8
shl rdx, 0x20
movzx ecx, ax
movzx eax, byte [rsi + 0x12]
or eax, ecx
shl eax, 0x10
or rdx, rax
movzx eax, byte [rsi + 0x11]
shl ax, 8
movzx ecx, ax
movzx eax, byte [rsi + 0x10]
or rdx, rcx
mov rcx, qword [0x140057a10]
or rdx, rax
mov rax, rbp
sub rax, qword [rsp + 0x88]
mov qword [0x140057900], rdx
cmp rax, rdi
je 0x140018ad4
lea rdx, [rbp + 4]
xor r8d, r8d
call fcn.140021734
test eax, eax
je 0x140018aa2
lea rdx, str.seek_failed_reading_descriptor
mov ecx, 0xb
call fcn.140001310
xor r9d, r9d
mov rcx, rsi
lea edx, [r9 + 1]
lea r8d, [r9 + 4]
call fcn.1400143b0
cmp rax, 4
jne 0x140018fa0
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x80]
add r15, rax
jmp 0x1400188b4
mov dword [0x1400578f0], 1
mov ebx, 0x18
call fcn.140026b84
lea rdx, [rbp + 0x18]
mov rcx, qword [0x140057a10]
xor r8d, r8d
call fcn.140021734
test eax, eax
je 0x140018b10
lea rdx, str.seek_failed_reading_descriptor
mov ecx, 0xb
call fcn.140001310
mov rcx, qword [0x140057a10]
call fcn.140026b84
mov qword [rsp + 0x88], rax
jmp 0x140018cc2
cmp rbx, 0x10
jb 0x140018cd3
movzx eax, byte [rsi + 7]
shl ax, 8
movzx edx, ax
movzx eax, byte [rsi + 6]
or edx, eax
movzx eax, byte [rsi + 5]
shl ax, 8
shl edx, 0x10
movzx ecx, ax
movzx eax, byte [rsi + 4]
or edx, ecx
mov rcx, qword [0x140057a10]
or edx, eax
mov dword [0x1400578f4], edx
movzx eax, byte [rsi + 0xb]
shl ax, 8
movzx edi, ax
movzx eax, byte [rsi + 0xa]
or edi, eax
movzx eax, byte [rsi + 9]
shl ax, 8
shl edi, 0x10
movzx eax, ax
or rdi, rax
movzx eax, byte [rsi + 8]
or rdi, rax
mov qword [0x1400578f8], rdi
movzx eax, byte [rsi + 0xf]
shl ax, 8
movzx edx, ax
movzx eax, byte [rsi + 0xe]
or edx, eax
movzx eax, byte [rsi + 0xd]
shl ax, 8
shl edx, 0x10
movzx eax, ax
or rdx, rax
movzx eax, byte [rsi + 0xc]
or rdx, rax
mov rax, rbp
sub rax, qword [rsp + 0x88]
mov qword [0x140057900], rdx
cmp rax, rdi
je 0x140018c2a
lea rdx, [rbp + 4]
xor r8d, r8d
call fcn.140021734
test eax, eax
je 0x140018bf8
lea rdx, str.seek_failed_reading_descriptor
mov ecx, 0xb
call fcn.140001310
xor r9d, r9d
mov rcx, rsi
lea edx, [r9 + 1]
lea r8d, [r9 + 4]
call fcn.1400143b0
cmp rax, 4
jne 0x140018fa0
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x80]
add r15, rax
jmp 0x1400188b4
mov dword [0x1400578f0], 1
call fcn.140026b84
mov ebx, 0x10
lea rdx, [rbp + 0x10]
jmp 0x140018aec
mov rdi, rax
test rbx, rbx
je 0x140018cc2
nop
movzx eax, r14b
movzx r14d, r13b
movzx r13d, r12b
movzx r12d, byte [rdi + rsi]
cmp al, 0x50
jne 0x140018c77
cmp r14b, 0x4b
jne 0x140018c77
cmp r13b, 7
jne 0x140018c77
cmp r12b, 8
je 0x140018c81
inc rdi
cmp rdi, rbx
jb 0x140018c50
jmp 0x140018cc2
mov rdx, qword [0x140057a90]
mov rcx, qword [0x140057a10]
sub rdi, 3
add rdx, rdi
xor r8d, r8d
call fcn.140021734
test eax, eax
je 0x140018cb3
lea rdx, str.seek_failed_reading_descriptor
mov ecx, 0xb
call fcn.140001310
mov rcx, qword [0x140057a10]
call fcn.140026b84
mov rbx, rdi
mov rdi, qword [rsp + 0x80]
cmp dword [0x1400578f0], 0
jne 0x140018cf1
xor r9d, r9d
mov r8, rbx
mov rcx, rsi
lea edx, [r9 + 1]
call fcn.1400143b0
cmp rax, rbx
jne 0x140018fa0
add r15, rbx
cmp dword [0x140057994], 0
je 0x140018db0
cmp dword [0x140057920], 0
jne 0x140018db0
mov rcx, qword [0x140057908]
mov rax, qword [0x140057910]
test rcx, rcx
jle 0x140018d6f
cmp dword [0x140053f30], 0
je 0x140018d59
cmp rax, 0xffffffffffffffff
jne 0x140018d59
mov rdx, qword [0x1400a3dd0]
lea ecx, [rax + 0x21]
call fcn.140023ba8
mov rcx, qword [0x1400a3dd0]
call fcn.140021964
mov rax, qword [0x140057910]
mov rcx, qword [0x140057908]
inc rax
add rax, rbx
mov edx, 0
cmp rcx, rax
cmovle rax, rdx
mov qword [0x140057910], rax
cmp dword [0x1400578c4], 0
jne 0x140018d81
cmp dword [0x140053f30], 0
je 0x140018db0
test rcx, rcx
je 0x140018db0
test rax, rax
jne 0x140018db0
mov rdx, qword [0x1400a3dd0]
lea ecx, [rax + 0x2e]
call fcn.140023ba8
mov rcx, qword [0x1400a3dd0]
call fcn.140021964
mov dword [0x140057abc], 1
cmp dword [0x1400578f0], 0
jne 0x140019083
mov rbx, qword [rsp + 0x70]
test rdi, rdi
jne 0x1400188dc
cmp rbx, 0xffffffffffffffff
je 0x1400188b4
cmp r15, rbx
jae 0x1400188b4
mov rcx, qword [0x140057a10]
call fcn.140024010
test eax, eax
je 0x1400188b4
mov edx, dword [0x140057a38]
mov eax, dword [0x140057a34]
inc edx
mov dword [0x140057a38], edx
cmp edx, eax
jae 0x140019083
dec eax
cmp edx, eax
jne 0x140018e52
mov rbx, qword [0x140057a18]
xor eax, eax
or rbp, 0xffffffffffffffff
mov rdi, rbx
mov rcx, rbp
repne scasb al, byte [rdi]
not rcx
call fcn.140022488
mov rdi, rax
test rax, rax
je 0x140018fc5
nop dword [rax]
movzx ecx, byte [rbx]
inc rax
inc rbx
mov byte [rax - 1], cl
test cl, cl
jne 0x140018e40
jmp 0x140018e65
mov rcx, qword [0x140057a18]
call fcn.1400140e0
or rbp, 0xffffffffffffffff
mov rdi, rax
mov rcx, qword [0x140057a10]
call fcn.1400215c0
lea rdx, [0x140047330]
mov rcx, rdi
call fcn.140023b9c
mov qword [0x140057a10], rax
test rax, rax
jne 0x140018f70
cmp dword [0x1400578c8], 1
jne 0x140018ea6
cmp dword [0x1400578ec], 0
jne 0x14001903f
mov ecx, dword [0x140057a38]
call fcn.140017530
cmp eax, 9
je 0x140019019
cmp eax, 2
je 0x140018fde
cmp dword [0x1400578c8], 2
jne 0x140018ef4
cmp dword [0x1400578ec], 0
je 0x140018ef4
lea rcx, str.skipping_split_file:
mov rdx, rdi
call fcn.140001860
mov edx, dword [0x140057a38]
inc edx
mov dword [0x140057a38], edx
jmp 0x140018efa
mov edx, dword [0x140057a38]
mov eax, dword [0x140057a34]
dec eax
cmp edx, eax
jne 0x140018f42
mov rbx, qword [0x140057a18]
xor eax, eax
mov rcx, rbp
mov rdi, rbx
repne scasb al, byte [rdi]
not rcx
call fcn.140022488
mov rdi, rax
test rax, rax
je 0x140018fc5
mov rcx, rax
nop
movzx eax, byte [rbx]
inc rcx
inc rbx
mov byte [rcx - 1], al
test al, al
jne 0x140018f30
jmp 0x140018f51
mov rcx, qword [0x1400a3df0]
call fcn.1400140e0
mov rdi, rax
lea rdx, [0x140047330]
mov rcx, rdi
call fcn.140023b9c
mov qword [0x140057a10], rax
test rax, rax
je 0x140018e90
cmp dword [0x1400578c8], 2
jne 0x140018f86
cmp dword [0x1400578ec], 0
jne 0x14001903f
mov rcx, rdi
call fcn.140021628
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x80]
jmp 0x1400188b4
mov rcx, rsi
call fcn.140021628
mov rcx, qword [0x1400a3dd0]
lea rdx, str._fcopy:_write_error_n
call fcn.140021b20
mov eax, 0xa
jmp 0x14001908d
lea rcx, str.reading_archive:
mov rdx, rbx
call fcn.140001860
mov eax, 4
jmp 0x14001908d
lea rcx, [0x14004672a]
mov edx, 1
call fcn.140001610
lea rdx, [0x14004672a]
lea rcx, str.user_ended_reading___closing_archive
call fcn.140001860
mov rcx, rdi
call fcn.140021628
mov rcx, rsi
call fcn.140021628
mov eax, 2
jmp 0x14001908d
lea rcx, str.could_not_find_split:
mov rdx, rdi
call fcn.140001860
mov rcx, rdi
call fcn.140021628
mov rcx, rsi
call fcn.140021628
mov eax, 9
jmp 0x14001908d
mov rcx, rdi
call fcn.140021628
mov rcx, rsi
call fcn.140021628
mov eax, 3
jmp 0x14001908d
cmp dword [0x1400578c8], 2
jne 0x140019064
test rdi, rdi
jne 0x140019074
mov rcx, qword [0x140057a10]
call fcn.140024038
test eax, eax
je 0x140019083
mov rcx, rsi
call fcn.140021628
mov eax, 0xb
jmp 0x14001908d
mov rcx, rsi
call fcn.140021628
xor eax, eax
mov r14, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov r12, qword [rsp + 0x40]
mov r15, qword [rsp + 0x28]
add rsp, 0x48
pop rdi
pop rsi
pop rbp
pop rbx
ret