Function at 0x1400afa59
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, 0x4c8
movaps xmmword [rsp + 0x4b0], xmm6
mov rsi, rdx
mov qword [rsp + 0xc0], rcx
mov ebx, dword [rsp + 0x540]
mov r12d, dword [rsp + 0x538]
mov rax, qword [rsp + 0x530]
mov qword [rsp + 0x188], rdx
mov qword [rsp + 0x1a8], rax
shr rsi, 1
cmp rsi, rax
jae 0x1400b0195
cmp r12d, ebx
jae 0x1400b01b5
mov rax, qword [rsp + 0x548]
mov r14, qword [rax]
mov esi, 8
lea rbp, [rsp + 0x48]
lea rdi, [rsp + 0x260]
xorps xmm6, xmm6
xor edx, edx
xor eax, eax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0xe0], r14
mov eax, dword [r14]
bt eax, r12d
jae 0x1400afec2
mov qword [rsp + 0xf8], rdx
lea r13d, [r12 + 0x41]
mov word [rsp + 0x48], r13w
mov dword [rsp + 0x4a], 0x5c003a
mov word [rsp + 0x4e], 0
mov rcx, rbp
call sub.kernel32.dll_GetDriveTypeW
mov r15d, eax
and eax, 0xfffffffe
cmp eax, 2
jne 0x1400afeba
mov r8d, 0x20a
mov rcx, rdi
xor edx, edx
call sub.VCRUNTIME140.dll_memset
movaps xmmword [rsp + 0x200], xmm6
movaps xmmword [rsp + 0x1f0], xmm6
movaps xmmword [rsp + 0x1e0], xmm6
movaps xmmword [rsp + 0x1d0], xmm6
lea rax, [rsp + 0x1d0]
mov qword [rsp + 0x30], rax
movups xmmword [rsp + 0x20], xmm6
mov dword [rsp + 0x38], 0x20
mov rcx, rbp
mov rdx, rdi
mov r8d, 0x105
xor r9d, r9d
call sub.kernel32.dll_GetVolumeInformationW
test eax, eax
je 0x1400afeba
xor ecx, ecx
cmp word [rsp + rcx*2 + 0x260], 0
je 0x1400afbb8
inc rcx
cmp rcx, 0x105
jne 0x1400afb9a
mov ecx, 0x105
jmp 0x1400afbc5
cmp rcx, 0x106
jae 0x1400b0522
lea rax, [rsp + rcx*2]
add rax, 0x260
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rax
mov word [rsp + 0x68], 0
xor eax, eax
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], 1
mov qword [rsp + 0x98], rax
lea rcx, [rsp + 0x88]
lea rdx, [rsp + 0x58]
call fcn.1400b09b3
mov rcx, qword [rsp + 0x88]
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x78], rax
xor edi, edi
mov qword [rsp + 0xf0], rcx
cmp word [rsp + rdi*2 + 0x1d0], 0
je 0x1400afc5a
inc rdi
cmp rdi, 0x20
jne 0x1400afc3f
mov edi, 0x20
jmp 0x1400afc64
cmp rdi, 0x21
jae 0x1400b0533
mov rcx, rdi
call fcn.140085c2f
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], 0
cmp rax, rdi
jb 0x1400b016e
mov rbx, rdx
mov eax, 0
mov r14d, 0
test rdi, rdi
je 0x1400afcc7
mov r14, rax
xor eax, eax
mov cl, byte [rsp + rax*2 + 0x1d0]
mov byte [rbx + r14], cl
inc r14
inc rax
cmp rdi, rax
jne 0x1400afca9
mov rbx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0xe8], rax
movabs rax, 0x5c002e005c005c
mov qword [rsp + 0x15a], rax
mov word [rsp + 0x162], r13w
mov dword [rsp + 0x164], 0x3a
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
lea rcx, [rsp + 0x15a]
xor edx, edx
mov r8d, 3
xor r9d, r9d
call sub.kernel32.dll_CreateFileW
cmp rax, 0xffffffffffffffff
je 0x1400afe57
mov rdi, rax
xor eax, eax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x88], rax
mov rcx, rbp
xor edx, edx
lea r8, [rsp + 0x58]
lea r9, [rsp + 0x88]
call sub.kernel32.dll_GetDiskFreeSpaceExW
test eax, eax
je 0x1400afe52
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x1400afe52
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0x194], 7
mov byte [rsp + 0x19c], 0
xor eax, eax
mov dword [rsp + 0x108], eax
mov qword [rsp + 0x100], rax
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x54]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x100]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 0xc
mov rcx, rdi
mov edx, 0x2d1400
lea r8, [rsp + 0x194]
mov r9d, 0xc
call qword [sym.imp.kernel32.dll_DeviceIoControl]
xor r13d, r13d
cmp byte [rsp + 0x108], 0
sete r13b
cmp dword [rsp + 0x54], 0xc
mov ecx, 2
cmovne r13, rcx
test eax, eax
cmove r13, rcx
mov r8, qword [rsp + 0x78]
test r8, r8
je 0x1400afed3
js 0x1400b055f
mov al, byte [0x14014d2a0]
xor ecx, ecx
mov rdx, r8
call fcn.1400abc70
mov r8, qword [rsp + 0x78]
test rax, rax
jne 0x1400afed8
jmp 0x1400b0564
mov rcx, rdi
jmp 0x1400afe5e
mov rcx, 0xffffffffffffffff
call qword [sym.imp.kernel32.dll_CloseHandle]
cmp qword [rsp + 0xe8], 0
mov r14, qword [rsp + 0xe0]
lea rdi, [rsp + 0x260]
je 0x1400afe91
mov rcx, qword [0x14014d1f0]
xor edx, edx
mov r8, rbx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0xf0], 0
mov ebx, dword [rsp + 0x540]
je 0x1400afeba
mov rcx, qword [0x14014d1f0]
xor edx, edx
mov r8, qword [rsp + 0xc8]
call qword [sym.imp.kernel32.dll_HeapFree]
mov rdx, qword [rsp + 0xf8]
inc r12d
cmp r12d, ebx
jne 0x1400afaec
jmp 0x1400b01c3
mov eax, 1
cmp r15d, 2
sete byte [rsp + 0x47]
mov qword [rsp + 0x180], rax
mov rcx, rax
mov rdx, qword [rsp + 0xc8]
call sub.VCRUNTIME140.dll_memcpy
mov rcx, r14
call fcn.140085c2f
mov qword [rsp + 0x178], rax
mov rcx, rdx
mov qword [rsp + 0x170], rdx
mov rdx, rbx
mov r8, r14
call sub.VCRUNTIME140.dll_memcpy
mov ecx, 4
call fcn.1400b0bae
mov qword [rsp + 0x168], rax
mov r15, rdx
mov rax, qword [rsp + 0x48]
mov qword [rdx], rax
mov qword [rsp + 0x58], rbp
lea rax, [rsp + 0x4e]
mov qword [rsp + 0x60], rax
mov word [rsp + 0x68], 0
xor eax, eax
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], 1
mov qword [rsp + 0x98], rax
lea rcx, [rsp + 0x88]
lea rdx, [rsp + 0x58]
call fcn.1400b09b3
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x1c0], rax
movups xmm0, xmmword [rsp + 0x88]
movaps xmmword [rsp + 0x1b0], xmm0
mov eax, dword [rsp + 0x88]
mov ecx, dword [rsp + 0x8b]
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x5b], ecx
mov eax, dword [rsp + 0x88]
mov ecx, dword [rsp + 0x8b]
mov dword [rsp + 0x80], eax
mov dword [rsp + 0x83], ecx
mov rcx, rdi
call qword [sym.imp.kernel32.dll_CloseHandle]
cmp qword [rsp + 0xe8], 0
je 0x1400afffa
mov rcx, qword [0x14014d1f0]
xor edx, edx
mov r8, rbx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0xf0], 0
lea rdi, [rsp + 0x260]
je 0x1400b0024
mov rcx, qword [0x14014d1f0]
xor edx, edx
mov r8, qword [rsp + 0xc8]
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x260], rax
mov qword [rsp + 0x268], rsi
mov rdx, qword [rsp + 0xf8]
mov qword [rsp + 0x270], rdx
cmp rdx, rax
mov ebx, dword [rsp + 0x540]
jne 0x1400b007a
mov rcx, rdi
call fcn.1400af16a
mov rdx, qword [rsp + 0x270]
mov rax, qword [rsp + 0x260]
mov qword [rsp + 0x70], rax
mov rsi, qword [rsp + 0x268]
mov rcx, qword [rsp + 0x78]
mov r9, qword [rsp + 0xd8]
mov r10, qword [rsp + 0xd0]
mov r11b, byte [rsp + 0x47]
lea rax, [rdx + rdx*8]
shl rax, 4
mov qword [rsi + rax], r13
mov qword [rsi + rax + 8], 0xffffffffffffffff
mov qword [rsi + rax + 0x10], rcx
mov r8, qword [rsp + 0x180]
mov qword [rsi + rax + 0x18], r8
mov qword [rsi + rax + 0x20], rcx
mov byte [rsi + rax + 0x28], 0
mov ecx, dword [rsp + 0x58]
mov r8d, dword [rsp + 0x5b]
mov dword [rsi + rax + 0x29], ecx
mov dword [rsi + rax + 0x2c], r8d
mov rcx, qword [rsp + 0x178]
mov qword [rsi + rax + 0x30], rcx
mov rcx, qword [rsp + 0x170]
mov qword [rsi + rax + 0x38], rcx
mov qword [rsi + rax + 0x40], r14
mov rcx, qword [rsp + 0x168]
mov qword [rsi + rax + 0x48], rcx
mov qword [rsi + rax + 0x50], r15
mov qword [rsi + rax + 0x58], 4
movaps xmm0, xmmword [rsp + 0x1b0]
movups xmmword [rsi + rax + 0x60], xmm0
mov rcx, qword [rsp + 0x1c0]
mov qword [rsi + rax + 0x70], rcx
mov qword [rsi + rax + 0x78], r9
mov qword [rsi + rax + 0x80], r10
mov byte [rsi + rax + 0x88], r11b
mov ecx, dword [rsp + 0x80]
mov r8d, dword [rsp + 0x83]
mov dword [rsi + rax + 0x8c], r8d
mov dword [rsi + rax + 0x89], ecx
inc rdx
mov r14, qword [rsp + 0xe0]
jmp 0x1400afec2
lea rcx, [rsp + 0x88]
xor edx, edx
mov r8, rdi
call fcn.1401012c0
mov rbx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x98]
jmp 0x1400afca4
mov rdi, r9
test r8b, r8b
je 0x1400b028b
call fcn.14008745f
shr rdi, 1
cmp rax, rdi
cmova rdi, rax
jmp 0x1400b0297
mov esi, 8
xor edx, edx
xor eax, eax
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x118], rsi
mov qword [rsp + 0x120], rdx
mov rax, qword [rsp + 0x548]
mov qword [rsp + 0x128], rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0x260], xmm0
mov qword [rsp + 0x270], 0
test rdx, rdx
je 0x1400b03f2
lea rsi, [rsp + 0x278]
mov rcx, rsi
call fcn.1400af34b
mov rcx, qword [rsp + 0x120]
movups xmm0, xmmword [rsp + 0x110]
movups xmmword [rax], xmm0
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], 0
mov rcx, qword [rsi - 0x10]
mov qword [rax + 0x20], rcx
lea rdx, [rcx + 0x18]
test rcx, rcx
lea rcx, [rsp + 0x260]
cmove rdx, rcx
mov qword [rdx], rax
mov qword [rcx + 8], rax
mov rax, qword [rcx + 0x10]
inc rax
mov qword [rcx + 0x10], rax
mov rdx, qword [rcx]
mov r8, qword [rsp + 0xc0]
mov qword [r8], rdx
mov rcx, qword [rcx + 8]
mov qword [r8 + 8], rcx
mov qword [r8 + 0x10], rax
jmp 0x1400b0412
test rdi, rdi
je 0x1400afab2
shr rdi, 1
mov qword [rsp + 0x1a0], rdi
mov qword [rsp + 0x58], rsi
xor eax, eax
mov ecx, ebx
sub ecx, r12d
cmovb ecx, eax
cmp rsi, rcx
ja 0x1400b0547
add esi, r12d
lea rax, [rsp + 0x188]
mov qword [rsp + 0x110], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x118], rax
lea rcx, [rsp + 0x1a0]
mov qword [rsp + 0x120], rcx
mov rdx, qword [rsp + 0x548]
mov qword [rsp + 0x128], rdx
mov dword [rsp + 0x130], esi
mov dword [rsp + 0x134], ebx
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x148], rdx
mov dword [rsp + 0x150], r12d
mov dword [rsp + 0x154], esi
lea rcx, [0x140085895]
call fcn.14008593d
test rax, rax
jne 0x1400b036e
call fcn.140085dad
mov rsi, qword [rax]
lea rbx, [rsi + 0x80]
lea rcx, [0x140085895]
call fcn.14008593d
test rax, rax
je 0x1400b042e
cmp qword [rax + 0x110], rsi
jne 0x1400b0502
lea rcx, [rsp + 0x260]
lea rdx, [rsp + 0x110]
mov r8, rax
xor r9d, r9d
call fcn.1400af689
movaps xmm0, xmmword [rsp + 0x260]
lea rsi, [rsp + 0x470]
movaps xmmword [rsi], xmm0
mov rax, qword [rsp + 0x270]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [rsp + 0x278]
lea rdi, [rsp + 0x490]
movaps xmmword [rdi], xmm0
mov rax, qword [rsp + 0x288]
mov qword [rdi + 0x10], rax
mov rcx, rsi
mov rdx, rdi
call fcn.1400b0626
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsp + 0xc0]
mov qword [rcx + 0x10], rax
movaps xmm0, xmmword [rsi]
movups xmmword [rcx], xmm0
mov rcx, rdi
call fcn.1400b0599
jmp 0x1400b0412
mov rax, qword [rsp + 0xc0]
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
lea rcx, [rsp + 0x110]
call fcn.1400af383
movaps xmm6, xmmword [rsp + 0x4b0]
add rsp, 0x4c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x14014d2d0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0xa8], 0
jne 0x1400b0452
xor ecx, ecx
call fcn.1400858b0
lea rax, [rsp + 0x1d8]
lea rsi, [rsp + 0x110]
mov ecx, 9
mov rdi, rax
rep movsq qword [rdi], qword [rsi]
mov ecx, dword [0x14014d2d0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
lea rcx, [rcx + 0xb0]
mov qword [rax - 8], rcx
mov qword [rax + 0x48], 0
lea rdx, [0x1400b0838]
lea rsi, [rsp + 0x1d0]
mov rcx, rbx
mov r8, rsi
call fcn.14008725e
mov rcx, qword [rsi]
call fcn.140085cc3
lea rcx, [rsp + 0x260]
mov r8d, 0x88
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
lea rsi, [rsp + 0x2b0]
lea rdi, [rsp + 0x90]
mov rcx, rdi
mov rdx, rsi
call fcn.1400af635
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmm2, xmmword [rdi + 0x20]
movaps xmmword [rsi - 0x50], xmm0
movaps xmmword [rsi - 0x40], xmm1
movaps xmmword [rsi - 0x30], xmm2
jmp 0x1400b0389
lea rcx, [rsp + 0x260]
lea r9, [rsp + 0x110]
mov rdx, rbx
mov r8, rax
call fcn.140107747
jmp 0x1400b0389
lea r8, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_sysinfo_0.27.8_srcwindowsdisk.rs
mov edx, 0x105
call fcn.140101500
lea r8, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_sysinfo_0.27.8_srcwindowsdisk.rs
mov edx, 0x20
mov rcx, rdi
call fcn.140101500
lea rcx, str.assertion_failed:_index___self.range.len__C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rayon_1.7.0_src_range.rs
lea r8, [0x14012d960]
mov edx, 0x2b
call fcn.140101580
call fcn.1400413f0
mov ecx, 1
mov rdx, r8
call fcn.140100fe0
int3