ATTACK.OUT Copy Unit Data to Status Billboard

From Final Fantasy Hacktics Wiki
Revision as of 07:53, 20 April 2025 by RetroTypes (talk | contribs) (RetroTypes moved page ATTACK.OUT 001c5be0 - 001c60dc to ATTACK.OUT Copy Unit Data to Status Billboard: Renaming now that functionality has been determined)
Jump to navigation Jump to search
001c5be0: 27bdffd8 addiu r29,r29,0xffd8                #
001c5be4: afb10014 sw r17,0x0014(r29)                  #
001c5be8: 00a08821 addu r17,r5,r0                      #r17 = r5 (Value at 0x801cd064, Current Unit Party ID?)
001c5bec: afb00010 sw r16,0x0010(r29)                  #
001c5bf0: 3c10801e lui r16,0x801e                      #
001c5bf4: 2610cdfc addiu r16,r16,0xcdfc                #r16 = 0x801dcdfc (Unit Data?)
001c5bf8: 02002021 addu r4,r16,r0                      #r4  = 0x801dcdfc
001c5bfc: 00003021 addu r6,r0,r0                       #r6  = 0
001c5c00: afbf0020 sw r31,0x0020(r29)                  #
001c5c04: afb3001c sw r19,0x001c(r29)                  #
001c5c08: 0c016a35 jal 0x0005a8d4                      #Initialize Unit's Job Data routine
001c5c0c: afb20018 sw r18,0x0018(r29)                  #
001c5c10: 3c12801d lui r18,0x801d                      #
001c5c14: 2652a0e8 addiu r18,r18,0xa0e8                #r18 = 0x801ca0e8 (Start of Lower Billboard Data?)
001c5c18: 3c03801e lui r3,0x801e                       #
001c5c1c: 9063cdff lbu r3,-0x3201(r3)                  #r3  = Byte at 0x801dcdff (Unit ID?)
001c5c20: 3c04801e lui r4,0x801e                       #
001c5c24: 9084ce20 lbu r4,-0x31e0(r4)                  #r4  = Byte at 0x801dce20 (Br?)
001c5c28: 3c05801e lui r5,0x801e                       #
001c5c2c: 90a5ce22 lbu r5,-0x31de(r5)                  #r5  = Byte at 0x801dce22 (Fa?)
001c5c30: 3c02801e lui r2,0x801e                       #
001c5c34: 9442ce04 lhu r2,-0x31fc(r2)                  #r2  = Halfword at 0x801dce04 (Birthday/Zodiac?)
001c5c38: 3c01801d lui r1,0x801d                       #
001c5c3c: a431a0c8 sh r17,-0x5f38(r1)                  #Store Party ID? to Billboard at 0x801ca0c8
001c5c40: 3c01801d lui r1,0x801d                       #
001c5c44: a431a0d2 sh r17,-0x5f2e(r1)                  #Store Party ID? to Billboard at 0x801ca0d2 (why 2 locations..?)
001c5c48: 3c01801d lui r1,0x801d                       #
001c5c4c: a420a082 sh r0,-0x5f7e(r1)                   #Clear Halfword at 0x801ca082
001c5c50: 3c01801d lui r1,0x801d                       #
001c5c54: a423a0ca sh r3,-0x5f36(r1)                   #Store r3 to Billboard at 0x801ca0ca
001c5c58: 3c03801e lui r3,0x801e                       #
001c5c5c: 9063cfb6 lbu r3,-0x304a(r3)                  #r3  = Byte at 0x801dcfb6
001c5c60: 00021302 srl r2,r2,0x0c                      #r2  = Isolate Zodiac sign ?
001c5c64: 3c01801d lui r1,0x801d                       #
001c5c68: a424a0cc sh r4,-0x5f34(r1)                   #Store r4 to Billboard at 0x801ca0cc
001c5c6c: 3c01801d lui r1,0x801d                       #
001c5c70: a425a0ce sh r5,-0x5f32(r1)                   #Store r5 to Billboard at 0x801ca0ce
001c5c74: 3c01801d lui r1,0x801d                       #
001c5c78: a422a0d0 sh r2,-0x5f30(r1)                   #Store r2 to Billboard at 0x801ca0d0
001c5c7c: 30620030 andi r2,r3,0x0030                   #r2  = Bottom 4 Zodiacs ??
001c5c80: 10400004 beq r2,r0,0x001c5c94                #If one of the bottom 4 Zodiacs ??    /Else Branch
001c5c84: 02009821 addu r19,r16,r0                     #r19 = r16 = 0x801dcdfc (Unit Data?)
001c5c88: 34020001 ori r2,r0,0x0001                        #r2  = 1
001c5c8c: 3c01801d lui r1,0x801d                           #
001c5c90: a422a082 sh r2,-0x5f7e(r1)                       #Store 1 to 0x801ca082
001c5c94: 30620038 andi r2,r3,0x0038                   #r2  = ??
001c5c98: 14400004 bne r2,r0,0x001c5cac                #If ???    /Else Branch
001c5c9c: 26230200 addiu r3,r17,0x0200                 #r3  = Party ID? + 0x200 (Next Unit?)
001c5ca0: 34020002 ori r2,r0,0x0002                        #r2  = 2
001c5ca4: 3c01801d lui r1,0x801d                           #
001c5ca8: a422a082 sh r2,-0x5f7e(r1)                       #Store 2 to 0x801ca082
001c5cac: 3c02801e lui r2,0x801e                       #
001c5cb0: 9042ce1e lbu r2,-0x31e2(r2)                  #r2  = Byte at 0x801dce1e (Lv?)
001c5cb4: 3c04801e lui r4,0x801e                       #
001c5cb8: 9084ce1d lbu r4,-0x31e3(r4)                  #r4  = Byte at 0x801dce1d (EXP?)
001c5cbc: 3c05801e lui r5,0x801e                       #
001c5cc0: 94a5ce26 lhu r5,-0x31da(r5)                  #r5  = Halfword at 0x801dce26 (Max HP?)
001c5cc4: 3c01801d lui r1,0x801d                       #
001c5cc8: a420a084 sh r0,-0x5f7c(r1)                   #Clear Halfword at 0x801ca084
001c5ccc: 3c01801d lui r1,0x801d                       #
001c5cd0: a420a086 sh r0,-0x5f7a(r1)                   #Clear Halfword at 0x801ca086
001c5cd4: 3c01801d lui r1,0x801d                       #
001c5cd8: a423a08a sh r3,-0x5f76(r1)                   #Store r3 to Billboard at 0x801ca08a
001c5cdc: 3c01801d lui r1,0x801d                       #
001c5ce0: a422a080 sh r2,-0x5f80(r1)                   #Store r2 to Billboard at 0x801ca080
001c5ce4: 3c01801d lui r1,0x801d                       #
001c5ce8: a424a088 sh r4,-0x5f78(r1)                   #Store r4 to Billboard at 0x801ca088
001c5cec: 3c01801d lui r1,0x801d                       #
001c5cf0: a425a090 sh r5,-0x5f70(r1)                   #Store r5 to Billboard at 0x801ca090
001c5cf4: 14a00003 bne r5,r0,0x001c5d04                #If HP? is 0    /Else Branch if 0
001c5cf8: 24a20001 addiu r2,r5,0x0001                  #r2  = HP? + 1 ?
001c5cfc: 3c01801d lui r1,0x801d                           #
001c5d00: a422a090 sh r2,-0x5f70(r1)                       #Store r2 to Billboard at 0x801ca090
001c5d04: 3c02801d lui r2,0x801d                       #
001c5d08: 9442a090 lhu r2,-0x5f70(r2)                  #r2  = Halfword at 0x801ca090 (HP?)
001c5d0c: 3c03801e lui r3,0x801e                       #
001c5d10: 9463ce2a lhu r3,-0x31d6(r3)                  #r3  = Halfword at 0x801dce2a (MP?)
001c5d14: 3c01801d lui r1,0x801d                       #
001c5d18: a422a08c sh r2,-0x5f74(r1)                   #Store r2 to Billboard at 0x801ca08c
001c5d1c: 3c01801d lui r1,0x801d                       #
001c5d20: a423a096 sh r3,-0x5f6a(r1)                   #Store r3 to Billboard at 0x801ca096
001c5d24: 14600003 bne r3,r0,0x001c5d34                #If MP? is 0    /Else Branch if 0
001c5d28: 24620001 addiu r2,r3,0x0001                  #r2  = MP + 1 ?
001c5d2c: 3c01801d lui r1,0x801d                           #
001c5d30: a422a096 sh r2,-0x5f6a(r1)                       #Store r2 to Billboard at 0x801ca096
001c5d34: 3c04801d lui r4,0x801d                       #
001c5d38: 9484a096 lhu r4,-0x5f6a(r4)                  #r4  = Halfword at 0x801ca096 (MP?)
001c5d3c: 3c05801e lui r5,0x801e                       #
001c5d40: 90a5ce36 lbu r5,-0x31ca(r5)                  #r5  = Byte at 0x801dce36 (Move?)
001c5d44: 3c06801e lui r6,0x801e                       #
001c5d48: 90c6ce34 lbu r6,-0x31cc(r6)                  #r6  = Byte at 0x801dce34 (Speed?)
001c5d4c: 3c07801e lui r7,0x801e                       #
001c5d50: 90e7ce37 lbu r7,-0x31c9(r7)                  #r7  = Byte at 0x801dce37 (Jump?)
001c5d54: 3c08801e lui r8,0x801e                       #
001c5d58: 9108ce3a lbu r8,-0x31c6(r8)                  #r8  = Byte at 0x801dce3a (RH W-Ev?)
001c5d5c: 3c09801e lui r9,0x801e                       #
001c5d60: 9129ce3b lbu r9,-0x31c5(r9)                  #r9  = Byte at 0x801dce3b (LH W-Ev?)
001c5d64: 3c0a801e lui r10,0x801e                      #
001c5d68: 914ace38 lbu r10,-0x31c8(r10)                #r10 = Byte at 0x801dce38 (RH WP?)
001c5d6c: 3c0b801e lui r11,0x801e                      #
001c5d70: 916bce39 lbu r11,-0x31c7(r11)                #r11 = Byte at 0x801dce39 (W2-Ev?)
001c5d74: 3c0c801e lui r12,0x801e                      #
001c5d78: 918cce32 lbu r12,-0x31ce(r12)                #r12 = Byte at 0x801dce32 (PA?)
001c5d7c: 3c0d801e lui r13,0x801e                      #
001c5d80: 91adce3f lbu r13,-0x31c1(r13)                #r13 = Byte at 0x801dce3f (P-C-Ev?)
001c5d84: 3c0e801e lui r14,0x801e                      #
001c5d88: 91cece3d lbu r14,-0x31c3(r14)                #r14 = Byte at 0x801dce3d (RH P-S-Ev?)
001c5d8c: 3c0f801e lui r15,0x801e                      #
001c5d90: 91efce3d lbu r15,-0x31c3(r15)                #r15 = Byte at 0x801dce3d (RH P-S-Ev?)
001c5d94: 3c03801e lui r3,0x801e                       #
001c5d98: 9063ce3e lbu r3,-0x31c2(r3)                  #r3  = Byte at 0x801dce3e (LH P-S-Ev?)
001c5d9c: 34020064 ori r2,r0,0x0064                    #r2  = 0x64 (100)
001c5da0: 3c01801d lui r1,0x801d                       #
001c5da4: a422a09c sh r2,-0x5f64(r1)                   #Store r2 to Billboard at 0x801ca09c (Max CT?)
001c5da8: 3c01801d lui r1,0x801d                       #
001c5dac: a422a098 sh r2,-0x5f68(r1)                   #Store r2 to Billboard at 0x801ca098 (CT?)
001c5db0: 006f182b sltu r3,r3,r15                      #Compare r3 to r15
001c5db4: 3c01801d lui r1,0x801d                       #
001c5db8: a424a092 sh r4,-0x5f6e(r1)                   #Store r4 to Billboard at 0x801ca092
001c5dbc: a6450000 sh r5,0x0000(r18)                   #Store r5 to Billboard at 0x801ca0e8
001c5dc0: 3c01801d lui r1,0x801d                       #
001c5dc4: a426a0ea sh r6,-0x5f16(r1)                   #Store r6 to Billboard at 0x801ca0ea
001c5dc8: 3c01801d lui r1,0x801d                       #
001c5dcc: a427a0ec sh r7,-0x5f14(r1)                   #Store r7 to Billboard at 0x801ca0ec
001c5dd0: 3c01801d lui r1,0x801d                       #
001c5dd4: a428a0f2 sh r8,-0x5f0e(r1)                   #Store r8 to Billboard at 0x801ca0f2
001c5dd8: 3c01801d lui r1,0x801d                       #
001c5ddc: a429a0f4 sh r9,-0x5f0c(r1)                   #Store r9 to Billboard at 0x801ca0f4
001c5de0: 3c01801d lui r1,0x801d                       #
001c5de4: a42aa0ee sh r10,-0x5f12(r1)                  #Store r10 to Billboard at 0x801ca0ee
001c5de8: 3c01801d lui r1,0x801d                       #
001c5dec: a42ba0f0 sh r11,-0x5f10(r1)                  #Store r11 to Billboard at 0x801ca0f0
001c5df0: 3c01801d lui r1,0x801d                       #
001c5df4: a42ca0fa sh r12,-0x5f06(r1)                  #Store r12 to Billboard at 0x801ca0fa
001c5df8: 3c01801d lui r1,0x801d                       #
001c5dfc: a42da0fc sh r13,-0x5f04(r1)                  #Store r13 to Billboard at 0x801ca0fc
001c5e00: 3c01801d lui r1,0x801d                       #
001c5e04: a42ea0fe sh r14,-0x5f02(r1)                  #Store r14 to Billboard at 0x801ca0fe
001c5e08: 14600005 bne r3,r0,0x001c5e20                #If RH P-S-Ev is the highest P-S-Ev ?    /Else Branch
001c5e0c: 00000000 nop                                 #
001c5e10: 3c02801e lui r2,0x801e                           #
001c5e14: 9042ce3e lbu r2,-0x31c2(r2)                      #r2  = Byte at 0x801dce3e (LH P-S-Ev?)
001c5e18: 3c01801d lui r1,0x801d                           #
001c5e1c: a422a0fe sh r2,-0x5f02(r1)                       #Store r2  to Billboard at 0x801ca0fe
001c5e20: 3c03801e lui r3,0x801e                       #
001c5e24: 9063ce3c lbu r3,-0x31c4(r3)                  #r3  = Byte at 0x801dce3c (P-A-Ev?)
001c5e28: 3c04801e lui r4,0x801e                       #
001c5e2c: 9084ce33 lbu r4,-0x31cd(r4)                  #r4  = Byte at 0x801dce33 (MA?)
001c5e30: 3c05801e lui r5,0x801e                       #
001c5e34: 90a5ce41 lbu r5,-0x31bf(r5)                  #r5  = Byte at 0x801dce41 (RH M-S-Ev?)
001c5e38: 3c06801e lui r6,0x801e                       #
001c5e3c: 90c6ce41 lbu r6,-0x31bf(r6)                  #r6  = Byte at 0x801dce41 (RH M-S-Ev?)
001c5e40: 3c02801e lui r2,0x801e                       #
001c5e44: 9042ce42 lbu r2,-0x31be(r2)                  #r2  = Byte at 0x801dce3c (LH M-S-Ev?)
001c5e48: 3c01801d lui r1,0x801d                       #
001c5e4c: a420a106 sh r0,-0x5efa(r1)                   #Clear Halfword at 0x801ca106 (M C-EV)
001c5e50: 0046102b sltu r2,r2,r6                       #Compare r2 to r6
001c5e54: 3c01801d lui r1,0x801d                       #
001c5e58: a423a100 sh r3,-0x5f00(r1)                   #Store r3 to Billboard at 0x801ca100
001c5e5c: 3c01801d lui r1,0x801d                       #
001c5e60: a424a104 sh r4,-0x5efc(r1)                   #Store r4 to Billboard at 0x801ca104
001c5e64: 3c01801d lui r1,0x801d                       #
001c5e68: a425a108 sh r5,-0x5ef8(r1)                   #Store r5 to Billboard at 0x801ca108
001c5e6c: 14400005 bne r2,r0,0x001c5e84                #If RH M-S-Ev is the highest M-S-Ev ?    /Else Branch
001c5e70: 34040004 ori r4,r0,0x0004                    #r4  = 4 (counter)
001c5e74: 3c02801e lui r2,0x801e                           #
001c5e78: 9042ce42 lbu r2,-0x31be(r2)                      #r2  = Byte at 0x801dce3c (LH M-S-Ev?)
001c5e7c: 3c01801d lui r1,0x801d                           #
001c5e80: a422a108 sh r2,-0x5ef8(r1)                       #Store r2 to Billboard at 0x801ca108
001c5e84: 3c02801e lui r2,0x801e                       #
001c5e88: 9042ce40 lbu r2,-0x31c0(r2)                  #r2  = Byte at 0x801dce40 (M-A-Ev?)
001c5e8c: 26430008 addiu r3,r18,0x0008                 #r3  = r18 + 8 (Billboard pointer + 8)
001c5e90: 3c01801d lui r1,0x801d                       #
001c5e94: a422a10a sh r2,-0x5ef6(r1)                   #Store r2 to Billboard at 0x801ca10a
                                                       #Loop Start
001c5e98: a4600024 sh r0,0x0024(r3)                        #Clear Equipment
001c5e9c: 2484ffff addiu r4,r4,0xffff                      #Subtract 1 from r4 counter
001c5ea0: 0481fffd bgez r4,0x001c5e98                      #Loop 3 times
001c5ea4: 2463fffe addiu r3,r3,0xfffe                      #Subtract 2 from r3 (move to previous equipment slot)
001c5ea8: 92620006 lbu r2,0x0006(r19)                  #r2 = Unit Gender
001c5eac: 00000000 nop                                 #
001c5eb0: 30420020 andi r2,r2,0x0020                   #Monster check
001c5eb4: 1440001a bne r2,r0,0x001c5f20                #If Human    /Else Branch if Monster (Monsters cannot wear things)
001c5eb8: 340200ff ori r2,r0,0x00ff                    #r2  = 0xFF
001c5ebc: 9263001d lbu r3,0x001d(r19)                      #r3 = RH Weapon
001c5ec0: 00000000 nop                                     #
001c5ec4: 10620004 beq r3,r2,0x001c5ed8                    #If RH has valid Weapon    /Else Branch if right hand is actually Shield
001c5ec8: 00000000 nop                                     #
001c5ecc: 9262001d lbu r2,0x001d(r19)                          #r2 = RH Weapon
001c5ed0: 080717b9 j 0x001c5ee4                                #Jump to LH Equipment
001c5ed4: a6420024 sh r2,0x0024(r18)                           #Store RH Weapon as RH Equipment
001c5ed8: 9262001e lbu r2,0x001e(r19)                      #r2 = RH Shield
001c5edc: 00000000 nop                                     #
001c5ee0: a6420024 sh r2,0x0024(r18)                       #Store RH Shield as RH Equipment
001c5ee4: 9263001f lbu r3,0x001f(r19)                      #r3 = LH weapon
001c5ee8: 340200ff ori r2,r0,0x00ff                        #r2 = 0xFF
001c5eec: 10620004 beq r3,r2,0x001c5f00                    #If LH has valid Weapon    /Else Branch if left hand is actually Shield
001c5ef0: 00000000 nop                                     #
001c5ef4: 9265001f lbu r5,0x001f(r19)                          #r5 = LH Weapon
001c5ef8: 080717c1 j 0x001c5f04                                #Jump to Helmet Equipment
001c5efc: 00000000 nop                                         #
001c5f00: 92650020 lbu r5,0x0020(r19)                      #r5  = LH Shield
001c5f04: 9262001a lbu r2,0x001a(r19)                      #r2  = Helmet
001c5f08: 9263001b lbu r3,0x001b(r19)                      #r3  = Armor
001c5f0c: 9264001c lbu r4,0x001c(r19)                      #r4  = Accessory
001c5f10: a6450026 sh r5,0x0026(r18)                       #Store LH Equipment to Billboard
001c5f14: a6420028 sh r2,0x0028(r18)                       #Store Helmet to Billboard
001c5f18: a643002a sh r3,0x002a(r18)                       #Store Armor to Billboard
001c5f1c: a644002c sh r4,0x002c(r18)                       #Store Accessory to Billboard
001c5f20: 00002021 addu r4,r0,r0                       #r4  = 0 (counter)
001c5f24: 340600ff ori r6,r0,0x00ff                    #r6  = 0xFF
001c5f28: 2405ffff addiu r5,r0,0xffff                  #r5  = -1
001c5f2c: 02401821 addu r3,r18,r0                      #r3  = Billboard pointer
                                                       #Loop Start
001c5f30: 84620024 lh r2,0x0024(r3)                        #r2  = Equipment
001c5f34: 00000000 nop                                     #
001c5f38: 10400003 beq r2,r0,0x001c5f48                    #If not null
001c5f3c: 00000000 nop                                     #
001c5f40: 14460002 bne r2,r6,0x001c5f4c                        #If invalid
001c5f44: 00000000 nop                                         #
001c5f48: a4650024 sh r5,0x0024(r3)                        #       #Store -1 (no Equipment) to Billboard
001c5f4c: 24840001 addiu r4,r4,0x0001                      #r4 counter++
001c5f50: 28820005 slti r2,r4,0x0005                       #Compare counter to 5
001c5f54: 1440fff6 bne r2,r0,0x001c5f30                    #Loop 5 times
001c5f58: 24630002 addiu r3,r3,0x0002                      #Add 2 to r3 (Move to next Billboard slot)
001c5f5c: 92620012 lbu r2,0x0012(r19)                  #r2 = Unit's Primary Skillset
001c5f60: 00000000 nop                                 #
001c5f64: 24420050 addiu r2,r2,0x0050                  #r2 = Unit's Primary Skillset + 0x50
001c5f68: 304200ff andi r2,r2,0x00ff                   #Isolate last 2 bits (Generic Monster = Skillset - 0xb0; otherwise = Skillset + 0x50)
001c5f6c: 2c420030 sltiu r2,r2,0x0030                  #Compare to 0x30 (True if Skillset is Generic Monster)
001c5f70: 10400003 beq r2,r0,0x001c5f80                #If Generic Monster    /Else Branch if Not Generic Monster
001c5f74: a640000e sh r0,0x000e(r18)                   #Clear Monster Flag
001c5f78: 34020001 ori r2,r0,0x0001                        #r2  = 1
001c5f7c: a642000e sh r2,0x000e(r18)                       #Set Monster Flag
001c5f80: 8642000e lh r2,0x000e(r18)                   #Load Monster Flag
001c5f84: 00000000 nop                                 #
001c5f88: 10400010 beq r2,r0,0x001c5fcc                #If Generic Monster    /Else Branch
001c5f8c: 00000000 nop                                 #
001c5f90: 92640012 lbu r4,0x0012(r19)                      #r4  = Unit's Primary Skillset
001c5f94: 0c01698e jal 0x0005a638                          #Store Skillset's Abilities routine
001c5f98: 34050001 ori r5,r0,0x0001                        #r5 = 1 (Check Active Abilities, not RSM)
001c5f9c: 00402821 addu r5,r2,r0                           #r5 = Temporary Ability List Pointer
001c5fa0: 00002021 addu r4,r0,r0                           #r4 = 0 (counter)
001c5fa4: 02401821 addu r3,r18,r0                          #r3 = Billboard pointer
                                                           #Loop Start
001c5fa8: 94a20000 lhu r2,0x0000(r5)                           #r2 = First Ability ID
001c5fac: 24a50002 addiu r5,r5,0x0002                          #Add 2 to r5 (Go to next Ability Pointer)
001c5fb0: 24840001 addiu r4,r4,0x0001                          #Add 1 to r4 (counter++)
001c5fb4: a462002e sh r2,0x002e(r3)                            #Store Ability to 1st Monster Ability Slot on Billboard
001c5fb8: 28820005 slti r2,r4,0x0005                           #Compare counter to 5
001c5fbc: 1440fffa bne r2,r0,0x001c5fa8                        #Loop 5 times
001c5fc0: 24630002 addiu r3,r3,0x0002                          #Add 2 to r3 (Move to next Billboard slot)
001c5fc4: 08071807 j 0x001c601c                            #Jump past non-Generic Monster Skillset stuff
001c5fc8: a6400034 sh r0,0x0034(r18)                       #Clear Support (Erase 4th Monster Ability, do not show Monster Skill Abilities)
001c5fcc: 92620012 lbu r2,0x0012(r19)                  #If Human; r2 = Unit's Primary Skillset
001c5fd0: 00000000 nop                                 #
001c5fd4: 14400004 bne r2,r0,0x001c5fe8                #If null/invalid    /Else Branch
001c5fd8: a642002e sh r2,0x002e(r18)                   #Store Unit's Primary Skillset to Billboard
001c5fdc: 340200fe ori r2,r0,0x00fe                        #r2  = 0xFE
001c5fe0: 3c01801d lui r1,0x801d                           #
001c5fe4: a022a168 sb r2,-0x5e98(r1)                       #Store 0xFE to 0x801ca168 ?
001c5fe8: 92620013 lbu r2,0x0013(r19)                  #r2  = Unit's Secondary Skillset
001c5fec: 00000000 nop                                 #
001c5ff0: 14400004 bne r2,r0,0x001c6004                #If null/invalid    /Else Branch
001c5ff4: a6420030 sh r2,0x0030(r18)                   #Store Unit's Secondary Skillset to Billboard
001c5ff8: 340200fe ori r2,r0,0x00fe                        #r2  = 0xFE
001c5ffc: 3c01801d lui r1,0x801d                           #
001c6000: a022a17d sb r2,-0x5e83(r1)                       #Store 0xFE to 0x801ca17d ?
001c6004: 96620014 lhu r2,0x0014(r19)                  #r2  = Reaction
001c6008: 96630016 lhu r3,0x0016(r19)                  #r3  = Support
001c600c: 96640018 lhu r4,0x0018(r19)                  #r4  = Movement
001c6010: a6420032 sh r2,0x0032(r18)                   #Store Reaction to Billboard
001c6014: a6430034 sh r3,0x0034(r18)                   #Store Support to Billboard
001c6018: a6440036 sh r4,0x0036(r18)                   #Store Movement to Billboard
001c601c: 00008021 addu r16,r0,r0                      #r16 = 0
001c6020: 86430024 lh r3,0x0024(r18)                   #r3  = RH Equipment
001c6024: 2402ffff addiu r2,r0,0xffff                  #r2  = -1
001c6028: 10620008 beq r3,r2,0x001c604c                #If valid Equipment
001c602c: a6400010 sh r0,0x0010(r18)                   #Clear 2 Hands flag on Billboard
001c6030: 86420026 lh r2,0x0026(r18)                       #r2  = LH Equipment
001c6034: 00000000 nop                                     #
001c6038: 00021027 nor r2,r0,r2                            #This is a bunch of compiler math that I dont understand enough to document line by line
001c603c: 2c420001 sltiu r2,r2,0x0001                      #But I know this ends up being a check for if the Billboard should display the 2 Hands icon
001c6040: 00021023 subu r2,r0,r2                           #
001c6044: 08071818 j 0x001c6060                            #Jump
001c6048: 00628024 and r16,r3,r2                           #
001c604c: 86420026 lh r2,0x0026(r18)                   #r2  = LH Equipment
001c6050: 00000000 nop                                 #
001c6054: 10430002 beq r2,r3,0x001c6060                #If both LH and RH equipment are the same    /Else Branch
001c6058: 00000000 nop                                 #
001c605c: 00408021 addu r16,r2,r0                          #r16 = LH Equipment
001c6060: 12000017 beq r16,r0,0x001c60c0               #If not empty    /Else Branch
001c6064: 00000000 nop                                 #
001c6068: 0c016a21 jal 0x0005a884                          #Get Item Data Pointer
001c606c: 02002021 addu r4,r16,r0                          #r4  = LH Equipment
001c6070: 90420003 lbu r2,0x0003(r2)                       #r2  = Item Type
001c6074: 00000000 nop                                     #
001c6078: 30420080 andi r2,r2,0x0080                       #r2 = 0x80 (Weapon flag)
001c607c: 10400010 beq r2,r0,0x001c60c0                    #If Weapon    /Else Branch if not weapon
001c6080: 001010c0 sll r2,r16,0x03                             #Item ID * 8
001c6084: 3c018006 lui r1,0x8006                               #
001c6088: 00220821 addu r1,r1,r2                               #
001c608c: 90233ab9 lbu r3,0x3ab9(r1)                           #Weapon Attack flags
001c6090: 00000000 nop                                         #
001c6094: 30620001 andi r2,r3,0x0001                           #Forced 2 Hands check
001c6098: 14400008 bne r2,r0,0x001c60bc                        #If Item is not Forced 2 Hands    /Else Branch if Forced 2 Hands
001c609c: 34020001 ori r2,r0,0x0001                            #r2 = 1
001c60a0: 92620091 lbu r2,0x0091(r19)                              #r2 = Unit's Support Abilities 3
001c60a4: 00000000 nop                                             #
001c60a8: 30420002 andi r2,r2,0x0002                               #2 Hands check
001c60ac: 10400004 beq r2,r0,0x001c60c0                            #If 2 Hands Support Ability equipped    /Else Branch if 2 hands not equipped
001c60b0: 30620004 andi r2,r3,0x0004                                   #Item 2 Hands check (can be 2 Hands'd)
001c60b4: 10400002 beq r2,r0,0x001c60c0                                #If Weapon can be 2 Hands'd    /Else Branch if cannot
001c60b8: 34020001 ori r2,r0,0x0001                                    #r2 = 1
001c60bc: a6420010 sh r2,0x0010(r18)                           #           #Store 2 Hands to Billboard
001c60c0: 8fbf0020 lw r31,0x0020(r29)                  #End
001c60c4: 8fb3001c lw r19,0x001c(r29)                  #
001c60c8: 8fb20018 lw r18,0x0018(r29)                  #
001c60cc: 8fb10014 lw r17,0x0014(r29)                  #
001c60d0: 8fb00010 lw r16,0x0010(r29)                  #
001c60d4: 27bd0028 addiu r29,r29,0x0028                #
001c60d8: 03e00008 jr r31                              #
001c60dc: 00000000 nop                                 #