Function at 0x1400c19d0
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, 0xc8
mov rax, qword [0x140260028]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov rax, qword [rcx + 0xb8]
mov rdi, qword [rcx + 0xc0]
cmp rax, rdi
je 0x1400c1bed
mov rsi, rdx
mov rbx, rcx
mov rcx, rdi
sub rcx, rax
shr rcx, 7
cmp ecx, r8d
jne 0x1400c20a2
cmp qword [rbx + 0x80], 0
je 0x1400c1bd3
cmp qword [rbx + 0x68], 0
je 0x1400c1bd3
mov rax, qword [rbx + 0xa8]
test rax, rax
je 0x1400c20dd
mov rcx, qword [rax + 0xc0]
sub rcx, qword [rax + 0xb8]
cmp rcx, 0x80
jne 0x1400c1bd3
movzx r14d, byte [rbx + 0x78]
test r14b, r14b
jne 0x1400c1c12
mov byte [rbx + 0x78], 1
mov edi, 5
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x40], rax
movzx eax, byte [rsi + 8]
test al, al
jne 0x1400c1b12
mov rax, qword [fcn.140144d80]
lea rcx, [0x140136f50]
cmp rax, rcx
jne 0x1400c1f41
mov qword [rsp + 0x50], 0
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x50]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x1400c21c8
imul rax, rax, 0xf4240
cqo
idiv qword [0x140272470]
mov qword [rsp + 0x50], rax
movzx eax, byte [rsi + 8]
cmp al, 1
je 0x1400c211c
test rsi, rsi
je 0x1400c20db
mov rax, qword [rsp + 0x50]
mov qword [rsi], rax
mov byte [rsi + 8], 1
mov al, 1
test al, al
je 0x1400c20db
lea r15, [rbx + 0x68]
mov rax, qword [rsi]
mov qword [rsp + 0x40], rax
mov rcx, qword [r15]
xor edx, edx
cmp rax, rcx
setns dl
movabs r13, 0x7fffffffffffffff
add rdx, r13
sub rax, rcx
cmovo rax, rdx
cmp rax, 0x1c9c37f
jg 0x1400c1ba9
movabs rcx, 0x8000000000000001
mov r12d, edi
lea r8, [rax + rcx]
mov rdx, qword [rbx + r12*8 + 0x20]
cmp r8, 1
jbe 0x1400c20f9
lea rcx, [rdx + rax]
sar rcx, 0x3f
movabs r8, 0x8000000000000000
xor r8, rcx
add rdx, rax
cmovo rdx, r8
mov qword [rbx + r12*8 + 0x20], rdx
cmp rdx, 0x186a0
jge 0x1400c1fa8
cmp qword [rbx + 0xa8], 0
je 0x1400c20e0
movzx eax, byte [0x14027206a]
test al, al
setne dil
jne 0x1400c2129
mov byte [rbx + 0xa0], dil
mov rax, qword [rsp + 0x40]
mov qword [rbx + 0x68], rax
mov rdi, qword [rbx + 0xc0]
cmp qword [rbx + 0xb8], rdi
je 0x1400c20db
cmp dword [rdi - 0x38], 0
mov dword [rdi - 0x38], 1
je 0x1400c1c1c
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.140149190
nop
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov edi, 3
jmp 0x1400c1a80
cmp qword [rdi - 0x78], 0
jne 0x1400c20e3
cmp qword [rdi - 0x70], 0
jne 0x1400c20e6
lea rbx, [rdi - 0x80]
cmp qword [rbx], 0
jne 0x1400c1e3d
mov eax, dword [0x140278b08]
mov ecx, dword [0x14026ee18]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c1f51
mov rax, qword [rdi - 0x30]
test rax, rax
je 0x1400c20e9
cmp byte [0x140278b04], 1
jne 0x1400c1cd9
cmp byte [rax + 0x18], 0
jne 0x1400c20ec
movsd xmm0, qword [0x140233560]
mov rax, qword [rdi - 0x48]
mov rcx, qword [rdi - 0x40]
mov qword [rdi - 0x48], rcx
mov rdx, rax
shl rdx, 0x17
xor rdx, rax
mov rax, rcx
shr rax, 0x1a
xor rax, rcx
xor rax, rdx
shr rdx, 0x11
xor rdx, rax
mov qword [rdi - 0x40], rdx
add rdx, rcx
shr rdx, 0xb
cvtsi2sd xmm1, rdx
mulsd xmm1, qword [0x140233558]
ucomisd xmm0, xmm1
ja 0x1400c1d95
mov qword [rsp + 0x38], 0xb
movzx eax, byte [0x140271fcb]
test al, al
jne 0x1400c21ef
mov rsi, qword [rdi - 0x10]
inc rsi
mov qword [rdi - 0x10], rsi
mov eax, dword [0x140279758]
mov ecx, dword [0x14026ee18]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c1d66
cmp dword [rdi - 0x18], 0
je 0x1400c1d61
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov eax, eax
movabs r9, 0x100000000
or r9, rax
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x58], 0
mov rdx, qword [rdi - 0x20]
mov qword [rsp + 0x20], rsi
lea rcx, [0x140278dd0]
lea r8, [rsp + 0x50]
call fcn.140002800
jmp 0x1400c1bed
xor r9d, r9d
jmp 0x1400c1d38
lea rcx, [0x140279758]
call fcn.1401467a0
cmp dword [0x140279758], 0xffffffff
jne 0x1400c1d1d
lea rcx, [0x140278dd0]
call fcn.1400029a0
lea rcx, [0x140279758]
call fcn.140146740
jmp 0x1400c1d1d
mov al, byte [rsi + 8]
test al, al
jne 0x1400c1e15
mov rax, qword [fcn.140144d80]
lea rcx, [0x140136f50]
cmp rax, rcx
jne 0x1400c2082
lea r14, [rsp + 0x50]
mov qword [r14], 0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [r14]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x1400c230d
imul rax, rax, 0xf4240
cqo
idiv qword [0x140272470]
mov qword [rsp + 0x50], rax
mov al, byte [rsi + 8]
cmp al, 1
je 0x1400c2270
test rsi, rsi
je 0x1400c20db
mov rax, qword [rsp + 0x50]
mov qword [rsi], rax
mov byte [rsi + 8], 1
mov al, 1
test al, al
je 0x1400c20db
mov rax, qword [rsi]
mov qword [rdi - 0x78], rax
lea r14, [rsp + 0x50]
mov rcx, r14
call fcn.1400097d0
mov rax, qword [r14]
mov qword [rdi - 0x70], rax
jmp 0x1400c1cd9
mov al, byte [rsi + 8]
test al, al
jne 0x1400c1ebd
mov rax, qword [fcn.140144d80]
lea rcx, [0x140136f50]
cmp rax, rcx
jne 0x1400c2092
lea r14, [rsp + 0x50]
mov qword [r14], 0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [r14]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x1400c2334
imul rax, rax, 0xf4240
cqo
idiv qword [0x140272470]
mov qword [rsp + 0x50], rax
mov al, byte [rsi + 8]
cmp al, 1
je 0x1400c227d
test rsi, rsi
je 0x1400c20db
mov rax, qword [rsp + 0x50]
mov qword [rsi], rax
mov byte [rsi + 8], 1
mov al, 1
test al, al
je 0x1400c20db
mov r14, qword [rsi]
mov rax, qword [rdi - 0x80]
xor ecx, ecx
cmp r14, rax
setns cl
movabs rdx, 0x7fffffffffffffff
add rdx, rcx
sub r14, rax
movabs r15, 0x8000000000000001
cmovo r14, rdx
lea rdx, str.Scheduling.ThreadController.IdleDuration
mov rcx, rbx
mov r8, r14
mov r9, r14
call fcn.1400050f0
mov qword [rdi - 0x80], 0
lea rcx, [r14 + r15]
mov rax, qword [rdi - 0x68]
cmp rcx, 2
jb 0x1400c228a
lea rcx, [rax + r14]
sar rcx, 0x3f
btc rcx, 0x3f
add rax, r14
cmovo rax, rcx
mov r14, rax
mov qword [rdi - 0x68], r14
jmp 0x1400c1c40
lea rcx, [rsp + 0x50]
call qword [0x1402529a0]
jmp 0x1400c1aef
lea rcx, [0x140278b08]
call fcn.1401467a0
cmp dword [0x140278b08], 0xffffffff
jne 0x1400c1c65
mov eax, dword [0x140272424]
mov ecx, dword [0x14026ee18]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c1ffd
mov al, byte [0x140272420]
mov byte [0x140278b04], al
lea rcx, [0x140278b08]
call fcn.140146740
jmp 0x1400c1c65
cvtsi2sd xmm0, rdx
divsd xmm0, qword [0x1402476a8]
cvttsd2si ebp, xmm0
mov rcx, qword [rbx + 0x80]
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
mov edx, edi
mov r8d, ebp
call qword [0x1402529a0]
movsxd rax, ebp
imul rax, rax, 0x3e8
mov rcx, qword [rbx + r12*8 + 0x20]
xor edx, edx
cmp rcx, rax
setns dl
add rdx, r13
sub rcx, rax
cmovo rcx, rdx
mov qword [rbx + r12*8 + 0x20], rcx
jmp 0x1400c1b9b
lea rcx, [0x140272424]
call fcn.1401467a0
cmp dword [0x140272424], 0xffffffff
jne 0x1400c1f8b
xorpd xmm0, xmm0
lea r14, [rsp + 0x50]
movupd xmmword [r14 + 0x1f], xmm0
movapd xmmword [r14 + 0x10], xmm0
movapd xmmword [r14], xmm0
mov rax, qword [str.unknown]
mov qword [r14 + 0x2f], rax
mov rax, qword [0x140247581]
mov qword [r14 + 0x34], rax
movupd xmmword [r14 + 0x3c], xmm0
movupd xmmword [r14 + 0x4c], xmm0
movupd xmmword [r14 + 0x5c], xmm0
mov byte [r14 + 0x6c], 0
mov rcx, r14
xor edx, edx
call fcn.140049850
mov al, byte [r14 + 0x2d]
mov byte [0x140272420], al
lea rcx, [0x140272424]
call fcn.140146740
jmp 0x1400c1f8b
lea rcx, [rsp + 0x50]
call qword [0x1402529a0]
jmp 0x1400c1df3
lea rcx, [rsp + 0x50]
call qword [0x1402529a0]
jmp 0x1400c1e9b
add rdi, 0xffffffffffffff80
mov rcx, rdi
mov rdx, rsi
call fcn.1401b5150
mov rdi, qword [rbx + 0xc0]
cmp qword [rbx + 0xb8], rdi
je 0x1400c20db
add rdi, 0xffffffffffffff80
je 0x1400c20db
mov rcx, rdi
call fcn.140033840
mov qword [rbx + 0xc0], rdi
jmp 0x1400c1bd3
ud2
int3
int3
int3
int3
int3
movsd xmm0, qword [0x140222a08]
jmp 0x1400c1c8d
lea r8, [rdx + rcx]
cmp r8, 2
setae r8b
cmp rdx, rax
sete al
or al, r8b
je 0x1400c235b
dec rcx
jmp 0x1400c1ff3
mov rcx, qword [rsp + 0x50]
mov qword [rsi], rcx
jmp 0x1400c1b12
cmp byte [rbx + 0xa0], 0
jne 0x1400c2149
mov qword [rsp + 0x38], 0xaa
mov al, byte [0x14027206a]
test al, al
jne 0x1400c22a5
lea rcx, str.NativeTask
lea rax, str.ApplicationTask
test r14b, r14b
cmovne rax, rcx
mov qword [rsp + 0x48], 0xaa
mov cl, byte [0x14027206a]
test cl, cl
jne 0x1400c2232
mov qword [rsp + 0x48], 0xaa
mov al, byte [0x14027206a]
test al, al
je 0x1400c1bbc
cmp byte [rbx + 0x98], 0
je 0x1400c20db
movzx ecx, al
lea r9, [rbx + 0x88]
lea r8, [rsp + 0x50]
mov qword [r8], 0
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x48]
call fcn.1401b5950
jmp 0x1400c1bbc
mov rcx, qword [0x140272470]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1400c1aea
movzx ebp, al
lea r14, [rsp + 0x50]
mov qword [r14], rbx
lea rbx, [rsp + 0x48]
mov rcx, rsi
mov rdx, rbx
call fcn.140139960
lea rax, str.ThreadController_active
lea r8, [rsp + 0x40]
mov qword [r8], rax
mov qword [rsp + 0x20], r14
lea rdx, [rsp + 0x38]
mov ecx, ebp
mov r9, rbx
call fcn.1401b5620
jmp 0x1400c1cf1
cmp byte [rbx + 0x98], 0
je 0x1400c20db
movzx ecx, cl
lea rdx, [rbx + 0x88]
lea r8, [rsp + 0x50]
mov qword [r8], rax
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rdx
lea rdx, [rsp + 0x48]
mov r9d, 1
call fcn.140012af0
jmp 0x1400c2175
mov rcx, qword [rsp + 0x50]
mov qword [rsi], rcx
jmp 0x1400c1e15
mov rcx, qword [rsp + 0x50]
mov qword [rsi], rcx
jmp 0x1400c1ebd
add r15, rax
cmp r15, 2
setae cl
cmp rax, r14
sete al
or al, cl
jne 0x1400c1f38
int3
mov rcx, 0xfffffffffff0bdc0
add rcx, qword [rbx + 0x68]
movabs rdx, 0x8000000000000000
cmovno rdx, rcx
mov qword [rsp + 0x50], rdx
cmp byte [rbx + 0x98], 0
je 0x1400c20db
movzx ecx, al
lea rax, [rbx + 0x88]
lea rdx, str.MessagePumpPhases
lea r8, [rsp + 0x48]
mov qword [r8], rdx
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x38]
mov r9d, 3
call fcn.140012af0
jmp 0x1400c2149
mov rcx, qword [0x140272470]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1400c1dee
mov rcx, qword [0x140272470]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1400c1e96
int3