if(clazz != null) {
return clazz;
} else {
Class ex;
String clToUse1;
if(name.endsWith("[]")) { //[]
clToUse1 = name.substring(0, name.length() - "[]".length());
ex = forName(clToUse1, classLoader);
return Array.newInstance(ex, 0).getClass();
} else if(name.startsWith("[L") && name.endsWith(";")) {
clToUse1 = name.substring("[L".length(), name.length() - 1);
ex = forName(clToUse1, classLoader);
return Array.newInstance(ex, 0).getClass();
} else if(name.startsWith("[")) {
clToUse1 = name.substring("[".length());
ex = forName(clToUse1, classLoader);
return Array.newInstance(ex, 0).getClass();
} else {
ClassLoader clToUse = classLoader;
if(classLoader == null) {
clToUse = getDefaultClassLoader();
}
try {
return clToUse != null?clToUse.loadClass(name):Class.forName(name);
} catch (ClassNotFoundException var9) {
int lastDotIndex = name.lastIndexOf(46);
if(lastDotIndex != -1) {
String innerClassName = name.substring(0, lastDotIndex) + "$" + name.substring(lastDotIndex + 1);
try {
return clToUse != null?clToUse.loadClass(innerClassName):Class.forName(innerClassName);
} catch (ClassNotFoundException var8) {
;
}
}
throw var9;
}
}
}