Function at 0x140007920
Capabilities:
Get disk information

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x858]
sub rsp, 0x930
mov qword [rbp - 0x10], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1400d5010]
xor rax, rsp
mov qword [rbp + 0x820], rax
mov r13, rcx
lea rax, [0x140093ad0]
mov qword [rsp + 0x20], rax
lea rax, [0x140093ad8]
mov qword [rsp + 0x28], rax
lea rax, [0x140093ae0]
mov qword [rsp + 0x30], rax
lea rax, [0x140093ae8]
mov qword [rsp + 0x38], rax
lea rax, [0x140093af0]
mov qword [rsp + 0x40], rax
lea rax, [0x140093af8]
mov qword [rsp + 0x48], rax
lea rax, [0x140093b00]
mov qword [rsp + 0x50], rax
lea rax, [0x140093b08]
mov qword [rsp + 0x58], rax
lea rax, [0x140093b10]
mov qword [rsp + 0x60], rax
lea rax, [0x140093b18]
mov qword [rsp + 0x68], rax
lea rax, [0x140093b20]
mov qword [rsp + 0x70], rax
lea rax, [0x140093b28]
mov qword [rsp + 0x78], rax
lea rax, [0x140093b30]
mov qword [rbp - 0x80], rax
lea rax, [0x140093b38]
mov qword [rbp - 0x78], rax
lea rax, [0x140093b40]
mov qword [rbp - 0x70], rax
lea rax, [0x140093b48]
mov qword [rbp - 0x68], rax
lea rax, [0x140093b50]
mov qword [rbp - 0x60], rax
lea rax, [0x140093b58]
mov qword [rbp - 0x58], rax
lea rax, [0x140093b60]
mov qword [rbp - 0x50], rax
lea rax, [0x140093b68]
mov qword [rbp - 0x48], rax
lea rax, [0x140093b70]
mov qword [rbp - 0x40], rax
lea rax, [0x140093b78]
mov qword [rbp - 0x38], rax
lea rax, [0x140093b80]
mov qword [rbp - 0x30], rax
lea rax, [0x140093b88]
mov qword [rbp - 0x28], rax
lea rax, [0x140093b90]
mov qword [rbp - 0x20], rax
lea rax, [0x140093b98]
mov qword [rbp - 0x18], rax
xor r12d, r12d
mov r15d, r12d
mov r14d, r12d
or rsi, 0xffffffffffffffff
nop dword [rax]
mov r8d, 0x400
lea rdx, [rbp + 0x20]
mov rcx, qword [rsp + r14*8 + 0x20]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_QueryDosDeviceW]
test eax, eax
je 0x140007c16
call fcn.140004150
test rax, rax
je 0x140007d52
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rdi, [rax + 0x18]
mov qword [rbp - 8], rdi
lea rcx, [rbp + 0x20]
lea rax, [rbp + 0x20]
test rax, 0xffffffffffff0000
jne 0x140007b0c
movzx ebx, cx
mov ecx, ebx
call fcn.1400055d0
test rax, rax
je 0x140007b31
mov r8d, ebx
mov rdx, rax
lea rcx, [rbp - 8]
call fcn.140005290
jmp 0x140007b2d
lea rcx, [rbp + 0x20]
mov rax, rsi
inc rax
cmp word [rcx + rax*2], 0
jne 0x140007b13
mov r8d, eax
lea rdx, [rbp + 0x20]
lea rcx, [rbp - 8]
call fcn.140003c30
mov rdi, qword [rbp - 8]
mov rcx, qword [r13]
sub rcx, 0x18
call fcn.140005200
lea rbx, [rax + 0x18]
mov qword [rbp], rbx
cmp dword [rbx - 0x10], 0xa
jge 0x140007b50
mov eax, esi
jmp 0x140007b6f
lea rcx, [rbx + 0x14]
lea rdx, [0x140094594]
call fcn.14007e078
test rax, rax
jne 0x140007b69
mov eax, esi
jmp 0x140007b6f
sub rax, rbx
sar rax, 1
xor ecx, ecx
mov qword [rbp + 0x10], rcx
mov r8d, eax
lea rdx, [rbp + 0x10]
lea rcx, [rbp]
call fcn.140009b30
nop
test rdi, rdi
je 0x140007d47
mov rax, qword [rbp + 0x10]
mov rcx, rax
mov r8, rdi
sub r8, rax
nop dword [rax]
movzx edx, word [rcx]
cmp dx, word [rcx + r8]
jne 0x140007bb8
add rcx, 2
test dx, dx
jne 0x140007ba0
mov ecx, r12d
jmp 0x140007bbd
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x140007c2b
lea rdx, [rax - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140007bdb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140007bf9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 8]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140007c16
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
inc r15d
inc r14
cmp r14, 0x1a
jge 0x140007d5d
jmp 0x140007aa0
movsxd rax, r15d
mov r14, qword [rsp + rax*8 + 0x20]
call fcn.140004150
mov rcx, rax
test rax, rax
jne 0x140007c4b
mov ecx, 0x80004005
call fcn.140003ec0
int3
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rbp + 8], rbx
test r14, r14
je 0x140007c9d
test r14, 0xffffffffffff0000
jne 0x140007c89
movzx r14d, r14w
mov ecx, r14d
call fcn.1400055d0
test rax, rax
je 0x140007cb3
mov r8d, r14d
mov rdx, rax
lea rcx, [rbp + 8]
call fcn.140005290
jmp 0x140007caf
mov rax, rsi
nop dword [rax]
inc rax
cmp word [r14 + rax*2], 0
jne 0x140007c90
jmp 0x140007ca0
mov eax, r12d
mov r8d, eax
mov rdx, r14
lea rcx, [rbp + 8]
call fcn.140003c30
mov rbx, qword [rbp + 8]
mov r8, rbx
mov rdx, rdi
lea rcx, [rbp]
call fcn.140009d50
lea rdx, [rbp]
mov rcx, r13
call fcn.14000a080
mov r12d, 1
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, r12d
jg 0x140007cee
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x10]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140007d0c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140007d2a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 8]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x140007d5d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x140007d5d
mov ecx, 0x80004005
call fcn.140003ec0
nop
mov ecx, 0x80004005
call fcn.140003ec0
int3
mov eax, r12d
mov rcx, qword [rbp + 0x820]
xor rcx, rsp
call fcn.140076320
lea r11, [rsp + 0x930]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret