Function at 0x14008cac0
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
movaps xmmword [rsp + 0xb0], xmm6
mov rbx, rdx
mov r14, rcx
mov rax, qword [0x140327038]
xor rax, rsp
mov qword [rsp + 0xa8], rax
movaps xmm6, xmmword [0x1402e6d80]
movups xmmword [rdx + 0x78], xmm6
mov rax, qword [rcx]
mov rcx, qword [rax + 8]
mov r8, qword [rax + 0x18]
inc rcx
xor edx, edx
cmp rcx, qword [rax]
cmove rcx, rdx
imul rax, rcx, 0xa8
add rax, r8
add rax, 0x28
mov rcx, qword [rax - 0x28]
mov qword [rbx], rcx
mov qword [rax - 0x28], rdx
movups xmm0, xmmword [rax - 0x20]
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rbx + 0x18], xmm1
movups xmmword [rbx + 8], xmm0
lea rdi, [rbx + 0x28]
mov ecx, 0xa
mov rsi, rax
rep movsq qword [rdi], qword [rsi]
mov cl, byte [rax + 0x54]
mov byte [rbx + 0x7c], cl
mov ecx, dword [rax + 0x50]
mov dword [rbx + 0x78], ecx
mov cl, byte [rax + 0x5a]
mov byte [rbx + 0x82], cl
movzx ecx, word [rax + 0x58]
mov word [rbx + 0x80], cx
mov rcx, qword [rax + 0x60]
mov qword [rbx + 0x88], rcx
mov qword [rax + 0x60], rdx
mov rcx, qword [rax + 0x68]
mov qword [rbx + 0x90], rcx
mov rcx, qword [rax + 0x70]
mov qword [rbx + 0x98], rcx
mov qword [rax + 0x70], rdx
mov rax, qword [rax + 0x78]
mov qword [rbx + 0xa0], rax
mov rax, qword [r14]
mov rcx, qword [rax + 8]
mov rsi, qword [rax + 0x18]
inc rcx
cmp rcx, qword [rax]
cmove rcx, rdx
mov qword [rax + 8], rcx
imul r15, rcx, 0xa8
mov rcx, qword [rsi + r15 + 0x98]
test rcx, rcx
je 0x14008cbd8
lock dec dword [rcx]
jne 0x14008cbd8
call fcn.14013a6ac
lea rdi, [rsi + r15]
mov rsi, qword [rsi + r15 + 0x88]
test rsi, rsi
jne 0x14008ccab
mov rcx, qword [rdi]
test rcx, rcx
jne 0x14008ccba
mov rax, qword [r14]
mov rcx, qword [rax + 0x10]
cmp rcx, qword [rax + 8]
jne 0x14008cc13
mov rcx, qword [rax + 0x20]
test rcx, rcx
jne 0x14008cfcc
dec qword [r14 + 0x10]
jne 0x14008ced6
movabs r13, 0xaaaaaaaaaaaaaaaa
movabs r15, 0x8637bd05af7
cmp dword [r14 + 0x78], 0
jne 0x14008ce0c
mov rbp, qword [r14 + 0x30]
cmp qword [r14 + 8], 0
je 0x14008cd2d
mov qword [rsp + 0x60], r13
mov rax, qword [0x14032a8e8]
lea rcx, [0x140038c30]
cmp rax, rcx
jne 0x14008d2c5
lea rsi, [rsp + 0x80]
mov qword [rsi], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsi]
cmp rax, r15
jl 0x14008ccd2
mov rcx, qword [0x14033afc8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14008cce2
lock dec dword [rsi + 8]
jne 0x14008cbed
jmp 0x14008cff8
lock dec dword [rcx]
jne 0x14008cbf9
mov rax, qword [rcx + 0x10]
call qword [case.0x14017aab5.0]
jmp 0x14008cbf9
imul rax, rax, 0xf4240
cqo
idiv qword [0x14033afc8]
mov qword [rsp + 0x60], rax
cmp rax, qword [r14 + 0x20]
jl 0x14008cd2d
mov rax, qword [r14 + 0x18]
inc rax
cmp rax, 5
mov edx, 4
cmovae rdx, rax
mov rax, qword [r14]
mov rcx, qword [r14 + 0x10]
mov qword [r14 + 0x18], rcx
test rax, rax
je 0x14008cd2d
lea rcx, [rdx + 0x10]
xor r8d, r8d
add r8, qword [rax]
mov rax, qword [rax + 0x20]
test rax, rax
jne 0x14008cd18
cmp rcx, r8
jb 0x14008d296
lea rsi, [rbp + 0x20]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x14008cd47
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [r14]
mov rcx, qword [rbp + 0x28]
mov qword [r14], rcx
mov qword [rbp + 0x28], rax
mov rax, qword [r14 + 8]
mov rcx, qword [rbp + 0x30]
mov qword [r14 + 8], rcx
mov qword [rbp + 0x30], rax
mov rax, qword [r14 + 0x10]
mov rcx, qword [rbp + 0x38]
mov qword [r14 + 0x10], rcx
mov qword [rbp + 0x38], rax
mov rax, qword [r14 + 0x18]
mov rcx, qword [rbp + 0x40]
mov qword [r14 + 0x18], rcx
mov qword [rbp + 0x40], rax
mov rax, qword [r14 + 0x20]
mov rcx, qword [rbp + 0x48]
mov qword [r14 + 0x20], rcx
mov qword [rbp + 0x48], rax
cmp byte [rbp + 0x158], 0
je 0x14008cdd4
movabs r12, 0xfffffffc00000000
mov rdi, qword [r14]
test rdi, rdi
je 0x14008cdbe
mov rcx, qword [rdi + 8]
cmp qword [rdi + 0x10], rcx
jne 0x14008cf1e
xor edi, edi
and r12, rdi
cmp r12, qword [0x140336a08]
jne 0x14008cdd4
mov rcx, rdi
call fcn.14010edf0
mov rax, qword [rbp + 0xb8]
cmp qword [rax + 0x10], 0
sete byte [rbp + 0x50]
cmp qword [rbp + 0xa8], 0
mov al, byte [rbp + 0x128]
jne 0x14008ce00
test al, al
je 0x14008ce77
mov al, byte [rbp + 0x130]
xor al, 1
mov byte [rbp + 0x51], al
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [r14 + 8], 0
je 0x14008ced6
mov qword [rsp + 0x60], r13
mov rax, qword [0x14032a8e8]
lea rcx, [0x140038c30]
cmp rax, rcx
jne 0x14008d1f8
lea rsi, [rsp + 0x80]
mov qword [rsi], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsi]
cmp rax, r15
jl 0x14008ce7b
mov rcx, qword [0x14033afc8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14008ce8b
xor eax, eax
jmp 0x14008ce00
imul rax, rax, 0xf4240
cqo
idiv qword [0x14033afc8]
mov qword [rsp + 0x60], rax
cmp rax, qword [r14 + 0x20]
jl 0x14008ced6
mov rax, qword [r14 + 0x18]
inc rax
cmp rax, 5
mov edx, 4
cmovae rdx, rax
mov rax, qword [r14]
mov rcx, qword [r14 + 0x10]
mov qword [r14 + 0x18], rcx
test rax, rax
je 0x14008ced6
lea rcx, [rdx + 0x10]
xor r8d, r8d
add r8, qword [rax]
mov rax, qword [rax + 0x20]
test rax, rax
jne 0x14008cec1
cmp rcx, r8
jb 0x14008d059
mov rcx, qword [r14 + 0x28]
mov rdx, r14
call fcn.1400b1410
test byte [0x14032a2b0], 9
jne 0x14008d2f5
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.14013d520
mov rax, rbx
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
mov rax, rdi
and rax, r12
cmp rax, qword [0x140336a08]
jne 0x14008cf46
mov rcx, rdi
call fcn.14010ecc8
cmp byte [rbp + 0x158], 0
je 0x14008d291
mov rcx, qword [rdi + 8]
inc rcx
mov rax, qword [rdi]
cmp rcx, rax
mov edx, 0
cmovne rdx, rcx
mov r9b, 1
mov rcx, qword [rdi + 0x18]
imul r8, rdx, 0xa8
mov r10, qword [rcx + r8 + 0x28]
cmp r10, qword [rbp + 0x160]
jge 0x14008d09e
mov r13, r15
cmp rdx, qword [rdi + 0x10]
jne 0x14008d44e
mov r15, qword [rdi + 0x20]
mov rax, rdi
and rax, r12
cmp rax, qword [0x140336a08]
je 0x14008d2db
mov rax, r15
and rax, r12
cmp rax, qword [0x140336a08]
je 0x14008d2e8
test r15, r15
jne 0x14008d42f
xor edi, edi
mov r15, r13
movabs r13, 0xaaaaaaaaaaaaaaaa
jmp 0x14008cdc0
mov qword [rax + 0x20], 0
mov rsi, qword [r14]
mov qword [r14], rcx
test rsi, rsi
je 0x14008cc13
mov rcx, rsi
call fcn.140068e50
mov rcx, rsi
call fcn.14013a6ac
jmp 0x14008cc13
mov rcx, qword [rsi]
mov rax, qword [rcx + 8]
lea rdx, [0x1401f9500]
cmp qword [rcx + 0x10], rdx
jne 0x14008d018
lea rcx, [0x1402382c0]
cmp rax, rcx
je 0x14008d02b
mov rcx, rsi
mov edx, 1
call qword [case.0x14017aab5.0]
jmp 0x14008cbed
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x14008d03e
lock dec dword [rcx]
jne 0x14008d03e
call fcn.14013a6ac
mov rcx, qword [rsi + 0x10]
test rcx, rcx
je 0x14008d04c
lock dec dword [rcx]
je 0x14008d088
mov rcx, rsi
call fcn.14013a6ac
jmp 0x14008cbed
mov rcx, r14
call fcn.1401953a0
mov rax, qword [rsp + 0x60]
mov ecx, 0x4c4b40
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
mov qword [r14 + 0x20], rcx
jmp 0x14008ced6
call fcn.1400e5440
jmp 0x14008d04c
cmp dword [rdx + 0x40], 0
je 0x14008d170
mov rdx, r9
jmp 0x14008d0b7
lea rdx, [rcx + r8]
mov byte [rbp + 0x158], 0
mov eax, dword [rdx + 0x78]
mov r9, qword [rdx + 0x30]
test r9, r9
jne 0x14008d08f
xor edx, edx
mov rcx, qword [rcx + r8 + 0x90]
cmp byte [rbp + 0x130], 0
lea r15, [rbp + 0x138]
mov qword [rbp + 0x138], rcx
mov qword [rbp + 0x140], rdx
mov dword [rbp + 0x148], eax
jne 0x14008d0ea
mov byte [rbp + 0x130], 1
mov rcx, qword [rbp + 0xb8]
mov eax, dword [r15 + 0x10]
mov dword [rsp + 0x70], eax
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x60], xmm0
cmp byte [rcx + 0x50], 0
jne 0x14008d1bc
movups xmm0, xmmword [r15]
mov eax, dword [r15 + 0x10]
mov dword [rcx + 0x68], eax
movups xmmword [rcx + 0x58], xmm0
mov byte [rcx + 0x50], 1
cmp byte [rbp + 0x130], 0
je 0x14008d28f
mov rcx, qword [rbp + 0xb0]
mov eax, dword [r15 + 0x10]
mov dword [rsp + 0x70], eax
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x60], xmm0
cmp byte [rcx + 0x50], 0
jne 0x14008d1dc
movups xmm0, xmmword [r15]
mov eax, dword [r15 + 0x10]
mov dword [rcx + 0x68], eax
movups xmmword [rcx + 0x58], xmm0
mov byte [rcx + 0x50], 1
movabs r15, 0x8637bd05af7
jmp 0x14008cdc0
movabs r10, 0x8000000000000001
mov rdx, qword [rdx + 0x38]
lea r11, [rdx + r10]
cmp r11, 2
jae 0x14008d1a3
add r10, r9
cmp r10, 1
ja 0x14008d0b7
cmp r9, rdx
je 0x14008d0b7
jmp 0x14008d475
lea r10, [r9 + rdx]
sar r10, 0x3f
btc r10, 0x3f
add r9, rdx
cmovo r9, r10
jmp 0x14008d099
cmp qword [rcx + 0x10], 0
jne 0x14008d248
mov eax, dword [rsp + 0x70]
mov dword [rcx + 0x68], eax
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rcx + 0x58], xmm0
jmp 0x14008d11f
cmp qword [rcx + 0x10], 0
jne 0x14008d20e
mov eax, dword [rsp + 0x70]
mov dword [rcx + 0x68], eax
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rcx + 0x58], xmm0
jmp 0x14008d161
lea rsi, [rsp + 0x60]
mov rcx, rsi
call qword [case.0x14017aab5.0]
mov rax, qword [rsi]
jmp 0x14008ce90
mov rax, qword [rcx]
mov r15, rcx
mov rcx, qword [rax + 8]
inc rcx
xor edx, edx
cmp rcx, qword [rax]
cmovne rdx, rcx
imul rcx, rdx, 0xa8
add rcx, qword [rax + 0x18]
lea rdx, [rsp + 0x80]
call fcn.1400cb7f0
cmp byte [r15 + 0x50], 0
je 0x14008d28f
mov rcx, r15
jmp 0x14008d1e3
mov rax, qword [rcx]
mov r13, rcx
mov rcx, qword [rax + 8]
inc rcx
xor edx, edx
cmp rcx, qword [rax]
cmovne rdx, rcx
imul rcx, rdx, 0xa8
add rcx, qword [rax + 0x18]
lea rdx, [rsp + 0x80]
call fcn.1400cb7f0
cmp byte [r13 + 0x50], 0
je 0x14008d28f
mov rcx, r13
movabs r13, 0xaaaaaaaaaaaaaaaa
jmp 0x14008d1c7
ud2
call fcn.1401a3145
mov rcx, r14
call fcn.1401953a0
mov rax, qword [rsp + 0x60]
mov ecx, 0x4c4b40
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
mov qword [r14 + 0x20], rcx
jmp 0x14008cd2d
lea rsi, [rsp + 0x60]
mov rcx, rsi
call qword [case.0x14017aab5.0]
mov rax, qword [rsi]
jmp 0x14008cce7
mov rcx, rdi
call fcn.14010edf0
jmp 0x14008cf9c
mov rcx, r15
call fcn.14010ecc8
jmp 0x14008cfaf
mov r14, qword [r14 + 0x30]
mov rax, qword [r14 + 0x10]
mov edi, dword [rax + 4]
lea rsi, [rsp + 0x80]
mov rcx, rsi
call fcn.14011c370
cmp edi, dword [rsi]
jne 0x14008ceef
lea rdi, [r14 + 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x14008d332
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [r14 + 0x38]
mov qword [rsp + 0x58], rax
mov rax, qword [r14 + 0xb0]
mov rcx, qword [r14 + 0xb8]
mov r13, qword [rcx + 0x10]
mov r12, qword [rax + 0x10]
mov rbp, qword [r14 + 0xd0]
mov r15, qword [r14 + 0xc8]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test byte [0x14032a2b0], 0x19
je 0x14008ceef
sub rbp, r15
shr rbp, 3
imul eax, ebp, 0x3cf3cf3d
add r13d, dword [rsp + 0x58]
add r12d, eax
add r12d, r13d
mov ecx, dword [r14]
call fcn.1400ebe70
mov rdi, rax
lea r14, [rsp + 0x60]
mov rcx, r14
call fcn.1400c65b0
call sub.KERNEL32.dll_GetCurrentThreadId
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x90], xmm6
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xa0], rcx
mov word [rsp + 0x80], 0x301
lea rcx, [0x1402e9199]
mov qword [rsp + 0x88], rcx
movsxd rcx, r12d
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], r14
mov dword [rsp + 0x30], eax
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
lea rdx, [0x14032a2b0]
mov cl, 0x43
mov r8, rdi
xor r9d, r9d
call fcn.140189ab0
mov rcx, rsi
call fcn.1400a9984
jmp 0x14008ceef
mov rax, qword [r15]
mov rcx, qword [r15 + 8]
inc rcx
xor edx, edx
cmp rcx, rax
cmovne rdx, rcx
mov r9b, byte [rbp + 0x158]
mov rdi, r15
jmp 0x14008d45a
inc rdx
xor ecx, ecx
cmp rdx, rax
cmove rdx, rcx
test r9b, r9b
mov r15, r13
movabs r13, 0xaaaaaaaaaaaaaaaa
jne 0x14008cf5b
jmp 0x14008d291
int3