Function at 0x180007b30
Capabilities:
Get disk information

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x468]
sub rsp, 0x540
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov rax, qword [0x180058500]
xor rax, rsp
mov qword [rbp + 0x430], rax
xor r12d, r12d
mov esi, r12d
mov qword [rsp + 0x20], r12
mov ebx, r12d
mov qword [rsp + 0x28], rbx
mov r14d, r12d
mov qword [rsp + 0x30], r12
lea rdx, [rbp + 0x220]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
je 0x1800080bc
lea r15, [rbp + 0x220]
movabs rdi, 0x38e38e38e38e38e
movabs r13, 0xe38e38e38e38e39
movzx eax, word [r15]
test ax, ax
je 0x1800080bc
mov word [rbp], ax
mov dword [rbp + 2], 0x3a
mov r8d, 0x104
lea rdx, [rbp + 0x10]
lea rcx, [rbp]
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
test eax, eax
je 0x18000806d
mov qword [rbp - 0x28], 7
mov qword [rbp - 0x30], r12
mov word [rbp - 0x40], r12w
cmp word [rbp], 0
jne 0x180007c11
mov r8, r12
jmp 0x180007c2b
lea rax, [rbp]
or r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x180007c20
lea rdx, [rbp]
lea rcx, [rbp - 0x40]
call fcn.180001e65
nop
mov qword [rsp + 0x68], 7
mov qword [rsp + 0x60], r12
mov word [rsp + 0x50], r12w
mov qword [rbp - 0x78], 7
mov qword [rbp - 0x80], r12
mov word [rsp + 0x70], r12w
mov qword [rbp - 0x70], r12
mov r8d, 1
lea rdx, [0x180043e1c]
lea rcx, [rbp - 0x40]
call fcn.180001d70
cmp word [rbp + 0x10], 0
jne 0x180007c85
mov r8, r12
jmp 0x180007c9b
lea rax, [rbp + 0x10]
or r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x180007c90
lea rdx, [rbp + 0x10]
lea rcx, [rsp + 0x50]
call fcn.180001e65
cmp word [rbp], 0
jne 0x180007cb5
mov r8, r12
jmp 0x180007ccb
lea rax, [rbp]
or r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x180007cc0
lea rdx, [rbp]
lea rcx, [rsp + 0x70]
call fcn.180001e65
lea rcx, [rbp + 0x10]
or rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], 0
jne 0x180007ce1
mov qword [rbp - 0x70], rax
lea rax, [rsp + 0x50]
cmp rax, rbx
jae 0x180007e00
lea rax, [rsp + 0x50]
cmp rsi, rax
ja 0x180007e00
lea rcx, [rsp + 0x50]
sub rcx, rsi
mov rax, r13
imul rcx
mov rdi, rdx
sar rdi, 2
mov rax, rdi
shr rax, 0x3f
add rdi, rax
cmp rbx, r14
jne 0x180007ddc
mov rcx, r14
sub rcx, rbx
mov rax, r13
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, 1
jae 0x180007ddc
sub rbx, rsi
mov rax, r13
imul rbx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movabs r9, 0x38e38e38e38e38e
mov rax, r9
sub rax, rdx
cmp rax, 1
jb 0x1800080a2
lea r8, [rdx + 1]
sub r14, rsi
mov rax, r13
imul r14
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov rcx, rdx
shr rcx, 1
mov rax, r9
sub rax, rcx
cmp rax, rdx
jae 0x180007db9
mov rdx, r12
jmp 0x180007dbc
add rdx, rcx
cmp rdx, r8
cmovb rdx, r8
lea rcx, [rsp + 0x20]
call fcn.180001b09
mov r14, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x20]
lea rax, [rdi + rdi*8]
lea rdx, [rsi + rax*8]
mov qword [rsp + 0x38], rbx
mov qword [rbp - 0x60], rbx
test rbx, rbx
je 0x180007dfb
mov rcx, rbx
call fcn.1800013ed
nop
jmp 0x180007f1a
cmp rbx, r14
jne 0x180007ea4
mov rcx, r14
sub rcx, rbx
mov rax, r13
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, 1
jae 0x180007ea4
sub rbx, rsi
mov rax, r13
imul rbx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov rax, rdi
sub rax, rdx
cmp rax, 1
jb 0x1800080af
lea r8, [rdx + 1]
sub r14, rsi
mov rax, r13
imul r14
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov rcx, rdx
shr rcx, 1
mov rax, rdi
sub rax, rcx
cmp rax, rdx
jae 0x180007e81
mov rdx, r12
jmp 0x180007e84
add rdx, rcx
cmp rdx, r8
cmovb rdx, r8
lea rcx, [rsp + 0x20]
call fcn.180001b09
mov r14, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x20]
mov qword [rbp - 0x60], rbx
mov qword [rsp + 0x38], rbx
test rbx, rbx
je 0x180007f1a
mov qword [rbx + 0x18], 7
mov qword [rbx + 0x10], r12
mov word [rbx], r12w
lea rdi, [rbx + 0x20]
mov qword [rdi + 0x18], 7
mov qword [rdi + 0x10], r12
mov word [rdi], r12w
lea rax, [rsp + 0x50]
cmp rbx, rax
je 0x180007ef4
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.180001a87
lea rax, [rsp + 0x70]
cmp rdi, rax
je 0x180007f12
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x70]
mov rcx, rdi
call fcn.180001a87
mov rax, qword [rbp - 0x70]
mov qword [rbx + 0x40], rax
add rbx, 0x48
mov qword [rsp + 0x28], rbx
lea rcx, [rbp - 0x40]
cmp qword [rbp - 0x28], 8
cmovae rcx, qword [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
add eax, 0xfffffffc
cmp eax, 1
jbe 0x18000800a
mov qword [rbp - 0x48], 7
mov qword [rbp - 0x50], r12
mov word [rbp - 0x60], r12w
mov qword [rbp - 8], 7
mov qword [rbp - 0x10], r12
mov word [rbp - 0x20], r12w
cmp word [rbp + 0x10], 0
jne 0x180007f71
mov r8, r12
jmp 0x180007f8b
lea rax, [rbp + 0x10]
or r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x180007f80
lea rdx, [rbp + 0x10]
lea rcx, [rbp - 0x20]
call fcn.180001e65
nop
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x20]
call fcn.1800079d0
movzx edi, al
cmp qword [rbp - 8], 8
jb 0x180007fb9
mov rcx, qword [rbp - 0x20]
call fcn.180017b68
test dil, dil
je 0x180007ff9
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x50]
call fcn.180001a87
mov rax, qword [rbp - 0x50]
mov qword [rbp - 0x70], rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x20]
call fcn.180001046
mov r14, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x20]
cmp qword [rbp - 0x48], 8
jb 0x18000800a
mov rcx, qword [rbp - 0x60]
call fcn.180017b68
nop
cmp qword [rbp - 0x78], 8
jb 0x18000801b
mov rcx, qword [rsp + 0x70]
call fcn.180017b68
mov qword [rbp - 0x78], 7
mov qword [rbp - 0x80], r12
mov word [rsp + 0x70], r12w
cmp qword [rsp + 0x68], 8
jb 0x18000803f
mov rcx, qword [rsp + 0x50]
call fcn.180017b68
mov qword [rsp + 0x68], 7
mov qword [rsp + 0x60], r12
mov word [rsp + 0x50], r12w
cmp qword [rbp - 0x28], 8
jb 0x180008063
mov rcx, qword [rbp - 0x40]
call fcn.180017b68
movabs rdi, 0x38e38e38e38e38e
or rax, 0xffffffffffffffff
lea rax, [rax + 1]
cmp word [r15 + rax*2], 0
jne 0x180008071
lea r15, [r15 + rax*2]
add r15, 2
lea rcx, [rbp + 0x220]
mov rax, r15
sub rax, rcx
sar rax, 1
cmp rax, 0x104
jae 0x1800080bc
jmp 0x180007bc0
lea rcx, str.vector_T__too_long
call fcn.18001769c
int3
lea rcx, str.vector_T__too_long
call fcn.18001769c
nop
lea rax, vtable.nfapi::AutoLock.0
mov qword [rbp - 0x60], rax
lea rdi, [0x18005a9d8]
mov qword [rbp - 0x58], rdi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
lea rdx, [rsp + 0x20]
lea rcx, [0x18005a9c0]
call fcn.180001613
nop
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
test rsi, rsi
je 0x18000815b
cmp rsi, rbx
je 0x180008153
lea rdi, [rsi + 0x38]
cmp qword [rdi], 8
jb 0x180008115
mov rcx, qword [rdi - 0x18]
call fcn.180017b68
mov qword [rdi], 7
mov qword [rdi - 8], r12
mov word [rdi - 0x18], r12w
cmp qword [rdi - 0x20], 8
jb 0x180008135
mov rcx, qword [rdi - 0x38]
call fcn.180017b68
mov qword [rdi - 0x20], 7
mov qword [rdi - 0x28], r12
mov word [rdi - 0x38], r12w
add rdi, 0x48
lea rax, [rdi - 0x38]
cmp rax, rbx
jne 0x180008106
mov rcx, rsi
call fcn.180017b68
mov rcx, qword [rbp + 0x430]
xor rcx, rsp
call fcn.180019420
lea r11, [rsp + 0x540]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret