// Token: 0x06000039 RID: 57 RVA: 0x00004024 File Offset: 0x00002224
        internal static void WearingCamoGear(Pawn pawn, out float ArcticCamoEff, out float DesertCamoEff, out float JungleCamoEff, out float StoneCamoEff, out float WoodlandCamoEff, out float UrbanCamoEff, out float notDefinedCamoEff)
        {
            ArcticCamoEff     = 0f;
            DesertCamoEff     = 0f;
            JungleCamoEff     = 0f;
            StoneCamoEff      = 0f;
            WoodlandCamoEff   = 0f;
            UrbanCamoEff      = 0f;
            notDefinedCamoEff = 0f;
            List <string> list  = new List <string>();
            List <string> list2 = new List <string>();

            if ((pawn?.apparel) != null && pawn.apparel.WornApparelCount > 0)
            {
                foreach (Apparel apparel in pawn.apparel.WornApparel)
                {
                    float apparelArcticEff     = 0f;
                    float apparelDesertEff     = 0f;
                    float apparelJungleEff     = 0f;
                    float apparelStoneEff      = 0f;
                    float apparelWoodlandEff   = 0f;
                    float apparelUrbanEff      = 0f;
                    float apparelnotDefinedEff = 0f;
                    foreach (string text in CamoGearUtility.CamoTypes())
                    {
                        float num  = Math.Min(1f, CamoGearUtility.GetApparelCamoEff(pawn, apparel, text) * CamoGearUtility.GetQualFactor(apparel));
                        uint  num2 = ComputeStringHash(text);
                        if (num2 <= 1206763323U)
                        {
                            if (num2 != 359505389U)
                            {
                                if (num2 != 437214172U)
                                {
                                    if (num2 == 1206763323U)
                                    {
                                        if (text == "Urban")
                                        {
                                            apparelUrbanEff = num;
                                        }
                                    }
                                }
                                else if (text == "Desert")
                                {
                                    apparelDesertEff = num;
                                }
                            }
                            else if (text == "Arctic")
                            {
                                apparelArcticEff = num;
                            }
                        }
                        else if (num2 <= 1858049587U)
                        {
                            if (num2 != 1842662042U)
                            {
                                if (num2 == 1858049587U)
                                {
                                    if (text == "notDefined")
                                    {
                                        apparelnotDefinedEff = num;
                                    }
                                }
                            }
                            else if (text == "Stone")
                            {
                                apparelStoneEff = num;
                            }
                        }
                        else if (num2 != 3655469229U)
                        {
                            if (num2 == 3729410372U)
                            {
                                if (text == "Jungle")
                                {
                                    apparelJungleEff = num;
                                }
                            }
                        }
                        else if (text == "Woodland")
                        {
                            apparelWoodlandEff = num;
                        }
                    }
                    List <BodyPartGroupDef> bodyPartGroups = apparel.def.apparel.bodyPartGroups;
                    int drawOrder = apparel.def.apparel.LastLayer.drawOrder;
                    foreach (BodyPartGroupDef bodyPartGroupDef in bodyPartGroups)
                    {
                        list.Add(CamoGearUtility.GetNewRecord(bodyPartGroupDef, drawOrder, apparelArcticEff, apparelDesertEff, apparelJungleEff, apparelStoneEff, apparelWoodlandEff, apparelUrbanEff, apparelnotDefinedEff));
                        GenCollection.AddDistinct <string>(list2, bodyPartGroupDef.defName);
                    }
                }
                if (list.Count > 0 && list2.Count > 0)
                {
                    float num3  = 0f;
                    float num4  = 0f;
                    float num5  = 0f;
                    float num6  = 0f;
                    float num7  = 0f;
                    float num8  = 0f;
                    float num9  = 0f;
                    int   num10 = 0;
                    foreach (string b in list2)
                    {
                        int   num11 = 0;
                        float num12 = 0f;
                        float num13 = 0f;
                        float num14 = 0f;
                        float num15 = 0f;
                        float num16 = 0f;
                        float num17 = 0f;
                        float num18 = 0f;
                        foreach (string valuesStr in list)
                        {
                            if (CamoGearUtility.GetStrValue(valuesStr, 0) == b)
                            {
                                int intValue = CamoGearUtility.GetIntValue(valuesStr, 1);
                                if (intValue >= num11)
                                {
                                    num11 = intValue;
                                    num12 = (float)CamoGearUtility.GetIntValue(valuesStr, 2) / 1000f;
                                    num13 = (float)CamoGearUtility.GetIntValue(valuesStr, 3) / 1000f;
                                    num14 = (float)CamoGearUtility.GetIntValue(valuesStr, 4) / 1000f;
                                    num15 = (float)CamoGearUtility.GetIntValue(valuesStr, 5) / 1000f;
                                    num16 = (float)CamoGearUtility.GetIntValue(valuesStr, 6) / 1000f;
                                    num17 = (float)CamoGearUtility.GetIntValue(valuesStr, 7) / 1000f;
                                    num18 = (float)CamoGearUtility.GetIntValue(valuesStr, 8) / 1000f;
                                }
                            }
                        }
                        num3 += num12;
                        num4 += num13;
                        num5 += num14;
                        num6 += num15;
                        num7 += num16;
                        num8 += num17;
                        num9 += num18;
                        num10++;
                    }
                    if (num10 > 0)
                    {
                        ArcticCamoEff     = num3 / (float)num10;
                        DesertCamoEff     = num4 / (float)num10;
                        JungleCamoEff     = num5 / (float)num10;
                        StoneCamoEff      = num6 / (float)num10;
                        WoodlandCamoEff   = num7 / (float)num10;
                        UrbanCamoEff      = num8 / (float)num10;
                        notDefinedCamoEff = num9 / (float)num10;
                    }
                }
            }
            list.Clear();
            list2.Clear();
        }