Function at 0x18001e160
Capabilities:
Read file on windows

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x30
cmp dword [rcx + 0xda0c], 0
mov rax, qword [rcx + 0x258]
movsxd rsi, r8d
lea r12, [rsi + rsi*2]
mov rbp, rdx
mov rbx, rcx
mov edi, dword [rax + r12*8 + 0x10]
jne 0x18001e218
mov rax, qword [rax + r12*8 + 8]
mov rcx, qword [rcx + 0x208]
lea r8, [rsp + 0x64]
mov edx, eax
xor r9d, r9d
mov qword [rsp + 0x60], rax
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x18001e1cf
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x18001e1cf
or eax, 0xffffffff
add rsp, 0x30
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rcx, qword [rbx + 0x208]
lea r9, [rsp + 0x70]
xor esi, esi
mov r8d, edi
mov rdx, rbp
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [rsp + 0x70], edi
jne 0x18001e1c1
cmp byte [rbx + 0x220], sil
je 0x18001e20b
mov r8d, edi
mov rdx, rbp
mov rcx, rbx
call fcn.18001df30
xor eax, eax
add rsp, 0x30
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
movsxd rax, dword [rcx + 0xda08]
imul rax, rax, 0x228
cmp esi, dword [rax + rcx + 0x470]
jl 0x18001e238
cmp esi, dword [rax + rcx + 0x474]
jle 0x18001e247
mov edx, esi
call fcn.18001e090
test eax, eax
je 0x18001e1c1
mov rdx, qword [rbx + 0x258]
movsxd r8, dword [rbx + 0xda08]
xor r9d, r9d
imul r8, r8, 0x228
movsxd rax, dword [r8 + rbx + 0x470]
lea rcx, [rax + rax*2]
mov rax, qword [rdx + r12*8 + 8]
sub rax, qword [rdx + rcx*8 + 8]
movsxd rcx, dword [r8 + rbx + 0x47c]
lea r8, [rsp + 0x64]
add rax, rcx
mov rcx, qword [rbx + 0x208]
mov edx, eax
mov qword [rsp + 0x60], rax
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x18001e2ac
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x18001e1c1
movsxd rax, dword [rbx + 0xda08]
mov qword [rsp + 0x68], r13
imul rax, rax, 0x228
cmp esi, dword [rax + rbx + 0x474]
jne 0x18001e3b4
mov r12d, dword [rax + rbx + 0x480]
mov rcx, qword [rbx + 0x208]
mov r13d, edi
sub r13d, r12d
lea r9, [rsp + 0x70]
xor esi, esi
mov r8d, r13d
mov rdx, rbp
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [rsp + 0x70], r13d
jne 0x18001e3d9
test r12d, r12d
je 0x18001e3ec
inc dword [rbx + 0xda08]
mov eax, dword [rbx + 0xda08]
cmp eax, dword [rbx + 0xda0c]
jge 0x18001e3d9
mov rcx, rbx
call fcn.18001e000
test eax, eax
jne 0x18001e3d9
movsxd rax, dword [rbx + 0xda08]
lea r8, [rsp + 0x64]
xor r9d, r9d
imul rax, rax, 0x228
mov ecx, dword [rax + rbx + 0x47c]
sub ecx, r12d
mov eax, ecx
mov edx, ecx
mov rcx, qword [rbx + 0x208]
mov qword [rsp + 0x60], rax
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x18001e37a
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x18001e3d9
mov rcx, qword [rbx + 0x208]
mov edx, r13d
lea r9, [rsp + 0x70]
add rdx, rbp
mov r8d, r12d
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [rsp + 0x70], r12d
je 0x18001e3ec
or eax, 0xffffffff
mov r13, qword [rsp + 0x68]
add rsp, 0x30
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rcx, qword [rbx + 0x208]
lea r9, [rsp + 0x70]
xor esi, esi
mov r8d, edi
mov rdx, rbp
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [rsp + 0x70], edi
je 0x18001e3ec
or eax, 0xffffffff
mov r13, qword [rsp + 0x68]
add rsp, 0x30
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp byte [rbx + 0x220], 0
je 0x18001e403
mov r8d, edi
mov rdx, rbp
mov rcx, rbx
call fcn.18001df30
xor eax, eax
mov r13, qword [rsp + 0x68]
add rsp, 0x30
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret