Function at 0x180143a40
Capabilities:
Create thread
Get thread local storage value

Disassembly:
add byte [rax], al
add byte [rax], al
add byte [rbx + 0x969], ah
add byte [rax], al
add byte [rcx], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rdi], al
add byte [r8], al
movsxd rcx, dword [0x180190508]
xor esi, esi
mov edi, esi
test rax, rax
je 0x180143a79
test ecx, ecx
jle 0x180143a79
cmp ecx, dword [rax + 8]
jge 0x180143a79
mov rax, qword [rax]
mov rdi, qword [rax + rcx*8]
cmp dword [0x1801904ec], esi
mov qword [rsp + 0x48], rbx
jne 0x180143b6b
mov ecx, 0x18
mov dword [0x1801904ec], 1
call sym.tcl86t.dll_hclpAlloc
mov rbx, rax
test rax, rax
je 0x180143cb3
lea rax, [0x180143ce0]
mov qword [rbx + 8], rsi
lea rcx, [0x18018fdc0]
mov qword [rbx], rax
call sym.tcl86t.dll_hcl_MutexLock
mov rax, qword [0x18018fdb0]
mov qword [rbx + 0x10], rax
mov rcx, qword [0x18018fdc0]
mov qword [0x18018fdb0], rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [0x180190358]
lea rcx, [0x180190510]
mov qword [0x180190528], rax
xorps xmm0, xmm0
lea rax, str.TclSocket
mov dword [0x180190510], esi
mov qword [0x180190550], rax
lea rax, [0x180144760]
mov qword [0x180190518], rax
mov qword [0x180190520], rsi
movdqa xmmword [0x180190540], xmm0
movdqa xmmword [0x180190530], xmm0
call qword [sym.imp.USER32.dll_RegisterClassW]
test ax, ax
jne 0x180143b6b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call sym.tcl86t.dll_hclWinConvertError
call fcn.180141f30
mov dword [0x1801904ec], 0xffffffff
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
test rdi, rdi
jne 0x180143b5b
mov rax, qword [0x1801902f8]
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rcx, dword [0x180190508]
mov rbx, rsi
test rax, rax
je 0x180143b9e
test ecx, ecx
jle 0x180143b9e
cmp ecx, dword [rax + 8]
jge 0x180143b9e
mov rax, qword [rax]
mov rbx, qword [rax + rcx*8]
test rbx, rbx
jne 0x180143be3
lea ecx, [rbx + 0x38]
call sym.tcl86t.dll_hclpAlloc
mov rbx, rax
test rax, rax
je 0x180143cc5
xor eax, eax
lea rcx, [0x180190508]
mov qword [rbx], rax
mov rdx, rbx
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
call fcn.180106bc0
mov qword [rbx + 0x28], rsi
mov qword [rbx + 0x30], rsi
mov qword [rbx], rsi
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov eax, eax
xor r9d, r9d
xor r8d, r8d
mov qword [rbx + 0x10], rax
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbx + 0x18], rax
test rax, rax
je 0x180143b4c
xor r9d, r9d
xor edx, edx
xor ecx, ecx
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbx + 0x20], rax
test rax, rax
je 0x180143b4c
lea rax, [rsp + 0x40]
mov r9, rbx
mov qword [rsp + 0x28], rax
lea r8, [0x180144690]
mov edx, 0x100
mov dword [rsp + 0x20], esi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rbx + 8], rax
test rax, rax
je 0x180143b4c
mov edx, 2
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov rcx, qword [rbx + 0x18]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp qword [rbx], rsi
je 0x180143b4c
xor r8d, r8d
lea rdx, [0x180143e20]
lea rcx, [0x180143d30]
call sym.tcl86t.dll_hcl_CreateEventSource
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov edx, 0x18
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
mov edx, gethostname
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3