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

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov ecx, dword [0x1403910e8]
test ecx, ecx
je 0x1401db6cd
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jbe 0x1401db6e6
add rax, 8
jmp 0x1401db769
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h11c5ff2709c8df73
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
ja 0x1401db6c4
je 0x1401db767
movzx eax, byte [0x1404a5170]
mov edx, 0x18
xor ecx, ecx
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h5a8f05db6a24897c
test rax, rax
je 0x1401db792
mov rbx, rax
mov rsi, rax
lea rax, sym.std::sys::thread_local::os_local::destroy_value::h11c5ff2709c8df73
mov qword [rsi], rax
mov qword [rsi + 8], 0
mov byte [rsi + 0x10], 0
mov ecx, dword [0x1403910e8]
test ecx, ecx
je 0x1401db772
dec ecx
call sub.kernel32.dll_TlsGetValue
mov rdi, rax
mov ecx, dword [0x1403910e8]
test ecx, ecx
je 0x1401db782
dec ecx
add rbx, 8
mov rdx, rsi
call fcn.14021a8f4
test rdi, rdi
je 0x1401db762
mov rcx, qword [0x1404a5110]
xor edx, edx
mov r8, rdi
call fcn.14021a7bc
mov rax, rbx
jmp 0x1401db769
xor eax, eax
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop rbp
ret
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h11c5ff2709c8df73
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
jmp 0x1401db72c
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h11c5ff2709c8df73
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
jmp 0x1401db740
mov ecx, 8
mov edx, 0x18
call sym.alloc::alloc::handle_alloc_error::h033f15fcf3b32b44
int3
Function at 0x1401dee80
Capabilities:
Read file via mapping

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0xd0
lea rbp, [rsp + 0x80]
mov rax, r8
mov rsi, rcx
mov dword [rbp + 8], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
mov dword [rbp + 0x20], 7
mov qword [rbp + 0x24], 0
mov word [rbp + 0x2c], 0
mov byte [rbp + 0x28], 1
lea r8, [rbp + 8]
mov rcx, rdx
mov rdx, rax
call sym.std::sys::pal::windows::fs::File::open::h3a6cfbd342f96e23
mov rdi, rdx
test rax, rax
je 0x1401def07
mov qword [rbp - 0x40], rax
lea rcx, [rbp - 0x38]
mov qword [rbp - 0x38], rdi
call sym.core::ptr::drop_in_place_std::io::error::Error_::hbbf69de94c165ea1
mov qword [rsi], 0
add rsp, 0xd0
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret
lea rcx, [rbp + 8]
mov rdx, rdi
call sym.std::sys::pal::windows::fs::File::file_attr::h4fcaaad4960f1471
cmp dword [rbp + 8], 2
jne 0x1401def2b
mov rax, qword [rbp + 0x10]
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x40], 2
jmp 0x1401def5a
movups xmm0, xmmword [rbp + 8]
movups xmm1, xmmword [rbp + 0x18]
movups xmm2, xmmword [rbp + 0x28]
movups xmm3, xmmword [rbp + 0x38]
movaps xmmword [rbp - 0x40], xmm0
mov rax, qword [rbp + 0x48]
mov qword [rbp], rax
movaps xmmword [rbp - 0x10], xmm3
movaps xmmword [rbp - 0x20], xmm2
movaps xmmword [rbp - 0x30], xmm1
cmp qword [rbp - 0x40], 2
jne 0x1401def83
lea rcx, [rbp - 0x38]
call sym.core::ptr::drop_in_place_std::io::error::Error_::hbbf69de94c165ea1
mov qword [rsi], 0
mov rcx, rdi
add rsp, 0xd0
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
jmp sub.kernel32.dll_CloseHandle
mov r12, qword [rbp - 8]
test rdi, rdi
je 0x1401defd1
mov qword [rbp - 0x40], 0
call sub.kernel32.dll_GetCurrentProcess
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r9, [rbp - 0x40]
mov rcx, rax
mov rdx, rdi
mov r8, rax
call sub.kernel32.dll_DuplicateHandle
test eax, eax
je 0x1401df04d
mov rbx, qword [rbp - 0x40]
jmp 0x1401defd3
xor ebx, ebx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rbx
xor edx, edx
mov r8d, 2
xor r9d, r9d
call sub.kernel32.dll_CreateFileMappingA
test rax, rax
je 0x1401df03c
mov r14, rax
mov qword [rsp + 0x20], r12
mov rcx, rax
mov edx, 4
xor r8d, r8d
xor r9d, r9d
call sub.kernel32.dll_MapViewOfFile
mov r15, rax
mov rcx, r14
call sub.kernel32.dll_CloseHandle
test r15, r15
je 0x1401df03c
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], r12
mov qword [rsi], 1
jmp 0x1401df076
mov qword [rsi], 0
mov rcx, rbx
call sub.kernel32.dll_CloseHandle
jmp 0x1401df076
call sub.kernel32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rbp + 8], 1
lea rcx, [rbp + 0x10]
mov qword [rbp + 0x10], rax
call sym.core::ptr::drop_in_place_std::io::error::Error_::hbbf69de94c165ea1
mov qword [rsi], 0
mov rcx, rdi
call sub.kernel32.dll_CloseHandle
jmp 0x1401deef5
Function at 0x1401f90b0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0x60]
mov rsi, r9
mov rdi, r8
mov qword [rbp - 0x18], rdx
mov qword [rbp - 0x10], rcx
invalid
invalid
add rsi, r8
mov qword [rbp - 0x40], r8
mov qword [rbp - 0x38], rsi
mov byte [rbp - 0x30], 0x81
Function at 0x1401fbd20
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov ecx, dword [0x140391128]
test ecx, ecx
je 0x1401fbd4d
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jbe 0x1401fbd66
add rax, 8
jmp 0x1401fbe01
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h3bcd1088f2e29d9a
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
ja 0x1401fbd44
je 0x1401fbdff
movzx eax, byte [0x1404a5170]
mov edx, 0x10
xor ecx, ecx
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h5a8f05db6a24897c
test rax, rax
je 0x1401fbe2a
mov rbx, rax
mov rsi, rax
lea rax, sym.std::sys::thread_local::os_local::destroy_value::h3bcd1088f2e29d9a
mov qword [rsi], rax
mov qword [rsi + 8], 0
mov ecx, dword [0x140391128]
test ecx, ecx
je 0x1401fbe0a
dec ecx
call sub.kernel32.dll_TlsGetValue
mov rdi, rax
mov ecx, dword [0x140391128]
test ecx, ecx
je 0x1401fbe1a
dec ecx
add rbx, 8
mov rdx, rsi
call fcn.14021a8f4
test rdi, rdi
je 0x1401fbdfa
mov rax, qword [rdi + 8]
test rax, rax
je 0x1401fbde9
lock dec qword [rax]
jne 0x1401fbde9
mov rcx, qword [rdi + 8]
call sym.alloc::sync::Arc_T_A_::drop_slow::hc2f8f36dcfa7d17a
mov rcx, qword [0x1404a5110]
xor edx, edx
mov r8, rdi
call fcn.14021a7bc
mov rax, rbx
jmp 0x1401fbe01
xor eax, eax
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop rbp
ret
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h3bcd1088f2e29d9a
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
jmp 0x1401fbdac
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h3bcd1088f2e29d9a
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
jmp 0x1401fbdc0
mov ecx, 8
mov edx, 0x10
call sym.alloc::alloc::handle_alloc_error::h033f15fcf3b32b44
int3

Function at 0x1401fbea0
Capabilities:
Set thread local storage value

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x20
lea rbp, [rsp + 0x20]
mov rdi, rcx
mov rsi, qword [rcx]
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x1401fbebd
dec ecx
jmp 0x1401fbec7
mov rcx, rsi
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
mov edx, 1
call fcn.14021a8f4
mov rax, qword [rdi + 8]
test rax, rax
je 0x1401fbee9
lock dec qword [rax]
jne 0x1401fbee9
mov rcx, qword [rdi + 8]
call sym.alloc::sync::Arc_T_A_::drop_slow::hc2f8f36dcfa7d17a
mov rcx, qword [0x1404a5110]
xor edx, edx
mov r8, rdi
call fcn.14021a7bc
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x1401fbf05
dec ecx
jmp 0x1401fbf0f
mov rcx, rsi
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
xor edx, edx
add rsp, 0x20
pop rdi
pop rsi
pop rbp
jmp fcn.14021a8f4
Function at 0x1401fc100
Capabilities:
Resolve dns

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x1e8
lea rbp, [rsp + 0x80]
mov rax, rdx
mov rsi, rcx
mov rdx, qword [rdx]
mov rdi, qword [rax + 8]
movzx eax, word [rax + 0x10]
mov word [rbp + 0x166], ax
mov rax, qword [0x1404a5118]
cmp rax, 3
jne 0x1401fc2f0
lea rax, [rbp + 0x166]
mov qword [rbp + 0x150], rax
cmp rdi, 0x17f
ja 0x1401fc316
lea rbx, [rbp - 0x60]
mov rcx, rbx
mov r8, rdi
call sym.memcpy
mov byte [rbp + rdi - 0x60], 0
lea rax, [rdi + 1]
cmp rdi, 0xe
ja 0x1401fc198
xor edx, edx
nop word [rax + rax]
cmp byte [rbp + rdx - 0x60], 0
je 0x1401fc254
inc rdx
cmp rax, rdx
jne 0x1401fc180
jmp 0x1401fc2bb
lea rcx, [rbp - 0x59]
and rcx, 0xfffffffffffffff8
sub rcx, rbx
je 0x1401fc1ce
xor edx, edx
nop word [rax + rax]
cmp byte [rbp + rdx - 0x60], 0
je 0x1401fc254
inc rdx
cmp rcx, rdx
jne 0x1401fc1b0
lea rdx, [rdi - 0xf]
cmp rcx, rdx
jbe 0x1401fc1d2
jmp 0x1401fc21e
lea rdx, [rdi - 0xf]
movdqa xmm0, xmmword [0x14039f2b0]
movabs r8, 0x8080808080808080
nop word cs:[rax + rax]
movdqu xmm1, xmmword [rbp + rcx - 0x60]
movdqa xmm2, xmm1
paddq xmm2, xmm0
pandn xmm1, xmm2
pshufd xmm2, xmm1, 0xee
por xmm2, xmm1
movq r9, xmm2
test r9, r8
jne 0x1401fc21e
add rcx, 0x10
cmp rcx, rdx
jbe 0x1401fc1f0
sub rax, rcx
je 0x1401fc2bb
lea r8, [rcx + rbp]
add r8, 0xffffffffffffffa0
xor edx, edx
nop word cs:[rax + rax]
cmp byte [r8 + rdx], 0
je 0x1401fc251
inc rdx
cmp rax, rdx
jne 0x1401fc240
jmp 0x1401fc2bb
add rdx, rcx
cmp rdx, rdi
jne 0x1401fc2bb
pxor xmm0, xmm0
movdqa xmmword [rbp + 0x120], xmm0
movdqa xmmword [rbp + 0x140], xmm0
movdqa xmmword [rbp + 0x130], xmm0
mov dword [rbp + 0x128], 1
mov qword [rbp + 0x158], 0
lea rcx, [rbp - 0x60]
lea r8, [rbp + 0x120]
lea r9, [rbp + 0x158]
xor edx, edx
call sub.ws2_32.dll_getaddrinfo
test eax, eax
je 0x1401fc2cf
call sub.ws2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov ecx, 1
jmp 0x1401fc2e7
lea rax, [0x140440330]
mov qword [rsi + 8], rax
mov qword [rsi], 1
jmp 0x1401fc328
mov rax, qword [rbp + 0x158]
movzx ecx, word [rbp + 0x166]
mov qword [rsi + 0x10], rax
mov word [rsi + 0x18], cx
xor ecx, ecx
mov qword [rsi + 8], rax
mov qword [rsi], rcx
jmp 0x1401fc328
mov rbx, rdx
call sym.std::sync::once_lock::OnceLock_T_::initialize::he6a547af765b607b
mov rdx, rbx
lea rax, [rbp + 0x166]
mov qword [rbp + 0x150], rax
cmp rdi, 0x17f
jbe 0x1401fc157
lea r9, [rbp + 0x150]
mov rcx, rsi
mov r8, rdi
call sym.std::sys::pal::common::small_c_string::run_with_cstr_allocating::h7b44a4d7be12da09
nop
add rsp, 0x1e8
pop rbx
pop rdi
pop rsi
pop rbp
ret
Function at 0x1401fc850
Capabilities:
Resolve dns

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x80
lea rbp, [rsp + 0x80]
mov rbx, r9
mov rsi, rcx
lea rcx, [rbp - 0x28]
call sym.__str_as_alloc::ffi::c_str::CString::new::SpecNewImpl_::spec_new_impl::hb8d24153a434d2ca
mov rax, qword [rbp - 0x28]
movabs rcx, 0x8000000000000000
cmp rax, rcx
jne 0x1401fc8d7
mov rdi, qword [rbp - 0x20]
mov r14, qword [rbp - 0x18]
xorps xmm0, xmm0
movaps xmmword [rbp - 0x60], xmm0
movaps xmmword [rbp - 0x40], xmm0
movaps xmmword [rbp - 0x50], xmm0
mov dword [rbp - 0x58], 1
mov qword [rbp - 8], 0
lea r8, [rbp - 0x60]
lea r9, [rbp - 8]
mov rcx, rdi
xor edx, edx
call sub.ws2_32.dll_getaddrinfo
test eax, eax
je 0x1401fc90d
call sub.ws2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov ecx, 1
jmp 0x1401fc921
lea rcx, [0x140440330]
mov qword [rsi + 8], rcx
mov qword [rsi], 1
test rax, rax
je 0x1401fc941
mov r8, qword [rbp - 0x20]
mov rcx, qword [0x1404a5110]
xor edx, edx
add rsp, 0x80
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
jmp fcn.14021a7bc
mov rcx, qword [rbx]
mov rax, qword [rbp - 8]
movzx ecx, word [rcx]
mov qword [rsi + 0x10], rax
mov word [rsi + 0x18], cx
xor ecx, ecx
mov qword [rsi + 8], rax
mov qword [rsi], rcx
mov byte [rdi], 0
test r14, r14
je 0x1401fc941
mov rcx, qword [0x1404a5110]
xor edx, edx
mov r8, rdi
call fcn.14021a7bc
nop
add rsp, 0x80
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret

Function at 0x1401fc950
Capabilities:
Initialize winsock library

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x1f0
lea rbp, [rsp + 0x80]
mov rax, qword [rcx]
mov rdi, qword [rax]
mov qword [rax], 0
test rdi, rdi
je 0x1401fc9b3
lea rsi, [rbp - 0x60]
mov r8d, 0x198
mov rcx, rsi
xor edx, edx
call sub.msvcrt.dll_memset
mov cx, 0x202
mov rdx, rsi
call sub.ws2_32.dll_WSAStartup
mov dword [rbp + 0x16c], eax
test eax, eax
jne 0x1401fc9bf
lea rax, [0x14021a4c4]
mov qword [rdi], rax
add rsp, 0x1f0
pop rdi
pop rsi
pop rbp
ret
lea rcx, str.library_std_src_synconce.rs
call sym.core::option::unwrap_failed::hec1ab125882a5e1e
mov qword [rbp + 0x138], 0
lea rdx, [0x140440d58]
lea r9, str.0_rD_
lea rcx, [rbp + 0x16c]
lea r8, [rbp + 0x138]
call sym.core::panicking::assert_failed::h8a98e51c055d6f66
int3

Function at 0x1401fc9f0
Capabilities:
Initialize winsock library

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x1f0
lea rbp, [rsp + 0x80]
mov rax, qword [rcx]
mov rdi, qword [rax]
mov qword [rax], 0
test rdi, rdi
je 0x1401fca53
lea rsi, [rbp - 0x60]
mov r8d, 0x198
mov rcx, rsi
xor edx, edx
call sub.msvcrt.dll_memset
mov cx, 0x202
mov rdx, rsi
call sub.ws2_32.dll_WSAStartup
mov dword [rbp + 0x16c], eax
test eax, eax
jne 0x1401fca5f
lea rax, [0x14021a4c4]
mov qword [rdi], rax
add rsp, 0x1f0
pop rdi
pop rsi
pop rbp
ret
lea rcx, str.library_std_src_synconce.rs
call sym.core::option::unwrap_failed::hec1ab125882a5e1e
mov qword [rbp + 0x138], 0
lea rdx, [0x140440d58]
lea r9, str.0_rD_
lea rcx, [rbp + 0x16c]
lea r8, [rbp + 0x138]
call sym.core::panicking::assert_failed::h8a98e51c055d6f66
int3
Function at 0x1401fcdf0
Capabilities:
Create thread

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x30
lea rbp, [rsp + 0x30]
mov rdi, r8
mov r14, rdx
mov rbx, rcx
movzx eax, byte [0x1404a5170]
mov edx, 0x10
xor ecx, ecx
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h5a8f05db6a24897c
test rax, rax
je 0x1401fcec7
mov rsi, rax
mov qword [rax], r14
mov qword [rax + 8], rdi
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [sym.std::sys::pal::windows::thread::Thread::new::thread_start::hefabc2546a0319c1]
xor edi, edi
xor ecx, ecx
mov rdx, rbx
mov r9, rax
call sub.kernel32.dll_CreateThread
mov rdx, rax
test rax, rax
jne 0x1401fceb9
mov rdi, qword [rsi]
mov r14, qword [rsi + 8]
mov rax, qword [r14]
test rax, rax
je 0x1401fce71
mov rcx, rdi
call rax
cmp qword [r14 + 8], 0
je 0x1401fce94
cmp qword [r14 + 0x10], 0x11
jb 0x1401fce83
mov rdi, qword [rdi - 8]
mov rcx, qword [0x1404a5110]
xor edx, edx
mov r8, rdi
call fcn.14021a7bc
mov rcx, qword [0x1404a5110]
xor edx, edx
mov r8, rsi
call fcn.14021a7bc
call sub.kernel32.dll_GetLastError
mov edx, eax
shl rdx, 0x20
or rdx, 2
mov edi, 1
mov rax, rdi
add rsp, 0x30
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
mov ecx, 8
mov edx, 0x10
call sym.alloc::alloc::handle_alloc_error::h033f15fcf3b32b44
ud2
Function at 0x1402011d0
Capabilities:
Write file on windows

Disassembly:
push rbp
mov rbp, rsp
mov r9, rcx
mov ecx, 0xfffffff4
pop rbp
jmp sym.std::sys::pal::windows::stdio::write::h51f0a5f743bad205

Function at 0x1402011f0
Capabilities:
Write file on windows

Disassembly:
push rbp
mov rbp, rsp
mov r9, rcx
add rdx, 0xfffffffffffffff0
shl r8, 4
nop
test r8, r8
je 0x14020121b
mov eax, dword [rdx + 0x10]
add rdx, 0x10
add r8, 0xfffffffffffffff0
test rax, rax
je 0x140201200
mov rdx, qword [rdx + 8]
jmp 0x140201222
mov edx, 1
xor eax, eax
mov ecx, 0xfffffff4
mov r8, rax
pop rbp
jmp sym.std::sys::pal::windows::stdio::write::h51f0a5f743bad205
Function at 0x1402025e0
Capabilities:
Create tcp socket
Create udp socket

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x50
lea rbp, [rsp + 0x50]
mov eax, 1
test rcx, rcx
jne 0x140202764
mov rax, qword [0x1404a5118]
cmp rax, 3
jne 0x14020276f
mov r14, rdx
cmp word [rdx], 0
mov eax, 2
mov edi, 0x17
cmove edi, eax
mov dword [rsp + 0x28], 0x81
mov dword [rsp + 0x20], 0
mov ecx, edi
mov edx, 2
xor r8d, r8d
xor r9d, r9d
call sub.ws2_32.dll_WSASocketW
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x14020267a
cmp word [r14], 0
je 0x1402026eb
movups xmm0, xmmword [r14 + 4]
mov eax, dword [r14 + 0x14]
mov edx, dword [r14 + 0x18]
movzx ecx, word [r14 + 0x1c]
mov r8d, 0x1c
mov r9w, 0x17
jmp 0x140202702
call sub.ws2_32.dll_WSAGetLastError
cmp eax, 0x2739
je 0x140202693
mov ebx, eax
cmp eax, 0x2726
jne 0x140202754
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0
mov ecx, edi
mov edx, 2
xor r8d, r8d
xor r9d, r9d
call sub.ws2_32.dll_WSASocketW
cmp rax, 0xffffffffffffffff
je 0x14020274d
mov rsi, rax
mov rcx, rax
mov edx, 1
xor r8d, r8d
call sub.kernel32.dll_SetHandleInformation
test eax, eax
jne 0x14020264d
call sub.kernel32.dll_GetLastError
mov ebx, eax
mov rcx, rsi
call fcn.14021a4fc
jmp 0x140202754
mov eax, dword [r14 + 2]
movzx ecx, word [r14 + 6]
xorps xmm0, xmm0
mov r8d, 0x10
mov r9w, 2
rol cx, 8
mov word [rbp - 0x1c], r9w
mov word [rbp - 0x1a], cx
mov dword [rbp - 0x18], eax
movups xmmword [rbp - 0x14], xmm0
mov dword [rbp - 4], edx
lea rdx, [rbp - 0x1c]
mov rcx, rsi
call sub.ws2_32.dll_bind
cmp eax, 0xffffffff
je 0x140202731
xor eax, eax
mov rdx, rsi
jmp 0x140202764
call sub.ws2_32.dll_WSAGetLastError
mov edi, eax
shl rdi, 0x20
or rdi, 2
mov rcx, rsi
call fcn.14021a4fc
mov rdx, rdi
jmp 0x14020275f
call sub.ws2_32.dll_WSAGetLastError
mov ebx, eax
shl rbx, 0x20
or rbx, 2
mov rdx, rbx
mov eax, 1
add rsp, 0x50
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
mov rsi, rdx
call sym.std::sync::once_lock::OnceLock_T_::initialize::he6a547af765b607b
mov rdx, rsi
jmp 0x14020260e

Function at 0x140205090
Capabilities:
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rdi, rcx
mov rsi, qword [rcx]
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x1402050ee
dec ecx
mov edx, 1
call fcn.14021a8f4
mov rax, qword [rdi + 0x28]
test rax, rax
je 0x1402050c7
lock dec qword [rax]
jne 0x1402050c7
lea rcx, [rdi + 0x28]
call sym.alloc::sync::Arc_T_A_::drop_slow::hab996621b1f5aa09
mov rcx, qword [0x1404a5110]
xor edx, edx
mov r8, rdi
call fcn.14021a7bc
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x1402050fa
dec ecx
xor edx, edx
add rsp, 0x28
pop rdi
pop rsi
jmp fcn.14021a8f4
mov rcx, rsi
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
jmp 0x1402050a5
mov rcx, rsi
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
jmp 0x1402050e1
Function at 0x140205110
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov ecx, dword [0x1403911a0]
test ecx, ecx
je 0x140205137
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jbe 0x140205150
add rax, 8
jmp 0x140205220
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h1887d57b7e52db0c
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
ja 0x14020512e
je 0x14020521e
movzx eax, byte [0x1404a5170]
mov edx, 0x50
xor ecx, ecx
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h5a8f05db6a24897c
test rax, rax
je 0x140205248
mov rbx, rax
mov rsi, rax
lea rax, sym.std::sys::thread_local::os_local::destroy_value::h1887d57b7e52db0c
mov qword [rsi], rax
movups xmm0, xmmword [0x140442908]
movups xmmword [rsi + 8], xmm0
movups xmm0, xmmword [0x140442918]
movups xmmword [rsi + 0x18], xmm0
movups xmm0, xmmword [0x140442928]
movups xmmword [rsi + 0x28], xmm0
movups xmm0, xmmword [0x140442938]
movups xmmword [rsi + 0x38], xmm0
movabs rax, 0x2000000000000
mov qword [rsi + 0x48], rax
mov ecx, dword [0x1403911a0]
test ecx, ecx
je 0x140205228
dec ecx
call sub.kernel32.dll_TlsGetValue
mov rdi, rax
mov ecx, dword [0x1403911a0]
test ecx, ecx
je 0x140205238
dec ecx
add rbx, 8
mov rdx, rsi
call fcn.14021a8f4
test rdi, rdi
je 0x140205219
mov rax, qword [rdi + 0x28]
test rax, rax
je 0x140205208
lock dec qword [rax]
jne 0x140205208
mov rcx, rdi
add rcx, 0x28
call sym.alloc::sync::Arc_T_A_::drop_slow::hab996621b1f5aa09
mov rcx, qword [0x1404a5110]
xor edx, edx
mov r8, rdi
call fcn.14021a7bc
mov rax, rbx
jmp 0x140205220
xor eax, eax
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h1887d57b7e52db0c
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
jmp 0x1402051c8
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h1887d57b7e52db0c
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
jmp 0x1402051dc
mov ecx, 8
mov edx, 0x50
call sym.alloc::alloc::handle_alloc_error::h033f15fcf3b32b44
int3
Function at 0x140205260
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x40
movaps xmmword [rsp + 0x30], xmm6
mov ecx, dword [0x1403911c0]
test ecx, ecx
je 0x14020528c
dec ecx
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
jbe 0x1402052a5
add rax, 8
jmp 0x140205340
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h11c5ff2709c8df73
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
call sub.kernel32.dll_TlsGetValue
cmp rax, 1
ja 0x140205283
je 0x14020533e
xorps xmm0, xmm0
movaps xmmword [rsp + 0x20], xmm0
lea rcx, [rsp + 0x20]
mov edx, 0x10
call sub.bcryptprimitives.dll_ProcessPrng
movaps xmm6, xmmword [rsp + 0x20]
movzx eax, byte [0x1404a5170]
mov edx, 0x18
xor ecx, ecx
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h5a8f05db6a24897c
test rax, rax
je 0x14020536d
mov rbx, rax
mov rsi, rax
lea rax, sym.std::sys::thread_local::os_local::destroy_value::h11c5ff2709c8df73
mov qword [rsi], rax
movups xmmword [rsi + 8], xmm6
mov ecx, dword [0x1403911c0]
test ecx, ecx
je 0x14020534d
dec ecx
call sub.kernel32.dll_TlsGetValue
mov rdi, rax
mov ecx, dword [0x1403911c0]
test ecx, ecx
je 0x14020535d
dec ecx
add rbx, 8
mov rdx, rsi
call fcn.14021a8f4
test rdi, rdi
je 0x140205339
mov rcx, qword [0x1404a5110]
xor edx, edx
mov r8, rdi
call fcn.14021a7bc
mov rax, rbx
jmp 0x140205340
xor eax, eax
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x40
pop rbx
pop rdi
pop rsi
ret
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h11c5ff2709c8df73
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
jmp 0x140205303
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h11c5ff2709c8df73
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
jmp 0x140205317
mov ecx, 8
mov edx, 0x18
call sym.alloc::alloc::handle_alloc_error::h033f15fcf3b32b44
int3

Function at 0x140205380
Capabilities:
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rdi, rcx
mov rsi, qword [rcx + 8]
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x1402053d8
dec ecx
mov edx, 1
call fcn.14021a8f4
mov rax, qword [rdi]
lock dec qword [rax]
jne 0x1402053b1
mov rcx, qword [rdi]
call sym.alloc::sync::Arc_T_A_::drop_slow::h4ac174f1ab8ff056
mov rcx, qword [0x1404a5110]
xor edx, edx
mov r8, rdi
call fcn.14021a7bc
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x1402053e4
dec ecx
xor edx, edx
add rsp, 0x28
pop rdi
pop rsi
jmp fcn.14021a8f4
mov rcx, rsi
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
jmp 0x140205396
mov rcx, rsi
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h3a56cd97d8b2cb6b
mov ecx, eax
jmp 0x1402053cb