Function at 0x14002a570
Capabilities:
Allocate thread local storage
Get thread local storage value
Set thread local storage value

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], rsi
mov rdi, rcx
lea rax, [0x140065a40]
mov qword [rcx], rax
add rcx, 8
call fcn.140013e40
mov qword [rdi + 0x10], rax
mov byte [rax + 0x21], 1
mov rax, qword [rdi + 0x10]
mov qword [rax + 8], rax
mov rax, qword [rdi + 0x10]
mov qword [rax], rax
mov rax, qword [rdi + 0x10]
mov qword [rax + 0x10], rax
xor esi, esi
mov qword [rdi + 0x18], rsi
lea rcx, [rdi + 0x20]
call fcn.140013e40
mov qword [rdi + 0x28], rax
mov byte [rax + 0x21], 1
mov rax, qword [rdi + 0x28]
mov qword [rax + 8], rax
mov rax, qword [rdi + 0x28]
mov qword [rax], rax
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x10], rax
mov qword [rdi + 0x30], rsi
lea rcx, [rdi + 0x38]
call fcn.140013e40
mov qword [rdi + 0x40], rax
mov byte [rax + 0x21], 1
mov rax, qword [rdi + 0x40]
mov qword [rax + 8], rax
mov rax, qword [rdi + 0x40]
mov qword [rax], rax
mov rax, qword [rdi + 0x40]
mov qword [rax + 0x10], rax
mov qword [rdi + 0x48], rsi
lea rcx, [rdi + 0x50]
call fcn.140013e40
mov qword [rdi + 0x58], rax
mov byte [rax + 0x21], 1
mov rax, qword [rdi + 0x58]
mov qword [rax + 8], rax
mov rax, qword [rdi + 0x58]
mov qword [rax], rax
mov rax, qword [rdi + 0x58]
mov qword [rax + 0x10], rax
mov qword [rdi + 0x60], rsi
lea rcx, [rdi + 0x68]
call fcn.140013e40
mov qword [rdi + 0x70], rax
mov byte [rax + 0x21], 1
mov rax, qword [rdi + 0x70]
mov qword [rax + 8], rax
mov rax, qword [rdi + 0x70]
mov qword [rax], rax
mov rax, qword [rdi + 0x70]
mov qword [rax + 0x10], rax
mov qword [rdi + 0x78], rsi
lea rcx, [rdi + 0x80]
call fcn.140013e40
mov qword [rdi + 0x88], rax
mov byte [rax + 0x21], 1
mov rax, qword [rdi + 0x88]
mov qword [rax + 8], rax
mov rax, qword [rdi + 0x88]
mov qword [rax], rax
mov rax, qword [rdi + 0x88]
mov qword [rax + 0x10], rax
mov qword [rdi + 0x90], rsi
lea rcx, [rdi + 0x98]
call fcn.140013e40
mov qword [rdi + 0xa0], rax
mov byte [rax + 0x21], 1
mov rax, qword [rdi + 0xa0]
mov qword [rax + 8], rax
mov rax, qword [rdi + 0xa0]
mov qword [rax], rax
mov rax, qword [rdi + 0xa0]
mov qword [rax + 0x10], rax
mov qword [rdi + 0xa8], rsi
lea rcx, [rdi + 0xb0]
call fcn.140013e40
mov qword [rdi + 0xb8], rax
mov byte [rax + 0x21], 1
mov rax, qword [rdi + 0xb8]
mov qword [rax + 8], rax
mov rax, qword [rdi + 0xb8]
mov qword [rax], rax
mov rax, qword [rdi + 0xb8]
mov qword [rax + 0x10], rax
mov qword [rdi + 0xc0], rsi
lea rcx, [rdi + 0xc8]
call fcn.140013e40
mov qword [rdi + 0xd0], rax
mov byte [rax + 0x21], 1
mov rax, qword [rdi + 0xd0]
mov qword [rax + 8], rax
mov rax, qword [rdi + 0xd0]
mov qword [rax], rax
mov rax, qword [rdi + 0xd0]
mov qword [rax + 0x10], rax
mov qword [rdi + 0xd8], rsi
lea rcx, [rdi + 0xe0]
call fcn.140013e40
mov qword [rdi + 0xe8], rax
mov byte [rax + 0x21], 1
mov rax, qword [rdi + 0xe8]
mov qword [rax + 8], rax
mov rax, qword [rdi + 0xe8]
mov qword [rax], rax
mov rax, qword [rdi + 0xe8]
mov qword [rax + 0x10], rax
mov qword [rdi + 0xf0], rsi
lea rcx, [rdi + 0xf8]
call fcn.14005a270
nop
mov qword [rdi + 0x148], rdi
mov qword [rdi + 0x150], rsi
mov qword [rdi + 0x158], rsi
mov rbx, qword [0x140080598]
test rbx, rbx
jne 0x14002a800
lea ecx, [rsi + 4]
call fcn.1400357a0
mov rbx, rax
test rax, rax
je 0x14002a7f6
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [rbx], eax
jmp 0x14002a7f9
mov rbx, rsi
mov qword [0x140080598], rbx
mov ecx, dword [rbx]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rdi + 0x160], rax
mov rdx, rdi
mov rax, qword [0x140080598]
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
nop
mov rax, rdi
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret