Function at 0x100023294
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 r12
push r13
push r14
sub rsp, 0x180
mov qword [rsp + 0x130], 0xfffffffffffffffe
mov rbp, rdx
mov rsi, rcx
and dword [rsp + 0x48], 0
lea rax, [r11 - 0x80]
mov qword [rsp + 0x38], rax
xor eax, eax
mov byte [r11 + 0x18], al
mov byte [r11 + 0x20], al
lea r8, [r11 + 0x18]
lea r12, [0x100006ef0]
mov rdx, r12
lea rcx, [r11 - 0x80]
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 + 0x1d8]
lea r13, [0x1000034d0]
mov rdx, r13
lea rcx, [rsp + 0x158]
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, rbx
mov r8d, 0x10c
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.1000100ac
nop
lea rax, [rsp + 0x98]
mov qword [rsp + 0x38], rax
xor eax, eax
mov byte [rsp + 0x32], al
lea rax, [rsp + 0x50]
mov qword [rsp + 0x40], rax
xor eax, eax
mov byte [rsp + 0x30], al
mov byte [rsp + 0x33], al
lea r8, [rsp + 0x32]
lea rdx, [0x100006f38]
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]
mov rdx, r12
lea rcx, [rsp + 0x50]
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]
mov rdx, r13
lea rcx, [rsp + 0x70]
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 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]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rdi
mov r9, rbx
mov r8d, 0x110
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10000fdb8
mov rdx, rbp
lea rcx, [rsp + 0x70]
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 rdx, rax
lea rcx, [rsp + 0x50]
call fcn.10001e524
nop
mov rdx, rax
mov rcx, rbp
call qword [reloc.msvcp60.dll___4__basic_string_GU__char_traits_G_std__V__allocator_G_2__std__QEAAAEAV01_AEBV01__Z]
nop
lea rcx, [rsp + 0x50]
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 r11d, r11d
mov byte [rsp + 0x33], r11b
lea r9, [rsp + 0x33]
xor r8d, r8d
mov edx, 0x104
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_long_long_unsigned___int64___unsigned_short_int__class_std::allocator_unsigned_short_int__const____ptr64____ptr64]
nop
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x70]
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]
mov r8d, dword [rsp + 0x120]
mov rdx, qword [rax + 0x10]
call qword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
mov ebx, eax
lea rcx, [rsp + 0x70]
call fcn.100010ab0
test ebx, ebx
jne 0x100023642
lea rax, [rsp + 0x50]
mov qword [rsp + 0x40], rax
xor eax, eax
mov byte [rsp + 0x30], al
lea rax, [rsp + 0x98]
mov qword [rsp + 0x38], rax
xor eax, eax
mov byte [rsp + 0x32], al
mov byte [rsp + 0x31], al
lea r8, [rsp + 0x30]
lea rdx, [0x100003738]
lea rcx, [rsp + 0x50]
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 + 0x32]
mov rdx, r12
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 rbx, rax
lea r8, [rsp + 0x31]
mov rdx, r13
lea rcx, [rsp + 0x70]
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 r14, [0x100006f80]
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rdi
mov r9, rbx
mov r8d, 0x117
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10000fdb8
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
movzx edi, ax
or edi, 0x80070000
test eax, eax
cmovle edi, eax
test eax, eax
je 0x100023642
xor eax, eax
mov byte [rsp + 0x1d0], al
lea r8, [rsp + 0x1d0]
lea rdx, [0x100003770]
lea rcx, [rsp + 0x70]
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, r14
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10000fb68
xor r11d, r11d
mov byte [rsp + 0x1d0], r11b
lea r8, [rsp + 0x1d0]
lea rdx, [0x1000037b0]
lea rcx, [rsp + 0x70]
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, ebx
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10000fb68
xor r11d, r11d
mov byte [rsp + 0x1d0], r11b
mov edx, edi
lea rcx, [rsp + 0x50]
call fcn.1000103d0
mov rbx, rax
lea r8, [rsp + 0x1d0]
lea rdx, [0x1000024b8]
lea rcx, [rsp + 0x70]
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 [rbx + 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 + 0x50]
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 r11d, r11d
mov byte [rsp + 0x1d0], r11b
lea r8, [rsp + 0x1d0]
lea rdx, [0x1000024e0]
lea rcx, [rsp + 0x70]
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 + 0x1d0], edi
lea rdx, [0x100045bc8]
lea rcx, [rsp + 0x1d0]
call fcn.10003d536
int3
lea rax, [rsp + 0x50]
mov qword [rsp + 0x40], rax
xor eax, eax
mov byte [rsp + 0x31], al
lea rax, [rsp + 0x98]
mov qword [rsp + 0x38], rax
xor eax, eax
mov byte [rsp + 0x30], al
mov byte [rsp + 0x32], al
lea r8, [rsp + 0x31]
lea rdx, [0x100007080]
lea rcx, [rsp + 0x50]
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]
mov rdx, r12
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 rbx, rax
lea r8, [rsp + 0x32]
mov rdx, r13
lea rcx, [rsp + 0x70]
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 rcx, qword [rsp + 0x118]
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]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rdi
mov r9, rbx
mov r8d, 0x118
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10000fdb8
xor r11d, r11d
mov byte [rsp + 0x31], r11b
lea r9, [rsp + 0x31]
xor r8d, r8d
mov edx, 0x104
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_unsigned_long_long_unsigned___int64___unsigned_short_int__class_std::allocator_unsigned_short_int__const____ptr64____ptr64]
mov dword [rsp + 0x48], 1
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.100010e10
mov rcx, qword [rsp + 0x118]
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]
mov r8d, dword [rsi + 0x10]
mov rdx, qword [rax + 0x10]
call qword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
mov ebx, eax
lea rcx, [rsp + 0x70]
call fcn.100010ab0
test ebx, ebx
jne 0x100023921
lea rax, [rsp + 0x50]
mov qword [rsp + 0x40], rax
xor eax, eax
mov byte [rsp + 0x31], al
lea rax, [rsp + 0x98]
mov qword [rsp + 0x38], rax
xor eax, eax
mov byte [rsp + 0x30], al
mov byte [rsp + 0x32], al
lea r8, [rsp + 0x31]
lea rdx, [0x100003738]
lea rcx, [rsp + 0x50]
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]
mov rdx, r12
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 rbx, rax
lea r8, [rsp + 0x32]
mov rdx, r13
lea rcx, [rsp + 0x70]
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 r14, [0x100005720]
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rdi
mov r9, rbx
mov r8d, 0x11c
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10000fdb8
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
movzx edi, ax
or edi, 0x80070000
test eax, eax
cmovle edi, eax
test eax, eax
je 0x100023921
xor eax, eax
mov byte [rsp + 0x1d0], al
lea r8, [rsp + 0x1d0]
lea rdx, [0x100003770]
lea rcx, [rsp + 0x70]
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, r14
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10000fb68
xor r11d, r11d
mov byte [rsp + 0x1d0], r11b
lea r8, [rsp + 0x1d0]
lea rdx, [0x1000037b0]
lea rcx, [rsp + 0x70]
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, ebx
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10000fb68
xor r11d, r11d
mov byte [rsp + 0x1d0], r11b
mov edx, edi
lea rcx, [rsp + 0x50]
call fcn.1000103d0
mov rbx, rax
lea r8, [rsp + 0x1d0]
lea rdx, [0x1000024b8]
lea rcx, [rsp + 0x70]
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 [rbx + 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 + 0x50]
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 r11d, r11d
mov byte [rsp + 0x1d0], r11b
lea r8, [rsp + 0x1d0]
lea rdx, [0x1000024e0]
lea rcx, [rsp + 0x70]
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 + 0x1d0], edi
lea rdx, [0x100045bc8]
lea rcx, [rsp + 0x1d0]
call fcn.10003d536
int3
lea rax, [rsp + 0x50]
mov qword [rsp + 0x40], rax
xor eax, eax
mov byte [rsp + 0x31], al
lea rax, [rsp + 0x98]
mov qword [rsp + 0x38], rax
xor eax, eax
mov byte [rsp + 0x30], al
mov byte [rsp + 0x32], al
lea r8, [rsp + 0x31]
lea rdx, [0x100005830]
lea rcx, [rsp + 0x50]
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]
mov rdx, r12
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 rbx, rax
lea r8, [rsp + 0x32]
mov rdx, r13
lea rcx, [rsp + 0x70]
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 rcx, qword [rsi + 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]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rdi
mov r9, rbx
mov r8d, 0x11d
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10000fdb8
nop
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__::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, 0x180
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret