Function at 0x140029380
Capabilities:
Get disk size

Disassembly:
push rbx
push rsi
sub rsp, 0x6a8
mov rax, qword [0x1400c4080]
xor rax, rsp
mov qword [rsp + 0x690], rax
xor eax, eax
xor esi, esi
mov qword [rsp + 0x48], rax
mov ebx, esi
mov dword [rsp + 0x40], esi
call fcn.140032780
test eax, eax
jne 0x1400293cc
xor r8d, r8d
lea ecx, [rsi + 6]
xor edx, edx
call fcn.1400216e0
test al, al
je 0x1400293cc
xor eax, eax
jmp 0x140029696
mov qword [rsp + 0x6c8], rdi
xor eax, eax
lea rdi, [rsp + 0x60]
mov qword [rsp + 0x6d0], r12
mov ecx, 0x104
mov qword [rsp + 0x6d8], r14
rep stosb byte [rdi], al
lea rcx, [rsp + 0x60]
mov edx, 0x104
mov r14b, 1
call qword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
test eax, eax
je 0x1400295f2
lea rcx, [rsp + 0x60]
call qword [sym.imp.SHLWAPI.dll_PathGetDriveNumberW]
mov r9d, eax
test eax, eax
js 0x1400295f2
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 r12, rax
cmp rax, 0xffffffffffffffff
je 0x1400295f2
mov edx, 0x2000
mov qword [rsp + 0x6a0], r15
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r15, rax
test rax, rax
je 0x1400295d8
mov qword [rsp + 0x38], rsi
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
xor r9d, r9d
mov dword [rsp + 0x28], 0x2000
xor r8d, r8d
mov edx, 0x560000
mov qword [rsp + 0x20], r15
mov rcx, r12
mov dword [rsp + 0x50], esi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x1400295cf
cmp dword [r15], ebx
jbe 0x1400295cf
mov edi, esi
mov qword [rsp + 0x6c0], rbp
mov eax, edi
lea r8, str..PhysicalDrive_u
mov edx, 0x104
lea rcx, [rax + rax*2]
mov r9d, dword [r15 + rcx*8 + 8]
lea rcx, [rsp + 0x480]
call qword [sym.imp.SHLWAPI.dll_wnsprintfW]
test eax, eax
jle 0x1400295c4
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 0x1400295c4
mov qword [rsp + 0x38], rsi
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
xor r9d, r9d
lea rax, [rsp + 0x48]
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 0x1400295b9
add rbx, qword [rsp + 0x48]
xor r14b, r14b
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc edi
cmp edi, dword [r15]
jb 0x140029501
jmp 0x1400295c7
mov r14b, 1
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1400295c7
mov r14b, 1
mov rbp, qword [rsp + 0x6c0]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r15, qword [rsp + 0x6a0]
test r14b, r14b
je 0x14002966b
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 0x14002966b
mov qword [rsp + 0x38], rsi
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
xor r9d, r9d
lea rax, [rsp + 0x48]
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 + 0x48]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r14, qword [rsp + 0x6d8]
movabs rax, 0x1400000000
mov r12, qword [rsp + 0x6d0]
cmp rbx, rax
mov rdi, qword [rsp + 0x6c8]
setl sil
mov eax, esi
mov rcx, qword [rsp + 0x690]
xor rcx, rsp
call fcn.140095750
add rsp, 0x6a8
pop rsi
pop rbx
ret