Function at 0x140040a40
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
mov eax, 0x1038
call fcn.1400d514c
sub rsp, rax
mov r15, qword [0x1401054a8]
mov rax, qword [r15]
xor rax, rsp
mov qword [rsp + 0x1030], rax
mov ecx, dword [0x140145048]
mov dword [rsp + 0x2c], ecx
cmp ecx, 0xffffffff
jne 0x140040b2f
lea rcx, [rsp + 0x2c]
call fcn.140040ea0
test al, al
jne 0x140040ab8
lea rdx, str._var_tmp_build_firefox_1d8abcb1f7a7_security_sandbox_chromium_base_threading_thread_local_storage.cc
lea r9, str.PlatformThreadLocalStorage::AllocTLS_key_
lea rsi, [rsp + 0x30]
mov rcx, rsi
mov r8d, 0xd0
call fcn.14001e870
mov rcx, rsi
call fcn.14001eb10
mov ecx, dword [rsp + 0x2c]
cmp ecx, 0xffffffff
jne 0x140040b0d
lea rcx, [rsp + 0x2c]
call fcn.140040ea0
test al, al
je 0x140040ad6
cmp dword [rsp + 0x2c], 0xffffffff
jne 0x140040aff
lea rdx, str._var_tmp_build_firefox_1d8abcb1f7a7_security_sandbox_chromium_base_threading_thread_local_storage.cc
lea r9, str.PlatformThreadLocalStorage::AllocTLS_key___key___PlatformThreadLocalStorage::TLS_KEY_OUT_OF_INDEXES
lea rsi, [rsp + 0x30]
mov rcx, rsi
mov r8d, 0xda
call fcn.14001e870
mov rcx, rsi
call fcn.14001eb10
mov ecx, 0xffffffff
call sub.KERNEL32.dll_TlsFree
mov ecx, dword [rsp + 0x2c]
mov eax, 0xffffffff
lock cmpxchg dword [0x140145048], ecx
mov ecx, dword [rsp + 0x2c]
je 0x140040b2f
call sub.KERNEL32.dll_TlsFree
mov ecx, dword [0x140145048]
mov dword [rsp + 0x2c], ecx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
and ebx, 3
je 0x140040cc6
lea rsi, [rsp + 0xa0]
lea rdi, [rsp + 0x38]
lea rax, [0x140108758]
mov qword [rsp + 0x30], rax
lea rax, [0x140108780]
mov qword [rsp + 0xa0], rax
mov rcx, rsi
mov rdx, rdi
call fcn.140084370
mov qword [rsp + 0x128], 0
mov dword [rsp + 0x130], 0xffffffff
lea r12, [0x1401086e8]
mov qword [rsp + 0x30], r12
lea r13, [0x140108710]
mov qword [rsp + 0xa0], r13
mov rcx, rdi
call fcn.140084c30
lea rbp, [0x1401087a0]
mov qword [rsp + 0x38], rbp
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
movups xmmword [rsp + 0x88], xmm0
mov dword [rsp + 0x98], 0x10
lea rdx, str.GetTlsVectorStateAndValue_key___TlsVectorState::kUninitialized
lea r14, [rsp + 0x30]
mov r8d, 0x40
mov rcx, r14
call fcn.14001f560
lea rdx, [0x14010a554]
mov r8d, 2
mov rcx, rax
call fcn.14001f560
mov rcx, r14
mov edx, ebx
call fcn.140087f90
lea rdx, [0x14010a557]
mov r8d, 5
mov rcx, r14
call fcn.14001f560
mov rcx, r14
xor edx, edx
call fcn.140087f90
lea rdx, [0x14010a55d]
mov r8d, 1
mov rcx, r14
call fcn.14001f560
mov ecx, 0x18
call fcn.1400d4140
mov rbx, rax
mov rcx, rax
mov rdx, rdi
call fcn.14001f2f0
mov qword [rsp + 0x30], r12
mov qword [rsp + 0xa0], r13
mov qword [rsp + 0x38], rbp
test byte [rsp + 0x78], 1
je 0x140040c80
mov rcx, qword [rsp + 0x88]
call fcn.1400d4220
mov rcx, rdi
call fcn.140084970
lea rdx, [0x140108728]
lea rcx, [rsp + 0x30]
call fcn.140087860
mov rcx, rsi
call fcn.1400848c0
lea rdx, str._var_tmp_build_firefox_1d8abcb1f7a7_security_sandbox_chromium_base_threading_thread_local_storage.cc
lea rsi, [rsp + 0x30]
mov rcx, rsi
mov r8d, 0xec
mov r9, rbx
call fcn.14001e930
mov rcx, rsi
call fcn.14001eb10
lea rdi, [rsp + 0x30]
mov r8d, 0x1000
mov rcx, rdi
xor edx, edx
call sub.ntdll.dll_memset
mov ecx, dword [rsp + 0x2c]
lea rdx, [rsp + 0x33]
call sub.KERNEL32.dll_TlsSetValue
mov ecx, 0x1000
call fcn.1400d41e0
mov rsi, rax
mov r8d, 0x1000
mov rcx, rax
mov rdx, rdi
call sub.ntdll.dll_memcpy
mov ecx, dword [rsp + 0x2c]
mov rdx, rsi
or rdx, 3
call sub.KERNEL32.dll_TlsSetValue
mov rax, qword [rsp + 0x1030]
xor rax, rsp
mov rcx, qword [r15]
cmp rcx, rax
jne 0x140040d41
mov rax, rsi
add rsp, 0x1038
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1400d58e0
int3