Function at 0x1400c7915
Capabilities:
Get disk information

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x288
mov rsi, rdx
mov rdi, rcx
mov rax, qword [0x1401af6a8]
xor rax, rsp
mov qword [rsp + 0x280], rax
lea rbp, [rsp + 0x70]
mov rcx, rbp
call fcn.140002874
mov rcx, rbp
call fcn.1400c70a4
mov ebx, eax
test byte [rbp], 1
je 0x1400c7966
mov rcx, qword [rsp + 0x80]
call fcn.14012d304
mov r15b, 1
test bl, bl
jne 0x1400c7c27
xorps xmm0, xmm0
lea rdx, [rsp + 0x50]
movaps xmmword [rdx], xmm0
mov qword [rdx + 0x10], 0
mov rcx, rdi
call fcn.1400c7335
test al, al
je 0x1400c79de
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r14, [rsp + 0x30]
mov qword [r14 + 0x10], rax
movaps xmm0, xmmword [section..rdata]
movaps xmmword [r14], xmm0
mov rcx, r14
mov rdx, rsi
call fcn.140002874
movzx r9d, byte [r14]
test r9b, 1
jne 0x1400c79e6
shr r9, 1
cmp word [rsp + r9*2 + 0x30], 0x5c
je 0x1400c79f9
lea r14, [rsp + 0x30]
lea rdi, [rsp + 0x32]
jmp 0x1400c7a82
xor r15d, r15d
jmp 0x1400c7c16
mov r9, qword [rsp + 0x38]
mov rax, qword [rsp + 0x40]
cmp word [rax + r9*2 - 2], 0x5c
jne 0x1400c7a2f
dec r9
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x70]
lea r14, [rsp + 0x30]
mov rdx, r14
xor r8d, r8d
call fcn.140022340
test byte [r14], 1
jne 0x1400c7a3a
mov word [rsp + 0x32], 0
mov byte [rsp + 0x30], 0
jmp 0x1400c7a67
lea rdi, [rsp + 0x32]
mov rdx, qword [rdi + 0xe]
jmp 0x1400c7a85
mov rax, qword [rsp + 0x40]
mov word [rax], 0
mov qword [rsp + 0x38], 0
test byte [rsp + 0x30], 1
je 0x1400c7a67
mov rcx, qword [rsp + 0x40]
call fcn.14012d304
mov qword [rsp + 0x30], 0
movups xmm0, xmmword [rbp]
lea rdi, [rsp + 0x32]
movaps xmmword [rdi - 2], xmm0
mov rdx, qword [rbp + 0x10]
mov qword [rdi + 0xe], rdx
test byte [rdi - 2], 1
jne 0x1400c7a85
mov rdx, rdi
lea rbp, [rsp + 0x52]
test byte [rbp - 2], 1
mov rcx, rbp
je 0x1400c7a98
mov rcx, qword [rsp + 0x60]
call fcn.140143118
test eax, eax
je 0x1400c7b0c
lea rsi, [rsp + 0x30]
mov rcx, rsi
mov rdx, rsi
call fcn.1400c76f0
mov ebx, eax
mov rcx, rsi
call fcn.1400c77dd
test al, al
jne 0x1400c7b14
test bl, bl
je 0x1400c7b14
xorps xmm0, xmm0
lea rdx, [rsp + 0x70]
movaps xmmword [rdx], xmm0
mov qword [rdx + 0x10], 0
lea rcx, [rsp + 0x50]
call fcn.1400c7828
test al, al
je 0x1400c7b91
test byte [rsp + 0x30], 1
je 0x1400c7af4
mov rdi, qword [rsp + 0x40]
test byte [rsp + 0x70], 1
je 0x1400c7b96
mov rcx, qword [rsp + 0x80]
jmp 0x1400c7b9b
mov r15b, 1
jmp 0x1400c7c05
test al, al
je 0x1400c7c02
mov qword [rsp + 0x28], 0
lea rsi, [rsp + 0x70]
mov r8d, 0x208
mov rcx, rsi
mov dl, 0xaa
call fcn.140130ac0
test byte [rsp + 0x30], 1
je 0x1400c7b46
mov rdi, qword [rsp + 0x40]
mov eax, dword [rdi]
lea rcx, [rsp + 0x28]
mov dword [rcx], eax
mov rdx, rsi
mov r8d, 0x104
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
xor r15d, r15d
cmp eax, 2
jb 0x1400c7c05
cmp eax, 0x104
je 0x1400c7c05
lea rcx, [rsp + 0x70]
call fcn.14014bef4
mov edi, eax
movzx eax, byte [rsp + 0x30]
test al, 1
je 0x1400c7bbf
mov rax, qword [rsp + 0x38]
jmp 0x1400c7bc2
xor r15d, r15d
jmp 0x1400c7ba9
lea rcx, [rsp + 0x72]
mov rdx, rdi
call fcn.140143118
test eax, eax
sete r15b
test byte [rsp + 0x70], 1
je 0x1400c7c05
mov rcx, qword [rsp + 0x80]
call fcn.14012d304
jmp 0x1400c7c05
shr rax, 1
lea rcx, [rdi + rax]
add rcx, 0xfffffffffffffffe
movzx eax, byte [rsp + 0x50]
test al, 1
je 0x1400c7bda
mov rdx, qword [rsp + 0x58]
jmp 0x1400c7be0
mov rdx, rax
shr rdx, 1
cmp rcx, rdx
jne 0x1400c7c02
mov rcx, rbp
test al, 1
je 0x1400c7bf1
mov rcx, qword [rsp + 0x60]
lea rdx, [rsp + 0x70]
mov r8, rdi
call fcn.1401432c8
test eax, eax
je 0x1400c7c4a
xor r15d, r15d
test byte [rsp + 0x30], 1
je 0x1400c7c16
mov rcx, qword [rsp + 0x40]
call fcn.14012d304
test byte [rsp + 0x50], 1
je 0x1400c7c27
mov rcx, qword [rsp + 0x60]
call fcn.14012d304
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
call fcn.14012d670
mov eax, r15d
add rsp, 0x288
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
mov rdx, qword [rsp + 0x40]
add r14, 6
add rdx, 4
test byte [rsp + 0x30], 1
cmove rdx, r14
test byte [rsp + 0x50], 1
je 0x1400c7c6c
mov rbp, qword [rsp + 0x60]
lea rcx, [rdi*2]
add rcx, rbp
call fcn.140143118
test eax, eax
sete r15b
jmp 0x1400c7c05