Effect Graphics
Jump to navigation
Jump to search
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 = 0x1a8be0 (*(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 # 0x1d658 (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 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 = 0x1a8be0 (*(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 # 0x1aa1a0 (*(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 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 # 0x1a8c14 (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 # 0x1d0a8 (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 # 0x1d578 (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 # 0x1a94d4 (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 # 0x8df48 (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 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 # 0x1a8c8c (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 # 0x1d0a8 (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 # 0x1d578 (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 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 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 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 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 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 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 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 801a68dc: 00000000 nop 801a68e0: 0c0088c3 jal 0x8002230c 801a68e4: a7a20010 sh r2,0x0010(r29) 801a68e8: 0c0088c3 jal 0x8002230c 801a68ec: a7a20012 sh r2,0x0012(r29) 801a68f0: 27a40010 addiu r4,r29,0x0010 801a68f4: 02802821 addu r5,r20,r0 801a68f8: 0c007596 jal 0x8001d658 801a68fc: a7a20014 sh r2,0x0014(r29) 801a6900: 0c00742a jal 0x8001d0a8 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 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 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 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 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 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 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 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 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 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 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 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 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 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 801a6d88: a7a20014 sh r2,0x0014(r29) 801a6d8c: 0c00742a jal 0x8001d0a8 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 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 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 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 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 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 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 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 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 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 801a6fd4: a7a20014 sh r2,0x0014(r29) 801a6fd8: 0c00742a jal 0x8001d0a8 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 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 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 801a7050: 02003021 addu r6,r16,r0 801a7054: 0c00742a jal 0x8001d0a8 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 801a77ac: 02003021 addu r6,r16,r0 801a77b0: 86e4004e lh r4,0x004e(r23) 801a77b4: 86e50052 lh r5,0x0052(r23) 801a77b8: 0c06a2f8 jal 0x801a8be0 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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