Function at 0x14006a3f4
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, 0x40
mov r15, rcx
lea rcx, [0x140118e68]
call qword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
lea rcx, [rsp + 0x88]
call fcn.140052130
lea rcx, [rsp + 0x38]
mov edx, 5
call fcn.14005a1c4
lea rcx, [rsp + 0x30]
mov edx, 0x14
call fcn.14005a1c4
xor esi, esi
lea rdx, [rsp + 0x88]
lea rcx, [0x140102d8c]
lea r8d, [rsi + 3]
mov r12b, sil
mov ebp, esi
mov r14d, esi
mov r13b, sil
or ebx, 0xffffffff
mov edi, 0xfa0
call fcn.14005c928
lea ecx, [rsi + 1]
cmp al, sil
lea r8d, [rsi + 4]
cmovne ebx, ecx
lea rcx, [0x140102d84]
lea rdx, [rsp + 0x88]
call fcn.14005c928
lea r8d, [rsi + 6]
lea rdx, [rsp + 0x88]
cmp al, sil
lea rcx, [0x140102d7c]
cmovne ebx, esi
call fcn.14005c928
mov rcx, qword [rsp + 0x88]
cmp al, sil
movzx eax, word [rcx]
lea r9d, [rsi + 1]
cmovne edi, r9d
cmp ax, si
je 0x14006a527
lea r8d, [rsi + 0x2a]
cmp r8w, ax
jne 0x14006a4f7
cmp r8w, word [rcx + 2]
jne 0x14006a4ec
add rcx, 2
mov r12b, r9b
mov r13b, 0x10
jmp 0x14006a513
cmp r8w, ax
jne 0x14006a4f7
mov r12b, r9b
jmp 0x14006a513
mov edx, 0x26
cmp dx, ax
jne 0x14006a506
or ebp, 8
jmp 0x14006a513
mov edx, 0x2d
cmp dx, ax
jne 0x14006a527
mov r14d, r9d
add rcx, 2
mov qword [rsp + 0x88], rcx
mov ax, word [rcx]
cmp ax, si
jne 0x14006a4d3
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x88]
mov r8d, 0x2c
call fcn.14005dc90
mov r11, qword [rsp + 0x38]
cmp word [r11], si
jne 0x14006a556
mov rsi, 0xffffffff80070057
jmp 0x14006a6e3
cmp ebx, esi
jl 0x14006a56d
movzx ecx, word [r11]
mov r8d, edi
mov edx, ebx
call fcn.14001a750
jmp 0x14006a6e3
mov rdx, qword [rsp + 0x88]
mov edi, 0x2c
cmp di, word [rdx]
jne 0x14006a5ae
lea rcx, [rsp + 0x30]
add rdx, 2
call fcn.140064d94
mov rcx, qword [rsp + 0x30]
call fcn.140017094
mov rcx, qword [rsp + 0x30]
call fcn.140019d38
lea rcx, [rsp + 0x30]
mov rdx, rax
call fcn.140064d94
lea rcx, [rsp + 0x38]
mov edx, 5
call fcn.14005a250
mov rbx, qword [rsp + 0x38]
mov r11d, 0x3a
mov word [rbx + 2], r11w
cmp di, word [rbx]
jne 0x14006a5d9
mov eax, 0xff0c
jmp 0x14006a606
mov eax, 0x3b
cmp ax, word [rbx]
jne 0x14006a5ea
mov eax, 0xff1b
jmp 0x14006a606
cmp r11w, word [rbx]
jne 0x14006a5f7
mov eax, 0xff1a
jmp 0x14006a606
mov eax, 0x3d
cmp ax, word [rbx]
jne 0x14006a609
mov eax, 0xff1d
mov word [rbx], ax
mov rdi, qword [rsp + 0x30]
mov eax, 0x5c
mov word [rbx + 4], ax
mov word [rbx + 6], si
movzx eax, word [rbx]
mov word [rsp + 0x9a], r11w
mov word [rsp + 0x9c], si
mov word [rsp + 0x98], ax
cmp ax, si
je 0x14006a70c
mov eax, 0x3f
cmp ax, word [rdi]
jne 0x14006a70c
mov ebx, 0x100000
lea rcx, [rsp + 0x88]
mov rdx, rbx
call fcn.14005a1c4
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_SetLastError]
mov r8d, ebx
mov rbx, qword [rsp + 0x88]
lea rcx, [rsp + 0x98]
mov rdx, rbx
call qword [sym.imp.KERNEL32.DLL_QueryDosDeviceW]
cmp eax, esi
jne 0x14006a69f
call qword [sym.imp.KERNEL32.DLL_GetLastError]
mov ecx, 1
mov ebp, eax
cmp eax, esi
cmove ebp, ecx
jmp 0x14006a6a1
mov ebp, esi
mov ecx, 0x5c
cmp cx, word [rbx]
jne 0x14006a6c4
lea eax, [rcx - 0x1d]
cmp ax, word [rbx + 2]
jne 0x14006a6c4
cmp ax, word [rbx + 4]
jne 0x14006a6c4
cmp cx, word [rbx + 6]
jne 0x14006a6c4
add rbx, 8
lea rdx, [rdi + 2]
mov r8, rbx
mov rcx, r15
call fcn.1400596c4
lea rcx, [rsp + 0x88]
movsxd rsi, ebp
call fcn.140052160
lea rcx, [rsp + 0x30]
call fcn.140052160
lea rcx, [rsp + 0x38]
call fcn.140052160
lea rcx, [0x140118e68]
call qword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov rax, rsi
jmp 0x14006a7ea
cmp word [rdi], si
je 0x14006a75b
cmp r14d, esi
jne 0x14006a75b
lea rdx, [rsp + 0x98]
mov r9d, ebp
mov r8, rbx
mov rcx, rdi
mov byte [rsp + 0x20], r12b
call fcn.14006a24c
mov edi, eax
test r13b, 0x10
je 0x14006a74a
movzx ecx, word [rbx]
mov edx, 2
lea r8d, [rdx + 0x30]
call fcn.14001a750
cmp edi, esi
jne 0x14006a756
call qword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
movsxd rbx, esi
jmp 0x14006a7c6
cmp r12b, sil
je 0x14006a773
mov rcx, rbx
call qword [sym.imp.KERNEL32.DLL_DeleteVolumeMountPointW]
cmp eax, esi
jne 0x14006a773
call qword [sym.imp.KERNEL32.DLL_GetLastError]
movzx eax, word [rdi]
lea rdx, [rsp + 0x98]
neg ax
sbb r8, r8
or ebp, 2
mov ecx, ebp
and r8, rdi
call qword [sym.imp.KERNEL32.DLL_DefineDosDeviceW]
cmp eax, esi
je 0x14006a79a
mov edi, esi
jmp 0x14006a7a2
call qword [sym.imp.KERNEL32.DLL_GetLastError]
mov edi, eax
cmp r12b, sil
je 0x14006a7af
movzx ecx, word [rbx]
call fcn.140056698
test r13b, 0x10
je 0x14006a7c3
movzx ecx, word [rbx]
xor edx, edx
lea r8d, [rdx + 0x32]
call fcn.14001a750
movsxd rbx, edi
lea rcx, [rsp + 0x30]
call fcn.140052160
lea rcx, [rsp + 0x38]
call fcn.140052160
lea rcx, [0x140118e68]
call qword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov rax, rbx
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret