Function at 0x14013c78c
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
xor r13d, r13d
mov rbx, rcx
mov edi, r13d
mov qword [rbp - 0x10], r13
mov qword [rbp - 0x18], r13
mov r14d, r13d
mov dword [rbp - 0x20], r13d
mov rcx, qword [0x1401720a0]
lea rax, [0x1401720a0]
cmp rcx, rax
je 0x14013c7f3
test byte [rcx + 0x1c], 0x20
je 0x14013c7f3
cmp byte [rcx + 0x19], 4
jb 0x14013c7f3
mov rcx, qword [rcx + 0x10]
lea edx, [r13 + 0x17]
lea r8, [0x14015c668]
call fcn.140004b74
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov r12d, eax
test eax, eax
jne 0x14013c819
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
jmp 0x14013c9f6
or rsi, 0xffffffffffffffff
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r13w
jne 0x14013c820
dec eax
mov rcx, rbx
cmp word [rbx + rax*2], 0x5c
je 0x14013c848
lea r8, [rbp - 0x18]
lea rdx, [0x140149494]
call fcn.140084fcc
jmp 0x14013c854
xor r8d, r8d
lea rdx, [rbp - 0x18]
call fcn.140084ef8
mov r15, qword [rbp - 0x18]
mov ebx, eax
test eax, eax
js 0x14013c9da
lea r9, [rbp + 0x58]
mov word [rbp + 0x50], r13w
xor r8d, r8d
xor edx, edx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
test eax, eax
jne 0x14013c89d
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
je 0x14013c89d
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
jmp 0x14013c9da
mov ecx, dword [rbp + 0x58]
add rcx, rcx
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
xor ebx, ebx
mov r13, rax
test rax, rax
jne 0x14013c8bd
mov ebx, 0x8007000e
jmp 0x14013c9da
mov r8d, dword [rbp + 0x58]
lea r9, [rbp - 0x20]
mov rdx, rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
test eax, eax
jne 0x14013c8ee
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
jmp 0x14013c9d1
inc rsi
cmp word [r13 + rsi*2], bx
jne 0x14013c8ee
test esi, esi
je 0x14013c940
lea eax, [rsi + 1]
lea rcx, [rax + rax]
mov ebx, eax
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
xor esi, esi
mov r14, rax
test rax, rax
jne 0x14013c920
mov ebx, 0x8007000e
jmp 0x14013c9d1
mov r8, r13
mov rdx, rbx
mov rcx, rax
call fcn.14003ac00
mov ebx, eax
test eax, eax
js 0x14013c9c3
mov rdi, r14
mov r14, rsi
jmp 0x14013c995
mov eax, 1
xor esi, esi
test r12d, eax
je 0x14013c957
add eax, eax
inc ebx
cmp ebx, 0x1a
jb 0x14013c947
jmp 0x14013c981
add bx, 0x41
mov word [rbp + 0x52], si
lea r8, [rbp - 0x10]
mov word [rbp + 0x50], bx
lea rdx, [0x14015c644]
lea rcx, [rbp + 0x50]
call fcn.140084fcc
mov rdi, qword [rbp - 0x10]
mov ebx, eax
test eax, eax
js 0x14013c9d1
mov rdx, r15
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetVolumeMountPointW]
test eax, eax
je 0x14013c8d5
mov rcx, qword [0x1401744e0]
test rcx, rcx
je 0x14013c9a7
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rdx, qword [rbp + 0x48]
lea r8, [0x1401744e0]
mov rcx, rdi
mov qword [0x1401744e0], rsi
call fcn.140084fcc
mov ebx, eax
test r14, r14
je 0x14013c9d1
mov rcx, r14
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, r13
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test r15, r15
je 0x14013c9e8
mov rcx, r15
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test rdi, rdi
je 0x14013c9f6
mov rcx, rdi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [0x1401720a0]
lea rax, [0x1401720a0]
cmp rcx, rax
je 0x14013ca2a
test byte [rcx + 0x1c], 0x20
je 0x14013ca2a
cmp byte [rcx + 0x19], 4
jb 0x14013ca2a
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015c668]
mov edx, 0x18
call fcn.140004b74
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