Function at 0x14012c310
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 [0x140260028]
xor rax, rsp
mov qword [rsp + 0xb0], rax
movaps xmm0, xmmword [0x14022cb50]
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], 0x83
movzx eax, byte [0x140272043]
test al, al
jne 0x14012ca86
movabs r14, 0x8000000000000001
cmp byte [rsi + 0xe0], 0
jne 0x14012c3bc
mov rax, qword [rsi + 0x70]
mov rcx, qword [rax + 0x250]
mov rax, qword [rcx + 0x10]
cmp rax, qword [rcx + 0x18]
je 0x14012c579
cmp dword [rax + 0x14], 2
sete bl
cmp byte [rsi + 0x89], bl
jne 0x14012c587
mov r15, qword [rsi + 0x70]
mov rdi, qword [r15 + 0x248]
test rdi, rdi
jne 0x14012cb68
cmp byte [r15 + 0x260], 1
je 0x14012c8c8
lea rdi, [r15 + 0x318]
mov rax, rdi
mov rax, qword [rax + 8]
cmp rax, rdi
jne 0x14012c79d
cmp qword [r15 + 0x2d0], 0
jne 0x14012c405
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 0x14012c4c4
cmp byte [rsi + 0x120], 1
jne 0x14012c4bd
mov eax, dword [0x14026ee18]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rdi, qword [rax + 0x158]
test rdi, rdi
je 0x14012c4bd
mov rax, qword [rdi + 0x10]
test rax, rax
js 0x14012ca06
cmp dword [rdi + 0x24], 1
movabs rbx, 0x4000000000000000
jne 0x14012cab3
cmp qword [rdi + 0x18], 0
jne 0x14012caf4
movabs rax, 0xbfffffffffffffff
lock and qword [rdi + 0x10], rax
mov r15, qword [rsi + 0x128]
cmp qword [rdi + 0x18], 0
jne 0x14012cb1a
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 0x14012ca17
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 0x14012ca2a
mov rax, qword [rsi + 0x18]
cmp qword [rsi + 0x10], rax
je 0x14012ca04
mov rax, qword [rax - 8]
cmp byte [rax + 0xf], 1
je 0x14012c750
mov qword [rsp + 0xa8], 0x83
movzx eax, byte [0x140272043]
test al, al
jne 0x14012ca5c
cmp byte [rsp + 0x70], 1
jne 0x14012c554
mov rcx, qword [rsp + 0x68]
lea rdx, [rsp + 0x50]
call fcn.1400d6fe0
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.140149190
nop
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 0x14012c3bc
mov byte [rsi + 0x89], bl
mov eax, dword [0x140272458]
mov ecx, dword [0x14026ee18]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14012c9b1
mov rdi, qword [0x140272450]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14012cc1c
movzx ebp, bl
dec ebp
or ebp, 1
test byte [0x14027240c], 1
mov eax, 1
mov ecx, 8
cmovne ecx, eax
xor r15d, r15d
add ebp, dword [0x140272410]
mov dword [0x140272410], ebp
cmovne r15d, ecx
mov eax, dword [0x140272414]
cmp r15d, eax
je 0x14012c742
test eax, eax
je 0x14012c6cf
mov rax, qword [0x1402626c0]
lea rcx, [0x140136f50]
lea rbx, [rsp + 0x80]
cmp rax, rcx
jne 0x14012cc3a
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 0x14012cc8e
imul rax, rax, 0xf4240
cqo
idiv qword [0x140272470]
mov qword [rsp + 0x80], rax
mov rcx, qword [0x140272460]
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 [0x140272418]
cmp rdx, 2
jb 0x14012cc72
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
mov rax, rcx
mov qword [0x140272418], rax
mov ecx, dword [0x140272414]
call qword [sym.imp.WINMM.dll_timeEndPeriod]
mov dword [0x140272414], r15d
test ebp, ebp
je 0x14012c742
mov rax, qword [0x1402626c0]
lea rcx, [0x140136f50]
lea rbx, [rsp + 0x80]
cmp rax, rcx
jne 0x14012cc29
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 0x14012cc4b
imul rax, rax, 0xf4240
cqo
idiv qword [0x140272470]
mov qword [0x140272460], rax
mov ecx, dword [0x140272414]
call qword [sym.imp.WINMM.dll_timeBeginPeriod]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x14012c3bc
mov qword [rsp + 0xa8], 0x91
mov cl, byte [0x140272051]
test cl, cl
jne 0x14012cd50
add rsi, 8
mov qword [rsp + 0xa8], 0x91
mov al, byte [0x140272051]
test al, al
jne 0x14012ccff
mov rax, qword [rsi]
mov rax, qword [rax + 0x10]
mov rcx, rsi
call qword [0x1402529a0]
jmp 0x14012c523
cmp qword [rax + 0x10], 0
je 0x14012c3e8
mov bpl, byte [r15 + 0x330]
mov byte [r15 + 0x330], 1
mov rax, rdi
mov rax, qword [rax + 8]
cmp rax, rdi
je 0x14012c87e
cmp qword [rax + 0x10], 0
je 0x14012c7ba
lea r12, [r15 + 0x350]
mov r13, qword [rax + 8]
cmp r12, rax
je 0x14012c822
cmp r13, r12
je 0x14012c822
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 0x14012ccbe
mov qword [rax + 0x10], 0
mov rax, qword [rbx + 8]
mov rcx, rbx
call qword [0x1402529a0]
lock dec dword [rbx]
jne 0x14012c862
mov rax, qword [rbx + 0x10]
lea rcx, [0x1401ff0e0]
cmp rax, rcx
je 0x14012c8a9
mov rcx, rbx
call qword [0x1402529a0]
cmp r13, rdi
je 0x14012c872
cmp qword [r13 + 0x10], 0
je 0x14012ccb5
mov rax, r13
cmp r13, rdi
jne 0x14012c7d5
mov byte [r15 + 0x330], bpl
test bpl, bpl
jne 0x14012c3f5
mov rcx, rdi
call fcn.140005d40
cmp qword [r15 + 0x338], 0
je 0x14012c3f5
jmp 0x14012ccc1
mov rcx, qword [rbx + 0x28]
test rcx, rcx
jne 0x14012c8bc
mov rcx, rbx
call fcn.140146640
jmp 0x14012c862
lock dec dword [rcx]
jne 0x14012c8b2
call fcn.140146640
jmp 0x14012c8b2
lea rdi, [r15 - 8]
mov qword [rsp + 0xa0], 0x83
mov al, byte [0x140272043]
test al, al
jne 0x14012ccd2
mov rcx, rdi
call fcn.140005b40
mov rax, qword [r15 + 0x368]
mov rax, qword [fcn.140144d80]
lea rcx, [0x140136f50]
lea rdi, [rsp + 0xa8]
cmp rax, rcx
jne 0x14012c9f3
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 0x14012cd29
imul rax, rax, 0xf4240
cqo
idiv qword [0x140272470]
add rax, 0x1c9c380
movabs rcx, 0x7fffffffffffffff
cmovno rcx, rax
mov qword [r15 + 0x268], rcx
mov byte [r15 + 0x260], 0
mov qword [rsp + 0xa0], 0x83
mov al, byte [0x140272043]
test al, al
je 0x14012c3de
movzx ecx, al
lea r8, [rsp + 0xa8]
mov qword [r8], 0
lea rdx, [rsp + 0xa0]
mov r9d, 2
call fcn.1400d8460
jmp 0x14012c3de
lea rcx, [0x140272458]
call fcn.1401467a0
cmp dword [0x140272458], 0xffffffff
jne 0x14012c5b2
mov ecx, 8
call fcn.140146648
mov qword [rax], 0
mov qword [0x140272450], rax
lea rcx, [0x140272458]
call fcn.140146740
jmp 0x14012c5b2
mov rcx, rdi
call qword [0x1402529a0]
mov rax, qword [rdi]
jmp 0x14012c94a
ud2
mov rcx, qword [0x140272538]
call fcn.1401ac4c0
jmp 0x14012c45f
lea rdx, [rsp + 0x50]
mov rcx, qword [rdx + 0x18]
call fcn.1400d6fe0
jmp 0x14012c4d6
lea rcx, [rsp + 0x50]
lea rdi, [rsp + 0x80]
mov rdx, rdi
call fcn.140139960
mov rax, qword [rsi + 0xa0]
cmp rax, qword [rdi]
jg 0x14012c507
mov rax, qword [rsi + 8]
add rsi, 8
jmp 0x14012c78b
movzx ecx, al
lea r8, [rsp + 0x80]
mov qword [r8], 0
lea rdx, [rsp + 0xa8]
mov r9d, 2
call fcn.1400d8460
jmp 0x14012c53e
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.1400d8460
jmp 0x14012c37d
cmp byte [rsi + 0x130], 1
jne 0x14012c48d
cmp qword [rdi + 0x18], 0
jne 0x14012cad1
lock or qword [rdi + 0x10], rbx
jmp 0x14012c48d
lea rcx, [rdi + 0x18]
mov r15, qword [rdi + 0x10]
call fcn.1401ac510
movabs rcx, 0xff00000000000000
and rcx, r15
or rcx, rax
mov qword [rdi + 0x10], rcx
jmp 0x14012cac7
lea rcx, [rdi + 0x18]
mov r15, qword [rdi + 0x10]
call fcn.1401ac510
movabs rcx, 0xff00000000000000
and rcx, r15
or rcx, rax
mov qword [rdi + 0x10], rcx
jmp 0x14012c47e
lea rcx, [rdi + 0x18]
mov r12, qword [rdi + 0x10]
call fcn.1401ac510
movabs rcx, 0xff00000000000000
and rcx, r12
or rcx, rax
mov qword [rdi + 0x10], rcx
jmp 0x14012c49f
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 0x14012cb9a
mov rcx, qword [r15 + 0x250]
mov rax, qword [rcx + 0x10]
xor r12d, r12d
cmp rax, qword [rcx + 0x18]
je 0x14012cb40
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 [0x1402529a0]
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 [0x1402529a0]
test al, al
je 0x14012c3d0
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 0x14012c792
mov rcx, rdi
call sub.KERNEL32.dll_AcquireSRWLockExclusive
jmp 0x14012c5ca
mov rcx, rbx
call qword [0x1402529a0]
mov rax, qword [rbx]
jmp 0x14012c72f
mov rcx, rbx
call qword [0x1402529a0]
mov rax, qword [rbx]
jmp 0x14012c66d
mov rcx, qword [0x140272470]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14012c72f
lea rdx, [rcx + r14]
cmp rdx, 2
setae dl
cmp rcx, rax
sete cl
or cl, dl
jne 0x14012c6bc
int3
mov rcx, qword [0x140272470]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14012c665
mov r13, qword [r13 + 8]
jmp 0x14012c862
int3
lea rcx, [r15 + 0x338]
call fcn.140144c80
jmp 0x14012c3f5
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.1400d8460
jmp 0x14012c8e6
movzx ecx, al
lea r8, [rsp + 0x80]
mov qword [r8], 0
lea rdx, [rsp + 0xa8]
mov r9d, 2
call fcn.1400d8460
jmp 0x14012c788
mov rcx, qword [0x140272470]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14012c94a
movzx ecx, cl
lea rdx, str.RunLoop_ExitedOnIdle
lea r8, [rsp + 0x80]
mov qword [r8], rdx
mov qword [rsp + 0x40], rax
lea rax, [0x140232a18]
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.14010a430
jmp 0x14012c76a