Function at 0x1800c8a00
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x220]
sub rsp, 0x320
mov rax, qword [0x18018f008]
xor rax, rsp
mov qword [rbp + 0x210], rax
mov rax, qword [0x1801902f8]
mov rdi, rcx
mov r12, qword [rcx + 0x28]
mov r15, r9
mov r13, r8
mov rbx, rdx
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rcx, dword [0x18018fe98]
xor esi, esi
mov r14d, esi
test rax, rax
je 0x1800c8a70
test ecx, ecx
jle 0x1800c8a70
cmp ecx, dword [rax + 8]
jge 0x1800c8a70
mov rax, qword [rax]
mov r14, qword [rax + rcx*8]
test r14, r14
jne 0x1800c8a9e
lea ecx, [r14 + 4]
call sym.tcl86t.dll_hclpAlloc
mov r14, rax
test rax, rax
je 0x1800c905f
xor eax, eax
lea rcx, [0x18018fe98]
mov rdx, r14
mov dword [r14], eax
call fcn.180106bc0
mov dword [rsp + 0x78], esi
lea rax, [rbp - 0x80]
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x7c], 0xc8
mov byte [rbp - 0x80], sil
test r12, r12
jne 0x1800c8af1
cmp qword [rdi + 0xa8], rsi
jne 0x1800c8af1
lea rax, [0x180160020]
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rax
mov ecx, 0x1c0
call sym.tcl86t.dll_hclpAlloc
mov rsi, rax
test rax, rax
je 0x1800c9071
jmp 0x1800c8cce
test r15, r15
je 0x1800c8b69
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rbx + rax], sil
jne 0x1800c8b00
lea rcx, [rbx - 2]
add rcx, rax
cmp rcx, rbx
jb 0x1800c8b69
cmp byte [rcx + 1], 0x3a
jne 0x1800c8b69
cmp byte [rcx], 0x3a
jne 0x1800c8b69
mov r8d, 0xffffffff
lea rcx, [rsp + 0x70]
mov rdx, rbx
call sym.tcl86t.dll_hcl_DStringAppend
mov ecx, dword [rsp + 0x78]
test ecx, ecx
jle 0x1800c8b64
nop dword [rax + rax]
mov rbx, qword [rsp + 0x70]
movsxd rax, ecx
cmp byte [rax + rbx - 1], 0x3a
jne 0x1800c8b69
lea edx, [rcx - 1]
lea rcx, [rsp + 0x70]
call sym.tcl86t.dll_hcl_DStringSetLength
mov ecx, dword [rsp + 0x78]
test ecx, ecx
jg 0x1800c8b40
mov rbx, qword [rsp + 0x70]
cmp byte [rbx], sil
jne 0x1800c8bf4
call fcn.180106220
mov ecx, 0x45
mov rbx, rax
mov dword [rax], esi
call sym.tcl86t.dll_hclpAlloc
mov rcx, rax
test rax, rax
je 0x1800c9083
mov qword [rbx + 8], rax
mov rdx, rbx
movups xmm0, xmmword [str.cant_create_namespace___:_only_global_namespace_can_have_empty_name]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x18016c120]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [0x18016c130]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [0x18016c140]
movups xmmword [rax + 0x30], xmm1
mov eax, dword [0x18016c150]
mov dword [rcx + 0x40], eax
mov rcx, rdi
mov rax, qword [rbx + 8]
mov byte [rax + 0x44], sil
mov dword [rbx + 0x10], 0x44
mov qword [rbx + 0x18], rsi
call sym.tcl86t.dll_hcl_SetObjResult
lea rax, str.CREATEGLOBAL
jmp 0x1800c8c8d
lea rax, [rsp + 0x48]
mov r9d, 0x800
mov qword [rsp + 0x38], rax
xor r8d, r8d
lea rax, [rsp + 0x58]
mov rdx, rbx
mov qword [rsp + 0x30], rax
mov rcx, rdi
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call sym.tcl86t.dll_hclGetNamespaceForQualName
mov rdx, qword [rsp + 0x48]
cmp byte [rdx], sil
jne 0x1800c8c57
mov rcx, qword [rsp + 0x70]
lea rax, [rbp - 0x80]
cmp rcx, rax
je 0x1800c8c4d
call sym.tcl86t.dll_hclpFree
mov rax, qword [rsp + 0x40]
jmp 0x1800c9035
mov rax, qword [rsp + 0x40]
lea rcx, [rax + 0x28]
call qword [rax + 0x68]
test rax, rax
je 0x1800c8ad6
mov rdx, rbx
lea rcx, str.cant_create_namespace___s_:_already_exists
call sym.tcl86t.dll_hcl_ObjPrintf
mov rdx, rax
mov rcx, rdi
call sym.tcl86t.dll_hcl_SetObjResult
lea rax, str.CREATEEXISTING
mov qword [rsp + 0x28], rsi
lea r9, str.NAMESPACE
lea r8, str.OPERATION
mov qword [rsp + 0x20], rax
lea rdx, [0x180160820]
mov rcx, rdi
call sym.tcl86t.dll_hcl_SetErrorCode
mov rcx, qword [rsp + 0x70]
lea rax, [rbp - 0x80]
cmp rcx, rax
je 0x1800c8cc7
call sym.tcl86t.dll_hclpFree
xor eax, eax
jmp 0x1800c9035
mov rax, qword [rsp + 0x48]
mov rbx, 0xffffffffffffffff
nop word [rax + rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x1800c8ce0
inc ebx
mov ecx, ebx
call sym.tcl86t.dll_hclpAlloc
test rax, rax
jne 0x1800c8cff
test ebx, ebx
jne 0x1800c9095
mov qword [rsi], rax
mov rcx, rax
mov rdx, qword [rsp + 0x48]
movsxd r8, ebx
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsi + 0x10], r13
lea rdx, [fcn.18009de20]
mov qword [rsi + 8], 0
lea rcx, [fcn.18009de40]
mov qword [rsi + 0x18], r15
xor r13d, r13d
mov rax, qword [rsp + 0x40]
mov qword [rsi + 0x20], rax
lea rax, [rsi + 0x30]
mov qword [rsi + 0x28], rax
mov qword [rax], r13
mov qword [rsi + 0x38], r13
mov qword [rsi + 0x48], r13
mov qword [rsi + 0x40], r13
mov qword [rsi + 0x68], rdx
mov qword [rsi + 0x70], rcx
mov qword [rsi + 0x50], 4
mov dword [rsi + 0x58], reloc.WS2_32.dll_inet_ntoa
mov dword [rsi + 0x5c], 0x1c
mov qword [rsi + 0x60], 3
inc dword [r14]
mov eax, dword [r14]
mov dword [rsi + 0x80], eax
lea rax, [rsi + 0xa8]
mov qword [rsi + 0x88], rdi
mov qword [rsi + 0x90], r13
mov dword [rsi + 0x98], r13d
mov qword [rsi + 0xa0], rax
mov qword [rsi + 0xb0], r13
mov qword [rax], r13
mov qword [rsi + 0xc0], r13
mov qword [rsi + 0xb8], r13
mov qword [rsi + 0xe0], rdx
mov rdx, rsi
mov qword [rsi + 0xe8], rcx
lea rcx, [rsi + 0xf8]
mov qword [rsi + 0xc8], 4
mov dword [rsi + 0xd0], reloc.WS2_32.dll_inet_ntoa
mov dword [rsi + 0xd4], 0x1c
mov qword [rsi + 0xd8], 3
call sym.tcl86t.dll_hclInitVarHashTable
mov qword [rsi + 0x158], r13
mov qword [rsi + 0x160], r13
mov qword [rsi + 0x168], r13
mov qword [rsi + 0x170], r13
mov qword [rsi + 0x178], r13
mov qword [rsi + 0x180], r13
mov dword [rsi + 0x188], r13d
mov qword [rsi + 0x190], r13
mov qword [rsi + 0x198], r13
mov dword [rsi + 0x1a0], r13d
mov qword [rsi + 0x1a8], r13
mov qword [rsi + 0x1b0], r13
mov qword [rsi + 0x1b8], r13
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x1800c8e83
mov rdx, qword [rsp + 0x48]
lea rcx, [rax + 0x28]
lea r8, [rsp + 0x50]
call qword [rax + 0x70]
mov qword [rax + 0x18], rsi
jmp 0x1800c8eb1
xor r9d, r9d
mov qword [rdi + 0x28], rsi
xor r8d, r8d
mov dword [rsp + 0x20], r13d
mov rdx, rdi
xor ecx, ecx
call fcn.1800c88c0
xor r9d, r9d
mov dword [rsp + 0x20], r13d
xor r8d, r8d
mov rdx, rdi
xor ecx, ecx
call fcn.1800c8780
lea rax, [rbp + 0x60]
mov dword [rbp + 0x58], r13d
mov qword [rbp + 0x50], rax
lea r14, [rbp + 0x50]
lea rax, [rbp + 0x140]
mov dword [rbp + 0x5c], 0xc8
mov qword [rbp + 0x130], rax
lea r15, [rbp + 0x130]
mov byte [rbp + 0x60], r13b
mov rdi, rsi
mov dword [rbp + 0x138], r13d
mov dword [rbp + 0x13c], 0xc8
mov byte [rbp + 0x140], r13b
nop dword [rax]
cmp rdi, r12
je 0x1800c8f4d
mov r8d, 2
lea rdx, [0x180161694]
mov rcx, r15
mov rbx, r14
call sym.tcl86t.dll_hcl_DStringAppend
mov rdx, qword [rdi]
mov r8d, 0xffffffff
mov rcx, r15
call sym.tcl86t.dll_hcl_DStringAppend
mov r8d, dword [r14 + 8]
mov rcx, r15
mov rdx, qword [r14]
call sym.tcl86t.dll_hcl_DStringAppend
xor edx, edx
mov rcx, r14
call sym.tcl86t.dll_hcl_DStringSetLength
mov r14, r15
mov r15, rbx
mov rdi, qword [rdi + 0x20]
test rdi, rdi
jne 0x1800c8f00
mov ebx, dword [r14 + 8]
mov rdi, qword [r14]
inc ebx
mov ecx, ebx
call sym.tcl86t.dll_hclpAlloc
test rax, rax
jne 0x1800c8f73
test ebx, ebx
jne 0x1800c90a4
mov r8d, ebx
mov rdx, rdi
mov rcx, rax
mov qword [rsi + 8], rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbp + 0x50]
lea rax, [rbp + 0x60]
cmp rcx, rax
je 0x1800c8f97
call sym.tcl86t.dll_hclpFree
mov rcx, qword [rbp + 0x130]
lea rax, [rbp + 0x60]
mov qword [rbp + 0x50], rax
lea rax, [rbp + 0x140]
mov dword [rbp + 0x58], r13d
mov dword [rbp + 0x5c], 0xc8
mov byte [rbp + 0x60], r13b
cmp rcx, rax
je 0x1800c8fc6
call sym.tcl86t.dll_hclpFree
mov rcx, qword [rsp + 0x70]
lea rax, [rbp + 0x140]
mov qword [rbp + 0x130], rax
lea rax, [rbp - 0x80]
mov dword [rbp + 0x138], r13d
mov dword [rbp + 0x13c], 0xc8
mov byte [rbp + 0x140], r13b
cmp rcx, rax
je 0x1800c8fff
call sym.tcl86t.dll_hclpFree
lea rax, [rbp - 0x80]
mov dword [rsp + 0x78], r13d
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x7c], 0xc8
mov byte [rbp - 0x80], r13b
mov rax, qword [rsi + 0x20]
test rax, rax
je 0x1800c9032
test byte [rax + 0x90], 8
je 0x1800c9032
or dword [rsi + 0x90], 8
mov rax, rsi
mov rcx, qword [rbp + 0x210]
xor rcx, rsp
call fcn.180146240
mov rbx, qword [rsp + 0x370]
add rsp, 0x320
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov edx, 4
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
mov edx, 0x1c0
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
mov edx, 0x45
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
mov edx, ebx
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
mov edx, ebx
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3