Function at 0x140017d50
Capabilities:
Get disk information

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov qword [rax - 0x58], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov rbx, rdx
mov r13, rcx
mov dword [rax + 0x18], 0x105
lea rdx, [0x1401336e4]
mov ecx, 0x20a
call fcn.1400af724
mov r15, rax
test rax, rax
je 0x140018060
nop dword [rax + rax]
lea r9, [rsp + 0x90]
mov r8d, dword [rsp + 0x90]
mov rdx, r15
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
test eax, eax
jne 0x140017dfc
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
jne 0x140018053
mov rcx, r15
call fcn.1400aee84
mov ecx, dword [rsp + 0x90]
add rcx, rcx
lea rdx, [0x1401336e4]
call fcn.1400af724
mov r15, rax
test rax, rax
jne 0x140017da0
jmp 0x140018060
mov rsi, r15
cmp word [r15], 0
je 0x140018053
movabs r12, 0x1fffffffffffffff
xor r14d, r14d
call fcn.140004650
mov ecx, r14d
test rax, rax
setne cl
test ecx, ecx
je 0x140018048
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x98], rbx
test rsi, 0xffffffffffff0000
jne 0x140017e71
movzx edi, si
xor edx, edx
mov ecx, edi
call fcn.140002cd0
test rax, rax
je 0x140017e9a
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x98]
call fcn.1400050f0
jmp 0x140017e92
or rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2], 0
jne 0x140017e75
mov r8d, eax
mov rdx, rsi
lea rcx, [rsp + 0x98]
call fcn.140007830
mov rbx, qword [rsp + 0x98]
mov r8, qword [r13 + 0x40]
lea rax, [rsp + 0x98]
cmp rax, r8
jae 0x140017f64
mov rcx, qword [r13 + 0x38]
lea rax, [rsp + 0x98]
cmp rcx, rax
ja 0x140017f64
lea rbp, [rsp + 0x98]
sub rbp, rcx
sar rbp, 3
mov r9, qword [r13 + 0x48]
cmp r8, r9
jne 0x140017f34
mov rax, r9
sub rax, r8
sar rax, 3
cmp rax, 1
jae 0x140017f34
sub r8, rcx
sar r8, 3
mov rax, r12
sub rax, r8
cmp rax, 1
jb 0x14001802e
inc r8
sub r9, rcx
sar r9, 3
mov rcx, r9
shr rcx, 1
mov rax, r12
sub rax, rcx
lea rdx, [rcx + r9]
cmp rax, r9
cmovb rdx, r14
cmp rdx, r8
cmovb rdx, r8
lea rcx, [r13 + 0x38]
call fcn.140011ad0
mov rax, qword [r13 + 0x38]
mov r14, qword [r13 + 0x40]
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], r14
test r14, r14
je 0x140017f5f
mov rcx, qword [rax + rbp*8]
sub rcx, 0x18
call fcn.14000de20
add rax, 0x18
mov qword [r14], rax
jmp 0x140017fec
mov r9, qword [r13 + 0x48]
cmp r8, r9
jne 0x140017fc9
mov rax, r9
sub rax, r8
sar rax, 3
cmp rax, 1
jae 0x140017fc9
mov rcx, qword [r13 + 0x38]
sub r8, rcx
sar r8, 3
mov rax, r12
sub rax, r8
cmp rax, 1
jb 0x14001803b
inc r8
sub r9, rcx
sar r9, 3
mov rcx, r9
shr rcx, 1
mov rax, r12
sub rax, rcx
lea rdx, [rcx + r9]
cmp rax, r9
cmovb rdx, r14
cmp rdx, r8
cmovb rdx, r8
lea rcx, [r13 + 0x38]
call fcn.140011ad0
mov r14, qword [r13 + 0x40]
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r14
test r14, r14
je 0x140017fec
lea rcx, [rbx - 0x18]
call fcn.14000de20
add rax, 0x18
mov qword [r14], rax
add qword [r13 + 0x40], 8
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001800b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.imgengine.dll_Ordinal_8]
or rax, 0xffffffffffffffff
nop
lea rax, [rax + 1]
cmp word [rsi + rax*2], 0
jne 0x140018010
lea rsi, [rsi + rax*2]
add rsi, 2
cmp word [rsi], 0
je 0x140018053
jmp 0x140017e14
lea rcx, str.vector_T__too_long
call fcn.1400ad044
int3
lea rcx, str.vector_T__too_long
call fcn.1400ad044
nop
mov ecx, 0x80004005
call fcn.140003970
int3
test r15, r15
je 0x140018060
mov rcx, r15
call fcn.1400aee84
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret