Function at 0x1400f2248
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 [0x1401ee6a8]
xor rax, rsp
mov qword [rsp + 0x278], rax
lea rsi, [rsp + 0x70]
mov rcx, rsi
call fcn.140003584
mov rcx, rsi
call fcn.1400f1a14
mov ebx, eax
cmp byte [rsi + 0x17], 0
jns 0x1400f2294
mov rcx, qword [rsp + 0x70]
call fcn.140163a8c
mov r14b, 1
test bl, bl
jne 0x1400f250f
xorps xmm0, xmm0
lea rsi, [rsp + 0x50]
movaps xmmword [rsi], xmm0
mov qword [rsi + 0x10], 0
mov rcx, rbp
mov rdx, rsi
call fcn.1400f1c85
test al, al
je 0x1400f232a
lea rsi, [rsp + 0x30]
mov rcx, rsi
mov rdx, rdi
call fcn.140003584
movzx eax, byte [rsi + 0x17]
mov rcx, qword [rsi]
mov r9, rax
test al, al
jns 0x1400f22e7
mov r9, qword [rsp + 0x38]
mov rsi, rcx
cmp word [rsi + r9*2 - 2], 0x5c
jne 0x1400f237f
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.14002e654
cmp byte [rsi + 0x17], 0
js 0x1400f2332
mov word [rsp + 0x30], 0
mov byte [rsp + 0x47], 0
jmp 0x1400f235f
xor r14d, r14d
jmp 0x1400f24ff
mov rax, qword [rsp + 0x30]
mov word [rax], 0
mov qword [rsp + 0x38], 0
cmp byte [rsp + 0x47], 0
jns 0x1400f235f
mov rcx, qword [rsp + 0x30]
call fcn.140163a8c
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 0x1400f2399
mov rcx, qword [rsp + 0x50]
jmp 0x1400f239e
lea rcx, [rsp + 0x50]
call fcn.14017b278
test eax, eax
je 0x1400f241c
lea rsi, [rsp + 0x30]
mov rcx, rsi
mov rdx, rsi
call fcn.1400f203a
mov ebx, eax
mov rcx, rsi
call fcn.1400f2120
test al, al
jne 0x1400f2424
test bl, bl
je 0x1400f2424
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.1400f215e
test al, al
je 0x1400f2443
xor eax, eax
cmp byte [rsp + 0x47], al
jns 0x1400f23fa
mov rsi, qword [rsp + 0x30]
lea rdi, [rsp + 0x70]
cmp byte [rdi + 0x17], al
mov rcx, rdi
jns 0x1400f240c
mov rcx, qword [rsp + 0x70]
mov rdx, rsi
call fcn.14017b278
test eax, eax
sete r14b
jmp 0x1400f2446
mov r14b, 1
jmp 0x1400f24e9
test al, al
je 0x1400f24e6
mov qword [rsp + 0x28], 0
cmp byte [rsp + 0x47], 0
jns 0x1400f245f
mov rax, qword [rsp + 0x30]
jmp 0x1400f2464
xor r14d, r14d
cmp byte [rdi + 0x17], 0
jns 0x1400f24e9
mov rcx, qword [rsp + 0x70]
call fcn.140163a8c
jmp 0x1400f24e9
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 0x1400f24e9
cmp eax, 0x104
je 0x1400f24e9
lea rcx, [rsp + 0x70]
call fcn.140184604
mov esi, eax
movzx eax, byte [rsp + 0x47]
test al, al
jns 0x1400f24a7
mov rax, qword [rsp + 0x38]
lea rcx, [rsi + rax]
add rcx, 0xfffffffffffffffe
movzx eax, byte [rsp + 0x67]
mov rdx, rax
test al, al
jns 0x1400f24c0
mov rdx, qword [rsp + 0x58]
cmp rcx, rdx
jne 0x1400f24e6
test al, al
jns 0x1400f24d0
mov rcx, qword [rsp + 0x50]
jmp 0x1400f24d5
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x70]
mov r8, rsi
call fcn.14017b428
test eax, eax
je 0x1400f2530
xor r14d, r14d
cmp byte [rsp + 0x47], 0
jns 0x1400f24fa
mov rcx, qword [rsp + 0x30]
call fcn.140163a8c
lea rsi, [rsp + 0x50]
cmp byte [rsi + 0x17], 0
jns 0x1400f250f
mov rcx, qword [rsp + 0x50]
call fcn.140163a8c
mov rcx, qword [rsp + 0x278]
xor rcx, rsp
call fcn.140163e00
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 0x1400f253f
mov rdx, qword [rsp + 0x30]
jmp 0x1400f2544
lea rdx, [rsp + 0x30]
add rdx, 4
cmp byte [rsp + 0x67], al
jns 0x1400f2555
mov rax, qword [rsp + 0x50]
jmp 0x1400f255a
lea rax, [rsp + 0x50]
lea rcx, [rax + rsi*2]
call fcn.14017b278
test eax, eax
sete r14b
jmp 0x1400f24e9