Function at 0x140042f20
Capabilities:
Get storage device properties

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xa0
mov rsi, rcx
xor r12d, r12d
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, str..PhysicalDrive0
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov r14, rax
cmp rax, 0xffffffffffffffff
jne 0x140042f8b
mov qword [rsi], r12
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 0xf
mov byte [rsi], r12b
jmp 0x1400431e5
lea rax, [sub.KERNEL32.dll_CloseHandle]
mov qword [rbp - 0x21], rax
mov qword [rbp - 0x19], r14
mov qword [rbp - 0x2d], r12
mov dword [rbp - 0x31], r12d
mov qword [rbp + 0x7f], r12
mov dword [rbp + 0x77], r12d
mov qword [rsp + 0x38], r12
lea rax, [rbp + 0x77]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 8
lea rax, [rbp + 0x7f]
mov qword [rsp + 0x20], rax
mov r9d, reloc.SHLWAPI.dll_SHCreateMemStream
lea r8, [rbp - 0x31]
mov edx, 0x2d1400
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x140042ffb
mov qword [rsi], r12
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 0xf
mov byte [rsi], al
jmp 0x1400431d7
mov edi, dword [rbp + 0x83]
mov ecx, edi
call fcn.14006beb4
mov r15, rax
mov r8d, edi
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov qword [rbp - 0x39], r15
mov qword [rsp + 0x38], r12
lea rax, [rbp + 0x77]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], r15
mov r9d, reloc.SHLWAPI.dll_SHCreateMemStream
lea r8, [rbp - 0x31]
mov edx, 0x2d1400
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x14004306e
mov qword [rsi], r12
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 0xf
mov byte [rsi], al
mov rcx, r15
call fcn.14006be08
nop
jmp 0x1400431d7
mov eax, dword [r15 + 0x18]
test eax, eax
jne 0x140043095
mov qword [rsi], r12
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 0xf
mov byte [rsi], al
mov rcx, r15
call fcn.14006be08
nop
jmp 0x1400431d7
lea rdx, [r15 + rax]
mov qword [rbp - 1], r12
mov qword [rbp + 0xf], r12
mov qword [rbp + 0x17], 0xf
mov byte [rbp - 1], 0
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], 0
jne 0x1400430b4
lea rcx, [rbp - 1]
call fcn.140068340
nop
lea r12, [rbp - 1]
mov rax, qword [rbp + 0x17]
cmp rax, 0x10
setae cl
mov byte [rbp + 0x6f], cl
mov rbx, qword [rbp - 1]
cmovae r12, rbx
mov r13, qword [rbp + 0xf]
cmp r13, 0x10
jae 0x1400430fe
movups xmm0, xmmword [r12]
mov qword [rbp - 9], 0xf
jmp 0x140043186
mov rdi, r13
or rdi, 0xf
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
cmova rdi, rax
lea rcx, [rdi + 1]
cmp rcx, 0x1000
jb 0x140043155
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140043203
mov rcx, rax
call fcn.14006baac
mov rcx, rax
test rax, rax
je 0x14004314e
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140043163
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
test rcx, rcx
je 0x140043161
call fcn.14006baac
jmp 0x140043163
xor eax, eax
mov qword [rbp - 0x21], rax
lea r8, [r13 + 1]
mov rdx, r12
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov qword [rbp - 9], rdi
movups xmm0, xmmword [rbp - 0x21]
mov rax, qword [rbp + 0x17]
movzx ecx, byte [rbp + 0x6f]
mov qword [rbp - 0x11], r13
movups xmmword [rsi], xmm0
movups xmm0, xmmword [rbp - 0x11]
movups xmmword [rsi + 0x10], xmm0
test cl, cl
je 0x1400431ce
lea rdx, [rax + 1]
mov rax, rbx
cmp rdx, 0x1000
jb 0x1400431c5
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400431c5
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rbx
call fcn.14006be08
nop
mov rcx, r15
call fcn.14006be08
nop
test r14, r14
je 0x1400431e5
mov rcx, r14
call sub.KERNEL32.dll_CloseHandle
nop
mov rax, rsi
mov rbx, qword [rsp + 0xe0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140006900
nop
int3