internal static object GetMixedArrayEntries(IntPtr a) { long safeArraySize = RemoteConfigSettingsHelper.GetSafeArraySize(a); bool flag = safeArraySize == 0L; object result; if (flag) { result = null; } else { object[] array = new object[safeArraySize]; for (long num = 0L; num < safeArraySize; num += 1L) { checked { switch (RemoteConfigSettingsHelper.GetSafeArrayType(a, num)) { case RemoteConfigSettingsHelper.Tag.kIntVal: case RemoteConfigSettingsHelper.Tag.kInt64Val: array[(int)((IntPtr)num)] = RemoteConfigSettingsHelper.GetSafeNumberArray(a, num); break; case RemoteConfigSettingsHelper.Tag.kDoubleVal: array[(int)((IntPtr)num)] = RemoteConfigSettingsHelper.GetSafeArrayFloat(a, num); break; case RemoteConfigSettingsHelper.Tag.kBoolVal: array[(int)((IntPtr)num)] = RemoteConfigSettingsHelper.GetSafeArrayBool(a, num); break; case RemoteConfigSettingsHelper.Tag.kStringVal: array[(int)((IntPtr)num)] = RemoteConfigSettingsHelper.GetSafeArrayStringValue(a, num); break; case RemoteConfigSettingsHelper.Tag.kArrayVal: array[(int)((IntPtr)num)] = RemoteConfigSettingsHelper.GetArrayArrayEntries(a, num); break; case RemoteConfigSettingsHelper.Tag.kMapVal: array[(int)((IntPtr)num)] = RemoteConfigSettingsHelper.GetArrayMapEntries(a, num); break; } } } result = array; } return(result); }