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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x420
mov r14, rdx
lea rcx, [rsp + 0x60]
mov edx, 0x384
mov rbx, r9
mov r13, r8
call fcn.1400580ac
mov rbp, qword [rsp + 0x60]
xor eax, eax
mov dword [rsp + 0x478], 2
lea rdi, [rbp + 0x398]
cmp rbx, rax
mov rsi, rax
mov word [rdi], ax
cmovne rdi, rbx
lea r15, [rbp + 0x5a0]
lea r12, [rbp + 0x690]
cmp rbx, rax
jne 0x140006338
mov edx, 0x103
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindFirstVolumeW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x14000658f
xor ebx, ebx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
sub eax, 1
js 0x14000635a
movsxd rcx, eax
mov eax, 0x5c
cmp ax, word [rdi + rcx*2]
jne 0x14000635a
mov word [rdi + rcx*2], bx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor r9d, r9d
mov qword [rsp + 0x30], rbx
lea r8d, [r9 + 7]
mov edx, 0x80000000
mov rcx, rdi
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x140006560
xor eax, eax
lea rcx, [rsp + 0x104]
xor edx, edx
mov r8d, 0x31c
mov dword [rsp + 0x100], eax
call fcn.1400d3e60
xor r11d, r11d
xor ecx, ecx
mov dword [rsp + 0x50], r11d
mov dword [rsp + 0x54], r11d
mov dword [rsp + 0x58], r11d
call qword [sym.imp.KERNEL32.dll_SetLastError]
or dword [rsp + 0x54], 0xffffffff
xor eax, eax
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x100]
xor r9d, r9d
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x50]
xor r8d, r8d
mov edx, 0x2d1080
mov rcx, rbx
mov dword [rsp + 0x28], 0xc
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x90
call fcn.1400d3e60
lea rcx, [rsp + 0x70]
xor edx, edx
mov r8d, 0x90
call fcn.1400d3e60
or dword [rsp + 0x88], 0xffffffff
xor eax, eax
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x100]
xor r9d, r9d
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x70]
xor r8d, r8d
mov edx, 0x70048
mov rcx, rbx
mov dword [rsp + 0x28], 0x90
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
xor ecx, ecx
cmp rbx, rcx
je 0x140006488
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor ecx, ecx
cmp r13, rcx
jl 0x14000649b
movsxd rax, dword [rsp + 0x58]
cmp r13, rax
jne 0x140006562
cmp r14, rcx
jl 0x1400064ae
movsxd rax, dword [rsp + 0x54]
cmp r14, rax
jne 0x140006562
mov rdx, qword [rsp + 0x78]
mov rcx, r15
call fcn.1400c38e4
mov rdx, qword [rsp + 0x80]
lea rbx, [rbp + 0x618]
mov rcx, rbx
call fcn.1400c38e4
cmp dword [rsp + 0x70], 1
mov rcx, r12
jne 0x1400064ee
lea rdx, [rsp + 0x90]
xor r8d, r8d
call fcn.140054d64
jmp 0x140006504
movzx r8d, byte [rsp + 0x90]
lea rdx, [0x1400f0cb8]
call qword [sym.imp.USER32.dll_wsprintfW]
mov eax, dword [rsp + 0x50]
mov r9d, dword [rsp + 0x54]
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x58]
lea rdx, str._r_n_s__d__d__d__s__s__s
mov r8, rdi
mov rcx, rbp
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_wsprintfW]
movsxd r11, dword [rsp + 0x478]
mov rcx, qword [rsp + 0x460]
lea rdx, [rbp + r11*2]
call fcn.140058174
xor ecx, ecx
mov dword [rsp + 0x478], ecx
jmp 0x140006562
xor ecx, ecx
cmp rsi, rcx
je 0x14000658f
mov word [rdi], cx
mov r8d, 0x103
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindNextVolumeW]
xor ebx, ebx
cmp eax, ebx
jne 0x14000633a
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindVolumeClose]
lea rcx, [rsp + 0x60]
call fcn.140050424
mov rbx, qword [rsp + 0x468]
add rsp, 0x420
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret