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

Disassembly:
mov qword [rsp + 0x18], rbp
nop
sub rsp, 8
mov qword [rsp], rdi
sub rsp, 0x20
mov rdi, qword gs:[0x30]
xchg rsi, rbp
mov rsi, rcx
xchg rbp, rsi
mov rax, qword [rdi + 0x2d8]
xchg r10, rax
mov qword [rcx + 0xf8], r10
xchg r10, rax
xchg rsi, rax
mov rsi, qword [rdi + 0x2e0]
xchg rsi, rax
mov qword [rcx + 0x98], rax
mov rax, qword [rcx + 0xc8]
mov qword [rcx + 0x80], rax
cmp byte [rdi + 0x2ec], 0
jne 0x14002fe85
cmp qword [0x140216fe0], 0
je 0x14002fe85
mov byte [rdi + 0x2ec], 0x46
add byte [rdi + 0x2ec], 4
add byte [rdi + 0x2ec], 0x18
add byte [rdi + 0x2ec], 0xe
xor byte [rdi + 0x2ec], 0x6c
sub byte [rdi + 0x2ec], 0xf
sub byte [rdi + 0x2ec], 0xc
mov rax, qword [0x140216fe0]
xchg rbx, rcx
mov rbx, qword [rax + 0x30]
xchg rcx, rbx
cmp qword [rdi + 0x2d8], rcx
jne 0x14002fe46
mov qword [rsp + 0x30], rbx
mov rbx, qword [rbp + 0x98]
cmp dword [rbx + 0x4f0], 0x80000003
jne 0x14002fd32
mov rcx, qword [rax + 0x18]
mov qword [rsp + 0x38], rsi
cmp qword [rbx + 0x500], rcx
jne 0x14002fc9e
lea rax, [0x14002dca0]
mov byte [rdi + 0x2ec], 0x42
add byte [rdi + 0x2ec], 0x35
sub byte [rdi + 0x2ec], 0xb
xor byte [rdi + 0x2ec], 0x26
xor byte [rdi + 0x2ec], 0x7b
add byte [rdi + 0x2ec], 0x28
sub byte [rdi + 0x2ec], 0x4f
sub byte [rdi + 0x2ec], 0xa
xor edx, edx
xchg r10, rax
mov qword [rbx + 0xf8], r10
xchg r10, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_RtlRestoreContext]
mov rax, qword [0x140216fe0]
mov ecx, dword [rax + 0xc]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp rax, 4
mov rax, qword [0x140216fe0]
jne 0x14002fd2d
mov ecx, dword [rax + 0xc]
mov edx, 0x59d5c938
sub edx, 0x37bd6c55
xor edx, 0x3cb891ae
add edx, 0x3b9e7999
add edx, 0x1432ca86
sub edx, 0x6e721167
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov byte [rdi + 0x2ec], 0x73
add byte [rdi + 0x2ec], 8
sub byte [rdi + 0x2ec], 0x3f
xor byte [rdi + 0x2ec], 0x44
sub byte [rdi + 0x2ec], 0x31
sub byte [rdi + 0x2ec], 0x47
xor edx, edx
inc qword [rbx + 0xf8]
xchg r15, rcx
mov r15, rbx
xchg rcx, r15
call qword [sym.imp.KERNEL32.dll_RtlRestoreContext]
mov rax, qword [0x140216fe0]
mov rsi, qword [rsp + 0x38]
cmp byte [rax + 6], 0
jne 0x14002fdf3
mov ecx, dword [rbx + 0x4f0]
cmp ecx, 1
je 0x14002fdcc
cmp ecx, 0x80000001
je 0x14002fdaf
cmp ecx, 0x80000003
je 0x14002fd86
cmp ecx, 0x80000004
jne 0x14002fdf3
mov byte [rax], 0x18
add byte [rax], 0x14
add byte [rax], 0xb
xor byte [rax], 0x2b
add byte [rax], 0x29
xor byte [rax], 0x44
jmp 0x14002fdec
mov byte [rax + 2], 0x1d
add byte [rax + 2], 0x5b
sub byte [rax + 2], 0x48
add byte [rax + 2], 0x39
xor byte [rax + 2], 0x7e
add byte [rax + 2], 0x5d
xor byte [rax + 2], 0x3b
sub byte [rax + 2], 0x2d
xor byte [rax + 2], 0x23
jmp 0x14002fdec
mov byte [rax + 4], 0x2d
add byte [rax + 4], 0x48
sub byte [rax + 4], 0x33
xor byte [rax + 4], 0x61
add byte [rax + 4], 0xc
sub byte [rax + 4], 0x2e
jmp 0x14002fdec
mov byte [rax + 3], 0x50
xor byte [rax + 3], 8
sub byte [rax + 3], 0x46
xor byte [rax + 3], 0x43
xor byte [rax + 3], 0x30
xor byte [rax + 3], 0x2c
sub byte [rax + 3], 0x2e
xor byte [rax + 3], 0x1e
mov rax, qword [0x140216fe0]
cmp qword [rbx + 0x48], 0
jne 0x14002fe1f
cmp qword [rbx + 0x50], 0
jne 0x14002fe1f
cmp qword [rbx + 0x58], 0
jne 0x14002fe1f
cmp qword [rbx + 0x60], 0
je 0x14002fe3b
mov byte [rax + 1], 0x33
sub byte [rax + 1], 3
add byte [rax + 1], 0x3c
xor byte [rax + 1], 0x74
xor byte [rax + 1], 0x34
xor byte [rax + 1], 0x57
sub byte [rax + 1], 0x7a
xchg rbp, rbx
mov rbp, qword [rsp + 0x30]
xchg rbp, rbx
mov byte [rdi + 0x2ec], 0x1b
add byte [rdi + 0x2ec], 0x14
xor byte [rdi + 0x2ec], 0x18
add byte [rdi + 0x2ec], 0xc
sub byte [rdi + 0x2ec], 0xb
sub byte [rdi + 0x2ec], 0x32
add byte [rdi + 0x2ec], 0x5b
xor byte [rdi + 0x2ec], 0x7a
xor byte [rdi + 0x2ec], 0x1b
xor edx, edx
xchg rbp, r8
mov rcx, r8
xchg r8, rbp
mov rbp, qword [rsp + 0x40]
add rsp, 0x20
nop
xchg qword [rsp], rdi
add rsp, 8
jmp qword [sym.imp.KERNEL32.dll_RtlRestoreContext]