Function at 0x140047660
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, 0x108
movaps xmmword [rsp + 0xf0], xmm6
mov rdi, r8
mov rsi, rdx
mov r12, rcx
mov rax, qword [0x1402e0038]
xor rax, rsp
mov qword [rsp + 0xe8], rax
movabs r15, 0xaaaaaaaaaaaaaaaa
mov al, byte [0x1402e3230]
test al, 0x19
mov byte [rsp + 0x5f], al
jne 0x140047dff
xor eax, eax
mov qword [rsp + 0x68], rax
mov rbx, r15
mov rax, r15
mov rcx, qword [rsi + 0xa8]
cmp byte [rcx + 0x1e0], 0
jne 0x1400478e1
cmp qword [rcx + 0x168], 0
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x80], rax
jne 0x14004786a
cmp qword [rcx + 0x170], 0
jne 0x14004786a
cmp dword [r12 + 0x88], 0
jne 0x140047719
cmp qword [r12 + 0x210], 0
jne 0x14004786a
xor r13d, r13d
mov rax, qword [rsi + 0xa8]
cmp byte [rax + 0x1e1], 0
je 0x140047833
mov rbp, qword [rsi + 0x90]
mov rdi, qword [rax + 0x160]
mov bl, byte [0x1402e3230]
test bl, 0x19
jne 0x140047ed1
xor eax, eax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x78], r15
lea r14, [rsp + 0xd0]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [r14 + 0x10], rax
movaps xmm6, xmmword [0x14029bb90]
movaps xmmword [r14], xmm6
mov rax, qword [r12 + 0x1b0]
xorps xmm0, xmm0
cmp rax, qword [r12 + 0x1b8]
movaps xmmword [r14 - 0x10], xmm0
jne 0x140047d46
movups xmmword [r14], xmm0
mov qword [r14 + 0x10], 0
xor eax, eax
xorps xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0xb0], 0
test rax, rax
jne 0x140047c19
mov rdx, qword [rsp + 0xa0]
test rdx, rdx
jne 0x140047c56
lea rcx, [rsp + 0x90]
call fcn.140105740
lea rcx, [rsp + 0xc0]
call fcn.140105740
test bl, 0x19
jne 0x140047bc5
test byte [0x1402e3230], 0x19
jne 0x140047faa
cmp rdi, rbp
seta r8b
mov rcx, qword [rsi + 0xa8]
mov rdx, rsi
call fcn.140105500
test r13b, r13b
jne 0x14004792b
test byte [rsp + 0x5f], 0x19
jne 0x140047bec
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
call fcn.14010fba0
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 dword [rsi + 0xb8], 1
cmp byte [rsi + 0xbc], 0
je 0x14004788d
cmp byte [rdi + 8], 0
je 0x1400478a2
mov rax, qword [rdi]
mov qword [rsi + 0xc0], rax
mov r13b, 1
cmp byte [rsi + 0xbd], 0
je 0x14004771c
jmp 0x1400480b2
mov rax, qword [fcn.14009a170]
lea rcx, [rsp + 0xc0]
call qword [0x140318008]
cmp byte [rdi + 8], 0
jne 0x140048348
test rdi, rdi
je 0x14004832d
mov rax, qword [rsp + 0xc0]
mov qword [rdi], rax
mov byte [rdi + 8], 1
jmp 0x140047886
int3
int3
mov byte [r12 + 0x280], 1
mov rcx, qword [rsi + 0xa8]
jmp 0x1400476d3
lea rcx, [rsp + 0x90]
call fcn.1400b9040
lea rcx, [rsp + 0xc0]
call fcn.1400b9040
test bpl, 0x19
je 0x14004793a
cmp byte [rdi], 0
je 0x14004793a
mov rcx, rdi
mov rdx, rbx
mov r8, r15
call fcn.14016b030
jmp 0x14004793a
cmp dword [r12 + 0x88], 0
je 0x1400479c7
test byte [0x1402e3230], 0x19
jne 0x1400480d1
mov rax, qword [rsi + 0xa8]
mov rdi, qword [rax + 0x168]
test rdi, rdi
je 0x140047833
mov ecx, 1
lock xadd dword [rdi], ecx
test ecx, ecx
jle 0x140048333
cmp ecx, 0x7fffffff
je 0x140048336
lea r8, [rsi + 0xb8]
mov rax, qword [rax + 0x168]
mov rax, qword [rax + 8]
mov rcx, rdi
mov rdx, rsi
call qword [0x140318008]
lock dec dword [rdi]
jne 0x140047833
mov rax, qword [rdi + 0x10]
mov rcx, rdi
call qword [0x140318008]
jmp 0x140047833
movups xmmword [r14], xmm0
mov qword [r14 + 0x10], 0
xor eax, eax
jmp 0x140047ac5
mov bpl, byte [0x1402e3230]
test bpl, 0x19
jne 0x14004825a
xor edi, edi
mov rbx, r15
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xe0], rax
movaps xmmword [rsp + 0xd0], xmm6
mov rax, qword [r12 + 0x1e8]
xorps xmm0, xmm0
cmp rax, qword [r12 + 0x1f0]
movaps xmmword [rsp + 0xc0], xmm0
je 0x1400479b4
lea rax, [r12 + 0x1e8]
mov qword [rsp + 0xd0], rax
lea rax, [r12 + 0x200]
mov qword [rsp + 0xc8], rax
mov rax, qword [r12 + 0x200]
mov qword [rsp + 0xc0], rax
lea rcx, [rsp + 0xc0]
mov qword [rax + 8], rcx
mov qword [r12 + 0x200], rcx
mov qword [rsp + 0xd8], 0
mov rdx, 0xffffffffffffffff
cmp dword [r12 + 0x218], 0
jne 0x140048397
mov qword [rsp + 0xe0], rdx
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rax + 8]
sub rcx, qword [rax]
sar rcx, 3
cmp rcx, rdx
cmovae rcx, rdx
test rcx, rcx
je 0x140047ac5
xor edx, edx
mov r8, qword [rax]
mov r9, qword [rax + 8]
sub r9, r8
sar r9, 3
cmp r9, rdx
jbe 0x140048339
cmp qword [r8 + rdx*8], 0
je 0x1400483b0
xorps xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0xb0], 0
test rax, rax
je 0x1400478f6
mov rcx, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0xe0]
mov r8, qword [rax + 8]
sub r8, qword [rax]
sar r8, 3
cmp r8, rdx
cmovae r8, rdx
cmp rcx, r8
je 0x1400478f6
mov rdx, qword [rax]
mov rax, qword [rax + 8]
sub rax, rdx
sar rax, 3
cmp rax, rcx
jbe 0x14004833c
mov rcx, qword [rdx + rcx*8]
mov rdx, qword [rsi + 0xc0]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x140318008]
mov rax, qword [rsp + 0xd0]
test rax, rax
je 0x1400478f6
mov rcx, qword [rsp + 0xd8]
mov r8, qword [rsp + 0xe0]
inc rcx
mov qword [rsp + 0xd8], rcx
mov rdx, qword [rax + 8]
sub rdx, qword [rax]
sar rdx, 3
cmp rdx, r8
cmovae rdx, r8
cmp rcx, rdx
jae 0x140047aed
mov r8, qword [rax]
mov r9, qword [rax + 8]
sub r9, r8
sar r9, 3
cmp r9, rcx
jbe 0x14004833f
cmp qword [r8 + rcx*8], 0
jne 0x140047aed
inc rcx
mov qword [rsp + 0xd8], rcx
cmp rdx, rcx
jne 0x140047b8e
jmp 0x140047aed
mov rax, qword [rsp + 0x60]
cmp byte [rax], 0
je 0x140047807
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x78]
mov r8, qword [rsp + 0x70]
call fcn.14016b030
jmp 0x140047807
mov rax, qword [rsp + 0x68]
cmp byte [rax], 0
je 0x14004783e
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x88]
mov r8, qword [rsp + 0x80]
call fcn.14016b030
jmp 0x14004783e
mov rcx, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0xe0]
mov r8, qword [rax + 8]
sub r8, qword [rax]
sar r8, 3
cmp r8, rdx
cmovae r8, rdx
mov rdx, qword [rsp + 0xa0]
cmp rcx, r8
je 0x1400477db
mov r8, qword [rsp + 0xa8]
jmp 0x140047c89
mov r8, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xb0]
mov r9, qword [rdx + 8]
sub r9, qword [rdx]
sar r9, 3
cmp r9, rcx
cmovae r9, rcx
cmp r8, r9
je 0x1400477e4
mov rcx, qword [rsp + 0xd8]
cmp rax, rdx
jne 0x140047c97
cmp rcx, r8
je 0x1400477e4
mov rdx, qword [rax]
mov rax, qword [rax + 8]
sub rax, rdx
sar rax, 3
cmp rax, rcx
jbe 0x1400478db
cmp rdi, rbp
seta r8b
mov rcx, qword [rdx + rcx*8]
mov rax, qword [rcx]
mov rax, qword [rax]
mov rdx, rsi
call qword [0x140318008]
mov rax, qword [rsp + 0xd0]
test rax, rax
je 0x1400477ca
mov rcx, qword [rsp + 0xd8]
mov r8, qword [rsp + 0xe0]
inc rcx
mov qword [rsp + 0xd8], rcx
mov rdx, qword [rax + 8]
sub rdx, qword [rax]
sar rdx, 3
cmp rdx, r8
cmovae rdx, r8
cmp rcx, rdx
jae 0x1400477ca
mov r8, qword [rax]
mov r9, qword [rax + 8]
sub r9, r8
sar r9, 3
cmp r9, rcx
jbe 0x1400478de
cmp qword [r8 + rcx*8], 0
jne 0x1400477ca
inc rcx
mov qword [rsp + 0xd8], rcx
cmp rdx, rcx
jne 0x140047d0f
jmp 0x1400477ca
lea rax, [r12 + 0x1b0]
lea rcx, [rsp + 0xc0]
mov qword [rcx + 0x10], rax
lea rax, [r12 + 0x1c8]
mov qword [rcx + 8], rax
mov rax, qword [r12 + 0x1c8]
mov qword [rcx], rax
mov qword [rax + 8], rcx
mov qword [r12 + 0x1c8], rcx
mov qword [rcx + 0x18], 0
mov rdx, 0xffffffffffffffff
cmp dword [r12 + 0x1e0], 0
jne 0x14004837e
mov qword [rsp + 0xe0], rdx
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rax + 8]
sub rcx, qword [rax]
sar rcx, 3
cmp rcx, rdx
cmovae rcx, rdx
test rcx, rcx
je 0x1400477ab
xor edx, edx
mov r8, qword [rax]
mov r9, qword [rax + 8]
sub r9, r8
sar r9, 3
cmp r9, rdx
jbe 0x140048330
cmp qword [r8 + rdx*8], 0
jne 0x1400477ab
inc rdx
mov qword [rsp + 0xd8], rdx
cmp rcx, rdx
jne 0x140047dc8
jmp 0x1400477ab
mov rax, qword [0x1402e38a8]
lea rcx, [0x140038fc0]
cmp rax, rcx
jne 0x140048221
lea rbx, [rsp + 0xc0]
mov qword [rbx], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbx]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jl 0x140047e64
mov rcx, qword [0x1402f3f50]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140047e74
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402f3f50]
mov qword [rsp + 0xc0], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea rcx, [rsp + 0xc0]
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, [0x1402e3230]
lea rbx, str.SequenceManagerImpl::NotifyWillProcessTaskObservers
mov cl, 0x58
mov qword [rsp + 0x68], rdx
mov r8, rbx
xor r9d, r9d
call fcn.14016b830
jmp 0x1400476bf
mov rax, qword [0x1402e38a8]
lea rcx, [0x140038fc0]
cmp rax, rcx
jne 0x140048234
lea r14, [rsp + 0xc0]
mov qword [r14], 0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [r14]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jl 0x140047f36
mov rcx, qword [0x1402f3f50]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140047f46
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402f3f50]
mov qword [rsp + 0xc0], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea rcx, [rsp + 0xc0]
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, [0x1402e3230]
lea r8, str.SequenceManager.WillProcessTaskObservers
mov cl, 0x58
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x78], r8
xor r9d, r9d
call fcn.14016b830
mov qword [rsp + 0x70], rax
jmp 0x14004775e
mov rax, qword [0x1402e38a8]
lea rcx, [0x140038fc0]
cmp rax, rcx
jne 0x140048247
lea rbx, [rsp + 0xc0]
mov qword [rbx], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbx]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jl 0x14004800f
mov rcx, qword [0x1402f3f50]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14004801f
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402f3f50]
mov qword [rsp + 0xc0], rax
cmp rdi, rbp
seta bl
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea rcx, [rsp + 0xc0]
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, [0x1402e3230]
lea r8, str.SequenceManager.QueueNotifyWillProcessTask
mov cl, 0x58
xor r9d, r9d
call fcn.14016b830
mov rdi, rax
mov rcx, qword [rsi + 0xa8]
mov rdx, rsi
mov r8d, ebx
call fcn.140105500
cmp byte [0x1402e3230], 0
je 0x14004782a
lea rcx, [0x1402e3230]
lea rdx, str.SequenceManager.QueueNotifyWillProcessTask
mov r8, rdi
call fcn.14016b030
jmp 0x14004782a
lea rdi, [rsp + 0xc0]
mov rcx, rdi
call fcn.1400a62c0
mov rax, qword [rdi]
mov qword [rsi + 0xd0], rax
jmp 0x14004771c
mov rax, qword [0x1402e38a8]
lea rcx, [0x140038fc0]
cmp rax, rcx
jne 0x140048358
lea rdi, [rsp + 0xc0]
mov qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rdi]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jl 0x140048136
mov rcx, qword [0x1402f3f50]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140048146
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402f3f50]
mov qword [rsp + 0xc0], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea rcx, [rsp + 0xc0]
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, [0x1402e3230]
lea r8, str.SequenceManager.QueueOnTaskStarted
mov cl, 0x58
xor r9d, r9d
call fcn.14016b830
mov rdi, rax
mov rax, qword [rsi + 0xa8]
mov rbx, qword [rax + 0x168]
test rbx, rbx
je 0x1400481f9
mov ecx, 1
lock xadd dword [rbx], ecx
test ecx, ecx
jle 0x140048342
cmp ecx, 0x7fffffff
je 0x140048345
lea r8, [rsi + 0xb8]
mov rax, qword [rax + 0x168]
mov rax, qword [rax + 8]
mov rcx, rbx
mov rdx, rsi
call qword [0x140318008]
lock dec dword [rbx]
jne 0x1400481f9
mov rax, qword [rbx + 0x10]
mov rcx, rbx
call qword [0x140318008]
cmp byte [0x1402e3230], 0
je 0x140047833
lea rcx, [0x1402e3230]
lea rdx, str.SequenceManager.QueueOnTaskStarted
mov r8, rdi
call fcn.14016b030
jmp 0x140047833
lea rcx, [rsp + 0xc0]
call qword [0x140318008]
jmp 0x140047e7c
lea rcx, [rsp + 0xc0]
call qword [0x140318008]
jmp 0x140047f4e
lea rcx, [rsp + 0xc0]
call qword [0x140318008]
jmp 0x140048027
mov rax, qword [0x1402e38a8]
lea rcx, [0x140038fc0]
cmp rax, rcx
jne 0x14004836b
lea rdi, [rsp + 0xc0]
mov qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rdi]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jl 0x1400482bf
mov rcx, qword [0x1402f3f50]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1400482cf
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402f3f50]
mov qword [rsp + 0xc0], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea rcx, [rsp + 0xc0]
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 rdi, [0x1402e3230]
lea rbx, str.SequenceManager.WillProcessTaskTimeObservers
mov cl, 0x58
mov rdx, rdi
mov r8, rbx
xor r9d, r9d
call fcn.14016b830
mov r15, rax
jmp 0x1400479dd
int3
int3
int3
int3
int3
int3
int3
int3
int3
mov rax, qword [rsp + 0xc0]
mov qword [rdi], rax
jmp 0x140047886
lea rcx, [rsp + 0xc0]
call qword [0x140318008]
jmp 0x14004814e
lea rcx, [rsp + 0xc0]
call qword [0x140318008]
jmp 0x1400482d7
mov rdx, qword [r12 + 0x1b8]
sub rdx, qword [r12 + 0x1b0]
sar rdx, 3
jmp 0x140047d9b
mov rdx, qword [r12 + 0x1f0]
sub rdx, qword [r12 + 0x1e8]
sar rdx, 3
jmp 0x140047a7a
inc rdx
mov qword [rsp + 0xd8], rdx
cmp rcx, rdx
jne 0x140047aa3
jmp 0x140047ac5