extern "C" void EqualityComparer_1__cctor_m27412_gshared (Object_t * __this /* static, unused */, const MethodInfo* method)
{
	static bool s_Il2CppMethodIntialized;
	if (!s_Il2CppMethodIntialized)
	{
		GenericEqualityComparer_1_t3564_0_0_0_var = il2cpp_codegen_type_from_index(3752);
		Type_t_il2cpp_TypeInfo_var = il2cpp_codegen_type_info_from_index(44);
		TypeU5BU5D_t720_il2cpp_TypeInfo_var = il2cpp_codegen_type_info_from_index(428);
		s_Il2CppMethodIntialized = true;
	}
	{
		IL2CPP_RUNTIME_CLASS_INIT(Type_t_il2cpp_TypeInfo_var);
		Type_t * L_0 = Type_GetTypeFromHandle_m333(NULL /*static, unused*/, (RuntimeTypeHandle_t1602 )LoadTypeToken(IL2CPP_RGCTX_TYPE(InitializedTypeInfo(method->declaring_type)->rgctx_data, 0)), /*hidden argument*/NULL);
		Type_t * L_1 = Type_GetTypeFromHandle_m333(NULL /*static, unused*/, (RuntimeTypeHandle_t1602 )LoadTypeToken(IL2CPP_RGCTX_TYPE(InitializedTypeInfo(method->declaring_type)->rgctx_data, 1)), /*hidden argument*/NULL);
		NullCheck((Type_t *)L_0);
		bool L_2 = (bool)VirtFuncInvoker1< bool, Type_t * >::Invoke(40 /* System.Boolean System.Type::IsAssignableFrom(System.Type) */, (Type_t *)L_0, (Type_t *)L_1);
		if (!L_2)
		{
			goto IL_0054;
		}
	}
	{
		IL2CPP_RUNTIME_CLASS_INIT(Type_t_il2cpp_TypeInfo_var);
		Type_t * L_3 = Type_GetTypeFromHandle_m333(NULL /*static, unused*/, (RuntimeTypeHandle_t1602 )LoadTypeToken(GenericEqualityComparer_1_t3564_0_0_0_var), /*hidden argument*/NULL);
		TypeU5BU5D_t720* L_4 = (TypeU5BU5D_t720*)((TypeU5BU5D_t720*)SZArrayNew(TypeU5BU5D_t720_il2cpp_TypeInfo_var, 1));
		Type_t * L_5 = Type_GetTypeFromHandle_m333(NULL /*static, unused*/, (RuntimeTypeHandle_t1602 )LoadTypeToken(IL2CPP_RGCTX_TYPE(InitializedTypeInfo(method->declaring_type)->rgctx_data, 1)), /*hidden argument*/NULL);
		NullCheck(L_4);
		IL2CPP_ARRAY_BOUNDS_CHECK(L_4, 0);
		ArrayElementTypeCheck (L_4, L_5);
		*((Type_t **)(Type_t **)SZArrayLdElema(L_4, 0, sizeof(Type_t *))) = (Type_t *)L_5;
		NullCheck((Type_t *)L_3);
		Type_t * L_6 = (Type_t *)VirtFuncInvoker1< Type_t *, TypeU5BU5D_t720* >::Invoke(78 /* System.Type System.Type::MakeGenericType(System.Type[]) */, (Type_t *)L_3, (TypeU5BU5D_t720*)L_4);
		Object_t * L_7 = Activator_CreateInstance_m13379(NULL /*static, unused*/, (Type_t *)L_6, /*hidden argument*/NULL);
		((EqualityComparer_1_t3285_StaticFields*)IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 3)->static_fields)->____default_0 = ((EqualityComparer_1_t3285 *)Castclass(L_7, IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 2)));
		goto IL_005e;
	}

IL_0054:
	{
		DefaultComparer_t3286 * L_8 = (DefaultComparer_t3286 *)il2cpp_codegen_object_new (IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 4));
		(( void (*) (DefaultComparer_t3286 *, const MethodInfo*))IL2CPP_RGCTX_METHOD_INFO(InitializedTypeInfo(method->declaring_type)->rgctx_data, 5)->method)(L_8, /*hidden argument*/IL2CPP_RGCTX_METHOD_INFO(InitializedTypeInfo(method->declaring_type)->rgctx_data, 5));
		((EqualityComparer_1_t3285_StaticFields*)IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 3)->static_fields)->____default_0 = L_8;
	}

IL_005e:
	{
		return;
	}
}
extern "C" int32_t DefaultComparer_Compare_m27355_gshared (DefaultComparer_t3279 * __this, Guid_t2182  ___x, Guid_t2182  ___y, const MethodInfo* method)
{
	static bool s_Il2CppMethodIntialized;
	if (!s_Il2CppMethodIntialized)
	{
		IComparable_t2269_il2cpp_TypeInfo_var = il2cpp_codegen_type_info_from_index(1091);
		ArgumentException_t480_il2cpp_TypeInfo_var = il2cpp_codegen_type_info_from_index(303);
		_stringLiteral3365 = il2cpp_codegen_string_literal_from_index(3365);
		s_Il2CppMethodIntialized = true;
	}
	int32_t G_B4_0 = 0;
	{
		Guid_t2182  L_0 = ___x;
		goto IL_001e;
	}
	{
		Guid_t2182  L_1 = ___y;
		goto IL_001c;
	}
	{
		G_B4_0 = 0;
		goto IL_001d;
	}

IL_001c:
	{
		G_B4_0 = (-1);
	}

IL_001d:
	{
		return G_B4_0;
	}

IL_001e:
	{
		Guid_t2182  L_2 = ___y;
		goto IL_002b;
	}
	{
		return 1;
	}

IL_002b:
	{
		Guid_t2182  L_3 = ___x;
		Guid_t2182  L_4 = L_3;
		Object_t * L_5 = Box(IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 2), &L_4);
		if (!((Object_t*)IsInst(L_5, IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 3))))
		{
			goto IL_004d;
		}
	}
	{
		Guid_t2182  L_6 = ___x;
		Guid_t2182  L_7 = L_6;
		Object_t * L_8 = Box(IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 2), &L_7);
		Guid_t2182  L_9 = ___y;
		NullCheck((Object_t*)((Object_t*)Castclass(L_8, IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 3))));
		int32_t L_10 = (int32_t)InterfaceFuncInvoker1< int32_t, Guid_t2182  >::Invoke(0 /* System.Int32 System.IComparable`1<System.Guid>::CompareTo(T) */, IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 3), (Object_t*)((Object_t*)Castclass(L_8, IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 3))), (Guid_t2182 )L_9);
		return L_10;
	}

IL_004d:
	{
		Guid_t2182  L_11 = ___x;
		Guid_t2182  L_12 = L_11;
		Object_t * L_13 = Box(IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 2), &L_12);
		if (!((Object_t *)IsInst(L_13, IComparable_t2269_il2cpp_TypeInfo_var)))
		{
			goto IL_0074;
		}
	}
	{
		Guid_t2182  L_14 = ___x;
		Guid_t2182  L_15 = L_14;
		Object_t * L_16 = Box(IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 2), &L_15);
		Guid_t2182  L_17 = ___y;
		Guid_t2182  L_18 = L_17;
		Object_t * L_19 = Box(IL2CPP_RGCTX_DATA(InitializedTypeInfo(method->declaring_type)->rgctx_data, 2), &L_18);
		NullCheck((Object_t *)((Object_t *)Castclass(L_16, IComparable_t2269_il2cpp_TypeInfo_var)));
		int32_t L_20 = (int32_t)InterfaceFuncInvoker1< int32_t, Object_t * >::Invoke(0 /* System.Int32 System.IComparable::CompareTo(System.Object) */, IComparable_t2269_il2cpp_TypeInfo_var, (Object_t *)((Object_t *)Castclass(L_16, IComparable_t2269_il2cpp_TypeInfo_var)), (Object_t *)L_19);
		return L_20;
	}

IL_0074:
	{
		ArgumentException_t480 * L_21 = (ArgumentException_t480 *)il2cpp_codegen_object_new (ArgumentException_t480_il2cpp_TypeInfo_var);
		ArgumentException__ctor_m2368(L_21, (String_t*)_stringLiteral3365, /*hidden argument*/NULL);
		il2cpp_codegen_raise_exception((Il2CppCodeGenException*)L_21);
	}
}
extern "C"  Il2CppObject * UnityRuntimeServices_GetEnumerator_m3009175716 (Il2CppObject * __this /* static, unused */, Il2CppObject * ___obj, const MethodInfo* method)
{
	static bool s_Il2CppMethodIntialized;
	if (!s_Il2CppMethodIntialized)
	{
		il2cpp_codegen_initialize_method (UnityRuntimeServices_GetEnumerator_m3009175716_MetadataUsageId);
		s_Il2CppMethodIntialized = true;
	}
	Il2CppObject * V_0 = NULL;
	Il2CppObject * V_1 = NULL;
	Il2CppObject * G_B12_0 = NULL;
	Il2CppObject * G_B6_0 = NULL;
	Il2CppObject * G_B5_0 = NULL;
	{
		Il2CppObject * L_0 = ___obj;
		if (L_0)
		{
			goto IL_0010;
		}
	}
	{
		IL2CPP_RUNTIME_CLASS_INIT(UnityRuntimeServices_t1016654613_il2cpp_TypeInfo_var);
		Il2CppObject * L_1 = ((UnityRuntimeServices_t1016654613_StaticFields*)UnityRuntimeServices_t1016654613_il2cpp_TypeInfo_var->static_fields)->get_EmptyEnumerator_0();
		G_B12_0 = L_1;
		goto IL_0086;
	}

IL_0010:
	{
		Il2CppObject * L_2 = ___obj;
		IL2CPP_RUNTIME_CLASS_INIT(UnityRuntimeServices_t1016654613_il2cpp_TypeInfo_var);
		bool L_3 = UnityRuntimeServices_IsValueTypeArray_m1162044604(NULL /*static, unused*/, L_2, /*hidden argument*/NULL);
		if (L_3)
		{
			goto IL_0026;
		}
	}
	{
		Il2CppObject * L_4 = ___obj;
		if (!((Array_t1209885965 *)IsInstClass(L_4, Array_t1209885965_il2cpp_TypeInfo_var)))
		{
			goto IL_0050;
		}
	}

IL_0026:
	{
		Il2CppObject * L_5 = ___obj;
		Il2CppObject * L_6 = L_5;
		G_B5_0 = L_6;
		if (((Il2CppObject *)IsInst(L_6, IList_t1612618265_il2cpp_TypeInfo_var)))
		{
			G_B6_0 = L_6;
			goto IL_0041;
		}
	}
	{
		IL2CPP_RUNTIME_CLASS_INIT(Type_t_il2cpp_TypeInfo_var);
		Type_t * L_7 = Type_GetTypeFromHandle_m3806905434(NULL /*static, unused*/, LoadTypeToken(IList_t1612618265_0_0_0_var), /*hidden argument*/NULL);
		IL2CPP_RUNTIME_CLASS_INIT(RuntimeServices_t2273795202_il2cpp_TypeInfo_var);
		Il2CppObject * L_8 = RuntimeServices_Coerce_m3737249806(NULL /*static, unused*/, G_B5_0, L_7, /*hidden argument*/NULL);
		G_B6_0 = L_8;
	}

IL_0041:
	{
		ListUpdateableEnumerator_t2904422009 * L_9 = (ListUpdateableEnumerator_t2904422009 *)il2cpp_codegen_object_new(ListUpdateableEnumerator_t2904422009_il2cpp_TypeInfo_var);
		ListUpdateableEnumerator__ctor_m2956977389(L_9, ((Il2CppObject *)Castclass(G_B6_0, IList_t1612618265_il2cpp_TypeInfo_var)), /*hidden argument*/NULL);
		G_B12_0 = ((Il2CppObject *)(L_9));
		goto IL_0086;
	}

IL_0050:
	{
		Il2CppObject * L_10 = ___obj;
		V_0 = ((Il2CppObject *)IsInst(L_10, IEnumerable_t287189635_il2cpp_TypeInfo_var));
		Il2CppObject * L_11 = V_0;
		if (!L_11)
		{
			goto IL_0068;
		}
	}
	{
		Il2CppObject * L_12 = V_0;
		NullCheck(L_12);
		Il2CppObject * L_13 = InterfaceFuncInvoker0< Il2CppObject * >::Invoke(0 /* System.Collections.IEnumerator System.Collections.IEnumerable::GetEnumerator() */, IEnumerable_t287189635_il2cpp_TypeInfo_var, L_12);
		G_B12_0 = L_13;
		goto IL_0086;
	}

IL_0068:
	{
		Il2CppObject * L_14 = ___obj;
		V_1 = ((Il2CppObject *)IsInst(L_14, IEnumerator_t287207039_il2cpp_TypeInfo_var));
		Il2CppObject * L_15 = V_1;
		if (!L_15)
		{
			goto IL_007b;
		}
	}
	{
		Il2CppObject * L_16 = V_1;
		G_B12_0 = L_16;
		goto IL_0086;
	}

IL_007b:
	{
		Il2CppObject * L_17 = ___obj;
		IL2CPP_RUNTIME_CLASS_INIT(RuntimeServices_t2273795202_il2cpp_TypeInfo_var);
		Il2CppObject * L_18 = RuntimeServices_GetEnumerable_m2581065081(NULL /*static, unused*/, L_17, /*hidden argument*/NULL);
		NullCheck(L_18);
		Il2CppObject * L_19 = InterfaceFuncInvoker0< Il2CppObject * >::Invoke(0 /* System.Collections.IEnumerator System.Collections.IEnumerable::GetEnumerator() */, IEnumerable_t287189635_il2cpp_TypeInfo_var, L_18);
		G_B12_0 = L_19;
	}

IL_0086:
	{
		return G_B12_0;
	}
}