Function at 0x140004a70
Capabilities:
Get storage device properties

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x1060]
mov eax, 0x1160
call fcn.14003e1a0
sub rsp, rax
mov rax, qword [0x14007c668]
xor rax, rsp
mov qword [rbp + 0x1050], rax
cmp dword [rcx + 0x910], 0x11
mov rsi, rcx
jne 0x140004ba0
xor edx, edx
lea rcx, [rsp + 0x70]
mov r8d, 0x1010
call fcn.14003fc80
mov rcx, qword [rsi]
lea rax, [rsp + 0x44]
xor edi, edi
mov dword [rsp + 0x58], 3
mov qword [rsp + 0x38], rdi
lea r8, [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov r9d, 0x1030
lea rax, [rsp + 0x50]
mov dword [rsp + 0x28], 0x1030
mov edx, 0x2d1400
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x5c], 2
mov qword [rsp + 0x60], 2
mov dword [rsp + 0x68], 0x28
mov dword [rsp + 0x6c], 0x1000
mov qword [rsp + 0x50], 0x31
mov dword [rsp + 0x44], edi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov ebx, eax
test eax, eax
jne 0x140004b80
mov rcx, qword [rsi]
lea rax, [rsp + 0x44]
mov qword [rsp + 0x38], rdi
lea r8, [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov r9d, 0x1030
lea rax, [rsp + 0x50]
mov dword [rsp + 0x28], 0x1030
mov edx, 0x2d1400
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x64], 0xffffffff
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov ebx, eax
test eax, eax
je 0x140004b99
mov r9d, 0x200
lea rcx, [rsi + 0x208]
mov edx, r9d
lea r8, [rbp - 0x80]
call fcn.14000a170
mov eax, ebx
jmp 0x1400050ae
mov rcx, qword [rcx]
lea rax, [rsp + 0x40]
xor edi, edi
mov qword [rsp + 0x1188], r14
mov qword [rsp + 0x38], rdi
xor r9d, r9d
mov qword [rsp + 0x30], rax
xor r8d, r8d
lea rax, [rsp + 0x48]
mov dword [rsp + 0x28], 8
mov edx, 0x41018
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x48], rdi
mov dword [rsp + 0x40], edi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x1400050a4
movzx r9d, byte [rsp + 0x4c]
lea r8, str..Scsi_d:
xor eax, eax
lea rdx, [rdi - 1]
lea rcx, [rbp + 0x1000]
mov qword [rbp + 0x1000], rax
mov qword [rbp + 0x1008], rax
mov qword [rbp + 0x1010], rax
mov qword [rbp + 0x1018], rax
mov qword [rbp + 0x1020], rax
mov qword [rbp + 0x1028], rax
mov qword [rbp + 0x1030], rax
mov qword [rbp + 0x1038], rax
mov qword [rbp + 0x1040], rax
call fcn.1400028c0
mov qword [rsp + 0x30], rdi
lea r8d, [rdi + 3]
mov dword [rsp + 0x28], edi
lea rcx, [rbp + 0x1000]
xor r9d, r9d
mov dword [rsp + 0x20], 3
mov edx, 0xc0000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
cmp rax, 0xffffffffffffffff
je 0x1400050a4
cmp dword [rsi + 0x910], 0x10
mov ebx, 0x1f8
jne 0x140004e2a
xor edx, edx
lea rcx, [rsp + 0x50]
mov r8d, 0x1098
call fcn.14003fc80
movzx ecx, byte [rsp + 0x4e]
lea r8, [rsp + 0x50]
shl ecx, 8
movabs rax, 0x44494152656d764e
mov qword [rsp + 0x54], rax
mov r9d, 0x1098
movzx eax, byte [rsp + 0x4d]
mov edx, 0x4d008
shl eax, 0x10
add ecx, eax
mov qword [rsp + 0x38], rdi
movzx eax, byte [rsp + 0x4f]
add eax, 0x86000000
mov dword [rsp + 0x60], 0xe0002000
add ecx, eax
mov dword [rsp + 0x5c], 0x28
lea rax, [rsp + 0x40]
mov dword [rsp + 0x64], ecx
mov qword [rsp + 0x30], rax
mov rcx, r14
lea rax, [rsp + 0x50]
mov dword [rsp + 0x28], 0x1098
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x50], 0x1c
mov dword [rsp + 0x68], 0x107c
mov qword [rbp - 0x2c], 2
mov qword [rbp - 0x24], 0x1000
mov dword [rbp - 0x1c], 0x1098
mov dword [rbp - 0x7c], 2
mov dword [rbp - 0x78], 0xffffffff
mov dword [rbp - 0x54], 0x7f0002
mov byte [rbp - 0x18], 1
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp eax, 1
jne 0x140004e2a
xorps xmm3, xmm3
xorps xmm2, xmm2
mov eax, edi
nop word [rax + rax]
movd xmm1, dword [rbp + rax - 0x18]
xorps xmm0, xmm0
punpcklbw xmm1, xmm0
punpcklwd xmm1, xmm0
paddd xmm1, xmm3
movdqa xmm3, xmm1
movd xmm1, dword [rbp + rax - 0x14]
punpcklbw xmm1, xmm0
add rax, 8
punpcklwd xmm1, xmm0
paddd xmm1, xmm2
movdqa xmm2, xmm1
cmp rax, rbx
jl 0x140004d80
paddd xmm2, xmm3
mov edx, edi
movdqa xmm0, xmm2
mov r8d, edi
psrldq xmm0, 8
mov rcx, rbx
paddd xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd r9d, xmm2
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rbp + rcx - 0x18]
add edx, eax
movzx eax, byte [rbp + rcx - 0x17]
add r8d, eax
add rcx, 2
cmp rcx, 0x1fd
jl 0x140004df0
cmp rcx, 0x1fe
jge 0x140004e1d
movzx eax, byte [rbp + rcx - 0x18]
add r9d, eax
lea eax, [r8 + rdx]
add r9d, eax
jne 0x140005072
cmp dword [rsi + 0x910], 0x15
jne 0x140004f06
xor edx, edx
lea rcx, [rsp + 0x50]
mov r8d, 0x10a4
call fcn.14003fc80
movabs rax, 0x6d764e6c65746e49
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x54], rax
lea r8, [rsp + 0x50]
movzx eax, byte [rsp + 0x4d]
mov r9d, 0x10a4
mov byte [rsp + 0x6d], al
mov edx, 0x4d008
mov eax, dword [rsp + 0x70]
mov rcx, r14
and eax, 0xffffff02
mov dword [rsp + 0x50], 0x1c
or eax, 2
mov dword [rsp + 0x5c], 0xa
mov dword [rsp + 0x70], eax
mov eax, dword [rbp - 0x68]
and eax, 0xf07fff02
mov dword [rsp + 0x60], 0xf0002808
or eax, 0x7f0002
mov dword [rsp + 0x68], 0x1088
mov dword [rbp - 0x68], eax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x50]
mov dword [rsp + 0x28], 0x10a4
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x6c], 1
mov dword [rsp + 0x74], 0xffffffff
mov dword [rbp - 0x3c], 0xa4
mov dword [rbp - 0x38], 0x1000
mov dword [rbp - 0x50], edi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x140004f06
lea r8, [rbp - 0xc]
jmp 0x140005076
cmp dword [rsi + 0x910], 0x16
jne 0x14000509b
xor edx, edx
mov dword [rsp + 0x40], edi
mov r8d, 0x1098
lea rcx, [rsp + 0x50]
call fcn.14003fc80
movabs rax, 0x696e694d656d764e
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x54], rax
lea r8, [rsp + 0x50]
movzx eax, byte [rsp + 0x4d]
mov r9d, 0x1098
mov dword [rbp - 0x28], eax
mov edx, 0x4d008
lea rax, [rsp + 0x40]
mov dword [rsp + 0x60], 0xe0002000
mov qword [rsp + 0x30], rax
mov rcx, r14
lea rax, [rsp + 0x50]
mov dword [rsp + 0x28], 0x1098
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x50], 0x1c
mov dword [rsp + 0x5c], 0x28
mov dword [rsp + 0x68], 0x107c
mov dword [rbp - 0x24], 0x1000
mov dword [rbp - 0x1c], 0x1098
mov dword [rbp - 0x2c], 2
mov dword [rbp - 0x7c], 2
mov dword [rbp - 0x78], 0xffffffff
mov dword [rbp - 0x54], 0x7f0002
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp eax, 1
jne 0x14000509b
xorps xmm3, xmm3
xorps xmm2, xmm2
mov rax, rdi
nop word [rax + rax]
movd xmm1, dword [rbp + rax - 0x18]
xorps xmm0, xmm0
punpcklbw xmm1, xmm0
punpcklwd xmm1, xmm0
paddd xmm1, xmm3
movdqa xmm3, xmm1
movd xmm1, dword [rbp + rax - 0x14]
punpcklbw xmm1, xmm0
add rax, 8
punpcklwd xmm1, xmm0
paddd xmm1, xmm2
movdqa xmm2, xmm1
cmp rax, rbx
jl 0x140004fe0
paddd xmm2, xmm3
mov ecx, edi
movdqa xmm0, xmm2
psrldq xmm0, 8
paddd xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd edx, xmm2
nop dword [rax]
movzx eax, byte [rbp + rbx - 0x18]
add edi, eax
movzx eax, byte [rbp + rbx - 0x17]
add ecx, eax
add rbx, 2
cmp rbx, 0x1fd
jl 0x140005040
cmp rbx, 0x1fe
jge 0x14000506b
movzx eax, byte [rbp + rbx - 0x18]
add edx, eax
lea eax, [rcx + rdi]
add edx, eax
je 0x14000509b
lea r8, [rbp - 0x18]
mov r9d, 0x200
lea rcx, [rsi + 0x208]
mov edx, r9d
call fcn.14000a170
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x1400050a6
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov r14, qword [rsp + 0x1188]
mov rcx, qword [rbp + 0x1050]
xor rcx, rsp
call fcn.14003e210
mov rbx, qword [rsp + 0x1190]
add rsp, 0x1160
pop rdi
pop rsi
pop rbp
ret