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

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov rsi, rcx
cmp qword [rcx], 0
je 0x140109e70
mov rax, qword [sym.std::sys::pal::windows::thread_local_key::on_tls_callback::h7de7f354ec791acb]
mov dword [rbp], 0
lea rdi, [rsi + 0x10]
mov r8, rbp
mov rcx, rdi
xor edx, edx
xor r9d, r9d
call sub.kernel32.dll_InitOnceBeginInitialize
mov dword [rbp + 4], eax
cmp eax, 1
jne 0x140109eaf
cmp dword [rbp], 0
je 0x140109e93
call sub.kernel32.dll_TlsAlloc
cmp eax, 0xffffffff
je 0x140109ed2
mov ebx, eax
inc eax
mov dword [rsi + 0x18], eax
mov rax, qword [0x1402ac1b8]
nop word cs:[rax + rax]
mov qword [rsi + 8], rax
lock cmpxchg qword [0x1402ac1b8], rsi
jne 0x140109e50
mov rcx, rdi
xor edx, edx
xor r8d, r8d
call sub.kernel32.dll_InitOnceComplete
mov eax, ebx
jmp 0x140109ea6
call sub.kernel32.dll_TlsAlloc
mov dword [rbp + 4], eax
cmp eax, 0xffffffff
je 0x140109f14
mov ecx, eax
inc ecx
xor eax, eax
lock cmpxchg dword [rsi + 0x18], ecx
jne 0x140109e98
mov eax, dword [rbp + 4]
jmp 0x140109ea6
mov eax, dword [rsi + 0x18]
jmp 0x140109ea4
mov ecx, dword [rbp + 4]
mov esi, eax
call sub.kernel32.dll_TlsFree
mov eax, esi
dec eax
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop rbp
ret
mov qword [rbp - 0x30], 0
lea rdx, [0x14023f158]
lea r9, str.library_std_src_syspalwindows_thread_local_key.rs
lea rcx, [rbp + 4]
lea r8, [rbp - 0x30]
call sym.core::panicking::assert_failed::h6e198971118ba248
mov rcx, rdi
mov edx, 4
xor r8d, r8d
call sub.kernel32.dll_InitOnceComplete
lea rax, str.out_of_TLS_indexes
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], 1
mov qword [rbp - 0x20], 8
xorps xmm0, xmm0
movups xmmword [rbp - 0x18], xmm0
lea rdx, str.library_std_src_syspalwindows_thread_local_key.rs
lea rcx, [rbp - 0x30]
call sym.core::panicking::panic_fmt::hef8d393888d5abbc
lea rax, str.out_of_TLS_indexes
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], 1
mov qword [rbp - 0x20], 8
xorps xmm0, xmm0
movups xmmword [rbp - 0x18], xmm0
lea rcx, [rbp + 4]
lea rdx, [rbp - 0x30]
call sym.core::panicking::assert_failed::h2e32f8735df046c0
int3
Function at 0x14010a070
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
cmp edx, 3
je 0x14010a08e
test edx, edx
jne 0x14010a20f
mov rbx, qword [0x1402ac1b8]
test rbx, rbx
je 0x14010a20f
xor r14d, r14d
jmp 0x14010a0b9
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x14010a0ed
mov esi, dword [rbx + 0x18]
mov r15, qword [rbx]
test r15, r15
je 0x14010a25b
dec esi
mov ecx, esi
call fcn.14015714c
test rax, rax
je 0x14010a0b0
mov rdi, rax
mov ecx, esi
xor edx, edx
call fcn.140157154
mov rcx, rdi
call r15
mov r14b, 1
jmp 0x14010a0b0
test r14b, 1
je 0x14010a20f
mov rbx, qword [0x1402ac1b8]
test rbx, rbx
je 0x14010a20f
xor r14d, r14d
jmp 0x14010a119
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x14010a14d
mov esi, dword [rbx + 0x18]
mov r15, qword [rbx]
test r15, r15
je 0x14010a25b
dec esi
mov ecx, esi
call fcn.14015714c
test rax, rax
je 0x14010a110
mov rdi, rax
mov ecx, esi
xor edx, edx
call fcn.140157154
mov rcx, rdi
call r15
mov r14b, 1
jmp 0x14010a110
test r14b, 1
je 0x14010a20f
mov rbx, qword [0x1402ac1b8]
test rbx, rbx
je 0x14010a20f
xor r14d, r14d
jmp 0x14010a179
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x14010a1ad
mov esi, dword [rbx + 0x18]
mov r15, qword [rbx]
test r15, r15
je 0x14010a25b
dec esi
mov ecx, esi
call fcn.14015714c
test rax, rax
je 0x14010a170
mov rdi, rax
mov ecx, esi
xor edx, edx
call fcn.140157154
mov rcx, rdi
call r15
mov r14b, 1
jmp 0x14010a170
test r14b, 1
je 0x14010a20f
mov rbx, qword [0x1402ac1b8]
test rbx, rbx
je 0x14010a20f
xor r14d, r14d
jmp 0x14010a1d9
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x14010a209
mov esi, dword [rbx + 0x18]
mov r15, qword [rbx]
test r15, r15
je 0x14010a25b
dec esi
mov ecx, esi
call fcn.14015714c
test rax, rax
je 0x14010a1d0
mov rdi, rax
mov ecx, esi
xor edx, edx
call fcn.140157154
mov rcx, rdi
call r15
mov r14b, 1
jmp 0x14010a1d0
test r14b, 1
jne 0x14010a21c
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
mov rbx, qword [0x1402ac1b8]
jmp 0x14010a229
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x14010a20f
mov esi, dword [rbx + 0x18]
mov r14, qword [rbx]
test r14, r14
je 0x14010a25b
dec esi
mov ecx, esi
call fcn.14015714c
test rax, rax
je 0x14010a225
mov rdi, rax
mov ecx, esi
xor edx, edx
call fcn.140157154
mov rcx, rdi
call r14
jmp 0x14010a225
lea rcx, str.library_std_src_syspalwindows_thread_local_key.rs
call sym.core::option::unwrap_failed::h9762a13207486022
ud2
Function at 0x14010a270
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 0x14010a28d
dec ecx
jmp 0x14010a297
mov rcx, rsi
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h76a98b32ece36886
mov ecx, eax
mov edx, 1
call fcn.140157154
cmp qword [rdi + 8], 0
je 0x14010a2c0
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x14010a2c0
lock dec qword [rax]
jne 0x14010a2c0
mov rcx, qword [rdi + 0x10]
call sym.alloc::sync::Arc_T_A_::drop_slow::h5b4d1ff3152dafd5
mov edx, 8
mov rcx, rdi
call sym.__rust_dealloc
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x14010a2d8
dec ecx
jmp 0x14010a2e2
mov rcx, rsi
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h76a98b32ece36886
mov ecx, eax
xor edx, edx
add rsp, 0x20
pop rdi
pop rsi
pop rbp
jmp fcn.140157154

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

Disassembly:
push rbp
push rsi
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov ecx, dword [0x1401ca530]
test ecx, ecx
je 0x14010a6bd
dec ecx
call fcn.14015714c
cmp rax, 2
jb 0x14010a64c
cmp byte [rax + 8], 0
jne 0x14010a6ae
mov ecx, dword [0x1401ca530]
test ecx, ecx
je 0x14010a6d0
dec ecx
call fcn.14015714c
cmp rax, 1
je 0x14010a6b4
test rax, rax
jne 0x14010a6a8
movzx eax, byte [0x1402ac208]
mov edx, 0x10
xor ecx, ecx
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h54baaa069cfd9f2e
test rax, rax
je 0x14010a6f9
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h5a628db256e6f7e2
mov qword [rax], rcx
mov byte [rax + 8], 0
mov ecx, dword [0x1401ca530]
test ecx, ecx
je 0x14010a6e3
dec ecx
mov rdx, rax
mov rsi, rax
call fcn.140157154
mov rax, rsi
mov word [rax + 8], 1
add rax, 9
jmp 0x14010a6b6
xor eax, eax
add rsp, 0x28
pop rsi
pop rbp
ret
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h5a628db256e6f7e2
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h76a98b32ece36886
mov ecx, eax
jmp 0x14010a63b
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h5a628db256e6f7e2
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h76a98b32ece36886
mov ecx, eax
jmp 0x14010a658
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h5a628db256e6f7e2
mov rsi, rax
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h76a98b32ece36886
mov ecx, eax
mov rax, rsi
jmp 0x14010a69a
mov ecx, 8
mov edx, 0x10
call sym.alloc::alloc::handle_alloc_error::hd693885652fa1428
int3
Function at 0x14010ab50
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rbp
push rsi
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov ecx, dword [0x1401ca510]
test ecx, ecx
je 0x14010ac14
dec ecx
call fcn.14015714c
cmp rax, 2
jb 0x14010ab86
cmp qword [rax + 8], 0
je 0x14010ab86
add rax, 0x10
jmp 0x14010ac0d
mov ecx, dword [0x1401ca510]
test ecx, ecx
je 0x14010ac27
dec ecx
call fcn.14015714c
cmp rax, 1
je 0x14010ac0b
test rax, rax
jne 0x14010abee
movzx eax, byte [0x1402ac208]
mov edx, 0x20
xor ecx, ecx
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h54baaa069cfd9f2e
test rax, rax
je 0x14010ac50
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h5a628db256e6f7e2
mov qword [rax], rcx
mov qword [rax + 8], 0
mov ecx, dword [0x1401ca510]
test ecx, ecx
je 0x14010ac3a
dec ecx
mov rdx, rax
mov rsi, rax
call fcn.140157154
mov rax, rsi
mov qword [rax + 8], 1
mov rcx, rax
add rax, 0x10
mov qword [rcx + 0x10], 0
mov byte [rcx + 0x18], 0
jmp 0x14010ac0d
xor eax, eax
add rsp, 0x28
pop rsi
pop rbp
ret
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h5a628db256e6f7e2
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h76a98b32ece36886
mov ecx, eax
jmp 0x14010ab6b
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h5a628db256e6f7e2
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h76a98b32ece36886
mov ecx, eax
jmp 0x14010ab96
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::h5a628db256e6f7e2
mov rsi, rax
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h76a98b32ece36886
mov ecx, eax
mov rax, rsi
jmp 0x14010abe0
mov ecx, 8
mov edx, 0x20
call sym.alloc::alloc::handle_alloc_error::hd693885652fa1428
int3

Function at 0x14010acc0
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 0x14010acdd
dec ecx
jmp 0x14010ace7
mov rcx, rsi
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h76a98b32ece36886
mov ecx, eax
mov edx, 1
call fcn.140157154
mov edx, 8
mov rcx, rdi
call sym.__rust_dealloc
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x14010ad09
dec ecx
jmp 0x14010ad13
mov rcx, rsi
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h76a98b32ece36886
mov ecx, eax
xor edx, edx
add rsp, 0x20
pop rdi
pop rsi
pop rbp
jmp fcn.140157154
Function at 0x14010ca90
Capabilities:
Get common file path

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x488
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x3e8], rcx
mov qword [rbp + 0x3f0], 0
mov qword [rbp + 0x3f8], 2
mov qword [rbp + 0x400], 0
mov r8d, 0x200
mov eax, 2
mov qword [rbp + 0x3e0], rax
xor esi, esi
xor edi, edi
xor ebx, ebx
cmp r8, 0x201
jae 0x14010cb20
jmp 0x14010cb0f
jae 0x14010cbdb
cmp r8, 0x201
jae 0x14010cb20
mov r14d, 0x200
lea r15, [rbp - 0x60]
mov r12, r8
jmp 0x14010cb77
sub r8, rbx
sub rdi, rbx
cmp rdi, r8
jae 0x14010cb4f
lea rcx, [rbp + 0x3f0]
mov rdx, rbx
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::h360f96ef798c46de
mov rsi, qword [rbp + 0x3f0]
mov rax, qword [rbp + 0x3f8]
mov qword [rbp + 0x3e0], rax
mov eax, 0xffffffff
cmp rsi, rax
mov ebx, 0xffffffff
cmovb rbx, rsi
mov qword [rbp + 0x400], rbx
mov rdi, rsi
mov r14, rbx
mov r15, qword [rbp + 0x3e0]
mov r12, rbx
xor ecx, ecx
call sub.kernel32.dll_SetLastError
mov ecx, r12d
mov rdx, r15
call sub.kernel32.dll_GetCurrentDirectoryW
mov r13d, eax
test eax, eax
jne 0x14010cb9d
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x14010cc4d
mov r8d, r13d
cmp r12, r8
jne 0x14010cb00
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x14010cc7e
add r12, r12
mov eax, 0xffffffff
cmp r12, rax
cmovae r12, rax
mov r8, r12
cmp r8, 0x201
jb 0x14010cb0f
jmp 0x14010cb20
cmp r14, r8
jb 0x14010cc98
lea rcx, [rbp + 0x3c0]
mov rdx, r15
call sym.__std::ffi::os_str::OsString_as_std::os::windows::ffi::OsStringExt_::from_wide::h43df8540eb0de255
movups xmm0, xmmword [rbp + 0x3c0]
movups xmm1, xmmword [rbp + 0x3d0]
movaps xmmword [rbp + 0x3b0], xmm1
movaps xmmword [rbp + 0x3a0], xmm0
mov rax, qword [rbp + 0x3e8]
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
cmp qword [rbp + 0x3f0], 0
je 0x14010cc38
mov rcx, qword [rbp + 0x3f8]
mov edx, 2
call sym.__rust_dealloc
nop
add rsp, 0x488
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call sub.kernel32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov rcx, qword [rbp + 0x3e8]
mov qword [rcx + 8], rax
movabs rax, 0x8000000000000000
mov qword [rcx], rax
cmp qword [rbp + 0x3f0], 0
jne 0x14010cc27
jmp 0x14010cc38
lea rcx, str.internal_error:_entered_unreachable_codecannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_7f2fc33da6633f5a764ddc263c769b6b2873d167library_std_src_threadlocal.rs
lea r8, str.library_std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov edx, 0x28
call sym.core::panicking::panic::hf6fd3ad2f9225230
jmp 0x14010ccad
lea rax, str.library_std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov rcx, r8
mov rdx, r14
mov r8, rax
call sym.core::slice::index::slice_end_index_len_fail::h4c376ee8536a9e87
ud2
Function at 0x140110950
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::h5f3455c4c015c021
mov rdi, rdx
test rax, rax
je 0x1401109db
mov qword [rbp - 0x40], 1
lea rcx, [rbp - 0x38]
mov qword [rbp - 0x38], rdi
call sym.core::ptr::drop_in_place_std::io::error::Error_::h1101bbc27c16f6e8
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::h32ef09e2d6f2c8f6
cmp dword [rbp + 8], 2
jne 0x1401109ff
mov rax, qword [rbp + 0x10]
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x40], 2
jmp 0x140110a2e
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 0x140110a57
lea rcx, [rbp - 0x38]
call sym.core::ptr::drop_in_place_std::io::error::Error_::h1101bbc27c16f6e8
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 fcn.140156eec
mov r12, qword [rbp - 8]
test rdi, rdi
je 0x140110aa5
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 0x140110b21
mov rbx, qword [rbp - 0x40]
jmp 0x140110aa7
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 0x140110b10
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 fcn.140156eec
test r15, r15
je 0x140110b10
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], r12
mov qword [rsi], 1
jmp 0x140110b4a
mov qword [rsi], 0
mov rcx, rbx
call fcn.140156eec
jmp 0x140110b4a
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_::h1101bbc27c16f6e8
mov qword [rsi], 0
mov rcx, rdi
call fcn.140156eec
jmp 0x1401109c9
Function at 0x140129f40
Capabilities:
Query environment variable

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x498
lea rbp, [rsp + 0x80]
mov rsi, rcx
movabs rdi, 0x8000000000000000
lea rcx, [rbp - 0x60]
call sym.std::sys::pal::windows::to_u16s::inner::h89be131796146338
mov rax, qword [rbp - 0x60]
cmp rax, rdi
jne 0x140129f8b
lea rcx, [rbp - 0x58]
call sym.core::ptr::drop_in_place_std::io::error::Error_::h1101bbc27c16f6e8
mov qword [rsi], rdi
jmp 0x14012a1c4
mov qword [rbp + 0x3f0], rsi
mov qword [rbp + 0x3e8], rax
mov rax, qword [rbp - 0x58]
mov qword [rbp + 0x3f8], rax
mov qword [rbp + 0x400], 0
mov qword [rbp + 0x408], 2
mov qword [rbp + 0x410], 0
mov r8d, 0x200
mov eax, 2
mov qword [rbp + 0x3e0], rax
xor esi, esi
xor ebx, ebx
xor r12d, r12d
cmp r8, 0x201
jae 0x14012a010
jmp 0x140129fff
jae 0x14012a0d3
cmp r8, 0x201
jae 0x14012a010
mov edi, 0x200
lea r13, [rbp - 0x60]
mov r15, r8
jmp 0x14012a068
sub r8, r12
sub rbx, r12
cmp rbx, r8
jae 0x14012a03f
lea rcx, [rbp + 0x400]
mov rdx, r12
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::h360f96ef798c46de
mov rsi, qword [rbp + 0x400]
mov rax, qword [rbp + 0x408]
mov qword [rbp + 0x3e0], rax
mov eax, 0xffffffff
cmp rsi, rax
mov r12d, 0xffffffff
cmovb r12, rsi
mov qword [rbp + 0x410], r12
mov rbx, rsi
mov rdi, r12
mov r13, qword [rbp + 0x3e0]
mov r15, r12
xor ecx, ecx
call sub.kernel32.dll_SetLastError
mov rcx, qword [rbp + 0x3f8]
mov rdx, r13
mov r8d, r15d
call sub.kernel32.dll_GetEnvironmentVariableW
mov r14d, eax
test eax, eax
jne 0x14012a095
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x14012a153
mov r8d, r14d
cmp r15, r8
jne 0x140129ff0
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x14012a1d9
add r15, r15
mov eax, 0xffffffff
cmp r15, rax
cmovae r15, rax
mov r8, r15
cmp r8, 0x201
jb 0x140129fff
jmp 0x14012a010
cmp rdi, r8
jb 0x14012a1f3
lea rcx, [rbp + 0x3a0]
call sub.kernel32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rbp + 0x3c8], rax
movabs rdi, 0x8000000000000000
mov qword [rbp + 0x3c0], rdi
cmp qword [rbp + 0x400], 0
je 0x14012a193
mov rcx, qword [rbp + 0x408]
mov edx, 2
call sym.__rust_dealloc
mov rsi, qword [rbp + 0x3f0]
lea rcx, str.internal_error:_entered_unreachable_codecannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_7f2fc33da6633f5a764ddc263c769b6b2873d167library_std_src_threadlocal.rs
lea r8, str.library_std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov edx, 0x28
call sym.core::panicking::panic::hf6fd3ad2f9225230
jmp 0x14012a208
lea rax, str.library_std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov rcx, r8
mov rdx, rdi
mov r8, rax
call sym.core::slice::index::slice_end_index_len_fail::h4c376ee8536a9e87
ud2

Function at 0x14012d2b0
Capabilities:
Create directory

Disassembly:
push rbp
mov rbp, rsp
test cl, cl
je 0x14012d2c4
mov rcx, rdx
mov rdx, r8
pop rbp
jmp sym.std::fs::DirBuilder::create_dir_all::h7cb21bf40a552139
invalid
mov rcx, rdx
mov rdx, r8
invalid
pop rbp
jmp sym.std::sys::pal::windows::fs::DirBuilder::mkdir::h6ab29e9cce9321d4
Function at 0x14012eee0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rbp
push rsi
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov ecx, dword [0x1401ca550]
test ecx, ecx
je 0x14012efd5
dec ecx
call fcn.14015714c
cmp rax, 2
jb 0x14012ef16
cmp qword [rax + 8], 0
je 0x14012ef16
add rax, 0x10
jmp 0x14012efce
mov ecx, dword [0x1401ca550]
test ecx, ecx
je 0x14012efe8
dec ecx
call fcn.14015714c
cmp rax, 1
je 0x14012efcc
test rax, rax
jne 0x14012ef92
mov qword [rbp - 8], 0
lea rax, sym.std::sys::thread_local::os_local::destroy_value::ha1aef5e955f5f394
mov qword [rbp - 0x10], rax
movzx eax, byte [0x1402ac208]
mov edx, 0x18
xor ecx, ecx
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h54baaa069cfd9f2e
test rax, rax
je 0x14012f014
mov rcx, qword [rbp]
mov qword [rax + 0x10], rcx
movups xmm0, xmmword [rbp - 0x10]
movups xmmword [rax], xmm0
mov ecx, dword [0x1401ca550]
test ecx, ecx
je 0x14012effb
dec ecx
mov rdx, rax
mov rsi, rax
call fcn.140157154
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 0x14012efce
test rcx, rcx
je 0x14012efce
lock dec qword [rcx]
jne 0x14012efce
mov rsi, rax
call sym.alloc::sync::Arc_T_A_::drop_slow::hf2862ae8173c2487
mov rax, rsi
jmp 0x14012efce
xor eax, eax
add rsp, 0x38
pop rsi
pop rbp
ret
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::ha1aef5e955f5f394
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h76a98b32ece36886
mov ecx, eax
jmp 0x14012eefb
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::ha1aef5e955f5f394
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h76a98b32ece36886
mov ecx, eax
jmp 0x14012ef26
lea rcx, sym.std::sys::thread_local::os_local::destroy_value::ha1aef5e955f5f394
mov rsi, rax
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h76a98b32ece36886
mov ecx, eax
mov rax, rsi
jmp 0x14012ef84
mov ecx, 8
mov edx, 0x18
call sym.alloc::alloc::handle_alloc_error::hd693885652fa1428
ud2

Function at 0x14012f0c0
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 0x14012f0dd
dec ecx
jmp 0x14012f0e7
mov rcx, rsi
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h76a98b32ece36886
mov ecx, eax
mov edx, 1
call fcn.140157154
cmp qword [rdi + 8], 0
je 0x14012f110
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x14012f110
lock dec qword [rax]
jne 0x14012f110
mov rcx, qword [rdi + 0x10]
call sym.alloc::sync::Arc_T_A_::drop_slow::hf2862ae8173c2487
mov edx, 8
mov rcx, rdi
call sym.__rust_dealloc
mov ecx, dword [rsi + 0x18]
test ecx, ecx
je 0x14012f128
dec ecx
jmp 0x14012f132
mov rcx, rsi
call sym.std::sys::pal::windows::thread_local_key::StaticKey::init::h76a98b32ece36886
mov ecx, eax
xor edx, edx
add rsp, 0x20
pop rdi
pop rsi
pop rbp
jmp fcn.140157154
Function at 0x14012f920
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 [0x1402ac198]
cmp rax, 3
jne 0x14012fb10
lea rax, [rbp + 0x166]
mov qword [rbp + 0x150], rax
cmp rdi, 0x17f
ja 0x14012fb20
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 0x14012f9b8
xor edx, edx
nop word [rax + rax]
cmp byte [rbp + rdx - 0x60], 0
je 0x14012fa74
inc rdx
cmp rax, rdx
jne 0x14012f9a0
jmp 0x14012fadb
lea rcx, [rbp - 0x59]
and rcx, 0xfffffffffffffff8
sub rcx, rbx
je 0x14012f9ee
xor edx, edx
nop word [rax + rax]
cmp byte [rbp + rdx - 0x60], 0
je 0x14012fa74
inc rdx
cmp rcx, rdx
jne 0x14012f9d0
lea rdx, [rdi - 0xf]
cmp rcx, rdx
jbe 0x14012f9f2
jmp 0x14012fa3e
lea rdx, [rdi - 0xf]
movdqa xmm0, xmmword [0x1401d1720]
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 0x14012fa3e
add rcx, 0x10
cmp rcx, rdx
jbe 0x14012fa10
sub rax, rcx
je 0x14012fadb
lea r8, [rcx + rbp]
add r8, 0xffffffffffffffa0
xor edx, edx
nop word cs:[rax + rax]
cmp byte [r8 + rdx], 0
je 0x14012fa71
inc rdx
cmp rax, rdx
jne 0x14012fa60
jmp 0x14012fadb
add rdx, rcx
cmp rdx, rdi
jne 0x14012fadb
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 0x14012faef
call sub.WS2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov ecx, 1
jmp 0x14012fb07
lea rax, str.file_name_contained_an_unexpected_NUL_byte
mov qword [rsi + 8], rax
mov qword [rsi], 1
jmp 0x14012fb32
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 0x14012fb32
mov rbx, rdx
call sym.std::sync::once_lock::OnceLock_T_::initialize::hfdabfdb958aa94c1
mov rdx, rbx
jmp 0x14012f95c
lea r9, [rbp + 0x150]
mov rcx, rsi
mov r8, rdi
call sym.std::sys::pal::common::small_c_string::run_with_cstr_allocating::h09843c947f45b630
nop
add rsp, 0x1e8
pop rbx
pop rdi
pop rsi
pop rbp
ret