final void method964(int i, int i_883_, int mode, int i_885_,
			 int i_886_) {
	if (((AbstractSoftwareRaster) this).softwareToolkit.method3716())
	    throw new IllegalStateException();
	int i_887_
	    = ((SoftwareToolkit) ((AbstractSoftwareRaster) this).softwareToolkit).maxWidth;
	i += ((AbstractSoftwareRaster) this).anInt8461;
	i_883_ += ((AbstractSoftwareRaster) this).anInt8464;
	int i_888_ = i_883_ * i_887_ + i;
	int i_889_ = 0;
	int i_890_ = ((AbstractSoftwareRaster) this).height;
	int i_891_ = ((AbstractSoftwareRaster) this).width;
	int i_892_ = i_887_ - i_891_;
	int i_893_ = 0;
	if (i_883_
	    < ((SoftwareToolkit) ((AbstractSoftwareRaster) this).softwareToolkit).heightOffset) {
	    int i_894_
		= (((SoftwareToolkit) ((AbstractSoftwareRaster) this).softwareToolkit).heightOffset
		   - i_883_);
	    i_890_ -= i_894_;
	    i_883_
		= ((SoftwareToolkit) ((AbstractSoftwareRaster) this).softwareToolkit).heightOffset;
	    i_889_ += i_894_ * i_891_;
	    i_888_ += i_894_ * i_887_;
	}
	if (i_883_ + i_890_
	    > ((SoftwareToolkit) ((AbstractSoftwareRaster) this).softwareToolkit).height)
	    i_890_ -= i_883_ + i_890_ - ((SoftwareToolkit) (((AbstractSoftwareRaster) this)
						    .softwareToolkit)).height;
	if (i < ((SoftwareToolkit) ((AbstractSoftwareRaster) this).softwareToolkit).widthOffset) {
	    int i_895_
		= (((SoftwareToolkit) ((AbstractSoftwareRaster) this).softwareToolkit).widthOffset
		   - i);
	    i_891_ -= i_895_;
	    i = ((SoftwareToolkit) ((AbstractSoftwareRaster) this).softwareToolkit).widthOffset;
	    i_889_ += i_895_;
	    i_888_ += i_895_;
	    i_893_ += i_895_;
	    i_892_ += i_895_;
	}
	if (i + i_891_
	    > ((SoftwareToolkit) ((AbstractSoftwareRaster) this).softwareToolkit).width) {
	    int i_896_ = (i + i_891_
			  - (((SoftwareToolkit) ((AbstractSoftwareRaster) this).softwareToolkit)
			     .width));
	    i_891_ -= i_896_;
	    i_893_ += i_896_;
	    i_892_ += i_896_;
	}
	if (i_891_ > 0 && i_890_ > 0) {
	    int[] tkbuffer = (((SoftwareToolkit) ((AbstractSoftwareRaster) this).softwareToolkit).pixelBuffer);
	    if (i_886_ == 0) {
		if (mode == 1) {
		    for (int i_897_ = -i_890_; i_897_ < 0; i_897_++) {
			int i_898_ = i_888_ + i_891_ - 3;
			while (i_888_ < i_898_) {
			    tkbuffer[i_888_++] = (((SoftwareRaster) this)
					    .anIntArray9933[i_889_++]);
			    tkbuffer[i_888_++] = (((SoftwareRaster) this)
					    .anIntArray9933[i_889_++]);
			    tkbuffer[i_888_++] = (((SoftwareRaster) this)
					    .anIntArray9933[i_889_++]);
			    tkbuffer[i_888_++] = (((SoftwareRaster) this)
					    .anIntArray9933[i_889_++]);
			}
			i_898_ += 3;
			while (i_888_ < i_898_)
			    tkbuffer[i_888_++] = (((SoftwareRaster) this)
					    .anIntArray9933[i_889_++]);
			i_888_ += i_892_;
			i_889_ += i_893_;
		    }
		    return;
		}
		if (mode == 0) {
		    int i_899_ = (i_885_ & 0xff0000) >> 16;
		    int i_900_ = (i_885_ & 0xff00) >> 8;
		    int i_901_ = i_885_ & 0xff;
		    for (int i_902_ = -i_890_; i_902_ < 0; i_902_++) {
			for (int i_903_ = -i_891_; i_903_ < 0; i_903_++) {
			    int i_904_ = (((SoftwareRaster) this)
					  .anIntArray9933[i_889_++]);
			    int i_905_
				= (i_904_ & 0xff0000) * i_899_ & ~0xffffff;
			    int i_906_ = (i_904_ & 0xff00) * i_900_ & 0xff0000;
			    int i_907_ = (i_904_ & 0xff) * i_901_ & 0xff00;
			    tkbuffer[i_888_++] = (i_905_ | i_906_ | i_907_) >>> 8;
			}
			i_888_ += i_892_;
			i_889_ += i_893_;
		    }
		    return;
		}
		if (mode == 3) {
		    for (int i_908_ = -i_890_; i_908_ < 0; i_908_++) {
			for (int i_909_ = -i_891_; i_909_ < 0; i_909_++) {
			    int i_910_ = (((SoftwareRaster) this)
					  .anIntArray9933[i_889_++]);
			    int i_911_ = i_910_ + i_885_;
			    int i_912_
				= (i_910_ & 0xff00ff) + (i_885_ & 0xff00ff);
			    int i_913_ = ((i_912_ & 0x1000100)
					  + (i_911_ - i_912_ & 0x10000));
			    tkbuffer[i_888_++]
				= i_911_ - i_913_ | i_913_ - (i_913_ >>> 8);
			}
			i_888_ += i_892_;
			i_889_ += i_893_;
		    }
		    return;
		}
		if (mode == 2) {
		    int i_914_ = i_885_ >>> 24;
		    int i_915_ = 256 - i_914_;
		    int i_916_ = (i_885_ & 0xff00ff) * i_915_ & ~0xff00ff;
		    int i_917_ = (i_885_ & 0xff00) * i_915_ & 0xff0000;
		    i_885_ = (i_916_ | i_917_) >>> 8;
		    for (int i_918_ = -i_890_; i_918_ < 0; i_918_++) {
			for (int i_919_ = -i_891_; i_919_ < 0; i_919_++) {
			    int i_920_ = (((SoftwareRaster) this)
					  .anIntArray9933[i_889_++]);
			    i_916_ = (i_920_ & 0xff00ff) * i_914_ & ~0xff00ff;
			    i_917_ = (i_920_ & 0xff00) * i_914_ & 0xff0000;
			    tkbuffer[i_888_++] = ((i_916_ | i_917_) >>> 8) + i_885_;
			}
			i_888_ += i_892_;
			i_889_ += i_893_;
		    }
		    return;
		}
		throw new IllegalArgumentException();
	    }
	    if (i_886_ == 1) {
		if (mode == 1) {
		    for (int i_921_ = -i_890_; i_921_ < 0; i_921_++) {
			int i_922_ = i_888_ + i_891_ - 3;
			while (i_888_ < i_922_) {
			    int i_923_ = (((SoftwareRaster) this)
					  .anIntArray9933[i_889_++]);
			    if (i_923_ != 0)
				tkbuffer[i_888_++] = i_923_;
			    else
				i_888_++;
			    i_923_ = (((SoftwareRaster) this)
				      .anIntArray9933[i_889_++]);
			    if (i_923_ != 0)
				tkbuffer[i_888_++] = i_923_;
			    else
				i_888_++;
			    i_923_ = (((SoftwareRaster) this)
				      .anIntArray9933[i_889_++]);
			    if (i_923_ != 0)
				tkbuffer[i_888_++] = i_923_;
			    else
				i_888_++;
			    i_923_ = (((SoftwareRaster) this)
				      .anIntArray9933[i_889_++]);
			    if (i_923_ != 0)
				tkbuffer[i_888_++] = i_923_;
			    else
				i_888_++;
			}
			i_922_ += 3;
			while (i_888_ < i_922_) {
			    int i_924_ = (((SoftwareRaster) this)
					  .anIntArray9933[i_889_++]);
			    if (i_924_ != 0)
				tkbuffer[i_888_++] = i_924_;
			    else
				i_888_++;
			}
			i_888_ += i_892_;
			i_889_ += i_893_;
		    }
		    return;
		}
		if (mode == 0) {
		    if ((i_885_ & 0xffffff) == 16777215) {
			int i_925_ = i_885_ >>> 24;
			int i_926_ = 256 - i_925_;
			for (int i_927_ = -i_890_; i_927_ < 0; i_927_++) {
			    for (int i_928_ = -i_891_; i_928_ < 0; i_928_++) {
				int i_929_ = (((SoftwareRaster) this)
					      .anIntArray9933[i_889_++]);
				if (i_929_ != 0) {
				    int i_930_ = tkbuffer[i_888_];
				    tkbuffer[i_888_++]
					= ((((i_929_ & 0xff00ff) * i_925_
					     + (i_930_ & 0xff00ff) * i_926_)
					    & ~0xff00ff)
					   + (((i_929_ & 0xff00) * i_925_
					       + (i_930_ & 0xff00) * i_926_)
					      & 0xff0000)) >> 8;
				} else
				    i_888_++;
			    }
			    i_888_ += i_892_;
			    i_889_ += i_893_;
			}
		    } else {
			int i_931_ = (i_885_ & 0xff0000) >> 16;
			int i_932_ = (i_885_ & 0xff00) >> 8;
			int i_933_ = i_885_ & 0xff;
			int i_934_ = i_885_ >>> 24;
			int i_935_ = 256 - i_934_;
			for (int i_936_ = -i_890_; i_936_ < 0; i_936_++) {
			    for (int i_937_ = -i_891_; i_937_ < 0; i_937_++) {
				int i_938_ = (((SoftwareRaster) this)
					      .anIntArray9933[i_889_++]);
				if (i_938_ != 0) {
				    if (i_934_ != 255) {
					int i_939_
					    = ((i_938_ & 0xff0000) * i_931_
					       & ~0xffffff);
					int i_940_
					    = ((i_938_ & 0xff00) * i_932_
					       & 0xff0000);
					int i_941_ = ((i_938_ & 0xff) * i_933_
						      & 0xff00);
					i_938_
					    = (i_939_ | i_940_ | i_941_) >>> 8;
					int i_942_ = tkbuffer[i_888_];
					tkbuffer[i_888_++]
					    = ((((i_938_ & 0xff00ff) * i_934_
						 + ((i_942_ & 0xff00ff)
						    * i_935_))
						& ~0xff00ff)
					       + (((i_938_ & 0xff00) * i_934_
						   + ((i_942_ & 0xff00)
						      * i_935_))
						  & 0xff0000)) >> 8;
				    } else {
					int i_943_
					    = ((i_938_ & 0xff0000) * i_931_
					       & ~0xffffff);
					int i_944_
					    = ((i_938_ & 0xff00) * i_932_
					       & 0xff0000);
					int i_945_ = ((i_938_ & 0xff) * i_933_
						      & 0xff00);
					tkbuffer[i_888_++]
					    = (i_943_ | i_944_ | i_945_) >>> 8;
				    }
				} else
				    i_888_++;
			    }
			    i_888_ += i_892_;
			    i_889_ += i_893_;
			}
			return;
		    }
		    return;
		}
		if (mode == 3) {
		    int i_946_ = i_885_ >>> 24;
		    int i_947_ = 256 - i_946_;
		    for (int i_948_ = -i_890_; i_948_ < 0; i_948_++) {
			for (int i_949_ = -i_891_; i_949_ < 0; i_949_++) {
			    int i_950_ = (((SoftwareRaster) this)
					  .anIntArray9933[i_889_++]);
			    int i_951_ = i_950_ + i_885_;
			    int i_952_
				= (i_950_ & 0xff00ff) + (i_885_ & 0xff00ff);
			    int i_953_ = ((i_952_ & 0x1000100)
					  + (i_951_ - i_952_ & 0x10000));
			    i_953_ = i_951_ - i_953_ | i_953_ - (i_953_ >>> 8);
			    if (i_950_ == 0 && i_946_ != 255) {
				i_950_ = i_953_;
				i_953_ = tkbuffer[i_888_];
				i_953_ = ((((i_950_ & 0xff00ff) * i_946_
					    + (i_953_ & 0xff00ff) * i_947_)
					   & ~0xff00ff)
					  + (((i_950_ & 0xff00) * i_946_
					      + (i_953_ & 0xff00) * i_947_)
					     & 0xff0000)) >> 8;
			    }
			    tkbuffer[i_888_++] = i_953_;
			}
			i_888_ += i_892_;
			i_889_ += i_893_;
		    }
		    return;
		}
		if (mode == 2) {
		    int i_954_ = i_885_ >>> 24;
		    int i_955_ = 256 - i_954_;
		    int i_956_ = (i_885_ & 0xff00ff) * i_955_ & ~0xff00ff;
		    int i_957_ = (i_885_ & 0xff00) * i_955_ & 0xff0000;
		    i_885_ = (i_956_ | i_957_) >>> 8;
		    for (int i_958_ = -i_890_; i_958_ < 0; i_958_++) {
			for (int i_959_ = -i_891_; i_959_ < 0; i_959_++) {
			    int i_960_ = (((SoftwareRaster) this)
					  .anIntArray9933[i_889_++]);
			    if (i_960_ != 0) {
				i_956_
				    = (i_960_ & 0xff00ff) * i_954_ & ~0xff00ff;
				i_957_ = (i_960_ & 0xff00) * i_954_ & 0xff0000;
				tkbuffer[i_888_++]
				    = ((i_956_ | i_957_) >>> 8) + i_885_;
			    } else
				i_888_++;
			}
			i_888_ += i_892_;
			i_889_ += i_893_;
		    }
		    return;
		}
		throw new IllegalArgumentException();
	    }
	    if (i_886_ == 2) {
		if (mode == 1) {
		    for (int i_961_ = -i_890_; i_961_ < 0; i_961_++) {
			for (int i_962_ = -i_891_; i_962_ < 0; i_962_++) {
			    int i_963_ = (((SoftwareRaster) this)
					  .anIntArray9933[i_889_++]);
			    if (i_963_ != 0) {
				int i_964_ = tkbuffer[i_888_];
				int i_965_ = i_963_ + i_964_;
				int i_966_ = ((i_963_ & 0xff00ff)
					      + (i_964_ & 0xff00ff));
				i_964_
				    = (i_966_ & 0x1000100) + (i_965_ - i_966_
							      & 0x10000);
				tkbuffer[i_888_++]
				    = i_965_ - i_964_ | i_964_ - (i_964_
								  >>> 8);
			    } else
				i_888_++;
			}
			i_888_ += i_892_;
			i_889_ += i_893_;
		    }
		    return;
		}
		if (mode == 0) {
		    int i_967_ = (i_885_ & 0xff0000) >> 16;
		    int i_968_ = (i_885_ & 0xff00) >> 8;
		    int i_969_ = i_885_ & 0xff;
		    for (int i_970_ = -i_890_; i_970_ < 0; i_970_++) {
			for (int i_971_ = -i_891_; i_971_ < 0; i_971_++) {
			    int i_972_ = (((SoftwareRaster) this)
					  .anIntArray9933[i_889_++]);
			    if (i_972_ != 0) {
				int i_973_
				    = (i_972_ & 0xff0000) * i_967_ & ~0xffffff;
				int i_974_
				    = (i_972_ & 0xff00) * i_968_ & 0xff0000;
				int i_975_ = (i_972_ & 0xff) * i_969_ & 0xff00;
				i_972_ = (i_973_ | i_974_ | i_975_) >>> 8;
				int i_976_ = tkbuffer[i_888_];
				int i_977_ = i_972_ + i_976_;
				int i_978_ = ((i_972_ & 0xff00ff)
					      + (i_976_ & 0xff00ff));
				i_976_
				    = (i_978_ & 0x1000100) + (i_977_ - i_978_
							      & 0x10000);
				tkbuffer[i_888_++]
				    = i_977_ - i_976_ | i_976_ - (i_976_
								  >>> 8);
			    } else
				i_888_++;
			}
			i_888_ += i_892_;
			i_889_ += i_893_;
		    }
		    return;
		}
		if (mode == 3) {
		    for (int i_979_ = -i_890_; i_979_ < 0; i_979_++) {
			for (int i_980_ = -i_891_; i_980_ < 0; i_980_++) {
			    int i_981_ = (((SoftwareRaster) this)
					  .anIntArray9933[i_889_++]);
			    int i_982_ = i_981_ + i_885_;
			    int i_983_
				= (i_981_ & 0xff00ff) + (i_885_ & 0xff00ff);
			    int i_984_ = ((i_983_ & 0x1000100)
					  + (i_982_ - i_983_ & 0x10000));
			    i_981_ = i_982_ - i_984_ | i_984_ - (i_984_ >>> 8);
			    i_984_ = tkbuffer[i_888_];
			    i_982_ = i_981_ + i_984_;
			    i_983_ = (i_981_ & 0xff00ff) + (i_984_ & 0xff00ff);
			    i_984_ = (i_983_ & 0x1000100) + (i_982_ - i_983_
							     & 0x10000);
			    tkbuffer[i_888_++]
				= i_982_ - i_984_ | i_984_ - (i_984_ >>> 8);
			}
			i_888_ += i_892_;
			i_889_ += i_893_;
		    }
		    return;
		}
		if (mode == 2) {
		    int i_985_ = i_885_ >>> 24;
		    int i_986_ = 256 - i_985_;
		    int i_987_ = (i_885_ & 0xff00ff) * i_986_ & ~0xff00ff;
		    int i_988_ = (i_885_ & 0xff00) * i_986_ & 0xff0000;
		    i_885_ = (i_987_ | i_988_) >>> 8;
		    for (int i_989_ = -i_890_; i_989_ < 0; i_989_++) {
			for (int i_990_ = -i_891_; i_990_ < 0; i_990_++) {
			    int i_991_ = (((SoftwareRaster) this)
					  .anIntArray9933[i_889_++]);
			    if (i_991_ != 0) {
				i_987_
				    = (i_991_ & 0xff00ff) * i_985_ & ~0xff00ff;
				i_988_ = (i_991_ & 0xff00) * i_985_ & 0xff0000;
				i_991_ = ((i_987_ | i_988_) >>> 8) + i_885_;
				int i_992_ = tkbuffer[i_888_];
				int i_993_ = i_991_ + i_992_;
				int i_994_ = ((i_991_ & 0xff00ff)
					      + (i_992_ & 0xff00ff));
				i_992_
				    = (i_994_ & 0x1000100) + (i_993_ - i_994_
							      & 0x10000);
				tkbuffer[i_888_++]
				    = i_993_ - i_992_ | i_992_ - (i_992_
								  >>> 8);
			    } else
				i_888_++;
			}
			i_888_ += i_892_;
			i_889_ += i_893_;
		    }
		    return;
		}
		throw new IllegalArgumentException();
	    }
	    throw new IllegalArgumentException();
	}
    }