Function at 0x1285f350
Capabilities:
Get disk information

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x120
mov qword [rsp + 0x90], 0xfffffffffffffffe
mov qword [rsp + 0x178], rbx
mov rax, qword [0x12a52ee0]
xor rax, rsp
mov qword [rsp + 0x118], rax
mov r13d, r8d
mov rbx, rdx
mov rdi, rcx
mov rcx, rdx
call fcn.12803f90
mov rdx, qword [rdi + 0x18]
test rdx, rdx
je 0x1285fb32
add rdx, 0x104
mov rsi, qword [rbx + 0x18]
xor r15d, r15d
cmp rsi, rdx
ja 0x1285f3e9
cmp qword [rbx + 0x20], rdx
je 0x1285f3e9
mov r8b, 1
mov rcx, rbx
call fcn.128037d0
test al, al
je 0x1285f3e9
mov qword [rbx + 0x18], rsi
cmp qword [rbx + 0x20], 8
jb 0x1285f3e0
mov rax, qword [rbx + 8]
jmp 0x1285f3e4
lea rax, [rbx + 8]
mov word [rax + rsi*2], r15w
cmp qword [rdi + 0x20], 8
jb 0x1285f3f9
lea rsi, [rdi + 8]
mov rcx, qword [rsi]
jmp 0x1285f400
lea rsi, [rdi + 8]
mov rcx, rsi
lea rdx, [0x129cb118]
call fcn.1295a6e4
test eax, eax
je 0x1285fb18
mov dword [rsp + 0x30], r15d
xor eax, eax
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x38], eax
cmp qword [rdi + 0x20], 8
jb 0x1285f42f
mov rcx, qword [rsi]
jmp 0x1285f432
mov rcx, rsi
lea rdx, [rsp + 0x30]
call fcn.128295f0
movzx edx, r13b
and dl, 1
mov qword [rsp + 0xe0], 7
mov qword [rsp + 0xd8], r15
mov word [rsp + 0xc8], r15w
lea rbp, [rsp + 0xc0]
cmove rbp, rdi
test dl, dl
je 0x1285f508
cmp qword [rdi + 0x18], 0
ja 0x1285f480
call fcn.129581ac
cmp qword [rdi + 0x20], 8
jb 0x1285f48a
mov rsi, qword [rsi]
cmp word [rsi], 0x5c
je 0x1285f4c3
mov r8d, 4
lea rdx, [0x129cb1a8]
lea rcx, [rsp + 0xc0]
call fcn.12803dc0
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rdi
lea rcx, [rsp + 0xc0]
call fcn.128038c0
jmp 0x1285f508
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rdi
lea rcx, [rsp + 0xc0]
call fcn.12803c90
test byte [rsp + 0x34], 0xa
je 0x1285f508
lea rax, [rsp + 0xc8]
cmp qword [rsp + 0xe0], 8
cmovae rax, qword [rsp + 0xc8]
mov ecx, 0x3f
mov word [rax + 4], cx
mov word [rax + 2], cx
cmp qword [rbp + 0x20], 8
jb 0x1285f518
lea rsi, [rbp + 8]
mov r12, qword [rsi]
jmp 0x1285f51f
lea rsi, [rbp + 8]
mov r12, rsi
lea rdx, [rsp + 0x30]
mov rcx, r12
call fcn.128295f0
mov r14, rax
mov ecx, dword [rsp + 0x30]
test ecx, ecx
je 0x1285fade
cmp ecx, 2
jne 0x1285f967
mov rdi, rax
sub rdi, r12
sar rdi, 1
lea ecx, [rdi + 2]
mov rsi, r15
mov qword [rsp + 0x40], r15
mov dword [rsp + 0x48], r15d
test cx, cx
je 0x1285f5d2
movzx eax, cx
mov qword [rsp + 0x40], r15
lea ebp, [rax + rax + 0x12]
mov qword [rsp + 0x40], r15
cmp ebp, 0xffff
jae 0x1285f5b2
mov ecx, ebp
call fcn.12958238
mov rsi, rax
mov qword [rsp + 0x40], rax
test rax, rax
je 0x1285f5b2
mov word [rax], r15w
add rax, 0x10
mov qword [rsi + 8], rax
sub bp, 0x10
mov word [rsi + 2], bp
movzx ecx, word [rsi]
shr rcx, 1
mov rax, qword [rsi + 8]
mov word [rax + rcx*2], r15w
xor ecx, ecx
call fcn.1295c768
test rsi, rsi
je 0x1285f5d2
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x1285f5d2
movzx eax, word [rsi]
shr rax, 1
mov word [rcx + rax*2], r15w
mov r8, rdi
mov rdx, r12
mov rcx, qword [rsi + 8]
call fcn.1295c630
mov rdx, qword [rsi + 8]
lea rax, [rdx + rdi*2]
mov ecx, 2
mov ebp, 0x5c
mov word [rax], bp
mov word [rax + 2], r15w
test cl, r13b
je 0x1285f60a
cmp bp, word [r14]
je 0x1285f60a
mov cx, r15w
test byte [rsp + 0x34], 4
je 0x1285f615
mov cx, r15w
add di, di
add di, cx
mov word [rsi], di
add di, cx
mov word [rsi + 2], di
mov dword [rsp + 0x60], 0x30
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], rsi
mov dword [rsp + 0x78], 0x40
lea rax, [0x129ada38]
mov qword [rsp + 0x80], rax
xor eax, eax
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x110], r15
mov dword [rsp + 0x50], r15d
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x28], 0x20
mov dword [rsp + 0x20], 7
lea r9, [rsp + 0x50]
lea r8, [rsp + 0x60]
mov edx, 0x100080
lea rcx, [rsp + 0x110]
call qword [0x129ae5e0]
test eax, eax
jne 0x1285f7de
mov qword [rsp + 0x108], 7
mov qword [rsp + 0x100], r15
mov word [rsp + 0xf0], r15w
lea rdx, [rsp + 0xe8]
mov rcx, qword [rsp + 0x110]
call fcn.12885f80
mov edi, eax
mov rcx, qword [rsp + 0x110]
call qword [0x129ae5c8]
test edi, edi
jne 0x1285f7a4
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0xe8]
mov rcx, rbx
call fcn.12803c90
mov edx, ebp
mov rcx, rbx
call fcn.1282a520
mov rcx, qword [rsi + 8]
lea rdx, [0x129e0544]
test rcx, rcx
cmovne rdx, rcx
mov qword [rsp + 0xb8], 7
mov qword [rsp + 0xb0], r15
mov word [rsp + 0xa0], r15w
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x98]
call fcn.12803dc0
nop
mov rdx, rbx
lea rcx, [rsp + 0x98]
call fcn.12858de0
nop
cmp qword [rsp + 0xb8], 8
jb 0x1285f787
mov rcx, qword [rsp + 0xa0]
call fcn.12958250
mov qword [rsp + 0xb8], 7
mov qword [rsp + 0xb0], r15
mov word [rsp + 0xa0], r15w
cmp qword [rsp + 0x108], 8
jb 0x1285f7bc
mov rcx, qword [rsp + 0xf0]
call fcn.12958250
mov qword [rsp + 0x108], 7
mov qword [rsp + 0x100], r15
mov word [rsp + 0xf0], r15w
jmp 0x1285f955
cmp eax, 0xc0000034
je 0x1285f955
movzx r8d, word [rsi]
shr r8, 1
mov rdx, qword [rsi + 8]
mov qword [rsp + 0xb8], 7
mov qword [rsp + 0xb0], r15
mov word [rsp + 0xa0], r15w
lea rcx, [rsp + 0x98]
call fcn.12803dc0
nop
lea rcx, [rsp + 0x98]
call fcn.12843160
test al, al
je 0x1285f920
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x98]
mov rcx, rbx
call fcn.12803c90
mov r11, qword [rbx + 0x18]
test r11, r11
je 0x1285f920
mov rax, qword [rbx + 0x20]
cmp rax, 8
jb 0x1285f86b
lea rdi, [rbx + 8]
mov rcx, qword [rdi]
jmp 0x1285f872
lea rdi, [rbx + 8]
mov rcx, rdi
lea rbp, [rcx + r11*2]
test rbp, rbp
je 0x1285f8a5
cmp rax, 8
jb 0x1285f886
mov rcx, qword [rdi]
jmp 0x1285f889
mov rcx, rdi
cmp rcx, rbp
ja 0x1285f8a5
cmp rax, 8
jb 0x1285f899
mov rax, qword [rdi]
jmp 0x1285f89c
mov rax, rdi
lea rax, [rax + r11*2]
cmp rbp, rax
jbe 0x1285f8aa
call fcn.1295850c
cmp rbx, 0xfffffffffffffffc
je 0x1285f8c9
cmp qword [rbx + 0x20], 8
jb 0x1285f8bc
mov rax, qword [rdi]
jmp 0x1285f8bf
mov rax, rdi
cmp rbp, rax
ja 0x1285f8c9
call fcn.1295850c
add rbp, 0xfffffffffffffffe
cmp rbx, 0xfffffffffffffffc
je 0x1285f8ef
cmp qword [rbx + 0x20], 8
jb 0x1285f8dd
mov rdi, qword [rdi]
mov rax, qword [rbx + 0x18]
lea rcx, [rdi + rax*2]
cmp rbp, rcx
jb 0x1285f8ef
call fcn.1295850c
cmp word [rbp], 0x5c
jne 0x1285f920
mov rax, qword [rbx + 0x18]
lea rdx, [rax - 1]
cmp rdx, rax
ja 0x1285f911
or r8, 0xffffffffffffffff
mov rcx, rbx
call fcn.128033a0
jmp 0x1285f920
xor r8d, r8d
sub rdx, rax
mov rcx, rbx
call fcn.12803b90
nop
cmp qword [rsp + 0xb8], 8
jb 0x1285f938
mov rcx, qword [rsp + 0xa0]
call fcn.12958250
mov qword [rsp + 0xb8], 7
mov qword [rsp + 0xb0], r15
mov word [rsp + 0xa0], r15w
mov rcx, rsi
call fcn.1295c768
mov qword [rsp + 0x40], r15
jmp 0x1285fab8
cmp ecx, 1
jne 0x1285fa84
movzx eax, word [r12]
mov word [rsp + 0x110], ax
mov eax, 0x3a
mov word [rsp + 0x112], ax
xor eax, eax
mov word [rsp + 0x114], ax
mov rax, qword [rbx + 0x18]
mov edx, 0x104
cmp rax, rdx
jb 0x1285f9b0
or r8, 0xffffffffffffffff
mov rcx, rbx
call fcn.128033a0
jmp 0x1285f9be
xor r8d, r8d
sub rdx, rax
mov rcx, rbx
call fcn.12803b90
cmp qword [rbx + 0x20], 8
jb 0x1285f9ce
lea rdi, [rbx + 8]
mov rdx, qword [rdi]
jmp 0x1285f9d5
lea rdi, [rbx + 8]
mov rdx, rdi
mov r8d, dword [rbx + 0x18]
lea rcx, [rsp + 0x110]
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
mov ebp, eax
mov rax, qword [rbx + 0x18]
cmp rbp, rax
ja 0x1285fa03
or r8, 0xffffffffffffffff
mov rdx, rbp
mov rcx, rbx
call fcn.128033a0
jmp 0x1285fa14
xor r8d, r8d
mov rdx, rbp
sub rdx, rax
mov rcx, rbx
call fcn.12803b90
test ebp, ebp
je 0x1285fab8
mov rcx, qword [rbx + 0x20]
cmp rcx, 8
jb 0x1285fa2b
mov rax, qword [rdi]
jmp 0x1285fa2e
mov rax, rdi
lea rdx, [rax + rbp*2]
cmp word [rdx], 0
jne 0x1285fa4a
nop dword [rax + rax]
sub rdx, 2
cmp word [rdx], 0
je 0x1285fa40
add rdx, 2
cmp rcx, 8
jb 0x1285fa57
mov rdi, qword [rdi]
sub rdx, rdi
sar rdx, 1
mov rax, qword [rbx + 0x18]
cmp rdx, rax
ja 0x1285fa74
or r8, 0xffffffffffffffff
mov rcx, rbx
call fcn.128033a0
jmp 0x1285fab8
xor r8d, r8d
sub rdx, rax
mov rcx, rbx
call fcn.12803b90
jmp 0x1285fab8
cmp ecx, 3
jne 0x1285fab8
cmp qword [rbp + 0x20], 8
jb 0x1285fa93
mov rsi, qword [rsi]
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rdx, rsi
mov rcx, rbx
call fcn.12803dc0
lea r14, [0x129b25a8]
cmp qword [rbx + 0x18], 0
je 0x1285fade
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r14
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rdx, r14
mov rcx, rbx
call fcn.12803a10
nop
cmp qword [rsp + 0xe0], 8
jb 0x1285faf6
mov rcx, qword [rsp + 0xc8]
call fcn.12958250
mov qword [rsp + 0xe0], 7
mov qword [rsp + 0xd8], r15
mov word [rsp + 0xc8], r15w
mov rax, rbx
jmp 0x1285fb35
mov r8d, 1
lea rdx, [0x129cb118]
mov rcx, rbx
call fcn.12803dc0
mov rax, rbx
jmp 0x1285fb35
mov rax, rbx
mov rcx, qword [rsp + 0x118]
xor rcx, rsp
call fcn.12959850
mov rbx, qword [rsp + 0x178]
add rsp, 0x120
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret