joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1800e4900
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
mov qword [rsp + 0x18], rbp
push rdi
sub rsp, 0x20
cmp dword [rcx], 1
mov ebp, edx
mov rdi, rcx
jg 0x1800e4a8f
mov qword [rsp + 0x30], rbx
mov rbx, qword [rcx + 8]
mov qword [rsp + 0x38], rsi
test rbx, rbx
je 0x1800e49db
cmp rbx, qword [0x18018f080]
je 0x1800e49d3
cmp dword [0x1801905e4], 0
jne 0x1800e4966
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x1801905ac], eax
mov dword [0x1801905e4], 1
cmp eax, 0xffffffff
je 0x1800e4aa3
jmp 0x1800e496c
mov eax, dword [0x1801905ac]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test rax, rax
jne 0x1800e498a
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1800e4ab0
test rsi, rsi
jne 0x1800e4997
call fcn.180105bb0
mov rsi, rax
movzx eax, byte [rbx - 0x10]
add rbx, 0xfffffffffffffff0
cmp al, 0xef
jne 0x1800e4a76
cmp byte [rbx + 3], al
jne 0x1800e4a76
movzx edx, byte [rbx + 1]
cmp edx, 0xa
jne 0x1800e4a15
mov eax, dword [rbx + 8]
sub dword [rsi + 0x28], eax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rdi + 8], 0
mov rax, qword [rdi + 0x18]
test rax, rax
je 0x1800e49f2
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x1800e49f2
mov rcx, rdi
call rdx
mov rbx, qword [rsp + 0x30]
lea rax, [0x180154ac0]
mov rsi, qword [rsp + 0x38]
mov dword [rdi + 0x20], ebp
mov rbp, qword [rsp + 0x40]
mov qword [rdi + 0x18], rax
add rsp, 0x20
pop rdi
ret
lea rax, [rdx + rdx*4]
lea rcx, [rsi + rax*8]
mov eax, dword [rbx + 8]
sub dword [rcx + 0x54], eax
mov rax, qword [rcx + 0x30]
mov qword [rbx], rax
mov r9d, dword [rcx + 0x40]
mov qword [rcx + 0x30], rbx
test r9d, r9d
jne 0x1800e4a3b
mov qword [rcx + 0x38], rbx
inc dword [rcx + 0x48]
inc r9d
cmp rsi, qword [0x18018f158]
mov dword [rcx + 0x40], r9d
je 0x1800e49d3
lea rax, [rdx + rdx*2]
lea rcx, [0x180190200]
cmp r9d, dword [rcx + rax*8 + 8]
jle 0x1800e49d3
mov r8d, dword [rcx + rax*8 + 0xc]
mov rcx, rsi
call fcn.180106700
jmp 0x1800e49d3
movzx r9d, byte [rbx + 3]
lea rcx, str.alloc:_invalid_block:__p:__x__x
movzx r8d, al
mov rdx, rbx
call sym.tcl86t.dll_hcl_Panic
int3
lea rdx, str.Tcl_SetIntObj
lea rcx, str._s_called_with_shared_object
call sym.tcl86t.dll_hcl_Panic
int3
lea rcx, str.could_not_allocate_thread_local_storage
call sym.tcl86t.dll_hcl_Panic
int3
lea rcx, str.TlsGetValue_failed_from_TclpGetAllocCache
call sym.tcl86t.dll_hcl_Panic
int3
Function at 0x1800e4bb0
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
mov qword [rsp + 0x18], rbp
push rdi
sub rsp, 0x20
cmp dword [rcx], 1
mov ebp, edx
mov rdi, rcx
jg 0x1800e4d3f
mov qword [rsp + 0x30], rbx
mov rbx, qword [rcx + 8]
mov qword [rsp + 0x38], rsi
test rbx, rbx
je 0x1800e4c8b
cmp rbx, qword [0x18018f080]
je 0x1800e4c83
cmp dword [0x1801905e4], 0
jne 0x1800e4c16
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x1801905ac], eax
mov dword [0x1801905e4], 1
cmp eax, 0xffffffff
je 0x1800e4d53
jmp 0x1800e4c1c
mov eax, dword [0x1801905ac]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
test rax, rax
jne 0x1800e4c3a
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1800e4d60
test rsi, rsi
jne 0x1800e4c47
call fcn.180105bb0
mov rsi, rax
movzx eax, byte [rbx - 0x10]
add rbx, 0xfffffffffffffff0
cmp al, 0xef
jne 0x1800e4d26
cmp byte [rbx + 3], al
jne 0x1800e4d26
movzx edx, byte [rbx + 1]
cmp edx, 0xa
jne 0x1800e4cc5
mov eax, dword [rbx + 8]
sub dword [rsi + 0x28], eax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rdi + 8], 0
mov rax, qword [rdi + 0x18]
test rax, rax
je 0x1800e4ca2
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x1800e4ca2
mov rcx, rdi
call rdx
mov rbx, qword [rsp + 0x30]
lea rax, [0x180154ac0]
mov rsi, qword [rsp + 0x38]
mov dword [rdi + 0x20], ebp
mov rbp, qword [rsp + 0x40]
mov qword [rdi + 0x18], rax
add rsp, 0x20
pop rdi
ret
lea rax, [rdx + rdx*4]
lea rcx, [rsi + rax*8]
mov eax, dword [rbx + 8]
sub dword [rcx + 0x54], eax
mov rax, qword [rcx + 0x30]
mov qword [rbx], rax
mov r9d, dword [rcx + 0x40]
mov qword [rcx + 0x30], rbx
test r9d, r9d
jne 0x1800e4ceb
mov qword [rcx + 0x38], rbx
inc dword [rcx + 0x48]
inc r9d
cmp rsi, qword [0x18018f158]
mov dword [rcx + 0x40], r9d
je 0x1800e4c83
lea rax, [rdx + rdx*2]
lea rcx, [0x180190200]
cmp r9d, dword [rcx + rax*8 + 8]
jle 0x1800e4c83
mov r8d, dword [rcx + rax*8 + 0xc]
mov rcx, rsi
call fcn.180106700
jmp 0x1800e4c83
movzx r9d, byte [rbx + 3]
lea rcx, str.alloc:_invalid_block:__p:__x__x
movzx r8d, al
mov rdx, rbx
call sym.tcl86t.dll_hcl_Panic
int3
lea rdx, str.Tcl_SetLongObj
lea rcx, str._s_called_with_shared_object
call sym.tcl86t.dll_hcl_Panic
int3
lea rcx, str.could_not_allocate_thread_local_storage
call sym.tcl86t.dll_hcl_Panic
int3
lea rcx, str.TlsGetValue_failed_from_TclpGetAllocCache
call sym.tcl86t.dll_hcl_Panic
int3
Function at 0x1800e5d60
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov rbp, rcx
lea r15, str.double
lea rcx, str.bignum
mov rsi, r9
mov r14, r8
lea r12, [0x180154ac0]
mov rbx, rdx
lea r13, str.wideInt
xor edi, edi
nop word [rax + rax]
mov rax, qword [rbx + 0x18]
cmp rax, r15
je 0x1800e5ee3
cmp rax, r12
je 0x1800e5ed4
cmp rax, r13
je 0x1800e5ec5
cmp rax, rcx
je 0x1800e5e0f
mov dword [rsp + 0x30], edi
lea r8, str.number
mov qword [rsp + 0x28], rdi
xor r9d, r9d
mov rdx, rbx
mov dword [rsp + 0x20], 0xffffffff
mov rcx, rbp
call fcn.1800ff080
lea rcx, str.bignum
test eax, eax
je 0x1800e5db0
mov eax, 1
jmp 0x1800e5f02
mov rax, qword [0x1801902f8]
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rcx, dword [0x18018ff38]
test rax, rax
je 0x1800e5e3a
test ecx, ecx
jle 0x1800e5e3a
cmp ecx, dword [rax + 8]
jge 0x1800e5e3a
mov rax, qword [rax]
mov rdi, qword [rax + rcx*8]
test rdi, rdi
jne 0x1800e5e6f
lea ecx, [rdi + 0x18]
call sym.tcl86t.dll_hclpAlloc
mov rdi, rax
test rax, rax
je 0x1800e5f22
xor eax, eax
lea rcx, [0x18018ff38]
mov qword [rdi], rax
mov rdx, rdi
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rax
call fcn.180106bc0
cmp qword [rbx + 0x28], 0xffffffffffffffff
mov rax, qword [rbx + 0x20]
jne 0x1800e5e95
movups xmm0, xmmword [rax]
mov qword [r14], rdi
movups xmmword [rdi], xmm0
movsd xmm1, qword [rax + 0x10]
movsd qword [rdi + 0x10], xmm1
mov dword [rsi], 3
jmp 0x1800e5f00
mov qword [rdi + 0x10], rax
mov eax, dword [rbx + 0x28]
sar eax, 0x1e
mov dword [rdi + 8], eax
mov eax, dword [rbx + 0x28]
sar eax, 0xf
and eax, 0x7fff
mov qword [r14], rdi
mov dword [rdi + 4], eax
mov eax, dword [rbx + 0x28]
and eax, 0x7fff
mov dword [rdi], eax
mov dword [rsi], 3
jmp 0x1800e5f00
lea rax, [rbx + 0x20]
mov dword [rsi], 2
mov qword [r14], rax
jmp 0x1800e5f00
lea rax, [rbx + 0x20]
mov dword [rsi], 1
mov qword [r14], rax
jmp 0x1800e5f00
movsd xmm0, qword [rbx + 0x20]
add rbx, 0x20
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll__isnan]
test eax, eax
setne dil
add edi, 4
mov dword [rsi], edi
mov qword [r14], rbx
xor eax, eax
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov edx, 0x18
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3

Function at 0x1800e5f50
Capabilities:
Get thread local storage value

Disassembly:
mov edx, dword [rcx]
lea eax, [rdx - 1]
mov dword [rcx], eax
cmp edx, 1
jle sym.tcl86t.dll_hclFreeObj
ret
Function at 0x1800ecde0
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
push rdi
sub rsp, 0x20
mov rdx, qword [rcx + 0x20]
mov rdi, rcx
cmp dword [rdx + 0x18], 0
je 0x1800ecea0
mov rcx, qword [rdx + 0x10]
test rcx, rcx
je 0x1800ecea0
mov rdx, qword [rdx + 8]
mov qword [rsp + 0x30], rbx
call fcn.1800eba40
mov rbx, rax
mov rcx, qword [rax + 8]
test rcx, rcx
jne 0x1800ece2a
mov rcx, rax
call sym.tcl86t.dll_hcl_GetString
mov rcx, qword [rbx + 8]
mov eax, dword [rbx + 0x10]
mov r8, qword [0x18018f080]
mov dword [rdi + 0x10], eax
mov qword [rdi + 8], rcx
mov edx, dword [rbx]
mov qword [rbx + 8], r8
mov dword [rbx + 0x10], 0
lea eax, [rdx - 1]
mov dword [rbx], eax
cmp edx, 1
jg 0x1800ece6a
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x1800ece75
cmp qword [rax + 8], 0
je 0x1800ece75
mov rcx, rbx
call sym.tcl86t.dll_hclFreeObj
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov rcx, r8
test r8, r8
je 0x1800ece87
cmp rcx, r8
je 0x1800ece87
call sym.tcl86t.dll_hclpFree
mov rcx, rbx
mov dword [rbx + 0x10], 0xffffffff
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1801063c0
lea rcx, str.Called_UpdateStringOfFsPath_with_invalid_object
call sym.tcl86t.dll_hcl_Panic
int3

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

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rbx, rcx
mov rdi, rdx
lea rcx, [0x18018ff58]
call sym.tcl86t.dll_hcl_MutexLock
mov ecx, dword [0x18018fecc]
xor r8d, r8d
mov rax, qword [0x18018ff68]
test ecx, ecx
jle 0x1800f29f1
cmp qword [rax], rbx
je 0x1800f2a16
inc r8d
add rax, 0x18
cmp r8d, ecx
jl 0x1800f29e0
mov rcx, qword [0x18018ff58]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, rbx
cmp rdi, 3
jne 0x1800f2a3f
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp sym.tcl86t.dll_hclpFree
cmp dword [rax + 0xc], 0
jne 0x1800f2a4f
mov dword [rax + 0xc], 1
mov qword [rax + 0x10], rdi
mov rcx, qword [0x18018ff58]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp rax
mov rdx, rbx
lea rcx, str.Tcl_EventuallyFree_called_twice_for__p
call sym.tcl86t.dll_hcl_Panic
int3

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

Disassembly:
cmp dword [rcx + 8], 0
mov qword [rcx], 0
je sym.tcl86t.dll_hclpFree
ret

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

Disassembly:
sub dword [rcx + 8], 1
jne 0x1800f2ae0
cmp qword [rcx], 0
je sym.tcl86t.dll_hclpFree
ret
Function at 0x1800f4550
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
xor ebx, ebx
lea rdi, [rdx + 8]
mov rsi, rdx
mov rbp, rcx
cmp dword [rdx + 4], ebx
jle 0x1800f4590
mov rdx, qword [rdi]
test rdx, rdx
je 0x1800f4585
mov rcx, rbp
call fcn.1800c42a0
inc ebx
add rdi, 8
cmp ebx, dword [rsi + 4]
jl 0x1800f4575
mov rcx, rsi
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
jmp sym.tcl86t.dll_hclpFree
Function at 0x1800f53f0
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
push rdi
sub rsp, 0x20
mov rdi, rcx
test rcx, rcx
jne 0x1800f5406
xor eax, eax
add rsp, 0x20
pop rdi
ret
cmp dword [0x1801905e4], 0
jne 0x1800f5430
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x1801905ac], eax
mov dword [0x1801905e4], 1
cmp eax, 0xffffffff
je 0x1800f5590
jmp 0x1800f5436
mov eax, dword [0x1801905ac]
mov ecx, eax
mov qword [rsp + 0x30], rbx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rax, rax
jne 0x1800f5459
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1800f559d
test rbx, rbx
jne 0x1800f5466
call fcn.180105bb0
mov rbx, rax
mov edx, dword [rbx + 0x18]
mov qword [rsp + 0x38], rsi
test edx, edx
jne 0x1800f554a
mov rcx, qword [0x180190148]
call sym.tcl86t.dll_hcl_MutexLock
mov rdx, qword [0x18018f158]
mov esi, 0x320
mov eax, dword [rdx + 0x18]
test eax, eax
jle 0x1800f54d1
mov rcx, qword [rdx + 0x10]
cmp eax, esi
mov r8, rcx
cmovg eax, esi
add dword [rbx + 0x18], eax
sub dword [rdx + 0x18], eax
sub eax, 1
je 0x1800f54b9
nop dword [rax]
mov rcx, qword [rcx + 0x20]
sub eax, 1
jne 0x1800f54b0
mov rax, qword [rcx + 0x20]
mov qword [rdx + 0x10], rax
mov rax, qword [rbx + 0x10]
mov qword [rbx + 0x20], rcx
mov qword [rcx + 0x20], rax
mov qword [rbx + 0x10], r8
mov rcx, qword [0x180190148]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [rbx + 0x18]
test edx, edx
jne 0x1800f554a
mov dword [rbx + 0x18], esi
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor edx, edx
mov r8d, 0x9600
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r9, rax
test rax, rax
je 0x1800f55aa
mov r8, qword [rbx + 0x10]
lea rdx, [r9 + 0x95f0]
add rax, 0x95d0
mov ecx, 0x31f
mov qword [rbx + 0x20], rax
nop dword [rax + rax]
mov qword [rdx], r8
lea rdx, [rdx - 0x30]
mov r8, rax
sub rax, 0x30
sub ecx, 1
jns 0x1800f5530
mov edx, dword [rbx + 0x18]
mov qword [rbx + 0x10], r9
mov rax, qword [rbx + 0x10]
mov rsi, qword [rsp + 0x38]
mov rcx, qword [rax + 0x20]
mov qword [rbx + 0x10], rcx
lea ecx, [rdx - 1]
mov dword [rbx + 0x18], ecx
xor edx, edx
mov rcx, qword [0x18018f080]
mov rbx, qword [rsp + 0x30]
mov qword [rax + 8], rcx
lea rcx, str.procbody
mov qword [rax + 0x18], rcx
mov dword [rax], edx
mov dword [rax + 0x10], edx
mov qword [rax + 0x20], rdi
inc dword [rdi + 8]
add rsp, 0x20
pop rdi
ret
lea rcx, str.could_not_allocate_thread_local_storage
call sym.tcl86t.dll_hcl_Panic
int3
lea rcx, str.TlsGetValue_failed_from_TclpGetAllocCache
call sym.tcl86t.dll_hcl_Panic
int3
mov edx, esi
lea rcx, str.alloc:_could_not_allocate__d_new_objects
call sym.tcl86t.dll_hcl_Panic
int3

Function at 0x1800f5d90
Capabilities:
Get thread local storage value

Disassembly:
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x1800f5da0
mov r9d, 3
jmp fcn.1800f65e0
Function at 0x1800f6de0
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
add rcx, 8
je 0x1800f6df5
mov rax, qword [rcx + 0x28]
call qword [rax]
mov rdx, qword [rbx + 0x48]
test rdx, rdx
je 0x1800f6e53
mov ecx, dword [rdx]
lea eax, [rcx - 1]
mov dword [rdx], eax
cmp ecx, 1
jg 0x1800f6e53
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1800f6e28
cmp qword [rcx + 8], 0
je 0x1800f6e28
mov rcx, rax
call sym.tcl86t.dll_hclFreeObj
jmp 0x1800f6e53
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1800f6e43
cmp rcx, qword [0x18018f080]
je 0x1800f6e43
call sym.tcl86t.dll_hclpFree
mov rax, qword [rbx + 0x48]
mov dword [rax + 0x10], 0xffffffff
mov rcx, qword [rbx + 0x48]
call fcn.1801063c0
mov rcx, qword [rbx + 0x50]
test rcx, rcx
je 0x1800f6e61
call sym.tcl86t.dll_hclpFree
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp sym.tcl86t.dll_hclpFree

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

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x1800f7553
mov edx, dword [rcx]
lea eax, [rdx - 1]
mov dword [rcx], eax
cmp edx, 1
jg 0x1800f7553
call sym.tcl86t.dll_hclFreeObj
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x1800f756d
mov edx, dword [rcx]
lea eax, [rdx - 1]
mov dword [rcx], eax
cmp edx, 1
jg 0x1800f756d
call sym.tcl86t.dll_hclFreeObj
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x1800f7587
mov edx, dword [rcx]
lea eax, [rdx - 1]
mov dword [rcx], eax
cmp edx, 1
jg 0x1800f7587
call sym.tcl86t.dll_hclFreeObj
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x1800f75a1
mov edx, dword [rcx]
lea eax, [rdx - 1]
mov dword [rcx], eax
cmp edx, 1
jg 0x1800f75a1
call sym.tcl86t.dll_hclFreeObj
mov rcx, qword [rbx + 0x28]
mov edx, dword [rcx]
lea eax, [rdx - 1]
mov dword [rcx], eax
cmp edx, 1
jg 0x1800f75b6
call sym.tcl86t.dll_hclFreeObj
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp sym.tcl86t.dll_hclpFree

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

Disassembly:
push rbx
sub rsp, 0x20
mov rdx, qword [rcx + 0x10]
mov rbx, rcx
mov r8d, dword [rdx]
lea eax, [r8 - 1]
mov dword [rdx], eax
cmp r8d, 1
jg 0x1800f77c5
mov rax, qword [rcx + 0x10]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1800f779a
cmp qword [rcx + 8], 0
je 0x1800f779a
mov rcx, rax
call sym.tcl86t.dll_hclFreeObj
jmp 0x1800f77c5
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1800f77b5
cmp rcx, qword [0x18018f080]
je 0x1800f77b5
call sym.tcl86t.dll_hclpFree
mov rax, qword [rbx + 0x10]
mov dword [rax + 0x10], 0xffffffff
mov rcx, qword [rbx + 0x10]
call fcn.1801063c0
mov rcx, qword [rbx]
mov rax, qword [rbx + 0x18]
cmp rcx, rax
jne 0x1800f77de
mov rcx, rax
add rsp, 0x20
pop rbx
jmp sym.tcl86t.dll_hclpFree
mov rax, qword [rbx + 8]
cmp rax, 3
je 0x1800f77d4
test rax, rax
je 0x1800f77f5
add rsp, 0x20
pop rbx
jmp rax
add rsp, 0x20
pop rbx
ret
Function at 0x1800f8070
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov r14, rdx
mov r12, rcx
call sym.tcl86t.dll_hcl_NewObj
mov rdi, qword [r14]
mov r15, rax
test rdi, rdi
je 0x1800f8137
xor r13d, r13d
test rdi, rdi
je 0x1800f80c0
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rdi + rbx], r13b
jne 0x1800f80b5
jmp 0x1800f80c3
mov ebx, r13d
call fcn.180106220
mov rsi, rax
mov dword [rax], r13d
test ebx, ebx
jne 0x1800f80e2
mov rax, qword [0x18018f080]
mov ebx, r13d
mov qword [rsi + 8], rax
jmp 0x1800f8112
lea ebp, [rbx + 1]
mov ecx, ebp
call sym.tcl86t.dll_hclpAlloc
test rax, rax
jne 0x1800f80f5
test ebp, ebp
jne 0x1800f815e
mov r8d, ebx
mov rdx, rdi
mov rcx, rax
mov qword [rsi + 8], rax
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rsi + 8]
movsxd rcx, ebx
mov byte [rcx + rax], r13b
mov dword [rsi + 0x10], ebx
mov r8, rsi
mov rdx, r15
mov qword [rsi + 0x18], r13
xor ecx, ecx
call sym.tcl86t.dll_hcl_ListObjAppendElement
mov rdi, qword [r14 + 8]
add r14, 8
test rdi, rdi
jne 0x1800f80ae
mov rdx, r15
mov rcx, r12
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
jmp sym.tcl86t.dll_hcl_SetObjErrorCode
mov edx, ebp
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
Function at 0x1800f81a0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov rsi, qword [rcx + 0x2e0]
mov rbp, rdx
mov r15, rcx
test rsi, rsi
je 0x1800f837f
mov r8d, dword [rsi]
lea eax, [r8 - 1]
mov dword [rsi], eax
cmp r8d, 1
jg 0x1800f837f
mov rcx, qword [rsi + 8]
xor r14d, r14d
test rcx, rcx
je 0x1800f81ff
cmp rcx, qword [0x18018f080]
je 0x1800f81fb
call sym.tcl86t.dll_hclpFree
mov qword [rsi + 8], r14
mov rax, qword [rsi + 0x18]
mov dword [rsi + 0x10], 0xffffffff
test rax, rax
je 0x1800f82f8
cmp qword [rax + 8], r14
je 0x1800f82f8
mov rax, qword [0x1801902f8]
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rcx, dword [0x18018fec0]
mov rdi, r14
test rax, rax
je 0x1800f824b
test ecx, ecx
jle 0x1800f824b
cmp ecx, dword [rax + 8]
jge 0x1800f824b
mov rax, qword [rax]
mov rdi, qword [rax + rcx*8]
test rdi, rdi
jne 0x1800f827c
lea ecx, [rdi + 0x10]
call sym.tcl86t.dll_hclpAlloc
mov rdi, rax
test rax, rax
je 0x1800f83a2
xor eax, eax
lea rcx, [0x18018fec0]
mov qword [rdi], rax
mov rdx, rdi
mov qword [rdi + 8], rax
call fcn.180106bc0
mov eax, dword [rdi]
test eax, eax
jle 0x1800f8290
mov rax, qword [rdi + 8]
mov qword [rsi + 8], rax
mov qword [rdi + 8], rsi
jmp 0x1800f8300
inc eax
mov rcx, rsi
mov dword [rdi], eax
mov rax, qword [rsi + 0x18]
call qword [rax + ioctlsocket]
dec dword [rdi]
mov rcx, rsi
call fcn.1801063c0
inc dword [rdi]
mov rbx, qword [rdi + 8]
mov eax, dword [rdi]
test rbx, rbx
je 0x1800f82f2
nop word [rax + rax]
mov rax, qword [rbx + 8]
mov qword [rdi + 8], rax
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x1800f82df
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x1800f82df
mov rcx, rbx
call rdx
mov rcx, rbx
call fcn.1801063c0
mov rbx, qword [rdi + 8]
test rbx, rbx
jne 0x1800f82c0
mov eax, dword [rdi]
dec eax
mov dword [rdi], eax
jmp 0x1800f8300
mov rcx, rsi
call fcn.1801063c0
mov rax, qword [0x1801902f8]
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rcx, dword [0x18018ff28]
test rax, rax
je 0x1800f832b
test ecx, ecx
jle 0x1800f832b
cmp ecx, dword [rax + 8]
jge 0x1800f832b
mov rax, qword [rax]
mov r14, qword [rax + rcx*8]
test r14, r14
jne 0x1800f8355
lea ecx, [r14 + 8]
call sym.tcl86t.dll_hclpAlloc
mov r14, rax
test rax, rax
je 0x1800f83b4
xor eax, eax
lea rcx, [0x18018ff28]
mov rdx, r14
mov qword [r14], rax
call fcn.180106bc0
mov rax, qword [r14]
test rax, rax
je 0x1800f837f
mov rdx, rsi
mov rcx, rax
call qword [rax + 0x40]
mov rbx, rax
test rax, rax
je 0x1800f837f
mov rcx, qword [rax + 0x18]
call sym.tcl86t.dll_hclpFree
mov rcx, rbx
call sym.tcl86t.dll_hcl_DeleteHashEntry
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
mov qword [r15 + 0x2e0], rbp
inc dword [rbp]
mov rbp, qword [rsp + 0x48]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret
mov edx, reloc.WS2_32.dll_recv
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
mov edx, 8
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
Function at 0x1801057d0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rax, qword [0x1801902f8]
mov rsi, rcx
movsxd rdi, edx
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rdx, dword [rsi]
xor ebx, ebx
test rax, rax
je 0x18010580e
test edx, edx
jle 0x18010580e
cmp edx, dword [rax + 8]
jge 0x18010580e
mov rax, qword [rax]
mov rbx, qword [rax + rdx*8]
test rbx, rbx
jne 0x18010583e
mov ecx, edi
call sym.tcl86t.dll_hclpAlloc
mov rbx, rax
test rax, rax
jne 0x180105826
test edi, edi
jne 0x180105851
mov r8, rdi
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll_memset
mov rdx, rbx
mov rcx, rsi
call fcn.180106bc0
mov rsi, qword [rsp + 0x38]
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov edx, edi
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3