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

Disassembly:
xchg rbp, rdx
mov qword [rsp + 0x18], rdx
xchg rdx, rbp
push rdi
sub rsp, 0x20
mov rdi, qword gs:[0x30]
xchg rbp, rcx
mov rcx, rbp
xchg rcx, rbp
mov rax, qword [rdi + 0x2d8]
mov qword [rcx + 0xf8], rax
mov rax, qword [rdi + 0x2e0]
xchg r12, rax
mov qword [rcx + 0x98], r12
xchg r12, rax
xchg rbp, rax
mov rbp, qword [rcx + 0xc8]
xchg rbp, rax
mov qword [rcx + 0x80], rax
cmp byte [rdi + 0x2ec], 0
jne 0x14002fcf4
cmp qword [0x140216fe0], 0
je 0x14002fcf4
mov byte [rdi + 0x2ec], 0x27
add byte [rdi + 0x2ec], 0x39
xor byte [rdi + 0x2ec], 0x13
sub byte [rdi + 0x2ec], 0x30
xor byte [rdi + 0x2ec], 0x5e
add byte [rdi + 0x2ec], 0x33
sub byte [rdi + 0x2ec], 0x4f
mov rax, qword [0x140216fe0]
mov rcx, qword [rax + 0x30]
cmp qword [rdi + 0x2d8], rcx
jne 0x14002fcca
mov qword [rsp + 0x30], rbx
mov rbx, qword [rbp + 0x98]
cmp dword [rbx + 0x4f0], 0x80000003
jne 0x14002fbae
mov rcx, qword [rax + 0x18]
mov qword [rsp + 0x38], rsi
cmp qword [rbx + 0x500], rcx
jne 0x14002fafa
lea rax, [0x14002db30]
mov byte [rdi + 0x2ec], 0x44
sub byte [rdi + 0x2ec], 0x3a
add byte [rdi + 0x2ec], 0x2f
sub byte [rdi + 0x2ec], 0x2b
xor byte [rdi + 0x2ec], 0x5e
xor byte [rdi + 0x2ec], 0x50
xor edx, edx
mov qword [rbx + 0xf8], rax
xchg rsi, rbx
mov rcx, rsi
xchg rsi, 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 0x14002fba3
mov ecx, dword [rax + 0xc]
mov edx, 0x3e880caf
add edx, 0x2b13d961
sub edx, 0x1ee3513d
sub edx, 0x3ecea834
add edx, 0x3bd37bcd
sub edx, 0x43f9bd76
xor edx, 0x2fe5165
sub edx, 0x13dfb8e
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov byte [rdi + 0x2ec], 0x13
xor byte [rdi + 0x2ec], 0x13
add byte [rdi + 0x2ec], 0x16
xor byte [rdi + 0x2ec], 0x74
sub byte [rdi + 0x2ec], 0x22
xor byte [rdi + 0x2ec], 0xd
sub byte [rdi + 0x2ec], 0x30
sub byte [rdi + 0x2ec], 0x1d
xor edx, edx
inc qword [rbx + 0xf8]
xchg rbp, rcx
mov rbp, rbx
xchg rbp, rcx
call qword [sym.imp.KERNEL32.dll_RtlRestoreContext]
mov rax, qword [0x140216fe0]
xchg rdi, rsi
mov rdi, qword [rsp + 0x38]
xchg rdi, rsi
cmp byte [rax + 6], 0
jne 0x14002fc73
mov ecx, dword [rbx + 0x4f0]
cmp ecx, 1
je 0x14002fc50
cmp ecx, 0x80000001
je 0x14002fc2b
cmp ecx, 0x80000003
je 0x14002fc02
cmp ecx, 0x80000004
jne 0x14002fc73
mov byte [rax], 6
add byte [rax], 0x2e
sub byte [rax], 4
add byte [rax], 0x2b
sub byte [rax], 0x1d
sub byte [rax], 0x3d
jmp 0x14002fc6c
mov byte [rax + 2], 0x44
add byte [rax + 2], 0x2a
sub byte [rax + 2], 0x22
xor byte [rax + 2], 0x6a
add byte [rax + 2], 0x35
add byte [rax + 2], 2
xor byte [rax + 2], 0x7d
add byte [rax + 2], 0x2b
sub byte [rax + 2], 0x4a
jmp 0x14002fc6c
mov byte [rax + 4], 0x2e
xor byte [rax + 4], 0x67
sub byte [rax + 4], 0x10
add byte [rax + 4], 0xd
xor byte [rax + 4], 0x1b
xor byte [rax + 4], 4
sub byte [rax + 4], 0x26
xor byte [rax + 4], 0x32
jmp 0x14002fc6c
mov byte [rax + 3], 0x40
xor byte [rax + 3], 0x78
xor byte [rax + 3], 0x6f
sub byte [rax + 3], 0x13
add byte [rax + 3], 4
xor byte [rax + 3], 0xe
xor byte [rax + 3], 0x47
mov rax, qword [0x140216fe0]
cmp qword [rbx + 0x48], 0
jne 0x14002fc9f
cmp qword [rbx + 0x50], 0
jne 0x14002fc9f
cmp qword [rbx + 0x58], 0
jne 0x14002fc9f
cmp qword [rbx + 0x60], 0
je 0x14002fcbf
mov byte [rax + 1], 0x71
xor byte [rax + 1], 8
xor byte [rax + 1], 0x51
xor byte [rax + 1], 0x5e
xor byte [rax + 1], 0x35
xor byte [rax + 1], 6
sub byte [rax + 1], 0x3e
sub byte [rax + 1], 6
xchg rbp, rbx
mov rbp, qword [rsp + 0x30]
xchg rbp, rbx
mov byte [rdi + 0x2ec], 0x48
sub byte [rdi + 0x2ec], 0x46
add byte [rdi + 0x2ec], 0x70
xor byte [rdi + 0x2ec], 0x25
sub byte [rdi + 0x2ec], 0x47
sub byte [rdi + 0x2ec], 0x10
xor edx, edx
xchg rcx, rbp
mov rbp, rcx
xchg rcx, rbp
xchg rbp, rdi
mov rdi, qword [rsp + 0x40]
xchg rdi, rbp
add rsp, 0x20
nop
xchg qword [rsp], rdi
add rsp, 8
jmp qword [sym.imp.KERNEL32.dll_RtlRestoreContext]