Function at 0x14000699c
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, 0x138
lea rcx, [rax - 0x90]
mov edx, 0x4654
mov r15, r9
mov r14, r8
call fcn.140061298
mov rax, qword [rsp + 0xe8]
lea rcx, [rax + 0x5a0]
lea r12, [rax + 0x708]
xor ebx, ebx
mov qword [rsp + 0x100], rcx
lea rcx, [rax + 0x618]
lea r13, [r12 + 0x3b80]
mov qword [rsp + 0xd0], rcx
lea rcx, [rax + 0x690]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x88], rcx
lea rcx, [rsp + 0x68]
lea rdi, [rax + 0x398]
mov qword [rsp + 0xb8], r12
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xf8], r13
call fcn.140061234
lea rsi, [r12 + 0x3cc]
lea rbp, [r12 + 0x334]
mov rcx, rsi
xor edx, edx
mov r8d, 0x3b80
mov qword [rsp + 0x60], 0xffffffffffffff9c
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0xe0], rsi
call fcn.1400f78a0
mov r12, rdi
lea r11d, [rbx - 2]
cmp r15, rbx
mov dword [rsp + 0x70], 2
cmovne r12, r15
mov dword [rsi + 4], r11d
mov dword [rsi], r11d
mov word [rdi], bx
mov rdi, r14
mov word [rsp + 0x50], bx
shr rdi, 0x10
mov qword [rsp + 0xc8], r12
mov rsi, rbx
and edi, 8
mov qword [rsp + 0xa0], rbx
mov r14, rbx
mov qword [rsp + 0x78], rbx
cmp r15, rbx
jne 0x140006b02
mov edx, 0x103
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_FindFirstVolumeW]
mov r14, rax
mov qword [rsp + 0x78], rax
cmp rax, 0xffffffffffffffff
jne 0x140006b7d
jmp 0x1400072ce
lea rcx, [0x140111f90]
mov r8d, 4
mov rdx, r15
call qword [sym.imp.SHLWAPI.dll_StrCmpNW]
cmp eax, ebx
jne 0x140006b43
lea rax, [r15 + 8]
cmp word [rax], bx
je 0x140006b43
mov ecx, 0x3a
cmp cx, word [r15 + 0xa]
jne 0x140006b43
mov qword [rsp + 0xa0], rax
movzx eax, word [rax]
mov word [rsp + 0x50], ax
jmp 0x140006b7d
lea rcx, [0x140111f80]
mov r8d, 0xb
mov rdx, r15
call fcn.14005a400
cmp al, bl
je 0x140006b7d
lea rax, [r15 + 0x16]
cmp word [rax], bx
je 0x140006b7d
cmp word [r15 + 0x18], bx
je 0x140006b7d
cmp word [r15 + 0x1a], bx
cmovne rsi, rax
mov qword [rsp + 0xa0], rsi
movsxd rax, edi
mov esi, 0x5c
mov edi, 0x80000000
mov qword [rsp + 0xf0], rax
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov qword [rsp + 0xa8], r12
sub eax, 1
js 0x140006bb7
movsxd rcx, eax
cmp si, word [r12 + rcx*2]
jne 0x140006bb7
mov word [r12 + rcx*2], bx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
cmp r15, rbx
je 0x140006be3
mov rcx, r12
call fcn.140006948
cmp eax, ebx
je 0x140006be3
mov r8d, 7
mov rdx, rdi
mov rcx, r12
call fcn.14001cf50
jmp 0x140006c0a
xor r9d, r9d
mov qword [rsp + 0x30], rbx
mov edx, edi
lea r8d, [r9 + 7]
mov rcx, r12
mov dword [rsp + 0x28], 0x2000080
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x140007294
cmp rax, rbx
je 0x140007294
xor edx, edx
mov rcx, r13
lea r8d, [rdx + 0xc]
call fcn.1400f78a0
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rsi, qword [rsp + 0xb8]
mov qword [rsp + 0x38], rbx
mov r14d, 0xffffffaa
mov qword [rsp + 0x30], rsi
xor r9d, r9d
xor r8d, r8d
mov edx, 0x2d1080
mov rcx, rdi
mov dword [rsp + 0x28], 0xc
mov qword [rsp + 0x20], r13
mov dword [r13 + 8], r14d
mov dword [r13 + 4], r14d
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp eax, ebx
je 0x140006c81
cmp dword [r13 + 4], ebx
jge 0x140006c89
mov dword [r13 + 8], r14d
mov dword [r13 + 4], r14d
xor edx, edx
mov r8d, 0x90
mov rcx, rbp
call fcn.1400f78a0
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rsi
xor r9d, r9d
xor r8d, r8d
mov edx, 0x70048
mov rcx, rdi
mov dword [rsp + 0x28], 0x90
mov dword [rbp + 0x18], r14d
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov esi, ebx
mov r14d, ebx
cmp eax, ebx
je 0x140006cdb
mov esi, dword [rbp]
movzx r14d, byte [rbp + 0x20]
jmp 0x140006cea
mov qword [rbp + 0x10], rbx
mov qword [rbp + 8], rbx
mov dword [rbp + 0x18], 0xffffffaa
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, 1
mov ebp, ebx
sete bpl
cmp dword [r13 + 4], ebx
jl 0x140006d0c
cmp dword [r13 + 8], ebx
jge 0x140006f46
mov rsi, qword [rsp + 0xa0]
lea rcx, [rsp + 0x98]
call fcn.140061510
lea rcx, [rsp + 0xb0]
call fcn.140061510
mov ax, word [rsp + 0x50]
cmp ax, bx
je 0x140006e37
lea rdx, [rsp + 0x98]
movzx ecx, ax
call fcn.14005dbe4
mov rcx, qword [rsp + 0x58]
mov edx, 0x103
add rcx, 0x398
mov rsi, rbx
call qword [sym.imp.KERNEL32.dll_FindFirstVolumeW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x140006e37
mov rcx, qword [rsp + 0x58]
add rcx, 0x398
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, 0x5c
dec eax
movsxd rcx, eax
mov rax, qword [rsp + 0x58]
cmp r8w, word [rax + rcx*2 + 0x398]
jne 0x140006da8
mov word [rax + rcx*2 + 0x398], bx
mov ecx, 0x3f
lea r8, [rax + 0x398]
lea rdx, [rsp + 0xb0]
mov word [rax + 0x39a], cx
lea rcx, [rax + 0x398]
call fcn.14005dc50
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x98]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
cmp eax, ebx
je 0x140006e14
mov rcx, qword [rsp + 0x58]
mov r8d, 0x103
lea rdx, [rcx + 0x398]
mov word [rcx + 0x398], bx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextVolumeW]
cmp eax, ebx
je 0x140006e2e
jmp 0x140006d73
mov rax, qword [rsp + 0x58]
add rax, 0x398
mov r12, rax
mov qword [rsp + 0xc8], rax
lea rsi, [rax + 0x16]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindVolumeClose]
mov rax, qword [rsp + 0x60]
cmp rax, 0xffffffffffffff9c
jg 0x140006e5c
mov rcx, qword [rsp + 0x188]
lea rdx, [rsp + 0x68]
mov r8, rsi
call fcn.140089d88
mov qword [rsp + 0x60], rax
cmp rax, rbx
jle 0x140006f2c
mov rdi, qword [rsp + 0x68]
add rdi, 4
cmp rsi, rbx
jne 0x140006ef2
lea rcx, [0x140111f68]
mov r8d, 0xb
mov rdx, r12
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
cmp eax, ebx
jne 0x140006f2c
lea rax, [r12 + 0x16]
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0xc0]
mov r8d, 1
mov qword [rsp + 0xc0], rax
call fcn.140074700
cmp al, bl
jle 0x140006f2c
cmp qword [rsp + 0x60], rbx
mov esi, ebx
jle 0x140006f2c
lea rdx, [rsp + 0x118]
mov r8d, 0x10
mov rcx, rdi
call fcn.140058db8
cmp eax, ebx
je 0x140006ef2
inc esi
add rdi, 0x34
movsxd rax, esi
cmp rax, qword [rsp + 0x60]
jl 0x140006ec6
jmp 0x140006f2c
mov eax, dword [rdi + 0x10]
mov rcx, qword [rsp + 0xb8]
or ebp, 0x10
mov dword [r13 + 4], eax
mov eax, dword [rdi + 0x14]
mov dword [r13 + 8], eax
mov eax, dword [rdi + 0x18]
mov dword [r13], eax
mov rax, qword [rdi + 0x20]
mov r14d, dword [rdi + 0x1c]
mov qword [rcx + 0x33c], rax
mov rax, qword [rdi + 0x28]
mov qword [rcx + 0x344], rax
lea rcx, [rsp + 0xb0]
call fcn.140058d88
lea rcx, [rsp + 0x98]
call fcn.140058d88
mov rax, qword [rsp + 0x190]
cmp ax, bx
jl 0x140006f5e
cwde
cmp eax, dword [r13 + 8]
jne 0x140007282
mov rcx, qword [rsp + 0x188]
cmp rcx, rbx
jl 0x140006f78
movsxd rax, dword [r13 + 4]
cmp rcx, rax
jne 0x140007282
mov rdi, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0x100]
mov rdx, qword [rdi + 0x33c]
mov rcx, rsi
call fcn.1400dcf88
mov rdx, qword [rdi + 0x344]
mov rcx, qword [rsp + 0xd0]
call fcn.1400dcf88
mov rcx, qword [rsp + 0x88]
cmp ebp, 1
jne 0x140006fc9
lea rdx, [rdi + 0x354]
xor r8d, r8d
call fcn.14005d7c4
jmp 0x140006fd9
lea rdx, [0x140111f5c]
mov r8d, r14d
call qword [sym.imp.USER32.dll_wsprintfW]
mov rax, qword [rsp + 0xd0]
mov r8, qword [rsp + 0xa8]
or edx, 0xffffffff
cmp dword [r13 + 8], ebx
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x88]
cmovge edx, dword [r13 + 8]
or ecx, 0xffffffff
cmp dword [r13 + 4], ebx
cmovge ecx, dword [r13 + 4]
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rax
mov eax, dword [r13]
lea r9, [0x140111598]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x20], ecx
mov rcx, qword [rsp + 0x58]
lea rdx, str._r_n_s_s__d__d__d__s__s__s
call qword [sym.imp.USER32.dll_wsprintfW]
mov rcx, qword [rsp + 0x180]
or r13d, 0xffffffff
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rbp, dword [rdi + 0x3b84]
lea r9, [rsp + 0x80]
xor r8d, r8d
xor edx, edx
mov rcx, r12
mov r14d, eax
mov rsi, r12
call fcn.14001d008
cmp rax, rbx
je 0x140007091
mov rcx, qword [rsp + 0x80]
cmp rcx, rbx
je 0x140007091
cmp word [rcx], bx
cmovne rsi, rcx
cmp qword [rsp + 0xf0], rbx
je 0x14000723b
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rdx, qword [rsp + 0x58]
mov r9d, 0x20
movsxd rcx, eax
lea rax, [rdx + rcx*2]
mov cx, word [rsp + 0x50]
mov word [rax], r9w
add rax, 2
mov r13, rax
mov word [rax], bx
mov rdi, rax
sub r13, rdx
sar r13, 1
mov qword [rsp + 0xc0], r13
cmp cx, bx
je 0x1400070f9
mov word [rax], cx
lea ecx, [r9 + 0x1a]
add rax, 4
mov word [rax - 2], cx
mov word [rax], bx
jmp 0x140007122
movsxd r8, dword [rdx + 0x4290]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], r9
mov r9, qword [rsp + 0xe0]
mov rdx, rbp
mov rcx, rax
mov qword [rsp + 0x20], rbx
call fcn.140073fb8
sub rax, rdi
sar rax, 1
cmp eax, ebx
ja 0x14000723b
mov rsi, qword [rsp + 0x60]
cmp rsi, 0xffffffffffffff9c
jg 0x140007158
mov rcx, qword [rsp + 0x188]
lea rdx, [rsp + 0x68]
xor r8d, r8d
call fcn.140089d88
mov rsi, rax
mov qword [rsp + 0x60], rax
cmp rsi, rbx
jle 0x14000723b
mov rbp, qword [rsp + 0x68]
lea rcx, [0x140111f68]
mov r8d, 0xb
mov rdx, r12
add rbp, 4
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
cmp eax, ebx
jne 0x14000723b
lea rax, [r12 + 0x16]
lea rdx, [rsp + 0x108]
lea rcx, [rsp + 0xa8]
mov r8d, 1
mov qword [rsp + 0xa8], rax
call fcn.140074700
cmp al, bl
jle 0x14000723b
cmp qword [rsp + 0x60], rbx
mov esi, ebx
jle 0x14000723b
mov r15, qword [rsp + 0x60]
mov r12, qword [rsp + 0xe0]
mov r13d, 0x3a
lea rdx, [rsp + 0x108]
mov r8d, 0x10
mov rcx, rbp
call fcn.140058db8
cmp eax, ebx
jne 0x140007215
lea rcx, [rsp + 0x108]
mov rdx, r12
call fcn.140067f40
cmp eax, ebx
jl 0x140007215
add ax, 0x41
mov word [rdi], ax
mov word [rdi + 2], r13w
add rdi, 4
mov word [rdi], bx
inc esi
add rbp, 0x34
movsxd rax, esi
cmp rax, r15
jl 0x1400071d4
mov r12, qword [rsp + 0xc8]
mov r13, qword [rsp + 0xc0]
mov r15, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x58]
movsxd rdi, dword [rsp + 0x70]
mov rsi, qword [rsp + 0x180]
lea rdx, [rcx + rdi*2]
mov rcx, rsi
call fcn.14006164c
cmp r13d, ebx
jl 0x140007276
mov rax, qword [rsi]
sub r14d, edi
add r14d, r13d
movsxd rcx, r14d
lea rax, [rax + rcx*2]
mov qword [rsp + 0xd8], rax
mov r13, qword [rsp + 0xf8]
mov dword [rsp + 0x70], ebx
mov rbp, qword [rsp + 0x90]
mov r14, qword [rsp + 0x78]
mov esi, 0x5c
cmp r14, rbx
je 0x1400072c6
mov r8d, 0x103
mov rdx, r12
mov rcx, r14
mov word [r12], bx
call qword [sym.imp.KERNEL32.dll_FindNextVolumeW]
mov edi, 0x80000000
cmp eax, ebx
jne 0x140006b92
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FindVolumeClose]
mov rbx, qword [rsp + 0xd8]
lea rcx, [rsp + 0x80]
call fcn.140058d88
lea rcx, [rsp + 0x68]
call fcn.140058d88
lea rcx, [rsp + 0xe8]
call fcn.140058d88
mov rax, rbx
add rsp, 0x138
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret