Function at 0x1800b8de0
Capabilities:
Get thread local storage value

Disassembly:
push rbx
push rsi
push r14
sub rsp, 0x20
mov rax, qword [0x1801902f8]
mov rsi, rcx
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rcx, dword [0x18018fe08]
xor ebx, ebx
mov r14d, ebx
test rax, rax
je 0x1800b8e1c
test ecx, ecx
jle 0x1800b8e1c
cmp ecx, dword [rax + 8]
jge 0x1800b8e1c
mov rax, qword [rax]
mov r14, qword [rax + rcx*8]
test r14, r14
jne 0x1800b8e62
lea ecx, [r14 + 0x38]
call sym.tcl86t.dll_hclpAlloc
mov r14, rax
test rax, rax
je 0x1800b9159
xor eax, eax
lea rcx, [0x18018fe08]
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
call fcn.180106bc0
mov qword [rsp + 0x40], rbp
xor ecx, ecx
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x58], r15
call fcn.1800b6880
test eax, eax
je 0x1800b8fd2
call fcn.1800b6a80
mov rdi, rax
call fcn.1800b6ce0
test rdi, rdi
je 0x1800b8ef8
mov rcx, qword [rdi + 8]
mov rax, qword [rcx + 0xe8]
test rax, rax
je 0x1800b8eef
cmp qword [rcx + 0x10], 1
jne 0x1800b8eb8
mov rcx, rsi
call rax
mov rbx, rax
jmp 0x1800b8eef
xor ecx, ecx
call rax
mov rbp, rax
test rax, rax
jne 0x1800b8f67
test rsi, rsi
je 0x1800b8eef
mov rcx, rsi
call sym.tcl86t.dll_hcl_PosixError
mov rdx, rax
lea rcx, str.error_getting_working_directory_name:__s
call sym.tcl86t.dll_hcl_ObjPrintf
mov rdx, rax
mov rcx, rsi
call sym.tcl86t.dll_hcl_SetObjResult
mov rdi, qword [rdi + 0x10]
test rbx, rbx
je 0x1800b8e92
call fcn.1800b6d70
test rbx, rbx
je 0x1800b912d
mov rdx, rbx
mov rcx, rsi
call fcn.1800ea1a0
mov rdi, rax
test rax, rax
je 0x1800b8f4f
lea rdx, str.native
mov rcx, rax
call sym.tcl86t.dll_hcl_FSGetInternalRep
mov rcx, rax
call fcn.180138c40
mov rdx, rax
mov rcx, rdi
call fcn.1800b6e90
mov ecx, dword [rdi]
lea eax, [rcx - 1]
mov dword [rdi], eax
cmp ecx, 1
jg 0x1800b8f4f
mov rcx, rdi
call sym.tcl86t.dll_hclFreeObj
mov ecx, dword [rbx]
lea eax, [rcx - 1]
mov dword [rbx], eax
cmp ecx, 1
jg 0x1800b912d
mov rcx, rbx
jmp 0x1800b9128
mov rax, qword [rdi + 8]
mov rcx, rbp
call qword [rax + 0x30]
mov rdx, rax
mov rcx, rsi
mov rbx, rax
inc dword [rax]
call fcn.1800ea1a0
mov rsi, rax
test rax, rax
je 0x1800b8faa
mov rdx, rbp
mov rcx, rax
call fcn.1800b6e90
mov edx, dword [rsi]
lea ecx, [rdx - 1]
mov dword [rsi], ecx
cmp edx, 1
jg 0x1800b8fb4
mov rcx, rsi
call sym.tcl86t.dll_hclFreeObj
jmp 0x1800b8fb4
mov rax, qword [rdi + 8]
mov rcx, rbp
call qword [rax + 0x28]
mov ecx, dword [rbx]
lea eax, [rcx - 1]
mov dword [rbx], eax
cmp ecx, 1
jg 0x1800b8fc8
mov rcx, rbx
call sym.tcl86t.dll_hclFreeObj
call fcn.1800b6d70
jmp 0x1800b912d
mov rcx, qword [r14 + 0x18]
call sym.tcl86t.dll_hcl_FSGetFileSystemForPath
mov r13, rax
test rax, rax
je 0x1800b912d
mov rax, qword [rax + 0xe8]
test rax, rax
je 0x1800b912d
cmp qword [r13 + 0x10], 1
jne 0x1800b9005
mov rcx, rsi
call rax
jmp 0x1800b904d
mov rcx, qword [r14 + 0x20]
call rax
mov rbx, rax
test rax, rax
jne 0x1800b903a
test rsi, rsi
je 0x1800b903a
mov rcx, rsi
call sym.tcl86t.dll_hcl_PosixError
mov rdx, rax
lea rcx, str.error_getting_working_directory_name:__s
call sym.tcl86t.dll_hcl_ObjPrintf
mov rdx, rax
mov rcx, rsi
call sym.tcl86t.dll_hcl_SetObjResult
cmp rbx, qword [r14 + 0x20]
je 0x1800b912d
mov rcx, rbx
call qword [r13 + 0x30]
inc dword [rax]
mov r15, rax
test rax, rax
jne 0x1800b9063
xor edx, edx
xor ecx, ecx
call fcn.1800b6e90
jmp 0x1800b912d
mov rdx, r15
mov rcx, rsi
call fcn.1800ea1a0
mov rsi, rax
test rax, rax
je 0x1800b910b
mov rbp, qword [r14 + 0x18]
cmp rax, rbp
je 0x1800b90f7
mov rdi, qword [rbp + 8]
test rdi, rdi
jne 0x1800b9098
mov rcx, rbp
call sym.tcl86t.dll_hcl_GetString
mov rdi, qword [rbp + 8]
cmp qword [rsi + 8], 0
mov ebp, dword [rbp + 0x10]
jne 0x1800b90aa
mov rcx, rsi
call sym.tcl86t.dll_hcl_GetString
cmp ebp, dword [rsi + 0x10]
jne 0x1800b90d6
mov rdx, qword [rsi + 8]
sub rdx, rdi
nop word [rax + rax]
movzx ecx, byte [rdi]
movzx eax, byte [rdi + rdx]
sub ecx, eax
jne 0x1800b90d2
inc rdi
test eax, eax
jne 0x1800b90c0
test ecx, ecx
je 0x1800b90f7
mov rdx, rbx
mov rcx, rsi
call fcn.1800b6e90
mov ecx, dword [rsi]
lea eax, [rcx - 1]
mov dword [rsi], eax
cmp ecx, 1
jg 0x1800b9117
mov rcx, rsi
call sym.tcl86t.dll_hclFreeObj
jmp 0x1800b9117
mov ecx, dword [rsi]
lea eax, [rcx - 1]
mov dword [rsi], eax
cmp ecx, 1
jg 0x1800b910b
mov rcx, rsi
call sym.tcl86t.dll_hclFreeObj
test rbx, rbx
je 0x1800b9117
mov rcx, rbx
call qword [r13 + 0x28]
mov ecx, dword [r15]
lea eax, [rcx - 1]
mov dword [r15], eax
cmp ecx, 1
jg 0x1800b912d
mov rcx, r15
call sym.tcl86t.dll_hclFreeObj
mov rax, qword [r14 + 0x18]
mov r15, qword [rsp + 0x58]
mov r13, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x40]
test rax, rax
je 0x1800b9150
inc dword [rax]
mov rax, qword [r14 + 0x18]
add rsp, 0x20
pop r14
pop rsi
pop rbx
ret
mov edx, gethostname
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3