Unas preguntas, perdonen si me voy del tema..
Porque 200 vueltas?
Para usarlo tengo que cambiar todo el main solamente entonces?
Porque pusiste esto en el proyecto:
Private Function KarCrackDoFileExists(ByVal sPath As String) As Boolean
DoFileExists = CBool(GetFileAttributesW(StrPtr(sPath)) <> -1)
End Function
Se puede hacer eso? se llama KarCrackDoFileExists la funcion y usas el DoFileExists para devolver el valor