Function at 0x1400767e8
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, 0x238
xor r14d, r14d
mov eax, 0xffdf
movzx ebp, r8w
mov ebx, r8d
lea r15d, [r14 + 1]
mov r12, rdx
sar ebx, 0x10
mov r13, rcx
mov esi, r14d
and bx, ax
movzx eax, bp
and ax, 0x20
mov word [rsp + 0x290], ax
test r15b, bpl
je 0x140076848
test bpl, 8
je 0x140076848
lea esi, [r14 + 8]
and ebp, 0xfffffff7
mov rax, rdx
neg rax
sbb ecx, ecx
not ecx
and ecx, 0x200
add ecx, 0x800
movsxd rdx, ecx
lea rcx, [rsp + 0x68]
call fcn.140063028
mov rdi, qword [rsp + 0x68]
cmp r12, r14
jne 0x140076884
lea rax, [rdi + 0x800]
mov qword [rsp + 0x288], rax
movdqu xmm0, xmmword [str.__C:]
lea rdx, [0x140000000]
lea rcx, [rsp + 0x80]
mov rax, qword [rdx + 0x126e50]
mov qword [rsp + 0x58], r14
movdqu xmmword [rsp + 0x70], xmm0
mov qword [rcx], rax
mov rax, qword [rdx + 0x126e58]
mov qword [rcx + 8], rax
mov eax, dword [rdx + 0x126e60]
mov dword [rcx + 0x10], eax
mov ecx, 0x1b
lea rax, [r13 + 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, r15
jne 0x1400768d0
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
lea ecx, [rbx - 0x61]
mov r15d, 0x19
mov r8d, eax
mov dword [rsp + 0x40], eax
cmp cx, r15w
ja 0x140076916
mov eax, 0xffe0
add bx, ax
movzx ecx, bx
mov r9d, 0x41
mov edx, r14d
sub cx, r9w
mov dword [rsp + 0x298], edx
cmp cx, r15w
ja 0x140076944
movzx r15d, bx
sub r15d, r9d
mov edx, r15d
mov dword [rsp + 0x298], edx
movsx r12d, dx
movsxd rax, esi
cmp r12d, r15d
mov qword [rsp + 0x60], rax
jg 0x140076b6d
mov esi, dword [rsp + 0x298]
mov eax, 1
bt r8d, r12d
jae 0x140076b56
lea ebx, [r9 + rsi]
lea eax, [r12 + 0x41]
movsx r14, si
lea rcx, [rsp + 0x88]
mov word [rsp + 0x88], bx
imul r14, r14, 0x220
mov dword [r14 + r13 + 0x10], eax
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov r13d, eax
mov dword [rsp + 0x44], eax
cmp eax, 3
je 0x1400769d0
cmp eax, 2
je 0x1400769d0
mov rsi, qword [rsp + 0x280]
xor r9d, r9d
or dword [r14 + rsi + 0x10], 0xc000
mov dword [r14 + rsi], r9d
mov cl, r9b
lea r8d, [r9 + 1]
jmp 0x1400769e4
mov rsi, qword [rsp + 0x280]
mov r8d, 1
xor r9d, r9d
mov cl, r8b
mov word [rsp + 0x78], bx
cmp eax, r8d
je 0x140076b38
cmp ebp, 8
je 0x140076a16
cmp ebp, 0x10
jne 0x140076a01
cmp eax, 2
jmp 0x140076a19
cmp ebp, 4
je 0x140076a1f
cmp cl, r9b
jne 0x140076a1f
cmp qword [rsp + 0x60], r9
je 0x140076b38
cmp eax, 5
jne 0x140076b38
cmp word [rsp + 0x290], r9w
je 0x140076a5b
lea r9, [rsp + 0x58]
lea rcx, [rsp + 0x70]
xor r8d, r8d
xor edx, edx
call fcn.14001d914
mov rdx, qword [rsp + 0x58]
lea rcx, [r14 + rsi + 0x18]
mov r8d, 0x104
call qword [sym.imp.SHLWAPI.dll_StrCpyNW]
xor r9d, r9d
lea r8d, [r9 + 1]
or esi, 0xffffffff
cmp r13d, 2
jne 0x140076ab0
movsxd rdx, dword [rsp + 0x298]
cmp dx, r8w
jg 0x140076ab0
lea rcx, [0x140000000]
movsx rax, dx
cmp dword [rcx + rax*4 + 0x13d770], r9d
je 0x140076ab0
movsx esi, word [rcx + rax*4 + 0x13d770]
cmp ebp, 0x10
jne 0x140076a9d
cmp esi, 0xb
je 0x140076b38
cmp ebp, 4
je 0x140076ab0
cmp ebp, 0x10
je 0x140076ab0
cmp esi, 0xb
jne 0x140076b38
mov qword [rsp + 0x38], r9
mov dword [rsp + 0x30], 0x20000000
mov qword [rsp + 0x48], r9
mov dword [rsp + 0x28], 3
mov qword [rsp + 0x20], r9
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x48]
mov r9d, 3
mov r8d, 0x80000000
call fcn.140003888
mov rbx, qword [rsp + 0x48]
xor r9d, r9d
cmp rbx, r9
je 0x140076b38
cmp esi, r9d
jge 0x140076b15
xor edx, edx
mov r9d, r12d
mov rcx, rbx
lea r8d, [rdx + 1]
call fcn.1400696cc
xor r9d, r9d
mov esi, eax
cmp r13d, 2
jne 0x140076ba7
cmp ebp, 0x10
jne 0x140076b9d
cmp esi, 0xb
jne 0x140076ba7
cmp rbx, 0xffffffffffffffff
je 0x140076b38
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r13, qword [rsp + 0x280]
mov r8d, dword [rsp + 0x40]
mov esi, dword [rsp + 0x298]
mov r9d, 0x41
lea eax, [r9 - 0x40]
add si, ax
movsx r12d, si
mov dword [rsp + 0x298], esi
cmp r12d, r15d
jle 0x140076965
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rcx, [rsp + 0x58]
call fcn.14005aef8
lea rcx, [rsp + 0x68]
call fcn.14005aef8
add rsp, 0x238
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp ebp, 4
je 0x140076ba7
cmp esi, 0xb
jne 0x140076b29
mov rax, qword [rsp + 0x280]
mov r12, qword [rsp + 0x288]
xor edx, edx
mov r13w, word [r14 + rax]
mov r8d, 0x90
mov rcx, r12
mov dword [rsp + 0xa0], r9d
call fcn.140101f00
or dword [r12 + 0x18], 0xffffffff
xor ecx, ecx
lea rax, [rsp + 0xa0]
xor r9d, r9d
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rax
xor r8d, r8d
mov edx, 0x70048
mov rcx, rbx
mov dword [rsp + 0x28], 0x90
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
xor ecx, ecx
cmp eax, ecx
je 0x140076c1b
mov r13w, word [r12 + 0x18]
mov dword [rsp + 0xa0], ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
or dword [r12 + 4], 0xffffffff
xor ecx, ecx
lea rax, [rsp + 0xa0]
xor r9d, r9d
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rax
xor r8d, r8d
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]
mov eax, dword [rsp + 0x44]
xor r9d, r9d
cmp qword [rsp + 0x60], r9
je 0x140076cd1
cmp eax, 5
jne 0x140076cd1
cmp r12d, r9d
je 0x140076b29
mov rax, qword [rsp + 0x288]
mov word [rdi], r9w
lea r9, [0x14011e860]
movzx ecx, word [rax + 4]
xor r8d, r8d
mov rdx, rdi
call fcn.1400761b4
xor r9d, r9d
cmp word [rdi], r9w
je 0x140076b29
mov rcx, qword [rsp + 0x280]
movzx eax, word [rsp + 0x88]
mov dword [r14 + rcx + 0x10], eax
jmp 0x140076d8d
cmp eax, 2
jne 0x140076d8d
cmp r12d, r9d
je 0x140076cf2
mov rcx, qword [rsp + 0x288]
cmp word [rcx + 4], r9w
jge 0x140076d95
lea rcx, [rsp + 0x50]
call fcn.1400632a0
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x70]
xor r9d, r9d
xor r8d, r8d
call fcn.14001d914
mov rcx, qword [rsp + 0x50]
lea rdx, str.DeviceFloppy
mov r8d, 0xe
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
xor ecx, ecx
cmp eax, ecx
jne 0x140076d80
mov rax, qword [rsp + 0x50]
mov r13, qword [rsp + 0x288]
lea rdx, [rsp + 0x48]
add rax, 0x1c
lea rcx, [rsp + 0x98]
mov qword [rsp + 0x98], rax
mov eax, dword [r13 + 4]
mov dword [rsp + 0x48], eax
call fcn.1400679cc
xor edx, edx
cmp eax, edx
je 0x140076d7d
mov eax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x280]
mov dword [r13 + 4], eax
mov dword [r14 + rcx + 4], eax
mov r13d, edx
lea rcx, [rsp + 0x50]
call fcn.14005aef8
xor r9d, r9d
mov rcx, qword [rsp + 0x288]
movsx eax, r13w
mov r13, qword [rsp + 0x280]
mov dword [r14 + r13], eax
cmp r12d, r9d
je 0x140076db3
movsx eax, word [rcx + 4]
mov dword [r14 + r13 + 4], eax
cmp ebp, 4
jne 0x140076dc7
mov rdx, rbx
xor ecx, ecx
call fcn.140065bcc
mov dword [r14 + r13 + 0xc], eax
mov eax, dword [rsp + 0x44]
mov dword [r14 + r13 + 0x14], esi
mov dword [r14 + r13 + 8], eax
cmp rbx, 0xffffffffffffffff
je 0x140076b40
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x140076b40