Function at 0x14006d2dc
Capabilities:
Get disk information
Get disk information via ioctl

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x228
xor r14d, r14d
mov eax, 0xffdf
movzx esi, r8w
mov ebx, r8d
lea r13d, [r14 + 1]
mov r12, rdx
sar ebx, 0x10
mov r15, rcx
mov ebp, r14d
and bx, ax
movzx eax, si
and ax, 0x20
mov word [rsp + 0x280], ax
test r13b, sil
je 0x14006d33c
test sil, 8
je 0x14006d33c
lea ebp, [r14 + 8]
and esi, 0xfffffff7
mov rax, rdx
neg rax
sbb ecx, ecx
not ecx
and ecx, 0x200
add ecx, 0x800
movsxd rdx, ecx
lea rcx, [rsp + 0x58]
call fcn.14005c6f4
mov rdi, qword [rsp + 0x58]
cmp r12, r14
jne 0x14006d378
lea rax, [rdi + 0x800]
mov qword [rsp + 0x278], rax
movdqu xmm0, xmmword [str.__C:]
lea rdx, [0x140000000]
lea rcx, [rsp + 0x68]
mov rax, qword [rdx + 0x1072c0]
mov qword [rsp + 0x48], r14
movdqu xmmword [rsp + 0x80], xmm0
mov qword [rcx], rax
mov rax, qword [rdx + 0x1072c8]
mov qword [rcx + 8], rax
mov eax, dword [rdx + 0x1072d0]
mov dword [rcx + 0x10], eax
mov ecx, 0x1b
lea rax, [r15 + 0xc]
lea edx, [rcx - 0x68]
mov dword [rax + 8], edx
mov dword [rax], edx
mov dword [rax - 4], edx
mov dword [rax - 0xc], edx
mov dword [rax - 8], edx
mov dword [rax + 4], r14d
mov word [rax + 0xc], r14w
add rax, 0x220
sub rcx, r13
jne 0x14006d3c4
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
lea ecx, [rbx - 0x61]
mov r13d, 0x19
mov r8d, eax
mov dword [rsp + 0x40], eax
cmp cx, r13w
ja 0x14006d40a
mov eax, 0xffe0
add bx, ax
movzx ecx, bx
mov r9d, 0x41
mov edx, r14d
sub cx, r9w
mov dword [rsp + 0x288], edx
cmp cx, r13w
ja 0x14006d438
movzx r13d, bx
sub r13d, r9d
mov edx, r13d
mov dword [rsp + 0x288], edx
movsx r12d, dx
movsxd rax, ebp
cmp r12d, r13d
mov qword [rsp + 0x50], rax
jg 0x14006d65e
mov ebp, dword [rsp + 0x288]
mov eax, 1
bt r8d, r12d
jae 0x14006d647
lea ebx, [r9 + rbp]
lea eax, [r12 + 0x41]
movsx r14, bp
lea rcx, [rsp + 0x70]
mov word [rsp + 0x70], bx
imul r14, r14, 0x220
mov dword [r14 + r15 + 0x10], eax
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov r15d, eax
mov dword [rsp + 0x44], eax
cmp eax, 3
je 0x14006d4be
cmp eax, 2
je 0x14006d4be
mov rbp, qword [rsp + 0x270]
xor r9d, r9d
or dword [r14 + rbp + 0x10], 0xc000
mov dword [r14 + rbp], r9d
mov cl, r9b
lea r8d, [r9 + 1]
jmp 0x14006d4d2
mov rbp, qword [rsp + 0x270]
mov r8d, 1
xor r9d, r9d
mov cl, r8b
cmp eax, r8d
je 0x14006d629
cmp esi, 8
je 0x14006d4ff
cmp esi, 0x10
jne 0x14006d4ea
cmp eax, 2
jmp 0x14006d502
cmp esi, 4
je 0x14006d508
cmp cl, r9b
jne 0x14006d508
cmp qword [rsp + 0x50], r9
je 0x14006d629
cmp eax, 5
jne 0x14006d629
cmp word [rsp + 0x280], r9w
je 0x14006d54f
lea r9, [rsp + 0x48]
lea rcx, [rsp + 0x80]
xor r8d, r8d
xor edx, edx
mov word [rsp + 0x88], bx
call fcn.14001bebc
mov rdx, qword [rsp + 0x48]
lea rcx, [r14 + rbp + 0x18]
mov r8d, 0x104
call qword [sym.imp.SHLWAPI.dll_StrCpyNW]
xor r9d, r9d
lea r8d, [r9 + 1]
or ebp, 0xffffffff
cmp r15d, 2
jne 0x14006d5a4
movsxd rdx, dword [rsp + 0x288]
cmp dx, r8w
jg 0x14006d5a4
lea rcx, [0x140000000]
movsx rax, dx
cmp dword [rcx + rax*4 + 0x11c610], r9d
je 0x14006d5a4
movsx ebp, word [rcx + rax*4 + 0x11c610]
cmp esi, 0x10
jne 0x14006d591
cmp ebp, 0xb
je 0x14006d629
cmp esi, 4
je 0x14006d5a4
cmp esi, 0x10
je 0x14006d5a4
cmp ebp, 0xb
jne 0x14006d629
mov qword [rsp + 0x38], r9
mov dword [rsp + 0x30], 0x20000000
mov qword [rsp + 0x60], r9
mov dword [rsp + 0x28], 3
mov qword [rsp + 0x20], r9
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x60]
mov r9d, 3
mov r8d, 0x80000000
call fcn.1400037d4
mov rbx, qword [rsp + 0x60]
xor r9d, r9d
cmp rbx, r9
je 0x14006d629
cmp ebp, r9d
jge 0x14006d606
xor edx, edx
mov r9d, r12d
mov rcx, rbx
lea r8d, [rdx + 1]
call fcn.140062794
xor r9d, r9d
mov ebp, eax
cmp r15d, 2
jne 0x14006d698
cmp esi, 0x10
jne 0x14006d68e
cmp ebp, 0xb
jne 0x14006d698
cmp rbx, 0xffffffffffffffff
je 0x14006d629
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r15, qword [rsp + 0x270]
mov r8d, dword [rsp + 0x40]
mov ebp, dword [rsp + 0x288]
mov r9d, 0x41
lea eax, [r9 - 0x40]
add bp, ax
movsx r12d, bp
mov dword [rsp + 0x288], ebp
cmp r12d, r13d
jle 0x14006d459
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rcx, [rsp + 0x48]
call fcn.140054c44
lea rcx, [rsp + 0x58]
call fcn.140054c44
add rsp, 0x228
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp esi, 4
je 0x14006d698
cmp ebp, 0xb
jne 0x14006d61a
mov r12, qword [rsp + 0x278]
mov r15d, 0x90
xor edx, edx
mov rcx, r12
mov r8, r15
mov dword [rsp + 0x90], r9d
call fcn.1400e16a0
and qword [rsp + 0x38], 0
or dword [r12 + 0x18], 0xffffffff
lea rax, [rsp + 0x90]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x30], rax
mov edx, 0x70048
mov rcx, rbx
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rcx, qword [rsp + 0x270]
movzx r15d, word [r14 + rcx]
test eax, eax
je 0x14006d709
mov r15w, word [r12 + 0x18]
and dword [rsp + 0x90], 0
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
and qword [rsp + 0x38], 0
or dword [r12 + 4], 0xffffffff
lea rax, [rsp + 0x90]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x30], rax
mov edx, 0x2d1080
mov rcx, rbx
mov dword [rsp + 0x28], 0xc
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov r12d, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor r9d, r9d
cmp qword [rsp + 0x50], r9
je 0x14006d7b7
cmp dword [rsp + 0x44], 5
jne 0x14006d7b7
cmp r12d, r9d
je 0x14006d61a
mov rax, qword [rsp + 0x278]
mov word [rdi], r9w
lea r9, [0x1400ff5d0]
movzx ecx, word [rax + 4]
xor r8d, r8d
mov rdx, rdi
call fcn.14006cec4
xor r9d, r9d
cmp word [rdi], r9w
je 0x14006d61a
mov rcx, qword [rsp + 0x270]
movzx eax, word [rsp + 0x70]
mov dword [r14 + rcx + 0x10], eax
movsx eax, r15w
mov r15, qword [rsp + 0x270]
mov dword [r14 + r15], eax
cmp r12d, r9d
je 0x14006d7dd
mov rax, qword [rsp + 0x278]
movsx eax, word [rax + 4]
mov dword [r14 + r15 + 4], eax
cmp esi, 4
jne 0x14006d7f1
mov rdx, rbx
xor ecx, ecx
call fcn.14005ef74
mov dword [r14 + r15 + 0xc], eax
mov eax, dword [rsp + 0x44]
mov dword [r14 + r15 + 0x14], ebp
mov dword [r14 + r15 + 8], eax
cmp rbx, 0xffffffffffffffff
je 0x14006d631
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14006d631