code: private int readCorner2(int numRows, int numColumns) {
      int currentByte = 0;
      if (readModule(numRows - 3, 0, numRows, numColumns)) {
        currentByte |= 1;
      }
      currentByte <<= 1;
      if (readModule(numRows - 2, 0, numRows, numColumns)) {
        currentByte |= 1;
      }
      currentByte <<= 1;
      if (readModule(numRows - 1, 0, numRows, numColumns)) {
        currentByte |= 1;
      }
      currentByte <<= 1;
      if (readModule(0, numColumns - 4, numRows, numColumns)) {
        currentByte |= 1;
      }
      currentByte <<= 1;
      if (readModule(0, numColumns - 3, numRows, numColumns)) {
        currentByte |= 1;
      }
      currentByte <<= 1;
      if (readModule(0, numColumns - 2, numRows, numColumns)) {
        currentByte |= 1;
      }
      currentByte <<= 1;
      if (readModule(0, numColumns - 1, numRows, numColumns)) {
        currentByte |= 1;
      }
      currentByte <<= 1;
      if (readModule(1, numColumns - 1, numRows, numColumns)) {
        currentByte |= 1;
      }
      return currentByte;
    }
docs: <p>Reads the 8 bits of the special corner condition 2.</p>
  
  <p>See ISO 16022:2006, Figure F.4</p>
  
  @param numRows Number of rows in the mapping matrix
  @param numColumns Number of columns in the mapping matrix
  @return byte from the Corner condition 2