Function at 0x1400272a0
Capabilities:
Get disk information

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov qword [rax - 0x50], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov rsi, rdx
mov rdi, rcx
xor r12d, r12d
mov dword [rax + 0x10], r12d
mov qword [rax - 0x58], r12
mov dword [rax + 0x20], r12d
mov qword [rdx], r12
lea r8, str.CVdsVolume::QueryAccessPathsToVolume__
lea r14d, [r12 + 0x5e]
mov edx, r14d
lea rcx, [rax - 0x48]
call qword [sym.imp.vdsutil.dll_public:_void___cdecl_CVdsCallTracer::constructor_unsigned_long_int__char_const____ptr64____ptr64]
nop
lea r9, [rsp + 0x88]
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_file_l1_2_1.dll_GetVolumePathNamesForVolumeNameW]
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_1.dll_GetLastError]
mov ebx, dword [rsp + 0x88]
add rbx, rbx
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov rcx, rax
mov r8, rbx
lea ebx, [r12 + 8]
mov edx, ebx
call qword [sym.imp.vdsutil.dll_void____ptr64___cdecl_VdsHeapAlloc_void____ptr64__unsigned_long_int__unsigned_long_long_unsigned___int64__]
mov rbp, rax
mov qword [rsp + 0x20], rax
test rax, rax
je 0x1400274af
lea r9, [rsp + 0x98]
mov r8d, dword [rsp + 0x88]
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_file_l1_2_1.dll_GetVolumePathNamesForVolumeNameW]
test eax, eax
jne 0x140027386
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_1.dll_GetLastError]
mov ebx, eax
mov r9d, eax
lea r8, str.CVdsVolume::QueryAccessPathsToVolume:_GetVolumePathNamesForVolumeName_failed:__X
xor edx, edx
mov ecx, r14d
call qword [sym.imp.vdsutil.dll_void___cdecl_VdsTraceEx_unsigned_long_int__unsigned_long_int__char____ptr64_]
jmp 0x1400274af
mov rax, rbp
mov edi, r12d
cmp word [rbp], r12w
je 0x1400274ac
or rcx, 0xffffffffffffffff
inc rcx
cmp word [rax + rcx*2], r12w
jne 0x14002739b
lea rax, [rax + rcx*2]
add rax, 2
inc edi
cmp word [rax], r12w
jne 0x140027397
test edi, edi
je 0x1400274ac
mov r14d, edi
shl r14, 3
mov rcx, r14
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov qword [rsi], rax
test rax, rax
je 0x1400274af
mov r8, r14
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_memset
mov r13, rbp
mov r15d, r12d
test edi, edi
je 0x1400274a2
xor eax, eax
or r14, 0xffffffffffffffff
inc r14
cmp word [r13 + r14*2], ax
jne 0x1400273fa
lea rcx, [r14*2 + 2]
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov rcx, rax
mov rax, qword [rsi]
mov qword [r12 + rax], rcx
mov rax, qword [rsi]
mov rcx, qword [r12 + rax]
test rcx, rcx
je 0x14002745f
lea rdx, [r14 + 1]
mov r9, r14
mov r8, r13
call fcn.14001d47c
mov rax, qword [rsi]
mov rcx, qword [r12 + rax]
xor eax, eax
mov word [rcx + r14*2], ax
lea r13, [r13 + r14*2]
add r13, 2
inc r15d
add r12, rbx
cmp r15d, edi
jb 0x1400273f6
xor r12d, r12d
jmp 0x1400274a2
xor r12d, r12d
test r15d, r15d
je 0x14002748f
mov edi, r12d
mov r14d, r15d
mov rax, qword [rsi]
mov rcx, qword [rdi + rax]
test rcx, rcx
je 0x140027486
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rax, qword [rsi]
mov qword [rdi + rax], r12
add rdi, rbx
sub r14, 1
jne 0x14002746d
mov rcx, qword [rsi]
test rcx, rcx
je 0x1400274af
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov qword [rsi], r12
jmp 0x1400274af
mov rax, qword [rsp + 0x90]
mov dword [rax], edi
mov ebx, r12d
lea rcx, [rsp + 0x30]
call qword [sym.imp.vdsutil.dll_public:_void___cdecl_CVdsCallTracer::destructor_void____ptr64]
nop
test rbp, rbp
je 0x1400274d9
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov rcx, rax
mov r8, rbp
xor edx, edx
call qword [sym.imp.vdsutil.dll_int___cdecl_VdsHeapFree_void____ptr64__unsigned_long_int__void____ptr64_]
mov qword [rsp + 0x20], r12
mov eax, ebx
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret