1481 {
1482 int num;
1483 int num2;
1484 int num4;
1485 int num3;
1487 {
1488 num = 1;
1489 num2 = 0;
1491 if (num3 == 45)
1492 {
1493 num = -1;
1494 num2++;
1495 if ((uint)num2 >= (uint)
source.Length)
1496 {
1497 goto IL_0186;
1498 }
1500 }
1501 else if (num3 == 43)
1502 {
1503 num2++;
1504 if ((uint)num2 >= (uint)
source.Length)
1505 {
1506 goto IL_0186;
1507 }
1509 }
1510 num4 = 0;
1511 if (ParserHelpers.IsDigit(num3))
1512 {
1513 if (num3 != 48)
1514 {
1515 goto IL_009c;
1516 }
1517 while (true)
1518 {
1519 num2++;
1520 if ((uint)num2 >= (uint)
source.Length)
1521 {
1522 break;
1523 }
1525 if (num3 == 48)
1526 {
1527 continue;
1528 }
1529 goto IL_0091;
1530 }
1531 goto IL_018e;
1532 }
1533 }
1534 goto IL_0186;
1535 IL_018e:
1536 bytesConsumed = num2;
1538 return true;
1539 IL_009c:
1540 num4 = num3 - 48;
1541 num2++;
1542 if ((uint)num2 < (uint)
source.Length)
1543 {
1545 if (ParserHelpers.IsDigit(num3))
1546 {
1547 num2++;
1548 num4 = 10 * num4 + num3 - 48;
1549 if ((uint)num2 < (uint)
source.Length)
1550 {
1552 if (ParserHelpers.IsDigit(num3))
1553 {
1554 num2++;
1555 num4 = 10 * num4 + num3 - 48;
1556 if ((uint)num2 < (uint)
source.Length)
1557 {
1559 if (ParserHelpers.IsDigit(num3))
1560 {
1561 num2++;
1562 num4 = 10 * num4 + num3 - 48;
1563 if ((uint)num2 < (uint)
source.Length)
1564 {
1566 if (ParserHelpers.IsDigit(num3))
1567 {
1568 num2++;
1569 num4 = num4 * 10 + num3 - 48;
1570 if ((uint)num4 > 32767
L + (long)((-1 * num + 1) / 2) || ((uint)num2 < (uint)
source.Length && ParserHelpers.IsDigit(
source[num2])))
1571 {
1572 goto IL_0186;
1573 }
1574 }
1575 }
1576 }
1577 }
1578 }
1579 }
1580 }
1581 }
1582 goto IL_018e;
1583 IL_0186:
1584 bytesConsumed = 0;
1586 return false;
1587 IL_0091:
1588 if (ParserHelpers.IsDigit(num3))
1589 {
1590 goto IL_009c;
1591 }
1592 goto IL_018e;
1593 }