Function at 0x14002fb30
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 rbp, rcx
mov rcx, rbp
xchg rbp, rcx
mov rax, qword [rdi + 0x2d8]
xchg r13, rax
mov qword [rcx + 0xf8], r13
xchg r13, rax
xchg r14, rax
mov r14, qword [rdi + 0x2e0]
xchg r14, rax
mov qword [rcx + 0x98], rax
xchg rbp, rax
mov rbp, qword [rcx + 0xc8]
xchg rbp, rax
xchg r12, rax
mov qword [rcx + 0x80], r12
xchg r12, rax
cmp byte [rdi + 0x2ec], 0
jne 0x14002fe73
cmp qword [0x140216fe0], 0
je 0x14002fe73
mov byte [rdi + 0x2ec], 0x49
xor byte [rdi + 0x2ec], 0x65
sub byte [rdi + 0x2ec], 0x13
add byte [rdi + 0x2ec], 0x1d
add byte [rdi + 0x2ec], 0x18
add byte [rdi + 0x2ec], 0x1e
sub byte [rdi + 0x2ec], 0x3d
sub byte [rdi + 0x2ec], 0x2d
xor byte [rdi + 0x2ec], 3
mov rax, qword [0x140216fe0]
xchg r9, rcx
mov r9, qword [rax + 0x30]
xchg r9, rcx
cmp qword [rdi + 0x2d8], rcx
jne 0x14002fe42
mov qword [rsp + 0x30], rbx
mov rbx, qword [rbp + 0x98]
cmp dword [rbx + 0x4f0], 0x80000003
jne 0x14002fd2f
mov rcx, qword [rax + 0x18]
xchg r10, rsi
mov qword [rsp + 0x38], r10
xchg r10, rsi
cmp qword [rbx + 0x500], rcx
jne 0x14002fc8e
lea rax, [0x14002dd20]
mov byte [rdi + 0x2ec], 0x21
add byte [rdi + 0x2ec], 0x47
xor byte [rdi + 0x2ec], 0x5a
add byte [rdi + 0x2ec], 0x1b
sub byte [rdi + 0x2ec], 0x37
sub byte [rdi + 0x2ec], 0x16
xor edx, edx
mov qword [rbx + 0xf8], rax
xchg rcx, rsi
mov rsi, rbx
xchg rsi, 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 0x14002fd2a
mov ecx, dword [rax + 0xc]
mov edx, 0x4dc5f8f4
xor edx, 0x46efa42e
add edx, 0x1985ed86
xor edx, 0x78ab347e
xor edx, 0x29978b87
xor edx, 0x1de8a9c3
xor edx, 0x68645c5f
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov byte [rdi + 0x2ec], 0x58
sub byte [rdi + 0x2ec], 0x14
sub byte [rdi + 0x2ec], 0x11
add byte [rdi + 0x2ec], 0x30
xor byte [rdi + 0x2ec], 0x36
add byte [rdi + 0x2ec], 2
xor byte [rdi + 0x2ec], 0x57
xor edx, edx
inc qword [rbx + 0xf8]
xchg r12, rbx
mov rcx, r12
xchg r12, rbx
call qword [sym.imp.KERNEL32.dll_RtlRestoreContext]
mov rax, qword [0x140216fe0]
mov rsi, qword [rsp + 0x38]
cmp byte [rax + 6], 0
jne 0x14002fdf9
mov ecx, dword [rbx + 0x4f0]
cmp ecx, 1
je 0x14002fdd2
cmp ecx, 0x80000001
je 0x14002fdad
cmp ecx, 0x80000003
je 0x14002fd8c
cmp ecx, 0x80000004
jne 0x14002fdf9
mov byte [rax], 0x46
xor byte [rax], 0xe
add byte [rax], 0x1e
xor byte [rax], 0x15
xor byte [rax], 0x7d
add byte [rax], 0x35
xor byte [rax], 0x4b
add byte [rax], 0x70
sub byte [rax], 0x77
jmp 0x14002fdf2
mov byte [rax + 2], 0x2a
xor byte [rax + 2], 0x3d
add byte [rax + 2], 0x4c
sub byte [rax + 2], 0x63
add byte [rax + 2], 0x35
sub byte [rax + 2], 0x2f
sub byte [rax + 2], 5
jmp 0x14002fdf2
mov byte [rax + 4], 0x7e
sub byte [rax + 4], 0x69
add byte [rax + 4], 0x63
sub byte [rax + 4], 0x10
sub byte [rax + 4], 0x1a
sub byte [rax + 4], 0x1e
sub byte [rax + 4], 0x2d
xor byte [rax + 4], 2
jmp 0x14002fdf2
mov byte [rax + 3], 0x73
sub byte [rax + 3], 0xd
sub byte [rax + 3], 0x55
xor byte [rax + 3], 0x67
xor byte [rax + 3], 0x2b
sub byte [rax + 3], 0x31
sub byte [rax + 3], 5
sub byte [rax + 3], 0x26
mov rax, qword [0x140216fe0]
cmp qword [rbx + 0x48], 0
jne 0x14002fe25
cmp qword [rbx + 0x50], 0
jne 0x14002fe25
cmp qword [rbx + 0x58], 0
jne 0x14002fe25
cmp qword [rbx + 0x60], 0
je 0x14002fe3d
mov byte [rax + 1], 1
add byte [rax + 1], 0x5a
xor byte [rax + 1], 0x33
sub byte [rax + 1], 0x55
add byte [rax + 1], 0x19
sub byte [rax + 1], 0x2b
mov rbx, qword [rsp + 0x30]
mov byte [rdi + 0x2ec], 0x5f
xor byte [rdi + 0x2ec], 0x46
add byte [rdi + 0x2ec], 8
add byte [rdi + 0x2ec], 0x3e
xor byte [rdi + 0x2ec], 0x46
sub byte [rdi + 0x2ec], 1
sub byte [rdi + 0x2ec], 0x18
xor edx, edx
mov rcx, rbp
mov rbp, qword [rsp + 0x40]
add rsp, 0x20
nop
xchg qword [rsp], rdi
add rsp, 8
jmp qword [sym.imp.KERNEL32.dll_RtlRestoreContext]