.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global GetStepCurveValue__27$2unnamed$2lyt_animation_cpp$2FfPCQ44nw4r3lyt3res7StepKeyUl GetStepCurveValue__27$2unnamed$2lyt_animation_cpp$2FfPCQ44nw4r3lyt3res7StepKeyUl: /* 8038D73C 0038939C 28 04 00 01 */ cmplwi r4, 1 /* 8038D740 003893A0 41 82 00 14 */ beq lbl_8038D754 /* 8038D744 003893A4 C0 03 00 00 */ lfs f0, 0(r3) /* 8038D748 003893A8 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8038D74C 003893AC 4C 40 13 82 */ cror 2, 0, 2 /* 8038D750 003893B0 40 82 00 0C */ bne lbl_8038D75C lbl_8038D754: /* 8038D754 003893B4 A0 63 00 04 */ lhz r3, 4(r3) /* 8038D758 003893B8 4E 80 00 20 */ blr lbl_8038D75C: /* 8038D75C 003893BC 54 80 18 38 */ slwi r0, r4, 3 /* 8038D760 003893C0 7C A3 02 14 */ add r5, r3, r0 /* 8038D764 003893C4 C0 05 FF F8 */ lfs f0, -8(r5) /* 8038D768 003893C8 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8038D76C 003893CC 4C 41 13 82 */ cror 2, 1, 2 /* 8038D770 003893D0 40 82 00 0C */ bne lbl_8038D77C /* 8038D774 003893D4 A0 65 FF FC */ lhz r3, -4(r5) /* 8038D778 003893D8 4E 80 00 20 */ blr lbl_8038D77C: /* 8038D77C 003893DC 38 C4 FF FF */ addi r6, r4, -1 /* 8038D780 003893E0 38 A0 00 00 */ li r5, 0 /* 8038D784 003893E4 48 00 00 3C */ b lbl_8038D7C0 lbl_8038D788: /* 8038D788 003893E8 7C 85 32 14 */ add r4, r5, r6 /* 8038D78C 003893EC 54 80 0F FE */ srwi r0, r4, 0x1f /* 8038D790 003893F0 7C 80 22 14 */ add r4, r0, r4 /* 8038D794 003893F4 54 80 10 38 */ rlwinm r0, r4, 2, 0, 0x1c /* 8038D798 003893F8 7C 03 04 2E */ lfsx f0, r3, r0 /* 8038D79C 003893FC 7C 84 0E 70 */ srawi r4, r4, 1 /* 8038D7A0 00389400 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8038D7A4 00389404 7C 00 00 26 */ mfcr r0 /* 8038D7A8 00389408 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f /* 8038D7AC 0038940C 41 82 00 08 */ beq lbl_8038D7B4 /* 8038D7B0 00389410 7C 86 23 78 */ mr r6, r4 lbl_8038D7B4: /* 8038D7B4 00389414 2C 00 00 00 */ cmpwi r0, 0 /* 8038D7B8 00389418 40 82 00 08 */ bne lbl_8038D7C0 /* 8038D7BC 0038941C 7C 85 23 78 */ mr r5, r4 lbl_8038D7C0: /* 8038D7C0 00389420 38 06 FF FF */ addi r0, r6, -1 /* 8038D7C4 00389424 7C 05 00 00 */ cmpw r5, r0 /* 8038D7C8 00389428 41 82 00 0C */ beq lbl_8038D7D4 /* 8038D7CC 0038942C 7C 05 30 00 */ cmpw r5, r6 /* 8038D7D0 00389430 40 82 FF B8 */ bne lbl_8038D788 lbl_8038D7D4: /* 8038D7D4 00389434 54 C4 18 38 */ slwi r4, r6, 3 /* 8038D7D8 00389438 C0 02 A8 E0 */ lfs f0, lbl_80642EE0-_SDA2_BASE_(r2) /* 8038D7DC 0038943C 7C 43 24 2E */ lfsx f2, r3, r4 /* 8038D7E0 00389440 38 00 00 00 */ li r0, 0 /* 8038D7E4 00389444 EC 21 10 28 */ fsubs f1, f1, f2 /* 8038D7E8 00389448 FC 00 08 40 */ fcmpo cr0, f0, f1 /* 8038D7EC 0038944C 40 80 00 14 */ bge lbl_8038D800 /* 8038D7F0 00389450 C0 02 A8 E4 */ lfs f0, lbl_80642EE4-_SDA2_BASE_(r2) /* 8038D7F4 00389454 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8038D7F8 00389458 40 80 00 08 */ bge lbl_8038D800 /* 8038D7FC 0038945C 38 00 00 01 */ li r0, 1 lbl_8038D800: /* 8038D800 00389460 2C 00 00 00 */ cmpwi r0, 0 /* 8038D804 00389464 41 82 00 10 */ beq lbl_8038D814 /* 8038D808 00389468 7C 63 22 14 */ add r3, r3, r4 /* 8038D80C 0038946C A0 63 00 04 */ lhz r3, 4(r3) /* 8038D810 00389470 4E 80 00 20 */ blr lbl_8038D814: /* 8038D814 00389474 54 A0 18 38 */ slwi r0, r5, 3 /* 8038D818 00389478 7C 63 02 14 */ add r3, r3, r0 /* 8038D81C 0038947C A0 63 00 04 */ lhz r3, 4(r3) /* 8038D820 00389480 4E 80 00 20 */ blr .global GetHermiteCurveValue__27$2unnamed$2lyt_animation_cpp$2FfPCQ44nw4r3lyt3res10HermiteKeyUl GetHermiteCurveValue__27$2unnamed$2lyt_animation_cpp$2FfPCQ44nw4r3lyt3res10HermiteKeyUl: /* 8038D824 00389484 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8038D828 00389488 DB E1 00 10 */ stfd f31, 0x10(r1) /* 8038D82C 0038948C F3 E1 00 18 */ psq_st f31, 24(r1), 0, qr0 /* 8038D830 00389490 28 04 00 01 */ cmplwi r4, 1 /* 8038D834 00389494 41 82 00 14 */ beq lbl_8038D848 /* 8038D838 00389498 C0 03 00 00 */ lfs f0, 0(r3) /* 8038D83C 0038949C FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8038D840 003894A0 4C 40 13 82 */ cror 2, 0, 2 /* 8038D844 003894A4 40 82 00 0C */ bne lbl_8038D850 lbl_8038D848: /* 8038D848 003894A8 C0 23 00 04 */ lfs f1, 4(r3) /* 8038D84C 003894AC 48 00 01 84 */ b lbl_8038D9D0 lbl_8038D850: /* 8038D850 003894B0 1C 04 00 0C */ mulli r0, r4, 0xc /* 8038D854 003894B4 7C A3 02 14 */ add r5, r3, r0 /* 8038D858 003894B8 C0 05 FF F4 */ lfs f0, -0xc(r5) /* 8038D85C 003894BC FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8038D860 003894C0 4C 41 13 82 */ cror 2, 1, 2 /* 8038D864 003894C4 40 82 00 0C */ bne lbl_8038D870 /* 8038D868 003894C8 C0 25 FF F8 */ lfs f1, -8(r5) /* 8038D86C 003894CC 48 00 01 64 */ b lbl_8038D9D0 lbl_8038D870: /* 8038D870 003894D0 38 E4 FF FF */ addi r7, r4, -1 /* 8038D874 003894D4 38 C0 00 00 */ li r6, 0 /* 8038D878 003894D8 48 00 00 40 */ b lbl_8038D8B8 lbl_8038D87C: /* 8038D87C 003894DC 7C A6 3A 14 */ add r5, r6, r7 /* 8038D880 003894E0 54 A0 0F FE */ srwi r0, r5, 0x1f /* 8038D884 003894E4 7C 00 2A 14 */ add r0, r0, r5 /* 8038D888 003894E8 7C 05 0E 70 */ srawi r5, r0, 1 /* 8038D88C 003894EC 1C 05 00 0C */ mulli r0, r5, 0xc /* 8038D890 003894F0 7C 03 04 2E */ lfsx f0, r3, r0 /* 8038D894 003894F4 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8038D898 003894F8 4C 40 13 82 */ cror 2, 0, 2 /* 8038D89C 003894FC 7C 00 00 26 */ mfcr r0 /* 8038D8A0 00389500 54 00 1F FF */ rlwinm. r0, r0, 3, 0x1f, 0x1f /* 8038D8A4 00389504 41 82 00 08 */ beq lbl_8038D8AC /* 8038D8A8 00389508 7C A7 2B 78 */ mr r7, r5 lbl_8038D8AC: /* 8038D8AC 0038950C 2C 00 00 00 */ cmpwi r0, 0 /* 8038D8B0 00389510 40 82 00 08 */ bne lbl_8038D8B8 /* 8038D8B4 00389514 7C A6 2B 78 */ mr r6, r5 lbl_8038D8B8: /* 8038D8B8 00389518 38 07 FF FF */ addi r0, r7, -1 /* 8038D8BC 0038951C 7C 06 00 00 */ cmpw r6, r0 /* 8038D8C0 00389520 41 82 00 0C */ beq lbl_8038D8CC /* 8038D8C4 00389524 7C 06 38 00 */ cmpw r6, r7 /* 8038D8C8 00389528 40 82 FF B4 */ bne lbl_8038D87C lbl_8038D8CC: /* 8038D8CC 0038952C 1C A7 00 0C */ mulli r5, r7, 0xc /* 8038D8D0 00389530 C0 02 A8 E0 */ lfs f0, lbl_80642EE0-_SDA2_BASE_(r2) /* 8038D8D4 00389534 38 00 00 00 */ li r0, 0 /* 8038D8D8 00389538 7C 43 2C 2E */ lfsx f2, r3, r5 /* 8038D8DC 0038953C 7D 03 2A 14 */ add r8, r3, r5 /* 8038D8E0 00389540 1C A6 00 0C */ mulli r5, r6, 0xc /* 8038D8E4 00389544 EC 41 10 28 */ fsubs f2, f1, f2 /* 8038D8E8 00389548 7C A3 2A 14 */ add r5, r3, r5 /* 8038D8EC 0038954C FC 00 10 40 */ fcmpo cr0, f0, f2 /* 8038D8F0 00389550 40 80 00 14 */ bge lbl_8038D904 /* 8038D8F4 00389554 C0 02 A8 E4 */ lfs f0, lbl_80642EE4-_SDA2_BASE_(r2) /* 8038D8F8 00389558 FC 02 00 40 */ fcmpo cr0, f2, f0 /* 8038D8FC 0038955C 40 80 00 08 */ bge lbl_8038D904 /* 8038D900 00389560 38 00 00 01 */ li r0, 1 lbl_8038D904: /* 8038D904 00389564 2C 00 00 00 */ cmpwi r0, 0 /* 8038D908 00389568 41 82 00 3C */ beq lbl_8038D944 /* 8038D90C 0038956C 38 04 FF FF */ addi r0, r4, -1 /* 8038D910 00389570 7C 07 00 40 */ cmplw r7, r0 /* 8038D914 00389574 40 80 00 28 */ bge lbl_8038D93C /* 8038D918 00389578 38 07 00 01 */ addi r0, r7, 1 /* 8038D91C 0038957C C0 28 00 00 */ lfs f1, 0(r8) /* 8038D920 00389580 1C 00 00 0C */ mulli r0, r0, 0xc /* 8038D924 00389584 7C 03 04 2E */ lfsx f0, r3, r0 /* 8038D928 00389588 FC 01 00 00 */ fcmpu cr0, f1, f0 /* 8038D92C 0038958C 40 82 00 10 */ bne lbl_8038D93C /* 8038D930 00389590 7C 63 02 14 */ add r3, r3, r0 /* 8038D934 00389594 C0 23 00 04 */ lfs f1, 4(r3) /* 8038D938 00389598 48 00 00 98 */ b lbl_8038D9D0 lbl_8038D93C: /* 8038D93C 0038959C C0 28 00 04 */ lfs f1, 4(r8) /* 8038D940 003895A0 48 00 00 90 */ b lbl_8038D9D0 lbl_8038D944: /* 8038D944 003895A4 C0 45 00 00 */ lfs f2, 0(r5) /* 8038D948 003895A8 C0 08 00 00 */ lfs f0, 0(r8) /* 8038D94C 003895AC EC E1 10 28 */ fsubs f7, f1, f2 /* 8038D950 003895B0 C0 C2 A8 E8 */ lfs f6, lbl_80642EE8-_SDA2_BASE_(r2) /* 8038D954 003895B4 EC 00 10 28 */ fsubs f0, f0, f2 /* 8038D958 003895B8 C0 82 A8 EC */ lfs f4, lbl_80642EEC-_SDA2_BASE_(r2) /* 8038D95C 003895BC C0 22 A8 F0 */ lfs f1, lbl_80642EF0-_SDA2_BASE_(r2) /* 8038D960 003895C0 EC 47 01 F2 */ fmuls f2, f7, f7 /* 8038D964 003895C4 EC A6 00 24 */ fdivs f5, f6, f0 /* 8038D968 003895C8 C0 02 A8 F4 */ lfs f0, lbl_80642EF4-_SDA2_BASE_(r2) /* 8038D96C 003895CC C1 05 00 04 */ lfs f8, 4(r5) /* 8038D970 003895D0 C1 28 00 04 */ lfs f9, 4(r8) /* 8038D974 003895D4 C1 45 00 08 */ lfs f10, 8(r5) /* 8038D978 003895D8 C1 68 00 08 */ lfs f11, 8(r8) /* 8038D97C 003895DC ED 85 00 B2 */ fmuls f12, f5, f2 /* 8038D980 003895E0 EC 4C 01 72 */ fmuls f2, f12, f5 /* 8038D984 003895E4 EC 64 03 32 */ fmuls f3, f4, f12 /* 8038D988 003895E8 ED A7 00 B2 */ fmuls f13, f7, f2 /* 8038D98C 003895EC EC 41 00 B2 */ fmuls f2, f1, f2 /* 8038D990 003895F0 EF ED 01 72 */ fmuls f31, f13, f5 /* 8038D994 003895F4 EC 6D 18 28 */ fsubs f3, f13, f3 /* 8038D998 003895F8 EC AD 60 28 */ fsubs f5, f13, f12 /* 8038D99C 003895FC EC 24 07 F2 */ fmuls f1, f4, f31 /* 8038D9A0 00389600 EC 00 07 F2 */ fmuls f0, f0, f31 /* 8038D9A4 00389604 EC 67 18 2A */ fadds f3, f7, f3 /* 8038D9A8 00389608 EC 21 10 28 */ fsubs f1, f1, f2 /* 8038D9AC 0038960C EC 00 10 2A */ fadds f0, f0, f2 /* 8038D9B0 00389610 EC 4A 00 F2 */ fmuls f2, f10, f3 /* 8038D9B4 00389614 EC 26 08 2A */ fadds f1, f6, f1 /* 8038D9B8 00389618 EC 09 00 32 */ fmuls f0, f9, f0 /* 8038D9BC 0038961C EC 6B 01 72 */ fmuls f3, f11, f5 /* 8038D9C0 00389620 EC 28 00 72 */ fmuls f1, f8, f1 /* 8038D9C4 00389624 EC 01 00 2A */ fadds f0, f1, f0 /* 8038D9C8 00389628 EC 02 00 2A */ fadds f0, f2, f0 /* 8038D9CC 0038962C EC 23 00 2A */ fadds f1, f3, f0 lbl_8038D9D0: /* 8038D9D0 00389630 E3 E1 00 18 */ psq_l f31, 24(r1), 0, qr0 /* 8038D9D4 00389634 CB E1 00 10 */ lfd f31, 0x10(r1) /* 8038D9D8 00389638 38 21 00 20 */ addi r1, r1, 0x20 /* 8038D9DC 0038963C 4E 80 00 20 */ blr .global GetFrameSize__Q34nw4r3lyt13AnimTransformCFv GetFrameSize__Q34nw4r3lyt13AnimTransformCFv: /* 8038D9E0 00389640 80 63 00 0C */ lwz r3, 0xc(r3) /* 8038D9E4 00389644 A0 63 00 08 */ lhz r3, 8(r3) /* 8038D9E8 00389648 4E 80 00 20 */ blr .global __ct__Q34nw4r3lyt18AnimTransformBasicFv __ct__Q34nw4r3lyt18AnimTransformBasicFv: /* 8038D9EC 0038964C C0 02 A8 F8 */ lfs f0, lbl_80642EF8-_SDA2_BASE_(r2) /* 8038D9F0 00389650 3C 80 80 45 */ lis r4, lbl_8044E560@ha /* 8038D9F4 00389654 38 00 00 00 */ li r0, 0 /* 8038D9F8 00389658 38 84 E5 60 */ addi r4, r4, lbl_8044E560@l /* 8038D9FC 0038965C 90 03 00 04 */ stw r0, 4(r3) /* 8038DA00 00389660 90 03 00 08 */ stw r0, 8(r3) /* 8038DA04 00389664 90 03 00 0C */ stw r0, 0xc(r3) /* 8038DA08 00389668 D0 03 00 10 */ stfs f0, 0x10(r3) /* 8038DA0C 0038966C 90 83 00 00 */ stw r4, 0(r3) /* 8038DA10 00389670 90 03 00 14 */ stw r0, 0x14(r3) /* 8038DA14 00389674 90 03 00 18 */ stw r0, 0x18(r3) /* 8038DA18 00389678 B0 03 00 1C */ sth r0, 0x1c(r3) /* 8038DA1C 0038967C 4E 80 00 20 */ blr .global __dt__Q34nw4r3lyt18AnimTransformBasicFv __dt__Q34nw4r3lyt18AnimTransformBasicFv: /* 8038DA20 00389680 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8038DA24 00389684 7C 08 02 A6 */ mflr r0 /* 8038DA28 00389688 2C 03 00 00 */ cmpwi r3, 0 /* 8038DA2C 0038968C 90 01 00 14 */ stw r0, 0x14(r1) /* 8038DA30 00389690 93 E1 00 0C */ stw r31, 0xc(r1) /* 8038DA34 00389694 7C 9F 23 78 */ mr r31, r4 /* 8038DA38 00389698 93 C1 00 08 */ stw r30, 8(r1) /* 8038DA3C 0038969C 7C 7E 1B 78 */ mr r30, r3 /* 8038DA40 003896A0 41 82 00 48 */ beq lbl_8038DA88 /* 8038DA44 003896A4 80 83 00 18 */ lwz r4, 0x18(r3) /* 8038DA48 003896A8 3C A0 80 45 */ lis r5, lbl_8044E560@ha /* 8038DA4C 003896AC 38 A5 E5 60 */ addi r5, r5, lbl_8044E560@l /* 8038DA50 003896B0 2C 04 00 00 */ cmpwi r4, 0 /* 8038DA54 003896B4 90 A3 00 00 */ stw r5, 0(r3) /* 8038DA58 003896B8 41 82 00 0C */ beq lbl_8038DA64 /* 8038DA5C 003896BC 80 6D B2 B0 */ lwz r3, lbl_80640570-_SDA_BASE_(r13) /* 8038DA60 003896C0 4B F0 9C D5 */ bl MEMFreeToAllocator lbl_8038DA64: /* 8038DA64 003896C4 80 9E 00 14 */ lwz r4, 0x14(r30) /* 8038DA68 003896C8 2C 04 00 00 */ cmpwi r4, 0 /* 8038DA6C 003896CC 41 82 00 0C */ beq lbl_8038DA78 /* 8038DA70 003896D0 80 6D B2 B0 */ lwz r3, lbl_80640570-_SDA_BASE_(r13) /* 8038DA74 003896D4 4B F0 9C C1 */ bl MEMFreeToAllocator lbl_8038DA78: /* 8038DA78 003896D8 2C 1F 00 00 */ cmpwi r31, 0 /* 8038DA7C 003896DC 40 81 00 0C */ ble lbl_8038DA88 /* 8038DA80 003896E0 7F C3 F3 78 */ mr r3, r30 /* 8038DA84 003896E4 4B E4 D0 35 */ bl __dl__FPv lbl_8038DA88: /* 8038DA88 003896E8 7F C3 F3 78 */ mr r3, r30 /* 8038DA8C 003896EC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8038DA90 003896F0 83 C1 00 08 */ lwz r30, 8(r1) /* 8038DA94 003896F4 80 01 00 14 */ lwz r0, 0x14(r1) /* 8038DA98 003896F8 7C 08 03 A6 */ mtlr r0 /* 8038DA9C 003896FC 38 21 00 10 */ addi r1, r1, 0x10 /* 8038DAA0 00389700 4E 80 00 20 */ blr .global SetResource__Q34nw4r3lyt18AnimTransformBasicFPCQ44nw4r3lyt3res14AnimationBlockPQ34nw4r3lyt16ResourceAccessor SetResource__Q34nw4r3lyt18AnimTransformBasicFPCQ44nw4r3lyt3res14AnimationBlockPQ34nw4r3lyt16ResourceAccessor: /* 8038DAA4 00389704 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8038DAA8 00389708 7C 08 02 A6 */ mflr r0 /* 8038DAAC 0038970C 90 01 00 34 */ stw r0, 0x34(r1) /* 8038DAB0 00389710 39 61 00 30 */ addi r11, r1, 0x30 /* 8038DAB4 00389714 4B E3 96 69 */ bl _savegpr_24 /* 8038DAB8 00389718 A0 C4 00 0C */ lhz r6, 0xc(r4) /* 8038DABC 0038971C 38 00 00 00 */ li r0, 0 /* 8038DAC0 00389720 90 83 00 0C */ stw r4, 0xc(r3) /* 8038DAC4 00389724 7C 7E 1B 78 */ mr r30, r3 /* 8038DAC8 00389728 2C 06 00 00 */ cmpwi r6, 0 /* 8038DACC 0038972C 7C 9F 23 78 */ mr r31, r4 /* 8038DAD0 00389730 90 03 00 14 */ stw r0, 0x14(r3) /* 8038DAD4 00389734 7C B8 2B 78 */ mr r24, r5 /* 8038DAD8 00389738 41 82 00 80 */ beq lbl_8038DB58 /* 8038DADC 0038973C 80 6D B2 B0 */ lwz r3, lbl_80640570-_SDA_BASE_(r13) /* 8038DAE0 00389740 54 C4 13 BA */ rlwinm r4, r6, 2, 0xe, 0x1d /* 8038DAE4 00389744 4B F0 9C 41 */ bl MEMAllocFromAllocator /* 8038DAE8 00389748 2C 03 00 00 */ cmpwi r3, 0 /* 8038DAEC 0038974C 90 7E 00 14 */ stw r3, 0x14(r30) /* 8038DAF0 00389750 41 82 00 68 */ beq lbl_8038DB58 /* 8038DAF4 00389754 80 7E 00 0C */ lwz r3, 0xc(r30) /* 8038DAF8 00389758 3B 20 00 00 */ li r25, 0 /* 8038DAFC 0038975C 3B 40 00 00 */ li r26, 0 /* 8038DB00 00389760 3F A0 74 69 */ lis r29, 0x7469 /* 8038DB04 00389764 3B 83 00 14 */ addi r28, r3, 0x14 /* 8038DB08 00389768 7F 9B E3 78 */ mr r27, r28 /* 8038DB0C 0038976C 48 00 00 3C */ b lbl_8038DB48 lbl_8038DB10: /* 8038DB10 00389770 81 98 00 00 */ lwz r12, 0(r24) /* 8038DB14 00389774 7F 03 C3 78 */ mr r3, r24 /* 8038DB18 00389778 80 1B 00 00 */ lwz r0, 0(r27) /* 8038DB1C 0038977C 38 9D 6D 67 */ addi r4, r29, 0x6d67 /* 8038DB20 00389780 81 8C 00 0C */ lwz r12, 0xc(r12) /* 8038DB24 00389784 38 C0 00 00 */ li r6, 0 /* 8038DB28 00389788 7C BC 02 14 */ add r5, r28, r0 /* 8038DB2C 0038978C 7D 89 03 A6 */ mtctr r12 /* 8038DB30 00389790 4E 80 04 21 */ bctrl /* 8038DB34 00389794 80 9E 00 14 */ lwz r4, 0x14(r30) /* 8038DB38 00389798 3B 7B 00 04 */ addi r27, r27, 4 /* 8038DB3C 0038979C 3B 39 00 01 */ addi r25, r25, 1 /* 8038DB40 003897A0 7C 64 D1 2E */ stwx r3, r4, r26 /* 8038DB44 003897A4 3B 5A 00 04 */ addi r26, r26, 4 lbl_8038DB48: /* 8038DB48 003897A8 80 7E 00 0C */ lwz r3, 0xc(r30) /* 8038DB4C 003897AC A0 03 00 0C */ lhz r0, 0xc(r3) /* 8038DB50 003897B0 7C 19 00 00 */ cmpw r25, r0 /* 8038DB54 003897B4 41 80 FF BC */ blt lbl_8038DB10 lbl_8038DB58: /* 8038DB58 003897B8 A0 1F 00 0E */ lhz r0, 0xe(r31) /* 8038DB5C 003897BC 80 6D B2 B0 */ lwz r3, lbl_80640570-_SDA_BASE_(r13) /* 8038DB60 003897C0 54 04 20 36 */ slwi r4, r0, 4 /* 8038DB64 003897C4 4B F0 9B C1 */ bl MEMAllocFromAllocator /* 8038DB68 003897C8 2C 03 00 00 */ cmpwi r3, 0 /* 8038DB6C 003897CC 90 7E 00 18 */ stw r3, 0x18(r30) /* 8038DB70 003897D0 41 82 00 5C */ beq lbl_8038DBCC /* 8038DB74 003897D4 A0 1F 00 0E */ lhz r0, 0xe(r31) /* 8038DB78 003897D8 38 80 00 00 */ li r4, 0 /* 8038DB7C 003897DC B0 1E 00 1C */ sth r0, 0x1c(r30) /* 8038DB80 003897E0 54 05 20 36 */ slwi r5, r0, 4 /* 8038DB84 003897E4 4B C7 65 81 */ bl memset /* 8038DB88 003897E8 38 A0 00 00 */ li r5, 0 /* 8038DB8C 003897EC 38 80 00 00 */ li r4, 0 /* 8038DB90 003897F0 48 00 00 2C */ b lbl_8038DBBC lbl_8038DB94: /* 8038DB94 003897F4 80 7E 00 18 */ lwz r3, 0x18(r30) /* 8038DB98 003897F8 54 A0 23 36 */ rlwinm r0, r5, 4, 0xc, 0x1b /* 8038DB9C 003897FC 7C 63 02 15 */ add. r3, r3, r0 /* 8038DBA0 00389800 41 82 00 18 */ beq lbl_8038DBB8 /* 8038DBA4 00389804 90 83 00 00 */ stw r4, 0(r3) /* 8038DBA8 00389808 90 83 00 04 */ stw r4, 4(r3) /* 8038DBAC 0038980C 98 83 00 0E */ stb r4, 0xe(r3) /* 8038DBB0 00389810 90 83 00 08 */ stw r4, 8(r3) /* 8038DBB4 00389814 B0 83 00 0C */ sth r4, 0xc(r3) lbl_8038DBB8: /* 8038DBB8 00389818 38 A5 00 01 */ addi r5, r5, 1 lbl_8038DBBC: /* 8038DBBC 0038981C A0 1F 00 0E */ lhz r0, 0xe(r31) /* 8038DBC0 00389820 54 A3 04 3E */ clrlwi r3, r5, 0x10 /* 8038DBC4 00389824 7C 03 00 40 */ cmplw r3, r0 /* 8038DBC8 00389828 41 80 FF CC */ blt lbl_8038DB94 lbl_8038DBCC: /* 8038DBCC 0038982C 39 61 00 30 */ addi r11, r1, 0x30 /* 8038DBD0 00389830 4B E3 95 99 */ bl _restgpr_24 /* 8038DBD4 00389834 80 01 00 34 */ lwz r0, 0x34(r1) /* 8038DBD8 00389838 7C 08 03 A6 */ mtlr r0 /* 8038DBDC 0038983C 38 21 00 30 */ addi r1, r1, 0x30 /* 8038DBE0 00389840 4E 80 00 20 */ blr .global Bind__Q34nw4r3lyt18AnimTransformBasicFPQ34nw4r3lyt4Paneb Bind__Q34nw4r3lyt18AnimTransformBasicFPQ34nw4r3lyt4Paneb: /* 8038DBE4 00389844 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8038DBE8 00389848 7C 08 02 A6 */ mflr r0 /* 8038DBEC 0038984C 90 01 00 24 */ stw r0, 0x24(r1) /* 8038DBF0 00389850 39 61 00 20 */ addi r11, r1, 0x20 /* 8038DBF4 00389854 4B E3 95 35 */ bl _savegpr_27 /* 8038DBF8 00389858 80 C3 00 0C */ lwz r6, 0xc(r3) /* 8038DBFC 0038985C 7C 7B 1B 78 */ mr r27, r3 /* 8038DC00 00389860 7C 9C 23 78 */ mr r28, r4 /* 8038DC04 00389864 7C BD 2B 78 */ mr r29, r5 /* 8038DC08 00389868 80 06 00 10 */ lwz r0, 0x10(r6) /* 8038DC0C 0038986C 3B C0 00 00 */ li r30, 0 /* 8038DC10 00389870 7F E6 02 14 */ add r31, r6, r0 /* 8038DC14 00389874 48 00 00 A4 */ b lbl_8038DCB8 lbl_8038DC18: /* 8038DC18 00389878 57 C0 13 BA */ rlwinm r0, r30, 2, 0xe, 0x1d /* 8038DC1C 0038987C 7C 1F 00 2E */ lwzx r0, r31, r0 /* 8038DC20 00389880 7C 84 02 14 */ add r4, r4, r0 /* 8038DC24 00389884 88 04 00 15 */ lbz r0, 0x15(r4) /* 8038DC28 00389888 2C 00 00 00 */ cmpwi r0, 0 /* 8038DC2C 0038988C 40 82 00 48 */ bne lbl_8038DC74 /* 8038DC30 00389890 81 9C 00 00 */ lwz r12, 0(r28) /* 8038DC34 00389894 7F 83 E3 78 */ mr r3, r28 /* 8038DC38 00389898 7F A5 EB 78 */ mr r5, r29 /* 8038DC3C 0038989C 81 8C 00 3C */ lwz r12, 0x3c(r12) /* 8038DC40 003898A0 7D 89 03 A6 */ mtctr r12 /* 8038DC44 003898A4 4E 80 04 21 */ bctrl /* 8038DC48 003898A8 2C 03 00 00 */ cmpwi r3, 0 /* 8038DC4C 003898AC 41 82 00 68 */ beq lbl_8038DCB4 /* 8038DC50 003898B0 80 1B 00 18 */ lwz r0, 0x18(r27) /* 8038DC54 003898B4 57 C5 23 36 */ rlwinm r5, r30, 4, 0xc, 0x1b /* 8038DC58 003898B8 7C 80 2A 14 */ add r4, r0, r5 /* 8038DC5C 003898BC 93 64 00 08 */ stw r27, 8(r4) /* 8038DC60 003898C0 B3 C4 00 0C */ sth r30, 0xc(r4) /* 8038DC64 003898C4 80 1B 00 18 */ lwz r0, 0x18(r27) /* 8038DC68 003898C8 7C 80 2A 14 */ add r4, r0, r5 /* 8038DC6C 003898CC 4B FF 7E 49 */ bl AddAnimationLink__Q34nw4r3lyt4PaneFPQ34nw4r3lyt13AnimationLink /* 8038DC70 003898D0 48 00 00 44 */ b lbl_8038DCB4 lbl_8038DC74: /* 8038DC74 003898D4 81 9C 00 00 */ lwz r12, 0(r28) /* 8038DC78 003898D8 7F 83 E3 78 */ mr r3, r28 /* 8038DC7C 003898DC 7F A5 EB 78 */ mr r5, r29 /* 8038DC80 003898E0 81 8C 00 40 */ lwz r12, 0x40(r12) /* 8038DC84 003898E4 7D 89 03 A6 */ mtctr r12 /* 8038DC88 003898E8 4E 80 04 21 */ bctrl /* 8038DC8C 003898EC 2C 03 00 00 */ cmpwi r3, 0 /* 8038DC90 003898F0 41 82 00 24 */ beq lbl_8038DCB4 /* 8038DC94 003898F4 80 1B 00 18 */ lwz r0, 0x18(r27) /* 8038DC98 003898F8 57 C5 23 36 */ rlwinm r5, r30, 4, 0xc, 0x1b /* 8038DC9C 003898FC 7C 80 2A 14 */ add r4, r0, r5 /* 8038DCA0 00389900 93 64 00 08 */ stw r27, 8(r4) /* 8038DCA4 00389904 B3 C4 00 0C */ sth r30, 0xc(r4) /* 8038DCA8 00389908 80 1B 00 18 */ lwz r0, 0x18(r27) /* 8038DCAC 0038990C 7C 80 2A 14 */ add r4, r0, r5 /* 8038DCB0 00389910 4B FF F5 E1 */ bl AddAnimationLink__Q34nw4r3lyt8MaterialFPQ34nw4r3lyt13AnimationLink lbl_8038DCB4: /* 8038DCB4 00389914 3B DE 00 01 */ addi r30, r30, 1 lbl_8038DCB8: /* 8038DCB8 00389918 80 9B 00 0C */ lwz r4, 0xc(r27) /* 8038DCBC 0038991C 57 C3 04 3E */ clrlwi r3, r30, 0x10 /* 8038DCC0 00389920 A0 04 00 0E */ lhz r0, 0xe(r4) /* 8038DCC4 00389924 7C 03 00 40 */ cmplw r3, r0 /* 8038DCC8 00389928 41 80 FF 50 */ blt lbl_8038DC18 /* 8038DCCC 0038992C 39 61 00 20 */ addi r11, r1, 0x20 /* 8038DCD0 00389930 4B E3 94 A5 */ bl _restgpr_27 /* 8038DCD4 00389934 80 01 00 24 */ lwz r0, 0x24(r1) /* 8038DCD8 00389938 7C 08 03 A6 */ mtlr r0 /* 8038DCDC 0038993C 38 21 00 20 */ addi r1, r1, 0x20 /* 8038DCE0 00389940 4E 80 00 20 */ blr .global Bind__Q34nw4r3lyt18AnimTransformBasicFPQ34nw4r3lyt8Material Bind__Q34nw4r3lyt18AnimTransformBasicFPQ34nw4r3lyt8Material: /* 8038DCE4 00389944 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8038DCE8 00389948 7C 08 02 A6 */ mflr r0 /* 8038DCEC 0038994C 90 01 00 24 */ stw r0, 0x24(r1) /* 8038DCF0 00389950 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8038DCF4 00389954 93 C1 00 18 */ stw r30, 0x18(r1) /* 8038DCF8 00389958 3B C0 00 00 */ li r30, 0 /* 8038DCFC 0038995C 93 A1 00 14 */ stw r29, 0x14(r1) /* 8038DD00 00389960 7C 9D 23 78 */ mr r29, r4 /* 8038DD04 00389964 93 81 00 10 */ stw r28, 0x10(r1) /* 8038DD08 00389968 7C 7C 1B 78 */ mr r28, r3 /* 8038DD0C 0038996C 80 A3 00 0C */ lwz r5, 0xc(r3) /* 8038DD10 00389970 80 05 00 10 */ lwz r0, 0x10(r5) /* 8038DD14 00389974 7F E5 02 14 */ add r31, r5, r0 /* 8038DD18 00389978 48 00 00 58 */ b lbl_8038DD70 lbl_8038DD1C: /* 8038DD1C 0038997C 57 C0 13 BA */ rlwinm r0, r30, 2, 0xe, 0x1d /* 8038DD20 00389980 7C 1F 00 2E */ lwzx r0, r31, r0 /* 8038DD24 00389984 7C 84 02 14 */ add r4, r4, r0 /* 8038DD28 00389988 88 04 00 15 */ lbz r0, 0x15(r4) /* 8038DD2C 0038998C 28 00 00 01 */ cmplwi r0, 1 /* 8038DD30 00389990 40 82 00 3C */ bne lbl_8038DD6C /* 8038DD34 00389994 38 7D 00 44 */ addi r3, r29, 0x44 /* 8038DD38 00389998 38 A0 00 14 */ li r5, 0x14 /* 8038DD3C 0038999C 4B E4 08 2D */ bl strncmp /* 8038DD40 003899A0 2C 03 00 00 */ cmpwi r3, 0 /* 8038DD44 003899A4 40 82 00 28 */ bne lbl_8038DD6C /* 8038DD48 003899A8 80 1C 00 18 */ lwz r0, 0x18(r28) /* 8038DD4C 003899AC 57 C5 23 36 */ rlwinm r5, r30, 4, 0xc, 0x1b /* 8038DD50 003899B0 7F A3 EB 78 */ mr r3, r29 /* 8038DD54 003899B4 7C 80 2A 14 */ add r4, r0, r5 /* 8038DD58 003899B8 93 84 00 08 */ stw r28, 8(r4) /* 8038DD5C 003899BC B3 C4 00 0C */ sth r30, 0xc(r4) /* 8038DD60 003899C0 80 1C 00 18 */ lwz r0, 0x18(r28) /* 8038DD64 003899C4 7C 80 2A 14 */ add r4, r0, r5 /* 8038DD68 003899C8 4B FF F5 29 */ bl AddAnimationLink__Q34nw4r3lyt8MaterialFPQ34nw4r3lyt13AnimationLink lbl_8038DD6C: /* 8038DD6C 003899CC 3B DE 00 01 */ addi r30, r30, 1 lbl_8038DD70: /* 8038DD70 003899D0 80 9C 00 0C */ lwz r4, 0xc(r28) /* 8038DD74 003899D4 57 C3 04 3E */ clrlwi r3, r30, 0x10 /* 8038DD78 003899D8 A0 04 00 0E */ lhz r0, 0xe(r4) /* 8038DD7C 003899DC 7C 03 00 40 */ cmplw r3, r0 /* 8038DD80 003899E0 41 80 FF 9C */ blt lbl_8038DD1C /* 8038DD84 003899E4 80 01 00 24 */ lwz r0, 0x24(r1) /* 8038DD88 003899E8 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8038DD8C 003899EC 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8038DD90 003899F0 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8038DD94 003899F4 83 81 00 10 */ lwz r28, 0x10(r1) /* 8038DD98 003899F8 7C 08 03 A6 */ mtlr r0 /* 8038DD9C 003899FC 38 21 00 20 */ addi r1, r1, 0x20 /* 8038DDA0 00389A00 4E 80 00 20 */ blr .global Animate__Q34nw4r3lyt18AnimTransformBasicFUlPQ34nw4r3lyt4Pane Animate__Q34nw4r3lyt18AnimTransformBasicFUlPQ34nw4r3lyt4Pane: /* 8038DDA4 00389A04 94 21 FF A0 */ stwu r1, -0x60(r1) /* 8038DDA8 00389A08 7C 08 02 A6 */ mflr r0 /* 8038DDAC 00389A0C 90 01 00 64 */ stw r0, 0x64(r1) /* 8038DDB0 00389A10 DB E1 00 50 */ stfd f31, 0x50(r1) /* 8038DDB4 00389A14 F3 E1 00 58 */ psq_st f31, 88(r1), 0, qr0 /* 8038DDB8 00389A18 DB C1 00 40 */ stfd f30, 0x40(r1) /* 8038DDBC 00389A1C F3 C1 00 48 */ psq_st f30, 72(r1), 0, qr0 /* 8038DDC0 00389A20 39 61 00 40 */ addi r11, r1, 0x40 /* 8038DDC4 00389A24 4B E3 93 4D */ bl _savegpr_21 /* 8038DDC8 00389A28 80 C3 00 0C */ lwz r6, 0xc(r3) /* 8038DDCC 00389A2C 3F E0 52 4C */ lis r31, 0x524C5643@ha /* 8038DDD0 00389A30 54 84 10 3A */ slwi r4, r4, 2 /* 8038DDD4 00389A34 C3 E2 A8 FC */ lfs f31, lbl_80642EFC-_SDA2_BASE_(r2) /* 8038DDD8 00389A38 80 06 00 10 */ lwz r0, 0x10(r6) /* 8038DDDC 00389A3C 7C 76 1B 78 */ mr r22, r3 /* 8038DDE0 00389A40 7C B7 2B 78 */ mr r23, r5 /* 8038DDE4 00389A44 3B DF 56 43 */ addi r30, r31, 0x524C5643@l /* 8038DDE8 00389A48 7C 06 02 14 */ add r0, r6, r0 /* 8038DDEC 00389A4C 3B 00 00 00 */ li r24, 0 /* 8038DDF0 00389A50 7C 04 00 2E */ lwzx r0, r4, r0 /* 8038DDF4 00389A54 7F 86 02 14 */ add r28, r6, r0 /* 8038DDF8 00389A58 3B 5C 00 18 */ addi r26, r28, 0x18 /* 8038DDFC 00389A5C 48 00 01 60 */ b lbl_8038DF5C lbl_8038DE00: /* 8038DE00 00389A60 80 1A 00 00 */ lwz r0, 0(r26) /* 8038DE04 00389A64 7C 7C 00 2E */ lwzx r3, r28, r0 /* 8038DE08 00389A68 7F 7C 02 14 */ add r27, r28, r0 /* 8038DE0C 00389A6C 3B 3B 00 08 */ addi r25, r27, 8 /* 8038DE10 00389A70 7C 03 F0 00 */ cmpw r3, r30 /* 8038DE14 00389A74 41 82 00 D4 */ beq lbl_8038DEE8 /* 8038DE18 00389A78 40 80 00 14 */ bge lbl_8038DE2C /* 8038DE1C 00389A7C 38 1F 50 41 */ addi r0, r31, 0x5041 /* 8038DE20 00389A80 7C 03 00 00 */ cmpw r3, r0 /* 8038DE24 00389A84 41 82 00 18 */ beq lbl_8038DE3C /* 8038DE28 00389A88 48 00 01 2C */ b lbl_8038DF54 lbl_8038DE2C: /* 8038DE2C 00389A8C 38 1F 56 49 */ addi r0, r31, 0x5649 /* 8038DE30 00389A90 7C 03 00 00 */ cmpw r3, r0 /* 8038DE34 00389A94 41 82 00 58 */ beq lbl_8038DE8C /* 8038DE38 00389A98 48 00 01 1C */ b lbl_8038DF54 lbl_8038DE3C: /* 8038DE3C 00389A9C C3 D6 00 10 */ lfs f30, 0x10(r22) /* 8038DE40 00389AA0 3B A0 00 00 */ li r29, 0 /* 8038DE44 00389AA4 48 00 00 38 */ b lbl_8038DE7C lbl_8038DE48: /* 8038DE48 00389AA8 80 19 00 00 */ lwz r0, 0(r25) /* 8038DE4C 00389AAC FC 20 F0 90 */ fmr f1, f30 /* 8038DE50 00389AB0 7E BB 02 14 */ add r21, r27, r0 /* 8038DE54 00389AB4 80 15 00 08 */ lwz r0, 8(r21) /* 8038DE58 00389AB8 A0 95 00 04 */ lhz r4, 4(r21) /* 8038DE5C 00389ABC 7C 75 02 14 */ add r3, r21, r0 /* 8038DE60 00389AC0 4B FF F9 C5 */ bl GetHermiteCurveValue__27$2unnamed$2lyt_animation_cpp$2FfPCQ44nw4r3lyt3res10HermiteKeyUl /* 8038DE64 00389AC4 88 15 00 01 */ lbz r0, 1(r21) /* 8038DE68 00389AC8 3B 39 00 04 */ addi r25, r25, 4 /* 8038DE6C 00389ACC 3B BD 00 01 */ addi r29, r29, 1 /* 8038DE70 00389AD0 54 00 10 3A */ slwi r0, r0, 2 /* 8038DE74 00389AD4 7C 77 02 14 */ add r3, r23, r0 /* 8038DE78 00389AD8 D0 23 00 2C */ stfs f1, 0x2c(r3) lbl_8038DE7C: /* 8038DE7C 00389ADC 88 1B 00 04 */ lbz r0, 4(r27) /* 8038DE80 00389AE0 7C 1D 00 00 */ cmpw r29, r0 /* 8038DE84 00389AE4 41 80 FF C4 */ blt lbl_8038DE48 /* 8038DE88 00389AE8 48 00 00 CC */ b lbl_8038DF54 lbl_8038DE8C: /* 8038DE8C 00389AEC C3 D6 00 10 */ lfs f30, 0x10(r22) /* 8038DE90 00389AF0 3B A0 00 00 */ li r29, 0 /* 8038DE94 00389AF4 48 00 00 44 */ b lbl_8038DED8 lbl_8038DE98: /* 8038DE98 00389AF8 80 19 00 00 */ lwz r0, 0(r25) /* 8038DE9C 00389AFC FC 20 F0 90 */ fmr f1, f30 /* 8038DEA0 00389B00 7C 7B 02 14 */ add r3, r27, r0 /* 8038DEA4 00389B04 80 03 00 08 */ lwz r0, 8(r3) /* 8038DEA8 00389B08 A0 83 00 04 */ lhz r4, 4(r3) /* 8038DEAC 00389B0C 7C 63 02 14 */ add r3, r3, r0 /* 8038DEB0 00389B10 4B FF F8 8D */ bl GetStepCurveValue__27$2unnamed$2lyt_animation_cpp$2FfPCQ44nw4r3lyt3res7StepKeyUl /* 8038DEB4 00389B14 54 64 04 3E */ clrlwi r4, r3, 0x10 /* 8038DEB8 00389B18 88 17 00 B7 */ lbz r0, 0xb7(r23) /* 8038DEBC 00389B1C 7C 64 00 D0 */ neg r3, r4 /* 8038DEC0 00389B20 3B 39 00 04 */ addi r25, r25, 4 /* 8038DEC4 00389B24 7C 63 23 78 */ or r3, r3, r4 /* 8038DEC8 00389B28 54 00 06 3C */ rlwinm r0, r0, 0, 0x18, 0x1e /* 8038DECC 00389B2C 50 60 0F FE */ rlwimi r0, r3, 1, 0x1f, 0x1f /* 8038DED0 00389B30 3B BD 00 01 */ addi r29, r29, 1 /* 8038DED4 00389B34 98 17 00 B7 */ stb r0, 0xb7(r23) lbl_8038DED8: /* 8038DED8 00389B38 88 1B 00 04 */ lbz r0, 4(r27) /* 8038DEDC 00389B3C 7C 1D 00 00 */ cmpw r29, r0 /* 8038DEE0 00389B40 41 80 FF B8 */ blt lbl_8038DE98 /* 8038DEE4 00389B44 48 00 00 70 */ b lbl_8038DF54 lbl_8038DEE8: /* 8038DEE8 00389B48 88 1B 00 04 */ lbz r0, 4(r27) /* 8038DEEC 00389B4C 3B A0 00 00 */ li r29, 0 /* 8038DEF0 00389B50 C3 D6 00 10 */ lfs f30, 0x10(r22) /* 8038DEF4 00389B54 2C 00 00 00 */ cmpwi r0, 0 /* 8038DEF8 00389B58 40 81 00 5C */ ble lbl_8038DF54 /* 8038DEFC 00389B5C 48 00 00 4C */ b lbl_8038DF48 lbl_8038DF00: /* 8038DF00 00389B60 80 19 00 00 */ lwz r0, 0(r25) /* 8038DF04 00389B64 FC 20 F0 90 */ fmr f1, f30 /* 8038DF08 00389B68 7E BB 02 14 */ add r21, r27, r0 /* 8038DF0C 00389B6C 80 15 00 08 */ lwz r0, 8(r21) /* 8038DF10 00389B70 A0 95 00 04 */ lhz r4, 4(r21) /* 8038DF14 00389B74 7C 75 02 14 */ add r3, r21, r0 /* 8038DF18 00389B78 4B FF F9 0D */ bl GetHermiteCurveValue__27$2unnamed$2lyt_animation_cpp$2FfPCQ44nw4r3lyt3res10HermiteKeyUl /* 8038DF1C 00389B7C EC 01 F8 2A */ fadds f0, f1, f31 /* 8038DF20 00389B80 F0 01 A0 08 */ psq_st f0, 8(r1), 1, qr2 /* 8038DF24 00389B84 7E E3 BB 78 */ mr r3, r23 /* 8038DF28 00389B88 81 97 00 00 */ lwz r12, 0(r23) /* 8038DF2C 00389B8C 88 A1 00 08 */ lbz r5, 8(r1) /* 8038DF30 00389B90 81 8C 00 30 */ lwz r12, 0x30(r12) /* 8038DF34 00389B94 88 95 00 01 */ lbz r4, 1(r21) /* 8038DF38 00389B98 7D 89 03 A6 */ mtctr r12 /* 8038DF3C 00389B9C 4E 80 04 21 */ bctrl /* 8038DF40 00389BA0 3B 39 00 04 */ addi r25, r25, 4 /* 8038DF44 00389BA4 3B BD 00 01 */ addi r29, r29, 1 lbl_8038DF48: /* 8038DF48 00389BA8 88 1B 00 04 */ lbz r0, 4(r27) /* 8038DF4C 00389BAC 7C 1D 00 00 */ cmpw r29, r0 /* 8038DF50 00389BB0 41 80 FF B0 */ blt lbl_8038DF00 lbl_8038DF54: /* 8038DF54 00389BB4 3B 5A 00 04 */ addi r26, r26, 4 /* 8038DF58 00389BB8 3B 18 00 01 */ addi r24, r24, 1 lbl_8038DF5C: /* 8038DF5C 00389BBC 88 1C 00 14 */ lbz r0, 0x14(r28) /* 8038DF60 00389BC0 7C 18 00 00 */ cmpw r24, r0 /* 8038DF64 00389BC4 41 80 FE 9C */ blt lbl_8038DE00 /* 8038DF68 00389BC8 E3 E1 00 58 */ psq_l f31, 88(r1), 0, qr0 /* 8038DF6C 00389BCC CB E1 00 50 */ lfd f31, 0x50(r1) /* 8038DF70 00389BD0 E3 C1 00 48 */ psq_l f30, 72(r1), 0, qr0 /* 8038DF74 00389BD4 39 61 00 40 */ addi r11, r1, 0x40 /* 8038DF78 00389BD8 CB C1 00 40 */ lfd f30, 0x40(r1) /* 8038DF7C 00389BDC 4B E3 91 E1 */ bl _restgpr_21 /* 8038DF80 00389BE0 80 01 00 64 */ lwz r0, 0x64(r1) /* 8038DF84 00389BE4 7C 08 03 A6 */ mtlr r0 /* 8038DF88 00389BE8 38 21 00 60 */ addi r1, r1, 0x60 /* 8038DF8C 00389BEC 4E 80 00 20 */ blr .global Animate__Q34nw4r3lyt18AnimTransformBasicFUlPQ34nw4r3lyt8Material Animate__Q34nw4r3lyt18AnimTransformBasicFUlPQ34nw4r3lyt8Material: /* 8038DF90 00389BF0 94 21 FF 70 */ stwu r1, -0x90(r1) /* 8038DF94 00389BF4 7C 08 02 A6 */ mflr r0 /* 8038DF98 00389BF8 90 01 00 94 */ stw r0, 0x94(r1) /* 8038DF9C 00389BFC DB E1 00 80 */ stfd f31, 0x80(r1) /* 8038DFA0 00389C00 F3 E1 00 88 */ psq_st f31, 136(r1), 0, qr0 /* 8038DFA4 00389C04 DB C1 00 70 */ stfd f30, 0x70(r1) /* 8038DFA8 00389C08 F3 C1 00 78 */ psq_st f30, 120(r1), 0, qr0 /* 8038DFAC 00389C0C DB A1 00 60 */ stfd f29, 0x60(r1) /* 8038DFB0 00389C10 F3 A1 00 68 */ psq_st f29, 104(r1), 0, qr0 /* 8038DFB4 00389C14 39 61 00 60 */ addi r11, r1, 0x60 /* 8038DFB8 00389C18 4B E3 91 55 */ bl _savegpr_20 /* 8038DFBC 00389C1C 80 C3 00 0C */ lwz r6, 0xc(r3) /* 8038DFC0 00389C20 3F E0 52 4C */ lis r31, 0x524C5450@ha /* 8038DFC4 00389C24 54 84 10 3A */ slwi r4, r4, 2 /* 8038DFC8 00389C28 C3 C2 A8 FC */ lfs f30, lbl_80642EFC-_SDA2_BASE_(r2) /* 8038DFCC 00389C2C 80 06 00 10 */ lwz r0, 0x10(r6) /* 8038DFD0 00389C30 7C 74 1B 78 */ mr r20, r3 /* 8038DFD4 00389C34 7C B5 2B 78 */ mr r21, r5 /* 8038DFD8 00389C38 3B DF 54 50 */ addi r30, r31, 0x524C5450@l /* 8038DFDC 00389C3C 7C 06 02 14 */ add r0, r6, r0 /* 8038DFE0 00389C40 3A C0 00 00 */ li r22, 0 /* 8038DFE4 00389C44 7C 04 00 2E */ lwzx r0, r4, r0 /* 8038DFE8 00389C48 7F 86 02 14 */ add r28, r6, r0 /* 8038DFEC 00389C4C 3B 3C 00 18 */ addi r25, r28, 0x18 /* 8038DFF0 00389C50 48 00 02 80 */ b lbl_8038E270 lbl_8038DFF4: /* 8038DFF4 00389C54 80 19 00 00 */ lwz r0, 0(r25) /* 8038DFF8 00389C58 7C 7C 00 2E */ lwzx r3, r28, r0 /* 8038DFFC 00389C5C 7F 7C 02 14 */ add r27, r28, r0 /* 8038E000 00389C60 3B 1B 00 08 */ addi r24, r27, 8 /* 8038E004 00389C64 7C 03 F0 00 */ cmpw r3, r30 /* 8038E008 00389C68 41 82 01 3C */ beq lbl_8038E144 /* 8038E00C 00389C6C 40 80 00 24 */ bge lbl_8038E030 /* 8038E010 00389C70 38 1F 4D 43 */ addi r0, r31, 0x4d43 /* 8038E014 00389C74 7C 03 00 00 */ cmpw r3, r0 /* 8038E018 00389C78 41 82 00 28 */ beq lbl_8038E040 /* 8038E01C 00389C7C 40 80 02 4C */ bge lbl_8038E268 /* 8038E020 00389C80 38 1F 49 4D */ addi r0, r31, 0x494d /* 8038E024 00389C84 7C 03 00 00 */ cmpw r3, r0 /* 8038E028 00389C88 41 82 01 CC */ beq lbl_8038E1F4 /* 8038E02C 00389C8C 48 00 02 3C */ b lbl_8038E268 lbl_8038E030: /* 8038E030 00389C90 38 1F 54 53 */ addi r0, r31, 0x5453 /* 8038E034 00389C94 7C 03 00 00 */ cmpw r3, r0 /* 8038E038 00389C98 41 82 00 94 */ beq lbl_8038E0CC /* 8038E03C 00389C9C 48 00 02 2C */ b lbl_8038E268 lbl_8038E040: /* 8038E040 00389CA0 88 1B 00 04 */ lbz r0, 4(r27) /* 8038E044 00389CA4 3A E0 00 00 */ li r23, 0 /* 8038E048 00389CA8 C3 F4 00 10 */ lfs f31, 0x10(r20) /* 8038E04C 00389CAC 2C 00 00 00 */ cmpwi r0, 0 /* 8038E050 00389CB0 40 81 02 18 */ ble lbl_8038E268 /* 8038E054 00389CB4 48 00 00 68 */ b lbl_8038E0BC lbl_8038E058: /* 8038E058 00389CB8 80 18 00 00 */ lwz r0, 0(r24) /* 8038E05C 00389CBC FC 20 F8 90 */ fmr f1, f31 /* 8038E060 00389CC0 7F 5B 02 14 */ add r26, r27, r0 /* 8038E064 00389CC4 80 1A 00 08 */ lwz r0, 8(r26) /* 8038E068 00389CC8 A0 9A 00 04 */ lhz r4, 4(r26) /* 8038E06C 00389CCC 7C 7A 02 14 */ add r3, r26, r0 /* 8038E070 00389CD0 4B FF F7 B5 */ bl GetHermiteCurveValue__27$2unnamed$2lyt_animation_cpp$2FfPCQ44nw4r3lyt3res10HermiteKeyUl /* 8038E074 00389CD4 EC 01 F0 2A */ fadds f0, f1, f30 /* 8038E078 00389CD8 F0 01 D0 08 */ psq_st f0, 8(r1), 1, qr5 /* 8038E07C 00389CDC 38 C0 FC 00 */ li r6, -1024 /* 8038E080 00389CE0 A8 01 00 08 */ lha r0, 8(r1) /* 8038E084 00389CE4 2C 00 FC 00 */ cmpwi r0, -1024 /* 8038E088 00389CE8 41 80 00 08 */ blt lbl_8038E090 /* 8038E08C 00389CEC 7C 06 03 78 */ mr r6, r0 lbl_8038E090: /* 8038E090 00389CF0 7C C0 07 34 */ extsh r0, r6 /* 8038E094 00389CF4 88 9A 00 01 */ lbz r4, 1(r26) /* 8038E098 00389CF8 2C 00 03 FF */ cmpwi r0, 0x3ff /* 8038E09C 00389CFC 7E A3 AB 78 */ mr r3, r21 /* 8038E0A0 00389D00 38 A0 03 FF */ li r5, 0x3ff /* 8038E0A4 00389D04 41 81 00 08 */ bgt lbl_8038E0AC /* 8038E0A8 00389D08 7C C5 33 78 */ mr r5, r6 lbl_8038E0AC: /* 8038E0AC 00389D0C 7C A5 07 34 */ extsh r5, r5 /* 8038E0B0 00389D10 4B FF E0 39 */ bl SetColorElement__Q34nw4r3lyt8MaterialFUls /* 8038E0B4 00389D14 3B 18 00 04 */ addi r24, r24, 4 /* 8038E0B8 00389D18 3A F7 00 01 */ addi r23, r23, 1 lbl_8038E0BC: /* 8038E0BC 00389D1C 88 1B 00 04 */ lbz r0, 4(r27) /* 8038E0C0 00389D20 7C 17 00 00 */ cmpw r23, r0 /* 8038E0C4 00389D24 41 80 FF 94 */ blt lbl_8038E058 /* 8038E0C8 00389D28 48 00 01 A0 */ b lbl_8038E268 lbl_8038E0CC: /* 8038E0CC 00389D2C C3 B4 00 10 */ lfs f29, 0x10(r20) /* 8038E0D0 00389D30 3B A0 00 00 */ li r29, 0 /* 8038E0D4 00389D34 48 00 00 60 */ b lbl_8038E134 lbl_8038E0D8: /* 8038E0D8 00389D38 80 78 00 00 */ lwz r3, 0(r24) /* 8038E0DC 00389D3C 80 15 00 38 */ lwz r0, 0x38(r21) /* 8038E0E0 00389D40 7F 5B 1A 14 */ add r26, r27, r3 /* 8038E0E4 00389D44 7C 7B 18 AE */ lbzx r3, r27, r3 /* 8038E0E8 00389D48 54 00 47 3E */ rlwinm r0, r0, 8, 0x1c, 0x1f /* 8038E0EC 00389D4C 7C 03 00 40 */ cmplw r3, r0 /* 8038E0F0 00389D50 40 80 00 3C */ bge lbl_8038E12C /* 8038E0F4 00389D54 80 1A 00 08 */ lwz r0, 8(r26) /* 8038E0F8 00389D58 FC 20 E8 90 */ fmr f1, f29 /* 8038E0FC 00389D5C A0 9A 00 04 */ lhz r4, 4(r26) /* 8038E100 00389D60 7C 7A 02 14 */ add r3, r26, r0 /* 8038E104 00389D64 4B FF F7 21 */ bl GetHermiteCurveValue__27$2unnamed$2lyt_animation_cpp$2FfPCQ44nw4r3lyt3res10HermiteKeyUl /* 8038E108 00389D68 FF E0 08 90 */ fmr f31, f1 /* 8038E10C 00389D6C 8A FA 00 01 */ lbz r23, 1(r26) /* 8038E110 00389D70 8B 5A 00 00 */ lbz r26, 0(r26) /* 8038E114 00389D74 7E A3 AB 78 */ mr r3, r21 /* 8038E118 00389D78 4B FF DE 21 */ bl GetTexSRTAry__Q34nw4r3lyt8MaterialFv /* 8038E11C 00389D7C 1C 9A 00 14 */ mulli r4, r26, 0x14 /* 8038E120 00389D80 56 E0 10 3A */ slwi r0, r23, 2 /* 8038E124 00389D84 7C 63 22 14 */ add r3, r3, r4 /* 8038E128 00389D88 7F E3 05 2E */ stfsx f31, r3, r0 lbl_8038E12C: /* 8038E12C 00389D8C 3B 18 00 04 */ addi r24, r24, 4 /* 8038E130 00389D90 3B BD 00 01 */ addi r29, r29, 1 lbl_8038E134: /* 8038E134 00389D94 88 1B 00 04 */ lbz r0, 4(r27) /* 8038E138 00389D98 7C 1D 00 00 */ cmpw r29, r0 /* 8038E13C 00389D9C 41 80 FF 9C */ blt lbl_8038E0D8 /* 8038E140 00389DA0 48 00 01 28 */ b lbl_8038E268 lbl_8038E144: /* 8038E144 00389DA4 82 F4 00 14 */ lwz r23, 0x14(r20) /* 8038E148 00389DA8 2C 17 00 00 */ cmpwi r23, 0 /* 8038E14C 00389DAC 41 82 01 1C */ beq lbl_8038E268 /* 8038E150 00389DB0 C3 B4 00 10 */ lfs f29, 0x10(r20) /* 8038E154 00389DB4 3B A0 00 00 */ li r29, 0 /* 8038E158 00389DB8 48 00 00 8C */ b lbl_8038E1E4 lbl_8038E15C: /* 8038E15C 00389DBC 80 78 00 00 */ lwz r3, 0(r24) /* 8038E160 00389DC0 80 15 00 3C */ lwz r0, 0x3c(r21) /* 8038E164 00389DC4 7F 5B 1A 14 */ add r26, r27, r3 /* 8038E168 00389DC8 7C 7B 18 AE */ lbzx r3, r27, r3 /* 8038E16C 00389DCC 54 00 27 3E */ srwi r0, r0, 0x1c /* 8038E170 00389DD0 7C 03 00 40 */ cmplw r3, r0 /* 8038E174 00389DD4 40 80 00 68 */ bge lbl_8038E1DC /* 8038E178 00389DD8 88 1A 00 01 */ lbz r0, 1(r26) /* 8038E17C 00389DDC 2C 00 00 00 */ cmpwi r0, 0 /* 8038E180 00389DE0 40 82 00 5C */ bne lbl_8038E1DC /* 8038E184 00389DE4 80 1A 00 08 */ lwz r0, 8(r26) /* 8038E188 00389DE8 FC 20 E8 90 */ fmr f1, f29 /* 8038E18C 00389DEC A0 9A 00 04 */ lhz r4, 4(r26) /* 8038E190 00389DF0 7C 7A 02 14 */ add r3, r26, r0 /* 8038E194 00389DF4 4B FF F5 A9 */ bl GetStepCurveValue__27$2unnamed$2lyt_animation_cpp$2FfPCQ44nw4r3lyt3res7StepKeyUl /* 8038E198 00389DF8 7C 60 1B 78 */ mr r0, r3 /* 8038E19C 00389DFC 38 61 00 0C */ addi r3, r1, 0xc /* 8038E1A0 00389E00 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d /* 8038E1A4 00389E04 38 A0 00 00 */ li r5, 0 /* 8038E1A8 00389E08 7C 97 00 2E */ lwzx r4, r23, r0 /* 8038E1AC 00389E0C 4B FF F2 E5 */ bl Set__Q34nw4r3lyt6TexMapFP10TPLPaletteUl /* 8038E1B0 00389E10 80 01 00 24 */ lwz r0, 0x24(r1) /* 8038E1B4 00389E14 7E A3 AB 78 */ mr r3, r21 /* 8038E1B8 00389E18 54 00 04 1C */ rlwinm r0, r0, 0, 0x10, 0xe /* 8038E1BC 00389E1C 54 00 04 E0 */ rlwinm r0, r0, 0, 0x13, 0x10 /* 8038E1C0 00389E20 90 01 00 24 */ stw r0, 0x24(r1) /* 8038E1C4 00389E24 8B 5A 00 00 */ lbz r26, 0(r26) /* 8038E1C8 00389E28 4B FF DD 69 */ bl GetTexMapAry__Q34nw4r3lyt8MaterialFv /* 8038E1CC 00389E2C 1C 1A 00 1C */ mulli r0, r26, 0x1c /* 8038E1D0 00389E30 38 81 00 0C */ addi r4, r1, 0xc /* 8038E1D4 00389E34 7C 63 02 14 */ add r3, r3, r0 /* 8038E1D8 00389E38 4B FF F3 49 */ bl SetNoWrap__Q34nw4r3lyt6TexMapFRCQ34nw4r3lyt6TexMap lbl_8038E1DC: /* 8038E1DC 00389E3C 3B 18 00 04 */ addi r24, r24, 4 /* 8038E1E0 00389E40 3B BD 00 01 */ addi r29, r29, 1 lbl_8038E1E4: /* 8038E1E4 00389E44 88 1B 00 04 */ lbz r0, 4(r27) /* 8038E1E8 00389E48 7C 1D 00 00 */ cmpw r29, r0 /* 8038E1EC 00389E4C 41 80 FF 70 */ blt lbl_8038E15C /* 8038E1F0 00389E50 48 00 00 78 */ b lbl_8038E268 lbl_8038E1F4: /* 8038E1F4 00389E54 C3 B4 00 10 */ lfs f29, 0x10(r20) /* 8038E1F8 00389E58 3B A0 00 00 */ li r29, 0 /* 8038E1FC 00389E5C 48 00 00 60 */ b lbl_8038E25C lbl_8038E200: /* 8038E200 00389E60 80 78 00 00 */ lwz r3, 0(r24) /* 8038E204 00389E64 80 15 00 38 */ lwz r0, 0x38(r21) /* 8038E208 00389E68 7F 5B 1A 14 */ add r26, r27, r3 /* 8038E20C 00389E6C 7C 7B 18 AE */ lbzx r3, r27, r3 /* 8038E210 00389E70 54 00 77 BE */ rlwinm r0, r0, 0xe, 0x1e, 0x1f /* 8038E214 00389E74 7C 03 00 40 */ cmplw r3, r0 /* 8038E218 00389E78 40 80 00 3C */ bge lbl_8038E254 /* 8038E21C 00389E7C 80 1A 00 08 */ lwz r0, 8(r26) /* 8038E220 00389E80 FC 20 E8 90 */ fmr f1, f29 /* 8038E224 00389E84 A0 9A 00 04 */ lhz r4, 4(r26) /* 8038E228 00389E88 7C 7A 02 14 */ add r3, r26, r0 /* 8038E22C 00389E8C 4B FF F5 F9 */ bl GetHermiteCurveValue__27$2unnamed$2lyt_animation_cpp$2FfPCQ44nw4r3lyt3res10HermiteKeyUl /* 8038E230 00389E90 FF E0 08 90 */ fmr f31, f1 /* 8038E234 00389E94 8A FA 00 01 */ lbz r23, 1(r26) /* 8038E238 00389E98 8B 5A 00 00 */ lbz r26, 0(r26) /* 8038E23C 00389E9C 7E A3 AB 78 */ mr r3, r21 /* 8038E240 00389EA0 4B FF DD 35 */ bl GetIndTexSRTAry__Q34nw4r3lyt8MaterialFv /* 8038E244 00389EA4 1C 9A 00 14 */ mulli r4, r26, 0x14 /* 8038E248 00389EA8 56 E0 10 3A */ slwi r0, r23, 2 /* 8038E24C 00389EAC 7C 63 22 14 */ add r3, r3, r4 /* 8038E250 00389EB0 7F E3 05 2E */ stfsx f31, r3, r0 lbl_8038E254: /* 8038E254 00389EB4 3B 18 00 04 */ addi r24, r24, 4 /* 8038E258 00389EB8 3B BD 00 01 */ addi r29, r29, 1 lbl_8038E25C: /* 8038E25C 00389EBC 88 1B 00 04 */ lbz r0, 4(r27) /* 8038E260 00389EC0 7C 1D 00 00 */ cmpw r29, r0 /* 8038E264 00389EC4 41 80 FF 9C */ blt lbl_8038E200 lbl_8038E268: /* 8038E268 00389EC8 3B 39 00 04 */ addi r25, r25, 4 /* 8038E26C 00389ECC 3A D6 00 01 */ addi r22, r22, 1 lbl_8038E270: /* 8038E270 00389ED0 88 1C 00 14 */ lbz r0, 0x14(r28) /* 8038E274 00389ED4 7C 16 00 00 */ cmpw r22, r0 /* 8038E278 00389ED8 41 80 FD 7C */ blt lbl_8038DFF4 /* 8038E27C 00389EDC E3 E1 00 88 */ psq_l f31, 136(r1), 0, qr0 /* 8038E280 00389EE0 CB E1 00 80 */ lfd f31, 0x80(r1) /* 8038E284 00389EE4 E3 C1 00 78 */ psq_l f30, 120(r1), 0, qr0 /* 8038E288 00389EE8 CB C1 00 70 */ lfd f30, 0x70(r1) /* 8038E28C 00389EEC E3 A1 00 68 */ psq_l f29, 104(r1), 0, qr0 /* 8038E290 00389EF0 39 61 00 60 */ addi r11, r1, 0x60 /* 8038E294 00389EF4 CB A1 00 60 */ lfd f29, 0x60(r1) /* 8038E298 00389EF8 4B E3 8E C1 */ bl _restgpr_20 /* 8038E29C 00389EFC 80 01 00 94 */ lwz r0, 0x94(r1) /* 8038E2A0 00389F00 7C 08 03 A6 */ mtlr r0 /* 8038E2A4 00389F04 38 21 00 90 */ addi r1, r1, 0x90 /* 8038E2A8 00389F08 4E 80 00 20 */ blr .global FindAnimationLink__Q34nw4r3lyt6detailFPQ34nw4r2ut38LinkList$0Q34nw4r3lyt13AnimationLink$40$1PQ34nw4r3lyt13AnimTransform FindAnimationLink__Q34nw4r3lyt6detailFPQ34nw4r2ut38LinkList$0Q34nw4r3lyt13AnimationLink$40$1PQ34nw4r3lyt13AnimTransform: /* 8038E2AC 00389F0C 80 A3 00 04 */ lwz r5, 4(r3) /* 8038E2B0 00389F10 38 03 00 04 */ addi r0, r3, 4 /* 8038E2B4 00389F14 48 00 00 1C */ b lbl_8038E2D0 lbl_8038E2B8: /* 8038E2B8 00389F18 80 65 00 08 */ lwz r3, 8(r5) /* 8038E2BC 00389F1C 7C 04 18 40 */ cmplw r4, r3 /* 8038E2C0 00389F20 40 82 00 0C */ bne lbl_8038E2CC /* 8038E2C4 00389F24 7C A3 2B 78 */ mr r3, r5 /* 8038E2C8 00389F28 4E 80 00 20 */ blr lbl_8038E2CC: /* 8038E2CC 00389F2C 80 A5 00 00 */ lwz r5, 0(r5) lbl_8038E2D0: /* 8038E2D0 00389F30 7C 05 00 40 */ cmplw r5, r0 /* 8038E2D4 00389F34 40 82 FF E4 */ bne lbl_8038E2B8 /* 8038E2D8 00389F38 38 60 00 00 */ li r3, 0 /* 8038E2DC 00389F3C 4E 80 00 20 */ blr