Function at 0x100021fac
Capabilities:
Get disk information

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov rbp, rdx
mov r12, rcx
mov rcx, qword [0x10002e120]
lea r15, [0x10002e120]
cmp rcx, r15
je 0x10002200f
bt dword [rcx + 0x1c], 0x1d
jae 0x10002200f
mov rcx, qword [rcx + 0x10]
mov dword [rax - 0x80], 0x104
lea r8, [0x100005ed8]
mov edx, 0xa
mov r9, r12
mov qword [rsp + 0x20], rbp
call fcn.100021ba0
mov r9d, 1
lea rdx, [0x1000080d8]
lea rcx, [rsp + 0x40]
lea r8d, [r9 + 0x34]
call fcn.10001ed8c
xor r13d, r13d
lea eax, [r13 + 0x40]
mov rsi, r13
mov dword [rsp + 0xb0], r13d
cmp r12, r13
jne 0x100022053
mov dword [rsp + 0x40], 0x80070057
mov word [rsp + 0x46], ax
jmp 0x100022218
mov word [rsp + 0x44], ax
cmp rbp, r13
jne 0x100022064
mov eax, 0x41
jmp 0x100022041
mov eax, 0x42
mov ebx, 0x4d
mov dword [rsp + 0x40], r13d
mov word [rsp + 0x44], ax
mov eax, 0x105
mov word [rbp], r13w
mov dword [rsp + 0xb0], eax
lea r14d, [rbx + 0xa]
mov edx, eax
mov rcx, rsi
add rdx, rdx
call qword [sym.imp.ole32.dll_CoTaskMemRealloc]
mov rsi, rax
cmp rax, r13
je 0x10002220b
mov r8d, dword [rsp + 0xb0]
lea r9, [rsp + 0xb0]
mov rdx, rax
mov rcx, r12
mov dword [rsp + 0x40], r13d
mov word [rsp + 0x44], bx
call qword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
cmp eax, r13d
jne 0x100022160
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x1000220e8
cmp eax, 0xea
jne 0x1000220eb
mov eax, r13d
movzx edi, ax
or edi, 0x80070000
cmp eax, r13d
cmovle edi, eax
cmp edi, r13d
mov dword [rsp + 0x40], edi
jl 0x100022115
mov eax, dword [rsp + 0xb0]
mov word [rsp + 0x44], r14w
jmp 0x10002208d
mov word [rsp + 0x46], r14w
mov rcx, qword [0x10002e120]
cmp rcx, r15
je 0x100022218
bt dword [rcx + 0x1c], 0x19
jae 0x100022218
mov rcx, qword [rcx + 0x10]
lea r9, [0x10000679c]
lea r8, [0x100005ed8]
mov edx, 0xb
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], r12
call fcn.100008ddc
jmp 0x100022218
or r8d, 0xffffffff
mov rdx, rsi
mov rbx, rsi
cmp word [rsi], r13w
je 0x10002219a
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
dec rcx
cmp ecx, r8d
jae 0x10002218d
mov r8d, ecx
mov rbx, rdx
lea eax, [rcx + 1]
lea rdx, [rdx + rax*2]
cmp word [rdx], r13w
jne 0x100022170
mov r8, rbx
mov edx, 0x104
mov rcx, rbp
call fcn.10001f23c
mov ecx, 0x70
cmp eax, r13d
mov dword [rsp + 0x40], eax
jge 0x100022204
mov word [rsp + 0x46], cx
mov rcx, qword [0x10002e120]
cmp rcx, r15
je 0x100022218
bt dword [rcx + 0x1c], 0x19
jae 0x100022218
mov rcx, qword [rcx + 0x10]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], 0x104
lea r9, [0x1000080f8]
lea r8, [0x100005ed8]
mov edx, 0xc
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r12
call fcn.100021d64
jmp 0x100022218
mov word [rsp + 0x44], cx
jmp 0x100022218
mov dword [rsp + 0x40], 0x8007000e
mov word [rsp + 0x46], bx
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov edi, dword [rsp + 0x40]
lea rcx, [rsp + 0x40]
call fcn.10001eea4
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov eax, edi
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret