Function at 0x14002f740
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov rsi, rcx
mov r13, r9
mov rcx, rdx
mov r12, r8
shr rcx, 2
mov r15, rdx
mov eax, dword [rsi + 0x2e4]
cmp rcx, rax
jae 0x14002f7c4
mov rax, qword [rsi + 0x200]
mov r10, rcx
shr r10, 0xc
and ecx, 0xfff
add r10, r10
mov rax, qword [rax + r10*8 + 8]
cmp dword [rax + rcx*8 + 4], 0x80000000
lea rcx, [rax + rcx*8]
jne 0x14002f896
mov edi, 0xfffffff3
mov rbx, qword [rsp + 0x88]
mov eax, edi
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rdi, qword [rsi + 0x3c0]
lea r8, [rsp + 0x70]
mov dword [rsp + 0x78], r15d
lea rcx, [rsp + 0x78]
mov r12, qword [rdi]
mov r14d, dword [rdi + 0xc]
mov rdx, r12
call qword [rdi + 0x18]
test eax, eax
je 0x14002f7fb
mov ecx, dword [rsp + 0x70]
imul ecx, r14d
add rcx, r12
jmp 0x14002f88a
mov ebx, dword [rdi + 8]
test ebx, ebx
je 0x14002f7a5
mov edx, dword [rsp + 0x70]
lea eax, [r14 + r14*2]
mov rbp, qword [rdi + 0x28]
lea r8, [rsp + 0x70]
shl eax, 5
lea rcx, [rsp + 0x78]
add rax, r12
mov rdi, qword [rax + rdx*8]
mov rdx, rdi
call rbp
mov r8d, eax
test eax, eax
jne 0x14002f860
nop
add ebx, 0xffffffff
je 0x14002f7a5
mov edx, dword [rsp + 0x70]
lea r8, [rsp + 0x70]
mov ecx, r14d
shl ecx, 6
add rcx, rdi
mov rdi, qword [rcx + rdx*8]
lea rcx, [rsp + 0x78]
mov rdx, rdi
call rbp
mov r8d, eax
test eax, eax
je 0x14002f830
mov edx, dword [rsp + 0x70]
test dl, 1
je 0x14002f878
mov rax, qword [rdi]
bt rax, rdx
jb 0x14002f878
dec edx
mov dword [rsp + 0x70], edx
imul edx, r14d
mov ecx, edx
add rcx, rdi
test r8d, r8d
je 0x14002f7a5
mov r12, qword [rsp + 0x80]
add rcx, 4
mov ebx, dword [rcx + 4]
mov dword [rsp + 0x78], ebx
test ebx, ebx
jns 0x14002f8ab
mov edi, 0xffffffef
jmp 0x14002f7aa
mov rax, qword [rsi + 0x18]
xor edi, edi
mov ebp, dword [rcx]
shl rbp, 0xa
shl ebx, 0xa
cmp byte [rax], dil
je 0x14002f90b
lea rdx, [rsi + 0x28]
mov dword [rsi + 0x208], ebp
mov dword [rdx], edi
lea rax, [rsp + 0x70]
mov dword [rsi + 0x20c], ebx
mov r8, rsi
mov dword [rsi + 0x214], r15d
mov dword [rsi + 0x2c], edi
mov rcx, qword [rsi + 0x320]
mov qword [rsp + 0x20], rax
call fcn.14004da20
test eax, eax
je 0x14002f90b
mov rax, qword [rsi + 0x3d8]
test rax, rax
je 0x14002f90b
mov dword [rax + 8], 1
mov r15d, dword [rsi + 0x30]
xor r8d, r8d
mov ecx, r15d
mov rdx, rbp
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__lseeki64]
cmp eax, 0xffffffff
jne 0x14002f92b
lea edi, [rax - 0x12]
jmp 0x14002f7aa
mov r14, qword [rsi + 0x240]
lea r9d, [rbx + 7]
mov rax, qword [r14]
mov qword [r13], rax
mov eax, dword [r14 + 0xc]
mov dword [r12], eax
cmp eax, r9d
jae 0x14002f971
mov rcx, qword [rsi + 0x308]
xor r8d, r8d
mov rdx, r14
call fcn.14004d760
test eax, eax
je 0x14002f96a
mov edi, 0xfffffff6
jmp 0x14002f7aa
mov rax, qword [r14]
mov qword [r13], rax
mov dword [r12], ebx
mov rsi, qword [r13]
test ebx, ebx
je 0x14002f7aa
mov r8d, ebx
mov rdx, rsi
mov ecx, r15d
call sub.api_ms_win_crt_stdio_l1_1_0.dll__read
movsxd rcx, eax
cmp ecx, 0xffffffff
jne 0x14002f9c5
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [rax], 4
je 0x14002f9ce
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [rax], 0xb
je 0x14002f9ce
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [rax], 0x8c
je 0x14002f9ce
mov edi, 0xffffffee
jmp 0x14002f7aa
test eax, eax
je 0x14002f9d7
add rsi, rcx
sub ebx, ecx
test ebx, ebx
jne 0x14002f981
jmp 0x14002f7aa
mov edi, 0xffffffec
jmp 0x14002f7aa