Function at 0x140006900
Capabilities:
Get disk information

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x540
mov qword [rsp + 0x80], 0xfffffffffffffffe
mov qword [rsp + 0x590], rbx
mov rax, qword [0x140197b10]
xor rax, rsp
mov qword [rsp + 0x530], rax
mov r15, rcx
xor r13d, r13d
mov edi, r13d
cmp rdx, 1
sete dil
mov dword [rsp + 0x50], edi
test edi, edi
cmovne rdx, r13
mov r12, r13
test rdx, rdx
je 0x140006972
mov eax, 0x3f
cmp ax, word [rdx]
jne 0x140006972
lea r12, [rdx + 2]
mov dword [rsp + 0x50], 1
call fcn.1400da76c
mov rcx, rax
mov eax, r13d
test rcx, rcx
setne al
test eax, eax
jne 0x140006992
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
lea rdx, [0x14013f478]
test rdx, 0xffffffffffff0000
jne 0x1400069d2
movzx edi, dx
mov ecx, edi
call fcn.1400dcc48
test rax, rax
je 0x1400069f0
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.140002350
jmp 0x1400069f0
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x58]
call fcn.140002570
nop
mov rcx, qword [r15 + 0xc0]
mov r9, 0xffffffffffff0000
xor r8d, r8d
mov edx, 0x1101
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
mov word [rsp + 0x3b0], r13w
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x60], r13
xor edx, edx
mov r8d, 0x320
lea rcx, [rsp + 0x90]
call fcn.14010c6c0
mov edi, r13d
mov dword [rsp + 0x54], r13d
lea rdx, [rsp + 0x3b0]
mov ecx, 0x180
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov rcx, qword [r15 + 0xb0]
mov qword [rsp + 0x78], rcx
mov rdx, qword [rcx + 0x10]
mov qword [rsp + 0x70], rdx
mov rbp, r13
mov r14, r13
mov r8d, 0x42
test edx, edx
jle 0x140006cb9
nop dword [rax]
test rbp, rbp
js 0x140006cb3
mov rax, qword [rcx + 0x10]
cmp rbp, rax
jge 0x140006cb3
mov rsi, qword [rcx + 8]
mov rbx, qword [rsi + rbp*8]
lea rcx, [rbp + 1]
test rcx, rcx
js 0x140006cad
cmp rcx, rax
jge 0x140006cad
mov rsi, qword [rsi + rbp*8 + 8]
test rsi, rsi
je 0x140006ac6
cmp word [rsi], 0
cmove rsi, r13
mov rdi, r13
test r14, r14
jle 0x140006af6
nop
mov rdx, qword [rsp + rdi*8 + 0x90]
mov rcx, rbx
call fcn.14010c4b4
test eax, eax
je 0x140006c7b
inc rdi
cmp rdi, r14
jl 0x140006ad0
mov r8d, 0x42
movzx eax, word [rbx]
mov ecx, 0xffdf
and ax, cx
mov ecx, 0x41
cmp cx, ax
je 0x140006b11
cmp r8w, ax
jne 0x140006b25
movzx ecx, ax
sub ecx, 0x41
call fcn.1400040a0
cmp eax, 1
je 0x140006c81
mov qword [rsp + r14*8 + 0x90], rbx
mov edi, dword [rsp + 0x54]
inc edi
mov dword [rsp + 0x54], edi
inc r14
mov dword [rsp + 0x20], 1
mov r9, rsi
mov r8, rbx
mov rdx, 0xffffffffffff0000
mov rcx, r15
call fcn.140005aa0
mov rsi, rax
test rax, rax
je 0x140006c8b
cmp qword [rsp + 0x60], 0
jne 0x140006b75
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rax
test r12, r12
je 0x140006bdc
cmp word [r12], 0
cmove r12, rbx
test r12, r12
je 0x140006bdc
mov rdx, r12
mov rcx, rbx
call fcn.14010c4b4
test eax, eax
jne 0x140006bdc
or dword [rsp + 0x50], 0x20
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, rbx
lea rcx, [rsp + 0x58]
call fcn.140002570
mov rcx, qword [r15 + 0xc0]
mov r9, rsi
mov edx, 0x110b
mov r8d, 9
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
cmp dword [rsp + 0x50], 1
jne 0x140006c2a
mov dword [rsp + 0x50], 0x11
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, rbx
lea rcx, [rsp + 0x58]
call fcn.140002570
mov rcx, qword [r15 + 0xc0]
mov r9, rsi
mov edx, 0x110b
mov r8d, 9
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, rbx
mov rcx, r15
call fcn.1400060c0
test eax, eax
je 0x140006c87
mov qword [rsp + 0x48], 0xffffffffffff0002
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, [0x14014f7a8]
lea edx, [r9 + 0x23]
mov rcx, qword [r15 + 0xc0]
call fcn.1400d9854
mov edi, dword [rsp + 0x54]
jmp 0x140006c8b
mov edi, dword [rsp + 0x54]
jmp 0x140006c8b
mov edi, dword [rsp + 0x54]
jmp 0x140006c8b
mov edi, dword [rsp + 0x54]
add rbp, 2
mov rdx, qword [rsp + 0x70]
movsxd rax, edx
cmp rbp, rax
mov rcx, qword [rsp + 0x78]
mov r8d, 0x42
jl 0x140006a80
jmp 0x140006cb9
call fcn.1400d020c
int3
call fcn.1400d020c
int3
lea rbx, [rsp + 0x3b0]
mov rax, qword [r15 + 0xb8]
cmp dword [rax + 0x1a4], 0
jne 0x140006cd9
test edx, edx
jg 0x140006edd
movsxd rsi, edi
cmp word [rsp + 0x3b0], 0
je 0x140006eb0
mov r14d, 0x42
mov rdi, r13
test rsi, rsi
jle 0x140006d20
nop dword [rax]
mov rdx, qword [rsp + rdi*8 + 0x90]
mov rcx, rbx
call fcn.14010c4b4
test eax, eax
je 0x140006e95
inc rdi
cmp rdi, rsi
jl 0x140006d00
movzx eax, word [rbx]
mov ecx, 0xffdf
and ax, cx
mov ecx, 0x41
cmp cx, ax
je 0x140006d3b
cmp r14w, ax
jne 0x140006d4f
movzx ecx, ax
sub ecx, 0x41
call fcn.1400040a0
cmp eax, 1
je 0x140006e95
mov qword [rsp + rsi*8 + 0x90], rbx
inc rsi
mov dword [rsp + 0x20], 1
xor r9d, r9d
mov r8, rbx
mov rdx, 0xffffffffffff0000
mov rcx, r15
call fcn.140005aa0
mov rbp, rax
test rax, rax
je 0x140006e95
cmp qword [rsp + 0x60], 0
jne 0x140006d95
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rax
test r12, r12
je 0x140006dfc
cmp word [r12], 0
cmove r12, rbx
test r12, r12
je 0x140006dfc
mov rdx, r12
mov rcx, rbx
call fcn.14010c4b4
test eax, eax
jne 0x140006dfc
or dword [rsp + 0x50], 0x20
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, rbx
lea rcx, [rsp + 0x58]
call fcn.140002570
mov rcx, qword [r15 + 0xc0]
mov r9, rbp
mov edx, 0x110b
mov r8d, 9
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
cmp dword [rsp + 0x50], 1
jne 0x140006e4a
mov dword [rsp + 0x50], 0x11
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, rbx
lea rcx, [rsp + 0x58]
call fcn.140002570
mov rcx, qword [r15 + 0xc0]
mov r9, rbp
mov edx, 0x110b
mov r8d, 9
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, rbx
mov rcx, r15
call fcn.1400060c0
test eax, eax
je 0x140006e95
mov qword [rsp + 0x48], 0xffffffffffff0002
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, [0x14014f7a8]
lea edx, [r9 + 0x23]
mov rcx, qword [r15 + 0xc0]
call fcn.1400d9854
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cdqe
lea rbx, [rbx + rax*2]
cmp word [rbx], 0
jne 0x140006cf1
movzx eax, byte [0x140195170]
mov ecx, eax
mov edx, 2
cmp al, 0xff
cmove ecx, edx
mov byte [0x140195170], cl
movzx eax, byte [0x140195171]
mov ecx, eax
cmp al, 0xff
cmove ecx, edx
mov byte [0x140195171], cl
mov edi, dword [rsp + 0x50]
test dil, 0x20
jne 0x140006f45
mov rbx, qword [rsp + 0x68]
test rbx, rbx
je 0x140006f45
or edi, 0x20
mov dword [rsp + 0x50], edi
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x140006f19
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r13d, [rcx - 1]
mov edi, dword [rsp + 0x50]
mov r8d, r13d
lea rcx, [rsp + 0x58]
call fcn.140002570
mov rcx, qword [r15 + 0xc0]
mov r9, rbx
mov edx, 0x110b
mov r8d, 9
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
test edi, edi
je 0x140006f60
mov rcx, qword [r15 + 0xb8]
test rcx, rcx
je 0x140006f60
lea rdx, [rsp + 0x58]
call fcn.140010230
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
or rax, 0xffffffffffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140006f81
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, 1
mov rcx, qword [rsp + 0x530]
xor rcx, rsp
call fcn.14010bcc0
mov rbx, qword [rsp + 0x590]
add rsp, 0x540
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret