Difference between revisions of "Effect Graphics"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(added links to routines)
(added link to routine)
 
(2 intermediate revisions by the same user not shown)
Line 121: Line 121:
 
  801a625c: a7a00014 sh r0,0x0014(r29)                #      *(sp + 0x14) = 0
 
  801a625c: a7a00014 sh r0,0x0014(r29)                #      *(sp + 0x14) = 0
 
  801a6260: a7a00010 sh r0,0x0010(r29)                #      *(sp + 0x10) = 0
 
  801a6260: a7a00010 sh r0,0x0010(r29)                #      *(sp + 0x10) = 0
  801a6264: 0c007596 jal 0x8001d658                  #      [[0x1d658]] (sp + 0x10, sp + 0x30);
+
  801a6264: 0c007596 jal 0x8001d658                  #      [[Set_Rotation_matrix_elements]] (sp + 0x10, sp + 0x30);
 
  801a6268: a7a20012 sh r2,0x0012(r29)                #      *(sp + 0x12) = 0
 
  801a6268: a7a20012 sh r2,0x0012(r29)                #      *(sp + 0x12) = 0
 
                                                     #  }
 
                                                     #  }
Line 248: Line 248:
 
  801a6428: 1100000d beq r8,r0,0x801a6460            #  if (vf8 != 0) {
 
  801a6428: 1100000d beq r8,r0,0x801a6460            #  if (vf8 != 0) {
 
  801a642c: 00000000 nop
 
  801a642c: 00000000 nop
  801a6430: 0c00742a jal 0x8001d0a8                  #      [[0x1d0a8]] (sp + 0x30);                            // GTE related
+
  801a6430: 0c00742a jal 0x8001d0a8                  #      [[Store_Rotation_matrix_elements_to_GTE]] (sp + 0x30);                            // GTE related
 
  801a6434: 27a40030 addiu r4,r29,0x0030
 
  801a6434: 27a40030 addiu r4,r29,0x0030
 
  801a6438: 27a40010 addiu r4,r29,0x0010              #      firstInputs = sp + 0x10
 
  801a6438: 27a40010 addiu r4,r29,0x0010              #      firstInputs = sp + 0x10
Line 422: Line 422:
 
  801a6694: 1100000d beq r8,r0,0x801a66cc            #  if (*(sp + 0xf8) != 0) {
 
  801a6694: 1100000d beq r8,r0,0x801a66cc            #  if (*(sp + 0xf8) != 0) {
 
  801a6698: 00000000 nop
 
  801a6698: 00000000 nop
  801a669c: 0c00742a jal 0x8001d0a8                  #      [[0x1d0a8]] (sp + 0x30);                            // GTE related
+
  801a669c: 0c00742a jal 0x8001d0a8                  #      [[Store_Rotation_matrix_elements_to_GTE]] (sp + 0x30);                            // GTE related
 
  801a66a0: 27a40030 addiu r4,r29,0x0030              #      sp + 0x30
 
  801a66a0: 27a40030 addiu r4,r29,0x0030              #      sp + 0x30
 
  801a66a4: 27a40010 addiu r4,r29,0x0010              #      firstInputs = sp + 0x10
 
  801a66a4: 27a40010 addiu r4,r29,0x0010              #      firstInputs = sp + 0x10
Line 578: Line 578:
 
  801a68f0: 27a40010 addiu r4,r29,0x0010
 
  801a68f0: 27a40010 addiu r4,r29,0x0010
 
  801a68f4: 02802821 addu r5,r20,r0
 
  801a68f4: 02802821 addu r5,r20,r0
  801a68f8: 0c007596 jal 0x8001d658
+
  801a68f8: 0c007596 jal 0x8001d658                 # [[Set_Rotation_matrix_elements]]
 
  801a68fc: a7a20014 sh r2,0x0014(r29)
 
  801a68fc: a7a20014 sh r2,0x0014(r29)
  801a6900: 0c00742a jal 0x8001d0a8
+
  801a6900: 0c00742a jal 0x8001d0a8                 # [[Store_Rotation_matrix_elements_to_GTE]]
 
  801a6904: 02802021 addu r4,r20,r0
 
  801a6904: 02802021 addu r4,r20,r0
 
  801a6908: 27a40010 addiu r4,r29,0x0010
 
  801a6908: 27a40010 addiu r4,r29,0x0010
Line 871: Line 871:
 
  801a6d7c: 2610accc addiu r16,r16,-0x5334
 
  801a6d7c: 2610accc addiu r16,r16,-0x5334
 
  801a6d80: 02002821 addu r5,r16,r0
 
  801a6d80: 02002821 addu r5,r16,r0
  801a6d84: 0c007596 jal 0x8001d658
+
  801a6d84: 0c007596 jal 0x8001d658                 # [[Set_Rotation_matrix_elements]]
 
  801a6d88: a7a20014 sh r2,0x0014(r29)
 
  801a6d88: a7a20014 sh r2,0x0014(r29)
  801a6d8c: 0c00742a jal 0x8001d0a8
+
  801a6d8c: 0c00742a jal 0x8001d0a8                 # [[Store_Rotation_matrix_elements_to_GTE]]
 
  801a6d90: 02002021 addu r4,r16,r0
 
  801a6d90: 02002021 addu r4,r16,r0
 
  801a6d94: a7a00014 sh r0,0x0014(r29)
 
  801a6d94: a7a00014 sh r0,0x0014(r29)
Line 1,020: Line 1,020:
 
  801a6fc8: 2610accc addiu r16,r16,-0x5334
 
  801a6fc8: 2610accc addiu r16,r16,-0x5334
 
  801a6fcc: 02002821 addu r5,r16,r0
 
  801a6fcc: 02002821 addu r5,r16,r0
  801a6fd0: 0c007596 jal 0x8001d658
+
  801a6fd0: 0c007596 jal 0x8001d658                 # [[Set_Rotation_matrix_elements]]
 
  801a6fd4: a7a20014 sh r2,0x0014(r29)
 
  801a6fd4: a7a20014 sh r2,0x0014(r29)
  801a6fd8: 0c00742a jal 0x8001d0a8
+
  801a6fd8: 0c00742a jal 0x8001d0a8                 # [[Store_Rotation_matrix_elements_to_GTE]]
 
  801a6fdc: 02002021 addu r4,r16,r0
 
  801a6fdc: 02002021 addu r4,r16,r0
 
  801a6fe0: a7a00014 sh r0,0x0014(r29)
 
  801a6fe0: a7a00014 sh r0,0x0014(r29)
Line 1,053: Line 1,053:
 
  801a704c: 0c00755e jal 0x8001d578                # [[Get_vector*matrix_from_GTE]]
 
  801a704c: 0c00755e jal 0x8001d578                # [[Get_vector*matrix_from_GTE]]
 
  801a7050: 02003021 addu r6,r16,r0
 
  801a7050: 02003021 addu r6,r16,r0
  801a7054: 0c00742a jal 0x8001d0a8
+
  801a7054: 0c00742a jal 0x8001d0a8                 # [[Store_Rotation_matrix_elements_to_GTE]]
 
  801a7058: 27a40030 addiu r4,r29,0x0030
 
  801a7058: 27a40030 addiu r4,r29,0x0030
 
  801a705c: 27a40010 addiu r4,r29,0x0010
 
  801a705c: 27a40010 addiu r4,r29,0x0010
Line 1,141: Line 1,141:
 
  801a71a4: 10400017 beq r2,r0,0x801a7204
 
  801a71a4: 10400017 beq r2,r0,0x801a7204
 
  801a71a8: 00101400 sll r2,r16,0x10
 
  801a71a8: 00101400 sll r2,r16,0x10
  801a71ac: 0c00701a jal 0x8001c068
+
  801a71ac: 0c00701a jal 0x8001c068             # within [[0001c054_-_0001c090]] // related to vector normals?
 
  801a71b0: 00802821 addu r5,r4,r0
 
  801a71b0: 00802821 addu r5,r4,r0
 
  801a71b4: 00101c00 sll r3,r16,0x10
 
  801a71b4: 00101c00 sll r3,r16,0x10
Line 1,225: Line 1,225:
 
  801a72f0: 11000019 beq r8,r0,0x801a7358
 
  801a72f0: 11000019 beq r8,r0,0x801a7358
 
  801a72f4: a7a200a4 sh r2,0x00a4(r29)
 
  801a72f4: a7a200a4 sh r2,0x00a4(r29)
  801a72f8: 0c00742a jal 0x8001d0a8
+
  801a72f8: 0c00742a jal 0x8001d0a8                 # [[Store_Rotation_matrix_elements_to_GTE]]
 
  801a72fc: 27a40030 addiu r4,r29,0x0030
 
  801a72fc: 27a40030 addiu r4,r29,0x0030
 
  801a7300: 27a40098 addiu r4,r29,0x0098
 
  801a7300: 27a40098 addiu r4,r29,0x0098

Latest revision as of 15:25, 26 April 2025

 DUPLICATED ROUTINE Emitter_Control_Routine // Talcall's Notes are behind the double slash

#   ROUTINE: EFFECT GRAPHICS
#   Parameters:
#       r4 = (p1) Current effect phase
#       r5 = (p2) ?
#       r6 = (p3) Current effect Parameter
#       r7 = (p4) ?

801a60ac: 27bdfe00 addiu r29,r29,-0x0200
801a60b0: afb401e8 sw r20,0x01e8(r29)
801a60b4: 00e0a021 addu r20,r7,r0                   #   p4
801a60b8: afb601f0 sw r22,0x01f0(r29)
801a60bc: 0080b021 addu r22,r4,r0                   #   p1
801a60c0: 3c026666 lui r2,0x6666
801a60c4: 34426667 ori r2,r2,0x6667                 #   0.4
801a60c8: 00a20018 mult r5,r2                       #   p2 * 0.4
801a60cc: 00061040 sll r2,r6,0x01                   #   p3 * 2
801a60d0: 00461021 addu r2,r2,r6                    #   p3 * 3
801a60d4: 00021100 sll r2,r2,0x04                   #   p3 * 48
801a60d8: 00461021 addu r2,r2,r6                    #   p3 * 49
801a60dc: 3c03801c lui r3,0x801c
801a60e0: 8c63bf88 lw r3,-0x4078(r3)                #   *0x801bbf88 		// pointer to motion data
801a60e4: 00021080 sll r2,r2,0x02                   #   p3 * 196		// 
801a60e8: afb101dc sw r17,0x01dc(r29)
801a60ec: afa500d0 sw r5,0x00d0(r29)                #   p2
801a60f0: 8fb100d0 lw r17,0x00d0(r29)               #   p2
801a60f4: 24420014 addiu r2,r2,0x0014               #   (p3 * 196) + 20
801a60f8: afbf01fc sw r31,0x01fc(r29)
801a60fc: afbe01f8 sw r30,0x01f8(r29)
801a6100: afb701f4 sw r23,0x01f4(r29)
801a6104: afb501ec sw r21,0x01ec(r29)
801a6108: afb301e4 sw r19,0x01e4(r29)
801a610c: afb201e0 sw r18,0x01e0(r29)
801a6110: afb001d8 sw r16,0x01d8(r29)
801a6114: 0043b821 addu r23,r2,r3                   #   ptr23 = (p3 * 196) + 20 + *0x801bbf88
801a6118: 92e2000f lbu r2,0x000f(r23)               #   *(ptr23 + 15)
801a611c: 02204021 addu r8,r17,r0                   #   p2
801a6120: 3045000f andi r5,r2,0x000f                #   *(ptr23 + 15) & 0x0f
801a6124: 001117c3 sra r2,r17,0x1f                  #   p2 >> 31		//compiler division must account for negative. for some reason.
801a6128: 00001810 mfhi r3                          #   p2 * 0.4
801a612c: 00031983 sra r3,r3,0x06                   #   p2 / 160  ((p2 * 0.4) / 64)
801a6130: 00621823 subu r3,r3,r2                    #   p2 / 160  (negative rounded up)
801a6134: 00031080 sll r2,r3,0x02                   #   p2 / 40					// my math tells me p2 * 0.4 * / 16
801a6138: 00431021 addu r2,r2,r3                    #   p2 * (5 / 160)  ((p2 / 40) + (p2 / 160))	// p2 * 0.4 / 16 + p2 * 0.4 / 64 =  5 * p2 * 0.4 / 64
801a613c: 00021140 sll r2,r2,0x05                   #   newP2 (should == p2)				// in a perfect world, this would equal p2. however. mips 3000 does not fractional numbers.
801a6140: 01024023 subu r8,r8,r2                    #   p2x = p2 - newP2				// p2x = whatever was rounded off because of this math. made to loop every 0xA0?
801a6144: afa800d0 sw r8,0x00d0(r29)                #   p2x						// loops every 0xA0 bytes.
801a6148: 96e80002 lhu r8,0x0002(r23)               #   *(ptr23 + 2)					// effects certain things regarding effect's interaction with camera zoom?
801a614c: 24a5ffff addiu r5,r5,-0x0001              #   v5 = (*(ptr23 + 15) & 0x0f) - 1
801a6150: a7a800e8 sh r8,0x00e8(r29)                #   *(ptr23 + 2)
801a6154: 96e80006 lhu r8,0x0006(r23)               #   *(ptr23 + 6)
801a6158: 2402ffff addiu r2,r0,-0x0001              #   -1
801a615c: 10a2000c beq r5,r2,0x801a6190	     #   			// Branch if 0xf point is 0
801a6160: a7a800f0 sh r8,0x00f0(r29)                #   *(ptr23 + 6)
                                                    #   if (v5 != -1) {
801a6164: 00051080 sll r2,r5,0x02                   #       v5 * 4
801a6168: 00451021 addu r2,r2,r5                    #       v5 * 5
801a616c: 00021140 sll r2,r2,0x05                   #       v5 * 160
801a6170: 3c03801c lui r3,0x801c
801a6174: 8c63bf7c lw r3,-0x4084(r3)                #       *0x801bbf7c	// pointer to effect table, which does math on p2x from a table of values? like * 4.25, or * 6.
801a6178: 8fa800d0 lw r8,0x00d0(r29)                #       p2x
801a617c: 00431021 addu r2,r2,r3                    #       (v5 * 160) + *0x801bbf7c	// 160 bytes per table entry, might be unique per effect? does math as per r5.
801a6180: 00481021 addu r2,r2,r8                    #       (v5 * 160) + *0x801bbf7c + p2x	//shift address by p2x
801a6184: 90500004 lbu r16,0x0004(r2)               #       v16 = *((v5 * 160) + *0x801bbf7c + p2x + 4)	//arg 3 = some transformation on p2x
801a6188: 08069865 j 0x801a6194
801a618c: 00000000 nop                              #   } else {
801a6190: 00008021 addu r16,r0,r0                   #       v16 = 0	// else arg 3 = 0
                                                    #   }
801a6194: 86e400b4 lh r4,0x00b4(r23)                #   *(ptr23 + 0xb4)	// arg 1, # particles
801a6198: 86e500b6 lh r5,0x00b6(r23)                #   *(ptr23 + 0xb6)	// arg 2
801a619c: 0c06a2f8 jal 0x801a8be0                   #   result_0x1a8be0 = 001a8be0_-_001a8bf4 (*(ptr23 + 0xb4), *(ptr23 + 0xb6), v16);       // returns (((r5 - #p) * r6) / 256) + r4. MIPS 3000 rounding applies.
801a61a0: 02003021 addu r6,r16,r0                   #   v16		// heaven forbid you just set arguments ahead of time.
801a61a4: 0222001a div r17,r2                       			// Potential divide by 0 error. always circumvented?
801a61a8: 00001810 mfhi r3                          #   p2 % result_0x1a8be0	//p2 / result (too many variables to draw a conclusive pattern)
801a61ac: 00000000 nop
801a61b0: 1460075d bne r3,r0,0x801a7f28             #   if ((p2 % result_0x1a8be0) != 0) return; // which is like for most of the possible variable space where p2 doesn't enter as 0?
801a61b4: 00000000 nop
801a61b8: 3c04801c lui r4,0x801c
801a61bc: 2484accc addiu r4,r4,-0x5334              #   0x801baccc
801a61c0: 0c00744e jal 0x8001d138                   #   Store Translation Vectors to GTE (0x801baccc);
801a61c4: 00000000 nop
801a61c8: 2405ffff addiu r5,r0,-0x0001              #   -1
801a61cc: 3c11801c lui r17,0x801c
801a61d0: 2631ad0c addiu r17,r17,-0x52f4            #   0x801bad0c
801a61d4: 02203021 addu r6,r17,r0                   #   0x801bad0c
801a61d8: 27a70028 addiu r7,r29,0x0028              #   sp + 0x28
801a61dc: 3c02801c lui r2,0x801c
801a61e0: 8c42acc8 lw r2,-0x5338(r2)                #   0x801bacc8		// Header for Miscellaneous Time data
801a61e4: 97a800f0 lhu r8,0x00f0(r29)               #   *(ptr23 + 6) 
801a61e8: 8c440000 lw r4,0x0000(r2)                 #   *0x801bacc8		// loads the first word of Misc time data
801a61ec: 00161400 sll r2,r22,0x10
801a61f0: 00021403 sra r2,r2,0x10                   #   p1
801a61f4: 00021940 sll r3,r2,0x05                   #   p1 * 32
801a61f8: 00621823 subu r3,r3,r2                    #   p1 * 31
801a61fc: 000318c0 sll r3,r3,0x03                   #   p1 * 248
801a6200: 31020410 andi r2,r8,0x0410                #   *(ptr23 + 6) & 0x0410
801a6204: 38420410 xori r2,r2,0x0410                #   *(ptr23 + 6) & 0x0410 ^ 0x0410		// ^ denotes XOR. bit mask values that aren't in the given flag set.
801a6208: 2c420001 sltiu r2,r2,0x0001               #   !(*(ptr23 + 6) & 0x0410 ^ 0x0410)	// set if no flags at all
801a620c: afa200f8 sw r2,0x00f8(r29)                #   vf8 = !(*(ptr23 + 6) & 0x0410 ^ 0x0410)	// put the signage of a presense (0) or lack of (1) flags in the 0x410 set (0x400 and 0x10)
801a6210: 3c01801c lui r1,0x801c
801a6214: 00230821 addu r1,r1,r3
801a6218: 9030f052 lbu r16,-0x0fae(r1)              #   v16 = *(0x801bf052 + (p1 * 248))			// Target counter
801a621c: 0c06a434 jal 0x801a90d0                   #   Get Effect Screen Location Data From Unit Data (*0x801bacc8 & 8, -1, 0x801bad0c, sp + 0x28);	// gets x and y location of target from...?
801a6220: 30840008 andi r4,r4,0x0008                #   *0x801bacc8 & 8
801a6224: 3c02801c lui r2,0x801c
801a6228: 9442adb0 lhu r2,-0x5250(r2)               #   *0x801badb0
801a622c: 00000000 nop
801a6230: 1440000e bne r2,r0,0x801a626c             
801a6234: 321000ff andi r16,r16,0x00ff              #   v16
                                                    #   if (*0x801badb0 == 0) {
801a6238: 3c04801c lui r4,0x801c
801a623c: 9084adb2 lbu r4,-0x524e(r4)               #       *0x801badb2                                     // (misc unit ID)
801a6240: 0c022fc7 jal 0x8008bf1c                   #       result_0x8bf1c = 0x8bf1c (*0x801badb2);     // (returns value based on unit facing?)
801a6244: 00000000 nop
801a6248: 24420001 addiu r2,r2,0x0001               #       result_0x8bf1c + 1
801a624c: 30420003 andi r2,r2,0x0003                #       (result_0x8bf1c + 1) & 3       
801a6250: 00021280 sll r2,r2,0x0a                   #       ((result_0x8bf1c + 1) & 3) * 1024
801a6254: 27a40010 addiu r4,r29,0x0010              #       sp + 0x10
801a6258: 27a50030 addiu r5,r29,0x0030              #       sp + 0x30
801a625c: a7a00014 sh r0,0x0014(r29)                #       *(sp + 0x14) = 0
801a6260: a7a00010 sh r0,0x0010(r29)                #       *(sp + 0x10) = 0
801a6264: 0c007596 jal 0x8001d658                   #       Set_Rotation_matrix_elements (sp + 0x10, sp + 0x30);
801a6268: a7a20012 sh r2,0x0012(r29)                #       *(sp + 0x12) = 0
                                                    #   }
801a626c: 02002821 addu r5,r16,r0                   #   v16   							// Target counter
801a6270: 3c02801c lui r2,0x801c
801a6274: 8c42acc8 lw r2,-0x5338(r2)                #   0x801bacc8
801a6278: 02203021 addu r6,r17,r0                   #   0x801bad0c
801a627c: 8c440000 lw r4,0x0000(r2)                 #   *0x801bacc8
801a6280: 27a70050 addiu r7,r29,0x0050              #   sp + 0x50
801a6284: 0c06a434 jal 0x801a90d0                   #   Get Effect Screen Location Data From Unit Data (*0x801bacc8 & 8, v16, 0x801bad0c, sp + 0x50);
801a6288: 30840008 andi r4,r4,0x0008                #   *0x801bacc8 & 8
801a628c: 00101080 sll r2,r16,0x02                  #   v16 * 4
801a6290: 00501021 addu r2,r2,r16                   #   v16 * 5
801a6294: 00028040 sll r16,r2,0x01                  #   v16 * 10
801a6298: 3c01801c lui r1,0x801c
801a629c: 00300821 addu r1,r1,r16
801a62a0: 9422ad10 lhu r2,-0x52f0(r1)               #   *(0x801bad10 + (v16 * 10))				// animate on miss? per target?
801a62a4: 00000000 nop
801a62a8: 1440000c bne r2,r0,0x801a62dc             #   if (*(0x801bad10 + (v16 * 10)) == 0) {			// branch if animate on miss
801a62ac: 00000000 nop
801a62b0: 3c01801c lui r1,0x801c
801a62b4: 00300821 addu r1,r1,r16
801a62b8: 9024ad12 lbu r4,-0x52ee(r1)               #       *(0x801bad12 + (v16 * 10))      // (misc unit ID)
801a62bc: 0c022fc7 jal 0x8008bf1c                   #       result_0x8bf1c = 0x8bf1c (*(0x801bad12 + (v16 * 10)));     // (returns value based on unit facing?)
801a62c0: 00000000 nop
801a62c4: 3c01801c lui r1,0x801c
801a62c8: 00300821 addu r1,r1,r16
801a62cc: 9024ad12 lbu r4,-0x52ee(r1)               #       *(0x801bad12 + (v16 * 10))      // (misc unit ID)
801a62d0: 0c023292 jal 0x8008ca48                   #       result_0x8ca48 = 0x8ca48 (*(0x801bad12 + (v16 * 10)));      // Returns pointer to coordinate data
801a62d4: 00000000 nop
801a62d8: 0040a821 addu r21,r2,r0                   #       result_0x8ca48
                                                    #   }
801a62dc: 3c04801c lui r4,0x801c
801a62e0: 8484adca lh r4,-0x5236(r4)                #   xCoord = *0x801badca
801a62e4: 3c05801c lui r5,0x801c
801a62e8: 84a5adce lh r5,-0x5232(r5)                #   yCoord = *0x801badce
801a62ec: 3c06801c lui r6,0x801c
801a62f0: 84c6adcc lh r6,-0x5234(r6)                #   zCoord = *0x801badcc
801a62f4: 0c060fed jal 0x80183fb4                   #   tile = Get Tile Data Pointer (xCoord, yCoord, zCoord);
801a62f8: 00000000 nop
801a62fc: 8ee3000c lw r3,0x000c(r23)                #   *(ptr23 + 0x0c)
801a6300: afa20148 sw r2,0x0148(r29)                #   tile
801a6304: 2402ffff addiu r2,r0,-0x0001              #   -1
801a6308: 00031d02 srl r3,r3,0x14                   #   *(ptr23 + 0x0c) >> 0x14
801a630c: 3065000f andi r5,r3,0x000f                #   (*(ptr23 + 0x0c) >> 0x14) & 0x0f
801a6310: 24a5ffff addiu r5,r5,-0x0001              #   v5 = ((*(ptr23 + 0x0c) >> 0x14) & 0x0f) - 1
801a6314: 10a2000b beq r5,r2,0x801a6344
801a6318: 00051080 sll r2,r5,0x02                   #   v5 * 4
                                                    #   if (v5 != -1) {
801a631c: 00451021 addu r2,r2,r5                    #       v5 * 5
801a6320: 00021140 sll r2,r2,0x05                   #       v5 * 160
801a6324: 3c03801c lui r3,0x801c
801a6328: 8c63bf7c lw r3,-0x4084(r3)                #       *0x801bbf7c // effect coordinate/direction data?
801a632c: 8fa800d0 lw r8,0x00d0(r29)                #       p2x
801a6330: 00431021 addu r2,r2,r3                    #       (v5 * 160) + *0x801bbf7c
801a6334: 00481021 addu r2,r2,r8                    #       (v5 * 160) + *0x801bbf7c + p2x
801a6338: 90500004 lbu r16,0x0004(r2)               #       v16 = *((v5 * 160) + *0x801bbf7c + p2x + 4)
801a633c: 080698d3 j 0x801a634c
801a6340: 02003021 addu r6,r16,r0                   #       v6 = v16
                                                    #   } else {
801a6344: 00008021 addu r16,r0,r0                   #       v16 = 0
801a6348: 02003021 addu r6,r16,r0                   #       v6 = v16
                                                    #   }
801a634c: 86e400b0 lh r4,0x00b0(r23)                #   *(ptr23 + 0xb0)
801a6350: 86e500b2 lh r5,0x00b2(r23)                #   *(ptr23 + 0xb2)
801a6354: 0c06a2f8 jal 0x801a8be0                   #   result_0x1a8be0 = 001a8be0_-_001a8bf4 (*(ptr23 + 0xb0), *(ptr23 + 0xb2));      // returns (((arg2 - arg1) * arg3) / 256) - arg1
801a6358: 00009821 addu r19,r0,r0                   #   count = 0
801a635c: 18400018 blez r2,0x801a63c0
801a6360: afa200d8 sw r2,0x00d8(r29)                #   result_0x1a8be0
                                                    #   if (result_0x1a8be0 > 0) {
801a6364: 97a800e8 lhu r8,0x00e8(r29)               #       *(ptr23 + 2) 
801a6368: 00168c00 sll r17,r22,0x10                 #       p1 << 16
801a636c: 3102f000 andi r2,r8,0xf000                #       *(ptr23 + 2) & 0xf000
801a6370: 00028400 sll r16,r2,0x10                  #       (*(ptr23 + 2) & 0xf000) << 16
801a6374: 00112403 sra r4,r17,0x10                  #       p1						// Effect phase
                                                    #       do {
801a6378: 0c06970f jal 0x801a5c3c                   #           result_0x1a5c3c = 001a5c3c - 001a5d70 (p1, (*(ptr23 + 2) & 0xf000) << 16);         // sets up effect graphics. returns temp effect data pointer?
801a637c: 00102c03 sra r5,r16,0x10									// r5 input for above; affects if effect conforms to camera zoom or some transform matrix?
801a6380: 00409021 addu r18,r2,r0                   #           result_0x1a5c3c			// temp effect data pointer?
801a6384: 97a800e8 lhu r8,0x00e8(r29)               #           *(ptr23 + 2)
801a6388: 8e440054 lw r4,0x0054(r18)                #           *(result_0x1a5c3c + 0x54)
801a638c: a648004c sh r8,0x004c(r18)                #           *(result_0x1a5c3c + 0x48) = *(ptr23 + 2)
801a6390: 97a800f0 lhu r8,0x00f0(r29)               #           *(ptr23 + 6)
801a6394: a6400050 sh r0,0x0050(r18)                #           *(result_0x1a5c3c + 0x50) = 0
801a6398: a648004e sh r8,0x004e(r18)                #           *(result_0x1a5c3c + 0x4e) = *(ptr23 + 6)
801a639c: 92e50004 lbu r5,0x0004(r23)               #           *(ptr23 + 4)
801a63a0: 92e60001 lbu r6,0x0001(r23)               #           *(ptr23 + 1)
801a63a4: 0c06a868 jal 0x801aa1a0                   #           Some_parameter_set_stuff (*(result_0x1a5c3c + 0x54), *(ptr23 + 4), *(ptr23 + 1));       // Affects which graphics get displayed?
801a63a8: 26730001 addiu r19,r19,0x0001             #           count = count + 1
801a63ac: 8fa800d8 lw r8,0x00d8(r29)                #           result_0x1a8be0
801a63b0: 00000000 nop
801a63b4: 0268102a slt r2,r19,r8
801a63b8: 1440ffef bne r2,r0,0x801a6378
801a63bc: 00112403 sra r4,r17,0x10                  #           p1
                                                    #       } while (count < result_0x1a8be0);
                                                    #   }
801a63c0: 8ee20008 lw r2,0x0008(r23)                #   *(ptr23 + 8)
801a63c4: 00000000 nop
801a63c8: 3045000f andi r5,r2,0x000f                #   *(ptr23 + 8) & 0x0f
801a63cc: 24a5ffff addiu r5,r5,-0x0001              #   v5 = (*(ptr23 + 8) & 0x0f) - 1
801a63d0: 2402ffff addiu r2,r0,-0x0001              #   -1
801a63d4: 10a2000c beq r5,r2,0x801a6408
801a63d8: afb200e0 sw r18,0x00e0(r29)               #   *(sp + 0xe0) = result_0x1a5c3c
                                                    #    if (v5 != -1) {
801a63dc: 00051080 sll r2,r5,0x02                   #       v5 * 4
801a63e0: 00451021 addu r2,r2,r5                    #       v5 * 5
801a63e4: 00021140 sll r2,r2,0x05                   #       v5 * 120
801a63e8: 3c03801c lui r3,0x801c
801a63ec: 8c63bf7c lw r3,-0x4084(r3)                #       *0x801bbf7c // effect coordinate/direction data?
801a63f0: 8fa800d0 lw r8,0x00d0(r29)                #       p2x
801a63f4: 00431021 addu r2,r2,r3                    #       (v5 * 120) + *0x801bbf7c
801a63f8: 00481021 addu r2,r2,r8                    #       (v5 * 120) + *0x801bbf7c + p2x
801a63fc: 90500004 lbu r16,0x0004(r2)               #       v16 = *((v5 * 120) + *0x801bbf7c + p2x + 4)
801a6400: 08069904 j 0x801a6410
801a6404: 02e02021 addu r4,r23,r0                   #       ptr23
                                                    #   } else {
801a6408: 00008021 addu r16,r0,r0                   #       v16 = 0
801a640c: 02e02021 addu r4,r23,r0                   #       ptr23
                                                    #   }
801a6410: 02002821 addu r5,r16,r0                   #   v16
801a6414: 27b00058 addiu r16,r29,0x0058
801a6418: 0c06a305 jal 0x801a8c14                   #   001a8c14_-_001a8c88 (ptr23, v16, sp + 0x58);
801a641c: 02003021 addu r6,r16,r0                   #   sp + 0x58
801a6420: 8fa800f8 lw r8,0x00f8(r29)                #   vf8
801a6424: 00000000 nop
801a6428: 1100000d beq r8,r0,0x801a6460             #   if (vf8 != 0) {
801a642c: 00000000 nop
801a6430: 0c00742a jal 0x8001d0a8                   #       Store_Rotation_matrix_elements_to_GTE (sp + 0x30);                            // GTE related
801a6434: 27a40030 addiu r4,r29,0x0030
801a6438: 27a40010 addiu r4,r29,0x0010              #       firstInputs = sp + 0x10
801a643c: 02002821 addu r5,r16,r0                   #       sp + 0x58
801a6440: 97a20058 lhu r2,0x0058(r29)               #       *(sp + 0x58)
801a6444: 97a3005c lhu r3,0x005c(r29)               #       *(sp + 0x5c)
801a6448: 97a70060 lhu r7,0x0060(r29)               #       *(sp + 0x60)
801a644c: 27a60024 addiu r6,r29,0x0024              #       destPtr = sp + 0x24
801a6450: a7a20010 sh r2,0x0010(r29)                #       firstInputs[0] = *(sp + 0x58)
801a6454: a7a30012 sh r3,0x0012(r29)                #       firstInputs[1] = *(sp + 0x5c)
801a6458: 0c00755e jal 0x8001d578                   #       Get_vector*matrix_from_GTE (firstInputs, sp + 0x58, destPtr);      // GTE related: result stored at last param address
801a645c: a7a70014 sh r7,0x0014(r29)                #       firstInputs[2] = *(sp + 0x60)
                                                    #   }
801a6460: 97a800e8 lhu r8,0x00e8(r29)               #   *(ptr23 + 2)
801a6464: 34020600 ori r2,r0,0x0600                 
801a6468: 31030e00 andi r3,r8,0x0e00                #   testValue = *(ptr23 + 2) & 0x0e00
                                                    
801a646c: 10620036 beq r3,r2,0x801a6548             #       // (testValue == 0x0600)
801a6470: 28620601 slti r2,r3,0x0601
801a6474: 10400009 beq r2,r0,0x801a649c             #       // (testValue >= 0x0601)
801a6478: 34020200 ori r2,r0,0x0200
801a647c: 10620016 beq r3,r2,0x801a64d8             #       // (testValue == 0x0200)
801a6480: 28620201 slti r2,r3,0x0201
801a6484: 14400069 bne r2,r0,0x801a662c             #       // (testValue < 0x0200)
801a6488: 34020400 ori r2,r0,0x0400
801a648c: 1062002f beq r3,r2,0x801a654c             #       // (testValue == 0x0400)
801a6490: 27a40028 addiu r4,r29,0x0028
801a6494: 0806998b j 0x801a662c                     
801a6498: 00000000 nop
801a649c: 34020a00 ori r2,r0,0x0a00
801a64a0: 10620040 beq r3,r2,0x801a65a4             #       // (testValue == 0x0a00)
801a64a4: 00000000 nop
801a64a8: 28620a01 slti r2,r3,0x0a01
801a64ac: 10400005 beq r2,r0,0x801a64c4             #       // (testValue >= 0x0a01)
801a64b0: 34020800 ori r2,r0,0x0800
801a64b4: 1062002a beq r3,r2,0x801a6560             #       // (testValue == 0x0800)
801a64b8: 00000000 nop
801a64bc: 0806998b j 0x801a662c                     
801a64c0: 00000000 nop
801a64c4: 34020c00 ori r2,r0,0x0c00                 
801a64c8: 10620046 beq r3,r2,0x801a65e4             #       // (testValue == 0x0c00)
801a64cc: 00000000 nop
801a64d0: 0806998b j 0x801a662c                     
801a64d4: 00000000 nop
                                                    #   testValue       Description
                                                    #   0x0200          Animates on targeted panel
                                                    #   0x0400          Animates on/over source unit
                                                    #   0x0600          Animates on target unit(s)?
                                                    
                                                    #   if (testValue == 0x0200) {
801a64d8: 8fa30058 lw r3,0x0058(r29)                #       *(sp + 0x58)
801a64dc: 3c04801c lui r4,0x801c
801a64e0: 8484adca lh r4,-0x5236(r4)                #       xCoord = *0x801badca
801a64e4: 8fa80148 lw r8,0x0148(r29)                #       tile
801a64e8: 2463000e addiu r3,r3,0x000e               #       *(sp + 0x58) + 14
801a64ec: 000410c0 sll r2,r4,0x03                   #       xCoord * 8
801a64f0: 00441023 subu r2,r2,r4                    #       xCoord * 7
801a64f4: 00021080 sll r2,r2,0x02                   #       xCoord * 28
801a64f8: 00621821 addu r3,r3,r2                    #       *(sp + 0x58) + 14 + (xCoord * 28)
801a64fc: afa30058 sw r3,0x0058(r29)                #       *(sp + 0x58) = *(sp + 0x58) + 14 + (xCoord * 28)
801a6500: 8fa30060 lw r3,0x0060(r29)                #       *(sp + 0x60)
801a6504: 3c04801c lui r4,0x801c
801a6508: 8484adce lh r4,-0x5232(r4)                #       yCoord = *0x801badce
801a650c: 2463000e addiu r3,r3,0x000e               #       *(sp + 0x60) + 14
801a6510: 000410c0 sll r2,r4,0x03                   #       yCoord * 8
801a6514: 00441023 subu r2,r2,r4                    #       yCoord * 7
801a6518: 00021080 sll r2,r2,0x02                   #       yCoord * 28
801a651c: 00621821 addu r3,r3,r2                    #       *(sp + 0x60) + 14 + (yCoord * 28)
801a6520: afa30060 sw r3,0x0060(r29)                #       *(sp + 0x60) = *(sp + 0x60) + 14 + (yCoord * 28)
801a6524: 91030002 lbu r3,0x0002(r8)                #       tile.height
801a6528: 00000000 nop
801a652c: 00031040 sll r2,r3,0x01                   #       tile.height * 2
801a6530: 00431021 addu r2,r2,r3                    #       tile.height * 3
801a6534: 8fa3005c lw r3,0x005c(r29)                #       *(sp + 0x5c)
801a6538: 00021080 sll r2,r2,0x02                   #       tile.height * 12
801a653c: 00621823 subu r3,r3,r2                    #       *(sp + 0x5c) - (tile.height * 12)
801a6540: 0806998b j 0x801a662c
801a6544: afa3005c sw r3,0x005c(r29)                #       *(sp + 0x5c) = *(sp + 0x5c) - (tile.height * 12)
                                                    #   } else if ((testValue == 0x0400) || (testValue == 0x0600)) {
801a6548: 27a40050 addiu r4,r29,0x0050              #       if (testValue == 0x0600) firstArg = sp + 0x50; else firstArg = sp + 0x28;
801a654c: 02002821 addu r5,r16,r0                   #       sp + 0x58
801a6550: 0c06a535 jal 0x801a94d4                   #       001a94d4_-_001a9510 (firstArg, sp + 0x58, sp + 0x58);         // Adds values in first two buffers and stores them in third buffer
801a6554: 00a03021 addu r6,r5,r0                    #       sp + 0x58
801a6558: 0806998b j 0x801a662c
801a655c: 00000000 nop
                                                    #   } else if (testValue == 0x0800) {
801a6560: 12800032 beq r20,r0,0x801a662c            #       if (p4 != null) {
801a6564: 00000000 nop
801a6568: 8e82000c lw r2,0x000c(r20)                #           *(p4 + 0x0c)
801a656c: 8fa30058 lw r3,0x0058(r29)                #           *(sp + 0x58)
801a6570: 00021303 sra r2,r2,0x0c                   #           *(p4 + 0x0c) >> 12
801a6574: 00431021 addu r2,r2,r3                    #           (*(p4 + 0x0c) >> 12) + *(sp + 0x58)
801a6578: afa20058 sw r2,0x0058(r29)                #           *(sp + 0x58) = (*(p4 + 0x0c) >> 12) + *(sp + 0x58)
801a657c: 8e820010 lw r2,0x0010(r20)                #           *(p4 + 0x10)
801a6580: 8fa3005c lw r3,0x005c(r29)                #           *(sp + 0x5c)
801a6584: 00021303 sra r2,r2,0x0c                   #           *(p4 + 0x10) >> 12
801a6588: 00431021 addu r2,r2,r3                    #           (*(p4 + 0x10) >> 12) + *(sp + 0x5c)
801a658c: afa2005c sw r2,0x005c(r29)                #           *(sp + 0x5c) = (*(p4 + 0x10) >> 12) + *(sp + 0x5c)
801a6590: 8e820014 lw r2,0x0014(r20)                #           *(p4 + 0x14)
801a6594: 8fa30060 lw r3,0x0060(r29)                #           *(sp + 0x60)
801a6598: 00021303 sra r2,r2,0x0c                   #           *(p4 + 0x14) >> 12
801a659c: 0806998a j 0x801a6628                                
801a65a0: 00431021 addu r2,r2,r3                    #           (*(p4 + 0x14) >> 12) + *(sp + 0x60)
                                                    #           *(sp + 0x60) = (*(p4 + 0x14) >> 12) + *(sp + 0x60)      // (From jump location 0x1a6628)
                                                    #       }
                                                    #   } else if (testValue == 0x0a00) {
801a65a4: 0c0237d2 jal 0x8008df48                   #       Store_Map_Max_Coordinates (sp + 0xc0);            // Stores Map Max X, 0, Map Max Y (2-byte values) in passed buffer
801a65a8: 27a400c0 addiu r4,r29,0x00c0
801a65ac: 87a300c0 lh r3,0x00c0(r29)                #       MapMaxX
801a65b0: 87a400c4 lh r4,0x00c4(r29)                #       MapMaxY
801a65b4: 000310c0 sll r2,r3,0x03                   #       MapMaxX * 8
801a65b8: 00431023 subu r2,r2,r3                    #       MapMaxX * 7
801a65bc: 8fa30058 lw r3,0x0058(r29)                #       *(sp + 0x58)
801a65c0: 00021040 sll r2,r2,0x01                   #       MapMaxX * 14
801a65c4: 00431021 addu r2,r2,r3                    #       (MapMaxX * 14) + *(sp + 0x58)
801a65c8: afa20058 sw r2,0x0058(r29)                #       *(sp + 0x58) = (MapMaxX * 14) + *(sp + 0x58)
801a65cc: 000410c0 sll r2,r4,0x03                   #       MapMaxY * 8
801a65d0: 00441023 subu r2,r2,r4                    #       MapMaxY * 7
801a65d4: 8fa30060 lw r3,0x0060(r29)                #       *(sp + 0x60)
801a65d8: 00021040 sll r2,r2,0x01                   #       MapMaxY * 14
801a65dc: 0806998a j 0x801a6628
801a65e0: 00431021 addu r2,r2,r3                    #       (MapMaxY * 14) + *(sp + 0x60)
                                                    #        *(sp + 0x60) = (MapMaxY * 14) + *(sp + 0x60)               // (From jump location 0x1a6628)
                                                    #   } else if (testValue == 0x0c00) {
801a65e4: 87a20050 lh r2,0x0050(r29)                #       *(sp + 0x50)
801a65e8: 86a30000 lh r3,0x0000(r21)                #       *result_0x8ca48     // (Pointer to coordinate data for unit?)
801a65ec: 8fa40058 lw r4,0x0058(r29)                #       *(sp + 0x58)
801a65f0: 00431021 addu r2,r2,r3                    #       *(sp + 0x50) + *result_0x8ca48
801a65f4: 00441021 addu r2,r2,r4                    #       *(sp + 0x50) + *result_0x8ca48 + *(sp + 0x58)
801a65f8: afa20058 sw r2,0x0058(r29)                #       *(sp + 0x58) = *(sp + 0x50) + *result_0x8ca48 + *(sp + 0x58)
801a65fc: 87a20052 lh r2,0x0052(r29)                #       *(sp + 0x52)
801a6600: 86a30002 lh r3,0x0002(r21)                #       *(result_0x8ca48 + 2)
801a6604: 8fa4005c lw r4,0x005c(r29)                #       *(sp + 0x5c)
801a6608: 00431021 addu r2,r2,r3                    #       *(sp + 0x52) + *(result_0x8ca48 + 2)
801a660c: 00441021 addu r2,r2,r4                    #       *(sp + 0x52) + *(result_0x8ca48 + 2) + *(sp + 0x5c)
801a6610: afa2005c sw r2,0x005c(r29)                #       *(sp + 0x5c) = *(sp + 0x52) + *(result_0x8ca48 + 2) + *(sp + 0x5c)
801a6614: 87a20054 lh r2,0x0054(r29)                #       *(sp + 0x54)
801a6618: 86a30004 lh r3,0x0004(r21)                #       *(result_0x8ca48 + 4)
801a661c: 8fa40060 lw r4,0x0060(r29)                #       *(sp + 0x60)
801a6620: 00431021 addu r2,r2,r3                    #       *(sp + 0x54) + *(result_0x8ca48 + 4)
801a6624: 00441021 addu r2,r2,r4                    #       *(sp + 0x54) + *(result_0x8ca48 + 4) + *(sp + 0x60)
801a6628: afa20060 sw r2,0x0060(r29)                #       *(sp + 0x60) = *(sp + 0x54) + *(result_0x8ca48 + 4) + *(sp + 0x60)
                                                    #   }
801a662c: 8ee20008 lw r2,0x0008(r23)                #   v2 = *(ptr23 + 8)
801a6630: 00000000 nop
801a6634: 00021102 srl r2,r2,0x04                   #   v2 >> 4
801a6638: 3045000f andi r5,r2,0x000f                #   (v2 >> 4) & 0x0f
801a663c: 24a5ffff addiu r5,r5,-0x0001              #   v5 = ((v2 >> 4) & 0x0f) - 1
801a6640: 2402ffff addiu r2,r0,-0x0001              #   -1
801a6644: 10a2000b beq r5,r2,0x801a6674
801a6648: 00051080 sll r2,r5,0x02                   #   v5 * 4
                                                    #   if (v5 != -1) {
801a664c: 00451021 addu r2,r2,r5                    #       v5 * 5
801a6650: 00021140 sll r2,r2,0x05                   #       v5 * 120
801a6654: 3c03801c lui r3,0x801c
801a6658: 8c63bf7c lw r3,-0x4084(r3)                #       *0x801bbf7c // effect coordinate/direction data?
801a665c: 8fa800d0 lw r8,0x00d0(r29)                #       *(sp + 0xd0)
801a6660: 00431021 addu r2,r2,r3                    #       (v5 * 120) + *0x801bbf7c
801a6664: 00481021 addu r2,r2,r8                    #       (v5 * 120) + *0x801bbf7c + *(sp + 0xd0)
801a6668: 90500004 lbu r16,0x0004(r2)               #       v16 = *((v5 * 120) + *0x801bbf7c + *(sp + 0xd0) + 4)
801a666c: 0806999f j 0x801a667c
801a6670: 02e02021 addu r4,r23,r0                   #       ptr23
                                                    #   } else {
801a6674: 00008021 addu r16,r0,r0                   #       v16 = 0
801a6678: 02e02021 addu r4,r23,r0                   #       ptr23
                                                    #   }
801a667c: 02002821 addu r5,r16,r0                   #   v16
801a6680: 27b00068 addiu r16,r29,0x0068             #   sp + 0x68
801a6684: 0c06a323 jal 0x801a8c8c                   #   001a8c8c_-_001a8d00 (ptr23, v16, sp + 0x68);
801a6688: 02003021 addu r6,r16,r0                   #   sp + 0x68
801a668c: 8fa800f8 lw r8,0x00f8(r29)                #   *(sp + 0xf8)
801a6690: 00000000 nop
801a6694: 1100000d beq r8,r0,0x801a66cc             #   if (*(sp + 0xf8) != 0) {
801a6698: 00000000 nop
801a669c: 0c00742a jal 0x8001d0a8                   #       Store_Rotation_matrix_elements_to_GTE (sp + 0x30);                            // GTE related
801a66a0: 27a40030 addiu r4,r29,0x0030              #       sp + 0x30
801a66a4: 27a40010 addiu r4,r29,0x0010              #       firstInputs = sp + 0x10
801a66a8: 02002821 addu r5,r16,r0                   #       sp + 0x68
801a66ac: 97a20068 lhu r2,0x0068(r29)               #       *(sp + 0x68)
801a66b0: 97a3006c lhu r3,0x006c(r29)               #       *(sp + 0x6c)
801a66b4: 97a70070 lhu r7,0x0070(r29)               #       *(sp + 0x70)
801a66b8: 27a60024 addiu r6,r29,0x0024              #       destPtr = sp + 0x24
801a66bc: a7a20010 sh r2,0x0010(r29)                #       firstInputs[0] = *(sp + 0x68)
801a66c0: a7a30012 sh r3,0x0012(r29)                #       firstInputs[1] = *(sp + 0x6c)
801a66c4: 0c00755e jal 0x8001d578                   #       Get_vector*matrix_from_GTE (firstInputs, sp + 0x68, destPtr);      // GTE related: result stored at last param address
801a66c8: a7a70014 sh r7,0x0014(r29)                #       firstInputs[2] = *(sp + 0x70)
                                                    #   }
801a66cc: 97a800e8 lhu r8,0x00e8(r29)               #   *(ptr23 + 2)
801a66d0: 8fb200e0 lw r18,0x00e0(r29)               #   result_0x1a5c3c
801a66d4: 31020100 andi r2,r8,0x0100                #   *(ptr23 + 2) & 0x0100
801a66d8: 10400070 beq r2,r0,0x801a689c             #   if ((*(ptr23 + 2) & 0x0100) != 0) {
801a66dc: 00000000 nop
801a66e0: 8fa800d8 lw r8,0x00d8(r29)                #       *(sp + 0xd8)
801a66e4: 00000000 nop
801a66e8: 190000c8 blez r8,0x801a6a0c
801a66ec: 00009821 addu r19,r0,r0                   #       count = 0
                                                    #       if (*(sp + 0xd8) > 0) {
801a66f0: 8fa30068 lw r3,0x0068(r29)
801a66f4: 8fb00058 lw r16,0x0058(r29)
801a66f8: 00031023 subu r2,r0,r3
801a66fc: 14620004 bne r3,r2,0x801a6710
801a6700: 00000000 nop
801a6704: 02031021 addu r2,r16,r3
801a6708: 080699dc j 0x801a6770
801a670c: 00021300 sll r2,r2,0x0c
801a6710: 0043102a slt r2,r2,r3
801a6714: 1040000a beq r2,r0,0x801a6740
801a6718: 00000000 nop
801a671c: 0c0088c3 jal 0x8002230c                 # Rand
801a6720: 00000000 nop
801a6724: 8fa40068 lw r4,0x0068(r29)
801a6728: 00000000 nop
801a672c: 00041840 sll r3,r4,0x01
801a6730: 0043001a div r2,r3
801a6734: 00001810 mfhi r3
801a6738: 080699da j 0x801a6768
801a673c: 00641823 subu r3,r3,r4
801a6740: 0c0088c3 jal 0x8002230c                 # Rand
801a6744: 00000000 nop
801a6748: 8fa40068 lw r4,0x0068(r29)
801a674c: 00000000 nop
801a6750: 00041823 subu r3,r0,r4
801a6754: 00641823 subu r3,r3,r4
801a6758: 0043001a div r2,r3
801a675c: 00001810 mfhi r3
801a6760: 00000000 nop
801a6764: 00641821 addu r3,r3,r4
801a6768: 02031821 addu r3,r16,r3
801a676c: 00031300 sll r2,r3,0x0c
801a6770: ae42000c sw r2,0x000c(r18)
801a6774: 8fa3006c lw r3,0x006c(r29)
801a6778: 8fb0005c lw r16,0x005c(r29)
801a677c: 00031023 subu r2,r0,r3
801a6780: 14620004 bne r3,r2,0x801a6794
801a6784: 00000000 nop
801a6788: 02031021 addu r2,r16,r3
801a678c: 080699fd j 0x801a67f4
801a6790: 00021300 sll r2,r2,0x0c
801a6794: 0043102a slt r2,r2,r3
801a6798: 1040000a beq r2,r0,0x801a67c4
801a679c: 00000000 nop
801a67a0: 0c0088c3 jal 0x8002230c                 # Rand
801a67a4: 00000000 nop
801a67a8: 8fa4006c lw r4,0x006c(r29)
801a67ac: 00000000 nop
801a67b0: 00041840 sll r3,r4,0x01
801a67b4: 0043001a div r2,r3
801a67b8: 00001810 mfhi r3
801a67bc: 080699fb j 0x801a67ec
801a67c0: 00641823 subu r3,r3,r4
801a67c4: 0c0088c3 jal 0x8002230c                 # Rand
801a67c8: 00000000 nop
801a67cc: 8fa4006c lw r4,0x006c(r29)
801a67d0: 00000000 nop
801a67d4: 00041823 subu r3,r0,r4
801a67d8: 00641823 subu r3,r3,r4
801a67dc: 0043001a div r2,r3
801a67e0: 00001810 mfhi r3
801a67e4: 00000000 nop
801a67e8: 00641821 addu r3,r3,r4
801a67ec: 02031821 addu r3,r16,r3
801a67f0: 00031300 sll r2,r3,0x0c
801a67f4: ae420010 sw r2,0x0010(r18)
801a67f8: 8fa30070 lw r3,0x0070(r29)
801a67fc: 8fb00060 lw r16,0x0060(r29)
801a6800: 00031023 subu r2,r0,r3
801a6804: 14620004 bne r3,r2,0x801a6818
801a6808: 00000000 nop
801a680c: 02031021 addu r2,r16,r3
801a6810: 08069a1e j 0x801a6878
801a6814: 00021300 sll r2,r2,0x0c
801a6818: 0043102a slt r2,r2,r3
801a681c: 1040000a beq r2,r0,0x801a6848
801a6820: 00000000 nop
801a6824: 0c0088c3 jal 0x8002230c                 # Rand
801a6828: 00000000 nop
801a682c: 8fa40070 lw r4,0x0070(r29)
801a6830: 00000000 nop
801a6834: 00041840 sll r3,r4,0x01
801a6838: 0043001a div r2,r3
801a683c: 00001810 mfhi r3
801a6840: 08069a1c j 0x801a6870
801a6844: 00641823 subu r3,r3,r4
801a6848: 0c0088c3 jal 0x8002230c                 # Rand
801a684c: 00000000 nop
801a6850: 8fa40070 lw r4,0x0070(r29)
801a6854: 00000000 nop
801a6858: 00041823 subu r3,r0,r4
801a685c: 00641823 subu r3,r3,r4
801a6860: 0043001a div r2,r3
801a6864: 00001810 mfhi r3
801a6868: 00000000 nop
801a686c: 00641821 addu r3,r3,r4
801a6870: 02031821 addu r3,r16,r3
801a6874: 00031300 sll r2,r3,0x0c
801a6878: 26730001 addiu r19,r19,0x0001
801a687c: ae420014 sw r2,0x0014(r18)
801a6880: 8fa800d8 lw r8,0x00d8(r29)
801a6884: 8e520004 lw r18,0x0004(r18)
801a6888: 0268102a slt r2,r19,r8
801a688c: 1040005f beq r2,r0,0x801a6a0c
801a6890: 00000000 nop
801a6894: 080699bc j 0x801a66f0
801a6898: 00000000 nop
                                                    #       }
                                                    #   } else {
801a689c: 87a40068 lh r4,0x0068(r29)
801a68a0: 87a5006c lh r5,0x006c(r29)
801a68a4: 87a60070 lh r6,0x0070(r29)
801a68a8: 0c06a1cf jal 0x801a873c                   # 001a873c_-_001a87d4
801a68ac: 00009821 addu r19,r0,r0
801a68b0: 8fa800d8 lw r8,0x00d8(r29)
801a68b4: 00000000 nop
801a68b8: 19000054 blez r8,0x801a6a0c
801a68bc: 00408821 addu r17,r2,r0
801a68c0: 00111400 sll r2,r17,0x10
801a68c4: 00028403 sra r16,r2,0x10
801a68c8: 3c14801c lui r20,0x801c
801a68cc: 2694accc addiu r20,r20,-0x5334

801a68d0: 1200003c beq r16,r0,0x801a69c4
801a68d4: 00000000 nop
801a68d8: 0c0088c3 jal 0x8002230c                 # Rand
801a68dc: 00000000 nop
801a68e0: 0c0088c3 jal 0x8002230c                 # Rand
801a68e4: a7a20010 sh r2,0x0010(r29)
801a68e8: 0c0088c3 jal 0x8002230c                 # Rand
801a68ec: a7a20012 sh r2,0x0012(r29)
801a68f0: 27a40010 addiu r4,r29,0x0010
801a68f4: 02802821 addu r5,r20,r0
801a68f8: 0c007596 jal 0x8001d658                 # Set_Rotation_matrix_elements
801a68fc: a7a20014 sh r2,0x0014(r29)
801a6900: 0c00742a jal 0x8001d0a8                 # Store_Rotation_matrix_elements_to_GTE
801a6904: 02802021 addu r4,r20,r0
801a6908: 27a40010 addiu r4,r29,0x0010
801a690c: 27a50018 addiu r5,r29,0x0018
801a6910: 27a60024 addiu r6,r29,0x0024
801a6914: a7b10010 sh r17,0x0010(r29)
801a6918: a7a00014 sh r0,0x0014(r29)
801a691c: 0c00755e jal 0x8001d578                # Get_vector*matrix_from_GTE
801a6920: a7a00012 sh r0,0x0012(r29)
801a6924: 8fa30018 lw r3,0x0018(r29)
801a6928: 8fa20068 lw r2,0x0068(r29)
801a692c: 00000000 nop
801a6930: 00620018 mult r3,r2
801a6934: 00001012 mflo r2
801a6938: 00000000 nop
801a693c: 00000000 nop
801a6940: 0050001a div r2,r16
801a6944: 00001012 mflo r2
801a6948: 8fa30058 lw r3,0x0058(r29)
801a694c: 00000000 nop
801a6950: 00431021 addu r2,r2,r3
801a6954: 00021300 sll r2,r2,0x0c
801a6958: ae42000c sw r2,0x000c(r18)
801a695c: 8fa3001c lw r3,0x001c(r29)
801a6960: 8fa2006c lw r2,0x006c(r29)
801a6964: 00000000 nop
801a6968: 00620018 mult r3,r2
801a696c: 00001012 mflo r2
801a6970: 00000000 nop
801a6974: 00000000 nop
801a6978: 0050001a div r2,r16
801a697c: 00001012 mflo r2
801a6980: 8fa3005c lw r3,0x005c(r29)
801a6984: 00000000 nop
801a6988: 00431021 addu r2,r2,r3
801a698c: 00021300 sll r2,r2,0x0c
801a6990: ae420010 sw r2,0x0010(r18)
801a6994: 8fa30020 lw r3,0x0020(r29)
801a6998: 8fa20070 lw r2,0x0070(r29)
801a699c: 00000000 nop
801a69a0: 00620018 mult r3,r2
801a69a4: 00001012 mflo r2
801a69a8: 00000000 nop
801a69ac: 00000000 nop
801a69b0: 0050001a div r2,r16
801a69b4: 00001012 mflo r2
801a69b8: 8fa30060 lw r3,0x0060(r29)
801a69bc: 08069a7a j 0x801a69e8
801a69c0: 00431021 addu r2,r2,r3
801a69c4: 8fa20058 lw r2,0x0058(r29)
801a69c8: 00000000 nop
801a69cc: 00021300 sll r2,r2,0x0c
801a69d0: ae42000c sw r2,0x000c(r18)
801a69d4: 8fa2005c lw r2,0x005c(r29)
801a69d8: 00000000 nop
801a69dc: 00021300 sll r2,r2,0x0c
801a69e0: ae420010 sw r2,0x0010(r18)
801a69e4: 8fa20060 lw r2,0x0060(r29)
801a69e8: 00000000 nop
801a69ec: 00021300 sll r2,r2,0x0c
801a69f0: ae420014 sw r2,0x0014(r18)
801a69f4: 26730001 addiu r19,r19,0x0001
801a69f8: 8fa800d8 lw r8,0x00d8(r29)
801a69fc: 8e520004 lw r18,0x0004(r18)
801a6a00: 0268102a slt r2,r19,r8
801a6a04: 1440ffb2 bne r2,r0,0x801a68d0
801a6a08: 00000000 nop
                                                    #   }
801a6a0c: 8ee20008 lw r2,0x0008(r23)
801a6a10: 00000000 nop
801a6a14: 00022f02 srl r5,r2,0x1c
801a6a18: 24a5ffff addiu r5,r5,-0x0001
801a6a1c: 2402ffff addiu r2,r0,-0x0001
801a6a20: 10a20014 beq r5,r2,0x801a6a74
801a6a24: 00051080 sll r2,r5,0x02
801a6a28: 00451021 addu r2,r2,r5
801a6a2c: 00021140 sll r2,r2,0x05
801a6a30: 86e4005c lh r4,0x005c(r23)
801a6a34: 3c03801c lui r3,0x801c
801a6a38: 8c63bf7c lw r3,-0x4084(r3)
801a6a3c: 8fa800d0 lw r8,0x00d0(r29)
801a6a40: 00431021 addu r2,r2,r3
801a6a44: 00481021 addu r2,r2,r8
801a6a48: 90500004 lbu r16,0x0004(r2)
801a6a4c: 86e50060 lh r5,0x0060(r23)
801a6a50: 0c06a2f8 jal 0x801a8be0      # 001a8be0_-_001a8bf4
801a6a54: 02003021 addu r6,r16,r0
801a6a58: 0040a821 addu r21,r2,r0
801a6a5c: 86e4005e lh r4,0x005e(r23)
801a6a60: 86e50062 lh r5,0x0062(r23)
801a6a64: 0c06a2f8 jal 0x801a8be0      # 001a8be0_-_001a8bf4
801a6a68: 02003021 addu r6,r16,r0
801a6a6c: 08069a9f j 0x801a6a7c
801a6a70: 0040f021 addu r30,r2,r0
801a6a74: 96f5005c lhu r21,0x005c(r23)
801a6a78: 96fe005e lhu r30,0x005e(r23)
801a6a7c: 8ee20008 lw r2,0x0008(r23)
801a6a80: 00000000 nop
801a6a84: 00021302 srl r2,r2,0x0c
801a6a88: 3045000f andi r5,r2,0x000f
801a6a8c: 24a5ffff addiu r5,r5,-0x0001
801a6a90: 2402ffff addiu r2,r0,-0x0001
801a6a94: 10a20019 beq r5,r2,0x801a6afc
801a6a98: 00051080 sll r2,r5,0x02
801a6a9c: 00451021 addu r2,r2,r5
801a6aa0: 00021140 sll r2,r2,0x05
801a6aa4: 86e40038 lh r4,0x0038(r23)
801a6aa8: 3c03801c lui r3,0x801c
801a6aac: 8c63bf7c lw r3,-0x4084(r3)
801a6ab0: 8fa800d0 lw r8,0x00d0(r29)
801a6ab4: 00431021 addu r2,r2,r3
801a6ab8: 00481021 addu r2,r2,r8
801a6abc: 90500004 lbu r16,0x0004(r2)
801a6ac0: 86e5003e lh r5,0x003e(r23)
801a6ac4: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a6ac8: 02003021 addu r6,r16,r0
801a6acc: afa20088 sw r2,0x0088(r29)
801a6ad0: 86e4003a lh r4,0x003a(r23)
801a6ad4: 86e50040 lh r5,0x0040(r23)
801a6ad8: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a6adc: 02003021 addu r6,r16,r0
801a6ae0: afa2008c sw r2,0x008c(r29)
801a6ae4: 86e4003c lh r4,0x003c(r23)
801a6ae8: 86e50042 lh r5,0x0042(r23)
801a6aec: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a6af0: 02003021 addu r6,r16,r0
801a6af4: 08069ad7 j 0x801a6b5c
801a6af8: afa20090 sw r2,0x0090(r29)
801a6afc: 96e20038 lhu r2,0x0038(r23)
801a6b00: 00000000 nop
801a6b04: 00021400 sll r2,r2,0x10
801a6b08: 00021c03 sra r3,r2,0x10
801a6b0c: 000217c2 srl r2,r2,0x1f
801a6b10: 00621821 addu r3,r3,r2
801a6b14: 00031843 sra r3,r3,0x01
801a6b18: afa30088 sw r3,0x0088(r29)
801a6b1c: 96e2003a lhu r2,0x003a(r23)
801a6b20: 00000000 nop
801a6b24: 00021400 sll r2,r2,0x10
801a6b28: 00021c03 sra r3,r2,0x10
801a6b2c: 000217c2 srl r2,r2,0x1f
801a6b30: 00621821 addu r3,r3,r2
801a6b34: 00031843 sra r3,r3,0x01
801a6b38: afa3008c sw r3,0x008c(r29)
801a6b3c: 96e2003c lhu r2,0x003c(r23)
801a6b40: 00000000 nop
801a6b44: 00021400 sll r2,r2,0x10
801a6b48: 00021c03 sra r3,r2,0x10
801a6b4c: 000217c2 srl r2,r2,0x1f
801a6b50: 00621821 addu r3,r3,r2
801a6b54: 00031843 sra r3,r3,0x01
801a6b58: afa30090 sw r3,0x0090(r29)
801a6b5c: 8ee20008 lw r2,0x0008(r23)
801a6b60: 00000000 nop
801a6b64: 00021202 srl r2,r2,0x08
801a6b68: 3045000f andi r5,r2,0x000f
801a6b6c: 24a5ffff addiu r5,r5,-0x0001
801a6b70: 2402ffff addiu r2,r0,-0x0001
801a6b74: 10a2000b beq r5,r2,0x801a6ba4
801a6b78: 00051080 sll r2,r5,0x02
801a6b7c: 00451021 addu r2,r2,r5
801a6b80: 00021140 sll r2,r2,0x05
801a6b84: 3c03801c lui r3,0x801c
801a6b88: 8c63bf7c lw r3,-0x4084(r3)
801a6b8c: 8fa800d0 lw r8,0x00d0(r29)
801a6b90: 00431021 addu r2,r2,r3
801a6b94: 00481021 addu r2,r2,r8
801a6b98: 90500004 lbu r16,0x0004(r2)
801a6b9c: 08069aeb j 0x801a6bac
801a6ba0: 02e02021 addu r4,r23,r0
801a6ba4: 00008021 addu r16,r0,r0
801a6ba8: 02e02021 addu r4,r23,r0
801a6bac: 02002821 addu r5,r16,r0
801a6bb0: 0c06a341 jal 0x801a8d04            # Modify_Data_2
801a6bb4: 27a60078 addiu r6,r29,0x0078
801a6bb8: 34020010 ori r2,r0,0x0010
801a6bbc: 97a800f0 lhu r8,0x00f0(r29)
801a6bc0: 8fb200e0 lw r18,0x00e0(r29)
801a6bc4: 31030410 andi r3,r8,0x0410
801a6bc8: 10620141 beq r3,r2,0x801a70d0
801a6bcc: 28620011 slti r2,r3,0x0011
801a6bd0: 10400005 beq r2,r0,0x801a6be8
801a6bd4: 00000000 nop
801a6bd8: 1060000a beq r3,r0,0x801a6c04
801a6bdc: 00000000 nop
801a6be0: 08069c8b j 0x801a722c
801a6be4: 00000000 nop
801a6be8: 34020400 ori r2,r0,0x0400
801a6bec: 1062018f beq r3,r2,0x801a722c
801a6bf0: 34020410 ori r2,r0,0x0410
801a6bf4: 10620094 beq r3,r2,0x801a6e48
801a6bf8: 00000000 nop
801a6bfc: 08069c8b j 0x801a722c
801a6c00: 00000000 nop
801a6c04: 8fa800d8 lw r8,0x00d8(r29)
801a6c08: 00000000 nop
801a6c0c: 19000187 blez r8,0x801a722c
801a6c10: 00009821 addu r19,r0,r0
801a6c14: 00151400 sll r2,r21,0x10
801a6c18: 0002a403 sra r20,r2,0x10
801a6c1c: 001e1400 sll r2,r30,0x10
801a6c20: 00028c03 sra r17,r2,0x10
801a6c24: 0234b023 subu r22,r17,r20

801a6c28: 8fa30088 lw r3,0x0088(r29)
801a6c2c: 8fb00078 lw r16,0x0078(r29)
801a6c30: 00031023 subu r2,r0,r3
801a6c34: 10620016 beq r3,r2,0x801a6c90
801a6c38: 0043102a slt r2,r2,r3
801a6c3c: 1040000a beq r2,r0,0x801a6c68
801a6c40: 00000000 nop
801a6c44: 0c0088c3 jal 0x8002230c                 # Rand
801a6c48: 00000000 nop
801a6c4c: 8fa40088 lw r4,0x0088(r29)
801a6c50: 00000000 nop
801a6c54: 00041840 sll r3,r4,0x01
801a6c58: 0043001a div r2,r3
801a6c5c: 00001810 mfhi r3
801a6c60: 08069b24 j 0x801a6c90
801a6c64: 00641823 subu r3,r3,r4
801a6c68: 0c0088c3 jal 0x8002230c                 # Rand
801a6c6c: 00000000 nop
801a6c70: 8fa40088 lw r4,0x0088(r29)
801a6c74: 00000000 nop
801a6c78: 00041823 subu r3,r0,r4
801a6c7c: 00641823 subu r3,r3,r4
801a6c80: 0043001a div r2,r3
801a6c84: 00001810 mfhi r3
801a6c88: 00000000 nop
801a6c8c: 00641821 addu r3,r3,r4
801a6c90: 02031021 addu r2,r16,r3
801a6c94: 8fa3008c lw r3,0x008c(r29)
801a6c98: 8fb0007c lw r16,0x007c(r29)
801a6c9c: a7a20010 sh r2,0x0010(r29)
801a6ca0: 00031023 subu r2,r0,r3
801a6ca4: 10620016 beq r3,r2,0x801a6d00
801a6ca8: 0043102a slt r2,r2,r3
801a6cac: 1040000a beq r2,r0,0x801a6cd8
801a6cb0: 00000000 nop
801a6cb4: 0c0088c3 jal 0x8002230c                 # Rand
801a6cb8: 00000000 nop
801a6cbc: 8fa4008c lw r4,0x008c(r29)
801a6cc0: 00000000 nop
801a6cc4: 00041840 sll r3,r4,0x01
801a6cc8: 0043001a div r2,r3
801a6ccc: 00001810 mfhi r3
801a6cd0: 08069b40 j 0x801a6d00
801a6cd4: 00641823 subu r3,r3,r4
801a6cd8: 0c0088c3 jal 0x8002230c                 # Rand
801a6cdc: 00000000 nop
801a6ce0: 8fa4008c lw r4,0x008c(r29)
801a6ce4: 00000000 nop
801a6ce8: 00041823 subu r3,r0,r4
801a6cec: 00641823 subu r3,r3,r4
801a6cf0: 0043001a div r2,r3
801a6cf4: 00001810 mfhi r3
801a6cf8: 00000000 nop
801a6cfc: 00641821 addu r3,r3,r4
801a6d00: 02031021 addu r2,r16,r3
801a6d04: 8fa30090 lw r3,0x0090(r29)
801a6d08: 8fb00080 lw r16,0x0080(r29)
801a6d0c: a7a20012 sh r2,0x0012(r29)
801a6d10: 00031023 subu r2,r0,r3
801a6d14: 10620016 beq r3,r2,0x801a6d70
801a6d18: 0043102a slt r2,r2,r3
801a6d1c: 1040000a beq r2,r0,0x801a6d48
801a6d20: 00000000 nop
801a6d24: 0c0088c3 jal 0x8002230c                 # Rand
801a6d28: 00000000 nop
801a6d2c: 8fa40090 lw r4,0x0090(r29)
801a6d30: 00000000 nop
801a6d34: 00041840 sll r3,r4,0x01
801a6d38: 0043001a div r2,r3
801a6d3c: 00001810 mfhi r3
801a6d40: 08069b5c j 0x801a6d70
801a6d44: 00641823 subu r3,r3,r4
801a6d48: 0c0088c3 jal 0x8002230c                 # Rand
801a6d4c: 00000000 nop
801a6d50: 8fa40090 lw r4,0x0090(r29)
801a6d54: 00000000 nop
801a6d58: 00041823 subu r3,r0,r4
801a6d5c: 00641823 subu r3,r3,r4
801a6d60: 0043001a div r2,r3
801a6d64: 00001810 mfhi r3
801a6d68: 00000000 nop
801a6d6c: 00641821 addu r3,r3,r4
801a6d70: 02031021 addu r2,r16,r3
801a6d74: 27a40010 addiu r4,r29,0x0010
801a6d78: 3c10801c lui r16,0x801c
801a6d7c: 2610accc addiu r16,r16,-0x5334
801a6d80: 02002821 addu r5,r16,r0
801a6d84: 0c007596 jal 0x8001d658                 # Set_Rotation_matrix_elements
801a6d88: a7a20014 sh r2,0x0014(r29)
801a6d8c: 0c00742a jal 0x8001d0a8                 # Store_Rotation_matrix_elements_to_GTE
801a6d90: 02002021 addu r4,r16,r0
801a6d94: a7a00014 sh r0,0x0014(r29)
801a6d98: 16910003 bne r20,r17,0x801a6da8
801a6d9c: a7a00010 sh r0,0x0010(r29)
801a6da0: 08069b7b j 0x801a6dec
801a6da4: a7b50012 sh r21,0x0012(r29)
801a6da8: 0234102a slt r2,r17,r20
801a6dac: 10400008 beq r2,r0,0x801a6dd0
801a6db0: 00000000 nop
801a6db4: 0c0088c3 jal 0x8002230c                 # Rand
801a6db8: 00000000 nop
801a6dbc: 02911823 subu r3,r20,r17
801a6dc0: 0043001a div r2,r3
801a6dc4: 00001810 mfhi r3
801a6dc8: 08069b7a j 0x801a6de8
801a6dcc: 03c31821 addu r3,r30,r3
801a6dd0: 0c0088c3 jal 0x8002230c                 # Rand
801a6dd4: 00000000 nop
801a6dd8: 0056001a div r2,r22
801a6ddc: 00001810 mfhi r3
801a6de0: 00000000 nop
801a6de4: 02a31821 addu r3,r21,r3
801a6de8: a7a30012 sh r3,0x0012(r29)
801a6dec: 27a40010 addiu r4,r29,0x0010
801a6df0: 27a50018 addiu r5,r29,0x0018
801a6df4: 0c00755e jal 0x8001d578                # Get_vector*matrix_from_GTE
801a6df8: 27a60024 addiu r6,r29,0x0024
801a6dfc: 8fa20018 lw r2,0x0018(r29)
801a6e00: 00000000 nop
801a6e04: 000210c0 sll r2,r2,0x03
801a6e08: ae420018 sw r2,0x0018(r18)
801a6e0c: 8fa2001c lw r2,0x001c(r29)
801a6e10: 00000000 nop
801a6e14: 000210c0 sll r2,r2,0x03
801a6e18: ae42001c sw r2,0x001c(r18)
801a6e1c: 8fa20020 lw r2,0x0020(r29)
801a6e20: 26730001 addiu r19,r19,0x0001
801a6e24: 000210c0 sll r2,r2,0x03
801a6e28: ae420020 sw r2,0x0020(r18)
801a6e2c: 8fa800d8 lw r8,0x00d8(r29)
801a6e30: 8e520004 lw r18,0x0004(r18)
801a6e34: 0268102a slt r2,r19,r8
801a6e38: 104000fc beq r2,r0,0x801a722c
801a6e3c: 00000000 nop
801a6e40: 08069b0a j 0x801a6c28
801a6e44: 00000000 nop

801a6e48: 8fa800d8 lw r8,0x00d8(r29)
801a6e4c: 00000000 nop
801a6e50: 190000f6 blez r8,0x801a722c
801a6e54: 00009821 addu r19,r0,r0
801a6e58: 00151400 sll r2,r21,0x10
801a6e5c: 0002a403 sra r20,r2,0x10
801a6e60: 001e1400 sll r2,r30,0x10
801a6e64: 00028c03 sra r17,r2,0x10
801a6e68: 02344023 subu r8,r17,r20
801a6e6c: afa80150 sw r8,0x0150(r29)
801a6e70: 27b60018 addiu r22,r29,0x0018

801a6e74: 8fa30088 lw r3,0x0088(r29)
801a6e78: 8fb00078 lw r16,0x0078(r29)
801a6e7c: 00031023 subu r2,r0,r3
801a6e80: 10620016 beq r3,r2,0x801a6edc
801a6e84: 0043102a slt r2,r2,r3
801a6e88: 1040000a beq r2,r0,0x801a6eb4
801a6e8c: 00000000 nop
801a6e90: 0c0088c3 jal 0x8002230c                 # Rand
801a6e94: 00000000 nop
801a6e98: 8fa40088 lw r4,0x0088(r29)
801a6e9c: 00000000 nop
801a6ea0: 00041840 sll r3,r4,0x01
801a6ea4: 0043001a div r2,r3
801a6ea8: 00001810 mfhi r3
801a6eac: 08069bb7 j 0x801a6edc
801a6eb0: 00641823 subu r3,r3,r4
801a6eb4: 0c0088c3 jal 0x8002230c                 # Rand
801a6eb8: 00000000 nop
801a6ebc: 8fa40088 lw r4,0x0088(r29)
801a6ec0: 00000000 nop
801a6ec4: 00041823 subu r3,r0,r4
801a6ec8: 00641823 subu r3,r3,r4
801a6ecc: 0043001a div r2,r3
801a6ed0: 00001810 mfhi r3
801a6ed4: 00000000 nop
801a6ed8: 00641821 addu r3,r3,r4
801a6edc: 02031021 addu r2,r16,r3
801a6ee0: 8fa3008c lw r3,0x008c(r29)
801a6ee4: 8fb0007c lw r16,0x007c(r29)
801a6ee8: a7a20010 sh r2,0x0010(r29)
801a6eec: 00031023 subu r2,r0,r3
801a6ef0: 10620016 beq r3,r2,0x801a6f4c
801a6ef4: 0043102a slt r2,r2,r3
801a6ef8: 1040000a beq r2,r0,0x801a6f24
801a6efc: 00000000 nop
801a6f00: 0c0088c3 jal 0x8002230c                 # Rand
801a6f04: 00000000 nop
801a6f08: 8fa4008c lw r4,0x008c(r29)
801a6f0c: 00000000 nop
801a6f10: 00041840 sll r3,r4,0x01
801a6f14: 0043001a div r2,r3
801a6f18: 00001810 mfhi r3
801a6f1c: 08069bd3 j 0x801a6f4c
801a6f20: 00641823 subu r3,r3,r4
801a6f24: 0c0088c3 jal 0x8002230c                 # Rand
801a6f28: 00000000 nop
801a6f2c: 8fa4008c lw r4,0x008c(r29)
801a6f30: 00000000 nop
801a6f34: 00041823 subu r3,r0,r4
801a6f38: 00641823 subu r3,r3,r4
801a6f3c: 0043001a div r2,r3
801a6f40: 00001810 mfhi r3
801a6f44: 00000000 nop
801a6f48: 00641821 addu r3,r3,r4
801a6f4c: 02031021 addu r2,r16,r3
801a6f50: 8fa30090 lw r3,0x0090(r29)
801a6f54: 8fb00080 lw r16,0x0080(r29)
801a6f58: a7a20012 sh r2,0x0012(r29)
801a6f5c: 00031023 subu r2,r0,r3
801a6f60: 10620016 beq r3,r2,0x801a6fbc
801a6f64: 0043102a slt r2,r2,r3
801a6f68: 1040000a beq r2,r0,0x801a6f94
801a6f6c: 00000000 nop
801a6f70: 0c0088c3 jal 0x8002230c                 # Rand
801a6f74: 00000000 nop
801a6f78: 8fa40090 lw r4,0x0090(r29)
801a6f7c: 00000000 nop
801a6f80: 00041840 sll r3,r4,0x01
801a6f84: 0043001a div r2,r3
801a6f88: 00001810 mfhi r3
801a6f8c: 08069bef j 0x801a6fbc
801a6f90: 00641823 subu r3,r3,r4
801a6f94: 0c0088c3 jal 0x8002230c                 # Rand
801a6f98: 00000000 nop
801a6f9c: 8fa40090 lw r4,0x0090(r29)
801a6fa0: 00000000 nop
801a6fa4: 00041823 subu r3,r0,r4
801a6fa8: 00641823 subu r3,r3,r4
801a6fac: 0043001a div r2,r3
801a6fb0: 00001810 mfhi r3
801a6fb4: 00000000 nop
801a6fb8: 00641821 addu r3,r3,r4
801a6fbc: 02031021 addu r2,r16,r3
801a6fc0: 27a40010 addiu r4,r29,0x0010
801a6fc4: 3c10801c lui r16,0x801c
801a6fc8: 2610accc addiu r16,r16,-0x5334
801a6fcc: 02002821 addu r5,r16,r0
801a6fd0: 0c007596 jal 0x8001d658                 # Set_Rotation_matrix_elements
801a6fd4: a7a20014 sh r2,0x0014(r29)
801a6fd8: 0c00742a jal 0x8001d0a8                 # Store_Rotation_matrix_elements_to_GTE
801a6fdc: 02002021 addu r4,r16,r0
801a6fe0: a7a00014 sh r0,0x0014(r29)
801a6fe4: 16910003 bne r20,r17,0x801a6ff4
801a6fe8: a7a00010 sh r0,0x0010(r29)
801a6fec: 08069c10 j 0x801a7040
801a6ff0: a7b50012 sh r21,0x0012(r29)
801a6ff4: 0234102a slt r2,r17,r20
801a6ff8: 10400008 beq r2,r0,0x801a701c
801a6ffc: 00000000 nop
801a7000: 0c0088c3 jal 0x8002230c                 # Rand
801a7004: 00000000 nop
801a7008: 02911823 subu r3,r20,r17
801a700c: 0043001a div r2,r3
801a7010: 00001810 mfhi r3
801a7014: 08069c0f j 0x801a703c
801a7018: 03c31821 addu r3,r30,r3
801a701c: 0c0088c3 jal 0x8002230c                 # Rand
801a7020: 00000000 nop
801a7024: 8fa80150 lw r8,0x0150(r29)
801a7028: 00000000 nop
801a702c: 0048001a div r2,r8
801a7030: 00001810 mfhi r3
801a7034: 00000000 nop
801a7038: 02a31821 addu r3,r21,r3
801a703c: a7a30012 sh r3,0x0012(r29)
801a7040: 27a40010 addiu r4,r29,0x0010
801a7044: 02c02821 addu r5,r22,r0
801a7048: 27b00024 addiu r16,r29,0x0024
801a704c: 0c00755e jal 0x8001d578                # Get_vector*matrix_from_GTE
801a7050: 02003021 addu r6,r16,r0
801a7054: 0c00742a jal 0x8001d0a8                 # Store_Rotation_matrix_elements_to_GTE
801a7058: 27a40030 addiu r4,r29,0x0030
801a705c: 27a40010 addiu r4,r29,0x0010
801a7060: 02c02821 addu r5,r22,r0
801a7064: 97a20018 lhu r2,0x0018(r29)
801a7068: 97a3001c lhu r3,0x001c(r29)
801a706c: 97a70020 lhu r7,0x0020(r29)
801a7070: 02003021 addu r6,r16,r0
801a7074: a7a20010 sh r2,0x0010(r29)
801a7078: a7a30012 sh r3,0x0012(r29)
801a707c: 0c00755e jal 0x8001d578                # Get_vector*matrix_from_GTE
801a7080: a7a70014 sh r7,0x0014(r29)
801a7084: 8fa20018 lw r2,0x0018(r29)
801a7088: 00000000 nop
801a708c: 000210c0 sll r2,r2,0x03
801a7090: ae420018 sw r2,0x0018(r18)
801a7094: 8fa2001c lw r2,0x001c(r29)
801a7098: 00000000 nop
801a709c: 000210c0 sll r2,r2,0x03
801a70a0: ae42001c sw r2,0x001c(r18)
801a70a4: 8fa20020 lw r2,0x0020(r29)
801a70a8: 26730001 addiu r19,r19,0x0001
801a70ac: 000210c0 sll r2,r2,0x03
801a70b0: ae420020 sw r2,0x0020(r18)
801a70b4: 8fa800d8 lw r8,0x00d8(r29)
801a70b8: 8e520004 lw r18,0x0004(r18)
801a70bc: 0268102a slt r2,r19,r8
801a70c0: 1040005a beq r2,r0,0x801a722c
801a70c4: 00000000 nop
801a70c8: 08069b9d j 0x801a6e74
801a70cc: 00000000 nop

801a70d0: 8fa800d8 lw r8,0x00d8(r29)
801a70d4: 00000000 nop
801a70d8: 19000054 blez r8,0x801a722c
801a70dc: 00009821 addu r19,r0,r0
801a70e0: 00151400 sll r2,r21,0x10
801a70e4: 0002a403 sra r20,r2,0x10
801a70e8: 001e1400 sll r2,r30,0x10
801a70ec: 00028c03 sra r17,r2,0x10
801a70f0: 0234b023 subu r22,r17,r20

801a70f4: 8e42000c lw r2,0x000c(r18)
801a70f8: 8fa30058 lw r3,0x0058(r29)
801a70fc: 00021303 sra r2,r2,0x0c
801a7100: 00621823 subu r3,r3,r2
801a7104: afa30018 sw r3,0x0018(r29)
801a7108: 8e420010 lw r2,0x0010(r18)
801a710c: 8fa3005c lw r3,0x005c(r29)
801a7110: 00021303 sra r2,r2,0x0c
801a7114: 00621823 subu r3,r3,r2
801a7118: afa3001c sw r3,0x001c(r29)
801a711c: 8e420014 lw r2,0x0014(r18)
801a7120: 8fa30060 lw r3,0x0060(r29)
801a7124: 00021303 sra r2,r2,0x0c
801a7128: 00621823 subu r3,r3,r2
801a712c: 16910003 bne r20,r17,0x801a713c
801a7130: afa30020 sw r3,0x0020(r29)
801a7134: 08069c5f j 0x801a717c
801a7138: 02a08021 addu r16,r21,r0
801a713c: 0234102a slt r2,r17,r20
801a7140: 10400008 beq r2,r0,0x801a7164
801a7144: 00000000 nop
801a7148: 0c0088c3 jal 0x8002230c                 # Rand
801a714c: 00000000 nop
801a7150: 02911823 subu r3,r20,r17
801a7154: 0043001a div r2,r3
801a7158: 00001810 mfhi r3
801a715c: 08069c5f j 0x801a717c
801a7160: 03c38021 addu r16,r30,r3
801a7164: 0c0088c3 jal 0x8002230c                 # Rand
801a7168: 00000000 nop
801a716c: 0056001a div r2,r22
801a7170: 00001810 mfhi r3
801a7174: 00000000 nop
801a7178: 02a38021 addu r16,r21,r3
801a717c: 8fa20018 lw r2,0x0018(r29)
801a7180: 00000000 nop
801a7184: 14400009 bne r2,r0,0x801a71ac
801a7188: 27a40018 addiu r4,r29,0x0018
801a718c: 8fa2001c lw r2,0x001c(r29)
801a7190: 00000000 nop
801a7194: 14400005 bne r2,r0,0x801a71ac
801a7198: 00000000 nop
801a719c: 8fa20020 lw r2,0x0020(r29)
801a71a0: 00000000 nop
801a71a4: 10400017 beq r2,r0,0x801a7204
801a71a8: 00101400 sll r2,r16,0x10
801a71ac: 0c00701a jal 0x8001c068             # within 0001c054_-_0001c090 // related to vector normals?
801a71b0: 00802821 addu r5,r4,r0
801a71b4: 00101c00 sll r3,r16,0x10
801a71b8: 8fa20018 lw r2,0x0018(r29)
801a71bc: 00031c03 sra r3,r3,0x10
801a71c0: 00620018 mult r3,r2
801a71c4: 00001012 mflo r2
801a71c8: 00021243 sra r2,r2,0x09
801a71cc: ae420018 sw r2,0x0018(r18)
801a71d0: 8fa2001c lw r2,0x001c(r29)
801a71d4: 00000000 nop
801a71d8: 00620018 mult r3,r2
801a71dc: 00001012 mflo r2
801a71e0: 00021243 sra r2,r2,0x09
801a71e4: ae42001c sw r2,0x001c(r18)
801a71e8: 8fa20020 lw r2,0x0020(r29)
801a71ec: 00000000 nop
801a71f0: 00620018 mult r3,r2
801a71f4: 00001012 mflo r2
801a71f8: 00021243 sra r2,r2,0x09
801a71fc: 08069c85 j 0x801a7214
801a7200: ae420020 sw r2,0x0020(r18)
801a7204: 00021343 sra r2,r2,0x0d
801a7208: ae42001c sw r2,0x001c(r18)
801a720c: ae400020 sw r0,0x0020(r18)
801a7210: ae400018 sw r0,0x0018(r18)
801a7214: 26730001 addiu r19,r19,0x0001
801a7218: 8fa800d8 lw r8,0x00d8(r29)
801a721c: 8e520004 lw r18,0x0004(r18)
801a7220: 0268102a slt r2,r19,r8
801a7224: 1440ffb3 bne r2,r0,0x801a70f4
801a7228: 00000000 nop

801a722c: 8ee2000c lw r2,0x000c(r23)
801a7230: 00000000 nop
801a7234: 3045000f andi r5,r2,0x000f
801a7238: 24a5ffff addiu r5,r5,-0x0001
801a723c: 2402ffff addiu r2,r0,-0x0001
801a7240: 10a2000b beq r5,r2,0x801a7270
801a7244: 00051080 sll r2,r5,0x02
801a7248: 00451021 addu r2,r2,r5
801a724c: 00021140 sll r2,r2,0x05
801a7250: 3c03801c lui r3,0x801c
801a7254: 8c63bf7c lw r3,-0x4084(r3)
801a7258: 8fa800d0 lw r8,0x00d0(r29)
801a725c: 00431021 addu r2,r2,r3
801a7260: 00481021 addu r2,r2,r8
801a7264: 90500004 lbu r16,0x0004(r2)
801a7268: 08069c9d j 0x801a7274
801a726c: 00000000 nop
801a7270: 00008021 addu r16,r0,r0
801a7274: 86e40064 lh r4,0x0064(r23)
801a7278: 86e50070 lh r5,0x0070(r23)
801a727c: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a7280: 02003021 addu r6,r16,r0
801a7284: a7a20098 sh r2,0x0098(r29)
801a7288: 86e40066 lh r4,0x0066(r23)
801a728c: 86e50072 lh r5,0x0072(r23)
801a7290: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a7294: 02003021 addu r6,r16,r0
801a7298: a7a200a0 sh r2,0x00a0(r29)
801a729c: 86e40068 lh r4,0x0068(r23)
801a72a0: 86e50074 lh r5,0x0074(r23)
801a72a4: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a72a8: 02003021 addu r6,r16,r0
801a72ac: a7a2009a sh r2,0x009a(r29)
801a72b0: 86e4006a lh r4,0x006a(r23)
801a72b4: 86e50076 lh r5,0x0076(r23)
801a72b8: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a72bc: 02003021 addu r6,r16,r0
801a72c0: a7a200a2 sh r2,0x00a2(r29)
801a72c4: 86e4006c lh r4,0x006c(r23)
801a72c8: 86e50078 lh r5,0x0078(r23)
801a72cc: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a72d0: 02003021 addu r6,r16,r0
801a72d4: a7a2009c sh r2,0x009c(r29)
801a72d8: 86e4006e lh r4,0x006e(r23)
801a72dc: 86e5007a lh r5,0x007a(r23)
801a72e0: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a72e4: 02003021 addu r6,r16,r0
801a72e8: 8fa800f8 lw r8,0x00f8(r29)
801a72ec: 00000000 nop
801a72f0: 11000019 beq r8,r0,0x801a7358
801a72f4: a7a200a4 sh r2,0x00a4(r29)
801a72f8: 0c00742a jal 0x8001d0a8                 # Store_Rotation_matrix_elements_to_GTE
801a72fc: 27a40030 addiu r4,r29,0x0030
801a7300: 27a40098 addiu r4,r29,0x0098
801a7304: 27b00018 addiu r16,r29,0x0018
801a7308: 02002821 addu r5,r16,r0
801a730c: 27b10024 addiu r17,r29,0x0024
801a7310: 0c00755e jal 0x8001d578                # Get_vector*matrix_from_GTE
801a7314: 02203021 addu r6,r17,r0
801a7318: 27a400a0 addiu r4,r29,0x00a0
801a731c: 02002821 addu r5,r16,r0
801a7320: 97a20018 lhu r2,0x0018(r29)
801a7324: 97a3001c lhu r3,0x001c(r29)
801a7328: 97a70020 lhu r7,0x0020(r29)
801a732c: 02203021 addu r6,r17,r0
801a7330: a7a20098 sh r2,0x0098(r29)
801a7334: a7a3009a sh r3,0x009a(r29)
801a7338: 0c00755e jal 0x8001d578                # Get_vector*matrix_from_GTE
801a733c: a7a7009c sh r7,0x009c(r29)
801a7340: 97a20018 lhu r2,0x0018(r29)
801a7344: 97a3001c lhu r3,0x001c(r29)
801a7348: 97a40020 lhu r4,0x0020(r29)
801a734c: a7a200a0 sh r2,0x00a0(r29)
801a7350: a7a300a2 sh r3,0x00a2(r29)
801a7354: a7a400a4 sh r4,0x00a4(r29)
801a7358: 8ee2000c lw r2,0x000c(r23)
801a735c: 00000000 nop
801a7360: 00021102 srl r2,r2,0x04
801a7364: 3045000f andi r5,r2,0x000f
801a7368: 24a5ffff addiu r5,r5,-0x0001
801a736c: 2402ffff addiu r2,r0,-0x0001
801a7370: 10a2000b beq r5,r2,0x801a73a0
801a7374: 00051080 sll r2,r5,0x02
801a7378: 00451021 addu r2,r2,r5
801a737c: 00021140 sll r2,r2,0x05
801a7380: 3c03801c lui r3,0x801c
801a7384: 8c63bf7c lw r3,-0x4084(r3)
801a7388: 8fa800d0 lw r8,0x00d0(r29)
801a738c: 00431021 addu r2,r2,r3
801a7390: 00481021 addu r2,r2,r8
801a7394: 90500004 lbu r16,0x0004(r2)
801a7398: 08069ce9 j 0x801a73a4
801a739c: 00000000 nop
801a73a0: 00008021 addu r16,r0,r0
801a73a4: 86e4007c lh r4,0x007c(r23)
801a73a8: 86e50088 lh r5,0x0088(r23)
801a73ac: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a73b0: 02003021 addu r6,r16,r0
801a73b4: a7a200a8 sh r2,0x00a8(r29)
801a73b8: 86e4007e lh r4,0x007e(r23)
801a73bc: 86e5008a lh r5,0x008a(r23)
801a73c0: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a73c4: 02003021 addu r6,r16,r0
801a73c8: a7a200b0 sh r2,0x00b0(r29)
801a73cc: 86e40080 lh r4,0x0080(r23)
801a73d0: 86e5008c lh r5,0x008c(r23)
801a73d4: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a73d8: 02003021 addu r6,r16,r0
801a73dc: a7a200aa sh r2,0x00aa(r29)
801a73e0: 86e40082 lh r4,0x0082(r23)
801a73e4: 86e5008e lh r5,0x008e(r23)
801a73e8: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a73ec: 02003021 addu r6,r16,r0
801a73f0: a7a200b2 sh r2,0x00b2(r29)
801a73f4: 86e40084 lh r4,0x0084(r23)
801a73f8: 86e50090 lh r5,0x0090(r23)
801a73fc: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a7400: 02003021 addu r6,r16,r0
801a7404: a7a200ac sh r2,0x00ac(r29)
801a7408: 86e40086 lh r4,0x0086(r23)
801a740c: 86e50092 lh r5,0x0092(r23)
801a7410: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a7414: 02003021 addu r6,r16,r0
801a7418: 8fa800f8 lw r8,0x00f8(r29)
801a741c: 00000000 nop
801a7420: 11000017 beq r8,r0,0x801a7480
801a7424: a7a200b4 sh r2,0x00b4(r29)
801a7428: 27a400a8 addiu r4,r29,0x00a8
801a742c: 27b00018 addiu r16,r29,0x0018
801a7430: 02002821 addu r5,r16,r0
801a7434: 27b10024 addiu r17,r29,0x0024
801a7438: 0c00755e jal 0x8001d578                # Get_vector*matrix_from_GTE
801a743c: 02203021 addu r6,r17,r0
801a7440: 27a400b0 addiu r4,r29,0x00b0
801a7444: 02002821 addu r5,r16,r0
801a7448: 97a20018 lhu r2,0x0018(r29)
801a744c: 97a3001c lhu r3,0x001c(r29)
801a7450: 97a70020 lhu r7,0x0020(r29)
801a7454: 02203021 addu r6,r17,r0
801a7458: a7a200a8 sh r2,0x00a8(r29)
801a745c: a7a300aa sh r3,0x00aa(r29)
801a7460: 0c00755e jal 0x8001d578                # Get_vector*matrix_from_GTE
801a7464: a7a700ac sh r7,0x00ac(r29)
801a7468: 97a20018 lhu r2,0x0018(r29)
801a746c: 97a3001c lhu r3,0x001c(r29)
801a7470: 97a40020 lhu r4,0x0020(r29)
801a7474: a7a200b0 sh r2,0x00b0(r29)
801a7478: a7a300b2 sh r3,0x00b2(r29)
801a747c: a7a400b4 sh r4,0x00b4(r29)
801a7480: 8fa800d8 lw r8,0x00d8(r29)
801a7484: 8fb200e0 lw r18,0x00e0(r29)
801a7488: 19000097 blez r8,0x801a76e8
801a748c: 00009821 addu r19,r0,r0

801a7490: 87a30098 lh r3,0x0098(r29)
801a7494: 87a200a0 lh r2,0x00a0(r29)
801a7498: 00000000 nop
801a749c: 10620013 beq r3,r2,0x801a74ec
801a74a0: 0043102a slt r2,r2,r3
801a74a4: 10400007 beq r2,r0,0x801a74c4
801a74a8: 00000000 nop
801a74ac: 0c0088c3 jal 0x8002230c                 # Rand
801a74b0: 00000000 nop
801a74b4: 87a30098 lh r3,0x0098(r29)
801a74b8: 87a400a0 lh r4,0x00a0(r29)
801a74bc: 08069d37 j 0x801a74dc
801a74c0: 00641823 subu r3,r3,r4
801a74c4: 0c0088c3 jal 0x8002230c                 # Rand
801a74c8: 00000000 nop
801a74cc: 87a300a0 lh r3,0x00a0(r29)
801a74d0: 87a40098 lh r4,0x0098(r29)
801a74d4: 00000000 nop
801a74d8: 00641823 subu r3,r3,r4
801a74dc: 0043001a div r2,r3
801a74e0: 00001810 mfhi r3
801a74e4: 00000000 nop
801a74e8: 00641821 addu r3,r3,r4
801a74ec: ae430024 sw r3,0x0024(r18)
801a74f0: 87a3009a lh r3,0x009a(r29)
801a74f4: 87a200a2 lh r2,0x00a2(r29)
801a74f8: 00000000 nop
801a74fc: 10620013 beq r3,r2,0x801a754c
801a7500: 0043102a slt r2,r2,r3
801a7504: 10400007 beq r2,r0,0x801a7524
801a7508: 00000000 nop
801a750c: 0c0088c3 jal 0x8002230c                 # Rand
801a7510: 00000000 nop
801a7514: 87a3009a lh r3,0x009a(r29)
801a7518: 87a400a2 lh r4,0x00a2(r29)
801a751c: 08069d4f j 0x801a753c
801a7520: 00641823 subu r3,r3,r4
801a7524: 0c0088c3 jal 0x8002230c                 # Rand
801a7528: 00000000 nop
801a752c: 87a300a2 lh r3,0x00a2(r29)
801a7530: 87a4009a lh r4,0x009a(r29)
801a7534: 00000000 nop
801a7538: 00641823 subu r3,r3,r4
801a753c: 0043001a div r2,r3
801a7540: 00001810 mfhi r3
801a7544: 00000000 nop
801a7548: 00641821 addu r3,r3,r4
801a754c: ae430028 sw r3,0x0028(r18)
801a7550: 87a3009c lh r3,0x009c(r29)
801a7554: 87a200a4 lh r2,0x00a4(r29)
801a7558: 00000000 nop
801a755c: 10620013 beq r3,r2,0x801a75ac
801a7560: 0043102a slt r2,r2,r3
801a7564: 10400007 beq r2,r0,0x801a7584
801a7568: 00000000 nop
801a756c: 0c0088c3 jal 0x8002230c                 # Rand
801a7570: 00000000 nop
801a7574: 87a3009c lh r3,0x009c(r29)
801a7578: 87a400a4 lh r4,0x00a4(r29)
801a757c: 08069d67 j 0x801a759c
801a7580: 00641823 subu r3,r3,r4
801a7584: 0c0088c3 jal 0x8002230c                 # Rand
801a7588: 00000000 nop
801a758c: 87a300a4 lh r3,0x00a4(r29)
801a7590: 87a4009c lh r4,0x009c(r29)
801a7594: 00000000 nop
801a7598: 00641823 subu r3,r3,r4
801a759c: 0043001a div r2,r3
801a75a0: 00001810 mfhi r3
801a75a4: 00000000 nop
801a75a8: 00641821 addu r3,r3,r4
801a75ac: ae43002c sw r3,0x002c(r18)
801a75b0: 87a300a8 lh r3,0x00a8(r29)
801a75b4: 87a200b0 lh r2,0x00b0(r29)
801a75b8: 00000000 nop
801a75bc: 10620013 beq r3,r2,0x801a760c
801a75c0: 0043102a slt r2,r2,r3
801a75c4: 10400007 beq r2,r0,0x801a75e4
801a75c8: 00000000 nop
801a75cc: 0c0088c3 jal 0x8002230c                 # Rand
801a75d0: 00000000 nop
801a75d4: 87a300a8 lh r3,0x00a8(r29)
801a75d8: 87a400b0 lh r4,0x00b0(r29)
801a75dc: 08069d7f j 0x801a75fc
801a75e0: 00641823 subu r3,r3,r4
801a75e4: 0c0088c3 jal 0x8002230c                 # Rand
801a75e8: 00000000 nop
801a75ec: 87a300b0 lh r3,0x00b0(r29)
801a75f0: 87a400a8 lh r4,0x00a8(r29)
801a75f4: 00000000 nop
801a75f8: 00641823 subu r3,r3,r4
801a75fc: 0043001a div r2,r3
801a7600: 00001810 mfhi r3
801a7604: 00000000 nop
801a7608: 00641821 addu r3,r3,r4
801a760c: ae430030 sw r3,0x0030(r18)
801a7610: 87a300aa lh r3,0x00aa(r29)
801a7614: 87a200b2 lh r2,0x00b2(r29)
801a7618: 00000000 nop
801a761c: 10620013 beq r3,r2,0x801a766c
801a7620: 0043102a slt r2,r2,r3
801a7624: 10400007 beq r2,r0,0x801a7644
801a7628: 00000000 nop
801a762c: 0c0088c3 jal 0x8002230c                 # Rand
801a7630: 00000000 nop
801a7634: 87a300aa lh r3,0x00aa(r29)
801a7638: 87a400b2 lh r4,0x00b2(r29)
801a763c: 08069d97 j 0x801a765c
801a7640: 00641823 subu r3,r3,r4
801a7644: 0c0088c3 jal 0x8002230c                 # Rand
801a7648: 00000000 nop
801a764c: 87a300b2 lh r3,0x00b2(r29)
801a7650: 87a400aa lh r4,0x00aa(r29)
801a7654: 00000000 nop
801a7658: 00641823 subu r3,r3,r4
801a765c: 0043001a div r2,r3
801a7660: 00001810 mfhi r3
801a7664: 00000000 nop
801a7668: 00641821 addu r3,r3,r4
801a766c: ae430034 sw r3,0x0034(r18)
801a7670: 87a300ac lh r3,0x00ac(r29)
801a7674: 87a200b4 lh r2,0x00b4(r29)
801a7678: 00000000 nop
801a767c: 10620013 beq r3,r2,0x801a76cc
801a7680: 0043102a slt r2,r2,r3
801a7684: 10400007 beq r2,r0,0x801a76a4
801a7688: 00000000 nop
801a768c: 0c0088c3 jal 0x8002230c                 # Rand
801a7690: 00000000 nop
801a7694: 87a300ac lh r3,0x00ac(r29)
801a7698: 87a400b4 lh r4,0x00b4(r29)
801a769c: 08069daf j 0x801a76bc
801a76a0: 00641823 subu r3,r3,r4
801a76a4: 0c0088c3 jal 0x8002230c                 # Rand
801a76a8: 00000000 nop
801a76ac: 87a300b4 lh r3,0x00b4(r29)
801a76b0: 87a400ac lh r4,0x00ac(r29)
801a76b4: 00000000 nop
801a76b8: 00641823 subu r3,r3,r4
801a76bc: 0043001a div r2,r3
801a76c0: 00001810 mfhi r3
801a76c4: 00000000 nop
801a76c8: 00641821 addu r3,r3,r4
801a76cc: 26730001 addiu r19,r19,0x0001
801a76d0: ae430038 sw r3,0x0038(r18)
801a76d4: 8fa800d8 lw r8,0x00d8(r29)
801a76d8: 8e520004 lw r18,0x0004(r18)
801a76dc: 0268102a slt r2,r19,r8
801a76e0: 1440ff6b bne r2,r0,0x801a7490
801a76e4: 00000000 nop

801a76e8: 96e2000a lhu r2,0x000a(r23)
801a76ec: 00000000 nop
801a76f0: 3045000f andi r5,r2,0x000f
801a76f4: 24a5ffff addiu r5,r5,-0x0001
801a76f8: 2402ffff addiu r2,r0,-0x0001
801a76fc: 10a2000b beq r5,r2,0x801a772c
801a7700: 00051080 sll r2,r5,0x02
801a7704: 00451021 addu r2,r2,r5
801a7708: 00021140 sll r2,r2,0x05
801a770c: 3c03801c lui r3,0x801c
801a7710: 8c63bf7c lw r3,-0x4084(r3)
801a7714: 8fa800d0 lw r8,0x00d0(r29)
801a7718: 00431021 addu r2,r2,r3
801a771c: 00481021 addu r2,r2,r8
801a7720: 90500004 lbu r16,0x0004(r2)
801a7724: 08069dcc j 0x801a7730
801a7728: 00000000 nop
801a772c: 00008021 addu r16,r0,r0
801a7730: 86e40044 lh r4,0x0044(r23)
801a7734: 86e50048 lh r5,0x0048(r23)
801a7738: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a773c: 02003021 addu r6,r16,r0
801a7740: 86e40046 lh r4,0x0046(r23)
801a7744: 86e5004a lh r5,0x004a(r23)
801a7748: 02003021 addu r6,r16,r0
801a774c: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a7750: a7a20100 sh r2,0x0100(r29)
801a7754: 8ee30008 lw r3,0x0008(r23)
801a7758: a7a20108 sh r2,0x0108(r29)
801a775c: 2402ffff addiu r2,r0,-0x0001
801a7760: 00031d02 srl r3,r3,0x14
801a7764: 3065000f andi r5,r3,0x000f
801a7768: 24a5ffff addiu r5,r5,-0x0001
801a776c: 10a2000b beq r5,r2,0x801a779c
801a7770: 00051080 sll r2,r5,0x02
801a7774: 00451021 addu r2,r2,r5
801a7778: 00021140 sll r2,r2,0x05
801a777c: 3c03801c lui r3,0x801c
801a7780: 8c63bf7c lw r3,-0x4084(r3)
801a7784: 8fa800d0 lw r8,0x00d0(r29)
801a7788: 00431021 addu r2,r2,r3
801a778c: 00481021 addu r2,r2,r8
801a7790: 90500004 lbu r16,0x0004(r2)
801a7794: 08069de8 j 0x801a77a0
801a7798: 00000000 nop
801a779c: 00008021 addu r16,r0,r0
801a77a0: 86e4004c lh r4,0x004c(r23)
801a77a4: 86e50050 lh r5,0x0050(r23)
801a77a8: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a77ac: 02003021 addu r6,r16,r0
801a77b0: 86e4004e lh r4,0x004e(r23)
801a77b4: 86e50052 lh r5,0x0052(r23)
801a77b8: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a77bc: 02003021 addu r6,r16,r0
801a77c0: 92e2000b lbu r2,0x000b(r23)
801a77c4: 00000000 nop
801a77c8: 3045000f andi r5,r2,0x000f
801a77cc: 24a5ffff addiu r5,r5,-0x0001
801a77d0: 2402ffff addiu r2,r0,-0x0001
801a77d4: 10a2000b beq r5,r2,0x801a7804
801a77d8: 00051080 sll r2,r5,0x02
801a77dc: 00451021 addu r2,r2,r5
801a77e0: 00021140 sll r2,r2,0x05
801a77e4: 3c03801c lui r3,0x801c
801a77e8: 8c63bf7c lw r3,-0x4084(r3)
801a77ec: 8fa800d0 lw r8,0x00d0(r29)
801a77f0: 00431021 addu r2,r2,r3
801a77f4: 00481021 addu r2,r2,r8
801a77f8: 90500004 lbu r16,0x0004(r2)
801a77fc: 08069e02 j 0x801a7808
801a7800: 00000000 nop
801a7804: 00008021 addu r16,r0,r0
801a7808: 86e40054 lh r4,0x0054(r23)
801a780c: 86e50058 lh r5,0x0058(r23)
801a7810: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a7814: 02003021 addu r6,r16,r0
801a7818: 86e40056 lh r4,0x0056(r23)
801a781c: 86e5005a lh r5,0x005a(r23)
801a7820: 02003021 addu r6,r16,r0
801a7824: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a7828: a7a20110 sh r2,0x0110(r29)
801a782c: 8ee3000c lw r3,0x000c(r23)
801a7830: a7a20118 sh r2,0x0118(r29)
801a7834: 2402ffff addiu r2,r0,-0x0001
801a7838: 00031a02 srl r3,r3,0x08
801a783c: 3065000f andi r5,r3,0x000f
801a7840: 24a5ffff addiu r5,r5,-0x0001
801a7844: 10a2000b beq r5,r2,0x801a7874
801a7848: 00051080 sll r2,r5,0x02
801a784c: 00451021 addu r2,r2,r5
801a7850: 00021140 sll r2,r2,0x05
801a7854: 3c03801c lui r3,0x801c
801a7858: 8c63bf7c lw r3,-0x4084(r3)
801a785c: 8fa800d0 lw r8,0x00d0(r29)
801a7860: 00431021 addu r2,r2,r3
801a7864: 00481021 addu r2,r2,r8
801a7868: 90500004 lbu r16,0x0004(r2)
801a786c: 08069e1e j 0x801a7878
801a7870: 00000000 nop
801a7874: 00008021 addu r16,r0,r0
801a7878: 86e40094 lh r4,0x0094(r23)
801a787c: 86e50098 lh r5,0x0098(r23)
801a7880: 8fb200e0 lw r18,0x00e0(r29)
801a7884: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a7888: 02003021 addu r6,r16,r0
801a788c: 86e40096 lh r4,0x0096(r23)
801a7890: 86e5009a lh r5,0x009a(r23)
801a7894: 02003021 addu r6,r16,r0
801a7898: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a789c: a7a20120 sh r2,0x0120(r29)
801a78a0: 8fa800d8 lw r8,0x00d8(r29)
801a78a4: 00009821 addu r19,r0,r0
801a78a8: 1900006a blez r8,0x801a7a54
801a78ac: a7a20128 sh r2,0x0128(r29)
801a78b0: 97a80100 lhu r8,0x0100(r29)
801a78b4: 00000000 nop
801a78b8: 00081400 sll r2,r8,0x10
801a78bc: 97a80108 lhu r8,0x0108(r29)
801a78c0: 0002f403 sra r30,r2,0x10
801a78c4: 00081400 sll r2,r8,0x10
801a78c8: 0002b403 sra r22,r2,0x10
801a78cc: 02de4023 subu r8,r22,r30
801a78d0: afa80158 sw r8,0x0158(r29)
801a78d4: 97a80110 lhu r8,0x0110(r29)
801a78d8: 00000000 nop
801a78dc: 00081400 sll r2,r8,0x10
801a78e0: 97a80118 lhu r8,0x0118(r29)
801a78e4: 0002ac03 sra r21,r2,0x10
801a78e8: 00081400 sll r2,r8,0x10
801a78ec: 0002a403 sra r20,r2,0x10
801a78f0: 02954023 subu r8,r20,r21
801a78f4: afa80160 sw r8,0x0160(r29)

801a78f8: 17d60004 bne r30,r22,0x801a790c
801a78fc: 02de102a slt r2,r22,r30
801a7900: 97a80100 lhu r8,0x0100(r29)
801a7904: 08069e57 j 0x801a795c
801a7908: a6480008 sh r8,0x0008(r18)
801a790c: 10400009 beq r2,r0,0x801a7934
801a7910: 00000000 nop
801a7914: 0c0088c3 jal 0x8002230c                 # Rand
801a7918: 00000000 nop
801a791c: 03d61823 subu r3,r30,r22
801a7920: 0043001a div r2,r3
801a7924: 00001810 mfhi r3
801a7928: 97a80108 lhu r8,0x0108(r29)
801a792c: 08069e56 j 0x801a7958
801a7930: 01031821 addu r3,r8,r3
801a7934: 0c0088c3 jal 0x8002230c                 # Rand
801a7938: 00000000 nop
801a793c: 8fa80158 lw r8,0x0158(r29)
801a7940: 00000000 nop
801a7944: 0048001a div r2,r8
801a7948: 00001810 mfhi r3
801a794c: 97a80100 lhu r8,0x0100(r29)
801a7950: 00000000 nop
801a7954: 01031821 addu r3,r8,r3
801a7958: a6430008 sh r3,0x0008(r18)
801a795c: 16b40004 bne r21,r20,0x801a7970
801a7960: 0295102a slt r2,r20,r21
801a7964: 97a80110 lhu r8,0x0110(r29)
801a7968: 08069e70 j 0x801a79c0
801a796c: a648000a sh r8,0x000a(r18)
801a7970: 10400009 beq r2,r0,0x801a7998
801a7974: 00000000 nop
801a7978: 0c0088c3 jal 0x8002230c                 # Rand
801a797c: 00000000 nop
801a7980: 02b41823 subu r3,r21,r20
801a7984: 0043001a div r2,r3
801a7988: 00001810 mfhi r3
801a798c: 97a80118 lhu r8,0x0118(r29)
801a7990: 08069e6f j 0x801a79bc
801a7994: 01031821 addu r3,r8,r3
801a7998: 0c0088c3 jal 0x8002230c                 # Rand
801a799c: 00000000 nop
801a79a0: 8fa80160 lw r8,0x0160(r29)
801a79a4: 00000000 nop
801a79a8: 0048001a div r2,r8
801a79ac: 00001810 mfhi r3
801a79b0: 97a80110 lhu r8,0x0110(r29)
801a79b4: 00000000 nop
801a79b8: 01031821 addu r3,r8,r3
801a79bc: a643000a sh r3,0x000a(r18)
801a79c0: 97a80120 lhu r8,0x0120(r29)
801a79c4: 00000000 nop
801a79c8: 00081400 sll r2,r8,0x10
801a79cc: 97a80128 lhu r8,0x0128(r29)
801a79d0: 00028c03 sra r17,r2,0x10
801a79d4: 00081400 sll r2,r8,0x10
801a79d8: 00028403 sra r16,r2,0x10
801a79dc: 16300004 bne r17,r16,0x801a79f0
801a79e0: 0211102a slt r2,r16,r17
801a79e4: 97a80120 lhu r8,0x0120(r29)
801a79e8: 08069e8f j 0x801a7a3c
801a79ec: a6480042 sh r8,0x0042(r18)
801a79f0: 10400009 beq r2,r0,0x801a7a18
801a79f4: 00000000 nop
801a79f8: 0c0088c3 jal 0x8002230c                 # Rand
801a79fc: 00000000 nop
801a7a00: 02301823 subu r3,r17,r16
801a7a04: 0043001a div r2,r3
801a7a08: 00001810 mfhi r3
801a7a0c: 97a80128 lhu r8,0x0128(r29)
801a7a10: 08069e8e j 0x801a7a38
801a7a14: 01031821 addu r3,r8,r3
801a7a18: 0c0088c3 jal 0x8002230c                 # Rand
801a7a1c: 00000000 nop
801a7a20: 02111823 subu r3,r16,r17
801a7a24: 0043001a div r2,r3
801a7a28: 00001810 mfhi r3
801a7a2c: 97a80120 lhu r8,0x0120(r29)
801a7a30: 00000000 nop
801a7a34: 01031821 addu r3,r8,r3
801a7a38: a6430042 sh r3,0x0042(r18)
801a7a3c: 26730001 addiu r19,r19,0x0001
801a7a40: 8fa800d8 lw r8,0x00d8(r29)
801a7a44: 8e520004 lw r18,0x0004(r18)
801a7a48: 0268102a slt r2,r19,r8
801a7a4c: 1440ffaa bne r2,r0,0x801a78f8
801a7a50: 00000000 nop

801a7a54: 8ee2000c lw r2,0x000c(r23)
801a7a58: 00000000 nop
801a7a5c: 00021302 srl r2,r2,0x0c
801a7a60: 3045000f andi r5,r2,0x000f
801a7a64: 24a5ffff addiu r5,r5,-0x0001
801a7a68: 2402ffff addiu r2,r0,-0x0001
801a7a6c: 10a2000b beq r5,r2,0x801a7a9c
801a7a70: 00051080 sll r2,r5,0x02
801a7a74: 00451021 addu r2,r2,r5
801a7a78: 00021140 sll r2,r2,0x05
801a7a7c: 3c03801c lui r3,0x801c
801a7a80: 8c63bf7c lw r3,-0x4084(r3)
801a7a84: 8fa800d0 lw r8,0x00d0(r29)
801a7a88: 00431021 addu r2,r2,r3
801a7a8c: 00481021 addu r2,r2,r8
801a7a90: 90500004 lbu r16,0x0004(r2)
801a7a94: 08069ea8 j 0x801a7aa0
801a7a98: 00000000 nop
801a7a9c: 00008021 addu r16,r0,r0
801a7aa0: 86e4009c lh r4,0x009c(r23)
801a7aa4: 86e500a2 lh r5,0x00a2(r23)
801a7aa8: 8fb200e0 lw r18,0x00e0(r29)
801a7aac: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a7ab0: 02003021 addu r6,r16,r0
801a7ab4: a7a200b8 sh r2,0x00b8(r29)
801a7ab8: 86e4009e lh r4,0x009e(r23)
801a7abc: 86e500a4 lh r5,0x00a4(r23)
801a7ac0: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a7ac4: 02003021 addu r6,r16,r0
801a7ac8: a7a200ba sh r2,0x00ba(r29)
801a7acc: 86e400a0 lh r4,0x00a0(r23)
801a7ad0: 86e500a6 lh r5,0x00a6(r23)
801a7ad4: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a7ad8: 02003021 addu r6,r16,r0
801a7adc: 97a800e8 lhu r8,0x00e8(r29)
801a7ae0: a7a200bc sh r2,0x00bc(r29)
801a7ae4: 34020040 ori r2,r0,0x0040
801a7ae8: 310300e0 andi r3,r8,0x00e0
801a7aec: 1062002b beq r3,r2,0x801a7b9c
801a7af0: 28620041 slti r2,r3,0x0041
801a7af4: 10400007 beq r2,r0,0x801a7b14
801a7af8: 00000000 nop
801a7afc: 10600013 beq r3,r0,0x801a7b4c
801a7b00: 34020020 ori r2,r0,0x0020
801a7b04: 10620011 beq r3,r2,0x801a7b4c
801a7b08: 00000000 nop
801a7b0c: 08069f66 j 0x801a7d98
801a7b10: 00000000 nop
801a7b14: 34020080 ori r2,r0,0x0080
801a7b18: 1062005a beq r3,r2,0x801a7c84
801a7b1c: 28620081 slti r2,r3,0x0081
801a7b20: 10400005 beq r2,r0,0x801a7b38
801a7b24: 34020060 ori r2,r0,0x0060
801a7b28: 1062003c beq r3,r2,0x801a7c1c
801a7b2c: 00000000 nop
801a7b30: 08069f66 j 0x801a7d98
801a7b34: 00000000 nop
801a7b38: 340200a0 ori r2,r0,0x00a0
801a7b3c: 1062006b beq r3,r2,0x801a7cec
801a7b40: 00009821 addu r19,r0,r0
801a7b44: 08069f66 j 0x801a7d98
801a7b48: 00000000 nop
801a7b4c: 8fa800d8 lw r8,0x00d8(r29)
801a7b50: 00000000 nop
801a7b54: 19000090 blez r8,0x801a7d98
801a7b58: 00009821 addu r19,r0,r0

801a7b5c: 97a200b8 lhu r2,0x00b8(r29)
801a7b60: 00000000 nop
801a7b64: a642003c sh r2,0x003c(r18)
801a7b68: 97a200ba lhu r2,0x00ba(r29)
801a7b6c: 00000000 nop
801a7b70: a642003e sh r2,0x003e(r18)
801a7b74: 97a200bc lhu r2,0x00bc(r29)
801a7b78: 26730001 addiu r19,r19,0x0001
801a7b7c: a6420040 sh r2,0x0040(r18)
801a7b80: 8fa800d8 lw r8,0x00d8(r29)
801a7b84: 8e520004 lw r18,0x0004(r18)
801a7b88: 0268102a slt r2,r19,r8
801a7b8c: 10400082 beq r2,r0,0x801a7d98
801a7b90: 00000000 nop
801a7b94: 08069ed7 j 0x801a7b5c
801a7b98: 00000000 nop

801a7b9c: 0c0237d2 jal 0x8008df48           # Store_Map_Max_Coordinates
801a7ba0: 27a400c0 addiu r4,r29,0x00c0
801a7ba4: 8fa800d8 lw r8,0x00d8(r29)
801a7ba8: 00000000 nop
801a7bac: 1900007a blez r8,0x801a7d98
801a7bb0: 00009821 addu r19,r0,r0

801a7bb4: 87a300c0 lh r3,0x00c0(r29)
801a7bb8: 00000000 nop
801a7bbc: 000310c0 sll r2,r3,0x03
801a7bc0: 00431023 subu r2,r2,r3
801a7bc4: 97a300b8 lhu r3,0x00b8(r29)
801a7bc8: 00021040 sll r2,r2,0x01
801a7bcc: 00431021 addu r2,r2,r3
801a7bd0: a642003c sh r2,0x003c(r18)
801a7bd4: 87a300c4 lh r3,0x00c4(r29)
801a7bd8: 00000000 nop
801a7bdc: 000310c0 sll r2,r3,0x03
801a7be0: 00431023 subu r2,r2,r3
801a7be4: 97a300bc lhu r3,0x00bc(r29)
801a7be8: 00021040 sll r2,r2,0x01
801a7bec: 00431021 addu r2,r2,r3
801a7bf0: a6420040 sh r2,0x0040(r18)
801a7bf4: 97a200ba lhu r2,0x00ba(r29)
801a7bf8: 26730001 addiu r19,r19,0x0001
801a7bfc: a642003e sh r2,0x003e(r18)
801a7c00: 8fa800d8 lw r8,0x00d8(r29)
801a7c04: 8e520004 lw r18,0x0004(r18)
801a7c08: 0268102a slt r2,r19,r8
801a7c0c: 10400062 beq r2,r0,0x801a7d98
801a7c10: 00000000 nop
801a7c14: 08069eed j 0x801a7bb4
801a7c18: 00000000 nop

801a7c1c: 8fa800d8 lw r8,0x00d8(r29)
801a7c20: 00000000 nop
801a7c24: 1900005c blez r8,0x801a7d98
801a7c28: 00009821 addu r19,r0,r0

801a7c2c: 97a20028 lhu r2,0x0028(r29)
801a7c30: 97a300b8 lhu r3,0x00b8(r29)
801a7c34: 00000000 nop
801a7c38: 00431021 addu r2,r2,r3
801a7c3c: a642003c sh r2,0x003c(r18)
801a7c40: 97a2002a lhu r2,0x002a(r29)
801a7c44: 97a300ba lhu r3,0x00ba(r29)
801a7c48: 00000000 nop
801a7c4c: 00431021 addu r2,r2,r3
801a7c50: a642003e sh r2,0x003e(r18)
801a7c54: 97a2002c lhu r2,0x002c(r29)
801a7c58: 97a300bc lhu r3,0x00bc(r29)
801a7c5c: 26730001 addiu r19,r19,0x0001
801a7c60: 00431021 addu r2,r2,r3
801a7c64: a6420040 sh r2,0x0040(r18)
801a7c68: 8fa800d8 lw r8,0x00d8(r29)
801a7c6c: 8e520004 lw r18,0x0004(r18)
801a7c70: 0268102a slt r2,r19,r8
801a7c74: 10400048 beq r2,r0,0x801a7d98
801a7c78: 00000000 nop
801a7c7c: 08069f0b j 0x801a7c2c
801a7c80: 00000000 nop

801a7c84: 8fa800d8 lw r8,0x00d8(r29)
801a7c88: 00000000 nop
801a7c8c: 19000042 blez r8,0x801a7d98
801a7c90: 00009821 addu r19,r0,r0

801a7c94: 97a20050 lhu r2,0x0050(r29)
801a7c98: 97a300b8 lhu r3,0x00b8(r29)
801a7c9c: 00000000 nop
801a7ca0: 00431021 addu r2,r2,r3
801a7ca4: a642003c sh r2,0x003c(r18)
801a7ca8: 97a20052 lhu r2,0x0052(r29)
801a7cac: 97a300ba lhu r3,0x00ba(r29)
801a7cb0: 00000000 nop
801a7cb4: 00431021 addu r2,r2,r3
801a7cb8: a642003e sh r2,0x003e(r18)
801a7cbc: 97a20054 lhu r2,0x0054(r29)
801a7cc0: 97a300bc lhu r3,0x00bc(r29)
801a7cc4: 26730001 addiu r19,r19,0x0001
801a7cc8: 00431021 addu r2,r2,r3
801a7ccc: a6420040 sh r2,0x0040(r18)
801a7cd0: 8fa800d8 lw r8,0x00d8(r29)
801a7cd4: 8e520004 lw r18,0x0004(r18)
801a7cd8: 0268102a slt r2,r19,r8
801a7cdc: 1040002e beq r2,r0,0x801a7d98
801a7ce0: 00000000 nop
801a7ce4: 08069f25 j 0x801a7c94
801a7ce8: 00000000 nop

801a7cec: 3c03801c lui r3,0x801c
801a7cf0: 8463adca lh r3,-0x5236(r3)
801a7cf4: 8fa80148 lw r8,0x0148(r29)
801a7cf8: 000310c0 sll r2,r3,0x03
801a7cfc: 00431023 subu r2,r2,r3
801a7d00: 00021080 sll r2,r2,0x02
801a7d04: 3c03801c lui r3,0x801c
801a7d08: 8463adce lh r3,-0x5232(r3)
801a7d0c: 2442000e addiu r2,r2,0x000e
801a7d10: a7a200c8 sh r2,0x00c8(r29)
801a7d14: 000310c0 sll r2,r3,0x03
801a7d18: 00431023 subu r2,r2,r3
801a7d1c: 00021080 sll r2,r2,0x02
801a7d20: 2442000e addiu r2,r2,0x000e
801a7d24: a7a200cc sh r2,0x00cc(r29)
801a7d28: 91030002 lbu r3,0x0002(r8)
801a7d2c: 8fa800d8 lw r8,0x00d8(r29)
801a7d30: 00031040 sll r2,r3,0x01
801a7d34: 00431021 addu r2,r2,r3
801a7d38: 00021080 sll r2,r2,0x02
801a7d3c: 00021023 subu r2,r0,r2
801a7d40: 19000015 blez r8,0x801a7d98
801a7d44: a7a200ca sh r2,0x00ca(r29)

801a7d48: 97a200c8 lhu r2,0x00c8(r29)
801a7d4c: 97a300b8 lhu r3,0x00b8(r29)
801a7d50: 00000000 nop
801a7d54: 00431021 addu r2,r2,r3
801a7d58: a642003c sh r2,0x003c(r18)
801a7d5c: 97a200ca lhu r2,0x00ca(r29)
801a7d60: 97a300ba lhu r3,0x00ba(r29)
801a7d64: 00000000 nop
801a7d68: 00431021 addu r2,r2,r3
801a7d6c: a642003e sh r2,0x003e(r18)
801a7d70: 97a200cc lhu r2,0x00cc(r29)
801a7d74: 97a300bc lhu r3,0x00bc(r29)
801a7d78: 26730001 addiu r19,r19,0x0001
801a7d7c: 00431021 addu r2,r2,r3
801a7d80: a6420040 sh r2,0x0040(r18)
801a7d84: 8fa800d8 lw r8,0x00d8(r29)
801a7d88: 8e520004 lw r18,0x0004(r18)
801a7d8c: 0268102a slt r2,r19,r8
801a7d90: 1440ffed bne r2,r0,0x801a7d48
801a7d94: 00000000 nop

801a7d98: 8ee2000c lw r2,0x000c(r23)
801a7d9c: 00000000 nop
801a7da0: 00021702 srl r2,r2,0x1c
801a7da4: 30450003 andi r5,r2,0x0003
801a7da8: 24a5ffff addiu r5,r5,-0x0001
801a7dac: 2402ffff addiu r2,r0,-0x0001
801a7db0: 10a2000b beq r5,r2,0x801a7de0
801a7db4: 00051080 sll r2,r5,0x02
801a7db8: 00451021 addu r2,r2,r5
801a7dbc: 00021140 sll r2,r2,0x05
801a7dc0: 3c03801c lui r3,0x801c
801a7dc4: 8c63bf7c lw r3,-0x4084(r3)
801a7dc8: 8fa800d0 lw r8,0x00d0(r29)
801a7dcc: 00431021 addu r2,r2,r3
801a7dd0: 00481021 addu r2,r2,r8
801a7dd4: 90500004 lbu r16,0x0004(r2)
801a7dd8: 08069f79 j 0x801a7de4
801a7ddc: 00000000 nop
801a7de0: 00008021 addu r16,r0,r0
801a7de4: 86e400b8 lh r4,0x00b8(r23)
801a7de8: 86e500bc lh r5,0x00bc(r23)
801a7dec: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a7df0: 02003021 addu r6,r16,r0
801a7df4: 02003021 addu r6,r16,r0
801a7df8: 86e400ba lh r4,0x00ba(r23)
801a7dfc: 86e500be lh r5,0x00be(r23)
801a7e00: 0c06a2f8 jal 0x801a8be0        # 001a8be0_-_001a8bf4
801a7e04: 0040a821 addu r21,r2,r0
801a7e08: 8ee3000c lw r3,0x000c(r23)
801a7e0c: 0040b021 addu r22,r2,r0
801a7e10: 00034782 srl r8,r3,0x1e
801a7e14: a7a80130 sh r8,0x0130(r29)
801a7e18: 00009821 addu r19,r0,r0
801a7e1c: 8fb200e0 lw r18,0x00e0(r29)
801a7e20: 92e20010 lbu r2,0x0010(r23)
801a7e24: 8ee30010 lw r3,0x0010(r23)
801a7e28: 8fa800d8 lw r8,0x00d8(r29)
801a7e2c: 3042000f andi r2,r2,0x000f
801a7e30: a3a20138 sb r2,0x0138(r29)
801a7e34: 00031102 srl r2,r3,0x04
801a7e38: 3042000f andi r2,r2,0x000f
801a7e3c: 00031a02 srl r3,r3,0x08
801a7e40: 307e000f andi r30,r3,0x000f
801a7e44: 19000038 blez r8,0x801a7f28
801a7e48: a3a20140 sb r2,0x0140(r29)
801a7e4c: 00151400 sll r2,r21,0x10
801a7e50: 00028c03 sra r17,r2,0x10
801a7e54: 00161400 sll r2,r22,0x10
801a7e58: 00028403 sra r16,r2,0x10
801a7e5c: 0211a023 subu r20,r16,r17

801a7e60: 16300003 bne r17,r16,0x801a7e70
801a7e64: 0211102a slt r2,r16,r17
801a7e68: 08069fac j 0x801a7eb0
801a7e6c: a655004a sh r21,0x004a(r18)
801a7e70: 10400008 beq r2,r0,0x801a7e94
801a7e74: 00000000 nop
801a7e78: 0c0088c3 jal 0x8002230c                 # Rand
801a7e7c: 00000000 nop
801a7e80: 02301823 subu r3,r17,r16
801a7e84: 0043001a div r2,r3
801a7e88: 00001810 mfhi r3
801a7e8c: 08069fab j 0x801a7eac
801a7e90: 02c31821 addu r3,r22,r3
801a7e94: 0c0088c3 jal 0x8002230c                 # Rand
801a7e98: 00000000 nop
801a7e9c: 0054001a div r2,r20
801a7ea0: 00001810 mfhi r3
801a7ea4: 00000000 nop
801a7ea8: 02a31821 addu r3,r21,r3
801a7eac: a643004a sh r3,0x004a(r18)
801a7eb0: 93a80130 lbu r8,0x0130(r29)
801a7eb4: 00000000 nop
801a7eb8: a2480045 sb r8,0x0045(r18)
801a7ebc: 93a80138 lbu r8,0x0138(r29)
801a7ec0: 00000000 nop
801a7ec4: a2480046 sb r8,0x0046(r18)
801a7ec8: 93a80140 lbu r8,0x0140(r29)
801a7ecc: a25e0048 sb r30,0x0048(r18)
801a7ed0: a2480047 sb r8,0x0047(r18)
801a7ed4: 97a800f0 lhu r8,0x00f0(r29)
801a7ed8: 00000000 nop
801a7edc: 31020003 andi r2,r8,0x0003
801a7ee0: 10400007 beq r2,r0,0x801a7f00
801a7ee4: 3102000c andi r2,r8,0x000c
801a7ee8: 92e200c0 lbu r2,0x00c0(r23)
801a7eec: 00000000 nop
801a7ef0: a2420052 sb r2,0x0052(r18)
801a7ef4: 97a800f0 lhu r8,0x00f0(r29)
801a7ef8: 00000000 nop
801a7efc: 3102000c andi r2,r8,0x000c
801a7f00: 10400004 beq r2,r0,0x801a7f14
801a7f04: 26730001 addiu r19,r19,0x0001
801a7f08: 92e200c1 lbu r2,0x00c1(r23)
801a7f0c: 00000000 nop
801a7f10: a2420053 sb r2,0x0053(r18)
801a7f14: 8fa800d8 lw r8,0x00d8(r29)
801a7f18: 8e520004 lw r18,0x0004(r18)
801a7f1c: 0268102a slt r2,r19,r8
801a7f20: 1440ffcf bne r2,r0,0x801a7e60
801a7f24: 00000000 nop

801a7f28: 8fbf01fc lw r31,0x01fc(r29)
801a7f2c: 8fbe01f8 lw r30,0x01f8(r29)
801a7f30: 8fb701f4 lw r23,0x01f4(r29)
801a7f34: 8fb601f0 lw r22,0x01f0(r29)
801a7f38: 8fb501ec lw r21,0x01ec(r29)
801a7f3c: 8fb401e8 lw r20,0x01e8(r29)
801a7f40: 8fb301e4 lw r19,0x01e4(r29)
801a7f44: 8fb201e0 lw r18,0x01e0(r29)
801a7f48: 8fb101dc lw r17,0x01dc(r29)
801a7f4c: 8fb001d8 lw r16,0x01d8(r29)
801a7f50: 27bd0200 addiu r29,r29,0x0200
801a7f54: 03e00008 jr r31
801a7f58: 00000000 nop