Function at 0x14013a79a
Capabilities:
Get disk information

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x280
mov rdi, rdx
mov rbp, rcx
mov rax, qword [0x14030f948]
xor rax, rsp
mov qword [rsp + 0x278], rax
lea rsi, [rsp + 0x70]
mov rcx, rsi
call fcn.1400036d8
mov rcx, rsi
call fcn.140139f74
mov ebx, eax
cmp byte [rsi + 0x17], 0
jns 0x14013a7e6
mov rcx, qword [rsp + 0x70]
call fcn.140183668
mov r14b, 1
test bl, bl
jne 0x14013aa61
xorps xmm0, xmm0
lea rsi, [rsp + 0x50]
movaps xmmword [rsi], xmm0
mov qword [rsi + 0x10], 0
mov rcx, rbp
mov rdx, rsi
call fcn.14013a1de
test al, al
je 0x14013a87c
lea rsi, [rsp + 0x30]
mov rcx, rsi
mov rdx, rdi
call fcn.1400036d8
movzx eax, byte [rsi + 0x17]
mov rcx, qword [rsi]
mov r9, rax
test al, al
jns 0x14013a839
mov r9, qword [rsp + 0x38]
mov rsi, rcx
cmp word [rsi + r9*2 - 2], 0x5c
jne 0x14013a8d1
dec r9
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x70]
lea rsi, [rsp + 0x30]
mov rdx, rsi
xor r8d, r8d
call fcn.140065a88
cmp byte [rsi + 0x17], 0
js 0x14013a884
mov word [rsp + 0x30], 0
mov byte [rsp + 0x47], 0
jmp 0x14013a8b1
xor r14d, r14d
jmp 0x14013aa51
mov rax, qword [rsp + 0x30]
mov word [rax], 0
mov qword [rsp + 0x38], 0
cmp byte [rsp + 0x47], 0
jns 0x14013a8b1
mov rcx, qword [rsp + 0x30]
call fcn.140183668
mov qword [rsp + 0x40], 0
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x40], rax
movups xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x30], xmm0
mov al, byte [rsp + 0x47]
mov rcx, qword [rsp + 0x30]
test al, al
lea rdx, [rsp + 0x30]
cmovs rdx, rcx
xor eax, eax
cmp byte [rsp + 0x67], al
jns 0x14013a8eb
mov rcx, qword [rsp + 0x50]
jmp 0x14013a8f0
lea rcx, [rsp + 0x50]
call fcn.14019cd00
test eax, eax
je 0x14013a96e
lea rsi, [rsp + 0x30]
mov rcx, rsi
mov rdx, rsi
call fcn.14013a58c
mov ebx, eax
mov rcx, rsi
call fcn.14013a672
test al, al
jne 0x14013a976
test bl, bl
je 0x14013a976
xorps xmm0, xmm0
lea rdi, [rsp + 0x70]
movaps xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
lea rcx, [rsp + 0x50]
mov rdx, rdi
call fcn.14013a6b0
test al, al
je 0x14013a995
xor eax, eax
cmp byte [rsp + 0x47], al
jns 0x14013a94c
mov rsi, qword [rsp + 0x30]
lea rdi, [rsp + 0x70]
cmp byte [rdi + 0x17], al
mov rcx, rdi
jns 0x14013a95e
mov rcx, qword [rsp + 0x70]
mov rdx, rsi
call fcn.14019cd00
test eax, eax
sete r14b
jmp 0x14013a998
mov r14b, 1
jmp 0x14013aa3b
test al, al
je 0x14013aa38
mov qword [rsp + 0x28], 0
cmp byte [rsp + 0x47], 0
jns 0x14013a9b1
mov rax, qword [rsp + 0x30]
jmp 0x14013a9b6
xor r14d, r14d
cmp byte [rdi + 0x17], 0
jns 0x14013aa3b
mov rcx, qword [rsp + 0x70]
call fcn.140183668
jmp 0x14013aa3b
lea rax, [rsp + 0x30]
mov eax, dword [rax]
lea rcx, [rsp + 0x28]
mov dword [rcx], eax
lea rdx, [rsp + 0x70]
mov r8d, 0x104
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
xor r14d, r14d
cmp eax, 2
jb 0x14013aa3b
cmp eax, 0x104
je 0x14013aa3b
lea rcx, [rsp + 0x70]
call fcn.1401a82e8
mov esi, eax
movzx eax, byte [rsp + 0x47]
test al, al
jns 0x14013a9f9
mov rax, qword [rsp + 0x38]
lea rcx, [rsi + rax]
add rcx, 0xfffffffffffffffe
movzx eax, byte [rsp + 0x67]
mov rdx, rax
test al, al
jns 0x14013aa12
mov rdx, qword [rsp + 0x58]
cmp rcx, rdx
jne 0x14013aa38
test al, al
jns 0x14013aa22
mov rcx, qword [rsp + 0x50]
jmp 0x14013aa27
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x70]
mov r8, rsi
call fcn.14019ceb0
test eax, eax
je 0x14013aa82
xor r14d, r14d
cmp byte [rsp + 0x47], 0
jns 0x14013aa4c
mov rcx, qword [rsp + 0x30]
call fcn.140183668
lea rsi, [rsp + 0x50]
cmp byte [rsi + 0x17], 0
jns 0x14013aa61
mov rcx, qword [rsp + 0x50]
call fcn.140183668
mov rcx, qword [rsp + 0x278]
xor rcx, rsp
call fcn.140183a80
mov eax, r14d
add rsp, 0x280
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
xor eax, eax
cmp byte [rsp + 0x47], al
jns 0x14013aa91
mov rdx, qword [rsp + 0x30]
jmp 0x14013aa96
lea rdx, [rsp + 0x30]
add rdx, 4
cmp byte [rsp + 0x67], al
jns 0x14013aaa7
mov rax, qword [rsp + 0x50]
jmp 0x14013aaac
lea rax, [rsp + 0x50]
lea rcx, [rax + rsi*2]
call fcn.14019cd00
test eax, eax
sete r14b
jmp 0x14013aa3b