Function at 0x140150620
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, 0xe8
movaps xmmword [rsp + 0xd0], xmm6
mov r14, rcx
mov rax, qword [0x14029c028]
xor rax, rsp
mov qword [rsp + 0xc8], rax
mov bl, byte [0x1402aa9c0]
test bl, 0x19
jne 0x140150f49
movabs r15, 0xaaaaaaaaaaaaaaaa
xor eax, eax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], r15
mov rax, qword [r14 + 0x210]
mov byte [rax + 4], 1
mov ecx, 8
call fcn.140184dc4
mov dword [rax], 0
mov byte [rax + 4], 0
test rax, rax
je 0x1401506ae
mov ecx, 1
lock xadd dword [rax], ecx
cmp ecx, 0x7fffffff
je 0x140150ffd
mov rcx, qword [r14 + 0x210]
mov qword [r14 + 0x210], rax
test rcx, rcx
je 0x1401506ca
lock dec dword [rcx]
je 0x140150b0e
lea rsi, [rsp + 0xa0]
mov byte [rsi], 0xaa
lea rdx, str.UnregisterTaskQueue
lea r8, str....._base_task_sequence_manager_task_queue_impl.cc
lea rdi, [rsp + 0x78]
mov rcx, rdi
mov r9d, 0x11a
call fcn.1400ee990
mov rcx, rsi
mov rdx, rdi
call fcn.1401511c0
mov rsi, qword [r14 + 0x18]
mov eax, dword [rsi + 8]
nop dword [rax + rax]
mov ecx, eax
or ecx, 0x80000000
lock cmpxchg dword [rsi + 8], ecx
jne 0x140150710
mov edx, eax
shr edx, 0x1e
and edx, 1
test eax, eax
mov ecx, 2
cmovns ecx, edx
cmp ecx, 1
jne 0x1401510aa
test eax, 0x3fffffff
jne 0x140150fef
movabs r13, 0xfffffffc00000000
mov rcx, qword [rsi + 0x20]
mov rax, rcx
and rax, r13
cmp rax, qword [0x14029ce48]
je 0x140150ef6
mov qword [rsi + 0x20], 0
test byte [0x1402aa9c0], 0x19
jne 0x140150e62
mov qword [rsp + 0x70], r15
mov byte [rsp + 0x57], bl
lea rsi, [r14 + 0x20]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140151045
mov byte [r14 + 0x52], 1
mov r15, qword [r14 + 0x28]
mov r12, qword [r14 + 0x60]
lea rdi, [r14 + 0x60]
xorps xmm6, xmm6
movups xmmword [r14 + 0x38], xmm6
movups xmmword [r14 + 0x28], xmm6
mov qword [r14 + 0x48], 0
mov rbx, qword [r14 + 0x68]
cmp r12, rbx
jne 0x14015106b
mov qword [rsp + 0x58], r12
movups xmmword [rdi], xmm6
mov qword [rdi + 0x10], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [r14 + 0xa0]
test rcx, rcx
je 0x140150854
mov rax, qword [rcx]
mov rax, qword [rax + 8]
lea rdx, [0x14017dc50]
cmp rax, rdx
jne 0x140151053
movaps xmm0, xmmword [0x14026dc70]
lea r8, [rsp + 0xa0]
movaps xmmword [r8 + 0x10], xmm0
movaps xmmword [r8], xmm0
mov rax, qword [rcx + 0x38]
mov rax, qword [rax + 0x308]
xor edx, edx
mov byte [r8], dl
mov qword [r8 + 0x18], rax
lea r9, [rsp + 0x78]
mov byte [r9], dl
xorps xmm0, xmm0
movups xmmword [r9 + 8], xmm0
mov qword [r9 + 0x18], 0
mov rdx, r14
call fcn.140157a00
mov rsi, qword [r14 + 0x180]
mov qword [r14 + 0x180], 0
test rsi, rsi
jne 0x140150c85
mov rsi, qword [r14 + 0x188]
mov qword [r14 + 0x188], 0
test rsi, rsi
jne 0x140150c5e
mov rcx, qword [r14 + 0xa0]
mov rax, rcx
and rax, r13
cmp rax, qword [0x14029ce48]
je 0x140150c54
mov qword [r14 + 0xa0], 0
mov rcx, qword [r14 + 0xa8]
mov rax, rcx
and rax, r13
cmp rax, qword [0x14029ce48]
je 0x140151000
mov qword [r14 + 0xa8], 0
mov rax, qword [r14 + 0x1f8]
test rax, rax
je 0x1401509a1
mov rcx, qword [r14 + 0x200]
not rcx
lock and qword [rax], rcx
mov rdx, qword [r14 + 0x1f8]
cmp qword [rdx + 8], 0xffffffffffffffff
je 0x140150f00
mov rax, qword [r14 + 0x200]
test rax, rax
je 0x140150b04
tzcnt rax, rax
mov rsi, qword [rdx + rax*8 + 0x10]
mov qword [rdx + rax*8 + 0x10], 0
test rsi, rsi
jne 0x140150d39
mov rax, qword [r14 + 0x1f8]
mov rcx, qword [r14 + 0x200]
not rcx
and qword [rax + 8], rcx
mov rsi, qword [r14 + 0x1f8]
cmp qword [rsi + 8], 0
je 0x140150bd1
mov rcx, qword [r14 + 0x1f0]
mov rax, rcx
and rax, r13
cmp rax, qword [0x14029ce48]
je 0x140150d08
mov qword [r14 + 0x1f0], 0
mov rcx, qword [r14 + 0x1f8]
mov rax, rcx
and rax, r13
cmp rax, qword [0x14029ce48]
je 0x140151061
mov qword [r14 + 0x1f8], 0
mov dword [r14 + 0xe0], 0
mov rbp, qword [r14 + 0xc8]
mov rdi, qword [r14 + 0xd0]
xorps xmm0, xmm0
movups xmmword [r14 + 0xc8], xmm0
mov qword [r14 + 0xd8], 0
mov rsi, qword [r14 + 0xb0]
mov rbx, qword [r14 + 0xb8]
movups xmmword [r14 + 0xb0], xmm0
test rsi, rsi
je 0x140150a47
cmp byte [rsi + 0x50], 0
jne 0x140150b21
mov rcx, qword [rsi + 0x30]
mov rax, rcx
and rax, r13
cmp rax, qword [0x14029ce48]
je 0x140150c43
mov qword [rsi + 0x30], 0
mov rcx, qword [rsi + 0x28]
mov rax, rcx
and rax, r13
cmp rax, qword [0x14029ce48]
je 0x14015100a
mov qword [rsi + 0x28], 0
mov rcx, qword [rsi]
test rcx, rcx
jne 0x140150b8c
mov rcx, rsi
call fcn.140184dbc
test rbx, rbx
je 0x140150aa5
cmp byte [rbx + 0x50], 0
jne 0x140150b18
mov rcx, qword [rbx + 0x30]
mov rax, rcx
and rax, r13
cmp rax, qword [0x14029ce48]
je 0x140150c39
mov qword [rbx + 0x30], 0
mov rcx, qword [rbx + 0x28]
and r13, rcx
cmp r13, qword [0x14029ce48]
je 0x140151014
mov qword [rbx + 0x28], 0
mov rcx, qword [rbx]
test rcx, rcx
jne 0x140150b54
mov rcx, rbx
call fcn.140184dbc
mov rcx, rdi
sub rcx, rbp
jne 0x140150d84
test rbp, rbp
jne 0x140150bc4
mov rax, qword [rsp + 0x58]
test rax, rax
jne 0x14015101e
test r15, r15
jne 0x140150b2a
test byte [rsp + 0x57], 0x19
jne 0x140150d12
mov rcx, qword [rsp + 0xc8]
xor rcx, rsp
call fcn.1401879f0
movaps xmm6, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, 0x40
jmp 0x140150919
call fcn.140184dbc
jmp 0x1401506ca
mov byte [rbx + 0x50], 0
jmp 0x140150a56
mov byte [rsi + 0x50], 0
jmp 0x1401509f5
mov rsi, qword [r15 + 0x20]
mov qword [r15 + 0x20], 0
mov rcx, r15
call fcn.1401510f0
mov rcx, r15
call fcn.140184dbc
mov r15, rsi
test rsi, rsi
je 0x140150acd
jmp 0x140150b2a
mov rax, qword [rcx + 0x20]
mov qword [rcx + 0x20], 0
mov rsi, qword [rbx]
mov qword [rbx], rax
test rsi, rsi
je 0x140150b7e
mov rcx, rsi
call fcn.1401510f0
mov rcx, rsi
call fcn.140184dbc
mov rax, qword [rbx]
mov rcx, rax
test rax, rax
je 0x140150a9d
jmp 0x140150b54
mov rax, qword [rcx + 0x20]
mov qword [rcx + 0x20], 0
mov r14, qword [rsi]
mov qword [rsi], rax
test r14, r14
je 0x140150bb6
mov rcx, r14
call fcn.1401510f0
mov rcx, r14
call fcn.140184dbc
mov rax, qword [rsi]
mov rcx, rax
test rax, rax
je 0x140150a3f
jmp 0x140150b8c
mov rcx, rbp
call fcn.140184dbc
jmp 0x140150aba
mov rdi, rsi
and rdi, r13
mov rcx, rsi
cmp rdi, qword [0x14029ce48]
je 0x140150cf4
mov rax, rcx
and rax, r13
cmp rax, qword [0x14029ce48]
je 0x140150c4d
mov qword [r14 + 0x1f8], 0
mov rcx, qword [r14 + 0x1f0]
mov rdx, rsi
call fcn.1400306b0
mov rcx, qword [r14 + 0x1f0]
mov rdx, rsi
call fcn.1400305d0
cmp rdi, qword [0x14029ce48]
jne 0x140150957
mov rcx, rsi
call fcn.1400e1670
jmp 0x140150957
call fcn.1400de590
jmp 0x140150a6d
call fcn.1400de590
jmp 0x140150a0c
call fcn.1400de590
jmp 0x140150bf6
call fcn.1400de590
jmp 0x1401508a4
lock dec dword [rsi]
jne 0x14015088a
mov rax, qword [rsi + 0x10]
lea rcx, [0x140201a10]
cmp rax, rcx
je 0x140150cd0
mov rcx, rsi
call qword [0x1402ca008]
jmp 0x14015088a
lock dec dword [rsi]
jne 0x14015086f
mov rax, qword [rsi + 0x10]
lea rcx, [0x140201a10]
cmp rax, rcx
je 0x140150cac
mov rcx, rsi
call qword [0x1402ca008]
jmp 0x14015086f
mov rcx, qword [rsi + 0x28]
mov rax, rcx
and rax, r13
cmp rax, qword [0x14029ce48]
je 0x140150e10
mov rcx, rsi
call fcn.140184dbc
jmp 0x14015086f
mov rcx, qword [rsi + 0x28]
mov rax, rcx
and rax, r13
cmp rax, qword [0x14029ce48]
je 0x140150e1a
mov rcx, rsi
call fcn.140184dbc
jmp 0x14015088a
mov rcx, rsi
call fcn.1400ddc60
mov rcx, qword [r14 + 0x1f8]
jmp 0x140150be7
call fcn.1400e1670
jmp 0x140150971
mov rax, qword [rsp + 0x60]
cmp byte [rax], 0
je 0x140150ad8
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x70]
mov r8, qword [rsp + 0x68]
call fcn.140153530
jmp 0x140150ad8
lock dec dword [rsi]
jne 0x140150930
mov rax, qword [rsi + 0x10]
lea rcx, [0x140201a10]
cmp rax, rcx
je 0x140150d60
mov rcx, rsi
call qword [0x1402ca008]
jmp 0x140150930
mov rcx, qword [rsi + 0x28]
mov rax, rcx
and rax, r13
cmp rax, qword [0x14029ce48]
je 0x140150e24
mov rcx, rsi
call fcn.140184dbc
jmp 0x140150930
movabs rdx, 0xc30c30c30c30c30d
mov rax, rcx
imul rdx
add rdx, rcx
mov rax, rdx
shr rax, 0x3f
sar rdx, 7
lea rcx, [rdx + rax]
cmp rcx, 1
adc rdx, rax
lea rax, [rbp + 0xa0]
mov rcx, qword [rax - 8]
test rcx, rcx
je 0x140150de5
mov cl, byte [rcx + 4]
test cl, cl
jne 0x140150de5
cmp qword [rax], 0
je 0x140150de5
mov rcx, qword [rax - 8]
test rcx, rcx
je 0x140150e2e
mov cl, byte [rcx + 4]
test cl, cl
jne 0x140150e2e
mov rcx, qword [rax]
mov qword [rcx + 0x10], 0xffffffffffffffff
add rax, 0xa8
dec rdx
jne 0x140150db4
add rdi, 0xffffffffffffff58
je 0x1401510e2
mov rcx, rdi
call fcn.1400f7b90
cmp rdi, rbp
je 0x140150ab1
jmp 0x140150df0
call fcn.1400e1670
jmp 0x140150cc3
call fcn.1400e1670
jmp 0x140150ce7
call fcn.1400e1670
jmp 0x140150d77
int3
mov rcx, qword [0x1402b7458]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140150eac
lea rcx, [rsp + 0x78]
call qword [0x1402ca008]
jmp 0x140150eb1
mov rax, qword [0x1402abf18]
lea rcx, [0x140183600]
cmp rax, rcx
jne 0x140150e55
lea rsi, [rsp + 0x78]
mov qword [rsi], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsi]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x140150e31
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402b7458]
mov qword [rsp + 0x78], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x30], eax
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x1402aa9c0]
lea r8, str.ScopedAllowBaseSyncPrimitivesOutsideBlockingScope
mov cl, 0x45
xor r9d, r9d
call fcn.14013bad0
jmp 0x14015077b
call fcn.1400de590
jmp 0x140150766
mov rcx, qword [r14 + 0x1f0]
call fcn.140024fa0
mov rdx, qword [r14 + 0x1f8]
jmp 0x140150904
mov rcx, qword [0x1402b7458]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140150f93
lea rcx, [rsp + 0x78]
call qword [0x1402ca008]
jmp 0x140150f98
mov rax, qword [0x1402abf18]
lea rcx, [0x140183600]
cmp rax, rcx
jne 0x140150f3c
lea rsi, [rsp + 0x78]
mov qword [rsi], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsi]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x140150f18
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402b7458]
mov qword [rsp + 0x78], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea rcx, [rsp + 0x78]
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x30], eax
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x1402aa9c0]
lea r15, str.TaskQueueImpl::UnregisterTaskQueue
mov cl, 0x58
mov qword [rsp + 0x60], rdx
mov r8, r15
xor r9d, r9d
call fcn.14013bad0
mov qword [rsp + 0x68], rax
jmp 0x140150675
lea rcx, [rsi + 0x10]
call fcn.140153d40
jmp 0x140150745
int3
call fcn.1400de590
jmp 0x1401508c9
call fcn.1400de590
jmp 0x140150a2b
call fcn.1400de590
jmp 0x140150a89
cmp r12, rax
je 0x140151036
add r12, 0xfffffffffffffff0
mov rcx, r12
call fcn.14020ae30
cmp r12, qword [rsp + 0x58]
jne 0x140151023
mov rcx, qword [rsp + 0x58]
call fcn.140184dbc
jmp 0x140150ac8
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140150799
mov rdx, r14
call qword [0x1402ca008]
jmp 0x140150854
call fcn.1400de590
jmp 0x140150996
mov rbp, qword [r12]
mov rcx, qword [rbp + 8]
mov rax, rcx
and rax, r13
cmp rax, qword [0x14029ce48]
jne 0x140151087
call fcn.1400de590
mov qword [rbp + 8], 0
add r12, 0x10
cmp r12, rbx
jne 0x14015106b
mov rax, qword [r14 + 0x60]
mov qword [rsp + 0x58], rax
mov r12, qword [r14 + 0x68]
jmp 0x1401507d1
test ecx, ecx
jne 0x140150745
mov ecx, 0x3fffffff
and eax, ecx
mov edx, eax
neg edx
lock xadd dword [rsi + 8], edx
test edx, edx
jns 0x140150745
and edx, ecx
cmp edx, eax
jne 0x140150745
lea rcx, [rsi + 0x10]
call fcn.140124eb0
jmp 0x140150745
int3