Function at 0x14014d6d8
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
xor r15d, r15d
mov r13, rdx
mov edi, r15d
mov qword [rbp - 0x10], r15
mov qword [rbp - 0x18], r15
mov rbx, rcx
mov dword [rbp - 0x20], r15d
mov rcx, qword [0x14017a048]
lea rax, [0x14017a048]
cmp rcx, rax
je 0x14014d73a
test byte [rcx + 0x1c], 0x20
je 0x14014d73a
cmp byte [rcx + 0x19], 4
jb 0x14014d73a
mov rcx, qword [rcx + 0x10]
lea edx, [r15 + 0x16]
lea r8, [0x14016acb0]
call fcn.140006b98
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
nop dword [rax + rax]
mov r12d, eax
test eax, eax
jne 0x14014d771
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
jle 0x14014d999
movzx ebx, ax
or ebx, 0x80070000
jmp 0x14014d999
or rsi, 0xffffffffffffffff
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r15w
jne 0x14014d778
dec eax
mov rcx, rbx
cmp word [rbx + rax*2], 0x5c
je 0x14014d7a0
lea r8, [rbp - 0x18]
lea rdx, [0x140157a78]
call fcn.14008bdcc
jmp 0x14014d7ac
xor r8d, r8d
lea rdx, [rbp - 0x18]
call fcn.14008c1cc
mov r14, qword [rbp - 0x18]
mov ebx, eax
test eax, eax
js 0x14014d971
lea r9, [rbp + 0x58]
mov word [rbp + 0x50], r15w
xor r8d, r8d
xor edx, edx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
nop dword [rax + rax]
test eax, eax
jne 0x14014d806
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
cmp eax, 0xea
je 0x14014d806
test eax, eax
jle 0x14014d971
movzx ebx, ax
or ebx, 0x80070000
jmp 0x14014d971
mov ecx, dword [rbp + 0x58]
add rcx, rcx
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
nop dword [rax + rax]
xor ebx, ebx
mov r15, rax
test rax, rax
jne 0x14014d82c
mov ebx, 0x8007000e
jmp 0x14014d971
mov r8d, dword [rbp + 0x58]
lea r9, [rbp - 0x20]
mov rdx, r15
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
nop dword [rax + rax]
test eax, eax
jne 0x14014d86e
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
jle 0x14014d962
movzx ebx, ax
or ebx, 0x80070000
jmp 0x14014d962
inc rsi
cmp word [r15 + rsi*2], bx
jne 0x14014d86e
test esi, esi
je 0x14014d8d2
lea eax, [rsi + 1]
lea rcx, [rax + rax]
mov ebx, eax
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
nop dword [rax + rax]
mov r11, rax
test rax, rax
jne 0x14014d8a3
mov ebx, 0x8007000e
jmp 0x14014d962
mov r8, r15
mov rdx, rbx
mov rcx, r11
call fcn.140038040
mov ebx, eax
test eax, eax
js 0x14014d8be
mov rdi, r11
xor ebx, ebx
jmp 0x14014d92f
mov rcx, r11
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
jmp 0x14014d962
mov ecx, 1
mov eax, ebx
test r12d, ecx
je 0x14014d8e9
add ecx, ecx
inc eax
cmp eax, 0x1a
jb 0x14014d8d9
jmp 0x14014d915
add ax, 0x41
mov word [rbp + 0x52], bx
lea r8, [rbp - 0x10]
mov word [rbp + 0x50], ax
lea rdx, [0x14016ac8c]
lea rcx, [rbp + 0x50]
call fcn.14008bdcc
mov rdi, qword [rbp - 0x10]
mov ebx, eax
test eax, eax
js 0x14014d962
xor ebx, ebx
mov rdx, r14
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetVolumeMountPointW]
nop dword [rax + rax]
test eax, eax
je 0x14014d84a
mov rcx, qword [0x14017c3f8]
test rcx, rcx
je 0x14014d947
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
lea r8, [0x14017c3f8]
mov qword [0x14017c3f8], rbx
mov rdx, r13
mov rcx, rdi
call fcn.14008bdcc
mov ebx, eax
mov rcx, r15
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
test r14, r14
je 0x14014d985
mov rcx, r14
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
test rdi, rdi
je 0x14014d999
mov rcx, rdi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, qword [0x14017a048]
lea rax, [0x14017a048]
cmp rcx, rax
je 0x14014d9cd
test byte [rcx + 0x1c], 0x20
je 0x14014d9cd
cmp byte [rcx + 0x19], 4
jb 0x14014d9cd
mov rcx, qword [rcx + 0x10]
lea r8, [0x14016acb0]
mov edx, 0x17
call fcn.140006b98
mov eax, ebx
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret