Function at 0x14006c248
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
call fcn.140015734
lea rcx, [rsp + 0xe8]
call fcn.14005044c
mov rcx, qword [rsp + 0xe8]
mov edx, 0x2c
call qword [sym.imp.SHLWAPI.dll_StrChrW]
xor edi, edi
mov qword [rsp + 0x20], rax
mov bpl, dil
lea r12d, [rdi + 1]
cmp rax, rdi
je 0x14006c2f2
mov word [rax], di
add qword [rsp + 0x20], 2
lea rcx, [rsp + 0x20]
call fcn.14005044c
mov rcx, qword [rsp + 0x20]
movzx eax, word [rcx]
mov ecx, 0xffdf
and ax, cx
cmp ax, 0x52
jne 0x14006c2ca
mov bpl, 2
jmp 0x14006c2f2
lea rdx, [rsp + 0xf8]
lea rcx, [rsp + 0x20]
mov dword [rsp + 0xf8], edi
call fcn.1400ab8ac
cmp dword [rsp + 0xf8], edi
movzx ebp, bpl
cmovne ebp, r12d
mov rax, qword [rsp + 0xe8]
or r15d, 0xffffffff
mov r13w, di
mov edx, r15d
mov r14w, di
movzx esi, di
mov dword [rsp + 0xf0], edx
cmp word [rax], 0x43
jne 0x14006c325
cmp word [rax + 2], 0x2d
jne 0x14006c325
mov r13d, r12d
jmp 0x14006c36d
cmp word [rax], 0x55
jne 0x14006c337
cmp word [rax + 2], 0x2d
jne 0x14006c337
mov r14d, r12d
jmp 0x14006c36d
cmp word [rax], di
je 0x14006c36d
cmp word [rax + 2], 0x3a
cmove si, word [rax]
cmp word [rax], 0x30
jb 0x14006c36d
cmp word [rax], 0x39
ja 0x14006c36d
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0xe8]
call fcn.1400ab8ac
mov edx, dword [rsp + 0xf0]
cmp edx, edi
lea rbx, [0x140000000]
lea rcx, [rsp + 0x68]
mov rax, qword [rbx + 0xf9a28]
mov qword [rcx], rax
mov rax, qword [rbx + 0xf9a30]
mov qword [rcx + 8], rax
mov eax, dword [rbx + 0xf9a38]
mov dword [rcx + 0x10], eax
mov rax, qword [rbx + 0xf2970]
lea rcx, [rsp + 0x58]
mov qword [rcx], rax
mov eax, dword [rbx + 0xf2978]
mov dword [rcx + 8], eax
jl 0x14006c52f
movzx ecx, si
call fcn.14006c1a8
cmp r13w, di
jne 0x14006c3d2
cmp r14w, di
je 0x14006c5ba
mov bpl, dil
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov byte [rsp + 0x28], dil
mov sil, dil
mov r15d, eax
xor eax, eax
lea r12, [rsp + 0x28]
mov qword [rsp + 0x29], rax
mov qword [rsp + 0x31], rax
mov qword [rsp + 0x39], rax
mov byte [rsp + 0x41], al
movzx eax, sil
bt r15d, eax
jae 0x14006c4f0
mov rax, qword [rbx + 0xf9a28]
lea rcx, [rsp + 0x80]
mov qword [rcx], rax
mov rax, qword [rbx + 0xf9a30]
mov qword [rcx + 8], rax
mov eax, dword [rbx + 0xf9a38]
mov dword [rcx + 0x10], eax
mov rax, qword [rbx + 0xf2970]
lea rcx, [rsp + 0x48]
mov qword [rcx], rax
mov eax, dword [rbx + 0xf2978]
mov dword [rcx + 8], eax
movsx eax, sil
lea rcx, [rsp + 0x48]
add ax, 0x41
mov word [rsp + 0x88], ax
mov word [rsp + 0x48], ax
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp sil, 2
mov ebx, eax
jge 0x14006c476
cmp eax, 2
je 0x14006c4e9
cmp r14w, di
je 0x14006c487
cmp eax, 5
jne 0x14006c48c
cmp bpl, 2
jne 0x14006c4e9
cmp eax, 5
je 0x14006c496
cmp eax, 2
je 0x14006c496
cmp eax, 3
jne 0x14006c4e9
cmp r13w, di
je 0x14006c4a1
cmp eax, 5
jne 0x14006c4e9
lea rcx, [rsp + 0x80]
xor edx, edx
call fcn.14005a794
cmp r14w, di
je 0x14006c4cb
cmp eax, 7
jne 0x14006c4e9
cmp ebx, 5
jne 0x14006c4c6
cmp bpl, 2
jne 0x14006c4e9
mov byte [r12], 0x45
cmp r13w, di
je 0x14006c4e9
cmp ebx, 5
jne 0x14006c4e9
cmp bpl, 2
jne 0x14006c4e3
cmp eax, 7
mov al, 0x45
je 0x14006c4e5
mov al, 0x43
mov byte [r12], al
lea rbx, [0x140000000]
inc sil
inc r12
cmp sil, 0x1a
jl 0x14006c3fd
mov bl, dil
lea rsi, [rsp + 0x28]
cmp byte [rsi], 0x43
jne 0x14006c598
movsx eax, bl
mov edx, edi
add ax, 0x41
cmp bpl, 1
setne dl
mov cl, al
mov word [rsp + 0x70], ax
call fcn.140061a9c
jmp 0x14006c5ac
cmp si, di
je 0x14006c3bf
movsx eax, sil
lea rcx, [rsp + 0x58]
mov word [rsp + 0x58], si
mov word [rsp + 0x70], ax
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
lea rcx, [rsp + 0x68]
xor edx, edx
mov ebx, eax
call fcn.14005a794
cmp ebx, 5
jne 0x14006c587
cmp bpl, 2
jne 0x14006c574
cmp eax, 7
jne 0x14006c574
mov edx, r15d
jmp 0x14006c58e
cmp bpl, r12b
mov cl, sil
setne dil
mov edx, edi
call fcn.140061a9c
jmp 0x14006c5ba
mov edx, dword [rsp + 0xf0]
movzx ecx, si
call fcn.14006c1a8
jmp 0x14006c5ba
cmp byte [rsi], 0x45
jne 0x14006c5ac
movsx ecx, bl
or edx, 0xffffffff
add cx, 0x41
call fcn.14006c1a8
inc bl
inc rsi
cmp bl, 0x1a
jl 0x14006c508
xor eax, eax
mov rbx, qword [rsp + 0xe0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret