Function at 0x1401f7900
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
movapd xmmword [rsp + 0xb0], xmm6
mov edi, r9d
mov rbx, r8
mov r15, rdx
mov r14, rcx
mov rax, qword [0x140327038]
xor rax, rsp
mov qword [rsp + 0xa8], rax
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rsi, [rsp + 0x60]
mov qword [rsi + 0x40], rax
movapd xmm0, xmmword [0x1402e6d80]
movapd xmmword [rsi + 0x30], xmm0
movapd xmmword [rsi + 0x20], xmm0
movapd xmmword [rsi + 0x10], xmm0
movapd xmmword [rsi], xmm0
lea rdx, str.Write
lea r8, str....._base_files_file_win.cc
lea r12, [rsp + 0x30]
mov rcx, r12
mov r9d, 0x85
call fcn.1400b5b90
mov rcx, rsi
mov rdx, r12
xor r8d, r8d
call fcn.140062770
mov esi, 0xffffffff
test r15, r15
js 0x1401f79e7
test edi, edi
js 0x1401f79e7
xorpd xmm0, xmm0
movapd xmmword [rsp + 0x40], xmm0
movapd xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], r15
lea r15, [rsp + 0x58]
mov dword [r15], 0xaaaaaaaa
mov rcx, qword [r14]
mov qword [rsp + 0x20], r12
mov rdx, rbx
mov r8d, edi
mov r9, r15
call qword [sym.imp.KERNEL32.dll_WriteFile]
xor esi, esi
cmp eax, 1
sbb esi, esi
or esi, dword [r15]
call fcn.14013ab7c
mov ebp, dword [rax]
call fcn.14013ab7c
mov dword [rax], 0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rbx, qword [rsp + 0x60]
test rbx, rbx
je 0x1401f7a9a
cmp qword [rsp + 0x68], 0
jne 0x1401f7a9a
mov rax, qword [rbx]
mov rax, qword [rax + 0x18]
lea rcx, [0x1400988e0]
cmp rax, rcx
jne 0x1401f7dff
cmp byte [rbx + 0x18], 0
je 0x1401f7a9a
mov r14, qword [rbx + 0x28]
add r14, 0x28
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401f7dbf
mov qword [rbx + 0x20], 0
cmp byte [rbx + 0x3b], 0
jne 0x1401f7a8b
cmp byte [rbx + 0x39], 0
mov rcx, qword [rbx + 0x28]
jne 0x1401f7c48
dec dword [rcx + 0x140]
cmp byte [rbx + 0x18], 0
je 0x1401f7dfd
cmp byte [rbx + 0x19], 0
je 0x1401f7b2d
mov word [rbx + 0x39], 0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.14013ab7c
mov dword [rax], ebp
cmp byte [rsp + 0x88], 0
je 0x1401f7bb0
mov rdi, qword [rsp + 0x98]
test rdi, rdi
je 0x1401f7ba8
mov rax, qword [fcn.1400c65b0]
lea rcx, [0x140038c30]
cmp rax, rcx
jne 0x1401f7ddd
lea rbx, [rsp + 0x30]
mov qword [rbx], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbx]
movabs rcx, 0x8637bd05af6
cmp rax, rcx
jle 0x1401f7b46
mov rcx, qword [0x14033afc8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
mov rbx, rax
add rbx, r8
jmp 0x1401f7b59
cmp byte [rbx + 0x3a], 0
mov rcx, qword [rbx + 0x28]
jne 0x1401f7dcc
dec dword [rcx + 0x144]
jmp 0x1401f7a8b
imul rax, rax, 0xf4240
cqo
idiv qword [0x14033afc8]
mov rbx, rax
mov qword [rsp + 0x58], rbx
mov r15, qword [rsp + 0x90]
xor eax, eax
cmp rbx, r15
setns al
movabs r13, 0x7fffffffffffffff
add rax, r13
mov r12, rbx
sub r12, r15
cmovo r12, rax
cmp r12, 0xf4240
jge 0x1401f7c59
mov rdi, qword [rsp + 0x98]
test rdi, rdi
je 0x1401f7ba8
lock dec dword [rdi]
je 0x1401f7c33
mov byte [rsp + 0x88], 0
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x1401f7bc2
mov rcx, qword [rsp + 0x78]
mov qword [rax], rcx
movabs rdi, 0xfffffffc00000000
mov rcx, qword [rsp + 0x68]
mov rax, rcx
and rax, rdi
cmp rax, qword [0x140336a08]
je 0x1401f7df3
mov qword [rsp + 0x68], 0
mov rcx, qword [rsp + 0x60]
and rdi, rcx
cmp rdi, qword [0x140336a08]
je 0x1401f7c2c
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.14013d520
mov eax, esi
movaps xmm6, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.14010edf0
jmp 0x1401f7bfe
mov rcx, rdi
call fcn.140105710
mov rcx, rdi
call fcn.14013a6ac
jmp 0x1401f7ba8
dec qword [rcx + 0x120]
call fcn.14010d8d0
jmp 0x1401f7a77
mov rax, qword [rdi + 0x1f0]
mov ecx, 0x3938700
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
cmp rcx, rbx
jg 0x1401f7cac
lea r14, [rsp + 0x30]
mov rcx, r14
mov rdx, rbx
call fcn.14010cfe0
mov r14, qword [r14]
test r14, r14
je 0x1401f7cac
lock dec dword [r14]
jne 0x1401f7cac
mov rcx, r14
call fcn.140105710
mov rcx, r14
call fcn.14013a6ac
mov rax, qword [rdi + 0x1f0]
xor edx, edx
cmp r15, rax
setns dl
add rdx, r13
mov rcx, r15
sub rcx, rax
movabs r14, 0x8000000000000001
cmovo rcx, rdx
lea rdx, [rcx + r14]
cmp rdx, 2
jb 0x1401f7ce3
cvtsi2sd xmm0, rcx
jmp 0x1401f7cf7
xor ecx, ecx
cmp rax, r15
setg cl
lea rax, [0x1402eedf0]
movsd xmm0, qword [rax + rcx*8]
divsd xmm0, qword [0x1402eee30]
call fcn.14017a460
movsd xmm6, qword [0x1402d3f20]
ucomisd xmm6, xmm0
jb 0x1401f7d20
maxsd xmm0, qword [0x1402d3f38]
cvttsd2si ebp, xmm0
jmp 0x1401f7d32
xor eax, eax
ucomisd xmm0, qword [0x1402d3f38]
mov ebp, 0x7fffffff
cmovb ebp, eax
add r14, r12
cmp r14, 2
jb 0x1401f7d45
xorps xmm0, xmm0
cvtsi2sd xmm0, r12
jmp 0x1401f7d59
xor eax, eax
cmp rbx, r15
setl al
lea rcx, [0x1402eedf0]
movsd xmm0, qword [rcx + rax*8]
divsd xmm0, qword [0x1402eee30]
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
jb 0x1401f7d7a
addsd xmm0, qword [0x1402d3ac0]
call fcn.14017a460
jmp 0x1401f7d87
addsd xmm0, qword [0x1402d3f28]
call fcn.14017a08c
ucomisd xmm6, xmm0
jb 0x1401f7d9c
maxsd xmm0, qword [0x1402d3f38]
cvttsd2si r8d, xmm0
jmp 0x1401f7db0
xor eax, eax
ucomisd xmm0, qword [0x1402d3f38]
mov r8d, 0x7fffffff
cmovb r8d, eax
mov rcx, rdi
mov edx, ebp
call fcn.14010d0d0
jmp 0x1401f7b92
mov rcx, r14
call sub.KERNEL32.dll_AcquireSRWLockExclusive
jmp 0x1401f7a55
dec qword [rcx + 0x128]
call fcn.14010d8d0
jmp 0x1401f7a8b
lea rbx, [rsp + 0x58]
mov rcx, rbx
call qword [case.0x14017aab5.0]
mov rbx, qword [rbx]
jmp 0x1401f7b5e
call fcn.14010edf0
jmp 0x1401f7be4
ud2
mov rcx, rbx
call qword [case.0x14017aab5.0]
jmp 0x1401f7a9a