private static void buildTimelineBackward(List<SmaliBlock> blockList, SmaliMethod method) {
		//TODO: implement backward timeline scanning
		SmaliBlock block = null;
		RegisterTimeline timeline = null;
		
		List<SmaliBlock> sortedList = new LinkedList<SmaliBlock>();
		List<SmaliBlock> tmpList = new LinkedList<SmaliBlock>();
		tmpList.addAll(blockList);
		
		while(tmpList.size() > 0) {
			block = tmpList.remove(0);
			if(block.isEndsByReturn) {
				sortedList.add(block);
			} else if(block.isEndsByCondition && 
					sortedList.contains(block.nextBlockIfTrue) && 
					sortedList.contains(block.nextBlockIfFalse)) {
				sortedList.add(block);
			} else if(block.nextBlockIfTrue != null && sortedList.contains(block.nextBlockIfTrue)) {
				sortedList.add(block);
			} else {
				tmpList.add(block);
			}
		}
		
		ArrayList<Instruction> lines = new ArrayList<Instruction>(128);
		
		for(int i = 0; i < sortedList.size(); i++) {
			block = sortedList.get(i);
			initTimeline(block, method, lines);
			
			timeline = block.registerTimeline;
			
			buildBlockTimelineBackward(lines, timeline);
			
			lines.clear();
		}
	}