Function at 0x1400eec40
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rsi, rcx
mov rax, qword [0x140287028]
xor rax, rsp
mov qword [rsp + 0x50], rax
cmp byte [rcx + 0x120], 0
je 0x1400eed3d
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 0x1400ef0b8
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400eed36
mov rcx, qword [0x1402a1990]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1402a1998]
jne 0x1400eed36
mov rdi, qword [rax + rcx]
test rdi, rdi
je 0x1400eed36
cmp byte [rsi + 0x128], 0
je 0x1400eed36
mov rax, qword [rdi]
test rax, rax
js 0x1400ef11c
cmp dword [rdi + 0x14], 1
movabs rbx, 0x4000000000000000
jne 0x1400ef18f
cmp qword [rdi + 8], 0
jne 0x1400ef1d4
movabs rax, 0xbfffffffffffffff
lock and qword [rdi], rax
mov r14, qword [rsi + 0x130]
cmp qword [rdi + 8], 0
jne 0x1400ef1b0
mov rax, qword [rdi]
and rax, rbx
movabs rcx, 0xffffffffffffff
and r14, rcx
or r14, rax
mov qword [rdi], r14
dec dword [rdi + 0x14]
mov byte [rsi + 0x120], 0
mov rax, qword [rsi + 0xf0]
mov ecx, dword [rax]
inc ecx
je 0x1400ef159
mov dword [rax], ecx
mov rax, qword [rsi - 0x18]
mov rdi, qword [rsi - 0x10]
cmp rax, rdi
je 0x1400eeeb5
cmp qword [rsi - 0x58], 0
je 0x1400eee9f
cmp qword [rsi - 0x70], 0
je 0x1400eee9f
mov rcx, qword [rsi - 0x28]
test rcx, rcx
je 0x1400ef1f8
mov rdx, qword [rcx + 0xa8]
sub rdx, qword [rcx + 0xa0]
cmp rdx, 0x38
jne 0x1400eee9f
mov rax, qword [fcn.140158d50]
lea rcx, [0x140171950]
cmp rax, rcx
jne 0x1400ef106
mov qword [rsp + 0x30], 0
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x30]
movabs rcx, 0x8637bd05af6
cmp rax, rcx
jg 0x1400ef29b
imul rax, rax, 0xf4240
cqo
idiv qword [0x14029b670]
mov rdi, rax
mov rax, qword [rsi - 0x70]
xor edx, edx
cmp rdi, rax
setns dl
movabs r14, 0x7fffffffffffffff
add rdx, r14
mov rcx, rdi
sub rcx, rax
cmovo rcx, rdx
cmp rcx, 0x1c9c37f
jg 0x1400eee7c
movabs rax, 0x8000000000000001
lea r8, [rcx + rax]
mov rdx, qword [rsi - 0x88]
cmp r8, 1
jbe 0x1400ef1fb
lea rax, [rdx + rcx]
sar rax, 0x3f
movabs r8, 0x8000000000000000
xor r8, rax
add rdx, rcx
cmovo rdx, r8
mov qword [rsi - 0x88], rdx
cmp rdx, 0x186a0
jge 0x1400eefe5
mov qword [rsi - 0x68], rdi
cmp qword [rsi - 0x28], 0
je 0x1400ef218
movzx eax, byte [0x140289970]
test al, 9
setne bpl
jne 0x1400ef21b
mov byte [rsi - 0x30], bpl
mov qword [rsi - 0x70], rdi
mov rax, qword [rsi - 0x18]
mov rdi, qword [rsi - 0x10]
cmp rax, rdi
je 0x1400ef163
cmp dword [rdi - 0x38], 0
mov dword [rdi - 0x38], 0
jne 0x1400eeed0
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1401756e0
nop
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
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 0x1400ef03e
mov ebx, dword [rdi - 0x18]
test ebx, ebx
je 0x1400ef2c5
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
test ebx, ebx
setne bl
mov rdi, qword [rdi - 0x20]
lea rcx, [0x1402a3928]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400eef77
mov rax, qword [0x1402a3918]
test rax, rax
je 0x1400eefa1
lea rcx, [0x1402a2cc4]
xor edx, edx
mov r8d, ebx
xor r8b, 1
cmp rdx, 0x32
je 0x1400ef12d
cmp qword [rcx - 0x24], rdi
jne 0x1400eef69
cmp byte [rcx - 0x1c], 0
jne 0x1400eef69
movzx r9d, byte [rcx - 4]
test r9b, r9b
sete r10b
or r10b, r8b
jne 0x1400eef85
cmp dword [rcx], esi
je 0x1400eef91
inc rdx
add rcx, 0x40
cmp rax, rdx
jne 0x1400eef3e
jmp 0x1400eefa1
lea rcx, [0x1402a3928]
call fcn.1400ec2e0
jmp 0x1400eef22
test r9b, r9b
setne r9b
xor r9b, bl
jne 0x1400eef69
xor eax, eax
xchg byte [rcx - 0x2c], al
test al, 1
je 0x1400eefa1
inc qword [0x1402a3920]
lea rcx, [0x1402a3928]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test byte [0x140289010], 0x19
je 0x1400eeeb5
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rcx, [rsp + 0x30]
mov qword [rcx + 0x18], rax
xorpd xmm0, xmm0
movapd xmmword [rcx], xmm0
movupd xmmword [rcx + 9], xmm0
call fcn.1400e5cf0
jmp 0x1400eeeb5
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, 6
mov r8d, ebx
call qword [case.0x1401d7990.0]
movsxd rax, ebx
imul rcx, rax, 0x3e8
mov rax, qword [rsi - 0x88]
xor edx, edx
cmp rax, rcx
setns dl
add rdx, r14
sub rax, rcx
cmovo rax, rdx
mov qword [rsi - 0x88], rax
jmp 0x1400eee6d
lea rcx, [0x1402a3938]
call fcn.140172b08
cmp dword [0x1402a3938], 0xffffffff
jne 0x1400eeef5
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 0x1400ef073
xorpd xmm0, xmm0
movupd xmmword [0x1402a3928], xmm0
movupd xmmword [0x1402a3918], xmm0
lea rcx, [0x1402a3938]
call fcn.140172aa8
jmp 0x1400eeef5
lea rcx, [0x1402a19a0]
call fcn.140172b08
cmp dword [0x1402a19a0], 0xffffffff
jne 0x1400eec90
mov qword [0x1402a1998], 0
lea rcx, [0x1402a1990]
mov qword [0x1402a1990], 0xffffffffffffffff
xor edx, edx
call fcn.140002400
lea rcx, [0x1402a19a0]
call fcn.140172aa8
jmp 0x1400eec90
lea rdi, [rsp + 0x30]
mov rcx, rdi
call qword [case.0x1401d7990.0]
mov rdi, qword [rdi]
jmp 0x1400eedf2
mov rcx, qword [0x1402a1988]
call fcn.1401aec90
jmp 0x1400eecdb
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 0x1400eed4e
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
cmp byte [rsi + 0x138], 0
je 0x1400eed08
cmp qword [rdi + 8], 0
jne 0x1400ef2ca
lock or qword [rdi], rbx
jmp 0x1400eed08
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 0x1400eed1a
lea rcx, [rdi + 8]
mov r14, qword [rdi]
call fcn.1401aed10
movabs rcx, 0xff00000000000000
and rcx, r14
or rcx, rax
mov qword [rdi], rcx
jmp 0x1400eecfa
int3
lea r8, [rdx + rax]
dec rax
cmp r8, 1
ja 0x1400ef032
cmp rdx, rcx
je 0x1400ef032
int3
int3
and al, 0x19
cmp byte [rsi - 0x30], 0
jne 0x1400ef22b
test al, al
jne 0x1400ef2ee
test al, al
je 0x1400eee8f
cmp byte [rsi - 0x50], 0
je 0x1400ef33e
mov rax, qword [rsi - 0x70]
lea rbx, [rsi - 0x48]
mov qword [rsp + 0x20], rax
lea rdx, [0x140289970]
lea r8, str.IdleWork
mov cl, 0x42
mov r9, rbx
call fcn.140041e60
test byte [0x140289970], 0x19
je 0x1400eee8f
cmp byte [rsi - 0x50], 0
je 0x1400ef33e
mov qword [rsp + 0x20], rdi
lea rdx, [0x140289970]
lea r8, [0x140262d25]
mov cl, 0x45
mov r9, rbx
call fcn.140041e60
jmp 0x1400eee8f
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 0x1400eedf2
jmp 0x1400eef08
lea rcx, [rdi + 8]
mov r14, qword [rdi]
call fcn.1401aed10
movabs rcx, 0xff00000000000000
and rcx, r14
or rcx, rax
mov qword [rdi], rcx
jmp 0x1400ef1a7
cmp byte [rsi - 0x50], 0
je 0x1400ef33e
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 0x1400ef22b
ud2