Function at 0x40cf30
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1764
call fcn.0042c040
mov eax, dword [0x43d004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x171c], edx
push 0x104
push eax
mov dword [ebp - 0x1754], eax
mov ebx, ecx
mov dword [ebp - 0x173c], eax
lea eax, [ebp - 0x190]
push eax
mov dword [ebp - 0x1728], 0
mov dword [ebp - 0x1750], 0
mov dword [ebp - 0x1744], 0
mov dword [ebp - 0x1740], 1
mov dword [ebp - 0x1734], 0x5c3a3f
call fcn.00418c40
add esp, 0xc
mov dword [ebp - 0x1738], 0
xor edi, edi
mov dword [ebp - 0x1748], edi
push 0x437e90
call fcn.0040f530
mov edi, dword [ebx + 0x10]
add esp, 4
mov edx, dword [ebx + 0x14]
mov ecx, edi
mov esi, 1
call fcn.0042c390
movsd xmm1, qword [0x43b198]
movaps xmm2, xmm0
divsd xmm2, xmm1
mov eax, edi
and eax, 0x3fffffff
or eax, 0
divsd xmm2, xmm1
divsd xmm2, xmm1
jne 0x40d004
mov eax, dword [ebx + 0x14]
shrd edi, eax, 0x1e
jmp 0x40d048
movsd xmm3, qword [0x43b130]
xor eax, eax
nop
movd xmm1, esi
cvtdq2pd xmm1, xmm1
comisd xmm1, xmm2
jbe 0x40d027
movaps xmm0, xmm1
subsd xmm0, xmm2
jmp 0x40d02e
movaps xmm0, xmm2
subsd xmm0, xmm1
divsd xmm0, xmm1
comisd xmm3, xmm0
ja 0x40d046
inc eax
add esi, esi
cmp eax, 0xc
jl 0x40d010
cvttsd2si edi, xmm2
jmp 0x40d048
mov edi, esi
cmp dword [ebx + 8], 0
lea eax, [ebx + 0xa0]
push edi
push eax
lea eax, [ebx + 0x20]
mov ecx, 0x437b0c
push eax
push dword [ebx + 4]
mov eax, 0x437b08
cmove eax, ecx
push eax
push dword [ebp - 0x171c]
push str.UpdateVentoy2PhyDrive_try_d__s_PhyDrive_d____s__s__dGB__
call fcn.0040f530
add esp, 0x1c
push 0x437e90
call fcn.0040f530
add esp, 4
push 0
push 8
push 0x402
push dword [0x43fc40]
call dword [sym.imp.USER32.dll_SendMessageW]
movsd xmm0, qword [0x43b138]
lea eax, [ebp - 0x88]
sub esp, 8
movsd qword [esp], xmm0
push str.Status____.0lf__
push 0x40
push eax
call fcn.00401010
add esp, 0x14
lea eax, [ebp - 0x88]
push eax
push dword [0x43fc48]
call dword [sym.imp.USER32.dll_SetWindowTextA]
push str.Lock_disk_for_umount_............................
call fcn.0040f530
mov ecx, dword [ebx + 4]
mov dl, 1
push 0
call fcn.004081a0
mov edi, eax
add esp, 8
mov dword [ebp - 0x1724], edi
cmp edi, 0xffffffff
jne 0x40d120
push str.Failed_to_open_physical_disk
call fcn.0040f530
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00417710
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 8], 0
je 0x40d1d4
push 0x4400
call fcn.0041c36a
mov esi, eax
add esp, 4
mov dword [ebp - 0x1748], esi
test esi, esi
je 0x40d10a
push 0x4400
push 0
push esi
call fcn.00418c40
add esp, 0xc
push 0
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x1720]
push eax
push 0x4400
push esi
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, 0x80
lea edi, [ebp - 0x1518]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x1748]
mov esi, dword [edi + 0x4a0]
mov edi, dword [edi + 0x4a4]
push edi
push esi
push str.GPT_StartSector_in_PartTbl:_llu
mov dword [ebp - 0x172c], esi
mov dword [ebp - 0x1730], edi
call fcn.0040f530
mov ecx, dword [ebx + 0x10]
add esp, 0xc
mov eax, dword [ebx + 0x14]
mov edx, str.GPT_Reserved_Disk_Space:_llu_MB
shrd ecx, eax, 9
shr eax, 9
sub ecx, esi
sbb eax, edi
mov edi, dword [ebp - 0x1724]
add ecx, 0xfffeffdf
jmp 0x40d23d
push 0
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x1720]
push eax
push 0x200
lea eax, [ebp - 0x1518]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov esi, dword [ebp - 0x1342]
xor eax, eax
push eax
push esi
push str.MBR_StartSector_in_PartTbl:_llu
mov dword [ebp - 0x172c], esi
mov dword [ebp - 0x1730], eax
call fcn.0040f530
mov ecx, dword [ebx + 0x10]
add esp, 0xc
mov eax, dword [ebx + 0x14]
mov edx, str.MBR_Reserved_Disk_Space:_llu_MB
shrd ecx, eax, 9
shr eax, 9
sub ecx, esi
sbb eax, 0
add ecx, 0xffff0000
adc eax, 0xffffffff
shrd ecx, eax, 0xb
shr eax, 0xb
push eax
push ecx
push edx
call fcn.0040f530
add esp, 0xc
push 0
push 0
push 0xff000
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x1720]
push eax
push 0x1000
lea eax, [ebp - 0x1298]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ecx
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x190]
call fcn.004080f0
add esp, 4
cmp byte [ebp - 0x190], 0
jne 0x40d2ab
push str.No_drive_letter_was_assigned...
call fcn.0040f530
add esp, 4
jmp 0x40d32f
lea esi, [ebp - 0x190]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x40d2b4
sub esi, ecx
test esi, esi
jle 0x40d32f
lea edi, [ebp + esi - 0x191]
nop dword [eax + eax]
mov cl, byte [edi]
mov byte [ebp - 0x1734], cl
call fcn.00410440
test eax, eax
jne 0x40d2e9
dec esi
dec edi
test esi, esi
jg 0x40d2d0
jmp 0x40d329
lea eax, [ebp - 0x1734]
push eax
push str._s_is_ventoy_logical_drive
call fcn.0040f530
add esp, 8
lea eax, [ebp - 0x1734]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteVolumeMountPointA]
mov esi, eax
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
push eax
push esi
lea eax, [ebp - 0x1734]
push eax
push str.Delete_mountpoint__s_ret:_u_code:_u
call fcn.0040f530
add esp, 0x10
mov edi, dword [ebp - 0x1724]
push 0
lea eax, [ebp - 0x1720]
push eax
push 0
push 0
push 0
push 0
push 0x9001c
push edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebx + 8], 1
jne 0x40d65c
push dword [ebx + 0x48c]
mov esi, dword [ebp - 0x171c]
push dword [ebx + 0x488]
push esi
push str.TryId_d_EFI_GPT_partition_type_is_0x_llx
call fcn.0040f530
add esp, 0x10
push 0
push 9
push 0x402
push dword [0x43fc40]
call dword [sym.imp.USER32.dll_SendMessageW]
movsd xmm0, qword [0x43b140]
lea eax, [ebp - 0x88]
sub esp, 8
movsd qword [esp], xmm0
push str.Status____.0lf__
push 0x40
push eax
call fcn.00401010
add esp, 0x14
lea eax, [ebp - 0x88]
push eax
push dword [0x43fc48]
call dword [sym.imp.USER32.dll_SetWindowTextA]
cmp esi, 1
jne 0x40d48c
push str.Change_GPT_partition_type_to_ESP
call fcn.0040f530
mov eax, dword [ebp - 0x172c]
add esp, 4
mov ecx, dword [ebp - 0x1730]
mov edi, dword [ebx + 4]
shld ecx, eax, 9
mov dword [ebp - 0x1310], 0xc12a7328
shl eax, 9
mov dword [ebp - 0x12a0], eax
lea eax, [ebp - 0x1318]
cdq
push edx
push eax
mov dword [ebp - 0x129c], ecx
mov edx, edi
push 0x402ea0
lea ecx, [esi + 1]
mov dword [ebp - 0x130c], 0x11d2f81f
mov dword [ebp - 0x1308], 0xa0004bba
mov dword [ebp - 0x1304], 0x3bc93ec9
call fcn.00402600
mov esi, eax
add esp, 0xc
test esi, esi
mov ecx, str.FAIL
mov eax, str.SUCCESS
cmove eax, ecx
push eax
push esi
push edi
push str.VDS_ChangeVtoyEFI2ESP__d_ret:_d___s_
call fcn.0040f530
add esp, 0x10
test esi, esi
je 0x40d65c
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, 1
push 0xbb8
mov dword [ebp - 0x1744], edi
call esi
mov eax, dword [edi]
mov dword [ebp - 0x10], eax
call fcn.0040d516
sahf
xlatb
pop esp
add dword [ebx + 0x7400f07d], 0x43
mov eax, dword [ebp - 0x14]
in al, dx
and dword [ebp - 0x10], 0
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ebx
mov eax, dword [ebp - 8]
movzx eax, word [eax]
cmp eax, dword [ebp - 4]
jne 0x40d689
mov eax, dword [ebp - 0xc]
push dword [ebp + 0xc]
mov eax, dword [eax]
add eax, dword [ebp + 8]
push eax
call fcn.0040d4ac
pop ecx
test eax, eax
pop ecx
je 0x40d6b0
mov eax, dword [esi + 0x18]
inc dword [ebp - 0x10]
add dword [ebp - 8], 2
add dword [ebp - 0xc], 4
dec eax
cmp dword [ebp - 0x10], eax
jbe 0x40d667
mov eax, dword [esi + 0x14]
inc dword [ebp - 4]
dec eax
cmp dword [ebp - 4], eax
jbe 0x40d646
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
mov eax, dword [ebp - 4]
mov eax, dword [edi + eax*4]
jmp 0x40d6ed
add eax, dword [ebp + 8]
jmp 0x40d6ab