private static Moves performCleanupStep2(BotState state, Moves movesSoFar) {
		Moves out = new Moves();
		boolean meaningfulMovePresent = false;
		for (AttackTransferMove attackTransferMove : movesSoFar.attackTransferMoves) {
			if (!attackTransferMove.getToRegion().getPlayerName().equals(state.getMyPlayerName())) {
				meaningfulMovePresent = true;
			}
		}
		System.err.println("meaningfulMovePresent: " + meaningfulMovePresent);
		String gameState = GameStateCalculator.calculateGameState(state);
		if (!meaningfulMovePresent && gameState.equals("won")) {
			Region biggestArmiesRegion = null;
			int mostArmies = 0;
			for (Region region : state.getVisibleMap().getOpponentBorderingRegions(state)) {
				if (region.getIdleArmies() > mostArmies) {
					mostArmies = region.getIdleArmies();
					biggestArmiesRegion = region;
				}
			}
			if (biggestArmiesRegion != null && biggestArmiesRegion.getIdleArmies() >= 100) {
				System.err.println("biggestArmiesRegion != null && biggestArmiesRegion.getIdleArmies() >= 100");
				Region opponentNeighborRegion = biggestArmiesRegion.getEnemyNeighbors(state).get(0);
				int mostOpponentArmies = opponentNeighborRegion.getArmies()
						+ OpponentDeploymentGuesser.getGuessedOpponentDeployment(state, opponentNeighborRegion);
				double currentFraction = mostArmies / mostOpponentArmies;
				double ownKills = mostArmies * 0.6;
				double opponentKills = mostOpponentArmies * 0.7;
				double newFraction = (mostArmies - opponentKills) / (mostOpponentArmies - ownKills);
				System.err.println("currentFraction: " + currentFraction);
				System.err.println("newFraction: " + newFraction);
				if (newFraction > currentFraction) {
					AttackTransferMove attackTransferMove = new AttackTransferMove(state.getMyPlayerName(),
							biggestArmiesRegion, opponentNeighborRegion, biggestArmiesRegion.getIdleArmies());
					out.attackTransferMoves.add(attackTransferMove);
				}
			}
		}
		MovesPerformer.performMoves(state, out);
		return out;
	}