Function at 0x140004290
Capabilities:
Get storage device properties

Disassembly:
mov r11, rsp
push rsi
push rdi
push r12
sub rsp, 0x130
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [r11 + 0x18], rbx
mov qword [r11 + 0x20], rbp
mov rax, qword [0x1400c2038]
xor rax, rsp
mov qword [rsp + 0x120], rax
mov ebx, edx
mov rdi, rcx
mov qword [rsp + 0x58], rcx
xor r12d, r12d
mov dword [rsp + 0x44], r12d
mov byte [r11 - 0xa8], r12b
xor edx, edx
lea r8d, [r12 + 0x7f]
lea rcx, [r11 - 0xa7]
call sub.MSVCR90.dll_memset
mov r8d, ebx
lea rdx, str..PhysicalDrive_d
lea rcx, [rsp + 0xa0]
call qword [sym.imp.MSVCR90.dll_sprintf]
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor edx, edx
lea r8d, [r12 + 3]
lea rcx, [rsp + 0xa0]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140004351
lea rdx, [0x14008ac97]
mov rcx, rdi
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const____ptr64____ptr64]
nop
mov rax, rdi
jmp 0x140004464
lea rdx, [0x14008be9c]
lea rcx, [rsp + 0x70]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const____ptr64____ptr64]
nop
xor eax, eax
mov dword [rsp + 0x64], eax
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x60], r12d
mov dword [rsp + 0x64], r12d
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x4c], eax
mov dword [rsp + 0x40], r12d
mov qword [rsp + 0x38], r12
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 8
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r9d, 0xc
lea r8, [rsp + 0x60]
mov edx, 0x2d1400
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x140004432
mov ebp, dword [rsp + 0x4c]
mov rcx, rbp
lea rdx, [0x1400c8b90]
call fcn.1400775d8
mov rbx, rax
test rax, rax
je 0x140004432
mov qword [rsp + 0x38], r12
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], rbx
mov r9d, 0xc
lea r8, [rsp + 0x60]
mov edx, 0x2d1400
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x14000442a
mov eax, dword [rbx + 0x18]
test eax, eax
je 0x14000442a
lea rdx, [rbx + rax]
lea rcx, [rsp + 0x70]
call qword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const____ptr64____ptr64]
mov rcx, rbx
call sub.mfc90u.dll_delete__
test rsi, rsi
je 0x140004440
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, [rsp + 0x70]
mov rcx, rdi
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64____ptr64]
mov dword [rsp + 0x44], 1
lea rcx, [rsp + 0x70]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
mov rax, rdi
mov rcx, qword [rsp + 0x120]
xor rcx, rsp
call fcn.140077470
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret