Function at 0x1800a92b0
Capabilities:
Get thread local storage value

Disassembly:
push rbp
push rsi
push r12
push r14
push r15
sub rsp, 0x30
mov rax, qword [0x1801902f8]
mov rbp, rcx
mov r15d, r8d
mov rsi, rdx
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rdx, dword [0x18018fdf0]
xor r12d, r12d
mov r14d, r12d
test rax, rax
je 0x1800a92f7
test edx, edx
jle 0x1800a92f7
cmp edx, dword [rax + 8]
jge 0x1800a92f7
mov rax, qword [rax]
mov r14, qword [rax + rdx*8]
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rdi
test r14, r14
jne 0x1800a934f
lea ecx, [r14 + 0x48]
call sym.tcl86t.dll_hclpAlloc
mov r14, rax
test rax, rax
je 0x1800a970f
xor eax, eax
lea rcx, [0x18018fdf0]
mov qword [r14], rax
mov rdx, r14
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], rax
mov qword [r14 + 0x18], rax
mov qword [r14 + 0x20], rax
mov qword [r14 + 0x28], rax
mov qword [r14 + 0x30], rax
mov qword [r14 + 0x38], rax
mov qword [r14 + 0x40], rax
call fcn.180106bc0
test rsi, rsi
jne 0x1800a936d
xor eax, eax
mov rdi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
add rsp, 0x30
pop r15
pop r14
pop r12
pop rsi
pop rbp
ret
mov rbx, qword [rsi]
mov rcx, qword [rbx + 0x80]
mov qword [rbx + 0x80], r12
mov qword [rbx + 0x88], r12
test rcx, rcx
je 0x1800a93a6
nop word [rax + rax]
sub dword [rcx], 1
mov rdi, qword [rcx + 0x10]
jne 0x1800a939e
call sym.tcl86t.dll_hclpFree
mov rcx, rdi
test rdi, rdi
jne 0x1800a9390
mov rcx, qword [rbx + 0x78]
test rcx, rcx
je 0x1800a93bd
sub dword [rcx], 1
jne 0x1800a93b9
call sym.tcl86t.dll_hclpFree
mov qword [rbx + 0x78], r12
mov rcx, qword [rbx + 0x60]
test rcx, rcx
je 0x1800a93d4
sub dword [rcx], 1
jne 0x1800a93d0
call sym.tcl86t.dll_hclpFree
mov qword [rbx + 0x60], r12
cmp qword [rbx + 0x68], r12
jne 0x1800a9702
mov eax, dword [rbx + 0x40]
test eax, eax
je 0x1800a940a
test byte [rbx + 8], 4
je 0x1800a940a
mov rcx, qword [rsi + 8]
lea r9, [rsp + 0x20]
mov byte [rsp + 0x78], al
lea rdx, [rsp + 0x78]
mov rax, qword [rsi + 0x10]
mov r8d, 1
call qword [rax + 0x20]
mov rdx, qword [rbx + 0xe8]
test rdx, rdx
je 0x1800a948e
test rbp, rbp
je 0x1800a942a
mov rcx, rbp
call sym.tcl86t.dll_hcl_SetChannelErrorInterp
mov rdx, qword [rbx + 0xe8]
mov ecx, dword [rdx]
lea eax, [rcx - 1]
mov dword [rdx], eax
cmp ecx, 1
jg 0x1800a9487
mov rax, qword [rbx + 0xe8]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1800a9456
cmp qword [rcx + 8], r12
je 0x1800a9456
mov rcx, rax
call sym.tcl86t.dll_hclFreeObj
jmp 0x1800a9487
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1800a9474
cmp rcx, qword [0x18018f080]
je 0x1800a9474
call sym.tcl86t.dll_hclpFree
mov rax, qword [rbx + 0xe8]
mov dword [rax + 0x10], 0xffffffff
mov rcx, qword [rbx + 0xe8]
call fcn.1801063c0
mov qword [rbx + 0xe8], r12
mov rax, qword [0x1801902f8]
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rcx, dword [0x18018fdf0]
mov rdi, r12
test rax, rax
je 0x1800a94bc
test ecx, ecx
jle 0x1800a94bc
cmp ecx, dword [rax + 8]
jge 0x1800a94bc
mov rax, qword [rax]
mov rdi, qword [rax + rcx*8]
test rdi, rdi
jne 0x1800a9509
lea ecx, [rdi + 0x48]
call sym.tcl86t.dll_hclpAlloc
mov rdi, rax
test rax, rax
je 0x1800a970f
xor eax, eax
lea rcx, [0x18018fdf0]
mov qword [rdi], rax
mov rdx, rdi
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x28], rax
mov qword [rdi + 0x30], rax
mov qword [rdi + 0x38], rax
mov qword [rdi + 0x40], rax
call fcn.180106bc0
mov rcx, qword [rdi + 8]
mov rdx, qword [rsi]
test rcx, rcx
je 0x1800a9721
cmp rdx, rcx
jne 0x1800a952b
mov rax, qword [rdx + 0xd8]
mov qword [rdi + 8], rax
jmp 0x1800a955c
test rcx, rcx
je 0x1800a9721
mov rax, qword [rcx + 0xd8]
cmp rax, rdx
je 0x1800a954e
mov rcx, rax
test rax, rax
je 0x1800a9721
jmp 0x1800a9534
mov rax, qword [rdx + 0xd8]
mov qword [rcx + 0xd8], rax
mov qword [rdx + 0xd8], r12
mov r9, qword [rsi + 0x10]
mov rax, qword [r9 + 8]
sub rax, 4
cmp rax, 1
ja 0x1800a957b
mov rax, qword [r9 + 0x78]
jmp 0x1800a957e
mov rax, r12
test rax, rax
je 0x1800a9592
mov rcx, qword [rsi + 8]
mov edx, 1
call rax
mov r9, qword [rsi + 0x10]
mov rax, qword [r9 + 0x10]
mov rdx, rbp
mov rcx, qword [rsi + 8]
cmp rax, 1
je 0x1800a95a7
call rax
jmp 0x1800a95ae
xor r8d, r8d
call qword [r9 + 0x50]
mov edi, eax
cmp rsi, qword [rbx + 0xd0]
jne 0x1800a95d2
mov rcx, qword [rbx]
test rcx, rcx
je 0x1800a95c9
call sym.tcl86t.dll_hclpFree
mov qword [rbx], r12
mov rcx, qword [rbx + 0x10]
call sym.tcl86t.dll_hcl_FreeEncoding
mov eax, dword [rbx + 0x44]
test eax, eax
je 0x1800a9664
mov rdx, qword [rbx + 0xe8]
mov r15d, eax
test rdx, rdx
je 0x1800a9650
mov ecx, dword [rdx]
lea eax, [rcx - 1]
mov dword [rdx], eax
cmp ecx, 1
jg 0x1800a9649
mov rax, qword [rbx + 0xe8]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1800a9618
cmp qword [rcx + 8], r12
je 0x1800a9618
mov rcx, rax
call sym.tcl86t.dll_hclFreeObj
jmp 0x1800a9649
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1800a9636
cmp rcx, qword [0x18018f080]
je 0x1800a9636
call sym.tcl86t.dll_hclpFree
mov rax, qword [rbx + 0xe8]
mov dword [rax + 0x10], 0xffffffff
mov rcx, qword [rbx + 0xe8]
call fcn.1801063c0
mov qword [rbx + 0xe8], r12
test rbp, rbp
je 0x1800a9664
mov rdx, qword [rbx + 0xf0]
mov rcx, rbp
call sym.tcl86t.dll_hcl_SetChannelErrorInterp
test r15d, r15d
jne 0x1800a9678
mov r15d, edi
test edi, edi
je 0x1800a9678
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], edi
mov rcx, qword [rbx + 0xb0]
call sym.tcl86t.dll_hcl_DeleteTimerHandler
mov rdi, qword [rsi + 0x18]
test rdi, rdi
je 0x1800a96d9
mov rax, qword [r14 + 8]
mov qword [rbx + 0xd8], rax
mov qword [r14 + 8], rbx
mov qword [rbx + 0xc8], rdi
mov qword [rdi + 0x20], r12
cmp dword [rsi + 0x38], r12d
jne 0x1800a96c5
mov rcx, rsi
call sym.tcl86t.dll_hclpFree
mov rdx, rdi
mov rcx, rbp
call sym.tcl86t.dll_hcl_Close
jmp 0x1800a9356
mov rdx, rdi
mov qword [rsi + 0x10], r12
mov rcx, rbp
call sym.tcl86t.dll_hcl_Close
jmp 0x1800a9356
cmp dword [rsi + 0x38], r12d
jne 0x1800a96e9
mov rcx, rsi
call sym.tcl86t.dll_hclpFree
jmp 0x1800a96ed
mov qword [rsi + 0x10], r12
mov edx, 3
mov rcx, rbx
call sym.tcl86t.dll_hcl_EventuallyFree
mov eax, r15d
jmp 0x1800a9356
lea rcx, str.TclFlush__closed_channel:_queued_output_left
call sym.tcl86t.dll_hcl_Panic
int3
mov edx, 0x48
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
lea rcx, str.FlushChannel:_damaged_channel_list
call sym.tcl86t.dll_hcl_Panic
int3