joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140098aae
Capabilities:
Generate random numbers via rtlgenrandom
Generate random numbers via winapi

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rdi, rdx
mov rbx, rcx
mov r12d, 0xffffffff
xor esi, esi
test rdi, rdi
je 0x140098b18
mov r14, rbx
cmp rdi, r12
mov r15d, 0xffffffff
cmovb r15, rdi
add rbx, r15
sub rdi, r15
xor ecx, ecx
mov rdx, r14
mov r8d, r15d
mov r9d, 2
call sub.bcrypt.dll_BCryptGenRandom
cmp eax, 0xbfffffff
jbe 0x140098aca
mov ebp, eax
mov rcx, r14
mov edx, r15d
call sub.ADVAPI32.dll_SystemFunction036
test al, al
jne 0x140098aca
and ebp, 0x7fffffff
mov esi, ebp
mov eax, esi
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret

Function at 0x14009b0ca
Capabilities:
Hash data using fnv

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rdx
mov rdi, rcx
mov rbx, qword [rcx]
xor ecx, ecx
test rbx, rbx
setne cl
call sym.core::hash::impls::__impl_core::hash::Hash_for_isize_::hash::h2e9b3530b8b9e1f8
test rbx, rbx
je 0x14009b103
mov rdx, qword [rdi + 8]
mov r8, qword [rdi + 0x10]
mov rcx, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp sym.__fnv::FnvHasher_as_core::hash::Hasher_::write::hd2bf44275e2e4768
mov cl, byte [rdi + 8]
mov rdx, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp sym.__http::header::name::StandardHeader_as_core::hash::Hash_::hash::ha03d5aae8483da4e

Function at 0x14009b11d
Capabilities:
Hash data using fnv

Disassembly:
mov rax, qword [rcx]
xor r9d, r9d
movabs r10, 0x100000001b3
cmp r8, r9
je 0x14009b143
movzx r11d, byte [rdx + r9]
xor rax, r11
imul rax, r10
inc r9
jmp 0x14009b12d
mov qword [rcx], rax
ret
Function at 0x1400c06d2
Capabilities:
Link many functions at runtime

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x30
mov rsi, rcx
mov r14, qword [0x14039f0f0]
test r14, r14
jne 0x1400c0801
lea rcx, str.api_ms_win_core_synch_l1_2_0.dll
call sub.KERNEL32.dll_GetModuleHandleA
test rax, rax
je 0x1400c0739
mov rbx, rax
lea rdx, str.WaitOnAddress
mov rcx, rax
call sub.KERNEL32.dll_GetProcAddress
test rax, rax
je 0x1400c0739
mov rdi, rax
lea rdx, str.WakeByAddressSingle
mov rcx, rbx
call sub.KERNEL32.dll_GetProcAddress
test rax, rax
je 0x1400c0739
mov r15, rax
xor ebx, ebx
jmp 0x1400c07ba
lea rcx, str.ntdll.dll
call sub.KERNEL32.dll_GetModuleHandleA
test rax, rax
je 0x1400c0815
mov rdi, rax
lea rdx, str.NtCreateKeyedEvent
mov rcx, rax
call sub.KERNEL32.dll_GetProcAddress
test rax, rax
je 0x1400c0815
mov r14, rax
lea rdx, str.NtReleaseKeyedEvent
mov rcx, rdi
call sub.KERNEL32.dll_GetProcAddress
test rax, rax
je 0x1400c0815
mov rbx, rax
lea rdx, str.NtWaitForKeyedEvent
mov rcx, rdi
call sub.KERNEL32.dll_GetProcAddress
test rax, rax
je 0x1400c0815
mov rdi, rax
lea rcx, [rsp + 0x28]
mov edx, 0xc0000000
xor r8d, r8d
xor r9d, r9d
call r14
test eax, eax
jne 0x1400c0815
mov r15, qword [rsp + 0x28]
mov ecx, 0x18
call sym._ZN5alloc5alloc15exchange_malloc17h0460a90bbf52bd83E.1162
mov r14, rax
mov qword [rax], rbx
mov qword [rax + 8], rdi
mov qword [rax + 0x10], r15
xor eax, eax
lock cmpxchg qword [0x14039f0f0], r14
je 0x1400c0801
mov rdi, rax
cmp qword [r14], 0
je 0x1400c07f1
mov rcx, qword [r14 + 0x10]
call fcn.1401c0754
mov edx, 8
mov rcx, r14
call sym.__rust_dealloc
mov r14, rdi
and qword [rsi + 8], 0
mov qword [rsi], r14
add rsp, 0x30
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
lea rcx, str.parking_lot_requires_either_NT_Keyed_Events__WinXP__or_WaitOnAddress_WakeByAddress__Win8__root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_parking_lot_core_0.9.9_src_thread_parker_windows_mod.rs
lea r8, [0x1402bd3d8]
mov edx, 0x5b
call sym.std::panicking::begin_panic::hd55162931627081d
int3

Function at 0x1400c0ecc
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x28
mov ecx, dword [0x140273068]
test ecx, ecx
je 0x1400c0ee5
dec ecx
add rsp, 0x28
jmp fcn.1401c03bc
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h6981a790725f4732
call dbg.init
mov ecx, eax
jmp 0x1400c0edc

Function at 0x1400c0ef5
Capabilities:
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rdi, rcx
mov rsi, qword [rcx]
mov edx, 1
mov rcx, rsi
call sym.std::sys::pal::windows::thread_local_key::StaticKey::set::h080abc5c6b923c1e
cmp qword [rdi + 8], 0
je 0x1400c0f1d
lock dec qword [0x14039f0e0]
mov edx, 8
mov rcx, rdi
call sym.__rust_dealloc
mov rcx, rsi
xor edx, edx
add rsp, 0x28
pop rdi
pop rsi
jmp sym.std::sys::pal::windows::thread_local_key::StaticKey::set::h080abc5c6b923c1e
Function at 0x1400c1171
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1e8
mov rsi, r9
mov rdi, r8
mov r8, rdx
mov rdx, rcx
lea rbx, [rsp + 0x20]
mov rcx, rbx
call sym.std::path::Path::components::ha946a6043a905a25
lea r15, [rsp + 0x60]
mov rcx, r15
mov rdx, rdi
mov r8, rsi
call sym.std::path::Path::components::ha946a6043a905a25
mov rdi, qword [rbx]
mov r14, qword [rbx + 8]
mov rbx, qword [r15]
mov r15, qword [r15 + 8]
cmp r14, r15
jne 0x1400c1212
mov al, byte [rsp + 0x58]
cmp al, byte [rsp + 0x98]
jne 0x1400c1212
cmp byte [rsp + 0x59], 2
jne 0x1400c1212
cmp byte [rsp + 0x99], 2
jne 0x1400c1212
cmp byte [rsp + 0x30], 3
setb al
cmp byte [rsp + 0x70], 3
setb cl
xor cl, al
jne 0x1400c1212
mov rcx, rdi
mov rdx, r14
mov r8, rbx
mov r9, r14
call sym.___A__as_core::slice::cmp::SlicePartialEq_B__::equal::h1b23c7b2f07cde81
mov ecx, eax
mov al, 1
test cl, cl
jne 0x1400c1465
mov al, byte [rsp + 0x30]
cmp al, 6
je 0x1400c1241
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0xef], rcx
movups xmm0, xmmword [rsp + 0x31]
movups xmm1, xmmword [rsp + 0x41]
movaps xmmword [rsp + 0xe0], xmm1
movaps xmmword [rsp + 0xd0], xmm0
mov dl, byte [rsp + 0x5a]
mov r8b, byte [rsp + 0x58]
mov r9b, byte [rsp + 0x59]
mov cl, byte [rsp + 0x70]
cmp cl, 6
je 0x1400c1285
mov r10, qword [rsp + 0x90]
mov qword [rsp + 0xbf], r10
movups xmm0, xmmword [rsp + 0x71]
movups xmm1, xmmword [rsp + 0x81]
movaps xmmword [rsp + 0xb0], xmm1
movaps xmmword [rsp + 0xa0], xmm0
mov r10b, byte [rsp + 0x9a]
movzx r11d, word [rsp + 0x98]
lea rsi, [rsp + 0x1a8]
mov qword [rsi], rdi
mov qword [rsi + 8], r14
mov byte [rsi + 0x10], al
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmm1, xmmword [rsp + 0xe0]
mov word [rax + riz*8], fs
add byte [rax], al
add byte [rdi], cl
adc dword [rsi + 0x11], eax
Function at 0x1400c2f1c
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
movaps xmmword [rsp + 0x60], xmm6
mov rdi, r8
mov rbx, rdx
mov qword [rsp + 0x38], rcx
mov rbp, qword [rcx]
mov eax, 0xffffffff
xorps xmm6, xmm6
lea rsi, [dbg.callback]
lea r14, [rsp + 0x40]
lea r15, [0x14027a434]

Function at 0x1400c3d1d
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x28
mov ecx, dword [0x1402730b8]
test ecx, ecx
je 0x1400c3d36
dec ecx
add rsp, 0x28
jmp fcn.1401c03bc
lea rcx, str.F_f_
call dbg.init
mov ecx, eax
jmp 0x1400c3d2d

Function at 0x1400c3d46
Capabilities:
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rsi, rcx
mov rdi, qword [rcx]
mov edx, 1
mov rcx, rdi
call sym.std::sys::pal::windows::thread_local_key::StaticKey::set::h080abc5c6b923c1e
mov rcx, qword [rsi + 8]
call sym._ZN4core3ptr208drop_in_place_LT_core..option..Option_LT_alloc..rc..Rc_LT_core..cell..UnsafeCell_LT_rand..rngs..adapter..reseed
mov edx, 8
mov rcx, rsi
call sym.__rust_dealloc
mov rcx, rdi
xor edx, edx
add rsp, 0x28
pop rdi
pop rsi
jmp sym.std::sys::pal::windows::thread_local_key::StaticKey::set::h080abc5c6b923c1e
Function at 0x1400c47a7
Capabilities:
Encrypt data using salsa20 or chacha

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0xc0
mov rsi, rdx
mov rdi, rcx
xorps xmm0, xmm0
lea rcx, [rsp + 0x50]
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
call sym.__rand_core::os::OsRng_as_rand_core::RngCore_::try_fill_bytes::h07a6913286cdb865
test rax, rax
je 0x1400c47df
mov edx, 4
mov rcx, rax
call sym.__rust_dealloc
jmp 0x1400c4841
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
lea rdx, [rsp + 0x70]
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx], xmm0
lea rbx, [rsp + 0x90]
mov rcx, rbx
call sym.__rand_chacha::chacha::ChaCha12Core_as_rand_core::SeedableRng_::from_seed::h9d3735a7d3b55024
mov rax, qword [rbx]
movups xmm0, xmmword [rbx + 8]
movaps xmmword [rsp + 0x20], xmm0
movups xmm0, xmmword [rbx + 0x18]
movaps xmmword [rsp + 0x30], xmm0
mov rcx, qword [rbx + 0x28]
mov qword [rsp + 0x40], rcx
mov qword [rdi], rax
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movups xmmword [rdi + 8], xmm0
movups xmmword [rdi + 0x18], xmm1
mov rax, qword [rsp + 0x40]
mov qword [rdi + 0x28], rax
and qword [rdi + 0x40], 0
mov rax, 0xffffffffffffff00
add rax, qword [rdi + 0x30]
mov qword [rdi + 0x38], rax
mov rcx, rdi
mov rdx, rsi
add rsp, 0xc0
pop rbx
pop rdi
pop rsi
jmp sym.__rand_chacha::chacha::ChaCha12Core_as_rand_core::block::BlockRngCore_::generate::hf6ea28c121327327
Function at 0x1400cd545
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x28
mov ecx, dword [0x1402730f8]
test ecx, ecx
je 0x1400cd55e
dec ecx
add rsp, 0x28
jmp fcn.1401c03bc
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h0e007d75c3c18049
call dbg.init
mov ecx, eax
jmp 0x1400cd555

Function at 0x1400cd56e
Capabilities:
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rsi, rcx
mov rdi, qword [rcx]
mov edx, 1
mov rcx, rdi
call sym.std::sys::pal::windows::thread_local_key::StaticKey::set::h080abc5c6b923c1e
mov edx, 8
mov rcx, rsi
call sym.__rust_dealloc
mov rcx, rdi
xor edx, edx
add rsp, 0x28
pop rdi
pop rsi
jmp sym.std::sys::pal::windows::thread_local_key::StaticKey::set::h080abc5c6b923c1e
Function at 0x14014af2f
Capabilities:
Set thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
movaps xmmword [rsp + 0x70], xmm6
mov rdi, rcx
call sym._ZN3std3sys3pal7windows16thread_local_key9StaticKey3get17h94ae7f737cb9ff28E.1916
cmp rax, 2
jb 0x14014af68
mov rcx, rax
cmp qword [rax + 8], 0
je 0x14014af68
add rcx, 0x10
jmp 0x14014b08c
call sym._ZN3std3sys3pal7windows16thread_local_key9StaticKey3get17h94ae7f737cb9ff28E.1916
cmp rax, 1
je 0x14014b08a
mov rsi, rax
test rax, rax
jne 0x14014afb8
mov ecx, 0x18
mov edx, 8
call sym._ZN5alloc5alloc15exchange_malloc17h0460a90bbf52bd83E.1386
mov rsi, rax
lea rax, sym.std::sys::thread_local::os_local::destroy_value::h0e007d75c3c18049
mov qword [rsi], rax
and qword [rsi + 8], 0
mov ecx, dword [0x140273130]
test ecx, ecx
je 0x14014b0a8
dec ecx
mov rdx, rsi
call fcn.1401c03b4
mov qword [rsp + 0x20], rsi
test rdi, rdi
je 0x14014afec
mov rax, qword [rdi]
and qword [rdi], 0
test rax, rax
je 0x14014afec
mov rax, qword [rdi + 8]
mov rdx, qword [rsp + 0x20]
lea rcx, [rdx + 0x10]
mov qword [rdx + 8], 1
mov qword [rdx + 0x10], rax
jmp 0x14014b08c
lea rdi, [rsp + 0x28]
mov rcx, rdi
call sym.std::thread::local::LocalKey_T_::try_with::h46099584df279dc5
mov rcx, rdi
call sym.core::result::Result_T_E_::expect::hbf912492a7dbf957
mov rbx, rax
mov r14, rdx
movabs r12, 0x736f6d6570736575
xor r12, rax
movabs r13, 0x646f72616e646f6d
xor r13, rdx
movabs rbp, 0x6c7967656e657261
xor rbp, rax
movabs rsi, 0x7465646279746573
xor rsi, rdx
mov r15d, 1
xor eax, eax
xorps xmm6, xmm6
test rax, rax
jne 0x14014afd2
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], r14
movups xmmword [rdi + 0x30], xmm6
and qword [rdi + 0x40], 0
mov rcx, rdi
mov rdx, r15
call sym.core::hash::Hasher::write_usize::h1bcab474683be954
mov rcx, rdi
call sym.__std::hash::random::DefaultHasher_as_core::hash::Hasher_::finish::h28b914216afeada1
inc r15
jmp 0x14014b046
xor ecx, ecx
mov rax, rcx
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h0e007d75c3c18049
call dbg.init
mov ecx, eax
jmp 0x14014afb0

Function at 0x14014b0bb
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x28
mov ecx, dword [0x140273130]
test ecx, ecx
je 0x14014b0d4
dec ecx
add rsp, 0x28
jmp fcn.1401c03bc
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h0e007d75c3c18049
call dbg.init
mov ecx, eax
jmp 0x14014b0cb
Function at 0x140155bdf
Capabilities:
Query or enumerate registry value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x70
mov rax, r8
mov rbx, rdx
mov rsi, rcx
lea rdi, [rsp + 0x58]
mov r8d, 0xb
mov rcx, rdi
mov rdx, rax
call sym.winreg::common::to_utf16::h7e052e3f836ff17f
lea r13, [rsp + 0x38]
mov dword [r13], 0x800
lea r15, [rsp + 0x3c]
and dword [r15], 0
lea r12, [rsp + 0x40]
mov edx, 0x800
mov rcx, r12
call sym.alloc::vec::Vec_T_::with_capacity::h70c2890257285b38
mov rdi, qword [rdi + 8]
mov r14, qword [rsp + 0x48]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r14
mov rcx, rbx
mov rdx, rdi
xor r8d, r8d
mov r9, r15
call sub.ADVAPI32.dll_RegQueryValueExW
cmp eax, 0xea
jne 0x140155c6e
mov edx, dword [rsp + 0x38]
mov rcx, r12
call sym.alloc::vec::Vec_T_A_::reserve::h443142e3436dc5c6
jmp 0x140155c39
test eax, eax
jne 0x140155c90
mov eax, dword [rsp + 0x38]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x3c]
cmp eax, 0xb
jbe 0x140155cb8
movabs rax, 0xde00000002
jmp 0x140155c98
shl rax, 0x20
or rax, 2
mov qword [rsi + 8], rax
movabs rax, 0x8000000000000000
mov qword [rsi], rax
mov rcx, qword [rsp + 0x40]
mov rdx, r14
call sym.core::ptr::drop_in_place_alloc::string::String_::h77266e31bfd0fd80
jmp 0x140155ccc
mov rcx, qword [rsp + 0x50]
mov qword [rsi + 0x10], rcx
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rsi], xmm0
mov byte [rsi + 0x18], al
mov rcx, qword [rsp + 0x58]
mov rdx, rdi
call sym.__alloc::raw_vec::RawVec_T_A__as_core::ops::drop::Drop_::drop::h178bbdd5deb7b758
nop
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x140161970
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x48
mov r10, qword [rcx]
test r10, r10
je 0x1401619ee
mov r11, qword [rcx + 8]
mov r8, qword [rcx + 0x10]
cmp r8, r11
jae 0x1401619ee
movzx eax, byte [r10 + r8]
cmp eax, 0x49
mov rbx, rcx
je 0x140161a06
cmp eax, 0x42
jne 0x1401619ee
lea rsi, [r8 + 1]
mov qword [rcx + 0x10], rsi
mov r9b, 1
cmp rsi, r11
jae 0x140161b2d
cmp byte [r10 + rsi], 0x5f
jne 0x140161abc
lea rax, [r8 + 2]
mov qword [rcx + 0x10], rax
xor eax, eax
cmp rax, r8
jae 0x140161b2d
mov edx, dword [rcx + 0x18]
inc edx
cmp edx, 0x1f4
jbe 0x140161b87
mov dil, 1
xor r9d, r9d
jmp 0x140161b2f
xor edx, edx
call dbg.print_path
mov esi, eax
add sil, sil
mov eax, esi
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r14
ret
inc r8
mov qword [rcx + 0x10], r8
xor edx, edx
call dbg.print_path
test al, al
jne 0x140161b6d
mov rdx, rbx
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x140161a45
lea rdx, case.0x1401b4945.33
mov r8d, 1
call dbg.pad
mov rdx, rbx
test al, al
jne 0x140161b6d
mov rax, qword [rdx]
mov sil, 1
test rax, rax
je 0x1401619fa
xor r14d, r14d
lea rdi, [0x140324738]
nop word [rax + rax]
mov rcx, qword [rdx + 0x10]
cmp rcx, qword [rdx + 8]
jae 0x140161a74
cmp byte [rax + rcx], 0x45
je 0x140161bc4
sub r14, 1
jb 0x140161a9c
mov rcx, qword [rdx + 0x20]
test rcx, rcx
je 0x140161a9c
mov r8d, 2
mov rdx, rdi
call dbg.pad
mov rdx, rbx
test al, al
jne 0x140161b6d
mov rcx, rdx
call dbg.print_generic_arg
test al, al
jne 0x140161b6d
mov rdx, rbx
mov rax, qword [rbx]
test rax, rax
jne 0x140161a60
jmp 0x1401619fa
xor eax, eax
mov r14d, 0x3e
nop word cs:[rax + rax]
movzx edx, byte [r10 + rsi]
cmp dl, 0x5f
je 0x140161b1d
lea edi, [rdx - 0x30]
cmp dil, 0xa
jb 0x140161aff
lea edi, [rdx - 0x61]
cmp dil, 0x1a
jae 0x140161af1
add dl, 0xa9
jmp 0x140161afd
lea edi, [rdx - 0x41]
cmp dil, 0x1a
jae 0x140161b2d
add dl, 0xe3
mov edi, edx
inc rsi
mov qword [rcx + 0x10], rsi
mul r14
jo 0x140161b2d
movzx edx, dil
xor edi, edi
add rax, rdx
jb 0x140161b2f
cmp rsi, r11
jb 0x140161ad0
jmp 0x140161b2f
inc rsi
mov qword [rcx + 0x10], rsi
inc rax
jne 0x1401619c9
xor edi, edi
mov rax, qword [rcx + 0x20]
test rax, rax
je 0x140161b75
mov ecx, r9d
xor cl, 1
movzx ecx, cl
lea r8, [rcx + rcx*8]
add r8, 0x10
lea rcx, str.invalid_syntaxrecursion_limit_reached_for_____::closureshim_as_mut_const___dyn___unsafe_extern__
lea rdx, [0x140324718]
test r9b, r9b
cmovne rdx, rcx
mov rcx, rax
call dbg.pad
mov rcx, rbx
test al, al
je 0x140161b75
mov sil, 2
jmp 0x1401619fa
mov qword [rcx], 0
mov byte [rcx + 8], dil
xor esi, esi
jmp 0x1401619fa
cmp qword [rcx + 0x20], 0
je 0x140161b80
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movaps xmmword [rsp + 0x30], xmm1
movaps xmmword [rsp + 0x20], xmm0
mov qword [rcx + 0x10], rax
mov dword [rcx + 0x18], edx
mov rsi, rcx
call dbg.print_path_maybe_open_generics
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movups xmmword [rsi], xmm0
movups xmmword [rsi + 0x10], xmm1
jmp 0x1401619fc
inc rcx
mov qword [rdx + 0x10], rcx
jmp 0x1401619fa
Function at 0x14016b702
Capabilities:
Set socket configuration

Disassembly:
sub rsp, 0x38
mov eax, edx
lea r9, [rsp + 0x34]
mov dword [r9], r8d
mov dword [rsp + 0x20], 4
mov edx, 0xffff
mov r8d, eax
call sub.ws2_32.dll_setsockopt
cmp eax, 0xffffffff
je 0x14016b72e
xor eax, eax
jmp 0x14016b733
call sym._ZN3std2io5error5Error13last_os_error17hb635cf4583fc11f5E.1193
nop
add rsp, 0x38
ret

Function at 0x14016c060
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
sub rsp, 0x40
mov ecx, dword [0x1402731b0]
test ecx, ecx
je 0x14016c152
dec ecx
call fcn.1401c03bc
cmp rax, 2
jb 0x14016c090
cmp qword [rax + 8], 0
je 0x14016c090
add rax, 0x10
jmp 0x14016c14c
mov ecx, dword [0x1402731b0]
test ecx, ecx
je 0x14016c165
dec ecx
call fcn.1401c03bc
cmp rax, 1
je 0x14016c14a
test rax, rax
jne 0x14016c110
mov qword [rsp + 0x30], 0
lea rax, dbg.destroy_value_std::sys_common::thread_info::ThreadInfo_
mov qword [rsp + 0x28], rax
movzx eax, byte [0x14039f278]
mov edx, 0x18
xor ecx, ecx
call dbg.process_heap_alloc
test rax, rax
je 0x14016c191
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0x10], rcx
movups xmm0, xmmword [rsp + 0x28]
movups xmmword [rax], xmm0
mov ecx, dword [0x1402731b0]
test ecx, ecx
je 0x14016c178
dec ecx
mov rdx, rax
mov rsi, rax
call fcn.1401c03b4
mov rax, rsi
mov rdx, rax
add rax, 0x10
mov rcx, qword [rdx + 0x10]
cmp qword [rdx + 8], 0
mov qword [rdx + 8], 1
mov qword [rdx + 0x10], 0
je 0x14016c14c
test rcx, rcx
je 0x14016c14c
lock dec qword [rcx]
jne 0x14016c14c
mov rsi, rax
call dbg.drop_slow<std::thread::Inner, alloc::alloc::Global>
mov rax, rsi
jmp 0x14016c14c
xor eax, eax
add rsp, 0x40
pop rsi
ret
lea rcx, dbg.destroy_value_std::sys_common::thread_info::ThreadInfo_
call dbg.init
mov ecx, eax
jmp 0x14016c075
lea rcx, dbg.destroy_value_std::sys_common::thread_info::ThreadInfo_
call dbg.init
mov ecx, eax
jmp 0x14016c0a0
lea rcx, dbg.destroy_value_std::sys_common::thread_info::ThreadInfo_
mov rsi, rax
call dbg.init
mov ecx, eax
mov rax, rsi
jmp 0x14016c102
mov ecx, 8
mov edx, 0x18
call dbg.handle_alloc_error
ud2
Function at 0x14016c270
Capabilities:
Allocate thread local storage

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x60
mov rsi, rcx
cmp qword [rcx], 0
je 0x14016c300
mov rax, qword [dbg.on_tls_callback]
mov dword [rsp + 0x2c], 0
lea rdi, [rsi + 0x10]
lea r8, [rsp + 0x2c]
mov rcx, rdi
xor edx, edx
xor r9d, r9d
call sub.KERNEL32.dll_InitOnceBeginInitialize
mov dword [rsp + 0x28], eax
cmp eax, 1
jne 0x14016c341
cmp dword [rsp + 0x2c], 0
je 0x14016c325
call sub.KERNEL32.dll_TlsAlloc
cmp eax, 0xffffffff
je 0x14016c367
mov ebx, eax
inc eax
mov dword [rsi + 0x18], eax
mov rax, qword [0x14039f238]
nop dword [rax]
mov qword [rsi + 8], rax
lock cmpxchg qword [0x14039f238], rsi
jne 0x14016c2e0
mov rcx, rdi
xor edx, edx
xor r8d, r8d
call sub.KERNEL32.dll_InitOnceComplete
mov eax, ebx
jmp 0x14016c339
call sub.KERNEL32.dll_TlsAlloc
mov dword [rsp + 0x28], eax
cmp eax, 0xffffffff
je 0x14016c3b1
mov ecx, eax
inc ecx
xor eax, eax
lock cmpxchg dword [rsi + 0x18], ecx
jne 0x14016c32a
mov eax, dword [rsp + 0x28]
jmp 0x14016c339
mov eax, dword [rsi + 0x18]
jmp 0x14016c337
mov ecx, dword [rsp + 0x28]
mov esi, eax
call sub.KERNEL32.dll_TlsFree
mov eax, esi
dec eax
add rsp, 0x60
pop rbx
pop rdi
pop rsi
ret
mov qword [rsp + 0x30], 0
lea rdx, [0x14032c2c0]
lea r9, str.library_std_src_syspalwindows_thread_local_key.rs
lea rcx, [rsp + 0x28]
lea r8, [rsp + 0x30]
call dbg.assert_failed<i32, i32>
mov rcx, rdi
mov edx, 4
xor r8d, r8d
call sub.KERNEL32.dll_InitOnceComplete
lea rax, str.out_of_TLS_indexes
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
lea rax, str.Malformed_XML.
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
lea rdx, str.library_std_src_syspalwindows_thread_local_key.rs
lea rcx, [rsp + 0x30]
call dbg.panic_fmt
lea rax, str.out_of_TLS_indexes
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
lea rax, str.Malformed_XML.
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x30]
call dbg.assert_failed<u32, u32>
int3
Function at 0x14016c4f0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
cmp edx, 3
je 0x14016c508
test edx, edx
jne 0x14016c67f
mov rbx, qword [0x14039f238]
test rbx, rbx
je 0x14016c67f
xor r14d, r14d
jmp 0x14016c529
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x14016c55d
mov esi, dword [rbx + 0x18]
mov r15, qword [rbx]
test r15, r15
je 0x14016c6ca
dec esi
mov ecx, esi
call fcn.1401c03bc
test rax, rax
je 0x14016c520
mov rdi, rax
mov ecx, esi
xor edx, edx
call fcn.1401c03b4
mov rcx, rdi
call r15
mov r14b, 1
jmp 0x14016c520
test r14b, 1
je 0x14016c67f
mov rbx, qword [0x14039f238]
test rbx, rbx
je 0x14016c67f
xor r14d, r14d
jmp 0x14016c589
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x14016c5bd
mov esi, dword [rbx + 0x18]
mov r15, qword [rbx]
test r15, r15
je 0x14016c6ca
dec esi
mov ecx, esi
call fcn.1401c03bc
test rax, rax
je 0x14016c580
mov rdi, rax
mov ecx, esi
xor edx, edx
call fcn.1401c03b4
mov rcx, rdi
call r15
mov r14b, 1
jmp 0x14016c580
test r14b, 1
je 0x14016c67f
mov rbx, qword [0x14039f238]
test rbx, rbx
je 0x14016c67f
xor r14d, r14d
jmp 0x14016c5e9
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x14016c61d
mov esi, dword [rbx + 0x18]
mov r15, qword [rbx]
test r15, r15
je 0x14016c6ca
dec esi
mov ecx, esi
call fcn.1401c03bc
test rax, rax
je 0x14016c5e0
mov rdi, rax
mov ecx, esi
xor edx, edx
call fcn.1401c03b4
mov rcx, rdi
call r15
mov r14b, 1
jmp 0x14016c5e0
test r14b, 1
je 0x14016c67f
mov rbx, qword [0x14039f238]
test rbx, rbx
je 0x14016c67f
xor r14d, r14d
jmp 0x14016c649
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x14016c679
mov esi, dword [rbx + 0x18]
mov r15, qword [rbx]
test r15, r15
je 0x14016c6ca
dec esi
mov ecx, esi
call fcn.1401c03bc
test rax, rax
je 0x14016c640
mov rdi, rax
mov ecx, esi
xor edx, edx
call fcn.1401c03b4
mov rcx, rdi
call r15
mov r14b, 1
jmp 0x14016c640
test r14b, 1
jne 0x14016c68b
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov rbx, qword [0x14039f238]
jmp 0x14016c698
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x14016c67f
mov esi, dword [rbx + 0x18]
mov r14, qword [rbx]
test r14, r14
je 0x14016c6ca
dec esi
mov ecx, esi
call fcn.1401c03bc
test rax, rax
je 0x14016c694
mov rdi, rax
mov ecx, esi
xor edx, edx
call fcn.1401c03b4
mov rcx, rdi
call r14
jmp 0x14016c694
lea rcx, str.library_std_src_syspalwindows_thread_local_key.rs
call dbg.unwrap_failed
ud2

Function at 0x14016c6e0
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 0x14016c6f7
dec ecx
jmp 0x14016c701
mov rcx, rsi
call dbg.init
mov ecx, eax
mov edx, 1
call fcn.1401c03b4
cmp qword [rdi + 8], 0
je 0x14016c72a
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x14016c72a
lock dec qword [rax]
jne 0x14016c72a
mov rcx, qword [rdi + 0x10]
call dbg.drop_slow<std::thread::Inner, alloc::alloc::Global>
mov edx, 8
mov rcx, rdi
call sym.__rust_dealloc
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x14016c742
dec ecx
jmp 0x14016c74c
mov rcx, rsi
call dbg.init
mov ecx, eax
xor edx, edx
add rsp, 0x28
pop rdi
pop rsi
jmp fcn.1401c03b4