Function at 0x140001aa0
Capabilities:
Get disk size

Disassembly:
push rbx
push rsi
sub rsp, 0x6a8
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x690], rax
xor esi, esi
mov qword [rsp + 0x50], rsi
mov ebx, esi
mov dword [rsp + 0x48], esi
call fcn.140004fb0
test eax, eax
jne 0x140001aea
xor r8d, r8d
lea ecx, [rsi + 6]
xor edx, edx
call fcn.140001070
test al, al
je 0x140001aea
xor eax, eax
jmp 0x140001da4
mov qword [rsp + 0x6c0], rbp
xor eax, eax
mov qword [rsp + 0x6c8], rdi
mov ecx, 0x104
lea rdi, [rsp + 0x60]
mov qword [rsp + 0x6a0], r15
rep stosb byte [rdi], al
lea rcx, [rsp + 0x60]
mov edx, 0x104
mov bpl, 1
call qword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
test eax, eax
je 0x140001d00
lea rcx, [rsp + 0x60]
call qword [sym.imp.SHLWAPI.dll_PathGetDriveNumberW]
mov r9d, eax
test eax, eax
js 0x140001d00
xor eax, eax
lea rdi, [rsp + 0x270]
mov ecx, 0x104
lea r8, str.._C:
rep stosb byte [rdi], al
lea rcx, [rsp + 0x270]
add r9d, 0x41
mov edx, 0x104
call qword [sym.imp.SHLWAPI.dll_wnsprintfW]
xor r9d, r9d
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0x2000000
lea rcx, [rsp + 0x270]
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x140001d00
mov edx, 0x2000
mov qword [rsp + 0x6d0], r14
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r14, rax
test rax, rax
je 0x140001cea
mov qword [rsp + 0x38], rsi
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], rax
xor r9d, r9d
mov dword [rsp + 0x28], 0x2000
xor r8d, r8d
mov edx, 0x560000
mov qword [rsp + 0x20], r14
mov rcx, r15
mov dword [rsp + 0x58], esi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x140001ce1
cmp dword [r14], ebx
jbe 0x140001ce1
mov edi, esi
nop word [rax + rax]
mov eax, edi
lea r8, str..PhysicalDrive_u
mov edx, 0x104
lea rcx, [rsp + 0x480]
lea r9, [rax + rax*2]
mov r9d, dword [r14 + r9*8 + 8]
call qword [sym.imp.SHLWAPI.dll_wnsprintfW]
test eax, eax
jle 0x140001cde
xor r9d, r9d
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
lea rcx, [rsp + 0x480]
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbp, rax
cmp rax, 0xffffffffffffffff
je 0x140001cde
mov qword [rsp + 0x38], rsi
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
xor r9d, r9d
lea rax, [rsp + 0x50]
mov dword [rsp + 0x28], 8
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov edx, 0x7405c
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rcx, rbp
test eax, eax
je 0x140001cd8
add rbx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor bpl, bpl
inc edi
cmp edi, dword [r14]
jb 0x140001c20
jmp 0x140001ce1
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov bpl, 1
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r14, qword [rsp + 0x6d0]
test bpl, bpl
je 0x140001d79
xor r9d, r9d
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
lea rcx, str..PhysicalDrive0
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x140001d79
mov qword [rsp + 0x38], rsi
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
xor r9d, r9d
lea rax, [rsp + 0x50]
mov dword [rsp + 0x28], 8
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov edx, 0x7405c
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
mov rcx, rdi
cmovne rbx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r15, qword [rsp + 0x6a0]
movabs rax, 0x1400000000
mov rdi, qword [rsp + 0x6c8]
cmp rbx, rax
mov rbp, qword [rsp + 0x6c0]
setl sil
mov eax, esi
mov rcx, qword [rsp + 0x690]
xor rcx, rsp
call fcn.140005050
add rsp, 0x6a8
pop rsi
pop rbx
ret