Sorry TippeX, a lot of respect for all the help you accomplish on this forum, but this time you are wrong
I have patched GetLogicalDrives, which does not have parameters.
"The GetLogicalDrives function retrieves a bitmask representing the currently available disk drives."
Perhaps you mistake GetLogicalDrives for GetLogicalDriveStrings ?
Your patch could work too, but then definitely with 33 C0 40 C3 since 1 (the value of ebp) is returned after checking all drives.
1 is stored at 56BA90 if the cd-check succeeds, hence my rather strange patch...