Function at 0x1400eda30
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rsi, rcx
mov rax, qword [0x140287028]
xor rax, rsp
mov qword [rsp + 0x80], 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 0x1400edb5e
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 0x1400edfce
mov ecx, dword [0x140288f70]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1400edb5e
mov rcx, qword [0x1402a1990]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [0x1402a1998]
jne 0x1400edb5e
mov rdi, qword [rax + rcx]
test rdi, rdi
je 0x1400edb5e
cmp byte [rsi + 0x128], 0
je 0x1400edb5e
mov rax, qword [rdi]
test rax, rax
js 0x1400ee039
cmp dword [rdi + 0x14], 1
movabs rbx, 0x4000000000000000
jne 0x1400ee0c3
cmp qword [rdi + 8], 0
jne 0x1400ee108
movabs rax, 0xbfffffffffffffff
lock and qword [rdi], rax
mov r15, qword [rsi + 0x130]
cmp qword [rdi + 8], 0
jne 0x1400ee0e4
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 0x1400ee076
mov dword [rax], ecx
mov rax, qword [rsi - 0x10]
cmp qword [rsi - 0x18], rax
je 0x1400edd2f
cmp dword [rax - 0x38], 2
jne 0x1400ee080
cmp qword [rsi - 0x58], 0
je 0x1400edd14
cmp qword [rsi - 0x70], 0
je 0x1400edd14
mov rax, qword [rsi - 0x28]
test rax, rax
je 0x1400ee12c
mov rcx, qword [rax + 0xa8]
sub rcx, qword [rax + 0xa0]
cmp rcx, 0x38
jne 0x1400edd14
movzx r15d, byte [rsi - 0x60]
mov ebx, 3
test r15b, r15b
jne 0x1400edbfc
mov byte [rsi - 0x60], 1
mov ebx, 5
cmp byte [rsp + 0x60], 0
jne 0x1400edeab
mov rax, qword [fcn.140158d50]
lea rcx, [0x140171950]
cmp rax, rcx
jne 0x1400ee023
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 0x1400ee1fd
imul rax, rax, 0xf4240
cqo
idiv qword [0x14029b670]
mov rdi, rax
cmp byte [rsp + 0x60], 0
mov qword [rsp + 0x68], rdi
jne 0x1400edc6e
mov byte [rsp + 0x60], 1
mov rax, qword [rsi - 0x70]
xor edx, edx
cmp rdi, rax
setns dl
movabs r13, 0x7fffffffffffffff
add rdx, r13
mov rcx, rdi
sub rcx, rax
cmovo rcx, rdx
cmp rcx, 0x1c9c37f
jg 0x1400edcf9
movabs rax, 0x8000000000000001
mov r12d, ebx
lea r8, [rcx + rax]
mov rdx, qword [rsi + r12*8 - 0xb8]
cmp r8, 1
jbe 0x1400ee12f
lea rax, [rdx + rcx]
sar rax, 0x3f
movabs r8, 0x8000000000000000
xor r8, rax
add rdx, rcx
cmovo rdx, r8
mov qword [rsi + r12*8 - 0xb8], rdx
cmp rdx, 0x186a0
jge 0x1400edefc
cmp qword [rsi - 0x28], 0
je 0x1400ee14c
movzx eax, byte [0x140289970]
test al, 9
setne bpl
jne 0x1400ee14f
mov byte [rsi - 0x30], bpl
mov qword [rsi - 0x70], rdi
mov rdi, qword [rsi - 0x10]
cmp qword [rsi - 0x18], rdi
je 0x1400ee097
cmp dword [rdi - 0x38], 0
mov dword [rdi - 0x38], 1
je 0x1400edd54
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.1401756e0
nop
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test byte [0x140289010], 0x19
jne 0x1400ee1dd
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 0x1400edf54
mov r14d, dword [rdi - 0x18]
test r14d, r14d
je 0x1400ee01c
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 0x1400edeb5
mov rdi, qword [0x1402a3918]
test rdi, rdi
je 0x1400ede24
lea rax, [0x1402a2cd0]
xor ecx, ecx
mov edx, r15d
xor dl, 1
cmp rcx, 0x32
je 0x1400ee04a
cmp qword [rax - 0x30], r14
jne 0x1400ede18
cmp byte [rax - 0x28], 0
jne 0x1400ede18
movzx r8d, byte [rax - 0x10]
test r8b, r8b
sete r9b
or r9b, dl
jne 0x1400edec6
cmp dword [rax - 0xc], esi
je 0x1400eded6
inc rcx
add rax, 0x40
cmp rdi, rcx
jne 0x1400edde4
mov rax, qword [0x1402a3920]
test rax, rax
je 0x1400ede6d
mov ecx, 0x32
sub rcx, rdi
cmp rax, rcx
jb 0x1400ede6d
lea rcx, [0x1402a3930]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400ede6d
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 0x1400edeea
jae 0x1400ee04a
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 0x1400edeea
mov rdi, qword [rsp + 0x68]
jmp 0x1400edc6e
lea rcx, [0x1402a3928]
call fcn.1400ec2e0
jmp 0x1400eddc9
test r8b, r8b
setne r8b
xor r8b, r15b
jne 0x1400ede18
mov qword [rax], rbx
mov cl, 1
xchg byte [rax - 0x38], cl
test cl, 1
jne 0x1400edeea
dec qword [0x1402a3920]
lea rcx, [0x1402a3928]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400edd2f
cvtsi2sd xmm0, rdx
divsd xmm0, qword [0x140265fa0]
cvttsd2si ebp, xmm0
mov rcx, qword [rsi - 0x58]
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
mov edx, ebx
mov r8d, ebp
call qword [case.0x1401d7990.0]
movsxd rax, ebp
imul rcx, rax, 0x3e8
mov rax, qword [rsi + r12*8 - 0xb8]
xor edx, edx
cmp rax, rcx
setns dl
add rdx, r13
sub rax, rcx
cmovo rax, rdx
mov qword [rsi + r12*8 - 0xb8], rax
jmp 0x1400edcee
lea rcx, [0x1402a3938]
call fcn.140172b08
cmp dword [0x1402a3938], 0xffffffff
jne 0x1400edd91
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 0x1400edf89
xorpd xmm0, xmm0
movupd xmmword [0x1402a3928], xmm0
movupd xmmword [0x1402a3918], xmm0
lea rcx, [0x1402a3938]
call fcn.140172aa8
jmp 0x1400edd91
lea rcx, [0x1402a19a0]
call fcn.140172b08
cmp dword [0x1402a19a0], 0xffffffff
jne 0x1400edab8
mov qword [0x1402a1998], 0
lea rcx, [0x1402a1990]
mov qword [0x1402a1990], 0xffffffffffffffff
xor edx, edx
call fcn.140002400
lea rcx, [0x1402a19a0]
call fcn.140172aa8
jmp 0x1400edab8
xor ebp, ebp
jmp 0x1400edda9
lea rdi, [rsp + 0x58]
mov rcx, rdi
call qword [case.0x1401d7990.0]
mov rdi, qword [rdi]
jmp 0x1400edc5d
mov rcx, qword [0x1402a1988]
call fcn.1401aec90
jmp 0x1400edb03
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 0x1400edb8f
lea rcx, [rsi - 0x18]
lea rdx, [rsp + 0x60]
mov qword [rax - 0x28], rdx
call fcn.1401aece0
jmp 0x1400edd14
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 0x1400edb30
cmp qword [rdi + 8], 0
jne 0x1400ee227
lock or qword [rdi], rbx
jmp 0x1400edb30
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 0x1400edb42
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 0x1400edb22
int3
lea r8, [rdx + rax]
dec rax
cmp r8, 1
ja 0x1400edf47
cmp rdx, rcx
je 0x1400edf47
int3
int3
and al, 0x19
cmp byte [rsi - 0x30], 0
jne 0x1400ee15f
test al, al
jne 0x1400ee24b
test al, al
je 0x1400edd0c
cmp byte [rsi - 0x50], 0
je 0x1400ee29b
lea rbx, [rsi - 0x48]
test r15b, r15b
mov rax, qword [rsi - 0x70]
lea rcx, str.ApplicationTask
lea r8, str.NativeTask
cmove r8, rcx
mov qword [rsp + 0x20], rax
lea rdx, [0x140289970]
mov cl, 0x42
mov r9, rbx
call fcn.140041e60
test byte [0x140289970], 0x19
je 0x1400edd0c
cmp byte [rsi - 0x50], 0
je 0x1400ee29b
mov qword [rsp + 0x20], rdi
lea rdx, [0x140289970]
lea r8, [0x140262d25]
mov cl, 0x45
mov r9, rbx
call fcn.140041e60
jmp 0x1400edd0c
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 0x1400edd61
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 0x1400edc5d
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 0x1400ee0db
cmp byte [rsi - 0x50], 0
je 0x1400ee29b
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 0x1400ee15f
ud2