? 0x68cd0

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
#   ROUTINE: ? 0x68cd0
#       Parameters:
#           r4 = (p1) ?
#           r5 = (startLoopPtr) ?
#           r6 = (endLoopIndex) ?

80068cd0: 3c028009 lui r2,0x8009
80068cd4: 8c42e53c lw r2,-0x1ac4(r2)                #   *0x8008e53c
80068cd8: 27bdffd0 addiu r29,r29,-0x0030
80068cdc: afb20020 sw r18,0x0020(r29)
80068ce0: 00809021 addu r18,r4,r0                   #   startLoopPtr
80068ce4: afb30024 sw r19,0x0024(r29)
80068ce8: 00c09821 addu r19,r6,r0                   #   endLoopIndex
80068cec: afbf0028 sw r31,0x0028(r29)
80068cf0: afb1001c sw r17,0x001c(r29)
80068cf4: 30420008 andi r2,r2,0x0008                #   *0x8008e53c & 0x08
80068cf8: 14400019 bne r2,r0,0x80068d60             #   if (*0x8008e53c & 0x08) return;
80068cfc: afb00018 sw r16,0x0018(r29)
80068d00: 1a600017 blez r19,0x80068d60              #   if (endLoopIndex <= 0) return;
80068d04: 00008021 addu r16,r0,r0                   #   loopIndex = 0
80068d08: 00a08821 addu r17,r5,r0                   #   loopPtr = startLoopPtr
                                                    #   do {
80068d0c: 8e240000 lw r4,0x0000(r17)                #       *loopPtr
80068d10: 00000000 nop
80068d14: 8c830000 lw r3,0x0000(r4)                 #       *(*loopPtr)
80068d18: 00000000 nop
80068d1c: 30620018 andi r2,r3,0x0018                #       *(*loopPtr) & 0x18
80068d20: 1440000b bne r2,r0,0x80068d50             #       if ((*(*loopPtr) & 0x18) == 0) loopIndex++; loopPtr+=4; continue;
80068d24: 30620001 andi r2,r3,0x0001                #       *(*loopPtr) & 0x01
80068d28: 10400005 beq r2,r0,0x80068d40             #       if ((*(*loopPtr) & 0x01) != 0) {
80068d2c: 30620002 andi r2,r3,0x0002                
80068d30: 0c01a360 jal 0x80068d80                   #           ? 0x68d80 (*loopPtr, p1);
80068d34: 02402821 addu r5,r18,r0                   
80068d38: 0801a355 j 0x80068d54
80068d3c: 26100001 addiu r16,r16,0x0001             #           loopIndex = loopIndex + 1
                                                    #           loopPtr = loopPtr + 4; continue;
                                                    #       }
80068d40: 10400003 beq r2,r0,0x80068d50             #       if ((*(*loopPtr) & 0x02) != 0) {
80068d44: 00000000 nop
80068d48: 0c01a483 jal 0x8006920c                   #           ? 0x6920c (*loopPtr, p1);       // Called during birthday menu
80068d4c: 02402821 addu r5,r18,r0                   
                                                    #       }
80068d50: 26100001 addiu r16,r16,0x0001             #       loopIndex = loopIndex + 1
80068d54: 0213102a slt r2,r16,r19
80068d58: 1440ffec bne r2,r0,0x80068d0c
80068d5c: 26310004 addiu r17,r17,0x0004             #       loopPtr = loopPtr + 4
                                                    #   } while (loopIndex < endLoopIndex);

80068d60: 8fbf0028 lw r31,0x0028(r29)
80068d64: 8fb30024 lw r19,0x0024(r29)
80068d68: 8fb20020 lw r18,0x0020(r29)
80068d6c: 8fb1001c lw r17,0x001c(r29)
80068d70: 8fb00018 lw r16,0x0018(r29)
80068d74: 27bd0030 addiu r29,r29,0x0030
80068d78: 03e00008 jr r31
80068d7c: 00000000 nop