Function at 0x14009a640
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov rsi, rcx
mov rax, qword [0x140231028]
xor rax, rsp
mov qword [rsp + 0xb0], rax
movaps xmm0, xmmword [0x1401fd0c0]
movaps xmmword [rsp + 0x50], xmm0
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x70], rax
movaps xmmword [rsp + 0x60], xmm0
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x70], 0
mov qword [rsp + 0xa8], 0x84
movzx eax, byte [0x140243604]
test al, al
jne 0x14009adc8
movabs r14, 0x8000000000000001
cmp byte [rsi + 0xe0], 0
jne 0x14009a6ec
mov rax, qword [rsi + 0x70]
mov rcx, qword [rax + 0x250]
mov rax, qword [rcx + 0x10]
cmp rax, qword [rcx + 0x18]
je 0x14009a8aa
cmp dword [rax + 0x14], 2
sete bl
cmp byte [rsi + 0x89], bl
jne 0x14009a8b8
mov r15, qword [rsi + 0x70]
mov rdi, qword [r15 + 0x248]
test rdi, rdi
jne 0x14009aeaa
cmp byte [r15 + 0x260], 1
je 0x14009abf9
lea rdi, [r15 + 0x318]
mov rax, rdi
mov rax, qword [rax + 8]
cmp rax, rdi
jne 0x14009aace
cmp qword [r15 + 0x2d0], 0
jne 0x14009a735
lock or dword [r15 + 0x60], 2
mov rax, qword [rsi + 0xf0]
mov ecx, dword [rax]
lea edx, [rcx + 1]
cmp edx, 1
adc ecx, 1
mov dword [rax], ecx
cmp byte [rsi + 0x138], 1
jne 0x14009a7f4
cmp byte [rsi + 0x120], 1
jne 0x14009a7ed
mov eax, dword [0x1402403d0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rdi, qword [rax + 0x160]
test rdi, rdi
je 0x14009a7ed
mov rax, qword [rdi + 0x10]
test rax, rax
js 0x14009ad24
cmp dword [rdi + 0x24], 1
movabs rbx, 0x4000000000000000
jne 0x14009adf5
cmp qword [rdi + 0x18], 0
jne 0x14009ae36
movabs rax, 0xbfffffffffffffff
lock and qword [rdi + 0x10], rax
mov r15, qword [rsi + 0x128]
cmp qword [rdi + 0x18], 0
jne 0x14009ae5c
mov rax, qword [rdi + 0x10]
and rax, rbx
movabs rcx, 0xffffffffffffff
and r15, rcx
or r15, rax
mov qword [rdi + 0x10], r15
dec dword [rdi + 0x24]
mov byte [rsi + 0x138], 0
lea rdi, [rsi - 0xd0]
cmp byte [rsp + 0x70], 1
je 0x14009ad59
mov rax, qword [rsi - 0xe0]
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x58], 0
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdi
mov byte [rsp + 0x70], 1
add r14, 0xfffffffffffffffe
cmp qword [rsi + 0xa0], r14
jne 0x14009ad6c
mov rax, qword [rsi + 0x18]
cmp qword [rsi + 0x10], rax
je 0x14009ad46
mov rax, qword [rax - 8]
cmp byte [rax + 0xf], 1
je 0x14009aa81
mov qword [rsp + 0xa8], 0x84
movzx eax, byte [0x140243604]
test al, al
jne 0x14009ad9e
cmp byte [rsp + 0x70], 1
jne 0x14009a884
mov rcx, qword [rsp + 0x68]
lea rdx, [rsp + 0x50]
call fcn.1400a03b0
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.14012c2d0
xor eax, eax
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor ebx, ebx
cmp byte [rsi + 0x89], bl
je 0x14009a6ec
mov byte [rsi + 0x89], bl
mov eax, dword [0x1402439c8]
mov ecx, dword [0x1402403d0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14009ace2
mov rdi, qword [0x1402439c0]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14009af5e
movzx ebp, bl
dec ebp
or ebp, 1
test byte [0x14024397c], 1
mov eax, 1
mov ecx, 8
cmovne ecx, eax
xor r15d, r15d
add ebp, dword [0x140243980]
mov dword [0x140243980], ebp
cmovne r15d, ecx
mov eax, dword [0x140243984]
cmp r15d, eax
je 0x14009aa73
test eax, eax
je 0x14009aa00
mov rax, qword [0x1402336c0]
lea rcx, [0x1400b3340]
lea rbx, [rsp + 0x80]
cmp rax, rcx
jne 0x14009af7c
mov qword [rbx], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbx]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x14009afd0
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402439e0]
mov qword [rsp + 0x80], rax
mov rcx, qword [0x1402439d0]
xor edx, edx
cmp rax, rcx
setns dl
movabs r8, 0x7fffffffffffffff
add r8, rdx
sub rax, rcx
cmovo rax, r8
lea rdx, [rax + r14]
mov rcx, qword [0x140243988]
cmp rdx, 2
jb 0x14009afb4
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
mov rax, rcx
mov qword [0x140243988], rax
mov ecx, dword [0x140243984]
call qword [sym.imp.WINMM.dll_timeEndPeriod]
mov dword [0x140243984], r15d
test ebp, ebp
je 0x14009aa73
mov rax, qword [0x1402336c0]
lea rcx, [0x1400b3340]
lea rbx, [rsp + 0x80]
cmp rax, rcx
jne 0x14009af6b
mov qword [rbx], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbx]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x14009af8d
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402439e0]
mov qword [0x1402439d0], rax
mov ecx, dword [0x140243984]
call qword [sym.imp.WINMM.dll_timeBeginPeriod]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x14009a6ec
mov qword [rsp + 0xa8], 0x92
mov cl, byte [0x140243612]
test cl, cl
jne 0x14009b092
add rsi, 8
mov qword [rsp + 0xa8], 0x92
mov al, byte [0x140243612]
test al, al
jne 0x14009b068
mov rax, qword [rsi]
mov rax, qword [rax + 0x10]
mov rcx, rsi
call qword [0x140223bc8]
jmp 0x14009a853
cmp qword [rax + 0x10], 0
je 0x14009a718
mov bpl, byte [r15 + 0x330]
mov byte [r15 + 0x330], 1
mov rax, rdi
mov rax, qword [rax + 8]
cmp rax, rdi
je 0x14009abaf
cmp qword [rax + 0x10], 0
je 0x14009aaeb
lea r12, [r15 + 0x350]
mov r13, qword [rax + 8]
cmp r12, rax
je 0x14009ab53
cmp r13, r12
je 0x14009ab53
mov rcx, qword [rax]
mov qword [rcx + 8], r13
mov rcx, qword [rax]
mov rdx, qword [rax + 8]
mov qword [rdx], rcx
mov rcx, qword [r15 + 0x350]
mov qword [rcx + 8], rax
mov rcx, qword [r15 + 0x350]
mov qword [rax], rcx
mov qword [r15 + 0x350], rax
mov qword [rax + 8], r12
dec qword [r15 + 0x328]
inc qword [r15 + 0x360]
mov rbx, qword [rax + 0x10]
test rbx, rbx
je 0x14009aff7
mov qword [rax + 0x10], 0
mov rax, qword [rbx + 8]
mov rcx, rbx
call qword [0x140223bc8]
lock dec dword [rbx]
jne 0x14009ab93
mov rax, qword [rbx + 0x10]
lea rcx, [0x1401eb230]
cmp rax, rcx
je 0x14009abda
mov rcx, rbx
call qword [0x140223bc8]
cmp r13, rdi
je 0x14009aba3
cmp qword [r13 + 0x10], 0
je 0x14009affa
mov rax, r13
cmp r13, rdi
jne 0x14009ab06
mov byte [r15 + 0x330], bpl
test bpl, bpl
jne 0x14009a725
mov rcx, rdi
call fcn.140002ce0
cmp qword [r15 + 0x338], 0
je 0x14009a725
jmp 0x14009b030
mov rcx, qword [rbx + 0x28]
test rcx, rcx
jne 0x14009abed
mov rcx, rbx
call fcn.1401298a0
jmp 0x14009ab93
lock dec dword [rcx]
jne 0x14009abe3
call fcn.1401298a0
jmp 0x14009abe3
lea rdi, [r15 - 8]
mov qword [rsp + 0xa0], 0x84
mov al, byte [0x140243604]
test al, al
jne 0x14009b003
mov rcx, rdi
call fcn.14004d280
mov rax, qword [r15 + 0x368]
mov rax, qword [fcn.1400b3290]
lea rcx, [0x1400b3340]
lea rdi, [rsp + 0xa8]
cmp rax, rcx
jne 0x14009ad35
mov qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rdi]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x14009b041
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402439e0]
add rax, 0x1c9c380
movabs rcx, 0x7fffffffffffffff
cmovno rcx, rax
mov qword [r15 + 0x268], rcx
mov byte [r15 + 0x260], 0
mov qword [rsp + 0xa0], 0x84
mov al, byte [0x140243604]
test al, al
je 0x14009a70e
movzx ecx, al
lea r8, [rsp + 0xa8]
mov qword [r8], 0
lea rdx, [rsp + 0xa0]
mov r9d, 2
call fcn.1400a1f00
jmp 0x14009a70e
lea rcx, [0x1402439c8]
call fcn.1401299b4
cmp dword [0x1402439c8], 0xffffffff
jne 0x14009a8e3
mov ecx, 8
call fcn.1401298a8
mov qword [rax], 0
mov qword [0x1402439c0], rax
lea rcx, [0x1402439c8]
call fcn.140129a1c
jmp 0x14009a8e3
mov rcx, qword [0x140243aa8]
call fcn.1401632a0
jmp 0x14009a78f
mov rcx, rdi
call qword [0x140223bc8]
mov rax, qword [rdi]
jmp 0x14009ac7b
lea rcx, [0x14020233c]
lea rdx, str....._third_partylibc_srcinclude_vector:622:_assertion__empty___failed:_back___called_on_an_empty_vector_n
call fcn.140163630
lea rdx, [rsp + 0x50]
mov rcx, qword [rdx + 0x18]
call fcn.1400a03b0
jmp 0x14009a806
lea rcx, [rsp + 0x50]
lea rdi, [rsp + 0x80]
mov rdx, rdi
call fcn.1400a3ab0
mov rax, qword [rsi + 0xa0]
cmp rax, qword [rdi]
jg 0x14009a837
mov rax, qword [rsi + 8]
add rsi, 8
jmp 0x14009aabc
movzx ecx, al
lea r8, [rsp + 0x80]
mov qword [r8], 0
lea rdx, [rsp + 0xa8]
mov r9d, 2
call fcn.1400a1f00
jmp 0x14009a86e
movzx ecx, al
lea rax, str.SequenceManager::DoIdleWork
lea r8, [rsp + 0x80]
mov qword [r8], rax
lea rdx, [rsp + 0xa8]
mov r9d, 1
call fcn.1400a1f00
jmp 0x14009a6ad
cmp byte [rsi + 0x130], 1
jne 0x14009a7bd
cmp qword [rdi + 0x18], 0
jne 0x14009ae13
lock or qword [rdi + 0x10], rbx
jmp 0x14009a7bd
lea rcx, [rdi + 0x18]
mov r15, qword [rdi + 0x10]
call fcn.14018e130
movabs rcx, 0xff00000000000000
and rcx, r15
or rcx, rax
mov qword [rdi + 0x10], rcx
jmp 0x14009ae09
lea rcx, [rdi + 0x18]
mov r15, qword [rdi + 0x10]
call fcn.14018e130
movabs rcx, 0xff00000000000000
and rcx, r15
or rcx, rax
mov qword [rdi + 0x10], rcx
jmp 0x14009a7ae
lea rcx, [rdi + 0x18]
mov r12, qword [rdi + 0x10]
call fcn.14018e130
movabs rcx, 0xff00000000000000
and rcx, r12
or rcx, rax
mov qword [rdi + 0x10], rcx
jmp 0x14009a7cf
movabs rax, 0xaaaaaaaaaaaaaa00
lea rcx, [rax + 0xaa]
mov qword [rsp + 0x48], rcx
xor ebx, ebx
xor r13d, r13d
mov r12d, 0xaaaaaaaa
mov ebp, 0xaaaaaaaa
jmp 0x14009aedc
mov rcx, qword [r15 + 0x250]
mov rax, qword [rcx + 0x10]
xor r12d, r12d
cmp rax, qword [rcx + 0x18]
je 0x14009ae82
mov rcx, qword [rax]
mov rdx, qword [rax + 8]
mov qword [rsp + 0x48], rdx
mov ebp, dword [rax + 0x14]
movzx r13d, cl
mov rax, rcx
and rax, 0xffffffffffffff00
mov bl, 1
or r13, rax
mov rcx, qword [r15 + 0x28]
mov rax, qword [rcx]
mov rax, qword [rax + 0x50]
call qword [0x140223bc8]
lea rdx, [rsp + 0x80]
mov qword [rdx], r13
mov rcx, qword [rsp + 0x48]
mov qword [rdx + 8], rcx
mov dword [rdx + 0x10], r12d
mov dword [rdx + 0x14], ebp
mov byte [rdx + 0x18], bl
mov ecx, 0xaaaaaaaa
mov dword [rdx + 0x19], ecx
mov dword [rdx + 0x1c], ecx
mov rcx, qword [rdi]
mov r9, qword [rcx + 0x10]
mov rcx, rdi
mov r8d, eax
mov rax, r9
call qword [0x140223bc8]
test al, al
je 0x14009a700
mov rax, qword [rsi + 0xf0]
mov ecx, dword [rax]
lea edx, [rcx + 1]
cmp edx, 1
adc ecx, 1
mov dword [rax], ecx
mov rcx, qword [rsi + 0x140]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
jmp 0x14009aac3
mov rcx, rdi
call sub.KERNEL32.dll_AcquireSRWLockExclusive
jmp 0x14009a8fb
mov rcx, rbx
call qword [0x140223bc8]
mov rax, qword [rbx]
jmp 0x14009aa60
mov rcx, rbx
call qword [0x140223bc8]
mov rax, qword [rbx]
jmp 0x14009a99e
mov rcx, qword [0x1402439e0]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14009aa60
lea rdx, [rcx + r14]
cmp rdx, 2
setae dl
cmp rcx, rax
sete cl
or cl, dl
jne 0x14009a9ed
int3
mov rcx, qword [0x1402439e0]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14009a996
int3
mov r13, qword [r13 + 8]
jmp 0x14009ab93
movzx ecx, al
lea rax, str.SequenceManagerImpl::MaybeReclaimMemory
lea r8, [rsp + 0xa8]
mov qword [r8], rax
lea rdx, [rsp + 0xa0]
mov r9d, 1
call fcn.1400a1f00
jmp 0x14009ac17
lea rcx, [r15 + 0x338]
call fcn.140127fc0
jmp 0x14009a725
mov rcx, qword [0x1402439e0]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14009ac7b
movzx ecx, al
lea r8, [rsp + 0x80]
mov qword [r8], 0
lea rdx, [rsp + 0xa8]
mov r9d, 2
call fcn.1400a1f00
jmp 0x14009aab9
movzx ecx, cl
lea rdx, str.RunLoop_ExitedOnIdle
lea r8, [rsp + 0x80]
mov qword [r8], rdx
mov qword [rsp + 0x40], rax
lea rax, [0x140204430]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0x80
mov byte [rsp + 0x28], 0x42
lea rdx, [rsp + 0xa8]
mov r9d, 1
call fcn.1400e2580
jmp 0x14009aa9b