? 0x12a08c

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
#       Parameters:
#           r4 = (ptr) ?
#           r5 = (p2) ?

8012a08c: 00a03021 addu r6,r5,r0                    #   value = p2
8012a090: 00052c00 sll r5,r5,0x10                   #   p2 << 16
8012a094: 10a00012 beq r5,r0,0x8012a0e0             #   if ((p2 << 16) == 0) return ptr;
8012a098: 00000000 nop
                                                    #   do {
8012a09c: 90820000 lbu r2,0x0000(r4)                #       *ptr
8012a0a0: 00000000 nop
8012a0a4: 304300ff andi r3,r2,0x00ff                #       *ptr
8012a0a8: 2c6200d0 sltiu r2,r3,0x00d0
8012a0ac: 14400009 bne r2,r0,0x8012a0d4
8012a0b0: 24840001 addiu r4,r4,0x0001               #       ptr = ptr + 1
                                                    #       if (*ptr >= 0xd0) {
8012a0b4: 2c6200e0 sltiu r2,r3,0x00e0
8012a0b8: 10400003 beq r2,r0,0x8012a0c8             
8012a0bc: 2c6200fe sltiu r2,r3,0x00fe
                                                    #           if (*ptr < 0xe0) {
8012a0c0: 0804a835 j 0x8012a0d4
8012a0c4: 24840001 addiu r4,r4,0x0001               #               ptr = ptr + 1
                                                    #           } else if (ptr >= 0xfe) {
8012a0c8: 14400003 bne r2,r0,0x8012a0d8
8012a0cc: 00061400 sll r2,r6,0x10
8012a0d0: 24c6ffff addiu r6,r6,-0x0001              #               value = value - 1   
                                                    #           }
8012a0d4: 00061400 sll r2,r6,0x10                   #       }
8012a0d8: 1440fff0 bne r2,r0,0x8012a09c
8012a0dc: 00000000 nop                              #   } while ((value << 16) != 0);

8012a0e0: 03e00008 jr r31
8012a0e4: 00801021 addu r2,r4,r0                    #   return ptr;