Function at 0x10003c4e0
Capabilities:
Get disk information via ioctl
Get storage device properties

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
movaps xmmword [rax - 0x48], xmm6
mov rax, qword [0x10007f110]
xor rax, rsp
mov qword [rsp + 0x88], rax
movdqu xmm6, xmmword [0x1000025e0]
xor r15d, r15d
mov r14, r8
mov r12, rdx
mov rbx, rcx
lea ebp, [r15 + 8]
lea r8, [0x100007fd8]
lea edx, [rbp + 0x56]
lea rcx, [rsp + 0x58]
movdqu xmmword [rsp + 0x78], xmm6
mov dword [rsp + 0x40], r15d
mov edi, r15d
mov rsi, r15
call sub.vdsutil.dll_public:_void___cdecl_CVdsCallTracer::constructor_unsigned_long_int__char_const____ptr64____ptr64
lea r8d, [r15 + 0x60]
xor edx, edx
mov rcx, r12
mov dword [r14], 0xf423f
call sub.msvcrt.dll_memset
lea r9, [0x100007348]
lea r13d, [r15 + 3]
cmp rbx, r15
lea r8, [0x100008000]
lea ecx, [rbp + 0x56]
cmovne r9, rbx
mov edx, r13d
call sub.vdsutil.dll_void___cdecl_VdsTraceEx_unsigned_long_int__unsigned_long_int__char____ptr64_
mov qword [rsp + 0x30], r15
lea r8d, [r15 + 1]
xor r9d, r9d
mov edx, 0xc0000000
mov rcx, rbx
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r13d
call qword [sym.imp.API_MS_Win_Core_File_L1_1_0.dll_CreateFileW]
mov r13, rax
cmp rax, r15
je 0x10003cafc
cmp rax, 0xffffffffffffffff
je 0x10003cafc
mov qword [rsp + 0x38], r15
lea rax, [rsp + 0x40]
xor r9d, r9d
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x48]
xor r8d, r8d
mov edx, 0x2d1080
mov rcx, r13
mov dword [rsp + 0x28], 0xc
mov qword [rsp + 0x20], rax
call qword [sym.imp.API_MS_Win_Core_IO_L1_1_0.dll_DeviceIoControl]
cmp eax, r15d
jne 0x10003c60b
call qword [sym.imp.API_MS_Win_Core_ErrorHandling_L1_1_0.dll_GetLastError]
lea r8, [0x100008070]
jmp 0x10003cb09
mov eax, dword [rsp + 0x4c]
mov dword [r14], eax
cmp rsi, r15
je 0x10003c620
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov ecx, ebp
mov ebx, ebp
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov rsi, rax
cmp rax, r15
je 0x10003caea
mov r8, rbx
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_memset
mov qword [rsp + 0x38], r15
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x68]
mov r9d, 0xc
mov edx, 0x2d1400
mov rcx, r13
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x68], r15d
mov dword [rsp + 0x6c], r15d
mov qword [rsp + 0x20], rsi
call qword [sym.imp.API_MS_Win_Core_IO_L1_1_0.dll_DeviceIoControl]
cmp eax, r15d
je 0x10003cabd
cmp ebp, dword [rsi + 4]
jae 0x10003c691
mov ebp, dword [rsi + 4]
jmp 0x10003c612
cmp ebp, 0x28
jae 0x10003c6ac
mov eax, 0x8007007a
lea r8, [0x100008118]
mov edi, eax
mov r9d, eax
jmp 0x10003cb1b
mov ecx, 1
mov dword [r12], ecx
mov al, byte [rsi + 8]
mov byte [r12 + 4], al
mov al, byte [rsi + 9]
lea ebx, [rcx + 0x23]
mov byte [r12 + 5], al
movzx eax, byte [rsi + 0xb]
mov dword [r12 + 8], eax
mov eax, dword [rsi + 0x1c]
mov dword [r12 + 0xc], eax
mov r9d, dword [rsi + 0xc]
cmp r9d, r15d
je 0x10003c719
cmp r9d, ebp
jae 0x10003c719
cmp r9d, ebx
jb 0x10003c719
lea rcx, [r12 + 0x10]
mov r8d, r9d
mov rdx, rsi
call fcn.10003c048
cmp eax, r15d
mov edi, eax
jge 0x10003c73a
lea r8, [0x100008150]
lea ecx, [rbx + 0x3a]
mov r9d, eax
xor edx, edx
call sub.vdsutil.dll_void___cdecl_VdsTraceEx_unsigned_long_int__unsigned_long_int__char____ptr64_
jmp 0x10003c735
mov edx, ecx
lea r8, [0x100008190]
mov ecx, 0x5e
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], ebp
call sub.vdsutil.dll_void___cdecl_VdsTraceEx_unsigned_long_int__unsigned_long_int__char____ptr64_
cmp edi, r15d
jl 0x10003c777
mov r8d, dword [rsi + 0x10]
cmp r8d, r15d
je 0x10003c777
cmp r8d, ebp
jae 0x10003c777
cmp r8d, ebx
jb 0x10003c777
lea rcx, [r12 + 0x18]
mov rdx, rsi
call fcn.10003c048
cmp eax, r15d
mov edi, eax
jge 0x10003c79a
xor edx, edx
lea r8, [0x1000081f8]
mov r9d, eax
lea ecx, [rdx + 0x5e]
call sub.vdsutil.dll_void___cdecl_VdsTraceEx_unsigned_long_int__unsigned_long_int__char____ptr64_
jmp 0x10003c795
mov r9d, dword [rsi + 0x10]
xor edx, edx
lea r8, [0x100008230]
lea ecx, [rdx + 0x5e]
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], ebp
call sub.vdsutil.dll_void___cdecl_VdsTraceEx_unsigned_long_int__unsigned_long_int__char____ptr64_
cmp edi, r15d
jl 0x10003c7d7
mov r8d, dword [rsi + 0x14]
cmp r8d, r15d
je 0x10003c7d7
cmp r8d, ebp
jae 0x10003c7d7
cmp r8d, ebx
jb 0x10003c7d7
lea rcx, [r12 + 0x20]
mov rdx, rsi
call fcn.10003c048
cmp eax, r15d
mov edi, eax
jge 0x10003c7fa
xor edx, edx
lea r8, [0x100008298]
mov r9d, eax
lea ecx, [rdx + 0x5e]
call sub.vdsutil.dll_void___cdecl_VdsTraceEx_unsigned_long_int__unsigned_long_int__char____ptr64_
jmp 0x10003c7f5
mov r9d, dword [rsi + 0x14]
xor edx, edx
lea r8, [0x1000082d0]
lea ecx, [rdx + 0x5e]
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], ebp
call sub.vdsutil.dll_void___cdecl_VdsTraceEx_unsigned_long_int__unsigned_long_int__char____ptr64_
cmp edi, r15d
jl 0x10003c83d
mov r8d, dword [rsi + 0x18]
cmp r8d, r15d
je 0x10003c83d
cmp r8d, ebp
jae 0x10003c83d
cmp r8d, ebx
jb 0x10003c83d
lea rcx, [r12 + 0x28]
mov rdx, rsi
call fcn.10003c048
mov r14d, 0x5e
cmp eax, r15d
mov edi, eax
jge 0x10003c85f
lea r8, [0x100008340]
mov r9d, eax
xor edx, edx
mov ecx, r14d
call sub.vdsutil.dll_void___cdecl_VdsTraceEx_unsigned_long_int__unsigned_long_int__char____ptr64_
jmp 0x10003c85f
mov r9d, dword [rsi + 0x18]
xor edx, edx
lea r8, [0x100008380]
lea r14d, [rdx + 0x5e]
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], ebp
mov ecx, r14d
call sub.vdsutil.dll_void___cdecl_VdsTraceEx_unsigned_long_int__unsigned_long_int__char____ptr64_
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov ecx, ebp
mov ebx, ebp
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov rsi, rax
cmp rax, r15
je 0x10003caa8
mov r8, rbx
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_memset
mov qword [rsp + 0x38], r15
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x68]
mov r9d, 0xc
mov edx, 0x2d1400
mov rcx, r13
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x68], 2
mov dword [rsp + 0x6c], r15d
mov qword [rsp + 0x20], rsi
call qword [sym.imp.API_MS_Win_Core_IO_L1_1_0.dll_DeviceIoControl]
mov ebx, eax
cmp eax, r15d
je 0x10003c8da
cmp ebp, dword [rsi + 4]
jae 0x10003c8f4
mov ebp, dword [rsi + 4]
jmp 0x10003c85f
call qword [sym.imp.API_MS_Win_Core_ErrorHandling_L1_1_0.dll_GetLastError]
lea r8, [0x100008428]
xor edx, edx
mov r9d, eax
mov ecx, r14d
call sub.vdsutil.dll_void___cdecl_VdsTraceEx_unsigned_long_int__unsigned_long_int__char____ptr64_
mov eax, dword [rsp + 0x40]
cmp ebx, r15d
je 0x10003c92b
cmp eax, 0x10
jb 0x10003c92b
cmp eax, dword [rsi + 4]
jne 0x10003c92b
mov rdx, r12
mov rcx, rsi
call fcn.10003c160
cmp eax, r15d
mov edi, eax
jge 0x10003c95e
mov r9d, eax
lea r8, [0x100008460]
mov ecx, r14d
jmp 0x10003cb20
mov dword [r12 + 0x40], r15d
mov dword [r12 + 0x44], r15d
mov r9d, dword [rsi + 4]
mov dword [rsp + 0x30], ebx
lea r8, [0x1000084a0]
mov edx, 1
mov ecx, r14d
mov qword [rsp + 0x28], 0x10
mov dword [rsp + 0x20], eax
call sub.vdsutil.dll_void___cdecl_VdsTraceEx_unsigned_long_int__unsigned_long_int__char____ptr64_
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov ecx, ebp
mov ebx, ebp
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov rsi, rax
cmp rax, r15
je 0x10003ca93
mov r8, rbx
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_memset
mov qword [rsp + 0x38], r15
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x70050
mov rcx, r13
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], rsi
call qword [sym.imp.API_MS_Win_Core_IO_L1_1_0.dll_DeviceIoControl]
cmp eax, r15d
jne 0x10003c9f2
call qword [sym.imp.API_MS_Win_Core_ErrorHandling_L1_1_0.dll_GetLastError]
cmp eax, 0x7a
jne 0x10003c9ce
add ebp, 0x2400
jmp 0x10003c95e
call qword [sym.imp.API_MS_Win_Core_ErrorHandling_L1_1_0.dll_GetLastError]
lea r8, [0x1000085f8]
movzx edi, ax
or edi, 0x80070000
cmp eax, r15d
cmovle edi, eax
mov r9d, edi
jmp 0x10003c923
mov ecx, dword [rsp + 0x40]
mov r9d, 0x30
cmp ebp, r9d
jb 0x10003ca6a
cmp ecx, r9d
jb 0x10003ca6a
mov eax, dword [rsi + 4]
lea ecx, [rax + rax*8]
shl ecx, 4
add ecx, r9d
cmp ebp, ecx
jae 0x10003ca3e
mov eax, 0x8007007a
mov dword [rsp + 0x28], ecx
lea r8, [0x1000085a0]
xor edx, edx
mov ecx, r14d
mov r9d, eax
mov edi, eax
mov dword [rsp + 0x20], ebp
call sub.vdsutil.dll_void___cdecl_VdsTraceEx_unsigned_long_int__unsigned_long_int__char____ptr64_
jmp 0x10003cb27
mov eax, dword [rsi]
cmp eax, r15d
je 0x10003ca51
cmp eax, 1
jne 0x10003ca5e
movdqu xmm6, xmmword [rsi + 8]
jmp 0x10003ca5e
mov eax, dword [rsi + 8]
mov dword [rsp + 0x78], eax
movdqu xmm6, xmmword [rsp + 0x78]
movdqu xmmword [r12 + 0x30], xmm6
jmp 0x10003cb27
mov eax, 0x8007007a
lea r8, [0x100008540]
xor edx, edx
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], ecx
mov ecx, r14d
mov edi, eax
mov dword [rsp + 0x20], ebp
call sub.vdsutil.dll_void___cdecl_VdsTraceEx_unsigned_long_int__unsigned_long_int__char____ptr64_
jmp 0x10003cb27
mov r9d, 0x8007000e
lea r8, [0x100008500]
mov edi, r9d
jmp 0x10003c923
mov r9d, 0x8007000e
lea r8, [0x1000083f0]
mov edi, r9d
jmp 0x10003c923
call qword [sym.imp.API_MS_Win_Core_ErrorHandling_L1_1_0.dll_GetLastError]
xor edx, edx
lea r8, [0x1000080e0]
lea ecx, [rdx + 0x5e]
mov r9d, eax
mov ebx, eax
call sub.vdsutil.dll_void___cdecl_VdsTraceEx_unsigned_long_int__unsigned_long_int__char____ptr64_
movzx edi, bx
or edi, 0x80070000
cmp ebx, r15d
cmovle edi, ebx
jmp 0x10003cb27
mov r9d, 0x8007000e
lea r8, [0x1000080a8]
mov edi, r9d
jmp 0x10003cb1b
call qword [sym.imp.API_MS_Win_Core_ErrorHandling_L1_1_0.dll_GetLastError]
lea r8, [0x100008038]
movzx edi, ax
or edi, 0x80070000
cmp eax, r15d
cmovle edi, eax
mov r9d, edi
mov ecx, 0x5e
xor edx, edx
call sub.vdsutil.dll_void___cdecl_VdsTraceEx_unsigned_long_int__unsigned_long_int__char____ptr64_
cmp r13, r15
je 0x10003cb3b
cmp r13, 0xffffffffffffffff
je 0x10003cb3b
mov rcx, r13
call qword [sym.imp.API_MS_Win_Core_Handle_L1_1_0.dll_CloseHandle]
cmp rsi, r15
je 0x10003cb49
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
lea rcx, [rsp + 0x58]
call sub.vdsutil.dll_public:_void___cdecl_CVdsCallTracer::destructor_void____ptr64
mov eax, edi
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.100075490
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x58]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret