Function at 0x14006d95c
Capabilities:
Get disk information via ioctl
Get storage device properties

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x310
mov rax, qword [0x14028b7c8]
xor rax, rsp
mov qword [rsp + 0x300], rax
mov rax, qword [rcx + 8]
xor edi, edi
mov r15, rcx
mov rsi, qword [rax + 0x38]
mov qword [rsp + 0x70], rcx
cmp rsi, rdi
jne 0x14006d9ab
xor eax, eax
jmp 0x14006de86
mov rax, qword [rsi + 0x128]
cmp rax, rdi
je 0x14006de81
cmp qword [rsi + 0x110], rdi
je 0x14006de81
cmp qword [rsi + 0x108], rdi
je 0x14006de81
cmp qword [rsi + 0x118], rdi
je 0x14006de81
cmp qword [rsi + 0x120], rdi
je 0x14006de81
cmp qword [rsi + 0x138], rdi
je 0x14006de81
cmp qword [rsi + 0x130], rdi
je 0x14006de81
cmp qword [rsi + 0x170], rdi
je 0x14006de81
cmp qword [rsi + 0x160], rdi
je 0x14006de81
cmp qword [rsi + 0x168], rdi
je 0x14006de81
cmp qword [rsi + 0x178], rdi
je 0x14006de81
lea rcx, [0x1401d4210]
mov r9d, 0x12
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x44], edi
mov r13, rdi
call rax
mov r12, rax
cmp rax, 0xffffffffffffffff
je 0x14006de81
mov eax, 0x20
mov r14d, edi
xor r9d, r9d
mov dword [rsp + 0xc0], eax
mov dword [rsp + 0xe0], eax
jmp 0x14006de4c
lea rax, [rsp + 0x48]
lea rdx, [rsp + 0xc0]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rax
call qword [rsi + 0x118]
mov ecx, dword [rsp + 0x48]
call fcn.140158508
lea rdx, [rsp + 0xc0]
mov rcx, r12
mov dword [rax], 8
mov r9d, dword [rsp + 0x48]
mov rbx, rax
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0xe0]
mov r8, rbx
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
call qword [rsi + 0x118]
cmp eax, edi
je 0x14006de3e
and qword [rsp + 0x30], 0
and dword [rsp + 0x28], 0
xor r9d, r9d
lea rdi, [rbx + 4]
lea r8d, [r9 + 3]
mov edx, 0xc0000000
mov rcx, rdi
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbp, rax
mov qword [rsp + 0x68], rax
cmp rax, 0xffffffffffffffff
je 0x14006de3c
xor eax, eax
lea r8, [rsp + 0x90]
mov r9d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x90], eax
mov dword [rsp + 0x94], eax
lea rax, [rsp + 0x60]
mov edx, 0x2d1400
mov rcx, rbp
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x100]
mov dword [rsp + 0x28], 0x200
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
and qword [rsp + 0x38], 0
lea rax, [rsp + 0x60]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x80]
mov edx, 0x2d1080
mov rcx, rbp
mov dword [rsp + 0x28], reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
or edx, 0xffffffff
mov rcx, r15
test eax, eax
cmovne edx, dword [rsp + 0x84]
call fcn.14006d264
mov r15, rax
test rax, rax
je 0x14006de2a
cmp qword [rax + 0x20], 0
jne 0x14006dc1e
mov rcx, rdi
call fcn.140159970
mov ecx, 0x200
cmp eax, ecx
jge 0x14006dbf9
mov eax, ecx
jmp 0x14006dc01
mov rcx, rdi
call fcn.140159970
movsxd rbx, eax
mov rcx, rbx
call fcn.14013f170
mov r8, rdi
mov rdx, rbx
mov rcx, rax
mov qword [r15 + 0x20], rax
call fcn.140158644
lea rax, [rsp + 0x40]
lea rdx, [rsp + 0xe0]
xor edi, edi
xor r9d, r9d
mov r8, r13
mov rcx, r12
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x40], edi
call qword [rsi + 0x120]
mov ecx, dword [rsp + 0x40]
call fcn.140158508
mov r9d, dword [rsp + 0x40]
lea rdx, [rsp + 0xe0]
mov r13, rax
lea rax, [rsp + 0x40]
mov rcx, r12
mov r8, r13
mov qword [rsp + 0x20], rax
call qword [rsi + 0x120]
cmp eax, edi
je 0x14006de1b
lea rcx, [rsp + 0x64]
xor r8d, r8d
mov rdx, r13
call qword [rsi + 0x170]
cmp eax, edi
jne 0x14006de1b
mov edx, dword [rsp + 0x64]
lea rcx, [rsp + 0x50]
xor r8d, r8d
call qword [rsi + 0x160]
cmp eax, edi
jne 0x14006de1b
mov edx, dword [rsp + 0x50]
lea rcx, [rsp + 0x44]
xor r8d, r8d
call qword [rsi + 0x168]
cmp eax, edi
jne 0x14006de1b
mov r8d, dword [rsp + 0x44]
inc r8d
mov dword [rsp + 0x44], r8d
cmp r8d, dword [rsp + 0x40]
jbe 0x14006dcf6
mov rcx, r13
call fcn.140158604
mov ecx, dword [rsp + 0x44]
call fcn.140158508
mov r8d, dword [rsp + 0x44]
mov r13, rax
mov ecx, dword [rsp + 0x50]
xor r9d, r9d
mov rdx, r13
call qword [rsi + 0x178]
cmp eax, edi
jne 0x14006de1b
lea rcx, [0x1401d4220]
mov r9d, 0x12
xor r8d, r8d
mov rdx, r13
call qword [rsi + 0x128]
mov rbp, rax
cmp rax, 0xffffffffffffffff
je 0x14006de16
mov dword [rsp + 0xa0], 0x20
mov r14d, edi
xor edx, edx
mov rcx, rax
jmp 0x14006ddf2
mov eax, dword [rsp + 0x40]
mov qword [rsp + 0x30], rdi
lea r9, [rsp + 0x5c]
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x58]
lea rdx, [rsp + 0xa0]
mov r8d, 0x15
mov qword [rsp + 0x20], rax
call qword [rsi + 0x130]
cmp eax, edi
je 0x14006dde9
mov eax, dword [rsp + 0x40]
mov qword [rsp + 0x30], rdi
lea r9, [rsp + 0x5c]
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x4c]
lea rdx, [rsp + 0xa0]
mov r8d, 0x1c
mov rcx, rbp
mov qword [rsp + 0x20], rax
call qword [rsi + 0x130]
cmp eax, edi
je 0x14006dde9
mov edi, dword [rsp + 0x4c]
movzx ebx, word [rsp + 0x4c]
shr edi, 0x10
call fcn.140045fd8
mov edx, dword [rsp + 0x58]
mov rcx, qword [rax + 0x78]
mov r9d, ebx
mov r8d, edi
call fcn.14004a9f0
xor edi, edi
cmp rax, rdi
je 0x14006dde9
mov qword [r15 + 0x128], rax
inc r14d
mov rcx, rbp
mov edx, r14d
lea r8, [rsp + 0xa0]
call qword [rsi + 0x138]
mov rcx, rbp
cmp eax, edi
jne 0x14006dd4c
call qword [rsi + pe_nt_image_headers64]
mov r14d, dword [rsp + 0x54]
mov rbp, qword [rsp + 0x68]
mov rcx, r13
call fcn.140158604
mov rbx, qword [rsp + 0x78]
jmp 0x14006de2c
xor edi, edi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r15, qword [rsp + 0x70]
jmp 0x14006de3e
xor edi, edi
mov rcx, rbx
call fcn.140158604
inc r14d
mov r9d, r14d
lea rax, [rsp + 0xc0]
lea r8, [0x1401d4210]
xor edx, edx
mov rcx, r12
mov dword [rsp + 0x54], r14d
mov qword [rsp + 0x20], rax
call qword [rsi + 0x108]
mov rcx, r12
cmp eax, edi
jne 0x14006da83
call qword [rsi + pe_nt_image_headers64]
mov eax, 1
mov rcx, qword [rsp + 0x300]
xor rcx, rsp
call fcn.140156fd0
lea r11, [rsp + 0x310]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret