Function at 0x40e620
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x634
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x430248]
xorps xmm0, xmm0
push ebx
push esi
push edi
mov dword [ebp - 0x418], eax
xor edi, edi
mov eax, dword [0x430244]
mov esi, 0x41
mov dword [ebp - 0x410], eax
mov dword [ebp - 0x40c], 0
mov dword [ebp - 0x414], edi
movlpd qword [ebp - 0x428], xmm0
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov ebx, eax
test ebx, ebx
je 0x40e6b5
lea ebx, [ebx]
test bl, 1
je 0x40e6aa
mov ecx, esi
mov dword [ebp + edi*4 - 0x408], esi
call fcn.00407150
push eax
push esi
push str.Logical_Drive:_C____PhyDrive:_d
mov dword [ebp + edi*4 - 0x208], eax
call fcn.0040c4e0
add esp, 0xc
inc edi
inc esi
shr ebx, 1
jne 0x40e680
mov dword [ebp - 0x414], edi
mov ecx, dword [ebp - 0x418]
test ecx, ecx
je 0x40e884
mov ebx, dword [ebp - 0x410]
add ebx, 8
mov dword [ebp - 0x41c], ecx
push 0x40
xorps xmm0, xmm0
mov dword [ebx - 8], 0xffffffff
lea esi, [ebx + 0x21c]
movlpd qword [ebp - 0x430], xmm0
push 0
push esi
call fcn.004198c0
add esp, 0xc
cmp dword [0x430240], 0
je 0x40e723
cmp dword [ebx + 0x14], 0
jne 0x40e723
lea eax, [ebx + 0x98]
push eax
lea eax, [ebx + 0x18]
push eax
push str.__s__s__is_filtered_for_not_removable.
call fcn.0040c4e0
add esp, 0xc
jmp 0x40e84c
cmp dword [0x42f214], 0
je 0x40e752
cmp dword [ebx + 0x218], 7
je 0x40e752
lea eax, [ebx + 0x98]
push eax
lea eax, [ebx + 0x18]
push eax
push str.__s__s__is_filtered_for_not_USB_type.
call fcn.0040c4e0
add esp, 0xc
jmp 0x40e84c
mov eax, dword [ebp - 0x40c]
xor ecx, ecx
mov dword [ebx - 8], eax
inc eax
mov dword [ebp - 0x40c], eax
test edi, edi
jle 0x40e793
mov edx, 0xfffffde5
sub edx, ebx
nop
mov eax, dword [ebp + ecx*4 - 0x208]
cmp eax, dword [ebx - 4]
jne 0x40e78e
lea eax, [edx + esi]
cmp eax, 0x40
jae 0x40e78d
mov al, byte [ebp + ecx*4 - 0x408]
mov byte [esi], al
inc esi
inc ecx
cmp ecx, edi
jl 0x40e770
mov ecx, dword [ebx - 4]
lea eax, [ebp - 0x430]
push eax
lea eax, [ebp - 0x428]
push eax
sub esp, 8
lea edx, [ebp - 0x630]
call fcn.0040e0b0
add esp, 0x10
test eax, eax
je 0x40e84c
lea edi, [ebx + 0x280]
mov ecx, 0x80
lea esi, [ebp - 0x630]
xor eax, eax
cmp byte [ebp - 0x46e], 0xee
lea edx, [ebx + 0x25c]
rep movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0x27c]
sete al
push esi
push ecx
push dword [ebp - 0x424]
mov dword [ebx], eax
lea ecx, [ebx - 8]
mov eax, dword [ebp - 0x430]
push dword [ebp - 0x428]
mov dword [ebx + 0x480], eax
mov eax, dword [ebp - 0x42c]
mov dword [ebx + 0x484], eax
call fcn.00407910
push dword [esi]
lea esi, [ebx + 0x25c]
push esi
push dword [ebx - 4]
push str.PhyDrive__d_is_Ventoy_Disk_ver:_s_SecureBoot:_u
call fcn.0040c4e0
add esp, 0x20
cmp byte [esi], 0
jne 0x40e846
push str.Unknown_Ventoy_Version
mov byte [esi], 0x3f
call fcn.0040c4e0
add esp, 4
mov edi, dword [ebp - 0x414]
add ebx, 0x490
dec dword [ebp - 0x41c]
jne 0x40e6d2
mov ecx, dword [ebp - 0x418]
test ecx, ecx
je 0x40e884
mov eax, dword [ebp - 0x410]
mov edi, edi
cmp dword [eax], 0
jge 0x40e87c
mov dword [eax + 4], 0xffffff
add eax, 0x490
dec ecx
jne 0x40e870
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x40c]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004136c0
mov esp, ebp
pop ebp
ret