private final void method3993(int i, int i_260_, int i_261_, int i_262_,
				  int i_263_, int i_264_, int i_265_,
				  boolean[][] bools, Class167 class167,
				  Class109 class109, int[] is, int[] is_266_) {
	int i_267_ = (i_265_ - i_263_) * i_261_ / 256;
	int i_268_ = i_261_ >> 8;
	boolean bool = ((Class167) class167).aBoolean2202;
	aHa_Sub1_8217.C(false);
	((Class109) class109).aBoolean1669 = false;
	((Class109) class109).aBoolean1667 = false;
	int i_269_ = i;
	int i_270_ = i_260_ + i_267_;
	for (int i_271_ = i_262_; i_271_ < i_264_; i_271_++) {
	    for (int i_272_ = i_263_; i_272_ < i_265_; i_272_++) {
		if (bools[i_271_ - i_262_][i_272_ - i_263_]) {
		    if (aClass266ArrayArray8230 != null) {
			if (aClass266ArrayArray8230[i_271_][i_272_] != null) {
			    Class266 class266
				= aClass266ArrayArray8230[i_271_][i_272_];
			    if (((Class266) class266).aShort3379 != -1
				&& (((Class266) class266).aByte3386 & 0x2) == 0
				&& ((Class266) class266).anInt3388 == 0) {
				int i_273_
				    = aHa_Sub1_8217.method3722(((Class266)
								class266)
							       .aShort3379);
				class109.method1022
				    ((float) (i_270_ - i_268_),
				     (float) (i_270_ - i_268_), (float) i_270_,
				     (float) (i_269_ + i_268_), (float) i_269_,
				     (float) (i_269_ + i_268_), 100.0F, 100.0F,
				     100.0F,
				     (float) IndexTable.method2198(0,
								 (((Class266)
								   class266)
								  .anInt3380),
								 i_273_),
				     (float) IndexTable.method2198(0,
								 (((Class266)
								   class266)
								  .anInt3381),
								 i_273_),
				     (float) IndexTable.method2198(0,
								 (((Class266)
								   class266)
								  .anInt3387),
								 i_273_));
				class109.method1022
				    ((float) i_270_, (float) i_270_,
				     (float) (i_270_ - i_268_), (float) i_269_,
				     (float) (i_269_ + i_268_), (float) i_269_,
				     100.0F, 100.0F, 100.0F,
				     (float) IndexTable.method2198(0,
								 (((Class266)
								   class266)
								  .anInt3389),
								 i_273_),
				     (float) IndexTable.method2198(0,
								 (((Class266)
								   class266)
								  .anInt3387),
								 i_273_),
				     (float) IndexTable.method2198(0,
								 (((Class266)
								   class266)
								  .anInt3381),
								 i_273_));
			    } else if (((Class266) class266).anInt3388 == 0) {
				class109.method1027
				    ((float) (i_270_ - i_268_),
				     (float) (i_270_ - i_268_), (float) i_270_,
				     (float) (i_269_ + i_268_), (float) i_269_,
				     (float) (i_269_ + i_268_), 100.0F, 100.0F,
				     100.0F, ((Class266) class266).anInt3380,
				     ((Class266) class266).anInt3381,
				     ((Class266) class266).anInt3387);
				class109.method1027
				    ((float) i_270_, (float) i_270_,
				     (float) (i_270_ - i_268_), (float) i_269_,
				     (float) (i_269_ + i_268_), (float) i_269_,
				     100.0F, 100.0F, 100.0F,
				     ((Class266) class266).anInt3389,
				     ((Class266) class266).anInt3387,
				     ((Class266) class266).anInt3381);
			    } else {
				int i_274_ = ((Class266) class266).anInt3388;
				class109.method1027
				    ((float) (i_270_ - i_268_),
				     (float) (i_270_ - i_268_), (float) i_270_,
				     (float) (i_269_ + i_268_), (float) i_269_,
				     (float) (i_269_ + i_268_), 100.0F, 100.0F,
				     100.0F,
				     Class6.method206(i_274_,
						      (((Class266) class266)
						       .anInt3380) & ~0xffffff,
						      255),
				     Class6.method206(i_274_,
						      (((Class266) class266)
						       .anInt3381) & ~0xffffff,
						      255),
				     Class6.method206(i_274_,
						      (((Class266) class266)
						       .anInt3387) & ~0xffffff,
						      255));
				class109.method1027
				    ((float) i_270_, (float) i_270_,
				     (float) (i_270_ - i_268_), (float) i_269_,
				     (float) (i_269_ + i_268_), (float) i_269_,
				     100.0F, 100.0F, 100.0F,
				     Class6.method206(i_274_,
						      (((Class266) class266)
						       .anInt3389) & ~0xffffff,
						      255),
				     Class6.method206(i_274_,
						      (((Class266) class266)
						       .anInt3387) & ~0xffffff,
						      255),
				     Class6.method206(i_274_,
						      (((Class266) class266)
						       .anInt3381) & ~0xffffff,
						      255));
			    }
			} else if (aClass145ArrayArray8225[i_271_][i_272_]
				   != null) {
			    Class145 class145
				= aClass145ArrayArray8225[i_271_][i_272_];
			    for (int i_275_ = 0;
				 i_275_ < ((Class145) class145).aShort2003;
				 i_275_++) {
				is[i_275_]
				    = i_269_ + ((((Class145) class145)
						 .aShortArray2009[i_275_])
						* i_268_
						/ ((s) this).anInt4592);
				is_266_[i_275_]
				    = i_270_ - ((((Class145) class145)
						 .aShortArray2002[i_275_])
						* i_268_
						/ ((s) this).anInt4592);
			    }
			    for (int i_276_ = 0;
				 i_276_ < ((Class145) class145).aShort2010;
				 i_276_++) {
				int i_277_ = i_276_ * 3;
				int i_278_ = i_277_ + 1;
				int i_279_ = i_278_ + 1;
				int i_280_ = is[i_277_];
				int i_281_ = is[i_278_];
				int i_282_ = is[i_279_];
				int i_283_ = is_266_[i_277_];
				int i_284_ = is_266_[i_278_];
				int i_285_ = is_266_[i_279_];
				if ((((Class145) class145).anIntArray2011
				     != null)
				    && (((Class145) class145).anIntArray2011
					[i_276_]) != 0
				    && ((((Class145) class145).aShortArray2008
					 == null)
					|| ((((Class145) class145)
					     .aShortArray2008) != null
					    && ((((Class145) class145)
						 .aShortArray2008[i_276_])
						== -1)))) {
				    int i_286_ = (((Class145) class145)
						  .anIntArray2011[i_276_]);
				    class109.method1027
					((float) i_283_, (float) i_284_,
					 (float) i_285_, (float) i_280_,
					 (float) i_281_, (float) i_282_,
					 100.0F, 100.0F, 100.0F,
					 Class6.method206(i_286_,
							  (-16777216
							   - ((((Class145)
								class145)
							       .anIntArray2001
							       [i_277_])
							      & ~0xffffff)),
							  255),
					 Class6.method206(i_286_,
							  (-16777216
							   - ((((Class145)
								class145)
							       .anIntArray2001
							       [i_278_])
							      & ~0xffffff)),
							  255),
					 Class6.method206(i_286_,
							  (-16777216
							   - ((((Class145)
								class145)
							       .anIntArray2001
							       [i_279_])
							      & ~0xffffff)),
							  255));
				} else if ((((Class145) class145)
					    .aShortArray2008) != null
					   && ((((Class145) class145)
						.aShortArray2008[i_276_])
					       != -1)) {
				    int i_287_ = (aHa_Sub1_8217.method3722
						  (((Class145) class145)
						   .aShortArray2008[i_276_]));
				    class109.method1022((float) i_283_,
							(float) i_284_,
							(float) i_285_,
							(float) i_280_,
							(float) i_281_,
							(float) i_282_, 100.0F,
							100.0F, 100.0F,
							(float) i_287_,
							(float) i_287_,
							(float) i_287_);
				} else
				    class109.method1027
					((float) i_283_, (float) i_284_,
					 (float) i_285_, (float) i_280_,
					 (float) i_281_, (float) i_282_,
					 100.0F, 100.0F, 100.0F,
					 (((Class145) class145).anIntArray2001
					  [i_277_]),
					 (((Class145) class145).anIntArray2001
					  [i_278_]),
					 (((Class145) class145).anIntArray2001
					  [i_279_]));
			    }
			}
		    } else if (aClass198ArrayArray8219[i_271_][i_272_]
			       != null) {
			Class198 class198
			    = aClass198ArrayArray8219[i_271_][i_272_];
			for (int i_288_ = 0;
			     i_288_ < ((Class198) class198).aShort2620;
			     i_288_++) {
			    is[i_288_]
				= i_269_ + ((((Class198) class198)
					     .aShortArray2622[i_288_])
					    * i_268_ / ((s) this).anInt4592);
			    is_266_[i_288_]
				= i_270_ - ((((Class198) class198)
					     .aShortArray2613[i_288_])
					    * i_268_ / ((s) this).anInt4592);
			}
			for (int i_289_ = 0;
			     i_289_ < ((Class198) class198).aShort2619;
			     i_289_++) {
			    int i_290_ = i_289_ * 3;
			    int i_291_ = i_290_ + 1;
			    int i_292_ = i_291_ + 1;
			    int i_293_ = is[i_290_];
			    int i_294_ = is[i_291_];
			    int i_295_ = is[i_292_];
			    int i_296_ = is_266_[i_290_];
			    int i_297_ = is_266_[i_291_];
			    int i_298_ = is_266_[i_292_];
			    if (((Class198) class198).anIntArray2615 != null
				&& (((Class198) class198).anIntArray2615
				    [i_289_]) != 0) {
				int i_299_ = (((Class198) class198)
					      .anIntArray2615[i_289_]);
				class109.method1027((float) i_296_,
						    (float) i_297_,
						    (float) i_298_,
						    (float) i_293_,
						    (float) i_294_,
						    (float) i_295_, 100.0F,
						    100.0F, 100.0F, i_299_,
						    i_299_, i_299_);
			    } else
				class109.method1027((float) i_296_,
						    (float) i_297_,
						    (float) i_298_,
						    (float) i_293_,
						    (float) i_294_,
						    (float) i_295_, 100.0F,
						    100.0F, 100.0F,
						    (((Class198) class198)
						     .anIntArray2623[i_290_]),
						    (((Class198) class198)
						     .anIntArray2623[i_291_]),
						    (((Class198) class198)
						     .anIntArray2623[i_292_]));
			}
		    }
		}
		i_270_ -= i_268_;
	    }
	    i_270_ = i_260_ + i_267_;
	    i_269_ += i_268_;
	}
	((Class109) class109).aBoolean1669 = true;
	aHa_Sub1_8217.C(bool);
    }