private static string TranslateInternal(string rowDollar, uint rowIdx, string colDollar, uint colIdx, uint rowStart, uint colStart, int rowDelta, int colDelta, bool followAbsoluteRefs, out bool exceededBounds) { int num = (int)rowIdx; int num2 = (int)colIdx; if ((num >= rowStart) && ((rowDollar != "$") || !followAbsoluteRefs)) { num += rowDelta; } if ((num2 >= colStart) && ((colDollar != "$") || !followAbsoluteRefs)) { num2 += colDelta; } exceededBounds = false; if (((num < 1) || (num > ExcelConstraints.MaxRows)) || ((num2 < 1) || (num2 > ExcelConstraints.MaxColumns))) { exceededBounds = true; } num = Math.Max(1, Math.Min(num, ExcelConstraints.MaxRows)); num2 = Math.Max(1, Math.Min(num2, ExcelConstraints.MaxColumns)); return(string.Concat(new object[] { rowDollar, ExcelAddress.ColumnIndexToName((uint)num2), colDollar, num })); }