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

Disassembly:
sub rsp, 0x28
mov rcx, qword [rcx]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
sete al
add rsp, 0x28
ret
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
movapd xmmword [rsp + 0xb0], xmm6
mov rsi, rcx
mov rax, qword [0x140327038]
xor rax, rsp
mov qword [rsp + 0xa8], rax
test rdx, rdx
jle 0x1401f9daa
mov rdi, rdx
movapd xmm0, xmmword [0x1402e6d80]
movapd xmmword [rsp + 0x50], xmm0
movapd xmmword [rsp + 0x60], xmm0
movapd xmmword [rsp + 0x70], xmm0
movapd xmmword [rsp + 0x80], xmm0
movapd xmmword [rsp + 0x90], xmm0
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xa0], rax
mov byte [rsp + 0x50], 0
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x58], xmm0
movupd xmmword [rsp + 0x68], xmm0
movupd xmmword [rsp + 0x78], xmm0
movupd xmmword [rsp + 0x88], xmm0
mov qword [rsp + 0x98], 0
cmp byte [rsi + 8], 0
je 0x1401f9a18
movabs r15, 0x7fffffffffffffff
cmp rdi, r15
je 0x1401f96a6
mov rax, qword [0x14032a8e8]
lea rcx, [0x140038c30]
cmp rax, rcx
jne 0x1401f9d94
lea rbx, [rsp + 0x28]
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 0x1401f967d
mov rcx, qword [0x14033afc8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
mov rbx, rax
add rbx, r8
jmp 0x1401f9690
imul rax, rax, 0xf4240
cqo
idiv qword [0x14033afc8]
mov rbx, rax
lea rax, [rbx + rdi]
sar rax, 0x3f
btc rax, 0x3f
add rbx, rdi
cmovo rbx, rax
jmp 0x1401f96a9
mov rbx, r15
mov rbp, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea r14, [rsp + 0x28]
mov r12, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movabs r13, 0x20c49ba5e353f7cf
jmp 0x1401f96f3
imul rax, rax, 0xf4240
cqo
idiv qword [0x14033afc8]
xor ecx, ecx
cmp rbx, rax
setns cl
add rcx, r15
mov rdi, rbx
sub rdi, rax
cmovo rdi, rcx
jle 0x1401f97bc
mov edx, 0xffffffff
cmp rdi, r15
je 0x1401f9749
lea rax, [r15 + rdi]
add rax, 2
cmp rax, 2
jb 0x1401f9d8d
mov rax, rdi
imul r13
mov rax, rdx
mov rcx, rdx
shr rcx, 0x3f
sar rax, 7
add rax, rcx
imul rcx, rax, 0x3e8
xor edx, edx
cmp rdi, rcx
setg dl
xor ecx, ecx
add rdx, rax
setns cl
neg ecx
mov rax, rdx
shr rax, 0x20
cmovne edx, ecx
mov rcx, qword [rsi]
call rbp
test eax, eax
je 0x1401f97b7
mov rax, qword [0x14032a8e8]
lea rcx, [0x140038c30]
cmp rax, rcx
jne 0x1401f9d6a
mov qword [rsp + 0x28], 0
mov rcx, r14
call r12
mov rax, qword [rsp + 0x28]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jl 0x1401f96c8
mov rcx, qword [0x14033afc8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1401f96d8
mov sil, 1
jmp 0x1401f97be
xor esi, esi
cmp byte [rsp + 0x50], 0
jne 0x1401f97f3
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.14013d520
mov eax, esi
movaps xmm6, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.14013ab7c
mov ebp, dword [rax]
call fcn.14013ab7c
mov dword [rax], 0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rbx, qword [rsp + 0x58]
test rbx, rbx
je 0x1401f98a6
cmp qword [rsp + 0x60], 0
jne 0x1401f98a6
mov rax, qword [rbx]
mov rax, qword [rax + 0x18]
lea rcx, [0x1400988e0]
cmp rax, rcx
jne 0x1401f9de9
cmp byte [rbx + 0x18], 0
je 0x1401f98a6
mov r14, qword [rbx + 0x28]
add r14, 0x28
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401f9d80
mov qword [rbx + 0x20], 0
cmp byte [rbx + 0x3b], 0
jne 0x1401f9897
cmp byte [rbx + 0x39], 0
mov rcx, qword [rbx + 0x28]
jne 0x1401f9bcd
dec dword [rcx + 0x140]
cmp byte [rbx + 0x18], 0
je 0x1401f9de7
cmp byte [rbx + 0x19], 0
je 0x1401f99ff
mov word [rbx + 0x39], 0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.14013ab7c
mov dword [rax], ebp
cmp byte [rsp + 0x80], 0
je 0x1401f99a3
mov rdi, qword [rsp + 0x90]
test rdi, rdi
je 0x1401f999b
mov rax, qword [fcn.1400c65b0]
lea rcx, [0x140038c30]
cmp rax, rcx
jne 0x1401f9d54
lea rbx, [rsp + 0x28]
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 0x1401f9939
mov rcx, qword [0x14033afc8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
mov rbx, rax
add rbx, r8
jmp 0x1401f994c
imul rax, rax, 0xf4240
cqo
idiv qword [0x14033afc8]
mov rbx, rax
mov qword [rsp + 0x48], rbx
mov r12, qword [rsp + 0x88]
xor eax, eax
cmp rbx, r12
setns al
movabs rbp, 0x7fffffffffffffff
add rax, rbp
mov r13, rbx
sub r13, r12
cmovo r13, rax
cmp r13, 0xf4240
jge 0x1401f9bde
mov rdi, qword [rsp + 0x90]
test rdi, rdi
je 0x1401f999b
lock dec dword [rdi]
je 0x1401f9b8a
mov byte [rsp + 0x80], 0
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x1401f99b5
mov rcx, qword [rsp + 0x70]
mov qword [rax], rcx
movabs rdi, 0xfffffffc00000000
mov rcx, qword [rsp + 0x60]
mov rax, rcx
and rax, rdi
cmp rax, qword [0x140336a08]
je 0x1401f9ddd
mov qword [rsp + 0x60], 0
mov rcx, qword [rsp + 0x58]
and rdi, rcx
cmp rdi, qword [0x140336a08]
jne 0x1401f97c5
call fcn.14010edf0
jmp 0x1401f97c5
cmp byte [rbx + 0x3a], 0
mov rcx, qword [rbx + 0x28]
jne 0x1401f9d43
dec dword [rcx + 0x144]
jmp 0x1401f9897
movabs r14, 0xfffffffc00000000
lea rdx, str.TimedWait
lea r8, str....._base_synchronizationwaitable_event.cc
lea rcx, [rsp + 0x28]
mov r9d, 0x24
call fcn.1400b5b90
mov eax, dword [0x140337e40]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rbx, qword [rax + 0x190]
mov rax, rbx
and rax, r14
cmp rax, qword [0x140336a08]
jne 0x1401f9a71
mov rcx, rbx
call fcn.14010ecc8
lea r15, [rsp + 0x58]
mov qword [r15], rbx
mov eax, dword [0x140337e40]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea r12, [rax + 0x198]
mov rbx, qword [r12]
and r14, rbx
cmp r14, qword [0x140336a08]
jne 0x1401f9aab
mov rcx, rbx
call fcn.14010ecc8
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], r12
mov rax, qword [r12]
mov qword [r12], r15
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x1401f9b2a
mov cl, byte [rax + 0x20]
mov byte [rsp + 0x78], cl
mov byte [rsp + 0x80], 0
mov ecx, dword [0x140337e40]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp byte [rcx + 0x200], 0
je 0x1401f9b35
test rax, rax
je 0x1401f9b5f
cmp byte [rax + 0x28], 0
je 0x1401f9b5f
mov rbx, qword [rax + 0x38]
mov qword [rax + 0x38], 0
test rbx, rbx
je 0x1401f9b5f
lock dec dword [rbx]
jne 0x1401f9b5f
mov rcx, rbx
call fcn.140105710
mov rcx, rbx
call fcn.14013a6ac
jmp 0x1401f9b5f
xor ecx, ecx
jmp 0x1401f9acf
mov rax, qword [rsp + 0x60]
jmp 0x1401f9af7
mov eax, dword [0x14034254c]
mov ecx, dword [0x140337e40]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401f9b9f
cmp byte [0x140342548], 0
je 0x1401f9b2e
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1401f9b80
cmp qword [rsp + 0x60], 0
jne 0x1401f9b80
mov rax, qword [rcx]
mov rax, qword [rax + 8]
xor edx, edx
call qword [case.0x14017aab5.0]
mov byte [rsp + 0x50], 1
jmp 0x1401f9605
mov rcx, rdi
call fcn.140105710
mov rcx, rdi
call fcn.14013a6ac
jmp 0x1401f999b
lea rcx, [0x14034254c]
call fcn.14013b388
cmp dword [0x14034254c], 0xffffffff
jne 0x1401f9b56
call fcn.14006a460
mov byte [0x140342548], al
lea rcx, [0x14034254c]
call fcn.14013a7d4
jmp 0x1401f9b56
dec qword [rcx + 0x120]
call fcn.14010d8d0
jmp 0x1401f9883
mov rax, qword [rdi + 0x1f0]
mov ecx, 0x3938700
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
cmp rcx, rbx
jg 0x1401f9c31
lea r14, [rsp + 0x28]
mov rcx, r14
mov rdx, rbx
call fcn.14010cfe0
mov r14, qword [r14]
test r14, r14
je 0x1401f9c31
lock dec dword [r14]
jne 0x1401f9c31
mov rcx, r14
call fcn.140105710
mov rcx, r14
call fcn.14013a6ac
mov rax, qword [rdi + 0x1f0]
xor edx, edx
cmp r12, rax
setns dl
add rdx, rbp
mov rcx, r12
sub rcx, rax
cmovo rcx, rdx
lea rdx, [r15 + rcx]
add rdx, 2
cmp rdx, 2
jb 0x1401f9c62
cvtsi2sd xmm0, rcx
jmp 0x1401f9c76
xor ecx, ecx
cmp rax, r12
setg cl
lea rax, [0x1402eedf0]
movsd xmm0, qword [rax + rcx*8]
divsd xmm0, qword [0x1402eee30]
call fcn.14017a460
movsd xmm6, qword [0x1402d3f20]
ucomisd xmm6, xmm0
jb 0x1401f9c9f
maxsd xmm0, qword [0x1402d3f38]
cvttsd2si ebp, xmm0
jmp 0x1401f9cb1
xor eax, eax
ucomisd xmm0, qword [0x1402d3f38]
mov ebp, 0x7fffffff
cmovb ebp, eax
lea rax, [r15 + r13]
add rax, 2
cmp rax, 2
jb 0x1401f9cc9
xorps xmm0, xmm0
cvtsi2sd xmm0, r13
jmp 0x1401f9cdd
xor eax, eax
cmp rbx, r12
setl al
lea rcx, [0x1402eedf0]
movsd xmm0, qword [rcx + rax*8]
divsd xmm0, qword [0x1402eee30]
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
jb 0x1401f9cfe
addsd xmm0, qword [0x1402d3ac0]
call fcn.14017a460
jmp 0x1401f9d0b
addsd xmm0, qword [0x1402d3f28]
call fcn.14017a08c
ucomisd xmm6, xmm0
jb 0x1401f9d20
maxsd xmm0, qword [0x1402d3f38]
cvttsd2si r8d, xmm0
jmp 0x1401f9d34
xor eax, eax
ucomisd xmm0, qword [0x1402d3f38]
mov r8d, 0x7fffffff
cmovb r8d, eax
mov rcx, rdi
mov edx, ebp
call fcn.14010d0d0
jmp 0x1401f9985
dec qword [rcx + 0x128]
call fcn.14010d8d0
jmp 0x1401f9897
lea rbx, [rsp + 0x48]
mov rcx, rbx
call qword [case.0x14017aab5.0]
mov rbx, qword [rbx]
jmp 0x1401f9951
lea rdi, [rsp + 0x28]
mov rcx, rdi
call qword [case.0x14017aab5.0]
mov rax, qword [rdi]
jmp 0x1401f96d8
mov rcx, r14
call sub.KERNEL32.dll_AcquireSRWLockExclusive
jmp 0x1401f9861
xor edx, edx
jmp 0x1401f9749
lea rbx, [rsp + 0x48]
mov rcx, rbx
call qword [case.0x14017aab5.0]
mov rbx, qword [rbx]
jmp 0x1401f9690
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.14013d520
mov rcx, rsi
movaps xmm6, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x140125c00
call fcn.14010edf0
jmp 0x1401f99d7
ud2
mov rcx, rbx
call qword [case.0x14017aab5.0]
jmp 0x1401f98a6