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

Disassembly:
xchg rbp, r13
mov qword [rsp + 0x18], r13
xchg r13, rbp
nop
push r10
mov qword [rsp], rdi
sub rsp, 0x20
mov rdi, qword gs:[0x30]
xchg rbx, rbp
mov rbx, rcx
xchg rbx, rbp
mov rax, qword [rdi + 0x2d8]
xchg r11, rax
mov qword [rcx + 0xf8], r11
xchg r11, rax
mov rax, qword [rdi + 0x2e0]
mov qword [rcx + 0x98], rax
xchg r14, rax
mov r14, qword [rcx + 0xc8]
xchg r14, rax
mov qword [rcx + 0x80], rax
cmp byte [rdi + 0x2ec], 0
jne 0x14002ff04
cmp qword [0x140216fe0], 0
je 0x14002ff04
mov byte [rdi + 0x2ec], 0x45
xor byte [rdi + 0x2ec], 0x12
sub byte [rdi + 0x2ec], 0x29
add byte [rdi + 0x2ec], 0x4e
sub byte [rdi + 0x2ec], 0x20
sub byte [rdi + 0x2ec], 0x5b
xor byte [rdi + 0x2ec], 0
mov rax, qword [0x140216fe0]
mov rcx, qword [rax + 0x30]
cmp qword [rdi + 0x2d8], rcx
jne 0x14002fed3
mov qword [rsp + 0x30], rbx
xchg r8, rbx
mov r8, qword [rbp + 0x98]
xchg rbx, r8
cmp dword [rbx + 0x4f0], 0x80000003
jne 0x14002fdc3
mov rcx, qword [rax + 0x18]
mov qword [rsp + 0x38], rsi
cmp qword [rbx + 0x500], rcx
jne 0x14002fd1b
lea rax, [0x14002dd20]
mov byte [rdi + 0x2ec], 0x7b
sub byte [rdi + 0x2ec], 0x6f
add byte [rdi + 0x2ec], 0x2e
xor byte [rdi + 0x2ec], 0x34
xor byte [rdi + 0x2ec], 0x15
add byte [rdi + 0x2ec], 0x55
xor byte [rdi + 0x2ec], 0x20
sub byte [rdi + 0x2ec], 0x49
sub byte [rdi + 0x2ec], 7
xor edx, edx
mov qword [rbx + 0xf8], rax
xchg r12, rcx
mov r12, rbx
xchg r12, rcx
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 0x14002fdb8
mov ecx, dword [rax + 0xc]
mov edx, 0x725e9fae
sub edx, 0x8a6314a
xor edx, 0x1506572d
sub edx, 0x67393c40
xor edx, 0x75c0920a
add edx, 0xfdb8312
xor edx, 0x701ff210
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov byte [rdi + 0x2ec], 0x44
xor byte [rdi + 0x2ec], 0x2e
xor byte [rdi + 0x2ec], 0x5f
sub byte [rdi + 0x2ec], 0xc
add byte [rdi + 0x2ec], 0x35
xor byte [rdi + 0x2ec], 0x2f
xor byte [rdi + 0x2ec], 0x46
sub byte [rdi + 0x2ec], 0x37
xor edx, edx
inc qword [rbx + 0xf8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_RtlRestoreContext]
mov rax, qword [0x140216fe0]
xchg r14, rsi
mov r14, qword [rsp + 0x38]
xchg r14, rsi
cmp byte [rax + 6], 0
jne 0x14002fe84
mov ecx, dword [rbx + 0x4f0]
cmp ecx, 1
je 0x14002fe59
cmp ecx, 0x80000001
je 0x14002fe3c
cmp ecx, 0x80000003
je 0x14002fe17
cmp ecx, 0x80000004
jne 0x14002fe84
mov byte [rax], 2
add byte [rax], 9
add byte [rax], 0x52
add byte [rax], 0x12
sub byte [rax], 0x18
sub byte [rax], 0x56
jmp 0x14002fe7d
mov byte [rax + 2], 0x44
add byte [rax + 2], 0x14
sub byte [rax + 2], 0x1c
sub byte [rax + 2], 0x33
add byte [rax + 2], 7
add byte [rax + 2], 0x65
xor byte [rax + 2], 0x5f
xor byte [rax + 2], 0x2b
jmp 0x14002fe7d
mov byte [rax + 4], 0x28
add byte [rax + 4], 0x2b
add byte [rax + 4], 0x1b
sub byte [rax + 4], 0x20
xor byte [rax + 4], 0
xor byte [rax + 4], 0x4f
jmp 0x14002fe7d
mov byte [rax + 3], 0x3b
add byte [rax + 3], 0x28
sub byte [rax + 3], 0x20
xor byte [rax + 3], 2
xor byte [rax + 3], 0x35
sub byte [rax + 3], 0x3e
sub byte [rax + 3], 3
xor byte [rax + 3], 0x68
sub byte [rax + 3], 0x5a
mov rax, qword [0x140216fe0]
cmp qword [rbx + 0x48], 0
jne 0x14002feb0
cmp qword [rbx + 0x50], 0
jne 0x14002feb0
cmp qword [rbx + 0x58], 0
jne 0x14002feb0
cmp qword [rbx + 0x60], 0
je 0x14002fec8
mov byte [rax + 1], 0x7d
sub byte [rax + 1], 0x34
sub byte [rax + 1], 0x1e
xor byte [rax + 1], 0x76
xor byte [rax + 1], 0x76
sub byte [rax + 1], 0x2a
xchg rsi, rbx
mov rsi, qword [rsp + 0x30]
xchg rsi, rbx
mov byte [rdi + 0x2ec], 0x72
xor byte [rdi + 0x2ec], 3
sub byte [rdi + 0x2ec], 0x3e
add byte [rdi + 0x2ec], 0x2e
add byte [rdi + 0x2ec], 0xc
sub byte [rdi + 0x2ec], 0x28
sub byte [rdi + 0x2ec], 0x45
xor edx, edx
xchg r15, rcx
mov r15, rbp
xchg r15, rcx
mov rbp, qword [rsp + 0x40]
add rsp, 0x20
nop
xchg qword [rsp], rdi
add rsp, 8
jmp qword [sym.imp.KERNEL32.dll_RtlRestoreContext]