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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r15, rcx
mov r13, r9
mov ecx, dword [0x14003d17c]
mov rbp, r8
mov rdi, rdx
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_TlsGetValue]
or ebx, 0xffffffff
mov rsi, rax
test rax, rax
jne 0x14002a4dd
mov ebx, dword [0x14003d17c]
lea rdx, [rsp + 0x78]
and dword [rsp + 0x78], eax
lea rsi, [rsp + 0x78]
mov ecx, ebx
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_TlsSetValue]
inc dword [rsi]
mov rcx, qword [0x14003d048]
lea rax, [0x14003d048]
lea r8, [0x140035650]
mov r14d, 0x1df
cmp rcx, rax
je 0x14002a548
test byte [rcx + 0x1c], 1
je 0x14002a548
mov eax, dword [rsi]
lea edx, [rax + rax*4]
cmp edx, 0x1e1
ja 0x14002a51c
mov eax, edx
mov edx, r14d
sub rdx, rax
jmp 0x14002a51e
xor edx, edx
mov rcx, qword [rcx + 0x10]
lea r9, [rdx + r8]
mov edx, 0x2d
mov qword [rsp + 0x28], rdi
lea r8, [0x140036f48]
mov qword [rsp + 0x20], r15
call fcn.14001abac
mov rcx, qword [0x14003d048]
test rdi, rdi
je 0x14002a656
test rbp, rbp
je 0x14002a656
test r13, r13
je 0x14002a656
mov r12, qword [rsp + 0x90]
test r12, r12
je 0x14002a656
mov rbp, qword [rsp + 0x98]
test rbp, rbp
je 0x14002a656
mov rax, qword [rsp + 0x80]
mov rdx, rdi
mov rcx, r15
and dword [rax], 0
and qword [r13], 0
mov byte [r12], 0
mov byte [rbp], 0
mov rax, qword [r15]
mov rax, qword [rax + 0x28]
call qword [0x140034e68]
mov edi, eax
test eax, eax
js 0x14002a5f5
mov rax, qword [r15 + 8]
mov ecx, 0x8007139f
test rax, rax
cmove edi, ecx
test edi, edi
js 0x14002a5f5
cmp byte [rax + 8], 0
jbe 0x14002a5f5
cmp byte [rax + 0x108], 0x7e
je 0x14002a5f5
mov ecx, dword [rax + 4]
lea rdx, [0x140035918]
call fcn.140030598
mov r13, rax
test rax, rax
jne 0x14002a5fe
mov edi, 0x8007000e
mov rcx, qword [0x14003d048]
jmp 0x14002a65b
mov rdx, qword [r15 + 8]
mov rcx, r13
mov r8d, dword [rdx + 4]
add rdx, 0x207
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x88]
mov rcx, rbp
mov qword [rax], r13
mov rax, qword [r15 + 8]
mov edx, dword [rax + 4]
mov rax, qword [rsp + 0x80]
mov dword [rax], edx
mov rax, qword [r15 + 8]
mov dl, byte [rax + 8]
mov byte [r12], dl
mov rdx, qword [r15 + 8]
movzx r8d, byte [rdx + 8]
add rdx, 0x108
call sub.msvcrt.dll_memcpy
jmp 0x14002a5f5
mov edi, 0x80070057
lea rax, [0x14003d048]
cmp rcx, rax
je 0x14002a6ac
test byte [rcx + 0x1c], 1
je 0x14002a6ac
mov eax, dword [rsi]
lea edx, [rax + rax*4]
cmp edx, 0x1e1
ja 0x14002a681
mov eax, edx
sub r14, rax
jmp 0x14002a684
xor r14d, r14d
mov rcx, qword [rcx + 0x10]
lea r9, [0x140035650]
add r9, r14
mov dword [rsp + 0x28], edi
mov edx, 0x2e
mov qword [rsp + 0x20], r15
lea r8, [0x140036f48]
call fcn.140001730
or eax, 0xffffffff
add dword [rsi], eax
cmp ebx, eax
je 0x14002a6cc
mov ecx, ebx
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_TlsGetValue]
test rax, rax
je 0x14002a6cc
xor edx, edx
mov ecx, ebx
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_TlsSetValue]
mov eax, edi
mov rbx, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret