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

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rax, qword [rcx + 0x28]
xor edi, edi
mov rbx, rcx
test rax, rax
je 0x180006c9c
nop dword [rax + rax]
mov r8, qword [rax + 0x38]
mov rdx, rax
mov rcx, qword [rax + 0x40]
mov dword [rax + 0x18], edi
mov dword [rax + 8], edi
mov dword [rax], 0xffffffff
mov byte [rax + 4], dil
test r8, r8
je 0x180006c66
mov qword [r8 + 0x40], rcx
jmp 0x180006c6a
mov qword [rbx + 0x30], rcx
mov r8, qword [rax + 0x40]
mov rcx, qword [rax + 0x38]
test r8, r8
je 0x180006c7d
mov qword [r8 + 0x38], rcx
jmp 0x180006c81
mov qword [rbx + 0x28], rcx
mov qword [rax + 0x40], rdi
mov rcx, qword [rbx + 0x38]
mov qword [rax + 0x38], rcx
mov qword [rbx + 0x38], rax
mov rax, qword [rbx + 0x28]
test rax, rax
jne 0x180006c40
jmp 0x180006ca0
mov rdx, qword [rcx + 0x38]
test rdx, rdx
je 0x180006cc9
nop word [rax + rax]
mov rax, qword [rdx + 0x38]
mov rcx, rbx
mov qword [rbx + 0x38], rax
call fcn.180006f00
mov rdx, qword [rbx + 0x38]
test rdx, rdx
jne 0x180006cb0
mov rcx, rbx
mov qword [rbx + 0x30], rdi
mov dword [rbx + 0x20], 0xffffffff
mov qword [rbx], rdi
mov qword [rbx + 0x18], rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp sym.tcl86t.dll_hclpFree
Function at 0x180006f00
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
push r14
push r15
sub rsp, 0x20
mov rbx, qword [rdx + 0x48]
mov rbp, rdx
mov r14, rcx
test rbx, rbx
je 0x18000703a
lea r15, [0x180190200]
cmp dword [0x1801905e4], 0
mov rsi, qword [rbx]
jne 0x180006f5f
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x1801905ac], eax
mov dword [0x1801905e4], 1
cmp eax, 0xffffffff
je 0x180007091
jmp 0x180006f65
mov eax, dword [0x1801905ac]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
test rax, rax
jne 0x180006f83
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x18000709e
test rdi, rdi
jne 0x180006f90
call fcn.180105bb0
mov rdi, rax
movzx eax, byte [rbx - 0x10]
add rbx, 0xfffffffffffffff0
cmp al, 0xef
jne 0x180007078
cmp byte [rbx + 3], al
jne 0x180007078
movzx edx, byte [rbx + 1]
cmp edx, 0xa
jne 0x180006fce
mov eax, dword [rbx + 8]
sub dword [rdi + 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]
jmp 0x18000701f
lea rax, [rdx + rdx*4]
lea rcx, [rdi + 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 0x180006ff4
mov qword [rcx + 0x38], rbx
inc dword [rcx + 0x48]
inc r9d
cmp rdi, qword [0x18018f158]
mov dword [rcx + 0x40], r9d
je 0x18000701f
lea rax, [rdx + rdx*2]
cmp r9d, dword [r15 + rax*8 + 8]
jle 0x18000701f
mov r8d, dword [r15 + rax*8 + 0xc]
mov rcx, rdi
call fcn.180106700
mov rax, qword [r14 + 0x50]
mov rbx, rsi
add qword [rax + 0x108], 0xfffffffffffffd28
test rsi, rsi
jne 0x180006f32
xor eax, eax
mov rcx, rbp
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x38], rax
call sym.tcl86t.dll_hclpFree
mov rax, qword [r14 + 0x50]
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add qword [rax + 0x108], 0xfffffffffffffcd8
add rsp, 0x20
pop r15
pop r14
pop rdi
ret
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 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 0x180009b60
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov dword [rcx], 0
mov rcx, qword [rcx + 0x20]
call sym.tcl86t.dll_hclpFree
mov rcx, qword [rbx + 0x28]
call sym.tcl86t.dll_hclpFree
mov rcx, qword [rbx + 0x30]
add rsp, 0x20
pop rbx
jmp sym.tcl86t.dll_hclpFree
Function at 0x18000e290
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
cmp dword [rcx + 0x68], 0
mov rbx, rcx
je 0x18000e2d7
mov rcx, qword [rcx + 0x18]
test rcx, rcx
je 0x18000e2ad
call sym.tcl86t.dll_hclpFree
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x18000e2bb
call sym.tcl86t.dll_hclpFree
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x18000e2c9
call sym.tcl86t.dll_hclpFree
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x18000e2d7
call sym.tcl86t.dll_hclpFree
mov rcx, qword [rbx + 0x70]
test rcx, rcx
je 0x18000e2ea
add rsp, 0x20
pop rbx
jmp sym.tcl86t.dll_hclpFree
add rsp, 0x20
pop rbx
ret

Function at 0x18000e2f0
Capabilities:
Encode data using xor

Disassembly:
xor r8d, r8d
mov r9, rcx
mov r10d, r8d
test edx, edx
jle 0x18000e36d
cmp edx, 8
jb 0x18000e36d
mov ecx, edx
xorps xmm2, xmm2
xorps xmm1, xmm1
and ecx, 0x80000007
jge 0x18000e319
dec ecx
or ecx, 0xfffffff8
inc ecx
mov eax, edx
sub eax, ecx
movsxd rcx, eax
movdqu xmm0, xmmword [r9 + r8*4]
add r10d, 8
pxor xmm0, xmm2
movdqa xmm2, xmm0
movdqu xmm0, xmmword [r9 + r8*4 + 0x10]
add r8, 8
pxor xmm0, xmm1
movdqa xmm1, xmm0
cmp r8, rcx
jl 0x18000e320
pxor xmm1, xmm2
movdqa xmm0, xmm1
psrldq xmm0, 8
pxor xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 4
pxor xmm1, xmm0
movd r8d, xmm1
movsxd rcx, r10d
movsxd rax, edx
cmp rcx, rax
jge 0x18000e38c
nop dword [rax + rax]
xor r8d, dword [r9 + rcx*4]
inc rcx
cmp rcx, rax
jl 0x18000e380
mov eax, r8d
ret

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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
sub rsp, 0x20
mov rax, qword [rcx]
mov rsi, rcx
mov rbx, qword [rcx + 0x78]
mov rbp, qword [rax]
test rbx, rbx
je 0x18000f738
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], r14
xor r14d, r14d
nop
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x18000f6fa
mov edx, dword [rcx]
lea eax, [rdx - 1]
mov dword [rcx], eax
cmp edx, 1
jg 0x18000f6fa
call sym.tcl86t.dll_hclFreeObj
mov rcx, qword [rbx + 0x60]
test rcx, rcx
je 0x18000f708
call sym.tcl86t.dll_hclpFree
mov rcx, qword [rbx + 0x68]
mov rdi, qword [rbx + 0x28]
test rcx, rcx
je 0x18000f71e
call fcn.180011250
mov qword [rbx + 0x68], r14
mov rcx, rbx
call sym.tcl86t.dll_hclpFree
mov rbx, rdi
test rdi, rdi
jne 0x18000f6e0
mov r14, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
lea rcx, [rsi + 0x10]
call sym.tcl86t.dll_hcl_DeleteHashTable
mov rdx, qword [rsi + 8]
mov rcx, rbp
call sym.tcl86t.dll_hclStackFree
mov rdx, rsi
mov rcx, rbp
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
add rsp, 0x20
pop rsi
jmp sym.tcl86t.dll_hclStackFree
Function at 0x180011250
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
sub rsp, 0x20
xor ebp, ebp
mov qword [rsp + 0x38], r14
mov rsi, rcx
mov ebx, ebp
mov ecx, dword [rcx + 0x28]
nop
cmp ebx, ecx
jge 0x1800112d3
mov rax, qword [rsi]
movsxd rdx, ebx
inc ebx
mov r14, qword [rax + rdx*8]
test r14, r14
je 0x180011270
mov qword [rsp + 0x30], rdi
mov rdi, qword [r14]
nop dword [rax]
mov rcx, qword [r14 + 0x18]
mov edx, dword [rcx]
lea eax, [rdx - 1]
mov dword [rcx], eax
cmp edx, 1
jg 0x1800112a5
call sym.tcl86t.dll_hclFreeObj
mov qword [r14 + 0x18], rbp
test rdi, rdi
jne 0x1800112c6
mov edx, dword [rsi + 0x28]
cmp ebx, edx
jge 0x1800112ce
mov rax, qword [rsi]
movsxd rcx, ebx
inc ebx
mov rdi, qword [rax + rcx*8]
test rdi, rdi
je 0x1800112b1
mov r14, rdi
mov rdi, qword [rdi]
jmp 0x180011290
mov rdi, qword [rsp + 0x30]
mov rcx, rsi
call sym.tcl86t.dll_hcl_DeleteHashTable
mov rcx, rsi
mov r14, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
add rsp, 0x20
pop rsi
jmp sym.tcl86t.dll_hclpFree

Function at 0x1800134c0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
sub rsp, 0x20
mov rax, qword [0x1801902f8]
mov rbp, rcx
mov rsi, rdx
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd r8, dword [0x18018fa68]
xor ebx, ebx
test rax, rax
je 0x180013504
test r8d, r8d
jle 0x180013504
cmp r8d, dword [rax + 8]
jge 0x180013504
mov rax, qword [rax]
mov rbx, qword [rax + r8*8]
test rbx, rbx
jne 0x18001353d
lea ecx, [rbx + 0x20]
call sym.tcl86t.dll_hclpAlloc
mov rbx, rax
test rax, rax
je 0x1800135bc
xor eax, eax
lea rcx, [0x18018fa68]
mov qword [rbx], rax
mov rdx, rbx
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
call fcn.180106bc0
mov ecx, 0x30
mov qword [rsp + 0x30], rdi
call sym.tcl86t.dll_hclpAlloc
mov rdi, rax
test rax, rax
je 0x1800135ce
mov dword [rax], 0
mov qword [rax + 8], 0
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov eax, eax
lea rcx, [rbx + 0x18]
mov qword [rdi + 0x28], rax
call sym.tcl86t.dll_hcl_MutexLock
cmp qword [rbx], 0
jne 0x18001358e
mov qword [rbx], rdi
jmp 0x180013596
mov rax, qword [rbx + 8]
mov qword [rax + 8], rdi
mov rcx, qword [rbx + 0x18]
mov qword [rbx + 8], rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rbx, qword [rsp + 0x38]
mov rax, rdi
mov rdi, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x40]
add rsp, 0x20
pop rsi
ret
mov edx, 0x20
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
mov edx, 0x30
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
Function at 0x180013630
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
push r14
push r15
sub rsp, 0x20
mov rax, qword [0x1801902f8]
mov r14, rcx
mov ebx, edx
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd r8, dword [0x18018fa68]
xor r15d, r15d
mov edi, r15d
test rax, rax
je 0x180013676
test r8d, r8d
jle 0x180013676
cmp r8d, dword [rax + 8]
jge 0x180013676
mov rax, qword [rax]
mov rdi, qword [rax + r8*8]
test rdi, rdi
jne 0x1800136af
lea ecx, [rdi + 0x20]
call sym.tcl86t.dll_hclpAlloc
mov rdi, rax
test rax, rax
je 0x18001375b
xor eax, eax
lea rcx, [0x18018fa68]
mov qword [rdi], rax
mov rdx, rdi
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], rax
call fcn.180106bc0
lea rcx, [rdi + 0x18]
mov qword [rsp + 0x48], rsi
call sym.tcl86t.dll_hcl_MutexLock
cmp dword [rdi + 0x10], r15d
jne 0x1800136d1
mov rcx, qword [rdi + 0x18]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, ebx
jmp 0x18001371b
mov qword [rsp + 0x40], rbp
test r14, r14
mov ebp, r15d
mov dword [rdi + 0x10], r15d
cmovne ebp, ebx
mov dword [rdi + 0x14], 1
nop word [rax + rax]
mov rbx, qword [rdi]
test rbx, rbx
je 0x180013706
cmp dword [rbx], r15d
jne 0x18001372f
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x1800136f8
mov rcx, qword [rdi + 0x18]
mov dword [rdi + 0x14], r15d
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, ebp
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret
test rbx, rbx
je 0x180013706
mov dword [rbx], r15d
mov rcx, qword [rdi + 0x18]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [rbx + 0x18]
mov r8d, ebp
mov rdx, r14
call qword [rbx + reloc.WS2_32.dll_recv]
lea rcx, [rdi + 0x18]
mov ebp, eax
call sym.tcl86t.dll_hcl_MutexLock
jmp 0x1800136f0
mov edx, 0x20
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
Function at 0x180013770
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
mov rax, qword [0x1801902f8]
mov rdi, rcx
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rcx, dword [0x18018fa68]
xor ebx, ebx
test rax, rax
je 0x1800137aa
test ecx, ecx
jle 0x1800137aa
cmp ecx, dword [rax + 8]
jge 0x1800137aa
mov rax, qword [rax]
mov rbx, qword [rax + rcx*8]
test rbx, rbx
jne 0x1800137e3
lea ecx, [rbx + 0x20]
call sym.tcl86t.dll_hclpAlloc
mov rbx, rax
test rax, rax
je 0x180013866
xor eax, eax
lea rcx, [0x18018fa68]
mov qword [rbx], rax
mov rdx, rbx
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
call fcn.180106bc0
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov eax, eax
cmp qword [rdi + 0x28], rax
jne 0x180013878
lea rcx, [rbx + 0x18]
mov qword [rsp + 0x30], rsi
call sym.tcl86t.dll_hcl_MutexLock
mov rdx, qword [rbx]
test rdx, rdx
je 0x180013845
mov rax, rdx
mov rcx, rdx
cmp rax, rdi
je 0x180013824
mov rcx, rax
mov rax, qword [rax + 8]
test rax, rax
jne 0x180013811
jmp 0x180013885
test rax, rax
je 0x180013885
mov rax, qword [rdi + 8]
cmp rdi, rdx
jne 0x180013837
mov qword [rbx], rax
jmp 0x18001383b
mov qword [rcx + 8], rax
cmp rdi, qword [rbx + 8]
jne 0x180013845
mov qword [rbx + 8], rcx
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, rdi
mov rsi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp sym.tcl86t.dll_hclpFree
mov edx, 0x20
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
lea rcx, str.Tcl_AsyncDelete:_async_handler_deleted_by_the_wrong_thread
call sym.tcl86t.dll_hcl_Panic
int3
lea rcx, str.Tcl_AsyncDelete:_cannot_find_async_handler
call sym.tcl86t.dll_hcl_Panic
int3

Function at 0x1800138a0
Capabilities:
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov rax, qword [0x1801902f8]
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rcx, dword [0x18018fa68]
xor ebx, ebx
test rax, rax
je 0x1800138d3
test ecx, ecx
jle 0x1800138d3
cmp ecx, dword [rax + 8]
jge 0x1800138d3
mov rax, qword [rax]
mov rbx, qword [rax + rcx*8]
test rbx, rbx
jne 0x180013908
lea ecx, [rbx + 0x20]
call sym.tcl86t.dll_hclpAlloc
mov rbx, rax
test rax, rax
je 0x180013911
xor eax, eax
lea rcx, [0x18018fa68]
mov qword [rbx], rax
mov rdx, rbx
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
call fcn.180106bc0
mov eax, dword [rbx + 0x10]
add rsp, 0x20
pop rbx
ret
mov edx, 0x20
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
Function at 0x180015e70
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push r14
push r15
sub rsp, 0x70
mov rax, qword [0x18018f008]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov rax, qword [0x1801902f8]
mov rsi, rcx
mov rbp, r8
mov r14, rdx
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd r9, dword [0x18018fad0]
xor r15d, r15d
mov ebx, r15d
test rax, rax
je 0x180015ece
test r9d, r9d
jle 0x180015ece
cmp r9d, dword [rax + 8]
jge 0x180015ece
mov rax, qword [rax]
mov rbx, qword [rax + r9*8]
test rbx, rbx
jne 0x180015efa
lea ecx, [rbx + 4]
call sym.tcl86t.dll_hclpAlloc
mov rbx, rax
test rax, rax
je 0x180015fec
xor eax, eax
lea rcx, [0x18018fad0]
mov rdx, rbx
mov dword [rbx], eax
call fcn.180106bc0
mov ecx, reloc.WS2_32.dll_recv
mov qword [rsp + 0x98], rdi
call sym.tcl86t.dll_hclpAlloc
mov rdi, rax
test rax, rax
je 0x180015ffe
mov r8d, dword [rbx]
lea rdx, str.Assoc_Data_Key__d
lea rcx, [rsp + 0x28]
call fcn.180001060
inc dword [rbx]
mov rax, qword [rsi + 0x1b8]
test rax, rax
jne 0x180015fa6
lea ecx, [rax + 0x58]
call sym.tcl86t.dll_hclpAlloc
mov rcx, rax
test rax, rax
je 0x180016010
mov qword [rsi + 0x1b8], rax
add rax, 8
mov qword [rcx], rax
mov qword [rcx + 0x10], r15
mov qword [rcx + 0x20], r15
mov qword [rax], r15
lea rax, [fcn.18009de20]
mov qword [rcx + 0x18], r15
mov qword [rcx + 0x40], rax
lea rax, [fcn.18009de40]
mov qword [rcx + 0x48], rax
mov qword [rcx + 0x28], 4
mov dword [rcx + 0x30], reloc.WS2_32.dll_inet_ntoa
mov dword [rcx + 0x34], 0x1c
mov qword [rcx + 0x38], 3
mov rax, qword [rsi + 0x1b8]
lea r8, [rsp + 0x20]
mov rcx, rax
lea rdx, [rsp + 0x28]
call qword [rax + 0x48]
mov qword [rdi], r14
mov qword [rdi + 8], rbp
mov qword [rax + 0x18], rdi
mov rdi, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.180146240
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rsi
ret
mov edx, 4
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
mov edx, reloc.WS2_32.dll_recv
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
mov edx, 0x58
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3

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

Disassembly:
mov eax, dword [rcx + 0x1a8]
test al, 1
jne 0x1800162c5
inc dword [rcx + 0x188]
lea rdx, [0x1800162d0]
or eax, 1
mov dword [rcx + 0x1a8], eax
jmp sym.tcl86t.dll_hcl_EventuallyFree
ret

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

Disassembly:
dec dword [rcx + 0x10]
cmp dword [rcx + 0x10], 0
jle sym.tcl86t.dll_hclpFree
ret
Function at 0x180019e60
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rdi, rcx
test rcx, rcx
je 0x180019e9e
mov r8, qword [rcx + 0x4a0]
mov ecx, dword [r8 + 0x18]
test ecx, ecx
je 0x180019e9e
mov rdx, qword [r8 + 0x10]
mov rax, qword [rdx + 0x20]
mov qword [r8 + 0x10], rax
lea eax, [rcx - 1]
mov dword [r8 + 0x18], eax
jmp 0x180019fec
cmp dword [0x1801905e4], 0
jne 0x180019ec8
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x1801905ac], eax
mov dword [0x1801905e4], 1
cmp eax, 0xffffffff
je 0x18001a047
jmp 0x180019ece
mov eax, dword [0x1801905ac]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rax, rax
jne 0x180019eec
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x18001a054
test rbx, rbx
jne 0x180019ef9
call fcn.180105bb0
mov rbx, rax
mov ecx, dword [rbx + 0x18]
test ecx, ecx
jne 0x180019fda
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 0x180019f61
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 0x180019f49
nop word [rax + rax]
mov rcx, qword [rcx + 0x20]
sub eax, 1
jne 0x180019f40
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 ecx, dword [rbx + 0x18]
test ecx, ecx
jne 0x180019fda
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 0x18001a061
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 0x180019fc0
mov ecx, dword [rbx + 0x18]
mov qword [rbx + 0x10], r9
mov rdx, qword [rbx + 0x10]
mov rax, qword [rdx + 0x20]
mov qword [rbx + 0x10], rax
lea eax, [rcx - 1]
mov dword [rbx + 0x18], eax
mov rbx, qword [rsp + 0x30]
lea rax, [0x18001a070]
mov rsi, qword [rsp + 0x38]
mov qword [rdx], rax
mov rax, qword [rdi + 0xa8]
mov qword [rdx + 8], rax
xor eax, eax
mov qword [rdx + 0x10], rax
mov qword [rdx + 0x18], rax
mov qword [rdx + 0x20], rax
mov rax, qword [rdi + 0x1c0]
mov rcx, qword [rax + 0x20]
mov qword [rdx + 0x28], rcx
mov rax, qword [rdi + 0x1c0]
mov qword [rax + 0x20], rdx
mov rax, qword [rdi + 0xc0]
mov qword [rdi + 0xa8], rax
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 0x18001e250
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
push rdi
sub rsp, 0x20
cmp qword [rcx + 0x4c0], 0
mov rdi, rcx
jne 0x18001e42e
mov r8, qword [rcx + 0x4a0]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rsi
mov ecx, dword [r8 + 0x18]
test ecx, ecx
je 0x18001e298
mov rdx, qword [r8 + 0x10]
mov rax, qword [rdx + 0x20]
mov qword [r8 + 0x10], rax
lea eax, [rcx - 1]
mov dword [r8 + 0x18], eax
jmp 0x18001e3dc
cmp dword [0x1801905e4], 0
jne 0x18001e2c2
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x1801905ac], eax
mov dword [0x1801905e4], 1
cmp eax, 0xffffffff
je 0x18001e434
jmp 0x18001e2c8
mov eax, dword [0x1801905ac]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rax, rax
jne 0x18001e2e6
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x18001e441
test rbx, rbx
jne 0x18001e2f3
call fcn.180105bb0
mov rbx, rax
mov ecx, dword [rbx + 0x18]
test ecx, ecx
jne 0x18001e3ca
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 0x18001e355
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 0x18001e33d
mov rcx, qword [rcx + 0x20]
sub eax, 1
jne 0x18001e334
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 ecx, dword [rbx + 0x18]
test ecx, ecx
jne 0x18001e3ca
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 0x18001e44e
mov r8, qword [rbx + 0x10]
lea rdx, [r9 + 0x95f0]
add rax, 0x95d0
mov ecx, 0x31f
mov qword [rbx + 0x20], rax
nop dword [rax]
mov qword [rdx], r8
lea rdx, [rdx - 0x30]
mov r8, rax
sub rax, 0x30
sub ecx, 1
jns 0x18001e3b0
mov ecx, dword [rbx + 0x18]
mov qword [rbx + 0x10], r9
mov rdx, qword [rbx + 0x10]
mov rax, qword [rdx + 0x20]
mov qword [rbx + 0x10], rax
lea eax, [rcx - 1]
mov dword [rbx + 0x18], eax
mov rbx, qword [rsp + 0x30]
lea rax, [0x180019d10]
mov rsi, qword [rsp + 0x38]
mov qword [rdx], rax
xor eax, eax
mov qword [rdx + 8], rax
mov qword [rdx + 0x10], rax
mov qword [rdx + 0x18], rax
mov qword [rdx + 0x20], rax
mov rax, qword [rdi + 0x1c0]
mov rcx, qword [rax + 0x20]
mov qword [rdx + 0x28], rcx
mov rax, qword [rdi + 0x1c0]
mov qword [rax + 0x20], rdx
mov rax, qword [rdi + 0x1c0]
mov rcx, qword [rax + 0x20]
mov qword [rdi + 0x4c0], rcx
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