Function at 0x18007ba60
Capabilities:
Get storage device properties

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0xe8
mov qword [rsp + 0xc8], 0xfffffffffffffffe
mov rax, qword [0x180284030]
xor rax, rsp
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0xf0]
mov rax, qword [rax]
mov rcx, qword [rsp + 0xf0]
call qword [rax + 0x48]
movzx eax, al
test eax, eax
jne 0x18007bab8
xor al, al
jmp 0x18007bd79
mov byte [rsp + 0x44], 0
mov dword [rsp + 0x48], 0x228
mov eax, dword [rsp + 0x48]
mov ecx, eax
call fcn.1800d4c50
mov qword [rsp + 0xb8], rax
mov rdx, qword [rsp + 0xb8]
lea rcx, [rsp + 0x68]
call fcn.1800011fe
nop
lea rcx, [rsp + 0x68]
call fcn.180001fb4
mov qword [rsp + 0x78], rax
mov rcx, qword [rsp + 0x78]
call fcn.180001bf4
movzx eax, al
test eax, eax
jne 0x18007bb2a
mov byte [rsp + 0xc0], 0
lea rcx, [rsp + 0x68]
call fcn.18000186b
movzx eax, byte [rsp + 0xc0]
jmp 0x18007bd79
mov eax, dword [rsp + 0x48]
mov r8d, eax
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.1800d63d0
mov rax, qword [rsp + 0x78]
mov ecx, dword [rsp + 0x48]
mov dword [rax + 4], ecx
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x58], 0
mov dword [rsp + 0x5c], 0
mov rax, qword [rsp + 0xf0]
mov rax, qword [rax]
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x30], rcx
mov rcx, qword [rsp + 0x78]
mov ecx, dword [rcx + 4]
mov dword [rsp + 0x28], ecx
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x20], rcx
mov r9d, SafeArrayGetDim
lea r8, [rsp + 0x58]
mov edx, 0x2d1400
mov rcx, qword [rsp + 0xf0]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov byte [rsp + 0x44], al
movzx eax, byte [rsp + 0x44]
test eax, eax
je 0x18007bd5b
lea rcx, [rsp + 0x88]
call fcn.1800016a9
nop
mov qword [rsp + 0x80], 0
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0xc], 0
jbe 0x18007bc6e
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0xc]
mov rcx, qword [rsp + 0x78]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xa8], rax
mov rcx, qword [rsp + 0xa8]
call fcn.180001bf4
movzx eax, al
test eax, eax
je 0x18007bc46
mov rcx, qword [rsp + 0xa8]
call fcn.1800d8570
test rax, rax
jbe 0x18007bc46
mov rdx, qword [rsp + 0xa8]
lea rcx, [rsp + 0x88]
call fcn.180033860
lea rcx, [rsp + 0x88]
call fcn.180034290
jmp 0x18007bc5a
lea rdx, str.Unknown_Vendor
lea rcx, [rsp + 0x88]
call fcn.180033970
lea rdx, [0x1801af2b4]
lea rcx, [rsp + 0x88]
call fcn.180033970
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x10], 0
jbe 0x18007bd0a
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + 0x10]
mov rcx, qword [rsp + 0x78]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xb0], rax
mov rcx, qword [rsp + 0xb0]
call fcn.180001bf4
movzx eax, al
test eax, eax
je 0x18007bce2
mov rcx, qword [rsp + 0xb0]
call fcn.1800d8570
test rax, rax
jbe 0x18007bce2
mov rdx, qword [rsp + 0xb0]
lea rcx, [rsp + 0x88]
call fcn.180033860
lea rcx, [rsp + 0x88]
call fcn.180034290
jmp 0x18007bcf6
lea rdx, str.Unknown_Product
lea rcx, [rsp + 0x88]
call fcn.180033970
lea rdx, [0x1801af2d4]
lea rcx, [rsp + 0x88]
call fcn.180033970
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 0x1c]
call fcn.18007b950
mov rdx, rax
lea rcx, [rsp + 0x88]
call fcn.180033970
lea rcx, [rsp + 0x88]
call fcn.18000122b
mov ecx, dword [rsp + 0x100]
mov r8, rax
mov edx, ecx
mov rcx, qword [rsp + 0xf8]
call fcn.1800d9840
nop
lea rcx, [rsp + 0x88]
call fcn.18000165e
movzx eax, byte [rsp + 0x44]
mov byte [rsp + 0xc1], al
lea rcx, [rsp + 0x68]
call fcn.18000186b
movzx eax, byte [rsp + 0xc1]
mov rcx, qword [rsp + 0xd0]
xor rcx, rsp
call fcn.1800d65d0
add rsp, 0xe8
ret