Function at 0x10014830c
Capabilities:
Get disk information

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
xor r15d, r15d
mov r14, rdx
mov rsi, rcx
mov rbx, r15
mov qword [rax - 0x50], r15
mov rbp, r15
mov qword [rax - 0x48], rbx
mov dword [rax - 0x58], r15d
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x100148370
test byte [rcx + 0x1c], 0x20
je 0x100148370
cmp byte [rcx + 0x19], 4
jb 0x100148370
mov rcx, qword [rcx + 0x10]
lea edx, [r15 + 0x17]
lea r8, [0x100002bd0]
call fcn.10001c854
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov r12d, eax
cmp eax, r15d
jne 0x100148398
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx edi, ax
or edi, 0x80070000
cmp eax, r15d
cmovle edi, eax
jmp 0x1001485a8
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
sub ecx, 2
cmp word [rsi + rcx*2], 0x5c
mov rcx, rsi
je 0x1001483c7
lea r8, [rsp + 0x28]
lea rdx, [0x100002934]
call fcn.10009bb88
jmp 0x1001483d4
lea rdx, [rsp + 0x28]
xor r8d, r8d
call fcn.10009bac4
cmp eax, r15d
mov r13, qword [rsp + 0x28]
mov edi, eax
jl 0x10014858c
lea r9, [rsp + 0x98]
xor r8d, r8d
xor edx, edx
mov rcx, r13
mov word [rsp + 0x90], r15w
call qword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
cmp eax, r15d
jne 0x100148429
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
je 0x100148429
movzx edi, ax
or edi, 0x80070000
cmp eax, r15d
cmovle edi, eax
jmp 0x10014858c
mov ecx, dword [rsp + 0x98]
add rcx, rcx
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov rsi, rax
cmp rax, r15
jne 0x10014844b
mov edi, 0x8007000e
jmp 0x10014857e
mov r8d, dword [rsp + 0x98]
lea r9, [rsp + 0x20]
mov rdx, rax
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
cmp eax, r15d
jne 0x100148483
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx edi, ax
or edi, 0x80070000
cmp eax, r15d
cmovle edi, eax
jmp 0x10014857e
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
dec rcx
cmp ecx, r15d
je 0x1001484dc
lea eax, [rcx + 1]
mov edi, eax
lea rcx, [rax + rax]
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov rbp, rax
cmp rax, r15
jne 0x1001484bb
mov edi, 0x8007000e
jmp 0x100148570
mov r8, rsi
mov rdx, rdi
mov rcx, rax
call fcn.1000c23ac
cmp eax, r15d
mov edi, eax
jl 0x100148570
mov rbx, rbp
mov rbp, r15
jmp 0x100148543
mov eax, 1
mov edi, r15d
test r12d, eax
je 0x1001484f4
inc edi
add eax, eax
cmp edi, 0x1a
jb 0x1001484e4
jmp 0x10014852e
lea r8, [rsp + 0x30]
lea rdx, [0x100015bdc]
lea rcx, [rsp + 0x90]
add di, 0x41
mov word [rsp + 0x92], r15w
mov word [rsp + 0x90], di
call fcn.10009bb88
mov rbx, qword [rsp + 0x30]
cmp eax, r15d
mov edi, eax
jl 0x10014857e
mov rdx, r13
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetVolumeMountPointW]
cmp eax, r15d
je 0x100148469
mov rcx, qword [0x100166698]
cmp rcx, r15
je 0x100148555
call qword [sym.imp.ole32.dll_CoTaskMemFree]
lea r8, [0x100166698]
mov rdx, r14
mov rcx, rbx
mov qword [0x100166698], r15
call fcn.10009bb88
mov edi, eax
cmp rbp, r15
je 0x10014857e
mov rcx, rbp
call qword [sym.imp.ole32.dll_CoTaskMemFree]
cmp rsi, r15
je 0x10014858c
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
cmp r13, r15
je 0x10014859a
mov rcx, r13
call qword [sym.imp.ole32.dll_CoTaskMemFree]
cmp rbx, r15
je 0x1001485a8
mov rcx, rbx
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x1001485dc
test byte [rcx + 0x1c], 0x20
je 0x1001485dc
cmp byte [rcx + 0x19], 4
jb 0x1001485dc
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002bd0]
mov edx, 0x18
call fcn.10001c854
mov eax, edi
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret