Function at 0x140008e60
Capabilities:
Get disk information

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x168]
sub rsp, 0x240
mov qword [rbp - 0x58], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov rax, qword [0x14009b088]
xor rax, rsp
mov qword [rbp + 0x138], rax
mov rdi, rdx
lea rax, str.Input_path:
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], 0xc
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
lea rcx, [0x1400ab950]
call fcn.14000c880
mov r8, rax
mov rcx, qword [rdi + 0x10]
xor esi, esi
test rcx, rcx
lea rdx, [rcx - 1]
jne 0x140008ee4
mov edx, esi
lea rbx, [0x1400abb74]
test rcx, rcx
je 0x140008ef6
mov rax, qword [rdi + 8]
jmp 0x140008ef9
mov rax, rbx
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rdx
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
mov rcx, r8
call fcn.14000c880
mov rcx, rax
call fcn.14000d210
xor eax, eax
mov qword [rbp + 0x118], rax
mov qword [rbp + 0x120], rax
mov qword [rbp + 0x128], rax
mov qword [rbp + 0x130], rax
mov rax, qword [rdi + 0x10]
test rax, rax
lea rcx, [rax - 1]
jne 0x140008f50
mov rcx, rsi
jmp 0x140008f56
mov rax, qword [rdi + 8]
jmp 0x140008f59
mov rax, rbx
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rcx
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x118]
call fcn.140020a10
nop
lea rax, str.Abs_path:
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], 0xc
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
lea rcx, [0x1400ab950]
call fcn.14000c880
mov rcx, qword [rbp + 0x128]
test rcx, rcx
je 0x140008fc3
dec rcx
mov rdx, qword [rbp + 0x120]
jmp 0x140008fc9
mov rcx, rsi
mov rdx, rbx
mov qword [rbp - 0x80], rdx
mov qword [rbp - 0x78], rcx
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.14000c880
mov rcx, rax
call fcn.14000d210
xor eax, eax
mov qword [rbp + 0xb8], rax
mov qword [rbp + 0xc0], rax
mov qword [rbp + 0xc8], rax
mov qword [rbp + 0xd0], rax
mov qword [rbp + 0xb8], rsi
mov qword [rbp + 0xc0], rsi
mov qword [rbp + 0xc8], rsi
mov qword [rbp + 0xd0], rsi
mov edx, 0x105
lea rcx, [rbp + 0xb8]
call fcn.14000b160
test rax, rax
jne 0x1400090b4
mov r14, qword [rbp + 0xc8]
mov r15, qword [rbp + 0xc0]
cmp r14, 0x105
jae 0x140009082
lea rcx, [r15 + r14*2]
mov r8d, 0x105
sub r8, r14
mov r14d, 0x105
mov qword [rbp + 0xc8], r14
test rcx, rcx
je 0x1400090a4
add r8, r8
xor edx, edx
call fcn.140026600
jmp 0x1400090a4
je 0x1400090a4
lea rcx, [r14*2 - 0x20a]
lea rdi, [r15 + 0x20a]
xor eax, eax
rep stosb byte [rdi], al
mov r14d, 0x105
mov qword [rbp + 0xc8], r14
cmp qword [rbp + 0xb8], 0
jne 0x140009b2e
jmp 0x1400090d0
cmp qword [rbp + 0xb8], 0
jne 0x140009b2e
mov r14, qword [rbp + 0xc8]
mov r15, qword [rbp + 0xc0]
mov eax, 0xffffffff
cmp r14, rax
ja 0x140009b14
mov rcx, rbx
cmp qword [rbp + 0x128], 0
cmovne rcx, qword [rbp + 0x120]
mov r8d, r14d
mov rdx, r15
call qword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
lea r12, vtable.std::exception.0
test eax, eax
je 0x140009111
mov qword [rbp - 0x60], r15
jmp 0x140009200
mov r15, rbx
cmp qword [rbp + 0x128], 0
cmovne r15, qword [rbp + 0x120]
mov qword [rbp - 0x60], r15
lea rax, [0x140049f78]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], 0x12
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rsp + 0x40], xmm0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x10]
call fcn.14000bc60
mov rbx, rax
mov rcx, qword [rax]
mov rdi, qword [rcx]
mov rcx, rdi
call qword [fcn.140003af0]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call rdi
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
lea rcx, [0x1400ab950]
call fcn.14000c880
mov rdi, rax
mov rcx, rax
call fcn.14000d210
lea rax, str.Using_absolute_path
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], 0x13
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
mov rcx, rdi
call fcn.14000c880
mov rcx, rax
call fcn.14000d210
nop
lea rax, [rbp + 0x90]
mov qword [rbp - 0x80], rax
lea rcx, [rbp + 0x90]
call fcn.14000baf0
mov qword [rbp + 0x90], r12
lea rcx, [rbp + 0x98]
call fcn.140026040
lea rbx, [0x1400abb74]
mov rax, r15
mov rcx, rsi
test r15, r15
je 0x14000921e
cmp word [r15], cx
je 0x14000921e
lea rax, [rax + 2]
inc rcx
cmp word [rax], 0
jne 0x140009211
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x58], rcx
lea rax, str.Vol_path:
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], 0xc
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
lea rcx, [0x1400ab950]
call fcn.14000c880
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.14000c880
mov rcx, rax
call fcn.14000d210
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov edi, eax
mov edx, eax
lea rcx, [rbp - 0x80]
call fcn.140022340
mov r15, rax
mov edx, edi
xor r9d, r9d
lea r8d, [r9 + 0xa]
lea rcx, [rsp + 0x60]
call fcn.14000b480
mov rdi, rax
lea rax, str.Drive_type:
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0xc
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
lea rcx, [0x1400ab950]
call fcn.14000c880
mov r8, rax
mov rcx, qword [rdi + 0x10]
test rcx, rcx
lea rdx, [rcx - 1]
jne 0x1400092eb
mov rdx, rsi
jmp 0x1400092f1
mov rax, qword [rdi + 8]
jmp 0x1400092f4
mov rax, rbx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdx
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
mov rcx, r8
call fcn.14000c880
lea rcx, [0x14004a004]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], 2
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.14000c880
mov rcx, qword [r15 + 0x10]
test rcx, rcx
lea rdx, [rcx - 1]
jne 0x140009355
mov rdx, rsi
jmp 0x140009359
mov rbx, qword [r15 + 8]
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rdx
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.14000c880
lea rcx, [0x14004a480]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], 1
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.14000c880
mov rcx, rax
call fcn.14000d210
nop
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x1400093d4
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400093d4
add rcx, rcx
mov rdi, rax
xor eax, eax
rep stosb byte [rdi], al
mov rax, qword [rsp + 0x68]
mov rcx, rax
call fcn.140024f38
nop
mov rax, qword [rbp - 0x78]
test rax, rax
je 0x1400093fd
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x1400093fd
add rcx, rcx
mov rdi, rax
xor eax, eax
rep stosb byte [rdi], al
mov rax, qword [rbp - 0x78]
mov rcx, rax
call fcn.140024f38
mov dword [rbp + 0xac], esi
mov dword [rbp + 0xb0], esi
mov dword [rbp + 0xa8], esi
xor eax, eax
mov qword [rbp + 0xd8], rax
mov qword [rbp + 0xe0], rax
mov qword [rbp + 0xe8], rax
mov qword [rbp + 0xf0], rax
mov qword [rbp + 0xd8], rsi
mov qword [rbp + 0xe0], rsi
mov qword [rbp + 0xe8], rsi
mov qword [rbp + 0xf0], rsi
mov qword [rbp + 0xf8], rax
mov qword [rbp + 0x100], rax
mov qword [rbp + 0x108], rax
mov qword [rbp + 0x110], rax
mov qword [rbp + 0xf8], rsi
mov qword [rbp + 0x100], rsi
mov qword [rbp + 0x108], rsi
mov qword [rbp + 0x110], rsi
mov edx, 0x105
lea rcx, [rbp + 0xd8]
call fcn.14000b160
mov r15, qword [rbp + 0xe8]
mov rbx, qword [rbp + 0xe0]
test rax, rax
jne 0x140009503
cmp r15, 0x105
jae 0x1400094e1
lea rcx, [rbx + r15*2]
mov r8d, 0x105
sub r8, r15
mov r15d, 0x105
mov qword [rbp + 0xe8], r15
test rcx, rcx
je 0x140009503
add r8, r8
xor edx, edx
call fcn.140026600
jmp 0x140009503
je 0x140009503
lea rcx, [r15*2 - 0x20a]
lea rdi, [rbx + 0x20a]
xor eax, eax
rep stosb byte [rdi], al
mov r15d, 0x105
mov qword [rbp + 0xe8], r15
mov edx, 0x105
lea rcx, [rbp + 0xf8]
call fcn.14000b160
mov r13, qword [rbp + 0x100]
test rax, rax
jne 0x140009591
mov r12, qword [rbp + 0x108]
cmp r12, 0x105
jae 0x14000955f
lea rcx, [r12*2]
mov r8d, 0x105
sub r8, r12
mov r12d, 0x105
mov qword [rbp + 0x108], r12
add rcx, r13
je 0x140009581
add r8, r8
xor edx, edx
call fcn.140026600
jmp 0x140009581
je 0x140009581
lea rcx, [r12*2 - 0x20a]
lea rdi, [r13 + 0x20a]
xor eax, eax
rep stosb byte [rdi], al
mov r12d, 0x105
mov qword [rbp + 0x108], r12
cmp qword [rbp + 0xf8], 0
jne 0x140009afa
jmp 0x1400095a6
cmp qword [rbp + 0xf8], 0
jne 0x140009afa
mov r12, qword [rbp + 0x108]
mov eax, 0xffffffff
cmp r12, rax
ja 0x140009ae0
cmp qword [rbp + 0xd8], 0
jne 0x140009ac6
cmp r15, rax
ja 0x140009aac
mov dword [rsp + 0x38], r12d
mov qword [rsp + 0x30], r13
lea rax, [rbp + 0xa8]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0xb0]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0xac]
mov r8d, r15d
mov rdx, rbx
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
jne 0x1400096f1
lea rax, [0x14004a010]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0x15
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x40], xmm0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x10]
call fcn.14000bc60
mov rbx, rax
mov rcx, qword [rax]
mov rdi, qword [rcx]
mov rcx, rdi
call qword [fcn.140003af0]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call rdi
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
lea rcx, [0x1400ab950]
call fcn.14000c880
mov rdi, rax
mov rcx, rax
call fcn.14000d210
lea rax, str.Retrieved_information_may_be_partially_valid
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0x2c
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
mov rcx, rdi
call fcn.14000c880
mov rcx, rax
call fcn.14000d210
nop
lea rax, [rbp + 0x90]
mov qword [rbp - 0x80], rax
lea rcx, [rbp + 0x90]
call fcn.14000baf0
lea rax, vtable.std::exception.0
mov qword [rbp + 0x90], rax
lea rcx, [rbp + 0x98]
call fcn.140026040
mov rbx, qword [rbp + 0xe0]
mov rax, r13
mov rcx, rsi
test r13, r13
je 0x140009710
cmp word [r13], cx
je 0x140009710
lea rax, [rax + 2]
inc rcx
cmp word [rax], 0
jne 0x140009703
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x48], rcx
mov edx, dword [rbp + 0xa8]
lea rcx, [rbp - 0x30]
call fcn.140022790
mov qword [rbp - 0x80], rax
mov edx, dword [rbp + 0xa8]
mov r9d, 8
lea r8d, [r9 + 8]
lea rcx, [rbp - 0x50]
call fcn.14000b480
mov qword [rbp - 0x60], rax
mov rcx, rbx
mov rdx, rsi
test rbx, rbx
je 0x14000976d
cmp word [rbx], dx
je 0x14000976d
nop word [rax + rax]
lea rcx, [rcx + 2]
inc rdx
cmp word [rcx], 0
jne 0x140009760
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rdx
lea rax, str.Volume_name:
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0x16
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea rdx, [rsp + 0x50]
lea rcx, [0x1400ab950]
call fcn.14000c880
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
lea rdx, [rsp + 0x60]
mov rcx, rax
call fcn.14000c880
mov rdi, rax
mov rcx, rax
call fcn.14000d210
lea rax, str.Volume_serial_number:
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 0x16
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.14000c880
mov edx, dword [rbp + 0xac]
mov rcx, rax
call fcn.14000d090
mov rdi, rax
mov rcx, rax
call fcn.14000d210
lea rax, str.Max_component_length:
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 0x16
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.14000c880
mov edx, dword [rbp + 0xb0]
mov rcx, rax
call fcn.14000d090
mov rdi, rax
mov rcx, rax
call fcn.14000d210
lea rax, str.File_system_flags:____0x
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 0x18
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.14000c880
mov r8, rax
mov rax, qword [rbp - 0x60]
mov rdx, qword [rax + 0x10]
test rdx, rdx
lea rcx, [rdx - 1]
jne 0x14000989d
mov rcx, rsi
jmp 0x1400098aa
mov rax, qword [rax + 8]
lea rdi, [0x1400abb74]
jmp 0x1400098b4
lea rdi, [0x1400abb74]
mov rax, rdi
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rcx
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
lea rdx, [rsp + 0x60]
mov rcx, r8
call fcn.14000c880
lea rcx, [0x14004a004]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], 2
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
lea rdx, [rsp + 0x60]
mov rcx, rax
call fcn.14000c880
mov r8, rax
mov rax, qword [rbp - 0x80]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x14000991b
lea rsi, [rcx - 1]
mov rdi, qword [rax + 8]
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], rsi
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
lea rdx, [rsp + 0x60]
mov rcx, r8
call fcn.14000c880
lea rcx, [0x14004a480]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], 1
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
lea rdx, [rsp + 0x60]
mov rcx, rax
call fcn.14000c880
mov rdi, rax
mov rcx, rax
call fcn.14000d210
lea rax, str.File_system_name:
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 0x16
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.14000c880
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.14000c880
mov rcx, rax
call fcn.14000d210
nop
mov rax, qword [rbp - 0x48]
test rax, rax
je 0x1400099e3
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x1400099e3
add rcx, rcx
mov rdi, rax
xor eax, eax
rep stosb byte [rdi], al
mov rax, qword [rbp - 0x48]
mov rcx, rax
call fcn.140024f38
nop
mov rax, qword [rbp - 0x28]
test rax, rax
je 0x140009a0c
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x140009a0c
add rcx, rcx
mov rdi, rax
xor eax, eax
rep stosb byte [rdi], al
mov rax, qword [rbp - 0x28]
mov rcx, rax
call fcn.140024f38
nop
test r13, r13
je 0x140009a2a
test r12, r12
je 0x140009a2a
lea rcx, [r12 + r12]
mov rdi, r13
xor eax, eax
rep stosb byte [rdi], al
mov rcx, r13
call fcn.140024f38
nop
test rbx, rbx
je 0x140009a48
test r15, r15
je 0x140009a48
lea rcx, [r15 + r15]
mov rdi, rbx
xor eax, eax
rep stosb byte [rdi], al
mov rcx, rbx
call fcn.140024f38
nop
mov rdx, qword [rbp + 0xc0]
test rdx, rdx
je 0x140009a6d
test r14, r14
je 0x140009a6d
lea rcx, [r14 + r14]
mov rdi, rdx
xor eax, eax
rep stosb byte [rdi], al
mov rcx, rdx
call fcn.140024f38
nop
mov rax, qword [rbp + 0x120]
test rax, rax
je 0x140009a9f
mov rcx, qword [rbp + 0x128]
test rcx, rcx
je 0x140009a9f
add rcx, rcx
mov rdi, rax
xor eax, eax
rep stosb byte [rdi], al
mov rax, qword [rbp + 0x120]
mov rcx, rax
call fcn.140024f38
jmp 0x140009b48
mov r8d, 0x78
lea rdx, str.NumCast
lea rcx, str.value___std::numeric_limits_OutType_::max__
call fcn.1400126e0
int3
mov r8d, 0x1e7
lea rdx, str.datavect_wchar_t_::size
lea rcx, str._af_
call fcn.1400126e0
int3
mov r8d, 0x78
lea rdx, str.NumCast
lea rcx, str.value___std::numeric_limits_OutType_::max__
call fcn.1400126e0
int3
mov r8d, 0x1e7
lea rdx, str.datavect_wchar_t_::size
lea rcx, str._af_
call fcn.1400126e0
nop
mov r8d, 0x78
lea rdx, str.NumCast
lea rcx, str.value___std::numeric_limits_OutType_::max__
call fcn.1400126e0
int3
mov r8d, 0x1e7
lea rdx, str.datavect_wchar_t_::size
lea rcx, str._af_
call fcn.1400126e0
nop
mov rcx, qword [rbp + 0x138]
xor rcx, rsp
call fcn.140024b90
lea r11, [rsp + 0x240]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret