.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global func_8017C588 func_8017C588: /* 8017C588 001781E8 80 6D 9F 78 */ lwz r3, lbl_8063F238-_SDA_BASE_(r13) /* 8017C58C 001781EC 4E 80 00 20 */ blr .global func_8017C590 func_8017C590: /* 8017C590 001781F0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8017C594 001781F4 7C 08 02 A6 */ mflr r0 /* 8017C598 001781F8 90 01 00 14 */ stw r0, 0x14(r1) /* 8017C59C 001781FC 80 0D 9F 78 */ lwz r0, lbl_8063F238-_SDA_BASE_(r13) /* 8017C5A0 00178200 2C 00 00 00 */ cmpwi r0, 0 /* 8017C5A4 00178204 40 82 00 1C */ bne lbl_8017C5C0 /* 8017C5A8 00178208 38 60 00 BC */ li r3, 0xbc /* 8017C5AC 0017820C 48 05 E4 85 */ bl __nw__FUl /* 8017C5B0 00178210 2C 03 00 00 */ cmpwi r3, 0 /* 8017C5B4 00178214 41 82 00 08 */ beq lbl_8017C5BC /* 8017C5B8 00178218 48 00 00 4D */ bl func_8017C604 lbl_8017C5BC: /* 8017C5BC 0017821C 90 6D 9F 78 */ stw r3, lbl_8063F238-_SDA_BASE_(r13) lbl_8017C5C0: /* 8017C5C0 00178220 80 01 00 14 */ lwz r0, 0x14(r1) /* 8017C5C4 00178224 7C 08 03 A6 */ mtlr r0 /* 8017C5C8 00178228 38 21 00 10 */ addi r1, r1, 0x10 /* 8017C5CC 0017822C 4E 80 00 20 */ blr .global func_8017C5D0 func_8017C5D0: /* 8017C5D0 00178230 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8017C5D4 00178234 7C 08 02 A6 */ mflr r0 /* 8017C5D8 00178238 90 01 00 14 */ stw r0, 0x14(r1) /* 8017C5DC 0017823C 80 6D 9F 78 */ lwz r3, lbl_8063F238-_SDA_BASE_(r13) /* 8017C5E0 00178240 2C 03 00 00 */ cmpwi r3, 0 /* 8017C5E4 00178244 41 82 00 10 */ beq lbl_8017C5F4 /* 8017C5E8 00178248 48 05 E4 D1 */ bl __dl__FPv /* 8017C5EC 0017824C 38 00 00 00 */ li r0, 0 /* 8017C5F0 00178250 90 0D 9F 78 */ stw r0, lbl_8063F238-_SDA_BASE_(r13) lbl_8017C5F4: /* 8017C5F4 00178254 80 01 00 14 */ lwz r0, 0x14(r1) /* 8017C5F8 00178258 7C 08 03 A6 */ mtlr r0 /* 8017C5FC 0017825C 38 21 00 10 */ addi r1, r1, 0x10 /* 8017C600 00178260 4E 80 00 20 */ blr .global func_8017C604 func_8017C604: /* 8017C604 00178264 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8017C608 00178268 7C 08 02 A6 */ mflr r0 /* 8017C60C 0017826C 38 80 00 00 */ li r4, 0 /* 8017C610 00178270 38 A0 00 90 */ li r5, 0x90 /* 8017C614 00178274 90 01 00 14 */ stw r0, 0x14(r1) /* 8017C618 00178278 38 00 00 00 */ li r0, 0 /* 8017C61C 0017827C 93 E1 00 0C */ stw r31, 0xc(r1) /* 8017C620 00178280 7C 7F 1B 78 */ mr r31, r3 /* 8017C624 00178284 98 03 00 00 */ stb r0, 0(r3) /* 8017C628 00178288 38 63 00 02 */ addi r3, r3, 2 /* 8017C62C 0017828C 4B E8 7A D9 */ bl memset /* 8017C630 00178290 7F E3 FB 78 */ mr r3, r31 /* 8017C634 00178294 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8017C638 00178298 80 01 00 14 */ lwz r0, 0x14(r1) /* 8017C63C 0017829C 7C 08 03 A6 */ mtlr r0 /* 8017C640 001782A0 38 21 00 10 */ addi r1, r1, 0x10 /* 8017C644 001782A4 4E 80 00 20 */ blr .global func_8017C648 func_8017C648: /* 8017C648 001782A8 88 63 00 00 */ lbz r3, 0(r3) /* 8017C64C 001782AC 4E 80 00 20 */ blr .global func_8017C650 func_8017C650: /* 8017C650 001782B0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8017C654 001782B4 7C 08 02 A6 */ mflr r0 /* 8017C658 001782B8 90 01 00 24 */ stw r0, 0x24(r1) /* 8017C65C 001782BC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8017C660 001782C0 93 C1 00 18 */ stw r30, 0x18(r1) /* 8017C664 001782C4 93 A1 00 14 */ stw r29, 0x14(r1) /* 8017C668 001782C8 7C BD 2B 78 */ mr r29, r5 /* 8017C66C 001782CC 93 81 00 10 */ stw r28, 0x10(r1) /* 8017C670 001782D0 7C 7C 1B 78 */ mr r28, r3 /* 8017C674 001782D4 88 03 00 00 */ lbz r0, 0(r3) /* 8017C678 001782D8 2C 00 00 00 */ cmpwi r0, 0 /* 8017C67C 001782DC 41 82 00 3C */ beq lbl_8017C6B8 /* 8017C680 001782E0 7C 9F 23 78 */ mr r31, r4 /* 8017C684 001782E4 3B C0 00 00 */ li r30, 0 /* 8017C688 001782E8 48 00 00 28 */ b lbl_8017C6B0 lbl_8017C68C: /* 8017C68C 001782EC A0 9F 00 04 */ lhz r4, 4(r31) /* 8017C690 001782F0 7F 83 E3 78 */ mr r3, r28 /* 8017C694 001782F4 48 00 02 69 */ bl func_8017C8FC /* 8017C698 001782F8 7C 64 1B 78 */ mr r4, r3 /* 8017C69C 001782FC 38 7F 00 1C */ addi r3, r31, 0x1c /* 8017C6A0 00178300 38 A0 00 20 */ li r5, 0x20 /* 8017C6A4 00178304 4B E8 79 5D */ bl memcpy /* 8017C6A8 00178308 3B DE 00 01 */ addi r30, r30, 1 /* 8017C6AC 0017830C 3B FF 00 3C */ addi r31, r31, 0x3c lbl_8017C6B0: /* 8017C6B0 00178310 7C 1E E8 00 */ cmpw r30, r29 /* 8017C6B4 00178314 41 80 FF D8 */ blt lbl_8017C68C lbl_8017C6B8: /* 8017C6B8 00178318 80 01 00 24 */ lwz r0, 0x24(r1) /* 8017C6BC 0017831C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8017C6C0 00178320 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8017C6C4 00178324 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8017C6C8 00178328 83 81 00 10 */ lwz r28, 0x10(r1) /* 8017C6CC 0017832C 7C 08 03 A6 */ mtlr r0 /* 8017C6D0 00178330 38 21 00 20 */ addi r1, r1, 0x20 /* 8017C6D4 00178334 4E 80 00 20 */ blr .global func_8017C6D8 func_8017C6D8: /* 8017C6D8 00178338 94 21 FF 80 */ stwu r1, -0x80(r1) /* 8017C6DC 0017833C 7C 08 02 A6 */ mflr r0 /* 8017C6E0 00178340 90 01 00 84 */ stw r0, 0x84(r1) /* 8017C6E4 00178344 39 61 00 80 */ addi r11, r1, 0x80 /* 8017C6E8 00178348 48 04 AA 41 */ bl _savegpr_27 /* 8017C6EC 0017834C 7C 7C 1B 78 */ mr r28, r3 /* 8017C6F0 00178350 7C 9B 23 78 */ mr r27, r4 /* 8017C6F4 00178354 38 60 00 00 */ li r3, 0 /* 8017C6F8 00178358 4B FE 85 75 */ bl func_80164C6C /* 8017C6FC 0017835C 80 1B 00 0C */ lwz r0, 0xc(r27) /* 8017C700 00178360 2C 00 00 03 */ cmpwi r0, 3 /* 8017C704 00178364 40 82 00 34 */ bne lbl_8017C738 /* 8017C708 00178368 2C 03 00 00 */ cmpwi r3, 0 /* 8017C70C 0017836C 41 82 00 2C */ beq lbl_8017C738 /* 8017C710 00178370 4B FE A3 AD */ bl func_80166ABC /* 8017C714 00178374 2C 03 00 00 */ cmpwi r3, 0 /* 8017C718 00178378 40 82 00 20 */ bne lbl_8017C738 /* 8017C71C 0017837C 38 60 02 68 */ li r3, 0x268 /* 8017C720 00178380 4B FE 63 71 */ bl func_80162A90 /* 8017C724 00178384 2C 03 00 00 */ cmpwi r3, 0 /* 8017C728 00178388 40 82 00 10 */ bne lbl_8017C738 /* 8017C72C 0017838C 38 00 00 01 */ li r0, 1 /* 8017C730 00178390 98 1C 00 00 */ stb r0, 0(r28) /* 8017C734 00178394 48 00 00 10 */ b lbl_8017C744 lbl_8017C738: /* 8017C738 00178398 38 00 00 00 */ li r0, 0 /* 8017C73C 0017839C 98 1C 00 00 */ stb r0, 0(r28) /* 8017C740 001783A0 48 00 00 98 */ b lbl_8017C7D8 lbl_8017C744: /* 8017C744 001783A4 3B BC 00 02 */ addi r29, r28, 2 /* 8017C748 001783A8 3F E0 80 64 */ lis r31, lbl_8063CE34@ha /* 8017C74C 001783AC 3B DB 14 20 */ addi r30, r27, 0x1420 /* 8017C750 001783B0 3B 60 00 00 */ li r27, 0 /* 8017C754 001783B4 7F BC EB 78 */ mr r28, r29 /* 8017C758 001783B8 3B FF CE 34 */ addi r31, r31, lbl_8063CE34@l lbl_8017C75C: /* 8017C75C 001783BC 7F C3 F3 78 */ mr r3, r30 /* 8017C760 001783C0 7F A5 EB 78 */ mr r5, r29 /* 8017C764 001783C4 38 80 00 74 */ li r4, 0x74 /* 8017C768 001783C8 48 25 E7 95 */ bl func_803DAEFC /* 8017C76C 001783CC 7F 84 E3 78 */ mr r4, r28 /* 8017C770 001783D0 38 61 00 08 */ addi r3, r1, 8 /* 8017C774 001783D4 38 A0 00 20 */ li r5, 0x20 /* 8017C778 001783D8 4B FF AA B5 */ bl func_8017722C /* 8017C77C 001783DC 7F C3 F3 78 */ mr r3, r30 /* 8017C780 001783E0 38 80 00 05 */ li r4, 5 /* 8017C784 001783E4 38 A0 00 00 */ li r5, 0 /* 8017C788 001783E8 48 25 E7 75 */ bl func_803DAEFC /* 8017C78C 001783EC 7C 64 1B 78 */ mr r4, r3 /* 8017C790 001783F0 38 7F 00 10 */ addi r3, r31, 0x10 /* 8017C794 001783F4 48 21 58 01 */ bl func_80391F94 /* 8017C798 001783F8 54 63 04 3E */ clrlwi r3, r3, 0x10 /* 8017C79C 001783FC 48 0D 3B 59 */ bl func_802502F4 /* 8017C7A0 00178400 7C 64 1B 78 */ mr r4, r3 /* 8017C7A4 00178404 38 61 00 28 */ addi r3, r1, 0x28 /* 8017C7A8 00178408 38 A0 00 10 */ li r5, 0x10 /* 8017C7AC 0017840C 4B FF A7 09 */ bl func_80176EB4 /* 8017C7B0 00178410 7F C3 F3 78 */ mr r3, r30 /* 8017C7B4 00178414 38 A1 00 28 */ addi r5, r1, 0x28 /* 8017C7B8 00178418 38 80 00 74 */ li r4, 0x74 /* 8017C7BC 0017841C 48 25 EE BD */ bl func_803DB678 /* 8017C7C0 00178420 3B 7B 00 01 */ addi r27, r27, 1 /* 8017C7C4 00178424 3B BD 00 18 */ addi r29, r29, 0x18 /* 8017C7C8 00178428 2C 1B 00 06 */ cmpwi r27, 6 /* 8017C7CC 0017842C 3B 9C 00 18 */ addi r28, r28, 0x18 /* 8017C7D0 00178430 3B DE 00 8C */ addi r30, r30, 0x8c /* 8017C7D4 00178434 41 80 FF 88 */ blt lbl_8017C75C lbl_8017C7D8: /* 8017C7D8 00178438 39 61 00 80 */ addi r11, r1, 0x80 /* 8017C7DC 0017843C 48 04 A9 99 */ bl _restgpr_27 /* 8017C7E0 00178440 80 01 00 84 */ lwz r0, 0x84(r1) /* 8017C7E4 00178444 7C 08 03 A6 */ mtlr r0 /* 8017C7E8 00178448 38 21 00 80 */ addi r1, r1, 0x80 /* 8017C7EC 0017844C 4E 80 00 20 */ blr .global func_8017C7F0 func_8017C7F0: /* 8017C7F0 00178450 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8017C7F4 00178454 7C 08 02 A6 */ mflr r0 /* 8017C7F8 00178458 90 01 00 24 */ stw r0, 0x24(r1) /* 8017C7FC 0017845C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8017C800 00178460 93 C1 00 18 */ stw r30, 0x18(r1) /* 8017C804 00178464 93 A1 00 14 */ stw r29, 0x14(r1) /* 8017C808 00178468 7C BD 2B 78 */ mr r29, r5 /* 8017C80C 0017846C 93 81 00 10 */ stw r28, 0x10(r1) /* 8017C810 00178470 7C 7C 1B 78 */ mr r28, r3 /* 8017C814 00178474 88 03 00 00 */ lbz r0, 0(r3) /* 8017C818 00178478 2C 00 00 00 */ cmpwi r0, 0 /* 8017C81C 0017847C 41 82 00 60 */ beq lbl_8017C87C /* 8017C820 00178480 54 80 10 3A */ slwi r0, r4, 2 /* 8017C824 00178484 3B E0 00 00 */ li r31, 0 /* 8017C828 00178488 7C 63 02 14 */ add r3, r3, r0 /* 8017C82C 0017848C 90 A3 00 B4 */ stw r5, 0xb4(r3) lbl_8017C830: /* 8017C830 00178490 7F A3 EB 78 */ mr r3, r29 /* 8017C834 00178494 7F E4 FB 78 */ mr r4, r31 /* 8017C838 00178498 48 26 21 15 */ bl func_803DE94C /* 8017C83C 0017849C 7C 7E 1B 78 */ mr r30, r3 /* 8017C840 001784A0 38 80 00 05 */ li r4, 5 /* 8017C844 001784A4 38 A0 00 00 */ li r5, 0 /* 8017C848 001784A8 48 26 11 95 */ bl func_803DD9DC /* 8017C84C 001784AC 7C 64 1B 78 */ mr r4, r3 /* 8017C850 001784B0 7F 83 E3 78 */ mr r3, r28 /* 8017C854 001784B4 48 00 00 A9 */ bl func_8017C8FC /* 8017C858 001784B8 2C 03 00 00 */ cmpwi r3, 0 /* 8017C85C 001784BC 7C 65 1B 78 */ mr r5, r3 /* 8017C860 001784C0 41 82 00 10 */ beq lbl_8017C870 /* 8017C864 001784C4 7F C3 F3 78 */ mr r3, r30 /* 8017C868 001784C8 38 80 00 74 */ li r4, 0x74 /* 8017C86C 001784CC 48 25 EC B9 */ bl func_803DB524 lbl_8017C870: /* 8017C870 001784D0 3B FF 00 01 */ addi r31, r31, 1 /* 8017C874 001784D4 2C 1F 00 06 */ cmpwi r31, 6 /* 8017C878 001784D8 41 80 FF B8 */ blt lbl_8017C830 lbl_8017C87C: /* 8017C87C 001784DC 80 01 00 24 */ lwz r0, 0x24(r1) /* 8017C880 001784E0 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8017C884 001784E4 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8017C888 001784E8 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8017C88C 001784EC 83 81 00 10 */ lwz r28, 0x10(r1) /* 8017C890 001784F0 7C 08 03 A6 */ mtlr r0 /* 8017C894 001784F4 38 21 00 20 */ addi r1, r1, 0x20 /* 8017C898 001784F8 4E 80 00 20 */ blr .global func_8017C89C func_8017C89C: /* 8017C89C 001784FC 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8017C8A0 00178500 7C 08 02 A6 */ mflr r0 /* 8017C8A4 00178504 90 01 00 34 */ stw r0, 0x34(r1) /* 8017C8A8 00178508 93 E1 00 2C */ stw r31, 0x2c(r1) /* 8017C8AC 0017850C 7C BF 2B 78 */ mr r31, r5 /* 8017C8B0 00178510 88 03 00 00 */ lbz r0, 0(r3) /* 8017C8B4 00178514 2C 00 00 00 */ cmpwi r0, 0 /* 8017C8B8 00178518 41 82 00 30 */ beq lbl_8017C8E8 /* 8017C8BC 0017851C 54 80 10 3A */ slwi r0, r4, 2 /* 8017C8C0 00178520 7C C4 33 78 */ mr r4, r6 /* 8017C8C4 00178524 7C 63 02 14 */ add r3, r3, r0 /* 8017C8C8 00178528 80 63 00 B4 */ lwz r3, 0xb4(r3) /* 8017C8CC 0017852C 48 26 20 81 */ bl func_803DE94C /* 8017C8D0 00178530 38 A1 00 08 */ addi r5, r1, 8 /* 8017C8D4 00178534 38 80 00 74 */ li r4, 0x74 /* 8017C8D8 00178538 48 26 11 05 */ bl func_803DD9DC /* 8017C8DC 0017853C 7F E3 FB 78 */ mr r3, r31 /* 8017C8E0 00178540 38 81 00 08 */ addi r4, r1, 8 /* 8017C8E4 00178544 48 24 CB AD */ bl func_803C9490 lbl_8017C8E8: /* 8017C8E8 00178548 80 01 00 34 */ lwz r0, 0x34(r1) /* 8017C8EC 0017854C 83 E1 00 2C */ lwz r31, 0x2c(r1) /* 8017C8F0 00178550 7C 08 03 A6 */ mtlr r0 /* 8017C8F4 00178554 38 21 00 30 */ addi r1, r1, 0x30 /* 8017C8F8 00178558 4E 80 00 20 */ blr .global func_8017C8FC func_8017C8FC: /* 8017C8FC 0017855C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8017C900 00178560 7C 08 02 A6 */ mflr r0 /* 8017C904 00178564 3C A0 80 64 */ lis r5, lbl_8063CE34@ha /* 8017C908 00178568 90 01 00 14 */ stw r0, 0x14(r1) /* 8017C90C 0017856C 38 A5 CE 34 */ addi r5, r5, lbl_8063CE34@l /* 8017C910 00178570 93 E1 00 0C */ stw r31, 0xc(r1) /* 8017C914 00178574 7C 7F 1B 78 */ mr r31, r3 /* 8017C918 00178578 38 65 00 10 */ addi r3, r5, 0x10 /* 8017C91C 0017857C 48 21 56 AD */ bl func_80391FC8 /* 8017C920 00178580 54 63 04 3E */ clrlwi r3, r3, 0x10 /* 8017C924 00178584 48 0D 39 D1 */ bl func_802502F4 /* 8017C928 00178588 2C 03 00 00 */ cmpwi r3, 0 /* 8017C92C 0017858C 41 82 00 1C */ beq lbl_8017C948 /* 8017C930 00178590 7C 64 1B 78 */ mr r4, r3 /* 8017C934 00178594 38 7F 00 92 */ addi r3, r31, 0x92 /* 8017C938 00178598 38 A0 00 10 */ li r5, 0x10 /* 8017C93C 0017859C 4B FF A5 79 */ bl func_80176EB4 /* 8017C940 001785A0 38 7F 00 92 */ addi r3, r31, 0x92 /* 8017C944 001785A4 48 00 00 08 */ b lbl_8017C94C lbl_8017C948: /* 8017C948 001785A8 38 60 00 00 */ li r3, 0 lbl_8017C94C: /* 8017C94C 001785AC 80 01 00 14 */ lwz r0, 0x14(r1) /* 8017C950 001785B0 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8017C954 001785B4 7C 08 03 A6 */ mtlr r0 /* 8017C958 001785B8 38 21 00 10 */ addi r1, r1, 0x10 /* 8017C95C 001785BC 4E 80 00 20 */ blr .global func_8017C960 func_8017C960: /* 8017C960 001785C0 38 A0 00 01 */ li r5, 1 /* 8017C964 001785C4 38 6D 9F 70 */ addi r3, r13, lbl_8063F230-_SDA_BASE_ /* 8017C968 001785C8 38 80 00 04 */ li r4, 4 /* 8017C96C 001785CC 38 00 00 00 */ li r0, 0 /* 8017C970 001785D0 98 AD 9F 70 */ stb r5, lbl_8063F230-_SDA_BASE_(r13) /* 8017C974 001785D4 B0 83 00 02 */ sth r4, 2(r3) /* 8017C978 001785D8 98 03 00 04 */ stb r0, 4(r3) /* 8017C97C 001785DC 4E 80 00 20 */ blr