Function at 0x100022f48
Capabilities:
Get disk size

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x2b0
mov rax, qword [0x10002e110]
xor rax, rsp
mov qword [rsp + 0x2a0], rax
mov rsi, rdx
mov rbx, rcx
mov rcx, qword [0x10002e120]
lea rax, [0x10002e120]
cmp rcx, rax
je 0x100022fa6
bt dword [rcx + 0x1c], 0x1d
jae 0x100022fa6
mov rcx, qword [rcx + 0x10]
lea r8, [0x100005ed8]
mov edx, 0x22
call fcn.10001031c
lea rdx, [0x100008320]
lea rcx, [rsp + 0x50]
mov r9d, 1
mov r8d, 0x4e7
call fcn.10001ed8c
lea rcx, [rsp + 0x92]
xor ebp, ebp
xor edx, edx
mov r8d, 0x208
mov word [rsp + 0x90], bp
call fcn.10002a670
xor eax, eax
mov dword [rsp + 0x40], ebp
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x48], ebp
cmp rsi, rbp
je 0x100022ff8
mov qword [rsi], rbp
mov eax, 0x4f2
cmp rbx, rbp
jne 0x100023015
mov edi, 0x80070057
mov dword [rsp + 0x50], edi
mov word [rsp + 0x56], ax
jmp 0x1000231c0
mov word [rsp + 0x54], ax
mov eax, 0x4f3
cmp rsi, rbp
je 0x100023002
mov word [rsp + 0x54], ax
lea rax, [rsp + 0x90]
mov edx, 0x105
lea rcx, [rsp + 0x90]
mov edi, ebp
sub rbx, rax
lea rax, [rdx + 0x7ffffef9]
cmp rax, rbp
je 0x100023065
movzx eax, word [rbx + rcx]
cmp ax, bp
je 0x100023065
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x100023043
cmp rdx, rbp
jne 0x100023073
sub rcx, 2
mov edi, 0x8007007a
cmp edi, ebp
mov word [rcx], bp
mov dword [rsp + 0x50], edi
mov eax, 0x4f8
jl 0x10002300b
or rcx, 0xffffffffffffffff
mov word [rsp + 0x54], ax
xor eax, eax
lea rdi, [rsp + 0x90]
repne scasw ax, word [rdi]
mov eax, 0x4fb
not rcx
dec rcx
cmp ecx, ebp
jbe 0x100023002
mov word [rsp + 0x54], ax
lea eax, [rcx - 1]
mov dword [rsp + 0x50], ebp
cmp word [rsp + rax*2 + 0x90], 0x5c
jne 0x1000230cb
mov word [rsp + rax*2 + 0x90], bp
mov r8d, 3
mov qword [rsp + 0x30], rbp
lea rcx, [rsp + 0x90]
xor r9d, r9d
mov edx, 0x80000000
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], r8d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x100023118
call fcn.100020b84
mov edi, eax
mov dword [rsp + 0x50], eax
mov eax, 0x50c
mov word [rsp + 0x56], ax
jmp 0x1000231a8
mov qword [rsp + 0x38], rbp
mov eax, 0x50c
xor r9d, r9d
mov word [rsp + 0x54], ax
lea rax, [rsp + 0x48]
xor r8d, r8d
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
mov edx, 0x7405c
mov rcx, rbx
mov dword [rsp + 0x28], 8
mov dword [rsp + 0x50], ebp
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp eax, ebp
jne 0x100023171
call fcn.100020b84
mov edi, eax
mov dword [rsp + 0x50], eax
mov eax, 0x512
jmp 0x10002310e
mov eax, 0x512
mov ecx, 0x518
mov word [rsp + 0x54], ax
mov rax, qword [rsp + 0x40]
cmp rax, rbp
jge 0x10002319a
mov edi, 0x8000ffff
mov word [rsp + 0x56], cx
mov dword [rsp + 0x50], edi
jmp 0x1000231a8
mov edi, ebp
mov dword [rsp + 0x50], ebp
mov word [rsp + 0x54], cx
mov qword [rsi], rax
cmp rbx, rbp
je 0x1000231c0
cmp rbx, 0xffffffffffffffff
je 0x1000231c0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [rsp + 0x50]
lea rcx, [rsp + 0x50]
call fcn.10001eea4
mov eax, edi
mov rcx, qword [rsp + 0x2a0]
xor rcx, rsp
call fcn.10002a0b0
lea r11, [rsp + 0x2b0]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret