Function at 0x1400416c0
Capabilities:
Get disk information
Get storage device properties

Disassembly:
sub rsp, 0x708
mov dword [rsp + 0x16c], r8d
mov qword [rsp + 0x170], rcx
mov qword [rsp + 0x178], rcx
mov qword [rsp + 0x5c0], rdx
mov dword [rsp + 0x5cc], r8d
mov rax, qword [rdx]
mov eax, dword [rax]
mov dword [rsp + 0x180], eax
cmp r8d, 0x20
jae 0x14004171e
mov eax, dword [rsp + 0x180]
mov ecx, dword [rsp + 0x16c]
and ecx, 0x1f
shr eax, cl
and eax, 1
cmp eax, 0
je 0x14004172a
jmp 0x14004173b
lea rcx, str._home_crctpus_.cargo_registry_src_index.crates.io_6f17d22bba15001f_sysinfo_0.29.11_src_windows_disk.rs
call dbg.panic_const_shr_overflow
mov rax, qword [rsp + 0x170]
mov qword [rax], 3
jmp 0x14004175b
mov eax, dword [rsp + 0x16c]
add ax, 0x41
mov word [rsp + 0x16a], ax
setb al
test al, 1
jne 0x1400417f2
jmp 0x14004176b
mov rax, qword [rsp + 0x178]
add rsp, 0x708
ret
mov ax, word [rsp + 0x16a]
mov word [rsp + 0x186], ax
mov word [rsp + 0x188], 0x3a
mov word [rsp + 0x18a], 0x5c
mov word [rsp + 0x18c], 0
lea rax, [rsp + 0x186]
mov qword [rsp + 0x6f8], rax
mov qword [rsp + 0x700], 4
lea rcx, [rsp + 0x186]
call sub.KERNEL32.dll_GetDriveTypeW
mov dword [rsp + 0x164], eax
mov dword [rsp + 0x5d0], eax
cmp eax, 2
sete cl
mov byte [rsp + 0x169], cl
and cl, 1
mov byte [rsp + 0x5d7], cl
cmp eax, 3
jne 0x140041912
jmp 0x1400417fe
lea rcx, str._home_crctpus_.cargo_registry_src_index.crates.io_6f17d22bba15001f_sysinfo_0.29.11_src_windows_disk.rs
call dbg.panic_const_add_overflow
lea rcx, [rsp + 0x18e]
xor edx, edx
mov r8d, 0x20a
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x398]
xor edx, edx
mov r8d, 0x40
call sub.msvcrt.dll_memset
lea rax, [rsp + 0x186]
mov qword [rsp + 0x6e8], rax
mov qword [rsp + 0x6f0], 4
lea rax, [rsp + 0x18e]
mov qword [rsp + 0x6d8], rax
mov qword [rsp + 0x6e0], 0x105
mov qword [rsp + 0x6b8], 0
mov qword [rsp + 0x6c0], 0
mov qword [rsp + 0x6a8], 0
mov qword [rsp + 0x6b0], 0
mov qword [rsp + 0x698], 0
mov qword [rsp + 0x6a0], 0
lea rax, [rsp + 0x398]
mov qword [rsp + 0x6c8], rax
mov qword [rsp + 0x6d0], 0x20
lea rcx, [rsp + 0x186]
lea rdx, [rsp + 0x18e]
mov r8d, 0x105
xor eax, eax
mov r9d, eax
lea rax, [rsp + 0x398]
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], 0x20
call sub.KERNEL32.dll_GetVolumeInformationW
cmp eax, 0
je 0x140041936
jmp 0x14004194a
mov eax, dword [rsp + 0x164]
cmp eax, 2
je 0x1400417fe
mov rax, qword [rsp + 0x170]
mov qword [rax], 3
jmp 0x14004175b
mov rax, qword [rsp + 0x170]
mov qword [rax], 3
jmp 0x14004175b
mov qword [rsp + 0x3d8], 0
lea rcx, [rsp + 0x18e]
mov edx, 0x105
call dbg.iter<u16>
mov rcx, rax
call dbg.into_iter<core::slice::iter::Iter<u16>>
mov qword [rsp + 0x3e0], rax
mov qword [rsp + 0x3e8], rdx
lea rcx, [rsp + 0x3e0]
call sym.__core::slice::iter::Iter_T__as_core::iter::traits::iterator::Iterator_::next::h18ea47bcfe21dcd3
mov qword [rsp + 0x3f0], rax
mov rdx, qword [rsp + 0x3f0]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne 0x140041a15
mov rdx, qword [rsp + 0x3d8]
lea r8, str._home_crctpus_.cargo_registry_src_index.crates.io_6f17d22bba15001f_sysinfo_0.29.11_src_windows_disk.rs
lea rcx, [rsp + 0x18e]
call dbg.index<u16, core::ops::range::RangeTo<usize>, 261>
mov qword [rsp + 0x140], rax
mov r8, rdx
mov rdx, qword [rsp + 0x140]
lea rcx, [rsp + 0x3f8]
mov qword [rsp + 0x148], rcx
call dbg.alloc::string::String::from_utf16_lossy::hefc8456f2a604b96
mov rcx, qword [rsp + 0x148]
call dbg.std::ffi::os_str::OsStr::new::h6c094c9ba5dcaba9
mov qword [rsp + 0x150], rdx
mov qword [rsp + 0x158], rax
jmp 0x140041a75
mov rax, qword [rsp + 0x3f0]
mov qword [rsp + 0x5d8], rax
cmp word [rax], 0
je 0x1400419b2
mov rax, qword [rsp + 0x3d8]
add rax, 1
mov qword [rsp + 0x138], rax
setb al
jb 0x14004232c
jmp 0x140042317
mov rax, qword [rsp + 0x150]
mov rcx, qword [rsp + 0x158]
mov rdx, rcx
mov qword [rsp + 0x118], rdx
mov rdx, rax
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x5f0], rcx
mov qword [rsp + 0x5f8], rax
mov qword [rsp + 0x3d8], 0
lea rcx, [rsp + 0x398]
mov edx, 0x20
call dbg.iter<u16>
mov qword [rsp + 0x128], rdx
mov qword [rsp + 0x130], rax
jmp 0x140041adb
mov rdx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
call dbg.into_iter<core::slice::iter::Iter<u16>>
mov qword [rsp + 0x108], rdx
mov qword [rsp + 0x110], rax
jmp 0x140041b02
mov rax, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x110]
mov qword [rsp + 0x410], rcx
mov qword [rsp + 0x418], rax
lea rcx, [rsp + 0x410]
call sym.__core::slice::iter::Iter_T__as_core::iter::traits::iterator::Iterator_::next::h18ea47bcfe21dcd3
mov qword [rsp + 0x100], rax
jmp 0x140041b39
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x420], rax
mov rdx, qword [rsp + 0x420]
mov eax, 1
xor ecx, ecx
cmp rdx, 0
cmove rax, rcx
cmp rax, 0
jne 0x140041b94
mov rdx, qword [rsp + 0x3d8]
lea r8, str._home_crctpus_.cargo_registry_src_index.crates.io_6f17d22bba15001f_sysinfo_0.29.11_src_windows_disk.rs
lea rcx, [rsp + 0x398]
call dbg.index<u16, core::ops::range::RangeTo<usize>, 32>
mov qword [rsp + 0xf0], rdx
mov qword [rsp + 0xf8], rax
jmp 0x140041bcc
mov rax, qword [rsp + 0x420]
mov qword [rsp + 0x600], rax
cmp word [rax], 0
je 0x140041b66
mov rax, qword [rsp + 0x3d8]
add rax, 1
mov qword [rsp + 0xe8], rax
setb al
jb 0x1400422f9
jmp 0x1400422e4
mov rdx, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0xf8]
call dbg.iter<u16>
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0xe0], rax
jmp 0x140041bf3
mov rdx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xe0]
call dbg.map<core::slice::iter::Iter<u16>, u8, sysinfo::windows::disk::get_disks::{closure#0}::{closure_env#0}>
mov qword [rsp + 0xc8], rdx
mov qword [rsp + 0xd0], rax
jmp 0x140041c1a
mov r8, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0xd0]
lea rcx, [rsp + 0x428]
call dbg.collect<core::iter::adapters::map::Map<core::slice::iter::Iter<u16>, sysinfo::windows::disk::get_disks::{closure#0}::{closure_env#0}>, alloc::vec::Vec<u8, alloc::alloc::Global>>
jmp 0x140041c39
mov eax, dword [rsp + 0x16c]
add ax, 0x41
mov word [rsp + 0xc6], ax
setb al
test al, 1
jne 0x140041cc6
mov ax, word [rsp + 0xc6]
mov word [rsp + 0x442], 0x5c
mov word [rsp + 0x444], 0x5c
mov word [rsp + 0x446], 0x2e
mov word [rsp + 0x448], 0x5c
mov word [rsp + 0x44a], ax
mov word [rsp + 0x44c], 0x3a
mov word [rsp + 0x44e], 0
lea rcx, [rsp + 0x442]
mov edx, 7
xor r8d, r8d
call dbg.sysinfo::windows::disk::HandleWrapper::new::ha9b60b10b25fd5cf
mov qword [rsp + 0xb0], rdx
mov qword [rsp + 0xb8], rax
jmp 0x140041cfe
lea rcx, str._home_crctpus_.cargo_registry_src_index.crates.io_6f17d22bba15001f_sysinfo_0.29.11_src_windows_disk.rs
call dbg.panic_const_add_overflow
jmp 0x140041cfc
ud2
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xb8]
call dbg.branch<sysinfo::windows::disk::HandleWrapper>
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0xa8], rax
jmp 0x140041d25
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 0x458], rcx
mov qword [rsp + 0x460], rax
cmp qword [rsp + 0x458], 0
jne 0x140041d85
mov rax, qword [rsp + 0x460]
mov qword [rsp + 0x608], rax
mov qword [rsp + 0x450], rax
lea rcx, [rsp + 0x480]
lea rdx, [rsp + 0x186]
mov r8d, 4
call dbg.get_drive_size
jmp 0x140041dbf
mov rcx, qword [rsp + 0x170]
call dbg.from_residual<sysinfo::windows::disk::Disk>
jmp 0x1400422d0
lea rcx, [rsp + 0x468]
lea rdx, [rsp + 0x480]
call dbg.branch<(u64, u64)>
jmp 0x140041dd6
cmp qword [rsp + 0x468], 0
jne 0x140041e29
mov rax, qword [rsp + 0x470]
mov qword [rsp + 0x90], rax
mov rcx, qword [rsp + 0x478]
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x610], rax
mov qword [rsp + 0x618], rcx
mov qword [rsp + 0x620], rax
mov qword [rsp + 0x628], rcx
cmp rax, 0
je 0x140041e3b
jmp 0x140041e4f
mov rcx, qword [rsp + 0x170]
call dbg.from_residual<sysinfo::windows::disk::Disk>
jmp 0x1400422bc
mov rax, qword [rsp + 0x170]
mov qword [rax], 3
jmp 0x140041f46
mov byte [rsp + 0x4a7], 0
mov dword [rsp + 0x498], 7
mov dword [rsp + 0x49c], 0
mov al, byte [rsp + 0x4a7]
mov byte [rsp + 0x4a0], al
mov byte [rsp + 0x637], 0
mov qword [rsp + 0x638], 1
mov byte [rsp + 0x647], 0
mov qword [rsp + 0x648], 1
lea rax, [rsp + 0x660]
mov qword [rsp + 0x678], rax
lea rax, [rsp + 0x660]
mov qword [rsp + 0x680], rax
lea rcx, [rsp + 0x660]
mov edx, 4
call sym.core::intrinsics::write_bytes::precondition_check::h08411bef1bec6ba2
lea rcx, [rsp + 0x660]
xor edx, edx
mov r8d, 0xc
call sub.msvcrt.dll_memset
mov rax, qword [rsp + 0x660]
mov qword [rsp + 0x654], rax
mov eax, dword [rsp + 0x668]
mov dword [rsp + 0x65c], eax
mov rax, qword [rsp + 0x654]
mov qword [rsp + 0x66c], rax
mov eax, dword [rsp + 0x65c]
mov dword [rsp + 0x674], eax
mov rax, qword [rsp + 0x66c]
mov qword [rsp + 0x4a8], rax
mov eax, dword [rsp + 0x674]
mov dword [rsp + 0x4b0], eax
jmp 0x140041f58
lea rcx, [rsp + 0x450]
call dbg.drop_in_place<sysinfo::windows::disk::HandleWrapper>
jmp 0x1400422c1
mov dword [rsp + 0x4b4], 0
mov rax, qword [rsp + 0x450]
mov qword [rsp + 0x88], rax
mov eax, 0xc
mov dword [rsp + 0x84], eax
mov eax, 0xc
mov dword [rsp + 0x80], eax
mov qword [rsp + 0x688], 0
mov qword [rsp + 0x690], 0
mov r9d, dword [rsp + 0x84]
mov rcx, qword [rsp + 0x88]
mov edx, dword [rsp + 0x80]
mov rax, rsp
lea r8, [rsp + 0x4b4]
mov qword [rax + 0x30], r8
mov dword [rax + 0x28], edx
lea rdx, [rsp + 0x4a8]
mov qword [rax + 0x20], rdx
mov qword [rax + 0x38], 0
mov edx, 0x2d1400
lea r8, [rsp + 0x498]
call sub.KERNEL32.dll_DeviceIoControl
mov dword [rsp + 0x7c], eax
jmp 0x140041ff8
mov eax, dword [rsp + 0x7c]
cmp eax, 0
jne 0x14004201b
mov qword [rsp + 0x4c0], 0xffffffffffffffff
mov qword [rsp + 0x4b8], 2
jmp 0x140042068
mov eax, dword [rsp + 0x4b4]
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x78]
mov ecx, 0xc
cmp eax, ecx
jne 0x140042001
cmp byte [rsp + 0x4b0], 0
sete al
mov cl, al
and cl, 1
mov byte [rsp + 0x636], cl
test al, 1
jne 0x14004205c
mov qword [rsp + 0x4b8], 0
jmp 0x140042068
mov qword [rsp + 0x4b8], 1
mov r8, qword [rsp + 0x120]
mov rdx, qword [rsp + 0x118]
mov rax, qword [rsp + 0x4b8]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x4c0]
mov qword [rsp + 0x70], rax
lea rcx, [rsp + 0x558]
call sym.__std::ffi::os_str::OsStr_as_alloc::borrow::ToOwned_::to_owned::h3cafe51a1f9789ef
jmp 0x1400420a1
lea rcx, [rsp + 0x428]
call dbg.deref<u8, alloc::alloc::Global>
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], rax
jmp 0x1400420e2
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
lea rcx, [rsp + 0x578]
call dbg.to_vec<u8>
jmp 0x1400420fb
lea rcx, [rsp + 0x590]
lea rdx, [rsp + 0x186]
mov r8d, 4
call dbg.to_vec<u16>
jmp 0x14004213d
jmp 0x14004213f
lea r8, str._home_crctpus_.cargo_registry_src_index.crates.io_6f17d22bba15001f_sysinfo_0.29.11_src_windows_disk.rs
lea rcx, [rsp + 0x186]
mov edx, 3
call dbg.index<u16, core::ops::range::RangeTo<usize>, 4>
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], rax
jmp 0x140042189
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
lea rcx, [rsp + 0x5a8]
call dbg.alloc::string::String::from_utf16_lossy::hefc8456f2a604b96
jmp 0x1400421a2
mov rcx, qword [rsp + 0x170]
mov al, byte [rsp + 0x169]
mov rdx, qword [rsp + 0x98]
mov r8, qword [rsp + 0x90]
mov r9, qword [rsp + 0x70]
mov r10, qword [rsp + 0x68]
mov qword [rsp + 0x4c8], r10
mov qword [rsp + 0x4d0], r9
movups xmm0, xmmword [rsp + 0x558]
movups xmm1, xmmword [rsp + 0x568]
movups xmmword [rsp + 0x4e8], xmm1
movups xmmword [rsp + 0x4d8], xmm0
mov r9, qword [rsp + 0x588]
mov qword [rsp + 0x508], r9
movups xmm0, xmmword [rsp + 0x578]
movups xmmword [rsp + 0x4f8], xmm0
mov r9, qword [rsp + 0x5a0]
mov qword [rsp + 0x520], r9
movups xmm0, xmmword [rsp + 0x590]
movups xmmword [rsp + 0x510], xmm0
mov r9, qword [rsp + 0x5b8]
mov qword [rsp + 0x538], r9
movups xmm0, xmmword [rsp + 0x5a8]
movups xmmword [rsp + 0x528], xmm0
mov qword [rsp + 0x540], r8
mov qword [rsp + 0x548], rdx
and al, 1
mov byte [rsp + 0x550], al
lea rdx, [rsp + 0x4c8]
mov r8d, 0x90
call sym.memcpy
lea rcx, [rsp + 0x450]
call dbg.drop_in_place<sysinfo::windows::disk::HandleWrapper>
jmp 0x140042296
lea rcx, [rsp + 0x428]
call dbg.drop_in_place<alloc::vec::Vec<u8, alloc::alloc::Global>>
jmp 0x1400422a5
lea rcx, [rsp + 0x3f8]
call dbg.drop_in_place<alloc::string::String>
jmp 0x14004175b
jmp 0x140041f46
lea rcx, [rsp + 0x428]
call dbg.drop_in_place<alloc::vec::Vec<u8, alloc::alloc::Global>>
jmp 0x1400422d2
jmp 0x1400422c1
lea rcx, [rsp + 0x3f8]
call dbg.drop_in_place<alloc::string::String>
jmp 0x14004175b
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x3d8], rax
jmp 0x140041b22
lea rcx, str._home_crctpus_.cargo_registry_src_index.crates.io_6f17d22bba15001f_sysinfo_0.29.11_src_windows_disk.rs
call dbg.panic_const_add_overflow
jmp 0x140041cfc
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0x3d8], rax
jmp 0x140041980
lea rcx, str._home_crctpus_.cargo_registry_src_index.crates.io_6f17d22bba15001f_sysinfo_0.29.11_src_windows_disk.rs
call dbg.panic_const_add_overflow
int3