Function at 0x180032ab0
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.180082070
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 0x180032b0a
mov rax, qword [rcx]
jmp 0x180032b0d
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.180023580
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 0x180033029
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 + 0x28], 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 0x180033018
cmp dword [rbp - 0x20], 0xc
jne 0x180033018
mov r14, qword [rbp - 0x10]
xor edx, edx
mov r8d, 0x2710
lea rcx, [rbp + 0x230]
call fcn.180084ad0
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, recv
lea r8, [rsp + 0x48]
mov edx, 0x2d1400
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x180033018
lea rcx, [rbp + 0x30]
call fcn.18000ae80
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 0x180032c75
mov r8, r12
jmp 0x180032c8a
or r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x180032c80
lea rcx, [rbp - 0x48]
call fcn.180003900
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 0x180032cbe
mov r8, r12
jmp 0x180032ccc
or r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], 0
jne 0x180032cc2
lea rcx, [rbp - 0x68]
call fcn.180003900
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 0x180032d01
mov r8, r12
jmp 0x180032d0f
or r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], 0
jne 0x180032d05
lea rcx, [rsp + 0x78]
call fcn.180003900
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 0x180032d47
mov r8, r12
jmp 0x180032d5a
or r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x180032d50
lea rcx, [rsp + 0x58]
call fcn.180003900
nop
lea rdx, str.DiskSize:
lea rcx, [rbp + 0x40]
call fcn.1800092d0
mov rcx, rax
mov rdx, r14
call fcn.18000b5e0
lea rdx, [0x1800d7f18]
lea rcx, [rbp + 0x40]
call fcn.1800092d0
mov rcx, rax
lea rdx, [rbp - 0x48]
call fcn.18001c2a0
lea rdx, str._ProductIdOffset:
lea rcx, [rbp + 0x40]
call fcn.1800092d0
mov rcx, rax
lea rdx, [rbp - 0x68]
call fcn.18001c2a0
lea rdx, str._ProductRevisionOffset:
lea rcx, [rbp + 0x40]
call fcn.1800092d0
mov rcx, rax
lea rdx, [rsp + 0x78]
call fcn.18001c2a0
lea rdx, str._SerialNumberOffset:
lea rcx, [rbp + 0x40]
call fcn.1800092d0
mov rcx, rax
lea rdx, [rsp + 0x58]
call fcn.18001c2a0
lea rdx, str._BusType:
lea rcx, [rbp + 0x40]
call fcn.1800092d0
mov rcx, rax
mov edx, dword [rbp + 0x24c]
call fcn.18002bc60
lea rdx, [rbp + 8]
lea rcx, [rbp + 0x30]
call fcn.18000ad70
mov rdx, rax
mov rcx, r15
call fcn.180006860
mov rax, qword [rbp + 0x20]
cmp rax, 0x10
jb 0x180032e76
inc rax
mov rcx, qword [rbp + 8]
cmp rax, 0x1000
jb 0x180032e71
test cl, 0x1f
jne 0x180033047
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x180033041
sub rcx, rax
cmp rcx, 8
jb 0x18003303b
cmp rcx, 0x27
ja 0x180033035
mov rcx, rax
call fcn.180081458
mov bl, 1
mov rax, qword [rsp + 0x70]
cmp rax, 0x10
jb 0x180032ec8
inc rax
mov rcx, qword [rsp + 0x58]
cmp rax, 0x1000
jb 0x180032ec3
test cl, 0x1f
jne 0x18003305f
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x180033059
sub rcx, rax
cmp rcx, 8
jb 0x180033053
cmp rcx, 0x27
ja 0x18003304d
mov rcx, rax
call fcn.180081458
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 0x180032f2a
inc rax
mov rcx, qword [rsp + 0x78]
cmp rax, 0x1000
jb 0x180032f25
test cl, 0x1f
jne 0x180033077
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x180033071
sub rcx, rax
cmp rcx, 8
jb 0x18003306b
cmp rcx, 0x27
ja 0x180033065
mov rcx, rax
call fcn.180081458
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 0x180032f89
inc rax
mov rcx, qword [rbp - 0x68]
cmp rax, 0x1000
jb 0x180032f84
test cl, 0x1f
jne 0x18003308f
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x180033089
sub rcx, rax
cmp rcx, 8
jb 0x180033083
cmp rcx, 0x27
ja 0x18003307d
mov rcx, rax
call fcn.180081458
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 0x180032fe7
inc rax
mov rcx, qword [rbp - 0x48]
cmp rax, 0x1000
jb 0x180032fe2
test cl, 0x1f
jne 0x1800330a7
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x1800330a1
sub rcx, rax
cmp rcx, 8
jb 0x18003309b
cmp rcx, 0x27
ja 0x180033095
mov rcx, rax
call fcn.180081458
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.18000ada0
nop
mov qword [rbp + 0xc8], r13
lea rcx, [rbp + 0xc8]
call fcn.18007eaa4
nop
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test bl, bl
jne 0x1800330ad
inc esi
cmp esi, 0x10
jge 0x1800330ad
jmp 0x180032b22
call fcn.180086214
int3
call fcn.180086214
int3
call fcn.180086214
int3
call fcn.180086214
nop
call fcn.180086214
int3
call fcn.180086214
int3
call fcn.180086214
int3
call fcn.180086214
nop
call fcn.180086214
int3
call fcn.180086214
int3
call fcn.180086214
int3
call fcn.180086214
nop
call fcn.180086214
int3
call fcn.180086214
int3
call fcn.180086214
int3
call fcn.180086214
nop
call fcn.180086214
int3
call fcn.180086214
int3
call fcn.180086214
int3
call fcn.180086214
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