joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14004d0e0
Capabilities:
Query or enumerate registry value

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x90
mov rsi, r9
mov rdi, rcx
add r8, rdx
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], r8
mov word [rsp + 0x50], 0
mov dword [rsp + 0x58], 1
lea rcx, [rsp + 0x78]
lea rdx, [rsp + 0x40]
call sym._ZN98__LT_alloc..vec..Vec_LT_T_GT__u20_as_u20_alloc..vec..spec_from_iter..SpecFromIter_LT_T_C_I_GT__GT_9from_iter17he6ac80a17d
mov rax, qword [rsp + 0xe0]
add rax, rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rax
mov word [rsp + 0x50], 0
mov dword [rsp + 0x58], 1
lea rcx, [rsp + 0x60]
lea rbx, [rsp + 0x40]
mov rdx, rbx
call sym._ZN98__LT_alloc..vec..Vec_LT_T_GT__u20_as_u20_alloc..vec..spec_from_iter..SpecFromIter_LT_T_C_I_GT__GT_9from_iter17he6ac80a17d
mov rsi, qword [rsp + 0x78]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x20], rbx
mov rcx, rdi
mov rdx, rsi
xor r8d, r8d
mov r9d, 0x20019
call sub.ADVAPI32.dll_RegOpenKeyExW
test eax, eax
je 0x14004d1c2
mov rdx, qword [rsp + 0x68]
test rdx, rdx
je 0x14004d19d
mov rcx, qword [rsp + 0x60]
add rdx, rdx
mov r8d, 2
call sym.__rust_dealloc
mov rdx, qword [rsp + 0x80]
test rdx, rdx
je 0x14004d1bb
add rdx, rdx
mov r8d, 2
mov rcx, rsi
call sym.__rust_dealloc
xor ebx, ebx
jmp 0x14004d256
mov r14, qword [rsp + 0x40]
mov dword [rsp + 0x3c], 4
mov dword [rsp + 0x38], 0
mov rdi, qword [rsp + 0x60]
mov dword [rsp + 0x40], 0
lea rax, [rsp + 0x3c]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
mov rcx, r14
mov rdx, rdi
xor r8d, r8d
call sub.ADVAPI32.dll_RegQueryValueExW
test eax, eax
sete bl
mov r15d, dword [rsp + 0x38]
mov rcx, r14
call fcn.140126474
mov rdx, qword [rsp + 0x68]
test rdx, rdx
je 0x14004d238
add rdx, rdx
mov r8d, 2
mov rcx, rdi
call sym.__rust_dealloc
mov rdx, qword [rsp + 0x80]
test rdx, rdx
je 0x14004d256
add rdx, rdx
mov r8d, 2
mov rcx, rsi
call sym.__rust_dealloc
shl r15, 8
movzx eax, bl
or rax, r15
add rsp, 0x90
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
Function at 0x140052730
Capabilities:
Get local ipv4 addresses

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x90
mov rsi, rcx
mov dword [rsp + 0x30], 0x3c00
mov dword [rsp + 0x34], 0
mov ebp, 4
xor edi, edi
lea r14, [rsp + 0x30]
nop dword [rax]
dec ebp
je 0x140052822
mov edx, dword [rsp + 0x30]
mov rcx, rdi
call sub.msvcrt.dll_realloc
test rax, rax
je 0x1400527b7
mov rbx, rax
mov qword [rsp + 0x20], r14
xor ecx, ecx
mov edx, 0xe
xor r8d, r8d
mov r9, rax
call sub.IPHLPAPI.DLL_GetAdaptersAddresses
mov dword [rsp + 0x34], eax
mov rdi, rbx
cmp eax, 0x6f
je 0x140052760
test eax, eax
jne 0x14005281f
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], rbx
mov qword [rsi], 0
jmp 0x140052894
mov rax, qword [0x140166748]
movzx eax, byte [rax]
mov ecx, 0x32
mov edx, 1
call sym.__rust_alloc
test rax, rax
je 0x1400528a5
mov rbx, rax
movups xmm0, xmmword [0x140133930]
movups xmmword [rax + 0x20], xmm0
movups xmm0, xmmword [0x140133920]
movups xmmword [rax + 0x10], xmm0
movups xmm0, xmmword [str.failed_to_allocate_memory_for_IP_ADAPTER_ADDRESSESGetAdaptersAddresses___failed_with_code]
movups xmmword [rax], xmm0
mov word [rax + 0x30], 0x5345
mov rcx, rdi
call fcn.140127180
mov qword [rsi], rbx
mov qword [rsi + 8], 0x32
mov qword [rsi + 0x10], 0x32
jmp 0x140052894
mov rdi, rbx
lea rax, [rsp + 0x34]
mov qword [rsp + 0x38], rax
lea rax, [sym.core::fmt::num::imp::__impl_core::fmt::Display_for_u32_::fmt::h88a9320d823a9a2a]
mov qword [rsp + 0x40], rax
lea rax, [0x140133970]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 1
mov qword [rsp + 0x80], 0
lea rax, [rsp + 0x38]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], 1
lea rcx, [rsp + 0x48]
lea rdx, [rsp + 0x60]
call dbg.format_inner
mov rax, qword [rsp + 0x58]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [rsp + 0x48]
movups xmmword [rsi], xmm0
mov rcx, rdi
call fcn.140127180
mov rax, rsi
add rsp, 0x90
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
mov ecx, 1
mov edx, 0x32
call dbg.handle_alloc_error
ud2
Function at 0x14005d800
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rsi, rdx
mov rdi, rcx
movups xmm0, xmmword [rdx + 0x20]
movups xmm1, xmmword [rdx + 0x30]
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x40], xmm0
mov rax, qword [rdx + 0x10]
movzx ebp, byte [rdx + 0x18]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x38], bpl
mov rax, qword [0x140166748]
movzx eax, byte [rax]
mov ecx, 0x5f0
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x14005da66
mov rbx, rax
movabs r15, 0x800000000000000
mov r8d, 0x5f0
mov rcx, rax
xor edx, edx
call sub.msvcrt.dll_memset
mov rax, qword [rsi + 0x60]
mov qword [rsp + 0x20], rax
movabs rcx, 0x7465646279746573
movabs rdx, 0x6c7967656e657261
movabs r8, 0xded7d4e2d7dedfc6
movabs r9, 0xa60c596fc19fead0
movabs r10, 0xe414a674f0de7325
nop dword [rax]
mov eax, 1
lock xadd qword [0x140189050], rax
mov r13, rax
xor r13, rcx
lea r11, [rdx + r13]
mov r14, r13
rol r14, 0x10
xor r14, r11
lea r12, [r14 + r8]
rol r14, 0x15
add r13, r9
mov r11, r13
xor r11, r10
rol r13, 0x20
xor rax, r12
add rax, r11
rol r11, 0xd
xor r12, r15
xor r11, rax
rol rax, 0x20
xor r12, r14
add r13, r12
rol r12, 0x10
xor r12, r13
add rax, r12
rol r12, 0x15
add r13, r11
rol r11, 0x11
xor r12, rax
xor r11, r13
rol r13, 0x20
xor rax, r15
add rax, r11
rol r11, 0xd
xor r11, rax
rol rax, 0x20
xor r13, 0xff
add r13, r12
rol r12, 0x10
xor r12, r13
add rax, r12
rol r12, 0x15
add r13, r11
rol r11, 0x11
xor r11, r13
rol r13, 0x20
xor r12, rax
add rax, r11
rol r11, 0xd
xor r11, rax
rol rax, 0x20
add r13, r12
rol r12, 0x10
xor r12, r13
add rax, r12
rol r12, 0x15
add r13, r11
rol r11, 0x11
xor r11, r13
rol r13, 0x20
xor r12, rax
add rax, r11
rol r11, 0xd
add r13, r12
rol r12, 0x10
xor r12, r13
rol r12, 0x15
xor r11, rax
add r13, r11
rol r11, 0x11
mov rax, r13
rol rax, 0x20
xor rax, r11
xor rax, r12
xor rax, r13
je 0x14005d8c0
mov rcx, qword [rsi + 0x40]
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movups xmmword [rdi + 0x128], xmm1
movups xmmword [rdi + 0x118], xmm0
mov rdx, qword [rsp + 0x28]
mov qword [rdi + 0x138], rdx
mov byte [rdi + 0x140], bpl
mov qword [rdi], 0
mov qword [rdi + 8], rbx
mov qword [rdi + 0x80], 0
mov qword [rdi + 0x88], rbx
mov rdx, qword [rsp + 0x20]
mov qword [rdi + 0x100], rdx
mov qword [rdi + 0x108], rax
mov qword [rdi + 0x110], rcx
mov rcx, qword [rsi + 0x48]
test rcx, rcx
je 0x14005da52
mov rdx, qword [rsi + 0x50]
test rdx, rdx
je 0x14005da52
mov r8d, 1
call sym.__rust_dealloc
mov rax, rdi
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 8
mov edx, 0x5f0
call dbg.handle_alloc_error
ud2

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

Disassembly:
mov rdx, rcx
lea rcx, sym.std::sys::common::thread_local::os_local::destroy_value::he79189e344252842
jmp sym.std::sys::common::thread_local::os_local::Key_T_::get::h9f711f576658fc99
Function at 0x140062420
Capabilities:
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rdi, qword [rcx]
mov rsi, qword [rdi]
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x140062437
dec ecx
jmp 0x140062441
mov rcx, rsi
call sym.std::sys::windows::thread_local_key::StaticKey::init::h2de08b4a932e6024
mov ecx, eax
mov edx, 1
call fcn.140126534
mov edx, 0x28
mov r8d, 8
mov rcx, rdi
call sym.__rust_dealloc
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x140062469
dec ecx
jmp 0x140062473
mov rcx, rsi
call sym.std::sys::windows::thread_local_key::StaticKey::init::h2de08b4a932e6024
mov ecx, eax
xor esi, esi
xor edx, edx
call fcn.140126534
mov rax, rsi
add rsp, 0x28
pop rdi
pop rsi
ret

Function at 0x1400624b0
Capabilities:
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rdi, qword [rcx]
mov rsi, qword [rdi]
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x1400624c7
dec ecx
jmp 0x1400624d1
mov rcx, rsi
call sym.std::sys::windows::thread_local_key::StaticKey::init::h2de08b4a932e6024
mov ecx, eax
mov edx, 1
call fcn.140126534
mov edx, 0x18
mov r8d, 8
mov rcx, rdi
call sym.__rust_dealloc
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x1400624f9
dec ecx
jmp 0x140062503
mov rcx, rsi
call sym.std::sys::windows::thread_local_key::StaticKey::init::h2de08b4a932e6024
mov ecx, eax
xor esi, esi
xor edx, edx
call fcn.140126534
mov rax, rsi
add rsp, 0x28
pop rdi
pop rsi
ret

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

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rdx
mov rdi, rcx
mov ecx, dword [rcx + 0x18]
test ecx, ecx
je 0x1400657e1
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x1400657f6
cmp qword [rax + 8], 0
je 0x1400657f6
add rax, 0x10
jmp 0x1400658a0
mov rcx, rdi
call sym.std::sys::windows::thread_local_key::StaticKey::init::h2de08b4a932e6024
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
ja 0x1400657d1
mov ecx, dword [rdi + 0x18]
test ecx, ecx
je 0x140065885
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x14006589e
mov rbx, rax
test rax, rax
jne 0x140065857
mov rax, qword [0x140166748]
movzx eax, byte [rax]
mov ecx, 0x18
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x1400658b4
mov rbx, rax
mov qword [rax], rdi
mov qword [rax + 8], 0
mov ecx, dword [rdi + 0x18]
test ecx, ecx
je 0x1400658a8
dec ecx
mov rdx, rbx
call fcn.140126534
test rsi, rsi
je 0x140065871
mov rcx, qword [rsi]
mov qword [rsi], 0
test rcx, rcx
je 0x140065873
mov rcx, qword [rsi + 8]
jmp 0x140065873
xor ecx, ecx
lea rax, [rbx + 0x10]
mov qword [rbx + 8], 1
mov qword [rbx + 0x10], rcx
jmp 0x1400658a0
mov rcx, rdi
call sym.std::sys::windows::thread_local_key::StaticKey::init::h2de08b4a932e6024
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jne 0x140065812
xor eax, eax
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
mov rcx, rdi
call sym.std::sys::windows::thread_local_key::StaticKey::init::h2de08b4a932e6024
mov ecx, eax
jmp 0x14006584f
mov ecx, 8
mov edx, 0x18
call dbg.handle_alloc_error
ud2
Function at 0x1400658d0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x30
mov rsi, rdx
mov rbx, rcx
mov ecx, dword [rcx + 0x18]
test ecx, ecx
je 0x140065901
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x140065916
cmp qword [rax + 8], 0
je 0x140065916
add rax, 0x10
jmp 0x140065a09
mov rcx, rbx
call sym.std::sys::windows::thread_local_key::StaticKey::init::h2de08b4a932e6024
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
ja 0x1400658f1
mov ecx, dword [rbx + 0x18]
test ecx, ecx
je 0x1400659ee
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x140065a07
mov rdi, rax
test rax, rax
jne 0x14006597f
mov rax, qword [0x140166748]
movzx eax, byte [rax]
mov ecx, 0x28
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x140065a20
mov rdi, rax
mov qword [rax], rbx
mov qword [rax + 8], 0
mov ecx, dword [rbx + 0x18]
test ecx, ecx
je 0x140065a11
dec ecx
mov rdx, rdi
call fcn.140126534
test rsi, rsi
je 0x1400659b7
mov rax, qword [rsi]
mov qword [rsi], 0
cmp rax, 1
jne 0x1400659b7
mov r9, qword [rsi + 8]
movzx r8d, byte [rsi + 0x10]
movzx edx, byte [rsi + 0x11]
movzx eax, word [rsi + 0x16]
mov word [rsp + 0x2c], ax
mov eax, dword [rsi + 0x12]
mov dword [rsp + 0x28], eax
mov rcx, qword [rsi + 0x18]
jmp 0x1400659c1
xor ecx, ecx
xor edx, edx
xor r8d, r8d
xor r9d, r9d
mov qword [rdi + 8], 1
lea rax, [rdi + 0x10]
mov qword [rdi + 0x10], r9
mov byte [rdi + 0x18], r8b
mov byte [rdi + 0x19], dl
mov edx, dword [rsp + 0x28]
mov dword [rdi + 0x1a], edx
movzx edx, word [rsp + 0x2c]
mov word [rdi + 0x1e], dx
mov qword [rdi + 0x20], rcx
jmp 0x140065a09
mov rcx, rbx
call sym.std::sys::windows::thread_local_key::StaticKey::init::h2de08b4a932e6024
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jne 0x140065932
xor eax, eax
add rsp, 0x30
pop rbx
pop rdi
pop rsi
ret
mov rcx, rbx
call sym.std::sys::windows::thread_local_key::StaticKey::init::h2de08b4a932e6024
mov ecx, eax
jmp 0x140065977
mov ecx, 8
mov edx, 0x28
call dbg.handle_alloc_error
ud2
Function at 0x140066540
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rsi, rdx
mov rdi, rcx
mov ecx, dword [rcx + 0x18]
test ecx, ecx
je 0x140066576
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x14006658b
mov r14, rax
cmp qword [rax + 8], 0
je 0x14006658b
add r14, 0x10
jmp 0x140066681
mov rcx, rdi
call sym.std::sys::windows::thread_local_key::StaticKey::init::h2de08b4a932e6024
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
ja 0x140066563
mov ecx, dword [rdi + 0x18]
test ecx, ecx
je 0x140066665
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
je 0x14006667e
mov rbx, rax
test rax, rax
jne 0x1400665f4
mov rax, qword [0x140166748]
movzx eax, byte [rax]
mov ecx, 0x18
mov edx, 8
call sym.__rust_alloc
test rax, rax
je 0x1400666a4
mov rbx, rax
mov qword [rax], rdi
mov qword [rax + 8], 0
mov ecx, dword [rdi + 0x18]
test ecx, ecx
je 0x140066695
dec ecx
mov rdx, rbx
call fcn.140126534
test rsi, rsi
je 0x14006660a
mov rax, qword [rsi + 8]
cmp qword [rsi], 0
mov qword [rsi], 0
jne 0x140066621
movzx eax, byte [0x140189068]
test al, al
je 0x14006668e
lea rcx, [0x140189060]
call sym.crossbeam_epoch::internal::Local::register::h7dc78910471d5bed
lea r14, [rbx + 0x10]
mov rcx, qword [rbx + 0x10]
cmp qword [rbx + 8], 0
mov qword [rbx + 8], 1
mov qword [rbx + 0x10], rax
je 0x140066681
mov rax, qword [rcx + 0x828]
lea rdx, [rax - 1]
mov qword [rcx + 0x828], rdx
cmp qword [rcx + 0x820], 0
jne 0x140066681
cmp rax, 1
jne 0x140066681
call sym.crossbeam_epoch::internal::Local::finalize::hf6c3cf9098651492
jmp 0x140066681
mov rcx, rdi
call sym.std::sys::windows::thread_local_key::StaticKey::init::h2de08b4a932e6024
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jne 0x1400665a7
xor r14d, r14d
mov rax, r14
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
call sym._ZN15crossbeam_epoch4sync9once_lock17OnceLock_LT_T_GT_10initialize17hd9bbcd2ebdbdc507E.llvm.17349314972647688896
jmp 0x140066615
mov rcx, rdi
call sym.std::sys::windows::thread_local_key::StaticKey::init::h2de08b4a932e6024
mov ecx, eax
jmp 0x1400665ec
mov ecx, 8
mov edx, 0x18
call dbg.handle_alloc_error
ud2

Function at 0x1400666d0
Capabilities:
Set thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x68
mov rsi, rcx
mov rdi, qword [rcx]
mov ecx, dword [rdi + 0x18]
test ecx, ecx
je 0x1400666e7
dec ecx
jmp 0x1400666f1
mov rcx, rdi
call sym.std::sys::windows::thread_local_key::StaticKey::init::h2de08b4a932e6024
mov ecx, eax
mov edx, 1
call fcn.140126534
cmp qword [rsi + 8], 0
je 0x14006672d
mov rcx, qword [rsi + 0x10]
mov rax, qword [rcx + 0x828]
lea rdx, [rax - 1]
mov qword [rcx + 0x828], rdx
cmp qword [rcx + 0x820], 0
jne 0x14006672d
cmp rax, 1
jne 0x14006672d
call sym.crossbeam_epoch::internal::Local::finalize::hf6c3cf9098651492
mov edx, 0x18
mov r8d, 8
mov rcx, rsi
call sym.__rust_dealloc
mov ecx, dword [rdi + 0x18]
test ecx, ecx
je 0x14006674b
dec ecx
jmp 0x140066755
mov rcx, rdi
call sym.std::sys::windows::thread_local_key::StaticKey::init::h2de08b4a932e6024
mov ecx, eax
xor edx, edx
call fcn.140126534
nop
add rsp, 0x68
pop rdi
pop rsi
ret
Function at 0x14006a250
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
mov rdx, rcx
lea rcx, sym.std::sys::common::thread_local::os_local::destroy_value::hbdd761a9374aa9b3
jmp sym.std::sys::common::thread_local::os_local::Key_T_::get::h993661f18c4584b4

Function at 0x14006c290
Capabilities:
Initialize winsock library

Disassembly:
push rsi
push rdi
sub rsp, 0x1f8
mov rax, qword [rcx]
mov rdi, qword [rax]
mov qword [rax], 0
test rdi, rdi
je 0x14006c2e8
lea rsi, [rsp + 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 [rsp + 0x2c], eax
test eax, eax
jne 0x14006c302
lea rax, [0x140126a8c]
mov qword [rdi], rax
add rsp, 0x1f8
pop rdi
pop rsi
ret
lea rcx, [0x140138ef0]
lea r8, str.library_std_src_synconce.rs
mov edx, 0x2b
call dbg.panic
ud2
mov qword [rsp + 0x30], 0
lea rdx, [0x14013e250]
lea r9, str.library_std_src_syswindows_net.rs
lea rcx, [rsp + 0x2c]
lea r8, [rsp + 0x30]
call dbg.assert_failed<i32, i32>
ud2

Function at 0x14008c280
Capabilities:
Get system information on windows

Disassembly:
push rsi
sub rsp, 0x50
mov rsi, rcx
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x20], xmm0
lea rcx, [rsp + 0x20]
call sub.KERNEL32.dll_GetSystemInfo
mov eax, dword [rsp + 0x40]
test rax, rax
je 0x14008c2b5
mov qword [rsi + 8], rax
xor eax, eax
jmp 0x14008c2c5
lea rax, str.The_number_of_hardware_threads_is_not_known_for_the_target_platform
mov qword [rsi + 8], rax
mov eax, 1
mov qword [rsi], rax
mov rax, rsi
add rsp, 0x50
pop rsi
ret
Function at 0x14008dca0
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x468
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x30], 2
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
mov r8d, 0x200
mov eax, 2
mov qword [rsp + 0x20], rax
xor esi, esi
mov r14d, 0xffffffff
xor edi, edi
xor r15d, r15d
cmp r8, 0x201
jae 0x14008dd20
jmp 0x14008dd0f
jae 0x14008ddc4
cmp r8, 0x201
jae 0x14008dd20
mov r12d, 0x200
lea r13, [rsp + 0x68]
mov rbp, r8
jmp 0x14008dd67
sub r8, r15
sub rdi, r15
cmp rdi, r8
jae 0x14008dd47
lea rcx, [rsp + 0x30]
mov rdx, r15
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::h2bdf9a6d8105bb54
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov rsi, qword [rsp + 0x38]
cmp rsi, r14
mov r15d, 0xffffffff
cmovb r15, rsi
mov qword [rsp + 0x40], r15
mov rdi, rsi
mov r12, r15
mov r13, qword [rsp + 0x20]
mov rbp, r15
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov ecx, ebp
mov rdx, r13
call sub.KERNEL32.dll_GetCurrentDirectoryW
mov ebx, eax
test eax, eax
jne 0x14008dd8b
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x14008de22
mov r8d, ebx
cmp rbp, r8
jne 0x14008dd00
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x14008de42
add rbp, rbp
cmp rbp, r14
cmovae rbp, r14
mov r8, rbp
cmp r8, 0x201
jb 0x14008dd0f
jmp 0x14008dd20
cmp r12, r8
jb 0x14008de5c
lea rcx, [rsp + 0x48]
mov rdx, r13
call dbg.from_wide
movups xmm0, xmmword [rsp + 0x48]
movups xmm1, xmmword [rsp + 0x58]
mov rdi, qword [rsp + 0x28]
movups xmmword [rdi + 0x10], xmm1
movups xmmword [rdi], xmm0
test rsi, rsi
je 0x14008de0b
add rsi, rsi
mov r8d, 2
mov rcx, qword [rsp + 0x20]
mov rdx, rsi
call sym.__rust_dealloc
mov rax, rdi
add rsp, 0x468
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov rdi, qword [rsp + 0x28]
mov qword [rdi], rax
mov byte [rdi + 0x18], 2
test rsi, rsi
jne 0x14008ddf5
jmp 0x14008de0b
lea rcx, str.internal_error:_entered_unreachable_code_
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call dbg.panic
jmp 0x14008de71
lea rax, str.library_std_src_syswindowsmod.rs
mov rcx, r8
mov rdx, r12
mov r8, rax
call dbg.slice_end_index_len_fail
ud2

Function at 0x14008deb0
Capabilities:
Query environment variable

Disassembly:
push rsi
sub rsp, 0x70
call sub.KERNEL32.dll_GetEnvironmentStringsW
test rax, rax
je 0x14008dec8
mov rdx, rax
add rsp, 0x70
pop rsi
ret
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x28]
mov qword [rsp + 0x30], rax
lea rax, [sym.__std::io::error::Error_as_core::fmt::Display_::fmt::h777c0ce01dc2e028]
mov qword [rsp + 0x38], rax
lea rax, str.failure_getting_env_string_from_OS:
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 1
mov qword [rsp + 0x60], 0
lea rax, [rsp + 0x30]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 1
lea rdx, str.library_std_src_syswindowsos.rs
lea rcx, [rsp + 0x40]
call dbg.panic_fmt
ud2
Function at 0x14008e890
Capabilities:
Set environment variable

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0xa8
mov r14, r9
mov r15, r8
mov r8, rdx
mov rdx, rcx
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r9
lea rsi, [rsp + 0x28]
mov rcx, rsi
call sym.std::sys::windows::to_u16s::inner::h36a8adcb91ede8d9
mov rbx, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
test rbx, rbx
je 0x14008e914
lea rcx, [rsp + 0x28]
mov rdx, r15
mov r8, r14
call sym.std::sys::windows::to_u16s::inner::h36a8adcb91ede8d9
mov r12, qword [rsp + 0x28]
mov r15, qword [rsp + 0x30]
test r12, r12
je 0x14008e919
mov rcx, rbx
mov rdx, r12
call sub.KERNEL32.dll_SetEnvironmentVariableW
test eax, eax
je 0x14008e91e
xor r14d, r14d
test r15, r15
jne 0x14008e933
jmp 0x14008e947
mov r14, rdi
jmp 0x14008e960
mov r14, r15
jmp 0x14008e947
call sub.KERNEL32.dll_GetLastError
mov r14d, eax
shl r14, 0x20
or r14, 2
test r15, r15
je 0x14008e947
add r15, r15
mov r8d, 2
mov rcx, r12
mov rdx, r15
call sym.__rust_dealloc
test rdi, rdi
je 0x14008e960
add rdi, rdi
mov r8d, 2
mov rcx, rbx
mov rdx, rdi
call sym.__rust_dealloc
test r14, r14
jne 0x14008e976
add rsp, 0xa8
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov qword [rsp + 0x20], r14
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
lea rax, [sym.__std::path::Display_as_core::fmt::Debug_::fmt::h7e2d7c98dd80582f]
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x20]
mov qword [rsp + 0x48], rax
lea rax, [sym.__std::io::error::Error_as_core::fmt::Display_::fmt::h777c0ce01dc2e028]
mov qword [rsp + 0x50], rax
lea rax, [0x14013ae48]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 3
mov qword [rsp + 0x98], 0
mov qword [rsp + 0x88], rsi
mov qword [rsp + 0x90], 3
lea rdx, [0x14013ae78]
lea rcx, [rsp + 0x78]
call dbg.panic_fmt
ud2
Function at 0x14008ea40
Capabilities:
Set environment variable

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x90
mov r8, rdx
mov rdx, rcx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], r8
lea rcx, [rsp + 0x40]
call sym.std::sys::windows::to_u16s::inner::h36a8adcb91ede8d9
mov rbx, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
test rbx, rbx
je 0x14008eaad
xor esi, esi
mov rcx, rbx
xor edx, edx
call sub.KERNEL32.dll_SetEnvironmentVariableW
test eax, eax
jne 0x14008ea92
call sub.KERNEL32.dll_GetLastError
mov esi, eax
shl rsi, 0x20
or rsi, 2
test rdi, rdi
je 0x14008eab0
add rdi, rdi
mov r8d, 2
mov rcx, rbx
mov rdx, rdi
call sym.__rust_dealloc
jmp 0x14008eab0
mov rsi, rdi
test rsi, rsi
jne 0x14008eac0
add rsp, 0x90
pop rbx
pop rdi
pop rsi
ret
mov qword [rsp + 0x28], rsi
lea rax, [rsp + 0x30]
mov qword [rsp + 0x70], rax
lea rax, [sym.__std::path::Display_as_core::fmt::Debug_::fmt::h7e2d7c98dd80582f]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x28]
mov qword [rsp + 0x80], rax
lea rax, [sym.__std::io::error::Error_as_core::fmt::Display_::fmt::h777c0ce01dc2e028]
mov qword [rsp + 0x88], rax
lea rax, str.failed_to_remove_environment_variable__
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 2
mov qword [rsp + 0x60], 0
lea rax, [rsp + 0x70]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 2
lea rdx, [0x14013aed8]
lea rcx, [rsp + 0x40]
call dbg.panic_fmt
ud2