Function at 0x100022258
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x4b0
mov rax, qword [0x10002e110]
xor rax, rsp
mov qword [rsp + 0x4a0], rax
mov ebp, r8d
mov rsi, rdx
mov rbx, rcx
mov rcx, qword [0x10002e120]
lea r13, [0x10002e120]
cmp rcx, r13
je 0x1000222b8
bt dword [rcx + 0x1c], 0x1d
jae 0x1000222b8
mov rcx, qword [rcx + 0x10]
lea r8, [0x100005ed8]
mov edx, 0x12
mov r9, rbx
call fcn.10001f2b0
lea rdx, [0x100008138]
lea rcx, [rsp + 0x30]
mov r9d, 1
mov r8d, 0x1f8
call fcn.10001ed8c
lea r11, [0x100005e20]
xor r12d, r12d
mov edi, 0x208
lea rcx, [rsp + 0x82]
xor edx, edx
mov r8, rdi
mov qword [rsp + 0x68], r11
mov qword [rsp + 0x70], r12
mov word [rsp + 0x80], r12w
call fcn.10002a670
lea rcx, [rsp + 0x292]
mov r8, rdi
xor edx, edx
mov word [rsp + 0x290], r12w
call fcn.10002a670
lea eax, [rdi - 0xa]
cmp rbx, r12
jne 0x10002233b
mov ebx, 0x80070057
mov word [rsp + 0x36], ax
jmp 0x100022548
mov word [rsp + 0x34], ax
mov eax, 0x1ff
cmp rsi, r12
je 0x10002232c
mov word [rsp + 0x34], ax
mov eax, 0x200
cmp ebp, r12d
jbe 0x10002232c
lea rcx, [rsp + 0x68]
mov rdx, rbx
mov dword [rsp + 0x30], r12d
mov word [rsp + 0x34], ax
call fcn.10002897c
mov ebx, eax
mov dword [rsp + 0x30], eax
cmp eax, r12d
mov eax, 0x203
jge 0x10002238a
mov word [rsp + 0x36], ax
jmp 0x10002254c
mov word [rsp + 0x34], ax
mov eax, 0x204
cmp dword [rsp + 0x70], r12d
je 0x10002232c
lea rcx, [rsp + 0x68]
mov edx, 0x5c
mov dword [rsp + 0x30], r12d
mov word [rsp + 0x34], ax
call fcn.100028cfc
mov ebx, eax
mov dword [rsp + 0x30], eax
cmp eax, r12d
mov eax, 0x206
jl 0x100022380
mov rdi, qword [rsp + 0x68]
mov ebx, 0x105
lea rdx, [rsp + 0x80]
mov r8d, ebx
mov rcx, rdi
mov word [rsp + 0x34], ax
call qword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
cmp eax, r12d
jne 0x10002244a
call fcn.100020b84
mov ebx, eax
mov dword [rsp + 0x30], eax
mov eax, 0x20c
mov word [rsp + 0x36], ax
mov rcx, qword [0x10002e120]
cmp rcx, r13
je 0x10002254c
bt dword [rcx + 0x1c], 0x19
jae 0x10002254c
mov dword [rsp + 0x28], ebx
mov edx, 0x13
lea r9, [0x100008160]
mov qword [rsp + 0x20], rdi
mov rcx, qword [rcx + 0x10]
lea r8, [0x100005ed8]
call fcn.100008ddc
mov ebx, dword [rsp + 0x30]
jmp 0x10002254c
mov eax, 0x20c
lea rdx, [rsp + 0x290]
lea rcx, [rsp + 0x80]
mov r8d, ebx
mov dword [rsp + 0x30], r12d
mov word [rsp + 0x34], ax
call qword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
cmp eax, r12d
jne 0x1000224c9
call fcn.100020b84
mov ebx, eax
mov dword [rsp + 0x30], eax
mov eax, 0x213
mov word [rsp + 0x36], ax
mov rcx, qword [0x10002e120]
cmp rcx, r13
je 0x10002254c
bt dword [rcx + 0x1c], 0x19
jae 0x10002254c
lea rax, [rsp + 0x80]
mov dword [rsp + 0x28], ebx
mov edx, 0x14
mov qword [rsp + 0x20], rax
lea r9, [0x1000081a0]
jmp 0x100022431
mov eax, 0x213
lea rcx, [rsp + 0x290]
mov r8d, ebp
mov rdx, rsi
mov dword [rsp + 0x30], r12d
mov word [rsp + 0x34], ax
call qword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
cmp eax, r12d
jne 0x10002253b
call fcn.100020b84
mov ebx, eax
mov dword [rsp + 0x30], eax
mov eax, 0x219
mov word [rsp + 0x36], ax
mov rcx, qword [0x10002e120]
cmp rcx, r13
je 0x10002254c
bt dword [rcx + 0x1c], 0x19
jae 0x10002254c
lea rax, [rsp + 0x290]
mov dword [rsp + 0x28], ebx
mov edx, 0x15
mov qword [rsp + 0x20], rax
lea r9, [0x100008200]
jmp 0x100022431
mov eax, 0x219
mov ebx, r12d
mov word [rsp + 0x34], ax
mov dword [rsp + 0x30], ebx
lea rcx, [rsp + 0x68]
call fcn.100027da0
lea rcx, [rsp + 0x30]
call fcn.10001eea4
mov eax, ebx
mov rcx, qword [rsp + 0x4a0]
xor rcx, rsp
call fcn.10002a0b0
mov rbx, qword [rsp + 0x4f8]
add rsp, 0x4b0
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret