001b1c04 - 001b27d8

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
001b1c04: 3c04801c lui r4,0x801c
001b1c08: 8c84c098 lw r4,-0x3f68(r4)			pointer to effect table of current effect (0x801b8b9c)
001b1c0c: 27bdff60 addiu r29,r29,0xff60
001b1c10: afb5008c sw r21,0x008c(r29)
001b1c14: 3c15801c lui r21,0x801c
001b1c18: 26b5ade0 addiu r21,r21,0xade0
001b1c1c: afbf009c sw r31,0x009c(r29)
001b1c20: afbe0098 sw r30,0x0098(r29)
001b1c24: afb70094 sw r23,0x0094(r29)
001b1c28: afb60090 sw r22,0x0090(r29)
001b1c2c: afb40088 sw r20,0x0088(r29)
001b1c30: afb30084 sw r19,0x0084(r29)
001b1c34: afb20080 sw r18,0x0080(r29)
001b1c38: afb1007c sw r17,0x007c(r29)
001b1c3c: afb00078 sw r16,0x0078(r29)
001b1c40: 8c830008 lw r3,0x0008(r4)			load execution phase
001b1c44: 34020002 ori r2,r0,0x0002
001b1c48: 106200a8 beq r3,r2,0x001b1eec		branch if executing
001b1c4c: 2c620003 sltiu r2,r3,0x0003			
001b1c50: 10400005 beq r2,r0,0x001b1c68		branch if finalising
001b1c54: 34020001 ori r2,r0,0x0001
001b1c58: 10620008 beq r3,r2,0x001b1c7c		branch if initialising
001b1c5c: 00a01021 addu r2,r5,r0			r2 = r5 (this seems totally erroneous? unless this routine parses an argument... to itself?)
001b1c60: 0806c9ea j 0x001b27a8
001b1c64: 00000000 nop
001b1c68: 34020003 ori r2,r0,0x0003
001b1c6c: 1062015e beq r3,r2,0x001b21e8
001b1c70: 00a01021 addu r2,r5,r0
001b1c74: 0806c9ea j 0x001b27a8
001b1c78: 00000000 nop

Initialising spell lines:

001b1c7c: 94820004 lhu r2,0x0004(r4)			load current particle effect
001b1c80: 94840006 lhu r4,0x0006(r4)			load effect element, but not in awful format?
001b1c84: 00021080 sll r2,r2,0x02
001b1c88: 3c01801c lui r1,0x801c
001b1c8c: 00220821 addu r1,r1,r2
001b1c90: 843084de lh r16,-0x7b22(r1)			load current particle's 3rd particle flag (BB)
001b1c94: 0c06b7eb jal 0x001adfac			Get Ninja Ball effect
001b1c98: 00009021 addu r18,r0,r0			r18 = 0
001b1c9c: 3c05801c lui r5,0x801c
001b1ca0: 8ca5c098 lw r5,-0x3f68(r5)			load pointer to effect data
001b1ca4: 001018c0 sll r3,r16,0x03			
001b1ca8: 00701823 subu r3,r3,r16
001b1cac: 00031840 sll r3,r3,0x01			BB * 0xe
001b1cb0: a4a20006 sh r2,0x0006(r5)			store shitty element format in effect data
001b1cb4: 3c01801c lui r1,0x801c
001b1cb8: 00230821 addu r1,r1,r3			801c0000 + BB * 0xe
001b1cbc: 84228880 lh r2,-0x7780(r1)			load 0x801b8880 + BB * 0xe (?) (BB = 0 loads 0x0000, BB = 1 loads 0x0200, BB = 2 loads 0x0100)
001b1cc0: 3c01801c lui r1,0x801c
001b1cc4: ac22bf14 sw r2,-0x40ec(r1)			store in 0x801bbf14
001b1cc8: 3c01801c lui r1,0x801c
001b1ccc: 00230821 addu r1,r1,r3
001b1cd0: 84228882 lh r2,-0x777e(r1)			load second halfword relative to BB * 0xe (BB = 0 loads 0x0002, BB = 1 loads 0x8000, BB = 2 loads 0x0100)
001b1cd4: 3c01801c lui r1,0x801c
001b1cd8: ac22bf18 sw r2,-0x40e8(r1)			store in 0x801bbf18
001b1cdc: 3c01801c lui r1,0x801c
001b1ce0: 00230821 addu r1,r1,r3
001b1ce4: 84228884 lh r2,-0x777c(r1)			load next halfword (BB = 1, 0x8000, BB = 1, 0x2000, BB = 2, 0x0000)
001b1ce8: 3c01801c lui r1,0x801c
001b1cec: ac22bf1c sw r2,-0x40e4(r1)			store in 0x801bbf1c
001b1cf0: 3c01801c lui r1,0x801c
001b1cf4: 00230821 addu r1,r1,r3
001b1cf8: 84228886 lh r2,-0x777a(r1)			next halfword (BB = 0, 0x2000, BB = 1, 0x0001, BB = 2, 0x0100)
001b1cfc: 3c01801c lui r1,0x801c
001b1d00: ac22bf20 sw r2,-0x40e0(r1)			store in 0x801bbf20
001b1d04: 3c01801c lui r1,0x801c
001b1d08: 00230821 addu r1,r1,r3
001b1d0c: 84228888 lh r2,-0x7778(r1)			next halfword (BB = 0, 0x0001, BB = 1, 0x0201, BB = 2, 0xFFFF)
001b1d10: 3411001c ori r17,r0,0x001c                   step over the drawmode instruction to next primative
001b1d14: 3c01801c lui r1,0x801c
001b1d18: ac22bf24 sw r2,-0x40dc(r1)			store in 0x801bbf24
001b1d1c: 3c01801c lui r1,0x801c
001b1d20: 00230821 addu r1,r1,r3
001b1d24: 9022888a lbu r2,-0x7776(r1)			next halfword (BB = 0, 0x0207, BB = 1, 0x000a, BB = 2, 0x0100)
001b1d28: 26a40004 addiu r4,r21,0x0004			r4 = 0x801bade4
001b1d2c: 3c01801c lui r1,0x801c
001b1d30: ac22bf28 sw r2,-0x40d8(r1)			store in 0x801bbf28
001b1d34: 94a20006 lhu r2,0x0006(r5)			load element from effect data table
001b1d38: 34060001 ori r6,r0,0x0001			value 2 = 1
001b1d3c: 3c01801c lui r1,0x801c
001b1d40: ac22bf2c sw r2,-0x40d4(r1)			store element in 0x801bbf2c
001b1d44: 3c01801c lui r1,0x801c
001b1d48: 00230821 addu r1,r1,r3
001b1d4c: 9022888c lbu r2,-0x7774(r1)			load next byte (BB = 0, 0x0a, BB = 1, 0x01, BB = 2, 0xff)
001b1d50: 34070020 ori r7,r0,0x0020			value 3 = 0x20
001b1d54: 3c01801c lui r1,0x801c
001b1d58: ac22bf30 sw r2,-0x40d0(r1)			store in 0x801bbf30
001b1d5c: 3c01801c lui r1,0x801c
001b1d60: 00230821 addu r1,r1,r3
001b1d64: 9022888d lbu r2,-0x7773(r1)			load next byte (BB = 0, 0x00, BB = 1, 0x00, BB = 2, 0xFF)
001b1d68: afa00010 sw r0,0x0010(r29)			parse no rectangle to draw from
001b1d6c: 3c01801c lui r1,0x801c
001b1d70: ac22bf34 sw r2,-0x40cc(r1)			store in 0x801bbf34
001b1d74: 0c009533 jal 0x000254cc			P41 SetDrawMode sets drawmode 0x620
001b1d78: 34050001 ori r5,r0,0x0001			r5 = 1
001b1d7c: 26a40010 addiu r4,r21,0x0010			0x801badf0
001b1d80: 34050001 ori r5,r0,0x0001			draw privaleges = allowed
001b1d84: 34060001 ori r6,r0,0x0001			dithering = on
001b1d88: 34070020 ori r7,r0,0x0020			tpage = draw in tpage 0x20
001b1d8c: 0c009533 jal 0x000254cc			P41 SetDrawMode sets drawmode 0x620
001b1d90: afa00010 sw r0,0x0010(r29)			null rectangle
001b1d94: 00009821 addu r19,r0,r0
001b1d98: 02b18021 addu r16,r21,r17			r16 = primative address for loop
001b1d9c: 0c008f7e jal 0x00023df8			P28 SetLineG2 create a line primative
001b1da0: 02002021 addu r4,r16,r0			value 1 = prim address
001b1da4: 02002021 addu r4,r16,r0			value 1 = prim address
001b1da8: 0c008f1a jal 0x00023c68			P10 SetSemiTrans
001b1dac: 34050001 ori r5,r0,0x0001			semi transparent line
001b1db0: 26730001 addiu r19,r19,0x0001		r19 = 1
001b1db4: 2a620060 slti r2,r19,0x0060			
001b1db8: 1440fff8 bne r2,r0,0x001b1d9c		loop 96 times (spell lines are 96 in quantity. wild)
001b1dbc: 26100014 addiu r16,r16,0x0014		increment primative to store to next
001b1dc0: 26520001 addiu r18,r18,0x0001
001b1dc4: 2a420002 slti r2,r18,0x0002
001b1dc8: 1440fff2 bne r2,r0,0x001b1d94		loop through all of that twice over, again
001b1dcc: 26310780 addiu r17,r17,0x0780
001b1dd0: 3412000f ori r18,r0,0x000f			r18 = 0xf
001b1dd4: 26a201e0 addiu r2,r21,0x01e0			r2 = 0x801bafc0
001b1dd8: a0400f3a sb r0,0x0f3a(r2)			801bbefa = 0
001b1ddc: 2652ffff addiu r18,r18,0xffff		subtract 1
001b1de0: 0641fffd bgez r18,0x001b1dd8			loop 15 times
001b1de4: 2442ffe0 addiu r2,r2,0xffe0			- 0x20, for a total of 1e0.
001b1de8: 34120001 ori r18,r0,0x0001			r18 = 1
001b1dec: 26a20001 addiu r2,r21,0x0001			add 1
001b1df0: a6a0112c sh r0,0x112c(r21)
001b1df4: a2a0112e sb r0,0x112e(r21)
001b1df8: a2a0112f sb r0,0x112f(r21)
001b1dfc: a040111c sb r0,0x111c(r2)			clear lots of stuff.
001b1e00: 2652ffff addiu r18,r18,0xffff
001b1e04: 0641fffd bgez r18,0x001b1dfc			repeat once
001b1e08: 2442ffff addiu r2,r2,0xffff			subtract 1
001b1e0c: 3412000d ori r18,r0,0x000d
001b1e10: 26a2000d addiu r2,r21,0x000d
001b1e14: a040111e sb r0,0x111e(r2)
001b1e18: 2652ffff addiu r18,r18,0xffff
001b1e1c: 0641fffd bgez r18,0x001b1e14
001b1e20: 2442ffff addiu r2,r2,0xffff
001b1e24: 3c02801c lui r2,0x801c
001b1e28: 8c42c098 lw r2,-0x3f68(r2)                    load current effecct target data
001b1e2c: 00000000 nop
001b1e30: 90440012 lbu r4,0x0012(r2)                    load unit misc ID
001b1e34: 0c023104 jal 0x0008c410                       Get Unit Screen Location Data Pointer
001b1e38: 00000000 nop
001b1e3c: 3c03801c lui r3,0x801c
001b1e40: 8c63c098 lw r3,-0x3f68(r3)
001b1e44: 00000000 nop
001b1e48: 90640012 lbu r4,0x0012(r3)
001b1e4c: 0c02371d jal 0x0008dc74                       finds unit's height value
001b1e50: 00408021 addu r16,r2,r0                       r16 = unit screen location data
001b1e54: 24520008 addiu r18,r2,0x0008
001b1e58: 00121023 subu r2,r0,r18                       height + 8 negate
001b1e5c: 3c01801c lui r1,0x801c
001b1e60: a42287c6 sh r2,-0x783a(r1)                    store unit's height 801b87c6
001b1e64: 3c01801c lui r1,0x801c
001b1e68: a4228798 sh r2,-0x7868(r1)                    store unit's height 801b8798
001b1e6c: 96020000 lhu r2,0x0000(r16)                   load unit's X pos
001b1e70: 00000000 nop
001b1e74: a7a20018 sh r2,0x0018(r29)                    store xpos in 0x18 SP
001b1e78: 96020004 lhu r2,0x0004(r16)                   load unit's Ypos
001b1e7c: 3c11800a lui r17,0x800a
001b1e80: 26318a24 addiu r17,r17,0x8a24                 80098a24 <- this seems to be out rotation and translation dedicated space for today
001b1e84: a7a2001c sh r2,0x001c(r29)                    store ypos in 0x1c SP
001b1e88: 96020002 lhu r2,0x0002(r16)
001b1e8c: 02202021 addu r4,r17,r0
001b1e90: 00521023 subu r2,r2,r18
001b1e94: 0c00742a jal 0x0001d0a8                       Store Rotation matrix elements to GTE
001b1e98: a7a2001a sh r2,0x001a(r29)                    store height negated in 0x1a SP
001b1e9c: 0c00744e jal 0x0001d138                       Store Translation Vectors to GTE
001b1ea0: 02202021 addu r4,r17,r0
001b1ea4: 27a40018 addiu r4,r29,0x0018
001b1ea8: 27a50030 addiu r5,r29,0x0030
001b1eac: 0c00755e jal 0x0001d578                       Get vector*matrix from GTE
001b1eb0: 27a6003c addiu r6,r29,0x003c
001b1eb4: 97a20030 lhu r2,0x0030(r29)
001b1eb8: 97a30034 lhu r3,0x0034(r29)
001b1ebc: 3404001f ori r4,r0,0x001f                     play sound 0x1f (magic charging)
001b1ec0: aea01130 sw r0,0x1130(r21)
001b1ec4: aea01158 sw r0,0x1158(r21)                    blank some more line values?
001b1ec8: a6a20000 sh r2,0x0000(r21)
001b1ecc: 0c00496a jal 0x000125a8                       000125a8 - 00012608 - play audio
001b1ed0: a6a30002 sh r3,0x0002(r21)                    stores the point directly above the unit?
001b1ed4: 34050001 ori r5,r0,0x0001                     return r5 = 1?
001b1ed8: 3c03801c lui r3,0x801c
001b1edc: 8c63c098 lw r3,-0x3f68(r3)
001b1ee0: 34020002 ori r2,r0,0x0002
001b1ee4: 0806c9e9 j 0x001b27a4
001b1ee8: ac620008 sw r2,0x0008(r3)                     set execution phase to executing

if executing:

001b1eec: 3c02801c lui r2,0x801c
001b1ef0: 8c42bf38 lw r2,-0x40c8(r2)                    ?
001b1ef4: 00000000 nop
001b1ef8: 14400080 bne r2,r0,0x001b20fc
001b1efc: 00000000 nop
001b1f00: 3c02801c lui r2,0x801c
001b1f04: 8442bf0c lh r2,-0x40f4(r2)
001b1f08: 3c03801c lui r3,0x801c
001b1f0c: 8c63bf30 lw r3,-0x40d0(r3)                    BBval 7 (determines time between summoning more lines?)
001b1f10: 00000000 nop
001b1f14: 0043102a slt r2,r2,r3
001b1f18: 10400078 beq r2,r0,0x001b20fc
001b1f1c: 00000000 nop
001b1f20: 0c0088c3 jal 0x0002230c                       RNG call
001b1f24: 00000000 nop
001b1f28: 3c03801c lui r3,0x801c
001b1f2c: 8c63bf28 lw r3,-0x40d8(r3)                    BBval 6
001b1f30: 00000000 nop
001b1f34: 0043001a div r2,r3                            RNG / bb6 (determines how often something happens?)
001b1f38: 00001810 mfhi r3
001b1f3c: 00000000 nop
001b1f40: 1460006e bne r3,r0,0x001b20fc                 branch if not 0
001b1f44: 00000000 nop
001b1f48: 00009021 addu r18,r0,r0
001b1f4c: 02a08821 addu r17,r21,r0
001b1f50: 0000b021 addu r22,r0,r0
001b1f54: 92220f3a lbu r2,0x0f3a(r17)
001b1f58: 00000000 nop
001b1f5c: 14400062 bne r2,r0,0x001b20e8                 branch if not 0?
001b1f60: 00000000 nop
001b1f64: 0c06b6cf jal 0x001adb3c                       001adb3c - 001adc20
001b1f68: 00000000 nop
001b1f6c: 305300ff andi r19,r2,0x00ff
001b1f70: 12600062 beq r19,r0,0x001b20fc
001b1f74: a2220f3a sb r2,0x0f3a(r17)                    set to a non-0 value? (animate every... other frame?)
001b1f78: 96a2112c lhu r2,0x112c(r21)
001b1f7c: 00000000 nop
001b1f80: 24420001 addiu r2,r2,0x0001
001b1f84: 0c0088c3 jal 0x0002230c                       RNG call as theta
001b1f88: a6a2112c sh r2,0x112c(r21)                    timer?
001b1f8c: 8ea31130 lw r3,0x1130(r21)
001b1f90: 304201ff andi r2,r2,0x01ff
001b1f94: 0043a021 addu r20,r2,r3
001b1f98: 02802021 addu r4,r20,r0                       theta as argument
001b1f9c: 24630571 addiu r3,r3,0x0571                   ?
001b1fa0: 0c006f0a jal 0x0001bc28                       Cos call function - are we figuring out where to load in a line?
001b1fa4: aea31130 sw r3,0x1130(r21)
001b1fa8: 8ea31144 lw r3,0x1144(r21)                    ?
001b1fac: 00000000 nop
001b1fb0: 00430018 mult r2,r3
001b1fb4: 00138040 sll r16,r19,0x01
001b1fb8: 02138021 addu r16,r16,r19
001b1fbc: 00101100 sll r2,r16,0x04
001b1fc0: 02028021 addu r16,r16,r2
001b1fc4: 86a30000 lh r3,0x0000(r21)
001b1fc8: 00108080 sll r16,r16,0x02
001b1fcc: 00031b00 sll r3,r3,0x0c
001b1fd0: 00001012 mflo r2
001b1fd4: 00431021 addu r2,r2,r3
001b1fd8: 3c01801c lui r1,0x801c
001b1fdc: 00300821 addu r1,r1,r16
001b1fe0: ac229314 sw r2,-0x6cec(r1)
001b1fe4: 0c006ed7 jal 0x0001bb5c                       Call Sin function
001b1fe8: 02802021 addu r4,r20,r0
001b1fec: 8ea31144 lw r3,0x1144(r21)
001b1ff0: 00000000 nop
001b1ff4: 00430018 mult r2,r3
001b1ff8: 86a30002 lh r3,0x0002(r21)
001b1ffc: 00000000 nop
001b2000: 00031b00 sll r3,r3,0x0c
001b2004: 00001012 mflo r2
001b2008: 00431021 addu r2,r2,r3
001b200c: 3c01801c lui r1,0x801c
001b2010: 00300821 addu r1,r1,r16
001b2014: ac229318 sw r2,-0x6ce8(r1)
001b2018: 0c0088c3 jal 0x0002230c                       rng call
001b201c: 00000000 nop
001b2020: 8ea31138 lw r3,0x1138(r21)
001b2024: 00000000 nop
001b2028: 0043001a div r2,r3
001b202c: 00001810 mfhi r3
001b2030: 8ea2113c lw r2,0x113c(r21)
001b2034: 02831821 addu r3,r20,r3
001b2038: 00621823 subu r3,r3,r2
001b203c: 2474f800 addiu r20,r3,0xf800
001b2040: 0c006f0a jal 0x0001bc28                        how much of this is summoning lines? uh... Cos call function
001b2044: 02802021 addu r4,r20,r0
001b2048: 8ea31134 lw r3,0x1134(r21)
001b204c: 00000000 nop
001b2050: 00430018 mult r2,r3
001b2054: 00001012 mflo r2
001b2058: 3c01801c lui r1,0x801c
001b205c: 00300821 addu r1,r1,r16
001b2060: ac229320 sw r2,-0x6ce0(r1)
001b2064: 0c006ed7 jal 0x0001bb5c
001b2068: 02802021 addu r4,r20,r0
001b206c: 8ea31134 lw r3,0x1134(r21)
001b2070: 00000000 nop
001b2074: 00430018 mult r2,r3
001b2078: 0000a021 addu r20,r0,r0
001b207c: 02c02021 addu r4,r22,r0
001b2080: 34020001 ori r2,r0,0x0001
001b2084: 3c01801c lui r1,0x801c
001b2088: 00300821 addu r1,r1,r16
001b208c: a422930c sh r2,-0x6cf4(r1)
001b2090: 00001012 mflo r2
001b2094: 3c01801c lui r1,0x801c
001b2098: 00300821 addu r1,r1,r16
001b209c: ac229324 sw r2,-0x6cdc(r1)
001b20a0: 02a41821 addu r3,r21,r4
001b20a4: 3c01801c lui r1,0x801c
001b20a8: 00300821 addu r1,r1,r16
001b20ac: 8c229314 lw r2,-0x6cec(r1)
001b20b0: 00000000 nop
001b20b4: 00021303 sra r2,r2,0x0c
001b20b8: a4620f1c sh r2,0x0f1c(r3)
001b20bc: 3c01801c lui r1,0x801c
001b20c0: 00300821 addu r1,r1,r16
001b20c4: 8c229318 lw r2,-0x6ce8(r1)
001b20c8: 26940001 addiu r20,r20,0x0001
001b20cc: 00021303 sra r2,r2,0x0c
001b20d0: a4620f1e sh r2,0x0f1e(r3)
001b20d4: 2a820007 slti r2,r20,0x0007
001b20d8: 1440fff1 bne r2,r0,0x001b20a0
001b20dc: 24840004 addiu r4,r4,0x0004
001b20e0: 0806c83f j 0x001b20fc
001b20e4: a6200f38 sh r0,0x0f38(r17)


001b20e8: 26310020 addiu r17,r17,0x0020
001b20ec: 26520001 addiu r18,r18,0x0001
001b20f0: 2a420010 slti r2,r18,0x0010
001b20f4: 1440ff97 bne r2,r0,0x001b1f54
001b20f8: 26d60020 addiu r22,r22,0x0020
001b20fc: 92a2112f lbu r2,0x112f(r21)
001b2100: 00000000 nop
001b2104: 2c42000e sltiu r2,r2,0x000e
001b2108: 10400037 beq r2,r0,0x001b21e8
001b210c: 00000000 nop
001b2110: 3c04801c lui r4,0x801c
001b2114: 248487b6 addiu r4,r4,0x87b6
001b2118: 90820000 lbu r2,0x0000(r4)
001b211c: 00000000 nop
001b2120: 18400031 blez r2,0x001b21e8
001b2124: 00009021 addu r18,r0,r0
001b2128: 2491ffd6 addiu r17,r4,0xffd6
001b212c: 00009821 addu r19,r0,r0
001b2130: 02b31021 addu r2,r21,r19
001b2134: 9042111e lbu r2,0x111e(r2)
001b2138: 00000000 nop
001b213c: 10400005 beq r2,r0,0x001b2154
001b2140: 00000000 nop
001b2144: 26730001 addiu r19,r19,0x0001
001b2148: 2a62000e slti r2,r19,0x000e
001b214c: 1440fff9 bne r2,r0,0x001b2134
001b2150: 02b31021 addu r2,r21,r19
001b2154: 0c06b6cf jal 0x001adb3c
001b2158: 00000000 nop
001b215c: 02b31821 addu r3,r21,r19
001b2160: a062111e sb r2,0x111e(r3)
001b2164: 9062111e lbu r2,0x111e(r3)
001b2168: 00000000 nop
001b216c: 1040001e beq r2,r0,0x001b21e8
001b2170: 02202021 addu r4,r17,r0
001b2174: 00028040 sll r16,r2,0x01
001b2178: 02028021 addu r16,r16,r2
001b217c: 00101100 sll r2,r16,0x04
001b2180: 02028021 addu r16,r16,r2
001b2184: 00108080 sll r16,r16,0x02
001b2188: 3c02801c lui r2,0x801c
001b218c: 24429278 addiu r2,r2,0x9278
001b2190: 02028021 addu r16,r16,r2
001b2194: 0c069fd7 jal 0x001a7f5c
001b2198: 26050098 addiu r5,r16,0x0098
001b219c: 3404000c ori r4,r0,0x000c
001b21a0: 34057acf ori r5,r0,0x7acf
001b21a4: 02003021 addu r6,r16,r0
001b21a8: 0c06c322 jal 0x001b0c88
001b21ac: a4c20094 sh r2,0x0094(r6)
001b21b0: 92a2112f lbu r2,0x112f(r21)
001b21b4: 00000000 nop
001b21b8: 24420001 addiu r2,r2,0x0001
001b21bc: a2a2112f sb r2,0x112f(r21)
001b21c0: 92a3112f lbu r3,0x112f(r21)
001b21c4: 3402000e ori r2,r0,0x000e
001b21c8: 10620007 beq r3,r2,0x001b21e8
001b21cc: 26520001 addiu r18,r18,0x0001
001b21d0: 3c02801c lui r2,0x801c
001b21d4: 904287b6 lbu r2,-0x784a(r2)
001b21d8: 00000000 nop
001b21dc: 0242102a slt r2,r18,r2
001b21e0: 1440ffd3 bne r2,r0,0x001b2130
001b21e4: 00009821 addu r19,r0,r0
001b21e8: 0c06a689 jal 0x001a9a24
001b21ec: 00009021 addu r18,r0,r0
001b21f0: 0c06a66b jal 0x001a99ac
001b21f4: 34040230 ori r4,r0,0x0230
001b21f8: 02b28021 addu r16,r21,r18
001b21fc: 9213111c lbu r19,0x111c(r16)
001b2200: 00000000 nop
001b2204: 1260000c beq r19,r0,0x001b2238
001b2208: 26520001 addiu r18,r18,0x0001
001b220c: 0c06a9f7 jal 0x001aa7dc
001b2210: 02602021 addu r4,r19,r0
001b2214: 14400009 bne r2,r0,0x001b223c
001b2218: 2a420002 slti r2,r18,0x0002
001b221c: 0c06b709 jal 0x001adc24
001b2220: 02602021 addu r4,r19,r0
001b2224: a200111c sb r0,0x111c(r16)
001b2228: 92a2112e lbu r2,0x112e(r21)
001b222c: 00000000 nop
001b2230: 2442ffff addiu r2,r2,0xffff
001b2234: a2a2112e sb r2,0x112e(r21)
001b2238: 2a420002 slti r2,r18,0x0002
001b223c: 1440ffef bne r2,r0,0x001b21fc
001b2240: 02b28021 addu r16,r21,r18
001b2244: 00009021 addu r18,r0,r0
001b2248: 02b28021 addu r16,r21,r18
001b224c: 9213111e lbu r19,0x111e(r16)
001b2250: 00000000 nop
001b2254: 1260000c beq r19,r0,0x001b2288
001b2258: 26520001 addiu r18,r18,0x0001
001b225c: 0c06a9f7 jal 0x001aa7dc
001b2260: 02602021 addu r4,r19,r0
001b2264: 14400009 bne r2,r0,0x001b228c
001b2268: 2a42000e slti r2,r18,0x000e
001b226c: 0c06b709 jal 0x001adc24
001b2270: 02602021 addu r4,r19,r0
001b2274: a200111e sb r0,0x111e(r16)
001b2278: 92a2112f lbu r2,0x112f(r21)
001b227c: 00000000 nop
001b2280: 2442ffff addiu r2,r2,0xffff
001b2284: a2a2112f sb r2,0x112f(r21)
001b2288: 2a42000e slti r2,r18,0x000e
001b228c: 1440ffef bne r2,r0,0x001b224c
001b2290: 02b28021 addu r16,r21,r18
001b2294: afb50060 sw r21,0x0060(r29)
001b2298: 8ea3114c lw r3,0x114c(r21)
001b229c: afa00068 sw r0,0x0068(r29)
001b22a0: 00031040 sll r2,r3,0x01
001b22a4: 00431021 addu r2,r2,r3
001b22a8: 3c01801c lui r1,0x801c
001b22ac: 00220821 addu r1,r1,r2
001b22b0: 902984c0 lbu r9,-0x7b40(r1)
001b22b4: 00009021 addu r18,r0,r0
001b22b8: afa90040 sw r9,0x0040(r29)
001b22bc: 3c01801c lui r1,0x801c
001b22c0: 00220821 addu r1,r1,r2
001b22c4: 902984c1 lbu r9,-0x7b3f(r1)
001b22c8: 3c08801c lui r8,0x801c
001b22cc: 250888c0 addiu r8,r8,0x88c0
001b22d0: afa90048 sw r9,0x0048(r29)
001b22d4: 3c01801c lui r1,0x801c
001b22d8: 00220821 addu r1,r1,r2
001b22dc: 902284c2 lbu r2,-0x7b3e(r1)
001b22e0: 00000000 nop
001b22e4: afa20050 sw r2,0x0050(r29)
001b22e8: 8fa90060 lw r9,0x0060(r29)
001b22ec: 00000000 nop
001b22f0: 91330f3a lbu r19,0x0f3a(r9)
001b22f4: 00000000 nop
001b22f8: 12600107 beq r19,r0,0x001b2718
001b22fc: 00131040 sll r2,r19,0x01
001b2300: 00531021 addu r2,r2,r19
001b2304: 00021900 sll r3,r2,0x04
001b2308: 00431021 addu r2,r2,r3
001b230c: 00021080 sll r2,r2,0x02
001b2310: 3c04801c lui r4,0x801c
001b2314: 24849278 addiu r4,r4,0x9278
001b2318: 3c01801c lui r1,0x801c
001b231c: 00220821 addu r1,r1,r2
001b2320: 8c259314 lw r5,-0x6cec(r1)
001b2324: 3c01801c lui r1,0x801c
001b2328: 00220821 addu r1,r1,r2
001b232c: 8c239320 lw r3,-0x6ce0(r1)
001b2330: 00442021 addu r4,r2,r4
001b2334: 00a33821 addu r7,r5,r3
001b2338: ac87009c sw r7,0x009c(r4)
001b233c: 3c01801c lui r1,0x801c
001b2340: 00220821 addu r1,r1,r2
001b2344: 8c239318 lw r3,-0x6ce8(r1)
001b2348: 3c01801c lui r1,0x801c
001b234c: 00220821 addu r1,r1,r2
001b2350: 8c229324 lw r2,-0x6cdc(r1)
001b2354: 3c059249 lui r5,0x9249
001b2358: 00628021 addu r16,r3,r2
001b235c: ac9000a0 sw r16,0x00a0(r4)
001b2360: 95220f38 lhu r2,0x0f38(r9)
001b2364: 34a52493 ori r5,r5,0x2493
001b2368: 24420001 addiu r2,r2,0x0001
001b236c: 00021c00 sll r3,r2,0x10
001b2370: 0003bc03 sra r23,r3,0x10
001b2374: 02e50018 mult r23,r5
001b2378: 00031fc3 sra r3,r3,0x1f
001b237c: a5220f38 sh r2,0x0f38(r9)
001b2380: 8ea61140 lw r6,0x1140(r21)
001b2384: 00001010 mfhi r2
001b2388: 00571021 addu r2,r2,r23
001b238c: 00021083 sra r2,r2,0x02
001b2390: 0043b023 subu r22,r2,r3
001b2394: 001610c0 sll r2,r22,0x03
001b2398: 00561023 subu r2,r2,r22
001b239c: 02e2b023 subu r22,r23,r2
001b23a0: 00d7102a slt r2,r6,r23
001b23a4: 14400015 bne r2,r0,0x001b23fc
001b23a8: 00161880 sll r3,r22,0x02
001b23ac: 00072303 sra r4,r7,0x0c
001b23b0: 02e03821 addu r7,r23,r0
001b23b4: 86a50000 lh r5,0x0000(r21)
001b23b8: 34110006 ori r17,r0,0x0006
001b23bc: 0c06a20d jal 0x001a8834
001b23c0: afa80074 sw r8,0x0074(r29)
001b23c4: 00102303 sra r4,r16,0x0c
001b23c8: 8fa90068 lw r9,0x0068(r29)
001b23cc: 00168080 sll r16,r22,0x02
001b23d0: 02098021 addu r16,r16,r9
001b23d4: 02b08021 addu r16,r21,r16
001b23d8: a6020f1c sh r2,0x0f1c(r16)
001b23dc: 86a50002 lh r5,0x0002(r21)
001b23e0: 8ea61140 lw r6,0x1140(r21)
001b23e4: 0c06a20d jal 0x001a8834
001b23e8: 02e03821 addu r7,r23,r0
001b23ec: a6020f1e sh r2,0x0f1e(r16)
001b23f0: 8fa80074 lw r8,0x0074(r29)
001b23f4: 0806c90d j 0x001b2434
001b23f8: 0000a021 addu r20,r0,r0
001b23fc: 8fa90068 lw r9,0x0068(r29)
001b2400: 96a20000 lhu r2,0x0000(r21)
001b2404: 00691821 addu r3,r3,r9
001b2408: 02a31821 addu r3,r21,r3
001b240c: a4620f1c sh r2,0x0f1c(r3)
001b2410: 96a20002 lhu r2,0x0002(r21)
001b2414: 00000000 nop
001b2418: a4620f1e sh r2,0x0f1e(r3)
001b241c: 8ea31140 lw r3,0x1140(r21)
001b2420: 26e2fffa addiu r2,r23,0xfffa
001b2424: 00628823 subu r17,r3,r2
001b2428: 06210002 bgez r17,0x001b2434
001b242c: 0000a021 addu r20,r0,r0
001b2430: 00008821 addu r17,r0,r0
001b2434: 8fa70068 lw r7,0x0068(r29)
001b2438: 00161080 sll r2,r22,0x02
001b243c: 0047f021 addu r30,r2,r7
001b2440: 3c02801c lui r2,0x801c
001b2444: 8c42c090 lw r2,-0x3f70(r2)
001b2448: 00000000 nop
001b244c: 00022100 sll r4,r2,0x04
001b2450: 00822023 subu r4,r4,r2
001b2454: 000421c0 sll r4,r4,0x07
001b2458: 2484001c addiu r4,r4,0x001c
001b245c: 02a42021 addu r4,r21,r4
001b2460: 00121040 sll r2,r18,0x01
001b2464: 00521021 addu r2,r2,r18
001b2468: 00021040 sll r2,r2,0x01
001b246c: 00541021 addu r2,r2,r20
001b2470: 00021880 sll r3,r2,0x02
001b2474: 00621821 addu r3,r3,r2
001b2478: 00031880 sll r3,r3,0x02
001b247c: 02be1021 addu r2,r21,r30
001b2480: 94450f1c lhu r5,0x0f1c(r2)
001b2484: 00838021 addu r16,r4,r3
001b2488: a6050008 sh r5,0x0008(r16)
001b248c: 94420f1e lhu r2,0x0f1e(r2)
001b2490: 00000000 nop
001b2494: a602000a sh r2,0x000a(r16)
001b2498: 8ea31154 lw r3,0x1154(r21)
001b249c: 8fa90040 lw r9,0x0040(r29)
001b24a0: 000310c0 sll r2,r3,0x03
001b24a4: 00431023 subu r2,r2,r3
001b24a8: 00511021 addu r2,r2,r17
001b24ac: 00481021 addu r2,r2,r8
001b24b0: 90420000 lbu r2,0x0000(r2)
001b24b4: 00000000 nop
001b24b8: 01220018 mult r9,r2
001b24bc: 00001012 mflo r2
001b24c0: 00021202 srl r2,r2,0x08
001b24c4: a2020004 sb r2,0x0004(r16)
001b24c8: 8ea31154 lw r3,0x1154(r21)
001b24cc: 8fa90048 lw r9,0x0048(r29)
001b24d0: 000310c0 sll r2,r3,0x03
001b24d4: 00431023 subu r2,r2,r3
001b24d8: 00511021 addu r2,r2,r17
001b24dc: 00481021 addu r2,r2,r8
001b24e0: 90420000 lbu r2,0x0000(r2)
001b24e4: 00000000 nop
001b24e8: 01220018 mult r9,r2
001b24ec: 00001012 mflo r2
001b24f0: 00021202 srl r2,r2,0x08
001b24f4: a2020005 sb r2,0x0005(r16)
001b24f8: 8ea31154 lw r3,0x1154(r21)
001b24fc: 8fa90050 lw r9,0x0050(r29)
001b2500: 000310c0 sll r2,r3,0x03
001b2504: 00431023 subu r2,r2,r3
001b2508: 00511021 addu r2,r2,r17
001b250c: 00481021 addu r2,r2,r8
001b2510: 90420000 lbu r2,0x0000(r2)
001b2514: 00000000 nop
001b2518: 01220018 mult r9,r2
001b251c: 26d6ffff addiu r22,r22,0xffff
001b2520: 27defffc addiu r30,r30,0xfffc
001b2524: 00001012 mflo r2
001b2528: 00021202 srl r2,r2,0x08
001b252c: 06c10003 bgez r22,0x001b253c
001b2530: a2020006 sb r2,0x0006(r16)
001b2534: 24fe0018 addiu r30,r7,0x0018
001b2538: 34160006 ori r22,r0,0x0006
001b253c: 12200002 beq r17,r0,0x001b2548
001b2540: 26f7ffff addiu r23,r23,0xffff
001b2544: 2631ffff addiu r17,r17,0xffff
001b2548: 06e10002 bgez r23,0x001b2554
001b254c: 02be1821 addu r3,r21,r30
001b2550: 00008821 addu r17,r0,r0
001b2554: 94620f1c lhu r2,0x0f1c(r3)
001b2558: 00000000 nop
001b255c: a6020010 sh r2,0x0010(r16)
001b2560: 94620f1e lhu r2,0x0f1e(r3)
001b2564: 00000000 nop
001b2568: a6020012 sh r2,0x0012(r16)
001b256c: 8ea31154 lw r3,0x1154(r21)
001b2570: 8fa90040 lw r9,0x0040(r29)
001b2574: 000310c0 sll r2,r3,0x03
001b2578: 00431023 subu r2,r2,r3
001b257c: 00511021 addu r2,r2,r17
001b2580: 00481021 addu r2,r2,r8
001b2584: 90420000 lbu r2,0x0000(r2)
001b2588: 00000000 nop
001b258c: 01220018 mult r9,r2
001b2590: 00001012 mflo r2
001b2594: 00021202 srl r2,r2,0x08
001b2598: a202000c sb r2,0x000c(r16)
001b259c: 8ea31154 lw r3,0x1154(r21)
001b25a0: 8fa90048 lw r9,0x0048(r29)
001b25a4: 000310c0 sll r2,r3,0x03
001b25a8: 00431023 subu r2,r2,r3
001b25ac: 00511021 addu r2,r2,r17
001b25b0: 00481021 addu r2,r2,r8
001b25b4: 90420000 lbu r2,0x0000(r2)
001b25b8: 00000000 nop
001b25bc: 01220018 mult r9,r2
001b25c0: 00001012 mflo r2
001b25c4: 00021202 srl r2,r2,0x08
001b25c8: a202000d sb r2,0x000d(r16)
001b25cc: 8ea31154 lw r3,0x1154(r21)
001b25d0: 8fa90050 lw r9,0x0050(r29)
001b25d4: 000310c0 sll r2,r3,0x03
001b25d8: 00431023 subu r2,r2,r3
001b25dc: 00511021 addu r2,r2,r17
001b25e0: 00481021 addu r2,r2,r8
001b25e4: 90420000 lbu r2,0x0000(r2)
001b25e8: 00000000 nop
001b25ec: 01220018 mult r9,r2
001b25f0: 8e040008 lw r4,0x0008(r16)
001b25f4: 8e030010 lw r3,0x0010(r16)
001b25f8: 00001012 mflo r2
001b25fc: 00021202 srl r2,r2,0x08
001b2600: 1083002f beq r4,r3,0x001b26c0
001b2604: a202000e sb r2,0x000e(r16)
001b2608: 86030012 lh r3,0x0012(r16)
001b260c: 8604000a lh r4,0x000a(r16)
001b2610: 86020010 lh r2,0x0010(r16)
001b2614: 86050008 lh r5,0x0008(r16)
001b2618: afa70070 sw r7,0x0070(r29)
001b261c: afa80074 sw r8,0x0074(r29)
001b2620: 00642023 subu r4,r3,r4
001b2624: 0c00763a jal 0x0001d8e8
001b2628: 00452823 subu r5,r2,r5
001b262c: 24430900 addiu r3,r2,0x0900
001b2630: 8fa70070 lw r7,0x0070(r29)
001b2634: 8fa80074 lw r8,0x0074(r29)
001b2638: 04610002 bgez r3,0x001b2644
001b263c: 3c0500ff lui r5,0x00ff
001b2640: 24430aff addiu r3,r2,0x0aff
001b2644: 00031a43 sra r3,r3,0x09
001b2648: 00031880 sll r3,r3,0x02
001b264c: 3c09801c lui r9,0x801c
001b2650: 2529889c addiu r9,r9,0x889c
001b2654: 00692021 addu r4,r3,r9
001b2658: 3c09801c lui r9,0x801c
001b265c: 2529889e addiu r9,r9,0x889e
001b2660: 00691821 addu r3,r3,r9
001b2664: 34a5ffff ori r5,r5,0xffff
001b2668: 96020010 lhu r2,0x0010(r16)
001b266c: 94840000 lhu r4,0x0000(r4)
001b2670: 3c06ff00 lui r6,0xff00
001b2674: 00441021 addu r2,r2,r4
001b2678: a6020010 sh r2,0x0010(r16)
001b267c: 96020012 lhu r2,0x0012(r16)
001b2680: 94630000 lhu r3,0x0000(r3)
001b2684: 3c04801c lui r4,0x801c
001b2688: 8c84c0cc lw r4,-0x3f34(r4)
001b268c: 00431021 addu r2,r2,r3
001b2690: a6020012 sh r2,0x0012(r16)
001b2694: 8e020000 lw r2,0x0000(r16)
001b2698: 8c830004 lw r3,0x0004(r4)
001b269c: 00461024 and r2,r2,r6
001b26a0: 00651824 and r3,r3,r5
001b26a4: 00431025 or r2,r2,r3
001b26a8: ae020000 sw r2,0x0000(r16)
001b26ac: 8c820004 lw r2,0x0004(r4)
001b26b0: 02052824 and r5,r16,r5
001b26b4: 00461024 and r2,r2,r6
001b26b8: 00451025 or r2,r2,r5
001b26bc: ac820004 sw r2,0x0004(r4)
001b26c0: 26940001 addiu r20,r20,0x0001
001b26c4: 2a820006 slti r2,r20,0x0006
001b26c8: 1440ff5d bne r2,r0,0x001b2440
001b26cc: 00000000 nop
001b26d0: 8fa90060 lw r9,0x0060(r29)
001b26d4: 8ea21140 lw r2,0x1140(r21)
001b26d8: 85230f38 lh r3,0x0f38(r9)
001b26dc: 24420007 addiu r2,r2,0x0007
001b26e0: 0062182a slt r3,r3,r2
001b26e4: 1460000c bne r3,r0,0x001b2718
001b26e8: 326400ff andi r4,r19,0x00ff
001b26ec: 0c06b709 jal 0x001adc24
001b26f0: afa80074 sw r8,0x0074(r29)
001b26f4: 8fa90060 lw r9,0x0060(r29)
001b26f8: 00000000 nop
001b26fc: a1200f3a sb r0,0x0f3a(r9)
001b2700: 96a2112c lhu r2,0x112c(r21)
001b2704: 00000000 nop
001b2708: 2442ffff addiu r2,r2,0xffff
001b270c: a6a2112c sh r2,0x112c(r21)
001b2710: 8fa80074 lw r8,0x0074(r29)
001b2714: 8fa90060 lw r9,0x0060(r29)
001b2718: 26520001 addiu r18,r18,0x0001
001b271c: 25290020 addiu r9,r9,0x0020
001b2720: afa90060 sw r9,0x0060(r29)
001b2724: 8fa90068 lw r9,0x0068(r29)
001b2728: 2a420010 slti r2,r18,0x0010
001b272c: 25290020 addiu r9,r9,0x0020
001b2730: 1440feed bne r2,r0,0x001b22e8
001b2734: afa90068 sw r9,0x0068(r29)
001b2738: 3c04801c lui r4,0x801c
001b273c: 8c84c0cc lw r4,-0x3f34(r4)
001b2740: 3c02801c lui r2,0x801c
001b2744: 8c42c090 lw r2,-0x3f70(r2)
001b2748: 24840004 addiu r4,r4,0x0004
001b274c: 00022840 sll r5,r2,0x01
001b2750: 00a22821 addu r5,r5,r2
001b2754: 00052880 sll r5,r5,0x02
001b2758: 24a50004 addiu r5,r5,0x0004
001b275c: 0c008eed jal 0x00023bb4
001b2760: 02a52821 addu r5,r21,r5
001b2764: 3c02801c lui r2,0x801c
001b2768: 8c42c098 lw r2,-0x3f68(r2)
001b276c: 00000000 nop
001b2770: 8c430008 lw r3,0x0008(r2)
001b2774: 34020002 ori r2,r0,0x0002
001b2778: 10620005 beq r3,r2,0x001b2790
001b277c: 34050001 ori r5,r0,0x0001
001b2780: 8ea2112c lw r2,0x112c(r21)
001b2784: 00000000 nop
001b2788: 10400003 beq r2,r0,0x001b2798
001b278c: 00000000 nop
001b2790: 0806c9ea j 0x001b27a8
001b2794: 00a01021 addu r2,r5,r0


001b2798: 0c004a64 jal 0x00012990
001b279c: 3404001f ori r4,r0,0x001f
001b27a0: 00002821 addu r5,r0,r0

Return

001b27a4: 00a01021 addu r2,r5,r0
001b27a8: 8fbf009c lw r31,0x009c(r29)
001b27ac: 8fbe0098 lw r30,0x0098(r29)
001b27b0: 8fb70094 lw r23,0x0094(r29)
001b27b4: 8fb60090 lw r22,0x0090(r29)
001b27b8: 8fb5008c lw r21,0x008c(r29)
001b27bc: 8fb40088 lw r20,0x0088(r29)
001b27c0: 8fb30084 lw r19,0x0084(r29)
001b27c4: 8fb20080 lw r18,0x0080(r29)
001b27c8: 8fb1007c lw r17,0x007c(r29)
001b27cc: 8fb00078 lw r16,0x0078(r29)
001b27d0: 27bd00a0 addiu r29,r29,0x00a0
001b27d4: 03e00008 jr r31
001b27d8: 00000000 nop