Function at 0x14007fd14
Capabilities:
Get disk information via ioctl

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa0
mov rax, qword [0x14016a508]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov r13, rdx
mov r12d, ecx
mov rcx, qword [0x14016a048]
lea r14, [0x14016a048]
cmp rcx, r14
je 0x14007fd86
test byte [rcx + 0x1c], 1
je 0x14007fd86
cmp byte [rcx + 0x19], 4
jb 0x14007fd86
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014d290]
mov edx, 0x67
call fcn.14000c0e8
mov rcx, qword [0x14016a048]
xor eax, eax
xorps xmm0, xmm0
xor r15d, r15d
mov qword [rbp + 0x1f], rax
mov edi, r15d
mov qword [rbp - 0x21], r15
mov dword [rbp - 0x25], r15d
movups xmmword [rbp - 0x11], xmm0
mov dword [rbp + 0x27], eax
movups xmmword [rbp - 1], xmm0
movups xmmword [rbp + 0xf], xmm0
cmp rcx, r14
je 0x14007fdce
test byte [rcx + 0x1c], 1
je 0x14007fdce
cmp byte [rcx + 0x19], 4
jb 0x14007fdce
mov rcx, qword [rcx + 0x10]
mov r9d, r12d
mov qword [rsp + 0x20], r13
call fcn.140080618
mov r9d, r12d
lea r8, str..PhysicalDrive_d
mov edx, 0x1e
lea rcx, [rbp - 0x11]
call fcn.1400141e0
mov ebx, eax
test eax, eax
jns 0x14007fe2d
mov rcx, qword [0x14016a048]
cmp rcx, r14
je 0x1400802e3
test byte [rcx + 0x1c], 1
je 0x1400802bd
cmp byte [rcx + 0x19], 2
jb 0x1400802bd
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014d290]
mov edx, 0x69
mov r9d, eax
call fcn.14000c114
jmp 0x1400802b6
mov qword [rsp + 0x30], r15
lea rcx, [rbp - 0x11]
mov r8d, 3
mov dword [rsp + 0x28], 0x2000000
xor r9d, r9d
mov dword [rsp + 0x20], r8d
mov edx, 0xc0000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
nop dword [rax + rax]
mov qword [rbp - 0x19], rax
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x14007fecb
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
jle 0x14007fe85
movzx ebx, ax
or ebx, 0x80070000
mov rcx, qword [0x14016a048]
cmp rcx, r14
je 0x1400802e3
test byte [rcx + 0x1c], 1
je 0x1400802bd
cmp byte [rcx + 0x19], 2
jb 0x1400802bd
mov rcx, qword [rcx + 0x10]
lea r9, [rbp - 0x11]
mov edx, 0x6a
mov dword [rsp + 0x20], ebx
lea r8, [0x14014d290]
call fcn.140014f78
jmp 0x1400802b6
mov r14d, 0x4830
mov dword [rbp - 0x29], r14d
test rdi, rdi
je 0x14007feed
mov rcx, rdi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov qword [rbp - 0x21], r15
mov r8d, r14d
lea rcx, [rbp - 0x21]
mov edx, 1
call fcn.14000d37c
mov rdi, qword [rbp - 0x21]
mov ebx, eax
test eax, eax
js 0x140080313
mov qword [rsp + 0x38], r15
lea rax, [rbp - 0x25]
mov qword [rsp + 0x30], rax
xor r9d, r9d
mov dword [rsp + 0x28], r14d
xor r8d, r8d
mov edx, 0x70050
mov qword [rsp + 0x20], rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
nop dword [rax + rax]
test eax, eax
jne 0x14007ffaa
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
cmp eax, 0x7a
je 0x14007ff5c
cmp eax, 0xea
jne 0x14007ff68
add r14d, 0x2400
jmp 0x14007fed1
test eax, eax
jle 0x14007ff75
movzx ebx, ax
or ebx, 0x80070000
mov rcx, qword [0x14016a048]
lea r14, [0x14016a048]
cmp rcx, r14
je 0x140080293
test byte [rcx + 0x1c], 1
je 0x140080293
cmp byte [rcx + 0x19], 2
jb 0x140080293
mov edx, 0x6c
jmp 0x14008022f
cmp r14d, 0x30
jb 0x140080244
lea ecx, [r14 - 0x30]
movabs rax, 0xe38e38e38e38e38f
mul rcx
mov ebx, r15d
shr rdx, 7
cmp dword [rdi + 4], edx
jbe 0x14008000f
mov rcx, qword [0x14016a048]
lea r14, [0x14016a048]
cmp rcx, r14
je 0x140080005
test byte [rcx + 0x1c], 1
je 0x140080005
cmp byte [rcx + 0x19], 2
jb 0x140080005
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014d290]
mov edx, 0x6e
call fcn.14000c0e8
mov ebx, 0x8000ffff
jmp 0x140080293
cmp dword [rdi + 4], ebx
jbe 0x1400801b3
lea r14, [0x14016a048]
mov eax, r15d
lea rsi, [rax + rax*8]
add rsi, rsi
mov ecx, dword [rdi + rsi*8 + 0x30]
test ecx, ecx
je 0x140080117
cmp ecx, 1
je 0x140080057
lea r8, [0x1401486f4]
mov edx, 0x76c
lea rcx, str.base_stor_blbengine_service_bmr.cpp
call fcn.140088f60
jmp 0x14008019e
cmp qword [rdi + rsi*8 + 0x38], r13
jne 0x1400800af
mov byte [rdi + rsi*8 + 0x4c], 1
mov rcx, qword [0x14016a048]
cmp rcx, r14
je 0x14008009d
test byte [rcx + 0x1c], 1
je 0x14008009d
cmp byte [rcx + 0x19], 4
jb 0x14008009d
mov eax, dword [rdi + rsi*8 + 0x48]
mov edx, 0x71
mov rcx, qword [rcx + 0x10]
mov r9d, r12d
mov qword [rsp + 0x28], 1
mov dword [rsp + 0x20], eax
call fcn.1400805b0
movups xmm0, xmmword [0x14014db28]
movdqu xmmword [rdi + rsi*8 + 0x50], xmm0
jmp 0x14008019e
mov rax, qword [rdi + rsi*8 + 0x50]
sub rax, qword [0x14014db28]
jne 0x1400800c9
mov rax, qword [rdi + rsi*8 + 0x58]
sub rax, qword [0x14014db30]
test rax, rax
jne 0x14008019e
mov rcx, qword [0x14016a048]
cmp rcx, r14
je 0x14008019e
test byte [rcx + 0x1c], 1
je 0x14008019e
cmp byte [rcx + 0x19], 4
jb 0x14008019e
and qword [rsp + 0x28], rbx
lea edx, [rax + 0x72]
mov eax, dword [rdi + rsi*8 + 0x48]
mov r9d, r12d
mov rcx, qword [rcx + 0x10]
mov dword [rsp + 0x20], eax
call fcn.1400805b0
jmp 0x14008019e
mov byte [rdi + rsi*8 + 0x4c], 1
cmp qword [rdi + rsi*8 + 0x38], r13
jne 0x140080164
mov rcx, qword [0x14016a048]
cmp rcx, r14
je 0x14008015d
test byte [rcx + 0x1c], 1
je 0x14008015d
cmp byte [rcx + 0x19], 4
jb 0x14008015d
mov eax, dword [rdi + rsi*8 + 0x48]
mov edx, 0x6f
mov rcx, qword [rcx + 0x10]
mov r9d, r12d
mov qword [rsp + 0x28], 1
mov dword [rsp + 0x20], eax
call fcn.1400805b0
mov byte [rdi + rsi*8 + 0x51], 1
jmp 0x14008019e
mov rcx, qword [0x14016a048]
cmp rcx, r14
je 0x14008019a
test byte [rcx + 0x1c], 1
je 0x14008019a
cmp byte [rcx + 0x19], 4
jb 0x14008019a
and qword [rsp + 0x28], rbx
mov edx, 0x70
mov eax, dword [rdi + rsi*8 + 0x48]
mov r9d, r12d
mov rcx, qword [rcx + 0x10]
mov dword [rsp + 0x20], eax
call fcn.1400805b0
mov byte [rdi + rsi*8 + 0x51], bl
inc r15d
cmp r15d, dword [rdi + 4]
jb 0x14008001f
mov r14d, dword [rbp - 0x29]
mov rsi, qword [rbp - 0x19]
xor r15d, r15d
lea rax, [rbp - 0x25]
mov qword [rsp + 0x38], r15
mov r9d, r14d
mov qword [rsp + 0x30], rax
mov r8, rdi
mov dword [rsp + 0x28], r15d
mov edx, 0x7c054
mov rcx, rsi
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
nop dword [rax + rax]
test eax, eax
jne 0x14008028c
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
jle 0x14008020b
movzx ebx, ax
or ebx, 0x80070000
mov rcx, qword [0x14016a048]
lea r14, [0x14016a048]
cmp rcx, r14
je 0x140080293
test byte [rcx + 0x1c], 1
je 0x140080293
cmp byte [rcx + 0x19], 2
jb 0x140080293
mov edx, 0x73
mov r9d, ebx
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014d290]
call fcn.14000c114
jmp 0x140080293
mov ebx, 0x80070216
mov rcx, qword [0x14016a048]
lea rax, [0x14016a048]
cmp rcx, rax
je 0x14008028c
test byte [rcx + 0x1c], 1
je 0x14008028c
cmp byte [rcx + 0x19], 2
jb 0x14008028c
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014d290]
mov edx, 0x6d
mov dword [rsp + 0x28], ebx
mov r9d, r14d
mov dword [rsp + 0x20], 0x30
call fcn.140080554
lea r14, [0x14016a048]
test rdi, rdi
je 0x1400802a7
mov rcx, rdi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop dword [rax + rax]
mov rcx, qword [0x14016a048]
cmp rcx, r14
je 0x1400802e3
test byte [rcx + 0x1c], 1
je 0x1400802e3
cmp byte [rcx + 0x19], 4
jb 0x1400802e3
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014d290]
mov edx, 0x74
call fcn.14000c0e8
mov eax, ebx
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.1400071e0
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov rcx, qword [0x14016a048]
lea r14, [0x14016a048]
cmp rcx, r14
je 0x140080293
test byte [rcx + 0x1c], 1
je 0x140080293
cmp byte [rcx + 0x19], 2
jb 0x140080293
mov edx, 0x6b
mov r9d, eax
jmp 0x140080232