Function at 0x1400a9ad0
Capabilities:
Get disk information via ioctl

Disassembly:
push rbp
push rbx
push r13
push r14
push r15
lea rbp, [rsp - 0x3b0]
sub rsp, 0x4b0
mov eax, dword [0x1401182c8]
xor r13d, r13d
mov dword [rsp + 0x40], eax
mov r14, r8
movzx eax, word [0x1401182cc]
mov r15, rdx
mov word [rsp + 0x44], ax
xor r9d, r9d
movzx eax, byte [0x1401182ce]
lea r8d, [r13 + 3]
mov byte [rsp + 0x44], cl
xor edx, edx
mov qword [rsp + 0x30], r13
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x28], r13d
mov byte [rsp + 0x46], al
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x1400a9d82
mov qword [rsp + 0x38], r13
lea rax, [rbp + 0x3e0]
mov qword [rsp + 0x30], rax
xor r9d, r9d
lea rax, [rsp + 0x48]
mov qword [rsp + 0x4a8], rdi
mov dword [rsp + 0x28], select
xor r8d, r8d
mov edx, 0x2d1080
mov qword [rsp + 0x20], rax
mov rcx, rbx
mov qword [rsp + 0x4a0], r12
mov dword [rsp + 0x4c], 0xffffffff
mov dword [rbp + 0x3e0], r13d
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov r12d, dword [rsp + 0x4c]
mov rcx, rbx
test eax, eax
cmove r12d, r13d
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea r9d, [r13 + 0x12]
xor r8d, r8d
xor edx, edx
lea rcx, [0x140118258]
call qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsA]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x1400a9d72
lea rax, [rsp + 0x58]
mov qword [rsp + 0x4e8], rsi
xor r9d, r9d
mov qword [rsp + 0x20], rax
lea r8, [0x140118258]
mov dword [rsp + 0x58], 0x20
xor edx, edx
mov rcx, rdi
mov esi, r13d
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
test eax, eax
je 0x1400a9d61
lea rax, [rbp + 0x3e0]
mov qword [rsp + 0x28], r13
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov dword [rbp + 0x3e0], r13d
lea rdx, [rsp + 0x58]
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailA]
mov r9d, dword [rbp + 0x3e0]
lea eax, [r9 - 1]
cmp eax, 0x3ff
ja 0x1400a9d38
xorps xmm0, xmm0
mov dword [rbp - 0x60], 8
lea rax, [rsp + 0x78]
mov rcx, rdi
mov qword [rsp + 0x28], rax
lea r8, [rbp - 0x60]
lea rax, [rbp + 0x3e0]
movups xmmword [rsp + 0x78], xmm0
lea rdx, [rsp + 0x58]
mov qword [rsp + 0x20], rax
movups xmmword [rbp - 0x78], xmm0
mov dword [rsp + 0x78], 0x20
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailA]
test eax, eax
je 0x1400a9d38
xor r9d, r9d
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], r13d
lea rcx, [rbp - 0x5c]
xor edx, edx
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x1400a9d2f
mov qword [rsp + 0x38], r13
lea rax, [rbp + 0x3f8]
mov qword [rsp + 0x30], rax
xor r9d, r9d
lea rax, [rsp + 0x48]
mov dword [rsp + 0x28], select
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov edx, 0x2d1080
mov dword [rsp + 0x4c], 0xffffffff
mov rcx, rbx
mov dword [rbp + 0x3f8], r13d
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov ecx, dword [rsp + 0x4c]
test eax, eax
cmove ecx, r13d
cmp ecx, r12d
jne 0x1400a9d2f
lea r8, [rbp - 0x5c]
mov rdx, r14
mov rcx, r15
call fcn.1400ee7e0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rax, [rsp + 0x58]
inc esi
mov r9d, esi
mov qword [rsp + 0x20], rax
lea r8, [0x140118258]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
test eax, eax
jne 0x1400a9c10
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov rsi, qword [rsp + 0x4e8]
mov rdi, qword [rsp + 0x4a8]
mov r12, qword [rsp + 0x4a0]
add rsp, 0x4b0
pop r15
pop r14
pop r13
pop rbx
pop rbp
ret