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

Disassembly:
mov qword [rsp + 0x18], rbp
push rdi
sub rsp, 0x20
mov rdi, qword gs:[0x30]
xchg r9, rcx
mov rbp, r9
xchg rcx, r9
mov rax, qword [rdi + 0x2d8]
mov qword [rcx + 0xf8], rax
mov rax, qword [rdi + 0x2e0]
mov qword [rcx + 0x98], rax
xchg r12, rax
mov r12, qword [rcx + 0xc8]
xchg r12, rax
mov qword [rcx + 0x80], rax
cmp byte [rdi + 0x2ec], 0
jne 0x14002fd8f
cmp qword [0x140216fe0], 0
je 0x14002fd8f
mov byte [rdi + 0x2ec], 0x76
sub byte [rdi + 0x2ec], 2
xor byte [rdi + 0x2ec], 0x5e
add byte [rdi + 0x2ec], 0x17
xor byte [rdi + 0x2ec], 0x4b
add byte [rdi + 0x2ec], 0x30
xor byte [rdi + 0x2ec], 0x1b
sub byte [rdi + 0x2ec], 0xc
xor byte [rdi + 0x2ec], 0x14
mov rax, qword [0x140216fe0]
xchg rcx, rdx
mov rdx, qword [rax + 0x30]
xchg rdx, rcx
cmp qword [rdi + 0x2d8], rcx
jne 0x14002fd65
xchg r9, rbx
mov qword [rsp + 0x30], r9
xchg r9, rbx
xchg rbx, r12
mov r12, qword [rbp + 0x98]
xchg rbx, r12
cmp dword [rbx + 0x4f0], 0x80000003
jne 0x14002fc55
xchg rbx, rcx
mov rbx, qword [rax + 0x18]
xchg rcx, rbx
xchg rcx, rsi
mov qword [rsp + 0x38], rcx
xchg rsi, rcx
cmp qword [rbx + 0x500], rcx
jne 0x14002fbba
lea rax, [0x14002dbd0]
mov byte [rdi + 0x2ec], 0x32
sub byte [rdi + 0x2ec], 0x11
add byte [rdi + 0x2ec], 0x12
xor byte [rdi + 0x2ec], 0x17
add byte [rdi + 0x2ec], 0x3f
sub byte [rdi + 0x2ec], 0x63
xor edx, edx
xchg rdi, rax
mov qword [rbx + 0xf8], rdi
xchg rdi, 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 0x14002fc50
mov ecx, dword [rax + 0xc]
mov edx, 0x5ead66ba
add edx, 0x1548eedc
sub edx, 0x358049
sub edx, 0x2b3f8e70
sub edx, 0x1062260d
xor edx, 0x381f20d5
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov byte [rdi + 0x2ec], 0x68
add byte [rdi + 0x2ec], 5
sub byte [rdi + 0x2ec], 0x38
add byte [rdi + 0x2ec], 8
xor byte [rdi + 0x2ec], 0x11
xor byte [rdi + 0x2ec], 0x2a
xor byte [rdi + 0x2ec], 6
xor edx, edx
inc qword [rbx + 0xf8]
xchg r11, rbx
mov rcx, r11
xchg rbx, r11
call qword [sym.imp.KERNEL32.dll_RtlRestoreContext]
mov rax, qword [0x140216fe0]
mov rsi, qword [rsp + 0x38]
cmp byte [rax + 6], 0
jne 0x14002fd0e
mov ecx, dword [rbx + 0x4f0]
cmp ecx, 1
je 0x14002fcef
cmp ecx, 0x80000001
je 0x14002fcca
cmp ecx, 0x80000003
je 0x14002fca9
cmp ecx, 0x80000004
jne 0x14002fd0e
mov byte [rax], 0x36
xor byte [rax], 0x6e
xor byte [rax], 9
xor byte [rax], 0x50
add byte [rax], 0x45
xor byte [rax], 0x47
jmp 0x14002fd07
mov byte [rax + 2], 0x2a
sub byte [rax + 2], 0xa
add byte [rax + 2], 0x4c
xor byte [rax + 2], 0xb
sub byte [rax + 2], 0x4e
add byte [rax + 2], 0x3b
xor byte [rax + 2], 0x55
jmp 0x14002fd07
mov byte [rax + 4], 0xd
add byte [rax + 4], 0x49
xor byte [rax + 4], 5
add byte [rax + 4], 0x19
sub byte [rax + 4], 0x17
xor byte [rax + 4], 2
xor byte [rax + 4], 0x48
xor byte [rax + 4], 0x1e
jmp 0x14002fd07
mov byte [rax + 3], 0x33
xor byte [rax + 3], 0x1d
add byte [rax + 3], 0x47
sub byte [rax + 3], 0x1e
add byte [rax + 3], 2
sub byte [rax + 3], 0x58
mov rax, qword [0x140216fe0]
cmp qword [rbx + 0x48], 0
jne 0x14002fd3a
cmp qword [rbx + 0x50], 0
jne 0x14002fd3a
cmp qword [rbx + 0x58], 0
jne 0x14002fd3a
cmp qword [rbx + 0x60], 0
je 0x14002fd5a
mov byte [rax + 1], 1
add byte [rax + 1], 0x27
xor byte [rax + 1], 0x55
sub byte [rax + 1], 0x6a
add byte [rax + 1], 0x12
xor byte [rax + 1], 0x67
sub byte [rax + 1], 0x18
sub byte [rax + 1], 0x29
xchg rbx, r8
mov r8, qword [rsp + 0x30]
xchg r8, rbx
mov byte [rdi + 0x2ec], 0x4b
xor byte [rdi + 0x2ec], 0x5d
add byte [rdi + 0x2ec], 0x28
xor byte [rdi + 0x2ec], 3
add byte [rdi + 0x2ec], 0x23
xor byte [rdi + 0x2ec], 0x60
xor edx, edx
mov rcx, rbp
xchg rdx, rbp
mov rdx, qword [rsp + 0x40]
xchg rdx, rbp
add rsp, 0x20
nop
xchg qword [rsp], rdi
add rsp, 8
jmp qword [sym.imp.KERNEL32.dll_RtlRestoreContext]