Function at 0x18010f1e0
Capabilities:
Get disk information

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x90], rbx
mov rax, qword [0x1801903f8]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov r14, rdx
mov r13, rcx
or r8, 0xffffffffffffffff
xor edx, edx
mov rcx, r14
call fcn.1801115f8
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [r13], eax
mov r12d, 1
xor r15d, r15d
mov ebp, r15d
nop word [rax + rax]
test dword [r13], r12d
je 0x18010f3fa
mov eax, dword [0x18015baf8]
mov dword [rsp + 0x30], eax
movzx eax, word [0x18015bafc]
mov word [rsp + 0x34], ax
xor eax, eax
mov word [rsp + 0x36], ax
add word [rsp + 0x30], bp
call fcn.180032e40
mov ecx, r15d
test rax, rax
setne cl
test ecx, ecx
je 0x18010f42a
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea r10, [rax + 0x18]
mov qword [rsp + 0x20], r10
lea rcx, [rsp + 0x30]
lea rax, [rsp + 0x30]
test rax, 0xffffffffffff0000
jne 0x18010f2ce
movzx edi, cx
mov ecx, edi
call fcn.180035ed8
test rax, rax
je 0x18010f3c8
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.1800155c0
jmp 0x18010f3c8
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x30]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rdi, rcx
test ecx, ecx
jne 0x18010f348
lea rdx, [r10 - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x18010f3c8
cmp dword [rdx + 0x10], eax
jge 0x18010f31a
cmp dword [r10 - 0xc], eax
jl 0x18010f409
mov dword [r10 - 0x10], r15d
mov rax, qword [rsp + 0x20]
mov word [rax], r15w
jmp 0x18010f3c8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18010f331
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x20], rax
jmp 0x18010f3c8
mov esi, dword [r10 - 0x10]
lea rbx, [rsp + 0x30]
sub rbx, r10
sar rbx, 1
test ecx, ecx
js 0x18010f41f
mov ecx, 1
sub ecx, dword [r10 - 8]
mov eax, dword [r10 - 0xc]
sub eax, edi
or eax, ecx
jge 0x18010f383
mov edx, edi
lea rcx, [rsp + 0x20]
call fcn.180004860
mov r10, qword [rsp + 0x20]
movsxd rax, edi
movsxd rdx, dword [r10 - 0xc]
mov rcx, r10
add rdx, rdx
cmp rbx, rsi
lea rsi, [rax + rax]
mov r9, rsi
ja 0x18010f3a7
lea r8, [r10 + rbx*2]
call fcn.18007f2bc
jmp 0x18010f3b1
lea r8, [rsp + 0x30]
call fcn.18007f224
mov rax, qword [rsp + 0x20]
cmp edi, dword [rax - 0xc]
jg 0x18010f414
mov dword [rax - 0x10], edi
mov rax, qword [rsp + 0x20]
mov word [rsi + rax], r15w
lea r8, [rsp + 0x20]
mov rdx, qword [r14 + 0x10]
mov rcx, r14
call fcn.180111b44
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18010f3fa
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
inc ebp
add r12d, r12d
cmp ebp, 0x1a
jae 0x18010f435
jmp 0x18010f240
mov ecx, 0x80070057
call fcn.180004010
int3
mov ecx, 0x80070057
call fcn.180004010
int3
mov ecx, 0x80070057
call fcn.180004010
nop
mov ecx, 0x80004005
call fcn.180004010
int3
mov eax, 1
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.18007e1e0
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret