.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global __ct__Q44nw4r3snd6detail4BankFPCv __ct__Q44nw4r3snd6detail4BankFPCv: /* 8036C854 003684B4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8036C858 003684B8 7C 08 02 A6 */ mflr r0 /* 8036C85C 003684BC 90 01 00 14 */ stw r0, 0x14(r1) /* 8036C860 003684C0 93 E1 00 0C */ stw r31, 0xc(r1) /* 8036C864 003684C4 7C 7F 1B 78 */ mr r31, r3 /* 8036C868 003684C8 48 00 02 15 */ bl __ct__Q44nw4r3snd6detail14BankFileReaderFPCv /* 8036C86C 003684CC 38 00 00 00 */ li r0, 0 /* 8036C870 003684D0 7F E3 FB 78 */ mr r3, r31 /* 8036C874 003684D4 90 1F 00 0C */ stw r0, 0xc(r31) /* 8036C878 003684D8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8036C87C 003684DC 80 01 00 14 */ lwz r0, 0x14(r1) /* 8036C880 003684E0 7C 08 03 A6 */ mtlr r0 /* 8036C884 003684E4 38 21 00 10 */ addi r1, r1, 0x10 /* 8036C888 003684E8 4E 80 00 20 */ blr .global __dt__Q44nw4r3snd6detail4BankFv __dt__Q44nw4r3snd6detail4BankFv: /* 8036C88C 003684EC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8036C890 003684F0 7C 08 02 A6 */ mflr r0 /* 8036C894 003684F4 2C 03 00 00 */ cmpwi r3, 0 /* 8036C898 003684F8 90 01 00 14 */ stw r0, 0x14(r1) /* 8036C89C 003684FC 93 E1 00 0C */ stw r31, 0xc(r1) /* 8036C8A0 00368500 7C 7F 1B 78 */ mr r31, r3 /* 8036C8A4 00368504 41 82 00 10 */ beq lbl_8036C8B4 /* 8036C8A8 00368508 2C 04 00 00 */ cmpwi r4, 0 /* 8036C8AC 0036850C 40 81 00 08 */ ble lbl_8036C8B4 /* 8036C8B0 00368510 4B E6 E2 09 */ bl func_801DAAB8 lbl_8036C8B4: /* 8036C8B4 00368514 7F E3 FB 78 */ mr r3, r31 /* 8036C8B8 00368518 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8036C8BC 0036851C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8036C8C0 00368520 7C 08 03 A6 */ mtlr r0 /* 8036C8C4 00368524 38 21 00 10 */ addi r1, r1, 0x10 /* 8036C8C8 00368528 4E 80 00 20 */ blr .global NoteOn__Q44nw4r3snd6detail4BankCFRCQ44nw4r3snd6detail10NoteOnInfo NoteOn__Q44nw4r3snd6detail4BankCFRCQ44nw4r3snd6detail10NoteOnInfo: /* 8036C8CC 0036852C 94 21 FF 30 */ stwu r1, -0xd0(r1) /* 8036C8D0 00368530 7C 08 02 A6 */ mflr r0 /* 8036C8D4 00368534 80 A4 00 00 */ lwz r5, 0(r4) /* 8036C8D8 00368538 90 01 00 D4 */ stw r0, 0xd4(r1) /* 8036C8DC 0036853C 3C 00 43 30 */ lis r0, 0x4330 /* 8036C8E0 00368540 93 E1 00 CC */ stw r31, 0xcc(r1) /* 8036C8E4 00368544 7C 7F 1B 78 */ mr r31, r3 /* 8036C8E8 00368548 93 C1 00 C8 */ stw r30, 0xc8(r1) /* 8036C8EC 0036854C 7C 9E 23 78 */ mr r30, r4 /* 8036C8F0 00368550 80 DE 00 04 */ lwz r6, 4(r30) /* 8036C8F4 00368554 38 81 00 08 */ addi r4, r1, 8 /* 8036C8F8 00368558 90 01 00 B0 */ stw r0, 0xb0(r1) /* 8036C8FC 0036855C 80 FE 00 08 */ lwz r7, 8(r30) /* 8036C900 00368560 90 01 00 B8 */ stw r0, 0xb8(r1) /* 8036C904 00368564 48 00 01 F5 */ bl ReadInstInfo__Q44nw4r3snd6detail14BankFileReaderCFPQ44nw4r3snd6detail8InstInfoiii /* 8036C908 00368568 2C 03 00 00 */ cmpwi r3, 0 /* 8036C90C 0036856C 40 82 00 0C */ bne lbl_8036C918 /* 8036C910 00368570 38 60 00 00 */ li r3, 0 /* 8036C914 00368574 48 00 01 50 */ b lbl_8036CA64 lbl_8036C918: /* 8036C918 00368578 80 A1 00 08 */ lwz r5, 8(r1) /* 8036C91C 0036857C 7F E3 FB 78 */ mr r3, r31 /* 8036C920 00368580 80 DF 00 0C */ lwz r6, 0xc(r31) /* 8036C924 00368584 38 81 00 18 */ addi r4, r1, 0x18 /* 8036C928 00368588 48 00 04 A5 */ bl ReadWaveParam__Q44nw4r3snd6detail14BankFileReaderCFPQ44nw4r3snd6detail8WaveDataiPCv /* 8036C92C 0036858C 2C 03 00 00 */ cmpwi r3, 0 /* 8036C930 00368590 40 82 00 0C */ bne lbl_8036C93C /* 8036C934 00368594 38 60 00 00 */ li r3, 0 /* 8036C938 00368598 48 00 01 2C */ b lbl_8036CA64 lbl_8036C93C: /* 8036C93C 0036859C 88 01 00 1A */ lbz r0, 0x1a(r1) /* 8036C940 003685A0 38 60 00 02 */ li r3, 2 /* 8036C944 003685A4 2C 00 00 02 */ cmpwi r0, 2 /* 8036C948 003685A8 41 81 00 08 */ bgt lbl_8036C950 /* 8036C94C 003685AC 7C 03 03 78 */ mr r3, r0 lbl_8036C950: /* 8036C950 003685B0 80 9E 00 18 */ lwz r4, 0x18(r30) /* 8036C954 003685B4 80 BE 00 14 */ lwz r5, 0x14(r30) /* 8036C958 003685B8 80 DE 00 1C */ lwz r6, 0x1c(r30) /* 8036C95C 003685BC 80 FE 00 20 */ lwz r7, 0x20(r30) /* 8036C960 003685C0 48 00 26 A5 */ bl AllocChannel__Q44nw4r3snd6detail7ChannelFiiiPFPQ44nw4r3snd6detail7ChannelQ54nw4r3snd6detail7Channel21ChannelCallbackStatusUl_vUl /* 8036C964 003685C4 2C 03 00 00 */ cmpwi r3, 0 /* 8036C968 003685C8 7C 7F 1B 78 */ mr r31, r3 /* 8036C96C 003685CC 40 82 00 0C */ bne lbl_8036C978 /* 8036C970 003685D0 38 60 00 00 */ li r3, 0 /* 8036C974 003685D4 48 00 00 F0 */ b lbl_8036CA64 lbl_8036C978: /* 8036C978 003685D8 80 9E 00 04 */ lwz r4, 4(r30) /* 8036C97C 003685DC 80 1E 00 08 */ lwz r0, 8(r30) /* 8036C980 003685E0 90 83 00 C0 */ stw r4, 0xc0(r3) /* 8036C984 003685E4 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 8036C988 003685E8 C8 22 A5 90 */ lfd f1, lbl_80642B90-_SDA2_BASE_(r2) /* 8036C98C 003685EC 88 81 00 10 */ lbz r4, 0x10(r1) /* 8036C990 003685F0 90 01 00 B4 */ stw r0, 0xb4(r1) /* 8036C994 003685F4 C0 42 A5 80 */ lfs f2, lbl_80642B80-_SDA2_BASE_(r2) /* 8036C998 003685F8 90 83 00 C4 */ stw r4, 0xc4(r3) /* 8036C99C 003685FC C8 01 00 B0 */ lfd f0, 0xb0(r1) /* 8036C9A0 00368600 88 01 00 12 */ lbz r0, 0x12(r1) /* 8036C9A4 00368604 EC 60 08 28 */ fsubs f3, f0, f1 /* 8036C9A8 00368608 C8 22 A5 98 */ lfd f1, lbl_80642B98-_SDA2_BASE_(r2) /* 8036C9AC 0036860C 90 01 00 BC */ stw r0, 0xbc(r1) /* 8036C9B0 00368610 C8 01 00 B8 */ lfd f0, 0xb8(r1) /* 8036C9B4 00368614 EC 63 10 24 */ fdivs f3, f3, f2 /* 8036C9B8 00368618 EC 00 08 28 */ fsubs f0, f0, f1 /* 8036C9BC 0036861C EC 63 00 F2 */ fmuls f3, f3, f3 /* 8036C9C0 00368620 EC 00 10 24 */ fdivs f0, f0, f2 /* 8036C9C4 00368624 EC 63 00 32 */ fmuls f3, f3, f0 /* 8036C9C8 00368628 D0 63 00 A8 */ stfs f3, 0xa8(r3) /* 8036C9CC 0036862C C0 01 00 14 */ lfs f0, 0x14(r1) /* 8036C9D0 00368630 D0 03 00 B4 */ stfs f0, 0xb4(r3) /* 8036C9D4 00368634 88 81 00 0C */ lbz r4, 0xc(r1) /* 8036C9D8 00368638 48 00 34 45 */ bl func_8036FE1C /* 8036C9DC 0036863C 88 81 00 0D */ lbz r4, 0xd(r1) /* 8036C9E0 00368640 7F E3 FB 78 */ mr r3, r31 /* 8036C9E4 00368644 48 00 34 51 */ bl func_8036FE34 /* 8036C9E8 00368648 88 81 00 0E */ lbz r4, 0xe(r1) /* 8036C9EC 0036864C 7F E3 FB 78 */ mr r3, r31 /* 8036C9F0 00368650 48 00 34 E5 */ bl func_8036FED4 /* 8036C9F4 00368654 88 81 00 0F */ lbz r4, 0xf(r1) /* 8036C9F8 00368658 7F E3 FB 78 */ mr r3, r31 /* 8036C9FC 0036865C 48 00 34 E1 */ bl func_8036FEDC /* 8036CA00 00368660 88 A1 00 11 */ lbz r5, 0x11(r1) /* 8036CA04 00368664 7F E3 FB 78 */ mr r3, r31 /* 8036CA08 00368668 80 1E 00 10 */ lwz r0, 0x10(r30) /* 8036CA0C 0036866C 38 81 00 18 */ addi r4, r1, 0x18 /* 8036CA10 00368670 38 A5 FF C0 */ addi r5, r5, -64 /* 8036CA14 00368674 C8 82 A5 90 */ lfd f4, lbl_80642B90-_SDA2_BASE_(r2) /* 8036CA18 00368678 6C A5 80 00 */ xoris r5, r5, 0x8000 /* 8036CA1C 0036867C 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 8036CA20 00368680 90 A1 00 B4 */ stw r5, 0xb4(r1) /* 8036CA24 00368684 38 C0 00 00 */ li r6, 0 /* 8036CA28 00368688 C0 42 A5 84 */ lfs f2, lbl_80642B84-_SDA2_BASE_(r2) /* 8036CA2C 0036868C 90 01 00 BC */ stw r0, 0xbc(r1) /* 8036CA30 00368690 C8 01 00 B0 */ lfd f0, 0xb0(r1) /* 8036CA34 00368694 C8 21 00 B8 */ lfd f1, 0xb8(r1) /* 8036CA38 00368698 EC 60 20 28 */ fsubs f3, f0, f4 /* 8036CA3C 0036869C C0 02 A5 88 */ lfs f0, lbl_80642B88-_SDA2_BASE_(r2) /* 8036CA40 003686A0 EC 21 20 28 */ fsubs f1, f1, f4 /* 8036CA44 003686A4 80 BE 00 0C */ lwz r5, 0xc(r30) /* 8036CA48 003686A8 EC 63 10 24 */ fdivs f3, f3, f2 /* 8036CA4C 003686AC EC 21 10 24 */ fdivs f1, f1, f2 /* 8036CA50 003686B0 EC 63 08 2A */ fadds f3, f3, f1 /* 8036CA54 003686B4 D0 7F 00 AC */ stfs f3, 0xac(r31) /* 8036CA58 003686B8 D0 1F 00 B0 */ stfs f0, 0xb0(r31) /* 8036CA5C 003686BC 48 00 22 05 */ bl Start__Q44nw4r3snd6detail7ChannelFRCQ44nw4r3snd6detail8WaveDataiUl /* 8036CA60 003686C0 7F E3 FB 78 */ mr r3, r31 lbl_8036CA64: /* 8036CA64 003686C4 80 01 00 D4 */ lwz r0, 0xd4(r1) /* 8036CA68 003686C8 83 E1 00 CC */ lwz r31, 0xcc(r1) /* 8036CA6C 003686CC 83 C1 00 C8 */ lwz r30, 0xc8(r1) /* 8036CA70 003686D0 7C 08 03 A6 */ mtlr r0 /* 8036CA74 003686D4 38 21 00 D0 */ addi r1, r1, 0xd0 /* 8036CA78 003686D8 4E 80 00 20 */ blr