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

Disassembly:
test rcx, rcx
je 0x1800a564c
mov qword [rsp + 0x20], rbx
push rbp
sub rsp, 0x20
mov qword [rsp + 0x40], r14
mov rbp, rdx
mov qword [rsp + 0x30], rsi
lea r14, [0x180190200]
mov qword [rsp + 0x38], rdi
mov rbx, rcx
nop
mov eax, dword [rbx]
test al, 3
je 0x1800a550f
mov rsi, qword [rbx + 0x28]
jmp 0x1800a5627
mov rcx, qword [rbx + 0x10]
or eax, 1
mov rdx, rbp
mov dword [rbx], eax
call qword [rbx + ioctlsocket]
and dword [rbx], 0xfffffffe
test byte [rbx], 2
mov rsi, qword [rbx + 0x28]
je 0x1800a5627
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x1800a553d
mov rcx, qword [rbx + 0x10]
call rax
cmp dword [0x1801905e4], 0
jne 0x1800a5567
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x1801905ac], eax
mov dword [0x1801905e4], 1
cmp eax, 0xffffffff
je 0x1800a5666
jmp 0x1800a556d
mov eax, dword [0x1801905ac]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
test rax, rax
jne 0x1800a558b
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1800a5673
test rdi, rdi
jne 0x1800a5598
call fcn.180105bb0
mov rdi, rax
movzx eax, byte [rbx - 0x10]
add rbx, 0xfffffffffffffff0
cmp al, 0xef
jne 0x1800a564d
cmp byte [rbx + 3], al
jne 0x1800a564d
movzx edx, byte [rbx + 1]
cmp edx, 0xa
jne 0x1800a55d6
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 0x1800a5627
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 0x1800a55fc
mov qword [rcx + 0x38], rbx
inc dword [rcx + 0x48]
inc r9d
cmp rdi, qword [0x18018f158]
mov dword [rcx + 0x40], r9d
je 0x1800a5627
lea rax, [rdx + rdx*2]
cmp r9d, dword [r14 + rax*8 + 8]
jle 0x1800a5627
mov r8d, dword [r14 + rax*8 + 0xc]
mov rcx, rdi
call fcn.180106700
mov rbx, rsi
test rsi, rsi
jne 0x1800a5500
mov rdi, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rbp
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 0x1800a5760
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov r10d, edx
sub r10d, 1
je 0x1800a5782
cmp r10d, 1
jne 0x1800a5825
mov rbx, qword [rcx + 0x320]
jmp 0x1800a5789
mov rbx, qword [rcx + 0x308]
test rbx, rbx
je 0x1800a581f
cmp qword [rbx + 8], r8
jne 0x1800a579e
cmp qword [rbx + 0x10], r9
je 0x1800a57ad
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x1800a5792
add rsp, 0x20
pop rbx
ret
mov eax, dword [rbx]
test al, 2
jne 0x1800a581f
mov r8, qword [rbx + 0x20]
or eax, 2
mov dword [rbx], eax
test r8, r8
jne 0x1800a57e5
sub edx, 1
je 0x1800a57d8
cmp edx, 1
jne 0x1800a57ed
mov rax, qword [rbx + 0x28]
mov qword [rcx + 0x320], rax
jmp 0x1800a57ed
mov rax, qword [rbx + 0x28]
mov qword [rcx + 0x308], rax
jmp 0x1800a57ed
mov rax, qword [rbx + 0x28]
mov qword [r8 + 0x28], rax
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x1800a57fe
mov rax, qword [rbx + 0x20]
mov qword [rcx + 0x20], rax
test byte [rbx], 1
jne 0x1800a581f
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x1800a5812
mov rcx, qword [rbx + 0x10]
call rax
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp sym.tcl86t.dll_hclpFree
add rsp, 0x20
pop rbx
ret
lea rcx, str.unknown_type_of_resource_limit
call sym.tcl86t.dll_hcl_Panic
int3

Function at 0x1800a70f0
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 rdi, rcx
mov esi, edx
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rcx, dword [0x18018fdf0]
xor ebx, ebx
test rax, rax
je 0x1800a7131
test ecx, ecx
jle 0x1800a7131
cmp ecx, dword [rax + 8]
jge 0x1800a7131
mov rax, qword [rax]
mov rbx, qword [rax + rcx*8]
test rbx, rbx
jne 0x1800a717e
lea ecx, [rbx + 0x48]
call sym.tcl86t.dll_hclpAlloc
mov rbx, rax
test rax, rax
je 0x1800a71e2
xor eax, eax
lea rcx, [0x18018fdf0]
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
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x40], rax
call fcn.180106bc0
test rdi, rdi
mov eax, 0xffffffff
mov ecx, 1
cmovne eax, ecx
cmp esi, 2
je 0x1800a71cb
cmp esi, 4
je 0x1800a71b4
cmp esi, 8
jne 0x1800a71d2
mov dword [rbx + 0x38], eax
mov qword [rbx + 0x30], rdi
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rbx + 0x28], eax
mov qword [rbx + 0x20], rdi
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov dword [rbx + 0x18], eax
mov qword [rbx + 0x10], rdi
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov edx, 0x48
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
Function at 0x1800a7200
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 esi, ecx
xor edi, edi
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, rax
mov ebx, edi
movsxd rax, dword [0x18018fdf0]
test rdx, rdx
je 0x1800a7246
test eax, eax
jle 0x1800a7246
cmp eax, dword [rdx + 8]
jge 0x1800a7246
mov rcx, rax
mov rax, qword [rdx]
mov rbx, qword [rax + rcx*8]
test rbx, rbx
jne 0x1800a7293
lea ecx, [rbx + 0x48]
call sym.tcl86t.dll_hclpAlloc
mov rbx, rax
test rax, rax
je 0x1800a73a5
xor eax, eax
lea rcx, [0x18018fdf0]
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
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x40], rax
call fcn.180106bc0
cmp esi, 2
je 0x1800a7353
cmp esi, 4
je 0x1800a72fd
cmp esi, 8
jne 0x1800a7392
cmp dword [rbx + 0x38], edi
jne 0x1800a72e6
mov ecx, esi
mov dword [rbx + 0x38], 0xffffffff
call sym.tcl86t.dll_hclpGetDefaultStdChannel
mov qword [rbx + 0x30], rax
test rax, rax
je 0x1800a72e6
mov dword [rbx + 0x38], 1
mov rax, qword [rax]
mov rcx, qword [rax + 0xd0]
mov rax, qword [rcx]
cmp qword [rax], rdi
je 0x1800a73b7
inc dword [rax + 0x48]
mov rdi, qword [rbx + 0x30]
mov rax, rdi
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp dword [rbx + 0x28], edi
jne 0x1800a733c
mov ecx, 4
mov dword [rbx + 0x28], 0xffffffff
call sym.tcl86t.dll_hclpGetDefaultStdChannel
mov qword [rbx + 0x20], rax
test rax, rax
je 0x1800a733c
mov dword [rbx + 0x28], 1
mov rax, qword [rax]
mov rcx, qword [rax + 0xd0]
mov rax, qword [rcx]
cmp qword [rax], rdi
je 0x1800a73c4
inc dword [rax + 0x48]
mov rdi, qword [rbx + 0x20]
mov rax, rdi
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp dword [rbx + 0x18], edi
jne 0x1800a738e
mov ecx, 2
mov dword [rbx + 0x18], 0xffffffff
call sym.tcl86t.dll_hclpGetDefaultStdChannel
mov qword [rbx + 0x10], rax
test rax, rax
je 0x1800a738e
mov dword [rbx + 0x18], 1
mov rax, qword [rax]
mov rcx, qword [rax + 0xd0]
mov rax, qword [rcx]
cmp qword [rax], rdi
je 0x1800a73d1
inc dword [rax + 0x48]
mov rdi, qword [rbx + 0x10]
mov rbx, qword [rsp + 0x30]
mov rax, rdi
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov edx, 0x48
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
lea rcx, str.Tcl_RegisterChannel:_channel_without_name
call sym.tcl86t.dll_hcl_Panic
int3
lea rcx, str.Tcl_RegisterChannel:_channel_without_name
call sym.tcl86t.dll_hcl_Panic
int3
lea rcx, str.Tcl_RegisterChannel:_channel_without_name
call sym.tcl86t.dll_hcl_Panic
int3
Function at 0x1800a7440
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov r9, qword [rcx]
xor eax, eax
mov rbx, qword [r9 + 0x50]
test rbx, rbx
je 0x1800a7529
cmp qword [rbx], rdx
jne 0x1800a7463
cmp qword [rbx + 8], r8
je 0x1800a7475
mov rax, rbx
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x1800a7458
add rsp, 0x20
pop rbx
ret
mov rcx, qword [rbx + 0x10]
test rax, rax
jne 0x1800a7484
mov qword [r9 + 0x50], rcx
jmp 0x1800a7488
mov qword [rax + 0x10], rcx
cmp dword [0x1801905e4], 0
jne 0x1800a74b2
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x1801905ac], eax
mov dword [0x1801905e4], 1
cmp eax, 0xffffffff
je 0x1800a75aa
jmp 0x1800a74b8
mov eax, dword [0x1801905ac]
mov ecx, eax
mov qword [rsp + 0x30], rdi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
test rax, rax
jne 0x1800a74db
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1800a75b7
test rdi, rdi
jne 0x1800a74e8
call fcn.180105bb0
mov rdi, rax
movzx eax, byte [rbx - 0x10]
add rbx, 0xfffffffffffffff0
cmp al, 0xef
jne 0x1800a7591
cmp byte [rbx + 3], al
jne 0x1800a7591
movzx edx, byte [rbx + 1]
cmp edx, 0xa
jne 0x1800a752f
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]
mov rdi, qword [rsp + 0x30]
add rsp, 0x20
pop rbx
ret
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 0x1800a7555
mov qword [rcx + 0x38], rbx
inc dword [rcx + 0x48]
inc r9d
cmp rdi, qword [0x18018f158]
mov dword [rcx + 0x40], r9d
je 0x1800a7524
lea rax, [rdx + rdx*2]
lea rcx, [0x180190200]
cmp r9d, dword [rcx + rax*8 + 8]
jle 0x1800a7524
mov r8d, dword [rcx + rax*8 + 0xc]
mov rcx, rdi
mov rdi, qword [rsp + 0x30]
add rsp, 0x20
pop rbx
jmp fcn.180106700
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 0x1800a78b0
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 rdi, qword [rcx]
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rcx, dword [0x18018fdf0]
xor esi, esi
mov ebx, esi
test rax, rax
je 0x1800a78f1
test ecx, ecx
jle 0x1800a78f1
cmp ecx, dword [rax + 8]
jge 0x1800a78f1
mov rax, qword [rax]
mov rbx, qword [rax + rcx*8]
test rbx, rbx
jne 0x1800a793e
lea ecx, [rbx + 0x48]
call sym.tcl86t.dll_hclpAlloc
mov rbx, rax
test rax, rax
je 0x1800a79d1
xor eax, eax
lea rcx, [0x18018fdf0]
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
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x40], rax
call fcn.180106bc0
cmp dword [rbx + 0x18], 1
jne 0x1800a796f
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x1800a796f
cmp rdi, qword [rax]
jne 0x1800a796f
cmp dword [rdi + 0x48], 2
jge 0x1800a79c1
mov dword [rdi + 0x48], esi
mov qword [rbx + 0x10], rsi
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp dword [rbx + 0x28], 1
jne 0x1800a79a0
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x1800a79a0
cmp rdi, qword [rax]
jne 0x1800a79a0
cmp dword [rdi + 0x48], 2
jge 0x1800a79c1
mov dword [rdi + 0x48], esi
mov qword [rbx + 0x20], rsi
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp dword [rbx + 0x38], 1
jne 0x1800a79c1
mov rax, qword [rbx + 0x30]
test rax, rax
je 0x1800a79c1
cmp rdi, qword [rax]
jne 0x1800a79c1
cmp dword [rdi + 0x48], 2
jge 0x1800a79c1
mov dword [rdi + 0x48], esi
mov qword [rbx + 0x30], rsi
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov edx, 0x48
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3

Function at 0x1800a79f0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], 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 [0x18018fdf0]
xor ebx, ebx
test rax, rax
je 0x1800a7a2a
test ecx, ecx
jle 0x1800a7a2a
cmp ecx, dword [rax + 8]
jge 0x1800a7a2a
mov rax, qword [rax]
mov rbx, qword [rax + rcx*8]
test rbx, rbx
jne 0x1800a7a73
lea ecx, [rbx + 0x48]
call sym.tcl86t.dll_hclpAlloc
mov rbx, rax
test rax, rax
je 0x1800a7aa2
xor eax, eax
lea rcx, [0x18018fdf0]
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
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x40], rax
call fcn.180106bc0
cmp rdi, qword [rbx + 0x10]
je 0x1800a7a92
cmp rdi, qword [rbx + 0x20]
je 0x1800a7a92
cmp rdi, qword [rbx + 0x30]
je 0x1800a7a92
xor eax, eax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov rbx, qword [rsp + 0x30]
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov edx, 0x48
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
Function at 0x1800a88d0
Capabilities:
Allocate thread local storage
Get thread local storage value

Disassembly:
sub rsp, 0x28
mov eax, dword [rcx + 0x38]
test eax, eax
je 0x1800a88f8
sub eax, 1
mov dword [rcx + 0x38], eax
jne 0x1800a88f3
cmp qword [rcx + 0x10], 0
jne 0x1800a88f3
add rsp, 0x28
jmp sym.tcl86t.dll_hclpFree
add rsp, 0x28
ret
lea rcx, str.Channel_released_more_than_preserved
call sym.tcl86t.dll_hcl_Panic
int3

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

Disassembly:
mov r9d, dword [rdx]
mov eax, 1
cmp r9d, eax
cmovle eax, r8d
test eax, eax
jne 0x1800a8d85
mov eax, dword [rdx + 0xc]
sub eax, 0x10
cmp eax, dword [rcx + 0xa8]
jne 0x1800a8d85
mov eax, dword [rcx + 8]
test al, 2
je 0x1800a8d5f
cmp qword [rcx + 0x80], 0
jne 0x1800a8d52
mov qword [rcx + 0x80], rdx
mov qword [rcx + 0x88], rdx
jmp 0x1800a8d6e
cmp qword [rcx + 0x78], 0
jne 0x1800a8d5f
mov qword [rcx + 0x78], rdx
jmp 0x1800a8d6e
test al, 4
je 0x1800a8d85
cmp qword [rcx + 0x60], 0
jne 0x1800a8d85
mov qword [rcx + 0x60], rdx
mov dword [rdx + 8], reloc.WS2_32.dll_recv
mov dword [rdx + 4], reloc.WS2_32.dll_recv
mov qword [rdx + 0x10], 0
ret
lea eax, [r9 - 1]
mov dword [rdx], eax
test eax, eax
jne 0x1800a8d97
mov rcx, rdx
jmp sym.tcl86t.dll_hclpFree
ret
Function at 0x1800a9730
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rax, qword [rcx]
mov rbx, qword [rax + 0xd0]
mov rax, qword [0x1801902f8]
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rcx, dword [0x18018fdf0]
xor edi, edi
test rax, rax
je 0x1800a9771
test ecx, ecx
jle 0x1800a9771
cmp ecx, dword [rax + 8]
jge 0x1800a9771
mov rax, qword [rax]
mov rdi, qword [rax + rcx*8]
test rdi, rdi
jne 0x1800a97be
lea ecx, [rdi + 0x48]
call sym.tcl86t.dll_hclpAlloc
mov rdi, rax
test rax, rax
je 0x1800a985a
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 [rbx]
test rcx, rcx
je 0x1800a986c
cmp rdx, rcx
jne 0x1800a97e0
mov rax, qword [rdx + 0xd8]
mov qword [rdi + 8], rax
jmp 0x1800a9814
test rcx, rcx
je 0x1800a986c
nop dword [rax]
mov rax, qword [rcx + 0xd8]
cmp rax, rdx
je 0x1800a9806
mov rcx, rax
test rax, rax
je 0x1800a986c
jmp 0x1800a97f0
mov rax, qword [rdx + 0xd8]
mov qword [rcx + 0xd8], rax
mov qword [rdx + 0xd8], 0
nop
mov rcx, qword [rbx + 0x10]
mov rax, qword [rcx + 8]
sub rax, 4
cmp rax, 1
ja 0x1800a9846
mov rax, qword [rcx + 0x78]
test rax, rax
je 0x1800a9846
mov rcx, qword [rbx + 8]
mov edx, 1
call rax
mov rbx, qword [rbx + 0x20]
test rbx, rbx
jne 0x1800a9820
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
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
Function at 0x1800a9880
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
mov rbx, qword [rcx]
mov rax, qword [0x1801902f8]
mov rbx, qword [rbx + 0xd0]
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rcx, dword [0x18018fdf0]
xor edi, edi
test rax, rax
je 0x1800a98c1
test ecx, ecx
jle 0x1800a98c1
cmp ecx, dword [rax + 8]
jge 0x1800a98c1
mov rax, qword [rax]
mov rdi, qword [rax + rcx*8]
test rdi, rdi
jne 0x1800a990e
lea ecx, [rdi + 0x48]
call sym.tcl86t.dll_hclpAlloc
mov rdi, rax
test rax, rax
je 0x1800a997c
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 qword [rsp + 0x30], rsi
mov rsi, qword [rbx]
cmp qword [rsi + 0xd8], 0
jne 0x1800a998e
mov rax, qword [rdi + 8]
mov qword [rsi + 0xd8], rax
mov qword [rdi + 8], rsi
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov eax, eax
mov qword [rsi + 0xe0], rax
nop
mov rcx, qword [rbx + 0x10]
mov rax, qword [rcx + 8]
sub rax, 4
cmp rax, 1
ja 0x1800a9963
mov rax, qword [rcx + 0x78]
test rax, rax
je 0x1800a9963
mov rcx, qword [rbx + 8]
xor edx, edx
call rax
mov rbx, qword [rbx + 0x20]
test rbx, rbx
jne 0x1800a9940
mov rsi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov edx, 0x48
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
lea rcx, str.SpliceChannel:_trying_to_add_channel_used_in_different_list
call sym.tcl86t.dll_hcl_Panic
int3
Function at 0x1800aa140
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 rsi, rcx
mov ecx, dword [rax]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
movsxd rdx, dword [0x18018fdf0]
xor ebp, ebp
mov ebx, ebp
test rax, rax
je 0x1800aa181
test edx, edx
jle 0x1800aa181
cmp edx, dword [rax + 8]
jge 0x1800aa181
mov rax, qword [rax]
mov rbx, qword [rax + rdx*8]
test rbx, rbx
jne 0x1800aa1ce
lea ecx, [rbx + 0x48]
call sym.tcl86t.dll_hclpAlloc
mov rbx, rax
test rax, rax
je 0x1800aa2e8
xor eax, eax
lea rcx, [0x18018fdf0]
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
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x40], rax
call fcn.180106bc0
mov rsi, qword [rsi]
mov qword [rsp + 0x30], rdi
mov rcx, qword [rsi + 0xb0]
mov rdi, qword [rsi + 0xc8]
call sym.tcl86t.dll_hcl_DeleteTimerHandler
mov rax, qword [rbx]
test rax, rax
je 0x1800aa20a
mov rcx, qword [rax]
test rcx, rcx
je 0x1800aa201
cmp qword [rcx], rdi
jne 0x1800aa201
mov qword [rax], rbp
mov rax, qword [rax + 8]
test rax, rax
jne 0x1800aa1f1
mov rcx, qword [rsi + 0x90]
test rcx, rcx
je 0x1800aa227
mov rbx, qword [rcx + 0x20]
call sym.tcl86t.dll_hclpFree
mov rcx, rbx
test rbx, rbx
jne 0x1800aa216
mov rcx, qword [rsi + 0xb8]
mov qword [rsi + 0x90], rbp
call fcn.1800b0620
mov rcx, qword [rsi + 0xc0]
call fcn.1800b0620
mov rbx, qword [rsi + 0xa0]
mov dword [rsi + 0x98], ebp
test rbx, rbx
je 0x1800aa2cc
nop dword [rax + rax]
mov rcx, qword [rbx + 8]
mov rdi, qword [rbx + 0x20]
mov edx, dword [rcx]
lea eax, [rdx - 1]
mov dword [rcx], eax
cmp edx, 1
jg 0x1800aa2bc
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1800aa291
cmp qword [rcx + 8], rbp
je 0x1800aa291
mov rcx, rax
call sym.tcl86t.dll_hclFreeObj
jmp 0x1800aa2bc
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1800aa2ac
cmp rcx, qword [0x18018f080]
je 0x1800aa2ac
call sym.tcl86t.dll_hclpFree
mov rax, qword [rbx + 8]
mov dword [rax + 0x10], 0xffffffff
mov rcx, qword [rbx + 8]
call fcn.1801063c0
mov rcx, rbx
call sym.tcl86t.dll_hclpFree
mov rbx, rdi
test rdi, rdi
jne 0x1800aa260
mov rdi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
mov qword [rsi + 0xa0], rbp
mov rbp, qword [rsp + 0x40]
add rsp, 0x20
pop rsi
ret
mov edx, 0x48
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
Function at 0x1800abbb0
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 [0x18018fdf0]
xor ebx, ebx
test rax, rax
je 0x1800abbe3
test ecx, ecx
jle 0x1800abbe3
cmp ecx, dword [rax + 8]
jge 0x1800abbe3
mov rax, qword [rax]
mov rbx, qword [rax + rcx*8]
test rbx, rbx
jne 0x1800abc2c
lea ecx, [rbx + 0x48]
call sym.tcl86t.dll_hclpAlloc
mov rbx, rax
test rax, rax
je 0x1800abc64
xor eax, eax
lea rcx, [0x18018fdf0]
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
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x40], rax
call fcn.180106bc0
mov rax, qword [rbx + 0x40]
test rax, rax
jne 0x1800abc5e
lea rdx, str.iso8859_1
xor ecx, ecx
call sym.tcl86t.dll_hcl_GetEncoding
xor edx, edx
mov qword [rbx + 0x40], rax
lea rcx, [0x1800abb00]
call sym.tcl86t.dll_hcl_CreateThreadExitHandler
mov rax, qword [rbx + 0x40]
test rax, rax
je 0x1800abc76
add rsp, 0x20
pop rbx
ret
mov edx, 0x48
lea rcx, str.unable_to_alloc__u_bytes
call sym.tcl86t.dll_hcl_Panic
int3
lea rcx, str.binary_encoding_is_not_available
call sym.tcl86t.dll_hcl_Panic
int3