.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global func_8017C980 func_8017C980: /* 8017C980 001785E0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8017C984 001785E4 7C 08 02 A6 */ mflr r0 /* 8017C988 001785E8 90 01 00 14 */ stw r0, 0x14(r1) /* 8017C98C 001785EC 93 E1 00 0C */ stw r31, 0xc(r1) /* 8017C990 001785F0 3F E0 00 01 */ lis r31, 0x00012A98@ha /* 8017C994 001785F4 38 9F 2A 98 */ addi r4, r31, 0x00012A98@l /* 8017C998 001785F8 80 6D 96 2C */ lwz r3, lbl_8063E8EC-_SDA_BASE_(r13) /* 8017C99C 001785FC 48 05 E2 F9 */ bl func_801DAC94 /* 8017C9A0 00178600 90 6D 9F 88 */ stw r3, lbl_8063F248-_SDA_BASE_(r13) /* 8017C9A4 00178604 38 BF 2A 98 */ addi r5, r31, 0x2a98 /* 8017C9A8 00178608 38 80 00 00 */ li r4, 0 /* 8017C9AC 0017860C 4B E8 77 59 */ bl memset /* 8017C9B0 00178610 80 6D 96 2C */ lwz r3, lbl_8063E8EC-_SDA_BASE_(r13) /* 8017C9B4 00178614 38 80 00 10 */ li r4, 0x10 /* 8017C9B8 00178618 48 05 E2 DD */ bl func_801DAC94 /* 8017C9BC 0017861C 90 6D 9F 8C */ stw r3, lbl_8063F24C-_SDA_BASE_(r13) /* 8017C9C0 00178620 38 80 00 00 */ li r4, 0 /* 8017C9C4 00178624 38 A0 00 10 */ li r5, 0x10 /* 8017C9C8 00178628 4B E8 77 3D */ bl memset /* 8017C9CC 0017862C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8017C9D0 00178630 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8017C9D4 00178634 7C 08 03 A6 */ mtlr r0 /* 8017C9D8 00178638 38 21 00 10 */ addi r1, r1, 0x10 /* 8017C9DC 0017863C 4E 80 00 20 */ blr .global func_8017C9E0 func_8017C9E0: /* 8017C9E0 00178640 94 21 FF C0 */ stwu r1, -0x40(r1) /* 8017C9E4 00178644 7C 08 02 A6 */ mflr r0 /* 8017C9E8 00178648 90 01 00 44 */ stw r0, 0x44(r1) /* 8017C9EC 0017864C 39 61 00 40 */ addi r11, r1, 0x40 /* 8017C9F0 00178650 48 04 A7 3D */ bl _savegpr_28 /* 8017C9F4 00178654 7C 7C 1B 78 */ mr r28, r3 /* 8017C9F8 00178658 7C 9D 23 78 */ mr r29, r4 /* 8017C9FC 0017865C 4B F9 FF 79 */ bl func_8011C974 /* 8017CA00 00178660 80 6D 9F 8C */ lwz r3, lbl_8063F24C-_SDA_BASE_(r13) /* 8017CA04 00178664 2C 03 00 00 */ cmpwi r3, 0 /* 8017CA08 00178668 40 82 00 0C */ bne lbl_8017CA14 /* 8017CA0C 0017866C 3B C0 00 00 */ li r30, 0 /* 8017CA10 00178670 48 00 00 08 */ b lbl_8017CA18 lbl_8017CA14: /* 8017CA14 00178674 83 C3 00 08 */ lwz r30, 8(r3) lbl_8017CA18: /* 8017CA18 00178678 7F C3 F3 78 */ mr r3, r30 /* 8017CA1C 0017867C 7F A4 EB 78 */ mr r4, r29 /* 8017CA20 00178680 48 24 C8 A9 */ bl func_803C92C8 /* 8017CA24 00178684 7C 7F 1B 78 */ mr r31, r3 /* 8017CA28 00178688 7F 83 E3 78 */ mr r3, r28 /* 8017CA2C 0017868C 48 22 FE 15 */ bl func_803AC840 /* 8017CA30 00178690 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c /* 8017CA34 00178694 40 82 00 C8 */ bne lbl_8017CAFC /* 8017CA38 00178698 57 E0 06 3E */ clrlwi r0, r31, 0x18 /* 8017CA3C 0017869C 28 00 00 FF */ cmplwi r0, 0xff /* 8017CA40 001786A0 41 82 00 BC */ beq lbl_8017CAFC /* 8017CA44 001786A4 3C 60 80 49 */ lis r3, lbl_8048DFA8@ha /* 8017CA48 001786A8 57 E0 15 BA */ rlwinm r0, r31, 2, 0x16, 0x1d /* 8017CA4C 001786AC 38 63 DF A8 */ addi r3, r3, lbl_8048DFA8@l /* 8017CA50 001786B0 7F E3 00 2E */ lwzx r31, r3, r0 /* 8017CA54 001786B4 2C 1F 00 00 */ cmpwi r31, 0 /* 8017CA58 001786B8 41 82 00 A4 */ beq lbl_8017CAFC /* 8017CA5C 001786BC 7F 83 E3 78 */ mr r3, r28 /* 8017CA60 001786C0 7F A4 EB 78 */ mr r4, r29 /* 8017CA64 001786C4 38 A0 00 00 */ li r5, 0 /* 8017CA68 001786C8 48 24 C9 5D */ bl func_803C93C4 /* 8017CA6C 001786CC 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8017CA70 001786D0 28 00 00 FF */ cmplwi r0, 0xff /* 8017CA74 001786D4 40 82 00 10 */ bne lbl_8017CA84 /* 8017CA78 001786D8 7F E3 FB 78 */ mr r3, r31 /* 8017CA7C 001786DC 7F C4 F3 78 */ mr r4, r30 /* 8017CA80 001786E0 48 00 21 F5 */ bl func_8017EC74 lbl_8017CA84: /* 8017CA84 001786E4 7F 83 E3 78 */ mr r3, r28 /* 8017CA88 001786E8 7F A4 EB 78 */ mr r4, r29 /* 8017CA8C 001786EC 38 A0 00 00 */ li r5, 0 /* 8017CA90 001786F0 48 24 C9 35 */ bl func_803C93C4 /* 8017CA94 001786F4 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8017CA98 001786F8 28 00 00 01 */ cmplwi r0, 1 /* 8017CA9C 001786FC 40 82 00 60 */ bne lbl_8017CAFC /* 8017CAA0 00178700 7F 83 E3 78 */ mr r3, r28 /* 8017CAA4 00178704 7F A4 EB 78 */ mr r4, r29 /* 8017CAA8 00178708 38 A0 00 02 */ li r5, 2 /* 8017CAAC 0017870C 48 24 C9 19 */ bl func_803C93C4 /* 8017CAB0 00178710 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8017CAB4 00178714 7C 7F 1B 78 */ mr r31, r3 /* 8017CAB8 00178718 28 00 00 FF */ cmplwi r0, 0xff /* 8017CABC 0017871C 41 82 00 40 */ beq lbl_8017CAFC /* 8017CAC0 00178720 7F 83 E3 78 */ mr r3, r28 /* 8017CAC4 00178724 48 22 FD 85 */ bl func_803AC848 /* 8017CAC8 00178728 7C 64 1B 78 */ mr r4, r3 /* 8017CACC 0017872C 7F 83 E3 78 */ mr r3, r28 /* 8017CAD0 00178730 7F A5 EB 78 */ mr r5, r29 /* 8017CAD4 00178734 57 E6 06 3E */ clrlwi r6, r31, 0x18 /* 8017CAD8 00178738 38 E1 00 08 */ addi r7, r1, 8 /* 8017CADC 0017873C 48 24 18 DD */ bl func_803BE3B8 /* 8017CAE0 00178740 2C 03 00 00 */ cmpwi r3, 0 /* 8017CAE4 00178744 40 82 00 18 */ bne lbl_8017CAFC /* 8017CAE8 00178748 7F 83 E3 78 */ mr r3, r28 /* 8017CAEC 0017874C 7F A4 EB 78 */ mr r4, r29 /* 8017CAF0 00178750 38 A0 00 02 */ li r5, 2 /* 8017CAF4 00178754 38 C0 00 FF */ li r6, 0xff /* 8017CAF8 00178758 48 24 C8 81 */ bl func_803C9378 lbl_8017CAFC: /* 8017CAFC 0017875C 39 61 00 40 */ addi r11, r1, 0x40 /* 8017CB00 00178760 48 04 A6 79 */ bl _restgpr_28 /* 8017CB04 00178764 80 01 00 44 */ lwz r0, 0x44(r1) /* 8017CB08 00178768 7C 08 03 A6 */ mtlr r0 /* 8017CB0C 0017876C 38 21 00 40 */ addi r1, r1, 0x40 /* 8017CB10 00178770 4E 80 00 20 */ blr .global func_8017CB14 func_8017CB14: /* 8017CB14 00178774 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8017CB18 00178778 7C 08 02 A6 */ mflr r0 /* 8017CB1C 0017877C 90 01 00 24 */ stw r0, 0x24(r1) /* 8017CB20 00178780 39 61 00 20 */ addi r11, r1, 0x20 /* 8017CB24 00178784 48 04 A6 01 */ bl _savegpr_26 /* 8017CB28 00178788 7C 7D 1B 78 */ mr r29, r3 /* 8017CB2C 0017878C 7C 9E 23 78 */ mr r30, r4 /* 8017CB30 00178790 48 22 FD 11 */ bl func_803AC840 /* 8017CB34 00178794 7C 7B 1B 78 */ mr r27, r3 /* 8017CB38 00178798 7F C4 F3 78 */ mr r4, r30 /* 8017CB3C 0017879C 48 24 C7 8D */ bl func_803C92C8 /* 8017CB40 001787A0 7C 7C 1B 78 */ mr r28, r3 /* 8017CB44 001787A4 3B E0 00 FF */ li r31, 0xff /* 8017CB48 001787A8 4B F9 FE 2D */ bl func_8011C974 /* 8017CB4C 001787AC 57 60 07 39 */ rlwinm. r0, r27, 0, 0x1c, 0x1c /* 8017CB50 001787B0 41 82 00 0C */ beq lbl_8017CB5C /* 8017CB54 001787B4 38 60 00 FF */ li r3, 0xff /* 8017CB58 001787B8 48 00 01 08 */ b lbl_8017CC60 lbl_8017CB5C: /* 8017CB5C 001787BC 7F A3 EB 78 */ mr r3, r29 /* 8017CB60 001787C0 48 00 03 79 */ bl func_8017CED8 /* 8017CB64 001787C4 57 80 06 3E */ clrlwi r0, r28, 0x18 /* 8017CB68 001787C8 28 00 00 FF */ cmplwi r0, 0xff /* 8017CB6C 001787CC 40 82 00 0C */ bne lbl_8017CB78 /* 8017CB70 001787D0 38 60 00 FF */ li r3, 0xff /* 8017CB74 001787D4 48 00 00 EC */ b lbl_8017CC60 lbl_8017CB78: /* 8017CB78 001787D8 3C 60 80 49 */ lis r3, lbl_8048DFA8@ha /* 8017CB7C 001787DC 3C 80 80 49 */ lis r4, lbl_8048DFB8@ha /* 8017CB80 001787E0 57 85 15 BA */ rlwinm r5, r28, 2, 0x16, 0x1d /* 8017CB84 001787E4 57 C0 15 BA */ rlwinm r0, r30, 2, 0x16, 0x1d /* 8017CB88 001787E8 38 63 DF A8 */ addi r3, r3, lbl_8048DFA8@l /* 8017CB8C 001787EC 38 84 DF B8 */ addi r4, r4, lbl_8048DFB8@l /* 8017CB90 001787F0 7F 83 28 2E */ lwzx r28, r3, r5 /* 8017CB94 001787F4 7F A3 EB 78 */ mr r3, r29 /* 8017CB98 001787F8 7F 44 00 2E */ lwzx r26, r4, r0 /* 8017CB9C 001787FC 7F C4 F3 78 */ mr r4, r30 /* 8017CBA0 00178800 38 A0 00 02 */ li r5, 2 /* 8017CBA4 00178804 48 24 C8 21 */ bl func_803C93C4 /* 8017CBA8 00178808 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8017CBAC 0017880C 28 00 00 FF */ cmplwi r0, 0xff /* 8017CBB0 00178810 40 82 00 AC */ bne lbl_8017CC5C /* 8017CBB4 00178814 7F 83 E3 78 */ mr r3, r28 /* 8017CBB8 00178818 7F 64 DB 78 */ mr r4, r27 /* 8017CBBC 0017881C 7F 46 D3 78 */ mr r6, r26 /* 8017CBC0 00178820 38 A0 00 00 */ li r5, 0 /* 8017CBC4 00178824 48 01 E5 6D */ bl func_8019B130 /* 8017CBC8 00178828 2C 03 00 00 */ cmpwi r3, 0 /* 8017CBCC 0017882C 40 82 00 08 */ bne lbl_8017CBD4 /* 8017CBD0 00178830 3B E0 00 FF */ li r31, 0xff lbl_8017CBD4: /* 8017CBD4 00178834 38 00 00 06 */ li r0, 6 /* 8017CBD8 00178838 38 A0 00 00 */ li r5, 0 /* 8017CBDC 0017883C 7C 09 03 A6 */ mtctr r0 lbl_8017CBE0: /* 8017CBE0 00178840 2C 1C 00 00 */ cmpwi r28, 0 /* 8017CBE4 00178844 40 82 00 0C */ bne lbl_8017CBF0 /* 8017CBE8 00178848 38 00 00 00 */ li r0, 0 /* 8017CBEC 0017884C 48 00 00 14 */ b lbl_8017CC00 lbl_8017CBF0: /* 8017CBF0 00178850 54 A0 06 3E */ clrlwi r0, r5, 0x18 /* 8017CBF4 00178854 1C 00 07 74 */ mulli r0, r0, 0x774 /* 8017CBF8 00178858 7C 9C 02 14 */ add r4, r28, r0 /* 8017CBFC 0017885C 38 04 02 8C */ addi r0, r4, 0x28c lbl_8017CC00: /* 8017CC00 00178860 7C 00 18 40 */ cmplw r0, r3 /* 8017CC04 00178864 40 82 00 50 */ bne lbl_8017CC54 /* 8017CC08 00178868 7F C3 F3 78 */ mr r3, r30 /* 8017CC0C 0017886C 54 A4 06 3E */ clrlwi r4, r5, 0x18 /* 8017CC10 00178870 48 24 C5 B1 */ bl func_803C91C0 /* 8017CC14 00178874 7C 7F 1B 78 */ mr r31, r3 /* 8017CC18 00178878 7F A3 EB 78 */ mr r3, r29 /* 8017CC1C 0017887C 7F C4 F3 78 */ mr r4, r30 /* 8017CC20 00178880 38 A0 00 00 */ li r5, 0 /* 8017CC24 00178884 38 C0 00 03 */ li r6, 3 /* 8017CC28 00178888 48 24 C7 51 */ bl func_803C9378 /* 8017CC2C 0017888C 7F C3 F3 78 */ mr r3, r30 /* 8017CC30 00178890 57 E4 06 3E */ clrlwi r4, r31, 0x18 /* 8017CC34 00178894 48 24 C5 8D */ bl func_803C91C0 /* 8017CC38 00178898 7C 60 1B 78 */ mr r0, r3 /* 8017CC3C 0017889C 7F A3 EB 78 */ mr r3, r29 /* 8017CC40 001788A0 7F C4 F3 78 */ mr r4, r30 /* 8017CC44 001788A4 38 A0 00 02 */ li r5, 2 /* 8017CC48 001788A8 54 06 06 3E */ clrlwi r6, r0, 0x18 /* 8017CC4C 001788AC 48 24 C7 2D */ bl func_803C9378 /* 8017CC50 001788B0 48 00 00 0C */ b lbl_8017CC5C lbl_8017CC54: /* 8017CC54 001788B4 38 A5 00 01 */ addi r5, r5, 1 /* 8017CC58 001788B8 42 00 FF 88 */ bdnz lbl_8017CBE0 lbl_8017CC5C: /* 8017CC5C 001788BC 7F E3 FB 78 */ mr r3, r31 lbl_8017CC60: /* 8017CC60 001788C0 39 61 00 20 */ addi r11, r1, 0x20 /* 8017CC64 001788C4 48 04 A5 0D */ bl _restgpr_26 /* 8017CC68 001788C8 80 01 00 24 */ lwz r0, 0x24(r1) /* 8017CC6C 001788CC 7C 08 03 A6 */ mtlr r0 /* 8017CC70 001788D0 38 21 00 20 */ addi r1, r1, 0x20 /* 8017CC74 001788D4 4E 80 00 20 */ blr .global func_8017CC78 func_8017CC78: /* 8017CC78 001788D8 38 6D 9F 80 */ addi r3, r13, lbl_8063F240-_SDA_BASE_ /* 8017CC7C 001788DC 38 80 00 01 */ li r4, 1 /* 8017CC80 001788E0 38 A0 00 04 */ li r5, 4 /* 8017CC84 001788E4 38 C0 00 00 */ li r6, 0 /* 8017CC88 001788E8 4B EA 7C 8C */ b func_80024914