donut-decomp/asm/libms/projfile_801746a0.s

335 lines
15 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
.global lbl_801746A0
lbl_801746A0:
/* 801746A0 001704E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801746A4 001704E4 7C 08 02 A6 */ mflr r0
/* 801746A8 001704E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 801746AC 001704EC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801746B0 001704F0 7C 7F 1B 78 */ mr r31, r3
/* 801746B4 001704F4 38 60 00 40 */ li r3, 0x40
/* 801746B8 001704F8 4B FF FA E9 */ bl lbl_801741A0
/* 801746BC 001704FC 3C 80 80 45 */ lis r4, lbl_80452AF0@ha
/* 801746C0 00170500 93 E3 00 00 */ stw r31, 0x0(r3)
/* 801746C4 00170504 7C 7F 1B 78 */ mr r31, r3
/* 801746C8 00170508 38 84 2A F0 */ addi r4, r4, lbl_80452AF0@l
/* 801746CC 0017050C 4B FF FE C5 */ bl lbl_80174590
/* 801746D0 00170510 7F E3 FB 78 */ mr r3, r31
/* 801746D4 00170514 38 8D 86 F0 */ addi r4, r13, lbl_80556B10@sda21
/* 801746D8 00170518 4B FF FE F9 */ bl lbl_801745D0
/* 801746DC 0017051C 90 7F 00 14 */ stw r3, 0x14(r31)
/* 801746E0 00170520 7F E3 FB 78 */ mr r3, r31
/* 801746E4 00170524 38 8D 86 F8 */ addi r4, r13, lbl_80556B18@sda21
/* 801746E8 00170528 4B FF FE E9 */ bl lbl_801745D0
/* 801746EC 0017052C 90 7F 00 10 */ stw r3, 0x10(r31)
/* 801746F0 00170530 7F E3 FB 78 */ mr r3, r31
/* 801746F4 00170534 38 8D 87 00 */ addi r4, r13, lbl_80556B20@sda21
/* 801746F8 00170538 4B FF FE D9 */ bl lbl_801745D0
/* 801746FC 0017053C 90 7F 00 1C */ stw r3, 0x1c(r31)
/* 80174700 00170540 7F E3 FB 78 */ mr r3, r31
/* 80174704 00170544 38 8D 87 08 */ addi r4, r13, lbl_80556B28@sda21
/* 80174708 00170548 4B FF FE C9 */ bl lbl_801745D0
/* 8017470C 0017054C 90 7F 00 18 */ stw r3, 0x18(r31)
/* 80174710 00170550 7F E3 FB 78 */ mr r3, r31
/* 80174714 00170554 38 8D 87 10 */ addi r4, r13, lbl_80556B30@sda21
/* 80174718 00170558 4B FF FE B9 */ bl lbl_801745D0
/* 8017471C 0017055C 90 7F 00 20 */ stw r3, 0x20(r31)
/* 80174720 00170560 7F E3 FB 78 */ mr r3, r31
/* 80174724 00170564 38 8D 87 18 */ addi r4, r13, lbl_80556B38@sda21
/* 80174728 00170568 4B FF FE A9 */ bl lbl_801745D0
/* 8017472C 0017056C 90 7F 00 24 */ stw r3, 0x24(r31)
/* 80174730 00170570 7F E3 FB 78 */ mr r3, r31
/* 80174734 00170574 38 8D 87 20 */ addi r4, r13, lbl_80556B40@sda21
/* 80174738 00170578 4B FF FE 99 */ bl lbl_801745D0
/* 8017473C 0017057C 90 7F 00 28 */ stw r3, 0x28(r31)
/* 80174740 00170580 7F E3 FB 78 */ mr r3, r31
/* 80174744 00170584 38 8D 87 28 */ addi r4, r13, lbl_80556B48@sda21
/* 80174748 00170588 4B FF FE 89 */ bl lbl_801745D0
/* 8017474C 0017058C 90 7F 00 2C */ stw r3, 0x2c(r31)
/* 80174750 00170590 7F E3 FB 78 */ mr r3, r31
/* 80174754 00170594 38 8D 87 30 */ addi r4, r13, lbl_80556B50@sda21
/* 80174758 00170598 4B FF FE 79 */ bl lbl_801745D0
/* 8017475C 0017059C 90 7F 00 30 */ stw r3, 0x30(r31)
/* 80174760 001705A0 7F E3 FB 78 */ mr r3, r31
/* 80174764 001705A4 38 8D 87 38 */ addi r4, r13, lbl_80556B58@sda21
/* 80174768 001705A8 4B FF FE 69 */ bl lbl_801745D0
/* 8017476C 001705AC 90 7F 00 34 */ stw r3, 0x34(r31)
/* 80174770 001705B0 7F E3 FB 78 */ mr r3, r31
/* 80174774 001705B4 38 8D 87 40 */ addi r4, r13, lbl_80556B60@sda21
/* 80174778 001705B8 4B FF FE 59 */ bl lbl_801745D0
/* 8017477C 001705BC 90 7F 00 38 */ stw r3, 0x38(r31)
/* 80174780 001705C0 7F E3 FB 78 */ mr r3, r31
/* 80174784 001705C4 38 8D 87 48 */ addi r4, r13, lbl_80556B68@sda21
/* 80174788 001705C8 4B FF FE 49 */ bl lbl_801745D0
/* 8017478C 001705CC 90 7F 00 3C */ stw r3, 0x3c(r31)
/* 80174790 001705D0 7F E3 FB 78 */ mr r3, r31
/* 80174794 001705D4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80174798 001705D8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8017479C 001705DC 7C 08 03 A6 */ mtlr r0
/* 801747A0 001705E0 38 21 00 10 */ addi r1, r1, 0x10
/* 801747A4 001705E4 4E 80 00 20 */ blr
/* 801747A8 001705E8 00 00 00 00 */ .4byte 0x00000000
/* 801747AC 001705EC 00 00 00 00 */ .4byte 0x00000000
.global lbl_801747B0
lbl_801747B0:
/* 801747B0 001705F0 80 03 00 24 */ lwz r0, 0x24(r3)
/* 801747B4 001705F4 2C 00 FF FF */ cmpwi r0, -0x1
/* 801747B8 001705F8 40 82 00 0C */ bne lbl_801747C4
/* 801747BC 001705FC 38 80 00 00 */ li r4, 0x0
/* 801747C0 00170600 48 00 00 34 */ b lbl_801747F4
.global lbl_801747C4
lbl_801747C4:
/* 801747C4 00170604 80 63 00 0C */ lwz r3, 0xc(r3)
/* 801747C8 00170608 54 00 20 36 */ slwi r0, r0, 4
/* 801747CC 0017060C 7C A3 00 2E */ lwzx r5, r3, r0
/* 801747D0 00170610 A0 05 00 00 */ lhz r0, 0x0(r5)
/* 801747D4 00170614 7C 04 00 40 */ cmplw r4, r0
/* 801747D8 00170618 41 80 00 0C */ blt lbl_801747E4
/* 801747DC 0017061C 38 80 00 00 */ li r4, 0x0
/* 801747E0 00170620 48 00 00 14 */ b lbl_801747F4
.global lbl_801747E4
lbl_801747E4:
/* 801747E4 00170624 54 80 13 BA */ rlwinm r0, r4, 2, 14, 29
/* 801747E8 00170628 7C 65 02 14 */ add r3, r5, r0
/* 801747EC 0017062C 80 03 00 04 */ lwz r0, 0x4(r3)
/* 801747F0 00170630 7C 85 02 14 */ add r4, r5, r0
.global lbl_801747F4
lbl_801747F4:
/* 801747F4 00170634 2C 04 00 00 */ cmpwi r4, 0x0
/* 801747F8 00170638 40 82 00 0C */ bne lbl_80174804
/* 801747FC 0017063C 38 60 00 00 */ li r3, 0x0
/* 80174800 00170640 4E 80 00 20 */ blr
.global lbl_80174804
lbl_80174804:
/* 80174804 00170644 A0 64 00 00 */ lhz r3, 0x0(r4)
/* 80174808 00170648 38 03 00 01 */ addi r0, r3, 0x1
/* 8017480C 0017064C 54 00 08 3C */ slwi r0, r0, 1
/* 80174810 00170650 7C 64 02 14 */ add r3, r4, r0
/* 80174814 00170654 4E 80 00 20 */ blr
/* 80174818 00170658 00 00 00 00 */ .4byte 0x00000000
/* 8017481C 0017065C 00 00 00 00 */ .4byte 0x00000000
.global lbl_80174820
lbl_80174820:
/* 80174820 00170660 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80174824 00170664 7C 08 02 A6 */ mflr r0
/* 80174828 00170668 90 01 00 14 */ stw r0, 0x14(r1)
/* 8017482C 0017066C 80 03 00 24 */ lwz r0, 0x24(r3)
/* 80174830 00170670 2C 00 FF FF */ cmpwi r0, -0x1
/* 80174834 00170674 40 82 00 0C */ bne lbl_80174840
/* 80174838 00170678 38 80 00 00 */ li r4, 0x0
/* 8017483C 0017067C 48 00 00 34 */ b lbl_80174870
.global lbl_80174840
lbl_80174840:
/* 80174840 00170680 80 C3 00 0C */ lwz r6, 0xc(r3)
/* 80174844 00170684 54 00 20 36 */ slwi r0, r0, 4
/* 80174848 00170688 7C C6 00 2E */ lwzx r6, r6, r0
/* 8017484C 0017068C A0 06 00 00 */ lhz r0, 0x0(r6)
/* 80174850 00170690 7C 04 00 40 */ cmplw r4, r0
/* 80174854 00170694 41 80 00 0C */ blt lbl_80174860
/* 80174858 00170698 38 80 00 00 */ li r4, 0x0
/* 8017485C 0017069C 48 00 00 14 */ b lbl_80174870
.global lbl_80174860
lbl_80174860:
/* 80174860 001706A0 54 80 13 BA */ rlwinm r0, r4, 2, 14, 29
/* 80174864 001706A4 7C 86 02 14 */ add r4, r6, r0
/* 80174868 001706A8 80 04 00 04 */ lwz r0, 0x4(r4)
/* 8017486C 001706AC 7C 86 02 14 */ add r4, r6, r0
.global lbl_80174870
lbl_80174870:
/* 80174870 001706B0 2C 04 00 00 */ cmpwi r4, 0x0
/* 80174874 001706B4 40 82 00 0C */ bne lbl_80174880
/* 80174878 001706B8 38 60 00 00 */ li r3, 0x0
/* 8017487C 001706BC 48 00 00 28 */ b lbl_801748A4
.global lbl_80174880
lbl_80174880:
/* 80174880 001706C0 48 00 01 31 */ bl lbl_801749B0
/* 80174884 001706C4 2C 03 00 00 */ cmpwi r3, 0x0
/* 80174888 001706C8 40 82 00 0C */ bne lbl_80174894
/* 8017488C 001706CC 38 60 00 00 */ li r3, 0x0
/* 80174890 001706D0 48 00 00 14 */ b lbl_801748A4
.global lbl_80174894
lbl_80174894:
/* 80174894 001706D4 A0 03 00 00 */ lhz r0, 0x0(r3)
/* 80174898 001706D8 54 00 08 3C */ slwi r0, r0, 1
/* 8017489C 001706DC 7C 63 02 14 */ add r3, r3, r0
/* 801748A0 001706E0 38 63 00 02 */ addi r3, r3, 0x2
.global lbl_801748A4
lbl_801748A4:
/* 801748A4 001706E4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801748A8 001706E8 7C 08 03 A6 */ mtlr r0
/* 801748AC 001706EC 38 21 00 10 */ addi r1, r1, 0x10
/* 801748B0 001706F0 4E 80 00 20 */ blr
/* 801748B4 001706F4 00 00 00 00 */ .4byte 0x00000000
/* 801748B8 001706F8 00 00 00 00 */ .4byte 0x00000000
/* 801748BC 001706FC 00 00 00 00 */ .4byte 0x00000000
.global lbl_801748C0
lbl_801748C0:
/* 801748C0 00170700 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801748C4 00170704 7C 08 02 A6 */ mflr r0
/* 801748C8 00170708 90 01 00 24 */ stw r0, 0x24(r1)
/* 801748CC 0017070C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 801748D0 00170710 7C FF 3B 78 */ mr r31, r7
/* 801748D4 00170714 93 C1 00 18 */ stw r30, 0x18(r1)
/* 801748D8 00170718 7C DE 33 78 */ mr r30, r6
/* 801748DC 0017071C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 801748E0 00170720 7C 7D 1B 78 */ mr r29, r3
/* 801748E4 00170724 80 03 00 24 */ lwz r0, 0x24(r3)
/* 801748E8 00170728 2C 00 FF FF */ cmpwi r0, -0x1
/* 801748EC 0017072C 40 82 00 0C */ bne lbl_801748F8
/* 801748F0 00170730 38 80 00 00 */ li r4, 0x0
/* 801748F4 00170734 48 00 00 34 */ b lbl_80174928
.global lbl_801748F8
lbl_801748F8:
/* 801748F8 00170738 80 63 00 0C */ lwz r3, 0xc(r3)
/* 801748FC 0017073C 54 00 20 36 */ slwi r0, r0, 4
/* 80174900 00170740 7C C3 00 2E */ lwzx r6, r3, r0
/* 80174904 00170744 A0 06 00 00 */ lhz r0, 0x0(r6)
/* 80174908 00170748 7C 04 00 40 */ cmplw r4, r0
/* 8017490C 0017074C 41 80 00 0C */ blt lbl_80174918
/* 80174910 00170750 38 80 00 00 */ li r4, 0x0
/* 80174914 00170754 48 00 00 14 */ b lbl_80174928
.global lbl_80174918
lbl_80174918:
/* 80174918 00170758 54 80 13 BA */ rlwinm r0, r4, 2, 14, 29
/* 8017491C 0017075C 7C 66 02 14 */ add r3, r6, r0
/* 80174920 00170760 80 03 00 04 */ lwz r0, 0x4(r3)
/* 80174924 00170764 7C 86 02 14 */ add r4, r6, r0
.global lbl_80174928
lbl_80174928:
/* 80174928 00170768 2C 04 00 00 */ cmpwi r4, 0x0
/* 8017492C 0017076C 40 82 00 0C */ bne lbl_80174938
/* 80174930 00170770 38 60 00 00 */ li r3, 0x0
/* 80174934 00170774 48 00 00 58 */ b lbl_8017498C
.global lbl_80174938
lbl_80174938:
/* 80174938 00170778 7F A3 EB 78 */ mr r3, r29
/* 8017493C 0017077C 48 00 00 75 */ bl lbl_801749B0
/* 80174940 00170780 2C 03 00 00 */ cmpwi r3, 0x0
/* 80174944 00170784 7C 64 1B 78 */ mr r4, r3
/* 80174948 00170788 40 82 00 0C */ bne lbl_80174954
/* 8017494C 0017078C 38 60 00 00 */ li r3, 0x0
/* 80174950 00170790 48 00 00 3C */ b lbl_8017498C
.global lbl_80174954
lbl_80174954:
/* 80174954 00170794 7F A3 EB 78 */ mr r3, r29
/* 80174958 00170798 7F C5 F3 78 */ mr r5, r30
/* 8017495C 0017079C 48 00 00 B5 */ bl lbl_80174A10
/* 80174960 001707A0 2C 03 00 00 */ cmpwi r3, 0x0
/* 80174964 001707A4 7C 64 1B 78 */ mr r4, r3
/* 80174968 001707A8 40 82 00 0C */ bne lbl_80174974
/* 8017496C 001707AC 38 60 00 00 */ li r3, 0x0
/* 80174970 001707B0 48 00 00 1C */ b lbl_8017498C
.global lbl_80174974
lbl_80174974:
/* 80174974 001707B4 7F A3 EB 78 */ mr r3, r29
/* 80174978 001707B8 7F E5 FB 78 */ mr r5, r31
/* 8017497C 001707BC 48 00 00 F5 */ bl lbl_80174A70
/* 80174980 001707C0 2C 03 00 00 */ cmpwi r3, 0x0
/* 80174984 001707C4 40 82 00 08 */ bne lbl_8017498C
/* 80174988 001707C8 38 60 00 00 */ li r3, 0x0
.global lbl_8017498C
lbl_8017498C:
/* 8017498C 001707CC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80174990 001707D0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80174994 001707D4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80174998 001707D8 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8017499C 001707DC 7C 08 03 A6 */ mtlr r0
/* 801749A0 001707E0 38 21 00 20 */ addi r1, r1, 0x20
/* 801749A4 001707E4 4E 80 00 20 */ blr
/* 801749A8 001707E8 00 00 00 00 */ .4byte 0x00000000
/* 801749AC 001707EC 00 00 00 00 */ .4byte 0x00000000
.global lbl_801749B0
lbl_801749B0:
/* 801749B0 001707F0 80 C3 00 28 */ lwz r6, 0x28(r3)
/* 801749B4 001707F4 2C 06 FF FF */ cmpwi r6, -0x1
/* 801749B8 001707F8 40 82 00 0C */ bne lbl_801749C4
/* 801749BC 001707FC 38 60 00 00 */ li r3, 0x0
/* 801749C0 00170800 4E 80 00 20 */ blr
.global lbl_801749C4
lbl_801749C4:
/* 801749C4 00170804 A0 04 00 00 */ lhz r0, 0x0(r4)
/* 801749C8 00170808 54 C6 20 36 */ slwi r6, r6, 4
/* 801749CC 0017080C 80 63 00 0C */ lwz r3, 0xc(r3)
/* 801749D0 00170810 7C 05 00 40 */ cmplw r5, r0
/* 801749D4 00170814 41 80 00 0C */ blt lbl_801749E0
/* 801749D8 00170818 38 60 00 00 */ li r3, 0x0
/* 801749DC 0017081C 4E 80 00 20 */ blr
.global lbl_801749E0
lbl_801749E0:
/* 801749E0 00170820 54 A0 0B FC */ rlwinm r0, r5, 1, 15, 30
/* 801749E4 00170824 7C A3 30 2E */ lwzx r5, r3, r6
/* 801749E8 00170828 7C 64 02 14 */ add r3, r4, r0
/* 801749EC 0017082C A0 03 00 02 */ lhz r0, 0x2(r3)
/* 801749F0 00170830 54 00 10 3A */ slwi r0, r0, 2
/* 801749F4 00170834 7C 65 02 14 */ add r3, r5, r0
/* 801749F8 00170838 80 03 00 04 */ lwz r0, 0x4(r3)
/* 801749FC 0017083C 7C 65 02 14 */ add r3, r5, r0
/* 80174A00 00170840 4E 80 00 20 */ blr
/* 80174A04 00170844 00 00 00 00 */ .4byte 0x00000000
/* 80174A08 00170848 00 00 00 00 */ .4byte 0x00000000
/* 80174A0C 0017084C 00 00 00 00 */ .4byte 0x00000000
.global lbl_80174A10
lbl_80174A10:
/* 80174A10 00170850 80 C3 00 2C */ lwz r6, 0x2c(r3)
/* 80174A14 00170854 2C 06 FF FF */ cmpwi r6, -0x1
/* 80174A18 00170858 40 82 00 0C */ bne lbl_80174A24
/* 80174A1C 0017085C 38 60 00 00 */ li r3, 0x0
/* 80174A20 00170860 4E 80 00 20 */ blr
.global lbl_80174A24
lbl_80174A24:
/* 80174A24 00170864 A0 04 00 00 */ lhz r0, 0x0(r4)
/* 80174A28 00170868 54 C6 20 36 */ slwi r6, r6, 4
/* 80174A2C 0017086C 80 63 00 0C */ lwz r3, 0xc(r3)
/* 80174A30 00170870 7C 05 00 40 */ cmplw r5, r0
/* 80174A34 00170874 41 80 00 0C */ blt lbl_80174A40
/* 80174A38 00170878 38 60 00 00 */ li r3, 0x0
/* 80174A3C 0017087C 4E 80 00 20 */ blr
.global lbl_80174A40
lbl_80174A40:
/* 80174A40 00170880 54 A0 0B FC */ rlwinm r0, r5, 1, 15, 30
/* 80174A44 00170884 7C A3 30 2E */ lwzx r5, r3, r6
/* 80174A48 00170888 7C 64 02 14 */ add r3, r4, r0
/* 80174A4C 0017088C A0 03 00 02 */ lhz r0, 0x2(r3)
/* 80174A50 00170890 54 00 10 3A */ slwi r0, r0, 2
/* 80174A54 00170894 7C 65 02 14 */ add r3, r5, r0
/* 80174A58 00170898 80 03 00 04 */ lwz r0, 0x4(r3)
/* 80174A5C 0017089C 7C 65 02 14 */ add r3, r5, r0
/* 80174A60 001708A0 4E 80 00 20 */ blr
/* 80174A64 001708A4 00 00 00 00 */ .4byte 0x00000000
/* 80174A68 001708A8 00 00 00 00 */ .4byte 0x00000000
/* 80174A6C 001708AC 00 00 00 00 */ .4byte 0x00000000
.global lbl_80174A70
lbl_80174A70:
/* 80174A70 001708B0 80 03 00 30 */ lwz r0, 0x30(r3)
/* 80174A74 001708B4 2C 00 FF FF */ cmpwi r0, -0x1
/* 80174A78 001708B8 40 82 00 0C */ bne lbl_80174A84
/* 80174A7C 001708BC 38 60 00 00 */ li r3, 0x0
/* 80174A80 001708C0 4E 80 00 20 */ blr
.global lbl_80174A84
lbl_80174A84:
/* 80174A84 001708C4 88 E4 00 00 */ lbz r7, 0x0(r4)
/* 80174A88 001708C8 54 06 20 36 */ slwi r6, r0, 4
/* 80174A8C 001708CC 80 63 00 0C */ lwz r3, 0xc(r3)
/* 80174A90 001708D0 2C 07 00 09 */ cmpwi r7, 0x9
/* 80174A94 001708D4 41 82 00 0C */ beq lbl_80174AA0
/* 80174A98 001708D8 38 60 00 00 */ li r3, 0x0
/* 80174A9C 001708DC 4E 80 00 20 */ blr
.global lbl_80174AA0
lbl_80174AA0:
/* 80174AA0 001708E0 A0 04 00 02 */ lhz r0, 0x2(r4)
/* 80174AA4 001708E4 7C 05 00 40 */ cmplw r5, r0
/* 80174AA8 001708E8 41 80 00 0C */ blt lbl_80174AB4
/* 80174AAC 001708EC 38 60 00 00 */ li r3, 0x0
/* 80174AB0 001708F0 4E 80 00 20 */ blr
.global lbl_80174AB4
lbl_80174AB4:
/* 80174AB4 001708F4 54 A0 0B FC */ rlwinm r0, r5, 1, 15, 30
/* 80174AB8 001708F8 7C A3 30 2E */ lwzx r5, r3, r6
/* 80174ABC 001708FC 7C 64 02 14 */ add r3, r4, r0
/* 80174AC0 00170900 A0 03 00 04 */ lhz r0, 0x4(r3)
/* 80174AC4 00170904 54 00 10 3A */ slwi r0, r0, 2
/* 80174AC8 00170908 7C 65 02 14 */ add r3, r5, r0
/* 80174ACC 0017090C 80 03 00 04 */ lwz r0, 0x4(r3)
/* 80174AD0 00170910 7C 65 02 14 */ add r3, r5, r0
/* 80174AD4 00170914 4E 80 00 20 */ blr