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

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x30
mov ebx, ecx
mov rax, qword [0x140274038]
xor rax, rsp
mov qword [rsp + 0x28], rax
mov eax, dword [0x140286bc0]
mov ecx, dword [0x140283248]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14015d6d5
mov rsi, qword [0x140286bb8]
movabs r14, 0xfffffffc00000000
and r14, rsi
cmp r14, qword [0x140276788]
jne 0x14015d505
mov rcx, rsi
call fcn.1401599c0
test rsi, rsi
je 0x14015d71b
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14015d6c8
movzx ebx, bl
dec ebx
or ebx, 1
cmp byte [0x140286b70], 0
mov eax, 8
mov ecx, 1
cmove ecx, eax
xor ebp, ebp
add ebx, dword [0x140286b74]
mov dword [0x140286b74], ebx
cmovne ebp, ecx
mov eax, dword [0x140286b78]
cmp ebp, eax
je 0x14015d694
test eax, eax
je 0x14015d625
mov rax, qword [0x140276e18]
lea rcx, [0x14015d7c0]
lea rdi, [rsp + 0x20]
cmp rax, rcx
jne 0x14015d72f
mov qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [rdi]
movabs rax, 0x8637bd05af7
cmp rcx, rax
jge 0x14015d78a
imul rax, rcx, 0xf4240
cqo
idiv qword [0x140286bd8]
mov qword [rsp + 0x20], rax
mov rcx, qword [0x140286bc8]
xor edx, edx
cmp rax, rcx
setns dl
movabs r8, 0x7fffffffffffffff
add r8, rdx
sub rax, rcx
cmovo rax, r8
movabs rdx, 0x8000000000000001
lea r8, [rax + rdx]
mov rcx, qword [0x140286b80]
cmp r8, 2
jb 0x14015d740
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
mov rax, rcx
mov qword [0x140286b80], rax
mov ecx, dword [0x140286b78]
call qword [sym.imp.WINMM.dll_timeEndPeriod]
mov dword [0x140286b78], ebp
test ebx, ebx
je 0x14015d694
mov rax, qword [0x140276e18]
lea rcx, [0x14015d7c0]
lea rdi, [rsp + 0x20]
cmp rax, rcx
jne 0x14015d71e
mov qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [rdi]
movabs rax, 0x8637bd05af7
cmp rcx, rax
jge 0x14015d759
imul rax, rcx, 0xf4240
cqo
idiv qword [0x140286bd8]
mov qword [0x140286bc8], rax
mov ecx, dword [0x140286b78]
call qword [sym.imp.WINMM.dll_timeBeginPeriod]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp r14, qword [0x140276788]
jne 0x14015d6ae
mov rcx, rsi
call fcn.140159b20
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.14018d030
mov al, 1
add rsp, 0x30
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
mov rcx, rsi
call sub.KERNEL32.dll_AcquireSRWLockExclusive
jmp 0x14015d51f
lea rcx, [0x140286bc0]
call fcn.14018bc90
cmp dword [0x140286bc0], 0xffffffff
jne 0x14015d4e0
mov ecx, 8
call fcn.14018bb3c
mov rsi, rax
mov rcx, rax
call fcn.140145d00
mov qword [0x140286bb8], rsi
lea rcx, [0x140286bc0]
call fcn.14018bd28
jmp 0x14015d4e0
int3
mov rcx, rdi
call qword [0x1402655f0]
mov rax, qword [rdi]
jmp 0x14015d681
mov rcx, rdi
call qword [0x1402655f0]
mov rax, qword [rdi]
jmp 0x14015d5b9
cmp rcx, rax
je 0x14015d612
add rcx, rdx
cmp rcx, 1
ja 0x14015d612
int3
mov r8, qword [0x140286bd8]
mov rax, rcx
cqo
idiv r8
imul r9, rax, 0xf4240
imul rax, r8
sub rcx, rax
imul rax, rcx, 0xf4240
cqo
idiv r8
add rax, r9
jmp 0x14015d681
mov r8, qword [0x140286bd8]
mov rax, rcx
cqo
idiv r8
imul r9, rax, 0xf4240
imul rax, r8
sub rcx, rax
imul rax, rcx, 0xf4240
cqo
idiv r8
add rax, r9
jmp 0x14015d5b4