internal static object GetArrayEntries(IntPtr a) { long safeArraySize = RemoteConfigSettingsHelper.GetSafeArraySize(a); bool flag = safeArraySize == 0L; object result; if (flag) { result = null; } else { switch (RemoteConfigSettingsHelper.GetSafeArrayType(a, 0L)) { case RemoteConfigSettingsHelper.Tag.kIntVal: case RemoteConfigSettingsHelper.Tag.kInt64Val: result = RemoteConfigSettingsHelper.GetArrayEntriesType <long>(a, safeArraySize, new Func <IntPtr, long, long>(RemoteConfigSettingsHelper.GetSafeNumberArray)); return(result); case RemoteConfigSettingsHelper.Tag.kDoubleVal: result = RemoteConfigSettingsHelper.GetArrayEntriesType <float>(a, safeArraySize, new Func <IntPtr, long, float>(RemoteConfigSettingsHelper.GetSafeArrayFloat)); return(result); case RemoteConfigSettingsHelper.Tag.kBoolVal: result = RemoteConfigSettingsHelper.GetArrayEntriesType <bool>(a, safeArraySize, new Func <IntPtr, long, bool>(RemoteConfigSettingsHelper.GetSafeArrayBool)); return(result); case RemoteConfigSettingsHelper.Tag.kStringVal: result = RemoteConfigSettingsHelper.GetArrayEntriesType <string>(a, safeArraySize, new Func <IntPtr, long, string>(RemoteConfigSettingsHelper.GetSafeArrayStringValue)); return(result); case RemoteConfigSettingsHelper.Tag.kArrayVal: result = RemoteConfigSettingsHelper.GetArrayEntriesType <object>(a, safeArraySize, new Func <IntPtr, long, object>(RemoteConfigSettingsHelper.GetArrayArrayEntries)); return(result); case RemoteConfigSettingsHelper.Tag.kMapVal: result = RemoteConfigSettingsHelper.GetArrayEntriesType <IDictionary <string, object> >(a, safeArraySize, new Func <IntPtr, long, IDictionary <string, object> >(RemoteConfigSettingsHelper.GetArrayMapEntries)); return(result); } result = null; } return(result); }