Function at 0x1800c90c0
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x40
mov rax, qword [rcx + 0x1b8]
mov rbx, rcx
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], rsi
mov rsi, qword [rcx + 0x88]
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x38], r14
xor r14d, r14d
mov rbp, qword [rsi + 0x28]
inc dword [rcx + 0x98]
test rax, rax
je 0x1800c9116
inc dword [rcx + 0x94]
mov qword [rcx + 0x1b8], r14
mov rcx, qword [rcx + 0x10]
call rax
dec dword [rbx + 0x94]
lea rdi, [rbx + 0xa0]
mov eax, r14d
mov r9d, dword [rdi + 0x28]
cmp eax, r9d
jge 0x1800c91bc
mov rcx, qword [rdi]
movsxd rdx, eax
inc eax
mov r8, qword [rcx + rdx*8]
test r8, r8
je 0x1800c9124
mov rcx, qword [r8]
mov qword [rsp + 0x30], r15
lea r15, [0x18001f9c0]
nop dword [rax]
mov rdx, qword [r8 + 0x18]
cmp qword [rdx + 0x68], r15
jne 0x1800c918d
mov rcx, rsi
call sym.tcl86t.dll_hcl_DeleteCommandFromToken
mov r8d, dword [rdi + 0x28]
mov eax, r14d
mov rcx, r14
nop dword [rax]
cmp eax, r8d
jge 0x1800c9188
mov rcx, qword [rdi]
movsxd rdx, eax
inc eax
mov rcx, qword [rcx + rdx*8]
test rcx, rcx
je 0x1800c9170
jmp 0x1800c91ac
mov r8, r14
jmp 0x1800c91b2
test rcx, rcx
jne 0x1800c91ac
mov r8d, dword [rdi + 0x28]
cmp eax, r8d
jge 0x1800c91b7
mov rcx, qword [rdi]
movsxd rdx, eax
inc eax
mov rcx, qword [rcx + rdx*8]
test rcx, rcx
je 0x1800c9196
mov r8, rcx
mov rcx, qword [rcx]
test r8, r8
jne 0x1800c9150
mov r15, qword [rsp + 0x30]
cmp qword [rbx + 0x190], r14
je 0x1800c91f4
mov rdx, qword [rbx + 0x190]
mov rax, qword [rdx + 0x78]
mov qword [rbx + 0x190], rax
mov qword [rdx + 0x78], rdx
mov rdx, qword [rdx + 8]
mov rcx, qword [rbx + 0x88]
call sym.tcl86t.dll_hcl_DeleteCommandFromToken
cmp qword [rbx + 0x190], r14
jne 0x1800c91c5
mov rcx, qword [rbx + 0x198]
test rcx, rcx
je 0x1800c9218
mov edx, dword [rcx]
lea eax, [rdx - 1]
mov dword [rcx], eax
cmp edx, 1
jg 0x1800c9211
call sym.tcl86t.dll_hclFreeObj
mov qword [rbx + 0x198], r14
mov eax, dword [rbx + 0x94]
cmp rbx, rbp
mov edx, dword [rbx + 0x90]
mov ecx, r14d
sete cl
sub eax, ecx
test eax, eax
jle 0x1800c9262
mov rax, qword [rbx + 0x20]
or edx, 1
mov dword [rbx + 0x90], edx
test rax, rax
je 0x1800c925c
mov rdx, qword [rbx]
lea rcx, [rax + 0x28]
call qword [rax + 0x68]
test rax, rax
je 0x1800c925c
mov rcx, rax
call sym.tcl86t.dll_hcl_DeleteHashEntry
mov qword [rbx + 0x20], r14
jmp 0x1800c92e1
test dl, 4
jne 0x1800c92e1
or edx, 5
mov rcx, rbx
mov dword [rbx + 0x90], edx
call sym.tcl86t.dll_hclTeardownNamespace
cmp rbx, rbp
jne 0x1800c92c1
test byte [rsi + 0x1a8], 1
jne 0x1800c92c1
mov rdx, qword [rbx + 0x88]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], r14d
xor ecx, ecx
call fcn.1800c88c0
mov rdx, qword [rbx + 0x88]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], r14d
xor ecx, ecx
call fcn.1800c8780
and dword [rbx + 0x90], 0xfffffffa
jmp 0x1800c92e1
mov rcx, rbx
call fcn.180119110
lea rcx, [rbx + 0x28]
call sym.tcl86t.dll_hcl_DeleteHashTable
mov rcx, rdi
call sym.tcl86t.dll_hcl_DeleteHashTable
or dword [rbx + 0x90], 2
sub dword [rbx + 0x98], 1
mov r14, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x50]
jne 0x1800c9325
test byte [rbx + 0x90], 2
je 0x1800c9325
mov rcx, qword [rbx]
call sym.tcl86t.dll_hclpFree
mov rcx, qword [rbx + 8]
call sym.tcl86t.dll_hclpFree
mov rcx, rbx
add rsp, 0x40
pop rbx
jmp sym.tcl86t.dll_hclpFree
add rsp, 0x40
pop rbx
ret