Function at 0x1401c0460
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
movaps xmmword [rsp + 0xf0], xmm6
mov esi, r9d
mov rdi, r8
mov r14, rdx
mov rbx, rcx
mov rax, qword [0x1402cb038]
xor rax, rsp
mov qword [rsp + 0xe8], rax
movapd xmm6, xmmword [0x14029ca60]
movapd xmmword [rsp + 0x70], xmm6
movapd xmmword [rsp + 0x60], xmm6
movapd xmmword [rsp + 0x50], xmm6
movapd xmmword [rsp + 0x40], xmm6
lea rdx, str.Write
lea r8, str.file_win.cc
lea r13, [rsp + 0xc0]
mov rcx, r13
mov r9d, 0x7f
call fcn.140158eb0
mov eax, dword [0x1402db110]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov r12, qword [rax + 0x180]
mov rax, qword [0x1402cbde0]
and rax, r12
cmp rax, qword [0x1402cbdc8]
je 0x1401c08f6
mov qword [rsp + 0x40], r12
mov eax, dword [0x1402db110]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea r15, [rax + 0x188]
mov r12, qword [rax + 0x188]
mov rax, qword [0x1402cbde0]
and rax, r12
cmp rax, qword [0x1402cbdc8]
je 0x1401c0f12
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x50], r15
mov rax, qword [r15]
lea rcx, [rsp + 0x40]
mov qword [r15], rcx
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x48]
test rax, rax
jne 0x1401c096b
xor ecx, ecx
mov byte [rsp + 0x60], cl
mov byte [rsp + 0x68], 0
mov byte [rsp + 0x78], 0
mov edx, dword [0x1402db110]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
cmp byte [rdx + 0x208], 0
je 0x1401c098d
test cl, cl
jne 0x1401c09cd
test rax, rax
jne 0x1401c0678
lea r12, [rsp + 0x68]
cmp byte [rsp + 0x78], 0
jne 0x1401c0f29
test r12, r12
je 0x1401c0f64
mov rax, qword [fcn.1401c9410]
mov rcx, r12
call qword [0x1402f5008]
mov r15, qword [rsp + 0x68]
mov eax, dword [0x1402e5c18]
mov ecx, dword [0x1402db110]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401c0a5b
lea rcx, [0x1402e5c10]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401c0b0e
mov eax, dword [0x1402e5c38]
mov ecx, dword [0x1402db110]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401c0a90
cmp qword [0x1402e5c30], 0
jne 0x1401c0873
mov qword [rsp + 0x70], 0
lea rcx, [0x1402e5c10]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r12, qword [rsp + 0x70]
test r12, r12
jne 0x1401c0854
mov byte [rsp + 0x78], 1
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x1401c0691
cmp qword [rsp + 0x48], 0
jne 0x1401c0691
xor edx, edx
call fcn.1401c6f60
test byte [0x1402d90d0], 0x19
jne 0x1401c0f3b
mov ebp, 0xffffffff
test r14, r14
js 0x1401c0708
test esi, esi
js 0x1401c0708
xorpd xmm0, xmm0
movapd xmmword [rsp + 0xa0], xmm0
movapd xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0xa0], r14
mov dword [rsp + 0xc0], 0xaaaaaaaa
mov rcx, qword [rbx]
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xc0]
mov rdx, rdi
mov r8d, esi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1401c0f1f
mov ebp, dword [rsp + 0xc0]
test byte [0x1402d90d0], 0x19
jne 0x1401c0f90
call fcn.1401cbc78
mov ebx, dword [rax]
call fcn.1401cbc78
mov dword [rax], 0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r14, qword [rsp + 0x40]
test r14, r14
je 0x1401c07b3
cmp qword [rsp + 0x48], 0
jne 0x1401c07b3
cmp byte [r14 + 0x19], 0
je 0x1401c07b3
mov rdi, qword [r14 + 0x28]
add rdi, 0x28
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401c09e5
mov qword [r14 + 0x20], 0
cmp byte [r14 + 0x3b], 0
jne 0x1401c07a3
cmp byte [r14 + 0x39], 0
mov rax, qword [r14 + 0x28]
jne 0x1401c09f3
dec dword [rax + 0x140]
cmp byte [r14 + 0x19], 0
je 0x1401c1028
cmp byte [r14 + 0x18], 0
je 0x1401c0973
mov word [r14 + 0x39], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.1401cbc78
mov dword [rax], ebx
cmp byte [rsp + 0x78], 0
je 0x1401c07d7
mov rbx, qword [rsp + 0x70]
test rbx, rbx
jne 0x1401c0903
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x1401c07e9
mov rcx, qword [rsp + 0x58]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x48]
mov rax, qword [0x1402cbde0]
and rax, rcx
cmp rax, qword [0x1402cbdc8]
je 0x1401c0b20
mov qword [rsp + 0x48], 0
mov rcx, qword [rsp + 0x40]
mov rax, qword [0x1402cbde0]
and rax, rcx
cmp rax, qword [0x1402cbdc8]
je 0x1401c086c
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
call fcn.1401ce5b0
mov eax, ebp
movaps xmm6, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [r12 + 0x1f0]
cmp qword [rsp + 0x68], rax
jge 0x1401c0673
jmp 0x1401c0f57
call fcn.1401509f0
jmp 0x1401c0826
mov eax, dword [0x1402e5c28]
mov ecx, dword [0x1402db110]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401c0a26
mov r13, qword [0x1402e5c20]
mov rbp, r15
test r13, r13
je 0x1401c0c5c
mov eax, 0x3938700
add rax, qword [r13 + 0x1f0]
movabs rbp, 0x7fffffffffffffff
cmovno rbp, rax
cmp rbp, r15
jle 0x1401c0c5c
mov qword [rsp + 0x70], r13
mov eax, 1
lock xadd dword [r13], eax
cmp eax, 0x7fffffff
lea r13, [rsp + 0xc0]
jne 0x1401c0658
jmp 0x1401c0f61
mov rcx, r12
call fcn.1401508a0
jmp 0x1401c050e
mov rax, qword [fcn.1401c9410]
lea rsi, [rsp + 0xc0]
mov rcx, rsi
call qword [0x1402f5008]
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsi]
xor eax, eax
cmp rsi, r14
setns al
movabs r12, 0x7fffffffffffffff
add rax, r12
mov r15, rsi
sub r15, r14
cmovo r15, rax
cmp r15, 0xf4240
jge 0x1401c0b37
mov rsi, qword [rsp + 0x70]
test rsi, rsi
je 0x1401c07d7
lock dec dword [rsi]
jne 0x1401c07d7
jmp 0x1401c1013
mov cl, byte [rax + 0x20]
jmp 0x1401c0575
cmp byte [r14 + 0x3a], 0
mov rcx, qword [r14 + 0x28]
jne 0x1401c0c4b
dec dword [rcx + 0x144]
jmp 0x1401c07a3
mov eax, dword [0x1402e6028]
mov ecx, dword [0x1402db110]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401c0ac5
cmp byte [0x1402e6024], 0
jne 0x1401c0678
mov cl, byte [rsp + 0x60]
mov rax, qword [rsp + 0x48]
jmp 0x1401c05a3
test rax, rax
je 0x1401c0678
cmp byte [rax + 0x38], 0
je 0x1401c0678
jmp 0x1401c10b3
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1401c0769
mov rcx, qword [rax + 0x40]
mov rdx, qword [rax + 0x120]
dec rdx
mov qword [rax + 0x120], rdx
cmp rcx, qword [rax + 0x48]
je 0x1401c0a1b
cmp qword [rax + 0x130], rdx
jae 0x1401c0b2a
mov word [rax + 0x78], 0
jmp 0x1401c078d
lea rcx, [0x1402e5c28]
call fcn.1401cc16c
cmp dword [0x1402e5c28], 0xffffffff
jne 0x1401c0898
mov qword [0x1402e5c20], 0
lea rcx, [0x1402e5c28]
call fcn.1401cc1d4
jmp 0x1401c0898
lea rcx, [0x1402e5c18]
call fcn.1401cc16c
cmp dword [0x1402e5c18], 0xffffffff
jne 0x1401c0607
mov qword [0x1402e5c10], 0
lea rcx, [0x1402e5c18]
call fcn.1401cc1d4
jmp 0x1401c0607
lea rcx, [0x1402e5c38]
call fcn.1401cc16c
cmp dword [0x1402e5c38], 0xffffffff
jne 0x1401c0641
mov qword [0x1402e5c30], 0
lea rcx, [0x1402e5c38]
call fcn.1401cc1d4
jmp 0x1401c0641
lea rcx, [0x1402e6028]
call fcn.1401cc16c
cmp dword [0x1402e6028], 0xffffffff
jne 0x1401c09b2
mov rcx, qword [0x1402e5ab0]
test rcx, rcx
je 0x1401c0af6
lea rdx, str.enable_background_thread_pool
call fcn.1401a49f0
mov byte [0x1402e6024], 1
lea rcx, [0x1402e6028]
call fcn.1401cc1d4
jmp 0x1401c09b2
lea rcx, [0x1402e5c10]
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1401c061c
call fcn.1401509f0
jmp 0x1401c0805
movzx ecx, word [rcx + 0x10]
mov word [rax + 0x78], cx
jmp 0x1401c078d
mov eax, 0x3938700
add rax, qword [rbx + 0x1f0]
cmovo rax, r12
cmp rax, rsi
jle 0x1401c1076
mov rax, qword [rbx + 0x1f0]
xor edx, edx
cmp r14, rax
setns dl
add rdx, r12
mov rcx, r14
sub rcx, rax
movabs r12, 0x8000000000000001
cmovo rcx, rdx
lea rdx, [rcx + r12]
cmp rdx, 2
jb 0x1401c105d
cvtsi2sd xmm0, rcx
divsd xmm0, qword [0x1402a8c80]
call fcn.140206160
movsd xmm6, qword [0x1402909c0]
ucomisd xmm6, xmm0
jb 0x1401c0e8b
maxsd xmm0, qword [0x1402909d8]
cvttsd2si edi, xmm0
add r12, r15
cmp r12, 2
jb 0x1401c0e72
xorps xmm0, xmm0
cvtsi2sd xmm0, r15
divsd xmm0, qword [0x1402a8c80]
call fcn.140206210
ucomisd xmm6, xmm0
jb 0x1401c0e59
maxsd xmm0, qword [0x1402909d8]
cvttsd2si r14d, xmm0
mov r15, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov r12, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
add r14d, edi
cmp r14d, 0x3c
mov r13d, 0x3c
cmovl r13d, r14d
lea rsi, [rbx + 8]
mov rcx, rsi
call r15
test al, al
je 0x1401c0ebc
cmp edi, r13d
jge 0x1401c0c36
movsxd rax, edi
movsxd rcx, r13d
inc qword [rbx + rax*8 + 0x10]
inc rax
cmp rcx, rax
jne 0x1401c0c29
mov rcx, rsi
call r12
cmp r14d, 0x3d
jl 0x1401c094f
jmp 0x1401c0ea2
dec qword [rcx + 0x128]
call fcn.140207030
jmp 0x1401c07a3
xor eax, eax
cmp r15, rbp
setns al
movabs rcx, 0x7fffffffffffffff
add rax, rcx
mov rcx, r15
sub rcx, rbp
cmovo rcx, rax
cmp rcx, 0x989680
jge 0x1401c0eca
mov ecx, 0x208
call fcn.1401cbbc4
mov r12, rax
mov dword [rax], 0
lea rcx, [rax + 8]
mov r8d, 0x1e8
xor edx, edx
call fcn.1401d06e0
mov qword [r12 + 0x1f0], rbp
mov qword [r12 + 0x1f8], 0
mov byte [r12 + 0x200], 0
test r12, r12
je 0x1401c0ce4
mov eax, 1
lock xadd dword [r12], eax
cmp eax, 0x7fffffff
je 0x1401c1054
test r13, r13
je 0x1401c0d25
cmp byte [r13 + 0x200], 0
jne 0x1401c0d25
test r12, r12
je 0x1401c0d0e
mov eax, 1
lock xadd dword [r12], eax
cmp eax, 0x7fffffff
je 0x1401c105a
mov rbp, qword [r13 + 0x1f8]
mov qword [r13 + 0x1f8], r12
test rbp, rbp
jne 0x1401c0ef3
test r12, r12
je 0x1401c0d40
mov eax, 1
lock xadd dword [r12], eax
cmp eax, 0x7fffffff
je 0x1401c1057
mov r13, qword [0x1402e5c20]
mov qword [0x1402e5c20], r12
test r13, r13
je 0x1401c0d6a
lock dec dword [r13]
jne 0x1401c0d6a
mov rcx, r13
call fcn.140016cb0
mov rcx, r13
call fcn.1401cbbbc
lea rcx, [0x1402e5c10]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [r12 + 0x1f0]
xor edx, edx
cmp r15, rax
setns dl
movabs r8, 0x7fffffffffffffff
add rdx, r8
mov rcx, r15
sub rcx, rax
movabs r10, 0x8000000000000001
cmovo rcx, rdx
lea rdx, [rcx + r10]
cmp rdx, 2
jb 0x1401c0eda
mov r15d, 0x3938700
xor eax, eax
cmp r15, rcx
setns al
add rax, r8
sub r15, rcx
cmovo r15, rax
mov ecx, 0x28
call fcn.1401cbbc4
mov r13, rax
mov dword [rax], 1
lea rax, [0x140058660]
mov qword [r13 + 8], rax
lea rax, [0x14005e8f0]
mov qword [r13 + 0x10], rax
lea rax, [0x1401ca7d0]
mov qword [r13 + 0x18], rax
lea rdx, str.MonitorNextJankWindowIfNecessary
lea r8, str.scoped_blocking_call_internal.cc
lea rbp, [rsp + 0x90]
mov rcx, rbp
mov r9d, 0xca
call fcn.140158eb0
lea r9, [rsp + 0x88]
mov qword [r9], r13
mov qword [rsp + 0x20], r15
lea r8, [0x1402a955e]
xor ecx, ecx
mov rdx, rbp
call fcn.140016070
mov qword [rsp + 0x70], r12
lea r13, [rsp + 0xc0]
jmp 0x1401c066a
xor eax, eax
ucomisd xmm0, qword [0x1402909d8]
mov r14d, 0x7fffffff
cmovb r14d, eax
jmp 0x1401c0bed
xor eax, eax
cmp rsi, r14
setl al
lea rcx, [0x1402a70d0]
movsd xmm0, qword [rcx + rax*8]
jmp 0x1401c0bc9
xor eax, eax
ucomisd xmm0, qword [0x1402909d8]
mov edi, 0x7fffffff
cmovb edi, eax
jmp 0x1401c0bb4
mov rbx, qword [rbx + 0x1f8]
sub r14d, r13d
xor edi, edi
test rbx, rbx
jne 0x1401c0bfb
jmp 0x1401c094f
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1401c0c1e
mov byte [r13 + 0x200], 1
mov rbp, r15
jmp 0x1401c0c88
mov r9, r10
xor ecx, ecx
cmp rax, r15
setg cl
not rcx
mov r15, r10
add r15, rcx
jmp 0x1401c0dce
lock dec dword [rbp]
jne 0x1401c0d25
mov rcx, rbp
call fcn.140016cb0
mov rcx, rbp
call fcn.1401cbbbc
jmp 0x1401c0d25
mov rcx, r12
call fcn.1401508a0
jmp 0x1401c054b
mov ebp, 0xffffffff
jmp 0x1401c0708
mov rcx, r12
call fcn.1402495d0
mov byte [rsp + 0x78], 0
jmp 0x1401c05c4
lea rdx, [rsp + 0x90]
mov qword [rdx], r13
lea rcx, str.ScopedBlockingCall
call fcn.1402380c0
jmp 0x1401c069e
mov qword [rsp + 0x68], rax
jmp 0x1401c0673
int3
lea rax, str.null_pointer_given_to_construct_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h
lea r9, str.__location___nullptr
mov r8d, 0x28
call fcn.140207060
lea rsi, [rsp + 0xc0]
movapd xmmword [rsi + 0x10], xmm6
movapd xmmword [rsi], xmm6
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x30], 0
lea r8, [0x1402d90d0]
lea r9, [0x1402a4a7e]
mov rcx, rsi
mov dl, 0x45
call fcn.140206a10
mov rax, qword [rsi]
test rax, rax
je 0x1401c1001
mov dl, byte [rsp + 0xd8]
mov r8, qword [rsp + 0xc8]
xor r9d, r9d
lea rcx, [rsp + 0x90]
mov qword [rcx], r9
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], r8
mov qword [rcx + 0x18], r9
mov byte [rcx + 0x20], dl
call fcn.140206a20
lea rcx, [rsp + 0xc0]
call fcn.1402308a0
jmp 0x1401c0715
mov rcx, rsi
call fcn.140016cb0
mov rcx, rsi
call fcn.1401cbbbc
jmp 0x1401c07d7
lea rax, str.optional_operator_called_on_a_disengaged_value
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcincludeoptional
lea r9, str.this__has_value__
mov r8d, 0x3fd
call fcn.140207060
int3
int3
int3
xor ecx, ecx
cmp rax, r14
setg cl
lea rax, [0x1402a70d0]
movsd xmm0, qword [rax + rcx*8]
jmp 0x1401c0b89
lea rdi, [rsp + 0x90]
mov rcx, rdi
mov rdx, rsi
call fcn.1400586d0
mov rdi, qword [rdi]
test rdi, rdi
je 0x1401c0b50
lock dec dword [rdi]
jne 0x1401c0b50
mov rcx, rdi
call fcn.140016cb0
mov rcx, rdi
call fcn.1401cbbbc
jmp 0x1401c0b50
mov r12, qword [rax + 0x30]
mov qword [rax + 0x30], 0
test r12, r12
je 0x1401c0678
lock dec dword [r12]
jne 0x1401c0678
mov rcx, r12
call fcn.140016cb0
mov rcx, r12
call fcn.1401cbbbc
jmp 0x1401c0678