Function at 0x1400029f0
Capabilities:
Read file on windows

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
sub rsp, 0x488
mov rax, qword [0x140031008]
xor rax, rsp
mov qword [rsp + 0x460], rax
mov rsi, qword [rsp + 0x4e0]
mov r12, r8
mov edi, edx
mov dword [rsp + 0x50], 0
mov r14, rcx
xor edx, edx
mov r8d, 0x400
lea rcx, [rsp + 0x60]
mov ebp, r9d
call fcn.140007300
cmp dword [r14 + 0x10], 0
jle 0x140002a4c
mov ebx, dword [r14 + 0x14]
jmp 0x140002a51
mov ebx, 0x400001
cmp edi, ebx
lea rcx, str.bufsize___d__0x_x__n
cmovl ebx, edi
mov r8d, ebx
mov edx, ebx
call fcn.140005be0
cmp ebx, 0x400000
jle 0x140002a80
lea rcx, str.Header_purports_to_be_greater_than_4MB_n
call fcn.140005be0
jmp 0x140002d15
cmp ebx, 0x10
jge 0x140002a96
lea rcx, str.Empty_file_n
call fcn.140005be0
jmp 0x140002d15
mov edx, dword [rsp + 0x4f0]
lea rcx, str.Filenames_as_hex:__d_n
call fcn.140005be0
test ebp, ebp
je 0x140002abb
mov edx, ebp
lea rcx, str.Requested_file_idx___d_n
call fcn.140005be0
test rsi, rsi
je 0x140002ad9
cmp byte [rsi], 0
je 0x140002ad9
mov r8, rsi
lea rcx, str.Requested_file___.s_n
mov edx, 0x3ff
call fcn.140005be0
cmp dword [r14 + 0x10], 0
jle 0x140002d15
mov qword [rsp + 0x480], r13
mov qword [rsp + 0x478], r15
movsxd r15, ebx
mov rcx, r15
call fcn.14000e8a8
mov qword [rsp + 0x58], rax
mov r13, rax
test rax, rax
jne 0x140002b28
lea ecx, [rax + 2]
call fcn.140009d00
mov rcx, rax
lea rdx, str.Cannot_allocate_memory_n
call fcn.140004e60
jmp 0x140002d05
mov esi, dword [r14 + 0x10]
xor r10d, r10d
test esi, esi
jle 0x140002b7b
mov rbp, qword [r14 + 0x20]
xor edi, edi
xor r11d, r11d
mov r13d, edi
nop
mov rax, rdi
movzx ecx, r10b
shr rax, 3
and cl, 7
movzx edx, byte [rax + rbp]
sar dl, cl
test dl, 1
je 0x140002b62
mov rax, qword [r14 + 0x28]
add r13d, dword [rax + r11 + 4]
inc r10d
inc rdi
add r11, 0x10
cmp r10d, esi
jl 0x140002b40
mov dword [rsp + 0x50], r13d
mov r13, qword [rsp + 0x58]
mov rcx, r12
call fcn.14000bba0
mov r9, r12
mov r8, r15
mov edx, 1
mov rcx, r13
call fcn.14000a8dc
cmp eax, ebx
je 0x140002bbb
mov ecx, 2
call fcn.140009d00
mov rcx, rax
lea rdx, str.File_read_error__print_stats__n
call fcn.140004e60
mov rcx, r13
jmp 0x140002d00
lea rcx, str._nPrinting_archive_directory:_n_n___id_Valid_______Offset__________Gap_________Size_Len_FnOf__Name_n_____________________________________________________________________________________n
call fcn.140005be0
mov edx, dword [r14 + 0x14]
lea rcx, str._______________________0_________________10d___________header_n_____________________________________________________________________________________n
call fcn.140005be0
mov r9d, dword [r14 + 0x10]
xor r13d, r13d
test r9d, r9d
jle 0x140002cd8
nop word [rax + rax]
mov rdi, qword [r14 + 0x28]
movsxd r15, r13d
test r13d, r13d
jle 0x140002c15
mov rax, r15
mov rcx, r15
add rax, rax
add rcx, rcx
mov esi, dword [rdi + rax*8]
sub esi, dword [rdi + rcx*8 - 0xc]
sub esi, dword [rdi + rcx*8 - 0x10]
jmp 0x140002c1b
mov esi, dword [rdi]
sub esi, dword [r14 + 0x14]
mov r12, r15
lea rcx, [rsp + 0x60]
shl r12, 4
movsxd rbx, dword [r12 + rdi + 0xc]
lea rbp, [r12 + rdi]
movsxd rdx, dword [rbp + 8]
mov r8, rbx
add rdx, qword [rsp + 0x58]
call fcn.140006c50
mov ecx, dword [rsp + 0x4f0]
mov eax, 0x3ff
cmp ebx, eax
cmovl eax, ebx
cdqe
mov byte [rsp + rax + 0x60], 0
test ecx, ecx
je 0x140002d35
mov edx, dword [rbp + 0xc]
lea rcx, [rsp + 0x60]
call fcn.1400015a0
lea r9, [rsp + 0x60]
mov rax, qword [r14 + 0x20]
lea ebx, [r13 + 1]
mov rdx, qword [r14 + 0x28]
add rdx, r12
mov qword [rsp + 0x40], r9
movsx ecx, r13b
and ecx, 7
sar r15, 3
mov r9d, dword [rdx]
movsx r8d, byte [r15 + rax]
mov eax, dword [rdx + 8]
mov dword [rsp + 0x38], eax
mov eax, dword [rdx + 0xc]
mov dword [rsp + 0x30], eax
mov eax, dword [rdx + 4]
mov edx, ebx
sar r8d, cl
lea rcx, str.__4d______d____10d____10d____10d__3d__4x___s_n
mov dword [rsp + 0x28], eax
and r8d, 1
mov dword [rsp + 0x20], esi
call fcn.140005be0
mov r9d, dword [r14 + 0x10]
mov r13d, ebx
cmp ebx, r9d
jl 0x140002bf0
mov rax, qword [r14 + 0x28]
mov r8d, dword [rsp + 0x50]
movsxd rcx, r9d
add rcx, rcx
mov edx, dword [rax + rcx*8 - 0xc]
add edx, dword [rax + rcx*8 - 0x10]
lea rcx, str._____________________________________________________________________________________n_______________10d_________________10d____________d_files_n
call fcn.140005be0
mov rcx, qword [rsp + 0x58]
call fcn.14000e894
mov r13, qword [rsp + 0x480]
mov r15, qword [rsp + 0x478]
mov rcx, qword [rsp + 0x460]
xor rcx, rsp
call fcn.140006030
add rsp, 0x488
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
lea rdx, [rsp + 0x60]
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rdx + rax], 0
jne 0x140002d41
inc rax
test ecx, ecx
jne 0x140002c6e
movsxd r9, dword [r12 + rdi + 8]
mov edx, ecx
mov r8d, edx
add r9, qword [rsp + 0x58]
je 0x140002db9
lea r10, [0x1400233b0]
nop dword [rax]
cmp r8, rax
jae 0x140002da4
movzx ecx, byte [r8 + r9]
test cl, cl
je 0x140002d98
movzx ecx, byte [rcx + r10]
add edx, 0x100
add edx, ecx
inc r8
movzx edx, byte [rdx + r10]
cmp edx, 0xc
jne 0x140002d70
cmp r8, rax
jae 0x140002da4
mov ecx, 1
jmp 0x140002da6
xor ecx, ecx
xor eax, eax
test edx, edx
cmove eax, ecx
imul eax, r8d
test eax, eax
jg 0x140002c6e
lea r9, str._non_UTF8_
jmp 0x140002c73