final void method3636(int i, int i_285_, int i_286_, int i_287_, int i_288_, int i_289_, aa var_aa, int i_290_, int i_291_) {
	aa_Sub3 var_aa_Sub3 = (aa_Sub3) var_aa;
	int[] is = ((aa_Sub3) var_aa_Sub3).anIntArray5201;
	int[] is_292_ = ((aa_Sub3) var_aa_Sub3).anIntArray5202;
	int i_293_ = (((SoftwareToolkit) this).heightOffset > i_291_ ? ((SoftwareToolkit) this).heightOffset : i_291_);
	int i_294_ = (((SoftwareToolkit) this).height < i_291_ + is.length ? ((SoftwareToolkit) this).height : i_291_ + is.length);
	i_286_ -= i;
	i_287_ -= i_285_;
	if (i_286_ + i_287_ < 0) {
	    i += i_286_;
	    i_286_ = -i_286_;
	    i_285_ += i_287_;
	    i_287_ = -i_287_;
	}
	if (i_286_ > i_287_) {
	    i_285_ <<= 16;
	    i_285_ += 32768;
	    i_287_ <<= 16;
	    int i_295_
		= (int) Math.floor((double) i_287_ / (double) i_286_ + 0.5);
	    i_286_ += i;
	    if (i < ((SoftwareToolkit) this).widthOffset) {
		i_285_ += i_295_ * (((SoftwareToolkit) this).widthOffset - i);
		i = ((SoftwareToolkit) this).widthOffset;
	    }
	    if (i_286_ >= ((SoftwareToolkit) this).width)
		i_286_ = ((SoftwareToolkit) this).width - 1;
	    int i_296_ = i_288_ >>> 24;
	    if (i_289_ == 0 || i_289_ == 1 && i_296_ == 255) {
		for (/**/; i <= i_286_; i++) {
		    int i_297_ = i_285_ >> 16;
		    int i_298_ = i_297_ - i_291_;
		    if (i_297_ >= i_293_ && i_297_ < i_294_) {
			int i_299_ = i_290_ + is[i_298_];
			if (i >= i_299_ && i < i_299_ + is_292_[i_298_])
			    ((SoftwareToolkit) this).pixelBuffer
				[i + i_297_ * ((SoftwareToolkit) this).maxWidth]
				= i_288_;
		    }
		    i_285_ += i_295_;
		}
		return;
	    }
	    if (i_289_ == 1) {
		i_288_ = (((i_288_ & 0xff00ff) * i_296_ >> 8 & 0xff00ff)
			  + ((i_288_ & 0xff00) * i_296_ >> 8 & 0xff00)
			  + (i_296_ << 24));
		int i_300_ = 256 - i_296_;
		for (/**/; i <= i_286_; i++) {
		    int i_301_ = i_285_ >> 16;
		    int i_302_ = i_301_ - i_291_;
		    if (i_301_ >= i_293_ && i_301_ < i_294_) {
			int i_303_ = i_290_ + is[i_302_];
			if (i >= i_303_ && i < i_303_ + is_292_[i_302_]) {
			    int i_304_
				= i + i_301_ * ((SoftwareToolkit) this).maxWidth;
			    int i_305_
				= ((SoftwareToolkit) this).pixelBuffer[i_304_];
			    i_305_ = (((i_305_ & 0xff00ff) * i_300_ >> 8
				       & 0xff00ff)
				      + ((i_305_ & 0xff00) * i_300_ >> 8
					 & 0xff00));
			    ((SoftwareToolkit) this).pixelBuffer[i_304_]
				= i_288_ + i_305_;
			}
		    }
		    i_285_ += i_295_;
		}
		return;
	    }
	    if (i_289_ == 2) {
		for (/**/; i <= i_286_; i++) {
		    int i_306_ = i_285_ >> 16;
		    int i_307_ = i_306_ - i_291_;
		    if (i_306_ >= i_293_ && i_306_ < i_294_) {
			int i_308_ = i_290_ + is[i_307_];
			if (i >= i_308_ && i < i_308_ + is_292_[i_307_]) {
			    int i_309_
				= i + i_306_ * ((SoftwareToolkit) this).maxWidth;
			    int i_310_
				= ((SoftwareToolkit) this).pixelBuffer[i_309_];
			    int i_311_ = i_288_ + i_310_;
			    int i_312_
				= (i_288_ & 0xff00ff) + (i_310_ & 0xff00ff);
			    i_310_ = (i_312_ & 0x1000100) + (i_311_ - i_312_
							     & 0x10000);
			    ((SoftwareToolkit) this).pixelBuffer[i_309_]
				= i_311_ - i_310_ | i_310_ - (i_310_ >>> 8);
			}
		    }
		    i_285_ += i_295_;
		}
		return;
	    }
	    throw new IllegalArgumentException();
	}
	i <<= 16;
	i += 32768;
	i_286_ <<= 16;
	int i_313_ = (int) Math.floor((double) i_286_ / (double) i_287_ + 0.5);
	i_287_ += i_285_;
	if (i_285_ < i_293_) {
	    i += i_313_ * (i_293_ - i_285_);
	    i_285_ = i_293_;
	}
	if (i_287_ >= i_294_)
	    i_287_ = i_294_ - 1;
	int i_314_ = i_288_ >>> 24;
	if (i_289_ == 0 || i_289_ == 1 && i_314_ == 255) {
	    for (/**/; i_285_ <= i_287_; i_285_++) {
		int i_315_ = i >> 16;
		int i_316_ = i_285_ - i_291_;
		int i_317_ = i_290_ + is[i_316_];
		if (i_315_ >= ((SoftwareToolkit) this).widthOffset
		    && i_315_ < ((SoftwareToolkit) this).width && i_315_ >= i_317_
		    && i_315_ < i_317_ + is_292_[i_316_])
		    ((SoftwareToolkit) this).pixelBuffer
			[i_315_ + i_285_ * ((SoftwareToolkit) this).maxWidth]
			= i_288_;
		i += i_313_;
	    }
	} else if (i_289_ == 1) {
	    i_288_ = (((i_288_ & 0xff00ff) * i_314_ >> 8 & 0xff00ff)
		      + ((i_288_ & 0xff00) * i_314_ >> 8 & 0xff00)
		      + (i_314_ << 24));
	    int i_318_ = 256 - i_314_;
	    for (/**/; i_285_ <= i_287_; i_285_++) {
		int i_319_ = i >> 16;
		int i_320_ = i_285_ - i_291_;
		int i_321_ = i_290_ + is[i_320_];
		if (i_319_ >= ((SoftwareToolkit) this).widthOffset
		    && i_319_ < ((SoftwareToolkit) this).width && i_319_ >= i_321_
		    && i_319_ < i_321_ + is_292_[i_320_]) {
		    int i_322_ = i_319_ + i_285_ * ((SoftwareToolkit) this).maxWidth;
		    int i_323_ = ((SoftwareToolkit) this).pixelBuffer[i_322_];
		    i_323_ = (((i_323_ & 0xff00ff) * i_318_ >> 8 & 0xff00ff)
			      + ((i_323_ & 0xff00) * i_318_ >> 8 & 0xff00));
		    ((SoftwareToolkit) this).pixelBuffer
			[i_319_ + i_285_ * ((SoftwareToolkit) this).maxWidth]
			= i_288_ + i_323_;
		}
		i += i_313_;
	    }
	} else if (i_289_ == 2) {
	    for (/**/; i_285_ <= i_287_; i_285_++) {
		int i_324_ = i >> 16;
		int i_325_ = i_285_ - i_291_;
		int i_326_ = i_290_ + is[i_325_];
		if (i_324_ >= ((SoftwareToolkit) this).widthOffset
		    && i_324_ < ((SoftwareToolkit) this).width && i_324_ >= i_326_
		    && i_324_ < i_326_ + is_292_[i_325_]) {
		    int i_327_ = i_324_ + i_285_ * ((SoftwareToolkit) this).maxWidth;
		    int i_328_ = ((SoftwareToolkit) this).pixelBuffer[i_327_];
		    int i_329_ = i_288_ + i_328_;
		    int i_330_ = (i_288_ & 0xff00ff) + (i_328_ & 0xff00ff);
		    i_328_
			= (i_330_ & 0x1000100) + (i_329_ - i_330_ & 0x10000);
		    ((SoftwareToolkit) this).pixelBuffer[i_327_]
			= i_329_ - i_328_ | i_328_ - (i_328_ >>> 8);
		}
		i += i_313_;
	    }
	} else
	    throw new IllegalArgumentException();
    }