public Address getMethodAddress(Program program, int methodId) {
		if (methodId < 0 || methodId >= methodIdsSize) {
			return Address.NO_ADDRESS;
		}
		Address addr;
		synchronized (methodXref) {
			addr = methodXref.get(methodId);
			if (addr == null) { // First time we've tried to access address
				addr = DexUtil.toLookupAddress(program, methodId);		// Find "__lookup__" address
				int val;
				try {
					val = program.getMemory().getInt(addr);
					if (val != -1) {			// If there is an address here, it is in memory location of function
						addr = program.getAddressFactory()
								.getDefaultAddressSpace()
								.getAddress(Integer.toUnsignedLong(val));
					}
					// Otherwise, the method is external, and we use the lookup address as placeholder
				}
				catch (MemoryAccessException e) {
					addr = Address.NO_ADDRESS;
				}
				methodXref.put(methodId, addr);
			}
		}
		return addr;
	}
NOTE: For CDEX files, this value is relative to DataOffset in DexHeader
Return the MAP offset.
@return the MAP offset
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/android/dex/format/DexHeader.java