prime/asm/WorldFormat/CAreaRenderOctTree.s

540 lines
23 KiB
ArmAsm

.include "macros.inc"
.section .data
.balign 8
.global lbl_803EC4A8
lbl_803EC4A8:
# ROM: 0x3E94A8
.4byte lbl_802AEC04
.4byte lbl_802AEA04
.4byte lbl_802AEA28
.4byte lbl_802AEA70
.4byte lbl_802AEA4C
.4byte lbl_802AEA70
.4byte lbl_802AEA70
.4byte lbl_802AEB70
.section .sdata
.balign 8
.global lbl_805A8640
lbl_805A8640:
# ROM: 0x3F5FE0
.4byte 0
.4byte 0
.section .text, "ax"
.global TestBit__13CCubeRendererFPCUii
TestBit__13CCubeRendererFPCUii:
/* 802AE6C4 002AB624 7C 80 2E 70 */ srawi r0, r4, 5
/* 802AE6C8 002AB628 54 84 06 FE */ clrlwi r4, r4, 0x1b
/* 802AE6CC 002AB62C 54 00 10 3A */ slwi r0, r0, 2
/* 802AE6D0 002AB630 38 A0 00 01 */ li r5, 1
/* 802AE6D4 002AB634 7C 03 00 2E */ lwzx r0, r3, r0
/* 802AE6D8 002AB638 7C A3 20 30 */ slw r3, r5, r4
/* 802AE6DC 002AB63C 7C 63 00 38 */ and r3, r3, r0
/* 802AE6E0 002AB640 7C 03 00 D0 */ neg r0, r3
/* 802AE6E4 002AB644 7C 00 1B 78 */ or r0, r0, r3
/* 802AE6E8 002AB648 54 03 0F FE */ srwi r3, r0, 0x1f
/* 802AE6EC 002AB64C 4E 80 00 20 */ blr
.global RecursiveBuildOverlaps__18CAreaRenderOctTreeFPUiRC18CAreaRenderOctTreeRC6CAABoxRC6CAABox
RecursiveBuildOverlaps__18CAreaRenderOctTreeFPUiRC18CAreaRenderOctTreeRC6CAABoxRC6CAABox:
/* 802AE6F0 002AB650 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 802AE6F4 002AB654 7C 08 02 A6 */ mflr r0
/* 802AE6F8 002AB658 90 01 00 54 */ stw r0, 0x54(r1)
/* 802AE6FC 002AB65C BE E1 00 2C */ stmw r23, 0x2c(r1)
/* 802AE700 002AB660 7C D9 33 78 */ mr r25, r6
/* 802AE704 002AB664 7C 98 23 78 */ mr r24, r4
/* 802AE708 002AB668 7C FA 3B 78 */ mr r26, r7
/* 802AE70C 002AB66C 7C 77 1B 78 */ mr r23, r3
/* 802AE710 002AB670 7C BF 2B 78 */ mr r31, r5
/* 802AE714 002AB674 7F 43 D3 78 */ mr r3, r26
/* 802AE718 002AB678 7F 24 CB 78 */ mr r4, r25
/* 802AE71C 002AB67C 48 08 94 69 */ bl DoBoundsOverlap__6CAABoxCFRC6CAABox
/* 802AE720 002AB680 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802AE724 002AB684 41 82 00 E0 */ beq lbl_802AE804
/* 802AE728 002AB688 88 17 00 03 */ lbz r0, 3(r23)
/* 802AE72C 002AB68C 28 00 00 00 */ cmplwi r0, 0
/* 802AE730 002AB690 41 82 00 18 */ beq lbl_802AE748
/* 802AE734 002AB694 7F 23 CB 78 */ mr r3, r25
/* 802AE738 002AB698 7F 44 D3 78 */ mr r4, r26
/* 802AE73C 002AB69C 48 08 93 45 */ bl Inside__6CAABoxCFRC6CAABox
/* 802AE740 002AB6A0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802AE744 002AB6A4 41 82 00 54 */ beq lbl_802AE798
lbl_802AE748:
/* 802AE748 002AB6A8 A0 77 00 00 */ lhz r3, 0(r23)
/* 802AE74C 002AB6AC 7F 05 C3 78 */ mr r5, r24
/* 802AE750 002AB6B0 80 1F 00 14 */ lwz r0, 0x14(r31)
/* 802AE754 002AB6B4 38 C0 00 00 */ li r6, 0
/* 802AE758 002AB6B8 80 9F 00 30 */ lwz r4, 0x30(r31)
/* 802AE75C 002AB6BC 7C 03 01 D6 */ mullw r0, r3, r0
/* 802AE760 002AB6C0 54 00 10 3A */ slwi r0, r0, 2
/* 802AE764 002AB6C4 7C 84 02 14 */ add r4, r4, r0
/* 802AE768 002AB6C8 48 00 00 20 */ b lbl_802AE788
lbl_802AE76C:
/* 802AE76C 002AB6CC 80 04 00 00 */ lwz r0, 0(r4)
/* 802AE770 002AB6D0 38 84 00 04 */ addi r4, r4, 4
/* 802AE774 002AB6D4 80 65 00 00 */ lwz r3, 0(r5)
/* 802AE778 002AB6D8 38 C6 00 01 */ addi r6, r6, 1
/* 802AE77C 002AB6DC 7C 60 03 78 */ or r0, r3, r0
/* 802AE780 002AB6E0 90 05 00 00 */ stw r0, 0(r5)
/* 802AE784 002AB6E4 38 A5 00 04 */ addi r5, r5, 4
lbl_802AE788:
/* 802AE788 002AB6E8 80 1F 00 14 */ lwz r0, 0x14(r31)
/* 802AE78C 002AB6EC 7C 06 00 40 */ cmplw r6, r0
/* 802AE790 002AB6F0 41 80 FF DC */ blt lbl_802AE76C
/* 802AE794 002AB6F4 48 00 00 70 */ b lbl_802AE804
lbl_802AE798:
/* 802AE798 002AB6F8 7E E3 BB 78 */ mr r3, r23
/* 802AE79C 002AB6FC 48 00 04 95 */ bl sub_802aec30
/* 802AE7A0 002AB700 7C 7E 1B 78 */ mr r30, r3
/* 802AE7A4 002AB704 7E FC BB 78 */ mr r28, r23
/* 802AE7A8 002AB708 3B 60 00 00 */ li r27, 0
/* 802AE7AC 002AB70C 48 00 00 50 */ b lbl_802AE7FC
lbl_802AE7B0:
/* 802AE7B0 002AB710 A0 1C 00 04 */ lhz r0, 4(r28)
/* 802AE7B4 002AB714 7E E4 BB 78 */ mr r4, r23
/* 802AE7B8 002AB718 80 7F 00 34 */ lwz r3, 0x34(r31)
/* 802AE7BC 002AB71C 7F 25 CB 78 */ mr r5, r25
/* 802AE7C0 002AB720 54 00 10 3A */ slwi r0, r0, 2
/* 802AE7C4 002AB724 80 FF 00 38 */ lwz r7, 0x38(r31)
/* 802AE7C8 002AB728 7C 03 00 2E */ lwzx r0, r3, r0
/* 802AE7CC 002AB72C 7F 66 DB 78 */ mr r6, r27
/* 802AE7D0 002AB730 38 61 00 08 */ addi r3, r1, 8
/* 802AE7D4 002AB734 7F A7 02 14 */ add r29, r7, r0
/* 802AE7D8 002AB738 48 00 01 B9 */ bl sub_802ae990
/* 802AE7DC 002AB73C 7F A3 EB 78 */ mr r3, r29
/* 802AE7E0 002AB740 7F 04 C3 78 */ mr r4, r24
/* 802AE7E4 002AB744 7F E5 FB 78 */ mr r5, r31
/* 802AE7E8 002AB748 7F 47 D3 78 */ mr r7, r26
/* 802AE7EC 002AB74C 38 C1 00 08 */ addi r6, r1, 8
/* 802AE7F0 002AB750 4B FF FF 01 */ bl RecursiveBuildOverlaps__18CAreaRenderOctTreeFPUiRC18CAreaRenderOctTreeRC6CAABoxRC6CAABox
/* 802AE7F4 002AB754 3B 9C 00 02 */ addi r28, r28, 2
/* 802AE7F8 002AB758 3B 7B 00 01 */ addi r27, r27, 1
lbl_802AE7FC:
/* 802AE7FC 002AB75C 7C 1B F0 00 */ cmpw r27, r30
/* 802AE800 002AB760 41 80 FF B0 */ blt lbl_802AE7B0
lbl_802AE804:
/* 802AE804 002AB764 BA E1 00 2C */ lmw r23, 0x2c(r1)
/* 802AE808 002AB768 80 01 00 54 */ lwz r0, 0x54(r1)
/* 802AE80C 002AB76C 7C 08 03 A6 */ mtlr r0
/* 802AE810 002AB770 38 21 00 50 */ addi r1, r1, 0x50
/* 802AE814 002AB774 4E 80 00 20 */ blr
.global FindOverlappingModels__18CAreaRenderOctTreeFPUiRC6CAABox
FindOverlappingModels__18CAreaRenderOctTreeFPUiRC6CAABox:
/* 802AE818 002AB778 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802AE81C 002AB77C 7C 08 02 A6 */ mflr r0
/* 802AE820 002AB780 7C A7 2B 78 */ mr r7, r5
/* 802AE824 002AB784 7C 65 1B 78 */ mr r5, r3
/* 802AE828 002AB788 90 01 00 14 */ stw r0, 0x14(r1)
/* 802AE82C 002AB78C 80 C3 00 34 */ lwz r6, 0x34(r3)
/* 802AE830 002AB790 81 03 00 38 */ lwz r8, 0x38(r3)
/* 802AE834 002AB794 80 06 00 00 */ lwz r0, 0(r6)
/* 802AE838 002AB798 38 C3 00 18 */ addi r6, r3, 0x18
/* 802AE83C 002AB79C 7C 68 02 14 */ add r3, r8, r0
/* 802AE840 002AB7A0 4B FF FE B1 */ bl RecursiveBuildOverlaps__18CAreaRenderOctTreeFPUiRC18CAreaRenderOctTreeRC6CAABoxRC6CAABox
/* 802AE844 002AB7A4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802AE848 002AB7A8 7C 08 03 A6 */ mtlr r0
/* 802AE84C 002AB7AC 38 21 00 10 */ addi r1, r1, 0x10
/* 802AE850 002AB7B0 4E 80 00 20 */ blr
.global "FindOverlappingModels__18CAreaRenderOctTreeFRQ24rstl10vector<Ui>RC6CAABox"
"FindOverlappingModels__18CAreaRenderOctTreeFRQ24rstl10vector<Ui>RC6CAABox":
/* 802AE854 002AB7B4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802AE858 002AB7B8 7C 08 02 A6 */ mflr r0
/* 802AE85C 002AB7BC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802AE860 002AB7C0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802AE864 002AB7C4 7C BF 2B 78 */ mr r31, r5
/* 802AE868 002AB7C8 38 AD 9A 80 */ addi r5, r13, lbl_805A8640@sda21
/* 802AE86C 002AB7CC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802AE870 002AB7D0 7C 9E 23 78 */ mr r30, r4
/* 802AE874 002AB7D4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802AE878 002AB7D8 7C 7D 1B 78 */ mr r29, r3
/* 802AE87C 002AB7DC 80 83 00 14 */ lwz r4, 0x14(r3)
/* 802AE880 002AB7E0 7F C3 F3 78 */ mr r3, r30
/* 802AE884 002AB7E4 48 00 00 45 */ bl sub_802ae8c8
/* 802AE888 002AB7E8 80 7D 00 34 */ lwz r3, 0x34(r29)
/* 802AE88C 002AB7EC 7F A5 EB 78 */ mr r5, r29
/* 802AE890 002AB7F0 81 1D 00 38 */ lwz r8, 0x38(r29)
/* 802AE894 002AB7F4 7F E7 FB 78 */ mr r7, r31
/* 802AE898 002AB7F8 80 03 00 00 */ lwz r0, 0(r3)
/* 802AE89C 002AB7FC 38 DD 00 18 */ addi r6, r29, 0x18
/* 802AE8A0 002AB800 80 9E 00 0C */ lwz r4, 0xc(r30)
/* 802AE8A4 002AB804 7C 68 02 14 */ add r3, r8, r0
/* 802AE8A8 002AB808 4B FF FE 49 */ bl RecursiveBuildOverlaps__18CAreaRenderOctTreeFPUiRC18CAreaRenderOctTreeRC6CAABoxRC6CAABox
/* 802AE8AC 002AB80C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802AE8B0 002AB810 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802AE8B4 002AB814 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802AE8B8 002AB818 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802AE8BC 002AB81C 7C 08 03 A6 */ mtlr r0
/* 802AE8C0 002AB820 38 21 00 20 */ addi r1, r1, 0x20
/* 802AE8C4 002AB824 4E 80 00 20 */ blr
.global sub_802ae8c8
sub_802ae8c8:
/* 802AE8C8 002AB828 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802AE8CC 002AB82C 7C 08 02 A6 */ mflr r0
/* 802AE8D0 002AB830 90 01 00 34 */ stw r0, 0x34(r1)
/* 802AE8D4 002AB834 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 802AE8D8 002AB838 7C BF 2B 78 */ mr r31, r5
/* 802AE8DC 002AB83C 93 C1 00 28 */ stw r30, 0x28(r1)
/* 802AE8E0 002AB840 7C 9E 23 78 */ mr r30, r4
/* 802AE8E4 002AB844 93 A1 00 24 */ stw r29, 0x24(r1)
/* 802AE8E8 002AB848 7C 7D 1B 78 */ mr r29, r3
/* 802AE8EC 002AB84C 80 03 00 04 */ lwz r0, 4(r3)
/* 802AE8F0 002AB850 7C 00 F0 00 */ cmpw r0, r30
/* 802AE8F4 002AB854 41 82 00 80 */ beq lbl_802AE974
/* 802AE8F8 002AB858 7C 1E 00 00 */ cmpw r30, r0
/* 802AE8FC 002AB85C 40 81 00 40 */ ble lbl_802AE93C
/* 802AE900 002AB860 4B DB 52 25 */ bl "reserve__Q24rstl37vector<Ui,Q24rstl17rmemory_allocator>Fi"
/* 802AE904 002AB864 80 9D 00 04 */ lwz r4, 4(r29)
/* 802AE908 002AB868 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 802AE90C 002AB86C 54 80 10 3A */ slwi r0, r4, 2
/* 802AE910 002AB870 7C 84 F0 51 */ subf. r4, r4, r30
/* 802AE914 002AB874 7C 63 02 14 */ add r3, r3, r0
/* 802AE918 002AB878 7C 89 03 A6 */ mtctr r4
/* 802AE91C 002AB87C 40 81 00 54 */ ble lbl_802AE970
lbl_802AE920:
/* 802AE920 002AB880 28 03 00 00 */ cmplwi r3, 0
/* 802AE924 002AB884 41 82 00 0C */ beq lbl_802AE930
/* 802AE928 002AB888 80 1F 00 00 */ lwz r0, 0(r31)
/* 802AE92C 002AB88C 90 03 00 00 */ stw r0, 0(r3)
lbl_802AE930:
/* 802AE930 002AB890 38 63 00 04 */ addi r3, r3, 4
/* 802AE934 002AB894 42 00 FF EC */ bdnz lbl_802AE920
/* 802AE938 002AB898 48 00 00 38 */ b lbl_802AE970
lbl_802AE93C:
/* 802AE93C 002AB89C 80 9D 00 0C */ lwz r4, 0xc(r29)
/* 802AE940 002AB8A0 54 03 10 3A */ slwi r3, r0, 2
/* 802AE944 002AB8A4 57 C0 10 3A */ slwi r0, r30, 2
/* 802AE948 002AB8A8 7C A4 02 14 */ add r5, r4, r0
/* 802AE94C 002AB8AC 7C 04 1A 14 */ add r0, r4, r3
/* 802AE950 002AB8B0 90 A1 00 10 */ stw r5, 0x10(r1)
/* 802AE954 002AB8B4 90 01 00 08 */ stw r0, 8(r1)
/* 802AE958 002AB8B8 90 01 00 0C */ stw r0, 0xc(r1)
/* 802AE95C 002AB8BC 90 A1 00 14 */ stw r5, 0x14(r1)
/* 802AE960 002AB8C0 48 00 00 08 */ b lbl_802AE968
lbl_802AE964:
/* 802AE964 002AB8C4 38 A5 00 04 */ addi r5, r5, 4
lbl_802AE968:
/* 802AE968 002AB8C8 7C 05 00 40 */ cmplw r5, r0
/* 802AE96C 002AB8CC 40 82 FF F8 */ bne lbl_802AE964
lbl_802AE970:
/* 802AE970 002AB8D0 93 DD 00 04 */ stw r30, 4(r29)
lbl_802AE974:
/* 802AE974 002AB8D4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802AE978 002AB8D8 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 802AE97C 002AB8DC 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 802AE980 002AB8E0 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 802AE984 002AB8E4 7C 08 03 A6 */ mtlr r0
/* 802AE988 002AB8E8 38 21 00 30 */ addi r1, r1, 0x30
/* 802AE98C 002AB8EC 4E 80 00 20 */ blr
.global sub_802ae990
sub_802ae990:
/* 802AE990 002AB8F0 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 802AE994 002AB8F4 7C 08 02 A6 */ mflr r0
/* 802AE998 002AB8F8 90 01 00 64 */ stw r0, 0x64(r1)
/* 802AE99C 002AB8FC 93 E1 00 5C */ stw r31, 0x5c(r1)
/* 802AE9A0 002AB900 7C DF 33 78 */ mr r31, r6
/* 802AE9A4 002AB904 93 C1 00 58 */ stw r30, 0x58(r1)
/* 802AE9A8 002AB908 7C 7E 1B 78 */ mr r30, r3
/* 802AE9AC 002AB90C 93 A1 00 54 */ stw r29, 0x54(r1)
/* 802AE9B0 002AB910 8B A4 00 03 */ lbz r29, 3(r4)
/* 802AE9B4 002AB914 C0 A5 00 00 */ lfs f5, 0(r5)
/* 802AE9B8 002AB918 C0 85 00 04 */ lfs f4, 4(r5)
/* 802AE9BC 002AB91C 28 1D 00 07 */ cmplwi r29, 7
/* 802AE9C0 002AB920 C0 65 00 08 */ lfs f3, 8(r5)
/* 802AE9C4 002AB924 C0 45 00 0C */ lfs f2, 0xc(r5)
/* 802AE9C8 002AB928 C0 25 00 10 */ lfs f1, 0x10(r5)
/* 802AE9CC 002AB92C C0 05 00 14 */ lfs f0, 0x14(r5)
/* 802AE9D0 002AB930 D0 A1 00 44 */ stfs f5, 0x44(r1)
/* 802AE9D4 002AB934 D0 81 00 48 */ stfs f4, 0x48(r1)
/* 802AE9D8 002AB938 D0 61 00 4C */ stfs f3, 0x4c(r1)
/* 802AE9DC 002AB93C D0 41 00 38 */ stfs f2, 0x38(r1)
/* 802AE9E0 002AB940 D0 21 00 3C */ stfs f1, 0x3c(r1)
/* 802AE9E4 002AB944 D0 01 00 40 */ stfs f0, 0x40(r1)
/* 802AE9E8 002AB948 41 81 02 1C */ bgt lbl_802AEC04
/* 802AE9EC 002AB94C 3C 60 80 3F */ lis r3, lbl_803EC4A8@ha
/* 802AE9F0 002AB950 57 A0 10 3A */ slwi r0, r29, 2
/* 802AE9F4 002AB954 38 63 C4 A8 */ addi r3, r3, lbl_803EC4A8@l
/* 802AE9F8 002AB958 7C 03 00 2E */ lwzx r0, r3, r0
/* 802AE9FC 002AB95C 7C 09 03 A6 */ mtctr r0
/* 802AEA00 002AB960 4E 80 04 20 */ bctr
.global lbl_802AEA04
lbl_802AEA04:
/* 802AEA04 002AB964 EC 02 28 2A */ fadds f0, f2, f5
/* 802AEA08 002AB968 C0 22 C1 E8 */ lfs f1, lbl_805ADF08@sda21(r2)
/* 802AEA0C 002AB96C 2C 1F 00 00 */ cmpwi r31, 0
/* 802AEA10 002AB970 EC 01 00 32 */ fmuls f0, f1, f0
/* 802AEA14 002AB974 40 82 00 0C */ bne lbl_802AEA20
/* 802AEA18 002AB978 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 802AEA1C 002AB97C 48 00 01 E8 */ b lbl_802AEC04
lbl_802AEA20:
/* 802AEA20 002AB980 D0 01 00 44 */ stfs f0, 0x44(r1)
/* 802AEA24 002AB984 48 00 01 E0 */ b lbl_802AEC04
.global lbl_802AEA28
lbl_802AEA28:
/* 802AEA28 002AB988 EC 01 20 2A */ fadds f0, f1, f4
/* 802AEA2C 002AB98C C0 22 C1 E8 */ lfs f1, lbl_805ADF08@sda21(r2)
/* 802AEA30 002AB990 2C 1F 00 00 */ cmpwi r31, 0
/* 802AEA34 002AB994 EC 01 00 32 */ fmuls f0, f1, f0
/* 802AEA38 002AB998 40 82 00 0C */ bne lbl_802AEA44
/* 802AEA3C 002AB99C D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 802AEA40 002AB9A0 48 00 01 C4 */ b lbl_802AEC04
lbl_802AEA44:
/* 802AEA44 002AB9A4 D0 01 00 48 */ stfs f0, 0x48(r1)
/* 802AEA48 002AB9A8 48 00 01 BC */ b lbl_802AEC04
.global lbl_802AEA4C
lbl_802AEA4C:
/* 802AEA4C 002AB9AC EC 00 18 2A */ fadds f0, f0, f3
/* 802AEA50 002AB9B0 C0 22 C1 E8 */ lfs f1, lbl_805ADF08@sda21(r2)
/* 802AEA54 002AB9B4 2C 1F 00 00 */ cmpwi r31, 0
/* 802AEA58 002AB9B8 EC 01 00 32 */ fmuls f0, f1, f0
/* 802AEA5C 002AB9BC 40 82 00 0C */ bne lbl_802AEA68
/* 802AEA60 002AB9C0 D0 01 00 40 */ stfs f0, 0x40(r1)
/* 802AEA64 002AB9C4 48 00 01 A0 */ b lbl_802AEC04
lbl_802AEA68:
/* 802AEA68 002AB9C8 D0 01 00 4C */ stfs f0, 0x4c(r1)
/* 802AEA6C 002AB9CC 48 00 01 98 */ b lbl_802AEC04
.global lbl_802AEA70
lbl_802AEA70:
/* 802AEA70 002AB9D0 7C A4 2B 78 */ mr r4, r5
/* 802AEA74 002AB9D4 38 61 00 14 */ addi r3, r1, 0x14
/* 802AEA78 002AB9D8 48 08 8B 95 */ bl GetCenterPoint__6CAABoxCFv
/* 802AEA7C 002AB9DC 1C 1D 00 03 */ mulli r0, r29, 3
/* 802AEA80 002AB9E0 3C 60 80 3D */ lis r3, lbl_803D6138@ha
/* 802AEA84 002AB9E4 C0 41 00 14 */ lfs f2, 0x14(r1)
/* 802AEA88 002AB9E8 2C 1F 00 02 */ cmpwi r31, 2
/* 802AEA8C 002AB9EC C0 21 00 18 */ lfs f1, 0x18(r1)
/* 802AEA90 002AB9F0 38 83 61 38 */ addi r4, r3, lbl_803D6138@l
/* 802AEA94 002AB9F4 54 00 10 3A */ slwi r0, r0, 2
/* 802AEA98 002AB9F8 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 802AEA9C 002AB9FC 7C 64 02 14 */ add r3, r4, r0
/* 802AEAA0 002ABA00 D0 41 00 2C */ stfs f2, 0x2c(r1)
/* 802AEAA4 002ABA04 7C 84 00 2E */ lwzx r4, r4, r0
/* 802AEAA8 002ABA08 D0 21 00 30 */ stfs f1, 0x30(r1)
/* 802AEAAC 002ABA0C 80 A3 00 04 */ lwz r5, 4(r3)
/* 802AEAB0 002ABA10 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 802AEAB4 002ABA14 41 82 00 70 */ beq lbl_802AEB24
/* 802AEAB8 002ABA18 40 80 00 14 */ bge lbl_802AEACC
/* 802AEABC 002ABA1C 2C 1F 00 00 */ cmpwi r31, 0
/* 802AEAC0 002ABA20 41 82 00 18 */ beq lbl_802AEAD8
/* 802AEAC4 002ABA24 40 80 00 38 */ bge lbl_802AEAFC
/* 802AEAC8 002ABA28 48 00 01 3C */ b lbl_802AEC04
lbl_802AEACC:
/* 802AEACC 002ABA2C 2C 1F 00 04 */ cmpwi r31, 4
/* 802AEAD0 002ABA30 40 80 01 34 */ bge lbl_802AEC04
/* 802AEAD4 002ABA34 48 00 00 78 */ b lbl_802AEB4C
lbl_802AEAD8:
/* 802AEAD8 002ABA38 54 80 10 3A */ slwi r0, r4, 2
/* 802AEADC 002ABA3C 38 81 00 2C */ addi r4, r1, 0x2c
/* 802AEAE0 002ABA40 7C 04 04 2E */ lfsx f0, r4, r0
/* 802AEAE4 002ABA44 38 61 00 38 */ addi r3, r1, 0x38
/* 802AEAE8 002ABA48 54 A5 10 3A */ slwi r5, r5, 2
/* 802AEAEC 002ABA4C 7C 03 05 2E */ stfsx f0, r3, r0
/* 802AEAF0 002ABA50 7C 04 2C 2E */ lfsx f0, r4, r5
/* 802AEAF4 002ABA54 7C 03 2D 2E */ stfsx f0, r3, r5
/* 802AEAF8 002ABA58 48 00 01 0C */ b lbl_802AEC04
lbl_802AEAFC:
/* 802AEAFC 002ABA5C 54 80 10 3A */ slwi r0, r4, 2
/* 802AEB00 002ABA60 38 61 00 2C */ addi r3, r1, 0x2c
/* 802AEB04 002ABA64 54 A5 10 3A */ slwi r5, r5, 2
/* 802AEB08 002ABA68 7C 23 04 2E */ lfsx f1, r3, r0
/* 802AEB0C 002ABA6C 38 81 00 44 */ addi r4, r1, 0x44
/* 802AEB10 002ABA70 7C 03 2C 2E */ lfsx f0, r3, r5
/* 802AEB14 002ABA74 38 61 00 38 */ addi r3, r1, 0x38
/* 802AEB18 002ABA78 7C 24 05 2E */ stfsx f1, r4, r0
/* 802AEB1C 002ABA7C 7C 03 2D 2E */ stfsx f0, r3, r5
/* 802AEB20 002ABA80 48 00 00 E4 */ b lbl_802AEC04
lbl_802AEB24:
/* 802AEB24 002ABA84 54 A0 10 3A */ slwi r0, r5, 2
/* 802AEB28 002ABA88 38 61 00 2C */ addi r3, r1, 0x2c
/* 802AEB2C 002ABA8C 54 85 10 3A */ slwi r5, r4, 2
/* 802AEB30 002ABA90 7C 23 04 2E */ lfsx f1, r3, r0
/* 802AEB34 002ABA94 38 81 00 44 */ addi r4, r1, 0x44
/* 802AEB38 002ABA98 7C 03 2C 2E */ lfsx f0, r3, r5
/* 802AEB3C 002ABA9C 38 61 00 38 */ addi r3, r1, 0x38
/* 802AEB40 002ABAA0 7C 24 05 2E */ stfsx f1, r4, r0
/* 802AEB44 002ABAA4 7C 03 2D 2E */ stfsx f0, r3, r5
/* 802AEB48 002ABAA8 48 00 00 BC */ b lbl_802AEC04
lbl_802AEB4C:
/* 802AEB4C 002ABAAC 54 80 10 3A */ slwi r0, r4, 2
/* 802AEB50 002ABAB0 38 81 00 2C */ addi r4, r1, 0x2c
/* 802AEB54 002ABAB4 7C 04 04 2E */ lfsx f0, r4, r0
/* 802AEB58 002ABAB8 38 61 00 44 */ addi r3, r1, 0x44
/* 802AEB5C 002ABABC 54 A5 10 3A */ slwi r5, r5, 2
/* 802AEB60 002ABAC0 7C 03 05 2E */ stfsx f0, r3, r0
/* 802AEB64 002ABAC4 7C 04 2C 2E */ lfsx f0, r4, r5
/* 802AEB68 002ABAC8 7C 03 2D 2E */ stfsx f0, r3, r5
/* 802AEB6C 002ABACC 48 00 00 98 */ b lbl_802AEC04
.global lbl_802AEB70
lbl_802AEB70:
/* 802AEB70 002ABAD0 7C A4 2B 78 */ mr r4, r5
/* 802AEB74 002ABAD4 38 61 00 08 */ addi r3, r1, 8
/* 802AEB78 002ABAD8 48 08 8A 95 */ bl GetCenterPoint__6CAABoxCFv
/* 802AEB7C 002ABADC 38 00 00 00 */ li r0, 0
/* 802AEB80 002ABAE0 38 60 00 01 */ li r3, 1
/* 802AEB84 002ABAE4 7C 60 00 30 */ slw r0, r3, r0
/* 802AEB88 002ABAE8 C0 41 00 08 */ lfs f2, 8(r1)
/* 802AEB8C 002ABAEC C0 21 00 0C */ lfs f1, 0xc(r1)
/* 802AEB90 002ABAF0 7F E0 00 39 */ and. r0, r31, r0
/* 802AEB94 002ABAF4 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 802AEB98 002ABAF8 D0 41 00 20 */ stfs f2, 0x20(r1)
/* 802AEB9C 002ABAFC D0 21 00 24 */ stfs f1, 0x24(r1)
/* 802AEBA0 002ABB00 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 802AEBA4 002ABB04 41 82 00 10 */ beq lbl_802AEBB4
/* 802AEBA8 002ABB08 FC 00 10 18 */ frsp f0, f2
/* 802AEBAC 002ABB0C D0 01 00 44 */ stfs f0, 0x44(r1)
/* 802AEBB0 002ABB10 48 00 00 0C */ b lbl_802AEBBC
lbl_802AEBB4:
/* 802AEBB4 002ABB14 FC 00 10 18 */ frsp f0, f2
/* 802AEBB8 002ABB18 D0 01 00 38 */ stfs f0, 0x38(r1)
lbl_802AEBBC:
/* 802AEBBC 002ABB1C 38 00 00 01 */ li r0, 1
/* 802AEBC0 002ABB20 7C 60 00 30 */ slw r0, r3, r0
/* 802AEBC4 002ABB24 7F E0 00 39 */ and. r0, r31, r0
/* 802AEBC8 002ABB28 41 82 00 10 */ beq lbl_802AEBD8
/* 802AEBCC 002ABB2C C0 01 00 24 */ lfs f0, 0x24(r1)
/* 802AEBD0 002ABB30 D0 01 00 48 */ stfs f0, 0x48(r1)
/* 802AEBD4 002ABB34 48 00 00 0C */ b lbl_802AEBE0
lbl_802AEBD8:
/* 802AEBD8 002ABB38 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 802AEBDC 002ABB3C D0 01 00 3C */ stfs f0, 0x3c(r1)
lbl_802AEBE0:
/* 802AEBE0 002ABB40 38 00 00 02 */ li r0, 2
/* 802AEBE4 002ABB44 7C 60 00 30 */ slw r0, r3, r0
/* 802AEBE8 002ABB48 7F E0 00 39 */ and. r0, r31, r0
/* 802AEBEC 002ABB4C 41 82 00 10 */ beq lbl_802AEBFC
/* 802AEBF0 002ABB50 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 802AEBF4 002ABB54 D0 01 00 4C */ stfs f0, 0x4c(r1)
/* 802AEBF8 002ABB58 48 00 00 0C */ b lbl_802AEC04
lbl_802AEBFC:
/* 802AEBFC 002ABB5C C0 01 00 28 */ lfs f0, 0x28(r1)
/* 802AEC00 002ABB60 D0 01 00 40 */ stfs f0, 0x40(r1)
.global lbl_802AEC04
lbl_802AEC04:
/* 802AEC04 002ABB64 7F C3 F3 78 */ mr r3, r30
/* 802AEC08 002ABB68 38 81 00 44 */ addi r4, r1, 0x44
/* 802AEC0C 002ABB6C 38 A1 00 38 */ addi r5, r1, 0x38
/* 802AEC10 002ABB70 48 08 98 F9 */ bl __ct__6CAABoxFRC9CVector3fRC9CVector3f
/* 802AEC14 002ABB74 80 01 00 64 */ lwz r0, 0x64(r1)
/* 802AEC18 002ABB78 83 E1 00 5C */ lwz r31, 0x5c(r1)
/* 802AEC1C 002ABB7C 83 C1 00 58 */ lwz r30, 0x58(r1)
/* 802AEC20 002ABB80 83 A1 00 54 */ lwz r29, 0x54(r1)
/* 802AEC24 002ABB84 7C 08 03 A6 */ mtlr r0
/* 802AEC28 002ABB88 38 21 00 60 */ addi r1, r1, 0x60
/* 802AEC2C 002ABB8C 4E 80 00 20 */ blr
.global sub_802aec30
sub_802aec30:
/* 802AEC30 002ABB90 88 03 00 03 */ lbz r0, 3(r3)
/* 802AEC34 002ABB94 3C 60 80 3D */ lis r3, lbl_803D6118@ha
/* 802AEC38 002ABB98 38 63 61 18 */ addi r3, r3, lbl_803D6118@l
/* 802AEC3C 002ABB9C 54 00 10 3A */ slwi r0, r0, 2
/* 802AEC40 002ABBA0 7C 63 00 2E */ lwzx r3, r3, r0
/* 802AEC44 002ABBA4 4E 80 00 20 */ blr
.global sub_802aec48
sub_802aec48:
/* 802AEC48 002ABBA8 88 A4 00 00 */ lbz r5, 0(r4)
/* 802AEC4C 002ABBAC 38 00 00 00 */ li r0, 0
/* 802AEC50 002ABBB0 98 A3 00 00 */ stb r5, 0(r3)
/* 802AEC54 002ABBB4 80 A4 00 04 */ lwz r5, 4(r4)
/* 802AEC58 002ABBB8 90 A3 00 04 */ stw r5, 4(r3)
/* 802AEC5C 002ABBBC 98 04 00 00 */ stb r0, 0(r4)
/* 802AEC60 002ABBC0 80 A4 00 04 */ lwz r5, 4(r4)
/* 802AEC64 002ABBC4 80 05 00 08 */ lwz r0, 8(r5)
/* 802AEC68 002ABBC8 90 03 00 08 */ stw r0, 8(r3)
/* 802AEC6C 002ABBCC 80 A4 00 04 */ lwz r5, 4(r4)
/* 802AEC70 002ABBD0 80 05 00 0C */ lwz r0, 0xc(r5)
/* 802AEC74 002ABBD4 90 03 00 0C */ stw r0, 0xc(r3)
/* 802AEC78 002ABBD8 80 A4 00 04 */ lwz r5, 4(r4)
/* 802AEC7C 002ABBDC 80 05 00 10 */ lwz r0, 0x10(r5)
/* 802AEC80 002ABBE0 90 03 00 10 */ stw r0, 0x10(r3)
/* 802AEC84 002ABBE4 80 A3 00 0C */ lwz r5, 0xc(r3)
/* 802AEC88 002ABBE8 38 05 00 1F */ addi r0, r5, 0x1f
/* 802AEC8C 002ABBEC 54 00 D9 7E */ srwi r0, r0, 5
/* 802AEC90 002ABBF0 90 03 00 14 */ stw r0, 0x14(r3)
/* 802AEC94 002ABBF4 80 A4 00 04 */ lwz r5, 4(r4)
/* 802AEC98 002ABBF8 C0 05 00 14 */ lfs f0, 0x14(r5)
/* 802AEC9C 002ABBFC D0 03 00 18 */ stfs f0, 0x18(r3)
/* 802AECA0 002ABC00 C0 05 00 18 */ lfs f0, 0x18(r5)
/* 802AECA4 002ABC04 D0 03 00 1C */ stfs f0, 0x1c(r3)
/* 802AECA8 002ABC08 C0 05 00 1C */ lfs f0, 0x1c(r5)
/* 802AECAC 002ABC0C D0 03 00 20 */ stfs f0, 0x20(r3)
/* 802AECB0 002ABC10 C0 05 00 20 */ lfs f0, 0x20(r5)
/* 802AECB4 002ABC14 D0 03 00 24 */ stfs f0, 0x24(r3)
/* 802AECB8 002ABC18 C0 05 00 24 */ lfs f0, 0x24(r5)
/* 802AECBC 002ABC1C D0 03 00 28 */ stfs f0, 0x28(r3)
/* 802AECC0 002ABC20 C0 05 00 28 */ lfs f0, 0x28(r5)
/* 802AECC4 002ABC24 D0 03 00 2C */ stfs f0, 0x2c(r3)
/* 802AECC8 002ABC28 80 84 00 04 */ lwz r4, 4(r4)
/* 802AECCC 002ABC2C 38 04 00 40 */ addi r0, r4, 0x40
/* 802AECD0 002ABC30 90 03 00 30 */ stw r0, 0x30(r3)
/* 802AECD4 002ABC34 80 83 00 08 */ lwz r4, 8(r3)
/* 802AECD8 002ABC38 80 03 00 14 */ lwz r0, 0x14(r3)
/* 802AECDC 002ABC3C 80 A3 00 30 */ lwz r5, 0x30(r3)
/* 802AECE0 002ABC40 7C 04 01 D6 */ mullw r0, r4, r0
/* 802AECE4 002ABC44 54 00 10 3A */ slwi r0, r0, 2
/* 802AECE8 002ABC48 7C 05 02 14 */ add r0, r5, r0
/* 802AECEC 002ABC4C 90 03 00 34 */ stw r0, 0x34(r3)
/* 802AECF0 002ABC50 80 03 00 10 */ lwz r0, 0x10(r3)
/* 802AECF4 002ABC54 80 83 00 34 */ lwz r4, 0x34(r3)
/* 802AECF8 002ABC58 54 00 10 3A */ slwi r0, r0, 2
/* 802AECFC 002ABC5C 7C 04 02 14 */ add r0, r4, r0
/* 802AED00 002ABC60 90 03 00 38 */ stw r0, 0x38(r3)
/* 802AED04 002ABC64 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805ADF08
lbl_805ADF08:
# ROM: 0x3FA7A8
.float 0.5
.4byte 0
.section .rodata
.balign 8
.global lbl_803D6118
lbl_803D6118:
# ROM: 0x3D3118
.4byte 0
.4byte 0x00000002
.4byte 0x00000002
.4byte 0x00000004
.4byte 0x00000002
.4byte 0x00000004
.4byte 0x00000004
.4byte 0x00000008
.global lbl_803D6138
lbl_803D6138:
# ROM: 0x3D3138
.4byte 0xFFFFFFFF
.4byte 0xFFFFFFFF
.4byte 0xFFFFFFFF
.4byte 0xFFFFFFFF
.4byte 0xFFFFFFFF
.4byte 0xFFFFFFFF
.4byte 0xFFFFFFFF
.4byte 0xFFFFFFFF
.4byte 0xFFFFFFFF
.4byte 0
.4byte 0x00000001
.4byte 0x00000001
.4byte 0xFFFFFFFF
.4byte 0xFFFFFFFF
.4byte 0
.4byte 0x00000002
.4byte 0x00000001
.4byte 0x00000002
.4byte 0
.4byte 0x00000001