Function at 0x140102656
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, 0x488
movaps xmmword [rsp + 0x470], xmm6
mov rsi, rdx
mov qword [rsp + 0x98], rcx
mov r14, qword [rsp + 0x508]
mov ebx, dword [rsp + 0x500]
mov r13d, dword [rsp + 0x4f8]
mov rax, qword [rsp + 0x4f0]
mov qword [rsp + 0x80], rdx
lea rdi, [rsp + 0x250]
mov qword [rdi], r9
mov qword [rdi + 8], rax
mov rcx, rdi
call fcn.140101d28
test al, al
je 0x140102743
shr rsi, 1
mov qword [rsp + 0x50], rsi
xor eax, eax
mov ecx, ebx
sub ecx, r13d
cmovb ecx, eax
cmp rsi, rcx
ja 0x140103183
add esi, r13d
call fcn.140078d25
test rax, rax
je 0x140102eb2
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x260]
mov qword [rdx], rcx
lea rcx, [rsp + 0x50]
mov qword [rdx + 8], rcx
mov qword [rdx + 0x10], rdi
mov qword [rdx + 0x18], r14
mov dword [rdx + 0x20], esi
mov dword [rdx + 0x24], ebx
mov qword [rdx + 0x28], rcx
mov qword [rdx + 0x30], rdi
mov qword [rdx + 0x38], r14
mov dword [rdx + 0x40], r13d
mov dword [rdx + 0x44], esi
lea rcx, [rsp + 0xa8]
mov r8, rax
xor r9d, r9d
call fcn.140102223
jmp 0x1401030ac
xorps xmm6, xmm6
movaps xmmword [rsp + 0x180], xmm6
lea r15, [rsp + 0xb0]
mov edi, 8
cmp r13d, ebx
jae 0x140102db6
mov qword [rsp + 0xa8], rdi
movaps xmm0, xmmword [rsp + 0x180]
movups xmmword [r15], xmm0
mov qword [rsp + 0xc0], r14
mov rax, qword [r14]
mov eax, dword [rax]
bt eax, r13d
jae 0x140102b0e
lea ebp, [r13 + 0x41]
mov word [rsp + 0x48], bp
mov dword [rsp + 0x4a], 0x5c003a
and word [rsp + 0x4e], 0
lea rcx, [rsp + 0x48]
call sub.kernel32.dll_GetDriveTypeW
mov r12d, eax
lea eax, [r12 - 4]
cmp eax, 0xfffffffe
jb 0x140102afe
mov r8d, 0x20a
lea rsi, [rsp + 0x260]
mov rcx, rsi
xor edx, edx
call sub.msvcrt.dll_memset
movaps xmmword [rsp + 0x140], xmm6
movaps xmmword [rsp + 0x130], xmm6
movaps xmmword [rsp + 0x120], xmm6
movaps xmmword [rsp + 0x110], xmm6
lea rax, [rsp + 0x110]
mov qword [rsp + 0x30], rax
movups xmmword [rsp + 0x20], xmm6
mov dword [rsp + 0x38], 0x20
lea rcx, [rsp + 0x48]
mov rdx, rsi
mov r8d, 0x105
xor r9d, r9d
call sub.kernel32.dll_GetVolumeInformationW
test eax, eax
je 0x140102afe
xor r8d, r8d
cmp r8, 0x105
je 0x14010284e
cmp word [rsp + r8*2 + 0x260], 0
je 0x140102854
inc r8
jmp 0x140102834
mov r8d, 0x105
mov edx, 0x105
lea rcx, [rsp + 0x260]
lea r9, str._Users_no_.cargo_registry_src_index.crates.io_6f17d22bba15001f_sysinfo_0.26.9_src_windows_disk.rs
call fcn.140101ff4
mov r8, rdx
lea rcx, [rsp + 0xe8]
mov rdx, rax
call fcn.140102019
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x78], rax
xor r8d, r8d
cmp r8, 0x20
je 0x1401028b4
cmp word [rsp + r8*2 + 0x110], 0
je 0x1401028ba
inc r8
jmp 0x14010289d
mov r8d, 0x20
mov edx, 0x20
lea rcx, [rsp + 0x110]
lea r9, str._Users_no_.cargo_registry_src_index.crates.io_6f17d22bba15001f_sysinfo_0.26.9_src_windows_disk.rs
call fcn.140101ff4
mov rsi, rax
mov rdi, rdx
mov rcx, rdx
call fcn.140077634
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdx
and qword [rsp + 0x60], 0
lea rcx, [rsp + 0x50]
mov rdx, rdi
call fcn.14007515a
mov r15, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
test rdi, rdi
je 0x140102921
xor ecx, ecx
mov al, byte [rsi + rcx*2]
mov byte [r15 + rbx], al
inc rbx
inc rcx
cmp rdi, rcx
jne 0x14010290f
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0xa0], rax
movabs rax, 0x5c002e005c005c
mov qword [rsp + 0x172], rax
mov word [rsp + 0x17a], bp
mov dword [rsp + 0x17c], 0x3a
and qword [rsp + 0x30], 0
and dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
lea rcx, [rsp + 0x172]
xor edx, edx
mov r8d, 3
xor r9d, r9d
call sub.kernel32.dll_CreateFileW
cmp rax, 0xffffffffffffffff
je 0x140102ac1
mov rbp, rax
and qword [rsp + 0x150], 0
and qword [rsp + 0x50], 0
lea rcx, [rsp + 0x48]
xor edx, edx
lea r8, [rsp + 0x150]
lea r9, [rsp + 0x50]
call sub.kernel32.dll_GetDiskFreeSpaceExW
test eax, eax
je 0x140102ab7
mov rsi, qword [rsp + 0x150]
test rsi, rsi
je 0x140102ab7
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x190], rax
and dword [rsp + 0x108], 0
mov qword [rsp + 0x1a0], 7
and qword [rsp + 0x100], 0
mov byte [rsp + 0x1a8], 0
and dword [rsp + 0x74], 0
lea rax, [rsp + 0x74]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x100]
mov qword [rsp + 0x20], rax
and qword [rsp + 0x38], 0
mov dword [rsp + 0x28], 0xc
mov rcx, rbp
mov edx, 0x2d1400
lea r8, [rsp + 0x1a0]
mov r9d, 0xc
call sub.kernel32.dll_DeviceIoControl
xor edi, edi
cmp byte [rsp + 0x108], 0
sete dil
cmp dword [rsp + 0x74], 0xc
mov ecx, 2
cmovne rdi, rcx
test eax, eax
cmove rdi, rcx
mov r8, qword [rsp + 0x78]
test r8, r8
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0x198], rsi
je 0x140102b32
js 0x14010319d
mov rsi, r8
not rsi
shr rsi, 0x3f
mov al, byte [0x1402fa220]
mov rcx, r8
mov rdx, rsi
call fcn.14002feb0
mov r8, qword [rsp + 0x78]
test rax, rax
jne 0x140102b37
jmp 0x1401031a4
mov rcx, rbp
call fcn.1401278d4
jmp 0x140102acd
mov rcx, 0xffffffffffffffff
call fcn.1401278d4
mov rcx, r15
mov rdx, qword [rsp + 0xa0]
call fcn.1400cb90d
mov rdx, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0x40]
call fcn.1400cb90d
mov ebx, dword [rsp + 0x500]
lea r15, [rsp + 0xb0]
mov rdi, qword [rsp + 0xa8]
mov r14, qword [rsp + 0xc0]
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x110], xmm0
inc r13d
movaps xmm0, xmmword [rsp + 0x110]
movaps xmmword [rsp + 0x180], xmm0
jmp 0x14010275b
mov eax, 1
mov qword [rsp + 0xe0], rax
mov rcx, rax
mov rdx, qword [rsp + 0x40]
call sub.msvcrt.dll_memcpy
mov rcx, rbx
call fcn.140077634
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0xd8], rax
mov rcx, rax
mov rdx, r15
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov ecx, 4
xor edx, edx
call fcn.140102177
mov rbp, rax
mov rsi, rdx
mov rax, qword [rsp + 0x48]
mov qword [rbp], rax
mov edx, 4
mov r8d, 3
lea rcx, [rsp + 0x48]
lea r9, str._Users_no_.cargo_registry_src_index.crates.io_6f17d22bba15001f_sysinfo_0.26.9_src_windows_disk.rs
call fcn.140101ff4
mov r8, rdx
lea rcx, [rsp + 0x50]
mov rdx, rax
call fcn.140102019
mov eax, dword [rsp + 0x6c]
mov ecx, dword [rsp + 0x6f]
mov dword [rsp + 0x8b], ecx
mov dword [rsp + 0x88], eax
movups xmm0, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x150], xmm0
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x160], rax
mov eax, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x53]
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x6f], ecx
mov rcx, qword [rsp + 0x90]
call fcn.1401278d4
mov rcx, r15
mov rdx, qword [rsp + 0xa0]
call fcn.1400cb90d
mov rcx, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0xf0]
call fcn.1400cb90d
or qword [rsp + 0x1b8], 0xffffffffffffffff
cmp r12d, 2
mov qword [rsp + 0x1b0], rdi
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x1c0], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x1c8], rax
mov qword [rsp + 0x1d0], rax
mov byte [rsp + 0x1d8], 0
mov eax, dword [rsp + 0x88]
mov ecx, dword [rsp + 0x8b]
lea rdx, [rsp + 0x1d9]
mov dword [rdx + 3], ecx
mov dword [rdx], eax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x1e0], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x1e8], rax
mov qword [rsp + 0x1f0], rbx
mov qword [rsp + 0x1f8], rbp
mov qword [rsp + 0x200], rsi
mov qword [rsp + 0x208], 4
mov rax, qword [rsp + 0x160]
mov qword [rdx + 0x47], rax
movaps xmm0, xmmword [rsp + 0x150]
movups xmmword [rdx + 0x37], xmm0
mov rax, qword [rsp + 0x198]
mov qword [rsp + 0x228], rax
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0x230], rax
sete byte [rsp + 0x238]
mov eax, dword [rsp + 0x6c]
mov ecx, dword [rsp + 0x6f]
mov dword [rdx + 0x63], ecx
mov dword [rdx + 0x60], eax
movups xmm0, xmmword [rsp + 0xa8]
movaps xmmword [rsp + 0x260], xmm0
mov rsi, qword [rsp + 0xb8]
mov qword [rsp + 0x270], rsi
cmp rsi, qword [rsp + 0x268]
jne 0x140102d67
lea rcx, [rsp + 0x260]
mov rdx, rsi
call fcn.1401016e0
mov ebx, dword [rsp + 0x500]
lea r15, [rsp + 0xb0]
mov rsi, qword [rsp + 0x270]
jmp 0x140102d76
mov ebx, dword [rsp + 0x500]
lea r15, [rsp + 0xb0]
mov rdi, qword [rsp + 0x260]
imul rcx, rsi, 0x90
add rcx, rdi
mov r8d, 0x90
lea rdx, [rsp + 0x1b0]
call sub.msvcrt.dll_memcpy
inc rsi
mov qword [rsp + 0x270], rsi
lea rax, [rsp + 0x268]
movups xmm0, xmmword [rax]
jmp 0x140102b12
movaps xmm0, xmmword [rsp + 0x180]
movups xmmword [rsp + 0x118], xmm0
mov qword [rsp + 0x110], rdi
and qword [rsp + 0x1c0], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x1b0], xmm0
cmp qword [rsp + 0x120], 0
je 0x140102fb9
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0x270], rax
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x260], rax
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x268], rax
movups xmmword [rsp + 0x278], xmm0
lea rsi, [rsp + 0x1b0]
mov rcx, rsi
call fcn.140101a83
mov rcx, qword [rsp + 0x270]
mov qword [rax + 0x10], rcx
movaps xmm0, xmmword [rsp + 0x260]
movups xmmword [rax], xmm0
and qword [rax + 0x18], 0
mov rcx, qword [rsp + 0x1b8]
mov qword [rax + 0x20], rcx
lea rdx, [rcx + 0x18]
test rcx, rcx
cmove rdx, rsi
mov qword [rdx], rax
mov qword [rsp + 0x1b8], rax
mov rax, qword [rsp + 0x1c0]
inc rax
mov qword [rsp + 0x1c0], rax
mov rcx, qword [rsp + 0x98]
mov qword [rcx + 0x10], rax
mov rax, qword [rsp + 0x1b0]
mov qword [rcx], rax
mov rax, qword [rsp + 0x1b8]
mov qword [rcx + 8], rax
jmp 0x140103113
call fcn.14007774a
mov r12, qword [rax]
lea rbx, [r12 + 0x80]
call fcn.140078d25
test rax, rax
je 0x140102fdb
mov r15, rax
cmp qword [rax + 0x110], r12
je 0x14010312f
mov rax, r15
add rax, 0x110
mov rcx, qword [r15 + 0x100]
lea rdx, [rsp + 0x80]
lea r8, [rsp + 0x1b0]
mov qword [r8], rdx
lea rdx, [rsp + 0x50]
mov qword [r8 + 8], rdx
mov qword [r8 + 0x10], rdi
mov qword [r8 + 0x18], r14
mov dword [r8 + 0x20], esi
mov r9d, dword [rsp + 0x500]
mov dword [r8 + 0x24], r9d
mov qword [r8 + 0x28], rdx
mov qword [r8 + 0x30], rdi
mov qword [r8 + 0x38], r14
mov dword [r8 + 0x40], r13d
mov dword [r8 + 0x44], esi
mov qword [r8 + 0x80], rax
and qword [r8 + 0x88], 0
mov qword [r8 + 0x90], rcx
mov byte [r8 + 0x98], 1
and qword [r8 + 0x48], 0
lea rdx, [0x1401033a0]
mov rcx, rbx
call fcn.140078e8c
lea rdx, [rsp + 0x230]
mov rcx, r15
call fcn.140101e63
lea rsi, [rsp + 0x260]
lea rdx, [rsp + 0x1b0]
mov r8d, 0xa0
mov rcx, rsi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsi + 0x78]
lea rdx, [rsp + 0x110]
mov qword [rdx + 0x30], rax
movups xmm0, xmmword [rsi + 0x48]
movups xmm1, xmmword [rsi + 0x58]
movups xmm2, xmmword [rsi + 0x68]
jmp 0x140103094
mov rax, qword [rsp + 0x98]
movups xmmword [rax], xmm0
and qword [rax + 0x10], 0
lea rcx, [rsp + 0x110]
call fcn.1400093a0
jmp 0x140103113
xor ecx, ecx
call fcn.1400790e3
test rax, rax
je 0x1401031b1
lea rcx, [rsp + 0x80]
lea r8, [rsp + 0x1b0]
mov qword [r8 + 8], rcx
lea rcx, [rsp + 0x50]
mov qword [r8 + 0x10], rcx
mov qword [r8 + 0x18], rdi
mov qword [r8 + 0x20], r14
mov dword [r8 + 0x28], esi
mov edx, dword [rsp + 0x500]
mov dword [r8 + 0x2c], edx
mov qword [r8 + 0x30], rcx
mov qword [r8 + 0x38], rdi
mov qword [r8 + 0x40], r14
mov dword [r8 + 0x48], r13d
mov dword [r8 + 0x4c], esi
mov qword [r8], rax
and qword [r8 + 0x50], 0
lea rdx, [0x1401035ce]
mov rcx, rbx
call fcn.140078e8c
mov rcx, qword [rsp + 0x1b0]
call fcn.1400776d4
lea rsi, [rsp + 0x260]
lea rdx, [rsp + 0x1b0]
mov r8d, 0x88
mov rcx, rsi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsi + 0x80]
lea rdx, [rsp + 0x110]
mov qword [rdx + 0x30], rax
movups xmm0, xmmword [rsi + 0x50]
movups xmm1, xmmword [rsi + 0x60]
movups xmm2, xmmword [rsi + 0x70]
movaps xmmword [rdx + 0x20], xmm2
movaps xmmword [rdx + 0x10], xmm1
movaps xmmword [rdx], xmm0
lea rcx, [rsp + 0xa8]
call fcn.140101c82
mov rax, qword [rsp + 0xb8]
lea rsi, [rsp + 0x1b0]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [rsp + 0xa8]
movaps xmmword [rsi], xmm0
mov rax, qword [rsp + 0xd0]
lea rdi, [rsp + 0x260]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rsp + 0xc0]
movaps xmmword [rdi], xmm0
mov rcx, rsi
mov rdx, rdi
call fcn.140103330
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsp + 0x98]
mov qword [rcx + 0x10], rax
movaps xmm0, xmmword [rsi]
movups xmmword [rcx], xmm0
mov rcx, rdi
call fcn.140101afa
movaps xmm6, xmmword [rsp + 0x470]
add rsp, 0x488
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rsp + 0x80]
lea rdx, [rsp + 0x260]
mov qword [rdx], rax
lea rax, [rsp + 0x50]
mov qword [rdx + 8], rax
mov qword [rdx + 0x10], rdi
mov qword [rdx + 0x18], r14
mov dword [rdx + 0x20], esi
mov ecx, dword [rsp + 0x500]
mov dword [rdx + 0x24], ecx
mov qword [rdx + 0x28], rax
mov qword [rdx + 0x30], rdi
mov qword [rdx + 0x38], r14
mov dword [rdx + 0x40], r13d
mov dword [rdx + 0x44], esi
lea rcx, [rsp + 0xa8]
mov r8, r15
jmp 0x140102736
lea rcx, str.assertion_failed:_index___self.range.len___Users_no_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rayon_1.8.0_src_range.rs
lea r8, [0x14026d788]
mov edx, 0x2b
call fcn.140036270
ud2
call fcn.1400320b0
jmp 0x1401031af
mov rcx, rsi
mov rdx, r8
call fcn.1400320f0
ud2
lea rax, [0x14027e350]
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_5680fa18feaa87f3ff04063800aec256c3d4b4belibrary_std_src_threadlocal.rs
lea r9, [0x14027d780]
lea r8, [rsp + 0x260]
mov edx, 0x46
call fcn.140038b60
ud2