prime/asm/MetroidPrime/ScriptObjects/CScriptActorRotate.s

985 lines
51 KiB
ArmAsm

.include "macros.inc"
.section .data
.balign 8
.global lbl_803E2D08
lbl_803E2D08:
# ROM: 0x3DFD08
.4byte 0
.4byte 0
.4byte __dt__18CScriptActorRotateFv
.4byte Accept__18CScriptActorRotateFR8IVisitor
.4byte PreThink__7CEntityFfR13CStateManager
.4byte Think__18CScriptActorRotateFfR13CStateManager
.4byte AcceptScriptMsg__18CScriptActorRotateF20EScriptObjectMessage9TUniqueIdR13CStateManager
.4byte SetActive__7CEntityFb
.section .text, "ax"
.global __dt__18CScriptActorRotateFv
__dt__18CScriptActorRotateFv:
/* 80153A2C 0015098C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80153A30 00150990 7C 08 02 A6 */ mflr r0
/* 80153A34 00150994 90 01 00 24 */ stw r0, 0x24(r1)
/* 80153A38 00150998 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80153A3C 0015099C 7C 9F 23 78 */ mr r31, r4
/* 80153A40 001509A0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80153A44 001509A4 7C 7E 1B 79 */ or. r30, r3, r3
/* 80153A48 001509A8 41 82 00 74 */ beq lbl_80153ABC
/* 80153A4C 001509AC 3C 60 80 3E */ lis r3, lbl_803E2D08@ha
/* 80153A50 001509B0 34 1E 00 48 */ addic. r0, r30, 0x48
/* 80153A54 001509B4 38 03 2D 08 */ addi r0, r3, lbl_803E2D08@l
/* 80153A58 001509B8 90 1E 00 00 */ stw r0, 0(r30)
/* 80153A5C 001509BC 41 82 00 44 */ beq lbl_80153AA0
/* 80153A60 001509C0 80 1E 00 4C */ lwz r0, 0x4c(r30)
/* 80153A64 001509C4 80 7E 00 54 */ lwz r3, 0x54(r30)
/* 80153A68 001509C8 1C 00 00 34 */ mulli r0, r0, 0x34
/* 80153A6C 001509CC 90 61 00 0C */ stw r3, 0xc(r1)
/* 80153A70 001509D0 7C 64 1B 78 */ mr r4, r3
/* 80153A74 001509D4 7C 03 02 14 */ add r0, r3, r0
/* 80153A78 001509D8 90 61 00 08 */ stw r3, 8(r1)
/* 80153A7C 001509DC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80153A80 001509E0 90 01 00 10 */ stw r0, 0x10(r1)
/* 80153A84 001509E4 48 00 00 08 */ b lbl_80153A8C
lbl_80153A88:
/* 80153A88 001509E8 38 84 00 34 */ addi r4, r4, 0x34
lbl_80153A8C:
/* 80153A8C 001509EC 7C 04 00 40 */ cmplw r4, r0
/* 80153A90 001509F0 40 82 FF F8 */ bne lbl_80153A88
/* 80153A94 001509F4 28 03 00 00 */ cmplwi r3, 0
/* 80153A98 001509F8 41 82 00 08 */ beq lbl_80153AA0
/* 80153A9C 001509FC 48 1C 1E 95 */ bl Free__7CMemoryFPCv
lbl_80153AA0:
/* 80153AA0 00150A00 7F C3 F3 78 */ mr r3, r30
/* 80153AA4 00150A04 38 80 00 00 */ li r4, 0
/* 80153AA8 00150A08 4B EF D7 CD */ bl __dt__7CEntityFv
/* 80153AAC 00150A0C 7F E0 07 35 */ extsh. r0, r31
/* 80153AB0 00150A10 40 81 00 0C */ ble lbl_80153ABC
/* 80153AB4 00150A14 7F C3 F3 78 */ mr r3, r30
/* 80153AB8 00150A18 48 1C 1E 79 */ bl Free__7CMemoryFPCv
lbl_80153ABC:
/* 80153ABC 00150A1C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80153AC0 00150A20 7F C3 F3 78 */ mr r3, r30
/* 80153AC4 00150A24 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80153AC8 00150A28 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80153ACC 00150A2C 7C 08 03 A6 */ mtlr r0
/* 80153AD0 00150A30 38 21 00 20 */ addi r1, r1, 0x20
/* 80153AD4 00150A34 4E 80 00 20 */ blr
.global Accept__18CScriptActorRotateFR8IVisitor
Accept__18CScriptActorRotateFR8IVisitor:
/* 80153AD8 00150A38 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80153ADC 00150A3C 7C 08 02 A6 */ mflr r0
/* 80153AE0 00150A40 90 01 00 14 */ stw r0, 0x14(r1)
/* 80153AE4 00150A44 7C 60 1B 78 */ mr r0, r3
/* 80153AE8 00150A48 7C 83 23 78 */ mr r3, r4
/* 80153AEC 00150A4C 81 84 00 00 */ lwz r12, 0(r4)
/* 80153AF0 00150A50 7C 04 03 78 */ mr r4, r0
/* 80153AF4 00150A54 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 80153AF8 00150A58 7D 89 03 A6 */ mtctr r12
/* 80153AFC 00150A5C 4E 80 04 21 */ bctrl
/* 80153B00 00150A60 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80153B04 00150A64 7C 08 03 A6 */ mtlr r0
/* 80153B08 00150A68 38 21 00 10 */ addi r1, r1, 0x10
/* 80153B0C 00150A6C 4E 80 00 20 */ blr
.global AcceptScriptMsg__18CScriptActorRotateF20EScriptObjectMessage9TUniqueIdR13CStateManager
AcceptScriptMsg__18CScriptActorRotateF20EScriptObjectMessage9TUniqueIdR13CStateManager:
/* 80153B10 00150A70 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80153B14 00150A74 7C 08 02 A6 */ mflr r0
/* 80153B18 00150A78 90 01 00 34 */ stw r0, 0x34(r1)
/* 80153B1C 00150A7C BF 61 00 1C */ stmw r27, 0x1c(r1)
/* 80153B20 00150A80 7C 9C 23 78 */ mr r28, r4
/* 80153B24 00150A84 2C 1C 00 13 */ cmpwi r28, 0x13
/* 80153B28 00150A88 7C 7B 1B 78 */ mr r27, r3
/* 80153B2C 00150A8C 7C BD 2B 78 */ mr r29, r5
/* 80153B30 00150A90 7C DE 33 78 */ mr r30, r6
/* 80153B34 00150A94 3B E0 00 00 */ li r31, 0
/* 80153B38 00150A98 41 82 00 4C */ beq lbl_80153B84
/* 80153B3C 00150A9C 40 80 00 1C */ bge lbl_80153B58
/* 80153B40 00150AA0 2C 1C 00 08 */ cmpwi r28, 8
/* 80153B44 00150AA4 41 82 00 40 */ beq lbl_80153B84
/* 80153B48 00150AA8 40 80 00 60 */ bge lbl_80153BA8
/* 80153B4C 00150AAC 2C 1C 00 01 */ cmpwi r28, 1
/* 80153B50 00150AB0 41 82 00 14 */ beq lbl_80153B64
/* 80153B54 00150AB4 48 00 00 54 */ b lbl_80153BA8
lbl_80153B58:
/* 80153B58 00150AB8 2C 1C 00 21 */ cmpwi r28, 0x21
/* 80153B5C 00150ABC 41 82 00 1C */ beq lbl_80153B78
/* 80153B60 00150AC0 48 00 00 48 */ b lbl_80153BA8
lbl_80153B64:
/* 80153B64 00150AC4 A0 1D 00 00 */ lhz r0, 0(r29)
/* 80153B68 00150AC8 38 A1 00 0C */ addi r5, r1, 0xc
/* 80153B6C 00150ACC B0 01 00 0C */ sth r0, 0xc(r1)
/* 80153B70 00150AD0 4B EF D5 ED */ bl AcceptScriptMsg__7CEntityF20EScriptObjectMessage9TUniqueIdR13CStateManager
/* 80153B74 00150AD4 3B E0 00 01 */ li r31, 1
lbl_80153B78:
/* 80153B78 00150AD8 88 1B 00 58 */ lbz r0, 0x58(r27)
/* 80153B7C 00150ADC 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f
/* 80153B80 00150AE0 41 82 00 28 */ beq lbl_80153BA8
lbl_80153B84:
/* 80153B84 00150AE4 88 1B 00 30 */ lbz r0, 0x30(r27)
/* 80153B88 00150AE8 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80153B8C 00150AEC 41 82 00 1C */ beq lbl_80153BA8
/* 80153B90 00150AF0 20 1C 00 08 */ subfic r0, r28, 8
/* 80153B94 00150AF4 7F 63 DB 78 */ mr r3, r27
/* 80153B98 00150AF8 7C 00 00 34 */ cntlzw r0, r0
/* 80153B9C 00150AFC 7F C5 F3 78 */ mr r5, r30
/* 80153BA0 00150B00 54 04 D9 7E */ srwi r4, r0, 5
/* 80153BA4 00150B04 48 00 00 3D */ bl UpdateActors__18CScriptActorRotateFbR13CStateManager
lbl_80153BA8:
/* 80153BA8 00150B08 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 80153BAC 00150B0C 40 82 00 20 */ bne lbl_80153BCC
/* 80153BB0 00150B10 A0 1D 00 00 */ lhz r0, 0(r29)
/* 80153BB4 00150B14 7F 63 DB 78 */ mr r3, r27
/* 80153BB8 00150B18 7F 84 E3 78 */ mr r4, r28
/* 80153BBC 00150B1C 7F C6 F3 78 */ mr r6, r30
/* 80153BC0 00150B20 B0 01 00 08 */ sth r0, 8(r1)
/* 80153BC4 00150B24 38 A1 00 08 */ addi r5, r1, 8
/* 80153BC8 00150B28 4B EF D5 95 */ bl AcceptScriptMsg__7CEntityF20EScriptObjectMessage9TUniqueIdR13CStateManager
lbl_80153BCC:
/* 80153BCC 00150B2C BB 61 00 1C */ lmw r27, 0x1c(r1)
/* 80153BD0 00150B30 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80153BD4 00150B34 7C 08 03 A6 */ mtlr r0
/* 80153BD8 00150B38 38 21 00 30 */ addi r1, r1, 0x30
/* 80153BDC 00150B3C 4E 80 00 20 */ blr
.global UpdateActors__18CScriptActorRotateFbR13CStateManager
UpdateActors__18CScriptActorRotateFbR13CStateManager:
/* 80153BE0 00150B40 94 21 FF 10 */ stwu r1, -0xf0(r1)
/* 80153BE4 00150B44 7C 08 02 A6 */ mflr r0
/* 80153BE8 00150B48 90 01 00 F4 */ stw r0, 0xf4(r1)
/* 80153BEC 00150B4C BE C1 00 C8 */ stmw r22, 0xc8(r1)
/* 80153BF0 00150B50 7C 77 1B 78 */ mr r23, r3
/* 80153BF4 00150B54 7C 98 23 78 */ mr r24, r4
/* 80153BF8 00150B58 7C B9 2B 78 */ mr r25, r5
/* 80153BFC 00150B5C 88 03 00 58 */ lbz r0, 0x58(r3)
/* 80153C00 00150B60 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80153C04 00150B64 40 82 02 4C */ bne lbl_80153E50
/* 80153C08 00150B68 80 17 00 4C */ lwz r0, 0x4c(r23)
/* 80153C0C 00150B6C 80 77 00 54 */ lwz r3, 0x54(r23)
/* 80153C10 00150B70 1C 00 00 34 */ mulli r0, r0, 0x34
/* 80153C14 00150B74 90 61 00 10 */ stw r3, 0x10(r1)
/* 80153C18 00150B78 7C 03 02 14 */ add r0, r3, r0
/* 80153C1C 00150B7C 90 61 00 0C */ stw r3, 0xc(r1)
/* 80153C20 00150B80 90 01 00 18 */ stw r0, 0x18(r1)
/* 80153C24 00150B84 90 01 00 14 */ stw r0, 0x14(r1)
/* 80153C28 00150B88 48 00 00 08 */ b lbl_80153C30
lbl_80153C2C:
/* 80153C2C 00150B8C 38 63 00 34 */ addi r3, r3, 0x34
lbl_80153C30:
/* 80153C30 00150B90 7C 03 00 40 */ cmplw r3, r0
/* 80153C34 00150B94 40 82 FF F8 */ bne lbl_80153C2C
/* 80153C38 00150B98 38 00 00 00 */ li r0, 0
/* 80153C3C 00150B9C 3B 41 00 8C */ addi r26, r1, 0x8c
/* 80153C40 00150BA0 90 17 00 4C */ stw r0, 0x4c(r23)
/* 80153C44 00150BA4 83 F7 00 2C */ lwz r31, 0x2c(r23)
/* 80153C48 00150BA8 48 00 01 A4 */ b lbl_80153DEC
lbl_80153C4C:
/* 80153C4C 00150BAC 80 1F 00 00 */ lwz r0, 0(r31)
/* 80153C50 00150BB0 2C 00 00 12 */ cmpwi r0, 0x12
/* 80153C54 00150BB4 40 82 01 94 */ bne lbl_80153DE8
/* 80153C58 00150BB8 80 1F 00 04 */ lwz r0, 4(r31)
/* 80153C5C 00150BBC 2C 00 00 14 */ cmpwi r0, 0x14
/* 80153C60 00150BC0 40 82 01 88 */ bne lbl_80153DE8
/* 80153C64 00150BC4 80 1F 00 08 */ lwz r0, 8(r31)
/* 80153C68 00150BC8 7F 24 CB 78 */ mr r4, r25
/* 80153C6C 00150BCC 38 61 00 38 */ addi r3, r1, 0x38
/* 80153C70 00150BD0 38 A1 00 1C */ addi r5, r1, 0x1c
/* 80153C74 00150BD4 90 01 00 1C */ stw r0, 0x1c(r1)
/* 80153C78 00150BD8 4B EF 43 51 */ bl GetIdListForScript__13CStateManagerCF9TEditorId
/* 80153C7C 00150BDC 80 C1 00 38 */ lwz r6, 0x38(r1)
/* 80153C80 00150BE0 38 00 00 00 */ li r0, 0
/* 80153C84 00150BE4 80 81 00 40 */ lwz r4, 0x40(r1)
/* 80153C88 00150BE8 80 A1 00 3C */ lwz r5, 0x3c(r1)
/* 80153C8C 00150BEC 80 61 00 44 */ lwz r3, 0x44(r1)
/* 80153C90 00150BF0 7C 06 20 40 */ cmplw r6, r4
/* 80153C94 00150BF4 90 C1 00 48 */ stw r6, 0x48(r1)
/* 80153C98 00150BF8 90 A1 00 4C */ stw r5, 0x4c(r1)
/* 80153C9C 00150BFC 90 81 00 50 */ stw r4, 0x50(r1)
/* 80153CA0 00150C00 90 61 00 54 */ stw r3, 0x54(r1)
/* 80153CA4 00150C04 40 82 00 10 */ bne lbl_80153CB4
/* 80153CA8 00150C08 7C 05 18 40 */ cmplw r5, r3
/* 80153CAC 00150C0C 40 82 00 08 */ bne lbl_80153CB4
/* 80153CB0 00150C10 38 00 00 01 */ li r0, 1
lbl_80153CB4:
/* 80153CB4 00150C14 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 80153CB8 00150C18 40 82 01 30 */ bne lbl_80153DE8
/* 80153CBC 00150C1C 80 E1 00 50 */ lwz r7, 0x50(r1)
/* 80153CC0 00150C20 38 61 00 30 */ addi r3, r1, 0x30
/* 80153CC4 00150C24 80 C1 00 54 */ lwz r6, 0x54(r1)
/* 80153CC8 00150C28 38 81 00 28 */ addi r4, r1, 0x28
/* 80153CCC 00150C2C 80 A1 00 48 */ lwz r5, 0x48(r1)
/* 80153CD0 00150C30 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 80153CD4 00150C34 90 E1 00 28 */ stw r7, 0x28(r1)
/* 80153CD8 00150C38 90 C1 00 2C */ stw r6, 0x2c(r1)
/* 80153CDC 00150C3C 90 A1 00 30 */ stw r5, 0x30(r1)
/* 80153CE0 00150C40 90 01 00 34 */ stw r0, 0x34(r1)
/* 80153CE4 00150C44 83 77 00 4C */ lwz r27, 0x4c(r23)
/* 80153CE8 00150C48 48 00 08 B9 */ bl "distance<Q34rstl195red_black_tree<13TGameScriptId,Q24rstl32pair<13TGameScriptId,9TUniqueId>,1,Q24rstl52select1st<Q24rstl32pair<13TGameScriptId,9TUniqueId>>,Q24rstl21less<13TGameScriptId>,Q24rstl17rmemory_allocator>14const_iterator>__4rstlFQ34rstl195red_black_tree<13TGameScriptId,Q24rstl32pair<13TGameScriptId,9TUniqueId>,1,Q24rstl52select1st<Q24rstl32pair<13TGameScriptId,9TUniqueId>>,Q24rstl21less<13TGameScriptId>,Q24rstl17rmemory_allocator>14const_iteratorQ34rstl195red_black_tree<13TGameScriptId,Q24rstl32"
/* 80153CEC 00150C4C 7C 60 1B 78 */ mr r0, r3
/* 80153CF0 00150C50 38 77 00 48 */ addi r3, r23, 0x48
/* 80153CF4 00150C54 7C 9B 02 14 */ add r4, r27, r0
/* 80153CF8 00150C58 48 00 09 85 */ bl "reserve__Q24rstl75vector<Q24rstl31pair<9TUniqueId,12CTransform4f>,Q24rstl17rmemory_allocator>Fi"
/* 80153CFC 00150C5C 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 80153D00 00150C60 83 A1 00 4C */ lwz r29, 0x4c(r1)
/* 80153D04 00150C64 83 81 00 50 */ lwz r28, 0x50(r1)
/* 80153D08 00150C68 83 61 00 54 */ lwz r27, 0x54(r1)
/* 80153D0C 00150C6C 48 00 00 BC */ b lbl_80153DC8
lbl_80153D10:
/* 80153D10 00150C70 A0 1E 00 14 */ lhz r0, 0x14(r30)
/* 80153D14 00150C74 7F 23 CB 78 */ mr r3, r25
/* 80153D18 00150C78 38 81 00 08 */ addi r4, r1, 8
/* 80153D1C 00150C7C B0 01 00 08 */ sth r0, 8(r1)
/* 80153D20 00150C80 4B EF 88 55 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 80153D24 00150C84 7C 64 1B 78 */ mr r4, r3
/* 80153D28 00150C88 38 61 00 20 */ addi r3, r1, 0x20
/* 80153D2C 00150C8C 4B F5 BF 65 */ bl "__ct__19TCastToPtr<6CActor>FP7CEntity"
/* 80153D30 00150C90 82 C3 00 04 */ lwz r22, 4(r3)
/* 80153D34 00150C94 28 16 00 00 */ cmplwi r22, 0
/* 80153D38 00150C98 41 82 00 80 */ beq lbl_80153DB8
/* 80153D3C 00150C9C 38 61 00 58 */ addi r3, r1, 0x58
/* 80153D40 00150CA0 38 96 00 34 */ addi r4, r22, 0x34
/* 80153D44 00150CA4 48 1B EE FD */ bl GetRotation__12CTransform4fCFv
/* 80153D48 00150CA8 A0 16 00 08 */ lhz r0, 8(r22)
/* 80153D4C 00150CAC 7F 43 D3 78 */ mr r3, r26
/* 80153D50 00150CB0 38 81 00 58 */ addi r4, r1, 0x58
/* 80153D54 00150CB4 B0 01 00 88 */ sth r0, 0x88(r1)
/* 80153D58 00150CB8 48 1B EE 1D */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80153D5C 00150CBC 80 17 00 4C */ lwz r0, 0x4c(r23)
/* 80153D60 00150CC0 80 B7 00 50 */ lwz r5, 0x50(r23)
/* 80153D64 00150CC4 7C 00 28 00 */ cmpw r0, r5
/* 80153D68 00150CC8 41 80 00 1C */ blt lbl_80153D84
/* 80153D6C 00150CCC 2C 05 00 00 */ cmpwi r5, 0
/* 80153D70 00150CD0 38 77 00 48 */ addi r3, r23, 0x48
/* 80153D74 00150CD4 38 80 00 04 */ li r4, 4
/* 80153D78 00150CD8 41 82 00 08 */ beq lbl_80153D80
/* 80153D7C 00150CDC 54 A4 08 3C */ slwi r4, r5, 1
lbl_80153D80:
/* 80153D80 00150CE0 48 00 08 FD */ bl "reserve__Q24rstl75vector<Q24rstl31pair<9TUniqueId,12CTransform4f>,Q24rstl17rmemory_allocator>Fi"
lbl_80153D84:
/* 80153D84 00150CE4 80 17 00 4C */ lwz r0, 0x4c(r23)
/* 80153D88 00150CE8 80 77 00 54 */ lwz r3, 0x54(r23)
/* 80153D8C 00150CEC 1C 00 00 34 */ mulli r0, r0, 0x34
/* 80153D90 00150CF0 7C A3 02 15 */ add. r5, r3, r0
/* 80153D94 00150CF4 41 82 00 18 */ beq lbl_80153DAC
/* 80153D98 00150CF8 A0 01 00 88 */ lhz r0, 0x88(r1)
/* 80153D9C 00150CFC 7F 44 D3 78 */ mr r4, r26
/* 80153DA0 00150D00 38 65 00 04 */ addi r3, r5, 4
/* 80153DA4 00150D04 B0 05 00 00 */ sth r0, 0(r5)
/* 80153DA8 00150D08 48 1B ED CD */ bl __ct__12CTransform4fFRC12CTransform4f
lbl_80153DAC:
/* 80153DAC 00150D0C 80 77 00 4C */ lwz r3, 0x4c(r23)
/* 80153DB0 00150D10 38 03 00 01 */ addi r0, r3, 1
/* 80153DB4 00150D14 90 17 00 4C */ stw r0, 0x4c(r23)
lbl_80153DB8:
/* 80153DB8 00150D18 7F A3 EB 78 */ mr r3, r29
/* 80153DBC 00150D1C 7F C4 F3 78 */ mr r4, r30
/* 80153DC0 00150D20 48 1E 88 21 */ bl rbtree_traverse_forward__4rstlFPCvPv
/* 80153DC4 00150D24 7C 7E 1B 78 */ mr r30, r3
lbl_80153DC8:
/* 80153DC8 00150D28 7C 1E E0 40 */ cmplw r30, r28
/* 80153DCC 00150D2C 38 00 00 00 */ li r0, 0
/* 80153DD0 00150D30 40 82 00 0C */ bne lbl_80153DDC
/* 80153DD4 00150D34 7C 1D D8 40 */ cmplw r29, r27
/* 80153DD8 00150D38 41 82 00 08 */ beq lbl_80153DE0
lbl_80153DDC:
/* 80153DDC 00150D3C 38 00 00 01 */ li r0, 1
lbl_80153DE0:
/* 80153DE0 00150D40 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 80153DE4 00150D44 40 82 FF 2C */ bne lbl_80153D10
lbl_80153DE8:
/* 80153DE8 00150D48 3B FF 00 0C */ addi r31, r31, 0xc
lbl_80153DEC:
/* 80153DEC 00150D4C 80 17 00 24 */ lwz r0, 0x24(r23)
/* 80153DF0 00150D50 80 77 00 2C */ lwz r3, 0x2c(r23)
/* 80153DF4 00150D54 1C 00 00 0C */ mulli r0, r0, 0xc
/* 80153DF8 00150D58 7C 03 02 14 */ add r0, r3, r0
/* 80153DFC 00150D5C 7C 1F 00 40 */ cmplw r31, r0
/* 80153E00 00150D60 40 82 FE 4C */ bne lbl_80153C4C
/* 80153E04 00150D64 7E E3 BB 78 */ mr r3, r23
/* 80153E08 00150D68 7F 25 CB 78 */ mr r5, r25
/* 80153E0C 00150D6C 38 80 00 12 */ li r4, 0x12
/* 80153E10 00150D70 38 C0 FF FF */ li r6, -1
/* 80153E14 00150D74 4B EF D2 AD */ bl SendScriptMsgs__7CEntityF18EScriptObjectStateR13CStateManager20EScriptObjectMessage
/* 80153E18 00150D78 80 17 00 4C */ lwz r0, 0x4c(r23)
/* 80153E1C 00150D7C 2C 00 00 00 */ cmpwi r0, 0
/* 80153E20 00150D80 41 82 00 30 */ beq lbl_80153E50
/* 80153E24 00150D84 88 77 00 58 */ lbz r3, 0x58(r23)
/* 80153E28 00150D88 38 80 00 01 */ li r4, 1
/* 80153E2C 00150D8C 50 83 3E 30 */ rlwimi r3, r4, 7, 0x18, 0x18
/* 80153E30 00150D90 57 00 06 3F */ clrlwi. r0, r24, 0x18
/* 80153E34 00150D94 98 77 00 58 */ stb r3, 0x58(r23)
/* 80153E38 00150D98 41 82 00 10 */ beq lbl_80153E48
/* 80153E3C 00150D9C C0 17 00 40 */ lfs f0, 0x40(r23)
/* 80153E40 00150DA0 D0 17 00 44 */ stfs f0, 0x44(r23)
/* 80153E44 00150DA4 48 00 00 0C */ b lbl_80153E50
lbl_80153E48:
/* 80153E48 00150DA8 C0 02 9D F8 */ lfs f0, lbl_805ABB18@sda21(r2)
/* 80153E4C 00150DAC D0 17 00 44 */ stfs f0, 0x44(r23)
lbl_80153E50:
/* 80153E50 00150DB0 BA C1 00 C8 */ lmw r22, 0xc8(r1)
/* 80153E54 00150DB4 80 01 00 F4 */ lwz r0, 0xf4(r1)
/* 80153E58 00150DB8 7C 08 03 A6 */ mtlr r0
/* 80153E5C 00150DBC 38 21 00 F0 */ addi r1, r1, 0xf0
/* 80153E60 00150DC0 4E 80 00 20 */ blr
.global Think__18CScriptActorRotateFfR13CStateManager
Think__18CScriptActorRotateFfR13CStateManager:
/* 80153E64 00150DC4 94 21 FE 30 */ stwu r1, -0x1d0(r1)
/* 80153E68 00150DC8 7C 08 02 A6 */ mflr r0
/* 80153E6C 00150DCC 90 01 01 D4 */ stw r0, 0x1d4(r1)
/* 80153E70 00150DD0 DB E1 01 C0 */ stfd f31, 0x1c0(r1)
/* 80153E74 00150DD4 F3 E1 01 C8 */ psq_st f31, 456(r1), 0, qr0
/* 80153E78 00150DD8 93 E1 01 BC */ stw r31, 0x1bc(r1)
/* 80153E7C 00150DDC 93 C1 01 B8 */ stw r30, 0x1b8(r1)
/* 80153E80 00150DE0 93 A1 01 B4 */ stw r29, 0x1b4(r1)
/* 80153E84 00150DE4 93 81 01 B0 */ stw r28, 0x1b0(r1)
/* 80153E88 00150DE8 88 03 00 58 */ lbz r0, 0x58(r3)
/* 80153E8C 00150DEC 7C 7E 1B 78 */ mr r30, r3
/* 80153E90 00150DF0 7C 9F 23 78 */ mr r31, r4
/* 80153E94 00150DF4 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80153E98 00150DF8 41 82 02 24 */ beq lbl_801540BC
/* 80153E9C 00150DFC 88 1E 00 30 */ lbz r0, 0x30(r30)
/* 80153EA0 00150E00 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80153EA4 00150E04 40 82 00 08 */ bne lbl_80153EAC
/* 80153EA8 00150E08 48 00 02 14 */ b lbl_801540BC
lbl_80153EAC:
/* 80153EAC 00150E0C C0 1E 00 44 */ lfs f0, 0x44(r30)
/* 80153EB0 00150E10 EC 00 08 2A */ fadds f0, f0, f1
/* 80153EB4 00150E14 D0 1E 00 44 */ stfs f0, 0x44(r30)
/* 80153EB8 00150E18 C0 3E 00 44 */ lfs f1, 0x44(r30)
/* 80153EBC 00150E1C C0 1E 00 40 */ lfs f0, 0x40(r30)
/* 80153EC0 00150E20 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80153EC4 00150E24 4C 41 13 82 */ cror 2, 1, 2
/* 80153EC8 00150E28 40 82 00 1C */ bne lbl_80153EE4
/* 80153ECC 00150E2C 88 1E 00 58 */ lbz r0, 0x58(r30)
/* 80153ED0 00150E30 38 60 00 00 */ li r3, 0
/* 80153ED4 00150E34 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 80153ED8 00150E38 98 1E 00 58 */ stb r0, 0x58(r30)
/* 80153EDC 00150E3C C0 1E 00 40 */ lfs f0, 0x40(r30)
/* 80153EE0 00150E40 D0 1E 00 44 */ stfs f0, 0x44(r30)
lbl_80153EE4:
/* 80153EE4 00150E44 C0 3E 00 44 */ lfs f1, 0x44(r30)
/* 80153EE8 00150E48 C0 1E 00 40 */ lfs f0, 0x40(r30)
/* 80153EEC 00150E4C 83 BE 00 54 */ lwz r29, 0x54(r30)
/* 80153EF0 00150E50 EF E1 00 24 */ fdivs f31, f1, f0
/* 80153EF4 00150E54 48 00 01 74 */ b lbl_80154068
lbl_80153EF8:
/* 80153EF8 00150E58 A0 1D 00 00 */ lhz r0, 0(r29)
/* 80153EFC 00150E5C 7F E3 FB 78 */ mr r3, r31
/* 80153F00 00150E60 38 81 00 0C */ addi r4, r1, 0xc
/* 80153F04 00150E64 B0 01 00 0C */ sth r0, 0xc(r1)
/* 80153F08 00150E68 4B EF 86 6D */ bl ObjectById__13CStateManagerF9TUniqueId
/* 80153F0C 00150E6C 7C 64 1B 78 */ mr r4, r3
/* 80153F10 00150E70 38 61 00 24 */ addi r3, r1, 0x24
/* 80153F14 00150E74 4B F5 BD 7D */ bl "__ct__19TCastToPtr<6CActor>FP7CEntity"
/* 80153F18 00150E78 83 83 00 04 */ lwz r28, 4(r3)
/* 80153F1C 00150E7C 28 1C 00 00 */ cmplwi r28, 0
/* 80153F20 00150E80 41 82 01 44 */ beq lbl_80154064
/* 80153F24 00150E84 C0 1E 00 3C */ lfs f0, 0x3c(r30)
/* 80153F28 00150E88 38 61 00 5C */ addi r3, r1, 0x5c
/* 80153F2C 00150E8C C0 22 9D FC */ lfs f1, lbl_805ABB1C@sda21(r2)
/* 80153F30 00150E90 38 81 00 10 */ addi r4, r1, 0x10
/* 80153F34 00150E94 EC 1F 00 32 */ fmuls f0, f31, f0
/* 80153F38 00150E98 EC 01 00 32 */ fmuls f0, f1, f0
/* 80153F3C 00150E9C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80153F40 00150EA0 C0 1E 00 38 */ lfs f0, 0x38(r30)
/* 80153F44 00150EA4 EC 1F 00 32 */ fmuls f0, f31, f0
/* 80153F48 00150EA8 EC 01 00 32 */ fmuls f0, f1, f0
/* 80153F4C 00150EAC D0 01 00 14 */ stfs f0, 0x14(r1)
/* 80153F50 00150EB0 C0 1E 00 34 */ lfs f0, 0x34(r30)
/* 80153F54 00150EB4 EC 1F 00 32 */ fmuls f0, f31, f0
/* 80153F58 00150EB8 EC 01 00 32 */ fmuls f0, f1, f0
/* 80153F5C 00150EBC D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80153F60 00150EC0 48 1B F8 B1 */ bl RotateZ__12CTransform4fFRC9CRelAngle
/* 80153F64 00150EC4 38 61 00 8C */ addi r3, r1, 0x8c
/* 80153F68 00150EC8 38 81 00 14 */ addi r4, r1, 0x14
/* 80153F6C 00150ECC 48 1B F9 3D */ bl RotateY__12CTransform4fFRC9CRelAngle
/* 80153F70 00150ED0 38 61 00 BC */ addi r3, r1, 0xbc
/* 80153F74 00150ED4 38 81 00 18 */ addi r4, r1, 0x18
/* 80153F78 00150ED8 48 1B F9 C9 */ bl RotateX__12CTransform4fFRC9CRelAngle
/* 80153F7C 00150EDC 38 61 00 EC */ addi r3, r1, 0xec
/* 80153F80 00150EE0 38 81 00 BC */ addi r4, r1, 0xbc
/* 80153F84 00150EE4 38 A1 00 8C */ addi r5, r1, 0x8c
/* 80153F88 00150EE8 48 1B E9 C9 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 80153F8C 00150EEC 38 61 01 1C */ addi r3, r1, 0x11c
/* 80153F90 00150EF0 38 81 00 EC */ addi r4, r1, 0xec
/* 80153F94 00150EF4 38 A1 00 5C */ addi r5, r1, 0x5c
/* 80153F98 00150EF8 48 1B E9 B9 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 80153F9C 00150EFC 38 61 01 7C */ addi r3, r1, 0x17c
/* 80153FA0 00150F00 38 81 01 1C */ addi r4, r1, 0x11c
/* 80153FA4 00150F04 48 1B EB D1 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80153FA8 00150F08 38 61 00 2C */ addi r3, r1, 0x2c
/* 80153FAC 00150F0C 38 9D 00 04 */ addi r4, r29, 4
/* 80153FB0 00150F10 38 A1 01 7C */ addi r5, r1, 0x17c
/* 80153FB4 00150F14 48 1B E9 9D */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 80153FB8 00150F18 38 61 01 4C */ addi r3, r1, 0x14c
/* 80153FBC 00150F1C 38 81 00 2C */ addi r4, r1, 0x2c
/* 80153FC0 00150F20 48 1B EB B5 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80153FC4 00150F24 C0 5C 00 60 */ lfs f2, 0x60(r28)
/* 80153FC8 00150F28 38 7C 00 34 */ addi r3, r28, 0x34
/* 80153FCC 00150F2C C0 01 01 78 */ lfs f0, 0x178(r1)
/* 80153FD0 00150F30 38 81 01 4C */ addi r4, r1, 0x14c
/* 80153FD4 00150F34 C0 9C 00 50 */ lfs f4, 0x50(r28)
/* 80153FD8 00150F38 C0 21 01 68 */ lfs f1, 0x168(r1)
/* 80153FDC 00150F3C EC 00 10 2A */ fadds f0, f0, f2
/* 80153FE0 00150F40 C0 5C 00 40 */ lfs f2, 0x40(r28)
/* 80153FE4 00150F44 C0 61 01 58 */ lfs f3, 0x158(r1)
/* 80153FE8 00150F48 EC 21 20 2A */ fadds f1, f1, f4
/* 80153FEC 00150F4C D0 01 01 78 */ stfs f0, 0x178(r1)
/* 80153FF0 00150F50 EC 03 10 2A */ fadds f0, f3, f2
/* 80153FF4 00150F54 D0 21 01 68 */ stfs f1, 0x168(r1)
/* 80153FF8 00150F58 D0 01 01 58 */ stfs f0, 0x158(r1)
/* 80153FFC 00150F5C 48 1B EB 45 */ bl __as__12CTransform4fFRC12CTransform4f
/* 80154000 00150F60 88 1C 00 E4 */ lbz r0, 0xe4(r28)
/* 80154004 00150F64 38 A0 00 01 */ li r5, 1
/* 80154008 00150F68 50 A0 26 F6 */ rlwimi r0, r5, 4, 0x1b, 0x1b
/* 8015400C 00150F6C 7F E3 FB 78 */ mr r3, r31
/* 80154010 00150F70 98 1C 00 E4 */ stb r0, 0xe4(r28)
/* 80154014 00150F74 38 81 00 08 */ addi r4, r1, 8
/* 80154018 00150F78 88 1C 00 E4 */ lbz r0, 0xe4(r28)
/* 8015401C 00150F7C 50 A0 1F 38 */ rlwimi r0, r5, 3, 0x1c, 0x1c
/* 80154020 00150F80 98 1C 00 E4 */ stb r0, 0xe4(r28)
/* 80154024 00150F84 88 1C 00 E4 */ lbz r0, 0xe4(r28)
/* 80154028 00150F88 50 A0 17 7A */ rlwimi r0, r5, 2, 0x1d, 0x1d
/* 8015402C 00150F8C 98 1C 00 E4 */ stb r0, 0xe4(r28)
/* 80154030 00150F90 A0 1D 00 00 */ lhz r0, 0(r29)
/* 80154034 00150F94 B0 01 00 08 */ sth r0, 8(r1)
/* 80154038 00150F98 4B EF 85 3D */ bl ObjectById__13CStateManagerF9TUniqueId
/* 8015403C 00150F9C 7C 64 1B 78 */ mr r4, r3
/* 80154040 00150FA0 38 61 00 1C */ addi r3, r1, 0x1c
/* 80154044 00150FA4 4B F5 4D D1 */ bl "__ct__29TCastToPtr<15CScriptPlatform>FP7CEntity"
/* 80154048 00150FA8 80 83 00 04 */ lwz r4, 4(r3)
/* 8015404C 00150FAC 28 04 00 00 */ cmplwi r4, 0
/* 80154050 00150FB0 41 82 00 14 */ beq lbl_80154064
/* 80154054 00150FB4 7F C3 F3 78 */ mr r3, r30
/* 80154058 00150FB8 7F E6 FB 78 */ mr r6, r31
/* 8015405C 00150FBC 38 A1 01 7C */ addi r5, r1, 0x17c
/* 80154060 00150FC0 48 00 01 D1 */ bl sub_80154230
lbl_80154064:
/* 80154064 00150FC4 3B BD 00 34 */ addi r29, r29, 0x34
lbl_80154068:
/* 80154068 00150FC8 80 1E 00 4C */ lwz r0, 0x4c(r30)
/* 8015406C 00150FCC 80 7E 00 54 */ lwz r3, 0x54(r30)
/* 80154070 00150FD0 1C 00 00 34 */ mulli r0, r0, 0x34
/* 80154074 00150FD4 7C 03 02 14 */ add r0, r3, r0
/* 80154078 00150FD8 7C 1D 00 40 */ cmplw r29, r0
/* 8015407C 00150FDC 40 82 FE 7C */ bne lbl_80153EF8
/* 80154080 00150FE0 88 7E 00 58 */ lbz r3, 0x58(r30)
/* 80154084 00150FE4 54 60 CF FF */ rlwinm. r0, r3, 0x19, 0x1f, 0x1f
/* 80154088 00150FE8 40 82 00 34 */ bne lbl_801540BC
/* 8015408C 00150FEC 54 60 D7 FF */ rlwinm. r0, r3, 0x1a, 0x1f, 0x1f
/* 80154090 00150FF0 41 82 00 10 */ beq lbl_801540A0
/* 80154094 00150FF4 7F C3 F3 78 */ mr r3, r30
/* 80154098 00150FF8 7F E4 FB 78 */ mr r4, r31
/* 8015409C 00150FFC 48 00 00 49 */ bl RebuildSpiderBallWaypoints__18CScriptActorRotateFR13CStateManager
lbl_801540A0:
/* 801540A0 00151000 88 1E 00 58 */ lbz r0, 0x58(r30)
/* 801540A4 00151004 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 801540A8 00151008 41 82 00 14 */ beq lbl_801540BC
/* 801540AC 0015100C 7F C3 F3 78 */ mr r3, r30
/* 801540B0 00151010 7F E5 FB 78 */ mr r5, r31
/* 801540B4 00151014 38 80 00 00 */ li r4, 0
/* 801540B8 00151018 4B FF FB 29 */ bl UpdateActors__18CScriptActorRotateFbR13CStateManager
lbl_801540BC:
/* 801540BC 0015101C E3 E1 01 C8 */ psq_l f31, 456(r1), 0, qr0
/* 801540C0 00151020 80 01 01 D4 */ lwz r0, 0x1d4(r1)
/* 801540C4 00151024 CB E1 01 C0 */ lfd f31, 0x1c0(r1)
/* 801540C8 00151028 83 E1 01 BC */ lwz r31, 0x1bc(r1)
/* 801540CC 0015102C 83 C1 01 B8 */ lwz r30, 0x1b8(r1)
/* 801540D0 00151030 83 A1 01 B4 */ lwz r29, 0x1b4(r1)
/* 801540D4 00151034 83 81 01 B0 */ lwz r28, 0x1b0(r1)
/* 801540D8 00151038 7C 08 03 A6 */ mtlr r0
/* 801540DC 0015103C 38 21 01 D0 */ addi r1, r1, 0x1d0
/* 801540E0 00151040 4E 80 00 20 */ blr
.global RebuildSpiderBallWaypoints__18CScriptActorRotateFR13CStateManager
RebuildSpiderBallWaypoints__18CScriptActorRotateFR13CStateManager:
/* 801540E4 00151044 94 21 F7 D0 */ stwu r1, -0x830(r1)
/* 801540E8 00151048 7C 08 02 A6 */ mflr r0
/* 801540EC 0015104C 90 01 08 34 */ stw r0, 0x834(r1)
/* 801540F0 00151050 38 00 00 00 */ li r0, 0
/* 801540F4 00151054 BF 41 08 18 */ stmw r26, 0x818(r1)
/* 801540F8 00151058 7C 9E 23 78 */ mr r30, r4
/* 801540FC 0015105C 7C 7D 1B 78 */ mr r29, r3
/* 80154100 00151060 3B E1 00 18 */ addi r31, r1, 0x18
/* 80154104 00151064 3B 80 00 00 */ li r28, 0
/* 80154108 00151068 90 01 00 14 */ stw r0, 0x14(r1)
/* 8015410C 0015106C 83 64 08 10 */ lwz r27, 0x810(r4)
lbl_80154110:
/* 80154110 00151070 7F 63 DB 78 */ mr r3, r27
/* 80154114 00151074 7F 84 E3 78 */ mr r4, r28
/* 80154118 00151078 4B EB BB FD */ bl __vc__11CObjectListFi
/* 8015411C 0015107C 7C 64 1B 78 */ mr r4, r3
/* 80154120 00151080 38 61 00 0C */ addi r3, r1, 0xc
/* 80154124 00151084 4B F5 3A 79 */ bl "__ct__39TCastToPtr<25CScriptSpiderBallWaypoint>FP7CEntity"
/* 80154128 00151088 80 63 00 04 */ lwz r3, 4(r3)
/* 8015412C 0015108C 28 03 00 00 */ cmplwi r3, 0
/* 80154130 00151090 41 82 00 2C */ beq lbl_8015415C
/* 80154134 00151094 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80154138 00151098 A0 A3 00 08 */ lhz r5, 8(r3)
/* 8015413C 0015109C 54 00 08 3C */ slwi r0, r0, 1
/* 80154140 001510A0 7C 9F 02 15 */ add. r4, r31, r0
/* 80154144 001510A4 41 82 00 08 */ beq lbl_8015414C
/* 80154148 001510A8 B0 A4 00 00 */ sth r5, 0(r4)
lbl_8015414C:
/* 8015414C 001510AC 80 81 00 14 */ lwz r4, 0x14(r1)
/* 80154150 001510B0 38 04 00 01 */ addi r0, r4, 1
/* 80154154 001510B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80154158 001510B8 4B FC 47 E1 */ bl ClearWaypoints__25CScriptSpiderBallWaypointFv
lbl_8015415C:
/* 8015415C 001510BC 3B 9C 00 01 */ addi r28, r28, 1
/* 80154160 001510C0 2C 1C 04 00 */ cmpwi r28, 0x400
/* 80154164 001510C4 40 82 FF AC */ bne lbl_80154110
/* 80154168 001510C8 7F FA FB 78 */ mr r26, r31
/* 8015416C 001510CC 3B 80 00 01 */ li r28, 1
/* 80154170 001510D0 48 00 00 38 */ b lbl_801541A8
lbl_80154174:
/* 80154174 001510D4 A0 1A 00 00 */ lhz r0, 0(r26)
/* 80154178 001510D8 7F C3 F3 78 */ mr r3, r30
/* 8015417C 001510DC 38 81 00 08 */ addi r4, r1, 8
/* 80154180 001510E0 B0 01 00 08 */ sth r0, 8(r1)
/* 80154184 001510E4 4B EF 83 F1 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 80154188 001510E8 7C 7B 1B 79 */ or. r27, r3, r3
/* 8015418C 001510EC 41 82 00 18 */ beq lbl_801541A4
/* 80154190 001510F0 7F C4 F3 78 */ mr r4, r30
/* 80154194 001510F4 4B FC 46 21 */ bl BuildWaypointListAndBounds__25CScriptSpiderBallWaypointFR13CStateManager
/* 80154198 001510F8 88 1B 00 E4 */ lbz r0, 0xe4(r27)
/* 8015419C 001510FC 53 80 26 F6 */ rlwimi r0, r28, 4, 0x1b, 0x1b
/* 801541A0 00151100 98 1B 00 E4 */ stb r0, 0xe4(r27)
lbl_801541A4:
/* 801541A4 00151104 3B 5A 00 02 */ addi r26, r26, 2
lbl_801541A8:
/* 801541A8 00151108 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801541AC 0015110C 54 00 08 3C */ slwi r0, r0, 1
/* 801541B0 00151110 7C 1F 02 14 */ add r0, r31, r0
/* 801541B4 00151114 7C 1A 00 40 */ cmplw r26, r0
/* 801541B8 00151118 40 82 FF BC */ bne lbl_80154174
/* 801541BC 0015111C 38 60 00 00 */ li r3, 0
/* 801541C0 00151120 88 1D 00 58 */ lbz r0, 0x58(r29)
/* 801541C4 00151124 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 801541C8 00151128 98 1D 00 58 */ stb r0, 0x58(r29)
/* 801541CC 0015112C 80 A1 00 14 */ lwz r5, 0x14(r1)
/* 801541D0 00151130 2C 05 00 00 */ cmpwi r5, 0
/* 801541D4 00151134 40 81 00 40 */ ble lbl_80154214
/* 801541D8 00151138 2C 05 00 08 */ cmpwi r5, 8
/* 801541DC 0015113C 38 85 FF F8 */ addi r4, r5, -8
/* 801541E0 00151140 40 81 00 20 */ ble lbl_80154200
/* 801541E4 00151144 38 04 00 07 */ addi r0, r4, 7
/* 801541E8 00151148 54 00 E8 FE */ srwi r0, r0, 3
/* 801541EC 0015114C 7C 09 03 A6 */ mtctr r0
/* 801541F0 00151150 2C 04 00 00 */ cmpwi r4, 0
/* 801541F4 00151154 40 81 00 0C */ ble lbl_80154200
lbl_801541F8:
/* 801541F8 00151158 38 63 00 08 */ addi r3, r3, 8
/* 801541FC 0015115C 42 00 FF FC */ bdnz lbl_801541F8
lbl_80154200:
/* 80154200 00151160 7C 03 28 50 */ subf r0, r3, r5
/* 80154204 00151164 7C 09 03 A6 */ mtctr r0
/* 80154208 00151168 7C 03 28 00 */ cmpw r3, r5
/* 8015420C 0015116C 40 80 00 08 */ bge lbl_80154214
lbl_80154210:
/* 80154210 00151170 42 00 00 00 */ bdnz lbl_80154210
lbl_80154214:
/* 80154214 00151174 38 00 00 00 */ li r0, 0
/* 80154218 00151178 90 01 00 14 */ stw r0, 0x14(r1)
/* 8015421C 0015117C BB 41 08 18 */ lmw r26, 0x818(r1)
/* 80154220 00151180 80 01 08 34 */ lwz r0, 0x834(r1)
/* 80154224 00151184 7C 08 03 A6 */ mtlr r0
/* 80154228 00151188 38 21 08 30 */ addi r1, r1, 0x830
/* 8015422C 0015118C 4E 80 00 20 */ blr
.global sub_80154230
sub_80154230:
/* 80154230 00151190 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80154234 00151194 7C 08 02 A6 */ mflr r0
/* 80154238 00151198 90 01 00 24 */ stw r0, 0x24(r1)
/* 8015423C 0015119C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80154240 001511A0 7C DF 33 78 */ mr r31, r6
/* 80154244 001511A4 7F E7 FB 78 */ mr r7, r31
/* 80154248 001511A8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8015424C 001511AC 7C BE 2B 78 */ mr r30, r5
/* 80154250 001511B0 7F C6 F3 78 */ mr r6, r30
/* 80154254 001511B4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80154258 001511B8 7C 9D 23 78 */ mr r29, r4
/* 8015425C 001511BC 7F A5 EB 78 */ mr r5, r29
/* 80154260 001511C0 93 81 00 10 */ stw r28, 0x10(r1)
/* 80154264 001511C4 7C 7C 1B 78 */ mr r28, r3
/* 80154268 001511C8 38 9D 03 28 */ addi r4, r29, 0x328
/* 8015426C 001511CC 48 00 00 3D */ bl sub_801542a8
/* 80154270 001511D0 7F 83 E3 78 */ mr r3, r28
/* 80154274 001511D4 7F A5 EB 78 */ mr r5, r29
/* 80154278 001511D8 7F C6 F3 78 */ mr r6, r30
/* 8015427C 001511DC 7F E7 FB 78 */ mr r7, r31
/* 80154280 001511E0 38 9D 03 38 */ addi r4, r29, 0x338
/* 80154284 001511E4 48 00 00 25 */ bl sub_801542a8
/* 80154288 001511E8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8015428C 001511EC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80154290 001511F0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80154294 001511F4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80154298 001511F8 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8015429C 001511FC 7C 08 03 A6 */ mtlr r0
/* 801542A0 00151200 38 21 00 20 */ addi r1, r1, 0x20
/* 801542A4 00151204 4E 80 00 20 */ blr
.global sub_801542a8
sub_801542a8:
/* 801542A8 00151208 94 21 FF 40 */ stwu r1, -0xc0(r1)
/* 801542AC 0015120C 7C 08 02 A6 */ mflr r0
/* 801542B0 00151210 90 01 00 C4 */ stw r0, 0xc4(r1)
/* 801542B4 00151214 BF 01 00 A0 */ stmw r24, 0xa0(r1)
/* 801542B8 00151218 7C 99 23 78 */ mr r25, r4
/* 801542BC 0015121C 7C 78 1B 78 */ mr r24, r3
/* 801542C0 00151220 7C BA 2B 78 */ mr r26, r5
/* 801542C4 00151224 7C DB 33 78 */ mr r27, r6
/* 801542C8 00151228 7C FC 3B 78 */ mr r28, r7
/* 801542CC 0015122C 83 E4 00 0C */ lwz r31, 0xc(r4)
/* 801542D0 00151230 48 00 01 B0 */ b lbl_80154480
lbl_801542D4:
/* 801542D4 00151234 A0 1F 00 00 */ lhz r0, 0(r31)
/* 801542D8 00151238 7F 83 E3 78 */ mr r3, r28
/* 801542DC 0015123C 38 81 00 0C */ addi r4, r1, 0xc
/* 801542E0 00151240 B0 01 00 0C */ sth r0, 0xc(r1)
/* 801542E4 00151244 4B EF 82 91 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 801542E8 00151248 7C 64 1B 78 */ mr r4, r3
/* 801542EC 0015124C 38 61 00 20 */ addi r3, r1, 0x20
/* 801542F0 00151250 4B F5 B9 A1 */ bl "__ct__19TCastToPtr<6CActor>FP7CEntity"
/* 801542F4 00151254 83 A3 00 04 */ lwz r29, 4(r3)
/* 801542F8 00151258 28 1D 00 00 */ cmplwi r29, 0
/* 801542FC 0015125C 41 82 01 80 */ beq lbl_8015447C
/* 80154300 00151260 3B DF 00 08 */ addi r30, r31, 8
/* 80154304 00151264 38 7D 00 34 */ addi r3, r29, 0x34
/* 80154308 00151268 7F C4 F3 78 */ mr r4, r30
/* 8015430C 0015126C 48 1B E8 35 */ bl __as__12CTransform4fFRC12CTransform4f
/* 80154310 00151270 88 1D 00 E4 */ lbz r0, 0xe4(r29)
/* 80154314 00151274 38 C0 00 01 */ li r6, 1
/* 80154318 00151278 50 C0 26 F6 */ rlwimi r0, r6, 4, 0x1b, 0x1b
/* 8015431C 0015127C 7F 64 DB 78 */ mr r4, r27
/* 80154320 00151280 98 1D 00 E4 */ stb r0, 0xe4(r29)
/* 80154324 00151284 38 61 00 40 */ addi r3, r1, 0x40
/* 80154328 00151288 38 BD 00 34 */ addi r5, r29, 0x34
/* 8015432C 0015128C 88 1D 00 E4 */ lbz r0, 0xe4(r29)
/* 80154330 00151290 50 C0 1F 38 */ rlwimi r0, r6, 3, 0x1c, 0x1c
/* 80154334 00151294 98 1D 00 E4 */ stb r0, 0xe4(r29)
/* 80154338 00151298 88 1D 00 E4 */ lbz r0, 0xe4(r29)
/* 8015433C 0015129C 50 C0 17 7A */ rlwimi r0, r6, 2, 0x1d, 0x1d
/* 80154340 001512A0 98 1D 00 E4 */ stb r0, 0xe4(r29)
/* 80154344 001512A4 48 1B E6 0D */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 80154348 001512A8 38 7D 00 34 */ addi r3, r29, 0x34
/* 8015434C 001512AC 38 81 00 40 */ addi r4, r1, 0x40
/* 80154350 001512B0 48 1B E7 F1 */ bl __as__12CTransform4fFRC12CTransform4f
/* 80154354 001512B4 88 1D 00 E4 */ lbz r0, 0xe4(r29)
/* 80154358 001512B8 38 A0 00 01 */ li r5, 1
/* 8015435C 001512BC 50 A0 26 F6 */ rlwimi r0, r5, 4, 0x1b, 0x1b
/* 80154360 001512C0 7F A3 EB 78 */ mr r3, r29
/* 80154364 001512C4 98 1D 00 E4 */ stb r0, 0xe4(r29)
/* 80154368 001512C8 38 81 00 34 */ addi r4, r1, 0x34
/* 8015436C 001512CC 88 1D 00 E4 */ lbz r0, 0xe4(r29)
/* 80154370 001512D0 50 A0 1F 38 */ rlwimi r0, r5, 3, 0x1c, 0x1c
/* 80154374 001512D4 98 1D 00 E4 */ stb r0, 0xe4(r29)
/* 80154378 001512D8 88 1D 00 E4 */ lbz r0, 0xe4(r29)
/* 8015437C 001512DC 50 A0 17 7A */ rlwimi r0, r5, 2, 0x1d, 0x1d
/* 80154380 001512E0 98 1D 00 E4 */ stb r0, 0xe4(r29)
/* 80154384 001512E4 C0 BA 00 60 */ lfs f5, 0x60(r26)
/* 80154388 001512E8 C0 1D 00 60 */ lfs f0, 0x60(r29)
/* 8015438C 001512EC C0 9A 00 50 */ lfs f4, 0x50(r26)
/* 80154390 001512F0 C0 5D 00 50 */ lfs f2, 0x50(r29)
/* 80154394 001512F4 EC 25 00 2A */ fadds f1, f5, f0
/* 80154398 001512F8 C0 1A 00 40 */ lfs f0, 0x40(r26)
/* 8015439C 001512FC C0 7D 00 40 */ lfs f3, 0x40(r29)
/* 801543A0 00151300 EC 44 10 2A */ fadds f2, f4, f2
/* 801543A4 00151304 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 801543A8 00151308 EC 00 18 2A */ fadds f0, f0, f3
/* 801543AC 0015130C D0 81 00 2C */ stfs f4, 0x2c(r1)
/* 801543B0 00151310 D0 A1 00 30 */ stfs f5, 0x30(r1)
/* 801543B4 00151314 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 801543B8 00151318 D0 41 00 38 */ stfs f2, 0x38(r1)
/* 801543BC 0015131C D0 21 00 3C */ stfs f1, 0x3c(r1)
/* 801543C0 00151320 4B EF EA CD */ bl SetTranslation__6CActorFRC9CVector3f
/* 801543C4 00151324 88 18 00 58 */ lbz r0, 0x58(r24)
/* 801543C8 00151328 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 801543CC 0015132C 40 82 00 74 */ bne lbl_80154440
/* 801543D0 00151330 38 61 00 70 */ addi r3, r1, 0x70
/* 801543D4 00151334 38 9D 00 34 */ addi r4, r29, 0x34
/* 801543D8 00151338 48 1B E7 9D */ bl __ct__12CTransform4fFRC12CTransform4f
/* 801543DC 0015133C C0 3D 00 50 */ lfs f1, 0x50(r29)
/* 801543E0 00151340 7F C3 F3 78 */ mr r3, r30
/* 801543E4 00151344 C0 1A 00 50 */ lfs f0, 0x50(r26)
/* 801543E8 00151348 38 81 00 70 */ addi r4, r1, 0x70
/* 801543EC 0015134C C0 7D 00 60 */ lfs f3, 0x60(r29)
/* 801543F0 00151350 C0 5A 00 60 */ lfs f2, 0x60(r26)
/* 801543F4 00151354 EC 81 00 28 */ fsubs f4, f1, f0
/* 801543F8 00151358 C0 3D 00 40 */ lfs f1, 0x40(r29)
/* 801543FC 0015135C C0 1A 00 40 */ lfs f0, 0x40(r26)
/* 80154400 00151360 EC 43 10 28 */ fsubs f2, f3, f2
/* 80154404 00151364 EC 01 00 28 */ fsubs f0, f1, f0
/* 80154408 00151368 D0 81 00 8C */ stfs f4, 0x8c(r1)
/* 8015440C 0015136C D0 41 00 9C */ stfs f2, 0x9c(r1)
/* 80154410 00151370 D0 01 00 7C */ stfs f0, 0x7c(r1)
/* 80154414 00151374 48 1B E7 2D */ bl __as__12CTransform4fFRC12CTransform4f
/* 80154418 00151378 7F A4 EB 78 */ mr r4, r29
/* 8015441C 0015137C 38 61 00 10 */ addi r3, r1, 0x10
/* 80154420 00151380 4B F5 37 7D */ bl "__ct__39TCastToPtr<25CScriptSpiderBallWaypoint>FP7CEntity"
/* 80154424 00151384 80 03 00 04 */ lwz r0, 4(r3)
/* 80154428 00151388 28 00 00 00 */ cmplwi r0, 0
/* 8015442C 0015138C 41 82 00 14 */ beq lbl_80154440
/* 80154430 00151390 88 18 00 58 */ lbz r0, 0x58(r24)
/* 80154434 00151394 38 60 00 01 */ li r3, 1
/* 80154438 00151398 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 8015443C 0015139C 98 18 00 58 */ stb r0, 0x58(r24)
lbl_80154440:
/* 80154440 001513A0 A0 1F 00 00 */ lhz r0, 0(r31)
/* 80154444 001513A4 7F 83 E3 78 */ mr r3, r28
/* 80154448 001513A8 38 81 00 08 */ addi r4, r1, 8
/* 8015444C 001513AC B0 01 00 08 */ sth r0, 8(r1)
/* 80154450 001513B0 4B EF 81 25 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 80154454 001513B4 7C 64 1B 78 */ mr r4, r3
/* 80154458 001513B8 38 61 00 18 */ addi r3, r1, 0x18
/* 8015445C 001513BC 4B F5 49 B9 */ bl "__ct__29TCastToPtr<15CScriptPlatform>FP7CEntity"
/* 80154460 001513C0 80 83 00 04 */ lwz r4, 4(r3)
/* 80154464 001513C4 28 04 00 00 */ cmplwi r4, 0
/* 80154468 001513C8 41 82 00 14 */ beq lbl_8015447C
/* 8015446C 001513CC 7F 03 C3 78 */ mr r3, r24
/* 80154470 001513D0 7F 65 DB 78 */ mr r5, r27
/* 80154474 001513D4 7F 86 E3 78 */ mr r6, r28
/* 80154478 001513D8 4B FF FD B9 */ bl sub_80154230
lbl_8015447C:
/* 8015447C 001513DC 3B FF 00 38 */ addi r31, r31, 0x38
lbl_80154480:
/* 80154480 001513E0 80 19 00 04 */ lwz r0, 4(r25)
/* 80154484 001513E4 80 79 00 0C */ lwz r3, 0xc(r25)
/* 80154488 001513E8 1C 00 00 38 */ mulli r0, r0, 0x38
/* 8015448C 001513EC 7C 03 02 14 */ add r0, r3, r0
/* 80154490 001513F0 7C 1F 00 40 */ cmplw r31, r0
/* 80154494 001513F4 40 82 FE 40 */ bne lbl_801542D4
/* 80154498 001513F8 BB 01 00 A0 */ lmw r24, 0xa0(r1)
/* 8015449C 001513FC 80 01 00 C4 */ lwz r0, 0xc4(r1)
/* 801544A0 00151400 7C 08 03 A6 */ mtlr r0
/* 801544A4 00151404 38 21 00 C0 */ addi r1, r1, 0xc0
/* 801544A8 00151408 4E 80 00 20 */ blr
.global "__ct__18CScriptActorRotateF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC9CVector3ffbbb"
"__ct__18CScriptActorRotateF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC9CVector3ffbbb":
/* 801544AC 0015140C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 801544B0 00151410 7C 08 02 A6 */ mflr r0
/* 801544B4 00151414 90 01 00 34 */ stw r0, 0x34(r1)
/* 801544B8 00151418 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 801544BC 0015141C F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0
/* 801544C0 00151420 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 801544C4 00151424 93 C1 00 18 */ stw r30, 0x18(r1)
/* 801544C8 00151428 93 A1 00 14 */ stw r29, 0x14(r1)
/* 801544CC 0015142C 93 81 00 10 */ stw r28, 0x10(r1)
/* 801544D0 00151430 A0 04 00 00 */ lhz r0, 0(r4)
/* 801544D4 00151434 7C A4 2B 78 */ mr r4, r5
/* 801544D8 00151438 FF E0 08 90 */ fmr f31, f1
/* 801544DC 0015143C 7C FD 3B 78 */ mr r29, r7
/* 801544E0 00151440 B0 01 00 08 */ sth r0, 8(r1)
/* 801544E4 00151444 7C C5 33 78 */ mr r5, r6
/* 801544E8 00151448 7C 87 23 78 */ mr r7, r4
/* 801544EC 0015144C 7C 7C 1B 78 */ mr r28, r3
/* 801544F0 00151450 7D 1E 43 78 */ mr r30, r8
/* 801544F4 00151454 7D 3F 4B 78 */ mr r31, r9
/* 801544F8 00151458 7D 46 53 78 */ mr r6, r10
/* 801544FC 0015145C 38 81 00 08 */ addi r4, r1, 8
/* 80154500 00151460 4B EF CE 25 */ bl "__ct__7CEntityF9TUniqueIdRC11CEntityInfobRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 80154504 00151464 3C 60 80 3E */ lis r3, lbl_803E2D08@ha
/* 80154508 00151468 C0 02 9D F8 */ lfs f0, lbl_805ABB18@sda21(r2)
/* 8015450C 0015146C 38 03 2D 08 */ addi r0, r3, lbl_803E2D08@l
/* 80154510 00151470 38 C0 00 00 */ li r6, 0
/* 80154514 00151474 90 1C 00 00 */ stw r0, 0(r28)
/* 80154518 00151478 7F 83 E3 78 */ mr r3, r28
/* 8015451C 0015147C C0 3D 00 00 */ lfs f1, 0(r29)
/* 80154520 00151480 D0 3C 00 34 */ stfs f1, 0x34(r28)
/* 80154524 00151484 C0 3D 00 04 */ lfs f1, 4(r29)
/* 80154528 00151488 D0 3C 00 38 */ stfs f1, 0x38(r28)
/* 8015452C 0015148C C0 3D 00 08 */ lfs f1, 8(r29)
/* 80154530 00151490 D0 3C 00 3C */ stfs f1, 0x3c(r28)
/* 80154534 00151494 D3 FC 00 40 */ stfs f31, 0x40(r28)
/* 80154538 00151498 D0 1C 00 44 */ stfs f0, 0x44(r28)
/* 8015453C 0015149C 90 DC 00 4C */ stw r6, 0x4c(r28)
/* 80154540 001514A0 90 DC 00 50 */ stw r6, 0x50(r28)
/* 80154544 001514A4 90 DC 00 54 */ stw r6, 0x54(r28)
/* 80154548 001514A8 88 1C 00 58 */ lbz r0, 0x58(r28)
/* 8015454C 001514AC 50 C0 3E 30 */ rlwimi r0, r6, 7, 0x18, 0x18
/* 80154550 001514B0 98 1C 00 58 */ stb r0, 0x58(r28)
/* 80154554 001514B4 88 1C 00 58 */ lbz r0, 0x58(r28)
/* 80154558 001514B8 50 C0 36 72 */ rlwimi r0, r6, 6, 0x19, 0x19
/* 8015455C 001514BC 98 1C 00 58 */ stb r0, 0x58(r28)
/* 80154560 001514C0 88 1C 00 58 */ lbz r0, 0x58(r28)
/* 80154564 001514C4 53 C0 2E B4 */ rlwimi r0, r30, 5, 0x1a, 0x1a
/* 80154568 001514C8 98 1C 00 58 */ stb r0, 0x58(r28)
/* 8015456C 001514CC 88 1C 00 58 */ lbz r0, 0x58(r28)
/* 80154570 001514D0 53 E0 26 F6 */ rlwimi r0, r31, 4, 0x1b, 0x1b
/* 80154574 001514D4 98 1C 00 58 */ stb r0, 0x58(r28)
/* 80154578 001514D8 E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0
/* 8015457C 001514DC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80154580 001514E0 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 80154584 001514E4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80154588 001514E8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8015458C 001514EC 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80154590 001514F0 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80154594 001514F4 7C 08 03 A6 */ mtlr r0
/* 80154598 001514F8 38 21 00 30 */ addi r1, r1, 0x30
/* 8015459C 001514FC 4E 80 00 20 */ blr
.global "distance<Q34rstl195red_black_tree<13TGameScriptId,Q24rstl32pair<13TGameScriptId,9TUniqueId>,1,Q24rstl52select1st<Q24rstl32pair<13TGameScriptId,9TUniqueId>>,Q24rstl21less<13TGameScriptId>,Q24rstl17rmemory_allocator>14const_iterator>__4rstlFQ34rstl195red_black_tree<13TGameScriptId,Q24rstl32pair<13TGameScriptId,9TUniqueId>,1,Q24rstl52select1st<Q24rstl32pair<13TGameScriptId,9TUniqueId>>,Q24rstl21less<13TGameScriptId>,Q24rstl17rmemory_allocator>14const_iteratorQ34rstl195red_black_tree<13TGameScriptId,Q24rstl32"
"distance<Q34rstl195red_black_tree<13TGameScriptId,Q24rstl32pair<13TGameScriptId,9TUniqueId>,1,Q24rstl52select1st<Q24rstl32pair<13TGameScriptId,9TUniqueId>>,Q24rstl21less<13TGameScriptId>,Q24rstl17rmemory_allocator>14const_iterator>__4rstlFQ34rstl195red_black_tree<13TGameScriptId,Q24rstl32pair<13TGameScriptId,9TUniqueId>,1,Q24rstl52select1st<Q24rstl32pair<13TGameScriptId,9TUniqueId>>,Q24rstl21less<13TGameScriptId>,Q24rstl17rmemory_allocator>14const_iteratorQ34rstl195red_black_tree<13TGameScriptId,Q24rstl32":
/* 801545A0 00151500 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801545A4 00151504 7C 08 02 A6 */ mflr r0
/* 801545A8 00151508 90 01 00 24 */ stw r0, 0x24(r1)
/* 801545AC 0015150C 38 A1 00 0C */ addi r5, r1, 0xc
/* 801545B0 00151510 89 21 00 08 */ lbz r9, 8(r1)
/* 801545B4 00151514 81 04 00 00 */ lwz r8, 0(r4)
/* 801545B8 00151518 80 E4 00 04 */ lwz r7, 4(r4)
/* 801545BC 0015151C 38 81 00 10 */ addi r4, r1, 0x10
/* 801545C0 00151520 80 C3 00 00 */ lwz r6, 0(r3)
/* 801545C4 00151524 80 03 00 04 */ lwz r0, 4(r3)
/* 801545C8 00151528 38 61 00 18 */ addi r3, r1, 0x18
/* 801545CC 0015152C 99 21 00 0C */ stb r9, 0xc(r1)
/* 801545D0 00151530 91 01 00 10 */ stw r8, 0x10(r1)
/* 801545D4 00151534 90 E1 00 14 */ stw r7, 0x14(r1)
/* 801545D8 00151538 90 C1 00 18 */ stw r6, 0x18(r1)
/* 801545DC 0015153C 90 01 00 1C */ stw r0, 0x1c(r1)
/* 801545E0 00151540 48 00 00 15 */ bl "__distance<Q34rstl195red_black_tree<13TGameScriptId,Q24rstl32pair<13TGameScriptId,9TUniqueId>,1,Q24rstl52select1st<Q24rstl32pair<13TGameScriptId,9TUniqueId>>,Q24rstl21less<13TGameScriptId>,Q24rstl17rmemory_allocator>14const_iterator>__4rstlFQ34rstl195red_black_tree<13TGameScriptId,Q24rstl32pair<13TGameScriptId,9TUniqueId>,1,Q24rstl52select1st<Q24rstl32pair<13TGameScriptId,9TUniqueId>>,Q24rstl21less<13TGameScriptId>,Q24rstl17rmemory_allocator>14const_iteratorQ34rstl195red_black_tree<13TGameScriptId,Q24rstl"
/* 801545E4 00151544 80 01 00 24 */ lwz r0, 0x24(r1)
/* 801545E8 00151548 7C 08 03 A6 */ mtlr r0
/* 801545EC 0015154C 38 21 00 20 */ addi r1, r1, 0x20
/* 801545F0 00151550 4E 80 00 20 */ blr
.global "__distance<Q34rstl195red_black_tree<13TGameScriptId,Q24rstl32pair<13TGameScriptId,9TUniqueId>,1,Q24rstl52select1st<Q24rstl32pair<13TGameScriptId,9TUniqueId>>,Q24rstl21less<13TGameScriptId>,Q24rstl17rmemory_allocator>14const_iterator>__4rstlFQ34rstl195red_black_tree<13TGameScriptId,Q24rstl32pair<13TGameScriptId,9TUniqueId>,1,Q24rstl52select1st<Q24rstl32pair<13TGameScriptId,9TUniqueId>>,Q24rstl21less<13TGameScriptId>,Q24rstl17rmemory_allocator>14const_iteratorQ34rstl195red_black_tree<13TGameScriptId,Q24rstl"
"__distance<Q34rstl195red_black_tree<13TGameScriptId,Q24rstl32pair<13TGameScriptId,9TUniqueId>,1,Q24rstl52select1st<Q24rstl32pair<13TGameScriptId,9TUniqueId>>,Q24rstl21less<13TGameScriptId>,Q24rstl17rmemory_allocator>14const_iterator>__4rstlFQ34rstl195red_black_tree<13TGameScriptId,Q24rstl32pair<13TGameScriptId,9TUniqueId>,1,Q24rstl52select1st<Q24rstl32pair<13TGameScriptId,9TUniqueId>>,Q24rstl21less<13TGameScriptId>,Q24rstl17rmemory_allocator>14const_iteratorQ34rstl195red_black_tree<13TGameScriptId,Q24rstl":
/* 801545F4 00151554 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801545F8 00151558 7C 08 02 A6 */ mflr r0
/* 801545FC 0015155C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80154600 00151560 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80154604 00151564 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80154608 00151568 3B C0 00 00 */ li r30, 0
/* 8015460C 0015156C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80154610 00151570 7C 9D 23 78 */ mr r29, r4
/* 80154614 00151574 80 A3 00 00 */ lwz r5, 0(r3)
/* 80154618 00151578 83 E3 00 04 */ lwz r31, 4(r3)
/* 8015461C 0015157C 48 00 00 18 */ b lbl_80154634
lbl_80154620:
/* 80154620 00151580 7F E3 FB 78 */ mr r3, r31
/* 80154624 00151584 7C A4 2B 78 */ mr r4, r5
/* 80154628 00151588 3B DE 00 01 */ addi r30, r30, 1
/* 8015462C 0015158C 48 1E 7F B5 */ bl rbtree_traverse_forward__4rstlFPCvPv
/* 80154630 00151590 7C 65 1B 78 */ mr r5, r3
lbl_80154634:
/* 80154634 00151594 80 1D 00 00 */ lwz r0, 0(r29)
/* 80154638 00151598 38 60 00 00 */ li r3, 0
/* 8015463C 0015159C 7C 05 00 40 */ cmplw r5, r0
/* 80154640 001515A0 40 82 00 10 */ bne lbl_80154650
/* 80154644 001515A4 80 1D 00 04 */ lwz r0, 4(r29)
/* 80154648 001515A8 7C 1F 00 40 */ cmplw r31, r0
/* 8015464C 001515AC 41 82 00 08 */ beq lbl_80154654
lbl_80154650:
/* 80154650 001515B0 38 60 00 01 */ li r3, 1
lbl_80154654:
/* 80154654 001515B4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80154658 001515B8 40 82 FF C8 */ bne lbl_80154620
/* 8015465C 001515BC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80154660 001515C0 7F C3 F3 78 */ mr r3, r30
/* 80154664 001515C4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80154668 001515C8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8015466C 001515CC 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80154670 001515D0 7C 08 03 A6 */ mtlr r0
/* 80154674 001515D4 38 21 00 20 */ addi r1, r1, 0x20
/* 80154678 001515D8 4E 80 00 20 */ blr
.global "reserve__Q24rstl75vector<Q24rstl31pair<9TUniqueId,12CTransform4f>,Q24rstl17rmemory_allocator>Fi"
"reserve__Q24rstl75vector<Q24rstl31pair<9TUniqueId,12CTransform4f>,Q24rstl17rmemory_allocator>Fi":
/* 8015467C 001515DC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80154680 001515E0 7C 08 02 A6 */ mflr r0
/* 80154684 001515E4 90 01 00 34 */ stw r0, 0x34(r1)
/* 80154688 001515E8 BF 41 00 18 */ stmw r26, 0x18(r1)
/* 8015468C 001515EC 7C 9F 23 78 */ mr r31, r4
/* 80154690 001515F0 7C 7E 1B 78 */ mr r30, r3
/* 80154694 001515F4 80 03 00 08 */ lwz r0, 8(r3)
/* 80154698 001515F8 7C 1F 00 00 */ cmpw r31, r0
/* 8015469C 001515FC 40 81 00 B8 */ ble lbl_80154754
/* 801546A0 00151600 1C 7F 00 34 */ mulli r3, r31, 0x34
/* 801546A4 00151604 2C 03 00 00 */ cmpwi r3, 0
/* 801546A8 00151608 40 82 00 0C */ bne lbl_801546B4
/* 801546AC 0015160C 3B 80 00 00 */ li r28, 0
/* 801546B0 00151610 48 00 00 18 */ b lbl_801546C8
lbl_801546B4:
/* 801546B4 00151614 3C 80 80 3D */ lis r4, lbl_803D01F0@ha
/* 801546B8 00151618 38 A0 00 00 */ li r5, 0
/* 801546BC 0015161C 38 84 01 F0 */ addi r4, r4, lbl_803D01F0@l
/* 801546C0 00151620 48 1C 11 59 */ bl __nwa__FUlPCcPCc
/* 801546C4 00151624 7C 7C 1B 78 */ mr r28, r3
lbl_801546C8:
/* 801546C8 00151628 80 1E 00 04 */ lwz r0, 4(r30)
/* 801546CC 0015162C 7F 9B E3 78 */ mr r27, r28
/* 801546D0 00151630 83 5E 00 0C */ lwz r26, 0xc(r30)
/* 801546D4 00151634 1C 00 00 34 */ mulli r0, r0, 0x34
/* 801546D8 00151638 93 41 00 10 */ stw r26, 0x10(r1)
/* 801546DC 0015163C 7F BA 02 14 */ add r29, r26, r0
/* 801546E0 00151640 93 41 00 14 */ stw r26, 0x14(r1)
/* 801546E4 00151644 93 A1 00 08 */ stw r29, 8(r1)
/* 801546E8 00151648 93 A1 00 0C */ stw r29, 0xc(r1)
/* 801546EC 0015164C 48 00 00 28 */ b lbl_80154714
lbl_801546F0:
/* 801546F0 00151650 28 1B 00 00 */ cmplwi r27, 0
/* 801546F4 00151654 41 82 00 18 */ beq lbl_8015470C
/* 801546F8 00151658 A0 1A 00 00 */ lhz r0, 0(r26)
/* 801546FC 0015165C 38 7B 00 04 */ addi r3, r27, 4
/* 80154700 00151660 38 9A 00 04 */ addi r4, r26, 4
/* 80154704 00151664 B0 1B 00 00 */ sth r0, 0(r27)
/* 80154708 00151668 48 1B E4 6D */ bl __ct__12CTransform4fFRC12CTransform4f
lbl_8015470C:
/* 8015470C 0015166C 3B 7B 00 34 */ addi r27, r27, 0x34
/* 80154710 00151670 3B 5A 00 34 */ addi r26, r26, 0x34
lbl_80154714:
/* 80154714 00151674 7C 1A E8 40 */ cmplw r26, r29
/* 80154718 00151678 40 82 FF D8 */ bne lbl_801546F0
/* 8015471C 0015167C 80 1E 00 04 */ lwz r0, 4(r30)
/* 80154720 00151680 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 80154724 00151684 1C 00 00 34 */ mulli r0, r0, 0x34
/* 80154728 00151688 7C 64 1B 78 */ mr r4, r3
/* 8015472C 0015168C 7C 03 02 14 */ add r0, r3, r0
/* 80154730 00151690 48 00 00 08 */ b lbl_80154738
lbl_80154734:
/* 80154734 00151694 38 84 00 34 */ addi r4, r4, 0x34
lbl_80154738:
/* 80154738 00151698 7C 04 00 40 */ cmplw r4, r0
/* 8015473C 0015169C 40 82 FF F8 */ bne lbl_80154734
/* 80154740 001516A0 28 03 00 00 */ cmplwi r3, 0
/* 80154744 001516A4 41 82 00 08 */ beq lbl_8015474C
/* 80154748 001516A8 48 1C 11 E9 */ bl Free__7CMemoryFPCv
lbl_8015474C:
/* 8015474C 001516AC 93 9E 00 0C */ stw r28, 0xc(r30)
/* 80154750 001516B0 93 FE 00 08 */ stw r31, 8(r30)
lbl_80154754:
/* 80154754 001516B4 BB 41 00 18 */ lmw r26, 0x18(r1)
/* 80154758 001516B8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8015475C 001516BC 7C 08 03 A6 */ mtlr r0
/* 80154760 001516C0 38 21 00 30 */ addi r1, r1, 0x30
/* 80154764 001516C4 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805ABB18
lbl_805ABB18:
# ROM: 0x3F83B8
.4byte 0
.global lbl_805ABB1C
lbl_805ABB1C:
# ROM: 0x3F83BC
.float 0.017453292
.section .rodata
.balign 8
.global lbl_803D01F0
lbl_803D01F0:
# ROM: 0x3CD1F0
.asciz "??(??)"
.balign 4