.include "macros.inc" .section .text .global func_8036d638 .type func_8036d638, @function func_8036d638: /* 8036D638 7C0802A6 */ mflr r0 /* 8036D63C 90010004 */ stw r0, 4(r1) /* 8036D640 9421FFD0 */ stwu r1, -0x30(r1) /* 8036D644 BF210014 */ stmw r25, 0x14(r1) /* 8036D648 4BFFFFD1 */ bl func_8036d618 /* 8036D64C 3C808100 */ lis r4, 0x8100 /* 8036D650 38A00080 */ li r5, 0x80 /* 8036D654 3863FF80 */ addi r3, r3, -0x80 /* 8036D658 4BCA0DC5 */ bl func_8000e41c /* 8036D65C 3C60804F */ lis r3, lbl_804eed70@ha /* 8036D660 3883ED70 */ addi r4, r3, lbl_804eed70@l /* 8036D664 3C608100 */ lis r3, 0x8100 /* 8036D668 38A00080 */ li r5, 0x80 /* 8036D66C 4BCA0DB1 */ bl func_8000e41c /* 8036D670 3C608100 */ lis r3, 0x8100 /* 8036D674 38800080 */ li r4, 0x80 /* 8036D678 48000299 */ bl func_8036d910 /* 8036D67C 3C60CC00 */ lis r3, 0xcc00 /* 8036D680 38635000 */ addi r3, r3, 0x5000 /* 8036D684 38000043 */ li r0, 0x43 /* 8036D688 B0030012 */ sth r0, 0x12(r3) /* 8036D68C 3BE3000A */ addi r31, r3, 0xa /* 8036D690 380008AC */ li r0, 0x8ac /* 8036D694 B003000A */ sth r0, 0xa(r3) /* 8036D698 A003000A */ lhz r0, 0xa(r3) /* 8036D69C 60000001 */ ori r0, r0, 1 /* 8036D6A0 B003000A */ sth r0, 0xa(r3) lbl_8036d6a4: /* 8036D6A4 A01F0000 */ lhz r0, 0(r31) /* 8036D6A8 540007FF */ clrlwi. r0, r0, 0x1f /* 8036D6AC 4082FFF8 */ bne+ lbl_8036d6a4 /* 8036D6B0 38000000 */ li r0, 0x0 /* 8036D6B4 3C80CC00 */ lis r4, 0xcc00 /* 8036D6B8 B0045000 */ sth r0, 0x5000(r4) lbl_8036d6bc: /* 8036D6BC 3BC45000 */ addi r30, r4, 0x5000 /* 8036D6C0 A47E0004 */ lhzu r3, 4(r30) /* 8036D6C4 3BA45000 */ addi r29, r4, 0x5000 /* 8036D6C8 A41D0006 */ lhzu r0, 6(r29) /* 8036D6CC 5060801E */ rlwimi r0, r3, 0x10, 0, 0xf /* 8036D6D0 54000001 */ rlwinm. r0, r0, 0, 0, 0 /* 8036D6D4 4082FFE8 */ bne+ lbl_8036d6bc /* 8036D6D8 3C60CC00 */ lis r3, 0xcc00 /* 8036D6DC 3C000100 */ lis r0, 0x100 /* 8036D6E0 3B635000 */ addi r27, r3, 0x5000 /* 8036D6E4 941B0020 */ stwu r0, 0x20(r27) /* 8036D6E8 38000000 */ li r0, 0x0 /* 8036D6EC 3B435000 */ addi r26, r3, 0x5000 /* 8036D6F0 941A0024 */ stwu r0, 0x24(r26) /* 8036D6F4 38000020 */ li r0, 0x20 /* 8036D6F8 3B235000 */ addi r25, r3, 0x5000 /* 8036D6FC 94190028 */ stwu r0, 0x28(r25) /* 8036D700 A07F0000 */ lhz r3, 0(r31) /* 8036D704 48000008 */ b lbl_8036d70c lbl_8036d708: /* 8036D708 A07F0000 */ lhz r3, 0(r31) lbl_8036d70c: /* 8036D70C 546006B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a /* 8036D710 4182FFF8 */ beq+ lbl_8036d708 /* 8036D714 B07F0000 */ sth r3, 0(r31) /* 8036D718 480050C5 */ bl func_803727dc /* 8036D71C 7C7C1B78 */ mr r28, r3 lbl_8036d720: /* 8036D720 480050BD */ bl func_803727dc /* 8036D724 7C1C1850 */ subf r0, r28, r3 /* 8036D728 2C000892 */ cmpwi r0, 0x892 /* 8036D72C 4180FFF4 */ blt+ lbl_8036d720 /* 8036D730 3C000100 */ lis r0, 0x100 /* 8036D734 901B0000 */ stw r0, 0(r27) /* 8036D738 38600000 */ li r3, 0x0 /* 8036D73C 38000020 */ li r0, 0x20 /* 8036D740 907A0000 */ stw r3, 0(r26) /* 8036D744 90190000 */ stw r0, 0(r25) /* 8036D748 A07F0000 */ lhz r3, 0(r31) /* 8036D74C 48000008 */ b lbl_8036d754 lbl_8036d750: /* 8036D750 A07F0000 */ lhz r3, 0(r31) lbl_8036d754: /* 8036D754 546006B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a /* 8036D758 4182FFF8 */ beq+ lbl_8036d750 /* 8036D75C B07F0000 */ sth r3, 0(r31) /* 8036D760 A01F0000 */ lhz r0, 0(r31) /* 8036D764 54000566 */ rlwinm r0, r0, 0, 0x15, 0x13 /* 8036D768 B01F0000 */ sth r0, 0(r31) lbl_8036d76c: /* 8036D76C A01F0000 */ lhz r0, 0(r31) /* 8036D770 5400056B */ rlwinm. r0, r0, 0, 0x15, 0x15 /* 8036D774 4082FFF8 */ bne+ lbl_8036d76c /* 8036D778 A01F0000 */ lhz r0, 0(r31) /* 8036D77C 540007B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c /* 8036D780 B01F0000 */ sth r0, 0(r31) /* 8036D784 A01E0000 */ lhz r0, 0(r30) /* 8036D788 48000008 */ b lbl_8036d790 lbl_8036d78c: /* 8036D78C A01E0000 */ lhz r0, 0(r30) lbl_8036d790: /* 8036D790 5405043E */ clrlwi r5, r0, 0x10 /* 8036D794 54000421 */ rlwinm. r0, r0, 0, 0x10, 0x10 /* 8036D798 4182FFF4 */ beq+ lbl_8036d78c /* 8036D79C A01F0000 */ lhz r0, 0(r31) /* 8036D7A0 A09D0000 */ lhz r4, 0(r29) /* 8036D7A4 60000004 */ ori r0, r0, 4 /* 8036D7A8 B01F0000 */ sth r0, 0(r31) /* 8036D7AC 380008AC */ li r0, 0x8ac /* 8036D7B0 B01F0000 */ sth r0, 0(r31) /* 8036D7B4 A01F0000 */ lhz r0, 0(r31) /* 8036D7B8 60000001 */ ori r0, r0, 1 /* 8036D7BC B01F0000 */ sth r0, 0(r31) lbl_8036d7c0: /* 8036D7C0 A01F0000 */ lhz r0, 0(r31) /* 8036D7C4 540007FF */ clrlwi. r0, r0, 0x1f /* 8036D7C8 4082FFF8 */ bne+ lbl_8036d7c0 /* 8036D7CC 4BFFFE4D */ bl func_8036d618 /* 8036D7D0 3883FF80 */ addi r4, r3, -0x80 /* 8036D7D4 3C608100 */ lis r3, 0x8100 /* 8036D7D8 38A00080 */ li r5, 0x80 /* 8036D7DC 4BCA0C41 */ bl func_8000e41c /* 8036D7E0 BB210014 */ lmw r25, 0x14(r1) /* 8036D7E4 80010034 */ lwz r0, 0x34(r1) /* 8036D7E8 38210030 */ addi r1, r1, 0x30 /* 8036D7EC 7C0803A6 */ mtlr r0 /* 8036D7F0 4E800020 */ blr .size func_8036d638, . - func_8036d638 .global func_8036d7f4 .type func_8036d7f4, @function func_8036d7f4: /* 8036D7F4 7C0802A6 */ mflr r0 /* 8036D7F8 3C60CC00 */ lis r3, 0xcc00 /* 8036D7FC 90010004 */ stw r0, 4(r1) /* 8036D800 38000804 */ li r0, 0x804 /* 8036D804 9421FFF0 */ stwu r1, -0x10(r1) /* 8036D808 93E1000C */ stw r31, 0xc(r1) /* 8036D80C 3BE35000 */ addi r31, r3, 0x5000 /* 8036D810 38635000 */ addi r3, r3, 0x5000 /* 8036D814 93C10008 */ stw r30, 8(r1) /* 8036D818 B01F000A */ sth r0, 0xa(r31) /* 8036D81C A0030036 */ lhz r0, 0x36(r3) /* 8036D820 5400045E */ rlwinm r0, r0, 0, 0x11, 0xf /* 8036D824 B0030036 */ sth r0, 0x36(r3) /* 8036D828 A41F000A */ lhzu r0, 0xa(r31) /* 8036D82C 48000008 */ b lbl_8036d834 lbl_8036d830: /* 8036D830 A01F0000 */ lhz r0, 0(r31) lbl_8036d834: /* 8036D834 5400056B */ rlwinm. r0, r0, 0, 0x15, 0x15 /* 8036D838 4082FFF8 */ bne+ lbl_8036d830 /* 8036D83C A01F0000 */ lhz r0, 0(r31) /* 8036D840 48000008 */ b lbl_8036d848 lbl_8036d844: /* 8036D844 A01F0000 */ lhz r0, 0(r31) lbl_8036d848: /* 8036D848 540005AD */ rlwinm. r0, r0, 0, 0x16, 0x16 /* 8036D84C 4082FFF8 */ bne+ lbl_8036d844 /* 8036D850 380008AC */ li r0, 0x8ac /* 8036D854 3C60CC00 */ lis r3, 0xcc00 /* 8036D858 B01F0000 */ sth r0, 0(r31) /* 8036D85C 38000000 */ li r0, 0x0 /* 8036D860 B0035000 */ sth r0, 0x5000(r3) /* 8036D864 38835000 */ addi r4, r3, 0x5000 lbl_8036d868: /* 8036D868 A0640004 */ lhz r3, 4(r4) /* 8036D86C A0040006 */ lhz r0, 6(r4) /* 8036D870 5060801E */ rlwimi r0, r3, 0x10, 0, 0xf /* 8036D874 54000001 */ rlwinm. r0, r0, 0, 0, 0 /* 8036D878 4082FFF0 */ bne+ lbl_8036d868 /* 8036D87C 48004F61 */ bl func_803727dc /* 8036D880 7C7E1B78 */ mr r30, r3 lbl_8036d884: /* 8036D884 48004F59 */ bl func_803727dc /* 8036D888 7C1E1850 */ subf r0, r30, r3 /* 8036D88C 2C00002C */ cmpwi r0, 0x2c /* 8036D890 4180FFF4 */ blt+ lbl_8036d884 /* 8036D894 A01F0000 */ lhz r0, 0(r31) /* 8036D898 60000001 */ ori r0, r0, 1 /* 8036D89C B01F0000 */ sth r0, 0(r31) /* 8036D8A0 A01F0000 */ lhz r0, 0(r31) /* 8036D8A4 48000008 */ b lbl_8036d8ac lbl_8036d8a8: /* 8036D8A8 A01F0000 */ lhz r0, 0(r31) lbl_8036d8ac: /* 8036D8AC 540007FF */ clrlwi. r0, r0, 0x1f /* 8036D8B0 4082FFF8 */ bne+ lbl_8036d8a8 /* 8036D8B4 80010014 */ lwz r0, 0x14(r1) /* 8036D8B8 83E1000C */ lwz r31, 0xc(r1) /* 8036D8BC 83C10008 */ lwz r30, 8(r1) /* 8036D8C0 38210010 */ addi r1, r1, 0x10 /* 8036D8C4 7C0803A6 */ mtlr r0 /* 8036D8C8 4E800020 */ blr .size func_8036d7f4, . - func_8036d7f4