Function at 0x140156016
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, 0x4d8
movaps xmmword [rsp + 0x4c0], xmm6
mov rsi, rdx
mov qword [rsp + 0x88], rcx
mov rbx, qword [rsp + 0x558]
mov ebp, dword [rsp + 0x550]
mov r15d, dword [rsp + 0x548]
mov rax, qword [rsp + 0x540]
mov qword [rsp + 0x128], rdx
lea rdi, [rsp + 0x260]
mov qword [rdi], r9
mov qword [rdi + 8], rax
mov rcx, rdi
call fcn.140155881
test al, al
je 0x14015619d
shr rsi, 1
mov qword [rsp + 0x130], rsi
xor eax, eax
mov ecx, ebp
sub ecx, r15d
cmovb ecx, eax
cmp rsi, rcx
ja 0x1401569f5
add esi, r15d
lea rax, [rsp + 0x128]
mov qword [rsp + 0x138], rax
lea rax, [rsp + 0x130]
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rdi
mov qword [rsp + 0x150], rbx
mov dword [rsp + 0x158], esi
mov dword [rsp + 0x15c], ebp
mov qword [rsp + 0x160], rax
mov qword [rsp + 0x168], rdi
mov qword [rsp + 0x170], rbx
mov dword [rsp + 0x178], r15d
mov dword [rsp + 0x17c], esi
call fcn.14007edd8
test rax, rax
je 0x1401567b1
lea rcx, [rsp + 0xc0]
lea rdx, [rsp + 0x138]
mov r8, rax
xor r9d, r9d
call fcn.140155cb2
mov rax, qword [rsp + 0xd0]
lea rsi, [rsp + 0x270]
mov qword [rsi + 0x10], rax
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmmword [rsi], xmm0
movups xmm0, xmmword [rsp + 0xd8]
lea rdi, [rsp + 0x290]
movaps xmmword [rdi], xmm0
mov rax, qword [rsp + 0xe8]
mov qword [rdi + 0x10], rax
mov rcx, rsi
mov rdx, rdi
call fcn.140156a22
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsp + 0x88]
mov qword [rcx + 0x10], rax
movaps xmm0, xmmword [rsi]
movups xmmword [rcx], xmm0
mov rcx, rdi
call fcn.140155f95
jmp 0x140156892
mov r14, qword [rbx]
mov r13d, 8
lea r12, [rsp + 0x4c]
xorps xmm6, xmm6
xor eax, eax
mov qword [rsp + 0x90], rax
xor edi, edi
mov qword [rsp + 0xb0], r14
cmp r15d, ebp
jae 0x140156731
mov eax, dword [r14]
bt eax, r15d
jae 0x14015670b
lea ebx, [r15 + 0x41]
mov word [rsp + 0x4c], bx
mov dword [rsp + 0x4e], 0x5c003a
and word [rsp + 0x52], 0
mov rcx, r12
call sub.kernel32.dll_GetDriveTypeW
mov esi, eax
and eax, 0xfffffffe
cmp eax, 2
jne 0x1401562a1
mov qword [rsp + 0x98], rdi
mov r8d, 0x20a
lea rdi, [rsp + 0x2b0]
mov rcx, rdi
xor edx, edx
call sub.VCRUNTIME140.dll_memset
movaps xmmword [rsp + 0x250], xmm6
movaps xmmword [rsp + 0x240], xmm6
movaps xmmword [rsp + 0x230], xmm6
movaps xmmword [rsp + 0x220], xmm6
lea rax, [rsp + 0x220]
mov qword [rsp + 0x30], rax
movups xmmword [rsp + 0x20], xmm6
mov dword [rsp + 0x38], 0x20
mov rcx, r12
mov rdx, rdi
mov r8d, 0x105
xor r9d, r9d
call sub.kernel32.dll_GetVolumeInformationW
test eax, eax
je 0x1401562b2
mov eax, 0x20a
xor r8d, r8d
mov rdi, qword [rsp + 0x98]
test rax, rax
je 0x1401562c3
cmp word [rsp + r8*2 + 0x2b0], 0
je 0x1401562cb
inc r8
add rax, 0xfffffffffffffffe
jmp 0x140156287
mov qword [rsp + 0x180], 3
jmp 0x140156696
mov qword [rsp + 0x180], 3
jmp 0x14015668e
mov r8d, 0x105
jmp 0x1401562d8
cmp r8, 0x106
jae 0x1401569ca
lea rcx, [rsp + 0xf0]
lea rdx, [rsp + 0x2b0]
call fcn.1401559c0
mov rbp, qword [rsp + 0xf8]
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x70], rax
mov eax, 0x40
xor r12d, r12d
test rax, rax
je 0x140156324
cmp word [rsp + r12*2 + 0x220], 0
je 0x14015632c
inc r12
add rax, 0xfffffffffffffffe
jmp 0x14015630a
mov r12d, 0x20
jmp 0x140156336
cmp r12, 0x21
jae 0x1401569e1
mov qword [rsp + 0xb8], r13
lea rcx, [rsp + 0x58]
mov rdx, r12
call fcn.1400c4467
cmp qword [rsp + 0x58], 0
mov r14, qword [rsp + 0x60]
jne 0x1401569bd
mov qword [rsp + 0x120], rbp
mov r13, qword [rsp + 0x68]
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x60], r13
and qword [rsp + 0x68], 0
cmp r12, r14
ja 0x140156713
mov eax, 0
mov ebp, 0
test r12, r12
je 0x1401563b2
mov rbp, rax
xor eax, eax
mov cl, byte [rsp + rax*2 + 0x220]
mov byte [r13 + rbp], cl
inc rbp
inc rax
cmp r12, rax
jne 0x140156396
mov r14, qword [rsp + 0x58]
movabs rax, 0x5c002e005c005c
mov qword [rsp + 0x58], rax
mov word [rsp + 0x60], bx
mov dword [rsp + 0x62], 0x3a
and qword [rsp + 0x30], 0
and dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
lea rcx, [rsp + 0x58]
xor edx, edx
mov r8d, 3
xor r9d, r9d
call qword [sym.imp.kernel32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
je 0x140156532
mov r12, rax
and qword [rsp + 0xa0], 0
and qword [rsp + 0x78], 0
lea rcx, [rsp + 0x4c]
xor edx, edx
lea r8, [rsp + 0xa0]
lea r9, [rsp + 0x78]
call sub.kernel32.dll_GetDiskFreeSpaceExW
test eax, eax
je 0x14015651b
mov rbx, qword [rsp + 0xa0]
test rbx, rbx
je 0x14015651b
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x108], rax
and dword [rsp + 0x80], 0
mov qword [rsp + 0xa0], 7
and qword [rsp + 0x78], 0
mov byte [rsp + 0xa8], 0
and dword [rsp + 0x54], 0
lea rax, [rsp + 0x54]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
and qword [rsp + 0x38], 0
mov dword [rsp + 0x28], 0xc
mov rcx, r12
mov edx, 0x2d1400
lea r8, [rsp + 0xa0]
mov r9d, 0xc
call qword [sym.imp.kernel32.dll_DeviceIoControl]
xor edi, edi
cmp byte [rsp + 0x80], 0
sete dil
cmp dword [rsp + 0x54], 0xc
mov ecx, 2
cmovne rdi, rcx
test eax, eax
cmove rdi, rcx
cmp qword [rsp + 0x70], 0
mov qword [rsp + 0x118], r12
mov qword [rsp + 0x110], rbx
je 0x14015658c
js 0x140156a0d
mov al, byte [0x140343bb0]
xor ecx, ecx
mov rdx, qword [rsp + 0x70]
call fcn.14014fe10
test rax, rax
je 0x140156a12
mov rbx, rax
jmp 0x140156591
mov qword [rsp + 0x180], 3
mov rcx, r12
call qword [sym.imp.kernel32.dll_CloseHandle]
jmp 0x14015654b
mov rcx, 0xffffffffffffffff
call qword [sym.imp.kernel32.dll_CloseHandle]
mov qword [rsp + 0x180], 3
mov rcx, r14
mov rdx, r13
call fcn.1401264aa
mov rcx, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0xf8]
call fcn.1401264aa
mov ebp, dword [rsp + 0x550]
mov r14, qword [rsp + 0xb0]
mov r13, qword [rsp + 0xb8]
lea r12, [rsp + 0x4c]
jmp 0x140156696
mov ebx, 1
mov rcx, rbx
mov rdx, qword [rsp + 0x120]
mov r12, qword [rsp + 0x70]
mov r8, r12
call fcn.140240685
mov qword [rsp + 0x190], r12
mov qword [rsp + 0x198], rbx
mov qword [rsp + 0x1a0], r12
mov byte [rsp + 0x1a8], 0
lea rcx, [rsp + 0x1b0]
mov rdx, r13
mov r8, rbp
call fcn.14004f139
mov r8d, 4
lea rcx, [rsp + 0x1c8]
lea r12, [rsp + 0x4c]
mov rdx, r12
call fcn.140155bdc
mov r8d, 3
lea rcx, [rsp + 0x1e0]
mov rdx, r12
call fcn.1401559c0
or qword [rsp + 0x188], 0xffffffffffffffff
cmp esi, 2
mov qword [rsp + 0x180], rdi
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x1f8], rax
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x200], rax
sete byte [rsp + 0x208]
mov rcx, qword [rsp + 0x118]
call qword [sym.imp.kernel32.dll_CloseHandle]
mov rcx, r14
mov rdx, r13
call fcn.1401264aa
mov rcx, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0xf8]
call fcn.1401264aa
mov ebp, dword [rsp + 0x550]
mov r14, qword [rsp + 0xb0]
mov r13, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0x98]
cmp qword [rsp + 0x180], 3
je 0x14015670b
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x2b0], rax
mov qword [rsp + 0x2b8], r13
mov qword [rsp + 0x2c0], rdi
cmp rdi, rax
jne 0x1401566eb
lea rcx, [rsp + 0x2b0]
call fcn.14015531f
mov rax, qword [rsp + 0x2b0]
mov qword [rsp + 0x90], rax
mov r13, qword [rsp + 0x2b8]
imul rcx, rdi, 0x90
add rcx, r13
mov r8d, 0x90
lea rdx, [rsp + 0x180]
call fcn.140240685
inc rdi
inc r15d
jmp 0x1401561c2
lea rcx, [rsp + 0x58]
xor edx, edx
mov r8, r12
call fcn.140245238
mov r13, qword [rsp + 0x60]
mov rax, qword [rsp + 0x68]
jmp 0x140156391
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], r13
mov qword [rsp + 0xd0], rdi
mov rax, qword [rsp + 0x558]
mov qword [rsp + 0xd8], rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0x2b0], xmm0
and qword [rsp + 0x2c0], 0
test rdi, rdi
je 0x140156875
lea rsi, [rsp + 0x2b0]
lea rdx, [rsp + 0xc0]
mov rcx, rsi
call fcn.140155407
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsp + 0x88]
mov qword [rcx + 0x10], rax
movaps xmm0, xmmword [rsi]
movups xmmword [rcx], xmm0
jmp 0x140156892
call fcn.14007f8e0
mov rsi, qword [rax]
lea rbx, [rsi + 0x80]
call fcn.14007edd8
test rax, rax
je 0x1401568ae
mov r14, rax
cmp qword [rax + 0x110], rsi
je 0x1401569a5
mov rax, r14
add rax, 0x110
mov rcx, qword [r14 + 0x100]
lea r15, [rsp + 0x200]
mov qword [r15], rax
and qword [r15 + 8], 0
mov qword [r15 + 0x10], rcx
mov byte [r15 + 0x18], 1
lea r12, [rsp + 0x180]
lea rsi, [rsp + 0x138]
mov ecx, 9
mov rdi, r12
rep movsq qword [rdi], qword [rsi]
and qword [r12 + 0x48], 0
lea rdx, [0x140156a77]
mov rcx, rbx
mov r8, r12
call fcn.14007fb85
mov rcx, r14
mov rdx, r15
call fcn.14015586d
lea rcx, [rsp + 0x2b0]
mov r8d, 0xa0
mov rdx, r12
call fcn.140240685
lea rdx, [rsp + 0x2f8]
lea rcx, [rsp + 0xc0]
call fcn.140155721
jmp 0x140156131
mov rax, qword [rsp + 0x88]
movups xmmword [rax], xmm0
and qword [rax + 0x10], 0
lea rcx, [rsp + 0xc0]
call fcn.140155471
movaps xmm6, xmmword [rsp + 0x4c0]
add rsp, 0x4d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x140343fc8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp dword [rax + 0x18], 0
jne 0x1401568ef
mov eax, dword [0x140343fc8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov dword [rax + 0x18], 1
and qword [rax + 0x1c], 0
mov eax, dword [0x140343fc8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea rcx, [rax + 0x1c]
lea rax, [rsp + 0x188]
mov qword [rax - 8], rcx
lea rsi, [rsp + 0x138]
mov ecx, 9
mov rdi, rax
rep movsq qword [rdi], qword [rsi]
and qword [rax + 0x48], 0
lea rdx, [0x140156bbe]
lea rsi, [rsp + 0x180]
mov rcx, rbx
mov r8, rsi
call fcn.14007fb85
mov rcx, qword [rsi]
call fcn.14007f81b
lea rcx, [rsp + 0x2b0]
mov r8d, 0x88
mov rdx, rsi
call fcn.140240685
lea rdx, [rsp + 0x300]
lea rsi, [rsp + 0x228]
mov rcx, rsi
call fcn.140155721
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmm2, xmmword [rsi + 0x20]
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xe0], xmm2
jmp 0x140156131
lea rcx, [rsp + 0xc0]
lea rdx, [rsp + 0x138]
mov r8, r14
jmp 0x140156129
mov rdx, qword [rsp + 0x68]
mov rcx, r14
call fcn.1402413c0
lea rax, str.C:Userselena.cargo_registry_srcindex.crates.io_6f17d22bba15001f_sysinfo_0.26.9_srcwindowsdisk.rs
mov edx, 0x105
mov rcx, r8
mov r8, rax
call fcn.140241860
lea r8, str.C:Userselena.cargo_registry_srcindex.crates.io_6f17d22bba15001f_sysinfo_0.26.9_srcwindowsdisk.rs
mov edx, 0x20
mov rcx, r12
call fcn.140241860
lea rcx, str.assertion_failed:_index___self.range.len__C:Userselena.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rayon_1.10.0_src_range.rs
lea r8, [0x14027ef38]
mov edx, 0x2b
call fcn.1402418d0
call fcn.14004ce80
mov ecx, 1
mov rdx, qword [rsp + 0x70]
call fcn.1402413c0
int3