public static void extendMatch(int nGramSize,InstructHash srcInstruct,NgramMatch srcMatch,
								InstructHash destInstruct,NgramMatch destMatch,HashCalculator hashCalc) throws MemoryAccessException {
		srcMatch.block = srcInstruct.block;
		srcMatch.startindex = srcInstruct.index;
		srcMatch.endindex = srcMatch.startindex + nGramSize -1;
		destMatch.block = destInstruct.block;
		destMatch.startindex = destInstruct.index;
		destMatch.endindex = destMatch.startindex + nGramSize - 1;
		// Try to extend to earlier instructions
		while(srcMatch.startindex > 0 && destMatch.startindex > 0) {		// Can't go past beginning of block
			InstructHash curSrcInstruct = srcMatch.block.instList[srcMatch.startindex-1];
			InstructHash curDestInstruct = destMatch.block.instList[destMatch.startindex-1];
			if (curSrcInstruct.isMatched) break;		// If Instruction already matched, can't extend
			if (curDestInstruct.isMatched) break;
			int srcVal = Hash.ALTERNATE_SEED;		// Seed the hash function
			int destVal = Hash.ALTERNATE_SEED;
			srcVal = hashCalc.calcHash(srcVal, curSrcInstruct.instruction);
			destVal = hashCalc.calcHash(destVal, curDestInstruct.instruction);
			if (srcVal != destVal) break;		// Compare hashes, if they differ, we can't extend
			srcMatch.startindex -= 1;
			destMatch.startindex -= 1;
		}
		// Try to extend to later instructions
		int srcMax = srcMatch.block.instList.length -1;
		int destMax = destMatch.block.instList.length -1;
		while(srcMatch.endindex < srcMax && destMatch.endindex < destMax) {	// Can't go past end of block
			InstructHash curSrcInstruct = srcMatch.block.instList[srcMatch.endindex+1];
			InstructHash curDestInstruct = destMatch.block.instList[destMatch.endindex+1];
			if (curSrcInstruct.isMatched) break;		// If Instruction already matched, can't extend
			if (curDestInstruct.isMatched) break;
			int srcVal = Hash.ALTERNATE_SEED;		// Seed the hash function
			int destVal = Hash.ALTERNATE_SEED;
			srcVal = hashCalc.calcHash(srcVal,curSrcInstruct.instruction);
			destVal = hashCalc.calcHash(destVal, curDestInstruct.instruction);
			if (srcVal != destVal) break;		// Compare hashes, if they differ, we can't extend
			srcMatch.endindex += 1;
			destMatch.endindex += 1;
		}
	}
Try to extend a match on a pair of n-grams to the Instructions right before and right after the n-gram.
The match is extended if the Instruction adjacent to the n-gram, and its corresponding pair on the other side,
hash to the same value using the hash function. The NgramMatch objects are updated to reflect the
original n-gram match plus any additional extension.
@param nGramSize	is the original size of the matching n-gram.
@param srcInstruct is the first Instruction in the "source" n-gram
@param srcMatch is the "source" NgramMatch object to be populate
@param destInstruct is the first Instruction in the "destination" n-gram
@param destMatch is the "destination" NgramMatch object to populate
@param hashCalc is the hash function object
@throws MemoryAccessException
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/correlate/HashStore.java