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

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x60
mov rax, qword [0x14022d028]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov rax, qword [rcx + 0xa8]
cmp qword [rcx + 0xa0], rax
je 0x1400c633b
mov rdi, rdx
mov rsi, rcx
mov eax, dword [rax - 0x40]
test eax, eax
je 0x1400c6355
cmp eax, 2
je 0x1400c662b
cmp qword [rsi + 0x60], 0
je 0x1400c631a
mov rax, qword [rsi + 0x48]
test rax, rax
je 0x1400c631a
mov rcx, qword [rsi + 0x88]
test rcx, rcx
je 0x1400c6622
mov rdx, qword [rcx + 0xa8]
sub rdx, qword [rcx + 0xa0]
cmp rdx, 0x40
jne 0x1400c631a
lea rbx, [rsi + 0x48]
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x38], rcx
cmp byte [rdi + 8], 0
je 0x1400c6443
mov r14, qword [rdi]
xor ecx, ecx
cmp r14, rax
setns cl
movabs r15, 0x7fffffffffffffff
add rcx, r15
mov rdx, r14
sub rdx, rax
mov qword [rsp + 0x38], r14
cmovo rdx, rcx
cmp rdx, 0x1c9c37f
jg 0x1400c62fc
movabs r8, 0x8000000000000001
lea rax, [rdx + r8]
mov rcx, qword [rsi + 0x10]
cmp rax, 1
jbe 0x1400c6664
lea rax, [rcx + rdx]
sar rax, 0x3f
movabs r8, 0x8000000000000000
xor r8, rax
add rcx, rdx
cmovo rcx, r8
mov qword [rsi + 0x10], rcx
cmp rcx, 0x186a0
jge 0x1400c65ac
cmp qword [rsi + 0x88], 0
je 0x1400c6625
movzx eax, byte [0x14023f06a]
test al, al
setne dil
jne 0x1400c6689
mov byte [rsi + 0x80], dil
mov qword [rsi + 0x48], r14
mov rdi, qword [rsi + 0xa8]
cmp qword [rsi + 0xa0], rdi
je 0x1400c661f
cmp dword [rdi - 0x40], 0
mov dword [rdi - 0x40], 2
je 0x1400c63b2
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140146540
nop
add rsp, 0x60
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
cmp qword [rsi + 0x60], 0
je 0x1400c631a
mov rax, qword [rsi + 0x88]
test rax, rax
je 0x1400c6686
mov rcx, qword [rax + 0xa8]
sub rcx, qword [rax + 0xa0]
cmp rcx, 0x40
jne 0x1400c631a
cmp byte [rdi + 8], 0
je 0x1400c64c2
mov rax, qword [rdi]
mov qword [rsi + 0x40], rax
mov qword [rsi + 0x48], rax
mov qword [rsp + 0x40], 0xaa
movzx eax, byte [0x14023f06a]
test al, al
je 0x1400c631a
jmp 0x1400c6745
mov qword [rsp + 0x40], 0xa
movzx ecx, byte [0x14023efca]
test cl, cl
jne 0x1400c6573
mov rsi, qword [rdi - 0x18]
inc rsi
mov qword [rdi - 0x18], rsi
mov eax, dword [0x140245e80]
mov ecx, dword [0x14023be10]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c653d
cmp dword [rdi - 0x20], 0
je 0x1400c643e
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov eax, eax
movabs r9, 0x100000000
or r9, rax
mov byte [rsp + 0x48], 0
mov byte [rsp + 0x50], 0
mov rdx, qword [rdi - 0x28]
mov qword [rsp + 0x20], rsi
lea rcx, [0x1402454f8]
lea r8, [rsp + 0x48]
call fcn.1400034d0
jmp 0x1400c633b
xor r9d, r9d
jmp 0x1400c6415
mov rax, qword [fcn.1400fc780]
lea rcx, [0x140142f90]
cmp rax, rcx
jne 0x1400c65ff
mov qword [rsp + 0x48], 0
lea rcx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x48]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x1400c671e
imul rax, rax, 0xf4240
cqo
idiv qword [0x14023f400]
mov qword [rsp + 0x48], rax
cmp byte [rdi + 8], 0
jne 0x1400c6679
test rdi, rdi
je 0x1400c6628
mov r14, qword [rsp + 0x48]
mov qword [rdi], r14
mov byte [rdi + 8], 1
mov rax, qword [rbx]
jmp 0x1400c6278
mov rax, qword [fcn.1400fc780]
lea rcx, [0x140142f90]
cmp rax, rcx
jne 0x1400c660f
lea rbx, [rsp + 0x48]
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 0x1400c6795
imul rax, rax, 0xf4240
cqo
idiv qword [0x14023f400]
mov qword [rsp + 0x48], rax
cmp byte [rdi + 8], 0
jne 0x1400c6785
test rdi, rdi
je 0x1400c671b
mov rax, qword [rsp + 0x48]
mov qword [rdi], rax
mov byte [rdi + 8], 1
jmp 0x1400c638d
lea rcx, [0x140245e80]
call fcn.140143cb8
cmp dword [0x140245e80], 0xffffffff
jne 0x1400c63fa
lea rcx, [0x1402454f8]
call fcn.1400036d0
lea rcx, [0x140245e80]
call fcn.140143c58
jmp 0x1400c63fa
mov rax, qword [rdi - 0x10]
test rax, rax
je 0x1400c6792
movzx ecx, cl
lea rdx, str.ThreadController_active
lea r8, [rsp + 0x48]
mov qword [r8], rdx
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x40]
mov r9d, 1
call fcn.1400c9a30
jmp 0x1400c63ca
cvtsi2sd xmm0, rcx
divsd xmm0, qword [0x14020bf40]
cvttsd2si edi, xmm0
mov rcx, qword [rsi + 0x60]
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
mov edx, 2
mov r8d, edi
call qword [0x14021f820]
movsxd rax, edi
imul rcx, rax, 0x3e8
mov rax, qword [rsi + 0x10]
xor edx, edx
cmp rax, rcx
setns dl
add rdx, r15
sub rax, rcx
cmovo rax, rdx
mov qword [rsi + 0x10], rax
jmp 0x1400c62ee
lea rcx, [rsp + 0x48]
call qword [0x14021f820]
jmp 0x1400c649b
lea rcx, [rsp + 0x48]
call qword [0x14021f820]
jmp 0x1400c6519
int3
int3
int3
int3
lea rcx, [rsi + 0xa0]
lea rax, [rsi + 0x98]
lea r8, [rsp + 0x40]
mov byte [r8], 1
lea rdx, [rsp + 0x48]
mov dword [rdx], 2
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
mov r9, rsi
call fcn.1401b2150
jmp 0x1400c633b
lea rax, [r8 - 1]
cmp rcx, rdx
je 0x1400c65f6
add rcx, r8
cmp rcx, 1
ja 0x1400c65f6
int3
mov r14, qword [rsp + 0x48]
mov qword [rdi], r14
jmp 0x1400c64ba
int3
cmp byte [rsi + 0x80], 0
jne 0x1400c66a9
mov qword [rsp + 0x30], 0xaa
mov al, byte [0x14023f06a]
test al, al
jne 0x1400c67fb
mov qword [rsp + 0x40], 0xaa
mov al, byte [0x14023f06a]
test al, al
jne 0x1400c67bc
mov qword [rsp + 0x40], 0xaa
mov al, byte [0x14023f06a]
test al, al
je 0x1400c630f
cmp byte [rsi + 0x78], 0
je 0x1400c685c
movzx ecx, al
lea rax, [rsi + 0x68]
lea r8, [rsp + 0x48]
mov qword [r8], 0
lea rbx, [rsp + 0x38]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x40]
mov r9d, 2
call fcn.1401b24a0
mov r14, qword [rbx]
jmp 0x1400c630f
int3
mov rcx, qword [0x14023f400]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1400c6496
cmp byte [rsi + 0x78], 0
je 0x1400c6859
lea rdx, [rsi + 0x40]
movzx ecx, al
lea rax, [rsi + 0x68]
lea r8, [rsp + 0x48]
mov qword [r8], 0
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x40]
mov r9d, 2
call fcn.1400647a0
jmp 0x1400c631a
mov rax, qword [rsp + 0x48]
mov qword [rdi], rax
jmp 0x1400c638d
int3
mov rcx, qword [0x14023f400]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1400c6514
cmp byte [rsi + 0x78], 0
je 0x1400c685f
movzx ecx, al
lea rax, [rsi + 0x68]
lea rdx, str.PumpOverhead
lea r8, [rsp + 0x48]
mov qword [r8], rdx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x40]
mov r9d, 1
call fcn.14005cb40
jmp 0x1400c66c0
mov rcx, 0xfffffffffff0bdc0
add rcx, qword [rsi + 0x48]
movabs rdx, 0x8000000000000000
cmovno rdx, rcx
mov qword [rsp + 0x48], rdx
cmp byte [rsi + 0x78], 0
je 0x1400c6862
movzx ecx, al
lea rax, [rsi + 0x68]
lea rdx, str.MessagePumpPhases
lea r8, [rsp + 0x40]
mov qword [r8], rdx
lea rdx, [rsp + 0x48]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x30]
mov r9d, 3
call fcn.14005cb40
jmp 0x1400c66a9
int3
int3
int3
int3