Function at 0x18001caa0
Capabilities:
Get storage device properties

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2940]
mov eax, 0x2a40
call fcn.18005c7d0
sub rsp, rax
mov qword [rbp], 0xfffffffffffffffe
mov qword [rsp + 0x2a90], rbx
mov r15, rcx
xor r12d, r12d
mov dword [rsp + 0x40], r12d
xor bl, bl
mov qword [rcx + 0x18], reloc.WS2_32.dll_ntohs
mov qword [rcx + 0x10], r12
cmp qword [rcx + 0x18], 0x10
jb 0x18001cafa
mov rax, qword [rcx]
jmp 0x18001cafd
mov rax, r15
mov byte [rax], r12b
mov dword [rsp + 0x40], 1
mov esi, r12d
lea r13, vtable.std::ios_base.0
mov dword [rbp + 0x2988], r12d
mov r8d, esi
lea rdx, str..PhysicalDrive_d
lea rcx, [rbp + 0x130]
call fcn.180011020
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 3]
lea rcx, [rbp + 0x130]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x18001d019
xor eax, eax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], rax
mov qword [rsp + 0x38], r12
lea rax, [rbp + 0x2988]
mov qword [rsp + 0x30], rax
mov dword [rsp + Ordinal_41], 0x28
lea rax, [rbp - 0x28]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x700a0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x18001d008
cmp dword [rbp - 0x20], 0xc
jne 0x18001d008
mov r14, qword [rbp - 0x10]
xor edx, edx
mov r8d, 0x2710
lea rcx, [rbp + 0x230]
call fcn.180061460
xor eax, eax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x4c], rax
mov dword [rsp + 0x48], r12d
mov qword [rsp + 0x38], r12
lea rax, [rbp + 0x2988]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x2710
lea rax, [rbp + 0x230]
mov qword [rsp + 0x20], rax
mov r9d, ntohs
lea r8, [rsp + 0x48]
mov edx, 0x2d1400
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x18001d008
lea rcx, [rbp + 0x30]
call fcn.1800098c0
nop
mov eax, dword [rbp + 0x23c]
lea rdx, [rbp + 0x230]
add rdx, rax
mov qword [rbp - 0x30], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x38], r12
mov byte [rbp - 0x48], 0
cmp byte [rdx], 0
jne 0x18001cc65
mov r8, r12
jmp 0x18001cc7a
or r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x18001cc70
lea rcx, [rbp - 0x48]
call fcn.180003920
nop
mov eax, dword [rbp + 0x240]
lea rdx, [rbp + 0x230]
add rdx, rax
mov qword [rbp - 0x50], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x58], r12
mov byte [rbp - 0x68], 0
cmp byte [rdx], 0
jne 0x18001ccae
mov r8, r12
jmp 0x18001ccbc
or r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], 0
jne 0x18001ccb2
lea rcx, [rbp - 0x68]
call fcn.180003920
nop
mov eax, dword [rbp + 0x244]
lea rdx, [rbp + 0x230]
add rdx, rax
mov qword [rbp - 0x70], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x78], r12
mov byte [rsp + 0x78], 0
cmp byte [rdx], 0
jne 0x18001ccf1
mov r8, r12
jmp 0x18001ccff
or r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], 0
jne 0x18001ccf5
lea rcx, [rsp + 0x78]
call fcn.180003920
nop
mov eax, dword [rbp + 0x248]
lea rdx, [rbp + 0x230]
add rdx, rax
mov qword [rsp + 0x70], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x68], r12
mov byte [rsp + 0x58], 0
cmp byte [rdx], 0
jne 0x18001cd37
mov r8, r12
jmp 0x18001cd4a
or r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x18001cd40
lea rcx, [rsp + 0x58]
call fcn.180003920
nop
lea rdx, str.DiskSize:
lea rcx, [rbp + 0x40]
call fcn.18000eb40
mov rcx, rax
mov rdx, r14
call fcn.1800169b0
lea rdx, str._VendorIdOffset:
lea rcx, [rbp + 0x40]
call fcn.18000eb40
mov rcx, rax
lea rdx, [rbp - 0x48]
call fcn.18000ed90
lea rdx, str._ProductIdOffset:
lea rcx, [rbp + 0x40]
call fcn.18000eb40
mov rcx, rax
lea rdx, [rbp - 0x68]
call fcn.18000ed90
lea rdx, str._ProductRevisionOffset:
lea rcx, [rbp + 0x40]
call fcn.18000eb40
mov rcx, rax
lea rdx, [rsp + 0x78]
call fcn.18000ed90
lea rdx, str._SerialNumberOffset:
lea rcx, [rbp + 0x40]
call fcn.18000eb40
mov rcx, rax
lea rdx, [rsp + 0x58]
call fcn.18000ed90
lea rdx, str._BusType:
lea rcx, [rbp + 0x40]
call fcn.18000eb40
mov rcx, rax
mov edx, dword [rbp + 0x24c]
call fcn.18001d6d0
lea rdx, [rbp + 8]
lea rcx, [rbp + 0x30]
call fcn.1800097b0
mov rdx, rax
mov rcx, r15
call fcn.180002050
mov rax, qword [rbp + 0x20]
cmp rax, 0x10
jb 0x18001ce66
inc rax
mov rcx, qword [rbp + 8]
cmp rax, 0x1000
jb 0x18001ce61
test cl, 0x1f
jne 0x18001d037
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x18001d031
sub rcx, rax
cmp rcx, 8
jb 0x18001d02b
cmp rcx, 0x27
ja 0x18001d025
mov rcx, rax
call fcn.18005c288
mov bl, 1
mov rax, qword [rsp + 0x70]
cmp rax, 0x10
jb 0x18001ceb8
inc rax
mov rcx, qword [rsp + 0x58]
cmp rax, 0x1000
jb 0x18001ceb3
test cl, 0x1f
jne 0x18001d04f
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x18001d049
sub rcx, rax
cmp rcx, 8
jb 0x18001d043
cmp rcx, 0x27
ja 0x18001d03d
mov rcx, rax
call fcn.18005c288
mov qword [rsp + 0x70], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x68], r12
mov byte [rsp + 0x58], 0
mov rax, qword [rbp - 0x70]
cmp rax, 0x10
jb 0x18001cf1a
inc rax
mov rcx, qword [rsp + 0x78]
cmp rax, 0x1000
jb 0x18001cf15
test cl, 0x1f
jne 0x18001d067
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x18001d061
sub rcx, rax
cmp rcx, 8
jb 0x18001d05b
cmp rcx, 0x27
ja 0x18001d055
mov rcx, rax
call fcn.18005c288
mov qword [rbp - 0x70], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x78], r12
mov byte [rsp + 0x78], 0
mov rax, qword [rbp - 0x50]
cmp rax, 0x10
jb 0x18001cf79
inc rax
mov rcx, qword [rbp - 0x68]
cmp rax, 0x1000
jb 0x18001cf74
test cl, 0x1f
jne 0x18001d07f
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x18001d079
sub rcx, rax
cmp rcx, 8
jb 0x18001d073
cmp rcx, 0x27
ja 0x18001d06d
mov rcx, rax
call fcn.18005c288
mov qword [rbp - 0x50], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x58], r12
mov byte [rbp - 0x68], 0
mov rax, qword [rbp - 0x30]
cmp rax, 0x10
jb 0x18001cfd7
inc rax
mov rcx, qword [rbp - 0x48]
cmp rax, 0x1000
jb 0x18001cfd2
test cl, 0x1f
jne 0x18001d097
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x18001d091
sub rcx, rax
cmp rcx, 8
jb 0x18001d08b
cmp rcx, 0x27
ja 0x18001d085
mov rcx, rax
call fcn.18005c288
mov qword [rbp - 0x30], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x38], r12
mov byte [rbp - 0x48], 0
lea rcx, [rbp + 0xc8]
call fcn.1800097e0
nop
mov qword [rbp + 0xc8], r13
lea rcx, [rbp + 0xc8]
call fcn.180082b28
nop
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test bl, bl
jne 0x18001d09d
inc esi
cmp esi, 0x10
jge 0x18001d09d
jmp 0x18001cb12
call fcn.180063584
int3
call fcn.180063584
int3
call fcn.180063584
int3
call fcn.180063584
nop
call fcn.180063584
int3
call fcn.180063584
int3
call fcn.180063584
int3
call fcn.180063584
nop
call fcn.180063584
int3
call fcn.180063584
int3
call fcn.180063584
int3
call fcn.180063584
nop
call fcn.180063584
int3
call fcn.180063584
int3
call fcn.180063584
int3
call fcn.180063584
nop
call fcn.180063584
int3
call fcn.180063584
int3
call fcn.180063584
int3
call fcn.180063584
nop
mov rax, r15
mov rbx, qword [rsp + 0x2a90]
add rsp, 0x2a40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret