Function at 0x14003acf0
Capabilities:
Get disk information

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x828]
sub rsp, 0x928
mov rax, qword [0x1400db800]
xor rax, rsp
mov qword [rbp + 0x810], rax
movzx eax, word [r9]
xor r14d, r14d
mov qword [rsp + 0x50], r8
mov r15, r9
mov qword [rsp + 0x58], rdx
mov r13, rcx
mov qword [rsp + 0x48], r14
mov rsi, r9
mov dword [rsp + 0x40], r14d
mov edi, r14d
test ax, ax
je 0x14003adab
nop dword [rax]
cmp ax, 0x2e
jne 0x14003ad9e
lea rdx, str..mpq.part
mov rcx, rsi
call fcn.14009b63c
mov ebx, edi
lea rdx, str..mpqe
or ebx, 0x10
mov rcx, rsi
test eax, eax
cmovne ebx, edi
call fcn.14009b63c
mov edi, ebx
lea rdx, str..mpq.0
or edi, 0x20
mov rcx, rsi
test eax, eax
cmovne edi, ebx
call fcn.14009b63c
test eax, eax
jne 0x14003ad9e
or edi, 0x30
movzx eax, word [rsi + 2]
add rsi, 2
test ax, ax
jne 0x14003ad50
movzx ecx, word [r15]
mov rax, r15
mov r12, r15
test cx, cx
je 0x14003ade1
nop word [rax + rax]
cmp cx, 0x5c
je 0x14003add2
cmp cx, 0x2f
je 0x14003add2
add rax, 2
jmp 0x14003add9
add rax, 2
mov r12, rax
movzx ecx, word [rax]
test cx, cx
jne 0x14003adc0
xor r9d, r9d
mov dword [rsp + 0x44], r14d
lea r8, [rbp - 0x20]
mov edx, 0x104
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
movzx ecx, word [rbp - 0x20]
call fcn.1400a08d0
test eax, eax
je 0x14003aed2
cmp word [rbp - 0x1e], 0x3a
jne 0x14003aed2
movzx r9d, word [rbp - 0x20]
lea r8, str.._c:
mov edx, 0x2e
lea rcx, [rbp - 0x80]
call fcn.140001040
xor r9d, r9d
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
lea rcx, [rbp - 0x80]
mov edx, 0x80
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x14003aea9
mov qword [rsp + 0x38], r14
lea rax, [rsp + 0x44]
mov qword [rsp + 0x30], rax
xor r9d, r9d
mov dword [rsp + 0x28], r14d
xor r8d, r8d
mov edx, 0x70024
mov qword [rsp + 0x20], r14
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rcx, rsi
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
jne 0x14003aea9
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x13
je 0x14003af1d
movzx r9d, word [rbp - 0x20]
lea r8, str._c:_
mov edx, 0x2e
lea rcx, [rbp - 0x80]
call fcn.140001040
lea rcx, [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 5
je 0x14003af19
mov qword [rsp + 0x30], r14
xor r9d, r9d
mov dword [rsp + 0x28], r14d
xor r8d, r8d
mov edx, 0xc0000000
mov dword [rsp + 0x20], 3
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
je 0x14003af09
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14003af1d
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x14003af19
cmp eax, 0x13
jne 0x14003af1d
bts edi, 8
mov r9d, dword [r13 + 0x28]
mov ecx, edi
mov rax, qword [rsp + 0x50]
bts ecx, 8
test r9b, 2
cmove ecx, edi
mov edx, ecx
bts edx, 8
cmp qword [r13 + 0x10], r14
cmove edx, ecx
mov r8d, edx
bts r8d, 0x13
test r9b, 4
cmove r8d, edx
mov ecx, r8d
bts ecx, 0x16
test r9b, 0x10
cmove ecx, r8d
mov esi, ecx
or esi, 1
test r9b, 0x20
cmove esi, ecx
test rax, rax
je 0x14003af89
mov edx, dword [rax + 0x44]
mov ecx, esi
bts ecx, 8
test dl, 4
cmove ecx, esi
mov esi, ecx
test dl, dl
jns 0x14003af89
bts esi, 0x13
mov r9, r12
lea rcx, [rbp + 0x1f0]
mov edx, 0x30c
mov r8d, 0x19e
call fcn.140094700
lea rax, [rbp + 0x1f0]
mov qword [rsp + 0x68], r14
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], 1
mov qword [rsp + 0x60], r14
call fcn.140017e30
cmp qword [r13], r14
jne 0x14003b07a
mov rcx, r15
call fcn.14000a070
lea rdx, [0x1400c6388]
mov rcx, rax
mov rbx, rax
call fcn.14009b63c
test eax, eax
je 0x14003b007
lea rdx, [0x1400c6378]
mov rcx, rbx
call fcn.14009b63c
test eax, eax
jne 0x14003b07a
lea rdi, [0x1400dde00]
mov rbx, r14
mov rcx, rdi
call fcn.14003f700
lea r9, [rsp + 0x48]
mov r8d, esi
xor edx, edx
mov rcx, r15
call fcn.14003ee70
test al, al
jne 0x14003b090
add rbx, 0x18
add rdi, 0x18
cmp rbx, 0x30
jb 0x14003b011
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [r13 + 0x30]
mov r9, r15
mov r8d, eax
mov edx, 0x184
call fcn.1400187f0
mov rcx, qword [rbp + 0x810]
xor rcx, rsp
call fcn.140094850
add rsp, 0x928
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea r9, [rsp + 0x48]
mov r8d, esi
xor edx, edx
mov rcx, r15
call fcn.14003ee70
test al, al
je 0x14003b03d
mov r9, qword [rsp + 0x48]
mov rdx, r15
mov r8, qword [rsp + 0x50]
mov rcx, r13
mov dword [rsp + 0x44], r14d
call qword [rsp + 0x58]
mov rbx, rax
test rax, rax
je 0x14003b166
mov ecx, 0xffdb
and word [rax + 0x44], cx
cmp qword [r13 + 0x10], r14
je 0x14003b0fc
mov r8, qword [rsp + 0x48]
mov r9, r12
mov rdx, rax
mov rcx, r13
call fcn.14003a880
mov dword [rsp + 0x40], eax
mov edi, eax
test eax, eax
je 0x14003b0fc
mov rcx, qword [r13 + 0x30]
mov r9, r15
mov r8d, eax
mov edx, 0x184
call fcn.1400187f0
mov eax, edi
jmp 0x14003b057
mov rcx, qword [rsp + 0x48]
lea r8, [rsp + 0x44]
mov r9d, 4
mov qword [rsp + 0x20], r14
lea edx, [r9 + 0x23]
call fcn.140042680
movzx eax, word [rsp + 0x44]
lea r8, [rsp + 0x60]
and ax, 1
mov qword [rsp + 0x20], r14
mov r9d, DispGetParam
shl ax, 2
or word [rbx + 0x44], ax
mov rcx, qword [rsp + 0x48]
lea edx, [r9 - 0x17]
call fcn.140042680
cmp dword [rsp + 0x74], r14d
mov eax, 0x20
cmove r14w, ax
mov eax, dword [rsp + 0x40]
or word [rbx + 0x44], r14w
jmp 0x14003b057
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [r13 + 0x30]
mov r9, r15
mov r8d, eax
mov edx, 0x184
call fcn.1400187f0
mov rcx, qword [rsp + 0x48]
mov dword [rsp + 0x40], eax
call fcn.14003ec20
mov eax, dword [rsp + 0x40]
jmp 0x14003b057