Function at 0x1400069e8
Capabilities:
Enumerate disk volumes
Get disk information via ioctl

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x98
lea rcx, [rax - 0x68]
mov edx, 0x4654
mov rsi, r9
mov r15, r8
call fcn.14005f7a0
mov r14, qword [rsp + 0x70]
xor ebx, ebx
lea r13, [r14 + 0x708]
lea rdi, [r14 + 0x398]
lea rax, [r13 + 0x3cc]
mov qword [rsp + 0x60], rbx
lea ecx, [rbx - 2]
mov dword [rax + 4], ecx
mov dword [rax], ecx
cmp rsi, rbx
mov qword [rsp + 0x80], rax
mov rax, r15
lea r12, [r13 + 0x334]
mov word [rdi], bx
cmovne rdi, rsi
shr rax, 0x10
mov qword [rsp + 0x68], rbx
lea rbp, [r13 + 0x320]
mov qword [rsp + 0x88], r12
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x50], 2
mov r15, rbx
cmp rsi, rbx
jne 0x140006aaf
mov edx, 0x103
mov rcx, rdi
call qword [sym.imp.KERNEL32.DLL_FindFirstVolumeW]
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x140006e02
mov rcx, rdi
call qword [sym.imp.KERNEL32.DLL_lstrlenW]
sub eax, 1
js 0x140006acf
movsxd rcx, eax
mov eax, 0x5c
cmp ax, word [rdi + rcx*2]
jne 0x140006acf
mov word [rdi + rcx*2], bx
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_SetLastError]
cmp rsi, rbx
je 0x140006afd
mov rcx, rdi
call fcn.140006994
cmp eax, ebx
je 0x140006afd
mov edx, 0x80000000
mov r8d, 7
mov rcx, rdi
call fcn.14001c980
jmp 0x140006b27
xor r9d, r9d
mov qword [rsp + 0x30], rbx
mov edx, 0x80000000
lea r8d, [r9 + 7]
mov rcx, rdi
mov dword [rsp + 0x28], 0x2000080
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.DLL_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x140006dca
cmp rax, rbx
je 0x140006dca
xor edx, edx
mov rcx, rbp
lea r8d, [rdx + 0xc]
call fcn.1400f3900
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_SetLastError]
mov eax, 0xffffffaa
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], r13
xor r9d, r9d
xor r8d, r8d
mov edx, 0x2d1080
mov rcx, rsi
mov dword [rsp + 0x28], 0xc
mov dword [rbp + 8], eax
mov dword [rbp + 4], eax
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.DLL_DeviceIoControl]
cmp dword [rbp + 4], ebx
jge 0x140006b95
mov dword [rbp + 4], 0xffffffaa
xor edx, edx
mov r8d, 0x90
mov rcx, r12
call fcn.1400f3900
mov qword [rsp + 0x38], rbx
lea rax, [r14 + 0x708]
mov qword [rsp + 0x30], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x70048
mov rcx, rsi
mov dword [rsp + 0x28], 0x90
mov dword [r12 + 0x18], 0xffffffaa
mov r13d, ebx
mov dword [rsp + 0x58], ebx
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.DLL_DeviceIoControl]
cmp eax, ebx
je 0x140006bf9
movzx eax, byte [r12 + 0x20]
mov r13d, dword [r12]
mov dword [rsp + 0x58], eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.DLL_CloseHandle]
mov rax, qword [rsp + 0xf0]
cmp ax, bx
jl 0x140006c19
cwde
cmp eax, dword [rbp + 8]
jne 0x140006dc3
mov rcx, qword [rsp + 0xe8]
cmp rcx, rbx
jl 0x140006c33
movsxd rax, dword [rbp + 4]
cmp rcx, rax
jne 0x140006dc3
mov rdx, qword [r12 + 8]
lea rsi, [r14 + 0x5a0]
mov rcx, rsi
call fcn.1400d9364
mov rdx, qword [r12 + 0x10]
lea rcx, [r14 + 0x618]
call fcn.1400d9364
lea rcx, [r14 + 0x690]
cmp r13d, 1
jne 0x140006c74
lea rdx, [r12 + 0x20]
xor r8d, r8d
call fcn.14005c0d0
jmp 0x140006c86
mov r8d, dword [rsp + 0x58]
lea rdx, [0x14010df0c]
call qword [sym.imp.USER32.DLL_wsprintfW]
or edx, 0xffffffff
cmp dword [rbp + 8], ebx
lea rax, [r14 + 0x618]
cmovge edx, dword [rbp + 8]
mov qword [rsp + 0x48], rax
or ecx, 0xffffffff
cmp dword [rbp + 4], ebx
mov qword [rsp + 0x40], rsi
lea rax, [r14 + 0x690]
cmovge ecx, dword [rbp + 4]
mov qword [rsp + 0x38], rax
mov eax, dword [rbp]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x20], ecx
lea rdx, [0x14010ded8]
lea r9, [0x14010d568]
mov rcx, r14
mov r8, rdi
call qword [sym.imp.USER32.DLL_wsprintfW]
mov rcx, qword [rsp + 0xe0]
or r12d, 0xffffffff
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.DLL_lstrlenW]
lea r9, [rsp + 0x60]
xor r8d, r8d
mov esi, eax
movsxd rax, dword [rbp + 4]
xor edx, edx
mov rcx, rdi
mov r13, rdi
mov qword [rsp + 0x58], rax
call fcn.14001ca38
cmp rax, rbx
je 0x140006d2b
mov rcx, qword [rsp + 0x60]
cmp rcx, rbx
je 0x140006d2b
cmp word [rcx], bx
cmovne r13, rcx
test byte [rsp + 0x78], 8
je 0x140006d7f
mov rcx, r14
call qword [sym.imp.KERNEL32.DLL_lstrlenW]
mov r9, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x58]
movsxd rcx, eax
mov eax, 0x20
mov qword [rsp + 0x30], r13
lea rcx, [r14 + rcx*2]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
mov word [rcx], ax
add rcx, 2
mov word [rcx], bx
movsxd r8, dword [rbp + 8]
mov r12, rcx
sub r12, r14
sar r12, 1
call fcn.140071cd8
movsxd r13, dword [rsp + 0x50]
mov rcx, qword [rsp + 0xe0]
lea rdx, [r14 + r13*2]
call fcn.14005fb54
cmp r12d, ebx
jl 0x140006db7
mov rax, qword [rsp + 0xe0]
sub esi, r13d
mov rax, qword [rax]
add esi, r12d
movsxd rcx, esi
lea rax, [rax + rcx*2]
mov qword [rsp + 0x68], rax
mov r12, qword [rsp + 0x88]
mov dword [rsp + 0x50], ebx
lea r13, [r14 + 0x708]
cmp r15, rbx
je 0x140006dfd
mov r8d, 0x103
mov rdx, rdi
mov rcx, r15
mov word [rdi], bx
call qword [sym.imp.KERNEL32.DLL_FindNextVolumeW]
mov rsi, qword [rsp + 0xf8]
cmp eax, ebx
jne 0x140006aaf
mov rcx, r15
call qword [sym.imp.KERNEL32.DLL_FindVolumeClose]
mov rbx, qword [rsp + 0x68]
lea rcx, [rsp + 0x60]
call fcn.140057768
lea rcx, [rsp + 0x70]
call fcn.140057768
mov rax, rbx
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret