Function at 0x140042500
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov r12, r8
mov r15, rdx
mov r14, rcx
xor sil, sil
mov rcx, rdx
call fcn.1400336e0
xor r13d, r13d
mov dword [r12], r13d
mov rcx, r14
call fcn.140040480
lea edx, [r13 + 0x5c]
mov rcx, r14
call fcn.14003a4d0
lea edi, [r13 - 1]
test al, al
jne 0x1400425c2
call fcn.140008400
mov r10, qword [rax]
mov byte [rsp + 0x30], 1
mov byte [rsp + 0x28], sil
mov byte [rsp + 0x20], sil
mov r9d, edi
mov r8d, edi
lea rdx, [0x14013320c]
mov rcx, rax
call qword [r10 + 0x28]
mov rbx, rax
mov qword [rsp + 0x90], rax
lea rdx, [rsp + 0x90]
mov rcx, r14
call fcn.140033880
nop
lea rdx, [rbx - 0x18]
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1400425c2
mov eax, dword [rdx + 0x10]
cmp eax, edi
je 0x1400425b8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400425c2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rax, qword [r14]
cmp dword [rax - 0x10], 3
jne 0x140042739
cmp word [rax + 2], 0x3a
jne 0x140042739
cmp word [rax + 4], 0x5c
jne 0x140042739
mov rbx, qword [r15]
mov rcx, qword [rbx - 0x18]
mov eax, dword [rbx - 8]
mov ebp, 1
cmp eax, ebp
jle 0x140042638
mov rax, qword [rcx]
mov byte [rsp + 0x30], bpl
mov byte [rsp + 0x28], bpl
mov byte [rsp + 0x20], bpl
mov r9d, 0x820
mov r8d, dword [rbx - 0x10]
mov rdx, qword [r15]
call qword [rax + 0x28]
mov rcx, rax
mov qword [r15], rax
mov eax, edi
xchg dword [rcx - 8], eax
mov eax, dword [rbx - 8]
cmp eax, 0x7ffffc17
je 0x1400426b9
mov eax, dword [rbx - 8]
jmp 0x140042694
cmp dword [rbx - 0xc], 0x820
jg 0x1400426b4
mov eax, 0x820
mov r9d, ebp
nop dword [rax]
add r9d, r9d
shr eax, 1
jne 0x140042650
mov rdx, qword [r15]
mov eax, dword [rbx - 8]
mov r10, qword [rcx]
cmp eax, 0xffffffff
setne al
mov byte [rsp + 0x30], bpl
mov byte [rsp + 0x28], al
mov byte [rsp + 0x20], 0
mov r8d, dword [rbx - 0x10]
call qword [r10 + 0x28]
mov rcx, rax
mov qword [r15], rax
mov eax, edi
xchg dword [rcx - 8], eax
mov eax, dword [rbx - 8]
cmp eax, 0x7ffffc17
je 0x1400426b9
mov eax, dword [rbx - 8]
cmp eax, 0xffffffff
je 0x1400426a4
mov eax, edi
lock xadd dword [rbx - 8], eax
sub eax, ebp
jg 0x1400426b9
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
lea rdx, [rbx - 0x18]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1400426b9
mov eax, edi
xchg dword [rbx - 8], eax
mov dword [rsp + 0x38], r13d
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r13
mov r9, r12
mov r8d, 0x820
mov rdx, qword [r15]
mov rcx, qword [r14]
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov r8d, eax
test eax, eax
setne sil
mov rdx, qword [r15]
test rdx, rdx
jne 0x1400426f8
mov ecx, r13d
jmp 0x140042714
mov rcx, rdx
nop dword [rax + rax]
movzx eax, word [rcx]
add rcx, 2
test ax, ax
jne 0x140042700
sub rcx, rdx
sar rcx, 1
dec ecx
mov dword [rdx - 0x10], ecx
mov eax, dword [rdx - 8]
cmp eax, 0xffffffff
jne 0x140042722
xchg dword [rdx - 8], ebp
test r8d, r8d
jne 0x140042739
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, r15
call fcn.1400336e0
mov dword [r12], r13d
mov rdx, qword [r14]
sub rdx, 0x18
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x140042766
mov ecx, dword [rdx + 0x10]
cmp ecx, 0xffffffff
je 0x14004275c
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x140042766
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
movzx eax, sil
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret