Function at 0x140007a60
Capabilities:
Get disk size
Get storage device properties

Disassembly:
push rbx
push rsi
push r12
sub rsp, 0x160
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x100], rax
lea r9, [rsp + 0x40]
or rbx, 0xffffffffffffffff
mov qword [rsp + 0x50], rdx
mov r12, rcx
mov qword [rsp + 0x48], rcx
mov rsi, rbx
call fcn.140007870
test eax, eax
jne 0x14000802a
mov qword [rsp + 0x148], r14
movsxd r14, dword [rsp + 0x40]
lea rcx, str.Current_phy_disk_count:_d
mov edx, r14d
call fcn.140005180
test r14d, r14d
jg 0x140007aca
lea eax, [rbx + 2]
jmp 0x140007b19
mov qword [rsp + 0x150], r13
mov eax, 0x218
mov qword [rsp + 0x140], r15
mov r13, r14
mul r14
cmovo rax, rbx
mov rcx, rax
call fcn.14000d2a8
mov r15, rax
test rax, rax
jne 0x140007b3d
lea rcx, str.Failed_to_alloc
call fcn.140005180
lea eax, [r15 + 1]
mov r13, qword [rsp + 0x150]
mov r15, qword [rsp + 0x140]
mov r14, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.14000d130
add rsp, 0x160
pop r12
pop rsi
pop rbx
ret
imul r8, r13, 0x218
xor edx, edx
mov rcx, rax
mov qword [rsp + 0x190], rbp
mov qword [rsp + 0x158], rdi
call fcn.14000fe80
xor ebx, ebx
mov ebp, ebx
test r14d, r14d
jle 0x140007ea8
lea r14, [r15 + 8]
mov r12, r13
cmp rsi, 0xffffffffffffffff
je 0x140007b81
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea r8, str..PhysicalDrive_d
lea rcx, [rsp + 0x80]
mov r9d, ebp
mov edx, 0x80
call fcn.14000d244
xor r9d, r9d
mov qword [rsp + 0x30], rbx
lea rcx, [rsp + 0x80]
lea r8d, [r9 + 1]
mov edx, 0x80000000
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r8, [rsp + 0x80]
lea rcx, str.Create_file_Handle:_p__s_status:_u
mov rdx, rsi
mov r9d, eax
call fcn.140005180
cmp rsi, 0xffffffffffffffff
je 0x140007e8c
mov qword [rsp + 0x38], rbx
lea rax, [rsp + 0x60]
xor r9d, r9d
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x68]
xor r8d, r8d
mov edx, 0x7405c
mov rcx, rsi
mov dword [rsp + 0x28], 8
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x140007c47
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.DeviceIoControl_IOCTL_DISK_GET_LENGTH_INFO_failed_error:_u
mov edx, eax
call fcn.140005180
jmp 0x140007e8c
mov r8, qword [rsp + 0x68]
lea rcx, str.PHYSICALDRIVE_d_size__llu_bytes
mov edx, ebp
call fcn.140005180
mov qword [rsp + 0x38], rbx
lea rax, [rsp + 0x60]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x58]
lea r8, [rsp + 0x70]
mov r9d, 0xc
mov edx, 0x2d1400
mov rcx, rsi
mov dword [rsp + 0x28], 8
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x140007cbf
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, dword [rsp + 0x60]
lea rcx, str.DeviceIoControl1_error:_u_dwBytes:_u
mov edx, eax
call fcn.140005180
jmp 0x140007e8c
mov ebx, dword [rsp + 0x5c]
cmp ebx, 0x28
jae 0x140007cdb
lea rcx, str.Invalid_DevDescHeader.Size:_u
mov edx, ebx
call fcn.140005180
jmp 0x140007e8a
mov rcx, rbx
call fcn.14000d2a8
mov rdi, rax
test rax, rax
jne 0x140007d09
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, dword [rsp + 0x5c]
lea rcx, str.failed_to_malloc_error:_u_len:_u
mov edx, eax
call fcn.140005180
jmp 0x140007e8a
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x60]
lea r8, [rsp + 0x70]
mov qword [rsp + 0x30], rax
mov r9d, 0xc
mov edx, 0x2d1400
mov rcx, rsi
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x140007d68
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, dword [rsp + 0x60]
lea rcx, str.DeviceIoControl2_error:_u_dwBytes:_u
mov edx, eax
call fcn.140005180
mov rcx, rdi
call fcn.14000d268
jmp 0x140007e8a
movzx eax, byte [rdi + 0xa]
mov dword [r14 + 4], eax
mov eax, dword [rdi + 0x1c]
mov dword [r14], eax
movzx eax, byte [rdi + 8]
mov byte [r14 + 8], al
mov rax, qword [rsp + 0x68]
mov qword [r14 - 8], rax
mov edx, dword [rdi + 0xc]
test edx, edx
je 0x140007dbe
movsxd rax, ebp
lea r8, [rdi + rdx]
lea rcx, [r15 + 0x11]
mov edx, 0x80
imul rbx, rax, 0x218
add rcx, rbx
call fcn.14000d1e0
lea rcx, [r15 + 0x11]
mov edx, 1
add rcx, rbx
call fcn.140004fe0
mov edx, dword [rdi + 0x10]
test edx, edx
je 0x140007dfb
movsxd rax, ebp
lea r8, [rdi + rdx]
lea rcx, [r15 + 0x91]
mov edx, 0x80
imul rbx, rax, 0x218
add rcx, rbx
call fcn.14000d1e0
lea rcx, [r15 + 0x91]
mov edx, 1
add rcx, rbx
call fcn.140004fe0
mov edx, dword [rdi + 0x14]
test edx, edx
je 0x140007e38
movsxd rax, ebp
lea r8, [rdi + rdx]
lea rcx, [r15 + 0x111]
mov edx, 0x80
imul rbx, rax, 0x218
add rcx, rbx
call fcn.14000d1e0
lea rcx, [r15 + 0x111]
mov edx, 1
add rcx, rbx
call fcn.140004fe0
mov edx, dword [rdi + 0x18]
test edx, edx
je 0x140007e75
movsxd rax, ebp
lea r8, [rdi + rdx]
lea rcx, [r15 + 0x191]
mov edx, 0x80
imul rbx, rax, 0x218
add rcx, rbx
call fcn.14000d1e0
lea rcx, [r15 + 0x191]
mov edx, 1
add rcx, rbx
call fcn.140004fe0
mov rcx, rdi
call fcn.14000d268
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
or rsi, 0xffffffffffffffff
xor ebx, ebx
inc ebp
add r14, 0x218
dec r12
jne 0x140007b72
mov r14d, dword [rsp + 0x40]
mov r12, qword [rsp + 0x48]
lea rcx, str._DUMP_DISK_BEGIN_
call fcn.140005180
mov rbp, qword [rsp + 0x190]
mov esi, ebx
test r13, r13
jle 0x140007ff1
movaps xmmword [rsp + 0x130], xmm6
movsd xmm6, qword [0x140024fa0]
movaps xmmword [rsp + 0x120], xmm7
movsd xmm7, qword [0x140024fa8]
lea rdi, [r15 + 8]
movaps xmmword [rsp + 0x110], xmm8
movsd xmm8, qword [0x140024fb0]
nop dword [rax]
mov rbx, qword [rdi - 8]
xorps xmm2, xmm2
mov eax, 1
cvtsi2sd xmm2, rbx
test rbx, rbx
jns 0x140007f1b
addsd xmm2, xmm8
divsd xmm2, xmm7
divsd xmm2, xmm7
divsd xmm2, xmm7
test rbx, 0x3fffffff
jne 0x140007f39
mov r11, rbx
shr r11, 0x1e
jmp 0x140007f7b
xor ecx, ecx
nop dword [rax + rax]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
comisd xmm1, xmm2
jbe 0x140007f57
movaps xmm0, xmm1
subsd xmm0, xmm2
jmp 0x140007f5e
movaps xmm0, xmm2
subsd xmm0, xmm1
divsd xmm0, xmm1
comisd xmm6, xmm0
ja 0x140007f78
inc ecx
add eax, eax
cmp ecx, 0xc
jl 0x140007f40
cvttsd2si r11d, xmm2
jmp 0x140007f7b
mov r11d, eax
movsxd rax, esi
lea r9, [r15 + 0x91]
lea r10, [r15 + 0x11]
imul rcx, rax, 0x218
add r9, rcx
add r10, rcx
mov ecx, dword [rdi]
call fcn.140007960
mov qword [rsp + 0x38], r9
mov r9d, dword [rdi + 4]
mov qword [rsp + 0x30], r10
lea rcx, str.PhyDrv:_d_BusType:__4s_Removable:_u_Size:_dGB__llu__Name:_s__s
mov r8, rax
mov edx, esi
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], r11d
call fcn.140005180
inc esi
add rdi, 0x218
dec r13
jne 0x140007f00
movaps xmm8, xmmword [rsp + 0x110]
movaps xmm7, xmmword [rsp + 0x120]
movaps xmm6, xmmword [rsp + 0x130]
mov edx, dword [0x14002bc34]
lea rcx, str.Ventoy_disk_is_PhyDvr_d
call fcn.140005180
lea rcx, str._DUMP_DISK_END_
call fcn.140005180
mov rax, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x158]
mov qword [r12], r15
mov dword [rax], r14d
xor eax, eax
jmp 0x140007b09
lea rcx, str.Failed_to_read_disk_count
call fcn.140005180
mov eax, 1
jmp 0x140007b21