Function at 0x1400066b4
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x810]
sub rsp, 0x910
mov rax, qword [0x14003f0b8]
xor rax, rsp
mov qword [rbp + 0x800], rax
mov r12, r8
mov r15d, edx
mov rdi, rcx
xor ebx, ebx
xor edx, edx
lea rcx, [0x14003f8a0]
lea r8d, [rbx + 0x58]
call sub.msvcrt.dll_memset
mov dword [0x14003f8bc], r15d
lea eax, [rbx + 1]
mov r13w, 0x5c
test rdi, rdi
je 0x140006728
cmp word [rdi], r13w
jne 0x140006728
cmp word [rdi + 2], r13w
jne 0x140006728
mov byte [rsp + 0x40], al
jmp 0x14000672e
mov al, bl
mov byte [rsp + 0x40], bl
or r14, 0xffffffffffffffff
mov esi, 0x104
test rdi, rdi
je 0x140006a6b
test al, al
jne 0x14000690f
mov r8d, esi
lea rdx, [rbp + 0x160]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
nop dword [rax + rax]
test eax, eax
jne 0x140006792
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov r8, rdi
lea rdx, str.Failed_to_GetVolumePathName_for__ws___u_.
mov r9d, eax
mov ecx, 4
call fcn.14000f424
mov ebx, 0xc000000d
jmp 0x140006d28
lea r9, [rbp + 0x160]
mov r8, rdi
lea rdx, str.VolumePathName_for__ws_is__ws
mov ecx, 2
call fcn.14000f424
lea rax, [rbp + 0x160]
mov rsi, r14
inc rsi
cmp word [rax + rsi*2], bx
jne 0x1400067b7
mov rax, r14
inc rax
cmp word [rdi + rax*2], bx
jne 0x1400067c3
cmp rsi, rax
jbe 0x1400067eb
lea r8, [rbp + 0x160]
mov ecx, 4
lea rdx, str.Invalid_VolumePathNameLegth__ws
call fcn.14000f424
jmp 0x140006788
lea rcx, [rbp + 0x160]
cmp rsi, 3
jne 0x14000683d
mov r8d, 0x104
mov word [rbp + 0x164], bx
lea rdx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
nop dword [rax + rax]
test eax, eax
jne 0x1400068e0
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
lea r8, [rbp + 0x160]
lea rdx, str.Failed_to_QueryDosDevice_for__ws___u_.
jmp 0x14000677b
mov r8d, 0x32
lea rdx, [rbp + 0x370]
call qword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
nop dword [rax + rax]
test eax, eax
jne 0x140006879
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
lea r8, [rbp + 0x160]
lea rdx, str.Unable_to_GetVolumeNameForVolumeMountPoint__ws___u_.
jmp 0x14000677b
lea r8, [rbp + 0x370]
mov edx, 0x104
lea rcx, [rsp + 0x50]
call qword [sym.imp.msvcrt.dll_wcscpy_s]
nop dword [rax + rax]
lea rcx, [rsp + 0x50]
mov rax, r14
inc rax
cmp word [rcx + rax*2], bx
jne 0x14000689e
cmp rax, 1
jbe 0x1400068e0
cmp word [rsp + 0x52], r13w
jne 0x1400068bf
mov ecx, 0x3f
mov word [rsp + 0x52], cx
cmp word [rsp + rax*2 + 0x4e], r13w
jne 0x1400068e0
lea rax, [rax*2 - 2]
cmp rax, 0x208
jae 0x140006d6d
mov word [rsp + rax + 0x50], bx
lea r8, [rsi - 1]
mov rdx, rdi
lea rcx, [rbp + 0x160]
call qword [sym.imp.msvcrt.dll__wcsnicmp]
nop dword [rax + rax]
test eax, eax
jne 0x1400069b6
lea rdi, [rdi + rsi*2]
add rdi, 0xfffffffffffffffe
jmp 0x1400069b6
mov rax, r14
inc rax
cmp word [rdi + rax*2], bx
jne 0x140006912
mov r8d, 0xe
cmp rax, r8
jb 0x140006b10
mov rdx, rdi
lea rcx, str._GLOBALROOT
call qword [sym.imp.msvcrt.dll__wcsnicmp]
nop dword [rax + rax]
test eax, eax
jne 0x140006b10
mov r8d, esi
lea rdx, [rbp + 0x5f0]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
nop dword [rax + rax]
test eax, eax
jne 0x14000696f
mov ebx, 0xc0000001
jmp 0x140006d28
lea rcx, [rbp + 0x5f0]
call qword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
nop dword [rax + rax]
lea r8, [rbp + 0x60c]
mov rdx, rsi
lea rcx, [rsp + 0x50]
call qword [sym.imp.msvcrt.dll_wcscpy_s]
nop dword [rax + rax]
lea rcx, [rsp + 0x50]
mov rax, r14
inc rax
cmp word [rcx + rax*2], bx
jne 0x1400069a5
lea rdi, [rdi + rax*2]
add rdi, 0x1c
lea rcx, [rsp + 0x50]
mov rax, r14
inc rax
cmp word [rcx + rax*2], bx
jne 0x1400069be
lea rsi, [rax*2 + 2]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r13d, 8
mov r8, rsi
mov rcx, rax
mov edx, r13d
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
mov qword [0x14003f8d0], rax
test rax, rax
jne 0x140006a0c
mov ebx, 0xc0000017
jmp 0x140006d28
mov r8, rsi
lea rdx, [rsp + 0x50]
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov rax, r14
inc rax
cmp word [rdi + rax*2], bx
jne 0x140006a1f
lea rsi, [rax*2 + 2]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rsi
mov edx, r13d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
mov qword [0x14003f8f0], rax
test rax, rax
je 0x140006a02
mov r8, rsi
mov rdx, rdi
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov byte [0x14003f8b8], bl
call fcn.14000e54c
movzx ecx, byte [0x14003f8b8]
lea r13, str.en_us
cmp eax, 2
mov eax, 1
cmove ecx, eax
test r12, r12
mov byte [0x14003f8b8], cl
mov rax, r14
cmovne r13, r12
inc rax
cmp word [r13 + rax*2], bx
jne 0x140006a9f
lea rsi, [rax*2 + 2]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rsi
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
mov qword [0x14003f8c8], rax
test rax, rax
je 0x140006a02
mov r8, rsi
mov rdx, r13
mov rcx, rax
call sub.msvcrt.dll_memcpy
xor ecx, ecx
call fcn.140005ad8
mov qword [0x14003f8e8], rax
test rax, rax
jne 0x140006b30
mov ebx, 0xc0000225
jmp 0x140006d28
lea r9, str._GLOBALROOT
mov r8, rdi
lea rdx, str.Expected_provided_path___ws__to_start_with__ws
mov ecx, 4
call fcn.14000f424
jmp 0x140006788
test r15b, 0x10
je 0x140006b4b
mov rcx, rax
call fcn.140005174
mov byte [0x14003f8b9], al
mov rax, qword [0x14003f8e8]
mov rcx, r14
inc rcx
cmp word [rax + rcx*2], bx
jne 0x140006b4e
lea r15, [rcx*2 + 2]
lea r12, [r15 + 0x3c]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, r12
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
mov rsi, rax
test rax, rax
je 0x140006a02
mov dword [rax], 2
lea rcx, [rax + 0x14]
mov rdx, qword [0x14003f8e8]
mov r8, r15
call sub.msvcrt.dll_memcpy
lea rax, [rsp + 0x50]
mov dword [0x14003f8e0], r12d
mov qword [0x14003f8d8], rsi
inc r14
cmp word [rax + r14*2], bx
jne 0x140006bbe
lea r14, [r14*2 + 2]
lea r15, [r14 + 0x3c]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, r15
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
mov rsi, rax
test rax, rax
je 0x140006a02
mov r12d, 2
lea rcx, [rax + 0x14]
mov r8, r14
mov dword [rax], r12d
lea rdx, [rsp + 0x50]
call sub.msvcrt.dll_memcpy
mov dword [0x14003f8a8], r15d
mov qword [0x14003f8a0], rsi
test rdi, rdi
je 0x140006d41
lea rax, str.System32_bootstr.dll
mov edx, 0x104
lea rcx, [rbp + 0x3e0]
cmp byte [rsp + 0x40], bl
jne 0x140006c73
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x160]
lea r8, str._s_s_s
mov qword [rsp + 0x20], rdi
call qword [sym.imp.msvcrt.dll_swprintf_s]
nop dword [rax + rax]
jmp 0x140006ca1
mov qword [rsp + 0x30], rax
lea r9, str._GLOBALROOT
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rdi
lea r8, str._s_s_s_s
mov qword [rsp + 0x20], rax
call qword [sym.imp.msvcrt.dll_swprintf_s]
nop dword [rax + rax]
lea rdx, [rsp + 0x44]
mov rcx, r13
call fcn.1400136dc
test eax, eax
lea rcx, [rbp + 0x3e0]
movzx edx, bx
cmovns dx, word [rsp + 0x44]
mov word [0x14003f8c0], dx
call fcn.140026340
mov qword [0x14003f8b0], rax
test rax, rax
jne 0x140006d41
mov r8d, r12d
lea rcx, [rbp + 0x3e0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
nop dword [rax + rax]
mov qword [0x14003f8b0], rax
test rax, rax
jne 0x140006d41
mov ebx, 0xc0000001
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
lea r8, [rbp + 0x3e0]
mov ecx, 4
mov r9d, eax
lea rdx, str.BCD_strings_MUI_load_failure__ws___u_.
call fcn.14000f424
mov r8d, ebx
lea rdx, str.Failed_to_initialize_global_state._Status____x_
mov ecx, 4
call fcn.14000f424
call fcn.14000653c
mov eax, ebx
mov rcx, qword [rbp + 0x800]
xor rcx, rsp
call fcn.140026f10
mov rbx, qword [rsp + 0x968]
add rsp, 0x910
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1400270e8
int3