tp/include/m_Do/m_Do_ext/asm/func_8000FD94.s

200 lines
9.8 KiB
ArmAsm

/* 8000FD94 0000CCD4 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 8000FD98 0000CCD8 7C 08 02 A6 */ mflr r0
/* 8000FD9C 0000CCDC 90 01 00 64 */ stw r0, 0x64(r1)
/* 8000FDA0 0000CCE0 DB E1 00 50 */ stfd f31, 0x50(r1)
/* 8000FDA4 0000CCE4 F3 E1 00 58 */ psq_st f31, 88(r1), 0, 0
/* 8000FDA8 0000CCE8 39 61 00 50 */ addi r11, r1, 0x50
/* 8000FDAC 0000CCEC 48 35 24 11 */ bl _savegpr_21
/* 8000FDB0 0000CCF0 7C 75 1B 78 */ mr r21, r3
/* 8000FDB4 0000CCF4 7C 96 23 79 */ or. r22, r4, r4
/* 8000FDB8 0000CCF8 7C B7 2B 78 */ mr r23, r5
/* 8000FDBC 0000CCFC 7C D8 33 78 */ mr r24, r6
/* 8000FDC0 0000CD00 7C F9 3B 78 */ mr r25, r7
/* 8000FDC4 0000CD04 7D 1A 43 78 */ mr r26, r8
/* 8000FDC8 0000CD08 FF E0 08 90 */ fmr f31, f1
/* 8000FDCC 0000CD0C 7D 3B 4B 78 */ mr r27, r9
/* 8000FDD0 0000CD10 7D 5C 53 78 */ mr r28, r10
/* 8000FDD4 0000CD14 83 A1 00 68 */ lwz r29, 0x68(r1)
/* 8000FDD8 0000CD18 83 C1 00 6C */ lwz r30, 0x6c(r1)
/* 8000FDDC 0000CD1C 83 E1 00 70 */ lwz r31, 0x70(r1)
/* 8000FDE0 0000CD20 80 A1 00 74 */ lwz r5, 0x74(r1)
/* 8000FDE4 0000CD24 38 00 00 00 */ li r0, 0
/* 8000FDE8 0000CD28 90 03 00 04 */ stw r0, 4(r3)
/* 8000FDEC 0000CD2C 90 03 00 4C */ stw r0, 0x4c(r3)
/* 8000FDF0 0000CD30 90 03 00 20 */ stw r0, 0x20(r3)
/* 8000FDF4 0000CD34 90 03 00 24 */ stw r0, 0x24(r3)
/* 8000FDF8 0000CD38 40 82 00 0C */ bne lbl_8000FE04
/* 8000FDFC 0000CD3C 38 60 00 00 */ li r3, 0
/* 8000FE00 0000CD40 48 00 02 54 */ b lbl_80010054
lbl_8000FE04:
/* 8000FE04 0000CD44 80 76 00 60 */ lwz r3, 0x60(r22)
/* 8000FE08 0000CD48 80 63 00 00 */ lwz r3, 0(r3)
/* 8000FE0C 0000CD4C 80 03 00 48 */ lwz r0, 0x48(r3)
/* 8000FE10 0000CD50 28 00 00 00 */ cmplwi r0, 0
/* 8000FE14 0000CD54 41 82 00 24 */ beq lbl_8000FE38
/* 8000FE18 0000CD58 28 1F 00 00 */ cmplwi r31, 0
/* 8000FE1C 0000CD5C 40 82 00 1C */ bne lbl_8000FE38
/* 8000FE20 0000CD60 A0 16 00 74 */ lhz r0, 0x74(r22)
/* 8000FE24 0000CD64 28 00 00 01 */ cmplwi r0, 1
/* 8000FE28 0000CD68 40 82 00 0C */ bne lbl_8000FE34
/* 8000FE2C 0000CD6C 3F E0 00 02 */ lis r31, 2
/* 8000FE30 0000CD70 48 00 00 08 */ b lbl_8000FE38
lbl_8000FE34:
/* 8000FE34 0000CD74 3F E0 00 08 */ lis r31, 8
lbl_8000FE38:
/* 8000FE38 0000CD78 7E C3 B3 78 */ mr r3, r22
/* 8000FE3C 0000CD7C 7F E4 FB 78 */ mr r4, r31
/* 8000FE40 0000CD80 48 00 4E 15 */ bl mDoExt_J3DModel__create
/* 8000FE44 0000CD84 90 75 00 04 */ stw r3, 4(r21)
/* 8000FE48 0000CD88 80 75 00 04 */ lwz r3, 4(r21)
/* 8000FE4C 0000CD8C 28 03 00 00 */ cmplwi r3, 0
/* 8000FE50 0000CD90 40 82 00 0C */ bne lbl_8000FE5C
/* 8000FE54 0000CD94 38 60 00 00 */ li r3, 0
/* 8000FE58 0000CD98 48 00 01 FC */ b lbl_80010054
lbl_8000FE5C:
/* 8000FE5C 0000CD9C 3C 1F FF F8 */ addis r0, r31, 0xfff8
/* 8000FE60 0000CDA0 28 00 00 00 */ cmplwi r0, 0
/* 8000FE64 0000CDA4 41 82 00 08 */ beq lbl_8000FE6C
/* 8000FE68 0000CDA8 4B FF DC 41 */ bl mDoExt_changeMaterial
lbl_8000FE6C:
/* 8000FE6C 0000CDAC 28 1E 00 00 */ cmplwi r30, 0
/* 8000FE70 0000CDB0 40 82 00 20 */ bne lbl_8000FE90
/* 8000FE74 0000CDB4 28 19 00 00 */ cmplwi r25, 0
/* 8000FE78 0000CDB8 41 82 00 18 */ beq lbl_8000FE90
/* 8000FE7C 0000CDBC 80 19 00 28 */ lwz r0, 0x28(r25)
/* 8000FE80 0000CDC0 7C 1E 03 78 */ mr r30, r0
/* 8000FE84 0000CDC4 28 00 00 00 */ cmplwi r0, 0
/* 8000FE88 0000CDC8 41 82 00 08 */ beq lbl_8000FE90
/* 8000FE8C 0000CDCC 3B A0 00 01 */ li r29, 1
lbl_8000FE90:
/* 8000FE90 0000CDD0 2C 1D 00 00 */ cmpwi r29, 0
/* 8000FE94 0000CDD4 41 82 00 34 */ beq lbl_8000FEC8
/* 8000FE98 0000CDD8 38 60 00 4C */ li r3, 0x4c
/* 8000FE9C 0000CDDC 48 2B ED B1 */ bl __nw__FUl
/* 8000FEA0 0000CDE0 7C 7D 1B 79 */ or. r29, r3, r3
/* 8000FEA4 0000CDE4 41 82 00 14 */ beq lbl_8000FEB8
/* 8000FEA8 0000CDE8 48 2A EC ED */ bl Z2SoundObjAnime
/* 8000FEAC 0000CDEC 3C 60 80 3A */ lis r3, lbl_803A32DC@ha
/* 8000FEB0 0000CDF0 38 03 32 DC */ addi r0, r3, lbl_803A32DC@l
/* 8000FEB4 0000CDF4 90 1D 00 10 */ stw r0, 0x10(r29)
lbl_8000FEB8:
/* 8000FEB8 0000CDF8 93 B5 00 4C */ stw r29, 0x4c(r21)
/* 8000FEBC 0000CDFC 80 15 00 4C */ lwz r0, 0x4c(r21)
/* 8000FEC0 0000CE00 28 00 00 00 */ cmplwi r0, 0
/* 8000FEC4 0000CE04 41 82 01 38 */ beq lbl_8000FFFC
lbl_8000FEC8:
/* 8000FEC8 0000CE08 7E A3 AB 78 */ mr r3, r21
/* 8000FECC 0000CE0C 7F 24 CB 78 */ mr r4, r25
/* 8000FED0 0000CE10 7F 45 D3 78 */ mr r5, r26
/* 8000FED4 0000CE14 C0 22 81 1C */ lfs f1, lbl_80451B1C-_SDA2_BASE_(r2)
/* 8000FED8 0000CE18 FC 40 F8 90 */ fmr f2, f31
/* 8000FEDC 0000CE1C C8 82 81 20 */ lfd f4, lbl_80451B20-_SDA2_BASE_(r2)
/* 8000FEE0 0000CE20 6F 60 80 00 */ xoris r0, r27, 0x8000
/* 8000FEE4 0000CE24 90 01 00 0C */ stw r0, 0xc(r1)
/* 8000FEE8 0000CE28 3C C0 43 30 */ lis r6, 0x4330
/* 8000FEEC 0000CE2C 90 C1 00 08 */ stw r6, 8(r1)
/* 8000FEF0 0000CE30 C8 01 00 08 */ lfd f0, 8(r1)
/* 8000FEF4 0000CE34 EC 60 20 28 */ fsubs f3, f0, f4
/* 8000FEF8 0000CE38 6F 80 80 00 */ xoris r0, r28, 0x8000
/* 8000FEFC 0000CE3C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8000FF00 0000CE40 90 C1 00 10 */ stw r6, 0x10(r1)
/* 8000FF04 0000CE44 C8 01 00 10 */ lfd f0, 0x10(r1)
/* 8000FF08 0000CE48 EC 80 20 28 */ fsubs f4, f0, f4
/* 8000FF0C 0000CE4C 7F C6 F3 78 */ mr r6, r30
/* 8000FF10 0000CE50 48 00 04 6D */ bl mDoExt_McaMorf_NS_setAnm
/* 8000FF14 0000CE54 C0 02 81 28 */ lfs f0, lbl_80451B28-_SDA2_BASE_(r2)
/* 8000FF18 0000CE58 D0 15 00 2C */ stfs f0, 0x2c(r21)
/* 8000FF1C 0000CE5C A3 36 00 2C */ lhz r25, 0x2c(r22)
/* 8000FF20 0000CE60 57 23 28 34 */ slwi r3, r25, 5
/* 8000FF24 0000CE64 38 63 00 10 */ addi r3, r3, 0x10
/* 8000FF28 0000CE68 48 2B ED 9D */ bl __nwa__FUl
/* 8000FF2C 0000CE6C 38 80 00 00 */ li r4, 0
/* 8000FF30 0000CE70 38 A0 00 00 */ li r5, 0
/* 8000FF34 0000CE74 38 C0 00 20 */ li r6, 0x20
/* 8000FF38 0000CE78 7F 27 CB 78 */ mr r7, r25
/* 8000FF3C 0000CE7C 48 35 1F D9 */ bl func_80361F14
/* 8000FF40 0000CE80 90 75 00 20 */ stw r3, 0x20(r21)
/* 8000FF44 0000CE84 80 15 00 20 */ lwz r0, 0x20(r21)
/* 8000FF48 0000CE88 28 00 00 00 */ cmplwi r0, 0
/* 8000FF4C 0000CE8C 41 82 00 B0 */ beq lbl_8000FFFC
/* 8000FF50 0000CE90 A0 16 00 2C */ lhz r0, 0x2c(r22)
/* 8000FF54 0000CE94 54 03 23 36 */ rlwinm r3, r0, 4, 0xc, 0x1b
/* 8000FF58 0000CE98 48 2B ED 6D */ bl __nwa__FUl
/* 8000FF5C 0000CE9C 90 75 00 24 */ stw r3, 0x24(r21)
/* 8000FF60 0000CEA0 80 15 00 24 */ lwz r0, 0x24(r21)
/* 8000FF64 0000CEA4 28 00 00 00 */ cmplwi r0, 0
/* 8000FF68 0000CEA8 41 82 00 94 */ beq lbl_8000FFFC
/* 8000FF6C 0000CEAC 83 55 00 20 */ lwz r26, 0x20(r21)
/* 8000FF70 0000CEB0 7C 1B 03 78 */ mr r27, r0
/* 8000FF74 0000CEB4 80 75 00 04 */ lwz r3, 4(r21)
/* 8000FF78 0000CEB8 83 23 00 04 */ lwz r25, 4(r3)
/* 8000FF7C 0000CEBC A2 D9 00 2C */ lhz r22, 0x2c(r25)
/* 8000FF80 0000CEC0 3B 80 00 00 */ li r28, 0
/* 8000FF84 0000CEC4 48 00 00 60 */ b lbl_8000FFE4
lbl_8000FF88:
/* 8000FF88 0000CEC8 80 79 00 28 */ lwz r3, 0x28(r25)
/* 8000FF8C 0000CECC 57 80 13 BA */ rlwinm r0, r28, 2, 0xe, 0x1d
/* 8000FF90 0000CED0 7C 63 00 2E */ lwzx r3, r3, r0
/* 8000FF94 0000CED4 E0 03 00 18 */ psq_l f0, 24(r3), 0, 0
/* 8000FF98 0000CED8 F0 1A 00 00 */ psq_st f0, 0(r26), 0, 0
/* 8000FF9C 0000CEDC C0 03 00 20 */ lfs f0, 0x20(r3)
/* 8000FFA0 0000CEE0 D0 1A 00 08 */ stfs f0, 8(r26)
/* 8000FFA4 0000CEE4 80 03 00 24 */ lwz r0, 0x24(r3)
/* 8000FFA8 0000CEE8 90 1A 00 0C */ stw r0, 0xc(r26)
/* 8000FFAC 0000CEEC A8 03 00 28 */ lha r0, 0x28(r3)
/* 8000FFB0 0000CEF0 B0 1A 00 10 */ sth r0, 0x10(r26)
/* 8000FFB4 0000CEF4 E0 03 00 2C */ psq_l f0, 44(r3), 0, 0
/* 8000FFB8 0000CEF8 F0 1A 00 14 */ psq_st f0, 20(r26), 0, 0
/* 8000FFBC 0000CEFC C0 03 00 34 */ lfs f0, 0x34(r3)
/* 8000FFC0 0000CF00 D0 1A 00 1C */ stfs f0, 0x1c(r26)
/* 8000FFC4 0000CF04 A8 7A 00 0C */ lha r3, 0xc(r26)
/* 8000FFC8 0000CF08 A8 9A 00 0E */ lha r4, 0xe(r26)
/* 8000FFCC 0000CF0C A8 BA 00 10 */ lha r5, 0x10(r26)
/* 8000FFD0 0000CF10 7F 66 DB 78 */ mr r6, r27
/* 8000FFD4 0000CF14 48 32 98 A5 */ bl JMAEulerToQuat
/* 8000FFD8 0000CF18 3B 5A 00 20 */ addi r26, r26, 0x20
/* 8000FFDC 0000CF1C 3B 7B 00 10 */ addi r27, r27, 0x10
/* 8000FFE0 0000CF20 3B 9C 00 01 */ addi r28, r28, 1
lbl_8000FFE4:
/* 8000FFE4 0000CF24 7C 1C B0 00 */ cmpw r28, r22
/* 8000FFE8 0000CF28 41 80 FF A0 */ blt lbl_8000FF88
/* 8000FFEC 0000CF2C 92 F5 00 38 */ stw r23, 0x38(r21)
/* 8000FFF0 0000CF30 93 15 00 3C */ stw r24, 0x3c(r21)
/* 8000FFF4 0000CF34 38 60 00 01 */ li r3, 1
/* 8000FFF8 0000CF38 48 00 00 5C */ b lbl_80010054
lbl_8000FFFC:
/* 8000FFFC 0000CF3C 80 75 00 4C */ lwz r3, 0x4c(r21)
/* 80010000 0000CF40 28 03 00 00 */ cmplwi r3, 0
/* 80010004 0000CF44 41 82 00 10 */ beq lbl_80010014
/* 80010008 0000CF48 38 00 00 00 */ li r0, 0
/* 8001000C 0000CF4C 90 03 00 20 */ stw r0, 0x20(r3)
/* 80010010 0000CF50 90 15 00 4C */ stw r0, 0x4c(r21)
lbl_80010014:
/* 80010014 0000CF54 80 15 00 20 */ lwz r0, 0x20(r21)
/* 80010018 0000CF58 28 00 00 00 */ cmplwi r0, 0
/* 8001001C 0000CF5C 41 82 00 0C */ beq lbl_80010028
/* 80010020 0000CF60 38 00 00 00 */ li r0, 0
/* 80010024 0000CF64 90 15 00 20 */ stw r0, 0x20(r21)
lbl_80010028:
/* 80010028 0000CF68 80 15 00 24 */ lwz r0, 0x24(r21)
/* 8001002C 0000CF6C 28 00 00 00 */ cmplwi r0, 0
/* 80010030 0000CF70 41 82 00 0C */ beq lbl_8001003C
/* 80010034 0000CF74 38 00 00 00 */ li r0, 0
/* 80010038 0000CF78 90 15 00 24 */ stw r0, 0x24(r21)
lbl_8001003C:
/* 8001003C 0000CF7C 80 15 00 04 */ lwz r0, 4(r21)
/* 80010040 0000CF80 28 00 00 00 */ cmplwi r0, 0
/* 80010044 0000CF84 41 82 00 0C */ beq lbl_80010050
/* 80010048 0000CF88 38 00 00 00 */ li r0, 0
/* 8001004C 0000CF8C 90 15 00 04 */ stw r0, 4(r21)
lbl_80010050:
/* 80010050 0000CF90 38 60 00 00 */ li r3, 0
lbl_80010054:
/* 80010054 0000CF94 E3 E1 00 58 */ psq_l f31, 88(r1), 0, 0
/* 80010058 0000CF98 CB E1 00 50 */ lfd f31, 0x50(r1)
/* 8001005C 0000CF9C 39 61 00 50 */ addi r11, r1, 0x50
/* 80010060 0000CFA0 48 35 21 A9 */ bl _restgpr_21
/* 80010064 0000CFA4 80 01 00 64 */ lwz r0, 0x64(r1)
/* 80010068 0000CFA8 7C 08 03 A6 */ mtlr r0
/* 8001006C 0000CFAC 38 21 00 60 */ addi r1, r1, 0x60
/* 80010070 0000CFB0 4E 80 00 20 */ blr