Function at 0x14002f1e0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x58
mov eax, dword [rcx + 0x2e4]
mov r11, rdx
shr r11, 2
mov r13, r9
mov ebx, r8d
mov r12, rdx
mov rsi, rcx
cmp r11, rax
jae 0x14002f263
mov rax, qword [rcx + 0x200]
mov r10, r11
shr r10, 0xc
and r11d, 0xfff
add r10, r10
mov rax, qword [rax + r10*8 + 8]
cmp dword [rax + r11*8 + 4], 0x80000000
lea rcx, [rax + r11*8]
jne 0x14002f328
mov ebx, 0xfffffff3
mov eax, ebx
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdi, qword [rcx + 0x3c0]
lea r8, [rbp + 0x48]
mov dword [rbp + 0x50], r12d
lea rcx, [rbp + 0x50]
mov r15, qword [rdi]
mov r14d, dword [rdi + 0xc]
mov rdx, r15
call qword [rdi + 0x18]
test eax, eax
je 0x14002f296
mov ecx, dword [rbp + 0x48]
imul ecx, r14d
add rcx, r15
jmp 0x14002f324
mov ebx, dword [rdi + 8]
test ebx, ebx
je 0x14002f24b
mov edx, dword [rbp + 0x48]
lea eax, [r14 + r14*2]
mov r13, qword [rdi + 0x28]
lea r8, [rbp + 0x48]
shl eax, 5
lea rcx, [rbp + 0x50]
add rax, r15
mov rdi, qword [rax + rdx*8]
mov rdx, rdi
call r13
mov r8d, eax
test eax, eax
jne 0x14002f2f5
add ebx, 0xffffffff
je 0x14002f24b
mov edx, dword [rbp + 0x48]
lea r8, [rbp + 0x48]
mov ecx, r14d
shl ecx, 6
add rcx, rdi
mov rdi, qword [rcx + rdx*8]
lea rcx, [rbp + 0x50]
mov rdx, rdi
call r13
mov r8d, eax
test eax, eax
je 0x14002f2c7
mov edx, dword [rbp + 0x48]
test dl, 1
je 0x14002f30b
mov rax, qword [rdi]
bt rax, rdx
jb 0x14002f30b
dec edx
mov dword [rbp + 0x48], edx
imul edx, r14d
mov ecx, edx
add rcx, rdi
test r8d, r8d
je 0x14002f24b
mov ebx, dword [rbp + 0x58]
mov r13, qword [rbp + 0x60]
add rcx, 4
mov eax, dword [rcx + 4]
test eax, eax
jns 0x14002f494
mov r14d, dword [rsi + 0x30]
btc eax, 0x1f
mov dword [rbp + 0x50], eax
xor r8d, r8d
mov edx, dword [rcx]
mov ecx, r14d
shl rdx, 0xa
mov dword [rbp + 0x48], eax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__lseeki64]
cmp eax, 0xffffffff
jne 0x14002f360
lea ebx, [rax - 0x12]
jmp 0x14002f250
cmp qword [rsi + 0x260], 0
mov eax, dword [rbp + 0x48]
je 0x14002f376
add eax, 0xf
and eax, 0xfffffff0
mov dword [rbp + 0x48], eax
mov r15, qword [rbp + 0x68]
lea r8d, [rax + rbx]
mov rcx, qword [rsi + 0x2d8]
not ebx
and r8d, ebx
mov rdx, r15
add r8d, 0x40
call qword [rsi + 0x2c8]
mov ebx, eax
test eax, eax
je 0x14002f3a7
mov ebx, 0xfffffff6
jmp 0x14002f250
mov rdi, qword [r15]
mov eax, dword [rbp + 0x48]
add rdi, 0x40
mov ecx, dword [rbp + 0x50]
mov dword [r13], ecx
test eax, eax
je 0x14002f415
nop dword [rax]
mov r8d, eax
mov rdx, rdi
mov ecx, r14d
call sub.api_ms_win_crt_stdio_l1_1_0.dll__read
movsxd rcx, eax
cmp ecx, 0xffffffff
jne 0x14002f3ff
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [rax], 4
je 0x14002f3fa
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [rax], 0xb
je 0x14002f3fa
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [rax], 0x8c
jne 0x14002f473
mov eax, dword [rbp + 0x48]
jmp 0x14002f40e
test eax, eax
je 0x14002f47a
mov eax, dword [rbp + 0x48]
add rdi, rcx
sub eax, ecx
mov dword [rbp + 0x48], eax
test eax, eax
jne 0x14002f3c0
mov ecx, dword [rbp + 0x50]
mov r10, qword [rsi + 0x260]
test r10, r10
je 0x14002f250
lea r8d, [rcx + 0xf]
mov rcx, qword [rsi + 0x258]
and r8d, 0xfffffff0
lea rax, [rbp + 0x48]
mov qword [rsp + 0x30], rax
sub rdi, r8
lea rax, [rbp - 0x18]
mov dword [rbp + 0x48], r8d
mov qword [rsp + 0x28], rax
mov rdx, rdi
mov r9d, r8d
mov dword [rsp + 0x20], 0
call r10
mov r8d, dword [rbp + 0x50]
mov rcx, rdi
mov rdx, qword [rbp - 0x18]
call sub.VCRUNTIME140.dll_memcpy
jmp 0x14002f250
mov ebx, 0xffffffee
jmp 0x14002f47f
mov ebx, 0xffffffec
mov rdx, qword [r15]
mov rcx, qword [rsi + 0x2d8]
call qword [rsi + 0x2c0]
jmp 0x14002f250
mov rax, qword [rsi + 0x3d8]
mov ebx, 0xfffffff0
test rax, rax
je 0x14002f250
mov qword [rax + 0x18], r12
jmp 0x14002f250