final RasterToolkit createRasterForSprite(ImageSprite sprite, boolean bool) {
	int[] is = ((ImageSprite) sprite).colors;
	byte[] is_430_ = ((ImageSprite) sprite).colorIndex;
	int i = ((ImageSprite) sprite).indexWidth;
	int i_431_ = ((ImageSprite) sprite).indexHeight;
	AbstractSoftwareRaster class105_sub3;
	if (bool && ((ImageSprite) sprite).alphaIndex == null) {
	    int[] is_432_ = new int[is.length];
	    byte[] is_433_ = new byte[i * i_431_];
	    for (int i_434_ = 0; i_434_ < i_431_; i_434_++) {
		int i_435_ = i_434_ * i;
		for (int i_436_ = 0; i_436_ < i; i_436_++)
		    is_433_[i_435_ + i_436_] = is_430_[i_435_ + i_436_];
	    }
	    for (int i_437_ = 0; i_437_ < is.length; i_437_++)
		is_432_[i_437_] = is[i_437_];
	    class105_sub3
		= new BitmapSoftwareRaster(this, is_433_, is_432_, i, i_431_);
	} else {
	    int[] is_438_ = new int[i * i_431_];
	    byte[] is_439_ = ((ImageSprite) sprite).alphaIndex;
	    if (is_439_ != null) {
		for (int i_440_ = 0; i_440_ < i_431_; i_440_++) {
		    int i_441_ = i_440_ * i;
		    for (int i_442_ = 0; i_442_ < i; i_442_++)
			is_438_[i_441_ + i_442_]
			    = (is[is_430_[i_441_ + i_442_] & 0xff]
			       | is_439_[i_441_ + i_442_] << 24);
		}
		class105_sub3 = new BufferedSoftwareRaster(this, is_438_, i, i_431_);
	    } else {
		for (int i_443_ = 0; i_443_ < i_431_; i_443_++) {
		    int i_444_ = i_443_ * i;
		    for (int i_445_ = 0; i_445_ < i; i_445_++) {
			int i_446_ = is[is_430_[i_444_ + i_445_] & 0xff];
			is_438_[i_444_ + i_445_]
			    = i_446_ != 0 ? ~0xffffff | i_446_ : 0;
		    }
		}
		class105_sub3
		    = new SoftwareRaster(this, is_438_, i, i_431_);
	    }
	}
	class105_sub3.method985(((ImageSprite) sprite).widthOffset,
				((ImageSprite) sprite).heightOffset,
				((ImageSprite) sprite).widthPadding,
				((ImageSprite) sprite).heightPadding);
	return class105_sub3;
    }