code: private long getLongCheckSum(int start, int size) {
          // All the tables here are aligned on four byte boundaries
          // Add remainder to size if it's not a multiple of 4
          int remainder = size % 4;
          if (remainder != 0) {
              size += remainder;
          }
  
          long sum = 0;
  
          for (int i = 0; i < size; i += 4) {
              int l = (output[start + i] << 24);
              l += (output[start + i + 1] << 16);
              l += (output[start + i + 2] << 16);
              l += (output[start + i + 3] << 16);
              sum += l;
              if (sum > 0xffffffff) {
                  sum = sum - 0xffffffff;
              }
          }
  
          return sum;
      }
docs: Get the checksum as a long
  
  @param start The start value
  @param size The size of the values to checksum
  @return The long checksum