private void AddVTableMethod(StructInfo structInfo, Il2CppTypeDefinition typeDef) { var dic = new SortedDictionary <int, Il2CppMethodDefinition>(); for (int i = 0; i < typeDef.vtable_count; i++) { var vTableIndex = typeDef.vtableStart + i; var encodedMethodIndex = metadata.vtableMethods[vTableIndex]; var usage = metadata.GetEncodedIndexType(encodedMethodIndex); var index = metadata.GetDecodedMethodIndex(encodedMethodIndex); Il2CppMethodDefinition methodDef; if (usage == 6) //kIl2CppMetadataUsageMethodRef { var methodSpec = il2Cpp.methodSpecs[index]; methodDef = metadata.methodDefs[methodSpec.methodDefinitionIndex]; } else { methodDef = metadata.methodDefs[index]; } dic[methodDef.slot] = methodDef; } foreach (var i in dic) { var methodInfo = new StructVTableMethodInfo(); structInfo.VTableMethod.Add(methodInfo); var methodDef = i.Value; methodInfo.MethodName = $"_{methodDef.slot}_{FixName(metadata.GetStringFromIndex(methodDef.nameIndex))}"; } }