donut-decomp/asm/libnw4r_ef/ef_creationqueue.s

305 lines
16 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
.global AddParticleCreation__Q34nw4r2ef13CreationQueueFPCQ34nw4r2ef21EmitterInheritSettingPQ34nw4r2ef8ParticlePQ34nw4r2ef15EmitterResourceUsPCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3
AddParticleCreation__Q34nw4r2ef13CreationQueueFPCQ34nw4r2ef21EmitterInheritSettingPQ34nw4r2ef8ParticlePQ34nw4r2ef15EmitterResourceUsPCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3:
/* 800B4690 000B04D0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 800B4694 000B04D4 7C 08 02 A6 */ mflr r0
/* 800B4698 000B04D8 90 01 00 34 */ stw r0, 0x34(r1)
/* 800B469C 000B04DC 39 61 00 30 */ addi r11, r1, 0x30
/* 800B46A0 000B04E0 4B F5 2C 95 */ bl lbl_80007334
/* 800B46A4 000B04E4 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800B46A8 000B04E8 2C 00 04 00 */ cmpwi r0, 0x400
/* 800B46AC 000B04EC 40 80 01 48 */ bge lbl_800B47F4
/* 800B46B0 000B04F0 1C 00 00 30 */ mulli r0, r0, 0x30
/* 800B46B4 000B04F4 3B 20 00 00 */ li r25, 0x0
/* 800B46B8 000B04F8 AB 64 00 00 */ lha r27, 0x0(r4)
/* 800B46BC 000B04FC 2C 08 00 00 */ cmpwi r8, 0x0
/* 800B46C0 000B0500 8B 84 00 02 */ lbz r28, 0x2(r4)
/* 800B46C4 000B0504 7D 43 02 14 */ add r10, r3, r0
/* 800B46C8 000B0508 9B 2A 00 04 */ stb r25, 0x4(r10)
/* 800B46CC 000B050C 8B A4 00 03 */ lbz r29, 0x3(r4)
/* 800B46D0 000B0510 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800B46D4 000B0514 8B C4 00 04 */ lbz r30, 0x4(r4)
/* 800B46D8 000B0518 1C 00 00 30 */ mulli r0, r0, 0x30
/* 800B46DC 000B051C 8B E4 00 05 */ lbz r31, 0x5(r4)
/* 800B46E0 000B0520 89 84 00 06 */ lbz r12, 0x6(r4)
/* 800B46E4 000B0524 89 64 00 07 */ lbz r11, 0x7(r4)
/* 800B46E8 000B0528 7F 43 02 14 */ add r26, r3, r0
/* 800B46EC 000B052C 89 44 00 08 */ lbz r10, 0x8(r4)
/* 800B46F0 000B0530 9B 3A 00 05 */ stb r25, 0x5(r26)
/* 800B46F4 000B0534 88 04 00 09 */ lbz r0, 0x9(r4)
/* 800B46F8 000B0538 80 83 00 00 */ lwz r4, 0x0(r3)
/* 800B46FC 000B053C 1C 84 00 30 */ mulli r4, r4, 0x30
/* 800B4700 000B0540 7C 83 22 14 */ add r4, r3, r4
/* 800B4704 000B0544 B0 E4 00 06 */ sth r7, 0x6(r4)
/* 800B4708 000B0548 80 83 00 00 */ lwz r4, 0x0(r3)
/* 800B470C 000B054C 1C 84 00 30 */ mulli r4, r4, 0x30
/* 800B4710 000B0550 7C 83 22 14 */ add r4, r3, r4
/* 800B4714 000B0554 B3 64 00 08 */ sth r27, 0x8(r4)
/* 800B4718 000B0558 9B 84 00 0A */ stb r28, 0xa(r4)
/* 800B471C 000B055C 9B A4 00 0B */ stb r29, 0xb(r4)
/* 800B4720 000B0560 9B C4 00 0C */ stb r30, 0xc(r4)
/* 800B4724 000B0564 9B E4 00 0D */ stb r31, 0xd(r4)
/* 800B4728 000B0568 99 84 00 0E */ stb r12, 0xe(r4)
/* 800B472C 000B056C 99 64 00 0F */ stb r11, 0xf(r4)
/* 800B4730 000B0570 99 44 00 10 */ stb r10, 0x10(r4)
/* 800B4734 000B0574 98 04 00 11 */ stb r0, 0x11(r4)
/* 800B4738 000B0578 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800B473C 000B057C 1C 00 00 30 */ mulli r0, r0, 0x30
/* 800B4740 000B0580 7C 83 02 14 */ add r4, r3, r0
/* 800B4744 000B0584 90 A4 00 14 */ stw r5, 0x14(r4)
/* 800B4748 000B0588 80 85 00 10 */ lwz r4, 0x10(r5)
/* 800B474C 000B058C 38 04 00 01 */ addi r0, r4, 0x1
/* 800B4750 000B0590 90 05 00 10 */ stw r0, 0x10(r5)
/* 800B4754 000B0594 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800B4758 000B0598 1C 00 00 30 */ mulli r0, r0, 0x30
/* 800B475C 000B059C 7C 83 02 14 */ add r4, r3, r0
/* 800B4760 000B05A0 90 C4 00 18 */ stw r6, 0x18(r4)
/* 800B4764 000B05A4 41 82 00 40 */ beq lbl_800B47A4
/* 800B4768 000B05A8 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800B476C 000B05AC 1C 00 00 30 */ mulli r0, r0, 0x30
/* 800B4770 000B05B0 7C 83 02 14 */ add r4, r3, r0
/* 800B4774 000B05B4 88 04 00 05 */ lbz r0, 0x5(r4)
/* 800B4778 000B05B8 60 00 00 01 */ ori r0, r0, 0x1
/* 800B477C 000B05BC 98 04 00 05 */ stb r0, 0x5(r4)
/* 800B4780 000B05C0 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800B4784 000B05C4 C0 08 00 00 */ lfs f0, 0x0(r8)
/* 800B4788 000B05C8 1C 00 00 30 */ mulli r0, r0, 0x30
/* 800B478C 000B05CC 7C 83 02 14 */ add r4, r3, r0
/* 800B4790 000B05D0 D0 04 00 1C */ stfs f0, 0x1c(r4)
/* 800B4794 000B05D4 C0 08 00 04 */ lfs f0, 0x4(r8)
/* 800B4798 000B05D8 D0 04 00 20 */ stfs f0, 0x20(r4)
/* 800B479C 000B05DC C0 08 00 08 */ lfs f0, 0x8(r8)
/* 800B47A0 000B05E0 D0 04 00 24 */ stfs f0, 0x24(r4)
.global lbl_800B47A4
lbl_800B47A4:
/* 800B47A4 000B05E4 2C 09 00 00 */ cmpwi r9, 0x0
/* 800B47A8 000B05E8 41 82 00 40 */ beq lbl_800B47E8
/* 800B47AC 000B05EC 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800B47B0 000B05F0 1C 00 00 30 */ mulli r0, r0, 0x30
/* 800B47B4 000B05F4 7C 83 02 14 */ add r4, r3, r0
/* 800B47B8 000B05F8 88 04 00 05 */ lbz r0, 0x5(r4)
/* 800B47BC 000B05FC 60 00 00 02 */ ori r0, r0, 0x2
/* 800B47C0 000B0600 98 04 00 05 */ stb r0, 0x5(r4)
/* 800B47C4 000B0604 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800B47C8 000B0608 C0 09 00 00 */ lfs f0, 0x0(r9)
/* 800B47CC 000B060C 1C 00 00 30 */ mulli r0, r0, 0x30
/* 800B47D0 000B0610 7C 83 02 14 */ add r4, r3, r0
/* 800B47D4 000B0614 D0 04 00 28 */ stfs f0, 0x28(r4)
/* 800B47D8 000B0618 C0 09 00 04 */ lfs f0, 0x4(r9)
/* 800B47DC 000B061C D0 04 00 2C */ stfs f0, 0x2c(r4)
/* 800B47E0 000B0620 C0 09 00 08 */ lfs f0, 0x8(r9)
/* 800B47E4 000B0624 D0 04 00 30 */ stfs f0, 0x30(r4)
.global lbl_800B47E8
lbl_800B47E8:
/* 800B47E8 000B0628 80 83 00 00 */ lwz r4, 0x0(r3)
/* 800B47EC 000B062C 38 04 00 01 */ addi r0, r4, 0x1
/* 800B47F0 000B0630 90 03 00 00 */ stw r0, 0x0(r3)
.global lbl_800B47F4
lbl_800B47F4:
/* 800B47F4 000B0634 39 61 00 30 */ addi r11, r1, 0x30
/* 800B47F8 000B0638 4B F5 2B 89 */ bl lbl_80007380
/* 800B47FC 000B063C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800B4800 000B0640 7C 08 03 A6 */ mtlr r0
/* 800B4804 000B0644 38 21 00 30 */ addi r1, r1, 0x30
/* 800B4808 000B0648 4E 80 00 20 */ blr
/* 800B480C 000B064C 00 00 00 00 */ .4byte 0x00000000
.global AddEmitterCreation__Q34nw4r2ef13CreationQueueFPCQ34nw4r2ef21EmitterInheritSettingPQ34nw4r2ef8ParticlePQ34nw4r2ef15EmitterResourceUsPCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3
AddEmitterCreation__Q34nw4r2ef13CreationQueueFPCQ34nw4r2ef21EmitterInheritSettingPQ34nw4r2ef8ParticlePQ34nw4r2ef15EmitterResourceUsPCQ34nw4r4math4VEC3PCQ34nw4r4math4VEC3:
/* 800B4810 000B0650 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 800B4814 000B0654 7C 08 02 A6 */ mflr r0
/* 800B4818 000B0658 90 01 00 34 */ stw r0, 0x34(r1)
/* 800B481C 000B065C 39 61 00 30 */ addi r11, r1, 0x30
/* 800B4820 000B0660 4B F5 2B 15 */ bl lbl_80007334
/* 800B4824 000B0664 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800B4828 000B0668 2C 00 04 00 */ cmpwi r0, 0x400
/* 800B482C 000B066C 40 80 01 4C */ bge lbl_800B4978
/* 800B4830 000B0670 1C 00 00 30 */ mulli r0, r0, 0x30
/* 800B4834 000B0674 39 60 00 01 */ li r11, 0x1
/* 800B4838 000B0678 3B 20 00 00 */ li r25, 0x0
/* 800B483C 000B067C AB 64 00 00 */ lha r27, 0x0(r4)
/* 800B4840 000B0680 8B 84 00 02 */ lbz r28, 0x2(r4)
/* 800B4844 000B0684 2C 08 00 00 */ cmpwi r8, 0x0
/* 800B4848 000B0688 7D 43 02 14 */ add r10, r3, r0
/* 800B484C 000B068C 8B A4 00 03 */ lbz r29, 0x3(r4)
/* 800B4850 000B0690 99 6A 00 04 */ stb r11, 0x4(r10)
/* 800B4854 000B0694 8B C4 00 04 */ lbz r30, 0x4(r4)
/* 800B4858 000B0698 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800B485C 000B069C 8B E4 00 05 */ lbz r31, 0x5(r4)
/* 800B4860 000B06A0 1C 00 00 30 */ mulli r0, r0, 0x30
/* 800B4864 000B06A4 89 84 00 06 */ lbz r12, 0x6(r4)
/* 800B4868 000B06A8 89 64 00 07 */ lbz r11, 0x7(r4)
/* 800B486C 000B06AC 89 44 00 08 */ lbz r10, 0x8(r4)
/* 800B4870 000B06B0 7F 43 02 14 */ add r26, r3, r0
/* 800B4874 000B06B4 88 04 00 09 */ lbz r0, 0x9(r4)
/* 800B4878 000B06B8 9B 3A 00 05 */ stb r25, 0x5(r26)
/* 800B487C 000B06BC 80 83 00 00 */ lwz r4, 0x0(r3)
/* 800B4880 000B06C0 1C 84 00 30 */ mulli r4, r4, 0x30
/* 800B4884 000B06C4 7C 83 22 14 */ add r4, r3, r4
/* 800B4888 000B06C8 B0 E4 00 06 */ sth r7, 0x6(r4)
/* 800B488C 000B06CC 80 83 00 00 */ lwz r4, 0x0(r3)
/* 800B4890 000B06D0 1C 84 00 30 */ mulli r4, r4, 0x30
/* 800B4894 000B06D4 7C 83 22 14 */ add r4, r3, r4
/* 800B4898 000B06D8 B3 64 00 08 */ sth r27, 0x8(r4)
/* 800B489C 000B06DC 9B 84 00 0A */ stb r28, 0xa(r4)
/* 800B48A0 000B06E0 9B A4 00 0B */ stb r29, 0xb(r4)
/* 800B48A4 000B06E4 9B C4 00 0C */ stb r30, 0xc(r4)
/* 800B48A8 000B06E8 9B E4 00 0D */ stb r31, 0xd(r4)
/* 800B48AC 000B06EC 99 84 00 0E */ stb r12, 0xe(r4)
/* 800B48B0 000B06F0 99 64 00 0F */ stb r11, 0xf(r4)
/* 800B48B4 000B06F4 99 44 00 10 */ stb r10, 0x10(r4)
/* 800B48B8 000B06F8 98 04 00 11 */ stb r0, 0x11(r4)
/* 800B48BC 000B06FC 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800B48C0 000B0700 1C 00 00 30 */ mulli r0, r0, 0x30
/* 800B48C4 000B0704 7C 83 02 14 */ add r4, r3, r0
/* 800B48C8 000B0708 90 A4 00 14 */ stw r5, 0x14(r4)
/* 800B48CC 000B070C 80 85 00 10 */ lwz r4, 0x10(r5)
/* 800B48D0 000B0710 38 04 00 01 */ addi r0, r4, 0x1
/* 800B48D4 000B0714 90 05 00 10 */ stw r0, 0x10(r5)
/* 800B48D8 000B0718 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800B48DC 000B071C 1C 00 00 30 */ mulli r0, r0, 0x30
/* 800B48E0 000B0720 7C 83 02 14 */ add r4, r3, r0
/* 800B48E4 000B0724 90 C4 00 18 */ stw r6, 0x18(r4)
/* 800B48E8 000B0728 41 82 00 40 */ beq lbl_800B4928
/* 800B48EC 000B072C 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800B48F0 000B0730 1C 00 00 30 */ mulli r0, r0, 0x30
/* 800B48F4 000B0734 7C 83 02 14 */ add r4, r3, r0
/* 800B48F8 000B0738 88 04 00 05 */ lbz r0, 0x5(r4)
/* 800B48FC 000B073C 60 00 00 01 */ ori r0, r0, 0x1
/* 800B4900 000B0740 98 04 00 05 */ stb r0, 0x5(r4)
/* 800B4904 000B0744 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800B4908 000B0748 C0 08 00 00 */ lfs f0, 0x0(r8)
/* 800B490C 000B074C 1C 00 00 30 */ mulli r0, r0, 0x30
/* 800B4910 000B0750 7C 83 02 14 */ add r4, r3, r0
/* 800B4914 000B0754 D0 04 00 1C */ stfs f0, 0x1c(r4)
/* 800B4918 000B0758 C0 08 00 04 */ lfs f0, 0x4(r8)
/* 800B491C 000B075C D0 04 00 20 */ stfs f0, 0x20(r4)
/* 800B4920 000B0760 C0 08 00 08 */ lfs f0, 0x8(r8)
/* 800B4924 000B0764 D0 04 00 24 */ stfs f0, 0x24(r4)
.global lbl_800B4928
lbl_800B4928:
/* 800B4928 000B0768 2C 09 00 00 */ cmpwi r9, 0x0
/* 800B492C 000B076C 41 82 00 40 */ beq lbl_800B496C
/* 800B4930 000B0770 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800B4934 000B0774 1C 00 00 30 */ mulli r0, r0, 0x30
/* 800B4938 000B0778 7C 83 02 14 */ add r4, r3, r0
/* 800B493C 000B077C 88 04 00 05 */ lbz r0, 0x5(r4)
/* 800B4940 000B0780 60 00 00 02 */ ori r0, r0, 0x2
/* 800B4944 000B0784 98 04 00 05 */ stb r0, 0x5(r4)
/* 800B4948 000B0788 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800B494C 000B078C C0 09 00 00 */ lfs f0, 0x0(r9)
/* 800B4950 000B0790 1C 00 00 30 */ mulli r0, r0, 0x30
/* 800B4954 000B0794 7C 83 02 14 */ add r4, r3, r0
/* 800B4958 000B0798 D0 04 00 28 */ stfs f0, 0x28(r4)
/* 800B495C 000B079C C0 09 00 04 */ lfs f0, 0x4(r9)
/* 800B4960 000B07A0 D0 04 00 2C */ stfs f0, 0x2c(r4)
/* 800B4964 000B07A4 C0 09 00 08 */ lfs f0, 0x8(r9)
/* 800B4968 000B07A8 D0 04 00 30 */ stfs f0, 0x30(r4)
.global lbl_800B496C
lbl_800B496C:
/* 800B496C 000B07AC 80 83 00 00 */ lwz r4, 0x0(r3)
/* 800B4970 000B07B0 38 04 00 01 */ addi r0, r4, 0x1
/* 800B4974 000B07B4 90 03 00 00 */ stw r0, 0x0(r3)
.global lbl_800B4978
lbl_800B4978:
/* 800B4978 000B07B8 39 61 00 30 */ addi r11, r1, 0x30
/* 800B497C 000B07BC 4B F5 2A 05 */ bl lbl_80007380
/* 800B4980 000B07C0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800B4984 000B07C4 7C 08 03 A6 */ mtlr r0
/* 800B4988 000B07C8 38 21 00 30 */ addi r1, r1, 0x30
/* 800B498C 000B07CC 4E 80 00 20 */ blr
.global Execute__Q34nw4r2ef13CreationQueueFv
Execute__Q34nw4r2ef13CreationQueueFv:
/* 800B4990 000B07D0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800B4994 000B07D4 7C 08 02 A6 */ mflr r0
/* 800B4998 000B07D8 90 01 00 24 */ stw r0, 0x24(r1)
/* 800B499C 000B07DC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800B49A0 000B07E0 3B E3 00 04 */ addi r31, r3, 0x4
/* 800B49A4 000B07E4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800B49A8 000B07E8 3B C0 00 00 */ li r30, 0x0
/* 800B49AC 000B07EC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 800B49B0 000B07F0 7C 7D 1B 78 */ mr r29, r3
/* 800B49B4 000B07F4 48 00 00 E0 */ b lbl_800B4A94
.global lbl_800B49B8
lbl_800B49B8:
/* 800B49B8 000B07F8 88 1F 00 01 */ lbz r0, 0x1(r31)
/* 800B49BC 000B07FC 39 00 00 00 */ li r8, 0x0
/* 800B49C0 000B0800 54 00 07 FF */ clrlwi. r0, r0, 31
/* 800B49C4 000B0804 41 82 00 08 */ beq lbl_800B49CC
/* 800B49C8 000B0808 39 1F 00 18 */ addi r8, r31, 0x18
.global lbl_800B49CC
lbl_800B49CC:
/* 800B49CC 000B080C 88 1F 00 00 */ lbz r0, 0x0(r31)
/* 800B49D0 000B0810 2C 00 00 00 */ cmpwi r0, 0x0
/* 800B49D4 000B0814 41 82 00 10 */ beq lbl_800B49E4
/* 800B49D8 000B0818 2C 00 00 01 */ cmpwi r0, 0x1
/* 800B49DC 000B081C 41 82 00 58 */ beq lbl_800B4A34
/* 800B49E0 000B0820 48 00 00 AC */ b lbl_800B4A8C
.global lbl_800B49E4
lbl_800B49E4:
/* 800B49E4 000B0824 80 DF 00 10 */ lwz r6, 0x10(r31)
/* 800B49E8 000B0828 38 BF 00 04 */ addi r5, r31, 0x4
/* 800B49EC 000B082C 80 9F 00 14 */ lwz r4, 0x14(r31)
/* 800B49F0 000B0830 80 66 00 C8 */ lwz r3, 0xc8(r6)
/* 800B49F4 000B0834 A0 FF 00 02 */ lhz r7, 0x2(r31)
/* 800B49F8 000B0838 80 63 00 20 */ lwz r3, 0x20(r3)
/* 800B49FC 000B083C 4B FF 0E 35 */ bl CreateEmitterTmp__Q34nw4r2ef7EmitterFPQ34nw4r2ef15EmitterResourcePQ34nw4r2ef21EmitterInheritSettingPQ34nw4r2ef8ParticleUsPQ34nw4r4math4VEC3
/* 800B4A00 000B0840 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 800B4A04 000B0844 80 03 00 10 */ lwz r0, 0x10(r3)
/* 800B4A08 000B0848 34 00 FF FF */ addic. r0, r0, -0x1
/* 800B4A0C 000B084C 90 03 00 10 */ stw r0, 0x10(r3)
/* 800B4A10 000B0850 40 82 00 7C */ bne lbl_800B4A8C
/* 800B4A14 000B0854 80 03 00 0C */ lwz r0, 0xc(r3)
/* 800B4A18 000B0858 2C 00 00 02 */ cmpwi r0, 0x2
/* 800B4A1C 000B085C 40 82 00 70 */ bne lbl_800B4A8C
/* 800B4A20 000B0860 81 83 00 1C */ lwz r12, 0x1c(r3)
/* 800B4A24 000B0864 81 8C 00 08 */ lwz r12, 0x8(r12)
/* 800B4A28 000B0868 7D 89 03 A6 */ mtctr r12
/* 800B4A2C 000B086C 4E 80 04 21 */ bctrl
/* 800B4A30 000B0870 48 00 00 5C */ b lbl_800B4A8C
.global lbl_800B4A34
lbl_800B4A34:
/* 800B4A34 000B0874 80 DF 00 10 */ lwz r6, 0x10(r31)
/* 800B4A38 000B0878 38 BF 00 04 */ addi r5, r31, 0x4
/* 800B4A3C 000B087C 80 9F 00 14 */ lwz r4, 0x14(r31)
/* 800B4A40 000B0880 80 66 00 C8 */ lwz r3, 0xc8(r6)
/* 800B4A44 000B0884 A0 FF 00 02 */ lhz r7, 0x2(r31)
/* 800B4A48 000B0888 80 63 00 20 */ lwz r3, 0x20(r3)
/* 800B4A4C 000B088C 81 83 00 1C */ lwz r12, 0x1c(r3)
/* 800B4A50 000B0890 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 800B4A54 000B0894 7D 89 03 A6 */ mtctr r12
/* 800B4A58 000B0898 4E 80 04 21 */ bctrl
/* 800B4A5C 000B089C 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 800B4A60 000B08A0 80 03 00 10 */ lwz r0, 0x10(r3)
/* 800B4A64 000B08A4 34 00 FF FF */ addic. r0, r0, -0x1
/* 800B4A68 000B08A8 90 03 00 10 */ stw r0, 0x10(r3)
/* 800B4A6C 000B08AC 40 82 00 20 */ bne lbl_800B4A8C
/* 800B4A70 000B08B0 80 03 00 0C */ lwz r0, 0xc(r3)
/* 800B4A74 000B08B4 2C 00 00 02 */ cmpwi r0, 0x2
/* 800B4A78 000B08B8 40 82 00 14 */ bne lbl_800B4A8C
/* 800B4A7C 000B08BC 81 83 00 1C */ lwz r12, 0x1c(r3)
/* 800B4A80 000B08C0 81 8C 00 08 */ lwz r12, 0x8(r12)
/* 800B4A84 000B08C4 7D 89 03 A6 */ mtctr r12
/* 800B4A88 000B08C8 4E 80 04 21 */ bctrl
.global lbl_800B4A8C
lbl_800B4A8C:
/* 800B4A8C 000B08CC 3B FF 00 30 */ addi r31, r31, 0x30
/* 800B4A90 000B08D0 3B DE 00 01 */ addi r30, r30, 0x1
.global lbl_800B4A94
lbl_800B4A94:
/* 800B4A94 000B08D4 80 1D 00 00 */ lwz r0, 0x0(r29)
/* 800B4A98 000B08D8 7C 1E 00 00 */ cmpw r30, r0
/* 800B4A9C 000B08DC 41 80 FF 1C */ blt lbl_800B49B8
/* 800B4AA0 000B08E0 38 00 00 00 */ li r0, 0x0
/* 800B4AA4 000B08E4 90 1D 00 00 */ stw r0, 0x0(r29)
/* 800B4AA8 000B08E8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800B4AAC 000B08EC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800B4AB0 000B08F0 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 800B4AB4 000B08F4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800B4AB8 000B08F8 7C 08 03 A6 */ mtlr r0
/* 800B4ABC 000B08FC 38 21 00 20 */ addi r1, r1, 0x20
/* 800B4AC0 000B0900 4E 80 00 20 */ blr
/* 800B4AC4 000B0904 00 00 00 00 */ .4byte 0x00000000
/* 800B4AC8 000B0908 00 00 00 00 */ .4byte 0x00000000
/* 800B4ACC 000B090C 00 00 00 00 */ .4byte 0x00000000