Function at 0x18004ec20
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x650]
sub rsp, 0x750
mov rax, qword [0x1801270d0]
xor rax, rsp
mov qword [rbp + 0x640], rax
mov r14, rcx
mov qword [rsp + 0x48], rcx
xor r12d, r12d
mov ecx, 0x54a4a061
mov r15, rdx
mov ebx, r12d
call fcn.1800061a0
xor edx, edx
lea ecx, [rdx + 2]
call rax
mov dword [rbp - 0x20], 0x238
mov r13, rax
mov eax, dword [0x180143408]
test al, 1
jne 0x18004ecb0
or eax, 1
lea rcx, [0x1800fa050]
mov qword [0x1801433d8], r12
mov qword [0x1801433e0], r12
mov qword [0x1801433e8], r12
mov dword [0x180143408], eax
call fcn.18003a3cc
mov rsi, qword [0x1801433d8]
mov rdi, qword [0x1801433e0]
cmp rsi, rdi
jne 0x18004ef81
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x51620d70
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x62d60057
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x4416e1a2
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x65bf244f
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x223c2e1a
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x65bf3fd3
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0xccc51604
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0xca16f04b
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x4964e1ac
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0xe635f40e
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0xde28ad0f
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x8f430670
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0xe335943c
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x55385ca4
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0xfe4f2208
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x552cabbf
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0xb996fcca
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x7c5fe0b4
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x820a957c
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x17f91801
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x6f9c9645
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0xe72e918e
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x7c7821ae
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0xc48440a5
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0xd13d0afe
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0xc85c42dd
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x42c74b1f
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x4f44f32c
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x5ef90907
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x4e45f32b
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0xe1e39d5
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0xc87cd15c
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x6f9c24fe
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0xeef153ce
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x65bfa19d
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x9df0b911
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0xae1ecf33
call fcn.180025450
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], 0x4a02f338
call fcn.180025450
mov rdi, qword [0x1801433e0]
mov rsi, qword [0x1801433d8]
lea rcx, [rbp + 0x222]
xor edx, edx
mov r8d, 0x206
mov word [rbp + 0x220], r12w
call fcn.1800e96b0
lea rcx, [rbp + 0x432]
xor edx, edx
mov r8d, 0x206
mov word [rbp + 0x430], r12w
call fcn.1800e96b0
sub rdi, rsi
mov esi, 1
sar rdi, 2
test rdi, rdi
je 0x18004f0a5
xor r14d, r14d
mov ecx, 0x54a4a01a
call fcn.1800061a0
lea rdx, [rbp - 0x20]
mov rcx, r13
call rax
test eax, eax
je 0x18004f07b
nop dword [rax]
mov ecx, 0x54a7a0c3
call fcn.180051c90
lea rcx, [rbp + 0xc]
call rax
or rcx, 0xffffffffffffffff
mov r9d, esi
mov r11, rax
xor eax, eax
mov rdi, r11
repne scasw ax, word [rdi]
mov rax, qword [0x1801433d8]
mov edx, dword [r14 + rax]
not rcx
lea r8, [rcx + rcx - 2]
mov rcx, r11
call fcn.180052bc0
test eax, eax
je 0x18004f04a
mov ecx, 0x54a4a019
call fcn.1800061a0
lea rdx, [rbp - 0x20]
mov rcx, r13
call rax
test eax, eax
jne 0x18004eff0
jmp 0x18004f07b
test r12d, r12d
jne 0x18004f058
lea rdx, [rbp + 0x220]
jmp 0x18004f073
lea ecx, [r12 + 0xe]
mov rax, rsi
shl rax, cl
or rbx, rax
cmp r12d, 0x12
jne 0x18004f07b
lea rdx, [rbp + 0x430]
mov ecx, dword [rbp - 0x18]
call fcn.180003b70
mov rcx, qword [0x1801433e0]
inc r12d
add r14, 4
sub rcx, qword [0x1801433d8]
movsxd rax, r12d
sar rcx, 2
cmp rax, rcx
jb 0x18004efd1
mov r14, qword [rsp + 0x48]
mov ecx, 0x54a4a07b
call fcn.1800061a0
mov rcx, r13
call rax
call fcn.18002d040
xor r12d, r12d
test eax, eax
mov ecx, r12d
setne cl
shl rcx, 8
xor rcx, rbx
and ecx, 0x100
xor rbx, rcx
mov rcx, qword [0x18012e720]
test rcx, rcx
je 0x18004f146
cmp qword [rcx + 0x748], r12
je 0x18004f0f9
mov rax, qword [rcx + 0x748]
cmp byte [rax + 0x74], r12b
mov rax, rsi
jne 0x18004f0fc
mov rax, r12
shl rax, 0x3a
movabs rdx, 0x400000000000000
xor rax, rbx
and rax, rdx
xor rbx, rax
cmp qword [rcx + 0x750], r12
je 0x18004f12c
mov rax, qword [rcx + 0x750]
cmp byte [rax + 0x74], r12b
mov rax, rsi
jne 0x18004f12f
mov rax, r12
shl rax, 0x3b
movabs rcx, 0x800000000000000
xor rax, rbx
and rax, rcx
xor rbx, rax
cmp word [rbp + 0x220], r12w
je 0x18004f1c8
lea rcx, [rsp + 0x50]
mov edx, 0x10
movabs r9, 0x8d8c85c686cbeded
movabs r8, 0x537b6b6b6ae17173
mov qword [rsp + 0x20], r12
call fcn.18004e5b0
mov rcx, rax
call fcn.18005b2f0
mov ecx, 0x54a7a051
mov rdi, rax
call fcn.180051c90
lea rcx, [rbp + 0x220]
mov rdx, rdi
call rax
lea rcx, [rbp + 0x220]
call fcn.180023030
mov rcx, r12
cmp rax, 0x400000
movabs rax, 0x1000000000000000
seta cl
shl rcx, 0x3c
xor rcx, rbx
and rcx, rax
xor rbx, rcx
mov rax, r12
movabs rcx, 0x80000000000000
lea rdx, [rbp + 0x220]
cmp word [0x180000000], ax
mov r9d, 0x208
mov r8d, 2
sete al
mov dword [rsp + 0x20], esi
shl rax, 0x37
xor rax, rbx
and rax, rcx
lea rcx, str.Install
xor rbx, rax
call fcn.180003a90
test eax, eax
jne 0x18004f23b
lea r8d, [rax + 2]
lea rdx, [rbp + 0x220]
lea rcx, str.Last
mov r9d, 0x208
mov dword [rsp + 0x20], esi
call fcn.180003a90
test eax, eax
mov rax, r12
je 0x18004f23e
mov rax, rsi
shl rax, 0x38
movabs rcx, 0x100000000000000
xor rax, rbx
and rax, rcx
xor rbx, rax
cmp word [rbp + 0x430], r12w
je 0x18004f338
lea rcx, [rbp + 0x430]
call fcn.180033800
mov rcx, r12
mov edx, 0x25
test eax, eax
movabs rax, 0x2000000000000000
movabs r9, 0x8b8686cf0b8e6cac
sete cl
movabs r8, 0x63ab237b6ae17173
shl rcx, 0x3d
xor rcx, rbx
and rcx, rax
movabs rax, 0xd8d8c85c6e0
mov qword [rsp + 0x30], rax
movabs rax, 0xa2fb932b634b8369
xor rbx, rcx
mov qword [rsp + 0x28], rax
movabs rax, 0xf636433645c64336
lea rcx, [rbp - 0x80]
mov qword [rsp + 0x20], rax
call fcn.18004e5b0
mov rcx, rax
call fcn.18005b2f0
mov ecx, 0x54a7a051
mov rdi, rax
call fcn.180051c90
lea rcx, [rbp + 0x430]
mov rdx, rdi
call rax
lea rcx, [rbp + 0x430]
call fcn.18001ae20
test eax, eax
je 0x18004f31e
lea rcx, [rbp + 0x430]
call fcn.180033800
test eax, eax
je 0x18004f321
mov rsi, r12
shl rsi, 0x39
movabs rax, 0x200000000000000
xor rsi, rbx
and rsi, rax
xor rbx, rsi
xor eax, eax
mov byte [rsp + 0x44], 0x41
mov word [rsp + 0x45], ax
mov word [rsp + 0x45], 0x5c3a
mov byte [rsp + 0x47], al
nop
lea rcx, [rsp + 0x44]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 2
je 0x18004f372
movzx ecx, byte [rsp + 0x44]
inc cl
mov byte [rsp + 0x44], cl
cmp cl, 0x5a
jle 0x18004f350
jmp 0x18004f383
movabs rax, 0x4000000000000000
or qword [r14 + 0x330], rax
mov rax, r15
mov qword [r15], rbx
mov rcx, qword [rbp + 0x640]
xor rcx, rsp
call fcn.1800e7b90
mov rbx, qword [rsp + 0x7a0]
add rsp, 0x750
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret