Function at 0x14012d720
Capabilities:
Get disk information
Get disk size
Get storage device properties

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x4a8
movaps xmmword [rsp + 0x490], xmm6
mov rsi, rdx
mov qword [rsp + 0x80], rcx
mov rbx, qword [rsp + 0x528]
mov r14d, dword [rsp + 0x520]
mov r15d, dword [rsp + 0x518]
mov rax, qword [rsp + 0x510]
mov qword [rsp + 0x1b8], rdx
lea rdi, [rsp + 0x270]
mov qword [rdi], r9
mov qword [rdi + 8], rax
mov rcx, rdi
call sym.rayon::iter::plumbing::LengthSplitter::try_split::h8db5716d2cb7bc33
test al, al
je 0x14012d8ac
shr rsi, 1
mov qword [rsp + 0x138], rsi
xor eax, eax
mov ecx, r14d
sub ecx, r15d
cmovb ecx, eax
cmp rsi, rcx
ja 0x14012e13e
add esi, r15d
lea rax, [rsp + 0x1b8]
mov qword [rsp + 0xf0], rax
lea rax, [rsp + 0x138]
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rdi
mov qword [rsp + 0x108], rbx
mov dword [rsp + 0x110], esi
mov dword [rsp + 0x114], r14d
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x128], rbx
mov dword [rsp + 0x130], r15d
mov dword [rsp + 0x134], esi
call sym.rayon_core::registry::WorkerThread::current::he9186a91637c9a07
test rax, rax
je 0x14012df5a
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0xf0]
mov r8, rax
xor r9d, r9d
call sym.rayon_core::join::join_context::__u7b__u7b_closure_u7d__u7d_::hb8c69d8e512fdbc9
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xc0]
movups xmm0, xmmword [rsp + 0xc8]
movaps xmmword [rsp + 0x50], xmm0
mov r8, qword [rsp + 0xd8]
mov qword [rsp + 0x60], r8
test rcx, rcx
je 0x14012e01c
mov r8, qword [rsp + 0x50]
and qword [rsp + 0x50], 0
test r8, r8
je 0x14012e041
mov qword [rcx + 0x18], r8
mov qword [r8 + 0x20], rcx
mov rcx, qword [rsp + 0x58]
xorps xmm0, xmm0
add rax, qword [rsp + 0x60]
movups xmmword [rsp + 0x58], xmm0
jmp 0x14012e041
mov rsi, qword [rbx]
lea rdi, [rsp + 0x280]
lea r12, [rsp + 0xf0]
mov eax, 8
mov qword [rsp + 0x98], rax
lea rbx, [rsp + 0x40]
xorps xmm6, xmm6
xor eax, eax
mov qword [rsp + 0x88], rax
xor eax, eax
mov qword [rsp + 0x90], rax
mov qword [rsp + 0xa0], rsi
cmp r15d, r14d
jae 0x14012dea3
mov eax, dword [rsi]
bt eax, r15d
jae 0x14012de9b
lea r13d, [r15 + 0x41]
mov word [rsp + 0x40], r13w
mov dword [rsp + 0x42], 0x5c003a
and word [rsp + 0x46], 0
mov rcx, rbx
call sub.KERNEL32.dll_GetDriveTypeW
mov ebp, eax
and eax, 0xfffffffe
cmp eax, 2
jne 0x14012d9a6
mov r8d, 0x20a
mov rcx, rdi
xor edx, edx
call sub.msvcrt.dll_memset
movaps xmmword [rsp + 0x120], xmm6
movaps xmmword [rsp + 0x110], xmm6
movaps xmmword [rsp + 0x100], xmm6
movaps xmmword [rsp + 0xf0], xmm6
mov qword [rsp + 0x30], r12
movups xmmword [rsp + 0x20], xmm6
mov dword [rsp + 0x38], 0x20
mov rcx, rbx
mov rdx, rdi
mov r8d, 0x105
xor r9d, r9d
call sub.KERNEL32.dll_GetVolumeInformationW
test eax, eax
je 0x14012d9b7
xor r8d, r8d
cmp r8, 0x105
je 0x14012d9c8
cmp word [rsp + r8*2 + 0x280], 0
je 0x14012d9d0
inc r8
jmp 0x14012d98c
mov qword [rsp + 0x1d0], 3
jmp 0x14012de9b
mov qword [rsp + 0x1d0], 3
jmp 0x14012de96
mov r8d, 0x105
jmp 0x14012d9ea
mov edx, 0x105
mov rcx, rdi
lea r9, str._home_thor_.cargo_registry_src_index.crates.io_6f17d22bba15001f_sysinfo_0.29.11_src_windows_disk.rs
call sym.core::slice::index::__impl_core::ops::index::Index_I__for__T__::index::h5a892f757ef407ba
mov rdi, rax
mov r8, rdx
lea rcx, [rsp + 0x138]
mov rdx, rdi
call sym.alloc::string::String::from_utf16_lossy::h8e54509b0a64cdcf
mov r14, qword [rsp + 0x140]
mov rax, qword [rsp + 0x148]
xor r8d, r8d
mov qword [rsp + 0xa8], rax
cmp r8, 0x20
je 0x14012da2c
cmp word [rsp + r8*2 + 0xf0], 0
je 0x14012da37
inc r8
jmp 0x14012da15
mov rsi, r12
mov r12d, 0x20
jmp 0x14012da51
mov edx, 0x20
mov rcx, r12
lea r9, str._home_thor_.cargo_registry_src_index.crates.io_6f17d22bba15001f_sysinfo_0.29.11_src_windows_disk.rs
call sym.core::slice::index::__impl_core::ops::index::Index_I__for__T__::index::h5a892f757ef407ba
mov rsi, rax
mov r12, rdx
mov rcx, r12
xor edx, edx
call sym.alloc::raw_vec::RawVec_T_A_::allocate_in::h4a18201b925629c4
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], rdx
and qword [rsp + 0x160], 0
lea rcx, [rsp + 0x150]
mov rdx, r12
call sym.alloc::vec::Vec_T_A_::reserve::h0c46eb087be5fd35
mov rbx, qword [rsp + 0x158]
mov rdi, qword [rsp + 0x160]
test r12, r12
je 0x14012daac
xor eax, eax
mov cl, byte [rsi + rax*2]
mov byte [rbx + rdi], cl
inc rdi
inc rax
cmp r12, rax
jne 0x14012da9b
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0xe8], rax
movabs rax, 0x5c002e005c005c
mov qword [rsp + 0x18a], rax
mov word [rsp + 0x192], r13w
mov dword [rsp + 0x194], 0x3a
and qword [rsp + 0x30], 0
and dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
lea rcx, [rsp + 0x18a]
xor edx, edx
mov r8d, 3
xor r9d, r9d
call sub.KERNEL32.dll_CreateFileW
cmp rax, 0xffffffffffffffff
je 0x14012ddec
mov rsi, rax
and qword [rsp + 0x70], 0
and qword [rsp + 0x150], 0
lea rcx, [rsp + 0x40]
xor edx, edx
lea r8, [rsp + 0x70]
lea r9, [rsp + 0x150]
call sub.KERNEL32.dll_GetDiskFreeSpaceExW
test eax, eax
lea r12, [rsp + 0xf0]
je 0x14012ddd6
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x14012ddd6
mov rcx, qword [rsp + 0x150]
mov qword [rsp + 0x1b0], rcx
and dword [rsp + 0x78], 0
mov qword [rsp + 0x1c4], 7
and qword [rsp + 0x70], 0
mov byte [rsp + 0x1cc], 0
and dword [rsp + 0x4c], 0
mov qword [rsp + 0x1a8], rax
lea rax, [rsp + 0x4c]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
and qword [rsp + 0x38], 0
mov dword [rsp + 0x28], 0xc
mov rcx, rsi
mov edx, 0x2d1400
lea r8, [rsp + 0x1c4]
mov r9d, 0xc
call sub.KERNEL32.dll_DeviceIoControl
xor r12d, r12d
cmp byte [rsp + 0x78], 0
sete r12b
cmp dword [rsp + 0x4c], 0xc
mov ecx, 2
cmovne r12, rcx
test eax, eax
cmove r12, rcx
lea rcx, [rsp + 0x150]
mov rdx, r14
mov r8, qword [rsp + 0xa8]
call sym.std::sys::windows::os_str::Slice::to_owned::hf044a0e2b813ab35
mov rcx, rdi
xor edx, edx
call sym.alloc::raw_vec::RawVec_T_A_::allocate_in::h4a18201b925629c4
mov qword [rsp + 0xa8], rax
mov rcx, rdx
mov qword [rsp + 0x1a0], rdx
mov rdx, rbx
mov r8, rdi
call sym.memcpy
mov ecx, 4
xor edx, edx
call sym.alloc::raw_vec::RawVec_T_A_::allocate_in::h0aa7120ec7904c92
mov qword [rsp + 0x198], rax
mov r14, rdx
mov rax, qword [rsp + 0x40]
mov qword [rdx], rax
mov r8d, 3
lea r13, [rsp + 0x230]
mov rcx, r13
lea rdx, [rsp + 0x40]
call sym.alloc::string::String::from_utf16_lossy::h8e54509b0a64cdcf
movups xmm0, xmmword [rsp + 0x150]
movups xmm1, xmmword [rsp + 0x160]
movups xmmword [r13 - 0x40], xmm1
movups xmmword [r13 - 0x50], xmm0
or qword [rsp + 0x1d8], 0xffffffffffffffff
cmp ebp, 2
mov qword [rsp + 0x1d0], r12
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x1a0]
mov qword [rsp + 0x208], rax
mov qword [rsp + 0x210], rdi
mov rax, qword [rsp + 0x198]
mov qword [rsp + 0x218], rax
mov qword [rsp + 0x220], r14
mov qword [rsp + 0x228], 4
mov rax, qword [rsp + 0x1a8]
mov qword [rsp + 0x248], rax
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x250], rax
sete byte [rsp + 0x258]
mov eax, dword [rsp + 0x150]
mov ecx, dword [rsp + 0x153]
mov dword [r13 + 0x2c], ecx
mov dword [r13 + 0x29], eax
mov rcx, rsi
call fcn.140134f6c
mov rcx, qword [rsp + 0xe8]
mov rdx, rbx
call sym.__alloc::raw_vec::RawVec_T_A__as_core::ops::drop::Drop_::drop::h2880afda0a507f50
mov rcx, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x140]
call sym.__alloc::raw_vec::RawVec_T_A__as_core::ops::drop::Drop_::drop::h2880afda0a507f50
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x280], rdx
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x288], rax
mov r13, qword [rsp + 0x90]
mov qword [rsp + 0x290], r13
cmp r13, rdx
jne 0x14012de46
lea rdi, [rsp + 0x280]
mov rcx, rdi
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::h926b675076d372f4
mov r13, qword [rsp + 0x290]
mov rax, qword [rsp + 0x280]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x288]
mov r14d, dword [rsp + 0x520]
mov rsi, qword [rsp + 0xa0]
jmp 0x14012de5e
mov qword [rsp + 0x1d0], 3
mov rcx, rsi
call fcn.140134f6c
jmp 0x14012de0c
mov rcx, 0xffffffffffffffff
call fcn.140134f6c
mov qword [rsp + 0x1d0], 3
lea r12, [rsp + 0xf0]
mov rcx, qword [rsp + 0xe8]
mov rdx, rbx
call sym.__alloc::raw_vec::RawVec_T_A__as_core::ops::drop::Drop_::drop::h2880afda0a507f50
mov rcx, qword [rsp + 0x138]
mov rdx, r14
call sym.__alloc::raw_vec::RawVec_T_A__as_core::ops::drop::Drop_::drop::h2880afda0a507f50
mov r14d, dword [rsp + 0x520]
mov rsi, qword [rsp + 0xa0]
lea rdi, [rsp + 0x280]
jmp 0x14012de96
mov r14d, dword [rsp + 0x520]
mov rsi, qword [rsp + 0xa0]
lea rdi, [rsp + 0x280]
lea r12, [rsp + 0xf0]
imul rcx, r13, 0x90
mov qword [rsp + 0x98], rax
add rcx, rax
mov r8d, 0x90
lea rdx, [rsp + 0x1d0]
call sub.msvcrt.dll_memmove
inc r13
mov qword [rsp + 0x90], r13
lea rbx, [rsp + 0x40]
inc r15d
jmp 0x14012d8f0
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0xc0], rax
mov rcx, qword [rsp + 0x528]
mov qword [rsp + 0xc8], rcx
test rax, rax
je 0x14012df35
mov ecx, 0x28
call sym._ZN5alloc5alloc6Global10alloc_impl17h0d757d4e73283ac3E.5153
test rax, rax
je 0x14012e156
mov rcx, qword [rsp + 0xc0]
mov qword [rax + 0x10], rcx
movups xmm0, xmmword [rsp + 0xb0]
movups xmmword [rax], xmm0
xorps xmm0, xmm0
movups xmmword [rax + 0x18], xmm0
mov rcx, qword [rsp + 0x80]
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], 1
jmp 0x14012e05e
xorps xmm0, xmm0
mov rax, qword [rsp + 0x80]
movups xmmword [rax], xmm0
and qword [rax + 0x10], 0
lea rcx, [rsp + 0xb0]
call sym.core::ptr::drop_in_place_alloc::vec::Vec_sysinfo::windows::disk::Disk__::h4bcff8f58c3e7595
jmp 0x14012e05e
call sym.rayon_core::registry::global_registry::h64771e188e6fb650
mov rsi, qword [rax]
lea rbx, [rsi + 0x80]
call sym.rayon_core::registry::WorkerThread::current::he9186a91637c9a07
test rax, rax
je 0x14012e07a
mov r14, rax
cmp qword [rax + 0x110], rsi
je 0x14012e126
mov rax, r14
add rax, 0x110
mov rdx, qword [r14 + 0x100]
lea r15, [rsp + 0x1d0]
lea rsi, [rsp + 0xf0]
mov ecx, 9
mov rdi, r15
rep movsq qword [rdi], qword [rsi]
lea rsi, [rsp + 0x250]
mov qword [rsi], rax
and qword [rsi + 8], 0
mov qword [rsi + 0x10], rdx
mov byte [rsi + 0x18], 1
and qword [rsi - 0x38], 0
lea rdx, [sym.__rayon_core::job::StackJob_L_F_R__as_rayon_core::job::Job_::execute::hb10ac300aafb80b0]
mov rcx, rbx
mov r8, r15
call sym.rayon_core::registry::Registry::inject::h6adc3afff8c57564
mov rcx, r14
mov rdx, rsi
call sym.rayon_core::registry::WorkerThread::wait_until::h6db603895f45a076
lea rcx, [rsp + 0x280]
mov r8d, 0xa0
mov rdx, r15
call sym.memcpy
lea rdx, [rsp + 0x2c8]
lea rcx, [rsp + 0xb0]
call sym.rayon_core::job::JobResult_T_::into_return_value::h4af7ac8fe990700b
jmp 0x14012d83e
mov r8, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x60]
mov qword [rsp + 0x50], rdx
and qword [rsp + 0x58], 0
mov qword [rsp + 0x60], rax
mov rax, r9
mov rdx, r8
mov r8, qword [rsp + 0x80]
mov qword [r8], rdx
mov qword [r8 + 8], rcx
mov qword [r8 + 0x10], rax
lea rcx, [rsp + 0x50]
call sym._ZN98__LT_alloc..collections..linked_list..LinkedList_LT_T_C_A_GT__u20_as_u20_core..ops..drop..Drop_GT_4drop17hdd551e35a7d633f
movaps xmm6, xmmword [rsp + 0x490]
add rsp, 0x4a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor ecx, ecx
call sym.rayon_core::registry::Registry::in_worker_cold::LOCK_LATCH::__getit::he4a200b989592542
test rax, rax
je 0x14012e165
lea rdx, [rsp + 0x1d8]
lea rsi, [rsp + 0xf0]
mov ecx, 9
mov rdi, rdx
rep movsq qword [rdi], qword [rsi]
mov qword [rdx - 8], rax
and qword [rdx + 0x48], 0
lea rdx, [sym.__rayon_core::job::StackJob_L_F_R__as_rayon_core::job::Job_::execute::h1c5828d015b6d36a]
lea rsi, [rsp + 0x1d0]
mov rcx, rbx
mov r8, rsi
call sym.rayon_core::registry::Registry::inject::h6adc3afff8c57564
mov rcx, qword [rsi]
call sym.rayon_core::latch::LockLatch::wait_and_reset::hdf1462dbd7c1989f
lea rcx, [rsp + 0x280]
mov r8d, 0x88
mov rdx, rsi
call sym.memcpy
lea rdx, [rsp + 0x2d0]
lea rsi, [rsp + 0x158]
mov rcx, rsi
call sym.rayon_core::job::JobResult_T_::into_return_value::h4af7ac8fe990700b
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmm2, xmmword [rsi + 0x20]
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xc0], xmm1
movaps xmmword [rsp + 0xd0], xmm2
jmp 0x14012d83e
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0xf0]
mov r8, r14
jmp 0x14012d836
lea rcx, str.assertion_failed:_index___self.range.len___home_thor_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rayon_1.9.0_src_range.rs
lea r8, [0x140152b98]
mov edx, 0x2b
call dbg.panic
mov ecx, 8
mov edx, 0x28
call dbg.handle_alloc_error
lea rax, [0x1401b9a60]
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_std_src_threadlocal.rs
lea r9, str._O_a_
lea r8, [rsp + 0x280]
mov edx, 0x46
call dbg.unwrap_failed
int3