.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global func_8004ACF4 func_8004ACF4: /* 8004ACF4 00046954 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8004ACF8 00046958 3C E0 43 30 */ lis r7, 0x4330 /* 8004ACFC 0004695C 88 03 00 00 */ lbz r0, 0(r3) /* 8004AD00 00046960 88 C3 00 01 */ lbz r6, 1(r3) /* 8004AD04 00046964 90 01 00 0C */ stw r0, 0xc(r1) /* 8004AD08 00046968 C8 82 83 F0 */ lfd f4, lbl_806409F0-_SDA2_BASE_(r2) /* 8004AD0C 0004696C 90 E1 00 08 */ stw r7, 8(r1) /* 8004AD10 00046970 88 A3 00 02 */ lbz r5, 2(r3) /* 8004AD14 00046974 C8 01 00 08 */ lfd f0, 8(r1) /* 8004AD18 00046978 90 E1 00 10 */ stw r7, 0x10(r1) /* 8004AD1C 0004697C EC 60 20 28 */ fsubs f3, f0, f4 /* 8004AD20 00046980 88 03 00 03 */ lbz r0, 3(r3) /* 8004AD24 00046984 90 C1 00 14 */ stw r6, 0x14(r1) /* 8004AD28 00046988 C8 01 00 10 */ lfd f0, 0x10(r1) /* 8004AD2C 0004698C 90 A1 00 0C */ stw r5, 0xc(r1) /* 8004AD30 00046990 EC 40 20 28 */ fsubs f2, f0, f4 /* 8004AD34 00046994 90 01 00 14 */ stw r0, 0x14(r1) /* 8004AD38 00046998 C8 21 00 08 */ lfd f1, 8(r1) /* 8004AD3C 0004699C C8 01 00 10 */ lfd f0, 0x10(r1) /* 8004AD40 000469A0 EC 21 20 28 */ fsubs f1, f1, f4 /* 8004AD44 000469A4 D0 64 00 00 */ stfs f3, 0(r4) /* 8004AD48 000469A8 EC 00 20 28 */ fsubs f0, f0, f4 /* 8004AD4C 000469AC D0 44 00 04 */ stfs f2, 4(r4) /* 8004AD50 000469B0 D0 24 00 08 */ stfs f1, 8(r4) /* 8004AD54 000469B4 D0 04 00 0C */ stfs f0, 0xc(r4) /* 8004AD58 000469B8 38 21 00 20 */ addi r1, r1, 0x20 /* 8004AD5C 000469BC 4E 80 00 20 */ blr .global func_8004AD60 func_8004AD60: /* 8004AD60 000469C0 C0 03 00 00 */ lfs f0, 0(r3) /* 8004AD64 000469C4 C0 43 00 04 */ lfs f2, 4(r3) /* 8004AD68 000469C8 C0 23 00 08 */ lfs f1, 8(r3) /* 8004AD6C 000469CC FC 60 00 1E */ fctiwz f3, f0 /* 8004AD70 000469D0 C0 03 00 0C */ lfs f0, 0xc(r3) /* 8004AD74 000469D4 FC 40 10 1E */ fctiwz f2, f2 /* 8004AD78 000469D8 FC 20 08 1E */ fctiwz f1, f1 /* 8004AD7C 000469DC 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8004AD80 000469E0 FC 00 00 1E */ fctiwz f0, f0 /* 8004AD84 000469E4 D8 61 00 08 */ stfd f3, 8(r1) /* 8004AD88 000469E8 D8 41 00 10 */ stfd f2, 0x10(r1) /* 8004AD8C 000469EC 80 C1 00 0C */ lwz r6, 0xc(r1) /* 8004AD90 000469F0 D8 21 00 18 */ stfd f1, 0x18(r1) /* 8004AD94 000469F4 80 A1 00 14 */ lwz r5, 0x14(r1) /* 8004AD98 000469F8 D8 01 00 20 */ stfd f0, 0x20(r1) /* 8004AD9C 000469FC 80 61 00 1C */ lwz r3, 0x1c(r1) /* 8004ADA0 00046A00 80 01 00 24 */ lwz r0, 0x24(r1) /* 8004ADA4 00046A04 98 C4 00 00 */ stb r6, 0(r4) /* 8004ADA8 00046A08 98 A4 00 01 */ stb r5, 1(r4) /* 8004ADAC 00046A0C 98 64 00 02 */ stb r3, 2(r4) /* 8004ADB0 00046A10 98 04 00 03 */ stb r0, 3(r4) /* 8004ADB4 00046A14 38 21 00 30 */ addi r1, r1, 0x30 /* 8004ADB8 00046A18 4E 80 00 20 */ blr .global func_8004ADBC func_8004ADBC: /* 8004ADBC 00046A1C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004ADC0 00046A20 7C 08 02 A6 */ mflr r0 /* 8004ADC4 00046A24 90 01 00 14 */ stw r0, 0x14(r1) /* 8004ADC8 00046A28 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004ADCC 00046A2C 7C 7F 1B 78 */ mr r31, r3 /* 8004ADD0 00046A30 4B FF E2 B5 */ bl func_80049084 /* 8004ADD4 00046A34 3C 80 80 41 */ lis r4, lbl_8040AAA8@ha /* 8004ADD8 00046A38 38 00 00 00 */ li r0, 0 /* 8004ADDC 00046A3C 38 84 AA A8 */ addi r4, r4, lbl_8040AAA8@l /* 8004ADE0 00046A40 90 1F 00 2C */ stw r0, 0x2c(r31) /* 8004ADE4 00046A44 7F E3 FB 78 */ mr r3, r31 /* 8004ADE8 00046A48 90 9F 00 28 */ stw r4, 0x28(r31) /* 8004ADEC 00046A4C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004ADF0 00046A50 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004ADF4 00046A54 7C 08 03 A6 */ mtlr r0 /* 8004ADF8 00046A58 38 21 00 10 */ addi r1, r1, 0x10 /* 8004ADFC 00046A5C 4E 80 00 20 */ blr /* 8004AE00 00046A60 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004AE04 00046A64 7C 08 02 A6 */ mflr r0 /* 8004AE08 00046A68 2C 03 00 00 */ cmpwi r3, 0 /* 8004AE0C 00046A6C 90 01 00 14 */ stw r0, 0x14(r1) /* 8004AE10 00046A70 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004AE14 00046A74 7C 9F 23 78 */ mr r31, r4 /* 8004AE18 00046A78 93 C1 00 08 */ stw r30, 8(r1) /* 8004AE1C 00046A7C 7C 7E 1B 78 */ mr r30, r3 /* 8004AE20 00046A80 41 82 00 38 */ beq lbl_8004AE58 /* 8004AE24 00046A84 3D 80 80 41 */ lis r12, lbl_8040AAA8@ha /* 8004AE28 00046A88 39 8C AA A8 */ addi r12, r12, lbl_8040AAA8@l /* 8004AE2C 00046A8C 91 83 00 28 */ stw r12, 0x28(r3) /* 8004AE30 00046A90 81 8C 00 1C */ lwz r12, 0x1c(r12) /* 8004AE34 00046A94 7D 89 03 A6 */ mtctr r12 /* 8004AE38 00046A98 4E 80 04 21 */ bctrl /* 8004AE3C 00046A9C 7F C3 F3 78 */ mr r3, r30 /* 8004AE40 00046AA0 38 80 00 00 */ li r4, 0 /* 8004AE44 00046AA4 4B FF E2 71 */ bl func_800490B4 /* 8004AE48 00046AA8 2C 1F 00 00 */ cmpwi r31, 0 /* 8004AE4C 00046AAC 40 81 00 0C */ ble lbl_8004AE58 /* 8004AE50 00046AB0 7F C3 F3 78 */ mr r3, r30 /* 8004AE54 00046AB4 48 18 FC 65 */ bl __dl__FPv lbl_8004AE58: /* 8004AE58 00046AB8 7F C3 F3 78 */ mr r3, r30 /* 8004AE5C 00046ABC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004AE60 00046AC0 83 C1 00 08 */ lwz r30, 8(r1) /* 8004AE64 00046AC4 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004AE68 00046AC8 7C 08 03 A6 */ mtlr r0 /* 8004AE6C 00046ACC 38 21 00 10 */ addi r1, r1, 0x10 /* 8004AE70 00046AD0 4E 80 00 20 */ blr /* 8004AE74 00046AD4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004AE78 00046AD8 7C 08 02 A6 */ mflr r0 /* 8004AE7C 00046ADC 90 01 00 14 */ stw r0, 0x14(r1) /* 8004AE80 00046AE0 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004AE84 00046AE4 7C 7F 1B 78 */ mr r31, r3 /* 8004AE88 00046AE8 80 03 00 2C */ lwz r0, 0x2c(r3) /* 8004AE8C 00046AEC 2C 00 00 00 */ cmpwi r0, 0 /* 8004AE90 00046AF0 41 82 00 28 */ beq lbl_8004AEB8 /* 8004AE94 00046AF4 41 82 00 1C */ beq lbl_8004AEB0 /* 8004AE98 00046AF8 7C 03 03 78 */ mr r3, r0 /* 8004AE9C 00046AFC 38 80 00 01 */ li r4, 1 /* 8004AEA0 00046B00 81 83 00 10 */ lwz r12, 0x10(r3) /* 8004AEA4 00046B04 81 8C 00 08 */ lwz r12, 8(r12) /* 8004AEA8 00046B08 7D 89 03 A6 */ mtctr r12 /* 8004AEAC 00046B0C 4E 80 04 21 */ bctrl lbl_8004AEB0: /* 8004AEB0 00046B10 38 00 00 00 */ li r0, 0 /* 8004AEB4 00046B14 90 1F 00 2C */ stw r0, 0x2c(r31) lbl_8004AEB8: /* 8004AEB8 00046B18 7F E3 FB 78 */ mr r3, r31 /* 8004AEBC 00046B1C 4B FF E2 61 */ bl func_8004911C /* 8004AEC0 00046B20 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004AEC4 00046B24 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004AEC8 00046B28 7C 08 03 A6 */ mtlr r0 /* 8004AECC 00046B2C 38 21 00 10 */ addi r1, r1, 0x10 /* 8004AED0 00046B30 4E 80 00 20 */ blr /* 8004AED4 00046B34 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004AED8 00046B38 7C 08 02 A6 */ mflr r0 /* 8004AEDC 00046B3C C0 22 83 F8 */ lfs f1, lbl_806409F8-_SDA2_BASE_(r2) /* 8004AEE0 00046B40 90 01 00 14 */ stw r0, 0x14(r1) /* 8004AEE4 00046B44 80 03 00 2C */ lwz r0, 0x2c(r3) /* 8004AEE8 00046B48 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004AEEC 00046B4C 7C 7F 1B 78 */ mr r31, r3 /* 8004AEF0 00046B50 2C 00 00 00 */ cmpwi r0, 0 /* 8004AEF4 00046B54 41 82 00 34 */ beq lbl_8004AF28 /* 8004AEF8 00046B58 7C 03 03 78 */ mr r3, r0 /* 8004AEFC 00046B5C 81 83 00 10 */ lwz r12, 0x10(r3) /* 8004AF00 00046B60 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004AF04 00046B64 7D 89 03 A6 */ mtctr r12 /* 8004AF08 00046B68 4E 80 04 21 */ bctrl /* 8004AF0C 00046B6C C0 02 83 F8 */ lfs f0, lbl_806409F8-_SDA2_BASE_(r2) /* 8004AF10 00046B70 FC 00 08 00 */ fcmpu cr0, f0, f1 /* 8004AF14 00046B74 40 82 00 14 */ bne lbl_8004AF28 /* 8004AF18 00046B78 80 7F 00 14 */ lwz r3, 0x14(r31) /* 8004AF1C 00046B7C 2C 03 00 00 */ cmpwi r3, 0 /* 8004AF20 00046B80 41 82 00 08 */ beq lbl_8004AF28 /* 8004AF24 00046B84 C0 23 00 04 */ lfs f1, 4(r3) lbl_8004AF28: /* 8004AF28 00046B88 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004AF2C 00046B8C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004AF30 00046B90 7C 08 03 A6 */ mtlr r0 /* 8004AF34 00046B94 38 21 00 10 */ addi r1, r1, 0x10 /* 8004AF38 00046B98 4E 80 00 20 */ blr /* 8004AF3C 00046B9C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004AF40 00046BA0 7C 08 02 A6 */ mflr r0 /* 8004AF44 00046BA4 90 01 00 14 */ stw r0, 0x14(r1) /* 8004AF48 00046BA8 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004AF4C 00046BAC 7C 7F 1B 78 */ mr r31, r3 /* 8004AF50 00046BB0 A0 04 00 38 */ lhz r0, 0x38(r4) /* 8004AF54 00046BB4 28 00 00 0E */ cmplwi r0, 0xe /* 8004AF58 00046BB8 41 81 01 78 */ bgt lbl_8004B0D0 /* 8004AF5C 00046BBC 3C 60 80 41 */ lis r3, lbl_8040A728@ha /* 8004AF60 00046BC0 54 00 10 3A */ slwi r0, r0, 2 /* 8004AF64 00046BC4 38 63 A7 28 */ addi r3, r3, lbl_8040A728@l /* 8004AF68 00046BC8 7C 63 00 2E */ lwzx r3, r3, r0 /* 8004AF6C 00046BCC 7C 69 03 A6 */ mtctr r3 /* 8004AF70 00046BD0 4E 80 04 20 */ bctr /* 8004AF74 00046BD4 38 60 00 8C */ li r3, 0x8c /* 8004AF78 00046BD8 48 18 FA B9 */ bl __nw__FUl /* 8004AF7C 00046BDC 2C 03 00 00 */ cmpwi r3, 0 /* 8004AF80 00046BE0 41 82 00 0C */ beq lbl_8004AF8C /* 8004AF84 00046BE4 7F E4 FB 78 */ mr r4, r31 /* 8004AF88 00046BE8 48 00 02 B5 */ bl func_8004B23C lbl_8004AF8C: /* 8004AF8C 00046BEC 90 7F 00 2C */ stw r3, 0x2c(r31) /* 8004AF90 00046BF0 48 00 01 40 */ b lbl_8004B0D0 /* 8004AF94 00046BF4 38 60 00 14 */ li r3, 0x14 /* 8004AF98 00046BF8 48 18 FA 99 */ bl __nw__FUl /* 8004AF9C 00046BFC 2C 03 00 00 */ cmpwi r3, 0 /* 8004AFA0 00046C00 41 82 00 0C */ beq lbl_8004AFAC /* 8004AFA4 00046C04 7F E4 FB 78 */ mr r4, r31 /* 8004AFA8 00046C08 48 00 07 25 */ bl func_8004B6CC lbl_8004AFAC: /* 8004AFAC 00046C0C 90 7F 00 2C */ stw r3, 0x2c(r31) /* 8004AFB0 00046C10 48 00 01 20 */ b lbl_8004B0D0 /* 8004AFB4 00046C14 38 60 00 14 */ li r3, 0x14 /* 8004AFB8 00046C18 48 18 FA 79 */ bl __nw__FUl /* 8004AFBC 00046C1C 2C 03 00 00 */ cmpwi r3, 0 /* 8004AFC0 00046C20 41 82 00 0C */ beq lbl_8004AFCC /* 8004AFC4 00046C24 7F E4 FB 78 */ mr r4, r31 /* 8004AFC8 00046C28 48 00 07 A5 */ bl func_8004B76C lbl_8004AFCC: /* 8004AFCC 00046C2C 90 7F 00 2C */ stw r3, 0x2c(r31) /* 8004AFD0 00046C30 48 00 01 00 */ b lbl_8004B0D0 /* 8004AFD4 00046C34 38 60 00 48 */ li r3, 0x48 /* 8004AFD8 00046C38 48 18 FA 59 */ bl __nw__FUl /* 8004AFDC 00046C3C 2C 03 00 00 */ cmpwi r3, 0 /* 8004AFE0 00046C40 41 82 00 0C */ beq lbl_8004AFEC /* 8004AFE4 00046C44 7F E4 FB 78 */ mr r4, r31 /* 8004AFE8 00046C48 48 00 08 25 */ bl func_8004B80C lbl_8004AFEC: /* 8004AFEC 00046C4C 90 7F 00 2C */ stw r3, 0x2c(r31) /* 8004AFF0 00046C50 48 00 00 E0 */ b lbl_8004B0D0 /* 8004AFF4 00046C54 38 60 00 48 */ li r3, 0x48 /* 8004AFF8 00046C58 48 18 FA 39 */ bl __nw__FUl /* 8004AFFC 00046C5C 2C 03 00 00 */ cmpwi r3, 0 /* 8004B000 00046C60 41 82 00 0C */ beq lbl_8004B00C /* 8004B004 00046C64 7F E4 FB 78 */ mr r4, r31 /* 8004B008 00046C68 48 00 0B D1 */ bl func_8004BBD8 lbl_8004B00C: /* 8004B00C 00046C6C 90 7F 00 2C */ stw r3, 0x2c(r31) /* 8004B010 00046C70 48 00 00 C0 */ b lbl_8004B0D0 /* 8004B014 00046C74 38 60 00 14 */ li r3, 0x14 /* 8004B018 00046C78 48 18 FA 19 */ bl __nw__FUl /* 8004B01C 00046C7C 2C 03 00 00 */ cmpwi r3, 0 /* 8004B020 00046C80 41 82 00 0C */ beq lbl_8004B02C /* 8004B024 00046C84 7F E4 FB 78 */ mr r4, r31 /* 8004B028 00046C88 48 00 0F 31 */ bl func_8004BF58 lbl_8004B02C: /* 8004B02C 00046C8C 90 7F 00 2C */ stw r3, 0x2c(r31) /* 8004B030 00046C90 48 00 00 A0 */ b lbl_8004B0D0 /* 8004B034 00046C94 38 60 00 1C */ li r3, 0x1c /* 8004B038 00046C98 48 18 F9 F9 */ bl __nw__FUl /* 8004B03C 00046C9C 2C 03 00 00 */ cmpwi r3, 0 /* 8004B040 00046CA0 41 82 00 0C */ beq lbl_8004B04C /* 8004B044 00046CA4 7F E4 FB 78 */ mr r4, r31 /* 8004B048 00046CA8 48 00 0F B1 */ bl func_8004BFF8 lbl_8004B04C: /* 8004B04C 00046CAC 90 7F 00 2C */ stw r3, 0x2c(r31) /* 8004B050 00046CB0 48 00 00 80 */ b lbl_8004B0D0 /* 8004B054 00046CB4 38 60 00 1C */ li r3, 0x1c /* 8004B058 00046CB8 48 18 F9 D9 */ bl __nw__FUl /* 8004B05C 00046CBC 2C 03 00 00 */ cmpwi r3, 0 /* 8004B060 00046CC0 41 82 00 0C */ beq lbl_8004B06C /* 8004B064 00046CC4 7F E4 FB 78 */ mr r4, r31 /* 8004B068 00046CC8 48 00 13 85 */ bl func_8004C3EC lbl_8004B06C: /* 8004B06C 00046CCC 90 7F 00 2C */ stw r3, 0x2c(r31) /* 8004B070 00046CD0 48 00 00 60 */ b lbl_8004B0D0 /* 8004B074 00046CD4 38 60 00 B8 */ li r3, 0xb8 /* 8004B078 00046CD8 48 18 F9 B9 */ bl __nw__FUl /* 8004B07C 00046CDC 2C 03 00 00 */ cmpwi r3, 0 /* 8004B080 00046CE0 41 82 00 0C */ beq lbl_8004B08C /* 8004B084 00046CE4 7F E4 FB 78 */ mr r4, r31 /* 8004B088 00046CE8 48 00 16 59 */ bl func_8004C6E0 lbl_8004B08C: /* 8004B08C 00046CEC 90 7F 00 2C */ stw r3, 0x2c(r31) /* 8004B090 00046CF0 48 00 00 40 */ b lbl_8004B0D0 /* 8004B094 00046CF4 38 60 00 48 */ li r3, 0x48 /* 8004B098 00046CF8 48 18 F9 99 */ bl __nw__FUl /* 8004B09C 00046CFC 2C 03 00 00 */ cmpwi r3, 0 /* 8004B0A0 00046D00 41 82 00 0C */ beq lbl_8004B0AC /* 8004B0A4 00046D04 7F E4 FB 78 */ mr r4, r31 /* 8004B0A8 00046D08 48 00 1A 8D */ bl func_8004CB34 lbl_8004B0AC: /* 8004B0AC 00046D0C 90 7F 00 2C */ stw r3, 0x2c(r31) /* 8004B0B0 00046D10 48 00 00 20 */ b lbl_8004B0D0 /* 8004B0B4 00046D14 38 60 00 4C */ li r3, 0x4c /* 8004B0B8 00046D18 48 18 F9 79 */ bl __nw__FUl /* 8004B0BC 00046D1C 2C 03 00 00 */ cmpwi r3, 0 /* 8004B0C0 00046D20 41 82 00 0C */ beq lbl_8004B0CC /* 8004B0C4 00046D24 7F E4 FB 78 */ mr r4, r31 /* 8004B0C8 00046D28 48 00 21 35 */ bl func_8004D1FC lbl_8004B0CC: /* 8004B0CC 00046D2C 90 7F 00 2C */ stw r3, 0x2c(r31) lbl_8004B0D0: /* 8004B0D0 00046D30 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004B0D4 00046D34 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004B0D8 00046D38 7C 08 03 A6 */ mtlr r0 /* 8004B0DC 00046D3C 38 21 00 10 */ addi r1, r1, 0x10 /* 8004B0E0 00046D40 4E 80 00 20 */ blr /* 8004B0E4 00046D44 80 63 00 2C */ lwz r3, 0x2c(r3) /* 8004B0E8 00046D48 2C 03 00 00 */ cmpwi r3, 0 /* 8004B0EC 00046D4C 4D 82 00 20 */ beqlr /* 8004B0F0 00046D50 81 83 00 10 */ lwz r12, 0x10(r3) /* 8004B0F4 00046D54 81 8C 00 0C */ lwz r12, 0xc(r12) /* 8004B0F8 00046D58 7D 89 03 A6 */ mtctr r12 /* 8004B0FC 00046D5C 4E 80 04 20 */ bctr /* 8004B100 00046D60 4E 80 00 20 */ blr /* 8004B104 00046D64 4E 80 00 20 */ blr /* 8004B108 00046D68 80 63 00 2C */ lwz r3, 0x2c(r3) /* 8004B10C 00046D6C 2C 03 00 00 */ cmpwi r3, 0 /* 8004B110 00046D70 4D 82 00 20 */ beqlr /* 8004B114 00046D74 81 83 00 10 */ lwz r12, 0x10(r3) /* 8004B118 00046D78 81 8C 00 10 */ lwz r12, 0x10(r12) /* 8004B11C 00046D7C 7D 89 03 A6 */ mtctr r12 /* 8004B120 00046D80 4E 80 04 20 */ bctr /* 8004B124 00046D84 4E 80 00 20 */ blr /* 8004B128 00046D88 4E 80 00 20 */ blr /* 8004B12C 00046D8C 80 63 00 2C */ lwz r3, 0x2c(r3) /* 8004B130 00046D90 2C 03 00 00 */ cmpwi r3, 0 /* 8004B134 00046D94 4D 82 00 20 */ beqlr /* 8004B138 00046D98 81 83 00 10 */ lwz r12, 0x10(r3) /* 8004B13C 00046D9C 81 8C 00 14 */ lwz r12, 0x14(r12) /* 8004B140 00046DA0 7D 89 03 A6 */ mtctr r12 /* 8004B144 00046DA4 4E 80 04 20 */ bctr /* 8004B148 00046DA8 4E 80 00 20 */ blr /* 8004B14C 00046DAC 4E 80 00 20 */ blr .global func_8004B150 func_8004B150: /* 8004B150 00046DB0 3C A0 80 41 */ lis r5, lbl_8040AA70@ha /* 8004B154 00046DB4 90 83 00 04 */ stw r4, 4(r3) /* 8004B158 00046DB8 38 A5 AA 70 */ addi r5, r5, lbl_8040AA70@l /* 8004B15C 00046DBC 90 A3 00 10 */ stw r5, 0x10(r3) /* 8004B160 00046DC0 80 84 00 14 */ lwz r4, 0x14(r4) /* 8004B164 00046DC4 38 04 00 38 */ addi r0, r4, 0x38 /* 8004B168 00046DC8 90 83 00 08 */ stw r4, 8(r3) /* 8004B16C 00046DCC 90 03 00 0C */ stw r0, 0xc(r3) /* 8004B170 00046DD0 4E 80 00 20 */ blr .global func_8004B174 func_8004B174: /* 8004B174 00046DD4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004B178 00046DD8 7C 08 02 A6 */ mflr r0 /* 8004B17C 00046DDC 2C 03 00 00 */ cmpwi r3, 0 /* 8004B180 00046DE0 90 01 00 14 */ stw r0, 0x14(r1) /* 8004B184 00046DE4 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004B188 00046DE8 7C 7F 1B 78 */ mr r31, r3 /* 8004B18C 00046DEC 41 82 00 10 */ beq lbl_8004B19C /* 8004B190 00046DF0 2C 04 00 00 */ cmpwi r4, 0 /* 8004B194 00046DF4 40 81 00 08 */ ble lbl_8004B19C /* 8004B198 00046DF8 48 18 F9 21 */ bl __dl__FPv lbl_8004B19C: /* 8004B19C 00046DFC 7F E3 FB 78 */ mr r3, r31 /* 8004B1A0 00046E00 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004B1A4 00046E04 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004B1A8 00046E08 7C 08 03 A6 */ mtlr r0 /* 8004B1AC 00046E0C 38 21 00 10 */ addi r1, r1, 0x10 /* 8004B1B0 00046E10 4E 80 00 20 */ blr .global func_8004B1B4 func_8004B1B4: /* 8004B1B4 00046E14 80 63 00 04 */ lwz r3, 4(r3) /* 8004B1B8 00046E18 2C 03 00 00 */ cmpwi r3, 0 /* 8004B1BC 00046E1C 40 82 00 0C */ bne lbl_8004B1C8 /* 8004B1C0 00046E20 38 60 00 00 */ li r3, 0 /* 8004B1C4 00046E24 4E 80 00 20 */ blr lbl_8004B1C8: /* 8004B1C8 00046E28 80 63 00 18 */ lwz r3, 0x18(r3) /* 8004B1CC 00046E2C 2C 03 00 00 */ cmpwi r3, 0 /* 8004B1D0 00046E30 41 82 00 0C */ beq lbl_8004B1DC /* 8004B1D4 00046E34 80 63 00 34 */ lwz r3, 0x34(r3) /* 8004B1D8 00046E38 4E 80 00 20 */ blr lbl_8004B1DC: /* 8004B1DC 00046E3C 38 60 00 00 */ li r3, 0 /* 8004B1E0 00046E40 4E 80 00 20 */ blr .global func_8004B1E4 func_8004B1E4: /* 8004B1E4 00046E44 80 63 00 04 */ lwz r3, 4(r3) /* 8004B1E8 00046E48 2C 03 00 00 */ cmpwi r3, 0 /* 8004B1EC 00046E4C 40 82 00 0C */ bne lbl_8004B1F8 /* 8004B1F0 00046E50 38 60 00 00 */ li r3, 0 /* 8004B1F4 00046E54 4E 80 00 20 */ blr lbl_8004B1F8: /* 8004B1F8 00046E58 80 63 00 18 */ lwz r3, 0x18(r3) /* 8004B1FC 00046E5C 2C 03 00 00 */ cmpwi r3, 0 /* 8004B200 00046E60 41 82 00 18 */ beq lbl_8004B218 /* 8004B204 00046E64 80 63 00 34 */ lwz r3, 0x34(r3) /* 8004B208 00046E68 2C 03 00 00 */ cmpwi r3, 0 /* 8004B20C 00046E6C 41 82 00 0C */ beq lbl_8004B218 /* 8004B210 00046E70 80 63 0C 04 */ lwz r3, 0xc04(r3) /* 8004B214 00046E74 4E 80 00 20 */ blr lbl_8004B218: /* 8004B218 00046E78 38 60 00 00 */ li r3, 0 /* 8004B21C 00046E7C 4E 80 00 20 */ blr /* 8004B220 00046E80 80 63 00 08 */ lwz r3, 8(r3) /* 8004B224 00046E84 2C 03 00 00 */ cmpwi r3, 0 /* 8004B228 00046E88 41 82 00 0C */ beq lbl_8004B234 /* 8004B22C 00046E8C C0 23 00 04 */ lfs f1, 4(r3) /* 8004B230 00046E90 4E 80 00 20 */ blr lbl_8004B234: /* 8004B234 00046E94 C0 22 83 F8 */ lfs f1, lbl_806409F8-_SDA2_BASE_(r2) /* 8004B238 00046E98 4E 80 00 20 */ blr .global func_8004B23C func_8004B23C: /* 8004B23C 00046E9C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004B240 00046EA0 7C 08 02 A6 */ mflr r0 /* 8004B244 00046EA4 90 01 00 14 */ stw r0, 0x14(r1) /* 8004B248 00046EA8 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004B24C 00046EAC 7C 7F 1B 78 */ mr r31, r3 /* 8004B250 00046EB0 4B FF FF 01 */ bl func_8004B150 /* 8004B254 00046EB4 3C 80 80 41 */ lis r4, lbl_8040AA2C@ha /* 8004B258 00046EB8 38 7F 00 1C */ addi r3, r31, 0x1c /* 8004B25C 00046EBC 38 84 AA 2C */ addi r4, r4, lbl_8040AA2C@l /* 8004B260 00046EC0 90 9F 00 10 */ stw r4, 0x10(r31) /* 8004B264 00046EC4 48 00 58 D1 */ bl func_80050B34 /* 8004B268 00046EC8 80 9F 00 0C */ lwz r4, 0xc(r31) /* 8004B26C 00046ECC 7F E3 FB 78 */ mr r3, r31 /* 8004B270 00046ED0 38 04 00 08 */ addi r0, r4, 8 /* 8004B274 00046ED4 90 1F 00 14 */ stw r0, 0x14(r31) /* 8004B278 00046ED8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004B27C 00046EDC 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004B280 00046EE0 7C 08 03 A6 */ mtlr r0 /* 8004B284 00046EE4 38 21 00 10 */ addi r1, r1, 0x10 /* 8004B288 00046EE8 4E 80 00 20 */ blr /* 8004B28C 00046EEC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004B290 00046EF0 7C 08 02 A6 */ mflr r0 /* 8004B294 00046EF4 2C 03 00 00 */ cmpwi r3, 0 /* 8004B298 00046EF8 90 01 00 14 */ stw r0, 0x14(r1) /* 8004B29C 00046EFC 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004B2A0 00046F00 7C 9F 23 78 */ mr r31, r4 /* 8004B2A4 00046F04 93 C1 00 08 */ stw r30, 8(r1) /* 8004B2A8 00046F08 7C 7E 1B 78 */ mr r30, r3 /* 8004B2AC 00046F0C 41 82 00 1C */ beq lbl_8004B2C8 /* 8004B2B0 00046F10 38 80 00 00 */ li r4, 0 /* 8004B2B4 00046F14 4B FF FE C1 */ bl func_8004B174 /* 8004B2B8 00046F18 2C 1F 00 00 */ cmpwi r31, 0 /* 8004B2BC 00046F1C 40 81 00 0C */ ble lbl_8004B2C8 /* 8004B2C0 00046F20 7F C3 F3 78 */ mr r3, r30 /* 8004B2C4 00046F24 48 18 F7 F5 */ bl __dl__FPv lbl_8004B2C8: /* 8004B2C8 00046F28 7F C3 F3 78 */ mr r3, r30 /* 8004B2CC 00046F2C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004B2D0 00046F30 83 C1 00 08 */ lwz r30, 8(r1) /* 8004B2D4 00046F34 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004B2D8 00046F38 7C 08 03 A6 */ mtlr r0 /* 8004B2DC 00046F3C 38 21 00 10 */ addi r1, r1, 0x10 /* 8004B2E0 00046F40 4E 80 00 20 */ blr /* 8004B2E4 00046F44 38 00 00 00 */ li r0, 0 /* 8004B2E8 00046F48 90 03 00 88 */ stw r0, 0x88(r3) /* 8004B2EC 00046F4C 48 00 00 04 */ b func_8004B2F0 .global func_8004B2F0 func_8004B2F0: /* 8004B2F0 00046F50 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004B2F4 00046F54 7C 08 02 A6 */ mflr r0 /* 8004B2F8 00046F58 C0 22 83 F8 */ lfs f1, lbl_806409F8-_SDA2_BASE_(r2) /* 8004B2FC 00046F5C 90 01 00 14 */ stw r0, 0x14(r1) /* 8004B300 00046F60 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004B304 00046F64 7C 7F 1B 78 */ mr r31, r3 /* 8004B308 00046F68 80 03 00 88 */ lwz r0, 0x88(r3) /* 8004B30C 00046F6C 80 83 00 14 */ lwz r4, 0x14(r3) /* 8004B310 00046F70 1C 00 00 0C */ mulli r0, r0, 0xc /* 8004B314 00046F74 7C 84 02 14 */ add r4, r4, r0 /* 8004B318 00046F78 38 84 00 08 */ addi r4, r4, 8 /* 8004B31C 00046F7C 90 83 00 18 */ stw r4, 0x18(r3) /* 8004B320 00046F80 C0 04 00 08 */ lfs f0, 8(r4) /* 8004B324 00046F84 FC 01 00 00 */ fcmpu cr0, f1, f0 /* 8004B328 00046F88 40 82 00 20 */ bne lbl_8004B348 /* 8004B32C 00046F8C 38 63 00 58 */ addi r3, r3, 0x58 /* 8004B330 00046F90 4B FF FA 31 */ bl func_8004AD60 /* 8004B334 00046F94 81 9F 00 10 */ lwz r12, 0x10(r31) /* 8004B338 00046F98 7F E3 FB 78 */ mr r3, r31 /* 8004B33C 00046F9C 81 8C 00 10 */ lwz r12, 0x10(r12) /* 8004B340 00046FA0 7D 89 03 A6 */ mtctr r12 /* 8004B344 00046FA4 4E 80 04 21 */ bctrl lbl_8004B348: /* 8004B348 00046FA8 38 7F 00 1C */ addi r3, r31, 0x1c /* 8004B34C 00046FAC 48 00 58 95 */ bl func_80050BE0 /* 8004B350 00046FB0 80 7F 00 18 */ lwz r3, 0x18(r31) /* 8004B354 00046FB4 38 9F 00 68 */ addi r4, r31, 0x68 /* 8004B358 00046FB8 4B FF F9 9D */ bl func_8004ACF4 /* 8004B35C 00046FBC 80 7F 00 18 */ lwz r3, 0x18(r31) /* 8004B360 00046FC0 38 9F 00 78 */ addi r4, r31, 0x78 /* 8004B364 00046FC4 38 63 00 04 */ addi r3, r3, 4 /* 8004B368 00046FC8 4B FF F9 8D */ bl func_8004ACF4 /* 8004B36C 00046FCC 80 DF 00 18 */ lwz r6, 0x18(r31) /* 8004B370 00046FD0 38 7F 00 1C */ addi r3, r31, 0x1c /* 8004B374 00046FD4 38 9F 00 68 */ addi r4, r31, 0x68 /* 8004B378 00046FD8 38 BF 00 78 */ addi r5, r31, 0x78 /* 8004B37C 00046FDC C0 26 00 08 */ lfs f1, 8(r6) /* 8004B380 00046FE0 38 DF 00 58 */ addi r6, r31, 0x58 /* 8004B384 00046FE4 38 E0 00 00 */ li r7, 0 /* 8004B388 00046FE8 48 00 57 C5 */ bl func_80050B4C /* 8004B38C 00046FEC 80 7F 00 88 */ lwz r3, 0x88(r31) /* 8004B390 00046FF0 38 00 00 01 */ li r0, 1 /* 8004B394 00046FF4 98 1F 00 00 */ stb r0, 0(r31) /* 8004B398 00046FF8 38 03 00 01 */ addi r0, r3, 1 /* 8004B39C 00046FFC 90 1F 00 88 */ stw r0, 0x88(r31) /* 8004B3A0 00047000 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004B3A4 00047004 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004B3A8 00047008 7C 08 03 A6 */ mtlr r0 /* 8004B3AC 0004700C 38 21 00 10 */ addi r1, r1, 0x10 /* 8004B3B0 00047010 4E 80 00 20 */ blr /* 8004B3B4 00047014 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8004B3B8 00047018 7C 08 02 A6 */ mflr r0 /* 8004B3BC 0004701C 90 01 00 24 */ stw r0, 0x24(r1) /* 8004B3C0 00047020 38 00 00 00 */ li r0, 0 /* 8004B3C4 00047024 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8004B3C8 00047028 7C 7F 1B 78 */ mr r31, r3 /* 8004B3CC 0004702C 98 03 00 00 */ stb r0, 0(r3) /* 8004B3D0 00047030 38 63 00 1C */ addi r3, r3, 0x1c /* 8004B3D4 00047034 48 00 58 0D */ bl func_80050BE0 /* 8004B3D8 00047038 80 9F 00 14 */ lwz r4, 0x14(r31) /* 8004B3DC 0004703C C0 22 83 F8 */ lfs f1, lbl_806409F8-_SDA2_BASE_(r2) /* 8004B3E0 00047040 88 64 00 05 */ lbz r3, 5(r4) /* 8004B3E4 00047044 38 03 FF FF */ addi r0, r3, -1 /* 8004B3E8 00047048 1C 00 00 0C */ mulli r0, r0, 0xc /* 8004B3EC 0004704C 7C 64 02 14 */ add r3, r4, r0 /* 8004B3F0 00047050 C0 03 00 10 */ lfs f0, 0x10(r3) /* 8004B3F4 00047054 FC 01 00 00 */ fcmpu cr0, f1, f0 /* 8004B3F8 00047058 41 82 00 24 */ beq lbl_8004B41C /* 8004B3FC 0004705C 38 00 00 80 */ li r0, 0x80 /* 8004B400 00047060 7F E3 FB 78 */ mr r3, r31 /* 8004B404 00047064 98 01 00 08 */ stb r0, 8(r1) /* 8004B408 00047068 38 81 00 08 */ addi r4, r1, 8 /* 8004B40C 0004706C 98 01 00 09 */ stb r0, 9(r1) /* 8004B410 00047070 98 01 00 0A */ stb r0, 0xa(r1) /* 8004B414 00047074 98 01 00 0B */ stb r0, 0xb(r1) /* 8004B418 00047078 48 00 00 B5 */ bl func_8004B4CC lbl_8004B41C: /* 8004B41C 0004707C 80 01 00 24 */ lwz r0, 0x24(r1) /* 8004B420 00047080 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8004B424 00047084 7C 08 03 A6 */ mtlr r0 /* 8004B428 00047088 38 21 00 20 */ addi r1, r1, 0x20 /* 8004B42C 0004708C 4E 80 00 20 */ blr /* 8004B430 00047090 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8004B434 00047094 7C 08 02 A6 */ mflr r0 /* 8004B438 00047098 90 01 00 24 */ stw r0, 0x24(r1) /* 8004B43C 0004709C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8004B440 000470A0 7C 7F 1B 78 */ mr r31, r3 /* 8004B444 000470A4 88 03 00 00 */ lbz r0, 0(r3) /* 8004B448 000470A8 2C 00 00 00 */ cmpwi r0, 0 /* 8004B44C 000470AC 41 82 00 6C */ beq lbl_8004B4B8 /* 8004B450 000470B0 81 83 00 54 */ lwz r12, 0x54(r3) /* 8004B454 000470B4 81 8C 00 08 */ lwz r12, 8(r12) /* 8004B458 000470B8 7D 89 03 A6 */ mtctr r12 /* 8004B45C 000470BC 38 63 00 1C */ addi r3, r3, 0x1c /* 8004B460 000470C0 4E 80 04 21 */ bctrl /* 8004B464 000470C4 2C 03 00 00 */ cmpwi r3, 0 /* 8004B468 000470C8 40 82 00 38 */ bne lbl_8004B4A0 /* 8004B46C 000470CC 80 7F 00 14 */ lwz r3, 0x14(r31) /* 8004B470 000470D0 80 9F 00 88 */ lwz r4, 0x88(r31) /* 8004B474 000470D4 88 03 00 05 */ lbz r0, 5(r3) /* 8004B478 000470D8 7C 04 00 00 */ cmpw r4, r0 /* 8004B47C 000470DC 41 80 00 1C */ blt lbl_8004B498 /* 8004B480 000470E0 81 9F 00 10 */ lwz r12, 0x10(r31) /* 8004B484 000470E4 7F E3 FB 78 */ mr r3, r31 /* 8004B488 000470E8 81 8C 00 10 */ lwz r12, 0x10(r12) /* 8004B48C 000470EC 7D 89 03 A6 */ mtctr r12 /* 8004B490 000470F0 4E 80 04 21 */ bctrl /* 8004B494 000470F4 48 00 00 0C */ b lbl_8004B4A0 lbl_8004B498: /* 8004B498 000470F8 7F E3 FB 78 */ mr r3, r31 /* 8004B49C 000470FC 4B FF FE 55 */ bl func_8004B2F0 lbl_8004B4A0: /* 8004B4A0 00047100 38 7F 00 58 */ addi r3, r31, 0x58 /* 8004B4A4 00047104 38 81 00 08 */ addi r4, r1, 8 /* 8004B4A8 00047108 4B FF F8 B9 */ bl func_8004AD60 /* 8004B4AC 0004710C 7F E3 FB 78 */ mr r3, r31 /* 8004B4B0 00047110 38 81 00 08 */ addi r4, r1, 8 /* 8004B4B4 00047114 48 00 00 19 */ bl func_8004B4CC lbl_8004B4B8: /* 8004B4B8 00047118 80 01 00 24 */ lwz r0, 0x24(r1) /* 8004B4BC 0004711C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8004B4C0 00047120 7C 08 03 A6 */ mtlr r0 /* 8004B4C4 00047124 38 21 00 20 */ addi r1, r1, 0x20 /* 8004B4C8 00047128 4E 80 00 20 */ blr .global func_8004B4CC func_8004B4CC: /* 8004B4CC 0004712C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8004B4D0 00047130 7C 08 02 A6 */ mflr r0 /* 8004B4D4 00047134 90 01 00 24 */ stw r0, 0x24(r1) /* 8004B4D8 00047138 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8004B4DC 0004713C 3B E0 00 00 */ li r31, 0 /* 8004B4E0 00047140 93 C1 00 18 */ stw r30, 0x18(r1) /* 8004B4E4 00047144 7C 9E 23 78 */ mr r30, r4 /* 8004B4E8 00047148 93 A1 00 14 */ stw r29, 0x14(r1) /* 8004B4EC 0004714C 93 81 00 10 */ stw r28, 0x10(r1) /* 8004B4F0 00047150 7C 7C 1B 78 */ mr r28, r3 /* 8004B4F4 00047154 48 00 23 19 */ bl func_8004D80C /* 8004B4F8 00047158 3B A3 34 C0 */ addi r29, r3, 0x34c0 /* 8004B4FC 0004715C 4B FF A0 95 */ bl func_80045590 /* 8004B500 00047160 80 9C 00 04 */ lwz r4, 4(r28) /* 8004B504 00047164 80 84 00 18 */ lwz r4, 0x18(r4) /* 8004B508 00047168 2C 04 00 00 */ cmpwi r4, 0 /* 8004B50C 0004716C 41 82 00 08 */ beq lbl_8004B514 /* 8004B510 00047170 83 E4 00 34 */ lwz r31, 0x34(r4) lbl_8004B514: /* 8004B514 00047174 80 9C 00 14 */ lwz r4, 0x14(r28) /* 8004B518 00047178 80 04 00 00 */ lwz r0, 0(r4) /* 8004B51C 0004717C 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e /* 8004B520 00047180 41 82 00 14 */ beq lbl_8004B534 /* 8004B524 00047184 38 00 00 80 */ li r0, 0x80 /* 8004B528 00047188 98 1E 00 00 */ stb r0, 0(r30) /* 8004B52C 0004718C 98 1E 00 01 */ stb r0, 1(r30) /* 8004B530 00047190 98 1E 00 02 */ stb r0, 2(r30) lbl_8004B534: /* 8004B534 00047194 80 9C 00 14 */ lwz r4, 0x14(r28) /* 8004B538 00047198 80 04 00 00 */ lwz r0, 0(r4) /* 8004B53C 0004719C 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 8004B540 000471A0 40 82 00 0C */ bne lbl_8004B54C /* 8004B544 000471A4 38 00 00 FF */ li r0, 0xff /* 8004B548 000471A8 98 1E 00 03 */ stb r0, 3(r30) lbl_8004B54C: /* 8004B54C 000471AC 80 9C 00 14 */ lwz r4, 0x14(r28) /* 8004B550 000471B0 88 04 00 04 */ lbz r0, 4(r4) /* 8004B554 000471B4 2C 00 00 01 */ cmpwi r0, 1 /* 8004B558 000471B8 41 82 00 30 */ beq lbl_8004B588 /* 8004B55C 000471BC 40 80 00 10 */ bge lbl_8004B56C /* 8004B560 000471C0 2C 00 00 00 */ cmpwi r0, 0 /* 8004B564 000471C4 40 80 00 14 */ bge lbl_8004B578 /* 8004B568 000471C8 48 00 00 5C */ b lbl_8004B5C4 lbl_8004B56C: /* 8004B56C 000471CC 2C 00 00 03 */ cmpwi r0, 3 /* 8004B570 000471D0 40 80 00 54 */ bge lbl_8004B5C4 /* 8004B574 000471D4 48 00 00 24 */ b lbl_8004B598 lbl_8004B578: /* 8004B578 000471D8 7F A3 EB 78 */ mr r3, r29 /* 8004B57C 000471DC 7F C4 F3 78 */ mr r4, r30 /* 8004B580 000471E0 48 00 36 21 */ bl func_8004EBA0 /* 8004B584 000471E4 48 00 00 40 */ b lbl_8004B5C4 lbl_8004B588: /* 8004B588 000471E8 38 80 01 00 */ li r4, 0x100 /* 8004B58C 000471EC 38 A0 00 00 */ li r5, 0 /* 8004B590 000471F0 4B FF A5 71 */ bl func_80045B00 /* 8004B594 000471F4 7C 7F 1B 78 */ mr r31, r3 lbl_8004B598: /* 8004B598 000471F8 80 7C 00 14 */ lwz r3, 0x14(r28) /* 8004B59C 000471FC 80 03 00 00 */ lwz r0, 0(r3) /* 8004B5A0 00047200 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d /* 8004B5A4 00047204 41 82 00 14 */ beq lbl_8004B5B8 /* 8004B5A8 00047208 7F E3 FB 78 */ mr r3, r31 /* 8004B5AC 0004720C 7F C4 F3 78 */ mr r4, r30 /* 8004B5B0 00047210 4B FF 0D 15 */ bl func_8003C2C4 /* 8004B5B4 00047214 48 00 00 10 */ b lbl_8004B5C4 lbl_8004B5B8: /* 8004B5B8 00047218 7F E3 FB 78 */ mr r3, r31 /* 8004B5BC 0004721C 7F C4 F3 78 */ mr r4, r30 /* 8004B5C0 00047220 4B FF 0E FD */ bl func_8003C4BC lbl_8004B5C4: /* 8004B5C4 00047224 80 01 00 24 */ lwz r0, 0x24(r1) /* 8004B5C8 00047228 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8004B5CC 0004722C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8004B5D0 00047230 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8004B5D4 00047234 83 81 00 10 */ lwz r28, 0x10(r1) /* 8004B5D8 00047238 7C 08 03 A6 */ mtlr r0 /* 8004B5DC 0004723C 38 21 00 20 */ addi r1, r1, 0x20 /* 8004B5E0 00047240 4E 80 00 20 */ blr /* 8004B5E4 00047244 80 83 00 14 */ lwz r4, 0x14(r3) /* 8004B5E8 00047248 39 00 00 00 */ li r8, 0 /* 8004B5EC 0004724C C0 22 83 F8 */ lfs f1, lbl_806409F8-_SDA2_BASE_(r2) /* 8004B5F0 00047250 88 E4 00 05 */ lbz r7, 5(r4) /* 8004B5F4 00047254 2C 87 00 00 */ cmpwi cr1, r7, 0 /* 8004B5F8 00047258 4C 85 00 20 */ blelr cr1 /* 8004B5FC 0004725C 2C 07 00 08 */ cmpwi r7, 8 /* 8004B600 00047260 38 A7 FF F8 */ addi r5, r7, -8 /* 8004B604 00047264 40 81 00 94 */ ble lbl_8004B698 /* 8004B608 00047268 38 C0 00 00 */ li r6, 0 /* 8004B60C 0004726C 41 84 00 18 */ blt cr1, lbl_8004B624 /* 8004B610 00047270 3C 80 80 00 */ lis r4, 0x7FFFFFFE@ha /* 8004B614 00047274 38 04 FF FE */ addi r0, r4, 0x7FFFFFFE@l /* 8004B618 00047278 7C 07 00 00 */ cmpw r7, r0 /* 8004B61C 0004727C 41 81 00 08 */ bgt lbl_8004B624 /* 8004B620 00047280 38 C0 00 01 */ li r6, 1 lbl_8004B624: /* 8004B624 00047284 2C 06 00 00 */ cmpwi r6, 0 /* 8004B628 00047288 41 82 00 70 */ beq lbl_8004B698 /* 8004B62C 0004728C 38 05 00 07 */ addi r0, r5, 7 /* 8004B630 00047290 38 80 00 00 */ li r4, 0 /* 8004B634 00047294 54 00 E8 FE */ srwi r0, r0, 3 /* 8004B638 00047298 7C 09 03 A6 */ mtctr r0 /* 8004B63C 0004729C 2C 05 00 00 */ cmpwi r5, 0 /* 8004B640 000472A0 40 81 00 58 */ ble lbl_8004B698 lbl_8004B644: /* 8004B644 000472A4 80 03 00 14 */ lwz r0, 0x14(r3) /* 8004B648 000472A8 39 08 00 08 */ addi r8, r8, 8 /* 8004B64C 000472AC 7C A0 22 14 */ add r5, r0, r4 /* 8004B650 000472B0 38 84 00 60 */ addi r4, r4, 0x60 /* 8004B654 000472B4 C0 45 00 10 */ lfs f2, 0x10(r5) /* 8004B658 000472B8 C0 05 00 1C */ lfs f0, 0x1c(r5) /* 8004B65C 000472BC EC 21 10 2A */ fadds f1, f1, f2 /* 8004B660 000472C0 C0 C5 00 28 */ lfs f6, 0x28(r5) /* 8004B664 000472C4 C0 A5 00 34 */ lfs f5, 0x34(r5) /* 8004B668 000472C8 C0 85 00 40 */ lfs f4, 0x40(r5) /* 8004B66C 000472CC EC 21 00 2A */ fadds f1, f1, f0 /* 8004B670 000472D0 C0 65 00 4C */ lfs f3, 0x4c(r5) /* 8004B674 000472D4 C0 45 00 58 */ lfs f2, 0x58(r5) /* 8004B678 000472D8 C0 05 00 64 */ lfs f0, 0x64(r5) /* 8004B67C 000472DC EC 21 30 2A */ fadds f1, f1, f6 /* 8004B680 000472E0 EC 21 28 2A */ fadds f1, f1, f5 /* 8004B684 000472E4 EC 21 20 2A */ fadds f1, f1, f4 /* 8004B688 000472E8 EC 21 18 2A */ fadds f1, f1, f3 /* 8004B68C 000472EC EC 21 10 2A */ fadds f1, f1, f2 /* 8004B690 000472F0 EC 21 00 2A */ fadds f1, f1, f0 /* 8004B694 000472F4 42 00 FF B0 */ bdnz lbl_8004B644 lbl_8004B698: /* 8004B698 000472F8 80 A3 00 14 */ lwz r5, 0x14(r3) /* 8004B69C 000472FC 1C 88 00 0C */ mulli r4, r8, 0xc /* 8004B6A0 00047300 88 65 00 05 */ lbz r3, 5(r5) /* 8004B6A4 00047304 7C 08 18 50 */ subf r0, r8, r3 /* 8004B6A8 00047308 7C 09 03 A6 */ mtctr r0 /* 8004B6AC 0004730C 7C 08 18 00 */ cmpw r8, r3 /* 8004B6B0 00047310 4C 80 00 20 */ bgelr lbl_8004B6B4: /* 8004B6B4 00047314 7C 65 22 14 */ add r3, r5, r4 /* 8004B6B8 00047318 38 84 00 0C */ addi r4, r4, 0xc /* 8004B6BC 0004731C C0 03 00 10 */ lfs f0, 0x10(r3) /* 8004B6C0 00047320 EC 21 00 2A */ fadds f1, f1, f0 /* 8004B6C4 00047324 42 00 FF F0 */ bdnz lbl_8004B6B4 /* 8004B6C8 00047328 4E 80 00 20 */ blr .global func_8004B6CC func_8004B6CC: /* 8004B6CC 0004732C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004B6D0 00047330 7C 08 02 A6 */ mflr r0 /* 8004B6D4 00047334 90 01 00 14 */ stw r0, 0x14(r1) /* 8004B6D8 00047338 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004B6DC 0004733C 7C 7F 1B 78 */ mr r31, r3 /* 8004B6E0 00047340 4B FF FA 71 */ bl func_8004B150 /* 8004B6E4 00047344 3C 80 80 41 */ lis r4, lbl_8040A9E4@ha /* 8004B6E8 00047348 7F E3 FB 78 */ mr r3, r31 /* 8004B6EC 0004734C 38 84 A9 E4 */ addi r4, r4, lbl_8040A9E4@l /* 8004B6F0 00047350 90 9F 00 10 */ stw r4, 0x10(r31) /* 8004B6F4 00047354 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004B6F8 00047358 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004B6FC 0004735C 7C 08 03 A6 */ mtlr r0 /* 8004B700 00047360 38 21 00 10 */ addi r1, r1, 0x10 /* 8004B704 00047364 4E 80 00 20 */ blr /* 8004B708 00047368 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004B70C 0004736C 7C 08 02 A6 */ mflr r0 /* 8004B710 00047370 2C 03 00 00 */ cmpwi r3, 0 /* 8004B714 00047374 90 01 00 14 */ stw r0, 0x14(r1) /* 8004B718 00047378 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004B71C 0004737C 7C 9F 23 78 */ mr r31, r4 /* 8004B720 00047380 93 C1 00 08 */ stw r30, 8(r1) /* 8004B724 00047384 7C 7E 1B 78 */ mr r30, r3 /* 8004B728 00047388 41 82 00 1C */ beq lbl_8004B744 /* 8004B72C 0004738C 38 80 00 00 */ li r4, 0 /* 8004B730 00047390 4B FF FA 45 */ bl func_8004B174 /* 8004B734 00047394 2C 1F 00 00 */ cmpwi r31, 0 /* 8004B738 00047398 40 81 00 0C */ ble lbl_8004B744 /* 8004B73C 0004739C 7F C3 F3 78 */ mr r3, r30 /* 8004B740 000473A0 48 18 F3 79 */ bl __dl__FPv lbl_8004B744: /* 8004B744 000473A4 7F C3 F3 78 */ mr r3, r30 /* 8004B748 000473A8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004B74C 000473AC 83 C1 00 08 */ lwz r30, 8(r1) /* 8004B750 000473B0 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004B754 000473B4 7C 08 03 A6 */ mtlr r0 /* 8004B758 000473B8 38 21 00 10 */ addi r1, r1, 0x10 /* 8004B75C 000473BC 4E 80 00 20 */ blr /* 8004B760 000473C0 4E 80 00 20 */ blr /* 8004B764 000473C4 4E 80 00 20 */ blr /* 8004B768 000473C8 4E 80 00 20 */ blr .global func_8004B76C func_8004B76C: /* 8004B76C 000473CC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004B770 000473D0 7C 08 02 A6 */ mflr r0 /* 8004B774 000473D4 90 01 00 14 */ stw r0, 0x14(r1) /* 8004B778 000473D8 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004B77C 000473DC 7C 7F 1B 78 */ mr r31, r3 /* 8004B780 000473E0 4B FF F9 D1 */ bl func_8004B150 /* 8004B784 000473E4 3C 80 80 41 */ lis r4, lbl_8040A998@ha /* 8004B788 000473E8 7F E3 FB 78 */ mr r3, r31 /* 8004B78C 000473EC 38 84 A9 98 */ addi r4, r4, lbl_8040A998@l /* 8004B790 000473F0 90 9F 00 10 */ stw r4, 0x10(r31) /* 8004B794 000473F4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004B798 000473F8 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004B79C 000473FC 7C 08 03 A6 */ mtlr r0 /* 8004B7A0 00047400 38 21 00 10 */ addi r1, r1, 0x10 /* 8004B7A4 00047404 4E 80 00 20 */ blr /* 8004B7A8 00047408 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004B7AC 0004740C 7C 08 02 A6 */ mflr r0 /* 8004B7B0 00047410 2C 03 00 00 */ cmpwi r3, 0 /* 8004B7B4 00047414 90 01 00 14 */ stw r0, 0x14(r1) /* 8004B7B8 00047418 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004B7BC 0004741C 7C 9F 23 78 */ mr r31, r4 /* 8004B7C0 00047420 93 C1 00 08 */ stw r30, 8(r1) /* 8004B7C4 00047424 7C 7E 1B 78 */ mr r30, r3 /* 8004B7C8 00047428 41 82 00 1C */ beq lbl_8004B7E4 /* 8004B7CC 0004742C 38 80 00 00 */ li r4, 0 /* 8004B7D0 00047430 4B FF F9 A5 */ bl func_8004B174 /* 8004B7D4 00047434 2C 1F 00 00 */ cmpwi r31, 0 /* 8004B7D8 00047438 40 81 00 0C */ ble lbl_8004B7E4 /* 8004B7DC 0004743C 7F C3 F3 78 */ mr r3, r30 /* 8004B7E0 00047440 48 18 F2 D9 */ bl __dl__FPv lbl_8004B7E4: /* 8004B7E4 00047444 7F C3 F3 78 */ mr r3, r30 /* 8004B7E8 00047448 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004B7EC 0004744C 83 C1 00 08 */ lwz r30, 8(r1) /* 8004B7F0 00047450 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004B7F4 00047454 7C 08 03 A6 */ mtlr r0 /* 8004B7F8 00047458 38 21 00 10 */ addi r1, r1, 0x10 /* 8004B7FC 0004745C 4E 80 00 20 */ blr /* 8004B800 00047460 4E 80 00 20 */ blr /* 8004B804 00047464 4E 80 00 20 */ blr /* 8004B808 00047468 4E 80 00 20 */ blr .global func_8004B80C func_8004B80C: /* 8004B80C 0004746C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004B810 00047470 7C 08 02 A6 */ mflr r0 /* 8004B814 00047474 90 01 00 14 */ stw r0, 0x14(r1) /* 8004B818 00047478 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004B81C 0004747C 7C 7F 1B 78 */ mr r31, r3 /* 8004B820 00047480 4B FF F9 31 */ bl func_8004B150 /* 8004B824 00047484 3C 80 80 41 */ lis r4, lbl_8040A954@ha /* 8004B828 00047488 38 7F 00 1C */ addi r3, r31, 0x1c /* 8004B82C 0004748C 38 84 A9 54 */ addi r4, r4, lbl_8040A954@l /* 8004B830 00047490 90 9F 00 10 */ stw r4, 0x10(r31) /* 8004B834 00047494 48 00 4A F1 */ bl func_80050324 /* 8004B838 00047498 80 9F 00 0C */ lwz r4, 0xc(r31) /* 8004B83C 0004749C 38 00 00 00 */ li r0, 0 /* 8004B840 000474A0 90 1F 00 44 */ stw r0, 0x44(r31) /* 8004B844 000474A4 7F E3 FB 78 */ mr r3, r31 /* 8004B848 000474A8 38 04 00 08 */ addi r0, r4, 8 /* 8004B84C 000474AC 90 1F 00 14 */ stw r0, 0x14(r31) /* 8004B850 000474B0 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004B854 000474B4 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004B858 000474B8 7C 08 03 A6 */ mtlr r0 /* 8004B85C 000474BC 38 21 00 10 */ addi r1, r1, 0x10 /* 8004B860 000474C0 4E 80 00 20 */ blr /* 8004B864 000474C4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004B868 000474C8 7C 08 02 A6 */ mflr r0 /* 8004B86C 000474CC 2C 03 00 00 */ cmpwi r3, 0 /* 8004B870 000474D0 90 01 00 14 */ stw r0, 0x14(r1) /* 8004B874 000474D4 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004B878 000474D8 7C 9F 23 78 */ mr r31, r4 /* 8004B87C 000474DC 93 C1 00 08 */ stw r30, 8(r1) /* 8004B880 000474E0 7C 7E 1B 78 */ mr r30, r3 /* 8004B884 000474E4 41 82 00 1C */ beq lbl_8004B8A0 /* 8004B888 000474E8 38 80 00 00 */ li r4, 0 /* 8004B88C 000474EC 4B FF F8 E9 */ bl func_8004B174 /* 8004B890 000474F0 2C 1F 00 00 */ cmpwi r31, 0 /* 8004B894 000474F4 40 81 00 0C */ ble lbl_8004B8A0 /* 8004B898 000474F8 7F C3 F3 78 */ mr r3, r30 /* 8004B89C 000474FC 48 18 F2 1D */ bl __dl__FPv lbl_8004B8A0: /* 8004B8A0 00047500 7F C3 F3 78 */ mr r3, r30 /* 8004B8A4 00047504 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004B8A8 00047508 83 C1 00 08 */ lwz r30, 8(r1) /* 8004B8AC 0004750C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004B8B0 00047510 7C 08 03 A6 */ mtlr r0 /* 8004B8B4 00047514 38 21 00 10 */ addi r1, r1, 0x10 /* 8004B8B8 00047518 4E 80 00 20 */ blr /* 8004B8BC 0004751C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004B8C0 00047520 7C 08 02 A6 */ mflr r0 /* 8004B8C4 00047524 90 01 00 14 */ stw r0, 0x14(r1) /* 8004B8C8 00047528 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004B8CC 0004752C 7C 7F 1B 78 */ mr r31, r3 /* 8004B8D0 00047530 4B FF F9 15 */ bl func_8004B1E4 /* 8004B8D4 00047534 2C 03 00 00 */ cmpwi r3, 0 /* 8004B8D8 00047538 41 82 00 14 */ beq lbl_8004B8EC /* 8004B8DC 0004753C 38 00 00 00 */ li r0, 0 /* 8004B8E0 00047540 7F E3 FB 78 */ mr r3, r31 /* 8004B8E4 00047544 90 1F 00 44 */ stw r0, 0x44(r31) /* 8004B8E8 00047548 48 00 00 19 */ bl func_8004B900 lbl_8004B8EC: /* 8004B8EC 0004754C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004B8F0 00047550 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004B8F4 00047554 7C 08 03 A6 */ mtlr r0 /* 8004B8F8 00047558 38 21 00 10 */ addi r1, r1, 0x10 /* 8004B8FC 0004755C 4E 80 00 20 */ blr .global func_8004B900 func_8004B900: /* 8004B900 00047560 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004B904 00047564 7C 08 02 A6 */ mflr r0 /* 8004B908 00047568 C0 22 83 F8 */ lfs f1, lbl_806409F8-_SDA2_BASE_(r2) /* 8004B90C 0004756C 90 01 00 14 */ stw r0, 0x14(r1) /* 8004B910 00047570 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004B914 00047574 7C 7F 1B 78 */ mr r31, r3 /* 8004B918 00047578 80 03 00 44 */ lwz r0, 0x44(r3) /* 8004B91C 0004757C 80 83 00 14 */ lwz r4, 0x14(r3) /* 8004B920 00047580 1C 00 00 0C */ mulli r0, r0, 0xc /* 8004B924 00047584 7C 84 02 14 */ add r4, r4, r0 /* 8004B928 00047588 38 84 00 08 */ addi r4, r4, 8 /* 8004B92C 0004758C 90 83 00 18 */ stw r4, 0x18(r3) /* 8004B930 00047590 C0 04 00 08 */ lfs f0, 8(r4) /* 8004B934 00047594 FC 01 00 00 */ fcmpu cr0, f1, f0 /* 8004B938 00047598 40 82 00 1C */ bne lbl_8004B954 /* 8004B93C 0004759C C0 04 00 00 */ lfs f0, 0(r4) /* 8004B940 000475A0 D0 03 00 40 */ stfs f0, 0x40(r3) /* 8004B944 000475A4 81 83 00 10 */ lwz r12, 0x10(r3) /* 8004B948 000475A8 81 8C 00 10 */ lwz r12, 0x10(r12) /* 8004B94C 000475AC 7D 89 03 A6 */ mtctr r12 /* 8004B950 000475B0 4E 80 04 21 */ bctrl lbl_8004B954: /* 8004B954 000475B4 80 9F 00 18 */ lwz r4, 0x18(r31) /* 8004B958 000475B8 38 7F 00 1C */ addi r3, r31, 0x1c /* 8004B95C 000475BC 38 DF 00 40 */ addi r6, r31, 0x40 /* 8004B960 000475C0 38 E0 00 00 */ li r7, 0 /* 8004B964 000475C4 C0 24 00 08 */ lfs f1, 8(r4) /* 8004B968 000475C8 38 A4 00 04 */ addi r5, r4, 4 /* 8004B96C 000475CC 48 00 49 D1 */ bl func_8005033C /* 8004B970 000475D0 80 7F 00 44 */ lwz r3, 0x44(r31) /* 8004B974 000475D4 38 00 00 01 */ li r0, 1 /* 8004B978 000475D8 98 1F 00 00 */ stb r0, 0(r31) /* 8004B97C 000475DC 38 03 00 01 */ addi r0, r3, 1 /* 8004B980 000475E0 90 1F 00 44 */ stw r0, 0x44(r31) /* 8004B984 000475E4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004B988 000475E8 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004B98C 000475EC 7C 08 03 A6 */ mtlr r0 /* 8004B990 000475F0 38 21 00 10 */ addi r1, r1, 0x10 /* 8004B994 000475F4 4E 80 00 20 */ blr /* 8004B998 000475F8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004B99C 000475FC 7C 08 02 A6 */ mflr r0 /* 8004B9A0 00047600 90 01 00 14 */ stw r0, 0x14(r1) /* 8004B9A4 00047604 38 00 00 00 */ li r0, 0 /* 8004B9A8 00047608 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004B9AC 0004760C 7C 7F 1B 78 */ mr r31, r3 /* 8004B9B0 00047610 98 03 00 00 */ stb r0, 0(r3) /* 8004B9B4 00047614 38 63 00 1C */ addi r3, r3, 0x1c /* 8004B9B8 00047618 48 00 49 D1 */ bl func_80050388 /* 8004B9BC 0004761C 7F E3 FB 78 */ mr r3, r31 /* 8004B9C0 00047620 4B FF F8 25 */ bl func_8004B1E4 /* 8004B9C4 00047624 2C 03 00 00 */ cmpwi r3, 0 /* 8004B9C8 00047628 41 82 00 0C */ beq lbl_8004B9D4 /* 8004B9CC 0004762C 38 80 00 00 */ li r4, 0 /* 8004B9D0 00047630 48 1A A7 4D */ bl func_801F611C lbl_8004B9D4: /* 8004B9D4 00047634 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004B9D8 00047638 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004B9DC 0004763C 7C 08 03 A6 */ mtlr r0 /* 8004B9E0 00047640 38 21 00 10 */ addi r1, r1, 0x10 /* 8004B9E4 00047644 4E 80 00 20 */ blr /* 8004B9E8 00047648 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8004B9EC 0004764C 7C 08 02 A6 */ mflr r0 /* 8004B9F0 00047650 90 01 00 34 */ stw r0, 0x34(r1) /* 8004B9F4 00047654 DB E1 00 20 */ stfd f31, 0x20(r1) /* 8004B9F8 00047658 F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0 /* 8004B9FC 0004765C FF E0 08 90 */ fmr f31, f1 /* 8004BA00 00047660 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8004BA04 00047664 93 C1 00 18 */ stw r30, 0x18(r1) /* 8004BA08 00047668 7C 7E 1B 78 */ mr r30, r3 /* 8004BA0C 0004766C 4B FE 76 7D */ bl func_80033088 /* 8004BA10 00047670 88 1E 00 00 */ lbz r0, 0(r30) /* 8004BA14 00047674 2C 00 00 00 */ cmpwi r0, 0 /* 8004BA18 00047678 41 82 00 B8 */ beq lbl_8004BAD0 /* 8004BA1C 0004767C 81 9E 00 3C */ lwz r12, 0x3c(r30) /* 8004BA20 00047680 FC 20 F8 90 */ fmr f1, f31 /* 8004BA24 00047684 38 7E 00 1C */ addi r3, r30, 0x1c /* 8004BA28 00047688 81 8C 00 08 */ lwz r12, 8(r12) /* 8004BA2C 0004768C 7D 89 03 A6 */ mtctr r12 /* 8004BA30 00047690 4E 80 04 21 */ bctrl /* 8004BA34 00047694 2C 03 00 00 */ cmpwi r3, 0 /* 8004BA38 00047698 40 82 00 38 */ bne lbl_8004BA70 /* 8004BA3C 0004769C 80 7E 00 14 */ lwz r3, 0x14(r30) /* 8004BA40 000476A0 80 9E 00 44 */ lwz r4, 0x44(r30) /* 8004BA44 000476A4 A0 03 00 06 */ lhz r0, 6(r3) /* 8004BA48 000476A8 7C 04 00 00 */ cmpw r4, r0 /* 8004BA4C 000476AC 41 80 00 1C */ blt lbl_8004BA68 /* 8004BA50 000476B0 81 9E 00 10 */ lwz r12, 0x10(r30) /* 8004BA54 000476B4 7F C3 F3 78 */ mr r3, r30 /* 8004BA58 000476B8 81 8C 00 10 */ lwz r12, 0x10(r12) /* 8004BA5C 000476BC 7D 89 03 A6 */ mtctr r12 /* 8004BA60 000476C0 4E 80 04 21 */ bctrl /* 8004BA64 000476C4 48 00 00 0C */ b lbl_8004BA70 lbl_8004BA68: /* 8004BA68 000476C8 7F C3 F3 78 */ mr r3, r30 /* 8004BA6C 000476CC 4B FF FE 95 */ bl func_8004B900 lbl_8004BA70: /* 8004BA70 000476D0 7F C3 F3 78 */ mr r3, r30 /* 8004BA74 000476D4 4B FF F7 71 */ bl func_8004B1E4 /* 8004BA78 000476D8 2C 03 00 00 */ cmpwi r3, 0 /* 8004BA7C 000476DC 7C 7F 1B 78 */ mr r31, r3 /* 8004BA80 000476E0 41 82 00 50 */ beq lbl_8004BAD0 /* 8004BA84 000476E4 C0 22 83 FC */ lfs f1, lbl_806409FC-_SDA2_BASE_(r2) /* 8004BA88 000476E8 C0 1E 00 40 */ lfs f0, 0x40(r30) /* 8004BA8C 000476EC EC 41 00 32 */ fmuls f2, f1, f0 /* 8004BA90 000476F0 FC 02 08 40 */ fcmpo cr0, f2, f1 /* 8004BA94 000476F4 40 81 00 08 */ ble lbl_8004BA9C /* 8004BA98 000476F8 FC 40 08 90 */ fmr f2, f1 lbl_8004BA9C: /* 8004BA9C 000476FC C0 02 83 F8 */ lfs f0, lbl_806409F8-_SDA2_BASE_(r2) /* 8004BAA0 00047700 FC 02 00 40 */ fcmpo cr0, f2, f0 /* 8004BAA4 00047704 40 80 00 08 */ bge lbl_8004BAAC /* 8004BAA8 00047708 FC 40 00 90 */ fmr f2, f0 lbl_8004BAAC: /* 8004BAAC 0004770C FC 00 10 1E */ fctiwz f0, f2 /* 8004BAB0 00047710 7F E3 FB 78 */ mr r3, r31 /* 8004BAB4 00047714 D8 01 00 08 */ stfd f0, 8(r1) /* 8004BAB8 00047718 80 81 00 0C */ lwz r4, 0xc(r1) /* 8004BABC 0004771C 54 84 06 3E */ clrlwi r4, r4, 0x18 /* 8004BAC0 00047720 48 1A A6 5D */ bl func_801F611C /* 8004BAC4 00047724 7F E3 FB 78 */ mr r3, r31 /* 8004BAC8 00047728 38 80 00 00 */ li r4, 0 /* 8004BACC 0004772C 48 1A A6 8D */ bl func_801F6158 lbl_8004BAD0: /* 8004BAD0 00047730 E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0 /* 8004BAD4 00047734 80 01 00 34 */ lwz r0, 0x34(r1) /* 8004BAD8 00047738 CB E1 00 20 */ lfd f31, 0x20(r1) /* 8004BADC 0004773C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8004BAE0 00047740 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8004BAE4 00047744 7C 08 03 A6 */ mtlr r0 /* 8004BAE8 00047748 38 21 00 30 */ addi r1, r1, 0x30 /* 8004BAEC 0004774C 4E 80 00 20 */ blr /* 8004BAF0 00047750 80 83 00 14 */ lwz r4, 0x14(r3) /* 8004BAF4 00047754 39 00 00 00 */ li r8, 0 /* 8004BAF8 00047758 C0 22 83 F8 */ lfs f1, lbl_806409F8-_SDA2_BASE_(r2) /* 8004BAFC 0004775C A0 E4 00 06 */ lhz r7, 6(r4) /* 8004BB00 00047760 2C 87 00 00 */ cmpwi cr1, r7, 0 /* 8004BB04 00047764 4C 85 00 20 */ blelr cr1 /* 8004BB08 00047768 2C 07 00 08 */ cmpwi r7, 8 /* 8004BB0C 0004776C 38 A7 FF F8 */ addi r5, r7, -8 /* 8004BB10 00047770 40 81 00 94 */ ble lbl_8004BBA4 /* 8004BB14 00047774 38 C0 00 00 */ li r6, 0 /* 8004BB18 00047778 41 84 00 18 */ blt cr1, lbl_8004BB30 /* 8004BB1C 0004777C 3C 80 80 00 */ lis r4, 0x7FFFFFFE@ha /* 8004BB20 00047780 38 04 FF FE */ addi r0, r4, 0x7FFFFFFE@l /* 8004BB24 00047784 7C 07 00 00 */ cmpw r7, r0 /* 8004BB28 00047788 41 81 00 08 */ bgt lbl_8004BB30 /* 8004BB2C 0004778C 38 C0 00 01 */ li r6, 1 lbl_8004BB30: /* 8004BB30 00047790 2C 06 00 00 */ cmpwi r6, 0 /* 8004BB34 00047794 41 82 00 70 */ beq lbl_8004BBA4 /* 8004BB38 00047798 38 05 00 07 */ addi r0, r5, 7 /* 8004BB3C 0004779C 38 80 00 00 */ li r4, 0 /* 8004BB40 000477A0 54 00 E8 FE */ srwi r0, r0, 3 /* 8004BB44 000477A4 7C 09 03 A6 */ mtctr r0 /* 8004BB48 000477A8 2C 05 00 00 */ cmpwi r5, 0 /* 8004BB4C 000477AC 40 81 00 58 */ ble lbl_8004BBA4 lbl_8004BB50: /* 8004BB50 000477B0 80 03 00 14 */ lwz r0, 0x14(r3) /* 8004BB54 000477B4 39 08 00 08 */ addi r8, r8, 8 /* 8004BB58 000477B8 7C A0 22 14 */ add r5, r0, r4 /* 8004BB5C 000477BC 38 84 00 60 */ addi r4, r4, 0x60 /* 8004BB60 000477C0 C0 45 00 10 */ lfs f2, 0x10(r5) /* 8004BB64 000477C4 C0 05 00 1C */ lfs f0, 0x1c(r5) /* 8004BB68 000477C8 EC 21 10 2A */ fadds f1, f1, f2 /* 8004BB6C 000477CC C0 C5 00 28 */ lfs f6, 0x28(r5) /* 8004BB70 000477D0 C0 A5 00 34 */ lfs f5, 0x34(r5) /* 8004BB74 000477D4 C0 85 00 40 */ lfs f4, 0x40(r5) /* 8004BB78 000477D8 EC 21 00 2A */ fadds f1, f1, f0 /* 8004BB7C 000477DC C0 65 00 4C */ lfs f3, 0x4c(r5) /* 8004BB80 000477E0 C0 45 00 58 */ lfs f2, 0x58(r5) /* 8004BB84 000477E4 C0 05 00 64 */ lfs f0, 0x64(r5) /* 8004BB88 000477E8 EC 21 30 2A */ fadds f1, f1, f6 /* 8004BB8C 000477EC EC 21 28 2A */ fadds f1, f1, f5 /* 8004BB90 000477F0 EC 21 20 2A */ fadds f1, f1, f4 /* 8004BB94 000477F4 EC 21 18 2A */ fadds f1, f1, f3 /* 8004BB98 000477F8 EC 21 10 2A */ fadds f1, f1, f2 /* 8004BB9C 000477FC EC 21 00 2A */ fadds f1, f1, f0 /* 8004BBA0 00047800 42 00 FF B0 */ bdnz lbl_8004BB50 lbl_8004BBA4: /* 8004BBA4 00047804 80 A3 00 14 */ lwz r5, 0x14(r3) /* 8004BBA8 00047808 1C 88 00 0C */ mulli r4, r8, 0xc /* 8004BBAC 0004780C A0 65 00 06 */ lhz r3, 6(r5) /* 8004BBB0 00047810 7C 08 18 50 */ subf r0, r8, r3 /* 8004BBB4 00047814 7C 09 03 A6 */ mtctr r0 /* 8004BBB8 00047818 7C 08 18 00 */ cmpw r8, r3 /* 8004BBBC 0004781C 4C 80 00 20 */ bgelr lbl_8004BBC0: /* 8004BBC0 00047820 7C 65 22 14 */ add r3, r5, r4 /* 8004BBC4 00047824 38 84 00 0C */ addi r4, r4, 0xc /* 8004BBC8 00047828 C0 03 00 10 */ lfs f0, 0x10(r3) /* 8004BBCC 0004782C EC 21 00 2A */ fadds f1, f1, f0 /* 8004BBD0 00047830 42 00 FF F0 */ bdnz lbl_8004BBC0 /* 8004BBD4 00047834 4E 80 00 20 */ blr .global func_8004BBD8 func_8004BBD8: /* 8004BBD8 00047838 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004BBDC 0004783C 7C 08 02 A6 */ mflr r0 /* 8004BBE0 00047840 90 01 00 14 */ stw r0, 0x14(r1) /* 8004BBE4 00047844 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004BBE8 00047848 7C 7F 1B 78 */ mr r31, r3 /* 8004BBEC 0004784C 4B FF F5 65 */ bl func_8004B150 /* 8004BBF0 00047850 3C 80 80 41 */ lis r4, lbl_8040A90C@ha /* 8004BBF4 00047854 38 7F 00 1C */ addi r3, r31, 0x1c /* 8004BBF8 00047858 38 84 A9 0C */ addi r4, r4, lbl_8040A90C@l /* 8004BBFC 0004785C 90 9F 00 10 */ stw r4, 0x10(r31) /* 8004BC00 00047860 48 00 47 25 */ bl func_80050324 /* 8004BC04 00047864 80 9F 00 0C */ lwz r4, 0xc(r31) /* 8004BC08 00047868 7F E3 FB 78 */ mr r3, r31 /* 8004BC0C 0004786C 38 04 00 08 */ addi r0, r4, 8 /* 8004BC10 00047870 90 1F 00 14 */ stw r0, 0x14(r31) /* 8004BC14 00047874 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004BC18 00047878 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004BC1C 0004787C 7C 08 03 A6 */ mtlr r0 /* 8004BC20 00047880 38 21 00 10 */ addi r1, r1, 0x10 /* 8004BC24 00047884 4E 80 00 20 */ blr /* 8004BC28 00047888 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004BC2C 0004788C 7C 08 02 A6 */ mflr r0 /* 8004BC30 00047890 2C 03 00 00 */ cmpwi r3, 0 /* 8004BC34 00047894 90 01 00 14 */ stw r0, 0x14(r1) /* 8004BC38 00047898 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004BC3C 0004789C 7C 9F 23 78 */ mr r31, r4 /* 8004BC40 000478A0 93 C1 00 08 */ stw r30, 8(r1) /* 8004BC44 000478A4 7C 7E 1B 78 */ mr r30, r3 /* 8004BC48 000478A8 41 82 00 1C */ beq lbl_8004BC64 /* 8004BC4C 000478AC 38 80 00 00 */ li r4, 0 /* 8004BC50 000478B0 4B FF F5 25 */ bl func_8004B174 /* 8004BC54 000478B4 2C 1F 00 00 */ cmpwi r31, 0 /* 8004BC58 000478B8 40 81 00 0C */ ble lbl_8004BC64 /* 8004BC5C 000478BC 7F C3 F3 78 */ mr r3, r30 /* 8004BC60 000478C0 48 18 EE 59 */ bl __dl__FPv lbl_8004BC64: /* 8004BC64 000478C4 7F C3 F3 78 */ mr r3, r30 /* 8004BC68 000478C8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004BC6C 000478CC 83 C1 00 08 */ lwz r30, 8(r1) /* 8004BC70 000478D0 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004BC74 000478D4 7C 08 03 A6 */ mtlr r0 /* 8004BC78 000478D8 38 21 00 10 */ addi r1, r1, 0x10 /* 8004BC7C 000478DC 4E 80 00 20 */ blr /* 8004BC80 000478E0 38 00 00 00 */ li r0, 0 /* 8004BC84 000478E4 90 03 00 44 */ stw r0, 0x44(r3) /* 8004BC88 000478E8 48 00 00 04 */ b func_8004BC8C .global func_8004BC8C func_8004BC8C: /* 8004BC8C 000478EC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004BC90 000478F0 7C 08 02 A6 */ mflr r0 /* 8004BC94 000478F4 C0 22 83 F8 */ lfs f1, lbl_806409F8-_SDA2_BASE_(r2) /* 8004BC98 000478F8 90 01 00 14 */ stw r0, 0x14(r1) /* 8004BC9C 000478FC 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004BCA0 00047900 7C 7F 1B 78 */ mr r31, r3 /* 8004BCA4 00047904 80 03 00 44 */ lwz r0, 0x44(r3) /* 8004BCA8 00047908 80 83 00 14 */ lwz r4, 0x14(r3) /* 8004BCAC 0004790C 1C 00 00 0C */ mulli r0, r0, 0xc /* 8004BCB0 00047910 7C 84 02 14 */ add r4, r4, r0 /* 8004BCB4 00047914 38 84 00 08 */ addi r4, r4, 8 /* 8004BCB8 00047918 90 83 00 18 */ stw r4, 0x18(r3) /* 8004BCBC 0004791C C0 04 00 08 */ lfs f0, 8(r4) /* 8004BCC0 00047920 FC 01 00 00 */ fcmpu cr0, f1, f0 /* 8004BCC4 00047924 40 82 00 1C */ bne lbl_8004BCE0 /* 8004BCC8 00047928 C0 04 00 00 */ lfs f0, 0(r4) /* 8004BCCC 0004792C D0 03 00 40 */ stfs f0, 0x40(r3) /* 8004BCD0 00047930 81 83 00 10 */ lwz r12, 0x10(r3) /* 8004BCD4 00047934 81 8C 00 10 */ lwz r12, 0x10(r12) /* 8004BCD8 00047938 7D 89 03 A6 */ mtctr r12 /* 8004BCDC 0004793C 4E 80 04 21 */ bctrl lbl_8004BCE0: /* 8004BCE0 00047940 80 9F 00 18 */ lwz r4, 0x18(r31) /* 8004BCE4 00047944 38 7F 00 1C */ addi r3, r31, 0x1c /* 8004BCE8 00047948 38 DF 00 40 */ addi r6, r31, 0x40 /* 8004BCEC 0004794C 38 E0 00 00 */ li r7, 0 /* 8004BCF0 00047950 C0 24 00 08 */ lfs f1, 8(r4) /* 8004BCF4 00047954 38 A4 00 04 */ addi r5, r4, 4 /* 8004BCF8 00047958 48 00 46 45 */ bl func_8005033C /* 8004BCFC 0004795C 80 7F 00 44 */ lwz r3, 0x44(r31) /* 8004BD00 00047960 38 00 00 01 */ li r0, 1 /* 8004BD04 00047964 98 1F 00 00 */ stb r0, 0(r31) /* 8004BD08 00047968 38 03 00 01 */ addi r0, r3, 1 /* 8004BD0C 0004796C 90 1F 00 44 */ stw r0, 0x44(r31) /* 8004BD10 00047970 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004BD14 00047974 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004BD18 00047978 7C 08 03 A6 */ mtlr r0 /* 8004BD1C 0004797C 38 21 00 10 */ addi r1, r1, 0x10 /* 8004BD20 00047980 4E 80 00 20 */ blr /* 8004BD24 00047984 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004BD28 00047988 7C 08 02 A6 */ mflr r0 /* 8004BD2C 0004798C 90 01 00 14 */ stw r0, 0x14(r1) /* 8004BD30 00047990 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004BD34 00047994 93 C1 00 08 */ stw r30, 8(r1) /* 8004BD38 00047998 7C 7E 1B 78 */ mr r30, r3 /* 8004BD3C 0004799C 4B FE 73 4D */ bl func_80033088 /* 8004BD40 000479A0 38 00 00 00 */ li r0, 0 /* 8004BD44 000479A4 7C 7F 1B 78 */ mr r31, r3 /* 8004BD48 000479A8 98 1E 00 00 */ stb r0, 0(r30) /* 8004BD4C 000479AC 38 7E 00 1C */ addi r3, r30, 0x1c /* 8004BD50 000479B0 48 00 46 39 */ bl func_80050388 /* 8004BD54 000479B4 80 7E 00 14 */ lwz r3, 0x14(r30) /* 8004BD58 000479B8 80 03 00 00 */ lwz r0, 0(r3) /* 8004BD5C 000479BC 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 8004BD60 000479C0 41 82 00 10 */ beq lbl_8004BD70 /* 8004BD64 000479C4 7F E3 FB 78 */ mr r3, r31 /* 8004BD68 000479C8 38 80 00 00 */ li r4, 0 /* 8004BD6C 000479CC 4B FE 90 FD */ bl func_80034E68 lbl_8004BD70: /* 8004BD70 000479D0 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004BD74 000479D4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004BD78 000479D8 83 C1 00 08 */ lwz r30, 8(r1) /* 8004BD7C 000479DC 7C 08 03 A6 */ mtlr r0 /* 8004BD80 000479E0 38 21 00 10 */ addi r1, r1, 0x10 /* 8004BD84 000479E4 4E 80 00 20 */ blr /* 8004BD88 000479E8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8004BD8C 000479EC 7C 08 02 A6 */ mflr r0 /* 8004BD90 000479F0 90 01 00 24 */ stw r0, 0x24(r1) /* 8004BD94 000479F4 DB E1 00 10 */ stfd f31, 0x10(r1) /* 8004BD98 000479F8 F3 E1 00 18 */ psq_st f31, 24(r1), 0, qr0 /* 8004BD9C 000479FC FF E0 08 90 */ fmr f31, f1 /* 8004BDA0 00047A00 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004BDA4 00047A04 93 C1 00 08 */ stw r30, 8(r1) /* 8004BDA8 00047A08 7C 7E 1B 78 */ mr r30, r3 /* 8004BDAC 00047A0C 4B FE 72 DD */ bl func_80033088 /* 8004BDB0 00047A10 88 1E 00 00 */ lbz r0, 0(r30) /* 8004BDB4 00047A14 7C 7F 1B 78 */ mr r31, r3 /* 8004BDB8 00047A18 2C 00 00 00 */ cmpwi r0, 0 /* 8004BDBC 00047A1C 41 82 00 94 */ beq lbl_8004BE50 /* 8004BDC0 00047A20 81 9E 00 3C */ lwz r12, 0x3c(r30) /* 8004BDC4 00047A24 FC 20 F8 90 */ fmr f1, f31 /* 8004BDC8 00047A28 38 7E 00 1C */ addi r3, r30, 0x1c /* 8004BDCC 00047A2C 81 8C 00 08 */ lwz r12, 8(r12) /* 8004BDD0 00047A30 7D 89 03 A6 */ mtctr r12 /* 8004BDD4 00047A34 4E 80 04 21 */ bctrl /* 8004BDD8 00047A38 2C 03 00 00 */ cmpwi r3, 0 /* 8004BDDC 00047A3C 40 82 00 38 */ bne lbl_8004BE14 /* 8004BDE0 00047A40 80 7E 00 14 */ lwz r3, 0x14(r30) /* 8004BDE4 00047A44 80 9E 00 44 */ lwz r4, 0x44(r30) /* 8004BDE8 00047A48 80 03 00 04 */ lwz r0, 4(r3) /* 8004BDEC 00047A4C 7C 04 00 00 */ cmpw r4, r0 /* 8004BDF0 00047A50 41 80 00 1C */ blt lbl_8004BE0C /* 8004BDF4 00047A54 81 9E 00 10 */ lwz r12, 0x10(r30) /* 8004BDF8 00047A58 7F C3 F3 78 */ mr r3, r30 /* 8004BDFC 00047A5C 81 8C 00 10 */ lwz r12, 0x10(r12) /* 8004BE00 00047A60 7D 89 03 A6 */ mtctr r12 /* 8004BE04 00047A64 4E 80 04 21 */ bctrl /* 8004BE08 00047A68 48 00 00 0C */ b lbl_8004BE14 lbl_8004BE0C: /* 8004BE0C 00047A6C 7F C3 F3 78 */ mr r3, r30 /* 8004BE10 00047A70 4B FF FE 7D */ bl func_8004BC8C lbl_8004BE14: /* 8004BE14 00047A74 80 7E 00 14 */ lwz r3, 0x14(r30) /* 8004BE18 00047A78 80 03 00 00 */ lwz r0, 0(r3) /* 8004BE1C 00047A7C 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 8004BE20 00047A80 41 82 00 30 */ beq lbl_8004BE50 /* 8004BE24 00047A84 C0 3E 00 40 */ lfs f1, 0x40(r30) /* 8004BE28 00047A88 C0 02 83 F8 */ lfs f0, lbl_806409F8-_SDA2_BASE_(r2) /* 8004BE2C 00047A8C FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8004BE30 00047A90 4C 41 13 82 */ cror 2, 1, 2 /* 8004BE34 00047A94 40 82 00 1C */ bne lbl_8004BE50 /* 8004BE38 00047A98 7F E3 FB 78 */ mr r3, r31 /* 8004BE3C 00047A9C 38 80 00 01 */ li r4, 1 /* 8004BE40 00047AA0 4B FE 90 29 */ bl func_80034E68 /* 8004BE44 00047AA4 C0 3E 00 40 */ lfs f1, 0x40(r30) /* 8004BE48 00047AA8 7F E3 FB 78 */ mr r3, r31 /* 8004BE4C 00047AAC 4B FE 90 55 */ bl func_80034EA0 lbl_8004BE50: /* 8004BE50 00047AB0 E3 E1 00 18 */ psq_l f31, 24(r1), 0, qr0 /* 8004BE54 00047AB4 80 01 00 24 */ lwz r0, 0x24(r1) /* 8004BE58 00047AB8 CB E1 00 10 */ lfd f31, 0x10(r1) /* 8004BE5C 00047ABC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004BE60 00047AC0 83 C1 00 08 */ lwz r30, 8(r1) /* 8004BE64 00047AC4 7C 08 03 A6 */ mtlr r0 /* 8004BE68 00047AC8 38 21 00 20 */ addi r1, r1, 0x20 /* 8004BE6C 00047ACC 4E 80 00 20 */ blr /* 8004BE70 00047AD0 80 83 00 14 */ lwz r4, 0x14(r3) /* 8004BE74 00047AD4 39 00 00 00 */ li r8, 0 /* 8004BE78 00047AD8 C0 22 83 F8 */ lfs f1, lbl_806409F8-_SDA2_BASE_(r2) /* 8004BE7C 00047ADC 80 E4 00 04 */ lwz r7, 4(r4) /* 8004BE80 00047AE0 2C 87 00 00 */ cmpwi cr1, r7, 0 /* 8004BE84 00047AE4 4C 85 00 20 */ blelr cr1 /* 8004BE88 00047AE8 2C 07 00 08 */ cmpwi r7, 8 /* 8004BE8C 00047AEC 38 A7 FF F8 */ addi r5, r7, -8 /* 8004BE90 00047AF0 40 81 00 94 */ ble lbl_8004BF24 /* 8004BE94 00047AF4 38 C0 00 00 */ li r6, 0 /* 8004BE98 00047AF8 41 84 00 18 */ blt cr1, lbl_8004BEB0 /* 8004BE9C 00047AFC 3C 80 80 00 */ lis r4, 0x7FFFFFFE@ha /* 8004BEA0 00047B00 38 04 FF FE */ addi r0, r4, 0x7FFFFFFE@l /* 8004BEA4 00047B04 7C 07 00 00 */ cmpw r7, r0 /* 8004BEA8 00047B08 41 81 00 08 */ bgt lbl_8004BEB0 /* 8004BEAC 00047B0C 38 C0 00 01 */ li r6, 1 lbl_8004BEB0: /* 8004BEB0 00047B10 2C 06 00 00 */ cmpwi r6, 0 /* 8004BEB4 00047B14 41 82 00 70 */ beq lbl_8004BF24 /* 8004BEB8 00047B18 38 05 00 07 */ addi r0, r5, 7 /* 8004BEBC 00047B1C 38 80 00 00 */ li r4, 0 /* 8004BEC0 00047B20 54 00 E8 FE */ srwi r0, r0, 3 /* 8004BEC4 00047B24 7C 09 03 A6 */ mtctr r0 /* 8004BEC8 00047B28 2C 05 00 00 */ cmpwi r5, 0 /* 8004BECC 00047B2C 40 81 00 58 */ ble lbl_8004BF24 lbl_8004BED0: /* 8004BED0 00047B30 80 03 00 14 */ lwz r0, 0x14(r3) /* 8004BED4 00047B34 39 08 00 08 */ addi r8, r8, 8 /* 8004BED8 00047B38 7C A0 22 14 */ add r5, r0, r4 /* 8004BEDC 00047B3C 38 84 00 60 */ addi r4, r4, 0x60 /* 8004BEE0 00047B40 C0 45 00 10 */ lfs f2, 0x10(r5) /* 8004BEE4 00047B44 C0 05 00 1C */ lfs f0, 0x1c(r5) /* 8004BEE8 00047B48 EC 21 10 2A */ fadds f1, f1, f2 /* 8004BEEC 00047B4C C0 C5 00 28 */ lfs f6, 0x28(r5) /* 8004BEF0 00047B50 C0 A5 00 34 */ lfs f5, 0x34(r5) /* 8004BEF4 00047B54 C0 85 00 40 */ lfs f4, 0x40(r5) /* 8004BEF8 00047B58 EC 21 00 2A */ fadds f1, f1, f0 /* 8004BEFC 00047B5C C0 65 00 4C */ lfs f3, 0x4c(r5) /* 8004BF00 00047B60 C0 45 00 58 */ lfs f2, 0x58(r5) /* 8004BF04 00047B64 C0 05 00 64 */ lfs f0, 0x64(r5) /* 8004BF08 00047B68 EC 21 30 2A */ fadds f1, f1, f6 /* 8004BF0C 00047B6C EC 21 28 2A */ fadds f1, f1, f5 /* 8004BF10 00047B70 EC 21 20 2A */ fadds f1, f1, f4 /* 8004BF14 00047B74 EC 21 18 2A */ fadds f1, f1, f3 /* 8004BF18 00047B78 EC 21 10 2A */ fadds f1, f1, f2 /* 8004BF1C 00047B7C EC 21 00 2A */ fadds f1, f1, f0 /* 8004BF20 00047B80 42 00 FF B0 */ bdnz lbl_8004BED0 lbl_8004BF24: /* 8004BF24 00047B84 80 A3 00 14 */ lwz r5, 0x14(r3) /* 8004BF28 00047B88 1C 88 00 0C */ mulli r4, r8, 0xc /* 8004BF2C 00047B8C 80 65 00 04 */ lwz r3, 4(r5) /* 8004BF30 00047B90 7C 08 18 50 */ subf r0, r8, r3 /* 8004BF34 00047B94 7C 09 03 A6 */ mtctr r0 /* 8004BF38 00047B98 7C 08 18 00 */ cmpw r8, r3 /* 8004BF3C 00047B9C 4C 80 00 20 */ bgelr lbl_8004BF40: /* 8004BF40 00047BA0 7C 65 22 14 */ add r3, r5, r4 /* 8004BF44 00047BA4 38 84 00 0C */ addi r4, r4, 0xc /* 8004BF48 00047BA8 C0 03 00 10 */ lfs f0, 0x10(r3) /* 8004BF4C 00047BAC EC 21 00 2A */ fadds f1, f1, f0 /* 8004BF50 00047BB0 42 00 FF F0 */ bdnz lbl_8004BF40 /* 8004BF54 00047BB4 4E 80 00 20 */ blr .global func_8004BF58 func_8004BF58: /* 8004BF58 00047BB8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004BF5C 00047BBC 7C 08 02 A6 */ mflr r0 /* 8004BF60 00047BC0 90 01 00 14 */ stw r0, 0x14(r1) /* 8004BF64 00047BC4 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004BF68 00047BC8 7C 7F 1B 78 */ mr r31, r3 /* 8004BF6C 00047BCC 4B FF F1 E5 */ bl func_8004B150 /* 8004BF70 00047BD0 3C 80 80 41 */ lis r4, lbl_8040A8C4@ha /* 8004BF74 00047BD4 7F E3 FB 78 */ mr r3, r31 /* 8004BF78 00047BD8 38 84 A8 C4 */ addi r4, r4, lbl_8040A8C4@l /* 8004BF7C 00047BDC 90 9F 00 10 */ stw r4, 0x10(r31) /* 8004BF80 00047BE0 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004BF84 00047BE4 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004BF88 00047BE8 7C 08 03 A6 */ mtlr r0 /* 8004BF8C 00047BEC 38 21 00 10 */ addi r1, r1, 0x10 /* 8004BF90 00047BF0 4E 80 00 20 */ blr /* 8004BF94 00047BF4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004BF98 00047BF8 7C 08 02 A6 */ mflr r0 /* 8004BF9C 00047BFC 2C 03 00 00 */ cmpwi r3, 0 /* 8004BFA0 00047C00 90 01 00 14 */ stw r0, 0x14(r1) /* 8004BFA4 00047C04 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004BFA8 00047C08 7C 9F 23 78 */ mr r31, r4 /* 8004BFAC 00047C0C 93 C1 00 08 */ stw r30, 8(r1) /* 8004BFB0 00047C10 7C 7E 1B 78 */ mr r30, r3 /* 8004BFB4 00047C14 41 82 00 1C */ beq lbl_8004BFD0 /* 8004BFB8 00047C18 38 80 00 00 */ li r4, 0 /* 8004BFBC 00047C1C 4B FF F1 B9 */ bl func_8004B174 /* 8004BFC0 00047C20 2C 1F 00 00 */ cmpwi r31, 0 /* 8004BFC4 00047C24 40 81 00 0C */ ble lbl_8004BFD0 /* 8004BFC8 00047C28 7F C3 F3 78 */ mr r3, r30 /* 8004BFCC 00047C2C 48 18 EA ED */ bl __dl__FPv lbl_8004BFD0: /* 8004BFD0 00047C30 7F C3 F3 78 */ mr r3, r30 /* 8004BFD4 00047C34 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004BFD8 00047C38 83 C1 00 08 */ lwz r30, 8(r1) /* 8004BFDC 00047C3C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004BFE0 00047C40 7C 08 03 A6 */ mtlr r0 /* 8004BFE4 00047C44 38 21 00 10 */ addi r1, r1, 0x10 /* 8004BFE8 00047C48 4E 80 00 20 */ blr /* 8004BFEC 00047C4C 4E 80 00 20 */ blr /* 8004BFF0 00047C50 4E 80 00 20 */ blr /* 8004BFF4 00047C54 4E 80 00 20 */ blr .global func_8004BFF8 func_8004BFF8: /* 8004BFF8 00047C58 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004BFFC 00047C5C 7C 08 02 A6 */ mflr r0 /* 8004C000 00047C60 90 01 00 14 */ stw r0, 0x14(r1) /* 8004C004 00047C64 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004C008 00047C68 7C 7F 1B 78 */ mr r31, r3 /* 8004C00C 00047C6C 4B FF F1 45 */ bl func_8004B150 /* 8004C010 00047C70 80 7F 00 0C */ lwz r3, 0xc(r31) /* 8004C014 00047C74 3C A0 80 41 */ lis r5, lbl_8040A87C@ha /* 8004C018 00047C78 38 A5 A8 7C */ addi r5, r5, lbl_8040A87C@l /* 8004C01C 00047C7C 38 00 00 00 */ li r0, 0 /* 8004C020 00047C80 38 83 00 08 */ addi r4, r3, 8 /* 8004C024 00047C84 90 BF 00 10 */ stw r5, 0x10(r31) /* 8004C028 00047C88 7F E3 FB 78 */ mr r3, r31 /* 8004C02C 00047C8C 90 9F 00 14 */ stw r4, 0x14(r31) /* 8004C030 00047C90 90 1F 00 18 */ stw r0, 0x18(r31) /* 8004C034 00047C94 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004C038 00047C98 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004C03C 00047C9C 7C 08 03 A6 */ mtlr r0 /* 8004C040 00047CA0 38 21 00 10 */ addi r1, r1, 0x10 /* 8004C044 00047CA4 4E 80 00 20 */ blr /* 8004C048 00047CA8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004C04C 00047CAC 7C 08 02 A6 */ mflr r0 /* 8004C050 00047CB0 2C 03 00 00 */ cmpwi r3, 0 /* 8004C054 00047CB4 90 01 00 14 */ stw r0, 0x14(r1) /* 8004C058 00047CB8 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004C05C 00047CBC 7C 9F 23 78 */ mr r31, r4 /* 8004C060 00047CC0 93 C1 00 08 */ stw r30, 8(r1) /* 8004C064 00047CC4 7C 7E 1B 78 */ mr r30, r3 /* 8004C068 00047CC8 41 82 00 5C */ beq lbl_8004C0C4 /* 8004C06C 00047CCC 80 03 00 18 */ lwz r0, 0x18(r3) /* 8004C070 00047CD0 3C 80 80 41 */ lis r4, lbl_8040A87C@ha /* 8004C074 00047CD4 38 84 A8 7C */ addi r4, r4, lbl_8040A87C@l /* 8004C078 00047CD8 2C 00 00 00 */ cmpwi r0, 0 /* 8004C07C 00047CDC 90 83 00 10 */ stw r4, 0x10(r3) /* 8004C080 00047CE0 41 82 00 28 */ beq lbl_8004C0A8 /* 8004C084 00047CE4 41 82 00 1C */ beq lbl_8004C0A0 /* 8004C088 00047CE8 7C 03 03 78 */ mr r3, r0 /* 8004C08C 00047CEC 38 80 00 01 */ li r4, 1 /* 8004C090 00047CF0 81 83 00 0C */ lwz r12, 0xc(r3) /* 8004C094 00047CF4 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004C098 00047CF8 7D 89 03 A6 */ mtctr r12 /* 8004C09C 00047CFC 4E 80 04 21 */ bctrl lbl_8004C0A0: /* 8004C0A0 00047D00 38 00 00 00 */ li r0, 0 /* 8004C0A4 00047D04 90 1E 00 18 */ stw r0, 0x18(r30) lbl_8004C0A8: /* 8004C0A8 00047D08 7F C3 F3 78 */ mr r3, r30 /* 8004C0AC 00047D0C 38 80 00 00 */ li r4, 0 /* 8004C0B0 00047D10 4B FF F0 C5 */ bl func_8004B174 /* 8004C0B4 00047D14 2C 1F 00 00 */ cmpwi r31, 0 /* 8004C0B8 00047D18 40 81 00 0C */ ble lbl_8004C0C4 /* 8004C0BC 00047D1C 7F C3 F3 78 */ mr r3, r30 /* 8004C0C0 00047D20 48 18 E9 F9 */ bl __dl__FPv lbl_8004C0C4: /* 8004C0C4 00047D24 7F C3 F3 78 */ mr r3, r30 /* 8004C0C8 00047D28 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004C0CC 00047D2C 83 C1 00 08 */ lwz r30, 8(r1) /* 8004C0D0 00047D30 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004C0D4 00047D34 7C 08 03 A6 */ mtlr r0 /* 8004C0D8 00047D38 38 21 00 10 */ addi r1, r1, 0x10 /* 8004C0DC 00047D3C 4E 80 00 20 */ blr /* 8004C0E0 00047D40 94 21 FF A0 */ stwu r1, -0x60(r1) /* 8004C0E4 00047D44 7C 08 02 A6 */ mflr r0 /* 8004C0E8 00047D48 90 01 00 64 */ stw r0, 0x64(r1) /* 8004C0EC 00047D4C 93 E1 00 5C */ stw r31, 0x5c(r1) /* 8004C0F0 00047D50 7C 7F 1B 78 */ mr r31, r3 /* 8004C0F4 00047D54 93 C1 00 58 */ stw r30, 0x58(r1) /* 8004C0F8 00047D58 4B FF F0 BD */ bl func_8004B1B4 /* 8004C0FC 00047D5C 2C 03 00 00 */ cmpwi r3, 0 /* 8004C100 00047D60 7C 7E 1B 78 */ mr r30, r3 /* 8004C104 00047D64 41 82 02 14 */ beq lbl_8004C318 /* 8004C108 00047D68 80 7F 00 18 */ lwz r3, 0x18(r31) /* 8004C10C 00047D6C 2C 03 00 00 */ cmpwi r3, 0 /* 8004C110 00047D70 41 82 00 1C */ beq lbl_8004C12C /* 8004C114 00047D74 41 82 00 18 */ beq lbl_8004C12C /* 8004C118 00047D78 81 83 00 0C */ lwz r12, 0xc(r3) /* 8004C11C 00047D7C 38 80 00 01 */ li r4, 1 /* 8004C120 00047D80 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004C124 00047D84 7D 89 03 A6 */ mtctr r12 /* 8004C128 00047D88 4E 80 04 21 */ bctrl lbl_8004C12C: /* 8004C12C 00047D8C 48 18 E9 FD */ bl func_801DAB28 /* 8004C130 00047D90 2C 03 00 00 */ cmpwi r3, 0 /* 8004C134 00047D94 41 82 00 14 */ beq lbl_8004C148 /* 8004C138 00047D98 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13) /* 8004C13C 00047D9C 38 80 00 70 */ li r4, 0x70 /* 8004C140 00047DA0 48 18 EB 55 */ bl func_801DAC94 /* 8004C144 00047DA4 48 00 00 08 */ b lbl_8004C14C lbl_8004C148: /* 8004C148 00047DA8 38 60 00 00 */ li r3, 0 lbl_8004C14C: /* 8004C14C 00047DAC 2C 03 00 00 */ cmpwi r3, 0 /* 8004C150 00047DB0 7C 66 1B 78 */ mr r6, r3 /* 8004C154 00047DB4 41 82 00 10 */ beq lbl_8004C164 /* 8004C158 00047DB8 80 9E 0C 04 */ lwz r4, 0xc04(r30) /* 8004C15C 00047DBC 48 1D 12 C9 */ bl func_8021D424 /* 8004C160 00047DC0 7C 66 1B 78 */ mr r6, r3 lbl_8004C164: /* 8004C164 00047DC4 2C 06 00 00 */ cmpwi r6, 0 /* 8004C168 00047DC8 90 DF 00 18 */ stw r6, 0x18(r31) /* 8004C16C 00047DCC 41 82 01 AC */ beq lbl_8004C318 /* 8004C170 00047DD0 80 BF 00 14 */ lwz r5, 0x14(r31) /* 8004C174 00047DD4 7F C4 F3 78 */ mr r4, r30 /* 8004C178 00047DD8 C0 02 84 00 */ lfs f0, lbl_80640A00-_SDA2_BASE_(r2) /* 8004C17C 00047DDC 38 61 00 08 */ addi r3, r1, 8 /* 8004C180 00047DE0 80 05 00 00 */ lwz r0, 0(r5) /* 8004C184 00047DE4 54 00 07 FE */ clrlwi r0, r0, 0x1f /* 8004C188 00047DE8 98 06 00 1E */ stb r0, 0x1e(r6) /* 8004C18C 00047DEC 80 DF 00 14 */ lwz r6, 0x14(r31) /* 8004C190 00047DF0 80 BF 00 18 */ lwz r5, 0x18(r31) /* 8004C194 00047DF4 80 06 00 00 */ lwz r0, 0(r6) /* 8004C198 00047DF8 54 00 FF FE */ rlwinm r0, r0, 0x1f, 0x1f, 0x1f /* 8004C19C 00047DFC 98 05 00 20 */ stb r0, 0x20(r5) /* 8004C1A0 00047E00 80 BF 00 14 */ lwz r5, 0x14(r31) /* 8004C1A4 00047E04 80 DF 00 18 */ lwz r6, 0x18(r31) /* 8004C1A8 00047E08 88 05 00 0C */ lbz r0, 0xc(r5) /* 8004C1AC 00047E0C 98 06 00 28 */ stb r0, 0x28(r6) /* 8004C1B0 00047E10 88 05 00 0D */ lbz r0, 0xd(r5) /* 8004C1B4 00047E14 98 06 00 29 */ stb r0, 0x29(r6) /* 8004C1B8 00047E18 88 05 00 0E */ lbz r0, 0xe(r5) /* 8004C1BC 00047E1C 98 06 00 2A */ stb r0, 0x2a(r6) /* 8004C1C0 00047E20 88 05 00 0F */ lbz r0, 0xf(r5) /* 8004C1C4 00047E24 98 06 00 2B */ stb r0, 0x2b(r6) /* 8004C1C8 00047E28 80 BF 00 18 */ lwz r5, 0x18(r31) /* 8004C1CC 00047E2C D0 05 00 6C */ stfs f0, 0x6c(r5) /* 8004C1D0 00047E30 80 DF 00 14 */ lwz r6, 0x14(r31) /* 8004C1D4 00047E34 80 BF 00 18 */ lwz r5, 0x18(r31) /* 8004C1D8 00047E38 C0 06 00 04 */ lfs f0, 4(r6) /* 8004C1DC 00047E3C D0 05 00 48 */ stfs f0, 0x48(r5) /* 8004C1E0 00047E40 80 DF 00 14 */ lwz r6, 0x14(r31) /* 8004C1E4 00047E44 80 BF 00 18 */ lwz r5, 0x18(r31) /* 8004C1E8 00047E48 80 06 00 00 */ lwz r0, 0(r6) /* 8004C1EC 00047E4C 54 00 F7 FE */ rlwinm r0, r0, 0x1e, 0x1f, 0x1f /* 8004C1F0 00047E50 98 05 00 1F */ stb r0, 0x1f(r5) /* 8004C1F4 00047E54 80 BF 00 14 */ lwz r5, 0x14(r31) /* 8004C1F8 00047E58 80 DF 00 18 */ lwz r6, 0x18(r31) /* 8004C1FC 00047E5C C0 05 00 10 */ lfs f0, 0x10(r5) /* 8004C200 00047E60 D0 06 00 5C */ stfs f0, 0x5c(r6) /* 8004C204 00047E64 C0 05 00 14 */ lfs f0, 0x14(r5) /* 8004C208 00047E68 D0 06 00 60 */ stfs f0, 0x60(r6) /* 8004C20C 00047E6C C0 05 00 18 */ lfs f0, 0x18(r5) /* 8004C210 00047E70 D0 06 00 64 */ stfs f0, 0x64(r6) /* 8004C214 00047E74 80 DF 00 14 */ lwz r6, 0x14(r31) /* 8004C218 00047E78 80 BF 00 18 */ lwz r5, 0x18(r31) /* 8004C21C 00047E7C C0 06 00 08 */ lfs f0, 8(r6) /* 8004C220 00047E80 D0 05 00 44 */ stfs f0, 0x44(r5) /* 8004C224 00047E84 80 BF 00 14 */ lwz r5, 0x14(r31) /* 8004C228 00047E88 80 DF 00 18 */ lwz r6, 0x18(r31) /* 8004C22C 00047E8C C0 05 00 1C */ lfs f0, 0x1c(r5) /* 8004C230 00047E90 D0 06 00 38 */ stfs f0, 0x38(r6) /* 8004C234 00047E94 C0 05 00 20 */ lfs f0, 0x20(r5) /* 8004C238 00047E98 D0 06 00 3C */ stfs f0, 0x3c(r6) /* 8004C23C 00047E9C C0 05 00 24 */ lfs f0, 0x24(r5) /* 8004C240 00047EA0 D0 06 00 40 */ stfs f0, 0x40(r6) /* 8004C244 00047EA4 80 BF 00 14 */ lwz r5, 0x14(r31) /* 8004C248 00047EA8 80 DF 00 18 */ lwz r6, 0x18(r31) /* 8004C24C 00047EAC C0 05 00 28 */ lfs f0, 0x28(r5) /* 8004C250 00047EB0 D0 06 00 2C */ stfs f0, 0x2c(r6) /* 8004C254 00047EB4 C0 05 00 2C */ lfs f0, 0x2c(r5) /* 8004C258 00047EB8 D0 06 00 30 */ stfs f0, 0x30(r6) /* 8004C25C 00047EBC C0 05 00 30 */ lfs f0, 0x30(r5) /* 8004C260 00047EC0 D0 06 00 34 */ stfs f0, 0x34(r6) /* 8004C264 00047EC4 80 DF 00 14 */ lwz r6, 0x14(r31) /* 8004C268 00047EC8 80 BF 00 18 */ lwz r5, 0x18(r31) /* 8004C26C 00047ECC C0 06 00 34 */ lfs f0, 0x34(r6) /* 8004C270 00047ED0 D0 05 00 58 */ stfs f0, 0x58(r5) /* 8004C274 00047ED4 4B FE C8 21 */ bl func_80038A94 /* 8004C278 00047ED8 C0 21 00 0C */ lfs f1, 0xc(r1) /* 8004C27C 00047EDC 38 61 00 20 */ addi r3, r1, 0x20 /* 8004C280 00047EE0 C0 02 84 04 */ lfs f0, lbl_80640A04-_SDA2_BASE_(r2) /* 8004C284 00047EE4 38 80 00 59 */ li r4, 0x59 /* 8004C288 00047EE8 EC 20 08 2A */ fadds f1, f0, f1 /* 8004C28C 00047EEC 48 22 FF DD */ bl PSMTXRotRad /* 8004C290 00047EF0 80 DF 00 14 */ lwz r6, 0x14(r31) /* 8004C294 00047EF4 38 81 00 14 */ addi r4, r1, 0x14 /* 8004C298 00047EF8 7C 85 23 78 */ mr r5, r4 /* 8004C29C 00047EFC 38 61 00 20 */ addi r3, r1, 0x20 /* 8004C2A0 00047F00 C0 06 00 38 */ lfs f0, 0x38(r6) /* 8004C2A4 00047F04 D0 01 00 14 */ stfs f0, 0x14(r1) /* 8004C2A8 00047F08 C0 06 00 3C */ lfs f0, 0x3c(r6) /* 8004C2AC 00047F0C D0 01 00 18 */ stfs f0, 0x18(r1) /* 8004C2B0 00047F10 C0 06 00 40 */ lfs f0, 0x40(r6) /* 8004C2B4 00047F14 D0 01 00 1C */ stfs f0, 0x1c(r1) /* 8004C2B8 00047F18 48 23 07 45 */ bl PSMTXMultVec /* 8004C2BC 00047F1C 80 7F 00 18 */ lwz r3, 0x18(r31) /* 8004C2C0 00047F20 C0 01 00 14 */ lfs f0, 0x14(r1) /* 8004C2C4 00047F24 D0 03 00 4C */ stfs f0, 0x4c(r3) /* 8004C2C8 00047F28 C0 01 00 18 */ lfs f0, 0x18(r1) /* 8004C2CC 00047F2C D0 03 00 50 */ stfs f0, 0x50(r3) /* 8004C2D0 00047F30 C0 01 00 1C */ lfs f0, 0x1c(r1) /* 8004C2D4 00047F34 D0 03 00 54 */ stfs f0, 0x54(r3) /* 8004C2D8 00047F38 83 FF 00 18 */ lwz r31, 0x18(r31) /* 8004C2DC 00047F3C 81 9F 00 0C */ lwz r12, 0xc(r31) /* 8004C2E0 00047F40 7F E3 FB 78 */ mr r3, r31 /* 8004C2E4 00047F44 81 8C 00 08 */ lwz r12, 8(r12) /* 8004C2E8 00047F48 7D 89 03 A6 */ mtctr r12 /* 8004C2EC 00047F4C 4E 80 04 21 */ bctrl /* 8004C2F0 00047F50 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 8004C2F4 00047F54 98 7F 00 08 */ stb r3, 8(r31) /* 8004C2F8 00047F58 41 82 00 20 */ beq lbl_8004C318 /* 8004C2FC 00047F5C 83 FF 00 04 */ lwz r31, 4(r31) /* 8004C300 00047F60 57 E3 86 3E */ rlwinm r3, r31, 0x10, 0x18, 0x1f /* 8004C304 00047F64 48 1E ED 55 */ bl func_8023B058 /* 8004C308 00047F68 2C 03 00 00 */ cmpwi r3, 0 /* 8004C30C 00047F6C 41 82 00 0C */ beq lbl_8004C318 /* 8004C310 00047F70 7F E4 FB 78 */ mr r4, r31 /* 8004C314 00047F74 48 1E F0 A5 */ bl func_8023B3B8 lbl_8004C318: /* 8004C318 00047F78 80 01 00 64 */ lwz r0, 0x64(r1) /* 8004C31C 00047F7C 83 E1 00 5C */ lwz r31, 0x5c(r1) /* 8004C320 00047F80 83 C1 00 58 */ lwz r30, 0x58(r1) /* 8004C324 00047F84 7C 08 03 A6 */ mtlr r0 /* 8004C328 00047F88 38 21 00 60 */ addi r1, r1, 0x60 /* 8004C32C 00047F8C 4E 80 00 20 */ blr /* 8004C330 00047F90 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8004C334 00047F94 7C 08 02 A6 */ mflr r0 /* 8004C338 00047F98 90 01 00 24 */ stw r0, 0x24(r1) /* 8004C33C 00047F9C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8004C340 00047FA0 93 C1 00 18 */ stw r30, 0x18(r1) /* 8004C344 00047FA4 93 A1 00 14 */ stw r29, 0x14(r1) /* 8004C348 00047FA8 7C 7D 1B 78 */ mr r29, r3 /* 8004C34C 00047FAC 83 C3 00 18 */ lwz r30, 0x18(r3) /* 8004C350 00047FB0 2C 1E 00 00 */ cmpwi r30, 0 /* 8004C354 00047FB4 41 82 00 70 */ beq lbl_8004C3C4 /* 8004C358 00047FB8 88 1E 00 08 */ lbz r0, 8(r30) /* 8004C35C 00047FBC 2C 00 00 00 */ cmpwi r0, 0 /* 8004C360 00047FC0 41 82 00 3C */ beq lbl_8004C39C /* 8004C364 00047FC4 83 FE 00 04 */ lwz r31, 4(r30) /* 8004C368 00047FC8 57 E3 86 3E */ rlwinm r3, r31, 0x10, 0x18, 0x1f /* 8004C36C 00047FCC 48 1E EC ED */ bl func_8023B058 /* 8004C370 00047FD0 2C 03 00 00 */ cmpwi r3, 0 /* 8004C374 00047FD4 41 82 00 0C */ beq lbl_8004C380 /* 8004C378 00047FD8 7F E4 FB 78 */ mr r4, r31 /* 8004C37C 00047FDC 48 1E F0 A5 */ bl func_8023B420 lbl_8004C380: /* 8004C380 00047FE0 81 9E 00 0C */ lwz r12, 0xc(r30) /* 8004C384 00047FE4 7F C3 F3 78 */ mr r3, r30 /* 8004C388 00047FE8 81 8C 00 0C */ lwz r12, 0xc(r12) /* 8004C38C 00047FEC 7D 89 03 A6 */ mtctr r12 /* 8004C390 00047FF0 4E 80 04 21 */ bctrl /* 8004C394 00047FF4 38 00 00 00 */ li r0, 0 /* 8004C398 00047FF8 98 1E 00 08 */ stb r0, 8(r30) lbl_8004C39C: /* 8004C39C 00047FFC 80 7D 00 18 */ lwz r3, 0x18(r29) /* 8004C3A0 00048000 2C 03 00 00 */ cmpwi r3, 0 /* 8004C3A4 00048004 41 82 00 18 */ beq lbl_8004C3BC /* 8004C3A8 00048008 81 83 00 0C */ lwz r12, 0xc(r3) /* 8004C3AC 0004800C 38 80 00 01 */ li r4, 1 /* 8004C3B0 00048010 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004C3B4 00048014 7D 89 03 A6 */ mtctr r12 /* 8004C3B8 00048018 4E 80 04 21 */ bctrl lbl_8004C3BC: /* 8004C3BC 0004801C 38 00 00 00 */ li r0, 0 /* 8004C3C0 00048020 90 1D 00 18 */ stw r0, 0x18(r29) lbl_8004C3C4: /* 8004C3C4 00048024 80 01 00 24 */ lwz r0, 0x24(r1) /* 8004C3C8 00048028 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8004C3CC 0004802C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8004C3D0 00048030 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8004C3D4 00048034 7C 08 03 A6 */ mtlr r0 /* 8004C3D8 00048038 38 21 00 20 */ addi r1, r1, 0x20 /* 8004C3DC 0004803C 4E 80 00 20 */ blr /* 8004C3E0 00048040 4E 80 00 20 */ blr /* 8004C3E4 00048044 C0 22 84 08 */ lfs f1, lbl_80640A08-_SDA2_BASE_(r2) /* 8004C3E8 00048048 4E 80 00 20 */ blr .global func_8004C3EC func_8004C3EC: /* 8004C3EC 0004804C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004C3F0 00048050 7C 08 02 A6 */ mflr r0 /* 8004C3F4 00048054 90 01 00 14 */ stw r0, 0x14(r1) /* 8004C3F8 00048058 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004C3FC 0004805C 7C 7F 1B 78 */ mr r31, r3 /* 8004C400 00048060 4B FF ED 51 */ bl func_8004B150 /* 8004C404 00048064 80 7F 00 0C */ lwz r3, 0xc(r31) /* 8004C408 00048068 3C A0 80 41 */ lis r5, lbl_8040A834@ha /* 8004C40C 0004806C 38 A5 A8 34 */ addi r5, r5, lbl_8040A834@l /* 8004C410 00048070 38 00 00 00 */ li r0, 0 /* 8004C414 00048074 38 83 00 08 */ addi r4, r3, 8 /* 8004C418 00048078 90 BF 00 10 */ stw r5, 0x10(r31) /* 8004C41C 0004807C 7F E3 FB 78 */ mr r3, r31 /* 8004C420 00048080 90 9F 00 14 */ stw r4, 0x14(r31) /* 8004C424 00048084 90 1F 00 18 */ stw r0, 0x18(r31) /* 8004C428 00048088 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004C42C 0004808C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004C430 00048090 7C 08 03 A6 */ mtlr r0 /* 8004C434 00048094 38 21 00 10 */ addi r1, r1, 0x10 /* 8004C438 00048098 4E 80 00 20 */ blr /* 8004C43C 0004809C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004C440 000480A0 7C 08 02 A6 */ mflr r0 /* 8004C444 000480A4 2C 03 00 00 */ cmpwi r3, 0 /* 8004C448 000480A8 90 01 00 14 */ stw r0, 0x14(r1) /* 8004C44C 000480AC 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004C450 000480B0 7C 9F 23 78 */ mr r31, r4 /* 8004C454 000480B4 93 C1 00 08 */ stw r30, 8(r1) /* 8004C458 000480B8 7C 7E 1B 78 */ mr r30, r3 /* 8004C45C 000480BC 41 82 00 5C */ beq lbl_8004C4B8 /* 8004C460 000480C0 80 03 00 18 */ lwz r0, 0x18(r3) /* 8004C464 000480C4 3C 80 80 41 */ lis r4, lbl_8040A834@ha /* 8004C468 000480C8 38 84 A8 34 */ addi r4, r4, lbl_8040A834@l /* 8004C46C 000480CC 2C 00 00 00 */ cmpwi r0, 0 /* 8004C470 000480D0 90 83 00 10 */ stw r4, 0x10(r3) /* 8004C474 000480D4 40 82 00 28 */ bne lbl_8004C49C /* 8004C478 000480D8 41 82 00 1C */ beq lbl_8004C494 /* 8004C47C 000480DC 7C 03 03 78 */ mr r3, r0 /* 8004C480 000480E0 38 80 00 01 */ li r4, 1 /* 8004C484 000480E4 81 83 00 0C */ lwz r12, 0xc(r3) /* 8004C488 000480E8 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004C48C 000480EC 7D 89 03 A6 */ mtctr r12 /* 8004C490 000480F0 4E 80 04 21 */ bctrl lbl_8004C494: /* 8004C494 000480F4 38 00 00 00 */ li r0, 0 /* 8004C498 000480F8 90 1E 00 18 */ stw r0, 0x18(r30) lbl_8004C49C: /* 8004C49C 000480FC 7F C3 F3 78 */ mr r3, r30 /* 8004C4A0 00048100 38 80 00 00 */ li r4, 0 /* 8004C4A4 00048104 4B FF EC D1 */ bl func_8004B174 /* 8004C4A8 00048108 2C 1F 00 00 */ cmpwi r31, 0 /* 8004C4AC 0004810C 40 81 00 0C */ ble lbl_8004C4B8 /* 8004C4B0 00048110 7F C3 F3 78 */ mr r3, r30 /* 8004C4B4 00048114 48 18 E6 05 */ bl __dl__FPv lbl_8004C4B8: /* 8004C4B8 00048118 7F C3 F3 78 */ mr r3, r30 /* 8004C4BC 0004811C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004C4C0 00048120 83 C1 00 08 */ lwz r30, 8(r1) /* 8004C4C4 00048124 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004C4C8 00048128 7C 08 03 A6 */ mtlr r0 /* 8004C4CC 0004812C 38 21 00 10 */ addi r1, r1, 0x10 /* 8004C4D0 00048130 4E 80 00 20 */ blr /* 8004C4D4 00048134 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8004C4D8 00048138 7C 08 02 A6 */ mflr r0 /* 8004C4DC 0004813C 90 01 00 24 */ stw r0, 0x24(r1) /* 8004C4E0 00048140 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8004C4E4 00048144 93 C1 00 18 */ stw r30, 0x18(r1) /* 8004C4E8 00048148 7C 7E 1B 78 */ mr r30, r3 /* 8004C4EC 0004814C 4B FF EC C9 */ bl func_8004B1B4 /* 8004C4F0 00048150 2C 03 00 00 */ cmpwi r3, 0 /* 8004C4F4 00048154 7C 7F 1B 78 */ mr r31, r3 /* 8004C4F8 00048158 41 82 01 1C */ beq lbl_8004C614 /* 8004C4FC 0004815C 80 7E 00 18 */ lwz r3, 0x18(r30) /* 8004C500 00048160 2C 03 00 00 */ cmpwi r3, 0 /* 8004C504 00048164 41 82 00 1C */ beq lbl_8004C520 /* 8004C508 00048168 41 82 00 18 */ beq lbl_8004C520 /* 8004C50C 0004816C 81 83 00 0C */ lwz r12, 0xc(r3) /* 8004C510 00048170 38 80 00 01 */ li r4, 1 /* 8004C514 00048174 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004C518 00048178 7D 89 03 A6 */ mtctr r12 /* 8004C51C 0004817C 4E 80 04 21 */ bctrl lbl_8004C520: /* 8004C520 00048180 48 18 E6 09 */ bl func_801DAB28 /* 8004C524 00048184 2C 03 00 00 */ cmpwi r3, 0 /* 8004C528 00048188 41 82 00 14 */ beq lbl_8004C53C /* 8004C52C 0004818C 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13) /* 8004C530 00048190 38 80 00 28 */ li r4, 0x28 /* 8004C534 00048194 48 18 E7 61 */ bl func_801DAC94 /* 8004C538 00048198 48 00 00 08 */ b lbl_8004C540 lbl_8004C53C: /* 8004C53C 0004819C 38 60 00 00 */ li r3, 0 lbl_8004C540: /* 8004C540 000481A0 2C 03 00 00 */ cmpwi r3, 0 /* 8004C544 000481A4 41 82 00 14 */ beq lbl_8004C558 /* 8004C548 000481A8 80 BE 00 14 */ lwz r5, 0x14(r30) /* 8004C54C 000481AC 80 9F 0C 04 */ lwz r4, 0xc04(r31) /* 8004C550 000481B0 80 A5 00 1C */ lwz r5, 0x1c(r5) /* 8004C554 000481B4 48 1D 24 F5 */ bl func_8021EA48 lbl_8004C558: /* 8004C558 000481B8 2C 03 00 00 */ cmpwi r3, 0 /* 8004C55C 000481BC 90 7E 00 18 */ stw r3, 0x18(r30) /* 8004C560 000481C0 41 82 00 B4 */ beq lbl_8004C614 /* 8004C564 000481C4 80 9E 00 14 */ lwz r4, 0x14(r30) /* 8004C568 000481C8 C0 24 00 0C */ lfs f1, 0xc(r4) /* 8004C56C 000481CC C0 04 00 08 */ lfs f0, 8(r4) /* 8004C570 000481D0 D0 21 00 0C */ stfs f1, 0xc(r1) /* 8004C574 000481D4 D0 03 00 1C */ stfs f0, 0x1c(r3) /* 8004C578 000481D8 D0 23 00 20 */ stfs f1, 0x20(r3) /* 8004C57C 000481DC 80 7E 00 14 */ lwz r3, 0x14(r30) /* 8004C580 000481E0 D0 01 00 08 */ stfs f0, 8(r1) /* 8004C584 000481E4 A0 03 00 04 */ lhz r0, 4(r3) /* 8004C588 000481E8 28 00 00 01 */ cmplwi r0, 1 /* 8004C58C 000481EC 40 82 00 14 */ bne lbl_8004C5A0 /* 8004C590 000481F0 80 7E 00 18 */ lwz r3, 0x18(r30) /* 8004C594 000481F4 38 00 00 01 */ li r0, 1 /* 8004C598 000481F8 90 03 00 24 */ stw r0, 0x24(r3) /* 8004C59C 000481FC 48 00 00 10 */ b lbl_8004C5AC lbl_8004C5A0: /* 8004C5A0 00048200 80 7E 00 18 */ lwz r3, 0x18(r30) /* 8004C5A4 00048204 38 00 00 00 */ li r0, 0 /* 8004C5A8 00048208 90 03 00 24 */ stw r0, 0x24(r3) lbl_8004C5AC: /* 8004C5AC 0004820C 80 7E 00 14 */ lwz r3, 0x14(r30) /* 8004C5B0 00048210 80 9E 00 18 */ lwz r4, 0x18(r30) /* 8004C5B4 00048214 88 03 00 10 */ lbz r0, 0x10(r3) /* 8004C5B8 00048218 98 04 00 18 */ stb r0, 0x18(r4) /* 8004C5BC 0004821C 88 03 00 11 */ lbz r0, 0x11(r3) /* 8004C5C0 00048220 98 04 00 19 */ stb r0, 0x19(r4) /* 8004C5C4 00048224 88 03 00 12 */ lbz r0, 0x12(r3) /* 8004C5C8 00048228 98 04 00 1A */ stb r0, 0x1a(r4) /* 8004C5CC 0004822C 88 03 00 13 */ lbz r0, 0x13(r3) /* 8004C5D0 00048230 98 04 00 1B */ stb r0, 0x1b(r4) /* 8004C5D4 00048234 83 FE 00 18 */ lwz r31, 0x18(r30) /* 8004C5D8 00048238 81 9F 00 0C */ lwz r12, 0xc(r31) /* 8004C5DC 0004823C 7F E3 FB 78 */ mr r3, r31 /* 8004C5E0 00048240 81 8C 00 08 */ lwz r12, 8(r12) /* 8004C5E4 00048244 7D 89 03 A6 */ mtctr r12 /* 8004C5E8 00048248 4E 80 04 21 */ bctrl /* 8004C5EC 0004824C 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 8004C5F0 00048250 98 7F 00 08 */ stb r3, 8(r31) /* 8004C5F4 00048254 41 82 00 20 */ beq lbl_8004C614 /* 8004C5F8 00048258 83 FF 00 04 */ lwz r31, 4(r31) /* 8004C5FC 0004825C 57 E3 86 3E */ rlwinm r3, r31, 0x10, 0x18, 0x1f /* 8004C600 00048260 48 1E EA 59 */ bl func_8023B058 /* 8004C604 00048264 2C 03 00 00 */ cmpwi r3, 0 /* 8004C608 00048268 41 82 00 0C */ beq lbl_8004C614 /* 8004C60C 0004826C 7F E4 FB 78 */ mr r4, r31 /* 8004C610 00048270 48 1E ED A9 */ bl func_8023B3B8 lbl_8004C614: /* 8004C614 00048274 80 01 00 24 */ lwz r0, 0x24(r1) /* 8004C618 00048278 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8004C61C 0004827C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8004C620 00048280 7C 08 03 A6 */ mtlr r0 /* 8004C624 00048284 38 21 00 20 */ addi r1, r1, 0x20 /* 8004C628 00048288 4E 80 00 20 */ blr /* 8004C62C 0004828C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8004C630 00048290 7C 08 02 A6 */ mflr r0 /* 8004C634 00048294 90 01 00 24 */ stw r0, 0x24(r1) /* 8004C638 00048298 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8004C63C 0004829C 93 C1 00 18 */ stw r30, 0x18(r1) /* 8004C640 000482A0 93 A1 00 14 */ stw r29, 0x14(r1) /* 8004C644 000482A4 7C 7D 1B 78 */ mr r29, r3 /* 8004C648 000482A8 83 C3 00 18 */ lwz r30, 0x18(r3) /* 8004C64C 000482AC 2C 1E 00 00 */ cmpwi r30, 0 /* 8004C650 000482B0 41 82 00 70 */ beq lbl_8004C6C0 /* 8004C654 000482B4 88 1E 00 08 */ lbz r0, 8(r30) /* 8004C658 000482B8 2C 00 00 00 */ cmpwi r0, 0 /* 8004C65C 000482BC 41 82 00 3C */ beq lbl_8004C698 /* 8004C660 000482C0 83 FE 00 04 */ lwz r31, 4(r30) /* 8004C664 000482C4 57 E3 86 3E */ rlwinm r3, r31, 0x10, 0x18, 0x1f /* 8004C668 000482C8 48 1E E9 F1 */ bl func_8023B058 /* 8004C66C 000482CC 2C 03 00 00 */ cmpwi r3, 0 /* 8004C670 000482D0 41 82 00 0C */ beq lbl_8004C67C /* 8004C674 000482D4 7F E4 FB 78 */ mr r4, r31 /* 8004C678 000482D8 48 1E ED A9 */ bl func_8023B420 lbl_8004C67C: /* 8004C67C 000482DC 81 9E 00 0C */ lwz r12, 0xc(r30) /* 8004C680 000482E0 7F C3 F3 78 */ mr r3, r30 /* 8004C684 000482E4 81 8C 00 0C */ lwz r12, 0xc(r12) /* 8004C688 000482E8 7D 89 03 A6 */ mtctr r12 /* 8004C68C 000482EC 4E 80 04 21 */ bctrl /* 8004C690 000482F0 38 00 00 00 */ li r0, 0 /* 8004C694 000482F4 98 1E 00 08 */ stb r0, 8(r30) lbl_8004C698: /* 8004C698 000482F8 80 7D 00 18 */ lwz r3, 0x18(r29) /* 8004C69C 000482FC 2C 03 00 00 */ cmpwi r3, 0 /* 8004C6A0 00048300 41 82 00 18 */ beq lbl_8004C6B8 /* 8004C6A4 00048304 81 83 00 0C */ lwz r12, 0xc(r3) /* 8004C6A8 00048308 38 80 00 01 */ li r4, 1 /* 8004C6AC 0004830C 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004C6B0 00048310 7D 89 03 A6 */ mtctr r12 /* 8004C6B4 00048314 4E 80 04 21 */ bctrl lbl_8004C6B8: /* 8004C6B8 00048318 38 00 00 00 */ li r0, 0 /* 8004C6BC 0004831C 90 1D 00 18 */ stw r0, 0x18(r29) lbl_8004C6C0: /* 8004C6C0 00048320 80 01 00 24 */ lwz r0, 0x24(r1) /* 8004C6C4 00048324 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8004C6C8 00048328 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8004C6CC 0004832C 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8004C6D0 00048330 7C 08 03 A6 */ mtlr r0 /* 8004C6D4 00048334 38 21 00 20 */ addi r1, r1, 0x20 /* 8004C6D8 00048338 4E 80 00 20 */ blr /* 8004C6DC 0004833C 4E 80 00 20 */ blr .global func_8004C6E0 func_8004C6E0: /* 8004C6E0 00048340 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004C6E4 00048344 7C 08 02 A6 */ mflr r0 /* 8004C6E8 00048348 90 01 00 14 */ stw r0, 0x14(r1) /* 8004C6EC 0004834C 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004C6F0 00048350 7C 7F 1B 78 */ mr r31, r3 /* 8004C6F4 00048354 4B FF EA 5D */ bl func_8004B150 /* 8004C6F8 00048358 3C 80 80 41 */ lis r4, lbl_8040A7F0@ha /* 8004C6FC 0004835C 38 7F 00 1C */ addi r3, r31, 0x1c /* 8004C700 00048360 38 84 A7 F0 */ addi r4, r4, lbl_8040A7F0@l /* 8004C704 00048364 90 9F 00 10 */ stw r4, 0x10(r31) /* 8004C708 00048368 48 00 3C 1D */ bl func_80050324 /* 8004C70C 0004836C 38 7F 00 40 */ addi r3, r31, 0x40 /* 8004C710 00048370 48 00 44 25 */ bl func_80050B34 /* 8004C714 00048374 80 9F 00 0C */ lwz r4, 0xc(r31) /* 8004C718 00048378 38 00 00 00 */ li r0, 0 /* 8004C71C 0004837C 90 1F 00 B4 */ stw r0, 0xb4(r31) /* 8004C720 00048380 7F E3 FB 78 */ mr r3, r31 /* 8004C724 00048384 38 04 00 08 */ addi r0, r4, 8 /* 8004C728 00048388 90 1F 00 14 */ stw r0, 0x14(r31) /* 8004C72C 0004838C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004C730 00048390 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004C734 00048394 7C 08 03 A6 */ mtlr r0 /* 8004C738 00048398 38 21 00 10 */ addi r1, r1, 0x10 /* 8004C73C 0004839C 4E 80 00 20 */ blr /* 8004C740 000483A0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004C744 000483A4 7C 08 02 A6 */ mflr r0 /* 8004C748 000483A8 2C 03 00 00 */ cmpwi r3, 0 /* 8004C74C 000483AC 90 01 00 14 */ stw r0, 0x14(r1) /* 8004C750 000483B0 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004C754 000483B4 7C 9F 23 78 */ mr r31, r4 /* 8004C758 000483B8 93 C1 00 08 */ stw r30, 8(r1) /* 8004C75C 000483BC 7C 7E 1B 78 */ mr r30, r3 /* 8004C760 000483C0 41 82 00 1C */ beq lbl_8004C77C /* 8004C764 000483C4 38 80 00 00 */ li r4, 0 /* 8004C768 000483C8 4B FF EA 0D */ bl func_8004B174 /* 8004C76C 000483CC 2C 1F 00 00 */ cmpwi r31, 0 /* 8004C770 000483D0 40 81 00 0C */ ble lbl_8004C77C /* 8004C774 000483D4 7F C3 F3 78 */ mr r3, r30 /* 8004C778 000483D8 48 18 E3 41 */ bl __dl__FPv lbl_8004C77C: /* 8004C77C 000483DC 7F C3 F3 78 */ mr r3, r30 /* 8004C780 000483E0 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004C784 000483E4 83 C1 00 08 */ lwz r30, 8(r1) /* 8004C788 000483E8 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004C78C 000483EC 7C 08 03 A6 */ mtlr r0 /* 8004C790 000483F0 38 21 00 10 */ addi r1, r1, 0x10 /* 8004C794 000483F4 4E 80 00 20 */ blr /* 8004C798 000483F8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004C79C 000483FC 7C 08 02 A6 */ mflr r0 /* 8004C7A0 00048400 90 01 00 14 */ stw r0, 0x14(r1) /* 8004C7A4 00048404 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004C7A8 00048408 7C 7F 1B 78 */ mr r31, r3 /* 8004C7AC 0004840C 4B FF EA 09 */ bl func_8004B1B4 /* 8004C7B0 00048410 2C 03 00 00 */ cmpwi r3, 0 /* 8004C7B4 00048414 41 82 00 0C */ beq lbl_8004C7C0 /* 8004C7B8 00048418 80 03 0C 04 */ lwz r0, 0xc04(r3) /* 8004C7BC 0004841C 90 1F 00 B4 */ stw r0, 0xb4(r31) lbl_8004C7C0: /* 8004C7C0 00048420 38 00 00 00 */ li r0, 0 /* 8004C7C4 00048424 7F E3 FB 78 */ mr r3, r31 /* 8004C7C8 00048428 90 1F 00 B0 */ stw r0, 0xb0(r31) /* 8004C7CC 0004842C 48 00 00 19 */ bl func_8004C7E4 /* 8004C7D0 00048430 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004C7D4 00048434 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004C7D8 00048438 7C 08 03 A6 */ mtlr r0 /* 8004C7DC 0004843C 38 21 00 10 */ addi r1, r1, 0x10 /* 8004C7E0 00048440 4E 80 00 20 */ blr .global func_8004C7E4 func_8004C7E4: /* 8004C7E4 00048444 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004C7E8 00048448 7C 08 02 A6 */ mflr r0 /* 8004C7EC 0004844C 90 01 00 14 */ stw r0, 0x14(r1) /* 8004C7F0 00048450 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004C7F4 00048454 7C 7F 1B 78 */ mr r31, r3 /* 8004C7F8 00048458 93 C1 00 08 */ stw r30, 8(r1) /* 8004C7FC 0004845C 80 C3 00 14 */ lwz r6, 0x14(r3) /* 8004C800 00048460 80 A3 00 B0 */ lwz r5, 0xb0(r3) /* 8004C804 00048464 80 86 00 04 */ lwz r4, 4(r6) /* 8004C808 00048468 38 04 FF FF */ addi r0, r4, -1 /* 8004C80C 0004846C 7C 05 00 00 */ cmpw r5, r0 /* 8004C810 00048470 40 80 00 18 */ bge lbl_8004C828 /* 8004C814 00048474 38 05 00 01 */ addi r0, r5, 1 /* 8004C818 00048478 38 86 00 08 */ addi r4, r6, 8 /* 8004C81C 0004847C 1C 00 00 14 */ mulli r0, r0, 0x14 /* 8004C820 00048480 7F C4 02 14 */ add r30, r4, r0 /* 8004C824 00048484 48 00 00 10 */ b lbl_8004C834 lbl_8004C828: /* 8004C828 00048488 1C 00 00 14 */ mulli r0, r0, 0x14 /* 8004C82C 0004848C 38 86 00 08 */ addi r4, r6, 8 /* 8004C830 00048490 7F C4 02 14 */ add r30, r4, r0 lbl_8004C834: /* 8004C834 00048494 1C 05 00 14 */ mulli r0, r5, 0x14 /* 8004C838 00048498 C0 22 83 F8 */ lfs f1, lbl_806409F8-_SDA2_BASE_(r2) /* 8004C83C 0004849C 7C 84 02 14 */ add r4, r4, r0 /* 8004C840 000484A0 90 83 00 18 */ stw r4, 0x18(r3) /* 8004C844 000484A4 C0 04 00 10 */ lfs f0, 0x10(r4) /* 8004C848 000484A8 FC 01 00 00 */ fcmpu cr0, f1, f0 /* 8004C84C 000484AC 40 82 00 30 */ bne lbl_8004C87C /* 8004C850 000484B0 38 63 00 80 */ addi r3, r3, 0x80 /* 8004C854 000484B4 38 84 00 08 */ addi r4, r4, 8 /* 8004C858 000484B8 4B FF E5 09 */ bl func_8004AD60 /* 8004C85C 000484BC 80 9F 00 18 */ lwz r4, 0x18(r31) /* 8004C860 000484C0 7F E3 FB 78 */ mr r3, r31 /* 8004C864 000484C4 C0 04 00 00 */ lfs f0, 0(r4) /* 8004C868 000484C8 D0 1F 00 7C */ stfs f0, 0x7c(r31) /* 8004C86C 000484CC 81 9F 00 10 */ lwz r12, 0x10(r31) /* 8004C870 000484D0 81 8C 00 10 */ lwz r12, 0x10(r12) /* 8004C874 000484D4 7D 89 03 A6 */ mtctr r12 /* 8004C878 000484D8 4E 80 04 21 */ bctrl lbl_8004C87C: /* 8004C87C 000484DC 38 7F 00 1C */ addi r3, r31, 0x1c /* 8004C880 000484E0 48 00 3B 09 */ bl func_80050388 /* 8004C884 000484E4 38 7F 00 40 */ addi r3, r31, 0x40 /* 8004C888 000484E8 48 00 43 59 */ bl func_80050BE0 /* 8004C88C 000484EC 80 7F 00 18 */ lwz r3, 0x18(r31) /* 8004C890 000484F0 38 9F 00 90 */ addi r4, r31, 0x90 /* 8004C894 000484F4 38 63 00 08 */ addi r3, r3, 8 /* 8004C898 000484F8 4B FF E4 5D */ bl func_8004ACF4 /* 8004C89C 000484FC 38 7E 00 08 */ addi r3, r30, 8 /* 8004C8A0 00048500 38 9F 00 A0 */ addi r4, r31, 0xa0 /* 8004C8A4 00048504 4B FF E4 51 */ bl func_8004ACF4 /* 8004C8A8 00048508 80 DF 00 18 */ lwz r6, 0x18(r31) /* 8004C8AC 0004850C 38 7F 00 40 */ addi r3, r31, 0x40 /* 8004C8B0 00048510 38 9F 00 90 */ addi r4, r31, 0x90 /* 8004C8B4 00048514 38 BF 00 A0 */ addi r5, r31, 0xa0 /* 8004C8B8 00048518 C0 26 00 10 */ lfs f1, 0x10(r6) /* 8004C8BC 0004851C 38 DF 00 80 */ addi r6, r31, 0x80 /* 8004C8C0 00048520 38 E0 00 00 */ li r7, 0 /* 8004C8C4 00048524 48 00 42 89 */ bl func_80050B4C /* 8004C8C8 00048528 80 9F 00 18 */ lwz r4, 0x18(r31) /* 8004C8CC 0004852C 38 7F 00 1C */ addi r3, r31, 0x1c /* 8004C8D0 00048530 38 DF 00 7C */ addi r6, r31, 0x7c /* 8004C8D4 00048534 38 E0 00 00 */ li r7, 0 /* 8004C8D8 00048538 C0 24 00 10 */ lfs f1, 0x10(r4) /* 8004C8DC 0004853C 38 A4 00 04 */ addi r5, r4, 4 /* 8004C8E0 00048540 48 00 3A 5D */ bl func_8005033C /* 8004C8E4 00048544 80 7F 00 B0 */ lwz r3, 0xb0(r31) /* 8004C8E8 00048548 38 00 00 01 */ li r0, 1 /* 8004C8EC 0004854C 98 1F 00 00 */ stb r0, 0(r31) /* 8004C8F0 00048550 38 03 00 01 */ addi r0, r3, 1 /* 8004C8F4 00048554 90 1F 00 B0 */ stw r0, 0xb0(r31) /* 8004C8F8 00048558 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004C8FC 0004855C 83 C1 00 08 */ lwz r30, 8(r1) /* 8004C900 00048560 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004C904 00048564 7C 08 03 A6 */ mtlr r0 /* 8004C908 00048568 38 21 00 10 */ addi r1, r1, 0x10 /* 8004C90C 0004856C 4E 80 00 20 */ blr /* 8004C910 00048570 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004C914 00048574 7C 08 02 A6 */ mflr r0 /* 8004C918 00048578 90 01 00 14 */ stw r0, 0x14(r1) /* 8004C91C 0004857C 38 00 00 00 */ li r0, 0 /* 8004C920 00048580 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004C924 00048584 7C 7F 1B 78 */ mr r31, r3 /* 8004C928 00048588 98 03 00 00 */ stb r0, 0(r3) /* 8004C92C 0004858C 38 63 00 40 */ addi r3, r3, 0x40 /* 8004C930 00048590 48 00 42 B1 */ bl func_80050BE0 /* 8004C934 00048594 38 7F 00 1C */ addi r3, r31, 0x1c /* 8004C938 00048598 48 00 3A 51 */ bl func_80050388 /* 8004C93C 0004859C 80 7F 00 B4 */ lwz r3, 0xb4(r31) /* 8004C940 000485A0 2C 03 00 00 */ cmpwi r3, 0 /* 8004C944 000485A4 41 82 00 0C */ beq lbl_8004C950 /* 8004C948 000485A8 38 80 00 01 */ li r4, 1 /* 8004C94C 000485AC 48 1A 9A 79 */ bl func_801F63C4 lbl_8004C950: /* 8004C950 000485B0 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004C954 000485B4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004C958 000485B8 7C 08 03 A6 */ mtlr r0 /* 8004C95C 000485BC 38 21 00 10 */ addi r1, r1, 0x10 /* 8004C960 000485C0 4E 80 00 20 */ blr /* 8004C964 000485C4 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8004C968 000485C8 7C 08 02 A6 */ mflr r0 /* 8004C96C 000485CC 90 01 00 34 */ stw r0, 0x34(r1) /* 8004C970 000485D0 DB E1 00 20 */ stfd f31, 0x20(r1) /* 8004C974 000485D4 F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0 /* 8004C978 000485D8 FF E0 08 90 */ fmr f31, f1 /* 8004C97C 000485DC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8004C980 000485E0 7C 7F 1B 78 */ mr r31, r3 /* 8004C984 000485E4 88 03 00 00 */ lbz r0, 0(r3) /* 8004C988 000485E8 2C 00 00 00 */ cmpwi r0, 0 /* 8004C98C 000485EC 41 82 00 A4 */ beq lbl_8004CA30 /* 8004C990 000485F0 81 83 00 78 */ lwz r12, 0x78(r3) /* 8004C994 000485F4 81 8C 00 08 */ lwz r12, 8(r12) /* 8004C998 000485F8 7D 89 03 A6 */ mtctr r12 /* 8004C99C 000485FC 38 63 00 40 */ addi r3, r3, 0x40 /* 8004C9A0 00048600 4E 80 04 21 */ bctrl /* 8004C9A4 00048604 81 9F 00 3C */ lwz r12, 0x3c(r31) /* 8004C9A8 00048608 FC 20 F8 90 */ fmr f1, f31 /* 8004C9AC 0004860C 38 7F 00 1C */ addi r3, r31, 0x1c /* 8004C9B0 00048610 81 8C 00 08 */ lwz r12, 8(r12) /* 8004C9B4 00048614 7D 89 03 A6 */ mtctr r12 /* 8004C9B8 00048618 4E 80 04 21 */ bctrl /* 8004C9BC 0004861C 2C 03 00 00 */ cmpwi r3, 0 /* 8004C9C0 00048620 40 82 00 38 */ bne lbl_8004C9F8 /* 8004C9C4 00048624 80 7F 00 14 */ lwz r3, 0x14(r31) /* 8004C9C8 00048628 80 9F 00 B0 */ lwz r4, 0xb0(r31) /* 8004C9CC 0004862C 80 03 00 04 */ lwz r0, 4(r3) /* 8004C9D0 00048630 7C 04 00 00 */ cmpw r4, r0 /* 8004C9D4 00048634 41 80 00 1C */ blt lbl_8004C9F0 /* 8004C9D8 00048638 81 9F 00 10 */ lwz r12, 0x10(r31) /* 8004C9DC 0004863C 7F E3 FB 78 */ mr r3, r31 /* 8004C9E0 00048640 81 8C 00 10 */ lwz r12, 0x10(r12) /* 8004C9E4 00048644 7D 89 03 A6 */ mtctr r12 /* 8004C9E8 00048648 4E 80 04 21 */ bctrl /* 8004C9EC 0004864C 48 00 00 0C */ b lbl_8004C9F8 lbl_8004C9F0: /* 8004C9F0 00048650 7F E3 FB 78 */ mr r3, r31 /* 8004C9F4 00048654 4B FF FD F1 */ bl func_8004C7E4 lbl_8004C9F8: /* 8004C9F8 00048658 38 7F 00 80 */ addi r3, r31, 0x80 /* 8004C9FC 0004865C 38 81 00 08 */ addi r4, r1, 8 /* 8004CA00 00048660 4B FF E3 61 */ bl func_8004AD60 /* 8004CA04 00048664 80 7F 00 B4 */ lwz r3, 0xb4(r31) /* 8004CA08 00048668 2C 03 00 00 */ cmpwi r3, 0 /* 8004CA0C 0004866C 41 82 00 24 */ beq lbl_8004CA30 /* 8004CA10 00048670 38 81 00 08 */ addi r4, r1, 8 /* 8004CA14 00048674 48 1A 9A C9 */ bl func_801F64DC /* 8004CA18 00048678 80 7F 00 B4 */ lwz r3, 0xb4(r31) /* 8004CA1C 0004867C C0 3F 00 7C */ lfs f1, 0x7c(r31) /* 8004CA20 00048680 48 1A 9B 69 */ bl func_801F6588 /* 8004CA24 00048684 80 7F 00 B4 */ lwz r3, 0xb4(r31) /* 8004CA28 00048688 38 80 00 01 */ li r4, 1 /* 8004CA2C 0004868C 48 1A 99 99 */ bl func_801F63C4 lbl_8004CA30: /* 8004CA30 00048690 E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0 /* 8004CA34 00048694 80 01 00 34 */ lwz r0, 0x34(r1) /* 8004CA38 00048698 CB E1 00 20 */ lfd f31, 0x20(r1) /* 8004CA3C 0004869C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8004CA40 000486A0 7C 08 03 A6 */ mtlr r0 /* 8004CA44 000486A4 38 21 00 30 */ addi r1, r1, 0x30 /* 8004CA48 000486A8 4E 80 00 20 */ blr /* 8004CA4C 000486AC 80 83 00 14 */ lwz r4, 0x14(r3) /* 8004CA50 000486B0 39 00 00 00 */ li r8, 0 /* 8004CA54 000486B4 C0 22 83 F8 */ lfs f1, lbl_806409F8-_SDA2_BASE_(r2) /* 8004CA58 000486B8 80 E4 00 04 */ lwz r7, 4(r4) /* 8004CA5C 000486BC 2C 87 00 00 */ cmpwi cr1, r7, 0 /* 8004CA60 000486C0 4C 85 00 20 */ blelr cr1 /* 8004CA64 000486C4 2C 07 00 08 */ cmpwi r7, 8 /* 8004CA68 000486C8 38 A7 FF F8 */ addi r5, r7, -8 /* 8004CA6C 000486CC 40 81 00 94 */ ble lbl_8004CB00 /* 8004CA70 000486D0 38 C0 00 00 */ li r6, 0 /* 8004CA74 000486D4 41 84 00 18 */ blt cr1, lbl_8004CA8C /* 8004CA78 000486D8 3C 80 80 00 */ lis r4, 0x7FFFFFFE@ha /* 8004CA7C 000486DC 38 04 FF FE */ addi r0, r4, 0x7FFFFFFE@l /* 8004CA80 000486E0 7C 07 00 00 */ cmpw r7, r0 /* 8004CA84 000486E4 41 81 00 08 */ bgt lbl_8004CA8C /* 8004CA88 000486E8 38 C0 00 01 */ li r6, 1 lbl_8004CA8C: /* 8004CA8C 000486EC 2C 06 00 00 */ cmpwi r6, 0 /* 8004CA90 000486F0 41 82 00 70 */ beq lbl_8004CB00 /* 8004CA94 000486F4 38 05 00 07 */ addi r0, r5, 7 /* 8004CA98 000486F8 38 80 00 00 */ li r4, 0 /* 8004CA9C 000486FC 54 00 E8 FE */ srwi r0, r0, 3 /* 8004CAA0 00048700 7C 09 03 A6 */ mtctr r0 /* 8004CAA4 00048704 2C 05 00 00 */ cmpwi r5, 0 /* 8004CAA8 00048708 40 81 00 58 */ ble lbl_8004CB00 lbl_8004CAAC: /* 8004CAAC 0004870C 80 03 00 14 */ lwz r0, 0x14(r3) /* 8004CAB0 00048710 39 08 00 08 */ addi r8, r8, 8 /* 8004CAB4 00048714 7C A0 22 14 */ add r5, r0, r4 /* 8004CAB8 00048718 38 84 00 A0 */ addi r4, r4, 0xa0 /* 8004CABC 0004871C C0 45 00 18 */ lfs f2, 0x18(r5) /* 8004CAC0 00048720 C0 05 00 2C */ lfs f0, 0x2c(r5) /* 8004CAC4 00048724 EC 21 10 2A */ fadds f1, f1, f2 /* 8004CAC8 00048728 C0 C5 00 40 */ lfs f6, 0x40(r5) /* 8004CACC 0004872C C0 A5 00 54 */ lfs f5, 0x54(r5) /* 8004CAD0 00048730 C0 85 00 68 */ lfs f4, 0x68(r5) /* 8004CAD4 00048734 EC 21 00 2A */ fadds f1, f1, f0 /* 8004CAD8 00048738 C0 65 00 7C */ lfs f3, 0x7c(r5) /* 8004CADC 0004873C C0 45 00 90 */ lfs f2, 0x90(r5) /* 8004CAE0 00048740 C0 05 00 A4 */ lfs f0, 0xa4(r5) /* 8004CAE4 00048744 EC 21 30 2A */ fadds f1, f1, f6 /* 8004CAE8 00048748 EC 21 28 2A */ fadds f1, f1, f5 /* 8004CAEC 0004874C EC 21 20 2A */ fadds f1, f1, f4 /* 8004CAF0 00048750 EC 21 18 2A */ fadds f1, f1, f3 /* 8004CAF4 00048754 EC 21 10 2A */ fadds f1, f1, f2 /* 8004CAF8 00048758 EC 21 00 2A */ fadds f1, f1, f0 /* 8004CAFC 0004875C 42 00 FF B0 */ bdnz lbl_8004CAAC lbl_8004CB00: /* 8004CB00 00048760 80 A3 00 14 */ lwz r5, 0x14(r3) /* 8004CB04 00048764 1C 88 00 14 */ mulli r4, r8, 0x14 /* 8004CB08 00048768 80 65 00 04 */ lwz r3, 4(r5) /* 8004CB0C 0004876C 7C 08 18 50 */ subf r0, r8, r3 /* 8004CB10 00048770 7C 09 03 A6 */ mtctr r0 /* 8004CB14 00048774 7C 08 18 00 */ cmpw r8, r3 /* 8004CB18 00048778 4C 80 00 20 */ bgelr lbl_8004CB1C: /* 8004CB1C 0004877C 7C 65 22 14 */ add r3, r5, r4 /* 8004CB20 00048780 38 84 00 14 */ addi r4, r4, 0x14 /* 8004CB24 00048784 C0 03 00 18 */ lfs f0, 0x18(r3) /* 8004CB28 00048788 EC 21 00 2A */ fadds f1, f1, f0 /* 8004CB2C 0004878C 42 00 FF F0 */ bdnz lbl_8004CB1C /* 8004CB30 00048790 4E 80 00 20 */ blr .global func_8004CB34 func_8004CB34: /* 8004CB34 00048794 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004CB38 00048798 7C 08 02 A6 */ mflr r0 /* 8004CB3C 0004879C 90 01 00 14 */ stw r0, 0x14(r1) /* 8004CB40 000487A0 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004CB44 000487A4 7C 7F 1B 78 */ mr r31, r3 /* 8004CB48 000487A8 4B FF E6 09 */ bl func_8004B150 /* 8004CB4C 000487AC 80 BF 00 0C */ lwz r5, 0xc(r31) /* 8004CB50 000487B0 3C C0 80 41 */ lis r6, lbl_8040A7AC@ha /* 8004CB54 000487B4 3C 60 00 01 */ lis r3, 0x0000FFFF@ha /* 8004CB58 000487B8 38 80 00 00 */ li r4, 0 /* 8004CB5C 000487BC 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l /* 8004CB60 000487C0 38 C6 A7 AC */ addi r6, r6, lbl_8040A7AC@l /* 8004CB64 000487C4 38 A5 00 08 */ addi r5, r5, 8 /* 8004CB68 000487C8 90 DF 00 10 */ stw r6, 0x10(r31) /* 8004CB6C 000487CC 7F E3 FB 78 */ mr r3, r31 /* 8004CB70 000487D0 90 BF 00 14 */ stw r5, 0x14(r31) /* 8004CB74 000487D4 90 9F 00 18 */ stw r4, 0x18(r31) /* 8004CB78 000487D8 B0 1F 00 1C */ sth r0, 0x1c(r31) /* 8004CB7C 000487DC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004CB80 000487E0 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004CB84 000487E4 7C 08 03 A6 */ mtlr r0 /* 8004CB88 000487E8 38 21 00 10 */ addi r1, r1, 0x10 /* 8004CB8C 000487EC 4E 80 00 20 */ blr /* 8004CB90 000487F0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004CB94 000487F4 7C 08 02 A6 */ mflr r0 /* 8004CB98 000487F8 2C 03 00 00 */ cmpwi r3, 0 /* 8004CB9C 000487FC 90 01 00 14 */ stw r0, 0x14(r1) /* 8004CBA0 00048800 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004CBA4 00048804 7C 9F 23 78 */ mr r31, r4 /* 8004CBA8 00048808 93 C1 00 08 */ stw r30, 8(r1) /* 8004CBAC 0004880C 7C 7E 1B 78 */ mr r30, r3 /* 8004CBB0 00048810 41 82 00 60 */ beq lbl_8004CC10 /* 8004CBB4 00048814 80 03 00 18 */ lwz r0, 0x18(r3) /* 8004CBB8 00048818 3C 80 80 41 */ lis r4, lbl_8040A7AC@ha /* 8004CBBC 0004881C 38 84 A7 AC */ addi r4, r4, lbl_8040A7AC@l /* 8004CBC0 00048820 2C 00 00 00 */ cmpwi r0, 0 /* 8004CBC4 00048824 90 83 00 10 */ stw r4, 0x10(r3) /* 8004CBC8 00048828 41 82 00 20 */ beq lbl_8004CBE8 /* 8004CBCC 0004882C 41 82 00 1C */ beq lbl_8004CBE8 /* 8004CBD0 00048830 7C 03 03 78 */ mr r3, r0 /* 8004CBD4 00048834 38 80 00 01 */ li r4, 1 /* 8004CBD8 00048838 81 83 00 0C */ lwz r12, 0xc(r3) /* 8004CBDC 0004883C 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004CBE0 00048840 7D 89 03 A6 */ mtctr r12 /* 8004CBE4 00048844 4E 80 04 21 */ bctrl lbl_8004CBE8: /* 8004CBE8 00048848 3C 80 00 01 */ lis r4, 0x0000FFFF@ha /* 8004CBEC 0004884C 7F C3 F3 78 */ mr r3, r30 /* 8004CBF0 00048850 38 04 FF FF */ addi r0, r4, 0x0000FFFF@l /* 8004CBF4 00048854 B0 1E 00 1C */ sth r0, 0x1c(r30) /* 8004CBF8 00048858 38 80 00 00 */ li r4, 0 /* 8004CBFC 0004885C 4B FF E5 79 */ bl func_8004B174 /* 8004CC00 00048860 2C 1F 00 00 */ cmpwi r31, 0 /* 8004CC04 00048864 40 81 00 0C */ ble lbl_8004CC10 /* 8004CC08 00048868 7F C3 F3 78 */ mr r3, r30 /* 8004CC0C 0004886C 48 18 DE AD */ bl __dl__FPv lbl_8004CC10: /* 8004CC10 00048870 7F C3 F3 78 */ mr r3, r30 /* 8004CC14 00048874 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004CC18 00048878 83 C1 00 08 */ lwz r30, 8(r1) /* 8004CC1C 0004887C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004CC20 00048880 7C 08 03 A6 */ mtlr r0 /* 8004CC24 00048884 38 21 00 10 */ addi r1, r1, 0x10 /* 8004CC28 00048888 4E 80 00 20 */ blr /* 8004CC2C 0004888C 94 21 FF A0 */ stwu r1, -0x60(r1) /* 8004CC30 00048890 7C 08 02 A6 */ mflr r0 /* 8004CC34 00048894 90 01 00 64 */ stw r0, 0x64(r1) /* 8004CC38 00048898 DB E1 00 50 */ stfd f31, 0x50(r1) /* 8004CC3C 0004889C F3 E1 00 58 */ psq_st f31, 88(r1), 0, qr0 /* 8004CC40 000488A0 93 E1 00 4C */ stw r31, 0x4c(r1) /* 8004CC44 000488A4 7C 7F 1B 78 */ mr r31, r3 /* 8004CC48 000488A8 93 C1 00 48 */ stw r30, 0x48(r1) /* 8004CC4C 000488AC 93 A1 00 44 */ stw r29, 0x44(r1) /* 8004CC50 000488B0 80 83 00 14 */ lwz r4, 0x14(r3) /* 8004CC54 000488B4 80 04 00 2C */ lwz r0, 0x2c(r4) /* 8004CC58 000488B8 2C 00 00 00 */ cmpwi r0, 0 /* 8004CC5C 000488BC 41 82 02 F8 */ beq lbl_8004CF54 /* 8004CC60 000488C0 80 63 00 04 */ lwz r3, 4(r3) /* 8004CC64 000488C4 80 03 00 18 */ lwz r0, 0x18(r3) /* 8004CC68 000488C8 2C 00 00 00 */ cmpwi r0, 0 /* 8004CC6C 000488CC 41 82 02 E8 */ beq lbl_8004CF54 /* 8004CC70 000488D0 4B FE 64 19 */ bl func_80033088 /* 8004CC74 000488D4 38 80 00 00 */ li r4, 0 /* 8004CC78 000488D8 4B FE 6F 05 */ bl func_80033B7C /* 8004CC7C 000488DC 2C 03 00 00 */ cmpwi r3, 0 /* 8004CC80 000488E0 41 82 02 D4 */ beq lbl_8004CF54 /* 8004CC84 000488E4 4B FE 8C ED */ bl func_80035970 /* 8004CC88 000488E8 C3 E2 83 F8 */ lfs f31, lbl_806409F8-_SDA2_BASE_(r2) /* 8004CC8C 000488EC 7C 7E 1B 78 */ mr r30, r3 /* 8004CC90 000488F0 80 7F 00 14 */ lwz r3, 0x14(r31) /* 8004CC94 000488F4 D3 FF 00 44 */ stfs f31, 0x44(r31) /* 8004CC98 000488F8 80 03 00 00 */ lwz r0, 0(r3) /* 8004CC9C 000488FC 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d /* 8004CCA0 00048900 41 82 00 50 */ beq lbl_8004CCF0 /* 8004CCA4 00048904 48 1D 6B 8D */ bl func_80223830 /* 8004CCA8 00048908 3C 80 00 03 */ lis r4, 0x000343FD@ha /* 8004CCAC 0004890C 80 A3 00 00 */ lwz r5, 0(r3) /* 8004CCB0 00048910 38 84 43 FD */ addi r4, r4, 0x000343FD@l /* 8004CCB4 00048914 3C 00 43 30 */ lis r0, 0x4330 /* 8004CCB8 00048918 7C 85 21 D6 */ mullw r4, r5, r4 /* 8004CCBC 0004891C 90 01 00 30 */ stw r0, 0x30(r1) /* 8004CCC0 00048920 C8 62 83 F0 */ lfd f3, lbl_806409F0-_SDA2_BASE_(r2) /* 8004CCC4 00048924 C0 22 84 0C */ lfs f1, lbl_80640A0C-_SDA2_BASE_(r2) /* 8004CCC8 00048928 C0 02 84 10 */ lfs f0, lbl_80640A10-_SDA2_BASE_(r2) /* 8004CCCC 0004892C 3C 84 00 27 */ addis r4, r4, 0x27 /* 8004CCD0 00048930 38 84 9E C3 */ addi r4, r4, -24893 /* 8004CCD4 00048934 54 80 84 3E */ srwi r0, r4, 0x10 /* 8004CCD8 00048938 90 83 00 00 */ stw r4, 0(r3) /* 8004CCDC 0004893C 90 01 00 34 */ stw r0, 0x34(r1) /* 8004CCE0 00048940 C8 41 00 30 */ lfd f2, 0x30(r1) /* 8004CCE4 00048944 EC 42 18 28 */ fsubs f2, f2, f3 /* 8004CCE8 00048948 EC 22 08 24 */ fdivs f1, f2, f1 /* 8004CCEC 0004894C EF E0 00 72 */ fmuls f31, f0, f1 lbl_8004CCF0: /* 8004CCF0 00048950 C0 1E 01 C4 */ lfs f0, 0x1c4(r30) /* 8004CCF4 00048954 D0 01 00 24 */ stfs f0, 0x24(r1) /* 8004CCF8 00048958 C0 1E 01 C8 */ lfs f0, 0x1c8(r30) /* 8004CCFC 0004895C D0 01 00 28 */ stfs f0, 0x28(r1) /* 8004CD00 00048960 C0 1E 01 CC */ lfs f0, 0x1cc(r30) /* 8004CD04 00048964 D0 01 00 2C */ stfs f0, 0x2c(r1) /* 8004CD08 00048968 80 7F 00 14 */ lwz r3, 0x14(r31) /* 8004CD0C 0004896C 80 03 00 00 */ lwz r0, 0(r3) /* 8004CD10 00048970 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c /* 8004CD14 00048974 41 82 01 20 */ beq lbl_8004CE34 /* 8004CD18 00048978 7F E3 FB 78 */ mr r3, r31 /* 8004CD1C 0004897C 4B FF E4 99 */ bl func_8004B1B4 /* 8004CD20 00048980 83 A3 0C 04 */ lwz r29, 0xc04(r3) /* 8004CD24 00048984 38 61 00 24 */ addi r3, r1, 0x24 /* 8004CD28 00048988 38 9E 01 AC */ addi r4, r30, 0x1ac /* 8004CD2C 0004898C 38 A1 00 18 */ addi r5, r1, 0x18 /* 8004CD30 00048990 48 22 FF B9 */ bl PSVECSubtract /* 8004CD34 00048994 38 61 00 18 */ addi r3, r1, 0x18 /* 8004CD38 00048998 7C 64 1B 78 */ mr r4, r3 /* 8004CD3C 0004899C 48 22 FF ED */ bl PSVECNormalize /* 8004CD40 000489A0 80 9F 00 14 */ lwz r4, 0x14(r31) /* 8004CD44 000489A4 7F A3 EB 78 */ mr r3, r29 /* 8004CD48 000489A8 38 A1 00 24 */ addi r5, r1, 0x24 /* 8004CD4C 000489AC 38 C1 00 18 */ addi r6, r1, 0x18 /* 8004CD50 000489B0 80 84 00 2C */ lwz r4, 0x2c(r4) /* 8004CD54 000489B4 38 E0 00 00 */ li r7, 0 /* 8004CD58 000489B8 48 1A BB 95 */ bl func_801F88EC /* 8004CD5C 000489BC 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8004CD60 000489C0 80 9F 00 14 */ lwz r4, 0x14(r31) /* 8004CD64 000489C4 B0 1F 00 1C */ sth r0, 0x1c(r31) /* 8004CD68 000489C8 C0 02 84 14 */ lfs f0, lbl_80640A14-_SDA2_BASE_(r2) /* 8004CD6C 000489CC C0 24 00 18 */ lfs f1, 0x18(r4) /* 8004CD70 000489D0 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8004CD74 000489D4 40 80 00 10 */ bge lbl_8004CD84 /* 8004CD78 000489D8 C0 02 84 18 */ lfs f0, lbl_80640A18-_SDA2_BASE_(r2) /* 8004CD7C 000489DC FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8004CD80 000489E0 41 81 00 44 */ bgt lbl_8004CDC4 lbl_8004CD84: /* 8004CD84 000489E4 C0 24 00 1C */ lfs f1, 0x1c(r4) /* 8004CD88 000489E8 C0 02 84 14 */ lfs f0, lbl_80640A14-_SDA2_BASE_(r2) /* 8004CD8C 000489EC FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8004CD90 000489F0 40 80 00 10 */ bge lbl_8004CDA0 /* 8004CD94 000489F4 C0 02 84 18 */ lfs f0, lbl_80640A18-_SDA2_BASE_(r2) /* 8004CD98 000489F8 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8004CD9C 000489FC 41 81 00 28 */ bgt lbl_8004CDC4 lbl_8004CDA0: /* 8004CDA0 00048A00 C0 24 00 1C */ lfs f1, 0x1c(r4) /* 8004CDA4 00048A04 7F A3 EB 78 */ mr r3, r29 /* 8004CDA8 00048A08 C0 04 00 18 */ lfs f0, 0x18(r4) /* 8004CDAC 00048A0C 38 A1 00 10 */ addi r5, r1, 0x10 /* 8004CDB0 00048A10 D0 01 00 10 */ stfs f0, 0x10(r1) /* 8004CDB4 00048A14 D0 21 00 14 */ stfs f1, 0x14(r1) /* 8004CDB8 00048A18 A0 1F 00 1C */ lhz r0, 0x1c(r31) /* 8004CDBC 00048A1C 54 04 06 3E */ clrlwi r4, r0, 0x18 /* 8004CDC0 00048A20 48 1A BD B1 */ bl func_801F8B70 lbl_8004CDC4: /* 8004CDC4 00048A24 C0 02 83 F8 */ lfs f0, lbl_806409F8-_SDA2_BASE_(r2) /* 8004CDC8 00048A28 38 00 00 FF */ li r0, 0xff /* 8004CDCC 00048A2C 98 1F 00 34 */ stb r0, 0x34(r31) /* 8004CDD0 00048A30 7F E3 FB 78 */ mr r3, r31 /* 8004CDD4 00048A34 D0 1F 00 20 */ stfs f0, 0x20(r31) /* 8004CDD8 00048A38 D0 1F 00 24 */ stfs f0, 0x24(r31) /* 8004CDDC 00048A3C 81 9F 00 10 */ lwz r12, 0x10(r31) /* 8004CDE0 00048A40 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004CDE4 00048A44 7D 89 03 A6 */ mtctr r12 /* 8004CDE8 00048A48 4E 80 04 21 */ bctrl /* 8004CDEC 00048A4C C0 02 84 1C */ lfs f0, lbl_80640A1C-_SDA2_BASE_(r2) /* 8004CDF0 00048A50 7F E3 FB 78 */ mr r3, r31 /* 8004CDF4 00048A54 EC 00 00 72 */ fmuls f0, f0, f1 /* 8004CDF8 00048A58 D0 1F 00 38 */ stfs f0, 0x38(r31) /* 8004CDFC 00048A5C 81 9F 00 10 */ lwz r12, 0x10(r31) /* 8004CE00 00048A60 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004CE04 00048A64 7D 89 03 A6 */ mtctr r12 /* 8004CE08 00048A68 4E 80 04 21 */ bctrl /* 8004CE0C 00048A6C D0 3F 00 40 */ stfs f1, 0x40(r31) /* 8004CE10 00048A70 7F E3 FB 78 */ mr r3, r31 /* 8004CE14 00048A74 81 9F 00 10 */ lwz r12, 0x10(r31) /* 8004CE18 00048A78 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004CE1C 00048A7C 7D 89 03 A6 */ mtctr r12 /* 8004CE20 00048A80 4E 80 04 21 */ bctrl /* 8004CE24 00048A84 C0 1F 00 38 */ lfs f0, 0x38(r31) /* 8004CE28 00048A88 EC 01 00 28 */ fsubs f0, f1, f0 /* 8004CE2C 00048A8C D0 1F 00 3C */ stfs f0, 0x3c(r31) /* 8004CE30 00048A90 48 00 01 24 */ b lbl_8004CF54 lbl_8004CE34: /* 8004CE34 00048A94 80 7F 00 18 */ lwz r3, 0x18(r31) /* 8004CE38 00048A98 2C 03 00 00 */ cmpwi r3, 0 /* 8004CE3C 00048A9C 41 82 00 1C */ beq lbl_8004CE58 /* 8004CE40 00048AA0 41 82 00 18 */ beq lbl_8004CE58 /* 8004CE44 00048AA4 81 83 00 0C */ lwz r12, 0xc(r3) /* 8004CE48 00048AA8 38 80 00 01 */ li r4, 1 /* 8004CE4C 00048AAC 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004CE50 00048AB0 7D 89 03 A6 */ mtctr r12 /* 8004CE54 00048AB4 4E 80 04 21 */ bctrl lbl_8004CE58: /* 8004CE58 00048AB8 C0 21 00 28 */ lfs f1, 0x28(r1) /* 8004CE5C 00048ABC C0 02 84 20 */ lfs f0, lbl_80640A20-_SDA2_BASE_(r2) /* 8004CE60 00048AC0 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8004CE64 00048AC4 40 80 00 0C */ bge lbl_8004CE70 /* 8004CE68 00048AC8 C0 02 84 24 */ lfs f0, lbl_80640A24-_SDA2_BASE_(r2) /* 8004CE6C 00048ACC D0 01 00 28 */ stfs f0, 0x28(r1) lbl_8004CE70: /* 8004CE70 00048AD0 48 18 DC B9 */ bl func_801DAB28 /* 8004CE74 00048AD4 2C 03 00 00 */ cmpwi r3, 0 /* 8004CE78 00048AD8 41 82 00 14 */ beq lbl_8004CE8C /* 8004CE7C 00048ADC 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13) /* 8004CE80 00048AE0 38 80 00 78 */ li r4, 0x78 /* 8004CE84 00048AE4 48 18 DE 11 */ bl func_801DAC94 /* 8004CE88 00048AE8 48 00 00 08 */ b lbl_8004CE90 lbl_8004CE8C: /* 8004CE8C 00048AEC 38 60 00 00 */ li r3, 0 lbl_8004CE90: /* 8004CE90 00048AF0 2C 03 00 00 */ cmpwi r3, 0 /* 8004CE94 00048AF4 41 82 00 10 */ beq lbl_8004CEA4 /* 8004CE98 00048AF8 80 9F 00 14 */ lwz r4, 0x14(r31) /* 8004CE9C 00048AFC 80 84 00 2C */ lwz r4, 0x2c(r4) /* 8004CEA0 00048B00 48 1D 2C A5 */ bl func_8021FB44 lbl_8004CEA4: /* 8004CEA4 00048B04 90 7F 00 18 */ stw r3, 0x18(r31) /* 8004CEA8 00048B08 3C 80 80 49 */ lis r4, lbl_80493614@ha /* 8004CEAC 00048B0C 38 84 36 14 */ addi r4, r4, lbl_80493614@l /* 8004CEB0 00048B10 C0 01 00 24 */ lfs f0, 0x24(r1) /* 8004CEB4 00048B14 D0 03 00 14 */ stfs f0, 0x14(r3) /* 8004CEB8 00048B18 C0 01 00 28 */ lfs f0, 0x28(r1) /* 8004CEBC 00048B1C D0 03 00 18 */ stfs f0, 0x18(r3) /* 8004CEC0 00048B20 C0 01 00 2C */ lfs f0, 0x2c(r1) /* 8004CEC4 00048B24 D0 03 00 1C */ stfs f0, 0x1c(r3) /* 8004CEC8 00048B28 80 7F 00 18 */ lwz r3, 0x18(r31) /* 8004CECC 00048B2C 48 1D 36 39 */ bl func_80220504 /* 8004CED0 00048B30 80 9F 00 18 */ lwz r4, 0x18(r31) /* 8004CED4 00048B34 7F E3 FB 78 */ mr r3, r31 /* 8004CED8 00048B38 D3 E4 00 44 */ stfs f31, 0x44(r4) /* 8004CEDC 00048B3C 80 BF 00 14 */ lwz r5, 0x14(r31) /* 8004CEE0 00048B40 80 9F 00 18 */ lwz r4, 0x18(r31) /* 8004CEE4 00048B44 C0 25 00 1C */ lfs f1, 0x1c(r5) /* 8004CEE8 00048B48 C0 05 00 18 */ lfs f0, 0x18(r5) /* 8004CEEC 00048B4C D0 21 00 0C */ stfs f1, 0xc(r1) /* 8004CEF0 00048B50 D0 04 00 48 */ stfs f0, 0x48(r4) /* 8004CEF4 00048B54 D0 24 00 4C */ stfs f1, 0x4c(r4) /* 8004CEF8 00048B58 81 9F 00 10 */ lwz r12, 0x10(r31) /* 8004CEFC 00048B5C D0 01 00 08 */ stfs f0, 8(r1) /* 8004CF00 00048B60 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004CF04 00048B64 7D 89 03 A6 */ mtctr r12 /* 8004CF08 00048B68 4E 80 04 21 */ bctrl /* 8004CF0C 00048B6C 80 7F 00 18 */ lwz r3, 0x18(r31) /* 8004CF10 00048B70 D0 23 00 74 */ stfs f1, 0x74(r3) /* 8004CF14 00048B74 83 DF 00 18 */ lwz r30, 0x18(r31) /* 8004CF18 00048B78 81 9E 00 0C */ lwz r12, 0xc(r30) /* 8004CF1C 00048B7C 7F C3 F3 78 */ mr r3, r30 /* 8004CF20 00048B80 81 8C 00 08 */ lwz r12, 8(r12) /* 8004CF24 00048B84 7D 89 03 A6 */ mtctr r12 /* 8004CF28 00048B88 4E 80 04 21 */ bctrl /* 8004CF2C 00048B8C 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 8004CF30 00048B90 98 7E 00 08 */ stb r3, 8(r30) /* 8004CF34 00048B94 41 82 00 20 */ beq lbl_8004CF54 /* 8004CF38 00048B98 83 DE 00 04 */ lwz r30, 4(r30) /* 8004CF3C 00048B9C 57 C3 86 3E */ rlwinm r3, r30, 0x10, 0x18, 0x1f /* 8004CF40 00048BA0 48 1E E1 19 */ bl func_8023B058 /* 8004CF44 00048BA4 2C 03 00 00 */ cmpwi r3, 0 /* 8004CF48 00048BA8 41 82 00 0C */ beq lbl_8004CF54 /* 8004CF4C 00048BAC 7F C4 F3 78 */ mr r4, r30 /* 8004CF50 00048BB0 48 1E E4 69 */ bl func_8023B3B8 lbl_8004CF54: /* 8004CF54 00048BB4 E3 E1 00 58 */ psq_l f31, 88(r1), 0, qr0 /* 8004CF58 00048BB8 80 01 00 64 */ lwz r0, 0x64(r1) /* 8004CF5C 00048BBC CB E1 00 50 */ lfd f31, 0x50(r1) /* 8004CF60 00048BC0 83 E1 00 4C */ lwz r31, 0x4c(r1) /* 8004CF64 00048BC4 83 C1 00 48 */ lwz r30, 0x48(r1) /* 8004CF68 00048BC8 83 A1 00 44 */ lwz r29, 0x44(r1) /* 8004CF6C 00048BCC 7C 08 03 A6 */ mtlr r0 /* 8004CF70 00048BD0 38 21 00 60 */ addi r1, r1, 0x60 /* 8004CF74 00048BD4 4E 80 00 20 */ blr /* 8004CF78 00048BD8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8004CF7C 00048BDC 7C 08 02 A6 */ mflr r0 /* 8004CF80 00048BE0 90 01 00 24 */ stw r0, 0x24(r1) /* 8004CF84 00048BE4 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8004CF88 00048BE8 93 C1 00 18 */ stw r30, 0x18(r1) /* 8004CF8C 00048BEC 93 A1 00 14 */ stw r29, 0x14(r1) /* 8004CF90 00048BF0 7C 7D 1B 78 */ mr r29, r3 /* 8004CF94 00048BF4 80 83 00 14 */ lwz r4, 0x14(r3) /* 8004CF98 00048BF8 80 04 00 2C */ lwz r0, 0x2c(r4) /* 8004CF9C 00048BFC 2C 00 00 00 */ cmpwi r0, 0 /* 8004CFA0 00048C00 41 82 00 A8 */ beq lbl_8004D048 /* 8004CFA4 00048C04 80 04 00 00 */ lwz r0, 0(r4) /* 8004CFA8 00048C08 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c /* 8004CFAC 00048C0C 41 82 00 28 */ beq lbl_8004CFD4 /* 8004CFB0 00048C10 A0 03 00 1C */ lhz r0, 0x1c(r3) /* 8004CFB4 00048C14 28 00 FF FF */ cmplwi r0, 0xffff /* 8004CFB8 00048C18 41 82 00 90 */ beq lbl_8004D048 /* 8004CFBC 00048C1C 4B FF E1 F9 */ bl func_8004B1B4 /* 8004CFC0 00048C20 A0 1D 00 1C */ lhz r0, 0x1c(r29) /* 8004CFC4 00048C24 80 63 0C 04 */ lwz r3, 0xc04(r3) /* 8004CFC8 00048C28 54 04 06 3E */ clrlwi r4, r0, 0x18 /* 8004CFCC 00048C2C 48 1A BB F9 */ bl func_801F8BC4 /* 8004CFD0 00048C30 48 00 00 78 */ b lbl_8004D048 lbl_8004CFD4: /* 8004CFD4 00048C34 83 E3 00 18 */ lwz r31, 0x18(r3) /* 8004CFD8 00048C38 88 1F 00 08 */ lbz r0, 8(r31) /* 8004CFDC 00048C3C 2C 00 00 00 */ cmpwi r0, 0 /* 8004CFE0 00048C40 41 82 00 3C */ beq lbl_8004D01C /* 8004CFE4 00048C44 83 DF 00 04 */ lwz r30, 4(r31) /* 8004CFE8 00048C48 57 C3 86 3E */ rlwinm r3, r30, 0x10, 0x18, 0x1f /* 8004CFEC 00048C4C 48 1E E0 6D */ bl func_8023B058 /* 8004CFF0 00048C50 2C 03 00 00 */ cmpwi r3, 0 /* 8004CFF4 00048C54 41 82 00 0C */ beq lbl_8004D000 /* 8004CFF8 00048C58 7F C4 F3 78 */ mr r4, r30 /* 8004CFFC 00048C5C 48 1E E4 25 */ bl func_8023B420 lbl_8004D000: /* 8004D000 00048C60 81 9F 00 0C */ lwz r12, 0xc(r31) /* 8004D004 00048C64 7F E3 FB 78 */ mr r3, r31 /* 8004D008 00048C68 81 8C 00 0C */ lwz r12, 0xc(r12) /* 8004D00C 00048C6C 7D 89 03 A6 */ mtctr r12 /* 8004D010 00048C70 4E 80 04 21 */ bctrl /* 8004D014 00048C74 38 00 00 00 */ li r0, 0 /* 8004D018 00048C78 98 1F 00 08 */ stb r0, 8(r31) lbl_8004D01C: /* 8004D01C 00048C7C 80 7D 00 18 */ lwz r3, 0x18(r29) /* 8004D020 00048C80 2C 03 00 00 */ cmpwi r3, 0 /* 8004D024 00048C84 41 82 00 24 */ beq lbl_8004D048 /* 8004D028 00048C88 41 82 00 18 */ beq lbl_8004D040 /* 8004D02C 00048C8C 81 83 00 0C */ lwz r12, 0xc(r3) /* 8004D030 00048C90 38 80 00 01 */ li r4, 1 /* 8004D034 00048C94 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004D038 00048C98 7D 89 03 A6 */ mtctr r12 /* 8004D03C 00048C9C 4E 80 04 21 */ bctrl lbl_8004D040: /* 8004D040 00048CA0 38 00 00 00 */ li r0, 0 /* 8004D044 00048CA4 90 1D 00 18 */ stw r0, 0x18(r29) lbl_8004D048: /* 8004D048 00048CA8 80 01 00 24 */ lwz r0, 0x24(r1) /* 8004D04C 00048CAC 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8004D050 00048CB0 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8004D054 00048CB4 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8004D058 00048CB8 7C 08 03 A6 */ mtlr r0 /* 8004D05C 00048CBC 38 21 00 20 */ addi r1, r1, 0x20 /* 8004D060 00048CC0 4E 80 00 20 */ blr /* 8004D064 00048CC4 94 21 FF C0 */ stwu r1, -0x40(r1) /* 8004D068 00048CC8 7C 08 02 A6 */ mflr r0 /* 8004D06C 00048CCC 90 01 00 44 */ stw r0, 0x44(r1) /* 8004D070 00048CD0 DB E1 00 30 */ stfd f31, 0x30(r1) /* 8004D074 00048CD4 F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0 /* 8004D078 00048CD8 DB C1 00 20 */ stfd f30, 0x20(r1) /* 8004D07C 00048CDC F3 C1 00 28 */ psq_st f30, 40(r1), 0, qr0 /* 8004D080 00048CE0 FF C0 08 90 */ fmr f30, f1 /* 8004D084 00048CE4 C3 E2 84 28 */ lfs f31, lbl_80640A28-_SDA2_BASE_(r2) /* 8004D088 00048CE8 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8004D08C 00048CEC 93 C1 00 18 */ stw r30, 0x18(r1) /* 8004D090 00048CF0 7C 7E 1B 78 */ mr r30, r3 /* 8004D094 00048CF4 C0 03 00 44 */ lfs f0, 0x44(r3) /* 8004D098 00048CF8 EC 00 08 2A */ fadds f0, f0, f1 /* 8004D09C 00048CFC D0 03 00 44 */ stfs f0, 0x44(r3) /* 8004D0A0 00048D00 4B FF E1 15 */ bl func_8004B1B4 /* 8004D0A4 00048D04 83 E3 0C 04 */ lwz r31, 0xc04(r3) /* 8004D0A8 00048D08 2C 1F 00 00 */ cmpwi r31, 0 /* 8004D0AC 00048D0C 41 82 01 28 */ beq lbl_8004D1D4 /* 8004D0B0 00048D10 A0 9E 00 1C */ lhz r4, 0x1c(r30) /* 8004D0B4 00048D14 28 04 FF FF */ cmplwi r4, 0xffff /* 8004D0B8 00048D18 41 82 01 1C */ beq lbl_8004D1D4 /* 8004D0BC 00048D1C 80 7E 00 14 */ lwz r3, 0x14(r30) /* 8004D0C0 00048D20 80 63 00 00 */ lwz r3, 0(r3) /* 8004D0C4 00048D24 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c /* 8004D0C8 00048D28 41 82 01 0C */ beq lbl_8004D1D4 /* 8004D0CC 00048D2C 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e /* 8004D0D0 00048D30 41 82 00 34 */ beq lbl_8004D104 /* 8004D0D4 00048D34 C0 62 84 2C */ lfs f3, lbl_80640A2C-_SDA2_BASE_(r2) /* 8004D0D8 00048D38 EC 3F 07 B2 */ fmuls f1, f31, f30 /* 8004D0DC 00048D3C C0 4D 86 C8 */ lfs f2, lbl_8063D988-_SDA_BASE_(r13) /* 8004D0E0 00048D40 7F E3 FB 78 */ mr r3, r31 /* 8004D0E4 00048D44 C0 1E 00 24 */ lfs f0, 0x24(r30) /* 8004D0E8 00048D48 54 84 06 3E */ clrlwi r4, r4, 0x18 /* 8004D0EC 00048D4C EC 43 00 B2 */ fmuls f2, f3, f2 /* 8004D0F0 00048D50 38 BE 00 20 */ addi r5, r30, 0x20 /* 8004D0F4 00048D54 EC 21 00 B2 */ fmuls f1, f1, f2 /* 8004D0F8 00048D58 EC 00 08 2A */ fadds f0, f0, f1 /* 8004D0FC 00048D5C D0 1E 00 24 */ stfs f0, 0x24(r30) /* 8004D100 00048D60 48 1A BA 41 */ bl func_801F8B40 lbl_8004D104: /* 8004D104 00048D64 C0 3E 00 38 */ lfs f1, 0x38(r30) /* 8004D108 00048D68 C0 1E 00 44 */ lfs f0, 0x44(r30) /* 8004D10C 00048D6C FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8004D110 00048D70 40 80 00 C4 */ bge lbl_8004D1D4 /* 8004D114 00048D74 81 9E 00 10 */ lwz r12, 0x10(r30) /* 8004D118 00048D78 7F C3 F3 78 */ mr r3, r30 /* 8004D11C 00048D7C 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004D120 00048D80 7D 89 03 A6 */ mtctr r12 /* 8004D124 00048D84 4E 80 04 21 */ bctrl /* 8004D128 00048D88 D0 3E 00 40 */ stfs f1, 0x40(r30) /* 8004D12C 00048D8C 7F C3 F3 78 */ mr r3, r30 /* 8004D130 00048D90 81 9E 00 10 */ lwz r12, 0x10(r30) /* 8004D134 00048D94 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004D138 00048D98 7D 89 03 A6 */ mtctr r12 /* 8004D13C 00048D9C 4E 80 04 21 */ bctrl /* 8004D140 00048DA0 C0 7E 00 38 */ lfs f3, 0x38(r30) /* 8004D144 00048DA4 C0 42 83 F8 */ lfs f2, lbl_806409F8-_SDA2_BASE_(r2) /* 8004D148 00048DA8 EC 21 18 28 */ fsubs f1, f1, f3 /* 8004D14C 00048DAC FC 01 10 40 */ fcmpo cr0, f1, f2 /* 8004D150 00048DB0 D0 3E 00 3C */ stfs f1, 0x3c(r30) /* 8004D154 00048DB4 40 81 00 80 */ ble lbl_8004D1D4 /* 8004D158 00048DB8 C0 1E 00 40 */ lfs f0, 0x40(r30) /* 8004D15C 00048DBC FC 00 10 40 */ fcmpo cr0, f0, f2 /* 8004D160 00048DC0 40 81 00 74 */ ble lbl_8004D1D4 /* 8004D164 00048DC4 C0 1E 00 44 */ lfs f0, 0x44(r30) /* 8004D168 00048DC8 EC 00 18 28 */ fsubs f0, f0, f3 /* 8004D16C 00048DCC EC 20 08 24 */ fdivs f1, f0, f1 /* 8004D170 00048DD0 FC 01 10 40 */ fcmpo cr0, f1, f2 /* 8004D174 00048DD4 40 80 00 08 */ bge lbl_8004D17C /* 8004D178 00048DD8 FC 20 10 90 */ fmr f1, f2 lbl_8004D17C: /* 8004D17C 00048DDC C0 02 84 00 */ lfs f0, lbl_80640A00-_SDA2_BASE_(r2) /* 8004D180 00048DE0 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8004D184 00048DE4 40 81 00 08 */ ble lbl_8004D18C /* 8004D188 00048DE8 FC 20 00 90 */ fmr f1, f0 lbl_8004D18C: /* 8004D18C 00048DEC 88 9E 00 34 */ lbz r4, 0x34(r30) /* 8004D190 00048DF0 3C 00 43 30 */ lis r0, 0x4330 /* 8004D194 00048DF4 C0 02 84 00 */ lfs f0, lbl_80640A00-_SDA2_BASE_(r2) /* 8004D198 00048DF8 7F E3 FB 78 */ mr r3, r31 /* 8004D19C 00048DFC 90 81 00 0C */ stw r4, 0xc(r1) /* 8004D1A0 00048E00 A0 9E 00 1C */ lhz r4, 0x1c(r30) /* 8004D1A4 00048E04 EC 00 08 28 */ fsubs f0, f0, f1 /* 8004D1A8 00048E08 90 01 00 08 */ stw r0, 8(r1) /* 8004D1AC 00048E0C C8 42 83 F0 */ lfd f2, lbl_806409F0-_SDA2_BASE_(r2) /* 8004D1B0 00048E10 54 84 06 3E */ clrlwi r4, r4, 0x18 /* 8004D1B4 00048E14 C8 21 00 08 */ lfd f1, 8(r1) /* 8004D1B8 00048E18 EC 21 10 28 */ fsubs f1, f1, f2 /* 8004D1BC 00048E1C EC 01 00 32 */ fmuls f0, f1, f0 /* 8004D1C0 00048E20 FC 00 00 1E */ fctiwz f0, f0 /* 8004D1C4 00048E24 D8 01 00 10 */ stfd f0, 0x10(r1) /* 8004D1C8 00048E28 80 A1 00 14 */ lwz r5, 0x14(r1) /* 8004D1CC 00048E2C 54 A5 06 3E */ clrlwi r5, r5, 0x18 /* 8004D1D0 00048E30 48 1A B9 D1 */ bl func_801F8BA0 lbl_8004D1D4: /* 8004D1D4 00048E34 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0 /* 8004D1D8 00048E38 CB E1 00 30 */ lfd f31, 0x30(r1) /* 8004D1DC 00048E3C E3 C1 00 28 */ psq_l f30, 40(r1), 0, qr0 /* 8004D1E0 00048E40 CB C1 00 20 */ lfd f30, 0x20(r1) /* 8004D1E4 00048E44 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8004D1E8 00048E48 80 01 00 44 */ lwz r0, 0x44(r1) /* 8004D1EC 00048E4C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8004D1F0 00048E50 7C 08 03 A6 */ mtlr r0 /* 8004D1F4 00048E54 38 21 00 40 */ addi r1, r1, 0x40 /* 8004D1F8 00048E58 4E 80 00 20 */ blr .global func_8004D1FC func_8004D1FC: /* 8004D1FC 00048E5C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004D200 00048E60 7C 08 02 A6 */ mflr r0 /* 8004D204 00048E64 90 01 00 14 */ stw r0, 0x14(r1) /* 8004D208 00048E68 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004D20C 00048E6C 7C 7F 1B 78 */ mr r31, r3 /* 8004D210 00048E70 4B FF DF 41 */ bl func_8004B150 /* 8004D214 00048E74 80 BF 00 0C */ lwz r5, 0xc(r31) /* 8004D218 00048E78 3C C0 80 41 */ lis r6, lbl_8040A764@ha /* 8004D21C 00048E7C 3C 60 00 01 */ lis r3, 0x0000FFFF@ha /* 8004D220 00048E80 38 80 00 00 */ li r4, 0 /* 8004D224 00048E84 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l /* 8004D228 00048E88 38 C6 A7 64 */ addi r6, r6, lbl_8040A764@l /* 8004D22C 00048E8C 38 A5 00 08 */ addi r5, r5, 8 /* 8004D230 00048E90 90 DF 00 10 */ stw r6, 0x10(r31) /* 8004D234 00048E94 7F E3 FB 78 */ mr r3, r31 /* 8004D238 00048E98 90 BF 00 14 */ stw r5, 0x14(r31) /* 8004D23C 00048E9C 90 9F 00 18 */ stw r4, 0x18(r31) /* 8004D240 00048EA0 B0 1F 00 1C */ sth r0, 0x1c(r31) /* 8004D244 00048EA4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004D248 00048EA8 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004D24C 00048EAC 7C 08 03 A6 */ mtlr r0 /* 8004D250 00048EB0 38 21 00 10 */ addi r1, r1, 0x10 /* 8004D254 00048EB4 4E 80 00 20 */ blr /* 8004D258 00048EB8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004D25C 00048EBC 7C 08 02 A6 */ mflr r0 /* 8004D260 00048EC0 2C 03 00 00 */ cmpwi r3, 0 /* 8004D264 00048EC4 90 01 00 14 */ stw r0, 0x14(r1) /* 8004D268 00048EC8 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004D26C 00048ECC 7C 9F 23 78 */ mr r31, r4 /* 8004D270 00048ED0 93 C1 00 08 */ stw r30, 8(r1) /* 8004D274 00048ED4 7C 7E 1B 78 */ mr r30, r3 /* 8004D278 00048ED8 41 82 00 60 */ beq lbl_8004D2D8 /* 8004D27C 00048EDC 80 03 00 18 */ lwz r0, 0x18(r3) /* 8004D280 00048EE0 3C 80 80 41 */ lis r4, lbl_8040A764@ha /* 8004D284 00048EE4 38 84 A7 64 */ addi r4, r4, lbl_8040A764@l /* 8004D288 00048EE8 2C 00 00 00 */ cmpwi r0, 0 /* 8004D28C 00048EEC 90 83 00 10 */ stw r4, 0x10(r3) /* 8004D290 00048EF0 41 82 00 20 */ beq lbl_8004D2B0 /* 8004D294 00048EF4 41 82 00 1C */ beq lbl_8004D2B0 /* 8004D298 00048EF8 7C 03 03 78 */ mr r3, r0 /* 8004D29C 00048EFC 38 80 00 01 */ li r4, 1 /* 8004D2A0 00048F00 81 83 00 0C */ lwz r12, 0xc(r3) /* 8004D2A4 00048F04 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004D2A8 00048F08 7D 89 03 A6 */ mtctr r12 /* 8004D2AC 00048F0C 4E 80 04 21 */ bctrl lbl_8004D2B0: /* 8004D2B0 00048F10 3C 80 00 01 */ lis r4, 0x0000FFFF@ha /* 8004D2B4 00048F14 7F C3 F3 78 */ mr r3, r30 /* 8004D2B8 00048F18 38 04 FF FF */ addi r0, r4, 0x0000FFFF@l /* 8004D2BC 00048F1C B0 1E 00 1C */ sth r0, 0x1c(r30) /* 8004D2C0 00048F20 38 80 00 00 */ li r4, 0 /* 8004D2C4 00048F24 4B FF DE B1 */ bl func_8004B174 /* 8004D2C8 00048F28 2C 1F 00 00 */ cmpwi r31, 0 /* 8004D2CC 00048F2C 40 81 00 0C */ ble lbl_8004D2D8 /* 8004D2D0 00048F30 7F C3 F3 78 */ mr r3, r30 /* 8004D2D4 00048F34 48 18 D7 E5 */ bl __dl__FPv lbl_8004D2D8: /* 8004D2D8 00048F38 7F C3 F3 78 */ mr r3, r30 /* 8004D2DC 00048F3C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004D2E0 00048F40 83 C1 00 08 */ lwz r30, 8(r1) /* 8004D2E4 00048F44 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004D2E8 00048F48 7C 08 03 A6 */ mtlr r0 /* 8004D2EC 00048F4C 38 21 00 10 */ addi r1, r1, 0x10 /* 8004D2F0 00048F50 4E 80 00 20 */ blr /* 8004D2F4 00048F54 94 21 FF A0 */ stwu r1, -0x60(r1) /* 8004D2F8 00048F58 7C 08 02 A6 */ mflr r0 /* 8004D2FC 00048F5C 90 01 00 64 */ stw r0, 0x64(r1) /* 8004D300 00048F60 93 E1 00 5C */ stw r31, 0x5c(r1) /* 8004D304 00048F64 7C 7F 1B 78 */ mr r31, r3 /* 8004D308 00048F68 93 C1 00 58 */ stw r30, 0x58(r1) /* 8004D30C 00048F6C 93 A1 00 54 */ stw r29, 0x54(r1) /* 8004D310 00048F70 80 83 00 14 */ lwz r4, 0x14(r3) /* 8004D314 00048F74 80 04 00 24 */ lwz r0, 0x24(r4) /* 8004D318 00048F78 2C 00 00 00 */ cmpwi r0, 0 /* 8004D31C 00048F7C 41 82 01 C8 */ beq lbl_8004D4E4 /* 8004D320 00048F80 80 63 00 04 */ lwz r3, 4(r3) /* 8004D324 00048F84 80 63 00 18 */ lwz r3, 0x18(r3) /* 8004D328 00048F88 2C 03 00 00 */ cmpwi r3, 0 /* 8004D32C 00048F8C 41 82 01 B8 */ beq lbl_8004D4E4 /* 8004D330 00048F90 4B FF AE 71 */ bl func_800481A0 /* 8004D334 00048F94 C0 02 83 F8 */ lfs f0, lbl_806409F8-_SDA2_BASE_(r2) /* 8004D338 00048F98 7C 7E 1B 78 */ mr r30, r3 /* 8004D33C 00048F9C D0 1F 00 44 */ stfs f0, 0x44(r31) /* 8004D340 00048FA0 C0 03 01 C4 */ lfs f0, 0x1c4(r3) /* 8004D344 00048FA4 D0 01 00 24 */ stfs f0, 0x24(r1) /* 8004D348 00048FA8 C0 03 01 C8 */ lfs f0, 0x1c8(r3) /* 8004D34C 00048FAC D0 01 00 28 */ stfs f0, 0x28(r1) /* 8004D350 00048FB0 C0 03 01 CC */ lfs f0, 0x1cc(r3) /* 8004D354 00048FB4 7F E3 FB 78 */ mr r3, r31 /* 8004D358 00048FB8 D0 01 00 2C */ stfs f0, 0x2c(r1) /* 8004D35C 00048FBC 4B FF DE 59 */ bl func_8004B1B4 /* 8004D360 00048FC0 2C 03 00 00 */ cmpwi r3, 0 /* 8004D364 00048FC4 7C 7D 1B 78 */ mr r29, r3 /* 8004D368 00048FC8 41 82 01 7C */ beq lbl_8004D4E4 /* 8004D36C 00048FCC 3D 20 80 40 */ lis r9, lbl_80400004@ha /* 8004D370 00048FD0 85 09 B7 60 */ lwzu r8, -0x48a0(r9) /* 8004D374 00048FD4 80 E9 00 04 */ lwz r7, lbl_80400004@l(r9) /* 8004D378 00048FD8 80 C9 00 08 */ lwz r6, 8(r9) /* 8004D37C 00048FDC 80 A9 00 0C */ lwz r5, 0xc(r9) /* 8004D380 00048FE0 80 89 00 10 */ lwz r4, 0x10(r9) /* 8004D384 00048FE4 80 09 00 14 */ lwz r0, 0x14(r9) /* 8004D388 00048FE8 91 01 00 30 */ stw r8, 0x30(r1) /* 8004D38C 00048FEC 90 E1 00 34 */ stw r7, 0x34(r1) /* 8004D390 00048FF0 90 C1 00 38 */ stw r6, 0x38(r1) /* 8004D394 00048FF4 90 A1 00 3C */ stw r5, 0x3c(r1) /* 8004D398 00048FF8 90 81 00 40 */ stw r4, 0x40(r1) /* 8004D39C 00048FFC 90 01 00 44 */ stw r0, 0x44(r1) /* 8004D3A0 00049000 4B FE C3 35 */ bl func_800396D4 /* 8004D3A4 00049004 2C 03 00 01 */ cmpwi r3, 1 /* 8004D3A8 00049008 40 80 00 10 */ bge lbl_8004D3B8 /* 8004D3AC 0004900C 2C 03 00 06 */ cmpwi r3, 6 /* 8004D3B0 00049010 40 81 00 08 */ ble lbl_8004D3B8 /* 8004D3B4 00049014 38 60 00 03 */ li r3, 3 lbl_8004D3B8: /* 8004D3B8 00049018 38 03 FF FF */ addi r0, r3, -1 /* 8004D3BC 0004901C 38 81 00 30 */ addi r4, r1, 0x30 /* 8004D3C0 00049020 54 00 10 3A */ slwi r0, r0, 2 /* 8004D3C4 00049024 38 61 00 24 */ addi r3, r1, 0x24 /* 8004D3C8 00049028 7C 04 04 2E */ lfsx f0, r4, r0 /* 8004D3CC 0004902C 38 9E 01 AC */ addi r4, r30, 0x1ac /* 8004D3D0 00049030 38 A1 00 18 */ addi r5, r1, 0x18 /* 8004D3D4 00049034 D0 1F 00 48 */ stfs f0, 0x48(r31) /* 8004D3D8 00049038 83 DD 0C 04 */ lwz r30, 0xc04(r29) /* 8004D3DC 0004903C 48 22 F9 0D */ bl PSVECSubtract /* 8004D3E0 00049040 38 61 00 18 */ addi r3, r1, 0x18 /* 8004D3E4 00049044 7C 64 1B 78 */ mr r4, r3 /* 8004D3E8 00049048 48 22 F9 41 */ bl PSVECNormalize /* 8004D3EC 0004904C 80 9F 00 14 */ lwz r4, 0x14(r31) /* 8004D3F0 00049050 7F C3 F3 78 */ mr r3, r30 /* 8004D3F4 00049054 38 A1 00 24 */ addi r5, r1, 0x24 /* 8004D3F8 00049058 38 C1 00 18 */ addi r6, r1, 0x18 /* 8004D3FC 0004905C 80 84 00 24 */ lwz r4, 0x24(r4) /* 8004D400 00049060 38 E0 00 00 */ li r7, 0 /* 8004D404 00049064 48 1A B4 E9 */ bl func_801F88EC /* 8004D408 00049068 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8004D40C 0004906C 80 9F 00 14 */ lwz r4, 0x14(r31) /* 8004D410 00049070 B0 1F 00 1C */ sth r0, 0x1c(r31) /* 8004D414 00049074 C0 02 84 14 */ lfs f0, lbl_80640A14-_SDA2_BASE_(r2) /* 8004D418 00049078 C0 24 00 08 */ lfs f1, 8(r4) /* 8004D41C 0004907C FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8004D420 00049080 40 80 00 10 */ bge lbl_8004D430 /* 8004D424 00049084 C0 02 84 18 */ lfs f0, lbl_80640A18-_SDA2_BASE_(r2) /* 8004D428 00049088 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8004D42C 0004908C 41 81 00 60 */ bgt lbl_8004D48C lbl_8004D430: /* 8004D430 00049090 C0 24 00 0C */ lfs f1, 0xc(r4) /* 8004D434 00049094 C0 02 84 14 */ lfs f0, lbl_80640A14-_SDA2_BASE_(r2) /* 8004D438 00049098 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8004D43C 0004909C 40 80 00 10 */ bge lbl_8004D44C /* 8004D440 000490A0 C0 02 84 18 */ lfs f0, lbl_80640A18-_SDA2_BASE_(r2) /* 8004D444 000490A4 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8004D448 000490A8 41 81 00 44 */ bgt lbl_8004D48C lbl_8004D44C: /* 8004D44C 000490AC C0 5F 00 48 */ lfs f2, 0x48(r31) /* 8004D450 000490B0 7F C3 F3 78 */ mr r3, r30 /* 8004D454 000490B4 C0 24 00 0C */ lfs f1, 0xc(r4) /* 8004D458 000490B8 38 A1 00 10 */ addi r5, r1, 0x10 /* 8004D45C 000490BC C0 04 00 08 */ lfs f0, 8(r4) /* 8004D460 000490C0 EC 21 00 B2 */ fmuls f1, f1, f2 /* 8004D464 000490C4 EC 00 00 B2 */ fmuls f0, f0, f2 /* 8004D468 000490C8 D0 21 00 0C */ stfs f1, 0xc(r1) /* 8004D46C 000490CC D0 01 00 08 */ stfs f0, 8(r1) /* 8004D470 000490D0 80 01 00 0C */ lwz r0, 0xc(r1) /* 8004D474 000490D4 80 81 00 08 */ lwz r4, 8(r1) /* 8004D478 000490D8 90 01 00 14 */ stw r0, 0x14(r1) /* 8004D47C 000490DC 90 81 00 10 */ stw r4, 0x10(r1) /* 8004D480 000490E0 A0 1F 00 1C */ lhz r0, 0x1c(r31) /* 8004D484 000490E4 54 04 06 3E */ clrlwi r4, r0, 0x18 /* 8004D488 000490E8 48 1A B6 E9 */ bl func_801F8B70 lbl_8004D48C: /* 8004D48C 000490EC C0 02 83 F8 */ lfs f0, lbl_806409F8-_SDA2_BASE_(r2) /* 8004D490 000490F0 38 00 00 FF */ li r0, 0xff /* 8004D494 000490F4 98 1F 00 34 */ stb r0, 0x34(r31) /* 8004D498 000490F8 7F E3 FB 78 */ mr r3, r31 /* 8004D49C 000490FC 80 9F 00 14 */ lwz r4, 0x14(r31) /* 8004D4A0 00049100 D0 1F 00 20 */ stfs f0, 0x20(r31) /* 8004D4A4 00049104 D0 1F 00 24 */ stfs f0, 0x24(r31) /* 8004D4A8 00049108 C0 04 00 18 */ lfs f0, 0x18(r4) /* 8004D4AC 0004910C D0 1F 00 38 */ stfs f0, 0x38(r31) /* 8004D4B0 00049110 81 9F 00 10 */ lwz r12, 0x10(r31) /* 8004D4B4 00049114 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004D4B8 00049118 7D 89 03 A6 */ mtctr r12 /* 8004D4BC 0004911C 4E 80 04 21 */ bctrl /* 8004D4C0 00049120 D0 3F 00 40 */ stfs f1, 0x40(r31) /* 8004D4C4 00049124 7F E3 FB 78 */ mr r3, r31 /* 8004D4C8 00049128 81 9F 00 10 */ lwz r12, 0x10(r31) /* 8004D4CC 0004912C 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004D4D0 00049130 7D 89 03 A6 */ mtctr r12 /* 8004D4D4 00049134 4E 80 04 21 */ bctrl /* 8004D4D8 00049138 C0 1F 00 38 */ lfs f0, 0x38(r31) /* 8004D4DC 0004913C EC 01 00 28 */ fsubs f0, f1, f0 /* 8004D4E0 00049140 D0 1F 00 3C */ stfs f0, 0x3c(r31) lbl_8004D4E4: /* 8004D4E4 00049144 80 01 00 64 */ lwz r0, 0x64(r1) /* 8004D4E8 00049148 83 E1 00 5C */ lwz r31, 0x5c(r1) /* 8004D4EC 0004914C 83 C1 00 58 */ lwz r30, 0x58(r1) /* 8004D4F0 00049150 83 A1 00 54 */ lwz r29, 0x54(r1) /* 8004D4F4 00049154 7C 08 03 A6 */ mtlr r0 /* 8004D4F8 00049158 38 21 00 60 */ addi r1, r1, 0x60 /* 8004D4FC 0004915C 4E 80 00 20 */ blr /* 8004D500 00049160 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004D504 00049164 7C 08 02 A6 */ mflr r0 /* 8004D508 00049168 90 01 00 14 */ stw r0, 0x14(r1) /* 8004D50C 0004916C 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004D510 00049170 7C 7F 1B 78 */ mr r31, r3 /* 8004D514 00049174 80 83 00 14 */ lwz r4, 0x14(r3) /* 8004D518 00049178 80 04 00 24 */ lwz r0, 0x24(r4) /* 8004D51C 0004917C 2C 00 00 00 */ cmpwi r0, 0 /* 8004D520 00049180 41 82 00 30 */ beq lbl_8004D550 /* 8004D524 00049184 A0 03 00 1C */ lhz r0, 0x1c(r3) /* 8004D528 00049188 28 00 FF FF */ cmplwi r0, 0xffff /* 8004D52C 0004918C 41 82 00 24 */ beq lbl_8004D550 /* 8004D530 00049190 4B FF DC 85 */ bl func_8004B1B4 /* 8004D534 00049194 A0 1F 00 1C */ lhz r0, 0x1c(r31) /* 8004D538 00049198 80 63 0C 04 */ lwz r3, 0xc04(r3) /* 8004D53C 0004919C 54 04 06 3E */ clrlwi r4, r0, 0x18 /* 8004D540 000491A0 48 1A B6 85 */ bl func_801F8BC4 /* 8004D544 000491A4 3C 60 00 01 */ lis r3, 0x0000FFFF@ha /* 8004D548 000491A8 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l /* 8004D54C 000491AC B0 1F 00 1C */ sth r0, 0x1c(r31) lbl_8004D550: /* 8004D550 000491B0 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004D554 000491B4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004D558 000491B8 7C 08 03 A6 */ mtlr r0 /* 8004D55C 000491BC 38 21 00 10 */ addi r1, r1, 0x10 /* 8004D560 000491C0 4E 80 00 20 */ blr /* 8004D564 000491C4 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8004D568 000491C8 7C 08 02 A6 */ mflr r0 /* 8004D56C 000491CC 90 01 00 34 */ stw r0, 0x34(r1) /* 8004D570 000491D0 DB E1 00 20 */ stfd f31, 0x20(r1) /* 8004D574 000491D4 F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0 /* 8004D578 000491D8 FF E0 08 90 */ fmr f31, f1 /* 8004D57C 000491DC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8004D580 000491E0 93 C1 00 18 */ stw r30, 0x18(r1) /* 8004D584 000491E4 7C 7E 1B 78 */ mr r30, r3 /* 8004D588 000491E8 C0 03 00 44 */ lfs f0, 0x44(r3) /* 8004D58C 000491EC EC 00 08 2A */ fadds f0, f0, f1 /* 8004D590 000491F0 D0 03 00 44 */ stfs f0, 0x44(r3) /* 8004D594 000491F4 4B FF DC 21 */ bl func_8004B1B4 /* 8004D598 000491F8 83 E3 0C 04 */ lwz r31, 0xc04(r3) /* 8004D59C 000491FC 2C 1F 00 00 */ cmpwi r31, 0 /* 8004D5A0 00049200 41 82 01 44 */ beq lbl_8004D6E4 /* 8004D5A4 00049204 A0 1E 00 1C */ lhz r0, 0x1c(r30) /* 8004D5A8 00049208 28 00 FF FF */ cmplwi r0, 0xffff /* 8004D5AC 0004920C 41 82 01 38 */ beq lbl_8004D6E4 /* 8004D5B0 00049210 80 DE 00 14 */ lwz r6, 0x14(r30) /* 8004D5B4 00049214 7F E3 FB 78 */ mr r3, r31 /* 8004D5B8 00049218 C0 7E 00 48 */ lfs f3, 0x48(r30) /* 8004D5BC 0004921C 54 04 06 3E */ clrlwi r4, r0, 0x18 /* 8004D5C0 00049220 C0 06 00 10 */ lfs f0, 0x10(r6) /* 8004D5C4 00049224 38 BE 00 20 */ addi r5, r30, 0x20 /* 8004D5C8 00049228 C0 82 84 2C */ lfs f4, lbl_80640A2C-_SDA2_BASE_(r2) /* 8004D5CC 0004922C EC 40 00 F2 */ fmuls f2, f0, f3 /* 8004D5D0 00049230 C0 0D 86 C8 */ lfs f0, lbl_8063D988-_SDA_BASE_(r13) /* 8004D5D4 00049234 C0 3E 00 20 */ lfs f1, 0x20(r30) /* 8004D5D8 00049238 EC A4 00 32 */ fmuls f5, f4, f0 /* 8004D5DC 0004923C C0 1E 00 24 */ lfs f0, 0x24(r30) /* 8004D5E0 00049240 EC 5F 00 B2 */ fmuls f2, f31, f2 /* 8004D5E4 00049244 EC 42 01 72 */ fmuls f2, f2, f5 /* 8004D5E8 00049248 EC 21 10 2A */ fadds f1, f1, f2 /* 8004D5EC 0004924C D0 3E 00 20 */ stfs f1, 0x20(r30) /* 8004D5F0 00049250 C0 26 00 14 */ lfs f1, 0x14(r6) /* 8004D5F4 00049254 C0 4D 86 C8 */ lfs f2, lbl_8063D988-_SDA_BASE_(r13) /* 8004D5F8 00049258 EC 21 00 F2 */ fmuls f1, f1, f3 /* 8004D5FC 0004925C EC 44 00 B2 */ fmuls f2, f4, f2 /* 8004D600 00049260 EC 3F 00 72 */ fmuls f1, f31, f1 /* 8004D604 00049264 EC 21 00 B2 */ fmuls f1, f1, f2 /* 8004D608 00049268 EC 00 08 2A */ fadds f0, f0, f1 /* 8004D60C 0004926C D0 1E 00 24 */ stfs f0, 0x24(r30) /* 8004D610 00049270 48 1A B5 31 */ bl func_801F8B40 /* 8004D614 00049274 C0 3E 00 38 */ lfs f1, 0x38(r30) /* 8004D618 00049278 C0 1E 00 44 */ lfs f0, 0x44(r30) /* 8004D61C 0004927C FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8004D620 00049280 40 80 00 C4 */ bge lbl_8004D6E4 /* 8004D624 00049284 81 9E 00 10 */ lwz r12, 0x10(r30) /* 8004D628 00049288 7F C3 F3 78 */ mr r3, r30 /* 8004D62C 0004928C 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004D630 00049290 7D 89 03 A6 */ mtctr r12 /* 8004D634 00049294 4E 80 04 21 */ bctrl /* 8004D638 00049298 D0 3E 00 40 */ stfs f1, 0x40(r30) /* 8004D63C 0004929C 7F C3 F3 78 */ mr r3, r30 /* 8004D640 000492A0 81 9E 00 10 */ lwz r12, 0x10(r30) /* 8004D644 000492A4 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004D648 000492A8 7D 89 03 A6 */ mtctr r12 /* 8004D64C 000492AC 4E 80 04 21 */ bctrl /* 8004D650 000492B0 C0 7E 00 38 */ lfs f3, 0x38(r30) /* 8004D654 000492B4 C0 42 83 F8 */ lfs f2, lbl_806409F8-_SDA2_BASE_(r2) /* 8004D658 000492B8 EC 21 18 28 */ fsubs f1, f1, f3 /* 8004D65C 000492BC FC 01 10 40 */ fcmpo cr0, f1, f2 /* 8004D660 000492C0 D0 3E 00 3C */ stfs f1, 0x3c(r30) /* 8004D664 000492C4 40 81 00 80 */ ble lbl_8004D6E4 /* 8004D668 000492C8 C0 1E 00 40 */ lfs f0, 0x40(r30) /* 8004D66C 000492CC FC 00 10 40 */ fcmpo cr0, f0, f2 /* 8004D670 000492D0 40 81 00 74 */ ble lbl_8004D6E4 /* 8004D674 000492D4 C0 1E 00 44 */ lfs f0, 0x44(r30) /* 8004D678 000492D8 EC 00 18 28 */ fsubs f0, f0, f3 /* 8004D67C 000492DC EC 20 08 24 */ fdivs f1, f0, f1 /* 8004D680 000492E0 FC 01 10 40 */ fcmpo cr0, f1, f2 /* 8004D684 000492E4 40 80 00 08 */ bge lbl_8004D68C /* 8004D688 000492E8 FC 20 10 90 */ fmr f1, f2 lbl_8004D68C: /* 8004D68C 000492EC C0 02 84 00 */ lfs f0, lbl_80640A00-_SDA2_BASE_(r2) /* 8004D690 000492F0 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8004D694 000492F4 40 81 00 08 */ ble lbl_8004D69C /* 8004D698 000492F8 FC 20 00 90 */ fmr f1, f0 lbl_8004D69C: /* 8004D69C 000492FC 88 9E 00 34 */ lbz r4, 0x34(r30) /* 8004D6A0 00049300 3C 00 43 30 */ lis r0, 0x4330 /* 8004D6A4 00049304 C0 02 84 00 */ lfs f0, lbl_80640A00-_SDA2_BASE_(r2) /* 8004D6A8 00049308 7F E3 FB 78 */ mr r3, r31 /* 8004D6AC 0004930C 90 81 00 0C */ stw r4, 0xc(r1) /* 8004D6B0 00049310 A0 9E 00 1C */ lhz r4, 0x1c(r30) /* 8004D6B4 00049314 EC 00 08 28 */ fsubs f0, f0, f1 /* 8004D6B8 00049318 90 01 00 08 */ stw r0, 8(r1) /* 8004D6BC 0004931C C8 42 83 F0 */ lfd f2, lbl_806409F0-_SDA2_BASE_(r2) /* 8004D6C0 00049320 54 84 06 3E */ clrlwi r4, r4, 0x18 /* 8004D6C4 00049324 C8 21 00 08 */ lfd f1, 8(r1) /* 8004D6C8 00049328 EC 21 10 28 */ fsubs f1, f1, f2 /* 8004D6CC 0004932C EC 01 00 32 */ fmuls f0, f1, f0 /* 8004D6D0 00049330 FC 00 00 1E */ fctiwz f0, f0 /* 8004D6D4 00049334 D8 01 00 10 */ stfd f0, 0x10(r1) /* 8004D6D8 00049338 80 A1 00 14 */ lwz r5, 0x14(r1) /* 8004D6DC 0004933C 54 A5 06 3E */ clrlwi r5, r5, 0x18 /* 8004D6E0 00049340 48 1A B4 C1 */ bl func_801F8BA0 lbl_8004D6E4: /* 8004D6E4 00049344 E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0 /* 8004D6E8 00049348 80 01 00 34 */ lwz r0, 0x34(r1) /* 8004D6EC 0004934C CB E1 00 20 */ lfd f31, 0x20(r1) /* 8004D6F0 00049350 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8004D6F4 00049354 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8004D6F8 00049358 7C 08 03 A6 */ mtlr r0 /* 8004D6FC 0004935C 38 21 00 30 */ addi r1, r1, 0x30 /* 8004D700 00049360 4E 80 00 20 */ blr .global func_8004D704 func_8004D704: /* 8004D704 00049364 38 A0 00 01 */ li r5, 1 /* 8004D708 00049368 38 6D 98 20 */ addi r3, r13, lbl_8063EAE0-_SDA_BASE_ /* 8004D70C 0004936C 38 80 00 04 */ li r4, 4 /* 8004D710 00049370 38 00 00 00 */ li r0, 0 /* 8004D714 00049374 98 AD 98 20 */ stb r5, lbl_8063EAE0-_SDA_BASE_(r13) /* 8004D718 00049378 B0 83 00 02 */ sth r4, 2(r3) /* 8004D71C 0004937C 98 03 00 04 */ stb r0, 4(r3) /* 8004D720 00049380 4E 80 00 20 */ blr