Function at 0x140014f80
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0xc0
mov rax, qword [0x1400c5a08]
xor rax, rsp
mov qword [rsp + 0xb0], rax
movabs rax, 0x5c003a003f
movzx esi, dx
mov qword [rsp + 0x30], rax
xor ebx, ebx
mov eax, dword [rcx + 0x11c]
mov rdi, rcx
cmp eax, 5
jne 0x140015129
cmp qword [rcx + 0x148], rbx
jne 0x140014fec
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
call fcn.140025d50
jmp 0x1400151dd
xor edx, edx
mov word [rsp + 0x30], si
lea rcx, [rsp + 0x40]
lea r8d, [rdx + 0x64]
call sub.msvcrt.dll_memset
mov r8d, 0x32
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
nop dword [rax + rax]
test eax, eax
jne 0x14001509c
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
test eax, eax
jne 0x140015038
mov ebx, 0x80004005
jmp 0x140015046
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
test ebx, ebx
jns 0x140014fe2
test rax, rax
je 0x140014fe2
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x88f
lea r9, str.CSetupHost::ReportStorageLocation
mov edx, 4
lea r8, str._s__d_:_Result__0x_X
mov rcx, rax
call fcn.14002374c
mov ecx, eax
test eax, eax
jns 0x140014fe2
call fcn.140025d30
jmp 0x140014fe2
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
test rax, rax
je 0x1400150da
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
lea r9, [rsp + 0x40]
mov edx, 2
mov rcx, rax
lea r8, str.SetupHost:_Reporting_external_storage_location_for_download_to_WU___s_
call fcn.14002374c
mov rcx, qword [rdi + 0x148]
lea rdx, [rsp + 0x40]
mov rax, qword [rcx]
mov rax, qword [rax + 0x40]
call qword [str.PN_t_]
mov ebx, eax
test eax, eax
jns 0x1400151dd
mov rcx, qword [rdi]
mov rax, qword [rcx + 0x18]
mov rcx, rdi
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x140014fe2
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x892
jmp 0x14001506d
cmp eax, 6
jne 0x1400151dd
call fcn.140023f14
mov ebx, eax
test eax, eax
jns 0x140015169
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x140014fe2
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x896
jmp 0x14001506d
mov r9d, esi
lea r8, str.StorageDriveLetter
lea rdx, str.SYSTEMSetupMoSetupVolatile
call fcn.140023cac
mov ebx, eax
mov rcx, rdi
mov rax, qword [rdi]
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
test ebx, ebx
jns 0x1400151b1
xor ecx, ecx
test rax, rax
je 0x140014fe2
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x89a
jmp 0x14001506d
test rax, rax
je 0x1400151dd
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
mov r9d, esi
lea r8, str.SetupHost:_Putting_external_storage_location_for_download_in_Reg___c_
mov rcx, rax
mov edx, 2
call fcn.14002374c
mov ecx, ebx
call fcn.140025d50
mov eax, ebx
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.140094220
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret