Function at 0x140001820
Capabilities:
Get storage device properties

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x10], 0xfffffffffffffffe
mov rsi, rcx
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
lea rcx, str..PhysicalDrive0
xor edx, edx
mov r8d, 3
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
je 0x140001970
mov rdi, rax
mov dword [rbp - 0x30], 0
mov qword [rbp - 0x38], 0
mov qword [rbp - 0x28], 0
mov dword [rbp - 0x14], 0
lea r14, [rbp - 0x14]
mov qword [rsp + 0x30], r14
lea rax, [rbp - 0x28]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x28], 8
lea r8, [rbp - 0x38]
mov rcx, rdi
mov edx, 0x2d1400
mov r9d, 0xc
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x140001999
mov qword [rbp - 8], rdi
mov ebx, dword [rbp - 0x24]
mov rcx, rbx
call fcn.1400098e0
mov rdi, rax
mov rcx, rax
xor edx, edx
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
mov qword [rbp - 0x20], rdi
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x38], 0
lea r8, [rbp - 0x38]
mov rcx, qword [rbp - 8]
mov edx, 0x2d1400
mov r9d, 0xc
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x1400019bc
mov eax, dword [rdi + 0x18]
test rax, rax
je 0x1400019d3
add rdi, rax
mov qword [rsi], 0
movaps xmm0, xmmword [0x14010fe20]
movups xmmword [rsi + 0x10], xmm0
mov byte [rsi], 0
mov rcx, rsi
mov rdx, rdi
call fcn.1400078c0
jmp 0x1400019f7
mov qword [rsi], 0
movaps xmm0, xmmword [0x14010fe20]
movups xmmword [rsi + 0x10], xmm0
mov byte [rsi], 0
lea rdx, [0x14011075d]
mov rcx, rsi
call fcn.1400078c0
jmp 0x140001ac1
mov qword [rsi], 0
movaps xmm0, xmmword [0x14010fe20]
movups xmmword [rsi + 0x10], xmm0
mov byte [rsi], 0
test rdi, rdi
jne 0x140001ab8
jmp 0x140001ac1
mov qword [rsi], 0
movaps xmm0, xmmword [0x14010fe20]
movups xmmword [rsi + 0x10], xmm0
mov byte [rsi], 0
jmp 0x1400019f7
mov qword [rsi], 0
movaps xmm0, xmmword [0x14010fe20]
movups xmmword [rsi + 0x10], xmm0
mov byte [rsi], 0
lea rdx, [0x14011075d]
mov rcx, rsi
call fcn.1400078c0
lea rax, [rbp - 0x20]
mov qword [rbp + 8], rax
mov rax, qword [rbp + 8]
mov qword [rbp], rax
mov rax, qword [rbp]
mov rax, qword [rax]
mov qword [rbp - 0x10], rax
mov eax, 0x3773b646
mov r14d, 0xeaf205b4
mov r15d, 0x4fa5c4e1
nop word cs:[rax + rax]
nop dword [rax]
cmp eax, 0xb032db03
je 0x140001a55
cmp eax, 0x4fa5c4e1
je 0x140001aaf
cmp eax, 0x3773b646
jne 0x140001a30
cmp qword [rbp - 0x10], 0
mov eax, 0xb032db03
cmove eax, r15d
jmp 0x140001a30
mov rax, qword [rbp + 8]
mov rax, qword [rbp]
mov rdi, qword [rax]
test rdi, rdi
mov ebx, 0x6265c55f
cmove ebx, r14d
mov eax, 0x5981cac3
nop word cs:[rax + rax]
nop dword [rax + rax]
cmp eax, 0xeaf205b4
je 0x140001aa8
cmp eax, 0x5981cac3
je 0x140001aa4
cmp eax, 0x6265c55f
jne 0x140001a80
mov rcx, rdi
call fcn.1400098ac
mov eax, 0xeaf205b4
jmp 0x140001a80
mov eax, ebx
jmp 0x140001a80
mov eax, 0x4fa5c4e1
jmp 0x140001a30
mov rdi, qword [rbp - 8]
test rdi, rdi
je 0x140001ac1
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, rsi
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret