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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x5b8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x520], xmm6
mov qword [rbp + 0x518], 0xfffffffffffffffe
mov rsi, rdx
mov qword [rbp + 0x498], rcx
mov r12, qword [rbp + 0x5b8]
mov r13d, dword [rbp + 0x5b0]
mov r15d, dword [rbp + 0x5a8]
mov rax, qword [rbp + 0x5a0]
mov qword [rbp + 0x3d8], rdx
lea rdi, [rbp + 0x210]
mov qword [rdi], r9
mov qword [rdi + 8], rax
mov rcx, rdi
call fcn.1401169e1
test al, al
je 0x140118663
shr rsi, 1
mov qword [rbp + 0x3d0], rsi
xor eax, eax
mov ecx, r13d
sub ecx, r15d
cmovb ecx, eax
cmp rsi, rcx
ja 0x140118ff1
add esi, r15d
lea rax, [rbp + 0x3d8]
mov qword [rbp + 0x348], rax
lea rax, [rbp + 0x3d0]
mov qword [rbp + 0x350], rax
mov qword [rbp + 0x358], rdi
mov qword [rbp + 0x360], r12
mov dword [rbp + 0x368], esi
mov dword [rbp + 0x36c], r13d
mov qword [rbp + 0x370], rax
mov qword [rbp + 0x378], rdi
mov qword [rbp + 0x380], r12
mov dword [rbp + 0x388], r15d
mov dword [rbp + 0x38c], esi
call fcn.140096315
test rax, rax
je 0x140118d7e
lea rcx, [rbp + 0x4a0]
lea rdx, [rbp + 0x348]
mov r8, rax
xor r9d, r9d
call fcn.140117ef9
mov rax, qword [rbp + 0x4b0]
lea rsi, [rbp + 0x1f0]
mov qword [rsi + 0x10], rax
movaps xmm0, xmmword [rbp + 0x4a0]
movaps xmmword [rsi], xmm0
movups xmm0, xmmword [rbp + 0x4b8]
lea rdi, [rbp + 0x1d0]
movaps xmmword [rdi], xmm0
mov rax, qword [rbp + 0x4c8]
mov qword [rdi + 0x10], rax
mov rcx, rsi
mov rdx, rdi
call fcn.140119405
mov rax, qword [rsi + 0x10]
mov rcx, qword [rbp + 0x498]
mov qword [rcx + 0x10], rax
movaps xmm0, xmmword [rsi]
movups xmmword [rcx], xmm0
mov rcx, rdi
call fcn.14011687a
jmp 0x140118e74
and qword [rbp + 0x4a0], 0
mov qword [rbp + 0x4a8], 8
and qword [rbp + 0x4b0], 0
mov qword [rbp + 0x4b8], r12
mov rdi, qword [r12]
lea rsi, [rbp + 0x488]
xorps xmm6, xmm6
cmp r15d, r13d
jae 0x140118cc9
mov eax, dword [rdi]
bt eax, r15d
jae 0x140118c82
lea ebx, [r15 + 0x41]
mov word [rbp + 0x488], bx
mov dword [rbp + 0x48a], 0x5c003a
and word [rbp + 0x48e], 0
mov byte [rbp + 0x517], 1
mov rcx, rsi
call sub.kernel32.dll_GetDriveTypeW
mov ecx, eax
and ecx, 0xfffffffe
cmp ecx, 2
jne 0x140118c82
mov r8d, 0x20a
mov dword [rbp + 0x500], ebx
mov rbx, r15
mov r15d, eax
mov r14, r12
mov r12d, r13d
mov r13, rdi
mov rdi, rsi
lea rsi, [rbp - 0x40]
mov rcx, rsi
xor edx, edx
call sub.VCRUNTIME140.dll_memset
movaps xmmword [rbp + 0x420], xmm6
movaps xmmword [rbp + 0x410], xmm6
movaps xmmword [rbp + 0x400], xmm6
movaps xmmword [rbp + 0x3f0], xmm6
mov byte [rbp + 0x517], 1
lea rax, [rbp + 0x3f0]
mov qword [rsp + 0x30], rax
movups xmmword [rsp + 0x20], xmm6
mov dword [rsp + 0x38], 0x20
mov rcx, rdi
mov rdx, rsi
mov rsi, rdi
mov rdi, r13
mov r13d, r12d
mov r12, r14
mov r14d, r15d
mov r15, rbx
mov ebx, dword [rbp + 0x500]
mov r8d, 0x105
xor r9d, r9d
call sub.kernel32.dll_GetVolumeInformationW
test eax, eax
je 0x140118c82
mov eax, 0x20a
xor r8d, r8d
test rax, rax
je 0x14011879d
cmp word [rbp + r8*2 - 0x40], 0
je 0x1401187a5
inc r8
add rax, 0xfffffffffffffffe
jmp 0x140118786
mov r8d, 0x105
jmp 0x1401187b2
cmp r8, 0x106
jae 0x140118fbd
mov byte [rbp + 0x517], 1
lea rcx, [rbp + 0x3b8]
lea rdx, [rbp - 0x40]
call fcn.140116cae
mov rax, qword [rbp + 0x3c0]
mov qword [rbp + 0x4d0], rax
mov rax, qword [rbp + 0x3c8]
mov qword [rbp + 0x508], rax
push 0x40
pop rax
xor r13d, r13d
lea r12, [rbp + 0x4e8]
test rax, rax
je 0x14011880c
cmp word [rbp + r13*2 + 0x3f0], 0
je 0x140118812
inc r13
add rax, 0xfffffffffffffffe
jmp 0x1401187f2
push 0x20
pop r13
jmp 0x14011881c
cmp r13, 0x21
jae 0x140118fdd
mov rcx, r12
mov rdx, r13
call fcn.140093fbf
cmp qword [rbp + 0x4e8], 0
mov rcx, qword [rbp + 0x4f0]
jne 0x140118faf
mov rax, qword [rbp + 0x4f8]
mov qword [rbp + 0x4e8], rcx
mov qword [rbp + 0x4f0], rax
and qword [rbp + 0x4f8], 0
mov rcx, r12
mov rdx, r13
call fcn.14008a7c3
mov rdx, qword [rbp + 0x4f0]
mov r12, qword [rbp + 0x4f8]
test r13, r13
je 0x14011888f
xor eax, eax
mov cl, byte [rbp + rax*2 + 0x3f0]
mov byte [rdx + r12], cl
inc r12
inc rax
cmp r13, rax
jne 0x140118879
mov qword [rbp + 0x4d8], rdx
mov rax, qword [rbp + 0x4e8]
mov qword [rbp + 0x490], rax
movabs rax, 0x5c002e005c005c
mov qword [rbp + 0x43a], rax
mov word [rbp + 0x442], bx
mov dword [rbp + 0x444], 0x3a
and qword [rsp + 0x30], 0
and dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
lea rcx, [rbp + 0x43a]
xor edx, edx
push 3
pop r8
xor r9d, r9d
call qword [sym.imp.kernel32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
je 0x140118c45
mov qword [rbp + 0x500], rax
and qword [rbp + 0x470], 0
and qword [rbp + 0x4e8], 0
mov rcx, rsi
xor edx, edx
lea r8, [rbp + 0x470]
lea r9, [rbp + 0x4e8]
call sub.kernel32.dll_GetDiskFreeSpaceExW
test eax, eax
je 0x140118c36
mov rax, qword [rbp + 0x470]
test rax, rax
je 0x140118c36
mov qword [rbp + 0x3e8], rax
mov rax, qword [rbp + 0x4e8]
mov qword [rbp + 0x3e0], rax
and dword [rbp + 0x450], 0
mov qword [rbp + 0x3ac], 7
and qword [rbp + 0x448], 0
mov byte [rbp + 0x3b4], 0
and dword [rbp + 0x4e4], 0
lea rax, [rbp + 0x4e4]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x448]
mov qword [rsp + 0x20], rax
and qword [rsp + 0x38], 0
mov dword [rsp + 0x28], 0xc
mov rcx, qword [rbp + 0x500]
mov edx, 0x2d1400
lea r8, [rbp + 0x3ac]
push 0xc
pop r9
call qword [sym.imp.kernel32.dll_DeviceIoControl]
xor r13d, r13d
cmp byte [rbp + 0x450], 0
sete r13b
cmp dword [rbp + 0x4e4], 0xc
push 2
pop rcx
cmovne r13, rcx
test eax, eax
cmove r13, rcx
push 1
pop rax
cmp qword [rbp + 0x508], 0
je 0x140118a12
js 0x140119007
mov al, byte [0x1403392d8]
xor ecx, ecx
mov rdx, qword [rbp + 0x508]
call fcn.140110e60
test rax, rax
je 0x14011900e
mov rcx, rax
mov rdx, qword [rbp + 0x4d0]
mov r8, qword [rbp + 0x508]
mov rbx, rax
call sub.VCRUNTIME140.dll_memcpy
mov qword [rbp + 0x460], rbx
lea rcx, [rbp + 0x390]
mov rdx, qword [rbp + 0x4d8]
mov r8, r12
call fcn.140116eca
mov qword [rbp + 0x468], rbx
mov qword [rbp + 0x458], rbx
lea rcx, [rbp + 0x470]
mov rdx, rsi
push 4
pop r8
call fcn.140117e8f
lea rcx, [rbp + 0x4e8]
mov rdx, rsi
push 3
pop r8
call fcn.140116cae
mov rax, qword [rbp + 0x3a0]
mov qword [rbp + 0x230], rax
movups xmm0, xmmword [rbp + 0x390]
movaps xmmword [rbp + 0x220], xmm0
movups xmm0, xmmword [rbp + 0x470]
movaps xmmword [rbp + 0x240], xmm0
mov rax, qword [rbp + 0x480]
mov qword [rbp + 0x250], rax
movups xmm0, xmmword [rbp + 0x4e8]
movaps xmmword [rbp + 0x260], xmm0
mov rax, qword [rbp + 0x4f8]
mov qword [rbp + 0x270], rax
mov rcx, qword [rbp + 0x500]
call qword [sym.imp.kernel32.dll_CloseHandle]
mov rcx, qword [rbp + 0x490]
mov rdx, qword [rbp + 0x4d8]
call fcn.14008660c
mov rcx, qword [rbp + 0x3b8]
mov rdx, qword [rbp + 0x4d0]
call fcn.14008660c
or qword [rbp + 0x2a8], 0xffffffffffffffff
cmp r14d, 2
mov qword [rbp + 0x2a0], r13
mov rax, qword [rbp + 0x508]
mov qword [rbp + 0x2b0], rax
mov rcx, qword [rbp + 0x468]
mov qword [rbp + 0x2b8], rcx
mov qword [rbp + 0x2c0], rax
mov byte [rbp + 0x2c8], 0
mov eax, dword [rbp + 0x4e8]
mov ecx, dword [rbp + 0x4eb]
lea rdx, [rbp + 0x2c9]
mov dword [rdx + 3], ecx
mov dword [rdx], eax
mov rax, qword [rbp + 0x230]
mov qword [rdx + 0x17], rax
movaps xmm0, xmmword [rbp + 0x220]
movups xmmword [rdx + 7], xmm0
mov rax, qword [rbp + 0x250]
mov qword [rdx + 0x2f], rax
movaps xmm0, xmmword [rbp + 0x240]
movups xmmword [rdx + 0x1f], xmm0
mov rax, qword [rbp + 0x270]
mov qword [rdx + 0x47], rax
movaps xmm0, xmmword [rbp + 0x260]
movups xmmword [rdx + 0x37], xmm0
mov rax, qword [rbp + 0x3e8]
mov qword [rbp + 0x318], rax
mov rax, qword [rbp + 0x3e0]
mov qword [rbp + 0x320], rax
sete byte [rbp + 0x328]
mov eax, dword [rbp + 0x470]
mov ecx, dword [rbp + 0x473]
mov dword [rdx + 0x63], ecx
mov dword [rdx + 0x60], eax
movups xmm0, xmmword [rbp + 0x4a0]
movaps xmmword [rbp - 0x40], xmm0
mov rbx, qword [rbp + 0x4b0]
mov qword [rbp - 0x30], rbx
cmp rbx, qword [rbp - 0x40]
jne 0x140118bf4
lea rcx, [rbp - 0x40]
call fcn.140116539
imul rcx, rbx, 0x90
add rcx, qword [rbp - 0x38]
mov r8d, 0x90
lea rdx, [rbp + 0x2a0]
call sub.VCRUNTIME140.dll_memcpy
inc rbx
mov qword [rbp + 0x400], rbx
movaps xmm0, xmmword [rbp - 0x40]
movaps xmmword [rbp + 0x3f0], xmm0
mov r12, qword [rbp + 0x5b8]
mov r13d, dword [rbp + 0x5b0]
jmp 0x140118c9e
mov rcx, qword [rbp + 0x500]
call qword [sym.imp.kernel32.dll_CloseHandle]
jmp 0x140118c4e
push 0xffffffffffffffff
pop rcx
call qword [sym.imp.kernel32.dll_CloseHandle]
mov rcx, qword [rbp + 0x490]
mov rdx, qword [rbp + 0x4d8]
call fcn.14008660c
mov rcx, qword [rbp + 0x3b8]
mov rdx, qword [rbp + 0x4d0]
call fcn.14008660c
mov r12, qword [rbp + 0x5b8]
mov r13d, dword [rbp + 0x5b0]
mov rax, qword [rbp + 0x4b0]
mov qword [rbp + 0x400], rax
movups xmm0, xmmword [rbp + 0x4a0]
movaps xmmword [rbp + 0x3f0], xmm0
inc r15d
movaps xmm0, xmmword [rbp + 0x3f0]
movaps xmmword [rbp + 0x4a0], xmm0
mov rax, qword [rbp + 0x400]
mov qword [rbp + 0x4b0], rax
mov qword [rbp + 0x4b8], r12
jmp 0x140118693
movups xmm0, xmmword [rbp + 0x4a0]
movups xmm1, xmmword [rbp + 0x4b0]
movaps xmmword [rbp + 0x290], xmm1
movaps xmmword [rbp + 0x280], xmm0
and qword [rbp + 0x2b0], 0
xorps xmm0, xmm0
movaps xmmword [rbp + 0x2a0], xmm0
cmp qword [rbp + 0x290], 0
je 0x140118e59
movups xmmword [rbp - 0x28], xmm0
movaps xmm0, xmmword [rbp + 0x280]
movaps xmmword [rbp - 0x40], xmm0
mov rax, qword [rbp + 0x290]
mov qword [rbp - 0x30], rax
lea rcx, [rbp + 0x2b8]
call fcn.140116781
mov rcx, qword [rbp - 0x30]
mov qword [rax + 0x10], rcx
movaps xmm0, xmmword [rbp - 0x40]
movups xmmword [rax], xmm0
xorps xmm0, xmm0
movups xmmword [rax + 0x18], xmm0
mov qword [rbp + 0x2a0], rax
mov qword [rbp + 0x2a8], rax
push 1
pop rax
mov qword [rbp + 0x2b0], rax
mov rcx, qword [rbp + 0x498]
mov qword [rcx + 0x10], rax
mov rax, qword [rbp + 0x2a0]
mov qword [rcx], rax
mov rax, qword [rbp + 0x2a8]
mov qword [rcx + 8], rax
jmp 0x140118e74
call fcn.140094155
mov rsi, qword [rax]
lea r14, [rsi + 0x80]
call fcn.140096315
test rax, rax
je 0x140118e8f
mov r15, rax
cmp qword [rax + 0x110], rsi
je 0x140118f99
mov rax, r15
add rax, 0x110
mov rcx, qword [r15 + 0x100]
lea r8, [rbp + 0x2a0]
mov qword [r8 + 0x80], rax
and qword [r8 + 0x88], 0
mov qword [r8 + 0x90], rcx
mov al, 1
mov byte [r8 + 0x98], al
push 9
pop rcx
lea rsi, [rbp + 0x348]
mov rdi, r8
rep movsq qword [rdi], qword [rsi]
lea rcx, [rbp + 0x2e8]
and qword [rcx], 0
mov byte [rbp + 0x515], al
lea rdx, [0x14011945a]
mov rcx, r14
call fcn.1400964cf
lea rdx, [rbp + 0x320]
mov byte [rbp + 0x515], 1
mov rcx, r15
call fcn.140116a24
lea rcx, [rbp - 0x40]
lea rdx, [rbp + 0x2a0]
mov r8d, 0xa0
call sub.VCRUNTIME140.dll_memcpy
lea rdx, [rbp + 8]
mov byte [rbp + 0x515], 0
lea rcx, [rbp + 0x4a0]
call fcn.140116941
jmp 0x1401185fe
mov rax, qword [rbp + 0x498]
movups xmmword [rax], xmm0
and qword [rax + 0x10], 0
lea rcx, [rbp + 0x280]
call fcn.1401165a9
movaps xmm6, xmmword [rbp + 0x520]
add rsp, 0x5b8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov eax, dword [0x1403396f0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp dword [rax + 0x68], 0
jne 0x140118ed0
mov eax, dword [0x1403396f0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov dword [rax + 0x68], 1
and qword [rax + 0x6c], 0
mov eax, dword [0x1403396f0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea rax, [rax + 0x6c]
lea rdi, [rbp + 0x2a8]
mov qword [rdi - 8], rax
push 9
pop rcx
lea rsi, [rbp + 0x348]
rep movsq qword [rdi], qword [rsi]
lea rax, [rbp + 0x2f0]
and qword [rax], 0
mov byte [rbp + 0x516], 1
lea rdx, [0x14011969a]
lea r8, [rbp + 0x2a0]
mov rcx, r14
call fcn.1400964cf
mov rcx, qword [rbp + 0x2a0]
mov byte [rbp + 0x516], 1
call fcn.14009402f
lea rcx, [rbp - 0x40]
lea rdx, [rbp + 0x2a0]
mov r8d, 0x88
call sub.VCRUNTIME140.dll_memcpy
lea rdx, [rbp + 0x10]
mov byte [rbp + 0x516], 0
lea rcx, [rbp + 0x3f0]
call fcn.140116941
movups xmm0, xmmword [rbp + 0x3f0]
movups xmm1, xmmword [rbp + 0x400]
movups xmm2, xmmword [rbp + 0x410]
movaps xmmword [rbp + 0x4a0], xmm0
movaps xmmword [rbp + 0x4b0], xmm1
movaps xmmword [rbp + 0x4c0], xmm2
jmp 0x1401185fe
lea rcx, [rbp + 0x4a0]
lea rdx, [rbp + 0x348]
mov r8, r15
jmp 0x1401185f6
mov rdx, qword [rbp + 0x4f8]
call fcn.1402567b0
jmp 0x14011901d
mov byte [rbp + 0x517], 1
lea rax, str.C:UsersJOHN_PC.cargo_registry_srcindex.crates.io_6f17d22bba15001f_sysinfo_0.26.9_srcwindowsdisk.rs
mov edx, 0x105
mov rcx, r8
mov r8, rax
call fcn.140256cc0
jmp 0x14011901d
lea r8, str.C:UsersJOHN_PC.cargo_registry_srcindex.crates.io_6f17d22bba15001f_sysinfo_0.26.9_srcwindowsdisk.rs
push 0x20
pop rdx
mov rcx, r13
call fcn.140256cc0
jmp 0x14011901d
lea rcx, [0x140295852]
lea r8, [0x1402958e0]
push 0x2b
pop rdx
call fcn.140256d30
call fcn.140052910
jmp 0x14011901d
push 1
pop rcx
mov rdx, qword [rbp + 0x508]
call fcn.1402567b0
ud2