prime/asm/MetroidPrime/CGameLight.s

340 lines
17 KiB
ArmAsm

.include "macros.inc"
.section .data
.global lbl_803DF3B8
lbl_803DF3B8:
# ROM: 0x3DC3B8
.4byte 0
.4byte 0
.4byte __dt__10CGameLightFv
.4byte Accept__10CGameLightFR8IVisitor
.4byte PreThink__7CEntityFfR13CStateManager
.4byte Think__10CGameLightFfR13CStateManager
.4byte AcceptScriptMsg__6CActorF20EScriptObjectMessage9TUniqueIdR13CStateManager
.4byte SetActive__6CActorFb
.4byte PreRender__6CActorFR13CStateManagerRC14CFrustumPlanes
.4byte AddToRenderer__6CActorCFRC14CFrustumPlanesRC13CStateManager
.4byte Render__6CActorCFRC13CStateManager
.4byte CanRenderUnsorted__6CActorCFRC13CStateManager
.4byte CalculateRenderBounds__6CActorFv
.4byte HealthInfo__6CActorFR13CStateManager
.4byte GetDamageVulnerability__6CActorCFv
.4byte GetDamageVulnerability__6CActorCFRC9CVector3fRC9CVector3fRC11CDamageInfo
.4byte GetTouchBounds__6CActorCFv
.4byte Touch__6CActorFR6CActorR13CStateManager
.4byte GetOrbitPosition__6CActorCFRC13CStateManager
.4byte GetAimPosition__6CActorCFRC13CStateManagerf
.4byte GetHomingPosition__6CActorCFRC13CStateManagerf
.4byte GetScanObjectIndicatorPosition__6CActorCFRC13CStateManager
.4byte GetCollisionResponseType__6CActorCFRC9CVector3fRC9CVector3fRC11CWeaponModei
.4byte FluidFXThink__6CActorFQ26CActor11EFluidStateR12CScriptWaterR13CStateManager
.4byte OnScanStateChange__6CActorFQ26CActor10EScanStateR13CStateManager
.4byte GetSortingBounds__6CActorCFRC12CTransform4f
.4byte DoUserAnimEvent__6CActorFR13CStateManagerRC13CInt32POINode14EUserEventType
.4byte 0
.section .sdata
.global lbl_805A7218
lbl_805A7218:
# ROM: 0x3F4BB8
.4byte 0
.4byte 0
.section .text, "ax"
.global __dt__10CGameLightFv
__dt__10CGameLightFv:
/* 800B55A0 000B2500 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800B55A4 000B2504 7C 08 02 A6 */ mflr r0
/* 800B55A8 000B2508 90 01 00 14 */ stw r0, 0x14(r1)
/* 800B55AC 000B250C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800B55B0 000B2510 7C 9F 23 78 */ mr r31, r4
/* 800B55B4 000B2514 93 C1 00 08 */ stw r30, 8(r1)
/* 800B55B8 000B2518 7C 7E 1B 79 */ or. r30, r3, r3
/* 800B55BC 000B251C 41 82 00 28 */ beq lbl_800B55E4
/* 800B55C0 000B2520 3C A0 80 3E */ lis r5, lbl_803DF3B8@ha
/* 800B55C4 000B2524 38 80 00 00 */ li r4, 0
/* 800B55C8 000B2528 38 05 F3 B8 */ addi r0, r5, lbl_803DF3B8@l
/* 800B55CC 000B252C 90 1E 00 00 */ stw r0, 0(r30)
/* 800B55D0 000B2530 4B FA 01 21 */ bl __dt__6CActorFv
/* 800B55D4 000B2534 7F E0 07 35 */ extsh. r0, r31
/* 800B55D8 000B2538 40 81 00 0C */ ble lbl_800B55E4
/* 800B55DC 000B253C 7F C3 F3 78 */ mr r3, r30
/* 800B55E0 000B2540 48 26 03 51 */ bl Free__7CMemoryFPCv
lbl_800B55E4:
/* 800B55E4 000B2544 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800B55E8 000B2548 7F C3 F3 78 */ mr r3, r30
/* 800B55EC 000B254C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800B55F0 000B2550 83 C1 00 08 */ lwz r30, 8(r1)
/* 800B55F4 000B2554 7C 08 03 A6 */ mtlr r0
/* 800B55F8 000B2558 38 21 00 10 */ addi r1, r1, 0x10
/* 800B55FC 000B255C 4E 80 00 20 */ blr
.global SetLightPriorityAndId__10CGameLightFv
SetLightPriorityAndId__10CGameLightFv:
/* 800B5600 000B2560 80 03 01 40 */ lwz r0, 0x140(r3)
/* 800B5604 000B2564 90 03 01 28 */ stw r0, 0x128(r3)
/* 800B5608 000B2568 80 03 01 3C */ lwz r0, 0x13c(r3)
/* 800B560C 000B256C 90 03 01 2C */ stw r0, 0x12c(r3)
/* 800B5610 000B2570 4E 80 00 20 */ blr
.global Accept__10CGameLightFR8IVisitor
Accept__10CGameLightFR8IVisitor:
/* 800B5614 000B2574 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800B5618 000B2578 7C 08 02 A6 */ mflr r0
/* 800B561C 000B257C 90 01 00 14 */ stw r0, 0x14(r1)
/* 800B5620 000B2580 7C 60 1B 78 */ mr r0, r3
/* 800B5624 000B2584 7C 83 23 78 */ mr r3, r4
/* 800B5628 000B2588 81 84 00 00 */ lwz r12, 0(r4)
/* 800B562C 000B258C 7C 04 03 78 */ mr r4, r0
/* 800B5630 000B2590 81 8C 00 38 */ lwz r12, 0x38(r12)
/* 800B5634 000B2594 7D 89 03 A6 */ mtctr r12
/* 800B5638 000B2598 4E 80 04 21 */ bctrl
/* 800B563C 000B259C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800B5640 000B25A0 7C 08 03 A6 */ mtlr r0
/* 800B5644 000B25A4 38 21 00 10 */ addi r1, r1, 0x10
/* 800B5648 000B25A8 4E 80 00 20 */ blr
.global Think__10CGameLightFfR13CStateManager
Think__10CGameLightFfR13CStateManager:
/* 800B564C 000B25AC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800B5650 000B25B0 7C 08 02 A6 */ mflr r0
/* 800B5654 000B25B4 C0 42 8C F0 */ lfs f2, lbl_805AAA10@sda21(r2)
/* 800B5658 000B25B8 90 01 00 14 */ stw r0, 0x14(r1)
/* 800B565C 000B25BC C0 03 01 44 */ lfs f0, 0x144(r3)
/* 800B5660 000B25C0 FC 00 10 40 */ fcmpo cr0, f0, f2
/* 800B5664 000B25C4 40 81 00 34 */ ble lbl_800B5698
/* 800B5668 000B25C8 EC 00 08 28 */ fsubs f0, f0, f1
/* 800B566C 000B25CC D0 03 01 44 */ stfs f0, 0x144(r3)
/* 800B5670 000B25D0 C0 03 01 44 */ lfs f0, 0x144(r3)
/* 800B5674 000B25D4 FC 00 10 40 */ fcmpo cr0, f0, f2
/* 800B5678 000B25D8 4C 40 13 82 */ cror 2, 0, 2
/* 800B567C 000B25DC 40 82 00 1C */ bne lbl_800B5698
/* 800B5680 000B25E0 A0 03 00 08 */ lhz r0, 8(r3)
/* 800B5684 000B25E4 7C 83 23 78 */ mr r3, r4
/* 800B5688 000B25E8 38 81 00 0C */ addi r4, r1, 0xc
/* 800B568C 000B25EC B0 01 00 08 */ sth r0, 8(r1)
/* 800B5690 000B25F0 B0 01 00 0C */ sth r0, 0xc(r1)
/* 800B5694 000B25F4 4B F9 6B D9 */ bl FreeScriptObject__13CStateManagerF9TUniqueId
lbl_800B5698:
/* 800B5698 000B25F8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800B569C 000B25FC 7C 08 03 A6 */ mtlr r0
/* 800B56A0 000B2600 38 21 00 10 */ addi r1, r1, 0x10
/* 800B56A4 000B2604 4E 80 00 20 */ blr
.global GetLight__10CGameLightCFv
GetLight__10CGameLightCFv:
/* 800B56A8 000B2608 94 21 FF 70 */ stwu r1, -0x90(r1)
/* 800B56AC 000B260C 7C 08 02 A6 */ mflr r0
/* 800B56B0 000B2610 90 01 00 94 */ stw r0, 0x94(r1)
/* 800B56B4 000B2614 93 E1 00 8C */ stw r31, 0x8c(r1)
/* 800B56B8 000B2618 7C 9F 23 78 */ mr r31, r4
/* 800B56BC 000B261C 38 9F 00 EC */ addi r4, r31, 0xec
/* 800B56C0 000B2620 93 C1 00 88 */ stw r30, 0x88(r1)
/* 800B56C4 000B2624 7C 7E 1B 78 */ mr r30, r3
/* 800B56C8 000B2628 38 61 00 2C */ addi r3, r1, 0x2c
/* 800B56CC 000B262C 4B F8 5E A5 */ bl __ct__6CLightFCR6CLight
/* 800B56D0 000B2630 38 61 00 20 */ addi r3, r1, 0x20
/* 800B56D4 000B2634 38 9F 00 34 */ addi r4, r31, 0x34
/* 800B56D8 000B2638 38 BF 00 EC */ addi r5, r31, 0xec
/* 800B56DC 000B263C 48 25 D4 0D */ bl __ml__12CTransform4fCFRC9CVector3f
/* 800B56E0 000B2640 38 61 00 2C */ addi r3, r1, 0x2c
/* 800B56E4 000B2644 38 81 00 20 */ addi r4, r1, 0x20
/* 800B56E8 000B2648 48 25 0C 59 */ bl SetPosition__6CLightFRC9CVector3f
/* 800B56EC 000B264C 80 01 00 48 */ lwz r0, 0x48(r1)
/* 800B56F0 000B2650 2C 00 00 01 */ cmpwi r0, 1
/* 800B56F4 000B2654 41 82 00 2C */ beq lbl_800B5720
/* 800B56F8 000B2658 38 61 00 08 */ addi r3, r1, 8
/* 800B56FC 000B265C 38 9F 00 34 */ addi r4, r31, 0x34
/* 800B5700 000B2660 38 BF 00 F8 */ addi r5, r31, 0xf8
/* 800B5704 000B2664 48 25 D3 7D */ bl Rotate__12CTransform4fCFRC9CVector3f
/* 800B5708 000B2668 38 61 00 14 */ addi r3, r1, 0x14
/* 800B570C 000B266C 38 81 00 08 */ addi r4, r1, 8
/* 800B5710 000B2670 48 25 F1 41 */ bl AsNormalized__9CVector3fCFv
/* 800B5714 000B2674 38 61 00 2C */ addi r3, r1, 0x2c
/* 800B5718 000B2678 38 81 00 14 */ addi r4, r1, 0x14
/* 800B571C 000B267C 48 25 0C 09 */ bl SetDirection__6CLightFRC9CVector3f
lbl_800B5720:
/* 800B5720 000B2680 7F C3 F3 78 */ mr r3, r30
/* 800B5724 000B2684 38 81 00 2C */ addi r4, r1, 0x2c
/* 800B5728 000B2688 4B F8 5E 49 */ bl __ct__6CLightFCR6CLight
/* 800B572C 000B268C 80 01 00 94 */ lwz r0, 0x94(r1)
/* 800B5730 000B2690 83 E1 00 8C */ lwz r31, 0x8c(r1)
/* 800B5734 000B2694 83 C1 00 88 */ lwz r30, 0x88(r1)
/* 800B5738 000B2698 7C 08 03 A6 */ mtlr r0
/* 800B573C 000B269C 38 21 00 90 */ addi r1, r1, 0x90
/* 800B5740 000B26A0 4E 80 00 20 */ blr
.global SetLight__10CGameLightFRC6CLight
SetLight__10CGameLightFRC6CLight:
/* 800B5744 000B26A4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800B5748 000B26A8 7C 08 02 A6 */ mflr r0
/* 800B574C 000B26AC 90 01 00 14 */ stw r0, 0x14(r1)
/* 800B5750 000B26B0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800B5754 000B26B4 7C 7F 1B 78 */ mr r31, r3
/* 800B5758 000B26B8 38 7F 00 EC */ addi r3, r31, 0xec
/* 800B575C 000B26BC 80 A4 00 00 */ lwz r5, 0(r4)
/* 800B5760 000B26C0 80 04 00 04 */ lwz r0, 4(r4)
/* 800B5764 000B26C4 90 BF 00 EC */ stw r5, 0xec(r31)
/* 800B5768 000B26C8 90 1F 00 F0 */ stw r0, 0xf0(r31)
/* 800B576C 000B26CC 80 04 00 08 */ lwz r0, 8(r4)
/* 800B5770 000B26D0 90 1F 00 F4 */ stw r0, 0xf4(r31)
/* 800B5774 000B26D4 80 A4 00 0C */ lwz r5, 0xc(r4)
/* 800B5778 000B26D8 80 04 00 10 */ lwz r0, 0x10(r4)
/* 800B577C 000B26DC 90 BF 00 F8 */ stw r5, 0xf8(r31)
/* 800B5780 000B26E0 90 1F 00 FC */ stw r0, 0xfc(r31)
/* 800B5784 000B26E4 80 04 00 14 */ lwz r0, 0x14(r4)
/* 800B5788 000B26E8 90 1F 01 00 */ stw r0, 0x100(r31)
/* 800B578C 000B26EC 80 04 00 18 */ lwz r0, 0x18(r4)
/* 800B5790 000B26F0 90 1F 01 04 */ stw r0, 0x104(r31)
/* 800B5794 000B26F4 80 04 00 1C */ lwz r0, 0x1c(r4)
/* 800B5798 000B26F8 90 1F 01 08 */ stw r0, 0x108(r31)
/* 800B579C 000B26FC C0 04 00 20 */ lfs f0, 0x20(r4)
/* 800B57A0 000B2700 D0 1F 01 0C */ stfs f0, 0x10c(r31)
/* 800B57A4 000B2704 C0 04 00 24 */ lfs f0, 0x24(r4)
/* 800B57A8 000B2708 D0 1F 01 10 */ stfs f0, 0x110(r31)
/* 800B57AC 000B270C C0 04 00 28 */ lfs f0, 0x28(r4)
/* 800B57B0 000B2710 D0 1F 01 14 */ stfs f0, 0x114(r31)
/* 800B57B4 000B2714 C0 04 00 2C */ lfs f0, 0x2c(r4)
/* 800B57B8 000B2718 D0 1F 01 18 */ stfs f0, 0x118(r31)
/* 800B57BC 000B271C C0 04 00 30 */ lfs f0, 0x30(r4)
/* 800B57C0 000B2720 D0 1F 01 1C */ stfs f0, 0x11c(r31)
/* 800B57C4 000B2724 C0 04 00 34 */ lfs f0, 0x34(r4)
/* 800B57C8 000B2728 D0 1F 01 20 */ stfs f0, 0x120(r31)
/* 800B57CC 000B272C C0 04 00 38 */ lfs f0, 0x38(r4)
/* 800B57D0 000B2730 D0 1F 01 24 */ stfs f0, 0x124(r31)
/* 800B57D4 000B2734 80 04 00 3C */ lwz r0, 0x3c(r4)
/* 800B57D8 000B2738 90 1F 01 28 */ stw r0, 0x128(r31)
/* 800B57DC 000B273C 80 04 00 40 */ lwz r0, 0x40(r4)
/* 800B57E0 000B2740 90 1F 01 2C */ stw r0, 0x12c(r31)
/* 800B57E4 000B2744 C0 04 00 44 */ lfs f0, 0x44(r4)
/* 800B57E8 000B2748 D0 1F 01 30 */ stfs f0, 0x130(r31)
/* 800B57EC 000B274C C0 04 00 48 */ lfs f0, 0x48(r4)
/* 800B57F0 000B2750 D0 1F 01 34 */ stfs f0, 0x134(r31)
/* 800B57F4 000B2754 88 04 00 4C */ lbz r0, 0x4c(r4)
/* 800B57F8 000B2758 98 1F 01 38 */ stb r0, 0x138(r31)
/* 800B57FC 000B275C 48 25 0A D9 */ bl GetRadius__6CLightCFv
/* 800B5800 000B2760 38 7F 00 EC */ addi r3, r31, 0xec
/* 800B5804 000B2764 48 25 09 51 */ bl GetIntensity__6CLightCFv
/* 800B5808 000B2768 7F E3 FB 78 */ mr r3, r31
/* 800B580C 000B276C 4B FF FD F5 */ bl SetLightPriorityAndId__10CGameLightFv
/* 800B5810 000B2770 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800B5814 000B2774 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800B5818 000B2778 7C 08 03 A6 */ mtlr r0
/* 800B581C 000B277C 38 21 00 10 */ addi r1, r1, 0x10
/* 800B5820 000B2780 4E 80 00 20 */ blr
.global "__ct__10CGameLightF9TUniqueIdbRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4f9TUniqueIdRC6CLightUiUif"
"__ct__10CGameLightF9TUniqueIdbRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4f9TUniqueIdRC6CLightUiUif":
/* 800B5824 000B2784 94 21 FE C0 */ stwu r1, -0x140(r1)
/* 800B5828 000B2788 7C 08 02 A6 */ mflr r0
/* 800B582C 000B278C 3D 60 80 57 */ lis r11, lbl_8056D410@ha
/* 800B5830 000B2790 90 01 01 44 */ stw r0, 0x144(r1)
/* 800B5834 000B2794 DB E1 01 38 */ stfd f31, 0x138(r1)
/* 800B5838 000B2798 FF E0 08 90 */ fmr f31, f1
/* 800B583C 000B279C BE E1 01 14 */ stmw r23, 0x114(r1)
/* 800B5840 000B27A0 7C 77 1B 78 */ mr r23, r3
/* 800B5844 000B27A4 7C 98 23 78 */ mr r24, r4
/* 800B5848 000B27A8 7C D9 33 78 */ mr r25, r6
/* 800B584C 000B27AC 83 C1 01 48 */ lwz r30, 0x148(r1)
/* 800B5850 000B27B0 7C FA 3B 78 */ mr r26, r7
/* 800B5854 000B27B4 83 E1 01 4C */ lwz r31, 0x14c(r1)
/* 800B5858 000B27B8 7D 1B 43 78 */ mr r27, r8
/* 800B585C 000B27BC 7D 3C 4B 78 */ mr r28, r9
/* 800B5860 000B27C0 7D 5D 53 78 */ mr r29, r10
/* 800B5864 000B27C4 38 61 00 38 */ addi r3, r1, 0x38
/* 800B5868 000B27C8 38 81 00 2C */ addi r4, r1, 0x2c
/* 800B586C 000B27CC 38 C1 00 28 */ addi r6, r1, 0x28
/* 800B5870 000B27D0 80 05 00 00 */ lwz r0, 0(r5)
/* 800B5874 000B27D4 38 AB D4 10 */ addi r5, r11, lbl_8056D410@l
/* 800B5878 000B27D8 81 8D A3 88 */ lwz r12, lbl_805A8F48@sda21(r13)
/* 800B587C 000B27DC 90 01 00 2C */ stw r0, 0x2c(r1)
/* 800B5880 000B27E0 91 81 00 28 */ stw r12, 0x28(r1)
/* 800B5884 000B27E4 4B F9 BC 01 */ bl "__ct__11CEntityInfoF7TAreaIdRCQ24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>9TEditorId"
/* 800B5888 000B27E8 38 61 00 B8 */ addi r3, r1, 0xb8
/* 800B588C 000B27EC 4B F8 4F 19 */ bl CModelDataNull__10CModelDataFv
/* 800B5890 000B27F0 38 61 00 50 */ addi r3, r1, 0x50
/* 800B5894 000B27F4 4B F6 55 A5 */ bl None__16CActorParametersFv
/* 800B5898 000B27F8 A0 8D A3 8C */ lhz r4, lbl_805A8F4C@sda21(r13)
/* 800B589C 000B27FC 38 00 00 00 */ li r0, 0
/* 800B58A0 000B2800 80 AD 86 58 */ lwz r5, lbl_805A7218@sda21(r13)
/* 800B58A4 000B2804 38 60 00 00 */ li r3, 0
/* 800B58A8 000B2808 B0 81 00 10 */ sth r4, 0x10(r1)
/* 800B58AC 000B280C 38 80 00 01 */ li r4, 1
/* 800B58B0 000B2810 90 01 00 34 */ stw r0, 0x34(r1)
/* 800B58B4 000B2814 90 01 00 30 */ stw r0, 0x30(r1)
/* 800B58B8 000B2818 48 2D 46 3D */ bl __shl2i
/* 800B58BC 000B281C 80 A1 00 30 */ lwz r5, 0x30(r1)
/* 800B58C0 000B2820 39 61 00 50 */ addi r11, r1, 0x50
/* 800B58C4 000B2824 80 C1 00 34 */ lwz r6, 0x34(r1)
/* 800B58C8 000B2828 38 01 00 10 */ addi r0, r1, 0x10
/* 800B58CC 000B282C 7C A3 1B 78 */ or r3, r5, r3
/* 800B58D0 000B2830 A0 F8 00 00 */ lhz r7, 0(r24)
/* 800B58D4 000B2834 7C C4 23 78 */ or r4, r6, r4
/* 800B58D8 000B2838 90 61 00 30 */ stw r3, 0x30(r1)
/* 800B58DC 000B283C 7E E3 BB 78 */ mr r3, r23
/* 800B58E0 000B2840 7F 25 CB 78 */ mr r5, r25
/* 800B58E4 000B2844 90 81 00 34 */ stw r4, 0x34(r1)
/* 800B58E8 000B2848 7F 46 D3 78 */ mr r6, r26
/* 800B58EC 000B284C 7F 68 DB 78 */ mr r8, r27
/* 800B58F0 000B2850 38 81 00 14 */ addi r4, r1, 0x14
/* 800B58F4 000B2854 B0 E1 00 14 */ sth r7, 0x14(r1)
/* 800B58F8 000B2858 38 E1 00 38 */ addi r7, r1, 0x38
/* 800B58FC 000B285C 39 21 00 B8 */ addi r9, r1, 0xb8
/* 800B5900 000B2860 39 41 00 30 */ addi r10, r1, 0x30
/* 800B5904 000B2864 91 61 00 08 */ stw r11, 8(r1)
/* 800B5908 000B2868 90 01 00 0C */ stw r0, 0xc(r1)
/* 800B590C 000B286C 4B F9 FF 15 */ bl "__ct__6CActorF9TUniqueIdbRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC13CMaterialListRC16CActorParameters9TUniqueId"
/* 800B5910 000B2870 38 61 00 50 */ addi r3, r1, 0x50
/* 800B5914 000B2874 38 80 FF FF */ li r4, -1
/* 800B5918 000B2878 48 05 0C F1 */ bl __dt__16CActorParametersFv
/* 800B591C 000B287C 38 61 00 B8 */ addi r3, r1, 0xb8
/* 800B5920 000B2880 38 80 FF FF */ li r4, -1
/* 800B5924 000B2884 48 06 11 29 */ bl __dt__10CModelDataFv
/* 800B5928 000B2888 80 01 00 40 */ lwz r0, 0x40(r1)
/* 800B592C 000B288C 80 61 00 48 */ lwz r3, 0x48(r1)
/* 800B5930 000B2890 1C 00 00 0C */ mulli r0, r0, 0xc
/* 800B5934 000B2894 90 61 00 1C */ stw r3, 0x1c(r1)
/* 800B5938 000B2898 7C 64 1B 78 */ mr r4, r3
/* 800B593C 000B289C 7C 03 02 14 */ add r0, r3, r0
/* 800B5940 000B28A0 90 61 00 18 */ stw r3, 0x18(r1)
/* 800B5944 000B28A4 90 01 00 24 */ stw r0, 0x24(r1)
/* 800B5948 000B28A8 90 01 00 20 */ stw r0, 0x20(r1)
/* 800B594C 000B28AC 48 00 00 08 */ b lbl_800B5954
lbl_800B5950:
/* 800B5950 000B28B0 38 84 00 0C */ addi r4, r4, 0xc
lbl_800B5954:
/* 800B5954 000B28B4 7C 04 00 40 */ cmplw r4, r0
/* 800B5958 000B28B8 40 82 FF F8 */ bne lbl_800B5950
/* 800B595C 000B28BC 28 03 00 00 */ cmplwi r3, 0
/* 800B5960 000B28C0 41 82 00 08 */ beq lbl_800B5968
/* 800B5964 000B28C4 48 25 FF CD */ bl Free__7CMemoryFPCv
lbl_800B5968:
/* 800B5968 000B28C8 3C 60 80 3E */ lis r3, lbl_803DF3B8@ha
/* 800B596C 000B28CC 7F A4 EB 78 */ mr r4, r29
/* 800B5970 000B28D0 38 03 F3 B8 */ addi r0, r3, lbl_803DF3B8@l
/* 800B5974 000B28D4 38 77 00 EC */ addi r3, r23, 0xec
/* 800B5978 000B28D8 90 17 00 00 */ stw r0, 0(r23)
/* 800B597C 000B28DC A0 1C 00 00 */ lhz r0, 0(r28)
/* 800B5980 000B28E0 B0 17 00 E8 */ sth r0, 0xe8(r23)
/* 800B5984 000B28E4 4B F8 5B ED */ bl __ct__6CLightFCR6CLight
/* 800B5988 000B28E8 93 D7 01 3C */ stw r30, 0x13c(r23)
/* 800B598C 000B28EC 38 77 00 EC */ addi r3, r23, 0xec
/* 800B5990 000B28F0 93 F7 01 40 */ stw r31, 0x140(r23)
/* 800B5994 000B28F4 D3 F7 01 44 */ stfs f31, 0x144(r23)
/* 800B5998 000B28F8 48 25 09 3D */ bl GetRadius__6CLightCFv
/* 800B599C 000B28FC 38 77 00 EC */ addi r3, r23, 0xec
/* 800B59A0 000B2900 48 25 07 B5 */ bl GetIntensity__6CLightCFv
/* 800B59A4 000B2904 7E E3 BB 78 */ mr r3, r23
/* 800B59A8 000B2908 4B FF FC 59 */ bl SetLightPriorityAndId__10CGameLightFv
/* 800B59AC 000B290C 7E E3 BB 78 */ mr r3, r23
/* 800B59B0 000B2910 CB E1 01 38 */ lfd f31, 0x138(r1)
/* 800B59B4 000B2914 BA E1 01 14 */ lmw r23, 0x114(r1)
/* 800B59B8 000B2918 80 01 01 44 */ lwz r0, 0x144(r1)
/* 800B59BC 000B291C 7C 08 03 A6 */ mtlr r0
/* 800B59C0 000B2920 38 21 01 40 */ addi r1, r1, 0x140
/* 800B59C4 000B2924 4E 80 00 20 */ blr