final void p(int i, int i_367_, s var_s, s var_s_368_, int i_369_,
		 int i_370_, int i_371_) {
	if (i == 3) {
	    if ((mask & 0x7) != 7)
		throw new IllegalStateException();
	} else if ((mask & 0x2) != 2)
	    throw new IllegalStateException();
	if (!aBoolean5323)
	    method655();
	int i_372_ = i_369_ + aShort5395;
	int i_373_ = i_369_ + aShort5393;
	int i_374_ = i_371_ + aShort5352;
	int i_375_ = i_371_ + aShort5331;
	if (i == 4
	    || (i_372_ >= 0
		&& (i_373_ + ((s) var_s).anInt4592 >> ((s) var_s).anInt4588
		    < ((s) var_s).anInt4587)
		&& i_374_ >= 0
		&& (i_375_ + ((s) var_s).anInt4592 >> ((s) var_s).anInt4588
		    < ((s) var_s).anInt4590))) {
	    int[][] is = ((s) (s_Sub1) var_s).anIntArrayArray4584;
	    int[][] is_376_ = null;
	    if (var_s_368_ != null)
		is_376_ = ((s) (s_Sub1) var_s_368_).anIntArrayArray4584;
	    if (i == 4 || i == 5) {
		if (var_s_368_ == null
		    || (i_372_ < 0
			|| ((i_373_ + ((s) var_s_368_).anInt4592
			     >> ((s) var_s_368_).anInt4588)
			    >= ((s) var_s_368_).anInt4587)
			|| i_374_ < 0
			|| ((i_375_ + ((s) var_s_368_).anInt4592
			     >> ((s) var_s_368_).anInt4588)
			    >= ((s) var_s_368_).anInt4590)))
		    return;
	    } else {
		i_372_ >>= ((s) var_s).anInt4588;
		i_373_ = (i_373_ + (((s) var_s).anInt4592 - 1)
			  >> ((s) var_s).anInt4588);
		i_374_ >>= ((s) var_s).anInt4588;
		i_375_ = (i_375_ + (((s) var_s).anInt4592 - 1)
			  >> ((s) var_s).anInt4588);
		if (is[i_372_][i_374_] == i_370_
		    && is[i_373_][i_374_] == i_370_
		    && is[i_372_][i_375_] == i_370_
		    && is[i_373_][i_375_] == i_370_)
		    return;
	    }
	    synchronized (this) {
		if (i == 1) {
		    int i_377_ = ((s) var_s).anInt4592 - 1;
		    for (int i_378_ = 0; i_378_ < anInt5387; i_378_++) {
			int i_379_ = anIntArray5356[i_378_] + i_369_;
			int i_380_ = anIntArray5312[i_378_] + i_371_;
			int i_381_ = i_379_ & i_377_;
			int i_382_ = i_380_ & i_377_;
			int i_383_ = i_379_ >> ((s) var_s).anInt4588;
			int i_384_ = i_380_ >> ((s) var_s).anInt4588;
			int i_385_
			    = ((is[i_383_][i_384_] * (((s) var_s).anInt4592
						      - i_381_)
				+ is[i_383_ + 1][i_384_] * i_381_)
			       >> ((s) var_s).anInt4588);
			int i_386_
			    = ((is[i_383_][i_384_ + 1] * (((s) var_s).anInt4592
							  - i_381_)
				+ is[i_383_ + 1][i_384_ + 1] * i_381_)
			       >> ((s) var_s).anInt4588);
			int i_387_ = (i_385_ * (((s) var_s).anInt4592
						- i_382_) + i_386_ * i_382_
				      >> ((s) var_s).anInt4588);
			anIntArray5332[i_378_]
			    = anIntArray5332[i_378_] + i_387_ - i_370_;
		    }
		    for (int i_388_ = anInt5387; i_388_ < anInt5340;
			 i_388_++) {
			int i_389_ = anIntArray5356[i_388_] + i_369_;
			int i_390_ = anIntArray5312[i_388_] + i_371_;
			int i_391_ = i_389_ & i_377_;
			int i_392_ = i_390_ & i_377_;
			int i_393_ = i_389_ >> ((s) var_s).anInt4588;
			int i_394_ = i_390_ >> ((s) var_s).anInt4588;
			if (i_393_ >= 0 && i_393_ < is.length - 1
			    && i_394_ >= 0 && i_394_ < is[0].length - 1) {
			    int i_395_
				= ((is[i_393_][i_394_] * (((s) var_s).anInt4592
							  - i_391_)
				    + is[i_393_ + 1][i_394_] * i_391_)
				   >> ((s) var_s).anInt4588);
			    int i_396_
				= (((is[i_393_][i_394_ + 1]
				     * (((s) var_s).anInt4592 - i_391_))
				    + is[i_393_ + 1][i_394_ + 1] * i_391_)
				   >> ((s) var_s).anInt4588);
			    int i_397_ = (i_395_ * (((s) var_s).anInt4592
						    - i_392_) + i_396_ * i_392_
					  >> ((s) var_s).anInt4588);
			    anIntArray5332[i_388_]
				= anIntArray5332[i_388_] + i_397_ - i_370_;
			}
		    }
		} else if (i == 2) {
		    int i_398_ = ((s) var_s).anInt4592 - 1;
		    for (int i_399_ = 0; i_399_ < anInt5387; i_399_++) {
			int i_400_
			    = (anIntArray5332[i_399_] << 16) / aShort5329;
			if (i_400_ < i_367_) {
			    int i_401_ = anIntArray5356[i_399_] + i_369_;
			    int i_402_ = anIntArray5312[i_399_] + i_371_;
			    int i_403_ = i_401_ & i_398_;
			    int i_404_ = i_402_ & i_398_;
			    int i_405_ = i_401_ >> ((s) var_s).anInt4588;
			    int i_406_ = i_402_ >> ((s) var_s).anInt4588;
			    int i_407_
				= ((is[i_405_][i_406_] * (((s) var_s).anInt4592
							  - i_403_)
				    + is[i_405_ + 1][i_406_] * i_403_)
				   >> ((s) var_s).anInt4588);
			    int i_408_
				= (((is[i_405_][i_406_ + 1]
				     * (((s) var_s).anInt4592 - i_403_))
				    + is[i_405_ + 1][i_406_ + 1] * i_403_)
				   >> ((s) var_s).anInt4588);
			    int i_409_ = (i_407_ * (((s) var_s).anInt4592
						    - i_404_) + i_408_ * i_404_
					  >> ((s) var_s).anInt4588);
			    anIntArray5332[i_399_]
				= anIntArray5332[i_399_] + ((i_409_ - i_370_)
							    * (i_367_ - i_400_)
							    / i_367_);
			} else
			    anIntArray5332[i_399_] = anIntArray5332[i_399_];
		    }
		    for (int i_410_ = anInt5387; i_410_ < anInt5340;
			 i_410_++) {
			int i_411_
			    = (anIntArray5332[i_410_] << 16) / aShort5329;
			if (i_411_ < i_367_) {
			    int i_412_ = anIntArray5356[i_410_] + i_369_;
			    int i_413_ = anIntArray5312[i_410_] + i_371_;
			    int i_414_ = i_412_ & i_398_;
			    int i_415_ = i_413_ & i_398_;
			    int i_416_ = i_412_ >> ((s) var_s).anInt4588;
			    int i_417_ = i_413_ >> ((s) var_s).anInt4588;
			    if (i_416_ >= 0
				&& i_416_ < ((s) var_s).anInt4587 - 1
				&& i_417_ >= 0
				&& i_417_ < ((s) var_s).anInt4590 - 1) {
				int i_418_
				    = (((is[i_416_][i_417_]
					 * (((s) var_s).anInt4592 - i_414_))
					+ is[i_416_ + 1][i_417_] * i_414_)
				       >> ((s) var_s).anInt4588);
				int i_419_
				    = (((is[i_416_][i_417_ + 1]
					 * (((s) var_s).anInt4592 - i_414_))
					+ is[i_416_ + 1][i_417_ + 1] * i_414_)
				       >> ((s) var_s).anInt4588);
				int i_420_
				    = (i_418_ * (((s) var_s).anInt4592
						 - i_415_) + i_419_ * i_415_
				       >> ((s) var_s).anInt4588);
				anIntArray5332[i_410_]
				    = (anIntArray5332[i_410_]
				       + ((i_420_ - i_370_) * (i_367_ - i_411_)
					  / i_367_));
			    }
			} else
			    anIntArray5332[i_410_] = anIntArray5332[i_410_];
		    }
		} else if (i == 3) {
		    int i_421_ = (i_367_ & 0xff) * 4;
		    int i_422_ = (i_367_ >> 8 & 0xff) * 4;
		    int i_423_ = (i_367_ >> 16 & 0xff) << 6;
		    int i_424_ = (i_367_ >> 24 & 0xff) << 6;
		    if (i_369_ - (i_421_ >> 1) < 0
			|| (i_369_ + (i_421_ >> 1) + ((s) var_s).anInt4592
			    >= ((s) var_s).anInt4587 << ((s) var_s).anInt4588)
			|| i_371_ - (i_422_ >> 1) < 0
			|| (i_371_ + (i_422_ >> 1) + ((s) var_s).anInt4592
			    >= ((s) var_s).anInt4590 << ((s) var_s).anInt4588))
			return;
		    this.method626(i_421_, 10947, i_424_, i_369_, i_422_,
				   i_370_, i_423_, var_s, i_371_);
		} else if (i == 4) {
		    int i_425_ = ((s) var_s_368_).anInt4592 - 1;
		    int i_426_ = aShort5365 - aShort5329;
		    for (int i_427_ = 0; i_427_ < anInt5387; i_427_++) {
			int i_428_ = anIntArray5356[i_427_] + i_369_;
			int i_429_ = anIntArray5312[i_427_] + i_371_;
			int i_430_ = i_428_ & i_425_;
			int i_431_ = i_429_ & i_425_;
			int i_432_ = i_428_ >> ((s) var_s_368_).anInt4588;
			int i_433_ = i_429_ >> ((s) var_s_368_).anInt4588;
			int i_434_
			    = (((is_376_[i_432_][i_433_]
				 * (((s) var_s_368_).anInt4592 - i_430_))
				+ is_376_[i_432_ + 1][i_433_] * i_430_)
			       >> ((s) var_s_368_).anInt4588);
			int i_435_
			    = (((is_376_[i_432_][i_433_ + 1]
				 * (((s) var_s_368_).anInt4592 - i_430_))
				+ is_376_[i_432_ + 1][i_433_ + 1] * i_430_)
			       >> ((s) var_s_368_).anInt4588);
			int i_436_ = (i_434_ * (((s) var_s_368_).anInt4592
						- i_431_) + i_435_ * i_431_
				      >> ((s) var_s_368_).anInt4588);
			anIntArray5332[i_427_]
			    = (anIntArray5332[i_427_] + (i_436_ - i_370_)
			       + i_426_);
		    }
		    for (int i_437_ = anInt5387; i_437_ < anInt5340;
			 i_437_++) {
			int i_438_ = anIntArray5356[i_437_] + i_369_;
			int i_439_ = anIntArray5312[i_437_] + i_371_;
			int i_440_ = i_438_ & i_425_;
			int i_441_ = i_439_ & i_425_;
			int i_442_ = i_438_ >> ((s) var_s_368_).anInt4588;
			int i_443_ = i_439_ >> ((s) var_s_368_).anInt4588;
			if (i_442_ >= 0
			    && i_442_ < ((s) var_s_368_).anInt4587 - 1
			    && i_443_ >= 0
			    && i_443_ < ((s) var_s_368_).anInt4590 - 1) {
			    int i_444_
				= (((is_376_[i_442_][i_443_]
				     * (((s) var_s_368_).anInt4592 - i_440_))
				    + is_376_[i_442_ + 1][i_443_] * i_440_)
				   >> ((s) var_s_368_).anInt4588);
			    int i_445_
				= (((is_376_[i_442_][i_443_ + 1]
				     * (((s) var_s_368_).anInt4592 - i_440_))
				    + is_376_[i_442_ + 1][i_443_ + 1] * i_440_)
				   >> ((s) var_s_368_).anInt4588);
			    int i_446_ = (i_444_ * (((s) var_s_368_).anInt4592
						    - i_441_) + i_445_ * i_441_
					  >> ((s) var_s_368_).anInt4588);
			    anIntArray5332[i_437_]
				= (anIntArray5332[i_437_] + (i_446_ - i_370_)
				   + i_426_);
			}
		    }
		} else if (i == 5) {
		    int i_447_ = ((s) var_s_368_).anInt4592 - 1;
		    int i_448_ = aShort5365 - aShort5329;
		    for (int i_449_ = 0; i_449_ < anInt5387; i_449_++) {
			int i_450_ = anIntArray5356[i_449_] + i_369_;
			int i_451_ = anIntArray5312[i_449_] + i_371_;
			int i_452_ = i_450_ & i_447_;
			int i_453_ = i_451_ & i_447_;
			int i_454_ = i_450_ >> ((s) var_s).anInt4588;
			int i_455_ = i_451_ >> ((s) var_s).anInt4588;
			int i_456_
			    = ((is[i_454_][i_455_] * (((s) var_s).anInt4592
						      - i_452_)
				+ is[i_454_ + 1][i_455_] * i_452_)
			       >> ((s) var_s).anInt4588);
			int i_457_
			    = ((is[i_454_][i_455_ + 1] * (((s) var_s).anInt4592
							  - i_452_)
				+ is[i_454_ + 1][i_455_ + 1] * i_452_)
			       >> ((s) var_s).anInt4588);
			int i_458_ = (i_456_ * (((s) var_s).anInt4592
						- i_453_) + i_457_ * i_453_
				      >> ((s) var_s).anInt4588);
			i_456_ = (((is_376_[i_454_][i_455_]
				    * (((s) var_s_368_).anInt4592 - i_452_))
				   + is_376_[i_454_ + 1][i_455_] * i_452_)
				  >> ((s) var_s_368_).anInt4588);
			i_457_ = (((is_376_[i_454_][i_455_ + 1]
				    * (((s) var_s_368_).anInt4592 - i_452_))
				   + is_376_[i_454_ + 1][i_455_ + 1] * i_452_)
				  >> ((s) var_s_368_).anInt4588);
			int i_459_ = (i_456_ * (((s) var_s_368_).anInt4592
						- i_453_) + i_457_ * i_453_
				      >> ((s) var_s_368_).anInt4588);
			int i_460_ = i_458_ - i_459_ - i_367_;
			anIntArray5332[i_449_]
			    = ((anIntArray5332[i_449_] << 8) / i_448_ * i_460_
			       >> 8) - (i_370_ - i_458_);
		    }
		    for (int i_461_ = anInt5387; i_461_ < anInt5340;
			 i_461_++) {
			int i_462_ = anIntArray5356[i_461_] + i_369_;
			int i_463_ = anIntArray5312[i_461_] + i_371_;
			int i_464_ = i_462_ & i_447_;
			int i_465_ = i_463_ & i_447_;
			int i_466_ = i_462_ >> ((s) var_s).anInt4588;
			int i_467_ = i_463_ >> ((s) var_s).anInt4588;
			if (i_466_ >= 0 && i_466_ < ((s) var_s).anInt4587 - 1
			    && i_466_ < ((s) var_s_368_).anInt4587 - 1
			    && i_467_ >= 0
			    && i_467_ < ((s) var_s).anInt4590 - 1
			    && i_467_ < ((s) var_s_368_).anInt4590 - 1) {
			    int i_468_
				= ((is[i_466_][i_467_] * (((s) var_s).anInt4592
							  - i_464_)
				    + is[i_466_ + 1][i_467_] * i_464_)
				   >> ((s) var_s).anInt4588);
			    int i_469_
				= (((is[i_466_][i_467_ + 1]
				     * (((s) var_s).anInt4592 - i_464_))
				    + is[i_466_ + 1][i_467_ + 1] * i_464_)
				   >> ((s) var_s).anInt4588);
			    int i_470_ = (i_468_ * (((s) var_s).anInt4592
						    - i_465_) + i_469_ * i_465_
					  >> ((s) var_s).anInt4588);
			    i_468_
				= (((is_376_[i_466_][i_467_]
				     * (((s) var_s_368_).anInt4592 - i_464_))
				    + is_376_[i_466_ + 1][i_467_] * i_464_)
				   >> ((s) var_s_368_).anInt4588);
			    i_469_
				= (((is_376_[i_466_][i_467_ + 1]
				     * (((s) var_s_368_).anInt4592 - i_464_))
				    + is_376_[i_466_ + 1][i_467_ + 1] * i_464_)
				   >> ((s) var_s_368_).anInt4588);
			    int i_471_ = (i_468_ * (((s) var_s_368_).anInt4592
						    - i_465_) + i_469_ * i_465_
					  >> ((s) var_s_368_).anInt4588);
			    int i_472_ = i_470_ - i_471_ - i_367_;
			    anIntArray5332[i_461_]
				= (((anIntArray5332[i_461_] << 8) / i_448_
				    * i_472_)
				   >> 8) - (i_370_ - i_470_);
			}
		    }
		}
		aBoolean5323 = false;
	    }
	}
    }