Function at 0x14008c070
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, 0x608
mov rax, qword [0x140327038]
xor rax, rsp
mov qword [rsp + 0x600], rax
cmp qword [rcx + 0x28], 0
je 0x14008ca0e
mov rbx, rcx
lea rsi, [rsp + 0x60]
mov r8d, 0x548
mov rcx, rsi
mov dl, 0xaa
call fcn.14013f660
lea rax, [rsp + 0x5a0]
mov qword [rax + 8], rsi
mov qword [rax + 0x28], rsi
mov byte [rax], 1
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rax
cmp qword [rbx + 0x10], 0
je 0x14008c1e6
lea r14, [rsp + 0x5b0]
xor r15d, r15d
lea r12, [0x1401fedb0]
mov rcx, qword [rbx]
mov rdx, qword [rcx]
mov rax, qword [rcx + 8]
inc rax
cmp rax, rdx
mov r8, rax
cmove r8, r15
mov r13, qword [rcx + 0x18]
imul rsi, r8, 0xa8
mov rcx, qword [r13 + rsi]
test rcx, rcx
je 0x14008c1fb
mov rax, qword [rcx + 0x18]
cmp rax, r12
je 0x14008c13d
xor edx, edx
call qword [case.0x14017aab5.0]
test al, al
jne 0x14008c1ea
cmp qword [r13 + rsi + 0xa0], 0
je 0x14008c164
mov rax, qword [r13 + rsi + 0x98]
test rax, rax
je 0x14008c1ea
mov al, byte [rax + 4]
test al, al
jne 0x14008c1ea
mov rsi, qword [rsp + 0x5b0]
mov r14, rsi
cmp rsi, qword [rsp + 0x5b8]
jne 0x14008c411
cmp r14, rsi
setne dil
test r14, r14
je 0x14008c1c0
cmp rsi, r14
jne 0x14008c385
mov r14, rsi
mov qword [rsp + 0x5b8], r14
mov rax, qword [rsp + 0x5c8]
test rax, rax
je 0x14008c1b8
cmp rax, rsi
jne 0x14008c1b8
mov byte [rsi + 0x540], 0
jmp 0x14008c1c0
mov rcx, rsi
call fcn.14013a6ac
mov rcx, qword [rsp + 0x600]
xor rcx, rsp
call fcn.14013d520
mov eax, edi
add rsp, 0x608
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor edi, edi
jmp 0x14008c192
mov rax, qword [rbx]
mov r13, qword [rax + 0x18]
mov rdx, qword [rax]
mov rax, qword [rax + 8]
inc rax
cmp rax, rdx
mov ecx, 0
cmovne rcx, rax
imul r8, rcx, 0xa8
lea rdx, [r8 + r13]
mov rax, qword [rsp + 0x5b8]
cmp rax, qword [rsp + 0x5c0]
jae 0x14008c378
test rax, rax
je 0x14008ca93
mov rcx, qword [rdx]
mov qword [rax], rcx
mov qword [rdx], r15
movups xmm0, xmmword [rdx + 8]
movups xmm1, xmmword [rdx + 0x18]
movups xmmword [rax + 0x18], xmm1
movups xmmword [rax + 8], xmm0
lea rdi, [rax + 0x28]
lea rsi, [rdx + 0x28]
mov ecx, 0xa
rep movsq qword [rdi], qword [rsi]
mov cl, byte [rdx + 0x7c]
mov byte [rax + 0x7c], cl
mov ecx, dword [rdx + 0x78]
mov dword [rax + 0x78], ecx
mov cl, byte [r13 + r8 + 0x82]
mov byte [rax + 0x82], cl
movzx ecx, word [r13 + r8 + 0x80]
mov word [rax + 0x80], cx
mov rcx, qword [r13 + r8 + 0x88]
mov qword [rax + 0x88], rcx
mov qword [r13 + r8 + 0x88], r15
mov rcx, qword [r13 + r8 + 0x90]
mov qword [rax + 0x90], rcx
mov rcx, qword [r13 + r8 + 0x98]
mov qword [rax + 0x98], rcx
mov qword [r13 + r8 + 0x98], r15
mov rcx, qword [r13 + r8 + 0xa0]
mov qword [rax + 0xa0], rcx
add rax, 0xa8
mov qword [rsp + 0x5b8], rax
mov rax, qword [rbx]
mov rcx, qword [rax + 8]
inc rcx
cmp rcx, qword [rax]
mov rsi, qword [rax + 0x18]
mov edx, 0
cmovne rdx, rcx
mov qword [rax + 8], rdx
imul r13, rdx, 0xa8
mov rcx, qword [rsi + r13 + 0x98]
test rcx, rcx
je 0x14008c31a
lock dec dword [rcx]
jne 0x14008c31a
call fcn.14013a6ac
lea rdi, [rsi + r13]
mov rsi, qword [rsi + r13 + 0x88]
test rsi, rsi
jne 0x14008c35c
mov rcx, qword [rdi]
test rcx, rcx
jne 0x14008c367
mov rax, qword [rbx]
mov rcx, qword [rax + 0x10]
cmp rcx, qword [rax + 8]
jne 0x14008c34d
mov rcx, qword [rax + 0x20]
test rcx, rcx
jne 0x14008c3e5
dec qword [rbx + 0x10]
jne 0x14008c0f4
jmp 0x14008c164
lock dec dword [rsi + 8]
jne 0x14008c32b
jmp 0x14008c74c
lock dec dword [rcx]
jne 0x14008c333
mov rax, qword [rcx + 0x10]
call qword [case.0x14017aab5.0]
jmp 0x14008c333
mov rcx, r14
call fcn.1400ed410
jmp 0x14008c2de
mov rcx, qword [rsi - 0x10]
test rcx, rcx
je 0x14008c398
lock dec dword [rcx]
jne 0x14008c398
call fcn.14013a6ac
mov rdi, qword [rsi - 0x20]
test rdi, rdi
jne 0x14008c3c9
mov rcx, qword [rsi - 0xa8]
add rsi, 0xffffffffffffff58
test rcx, rcx
jne 0x14008c3d4
cmp rsi, r14
jne 0x14008c385
mov dil, 1
mov rsi, qword [rsp + 0x5b0]
jmp 0x14008c195
lock dec dword [rdi + 8]
jne 0x14008c3a1
jmp 0x14008ca15
lock dec dword [rcx]
jne 0x14008c3b4
mov rax, qword [rcx + 0x10]
call qword [case.0x14017aab5.0]
jmp 0x14008c3b4
mov qword [rax + 0x20], 0
mov rsi, qword [rbx]
mov qword [rbx], rcx
test rsi, rsi
je 0x14008c34d
mov rcx, rsi
call fcn.140068e50
mov rcx, rsi
call fcn.14013a6ac
jmp 0x14008c34d
cmp qword [rbx + 0x10], 0
jne 0x14008c684
movabs r12, 0xaaaaaaaaaaaaaaaa
movabs r15, 0x8637bd05af7
cmp dword [rbx + 0x78], 0
jne 0x14008c5ba
mov r13, qword [rbx + 0x30]
cmp qword [rbx + 8], 0
je 0x14008c504
mov qword [rsp + 0x50], r12
mov rax, qword [0x14032a8e8]
lea rcx, [0x140038c30]
cmp rax, rcx
jne 0x14008ca7d
lea rsi, [rsp + 0x5d0]
mov qword [rsi], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsi]
cmp rax, r15
jl 0x14008c4a9
mov rcx, qword [0x14033afc8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14008c4b9
imul rax, rax, 0xf4240
cqo
idiv qword [0x14033afc8]
mov qword [rsp + 0x50], rax
cmp rax, qword [rbx + 0x20]
jl 0x14008c504
mov rax, qword [rbx + 0x18]
inc rax
cmp rax, 5
mov edx, 4
cmovae rdx, rax
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
mov qword [rbx + 0x18], rcx
test rax, rax
je 0x14008c504
lea rcx, [rdx + 0x10]
xor r8d, r8d
add r8, qword [rax]
mov rax, qword [rax + 0x20]
test rax, rax
jne 0x14008c4ef
cmp rcx, r8
jb 0x14008c888
lea rsi, [r13 + 0x20]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x14008c51e
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [rbx]
mov rcx, qword [r13 + 0x28]
mov qword [rbx], rcx
mov qword [r13 + 0x28], rax
mov rax, qword [rbx + 8]
mov rcx, qword [r13 + 0x30]
mov qword [rbx + 8], rcx
mov qword [r13 + 0x30], rax
mov rax, qword [rbx + 0x10]
mov rcx, qword [r13 + 0x38]
mov qword [rbx + 0x10], rcx
mov qword [r13 + 0x38], rax
mov rax, qword [rbx + 0x18]
mov rcx, qword [r13 + 0x40]
mov qword [rbx + 0x18], rcx
mov qword [r13 + 0x40], rax
mov rax, qword [rbx + 0x20]
mov rcx, qword [r13 + 0x48]
mov qword [rbx + 0x20], rcx
mov qword [r13 + 0x48], rax
cmp byte [r13 + 0x158], 0
jne 0x14008c6b9
mov rax, qword [r13 + 0xb8]
cmp qword [rax + 0x10], 0
sete byte [r13 + 0x50]
cmp qword [r13 + 0xa8], 0
mov al, byte [r13 + 0x128]
jne 0x14008c5ad
test al, al
je 0x14008c625
mov al, byte [r13 + 0x130]
xor al, 1
mov byte [r13 + 0x51], al
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [rbx + 8], 0
je 0x14008c684
mov qword [rsp + 0x50], r12
mov rax, qword [0x14032a8e8]
lea rcx, [0x140038c30]
cmp rax, rcx
jne 0x14008c8b7
lea rsi, [rsp + 0x5d0]
mov qword [rsi], 0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsi]
cmp rax, r15
jl 0x14008c629
mov rcx, qword [0x14033afc8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14008c639
xor eax, eax
jmp 0x14008c5ad
imul rax, rax, 0xf4240
cqo
idiv qword [0x14033afc8]
mov qword [rsp + 0x50], rax
cmp rax, qword [rbx + 0x20]
jl 0x14008c684
mov rax, qword [rbx + 0x18]
inc rax
cmp rax, 5
mov edx, 4
cmovae rdx, rax
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
mov qword [rbx + 0x18], rcx
test rax, rax
je 0x14008c684
lea rcx, [rdx + 0x10]
xor r8d, r8d
add r8, qword [rax]
mov rax, qword [rax + 0x20]
test rax, rax
jne 0x14008c66f
cmp rcx, r8
jb 0x14008c859
cmp qword [rbx + 0x40], 0xffffffffffffffff
je 0x14008c697
mov rcx, qword [rbx + 0x28]
mov rdx, rbx
call fcn.1400db650
test byte [0x14032a2b0], 9
jne 0x14008c8d4
mov r14, qword [rsp + 0x5b0]
mov rsi, qword [rsp + 0x5b8]
jmp 0x14008c17d
movaps xmm0, xmmword [0x1402e6d80]
lea rdi, [rsp + 0x50]
movaps xmmword [rdi], xmm0
mov rdx, qword [rbx]
mov rcx, rdi
call fcn.140238430
mov rax, qword [rdi]
test rax, rax
je 0x14008c748
lea r14, [rsp + 0x50]
xor edi, edi
cmp byte [r13 + 0x158], 0
je 0x14008c8cf
imul rdx, qword [rsp + 0x58], 0xa8
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + rdx + 0x28]
cmp rax, qword [r13 + 0x160]
jge 0x14008c7b4
mov rcx, r14
call fcn.1400a5dc0
mov rax, qword [rsp + 0x50]
test rax, rax
jne 0x14008c6e2
movabs rax, 0xfffffffc00000000
and rax, rdi
cmp rax, qword [0x140336a08]
jne 0x14008c57a
mov rcx, rdi
call fcn.14010edf0
jmp 0x14008c57a
xor edi, edi
jmp 0x14008c721
mov rcx, qword [rsi]
mov rax, qword [rcx + 8]
lea rdx, [0x1401f9500]
cmp qword [rcx + 0x10], rdx
jne 0x14008c76c
lea rcx, [0x1402382c0]
cmp rax, rcx
je 0x14008c77f
mov rcx, rsi
mov edx, 1
call qword [case.0x14017aab5.0]
jmp 0x14008c32b
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x14008c792
lock dec dword [rcx]
jne 0x14008c792
call fcn.14013a6ac
mov rcx, qword [rsi + 0x10]
test rcx, rcx
je 0x14008c7a0
lock dec dword [rcx]
je 0x14008c7ad
mov rcx, rsi
call fcn.14013a6ac
jmp 0x14008c32b
call fcn.1400e5440
jmp 0x14008c7a0
add rcx, rdx
mov byte [r13 + 0x158], 0
lea rdi, [rsp + 0x5d0]
mov rdx, rdi
call fcn.1400cb7f0
lea r14, [r13 + 0x138]
cmp byte [r13 + 0x130], 0
movups xmm0, xmmword [rdi]
movups xmmword [r13 + 0x138], xmm0
mov eax, dword [rdi + 0x10]
mov dword [r13 + 0x148], eax
jne 0x14008c7fd
mov byte [r13 + 0x130], 1
mov rcx, qword [r13 + 0xb8]
mov eax, dword [r14 + 0x10]
lea rdx, [rsp + 0x5d0]
mov dword [rdx + 0x10], eax
movups xmm0, xmmword [r14]
movaps xmmword [rdx], xmm0
call fcn.14017a780
cmp byte [r13 + 0x130], 0
je 0x14008c8cd
mov rcx, qword [r13 + 0xb0]
mov eax, dword [r14 + 0x10]
lea rdx, [rsp + 0x5d0]
mov dword [rdx + 0x10], eax
movups xmm0, xmmword [r14]
movaps xmmword [rdx], xmm0
call fcn.14017a780
mov rdi, qword [rsp + 0x50]
jmp 0x14008c721
mov rcx, rbx
call fcn.1401953a0
mov rax, qword [rsp + 0x50]
mov ecx, 0x4c4b40
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
mov qword [rbx + 0x20], rcx
jmp 0x14008c684
mov rcx, rbx
call fcn.1401953a0
mov rax, qword [rsp + 0x50]
mov ecx, 0x4c4b40
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
mov qword [rbx + 0x20], rcx
jmp 0x14008c504
lea rsi, [rsp + 0x50]
mov rcx, rsi
call qword [case.0x14017aab5.0]
mov rax, qword [rsi]
jmp 0x14008c63e
ud2
call fcn.1401a3145
mov rbx, qword [rbx + 0x30]
mov rax, qword [rbx + 0x10]
mov edi, dword [rax + 4]
lea rsi, [rsp + 0x5d0]
mov rcx, rsi
call fcn.14011c370
cmp edi, dword [rsi]
jne 0x14008c6a4
lea rdi, [rbx + 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x14008c911
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov r12, qword [rbx + 0x38]
mov rax, qword [rbx + 0xb0]
mov rcx, qword [rbx + 0xb8]
mov r15, qword [rcx + 0x10]
mov r14, qword [rax + 0x10]
mov r13, qword [rbx + 0xd0]
mov rbp, qword [rbx + 0xc8]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test byte [0x14032a2b0], 0x19
je 0x14008c6a4
sub r13, rbp
shr r13, 3
imul eax, r13d, 0x3cf3cf3d
add r15d, r12d
add r14d, eax
add r14d, r15d
mov ecx, dword [rbx]
call fcn.1400ebe70
mov rdi, rax
lea rbx, [rsp + 0x50]
mov rcx, rbx
call fcn.1400c65b0
call sub.KERNEL32.dll_GetCurrentThreadId
movaps xmm0, xmmword [0x1402e6d80]
movaps xmmword [rsp + 0x5d0], xmm0
movaps xmmword [rsp + 0x5e0], xmm0
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x5f0], rcx
mov word [rsp + 0x5d0], 0x301
lea rcx, [0x1402e9199]
mov qword [rsp + 0x5d8], rcx
movsxd rcx, r14d
mov qword [rsp + 0x5e8], rcx
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rbx
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 0x14008c6a4
xor edi, edi
jmp 0x14008c1c0
mov rcx, qword [rdi]
mov rax, qword [rcx + 8]
lea rdx, [0x1401f9500]
cmp qword [rcx + 0x10], rdx
jne 0x14008ca35
lea rcx, [0x1402382c0]
cmp rax, rcx
je 0x14008ca48
mov rcx, rdi
mov edx, 1
call qword [case.0x14017aab5.0]
jmp 0x14008c3a1
mov rcx, qword [rdi + 0x18]
test rcx, rcx
je 0x14008ca5b
lock dec dword [rcx]
jne 0x14008ca5b
call fcn.14013a6ac
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x14008ca69
lock dec dword [rcx]
je 0x14008ca76
mov rcx, rdi
call fcn.14013a6ac
jmp 0x14008c3a1
call fcn.1400e5440
jmp 0x14008ca69
lea rsi, [rsp + 0x50]
mov rcx, rsi
call qword [case.0x14017aab5.0]
mov rax, qword [rsi]
jmp 0x14008c4be
lea rax, str.null_pointer_given_to_construct_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude__memoryconstruct_at.h
lea r9, str.__location___nullptr
mov r8d, 0x25
call fcn.140181600
int3