Function at 0x14008a230
Capabilities:
Get disk information via ioctl

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
xor eax, eax
mov rbp, rcx
cmp rcx, rax
mov ebx, eax
mov byte [rsp + 0x108], al
setge bl
mov byte [rsp + 0x40], al
mov word [rsp + 0x42], ax
lea esi, [rax + 1]
cmp r8, rax
je 0x14008a2b7
cmp word [r8], ax
je 0x14008a2b7
lea eax, [rsi + 0x39]
mov byte [rsp + 0x108], sil
cmp ax, word [r8 + 2]
jne 0x14008a29a
movzx eax, word [r8]
mov word [rsp + 0x42], ax
jmp 0x14008a2b7
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x100]
mov r8d, esi
call fcn.140074c3c
mov byte [rsp + 0x40], 2
lea rcx, [rsp + 0x78]
mov edx, 0x20c84c
call fcn.1400613a8
mov rdi, qword [rsp + 0x78]
xor r10d, r10d
lea r15, [rdi + 0x200010]
movsxd rax, ebx
mov qword [rsp + 0x60], r10
lea r12, [r15 + 0xc000]
mov qword [rsp + 0x68], r10
mov dword [rsp + 0x70], r10d
lea r13, [r12 + 0x820]
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x50], r13
lea rdx, str..PhysicalDrive_d
mov r8d, ebp
mov rcx, r12
mov qword [rsp + 0x48], r10
call qword [sym.imp.USER32.dll_wsprintfW]
and qword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0x22000000
lea rcx, [rsp + 0x48]
mov r9d, 3
mov r8d, 0x80000000
mov rdx, r12
mov dword [rsp + 0x28], 3
and qword [rsp + 0x20], 0
call fcn.1400037bc
mov rbx, qword [rsp + 0x48]
xor r10d, r10d
cmp rbx, r10
je 0x14008a683
mov qword [rsp + 0x38], r10
lea rax, [rsp + 0x70]
xor r9d, r9d
mov qword [rsp + 0x30], rax
xor r8d, r8d
mov edx, 0x2d1080
mov rcx, rbx
mov dword [rsp + 0x28], 0xc
mov qword [rsp + 0x20], r13
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x14008a39e
and dword [r13], eax
mov edx, 0x200
mov rcx, rbx
call fcn.14005d66c
and dword [rsp + 0x100], 0
lea r8, [rsp + 0x100]
mov rdx, rdi
mov rcx, rbx
movsxd r14, eax
call fcn.14005dc54
xor r10d, r10d
mov rbp, rax
cmp rax, r10
je 0x14008a67b
cmp dword [rax], esi
sete r12b
cmp r12b, r10b
je 0x14008a409
mov r8d, dword [rax + 0x28]
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], r10
lea rcx, [rsp + 0x48]
mov r9d, r14d
mov rdx, r15
mov qword [rsp + 0x20], r10
call fcn.140067650
xor r10d, r10d
cmp dword [rsp + 0x100], r10d
lea rdx, [rbp + 0x30]
mov r13, r10
mov r15, r10
mov rbp, r10
mov r11d, r10d
mov qword [rsp + 0x48], rdx
jle 0x14008a66a
lea r9, [rdx + 8]
cmp r12b, r10b
jne 0x14008a442
cmp byte [r9 + 0x18], 0x42
je 0x14008a4d9
jmp 0x14008a4b4
movsxd rax, r11d
mov r8d, 0x10
lea rcx, [rax + rax*8]
add rcx, rcx
lea r10, [rdx + rcx*8 + 0x20]
lea rdx, [0x14011ab80]
mov rcx, r10
call fcn.140058f2c
test eax, eax
jne 0x14008a47d
mov rax, qword [r9]
mov rbp, qword [r9 + 8]
sub rbp, r14
lea r13, [r14 + rax]
xor r10d, r10d
jmp 0x14008a4a5
lea rdx, [0x14011ab90]
mov r8d, 0x10
mov rcx, r10
call fcn.140058f2c
xor r10d, r10d
cmp eax, r10d
jne 0x14008a4a5
mov rax, qword [r9]
cqo
idiv r14
mov r15, rax
cmp r13, r10
je 0x14008a4af
cmp r15, r10
jne 0x14008a4d1
mov rdx, qword [rsp + 0x48]
add r11d, esi
add r9, 0x90
cmp r11d, dword [rsp + 0x100]
jge 0x14008a66a
jmp 0x14008a430
mov rdx, qword [rsp + 0x48]
mov qword [rdx], rbp
movsx r8d, r12b
mov dword [rsp + 0x28], r10d
mov r9, r13
and r8d, esi
mov rcx, rbx
mov qword [rsp + 0x20], r15
or r8d, r14d
call fcn.140067a54
xor r10d, r10d
cmp eax, r10d
mov r15, rax
jle 0x14008a66a
mov r14, qword [rsp + 0x68]
mov rbp, qword [rsp + 0xf8]
mov ecx, eax
imul ecx, ecx, 0xb4
movsxd rcx, ecx
lea rdx, [rcx + r14 + 0x80]
mov rcx, rbp
call fcn.140061424
mov r11, qword [rbp]
xor r10d, r10d
cmp r15d, r10d
lea rax, [r14 + r11]
mov r13d, r10d
mov qword [rsp + 0x100], rax
mov r12, rax
jle 0x14008a65f
mov rdx, qword [rsp + 0x48]
lea rbp, [rdx + 0x40]
cmp byte [rsp + 0x108], r10b
je 0x14008a5b0
mov ax, word [rsp + 0x42]
cmp ax, r10w
je 0x14008a575
cmp ax, word [rbp]
je 0x14008a5b0
cmp byte [rsp + 0x40], r10b
je 0x14008a63f
movsxd rax, r13d
mov r8d, 0x10
lea rcx, [rax + rax*8]
add rcx, rcx
lea rdx, [rdx + rcx*8 + 0x30]
lea rcx, [rsp + 0x88]
call fcn.140058f2c
mov rdx, qword [rsp + 0x48]
cmp eax, r10d
jne 0x14008a63f
movzx r14d, byte [rbp - 0x20]
cmp word [rbp], r10w
je 0x14008a5c2
movzx eax, word [rbp]
jmp 0x14008a5c7
mov eax, 0x2a
mov dword [r12], eax
movsxd rax, r13d
mov r8d, 0x10
lea rcx, [rax + rax*8]
add rcx, rcx
lea rdx, [rdx + rcx*8 + 0x30]
lea rcx, [r12 + 4]
call fcn.14001d04c
mov rax, qword [rsp + 0xf0]
add qword [rsp + 0x60], rsi
mov dword [r12 + 0x14], eax
mov eax, dword [rbp - 0x28]
xor r10d, r10d
mov dword [r12 + 0x18], eax
mov rax, qword [rsp + 0x50]
add r12, 0x34
mov eax, dword [rax]
mov dword [r12 - 0x18], eax
mov dword [r12 - 0x14], r14d
mov rax, qword [rbp - 0x38]
mov qword [r12 - 0x10], rax
mov rax, qword [rbp - 0x30]
mov qword [r12 - 8], rax
cmp word [rsp + 0x42], r10w
jne 0x14008a6c5
mov rdx, qword [rsp + 0x48]
add r13d, esi
add rbp, 0x90
cmp r13d, r15d
jl 0x14008a55a
mov rax, qword [rsp + 0x100]
mov r14, qword [rsp + 0x68]
sub r12, rax
add r14, r12
mov qword [rsp + 0x68], r14
mov r13, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
lea r15, [rdi + 0x200010]
mov rbp, qword [rsp + 0xf0]
cmp qword [rsp + 0x80], r10
jne 0x14008a6d6
add rbp, rsi
cmp rbp, 0x3e80
mov qword [rsp + 0xf0], rbp
jge 0x14008a6d6
cmp rbx, r10
je 0x14008a308
cmp rbx, 0xffffffffffffffff
je 0x14008a308
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor r10d, r10d
jmp 0x14008a308
cmp rbx, 0xffffffffffffffff
je 0x14008a6ef
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14008a6ef
cmp rbx, r10
je 0x14008a6ea
cmp rbx, 0xffffffffffffffff
je 0x14008a6ea
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rsi, qword [rsp + 0x60]
lea rcx, [rsp + 0x78]
call fcn.140058efc
mov rax, rsi
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret