0x12f04c
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