Function at 0x14001a9b0
Capabilities:
Read file on windows
Write file on windows

Disassembly:
mov r11, rsp
push rdi
push r13
push r14
push r15
sub rsp, 0x58
mov rax, qword [0x140052010]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rax, qword [rcx + 0x98]
mov r14, rcx
mov r13b, 1
mov rdi, qword [rcx + 0x50]
mov r15d, dword [rcx + 0x58]
mov dword [rsp + 0x38], 0
cmp qword [rcx + 0x90], rax
jle 0x14001ac69
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], rsi
mov qword [r11 - 0x28], r12
nop word [rax + rax]
mov r12, rdi
test r13b, r13b
je 0x14001ac4c
mov rax, qword [r14 + 0x48]
xor edx, edx
mov rcx, qword [rax]
mov r8, qword [rax + 8]
sub r8, rcx
call fcn.14001eb50
cmp qword [r14 + 0x28], 0xffffffffffffffff
mov rbx, qword [r14 + 0x98]
je 0x14001ac4c
xor esi, esi
nop word [rax + rax]
mov rcx, qword [r14 + 0x28]
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
mov ebp, eax
test eax, eax
jne 0x14001aa79
lea ecx, [rax + 0x32]
call qword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 0x32
jl 0x14001aa50
test ebp, ebp
je 0x14001ac4c
mov rax, qword [r14 + 0x90]
sub rax, qword [r14 + 0x98]
cmp rax, 0x10
jl 0x14001ac4c
cmp rax, rdi
cmovl rdi, rax
cmp rax, r12
mov rsi, rdi
mov rdi, rax
cmovge rdi, r12
cmp qword [r14 + 0x28], 0xffffffffffffffff
je 0x14001ac4c
mov rax, qword [r14 + 0x48]
xor ebx, ebx
mov r12, qword [rax]
mov rcx, qword [r14 + 0x28]
lea r9, [rsp + 0x38]
mov r8d, esi
mov qword [rsp + 0x20], 0
mov rdx, r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov ebp, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test ebp, ebp
jne 0x14001ab03
lea ecx, [rbp + 0x32]
call qword [sym.imp.KERNEL32.dll_Sleep]
inc ebx
cmp ebx, 0x32
jl 0x14001aac1
test ebp, ebp
je 0x14001ac4c
mov eax, dword [rsp + 0x38]
test eax, eax
je 0x14001ac4c
xor edx, edx
div r15d
mov ecx, eax
imul ecx, r15d
mov dword [rsp + 0x38], ecx
test ecx, ecx
je 0x14001ac4c
mov rax, qword [r14 + 0x48]
mov qword [rsp + 0x30], 0
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rax]
mov eax, ecx
cmp rbx, rax
jge 0x14001ab86
mov rcx, rdi
sub rcx, rbx
cmp rcx, 0x10
jl 0x14001ab81
mov eax, r15d
mov rdx, rbp
cmp rcx, rax
mov rax, qword [r14]
cmovge ecx, r15d
mov r15d, ecx
mov r8d, ecx
mov rcx, r14
call qword [rax + 8]
movzx r13d, al
test al, al
je 0x14001ab81
mov ecx, dword [rsp + 0x38]
add rbx, r15
add rbp, r15
cmp rbx, rcx
jl 0x14001ab42
mov qword [rsp + 0x30], rbx
cmp qword [r14 + 0x28], 0xffffffffffffffff
mov rbx, qword [r14 + 0x98]
je 0x14001ac4c
xor ebp, ebp
nop word [rax + rax]
mov rcx, qword [r14 + 0x28]
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
mov r12d, eax
test eax, eax
jne 0x14001abca
lea ecx, [rax + 0x32]
call qword [sym.imp.KERNEL32.dll_Sleep]
inc ebp
cmp ebp, 0x32
jl 0x14001aba0
test r12d, r12d
je 0x14001ac4c
mov rbp, qword [r14 + 0x48]
mov dword [rsp + 0x3c], 0
test rbp, rbp
je 0x14001ac4c
cmp qword [r14 + 0x28], 0xffffffffffffffff
je 0x14001ac4c
mov rbp, qword [rbp]
test rbp, rbp
je 0x14001ac4c
xor ebx, ebx
mov rcx, qword [r14 + 0x28]
lea r9, [rsp + 0x3c]
mov r8d, esi
mov qword [rsp + 0x20], 0
mov rdx, rbp
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x14001ac26
lea ecx, [rax + 0x32]
call qword [sym.imp.KERNEL32.dll_Sleep]
inc ebx
cmp ebx, 0x32
jl 0x14001abf2
jmp 0x14001ac4c
cmp dword [rsp + 0x3c], 0
je 0x14001ac4c
mov eax, dword [rsp + 0x38]
add qword [r14 + 0x98], rax
mov rax, qword [r14 + 0x98]
cmp qword [r14 + 0x90], rax
jg 0x14001aa10
mov rsi, qword [rsp + 0x98]
mov rbp, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x88]
mov r12, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.14001bcd0
add rsp, 0x58
pop r15
pop r14
pop r13
pop rdi
ret