Function at 0x180014400
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.18006c280
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 0x18001445a
mov rax, qword [rcx]
jmp 0x18001445d
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, [0x1800d98f0]
lea rcx, [rbp + 0x130]
call fcn.18000e740
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 0x180014979
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 0x180014968
cmp dword [rbp - 0x20], 0xc
jne 0x180014968
mov r14, qword [rbp - 0x10]
xor edx, edx
mov r8d, 0x2710
lea rcx, [rbp + 0x230]
call fcn.180071390
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, recvfrom
lea r8, [rsp + 0x48]
mov edx, 0x2d1400
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x180014968
lea rcx, [rbp + 0x30]
call fcn.180005650
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 0x1800145c5
mov r8, r12
jmp 0x1800145da
or r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x1800145d0
lea rcx, [rbp - 0x48]
call fcn.1800051c0
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 0x18001460e
mov r8, r12
jmp 0x18001461c
or r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], 0
jne 0x180014612
lea rcx, [rbp - 0x68]
call fcn.1800051c0
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 0x180014651
mov r8, r12
jmp 0x18001465f
or r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], 0
jne 0x180014655
lea rcx, [rsp + 0x78]
call fcn.1800051c0
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 0x180014697
mov r8, r12
jmp 0x1800146aa
or r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x1800146a0
lea rcx, [rsp + 0x58]
call fcn.1800051c0
nop
lea rdx, str.DiskSize:
lea rcx, [rbp + 0x40]
call fcn.18000ca30
mov rcx, rax
mov rdx, r14
call fcn.1800150c0
lea rdx, str._VendorIdOffset:
lea rcx, [rbp + 0x40]
call fcn.18000ca30
mov rcx, rax
lea rdx, [rbp - 0x48]
call fcn.18000cc80
lea rdx, str._ProductIdOffset:
lea rcx, [rbp + 0x40]
call fcn.18000ca30
mov rcx, rax
lea rdx, [rbp - 0x68]
call fcn.18000cc80
lea rdx, str._ProductRevisionOffset:
lea rcx, [rbp + 0x40]
call fcn.18000ca30
mov rcx, rax
lea rdx, [rsp + 0x78]
call fcn.18000cc80
lea rdx, str._SerialNumberOffset:
lea rcx, [rbp + 0x40]
call fcn.18000ca30
mov rcx, rax
lea rdx, [rsp + 0x58]
call fcn.18000cc80
lea rdx, str._BusType:
lea rcx, [rbp + 0x40]
call fcn.18000ca30
mov rcx, rax
mov edx, dword [rbp + 0x24c]
call fcn.180015260
lea rdx, [rbp + 8]
lea rcx, [rbp + 0x30]
call fcn.180005540
mov rdx, rax
mov rcx, r15
call fcn.180005380
mov rax, qword [rbp + 0x20]
cmp rax, 0x10
jb 0x1800147c6
inc rax
mov rcx, qword [rbp + 8]
cmp rax, 0x1000
jb 0x1800147c1
test cl, 0x1f
jne 0x180014997
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x180014991
sub rcx, rax
cmp rcx, 8
jb 0x18001498b
cmp rcx, 0x27
ja 0x180014985
mov rcx, rax
call fcn.18006baac
mov bl, 1
mov rax, qword [rsp + 0x70]
cmp rax, 0x10
jb 0x180014818
inc rax
mov rcx, qword [rsp + 0x58]
cmp rax, 0x1000
jb 0x180014813
test cl, 0x1f
jne 0x1800149af
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x1800149a9
sub rcx, rax
cmp rcx, 8
jb 0x1800149a3
cmp rcx, 0x27
ja 0x18001499d
mov rcx, rax
call fcn.18006baac
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 0x18001487a
inc rax
mov rcx, qword [rsp + 0x78]
cmp rax, 0x1000
jb 0x180014875
test cl, 0x1f
jne 0x1800149c7
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x1800149c1
sub rcx, rax
cmp rcx, 8
jb 0x1800149bb
cmp rcx, 0x27
ja 0x1800149b5
mov rcx, rax
call fcn.18006baac
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 0x1800148d9
inc rax
mov rcx, qword [rbp - 0x68]
cmp rax, 0x1000
jb 0x1800148d4
test cl, 0x1f
jne 0x1800149df
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x1800149d9
sub rcx, rax
cmp rcx, 8
jb 0x1800149d3
cmp rcx, 0x27
ja 0x1800149cd
mov rcx, rax
call fcn.18006baac
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 0x180014937
inc rax
mov rcx, qword [rbp - 0x48]
cmp rax, 0x1000
jb 0x180014932
test cl, 0x1f
jne 0x1800149f7
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x1800149f1
sub rcx, rax
cmp rcx, 8
jb 0x1800149eb
cmp rcx, 0x27
ja 0x1800149e5
mov rcx, rax
call fcn.18006baac
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.180005570
nop
mov qword [rbp + 0xc8], r13
lea rcx, [rbp + 0xc8]
call fcn.18006e0fc
nop
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test bl, bl
jne 0x1800149fd
inc esi
cmp esi, 0x10
jge 0x1800149fd
jmp 0x180014472
call fcn.180072ffc
int3
call fcn.180072ffc
int3
call fcn.180072ffc
int3
call fcn.180072ffc
nop
call fcn.180072ffc
int3
call fcn.180072ffc
int3
call fcn.180072ffc
int3
call fcn.180072ffc
nop
call fcn.180072ffc
int3
call fcn.180072ffc
int3
call fcn.180072ffc
int3
call fcn.180072ffc
nop
call fcn.180072ffc
int3
call fcn.180072ffc
int3
call fcn.180072ffc
int3
call fcn.180072ffc
nop
call fcn.180072ffc
int3
call fcn.180072ffc
int3
call fcn.180072ffc
int3
call fcn.180072ffc
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