? 0x12f04c

From Final Fantasy Hacktics Wiki
Revision as of 02:25, 3 May 2018 by Glain (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
#   ROUTINE: ? 0x12f04c
#   Handles displaying some things? Includes select action?
#       Parameters:
#           r4 = (p1) ?

8012f04c: 3c028001 lui r2,0x8001
8012f050: 8c420008 lw r2,0x0008(r2)             #   *0x80010008
8012f054: 27bdffe0 addiu r29,r29,-0x0020
8012f058: 0082102b sltu r2,r4,r2
8012f05c: 10400027 beq r2,r0,0x8012f0fc         #   if (p1 >= *0x80010008), return
8012f060: afbf0018 sw r31,0x0018(r29)
8012f064: 2402ffff addiu r2,r0,-0x0001          #   -1
8012f068: 10820024 beq r4,r2,0x8012f0fc         #   if (p1 == -1), return
8012f06c: 2409ffff addiu r9,r0,-0x0001          #   -1
8012f070: 3c028017 lui r2,0x8017
8012f074: 2442eb84 addiu r2,r2,-0x147c          #   0x8016eb84
8012f078: 00821023 subu r2,r4,r2                #   p1 - 0x8016eb84
8012f07c: 00023202 srl r6,r2,0x08               #   base = (p1 - 0x8016eb84) >> 8
8012f080: 3c088017 lui r8,0x8017
8012f084: 25082084 addiu r8,r8,0x2084           #   0x80172084
8012f088: 3c058017 lui r5,0x8017
8012f08c: 24a5eb08 addiu r5,r5,-0x14f8          #   ptr5 = 0x8016eb08
8012f090: 24a3fffc addiu r3,r5,-0x0004          #   ptr = 0x8016eb04
8012f094: 24a70080 addiu r7,r5,0x0080           #   0x8016eb88
                                                #   do {
8012f098: 8c620000 lw r2,0x0000(r3)             #       *ptr
8012f09c: 00000000 nop
8012f0a0: 14440010 bne r2,r4,0x8012f0e4         #       if (*ptr == p1) {
8012f0a4: 00000000 nop
8012f0a8: ac690000 sw r9,0x0000(r3)             #           *ptr = -1
8012f0ac: 8ca20000 lw r2,0x0000(r5)             #           *ptr5
8012f0b0: 00000000 nop
8012f0b4: 18400011 blez r2,0x8012f0fc           #           if (*ptr5 <= 0), break
8012f0b8: 00001821 addu r3,r0,r0                #           count = 0
8012f0bc: 00661021 addu r2,r3,r6                #           base + count
                                                #           do { 
8012f0c0: 00481021 addu r2,r2,r8                #               base + count + 0x80172084
8012f0c4: a0400000 sb r0,0x0000(r2)             #               *(base + count + 0x80172084) = 0
8012f0c8: 8ca20000 lw r2,0x0000(r5)             #               *ptr5
8012f0cc: 24630001 addiu r3,r3,0x0001           #               count = count + 1
8012f0d0: 0062102a slt r2,r3,r2
8012f0d4: 1440fffa bne r2,r0,0x8012f0c0
8012f0d8: 00661021 addu r2,r3,r6                #               ((p1 - 0x8016eb84) >> 8) + count
                                                #           } while (count < *ptr5)
8012f0dc: 0804bc3f j 0x8012f0fc                 #           break
8012f0e0: 00000000 nop
                                                #       } else {
8012f0e4: 24a50008 addiu r5,r5,0x0008           #           ptr5 = ptr5 + 8
8012f0e8: 00a7102a slt r2,r5,r7
8012f0ec: 1440ffea bne r2,r0,0x8012f098         #       
8012f0f0: 24630008 addiu r3,r3,0x0008           #           ptr = ptr + 8
                                                #   } while (ptr5 < 0x8016eb88)
                                                #   if (*ptr != p1) {
8012f0f4: 0c053256 jal 0x8014c958               #       ROUTINE: Stop Current Thread ();
8012f0f8: 00000000 nop
                                                #   }
8012f0fc: 8fbf0018 lw r31,0x0018(r29)
8012f100: 27bd0020 addiu r29,r29,0x0020
8012f104: 03e00008 jr r31
8012f108: 00000000 nop