Function at 0x14006e92c
Capabilities:
Get storage device properties

Disassembly:
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x25c0
call fcn.1401b8d00
sub rsp, rax
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov qword [rsp + 0x25f8], rbx
mov qword [rsp + 0x2600], rbp
mov qword [rsp + 0x2608], rsi
movaps xmmword [rsp + 0x25b0], xmm7
mov rax, qword [0x14028b7c8]
xor rax, rsp
mov qword [rsp + 0x25a0], rax
mov r12, rcx
mov qword [rsp + 0x48], rcx
xor esi, esi
mov ebx, esi
mov dword [rsp + 0x40], ebx
lea ebp, [rsi + 3]
movsd xmm7, qword [0x140230a20]
mov r9d, ebx
lea r8, str..PhysicalDrive_d
mov edx, 0x80
lea rcx, [rsp + 0x2210]
call fcn.140044464
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], ebp
xor r9d, r9d
mov r8d, ebp
mov edx, 0xc0000000
lea rcx, [rsp + 0x2210]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rdi, rax
mov qword [rsp + 0x60], rax
cmp rax, 0xffffffffffffffff
je 0x14006ee8c
mov dword [rsp + 0x78], esi
mov dword [rsp + 0x7c], esi
mov qword [rsp + 0x38], rsi
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x200
lea rax, [rsp + 0x2290]
mov qword [rsp + 0x20], rax
mov r9d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
lea r8, [rsp + 0x78]
mov edx, 0x2d1400
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp eax, esi
je 0x14006ee83
cmp dword [rsp + 0x22ac], 8
jne 0x14006ee83
mov qword [rsp + 0x38], rsi
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x200
lea rax, [rsp + 0x2290]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x41018
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp eax, esi
je 0x14006ee83
movzx r9d, byte [rsp + 0x2294]
lea r8, str..Scsi_d:
mov edx, 0x104
lea rcx, [rsp + 0x2490]
call fcn.1401586fc
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], ebp
xor r9d, r9d
mov r8d, ebp
mov edx, 0xc0000000
lea rcx, [rsp + 0x2490]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x14006ee83
mov dword [rsp + 0x110], esi
xor edx, edx
mov r8d, 0xc6
lea rcx, [rsp + 0x114]
call fcn.140158a90
mov dword [rsp + 0x90], esi
xor edx, edx
lea r8d, [rdx + 0x7c]
lea rcx, [rsp + 0x94]
call fcn.140158a90
mov byte [rsp + 0x1e0], sil
xor edx, edx
mov r8d, 0x803
lea rcx, [rsp + 0x1e1]
call fcn.140158a90
mov dword [rsp + 0x9f0], esi
xor edx, edx
mov r8d, 0x81c
lea rcx, [rsp + 0x9f4]
call fcn.140158a90
mov dword [rsp + 0x20], 0xca
lea r9, [rsp + 0x110]
mov r8d, 1
mov rdx, r15
mov rcx, r12
call fcn.1400a6bf0
cmp eax, esi
jne 0x14006eb7b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x20], 0x80
lea r9, [rsp + 0x90]
mov r8d, 0xa
mov rdx, r15
mov rcx, r12
call fcn.1400a6bf0
cmp eax, esi
je 0x14006ee7a
cmp dword [rsp + 0xac], esi
je 0x14006ee7a
mov dword [rsp + 0x20], 0x820
lea r9, [rsp + 0x9f0]
mov r8d, 0x14
mov rdx, r15
mov rcx, r12
call fcn.1400a6bf0
cmp eax, esi
je 0x14006ee7a
mov r8d, 0x804
lea rdx, [rsp + 0xa0c]
lea rcx, [rsp + 0x1e0]
call fcn.140159620
lea rdx, str.rcraid
lea rcx, [rsp + 0x12c]
call fcn.1401593e0
cmp eax, esi
jne 0x14006ec88
mov edi, esi
mov ecx, dword [rsp + 0xd0]
cmp ecx, esi
jle 0x14006ec70
movzx eax, byte [rsp + 0x1e0]
cmp edi, eax
jl 0x14006ec57
movsxd rbx, edi
shl rbx, 6
lea rcx, [rsp + rbx + 0x1e4]
mov r8d, 0x40
lea rdx, [rsp + 0x1e4]
call fcn.140159620
mov byte [rsp + rbx + 0x200], dil
mov ecx, dword [rsp + 0xd0]
movsxd rax, edi
shl rax, 6
mov byte [rsp + rax + 0x21c], dil
inc edi
cmp edi, ecx
jl 0x14006ec1a
mov ebx, dword [rsp + 0x40]
mov al, byte [rsp + 0xd0]
mov byte [rsp + 0x1e0], al
mov rdi, qword [rsp + 0x60]
jmp 0x14006ee7a
mov ebp, dword [rsp + 0xb0]
imul ebp, dword [rsp + 0xac]
imul ebp, ebp, 0x88
add ebp, 0xc8
mov edx, ebp
xor ecx, ecx
lea r9d, [rcx + 4]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdi, rax
mov r13d, esi
cmp dword [rsp + 0xac], esi
jle 0x14006ee5f
mov dword [rdi + 0x1c], r13d
mov dword [rsp + 0x20], ebp
mov r9, rdi
mov r8d, VariantTimeToDosDateTime
mov rdx, r15
mov rcx, r12
call fcn.1400a6bf0
cmp eax, esi
je 0x14006ee4a
mov r14d, esi
cmp byte [rdi + 0x2b], sil
jbe 0x14006ee4a
lea rsi, [rdi + 0x9a]
cmp byte [rsi - 0x5a], 0
je 0x14006ee31
movzx r12d, byte [rsi]
mov ecx, 0x130
call fcn.14013f12c
mov r11, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14006ed5c
movzx eax, byte [rsp + 0x2296]
movzx ecx, byte [rsp + 0x2295]
movzx r9d, byte [rsp + 0x2294]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
or r8d, 0xffffffff
or edx, r8d
mov rcx, r11
call fcn.1400a7274
mov rbx, rax
jmp 0x14006ed5e
xor ebx, ebx
movsd qword [rsp + 0x58], xmm7
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x1210]
mov r8d, r12d
mov rdx, r15
mov rcx, qword [rsp + 0x48]
call fcn.1400a8d24
test eax, eax
je 0x14006ee13
lea r8, [rsp + 0x1210]
mov rdx, rbx
mov rcx, qword [rsp + 0x48]
call fcn.1400a9a94
movsd xmm5, qword [rsp + 0x58]
comisd xmm5, xmmword [0x1401dae20]
jbe 0x14006edce
mulsd xmm5, qword [0x140230a18]
mulsd xmm5, qword [0x140230a18]
cvttsd2si rax, xmm5
mov dword [rbx + 0xf4], eax
mov dword [rbx + 0x40], r12d
mov dword [rbx + 0x48], 4
mov dword [rbx + 0xfc], 8
mov rdx, rbx
mov r12, qword [rsp + 0x48]
mov rcx, r12
call fcn.14006cbc8
test eax, eax
jne 0x14006ee04
mov rdx, rbx
mov rcx, r12
call fcn.14006cb60
jmp 0x14006ee31
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
jmp 0x14006ee31
test rbx, rbx
je 0x14006ee2c
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
mov r12, qword [rsp + 0x48]
jmp 0x14006ee31
mov r12, qword [rsp + 0x48]
inc r14d
add rsi, 0x88
movzx eax, byte [rdi + 0x2b]
cmp r14d, eax
jl 0x14006ed02
xor esi, esi
inc r13d
cmp r13d, dword [rsp + 0xac]
jl 0x14006ecca
mov ebx, dword [rsp + 0x40]
xor edx, edx
mov r8d, 0x8000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov rdi, qword [rsp + 0x60]
mov ebp, 3
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc ebx
mov dword [rsp + 0x40], ebx
cmp ebx, 0x38
jl 0x14006e999
mov eax, 1
mov rcx, qword [rsp + 0x25a0]
xor rcx, rsp
call fcn.140156fd0
lea r11, [rsp + 0x25c0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm7, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret