Function at 0x14013c9b0
Capabilities:
Check for time delay via queryperformancecounter
Write file on windows

Disassembly:
push rbp
mov rax, rdx
mov rbp, rsp
push r15
mov r15, rcx
push r14
push r13
push r12
push rdi
push rsi
push rbx
and rsp, 0xfffffffffffffff0
add rsp, 0xffffffffffffff80
mov rbx, qword [rcx + 0x40]
mov r8d, dword [rdx]
mov qword [rbp + 0x18], rdx
mov rdi, qword [rdx + 0x10]
mov r12, qword [rbx + 0x10]
cmp r8d, 1
jne 0x14013ccc0
lea rax, [rsp + 0x60]
mov rsi, qword [rdx + 0x28]
mov r13, qword [rdx + 0x20]
lea r9, [rsp + 0x5c]
mov qword [rsp + 0x40], rax
mov r14, qword [sym.imp.KERNEL32.dll_WriteFile]
mov r8d, 0x1000000
mov qword [rsp + 0x48], r9
mov rdx, r13
mov rcx, r12
cmp rsi, r8
mov qword [rsp + 0x70], rdi
cmovbe r8, rsi
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x78], 0
call r14
mov r9, qword [rsp + 0x48]
test eax, eax
je 0x14013cd00
mov eax, dword [rsp + 0x5c]
cmp rsi, rax
jne 0x14013cd0b
xor r13d, r13d
mov rax, qword [rbp + 0x18]
mov esi, dword [rax]
mov rax, qword [r15 + 0x40]
mov rdx, qword [rax + 0x70]
mov eax, esi
mov dword [rsp + 0x48], esi
mov rcx, qword [rdx + 0x78]
add rax, rcx
mov qword [rdx + 0x78], rax
mov rax, qword [rbp + 0x18]
mov dword [rax], 0
mov qword [rax + 8], 0
test esi, esi
je 0x14013ccb8
mov qword [rsp + 0x30], 0
lea rdi, [rax + 0x28]
xor esi, esi
jmp 0x14013caa3
mov r13d, r12d
mov rax, qword [r15 + 0x40]
mov r14, qword [rdi - 8]
mov r12d, r13d
mov r9, qword [rdi]
movzx ecx, byte [rax + 0x80]
mov r10d, dword [r14 + 0x10]
shl r10, cl
add r10, qword [rax + 8]
mov rax, r9
test r13d, r13d
jne 0x14013caf8
mov rdx, r10
mov r8, rax
mov rcx, r14
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], rax
call sub.msvcrt.dll_memcmp
mov r10, qword [rsp + 0x40]
mov r9, qword [rsp + 0x38]
test eax, eax
mov r12d, eax
jne 0x14013cc38
movzx ecx, byte [rbx + 0x80]
shr r9, cl
test byte [rbx + 7], 8
jne 0x14013cc10
cmp r9d, 1
jne 0x14013cbe0
mov eax, dword [rbx + 0xe8]
cmp dword [rbx + 0x178], eax
jae 0x14013cbe0
mov rax, qword [rbx + 0x170]
mov qword [r14], rax
add dword [rbx + 0x178], 1
mov qword [rbx + 0x170], r14
add esi, 1
cmp dword [rsp + 0x48], esi
je 0x14013cbc8
add rdi, 0x10
test r13d, r13d
je 0x14013caa0
jmp 0x14013cb90
mov eax, dword [rbx + 0x178]
cmp dword [rbx + 0xe8], eax
jbe 0x14013cbb7
mov rax, qword [rbx + 0x170]
add esi, 1
mov qword [r9], rax
mov qword [rbx + 0x170], r9
add dword [rbx + 0x178], 1
cmp esi, dword [rsp + 0x48]
jae 0x14013cbc8
nop
mov eax, esi
movzx ecx, byte [rbx + 0x80]
shl rax, 4
add rax, qword [rbp + 0x18]
mov rdi, qword [rax + 0x28]
mov r9, qword [rax + 0x20]
shr rdi, cl
test byte [rbx + 7], 8
jne 0x14013cbf0
cmp edi, 1
je 0x14013cb60
mov rcx, r9
add esi, 1
call sub.msvcrt.dll_free
cmp esi, dword [rsp + 0x48]
jb 0x14013cb90
lea rsp, [rbp - 0x38]
mov eax, r12d
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rcx, r14
call sub.msvcrt.dll_free
jmp 0x14013cb40
mov r8d, edi
mov edx, 0xffffffff
shl r8, cl
mov rcx, r9
call sub.msvcrt.dll_memset
mov r9, rax
jmp 0x14013cbb2
mov r8d, r9d
mov edx, 0xffffffff
mov qword [rsp + 0x40], r9
shl r8, cl
mov rcx, r14
call sub.msvcrt.dll_memset
mov r9, qword [rsp + 0x40]
jmp 0x14013cb0c
cmp qword [rsp + 0x30], 0
mov qword [rsp + 0x40], r10
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x60], 0
je 0x14013cc90
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x60]
sub rax, qword [rsp + 0x30]
cmp rax, 0x1999
mov r10, qword [rsp + 0x40]
ja 0x14013cd1e
mov qword [rsp + 0x40], r10
call qword [sym.imp.KERNEL32.dll_SwitchToThread]
mov rax, qword [rdi]
mov r10, qword [rsp + 0x40]
jmp 0x14013cacb
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x60]
mov r10, qword [rsp + 0x40]
cmp byte [0x1403f1a48], 1
mov qword [rsp + 0x30], rax
jbe 0x14013cc74
jmp 0x140226cf0
mov r12d, r13d
jmp 0x14013cbc8
mov rax, qword [rax + 8]
lea rdx, [rdx + 0x20]
mov r9, rdi
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.1401415c0
mov r13d, eax
test r13d, r13d
je 0x14013ca53
cmp byte [0x1403f1a48], 0
je 0x14013ca53
jmp 0x140226cc0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r13d, eax
jmp 0x14013ccdb
sub rsi, rax
add rdi, rax
add r13, rax
mov rax, qword [rsp + 0x40]
jmp 0x14013ca08
cmp byte [0x1403f1a48], 0
jne 0x140226d31
call qword [sym.imp.KERNEL32.dll_SwitchToThread]
mov r12d, 0xffff87b4
mov r9, qword [rdi]
jmp 0x14013caf8
mov ecx, r13d
call fcn.140226ca0
mov r8d, 0x2100
mov ecx, 1
lea r9, str.Write_error:__s_n
mov qword [rsp + 0x20], rax
lea rdx, str.mdbx_iov_write
call fcn.1402232f0
jmp 0x14013ca53
mov r8d, 0x211a
lea rax, str._workaround_for_incoherent_flaw_of_unified_page_buffer_cache_
lea r9, str.catch_delayed_non_arrived_page__u__s_n
mov ecx, 2
mov qword [rsp + 0x28], rax
mov eax, dword [r14 + 0x10]
lea rdx, str.mdbx_iov_write
mov qword [rsp + 0x40], r10
mov dword [rsp + 0x20], eax
call fcn.1402232f0
mov r10, qword [rsp + 0x40]
jmp 0x14013cc74
lea rax, str._workaround_for_incoherent_flaw_of_unified_page_buffer_cache_
lea r9, str.bailout_waiting_for__u_page_arrival__s_n
mov r8d, 0x211e
mov ecx, 1
mov qword [rsp + 0x28], rax
mov eax, dword [r14 + 0x10]
lea rdx, str.mdbx_iov_write
mov r12d, 0xffff87b4
mov dword [rsp + 0x20], eax
call fcn.1402232f0
call qword [sym.imp.KERNEL32.dll_SwitchToThread]
mov r9, qword [rdi]
jmp 0x14013caf8