Function at 0x1400ee2a0
Capabilities:
Check for time delay via queryperformancecounter
Get thread local storage value

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x90
mov rsi, rcx
mov rax, qword [0x140287028]
xor rax, rsp
mov qword [rsp + 0x88], rax
movabs r14, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x70], r14
movapd xmm0, xmmword [0x140261350]
movapd xmmword [rsp + 0x60], xmm0
mov rax, qword [rcx - 0xc0]
mov byte [rsp + 0x60], 0
mov qword [rsp + 0x78], rax
cmp byte [rcx + 0x120], 0
je 0x1400ee3cc
mov eax, dword [0x1402a19a0]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400ee918
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400ee3cc
mov rcx, qword [0x1402a1990]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1402a1998]
jne 0x1400ee3cc
mov rdi, qword [rax + rcx]
test rdi, rdi
je 0x1400ee3cc
cmp byte [rsi + 0x128], 0
je 0x1400ee3cc
mov rax, qword [rdi]
test rax, rax
js 0x1400ee999
cmp dword [rdi + 0x14], 1
movabs rbx, 0x4000000000000000
jne 0x1400eea42
cmp qword [rdi + 8], 0
jne 0x1400eea87
movabs rax, 0xbfffffffffffffff
lock and qword [rdi], rax
mov r15, qword [rsi + 0x130]
cmp qword [rdi + 8], 0
jne 0x1400eea63
mov rax, qword [rdi]
and rax, rbx
movabs rcx, 0xffffffffffffff
and r15, rcx
or r15, rax
mov qword [rdi], r15
dec dword [rdi + 0x14]
mov qword [rsi + 0x130], 0
mov byte [rsi + 0x138], 0
mov byte [rsi + 0x128], 0
mov byte [rsi + 0x120], 1
mov rax, qword [rsi + 0xf0]
mov ecx, dword [rax]
inc ecx
je 0x1400ee9d6
mov dword [rax], ecx
mov rax, qword [rsi - 0x10]
cmp qword [rsi - 0x18], rax
je 0x1400ee597
mov eax, dword [rax - 0x38]
test eax, eax
je 0x1400ee571
cmp eax, 2
je 0x1400eea0c
cmp qword [rsi - 0x58], 0
je 0x1400ee57c
cmp qword [rsi - 0x70], 0
je 0x1400ee57c
mov rax, qword [rsi - 0x28]
test rax, rax
je 0x1400eeacb
mov rcx, qword [rax + 0xa8]
sub rcx, qword [rax + 0xa0]
cmp rcx, 0x38
jne 0x1400ee57c
cmp byte [rsp + 0x60], 0
jne 0x1400ee7ed
mov rax, qword [fcn.140158d50]
lea rcx, [0x140171950]
cmp rax, rcx
jne 0x1400ee96d
mov qword [rsp + 0x30], 0
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x30]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x1400eeb71
imul rax, rax, 0xf4240
cqo
idiv qword [0x14029b670]
mov rdi, rax
cmp byte [rsp + 0x60], 0
mov qword [rsp + 0x68], rdi
jne 0x1400ee4ce
mov byte [rsp + 0x60], 1
mov rax, qword [rsi - 0x70]
xor edx, edx
cmp rdi, rax
setns dl
movabs r15, 0x7fffffffffffffff
add rdx, r15
mov rcx, rdi
sub rcx, rax
cmovo rcx, rdx
cmp rcx, 0x1c9c37f
jg 0x1400ee554
movabs rax, 0x8000000000000001
lea r8, [rcx + rax]
mov rdx, qword [rsi - 0xa8]
cmp r8, 1
jbe 0x1400eeace
lea rax, [rdx + rcx]
sar rax, 0x3f
movabs r8, 0x8000000000000000
xor r8, rax
add rdx, rcx
cmovo rdx, r8
mov qword [rsi - 0xa8], rdx
cmp rdx, 0x186a0
jge 0x1400ee8bf
cmp qword [rsi - 0x28], 0
je 0x1400eeaeb
movzx eax, byte [0x140289970]
test al, 9
setne bpl
jne 0x1400eeaee
mov byte [rsi - 0x30], bpl
mov qword [rsi - 0x70], rdi
jmp 0x1400ee57c
cmp qword [rsi - 0x58], 0
jne 0x1400ee718
mov rdi, qword [rsi - 0x10]
cmp qword [rsi - 0x18], rdi
je 0x1400ee9e0
cmp dword [rdi - 0x38], 0
mov dword [rdi - 0x38], 2
je 0x1400ee5ba
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.1401756e0
nop
add rsp, 0x90
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
test byte [0x140289010], 0x19
jne 0x1400eeaab
mov rbx, qword [rdi - 0x10]
inc rbx
mov qword [rdi - 0x10], rbx
mov eax, dword [0x1402a3938]
mov ecx, dword [0x140296f94]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400ee845
mov r14d, dword [rdi - 0x18]
test r14d, r14d
je 0x1400ee966
mov bpl, 1
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
test r14d, r14d
setne r15b
mov r14, qword [rdi - 0x20]
lea rcx, [0x1402a3928]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400ee7fe
mov rdi, qword [0x1402a3918]
test rdi, rdi
je 0x1400ee68a
lea rax, [0x1402a2cd0]
xor ecx, ecx
mov edx, r15d
xor dl, 1
cmp rcx, 0x32
je 0x1400ee9aa
cmp qword [rax - 0x30], r14
jne 0x1400ee67e
cmp byte [rax - 0x28], 0
jne 0x1400ee67e
movzx r8d, byte [rax - 0x10]
test r8b, r8b
sete r9b
or r9b, dl
jne 0x1400ee80f
cmp dword [rax - 0xc], esi
je 0x1400ee81f
inc rcx
add rax, 0x40
cmp rdi, rcx
jne 0x1400ee64a
mov rax, qword [0x1402a3920]
test rax, rax
je 0x1400ee6d3
mov ecx, 0x32
sub rcx, rdi
cmp rax, rcx
jb 0x1400ee6d3
lea rcx, [0x1402a3930]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400ee6d3
lea rcx, [0x1402a2c90]
mov rdx, rdi
call fcn.1400ec220
mov rdi, rax
lea rcx, [0x1402a3930]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp rdi, 0x32
je 0x1400ee833
jae 0x1400ee9aa
shl rdi, 6
lea rax, [0x1402a2c90]
mov qword [rdi + rax + 0x10], r14
mov byte [rdi + rax + 0x18], 0
mov byte [rdi + rax + 0x30], bpl
mov dword [rdi + rax + 0x34], esi
mov qword [rdi + rax + 0x40], rbx
mov byte [rdi + rax + 8], 1
lock inc qword [0x1402a3918]
jmp 0x1400ee833
mov rax, qword [rsi - 0x28]
test rax, rax
je 0x1400eeb6e
mov rcx, qword [rax + 0xa8]
sub rcx, qword [rax + 0xa0]
cmp rcx, 0x38
jne 0x1400ee57c
cmp byte [rsp + 0x60], 0
jne 0x1400ee7f7
mov rax, qword [fcn.140158d50]
lea rcx, [0x140171950]
cmp rax, rcx
jne 0x1400ee983
lea rdi, [rsp + 0x30]
mov qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rdi]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x1400eeb9b
imul rax, rax, 0xf4240
cqo
idiv qword [0x14029b670]
cmp byte [rsp + 0x60], 0
mov qword [rsp + 0x68], rax
jne 0x1400ee7ab
mov byte [rsp + 0x60], 1
mov qword [rsi - 0x78], rax
mov qword [rsi - 0x70], rax
test byte [0x140289970], 0x19
je 0x1400ee57c
cmp byte [rsi - 0x50], 0
je 0x1400eec36
lea r9, [rsi - 0x48]
mov qword [rsp + 0x20], rax
lea rdx, [0x140289970]
lea r8, [0x140262d25]
mov cl, 0x45
call fcn.140041e60
jmp 0x1400ee57c
mov rdi, qword [rsp + 0x68]
jmp 0x1400ee4ce
mov rax, qword [rsp + 0x68]
jmp 0x1400ee7ab
lea rcx, [0x1402a3928]
call fcn.1400ec2e0
jmp 0x1400ee62f
test r8b, r8b
setne r8b
xor r8b, r15b
jne 0x1400ee67e
mov qword [rax], rbx
mov cl, 1
xchg byte [rax - 0x38], cl
test cl, 1
jne 0x1400ee833
dec qword [0x1402a3920]
lea rcx, [0x1402a3928]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400ee597
lea rcx, [0x1402a3938]
call fcn.140172b08
cmp dword [0x1402a3938], 0xffffffff
jne 0x1400ee5f7
lea rax, [0x14025d760]
mov qword [0x1402a2c90], rax
mov eax, 0x40
lea rcx, [0x1402a2c90]
xor edx, edx
mov byte [rax + rcx - 0x38], dl
mov byte [rax + rcx - 0x28], dl
mov byte [rax + rcx - 0x10], dl
mov qword [rax + rcx], 0
add rax, 0x40
cmp rax, 0xcc0
jne 0x1400ee87a
xorpd xmm0, xmm0
movupd xmmword [0x1402a3928], xmm0
movupd xmmword [0x1402a3918], xmm0
lea rcx, [0x1402a3938]
call fcn.140172aa8
jmp 0x1400ee5f7
cvtsi2sd xmm0, rdx
divsd xmm0, qword [0x140265fa0]
cvttsd2si ebx, xmm0
mov rcx, qword [rsi - 0x58]
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
mov edx, 2
mov r8d, ebx
call qword [case.0x1401d7990.0]
movsxd rax, ebx
imul rcx, rax, 0x3e8
mov rax, qword [rsi - 0xa8]
xor edx, edx
cmp rax, rcx
setns dl
add rdx, r15
sub rax, rcx
cmovo rax, rdx
mov qword [rsi - 0xa8], rax
jmp 0x1400ee549
lea rcx, [0x1402a19a0]
call fcn.140172b08
cmp dword [0x1402a19a0], 0xffffffff
jne 0x1400ee326
mov qword [0x1402a1998], 0
lea rcx, [0x1402a1990]
mov qword [0x1402a1990], 0xffffffffffffffff
xor edx, edx
call fcn.140002400
lea rcx, [0x1402a19a0]
call fcn.140172aa8
jmp 0x1400ee326
xor ebp, ebp
jmp 0x1400ee60f
lea rdi, [rsp + 0x58]
mov rcx, rdi
call qword [case.0x1401d7990.0]
mov rdi, qword [rdi]
jmp 0x1400ee4bd
lea rdi, [rsp + 0x58]
mov rcx, rdi
call qword [case.0x1401d7990.0]
mov rax, qword [rdi]
jmp 0x1400ee79a
mov rcx, qword [0x1402a1988]
call fcn.1401aec90
jmp 0x1400ee371
lea rax, str.out_of_bounds_access_in_std::array_T__N_
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_array
lea r9, str.__n____Size
mov r8d, 0xda
call fcn.1401b2820
mov ecx, 1
jmp 0x1400ee3fd
lea rax, str.back___called_on_an_empty_vector
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_vector
lea r9, str._empty__
mov r8d, 0x22a
call fcn.1401b2820
lea r9, [rsi - 0xb8]
add rsi, 0xffffffffffffffe8
lea r8, [rsp + 0x58]
mov byte [r8], 1
lea rdx, [rsp + 0x30]
mov dword [rdx], 2
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov rcx, rsi
call fcn.1401aed80
jmp 0x1400ee597
cmp byte [rsi + 0x138], 0
je 0x1400ee39e
cmp qword [rdi + 8], 0
jne 0x1400eebc2
lock or qword [rdi], rbx
jmp 0x1400ee39e
lea rcx, [rdi + 8]
mov r12, qword [rdi]
call fcn.1401aed10
movabs rcx, 0xff00000000000000
and rcx, r12
or rcx, rax
mov qword [rdi], rcx
jmp 0x1400ee3b0
lea rcx, [rdi + 8]
mov r15, qword [rdi]
call fcn.1401aed10
movabs rcx, 0xff00000000000000
and rcx, r15
or rcx, rax
mov qword [rdi], rcx
jmp 0x1400ee390
lea rcx, [rsp + 0x30]
mov qword [rcx + 0x18], r14
xorpd xmm0, xmm0
movapd xmmword [rcx], xmm0
movupd xmmword [rcx + 9], xmm0
call fcn.1400e5cf0
jmp 0x1400ee5c7
int3
lea r8, [rdx + rax]
dec rax
cmp r8, 1
ja 0x1400ee90c
cmp rdx, rcx
je 0x1400ee90c
int3
int3
and al, 0x19
cmp byte [rsi - 0x30], 0
jne 0x1400eeafe
test al, al
jne 0x1400eebe6
test al, al
je 0x1400ee567
cmp byte [rsi - 0x50], 0
je 0x1400eec36
mov rax, qword [rsi - 0x70]
lea rbx, [rsi - 0x48]
mov qword [rsp + 0x20], rax
lea rdx, [0x140289970]
lea r8, str.PumpOverhead
mov cl, 0x42
mov r9, rbx
call fcn.140041e60
test byte [0x140289970], 0x19
je 0x1400ee567
cmp byte [rsi - 0x50], 0
je 0x1400eec36
mov qword [rsp + 0x20], rdi
lea rdx, [0x140289970]
lea r8, [0x140262d25]
mov cl, 0x45
mov r9, rbx
call fcn.140041e60
jmp 0x1400ee567
int3
mov rcx, qword [0x14029b670]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
mov rdi, rax
add rdi, r8
jmp 0x1400ee4bd
mov rcx, qword [0x14029b670]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1400ee79a
lea rcx, [rdi + 8]
mov r15, qword [rdi]
call fcn.1401aed10
movabs rcx, 0xff00000000000000
and rcx, r15
or rcx, rax
mov qword [rdi], rcx
jmp 0x1400eea5a
cmp byte [rsi - 0x50], 0
je 0x1400eec36
mov rax, qword [rsi - 0x70]
mov rcx, 0xfffffffffff0bdc0
lea rdx, [rcx + rax]
sar rdx, 0x3f
btc rdx, 0x3f
add rcx, rax
cmovo rcx, rdx
lea r9, [rsi - 0x48]
mov qword [rsp + 0x20], rcx
lea rdx, [0x140289970]
lea r8, str.MessagePumpPhases
mov cl, 0x49
call fcn.140041e60
mov al, byte [0x140289970]
and al, 0x19
jmp 0x1400eeafe
ud2