.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global func_80300C10 func_80300C10: /* 80300C10 002FC870 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80300C14 002FC874 28 05 00 10 */ cmplwi r5, 0x10 /* 80300C18 002FC878 93 E1 00 0C */ stw r31, 0xc(r1) /* 80300C1C 002FC87C 40 81 00 08 */ ble lbl_80300C24 /* 80300C20 002FC880 38 A0 00 10 */ li r5, 0x10 lbl_80300C24: /* 80300C24 002FC884 38 C0 00 00 */ li r6, 0 /* 80300C28 002FC888 38 00 00 08 */ li r0, 8 /* 80300C2C 002FC88C 98 C3 00 00 */ stb r6, 0(r3) /* 80300C30 002FC890 39 83 00 04 */ addi r12, r3, 4 /* 80300C34 002FC894 3B E0 00 00 */ li r31, 0 /* 80300C38 002FC898 98 C3 00 01 */ stb r6, 1(r3) /* 80300C3C 002FC89C 7C 09 03 A6 */ mtctr r0 lbl_80300C40: /* 80300C40 002FC8A0 7F EC F9 AE */ stbx r31, r12, r31 /* 80300C44 002FC8A4 7D 6C FA 14 */ add r11, r12, r31 /* 80300C48 002FC8A8 39 5F 00 01 */ addi r10, r31, 1 /* 80300C4C 002FC8AC 39 3F 00 02 */ addi r9, r31, 2 /* 80300C50 002FC8B0 99 4B 00 01 */ stb r10, 1(r11) /* 80300C54 002FC8B4 39 1F 00 03 */ addi r8, r31, 3 /* 80300C58 002FC8B8 38 FF 00 04 */ addi r7, r31, 4 /* 80300C5C 002FC8BC 38 DF 00 05 */ addi r6, r31, 5 /* 80300C60 002FC8C0 99 2B 00 02 */ stb r9, 2(r11) /* 80300C64 002FC8C4 38 7F 00 06 */ addi r3, r31, 6 /* 80300C68 002FC8C8 38 1F 00 07 */ addi r0, r31, 7 /* 80300C6C 002FC8CC 39 5F 00 09 */ addi r10, r31, 9 /* 80300C70 002FC8D0 99 0B 00 03 */ stb r8, 3(r11) /* 80300C74 002FC8D4 39 3F 00 0A */ addi r9, r31, 0xa /* 80300C78 002FC8D8 39 1F 00 0B */ addi r8, r31, 0xb /* 80300C7C 002FC8DC 98 EB 00 04 */ stb r7, 4(r11) /* 80300C80 002FC8E0 38 FF 00 0C */ addi r7, r31, 0xc /* 80300C84 002FC8E4 98 CB 00 05 */ stb r6, 5(r11) /* 80300C88 002FC8E8 38 DF 00 0D */ addi r6, r31, 0xd /* 80300C8C 002FC8EC 98 6B 00 06 */ stb r3, 6(r11) /* 80300C90 002FC8F0 38 7F 00 0E */ addi r3, r31, 0xe /* 80300C94 002FC8F4 3B FF 00 08 */ addi r31, r31, 8 /* 80300C98 002FC8F8 98 0B 00 07 */ stb r0, 7(r11) /* 80300C9C 002FC8FC 7D 6C FA 14 */ add r11, r12, r31 /* 80300CA0 002FC900 38 1F 00 07 */ addi r0, r31, 7 /* 80300CA4 002FC904 7F EC F9 AE */ stbx r31, r12, r31 /* 80300CA8 002FC908 99 4B 00 01 */ stb r10, 1(r11) /* 80300CAC 002FC90C 39 5F 00 09 */ addi r10, r31, 9 /* 80300CB0 002FC910 99 2B 00 02 */ stb r9, 2(r11) /* 80300CB4 002FC914 39 3F 00 0A */ addi r9, r31, 0xa /* 80300CB8 002FC918 99 0B 00 03 */ stb r8, 3(r11) /* 80300CBC 002FC91C 39 1F 00 0B */ addi r8, r31, 0xb /* 80300CC0 002FC920 98 EB 00 04 */ stb r7, 4(r11) /* 80300CC4 002FC924 38 FF 00 0C */ addi r7, r31, 0xc /* 80300CC8 002FC928 98 CB 00 05 */ stb r6, 5(r11) /* 80300CCC 002FC92C 38 DF 00 0D */ addi r6, r31, 0xd /* 80300CD0 002FC930 98 6B 00 06 */ stb r3, 6(r11) /* 80300CD4 002FC934 38 7F 00 0E */ addi r3, r31, 0xe /* 80300CD8 002FC938 3B FF 00 08 */ addi r31, r31, 8 /* 80300CDC 002FC93C 98 0B 00 07 */ stb r0, 7(r11) /* 80300CE0 002FC940 7D 6C FA 14 */ add r11, r12, r31 /* 80300CE4 002FC944 38 1F 00 07 */ addi r0, r31, 7 /* 80300CE8 002FC948 7F EC F9 AE */ stbx r31, r12, r31 /* 80300CEC 002FC94C 99 4B 00 01 */ stb r10, 1(r11) /* 80300CF0 002FC950 39 5F 00 09 */ addi r10, r31, 9 /* 80300CF4 002FC954 99 2B 00 02 */ stb r9, 2(r11) /* 80300CF8 002FC958 39 3F 00 0A */ addi r9, r31, 0xa /* 80300CFC 002FC95C 99 0B 00 03 */ stb r8, 3(r11) /* 80300D00 002FC960 39 1F 00 0B */ addi r8, r31, 0xb /* 80300D04 002FC964 98 EB 00 04 */ stb r7, 4(r11) /* 80300D08 002FC968 38 FF 00 0C */ addi r7, r31, 0xc /* 80300D0C 002FC96C 98 CB 00 05 */ stb r6, 5(r11) /* 80300D10 002FC970 38 DF 00 0D */ addi r6, r31, 0xd /* 80300D14 002FC974 98 6B 00 06 */ stb r3, 6(r11) /* 80300D18 002FC978 38 7F 00 0E */ addi r3, r31, 0xe /* 80300D1C 002FC97C 3B FF 00 08 */ addi r31, r31, 8 /* 80300D20 002FC980 98 0B 00 07 */ stb r0, 7(r11) /* 80300D24 002FC984 7D 6C FA 14 */ add r11, r12, r31 /* 80300D28 002FC988 38 1F 00 07 */ addi r0, r31, 7 /* 80300D2C 002FC98C 7F EC F9 AE */ stbx r31, r12, r31 /* 80300D30 002FC990 3B FF 00 08 */ addi r31, r31, 8 /* 80300D34 002FC994 99 4B 00 01 */ stb r10, 1(r11) /* 80300D38 002FC998 99 2B 00 02 */ stb r9, 2(r11) /* 80300D3C 002FC99C 99 0B 00 03 */ stb r8, 3(r11) /* 80300D40 002FC9A0 98 EB 00 04 */ stb r7, 4(r11) /* 80300D44 002FC9A4 98 CB 00 05 */ stb r6, 5(r11) /* 80300D48 002FC9A8 98 6B 00 06 */ stb r3, 6(r11) /* 80300D4C 002FC9AC 98 0B 00 07 */ stb r0, 7(r11) /* 80300D50 002FC9B0 42 00 FE F0 */ bdnz lbl_80300C40 /* 80300D54 002FC9B4 38 00 00 40 */ li r0, 0x40 /* 80300D58 002FC9B8 7D 83 63 78 */ mr r3, r12 /* 80300D5C 002FC9BC 54 A5 06 3E */ clrlwi r5, r5, 0x18 /* 80300D60 002FC9C0 39 20 00 00 */ li r9, 0 /* 80300D64 002FC9C4 39 00 00 00 */ li r8, 0 /* 80300D68 002FC9C8 38 E0 00 00 */ li r7, 0 /* 80300D6C 002FC9CC 7C 09 03 A6 */ mtctr r0 lbl_80300D70: /* 80300D70 002FC9D0 55 06 06 3E */ clrlwi r6, r8, 0x18 /* 80300D74 002FC9D4 39 08 00 01 */ addi r8, r8, 1 /* 80300D78 002FC9D8 55 00 06 3E */ clrlwi r0, r8, 0x18 /* 80300D7C 002FC9DC 89 43 00 00 */ lbz r10, 0(r3) /* 80300D80 002FC9E0 7C 00 28 40 */ cmplw r0, r5 /* 80300D84 002FC9E4 7C C4 30 AE */ lbzx r6, r4, r6 /* 80300D88 002FC9E8 7C 09 52 14 */ add r0, r9, r10 /* 80300D8C 002FC9EC 7C 06 02 14 */ add r0, r6, r0 /* 80300D90 002FC9F0 54 09 06 3E */ clrlwi r9, r0, 0x18 /* 80300D94 002FC9F4 40 82 00 08 */ bne lbl_80300D9C /* 80300D98 002FC9F8 39 00 00 00 */ li r8, 0 lbl_80300D9C: /* 80300D9C 002FC9FC 7C 0C 48 AE */ lbzx r0, r12, r9 /* 80300DA0 002FCA00 55 06 06 3E */ clrlwi r6, r8, 0x18 /* 80300DA4 002FCA04 39 08 00 01 */ addi r8, r8, 1 /* 80300DA8 002FCA08 7C C4 30 AE */ lbzx r6, r4, r6 /* 80300DAC 002FCA0C 98 03 00 00 */ stb r0, 0(r3) /* 80300DB0 002FCA10 55 00 06 3E */ clrlwi r0, r8, 0x18 /* 80300DB4 002FCA14 7C 00 28 40 */ cmplw r0, r5 /* 80300DB8 002FCA18 7D 4C 49 AE */ stbx r10, r12, r9 /* 80300DBC 002FCA1C 89 43 00 01 */ lbz r10, 1(r3) /* 80300DC0 002FCA20 7C 09 52 14 */ add r0, r9, r10 /* 80300DC4 002FCA24 7C 06 02 14 */ add r0, r6, r0 /* 80300DC8 002FCA28 54 09 06 3E */ clrlwi r9, r0, 0x18 /* 80300DCC 002FCA2C 40 82 00 08 */ bne lbl_80300DD4 /* 80300DD0 002FCA30 39 00 00 00 */ li r8, 0 lbl_80300DD4: /* 80300DD4 002FCA34 7C 0C 48 AE */ lbzx r0, r12, r9 /* 80300DD8 002FCA38 55 06 06 3E */ clrlwi r6, r8, 0x18 /* 80300DDC 002FCA3C 39 08 00 01 */ addi r8, r8, 1 /* 80300DE0 002FCA40 7C C4 30 AE */ lbzx r6, r4, r6 /* 80300DE4 002FCA44 98 03 00 01 */ stb r0, 1(r3) /* 80300DE8 002FCA48 55 00 06 3E */ clrlwi r0, r8, 0x18 /* 80300DEC 002FCA4C 7C 00 28 40 */ cmplw r0, r5 /* 80300DF0 002FCA50 7D 4C 49 AE */ stbx r10, r12, r9 /* 80300DF4 002FCA54 89 43 00 02 */ lbz r10, 2(r3) /* 80300DF8 002FCA58 7C 09 52 14 */ add r0, r9, r10 /* 80300DFC 002FCA5C 7C 06 02 14 */ add r0, r6, r0 /* 80300E00 002FCA60 54 09 06 3E */ clrlwi r9, r0, 0x18 /* 80300E04 002FCA64 40 82 00 08 */ bne lbl_80300E0C /* 80300E08 002FCA68 39 00 00 00 */ li r8, 0 lbl_80300E0C: /* 80300E0C 002FCA6C 7C 0C 48 AE */ lbzx r0, r12, r9 /* 80300E10 002FCA70 55 06 06 3E */ clrlwi r6, r8, 0x18 /* 80300E14 002FCA74 39 08 00 01 */ addi r8, r8, 1 /* 80300E18 002FCA78 7C C4 30 AE */ lbzx r6, r4, r6 /* 80300E1C 002FCA7C 98 03 00 02 */ stb r0, 2(r3) /* 80300E20 002FCA80 55 00 06 3E */ clrlwi r0, r8, 0x18 /* 80300E24 002FCA84 7C 00 28 40 */ cmplw r0, r5 /* 80300E28 002FCA88 7D 4C 49 AE */ stbx r10, r12, r9 /* 80300E2C 002FCA8C 89 43 00 03 */ lbz r10, 3(r3) /* 80300E30 002FCA90 7C 09 52 14 */ add r0, r9, r10 /* 80300E34 002FCA94 7C 06 02 14 */ add r0, r6, r0 /* 80300E38 002FCA98 54 09 06 3E */ clrlwi r9, r0, 0x18 /* 80300E3C 002FCA9C 40 82 00 08 */ bne lbl_80300E44 /* 80300E40 002FCAA0 39 00 00 00 */ li r8, 0 lbl_80300E44: /* 80300E44 002FCAA4 7C 0C 48 AE */ lbzx r0, r12, r9 /* 80300E48 002FCAA8 38 E7 00 03 */ addi r7, r7, 3 /* 80300E4C 002FCAAC 98 03 00 03 */ stb r0, 3(r3) /* 80300E50 002FCAB0 38 63 00 04 */ addi r3, r3, 4 /* 80300E54 002FCAB4 7D 4C 49 AE */ stbx r10, r12, r9 /* 80300E58 002FCAB8 42 00 FF 18 */ bdnz lbl_80300D70 /* 80300E5C 002FCABC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80300E60 002FCAC0 38 21 00 10 */ addi r1, r1, 0x10 /* 80300E64 002FCAC4 4E 80 00 20 */ blr .global func_80300E68 func_80300E68: /* 80300E68 002FCAC8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80300E6C 002FCACC 2C 06 00 00 */ cmpwi r6, 0 /* 80300E70 002FCAD0 93 E1 00 0C */ stw r31, 0xc(r1) /* 80300E74 002FCAD4 41 82 01 64 */ beq lbl_80300FD8 /* 80300E78 002FCAD8 89 63 00 00 */ lbz r11, 0(r3) /* 80300E7C 002FCADC 3B E3 00 04 */ addi r31, r3, 4 /* 80300E80 002FCAE0 89 83 00 01 */ lbz r12, 1(r3) /* 80300E84 002FCAE4 41 82 01 4C */ beq lbl_80300FD0 /* 80300E88 002FCAE8 54 C0 F0 BF */ rlwinm. r0, r6, 0x1e, 2, 0x1f /* 80300E8C 002FCAEC 7C 09 03 A6 */ mtctr r0 /* 80300E90 002FCAF0 41 82 00 F8 */ beq lbl_80300F88 lbl_80300E94: /* 80300E94 002FCAF4 39 0B 00 01 */ addi r8, r11, 1 /* 80300E98 002FCAF8 88 E5 00 00 */ lbz r7, 0(r5) /* 80300E9C 002FCAFC 55 0B 06 3E */ clrlwi r11, r8, 0x18 /* 80300EA0 002FCB00 7D 3F 58 AE */ lbzx r9, r31, r11 /* 80300EA4 002FCB04 39 0B 00 01 */ addi r8, r11, 1 /* 80300EA8 002FCB08 7C 0C 4A 14 */ add r0, r12, r9 /* 80300EAC 002FCB0C 54 0C 06 3E */ clrlwi r12, r0, 0x18 /* 80300EB0 002FCB10 7D 5F 60 AE */ lbzx r10, r31, r12 /* 80300EB4 002FCB14 7D 3F 61 AE */ stbx r9, r31, r12 /* 80300EB8 002FCB18 7C 09 52 14 */ add r0, r9, r10 /* 80300EBC 002FCB1C 54 00 06 3E */ clrlwi r0, r0, 0x18 /* 80300EC0 002FCB20 7D 5F 59 AE */ stbx r10, r31, r11 /* 80300EC4 002FCB24 55 0B 06 3E */ clrlwi r11, r8, 0x18 /* 80300EC8 002FCB28 39 0B 00 01 */ addi r8, r11, 1 /* 80300ECC 002FCB2C 7C 1F 00 AE */ lbzx r0, r31, r0 /* 80300ED0 002FCB30 7C E0 02 78 */ xor r0, r7, r0 /* 80300ED4 002FCB34 88 E5 00 01 */ lbz r7, 1(r5) /* 80300ED8 002FCB38 98 04 00 00 */ stb r0, 0(r4) /* 80300EDC 002FCB3C 7D 3F 58 AE */ lbzx r9, r31, r11 /* 80300EE0 002FCB40 7C 0C 4A 14 */ add r0, r12, r9 /* 80300EE4 002FCB44 54 0C 06 3E */ clrlwi r12, r0, 0x18 /* 80300EE8 002FCB48 7D 5F 60 AE */ lbzx r10, r31, r12 /* 80300EEC 002FCB4C 7D 3F 61 AE */ stbx r9, r31, r12 /* 80300EF0 002FCB50 7C 09 52 14 */ add r0, r9, r10 /* 80300EF4 002FCB54 54 00 06 3E */ clrlwi r0, r0, 0x18 /* 80300EF8 002FCB58 7D 5F 59 AE */ stbx r10, r31, r11 /* 80300EFC 002FCB5C 55 0B 06 3E */ clrlwi r11, r8, 0x18 /* 80300F00 002FCB60 39 0B 00 01 */ addi r8, r11, 1 /* 80300F04 002FCB64 7C 1F 00 AE */ lbzx r0, r31, r0 /* 80300F08 002FCB68 7C E0 02 78 */ xor r0, r7, r0 /* 80300F0C 002FCB6C 88 E5 00 02 */ lbz r7, 2(r5) /* 80300F10 002FCB70 98 04 00 01 */ stb r0, 1(r4) /* 80300F14 002FCB74 7D 3F 58 AE */ lbzx r9, r31, r11 /* 80300F18 002FCB78 7C 0C 4A 14 */ add r0, r12, r9 /* 80300F1C 002FCB7C 54 0C 06 3E */ clrlwi r12, r0, 0x18 /* 80300F20 002FCB80 7D 5F 60 AE */ lbzx r10, r31, r12 /* 80300F24 002FCB84 7D 3F 61 AE */ stbx r9, r31, r12 /* 80300F28 002FCB88 7C 09 52 14 */ add r0, r9, r10 /* 80300F2C 002FCB8C 54 00 06 3E */ clrlwi r0, r0, 0x18 /* 80300F30 002FCB90 7D 5F 59 AE */ stbx r10, r31, r11 /* 80300F34 002FCB94 55 0B 06 3E */ clrlwi r11, r8, 0x18 /* 80300F38 002FCB98 7C 1F 00 AE */ lbzx r0, r31, r0 /* 80300F3C 002FCB9C 7C E0 02 78 */ xor r0, r7, r0 /* 80300F40 002FCBA0 88 E5 00 03 */ lbz r7, 3(r5) /* 80300F44 002FCBA4 98 04 00 02 */ stb r0, 2(r4) /* 80300F48 002FCBA8 38 A5 00 04 */ addi r5, r5, 4 /* 80300F4C 002FCBAC 7D 3F 58 AE */ lbzx r9, r31, r11 /* 80300F50 002FCBB0 7C 0C 4A 14 */ add r0, r12, r9 /* 80300F54 002FCBB4 54 0C 06 3E */ clrlwi r12, r0, 0x18 /* 80300F58 002FCBB8 7D 5F 60 AE */ lbzx r10, r31, r12 /* 80300F5C 002FCBBC 7D 3F 61 AE */ stbx r9, r31, r12 /* 80300F60 002FCBC0 7C 09 52 14 */ add r0, r9, r10 /* 80300F64 002FCBC4 54 00 06 3E */ clrlwi r0, r0, 0x18 /* 80300F68 002FCBC8 7D 5F 59 AE */ stbx r10, r31, r11 /* 80300F6C 002FCBCC 7C 1F 00 AE */ lbzx r0, r31, r0 /* 80300F70 002FCBD0 7C E0 02 78 */ xor r0, r7, r0 /* 80300F74 002FCBD4 98 04 00 03 */ stb r0, 3(r4) /* 80300F78 002FCBD8 38 84 00 04 */ addi r4, r4, 4 /* 80300F7C 002FCBDC 42 00 FF 18 */ bdnz lbl_80300E94 /* 80300F80 002FCBE0 70 C6 00 03 */ andi. r6, r6, 3 /* 80300F84 002FCBE4 41 82 00 4C */ beq lbl_80300FD0 lbl_80300F88: /* 80300F88 002FCBE8 7C C9 03 A6 */ mtctr r6 lbl_80300F8C: /* 80300F8C 002FCBEC 39 0B 00 01 */ addi r8, r11, 1 /* 80300F90 002FCBF0 88 E5 00 00 */ lbz r7, 0(r5) /* 80300F94 002FCBF4 55 0B 06 3E */ clrlwi r11, r8, 0x18 /* 80300F98 002FCBF8 38 A5 00 01 */ addi r5, r5, 1 /* 80300F9C 002FCBFC 7D 3F 58 AE */ lbzx r9, r31, r11 /* 80300FA0 002FCC00 7C 0C 4A 14 */ add r0, r12, r9 /* 80300FA4 002FCC04 54 0C 06 3E */ clrlwi r12, r0, 0x18 /* 80300FA8 002FCC08 7D 5F 60 AE */ lbzx r10, r31, r12 /* 80300FAC 002FCC0C 7D 3F 61 AE */ stbx r9, r31, r12 /* 80300FB0 002FCC10 7C 09 52 14 */ add r0, r9, r10 /* 80300FB4 002FCC14 54 00 06 3E */ clrlwi r0, r0, 0x18 /* 80300FB8 002FCC18 7D 5F 59 AE */ stbx r10, r31, r11 /* 80300FBC 002FCC1C 7C 1F 00 AE */ lbzx r0, r31, r0 /* 80300FC0 002FCC20 7C E0 02 78 */ xor r0, r7, r0 /* 80300FC4 002FCC24 98 04 00 00 */ stb r0, 0(r4) /* 80300FC8 002FCC28 38 84 00 01 */ addi r4, r4, 1 /* 80300FCC 002FCC2C 42 00 FF C0 */ bdnz lbl_80300F8C lbl_80300FD0: /* 80300FD0 002FCC30 99 63 00 00 */ stb r11, 0(r3) /* 80300FD4 002FCC34 99 83 00 01 */ stb r12, 1(r3) lbl_80300FD8: /* 80300FD8 002FCC38 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80300FDC 002FCC3C 38 21 00 10 */ addi r1, r1, 0x10 /* 80300FE0 002FCC40 4E 80 00 20 */ blr