Function at 0x100017a04
Capabilities:
Get disk information

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r13
sub rsp, 0x170
mov qword [rsp + 0xb8], 0xfffffffffffffffe
mov rbp, rdx
mov rsi, rcx
and dword [rsp + 0x38], 0
lea rax, [r11 - 0x68]
mov qword [rsp + 0x60], rax
xor eax, eax
mov byte [r11 + 0x18], al
mov byte [r11 + 0x20], al
lea r8, [r11 + 0x18]
lea rdx, [0x1000037e0]
lea rcx, [r11 - 0x68]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const____ptr64__class_std::allocator_unsigned_short_int__const____ptr64____ptr64]
mov rdi, rax
lea r8, [rsp + 0x1b8]
lea rdx, [0x1000034d0]
lea rcx, [rsp + 0x150]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const____ptr64__class_std::allocator_unsigned_short_int__const____ptr64____ptr64]
nop
mov r9, rdi
mov r8d, 0x176
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.1000100ac
nop
and dword [rsp + 0x34], 0
xor eax, eax
mov byte [rsp + 0x32], al
lea r9, [rsp + 0x32]
xor r8d, r8d
mov edx, 0x104
lea rcx, [rsp + 0x40]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_long_long_unsigned___int64___unsigned_short_int__class_std::allocator_unsigned_short_int__const____ptr64____ptr64]
nop
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x68]
call fcn.100010e10
mov rcx, qword [rbp + 8]
test rcx, rcx
cmove rcx, qword [sym.imp.msvcp60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____ptr64___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
lea r9, [rsp + 0x34]
mov r8d, dword [rsp + 0x50]
mov rdx, qword [rax + 0x10]
call qword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
test eax, eax
sete dil
lea rcx, [rsp + 0x68]
call fcn.100010ab0
test dil, dil
je 0x100017d4a
mov edx, dword [rsp + 0x34]
xor r8d, r8d
lea rcx, [rsp + 0x40]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::resize_unsigned_long_long_unsigned___int64___unsigned_short_int____ptr64]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x68]
call fcn.100010e10
mov rcx, qword [rbp + 8]
test rcx, rcx
cmove rcx, qword [sym.imp.msvcp60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____ptr64___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
lea r9, [rsp + 0x34]
mov r8d, dword [rsp + 0x50]
mov rdx, qword [rax + 0x10]
call qword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
xor edi, edi
test eax, eax
sete dil
lea rcx, [rsp + 0x68]
call fcn.100010ab0
test edi, edi
jne 0x100017d4a
lea rax, [rsp + 0x110]
mov qword [rsp + 0x60], rax
xor eax, eax
mov byte [rsp + 0x31], al
lea rax, [rsp + 0x98]
mov qword [rsp + 0x90], rax
xor eax, eax
mov byte [rsp + 0x33], al
mov byte [rsp + 0x30], al
lea r8, [rsp + 0x31]
lea rdx, [0x100003738]
lea rcx, [rsp + 0x110]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const____ptr64__class_std::allocator_unsigned_short_int__const____ptr64____ptr64]
mov rbx, rax
lea r8, [rsp + 0x33]
lea rdx, [0x1000037e0]
lea rcx, [rsp + 0x98]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const____ptr64__class_std::allocator_unsigned_short_int__const____ptr64____ptr64]
mov rdi, rax
lea r8, [rsp + 0x30]
lea rdx, [0x1000034d0]
lea rcx, [rsp + 0x68]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const____ptr64__class_std::allocator_unsigned_short_int__const____ptr64____ptr64]
nop
lea r13, [0x100003810]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rbx
mov r9, rdi
mov r8d, 0x184
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10000fdb8
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test eax, eax
je 0x100017d4a
xor eax, eax
mov byte [rsp + 0x1b0], al
lea r8, [rsp + 0x1b0]
lea rdx, [0x100003770]
lea rcx, [rsp + 0x68]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const____ptr64__class_std::allocator_unsigned_short_int__const____ptr64____ptr64]
mov r8, r13
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10000fb68
xor r11d, r11d
mov byte [rsp + 0x1b0], r11b
lea r8, [rsp + 0x1b0]
lea rdx, [0x1000037b0]
lea rcx, [rsp + 0x68]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const____ptr64__class_std::allocator_unsigned_short_int__const____ptr64____ptr64]
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10000fb68
xor edx, edx
mov byte [rsp + 0x1b0], dl
mov edx, ebx
lea rcx, [rsp + 0x98]
call fcn.1000103d0
mov rdi, rax
lea r8, [rsp + 0x1b0]
lea rdx, [0x1000024b8]
lea rcx, [rsp + 0x68]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const____ptr64__class_std::allocator_unsigned_short_int__const____ptr64____ptr64]
mov r8, qword [rdi + 8]
test r8, r8
cmove r8, qword [sym.imp.msvcp60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____ptr64___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10000fb68
nop
lea rcx, [rsp + 0x98]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void____ptr64]
xor edx, edx
mov byte [rsp + 0x1b0], dl
lea r8, [rsp + 0x1b0]
lea rdx, [0x1000024e0]
lea rcx, [rsp + 0x68]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const____ptr64__class_std::allocator_unsigned_short_int__const____ptr64____ptr64]
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10000fb68
mov dword [rsp + 0x1b0], ebx
lea rdx, [0x100045bc8]
lea rcx, [rsp + 0x1b0]
call fcn.10003d536
int3
lea rdx, [rsp + 0x40]
mov rcx, rsi
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const____ptr64____ptr64]
mov dword [rsp + 0x38], 1
mov rbx, qword [rsp + 0x48]
test rbx, rbx
cmove rbx, qword [sym.imp.msvcp60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____ptr64___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
cmp word [rbx], 0
je 0x100017db5
or r13, 0xffffffffffffffff
xor eax, eax
mov rcx, r13
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
cmp qword [rsi + 0x10], rcx
jbe 0x100017d9e
mov rdx, rbx
mov rcx, rsi
call qword [reloc.msvcp60.dll___4__basic_string_GU__char_traits_G_std__V__allocator_G_2__std__QEAAAEAV01_PEBG_Z]
xor eax, eax
mov rcx, r13
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
lea rbx, [rbx + rcx*2]
cmp word [rbx], ax
jne 0x100017d7a
lea rcx, [rsp + 0x40]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0xc0]
call fcn.10001027c
nop
mov rcx, rbp
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void____ptr64]
mov rax, rsi
add rsp, 0x170
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret