Function at 0x180015ef0
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, 0x4b8
movaps xmmword [rsp + 0x4a0], xmm6
mov r15, rdx
mov qword [rsp + 0x190], rcx
mov qword [rsp + 0x150], r9
cmp r8, r9
je 0x180015f95
mov rsi, r8
lea rax, [r8 + 0x18]
mov qword [rsp + 0x148], rax
mov r13, qword [r8]
mov rax, r13
neg rax
jno 0x180015fd1
add rsi, 0x18
mov rax, r9
sub rax, rsi
movabs rcx, 0xaaaaaaaaaaaaaaab
mul rcx
cmp r9, rsi
je 0x180015f95
mov rdi, rdx
shr rdi, 4
add rsi, 8
jmp 0x180015f79
add rsi, 0x18
dec rdi
je 0x180015f95
mov rdx, qword [rsi - 8]
test rdx, rdx
je 0x180015f70
mov rcx, qword [rsi]
add rdx, rdx
mov r8d, 2
call fcn.18000a8a0
jmp 0x180015f70
mov rcx, qword [r15 + 0x20]
mov rax, qword [rsp + 0x190]
mov qword [rax + 0x20], rcx
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
movaps xmm6, xmmword [rsp + 0x4a0]
add rsp, 0x4b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x140], 0
xorps xmm6, xmm6
mov qword [rsp + 0x188], r15
nop dword [rax + rax]
mov r14, qword [rsi + 8]
mov rbx, qword [rsi + 0x10]
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movaps xmmword [rsp + 0x1d0], xmm1
movaps xmmword [rsp + 0x1c0], xmm0
mov rax, qword [r15 + 0x20]
mov qword [rsp + 0x1a0], rax
mov qword [rsp + 0x1e0], rax
mov rcx, r14
call sub.kernel32.dll_GetDriveTypeW
mov edi, eax
and eax, 0xfffffffe
cmp eax, 2
jne 0x1800164c0
mov r8d, 0x20a
lea rsi, [rsp + 0x290]
mov rcx, rsi
xor edx, edx
call sub.msvcrt.dll_memset
movaps xmmword [rsp + 0x120], xmm6
movaps xmmword [rsp + 0x110], xmm6
movaps xmmword [rsp + 0x100], xmm6
movaps xmmword [rsp + 0xf0], xmm6
mov dword [rsp + 0x98], 0
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x98]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x38], 0x20
mov qword [rsp + 0x20], 0
mov rcx, r14
mov rdx, rsi
mov r8d, 0x105
xor r9d, r9d
call sub.kernel32.dll_GetVolumeInformationW
test eax, eax
je 0x18001648a
mov qword [rsp + 0x198], rbx
mov esi, dword [rsp + 0x98]
mov ecx, 0x208
mov edx, 2
call fcn.18000a8c0
test rax, rax
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x50], r14
je 0x180016ecd
mov rbx, rax
mov dword [rsp + 0x138], esi
mov dword [rsp + 0x13c], edi
mov dword [rsp + 0x158], 0
mov rcx, r14
mov rdx, rax
mov r8d, 0x104
lea r9, [rsp + 0x158]
call sub.kernel32.dll_GetVolumePathNamesForVolumeNameW
test eax, eax
je 0x1800164ef
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 8
mov qword [rsp + 0xb0], 0
mov esi, 0x104
mov qword [rsp + 0x90], rbx
mov r14, rbx
mov r13, rsi
jmp 0x1800161a1
mov rax, qword [rsp + 0xa8]
lea rcx, [r12 + r12*2]
mov qword [rax + rcx*8], r15
mov qword [rax + rcx*8 + 8], rdi
mov qword [rax + rcx*8 + 0x10], r15
inc r12
mov qword [rsp + 0xb0], r12
sub r14, rbp
sub r13, r15
je 0x180016270
cmp word [r14], 0
je 0x180016270
lea rax, [r13*2]
neg rax
mov ecx, 1
mov rbp, 0xfffffffffffffffe
nop word cs:[rax + rax]
cmp rax, rbp
je 0x180016e87
lea r15, [rcx + 1]
add rbp, 0xfffffffffffffffe
cmp word [r14 + rcx*2], 0
mov rcx, r15
jne 0x1800161d0
test r15, r15
js 0x180016eac
mov rbx, rbp
neg rbx
movabs rax, 0x8000000000000000
add rax, 0xfffffffffffffffe
cmp rbx, rax
ja 0x180016eac
mov rax, qword [0x180380fe8]
movzx eax, byte [rax]
mov edx, 2
mov rcx, rbx
call fcn.18000a890
test rax, rax
je 0x180016e9c
mov rdi, rax
mov rcx, rax
mov rdx, r14
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov r12, qword [rsp + 0xb0]
cmp r12, qword [rsp + 0xa0]
jne 0x180016170
lea rcx, [rsp + 0xa0]
call fcn.180028260
jmp 0x180016170
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xe0], rax
movups xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0xd0], xmm0
test rsi, rsi
mov r15, qword [rsp + 0x188]
je 0x1800162b6
add rsi, rsi
mov r8d, 2
mov rcx, qword [rsp + 0x90]
mov rdx, rsi
call fcn.18000a8a0
mov rbx, qword [rsp + 0xe0]
test rbx, rbx
je 0x1800166ec
mov rdx, qword [rsp + 0x198]
mov rcx, rdx
sub rcx, 2
mov r13, qword [rsp + 0x48]
mov r8, qword [rsp + 0x50]
jb 0x180016ede
lea rax, [r8 + rcx*2]
mov qword [rsp + 0xc0], r8
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xa0], 1
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xb0], 1
mov word [rsp + 0xb8], 0
lea rcx, [rsp + 0x1f0]
lea rdx, [rsp + 0xa0]
call fcn.180025750
mov r12, qword [rsp + 0x1f8]
mov bpl, 1
call fcn.180043c30
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
mov rcx, r12
xor edx, edx
mov r8d, 3
xor r9d, r9d
call sub.kernel32.dll_CreateFileW
mov r14, rax
dec rax
cmp rax, 0xfffffffffffffffe
jae 0x1800165fd
mov qword [rsp + 0x1a8], r14
mov rsi, qword [rsp + 0xd8]
mov rcx, qword [rsi + 8]
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x158], 0
xor edx, edx
lea r8, [rsp + 0x78]
lea r9, [rsp + 0x158]
call sub.kernel32.dll_GetDiskFreeSpaceExW
test eax, eax
je 0x1800168e0
mov r13, qword [rsp + 0x78]
test r13, r13
je 0x180016906
mov rdi, qword [rsp + 0x158]
mov qword [rsp + 0x1b4], 7
mov byte [rsp + 0x1bc], 0
mov dword [rsp + 0x180], 0
mov qword [rsp + 0x178], 0
mov dword [rsp + 0x9c], 0
lea rax, [rsp + 0x9c]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x178]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x28], 0xc
mov rcx, r14
mov edx, 0x2d1400
lea r8, [rsp + 0x1b4]
mov r9d, 0xc
call sub.kernel32.dll_DeviceIoControl
test eax, eax
je 0x1800169b9
mov ebp, 2
cmp dword [rsp + 0x9c], 0xc
jne 0x1800169e4
xor ebp, ebp
cmp byte [rsp + 0x180], 0
sete bpl
jmp 0x1800169e4
call fcn.1800560b0
mov qword [rsp + 0xa8], rax
mov dword [rsp + 0xb0], edx
mov qword [rsp + 0xa0], 1
test rax, rax
je 0x1800164c0
lea rcx, [rsp + 0xa8]
call fcn.180056c30
nop dword [rax]
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 8
mov qword [rsp + 0x88], 0
test r13, r13
jne 0x180016755
jmp 0x180016769
mov qword [rsp + 0x90], rbx
mov ebp, 0x104
mov r13d, 0xa
nop word cs:[rax + rax]
call fcn.1800560b0
mov rbx, rax
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x60], edx
call fcn.1800560b0
mov esi, edx
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0xa8], edx
test rax, rax
je 0x18001654e
lea rcx, [rsp + 0xa0]
call fcn.180056c30
mov rbx, qword [rsp + 0x58]
test rbx, rbx
je 0x18001655d
lea rcx, [rsp + 0x58]
call fcn.180056c30
cmp esi, 0x800700ea
jne 0x1800166bc
mov esi, dword [rsp + 0x158]
test rsi, rsi
je 0x1800165f0
lea rbx, [rsi + rsi]
mov edx, 2
mov rcx, rbx
call fcn.18000a8c0
test rax, rax
je 0x180016ebe
mov r14, rax
test rbp, rbp
je 0x1800165b0
add rbp, rbp
mov r8d, 2
mov rcx, qword [rsp + 0x90]
mov rdx, rbp
call fcn.18000a8a0
dec r13d
je 0x180016649
mov rcx, qword [rsp + 0x50]
mov rdx, r14
mov r8d, esi
lea r9, [rsp + 0x158]
call sub.kernel32.dll_GetVolumePathNamesForVolumeNameW
mov rbp, rsi
mov qword [rsp + 0x90], r14
test eax, eax
je 0x180016510
jmp 0x180016649
mov r14d, 2
test rbp, rbp
jne 0x180016597
jmp 0x1800165b0
call fcn.1800560b0
mov dword [rsp + 0x68], edx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], 1
test rax, rax
je 0x180016623
lea rcx, [rsp + 0x60]
call fcn.180056c30
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 8
mov qword [rsp + 0x88], 0
jmp 0x18001695e
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 8
mov qword [rsp + 0xb0], 0
mov rbx, r14
test rsi, rsi
jne 0x18001615c
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0xd8], rax
mov rbx, qword [rsp + 0xe0]
test rbx, rbx
jne 0x1800162c7
jmp 0x1800166ec
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 8
mov qword [rsp + 0xe0], 0
mov rsi, rbp
test rbp, rbp
jne 0x18001629d
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 8
mov qword [rsp + 0x88], 0
mov rsi, qword [rsp + 0xd8]
mov r13, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
mov rax, qword [rsp + 0xd0]
test rax, rax
je 0x180016750
shl rax, 3
lea rdx, [rax + rax*2]
mov r8d, 8
mov rcx, rsi
call fcn.18000a8a0
nop word cs:[rax + rax]
test r13, r13
je 0x180016769
add r13, r13
mov r8d, 2
mov rcx, r14
mov rdx, r13
call fcn.18000a8a0
movups xmm0, xmmword [rsp + 0x78]
movaps xmmword [rsp + 0x290], xmm0
mov r8, qword [rsp + 0x88]
mov qword [rsp + 0x2a0], r8
lea rcx, [rsp + 0x208]
lea rdx, [rsp + 0x290]
call fcn.180011820
test byte [rsp + 0x1c0], 1
je 0x180016820
mov rdi, qword [rsp + 0x1c8]
mov rsi, qword [rsp + 0x1d0]
mov rbx, qword [rsp + 0x1d8]
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x2a0], rax
movups xmm0, xmmword [rsp + 0x208]
movaps xmmword [rsp + 0x290], xmm0
test rsi, rsi
je 0x18001683a
mov rax, qword [rsp + 0x290]
mov qword [rsp + 0x290], 0
test rax, rax
je 0x180016874
mov qword [rsi + 0x18], rax
mov qword [rax + 0x20], rsi
mov rsi, qword [rsp + 0x298]
add rbx, qword [rsp + 0x2a0]
movups xmmword [rsp + 0x298], xmm6
jmp 0x180016874
mov rdi, qword [rsp + 0x208]
mov rsi, qword [rsp + 0x210]
mov rbx, qword [rsp + 0x218]
jmp 0x180016881
mov rax, qword [rsp + 0x290]
mov rsi, qword [rsp + 0x298]
mov qword [rsp + 0x290], rdi
mov qword [rsp + 0x298], 0
mov rcx, qword [rsp + 0x2a0]
mov qword [rsp + 0x2a0], rbx
mov rdi, rax
mov rbx, rcx
lea rcx, [rsp + 0x290]
call fcn.180029680
mov qword [r15], 1
mov qword [r15 + 8], rdi
mov qword [r15 + 0x10], rsi
mov qword [r15 + 0x18], rbx
mov rax, qword [rsp + 0x1a0]
mov qword [r15 + 0x20], rax
mov rsi, qword [rsp + 0x148]
mov r9, qword [rsp + 0x150]
cmp rsi, r9
je 0x180015f45
lea rax, [rsi + 0x18]
mov qword [rsp + 0x148], rax
mov r13, qword [rsi]
movabs rax, 0x8000000000000000
cmp r13, rax
jne 0x180015ff0
jmp 0x180015f41
call fcn.1800560b0
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x68], edx
mov qword [rsp + 0x58], 1
test rax, rax
je 0x180016906
lea rcx, [rsp + 0x60]
call fcn.180056c30
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 8
mov qword [rsp + 0x88], 0
mov rcx, r14
call sub.kernel32.dll_CloseHandle
test eax, eax
mov r13, qword [rsp + 0x48]
jne 0x18001695e
call fcn.1800560b0
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x68], edx
mov qword [rsp + 0x58], 1
test rax, rax
je 0x18001695e
lea rcx, [rsp + 0x60]
call fcn.180056c30
mov rdx, qword [rsp + 0x1f0]
test rdx, rdx
mov r14, qword [rsp + 0x50]
je 0x180016981
add rdx, rdx
mov r8d, 2
mov rcx, r12
call fcn.18000a8a0
mov rsi, qword [rsp + 0xd8]
lea rdi, [rsi + 8]
jmp 0x18001699d
add rdi, 0x18
dec rbx
je 0x18001671f
mov rdx, qword [rdi - 8]
test rdx, rdx
je 0x180016990
mov rcx, qword [rdi]
add rdx, rdx
mov r8d, 2
call fcn.18000a8a0
jmp 0x180016990
call fcn.1800560b0
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x68], edx
mov qword [rsp + 0x58], 1
test rax, rax
je 0x1800169df
lea rcx, [rsp + 0x60]
call fcn.180056c30
mov ebp, 2
mov r8d, 2
mov eax, 0x20a
nop
cmp word [rsp + r8*2 + 0x28c], 0
je 0x180016a26
cmp word [rsp + r8*2 + 0x28e], 0
je 0x180016a2c
cmp word [rsp + r8*2 + 0x290], 0
je 0x180016a2f
add r8, 3
add rax, 0xfffffffffffffffa
jne 0x1800169f0
mov r8d, 0x105
jmp 0x180016a2f
add r8, 0xfffffffffffffffe
jmp 0x180016a2f
dec r8
lea rcx, [rsp + 0x158]
lea rdx, [rsp + 0x290]
call fcn.18009bb10
cmp word [rsp + 0xf0], 0
je 0x180016c2d
cmp word [rsp + 0xf2], 0
je 0x180016c35
cmp word [rsp + 0xf4], 0
je 0x180016c40
cmp word [rsp + 0xf6], 0
je 0x180016c4b
cmp word [rsp + 0xf8], 0
je 0x180016c56
cmp word [rsp + 0xfa], 0
je 0x180016c61
cmp word [rsp + 0xfc], 0
je 0x180016c6c
cmp word [rsp + 0xfe], 0
je 0x180016c77
cmp word [rsp + 0x100], 0
je 0x180016c82
cmp word [rsp + 0x102], 0
je 0x180016c8d
cmp word [rsp + 0x104], 0
je 0x180016c98
cmp word [rsp + 0x106], 0
je 0x180016ca3
cmp word [rsp + 0x108], 0
je 0x180016cae
cmp word [rsp + 0x10a], 0
je 0x180016cb9
cmp word [rsp + 0x10c], 0
je 0x180016cc4
cmp word [rsp + 0x10e], 0
je 0x180016ccc
cmp word [rsp + 0x110], 0
je 0x180016cd4
cmp word [rsp + 0x112], 0
je 0x180016cdc
cmp word [rsp + 0x114], 0
je 0x180016ce4
cmp word [rsp + 0x116], 0
je 0x180016cec
cmp word [rsp + 0x118], 0
je 0x180016cf4
cmp word [rsp + 0x11a], 0
je 0x180016cfc
cmp word [rsp + 0x11c], 0
je 0x180016d04
cmp word [rsp + 0x11e], 0
je 0x180016d0c
cmp word [rsp + 0x120], 0
je 0x180016d14
cmp word [rsp + 0x122], 0
je 0x180016d1c
cmp word [rsp + 0x124], 0
je 0x180016d24
cmp word [rsp + 0x126], 0
je 0x180016d2c
cmp word [rsp + 0x128], 0
je 0x180016d34
cmp word [rsp + 0x12a], 0
je 0x180016d3c
cmp word [rsp + 0x12c], 0
je 0x180016d44
cmp word [rsp + 0x12e], 1
mov r8d, 0x20
sbb r8, 0
jmp 0x180016d4a
xor r8d, r8d
jmp 0x180016d4a
mov r8d, 1
jmp 0x180016d4a
mov r8d, 2
jmp 0x180016d4a
mov r8d, 3
jmp 0x180016d4a
mov r8d, 4
jmp 0x180016d4a
mov r8d, 5
jmp 0x180016d4a
mov r8d, 6
jmp 0x180016d4a
mov r8d, 7
jmp 0x180016d4a
mov r8d, 8
jmp 0x180016d4a
mov r8d, 9
jmp 0x180016d4a
mov r8d, 0xa
jmp 0x180016d4a
mov r8d, 0xb
jmp 0x180016d4a
mov r8d, 0xc
jmp 0x180016d4a
mov r8d, 0xd
jmp 0x180016d4a
mov r8d, 0xe
jmp 0x180016d4a
mov r8d, 0xf
jmp 0x180016d4a
mov r8d, 0x10
jmp 0x180016d4a
mov r8d, 0x11
jmp 0x180016d4a
mov r8d, 0x12
jmp 0x180016d4a
mov r8d, 0x13
jmp 0x180016d4a
mov r8d, 0x14
jmp 0x180016d4a
mov r8d, 0x15
jmp 0x180016d4a
mov r8d, 0x16
jmp 0x180016d4a
mov r8d, 0x17
jmp 0x180016d4a
mov r8d, 0x18
jmp 0x180016d4a
mov r8d, 0x19
jmp 0x180016d4a
mov r8d, 0x1a
jmp 0x180016d4a
mov r8d, 0x1b
jmp 0x180016d4a
mov r8d, 0x1c
jmp 0x180016d4a
mov r8d, 0x1d
jmp 0x180016d4a
mov r8d, 0x1e
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0xf0]
call fcn.18009bb10
mov r8d, dword [rsp + 0x138]
shr r8d, 0x13
and r8b, 1
cmp dword [rsp + 0x13c], 2
mov rax, qword [rsp + 0xd0]
lea rcx, [rbx + rbx*2]
lea rcx, [rsi + rcx*8]
movups xmm0, xmmword [rsp + 0x158]
movups xmm1, xmmword [rsp + 0x168]
lea rdx, [rsp + 0x218]
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rsp + 0x58]
movups xmm1, xmmword [rsp + 0x68]
movups xmmword [rdx + 0x30], xmm1
movups xmmword [rdx + 0x20], xmm0
mov qword [rsp + 0x270], rsi
mov qword [rsp + 0x278], rsi
mov qword [rsp + 0x280], rax
mov qword [rsp + 0x288], rcx
mov qword [rsp + 0x208], rbp
mov qword [rsp + 0x210], 0xffffffffffffffff
mov qword [rsp + 0x258], r13
mov qword [rsp + 0x260], rdi
sete byte [rsp + 0x268]
mov byte [rsp + 0x269], r8b
lea rcx, [rsp + 0x78]
lea rdx, [rsp + 0x208]
call fcn.180023c30
mov rcx, r14
call sub.kernel32.dll_CloseHandle
test eax, eax
mov r13, qword [rsp + 0x48]
jne 0x180016e56
xor ebp, ebp
call fcn.1800560b0
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x68], edx
mov qword [rsp + 0x58], 1
test rax, rax
je 0x180016e56
xor ebp, ebp
lea rcx, [rsp + 0x60]
call fcn.180056c30
mov rdx, qword [rsp + 0x1f0]
test rdx, rdx
je 0x180016e74
add rdx, rdx
mov r8d, 2
mov rcx, r12
call fcn.18000a8a0
mov r14, qword [rsp + 0x50]
test r13, r13
jne 0x180016755
jmp 0x180016769
lea rcx, [r13 + 1]
lea r8, str.C:Userswin10_x64.cargo_registry_srcindex.crates.io_6f17d22bba15001f_sysinfo_0.32.0_srcwindowsdisk.rs
mov rdx, r13
call fcn.1800f21b0
jmp 0x180016eea
mov eax, 2
mov qword [rsp + 0x140], rax
mov rdi, rbx
mov rcx, qword [rsp + 0x140]
mov rdx, rdi
call fcn.1800debd0
jmp 0x180016eea
mov ecx, 2
mov rdx, rbx
call fcn.1800debd0
jmp 0x180016eea
mov ecx, 2
mov edx, 0x208
call fcn.1800debd0
jmp 0x180016eea
lea r8, str.C:Userswin10_x64.cargo_registry_srcindex.crates.io_6f17d22bba15001f_sysinfo_0.32.0_srcwindowsdisk.rs
call fcn.1800f21b0
ud2