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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x40
mov rsi, r9
mov ebp, r8d
mov r14, rdx
mov r15, rcx
call fcn.140081d50
test al, al
je 0x14008fed5
call fcn.140082610
mov rcx, qword [0x1402b0640]
mov rax, qword [rcx]
mov rax, qword [rax + 0x80]
call qword [case.0x140047660.0]
mov ecx, eax
call qword [sym.imp.KERNEL32.DLL_TlsGetValue]
test rax, rax
je 0x14008fd24
mov ebx, 0x1392
jmp 0x14008fefd
mov ecx, 8
call fcn.14013ffac
mov rdi, rax
test rax, rax
je 0x14008fef8
xor r9d, r9d
mov qword [rax], 0xffffffffffffffff
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_CreateEventW]
mov qword [rdi], rax
cmp rax, 0xffffffffffffffff
je 0x14008fd66
call qword [sym.imp.KERNEL32.DLL_GetLastError]
mov ebx, eax
test eax, eax
jne 0x14008fd94
mov rcx, qword [0x1402b0640]
mov rax, qword [rcx]
mov rax, qword [rax + 0x80]
call qword [case.0x140047660.0]
mov ecx, eax
mov rdx, rdi
call qword [sym.imp.KERNEL32.DLL_TlsSetValue]
test eax, eax
jne 0x14008fdbf
call qword [sym.imp.KERNEL32.DLL_GetLastError]
mov ebx, eax
mov rcx, qword [rdi]
cmp rcx, 0xffffffffffffffff
je 0x14008fdaa
call qword [sym.imp.KERNEL32.DLL_CloseHandle]
mov qword [rdi], 0xffffffffffffffff
mov edx, 8
mov rcx, rdi
call fcn.14013ff64
test ebx, ebx
jne 0x14008fefd
mov rcx, qword [0x1402aa8a0]
lea rdi, [0x1402aa8a0]
cmp rcx, rdi
je 0x14008fdf6
test dword [rcx + 0x44], 0x400000
je 0x14008fdf6
cmp byte [rcx + 0x41], 4
jb 0x14008fdf6
mov rcx, qword [rcx + 0x38]
lea r8, [0x140230970]
mov edx, 0x1e
call fcn.140024300
mov rax, qword [rsp + 0x90]
lea rcx, [r15 + 0x10]
mov r9, qword [rsp + 0x88]
mov r8d, ebp
mov qword [rsp + 0x30], r14
mov rdx, rsi
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x20], eax
call fcn.14007ca60
mov rcx, qword [0x1402b0640]
mov esi, eax
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x80]
call qword [case.0x140047660.0]
mov ecx, eax
call qword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov rcx, qword [0x1402b0640]
mov rbx, rax
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x80]
call qword [case.0x140047660.0]
mov ecx, eax
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_TlsSetValue]
test rbx, rbx
je 0x14008fe97
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x14008fe8a
call qword [sym.imp.KERNEL32.DLL_CloseHandle]
mov qword [rbx], 0xffffffffffffffff
mov edx, 8
mov rcx, rbx
call fcn.14013ff64
call fcn.140081b80
call fcn.140081d50
test al, al
jne 0x14008fef3
mov rcx, qword [0x1402aa8a0]
cmp rcx, rdi
je 0x14008fed5
test dword [rcx + 0x44], 0x400000
je 0x14008fed5
cmp byte [rcx + 0x41], 2
jb 0x14008fed5
mov rcx, qword [rcx + 0x38]
lea r8, [0x140230970]
mov edx, 0x1f
call fcn.140024300
mov eax, 1
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x40
pop r15
pop r14
pop rdi
ret
mov rax, rsi
jmp 0x14008feda
mov ebx, 0xe
mov rcx, qword [0x1402aa8a0]
lea rdi, [0x1402aa8a0]
cmp rcx, rdi
je 0x14008ff37
test dword [rcx + 0x44], 0x400000
je 0x14008ff37
cmp byte [rcx + 0x41], 2
jb 0x14008ff37
mov rcx, qword [rcx + 0x38]
lea r8, [0x140230970]
mov edx, 0x1d
mov r9d, ebx
call fcn.140026630
mov eax, ebx
jmp 0x14008feda