.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global func_801DF040 func_801DF040: /* 801DF040 001DACA0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 801DF044 001DACA4 7C 08 02 A6 */ mflr r0 /* 801DF048 001DACA8 90 01 00 24 */ stw r0, 0x24(r1) /* 801DF04C 001DACAC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 801DF050 001DACB0 7C BF 2B 78 */ mr r31, r5 /* 801DF054 001DACB4 93 C1 00 18 */ stw r30, 0x18(r1) /* 801DF058 001DACB8 7C 7E 1B 78 */ mr r30, r3 /* 801DF05C 001DACBC 93 A1 00 14 */ stw r29, 0x14(r1) /* 801DF060 001DACC0 48 01 2B 69 */ bl __ct__6GSnullFPvP11gUnkClass10 /* 801DF064 001DACC4 C0 02 96 50 */ lfs f0, lbl_80641C50-_SDA2_BASE_(r2) /* 801DF068 001DACC8 3C C0 80 42 */ lis r6, lbl_80423410@ha /* 801DF06C 001DACCC C0 42 96 48 */ lfs f2, lbl_80641C48-_SDA2_BASE_(r2) /* 801DF070 001DACD0 38 60 00 00 */ li r3, 0 /* 801DF074 001DACD4 C0 22 96 4C */ lfs f1, lbl_80641C4C-_SDA2_BASE_(r2) /* 801DF078 001DACD8 3C A0 00 01 */ lis r5, 0x0000FFFF@ha /* 801DF07C 001DACDC 38 C6 34 10 */ addi r6, r6, lbl_80423410@l /* 801DF080 001DACE0 38 80 00 16 */ li r4, 0x16 /* 801DF084 001DACE4 38 A5 FF FF */ addi r5, r5, 0x0000FFFF@l /* 801DF088 001DACE8 38 1E 00 D0 */ addi r0, r30, 0xd0 /* 801DF08C 001DACEC 90 DE 01 00 */ stw r6, 0x100(r30) /* 801DF090 001DACF0 B0 BE 01 04 */ sth r5, 0x104(r30) /* 801DF094 001DACF4 B0 9E 01 06 */ sth r4, 0x106(r30) /* 801DF098 001DACF8 D0 5E 01 20 */ stfs f2, 0x120(r30) /* 801DF09C 001DACFC D0 5E 01 24 */ stfs f2, 0x124(r30) /* 801DF0A0 001DAD00 D0 5E 01 28 */ stfs f2, 0x128(r30) /* 801DF0A4 001DAD04 D0 3E 01 2C */ stfs f1, 0x12c(r30) /* 801DF0A8 001DAD08 D0 3E 01 30 */ stfs f1, 0x130(r30) /* 801DF0AC 001DAD0C D0 3E 01 34 */ stfs f1, 0x134(r30) /* 801DF0B0 001DAD10 90 7E 01 3C */ stw r3, 0x13c(r30) /* 801DF0B4 001DAD14 90 7E 01 40 */ stw r3, 0x140(r30) /* 801DF0B8 001DAD18 93 FE 01 44 */ stw r31, 0x144(r30) /* 801DF0BC 001DAD1C D0 1E 01 08 */ stfs f0, 0x108(r30) /* 801DF0C0 001DAD20 D0 1E 01 0C */ stfs f0, 0x10c(r30) /* 801DF0C4 001DAD24 D0 1E 01 10 */ stfs f0, 0x110(r30) /* 801DF0C8 001DAD28 D0 1E 01 14 */ stfs f0, 0x114(r30) /* 801DF0CC 001DAD2C D0 1E 01 18 */ stfs f0, 0x118(r30) /* 801DF0D0 001DAD30 D0 1E 01 1C */ stfs f0, 0x11c(r30) /* 801DF0D4 001DAD34 90 1E 01 38 */ stw r0, 0x138(r30) /* 801DF0D8 001DAD38 A0 1F 00 30 */ lhz r0, 0x30(r31) /* 801DF0DC 001DAD3C 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e /* 801DF0E0 001DAD40 41 82 00 B0 */ beq lbl_801DF190 /* 801DF0E4 001DAD44 A3 BF 00 32 */ lhz r29, 0x32(r31) /* 801DF0E8 001DAD48 2C 1D 00 00 */ cmpwi r29, 0 /* 801DF0EC 001DAD4C 41 82 00 4C */ beq lbl_801DF138 /* 801DF0F0 001DAD50 1C 7D 00 0C */ mulli r3, r29, 0xc /* 801DF0F4 001DAD54 38 63 00 10 */ addi r3, r3, 0x10 /* 801DF0F8 001DAD58 4B FF B9 7D */ bl __nwa__FUl /* 801DF0FC 001DAD5C 3C 80 80 03 */ lis r4, func_8002A294@ha /* 801DF100 001DAD60 7F A7 EB 78 */ mr r7, r29 /* 801DF104 001DAD64 38 84 A2 94 */ addi r4, r4, func_8002A294@l /* 801DF108 001DAD68 38 A0 00 00 */ li r5, 0 /* 801DF10C 001DAD6C 38 C0 00 0C */ li r6, 0xc /* 801DF110 001DAD70 4B FE 7B 99 */ bl __construct_new_array /* 801DF114 001DAD74 90 7E 01 3C */ stw r3, 0x13c(r30) /* 801DF118 001DAD78 A0 1F 00 32 */ lhz r0, 0x32(r31) /* 801DF11C 001DAD7C 80 9F 00 38 */ lwz r4, 0x38(r31) /* 801DF120 001DAD80 1C A0 00 0C */ mulli r5, r0, 0xc /* 801DF124 001DAD84 4B E2 4E DD */ bl memcpy /* 801DF128 001DAD88 A0 1F 00 32 */ lhz r0, 0x32(r31) /* 801DF12C 001DAD8C 80 7E 01 3C */ lwz r3, 0x13c(r30) /* 801DF130 001DAD90 1C 80 00 0C */ mulli r4, r0, 0xc /* 801DF134 001DAD94 48 08 B5 21 */ bl DCFlushRange lbl_801DF138: /* 801DF138 001DAD98 A3 BF 00 34 */ lhz r29, 0x34(r31) /* 801DF13C 001DAD9C 2C 1D 00 00 */ cmpwi r29, 0 /* 801DF140 001DADA0 41 82 00 60 */ beq lbl_801DF1A0 /* 801DF144 001DADA4 1C 7D 00 0C */ mulli r3, r29, 0xc /* 801DF148 001DADA8 38 63 00 10 */ addi r3, r3, 0x10 /* 801DF14C 001DADAC 4B FF B9 29 */ bl __nwa__FUl /* 801DF150 001DADB0 3C 80 80 03 */ lis r4, func_8002A294@ha /* 801DF154 001DADB4 7F A7 EB 78 */ mr r7, r29 /* 801DF158 001DADB8 38 84 A2 94 */ addi r4, r4, func_8002A294@l /* 801DF15C 001DADBC 38 A0 00 00 */ li r5, 0 /* 801DF160 001DADC0 38 C0 00 0C */ li r6, 0xc /* 801DF164 001DADC4 4B FE 7B 45 */ bl __construct_new_array /* 801DF168 001DADC8 90 7E 01 40 */ stw r3, 0x140(r30) /* 801DF16C 001DADCC A0 1F 00 34 */ lhz r0, 0x34(r31) /* 801DF170 001DADD0 80 9F 00 3C */ lwz r4, 0x3c(r31) /* 801DF174 001DADD4 1C A0 00 0C */ mulli r5, r0, 0xc /* 801DF178 001DADD8 4B E2 4E 89 */ bl memcpy /* 801DF17C 001DADDC A0 1F 00 34 */ lhz r0, 0x34(r31) /* 801DF180 001DADE0 80 7E 01 40 */ lwz r3, 0x140(r30) /* 801DF184 001DADE4 1C 80 00 0C */ mulli r4, r0, 0xc /* 801DF188 001DADE8 48 08 B4 CD */ bl DCFlushRange /* 801DF18C 001DADEC 48 00 00 14 */ b lbl_801DF1A0 lbl_801DF190: /* 801DF190 001DADF0 80 1F 00 38 */ lwz r0, 0x38(r31) /* 801DF194 001DADF4 90 1E 01 3C */ stw r0, 0x13c(r30) /* 801DF198 001DADF8 80 1F 00 3C */ lwz r0, 0x3c(r31) /* 801DF19C 001DADFC 90 1E 01 40 */ stw r0, 0x140(r30) lbl_801DF1A0: /* 801DF1A0 001DAE00 80 9E 01 44 */ lwz r4, 0x144(r30) /* 801DF1A4 001DAE04 7F C3 F3 78 */ mr r3, r30 /* 801DF1A8 001DAE08 80 84 00 68 */ lwz r4, 0x68(r4) /* 801DF1AC 001DAE0C C0 04 00 00 */ lfs f0, 0(r4) /* 801DF1B0 001DAE10 D0 1E 01 20 */ stfs f0, 0x120(r30) /* 801DF1B4 001DAE14 C0 04 00 04 */ lfs f0, 4(r4) /* 801DF1B8 001DAE18 D0 1E 01 24 */ stfs f0, 0x124(r30) /* 801DF1BC 001DAE1C C0 04 00 08 */ lfs f0, 8(r4) /* 801DF1C0 001DAE20 D0 1E 01 28 */ stfs f0, 0x128(r30) /* 801DF1C4 001DAE24 C0 04 00 0C */ lfs f0, 0xc(r4) /* 801DF1C8 001DAE28 D0 1E 01 2C */ stfs f0, 0x12c(r30) /* 801DF1CC 001DAE2C C0 04 00 10 */ lfs f0, 0x10(r4) /* 801DF1D0 001DAE30 D0 1E 01 30 */ stfs f0, 0x130(r30) /* 801DF1D4 001DAE34 C0 04 00 14 */ lfs f0, 0x14(r4) /* 801DF1D8 001DAE38 D0 1E 01 34 */ stfs f0, 0x134(r30) /* 801DF1DC 001DAE3C 48 01 B2 C5 */ bl func_801FA4A0 /* 801DF1E0 001DAE40 48 08 90 81 */ bl PPCSync /* 801DF1E4 001DAE44 7F C3 F3 78 */ mr r3, r30 /* 801DF1E8 001DAE48 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 801DF1EC 001DAE4C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 801DF1F0 001DAE50 83 A1 00 14 */ lwz r29, 0x14(r1) /* 801DF1F4 001DAE54 80 01 00 24 */ lwz r0, 0x24(r1) /* 801DF1F8 001DAE58 7C 08 03 A6 */ mtlr r0 /* 801DF1FC 001DAE5C 38 21 00 20 */ addi r1, r1, 0x20 /* 801DF200 001DAE60 4E 80 00 20 */ blr /* 801DF204 001DAE64 94 21 FF F0 */ stwu r1, -0x10(r1) /* 801DF208 001DAE68 7C 08 02 A6 */ mflr r0 /* 801DF20C 001DAE6C 2C 03 00 00 */ cmpwi r3, 0 /* 801DF210 001DAE70 90 01 00 14 */ stw r0, 0x14(r1) /* 801DF214 001DAE74 93 E1 00 0C */ stw r31, 0xc(r1) /* 801DF218 001DAE78 7C 9F 23 78 */ mr r31, r4 /* 801DF21C 001DAE7C 93 C1 00 08 */ stw r30, 8(r1) /* 801DF220 001DAE80 7C 7E 1B 78 */ mr r30, r3 /* 801DF224 001DAE84 41 82 00 8C */ beq lbl_801DF2B0 /* 801DF228 001DAE88 3C 80 80 42 */ lis r4, lbl_80423410@ha /* 801DF22C 001DAE8C 38 84 34 10 */ addi r4, r4, lbl_80423410@l /* 801DF230 001DAE90 90 83 01 00 */ stw r4, 0x100(r3) /* 801DF234 001DAE94 48 01 B3 A9 */ bl func_801FA5DC /* 801DF238 001DAE98 80 7E 01 44 */ lwz r3, 0x144(r30) /* 801DF23C 001DAE9C 2C 03 00 00 */ cmpwi r3, 0 /* 801DF240 001DAEA0 41 82 00 50 */ beq lbl_801DF290 /* 801DF244 001DAEA4 80 9E 01 40 */ lwz r4, 0x140(r30) /* 801DF248 001DAEA8 2C 84 00 00 */ cmpwi cr1, r4, 0 /* 801DF24C 001DAEAC 41 86 00 1C */ beq cr1, lbl_801DF268 /* 801DF250 001DAEB0 80 03 00 3C */ lwz r0, 0x3c(r3) /* 801DF254 001DAEB4 7C 04 00 40 */ cmplw r4, r0 /* 801DF258 001DAEB8 41 82 00 10 */ beq lbl_801DF268 /* 801DF25C 001DAEBC 41 86 00 0C */ beq cr1, lbl_801DF268 /* 801DF260 001DAEC0 38 64 FF F0 */ addi r3, r4, -16 /* 801DF264 001DAEC4 4B FF B8 59 */ bl __dla__FPv lbl_801DF268: /* 801DF268 001DAEC8 80 9E 01 3C */ lwz r4, 0x13c(r30) /* 801DF26C 001DAECC 2C 84 00 00 */ cmpwi cr1, r4, 0 /* 801DF270 001DAED0 41 86 00 20 */ beq cr1, lbl_801DF290 /* 801DF274 001DAED4 80 7E 01 44 */ lwz r3, 0x144(r30) /* 801DF278 001DAED8 80 03 00 38 */ lwz r0, 0x38(r3) /* 801DF27C 001DAEDC 7C 04 00 40 */ cmplw r4, r0 /* 801DF280 001DAEE0 41 82 00 10 */ beq lbl_801DF290 /* 801DF284 001DAEE4 41 86 00 0C */ beq cr1, lbl_801DF290 /* 801DF288 001DAEE8 38 64 FF F0 */ addi r3, r4, -16 /* 801DF28C 001DAEEC 4B FF B8 31 */ bl __dla__FPv lbl_801DF290: /* 801DF290 001DAEF0 7F C3 F3 78 */ mr r3, r30 /* 801DF294 001DAEF4 38 80 00 00 */ li r4, 0 /* 801DF298 001DAEF8 48 01 2C 8D */ bl __dt__6GSnullFv /* 801DF29C 001DAEFC 2C 1F 00 00 */ cmpwi r31, 0 /* 801DF2A0 001DAF00 40 81 00 10 */ ble lbl_801DF2B0 /* 801DF2A4 001DAF04 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13) /* 801DF2A8 001DAF08 7F C4 F3 78 */ mr r4, r30 /* 801DF2AC 001DAF0C 4B FF BA 9D */ bl func_801DAD48 lbl_801DF2B0: /* 801DF2B0 001DAF10 7F C3 F3 78 */ mr r3, r30 /* 801DF2B4 001DAF14 83 E1 00 0C */ lwz r31, 0xc(r1) /* 801DF2B8 001DAF18 83 C1 00 08 */ lwz r30, 8(r1) /* 801DF2BC 001DAF1C 80 01 00 14 */ lwz r0, 0x14(r1) /* 801DF2C0 001DAF20 7C 08 03 A6 */ mtlr r0 /* 801DF2C4 001DAF24 38 21 00 10 */ addi r1, r1, 0x10 /* 801DF2C8 001DAF28 4E 80 00 20 */ blr .global func_801DF2CC func_801DF2CC: /* 801DF2CC 001DAF2C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 801DF2D0 001DAF30 7C 08 02 A6 */ mflr r0 /* 801DF2D4 001DAF34 90 01 00 14 */ stw r0, 0x14(r1) /* 801DF2D8 001DAF38 93 E1 00 0C */ stw r31, 0xc(r1) /* 801DF2DC 001DAF3C 7C 7F 1B 78 */ mr r31, r3 /* 801DF2E0 001DAF40 38 63 01 20 */ addi r3, r3, 0x120 /* 801DF2E4 001DAF44 48 04 18 0D */ bl func_80220AF0 /* 801DF2E8 001DAF48 C0 03 00 00 */ lfs f0, 0(r3) /* 801DF2EC 001DAF4C 38 00 00 07 */ li r0, 7 /* 801DF2F0 001DAF50 38 83 00 0C */ addi r4, r3, 0xc /* 801DF2F4 001DAF54 D0 1F 01 08 */ stfs f0, 0x108(r31) /* 801DF2F8 001DAF58 C0 03 00 04 */ lfs f0, 4(r3) /* 801DF2FC 001DAF5C D0 1F 01 0C */ stfs f0, 0x10c(r31) /* 801DF300 001DAF60 C0 03 00 08 */ lfs f0, 8(r3) /* 801DF304 001DAF64 D0 1F 01 10 */ stfs f0, 0x110(r31) /* 801DF308 001DAF68 C0 03 00 00 */ lfs f0, 0(r3) /* 801DF30C 001DAF6C D0 1F 01 14 */ stfs f0, 0x114(r31) /* 801DF310 001DAF70 C0 03 00 04 */ lfs f0, 4(r3) /* 801DF314 001DAF74 D0 1F 01 18 */ stfs f0, 0x118(r31) /* 801DF318 001DAF78 C0 03 00 08 */ lfs f0, 8(r3) /* 801DF31C 001DAF7C D0 1F 01 1C */ stfs f0, 0x11c(r31) /* 801DF320 001DAF80 7C 09 03 A6 */ mtctr r0 lbl_801DF324: /* 801DF324 001DAF84 C0 24 00 00 */ lfs f1, 0(r4) /* 801DF328 001DAF88 C0 1F 01 08 */ lfs f0, 0x108(r31) /* 801DF32C 001DAF8C FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801DF330 001DAF90 40 81 00 08 */ ble lbl_801DF338 /* 801DF334 001DAF94 D0 3F 01 08 */ stfs f1, 0x108(r31) lbl_801DF338: /* 801DF338 001DAF98 C0 1F 01 14 */ lfs f0, 0x114(r31) /* 801DF33C 001DAF9C FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801DF340 001DAFA0 40 80 00 08 */ bge lbl_801DF348 /* 801DF344 001DAFA4 D0 3F 01 14 */ stfs f1, 0x114(r31) lbl_801DF348: /* 801DF348 001DAFA8 C0 24 00 04 */ lfs f1, 4(r4) /* 801DF34C 001DAFAC C0 1F 01 0C */ lfs f0, 0x10c(r31) /* 801DF350 001DAFB0 FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801DF354 001DAFB4 40 81 00 08 */ ble lbl_801DF35C /* 801DF358 001DAFB8 D0 3F 01 0C */ stfs f1, 0x10c(r31) lbl_801DF35C: /* 801DF35C 001DAFBC C0 1F 01 18 */ lfs f0, 0x118(r31) /* 801DF360 001DAFC0 FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801DF364 001DAFC4 40 80 00 08 */ bge lbl_801DF36C /* 801DF368 001DAFC8 D0 3F 01 18 */ stfs f1, 0x118(r31) lbl_801DF36C: /* 801DF36C 001DAFCC C0 24 00 08 */ lfs f1, 8(r4) /* 801DF370 001DAFD0 C0 1F 01 10 */ lfs f0, 0x110(r31) /* 801DF374 001DAFD4 FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801DF378 001DAFD8 40 81 00 08 */ ble lbl_801DF380 /* 801DF37C 001DAFDC D0 3F 01 10 */ stfs f1, 0x110(r31) lbl_801DF380: /* 801DF380 001DAFE0 C0 1F 01 1C */ lfs f0, 0x11c(r31) /* 801DF384 001DAFE4 FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801DF388 001DAFE8 40 80 00 08 */ bge lbl_801DF390 /* 801DF38C 001DAFEC D0 3F 01 1C */ stfs f1, 0x11c(r31) lbl_801DF390: /* 801DF390 001DAFF0 38 84 00 0C */ addi r4, r4, 0xc /* 801DF394 001DAFF4 42 00 FF 90 */ bdnz lbl_801DF324 /* 801DF398 001DAFF8 C0 5F 01 08 */ lfs f2, 0x108(r31) /* 801DF39C 001DAFFC C0 C2 96 54 */ lfs f6, lbl_80641C54-_SDA2_BASE_(r2) /* 801DF3A0 001DB000 C0 3F 01 0C */ lfs f1, 0x10c(r31) /* 801DF3A4 001DB004 EC A2 30 28 */ fsubs f5, f2, f6 /* 801DF3A8 001DB008 C0 1F 01 10 */ lfs f0, 0x110(r31) /* 801DF3AC 001DB00C EC 81 30 28 */ fsubs f4, f1, f6 /* 801DF3B0 001DB010 C0 5F 01 14 */ lfs f2, 0x114(r31) /* 801DF3B4 001DB014 EC 60 30 28 */ fsubs f3, f0, f6 /* 801DF3B8 001DB018 C0 3F 01 18 */ lfs f1, 0x118(r31) /* 801DF3BC 001DB01C C0 1F 01 1C */ lfs f0, 0x11c(r31) /* 801DF3C0 001DB020 EC 42 30 2A */ fadds f2, f2, f6 /* 801DF3C4 001DB024 EC 21 30 2A */ fadds f1, f1, f6 /* 801DF3C8 001DB028 D0 BF 01 08 */ stfs f5, 0x108(r31) /* 801DF3CC 001DB02C EC 00 30 2A */ fadds f0, f0, f6 /* 801DF3D0 001DB030 D0 9F 01 0C */ stfs f4, 0x10c(r31) /* 801DF3D4 001DB034 D0 7F 01 10 */ stfs f3, 0x110(r31) /* 801DF3D8 001DB038 D0 5F 01 14 */ stfs f2, 0x114(r31) /* 801DF3DC 001DB03C D0 3F 01 18 */ stfs f1, 0x118(r31) /* 801DF3E0 001DB040 D0 1F 01 1C */ stfs f0, 0x11c(r31) /* 801DF3E4 001DB044 83 E1 00 0C */ lwz r31, 0xc(r1) /* 801DF3E8 001DB048 80 01 00 14 */ lwz r0, 0x14(r1) /* 801DF3EC 001DB04C 7C 08 03 A6 */ mtlr r0 /* 801DF3F0 001DB050 38 21 00 10 */ addi r1, r1, 0x10 /* 801DF3F4 001DB054 4E 80 00 20 */ blr .global func_801DF3F8 func_801DF3F8: /* 801DF3F8 001DB058 94 21 FF 80 */ stwu r1, -0x80(r1) /* 801DF3FC 001DB05C 7C 08 02 A6 */ mflr r0 /* 801DF400 001DB060 90 01 00 84 */ stw r0, 0x84(r1) /* 801DF404 001DB064 DB E1 00 70 */ stfd f31, 0x70(r1) /* 801DF408 001DB068 F3 E1 00 78 */ psq_st f31, 120(r1), 0, qr0 /* 801DF40C 001DB06C DB C1 00 60 */ stfd f30, 0x60(r1) /* 801DF410 001DB070 F3 C1 00 68 */ psq_st f30, 104(r1), 0, qr0 /* 801DF414 001DB074 3C 00 43 30 */ lis r0, 0x4330 /* 801DF418 001DB078 C8 82 96 60 */ lfd f4, lbl_80641C60-_SDA2_BASE_(r2) /* 801DF41C 001DB07C 90 C1 00 3C */ stw r6, 0x3c(r1) /* 801DF420 001DB080 C0 42 96 58 */ lfs f2, lbl_80641C58-_SDA2_BASE_(r2) /* 801DF424 001DB084 90 01 00 38 */ stw r0, 0x38(r1) /* 801DF428 001DB088 C8 01 00 38 */ lfd f0, 0x38(r1) /* 801DF42C 001DB08C 90 E1 00 44 */ stw r7, 0x44(r1) /* 801DF430 001DB090 EC 60 20 28 */ fsubs f3, f0, f4 /* 801DF434 001DB094 C0 02 96 5C */ lfs f0, lbl_80641C5C-_SDA2_BASE_(r2) /* 801DF438 001DB098 90 01 00 40 */ stw r0, 0x40(r1) /* 801DF43C 001DB09C C8 21 00 40 */ lfd f1, 0x40(r1) /* 801DF440 001DB0A0 EF E3 10 24 */ fdivs f31, f3, f2 /* 801DF444 001DB0A4 93 E1 00 5C */ stw r31, 0x5c(r1) /* 801DF448 001DB0A8 7D 3F 4B 78 */ mr r31, r9 /* 801DF44C 001DB0AC 93 C1 00 58 */ stw r30, 0x58(r1) /* 801DF450 001DB0B0 7D 1E 43 78 */ mr r30, r8 /* 801DF454 001DB0B4 7F C3 F3 78 */ mr r3, r30 /* 801DF458 001DB0B8 93 A1 00 54 */ stw r29, 0x54(r1) /* 801DF45C 001DB0BC EC 21 20 28 */ fsubs f1, f1, f4 /* 801DF460 001DB0C0 7C BD 2B 78 */ mr r29, r5 /* 801DF464 001DB0C4 93 81 00 50 */ stw r28, 0x50(r1) /* 801DF468 001DB0C8 7C 9C 23 78 */ mr r28, r4 /* 801DF46C 001DB0CC EF C1 10 24 */ fdivs f30, f1, f2 /* 801DF470 001DB0D0 7F C4 F3 78 */ mr r4, r30 /* 801DF474 001DB0D4 EC 3F F0 2A */ fadds f1, f31, f30 /* 801DF478 001DB0D8 EC 20 08 28 */ fsubs f1, f0, f1 /* 801DF47C 001DB0DC 48 09 D8 91 */ bl PSVECScale /* 801DF480 001DB0E0 7F 83 E3 78 */ mr r3, r28 /* 801DF484 001DB0E4 7F E4 FB 78 */ mr r4, r31 /* 801DF488 001DB0E8 38 A1 00 2C */ addi r5, r1, 0x2c /* 801DF48C 001DB0EC 48 09 D5 71 */ bl PSMTXMultVec /* 801DF490 001DB0F0 FC 20 F8 90 */ fmr f1, f31 /* 801DF494 001DB0F4 38 61 00 2C */ addi r3, r1, 0x2c /* 801DF498 001DB0F8 38 81 00 20 */ addi r4, r1, 0x20 /* 801DF49C 001DB0FC 48 09 D8 71 */ bl PSVECScale /* 801DF4A0 001DB100 7F C3 F3 78 */ mr r3, r30 /* 801DF4A4 001DB104 7F C5 F3 78 */ mr r5, r30 /* 801DF4A8 001DB108 38 81 00 20 */ addi r4, r1, 0x20 /* 801DF4AC 001DB10C 48 09 D8 19 */ bl PSVECAdd /* 801DF4B0 001DB110 7F A3 EB 78 */ mr r3, r29 /* 801DF4B4 001DB114 7F E4 FB 78 */ mr r4, r31 /* 801DF4B8 001DB118 38 A1 00 14 */ addi r5, r1, 0x14 /* 801DF4BC 001DB11C 48 09 D5 41 */ bl PSMTXMultVec /* 801DF4C0 001DB120 C0 61 00 14 */ lfs f3, 0x14(r1) /* 801DF4C4 001DB124 FC 20 F0 90 */ fmr f1, f30 /* 801DF4C8 001DB128 C0 41 00 18 */ lfs f2, 0x18(r1) /* 801DF4CC 001DB12C 38 61 00 2C */ addi r3, r1, 0x2c /* 801DF4D0 001DB130 C0 01 00 1C */ lfs f0, 0x1c(r1) /* 801DF4D4 001DB134 38 81 00 08 */ addi r4, r1, 8 /* 801DF4D8 001DB138 D0 61 00 2C */ stfs f3, 0x2c(r1) /* 801DF4DC 001DB13C D0 41 00 30 */ stfs f2, 0x30(r1) /* 801DF4E0 001DB140 D0 01 00 34 */ stfs f0, 0x34(r1) /* 801DF4E4 001DB144 48 09 D8 29 */ bl PSVECScale /* 801DF4E8 001DB148 7F C3 F3 78 */ mr r3, r30 /* 801DF4EC 001DB14C 7F C5 F3 78 */ mr r5, r30 /* 801DF4F0 001DB150 38 81 00 08 */ addi r4, r1, 8 /* 801DF4F4 001DB154 48 09 D7 D1 */ bl PSVECAdd /* 801DF4F8 001DB158 E3 E1 00 78 */ psq_l f31, 120(r1), 0, qr0 /* 801DF4FC 001DB15C CB E1 00 70 */ lfd f31, 0x70(r1) /* 801DF500 001DB160 E3 C1 00 68 */ psq_l f30, 104(r1), 0, qr0 /* 801DF504 001DB164 CB C1 00 60 */ lfd f30, 0x60(r1) /* 801DF508 001DB168 83 E1 00 5C */ lwz r31, 0x5c(r1) /* 801DF50C 001DB16C 83 C1 00 58 */ lwz r30, 0x58(r1) /* 801DF510 001DB170 83 A1 00 54 */ lwz r29, 0x54(r1) /* 801DF514 001DB174 80 01 00 84 */ lwz r0, 0x84(r1) /* 801DF518 001DB178 83 81 00 50 */ lwz r28, 0x50(r1) /* 801DF51C 001DB17C 7C 08 03 A6 */ mtlr r0 /* 801DF520 001DB180 38 21 00 80 */ addi r1, r1, 0x80 /* 801DF524 001DB184 4E 80 00 20 */ blr .global func_801DF528 func_801DF528: /* 801DF528 001DB188 94 21 FF 70 */ stwu r1, -0x90(r1) /* 801DF52C 001DB18C 7C 08 02 A6 */ mflr r0 /* 801DF530 001DB190 90 01 00 94 */ stw r0, 0x94(r1) /* 801DF534 001DB194 DB E1 00 80 */ stfd f31, 0x80(r1) /* 801DF538 001DB198 F3 E1 00 88 */ psq_st f31, 136(r1), 0, qr0 /* 801DF53C 001DB19C DB C1 00 70 */ stfd f30, 0x70(r1) /* 801DF540 001DB1A0 F3 C1 00 78 */ psq_st f30, 120(r1), 0, qr0 /* 801DF544 001DB1A4 DB A1 00 60 */ stfd f29, 0x60(r1) /* 801DF548 001DB1A8 F3 A1 00 68 */ psq_st f29, 104(r1), 0, qr0 /* 801DF54C 001DB1AC DB 81 00 50 */ stfd f28, 0x50(r1) /* 801DF550 001DB1B0 F3 81 00 58 */ psq_st f28, 88(r1), 0, qr0 /* 801DF554 001DB1B4 39 61 00 50 */ addi r11, r1, 0x50 /* 801DF558 001DB1B8 4B FE 7B C9 */ bl _savegpr_25 /* 801DF55C 001DB1BC 80 83 01 44 */ lwz r4, 0x144(r3) /* 801DF560 001DB1C0 7C 79 1B 78 */ mr r25, r3 /* 801DF564 001DB1C4 83 A3 01 3C */ lwz r29, 0x13c(r3) /* 801DF568 001DB1C8 83 84 00 38 */ lwz r28, 0x38(r4) /* 801DF56C 001DB1CC 7C 1D E0 40 */ cmplw r29, r28 /* 801DF570 001DB1D0 41 82 02 B4 */ beq lbl_801DF824 /* 801DF574 001DB1D4 3C 60 10 05 */ lis r3, 0x10051005@ha /* 801DF578 001DB1D8 38 03 10 05 */ addi r0, r3, 0x10051005@l /* 801DF57C 001DB1DC 7C 13 E3 A6 */ mtspr 0x393, r0 /* 801DF580 001DB1E0 A3 44 00 48 */ lhz r26, 0x48(r4) /* 801DF584 001DB1E4 2C 1A 00 00 */ cmpwi r26, 0 /* 801DF588 001DB1E8 41 82 00 78 */ beq lbl_801DF600 /* 801DF58C 001DB1EC 83 C4 00 4C */ lwz r30, 0x4c(r4) /* 801DF590 001DB1F0 48 00 00 64 */ b lbl_801DF5F4 lbl_801DF594: /* 801DF594 001DB1F4 80 79 00 B8 */ lwz r3, 0xb8(r25) /* 801DF598 001DB1F8 A3 7E 00 00 */ lhz r27, 0(r30) /* 801DF59C 001DB1FC 80 A3 00 08 */ lwz r5, 8(r3) /* 801DF5A0 001DB200 A0 9E 00 02 */ lhz r4, 2(r30) /* 801DF5A4 001DB204 2C 05 00 00 */ cmpwi r5, 0 /* 801DF5A8 001DB208 40 82 00 0C */ bne lbl_801DF5B4 /* 801DF5AC 001DB20C 38 60 00 00 */ li r3, 0 /* 801DF5B0 001DB210 48 00 00 20 */ b lbl_801DF5D0 lbl_801DF5B4: /* 801DF5B4 001DB214 A0 03 00 DE */ lhz r0, 0xde(r3) /* 801DF5B8 001DB218 7C 04 00 40 */ cmplw r4, r0 /* 801DF5BC 001DB21C 41 80 00 0C */ blt lbl_801DF5C8 /* 801DF5C0 001DB220 38 60 00 00 */ li r3, 0 /* 801DF5C4 001DB224 48 00 00 0C */ b lbl_801DF5D0 lbl_801DF5C8: /* 801DF5C8 001DB228 54 80 13 BA */ rlwinm r0, r4, 2, 0xe, 0x1d /* 801DF5CC 001DB22C 7C 65 00 2E */ lwzx r3, r5, r0 lbl_801DF5D0: /* 801DF5D0 001DB230 7F 84 E3 78 */ mr r4, r28 /* 801DF5D4 001DB234 7F A5 EB 78 */ mr r5, r29 /* 801DF5D8 001DB238 7F 66 DB 78 */ mr r6, r27 /* 801DF5DC 001DB23C 38 63 01 3C */ addi r3, r3, 0x13c /* 801DF5E0 001DB240 48 03 D4 C1 */ bl func_8021CAA0 /* 801DF5E4 001DB244 1C 1B 00 0C */ mulli r0, r27, 0xc /* 801DF5E8 001DB248 3B DE 00 04 */ addi r30, r30, 4 /* 801DF5EC 001DB24C 7F BD 02 14 */ add r29, r29, r0 /* 801DF5F0 001DB250 7F 9C 02 14 */ add r28, r28, r0 lbl_801DF5F4: /* 801DF5F4 001DB254 57 40 04 3F */ clrlwi. r0, r26, 0x10 /* 801DF5F8 001DB258 3B 5A FF FF */ addi r26, r26, -1 /* 801DF5FC 001DB25C 40 82 FF 98 */ bne lbl_801DF594 lbl_801DF600: /* 801DF600 001DB260 80 79 01 44 */ lwz r3, 0x144(r25) /* 801DF604 001DB264 A3 E3 00 50 */ lhz r31, 0x50(r3) /* 801DF608 001DB268 2C 1F 00 00 */ cmpwi r31, 0 /* 801DF60C 001DB26C 41 82 00 BC */ beq lbl_801DF6C8 /* 801DF610 001DB270 83 63 00 54 */ lwz r27, 0x54(r3) /* 801DF614 001DB274 83 43 00 58 */ lwz r26, 0x58(r3) /* 801DF618 001DB278 48 00 00 A4 */ b lbl_801DF6BC lbl_801DF61C: /* 801DF61C 001DB27C 80 B9 00 B8 */ lwz r5, 0xb8(r25) /* 801DF620 001DB280 A3 DB 00 00 */ lhz r30, 0(r27) /* 801DF624 001DB284 80 C5 00 08 */ lwz r6, 8(r5) /* 801DF628 001DB288 A0 7B 00 02 */ lhz r3, 2(r27) /* 801DF62C 001DB28C 2C 06 00 00 */ cmpwi r6, 0 /* 801DF630 001DB290 40 82 00 0C */ bne lbl_801DF63C /* 801DF634 001DB294 38 60 00 00 */ li r3, 0 /* 801DF638 001DB298 48 00 00 20 */ b lbl_801DF658 lbl_801DF63C: /* 801DF63C 001DB29C A0 05 00 DE */ lhz r0, 0xde(r5) /* 801DF640 001DB2A0 7C 03 00 40 */ cmplw r3, r0 /* 801DF644 001DB2A4 41 80 00 0C */ blt lbl_801DF650 /* 801DF648 001DB2A8 38 60 00 00 */ li r3, 0 /* 801DF64C 001DB2AC 48 00 00 0C */ b lbl_801DF658 lbl_801DF650: /* 801DF650 001DB2B0 54 60 13 BA */ rlwinm r0, r3, 2, 0xe, 0x1d /* 801DF654 001DB2B4 7C 66 00 2E */ lwzx r3, r6, r0 lbl_801DF658: /* 801DF658 001DB2B8 2C 06 00 00 */ cmpwi r6, 0 /* 801DF65C 001DB2BC A0 9B 00 04 */ lhz r4, 4(r27) /* 801DF660 001DB2C0 40 82 00 0C */ bne lbl_801DF66C /* 801DF664 001DB2C4 38 80 00 00 */ li r4, 0 /* 801DF668 001DB2C8 48 00 00 20 */ b lbl_801DF688 lbl_801DF66C: /* 801DF66C 001DB2CC A0 05 00 DE */ lhz r0, 0xde(r5) /* 801DF670 001DB2D0 7C 04 00 40 */ cmplw r4, r0 /* 801DF674 001DB2D4 41 80 00 0C */ blt lbl_801DF680 /* 801DF678 001DB2D8 38 80 00 00 */ li r4, 0 /* 801DF67C 001DB2DC 48 00 00 0C */ b lbl_801DF688 lbl_801DF680: /* 801DF680 001DB2E0 54 80 13 BA */ rlwinm r0, r4, 2, 0xe, 0x1d /* 801DF684 001DB2E4 7C 86 00 2E */ lwzx r4, r6, r0 lbl_801DF688: /* 801DF688 001DB2E8 7F 45 D3 78 */ mr r5, r26 /* 801DF68C 001DB2EC 7F 86 E3 78 */ mr r6, r28 /* 801DF690 001DB2F0 7F A7 EB 78 */ mr r7, r29 /* 801DF694 001DB2F4 7F C8 F3 78 */ mr r8, r30 /* 801DF698 001DB2F8 38 63 01 3C */ addi r3, r3, 0x13c /* 801DF69C 001DB2FC 38 84 01 3C */ addi r4, r4, 0x13c /* 801DF6A0 001DB300 48 03 D5 B5 */ bl func_8021CC54 /* 801DF6A4 001DB304 1C 7E 00 0C */ mulli r3, r30, 0xc /* 801DF6A8 001DB308 57 C0 0B FC */ rlwinm r0, r30, 1, 0xf, 0x1e /* 801DF6AC 001DB30C 3B 7B 00 06 */ addi r27, r27, 6 /* 801DF6B0 001DB310 7F 5A 02 14 */ add r26, r26, r0 /* 801DF6B4 001DB314 7F BD 1A 14 */ add r29, r29, r3 /* 801DF6B8 001DB318 7F 9C 1A 14 */ add r28, r28, r3 lbl_801DF6BC: /* 801DF6BC 001DB31C 57 E0 04 3F */ clrlwi. r0, r31, 0x10 /* 801DF6C0 001DB320 3B FF FF FF */ addi r31, r31, -1 /* 801DF6C4 001DB324 40 82 FF 58 */ bne lbl_801DF61C lbl_801DF6C8: /* 801DF6C8 001DB328 3C 60 00 05 */ lis r3, 0x00050005@ha /* 801DF6CC 001DB32C 38 03 00 05 */ addi r0, r3, 0x00050005@l /* 801DF6D0 001DB330 7C 13 E3 A6 */ mtspr 0x393, r0 /* 801DF6D4 001DB334 80 79 01 44 */ lwz r3, 0x144(r25) /* 801DF6D8 001DB338 A3 E3 00 5C */ lhz r31, 0x5c(r3) /* 801DF6DC 001DB33C 2C 1F 00 00 */ cmpwi r31, 0 /* 801DF6E0 001DB340 41 82 01 44 */ beq lbl_801DF824 /* 801DF6E4 001DB344 83 43 00 60 */ lwz r26, 0x60(r3) /* 801DF6E8 001DB348 3F 60 43 30 */ lis r27, 0x4330 /* 801DF6EC 001DB34C CB A2 96 60 */ lfd f29, lbl_80641C60-_SDA2_BASE_(r2) /* 801DF6F0 001DB350 C3 C2 96 58 */ lfs f30, lbl_80641C58-_SDA2_BASE_(r2) /* 801DF6F4 001DB354 C3 E2 96 5C */ lfs f31, lbl_80641C5C-_SDA2_BASE_(r2) /* 801DF6F8 001DB358 48 00 01 20 */ b lbl_801DF818 lbl_801DF6FC: /* 801DF6FC 001DB35C 80 99 00 B8 */ lwz r4, 0xb8(r25) /* 801DF700 001DB360 A0 DA 00 00 */ lhz r6, 0(r26) /* 801DF704 001DB364 80 A4 00 08 */ lwz r5, 8(r4) /* 801DF708 001DB368 A0 7A 00 02 */ lhz r3, 2(r26) /* 801DF70C 001DB36C 2C 05 00 00 */ cmpwi r5, 0 /* 801DF710 001DB370 40 82 00 0C */ bne lbl_801DF71C /* 801DF714 001DB374 3B 80 00 00 */ li r28, 0 /* 801DF718 001DB378 48 00 00 20 */ b lbl_801DF738 lbl_801DF71C: /* 801DF71C 001DB37C A0 04 00 DE */ lhz r0, 0xde(r4) /* 801DF720 001DB380 7C 03 00 40 */ cmplw r3, r0 /* 801DF724 001DB384 41 80 00 0C */ blt lbl_801DF730 /* 801DF728 001DB388 3B 80 00 00 */ li r28, 0 /* 801DF72C 001DB38C 48 00 00 0C */ b lbl_801DF738 lbl_801DF730: /* 801DF730 001DB390 54 60 13 BA */ rlwinm r0, r3, 2, 0xe, 0x1d /* 801DF734 001DB394 7F 85 00 2E */ lwzx r28, r5, r0 lbl_801DF738: /* 801DF738 001DB398 A0 FA 00 08 */ lhz r7, 8(r26) /* 801DF73C 001DB39C 2C 07 00 00 */ cmpwi r7, 0 /* 801DF740 001DB3A0 41 82 00 64 */ beq lbl_801DF7A4 /* 801DF744 001DB3A4 2C 05 00 00 */ cmpwi r5, 0 /* 801DF748 001DB3A8 A0 7A 00 04 */ lhz r3, 4(r26) /* 801DF74C 001DB3AC 40 82 00 0C */ bne lbl_801DF758 /* 801DF750 001DB3B0 38 A0 00 00 */ li r5, 0 /* 801DF754 001DB3B4 48 00 00 20 */ b lbl_801DF774 lbl_801DF758: /* 801DF758 001DB3B8 A0 04 00 DE */ lhz r0, 0xde(r4) /* 801DF75C 001DB3BC 7C 03 00 40 */ cmplw r3, r0 /* 801DF760 001DB3C0 41 80 00 0C */ blt lbl_801DF76C /* 801DF764 001DB3C4 38 A0 00 00 */ li r5, 0 /* 801DF768 001DB3C8 48 00 00 0C */ b lbl_801DF774 lbl_801DF76C: /* 801DF76C 001DB3CC 54 60 13 BA */ rlwinm r0, r3, 2, 0xe, 0x1d /* 801DF770 001DB3D0 7C A5 00 2E */ lwzx r5, r5, r0 lbl_801DF774: /* 801DF774 001DB3D4 80 99 01 44 */ lwz r4, 0x144(r25) /* 801DF778 001DB3D8 1D 26 00 0C */ mulli r9, r6, 0xc /* 801DF77C 001DB3DC 81 19 01 3C */ lwz r8, 0x13c(r25) /* 801DF780 001DB3E0 7F 23 CB 78 */ mr r3, r25 /* 801DF784 001DB3E4 80 04 00 38 */ lwz r0, 0x38(r4) /* 801DF788 001DB3E8 38 9C 01 0C */ addi r4, r28, 0x10c /* 801DF78C 001DB3EC A0 DA 00 06 */ lhz r6, 6(r26) /* 801DF790 001DB3F0 7D 08 4A 14 */ add r8, r8, r9 /* 801DF794 001DB3F4 38 A5 01 0C */ addi r5, r5, 0x10c /* 801DF798 001DB3F8 7D 20 4A 14 */ add r9, r0, r9 /* 801DF79C 001DB3FC 4B FF FC 5D */ bl func_801DF3F8 /* 801DF7A0 001DB400 48 00 00 74 */ b lbl_801DF814 lbl_801DF7A4: /* 801DF7A4 001DB404 A0 1A 00 06 */ lhz r0, 6(r26) /* 801DF7A8 001DB408 1C A6 00 0C */ mulli r5, r6, 0xc /* 801DF7AC 001DB40C 93 61 00 20 */ stw r27, 0x20(r1) /* 801DF7B0 001DB410 80 79 01 44 */ lwz r3, 0x144(r25) /* 801DF7B4 001DB414 90 01 00 24 */ stw r0, 0x24(r1) /* 801DF7B8 001DB418 80 19 01 3C */ lwz r0, 0x13c(r25) /* 801DF7BC 001DB41C C8 01 00 20 */ lfd f0, 0x20(r1) /* 801DF7C0 001DB420 7F A0 2A 14 */ add r29, r0, r5 /* 801DF7C4 001DB424 80 03 00 38 */ lwz r0, 0x38(r3) /* 801DF7C8 001DB428 EC 00 E8 28 */ fsubs f0, f0, f29 /* 801DF7CC 001DB42C 7F A3 EB 78 */ mr r3, r29 /* 801DF7D0 001DB430 7F A4 EB 78 */ mr r4, r29 /* 801DF7D4 001DB434 7F C0 2A 14 */ add r30, r0, r5 /* 801DF7D8 001DB438 EF 80 F0 24 */ fdivs f28, f0, f30 /* 801DF7DC 001DB43C EC 3F E0 28 */ fsubs f1, f31, f28 /* 801DF7E0 001DB440 48 09 D5 2D */ bl PSVECScale /* 801DF7E4 001DB444 7F C4 F3 78 */ mr r4, r30 /* 801DF7E8 001DB448 38 7C 01 0C */ addi r3, r28, 0x10c /* 801DF7EC 001DB44C 38 A1 00 08 */ addi r5, r1, 8 /* 801DF7F0 001DB450 48 09 D2 0D */ bl PSMTXMultVec /* 801DF7F4 001DB454 FC 20 E0 90 */ fmr f1, f28 /* 801DF7F8 001DB458 38 61 00 08 */ addi r3, r1, 8 /* 801DF7FC 001DB45C 38 81 00 14 */ addi r4, r1, 0x14 /* 801DF800 001DB460 48 09 D5 0D */ bl PSVECScale /* 801DF804 001DB464 7F A3 EB 78 */ mr r3, r29 /* 801DF808 001DB468 7F A5 EB 78 */ mr r5, r29 /* 801DF80C 001DB46C 38 81 00 14 */ addi r4, r1, 0x14 /* 801DF810 001DB470 48 09 D4 B5 */ bl PSVECAdd lbl_801DF814: /* 801DF814 001DB474 3B 5A 00 0A */ addi r26, r26, 0xa lbl_801DF818: /* 801DF818 001DB478 57 E0 04 3F */ clrlwi. r0, r31, 0x10 /* 801DF81C 001DB47C 3B FF FF FF */ addi r31, r31, -1 /* 801DF820 001DB480 40 82 FE DC */ bne lbl_801DF6FC lbl_801DF824: /* 801DF824 001DB484 E3 E1 00 88 */ psq_l f31, 136(r1), 0, qr0 /* 801DF828 001DB488 CB E1 00 80 */ lfd f31, 0x80(r1) /* 801DF82C 001DB48C E3 C1 00 78 */ psq_l f30, 120(r1), 0, qr0 /* 801DF830 001DB490 CB C1 00 70 */ lfd f30, 0x70(r1) /* 801DF834 001DB494 E3 A1 00 68 */ psq_l f29, 104(r1), 0, qr0 /* 801DF838 001DB498 CB A1 00 60 */ lfd f29, 0x60(r1) /* 801DF83C 001DB49C E3 81 00 58 */ psq_l f28, 88(r1), 0, qr0 /* 801DF840 001DB4A0 39 61 00 50 */ addi r11, r1, 0x50 /* 801DF844 001DB4A4 CB 81 00 50 */ lfd f28, 0x50(r1) /* 801DF848 001DB4A8 4B FE 79 25 */ bl _restgpr_25 /* 801DF84C 001DB4AC 80 01 00 94 */ lwz r0, 0x94(r1) /* 801DF850 001DB4B0 7C 08 03 A6 */ mtlr r0 /* 801DF854 001DB4B4 38 21 00 90 */ addi r1, r1, 0x90 /* 801DF858 001DB4B8 4E 80 00 20 */ blr .global func_801DF85C func_801DF85C: /* 801DF85C 001DB4BC 94 21 FF 70 */ stwu r1, -0x90(r1) /* 801DF860 001DB4C0 7C 08 02 A6 */ mflr r0 /* 801DF864 001DB4C4 90 01 00 94 */ stw r0, 0x94(r1) /* 801DF868 001DB4C8 DB E1 00 80 */ stfd f31, 0x80(r1) /* 801DF86C 001DB4CC F3 E1 00 88 */ psq_st f31, 136(r1), 0, qr0 /* 801DF870 001DB4D0 DB C1 00 70 */ stfd f30, 0x70(r1) /* 801DF874 001DB4D4 F3 C1 00 78 */ psq_st f30, 120(r1), 0, qr0 /* 801DF878 001DB4D8 DB A1 00 60 */ stfd f29, 0x60(r1) /* 801DF87C 001DB4DC F3 A1 00 68 */ psq_st f29, 104(r1), 0, qr0 /* 801DF880 001DB4E0 DB 81 00 50 */ stfd f28, 0x50(r1) /* 801DF884 001DB4E4 F3 81 00 58 */ psq_st f28, 88(r1), 0, qr0 /* 801DF888 001DB4E8 39 61 00 50 */ addi r11, r1, 0x50 /* 801DF88C 001DB4EC 4B FE 78 95 */ bl _savegpr_25 /* 801DF890 001DB4F0 80 83 01 44 */ lwz r4, 0x144(r3) /* 801DF894 001DB4F4 7C 7F 1B 78 */ mr r31, r3 /* 801DF898 001DB4F8 80 63 01 40 */ lwz r3, 0x140(r3) /* 801DF89C 001DB4FC 80 04 00 3C */ lwz r0, 0x3c(r4) /* 801DF8A0 001DB500 7C 03 00 40 */ cmplw r3, r0 /* 801DF8A4 001DB504 41 82 00 F8 */ beq lbl_801DF99C /* 801DF8A8 001DB508 A3 C4 00 34 */ lhz r30, 0x34(r4) /* 801DF8AC 001DB50C 3B 80 00 00 */ li r28, 0 /* 801DF8B0 001DB510 83 A4 00 40 */ lwz r29, 0x40(r4) /* 801DF8B4 001DB514 C3 C2 96 50 */ lfs f30, lbl_80641C50-_SDA2_BASE_(r2) /* 801DF8B8 001DB518 C3 A2 96 6C */ lfs f29, lbl_80641C6C-_SDA2_BASE_(r2) /* 801DF8BC 001DB51C C3 E2 96 5C */ lfs f31, lbl_80641C5C-_SDA2_BASE_(r2) /* 801DF8C0 001DB520 C3 82 96 68 */ lfs f28, lbl_80641C68-_SDA2_BASE_(r2) /* 801DF8C4 001DB524 48 00 00 CC */ b lbl_801DF990 lbl_801DF8C8: /* 801DF8C8 001DB528 80 FD 00 04 */ lwz r7, 4(r29) /* 801DF8CC 001DB52C 38 A1 00 20 */ addi r5, r1, 0x20 /* 801DF8D0 001DB530 A0 1D 00 00 */ lhz r0, 0(r29) /* 801DF8D4 001DB534 A0 87 00 00 */ lhz r4, 0(r7) /* 801DF8D8 001DB538 A0 67 00 04 */ lhz r3, 4(r7) /* 801DF8DC 001DB53C 1C C0 00 0C */ mulli r6, r0, 0xc /* 801DF8E0 001DB540 A0 07 00 02 */ lhz r0, 2(r7) /* 801DF8E4 001DB544 81 1F 01 3C */ lwz r8, 0x13c(r31) /* 801DF8E8 001DB548 1C 84 00 0C */ mulli r4, r4, 0xc /* 801DF8EC 001DB54C 80 FF 01 40 */ lwz r7, 0x140(r31) /* 801DF8F0 001DB550 7F 67 32 14 */ add r27, r7, r6 /* 801DF8F4 001DB554 1C 63 00 0C */ mulli r3, r3, 0xc /* 801DF8F8 001DB558 7F 48 22 14 */ add r26, r8, r4 /* 801DF8FC 001DB55C 1C 00 00 0C */ mulli r0, r0, 0xc /* 801DF900 001DB560 7F 44 D3 78 */ mr r4, r26 /* 801DF904 001DB564 7F 28 1A 14 */ add r25, r8, r3 /* 801DF908 001DB568 7C 68 02 14 */ add r3, r8, r0 /* 801DF90C 001DB56C 48 09 D3 DD */ bl PSVECSubtract /* 801DF910 001DB570 7F 23 CB 78 */ mr r3, r25 /* 801DF914 001DB574 7F 44 D3 78 */ mr r4, r26 /* 801DF918 001DB578 38 A1 00 14 */ addi r5, r1, 0x14 /* 801DF91C 001DB57C 48 09 D3 CD */ bl PSVECSubtract /* 801DF920 001DB580 38 61 00 20 */ addi r3, r1, 0x20 /* 801DF924 001DB584 38 81 00 14 */ addi r4, r1, 0x14 /* 801DF928 001DB588 38 A1 00 08 */ addi r5, r1, 8 /* 801DF92C 001DB58C 48 09 D4 BD */ bl PSVECCrossProduct /* 801DF930 001DB590 C0 01 00 08 */ lfs f0, 8(r1) /* 801DF934 001DB594 7F 63 DB 78 */ mr r3, r27 /* 801DF938 001DB598 D0 1B 00 00 */ stfs f0, 0(r27) /* 801DF93C 001DB59C C0 01 00 0C */ lfs f0, 0xc(r1) /* 801DF940 001DB5A0 D0 1B 00 04 */ stfs f0, 4(r27) /* 801DF944 001DB5A4 C0 01 00 10 */ lfs f0, 0x10(r1) /* 801DF948 001DB5A8 D0 1B 00 08 */ stfs f0, 8(r27) /* 801DF94C 001DB5AC 48 09 D4 39 */ bl PSVECMag /* 801DF950 001DB5B0 FC 01 E0 40 */ fcmpo cr0, f1, f28 /* 801DF954 001DB5B4 40 81 00 34 */ ble lbl_801DF988 /* 801DF958 001DB5B8 40 80 00 20 */ bge lbl_801DF978 /* 801DF95C 001DB5BC FC 01 E8 40 */ fcmpo cr0, f1, f29 /* 801DF960 001DB5C0 40 81 00 18 */ ble lbl_801DF978 /* 801DF964 001DB5C4 FC 01 F0 40 */ fcmpo cr0, f1, f30 /* 801DF968 001DB5C8 40 80 00 0C */ bge lbl_801DF974 /* 801DF96C 001DB5CC FC 20 E8 90 */ fmr f1, f29 /* 801DF970 001DB5D0 48 00 00 08 */ b lbl_801DF978 lbl_801DF974: /* 801DF974 001DB5D4 FC 20 E0 90 */ fmr f1, f28 lbl_801DF978: /* 801DF978 001DB5D8 EC 3F 08 24 */ fdivs f1, f31, f1 /* 801DF97C 001DB5DC 7F 63 DB 78 */ mr r3, r27 /* 801DF980 001DB5E0 7F 64 DB 78 */ mr r4, r27 /* 801DF984 001DB5E4 48 09 D3 89 */ bl PSVECScale lbl_801DF988: /* 801DF988 001DB5E8 3B 9C 00 01 */ addi r28, r28, 1 /* 801DF98C 001DB5EC 3B BD 00 08 */ addi r29, r29, 8 lbl_801DF990: /* 801DF990 001DB5F0 57 80 04 3E */ clrlwi r0, r28, 0x10 /* 801DF994 001DB5F4 7C 00 F0 40 */ cmplw r0, r30 /* 801DF998 001DB5F8 41 80 FF 30 */ blt lbl_801DF8C8 lbl_801DF99C: /* 801DF99C 001DB5FC E3 E1 00 88 */ psq_l f31, 136(r1), 0, qr0 /* 801DF9A0 001DB600 CB E1 00 80 */ lfd f31, 0x80(r1) /* 801DF9A4 001DB604 E3 C1 00 78 */ psq_l f30, 120(r1), 0, qr0 /* 801DF9A8 001DB608 CB C1 00 70 */ lfd f30, 0x70(r1) /* 801DF9AC 001DB60C E3 A1 00 68 */ psq_l f29, 104(r1), 0, qr0 /* 801DF9B0 001DB610 CB A1 00 60 */ lfd f29, 0x60(r1) /* 801DF9B4 001DB614 E3 81 00 58 */ psq_l f28, 88(r1), 0, qr0 /* 801DF9B8 001DB618 39 61 00 50 */ addi r11, r1, 0x50 /* 801DF9BC 001DB61C CB 81 00 50 */ lfd f28, 0x50(r1) /* 801DF9C0 001DB620 4B FE 77 AD */ bl _restgpr_25 /* 801DF9C4 001DB624 80 01 00 94 */ lwz r0, 0x94(r1) /* 801DF9C8 001DB628 7C 08 03 A6 */ mtlr r0 /* 801DF9CC 001DB62C 38 21 00 90 */ addi r1, r1, 0x90 /* 801DF9D0 001DB630 4E 80 00 20 */ blr .global func_801DF9D4 func_801DF9D4: /* 801DF9D4 001DB634 94 21 FF B0 */ stwu r1, -0x50(r1) /* 801DF9D8 001DB638 7C 08 02 A6 */ mflr r0 /* 801DF9DC 001DB63C 90 01 00 54 */ stw r0, 0x54(r1) /* 801DF9E0 001DB640 3C 00 43 30 */ lis r0, 0x4330 /* 801DF9E4 001DB644 93 E1 00 4C */ stw r31, 0x4c(r1) /* 801DF9E8 001DB648 7C 7F 1B 78 */ mr r31, r3 /* 801DF9EC 001DB64C 80 C3 01 44 */ lwz r6, 0x144(r3) /* 801DF9F0 001DB650 90 01 00 28 */ stw r0, 0x28(r1) /* 801DF9F4 001DB654 80 C6 00 68 */ lwz r6, 0x68(r6) /* 801DF9F8 001DB658 90 01 00 30 */ stw r0, 0x30(r1) /* 801DF9FC 001DB65C A0 06 00 18 */ lhz r0, 0x18(r6) /* 801DFA00 001DB660 2C 00 00 00 */ cmpwi r0, 0 /* 801DFA04 001DB664 41 82 03 78 */ beq lbl_801DFD7C /* 801DFA08 001DB668 7C 04 00 00 */ cmpw r4, r0 /* 801DFA0C 001DB66C 41 80 00 08 */ blt lbl_801DFA14 /* 801DFA10 001DB670 38 80 00 00 */ li r4, 0 lbl_801DFA14: /* 801DFA14 001DB674 80 C6 00 1C */ lwz r6, 0x1c(r6) /* 801DFA18 001DB678 54 80 18 38 */ slwi r0, r4, 3 /* 801DFA1C 001DB67C 7C 86 02 2E */ lhzx r4, r6, r0 /* 801DFA20 001DB680 7D 06 02 14 */ add r8, r6, r0 /* 801DFA24 001DB684 2C 04 00 00 */ cmpwi r4, 0 /* 801DFA28 001DB688 41 82 03 54 */ beq lbl_801DFD7C /* 801DFA2C 001DB68C 88 08 00 02 */ lbz r0, 2(r8) /* 801DFA30 001DB690 C8 42 96 60 */ lfd f2, lbl_80641C60-_SDA2_BASE_(r2) /* 801DFA34 001DB694 90 01 00 2C */ stw r0, 0x2c(r1) /* 801DFA38 001DB698 C8 01 00 28 */ lfd f0, 0x28(r1) /* 801DFA3C 001DB69C EC 00 10 28 */ fsubs f0, f0, f2 /* 801DFA40 001DB6A0 EC 00 00 72 */ fmuls f0, f0, f1 /* 801DFA44 001DB6A4 FC 00 00 1E */ fctiwz f0, f0 /* 801DFA48 001DB6A8 D8 01 00 38 */ stfd f0, 0x38(r1) /* 801DFA4C 001DB6AC 81 21 00 3C */ lwz r9, 0x3c(r1) /* 801DFA50 001DB6B0 2C 09 00 00 */ cmpwi r9, 0 /* 801DFA54 001DB6B4 40 80 00 0C */ bge lbl_801DFA60 /* 801DFA58 001DB6B8 39 20 00 00 */ li r9, 0 /* 801DFA5C 001DB6BC 48 00 00 10 */ b lbl_801DFA6C lbl_801DFA60: /* 801DFA60 001DB6C0 7C 09 20 00 */ cmpw r9, r4 /* 801DFA64 001DB6C4 41 80 00 08 */ blt lbl_801DFA6C /* 801DFA68 001DB6C8 39 24 FF FF */ addi r9, r4, -1 lbl_801DFA6C: /* 801DFA6C 001DB6CC C0 22 96 48 */ lfs f1, lbl_80641C48-_SDA2_BASE_(r2) /* 801DFA70 001DB6D0 38 E0 00 00 */ li r7, 0 /* 801DFA74 001DB6D4 C0 02 96 4C */ lfs f0, lbl_80641C4C-_SDA2_BASE_(r2) /* 801DFA78 001DB6D8 D0 21 00 08 */ stfs f1, 8(r1) /* 801DFA7C 001DB6DC D0 21 00 0C */ stfs f1, 0xc(r1) /* 801DFA80 001DB6E0 D0 21 00 10 */ stfs f1, 0x10(r1) /* 801DFA84 001DB6E4 D0 01 00 14 */ stfs f0, 0x14(r1) /* 801DFA88 001DB6E8 D0 01 00 18 */ stfs f0, 0x18(r1) /* 801DFA8C 001DB6EC D0 01 00 1C */ stfs f0, 0x1c(r1) /* 801DFA90 001DB6F0 90 E1 00 20 */ stw r7, 0x20(r1) /* 801DFA94 001DB6F4 88 C8 00 03 */ lbz r6, 3(r8) /* 801DFA98 001DB6F8 54 C0 07 3E */ clrlwi r0, r6, 0x1c /* 801DFA9C 001DB6FC 2C 00 00 08 */ cmpwi r0, 8 /* 801DFAA0 001DB700 41 82 00 A8 */ beq lbl_801DFB48 /* 801DFAA4 001DB704 40 80 02 D8 */ bge lbl_801DFD7C /* 801DFAA8 001DB708 2C 00 00 00 */ cmpwi r0, 0 /* 801DFAAC 001DB70C 41 82 00 08 */ beq lbl_801DFAB4 /* 801DFAB0 001DB710 48 00 02 CC */ b lbl_801DFD7C lbl_801DFAB4: /* 801DFAB4 001DB714 1C 09 00 18 */ mulli r0, r9, 0x18 /* 801DFAB8 001DB718 80 88 00 04 */ lwz r4, 4(r8) /* 801DFABC 001DB71C 2C 05 00 00 */ cmpwi r5, 0 /* 801DFAC0 001DB720 7C A4 02 14 */ add r5, r4, r0 /* 801DFAC4 001DB724 41 82 00 50 */ beq lbl_801DFB14 /* 801DFAC8 001DB728 C0 05 00 00 */ lfs f0, 0(r5) /* 801DFACC 001DB72C 38 81 00 08 */ addi r4, r1, 8 /* 801DFAD0 001DB730 D0 01 00 08 */ stfs f0, 8(r1) /* 801DFAD4 001DB734 C0 05 00 04 */ lfs f0, 4(r5) /* 801DFAD8 001DB738 D0 01 00 0C */ stfs f0, 0xc(r1) /* 801DFADC 001DB73C C0 05 00 08 */ lfs f0, 8(r5) /* 801DFAE0 001DB740 D0 01 00 10 */ stfs f0, 0x10(r1) /* 801DFAE4 001DB744 C0 05 00 0C */ lfs f0, 0xc(r5) /* 801DFAE8 001DB748 D0 01 00 14 */ stfs f0, 0x14(r1) /* 801DFAEC 001DB74C C0 05 00 10 */ lfs f0, 0x10(r5) /* 801DFAF0 001DB750 D0 01 00 18 */ stfs f0, 0x18(r1) /* 801DFAF4 001DB754 C0 05 00 14 */ lfs f0, 0x14(r5) /* 801DFAF8 001DB758 D0 01 00 1C */ stfs f0, 0x1c(r1) /* 801DFAFC 001DB75C 90 E3 01 38 */ stw r7, 0x138(r3) /* 801DFB00 001DB760 38 63 01 20 */ addi r3, r3, 0x120 /* 801DFB04 001DB764 48 04 11 75 */ bl func_80220C78 /* 801DFB08 001DB768 38 1F 00 D0 */ addi r0, r31, 0xd0 /* 801DFB0C 001DB76C 90 1F 01 38 */ stw r0, 0x138(r31) /* 801DFB10 001DB770 48 00 02 6C */ b lbl_801DFD7C lbl_801DFB14: /* 801DFB14 001DB774 C0 05 00 00 */ lfs f0, 0(r5) /* 801DFB18 001DB778 D0 03 01 20 */ stfs f0, 0x120(r3) /* 801DFB1C 001DB77C C0 05 00 04 */ lfs f0, 4(r5) /* 801DFB20 001DB780 D0 03 01 24 */ stfs f0, 0x124(r3) /* 801DFB24 001DB784 C0 05 00 08 */ lfs f0, 8(r5) /* 801DFB28 001DB788 D0 03 01 28 */ stfs f0, 0x128(r3) /* 801DFB2C 001DB78C C0 05 00 0C */ lfs f0, 0xc(r5) /* 801DFB30 001DB790 D0 03 01 2C */ stfs f0, 0x12c(r3) /* 801DFB34 001DB794 C0 05 00 10 */ lfs f0, 0x10(r5) /* 801DFB38 001DB798 D0 03 01 30 */ stfs f0, 0x130(r3) /* 801DFB3C 001DB79C C0 05 00 14 */ lfs f0, 0x14(r5) /* 801DFB40 001DB7A0 D0 03 01 34 */ stfs f0, 0x134(r3) /* 801DFB44 001DB7A4 48 00 02 38 */ b lbl_801DFD7C lbl_801DFB48: /* 801DFB48 001DB7A8 1C 09 00 0C */ mulli r0, r9, 0xc /* 801DFB4C 001DB7AC 80 88 00 04 */ lwz r4, 4(r8) /* 801DFB50 001DB7B0 2C 05 00 00 */ cmpwi r5, 0 /* 801DFB54 001DB7B4 54 C6 E7 3E */ rlwinm r6, r6, 0x1c, 0x1c, 0x1f /* 801DFB58 001DB7B8 7C A4 02 14 */ add r5, r4, r0 /* 801DFB5C 001DB7BC 41 82 01 20 */ beq lbl_801DFC7C /* 801DFB60 001DB7C0 A8 05 00 00 */ lha r0, 0(r5) /* 801DFB64 001DB7C4 38 80 00 01 */ li r4, 1 /* 801DFB68 001DB7C8 7C 84 30 30 */ slw r4, r4, r6 /* 801DFB6C 001DB7CC C8 C2 96 70 */ lfd f6, lbl_80641C70-_SDA2_BASE_(r2) /* 801DFB70 001DB7D0 6C 86 80 00 */ xoris r6, r4, 0x8000 /* 801DFB74 001DB7D4 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 801DFB78 001DB7D8 90 01 00 34 */ stw r0, 0x34(r1) /* 801DFB7C 001DB7DC 38 81 00 08 */ addi r4, r1, 8 /* 801DFB80 001DB7E0 90 C1 00 2C */ stw r6, 0x2c(r1) /* 801DFB84 001DB7E4 C8 21 00 30 */ lfd f1, 0x30(r1) /* 801DFB88 001DB7E8 C8 01 00 28 */ lfd f0, 0x28(r1) /* 801DFB8C 001DB7EC EC 41 30 28 */ fsubs f2, f1, f6 /* 801DFB90 001DB7F0 EC 20 30 28 */ fsubs f1, f0, f6 /* 801DFB94 001DB7F4 90 C1 00 2C */ stw r6, 0x2c(r1) /* 801DFB98 001DB7F8 C8 01 00 28 */ lfd f0, 0x28(r1) /* 801DFB9C 001DB7FC EC 62 08 24 */ fdivs f3, f2, f1 /* 801DFBA0 001DB800 90 C1 00 2C */ stw r6, 0x2c(r1) /* 801DFBA4 001DB804 C8 41 00 28 */ lfd f2, 0x28(r1) /* 801DFBA8 001DB808 90 C1 00 2C */ stw r6, 0x2c(r1) /* 801DFBAC 001DB80C C8 21 00 28 */ lfd f1, 0x28(r1) /* 801DFBB0 001DB810 90 C1 00 2C */ stw r6, 0x2c(r1) /* 801DFBB4 001DB814 D0 61 00 08 */ stfs f3, 8(r1) /* 801DFBB8 001DB818 EC 80 30 28 */ fsubs f4, f0, f6 /* 801DFBBC 001DB81C EC 62 30 28 */ fsubs f3, f2, f6 /* 801DFBC0 001DB820 C8 01 00 28 */ lfd f0, 0x28(r1) /* 801DFBC4 001DB824 A8 05 00 02 */ lha r0, 2(r5) /* 801DFBC8 001DB828 EC 41 30 28 */ fsubs f2, f1, f6 /* 801DFBCC 001DB82C EC 20 30 28 */ fsubs f1, f0, f6 /* 801DFBD0 001DB830 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 801DFBD4 001DB834 90 01 00 34 */ stw r0, 0x34(r1) /* 801DFBD8 001DB838 C8 A1 00 30 */ lfd f5, 0x30(r1) /* 801DFBDC 001DB83C 90 C1 00 2C */ stw r6, 0x2c(r1) /* 801DFBE0 001DB840 EC A5 30 28 */ fsubs f5, f5, f6 /* 801DFBE4 001DB844 C8 01 00 28 */ lfd f0, 0x28(r1) /* 801DFBE8 001DB848 EC 85 20 24 */ fdivs f4, f5, f4 /* 801DFBEC 001DB84C D0 81 00 0C */ stfs f4, 0xc(r1) /* 801DFBF0 001DB850 EC 00 30 28 */ fsubs f0, f0, f6 /* 801DFBF4 001DB854 A8 05 00 04 */ lha r0, 4(r5) /* 801DFBF8 001DB858 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 801DFBFC 001DB85C 90 01 00 34 */ stw r0, 0x34(r1) /* 801DFC00 001DB860 C8 81 00 30 */ lfd f4, 0x30(r1) /* 801DFC04 001DB864 EC 84 30 28 */ fsubs f4, f4, f6 /* 801DFC08 001DB868 EC 64 18 24 */ fdivs f3, f4, f3 /* 801DFC0C 001DB86C D0 61 00 10 */ stfs f3, 0x10(r1) /* 801DFC10 001DB870 A8 05 00 06 */ lha r0, 6(r5) /* 801DFC14 001DB874 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 801DFC18 001DB878 90 01 00 34 */ stw r0, 0x34(r1) /* 801DFC1C 001DB87C C8 61 00 30 */ lfd f3, 0x30(r1) /* 801DFC20 001DB880 EC 63 30 28 */ fsubs f3, f3, f6 /* 801DFC24 001DB884 EC 43 10 24 */ fdivs f2, f3, f2 /* 801DFC28 001DB888 D0 41 00 14 */ stfs f2, 0x14(r1) /* 801DFC2C 001DB88C A8 05 00 08 */ lha r0, 8(r5) /* 801DFC30 001DB890 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 801DFC34 001DB894 90 01 00 34 */ stw r0, 0x34(r1) /* 801DFC38 001DB898 C8 41 00 30 */ lfd f2, 0x30(r1) /* 801DFC3C 001DB89C EC 42 30 28 */ fsubs f2, f2, f6 /* 801DFC40 001DB8A0 EC 22 08 24 */ fdivs f1, f2, f1 /* 801DFC44 001DB8A4 D0 21 00 18 */ stfs f1, 0x18(r1) /* 801DFC48 001DB8A8 A8 05 00 0A */ lha r0, 0xa(r5) /* 801DFC4C 001DB8AC 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 801DFC50 001DB8B0 90 01 00 34 */ stw r0, 0x34(r1) /* 801DFC54 001DB8B4 C8 21 00 30 */ lfd f1, 0x30(r1) /* 801DFC58 001DB8B8 EC 21 30 28 */ fsubs f1, f1, f6 /* 801DFC5C 001DB8BC EC 01 00 24 */ fdivs f0, f1, f0 /* 801DFC60 001DB8C0 D0 01 00 1C */ stfs f0, 0x1c(r1) /* 801DFC64 001DB8C4 90 E3 01 38 */ stw r7, 0x138(r3) /* 801DFC68 001DB8C8 38 63 01 20 */ addi r3, r3, 0x120 /* 801DFC6C 001DB8CC 48 04 10 0D */ bl func_80220C78 /* 801DFC70 001DB8D0 38 1F 00 D0 */ addi r0, r31, 0xd0 /* 801DFC74 001DB8D4 90 1F 01 38 */ stw r0, 0x138(r31) /* 801DFC78 001DB8D8 48 00 01 04 */ b lbl_801DFD7C lbl_801DFC7C: /* 801DFC7C 001DB8DC A8 05 00 00 */ lha r0, 0(r5) /* 801DFC80 001DB8E0 38 80 00 01 */ li r4, 1 /* 801DFC84 001DB8E4 7C 84 30 30 */ slw r4, r4, r6 /* 801DFC88 001DB8E8 C8 C2 96 70 */ lfd f6, lbl_80641C70-_SDA2_BASE_(r2) /* 801DFC8C 001DB8EC 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 801DFC90 001DB8F0 6C 84 80 00 */ xoris r4, r4, 0x8000 /* 801DFC94 001DB8F4 90 01 00 34 */ stw r0, 0x34(r1) /* 801DFC98 001DB8F8 90 81 00 2C */ stw r4, 0x2c(r1) /* 801DFC9C 001DB8FC C8 21 00 30 */ lfd f1, 0x30(r1) /* 801DFCA0 001DB900 C8 01 00 28 */ lfd f0, 0x28(r1) /* 801DFCA4 001DB904 EC 41 30 28 */ fsubs f2, f1, f6 /* 801DFCA8 001DB908 EC 20 30 28 */ fsubs f1, f0, f6 /* 801DFCAC 001DB90C 90 81 00 2C */ stw r4, 0x2c(r1) /* 801DFCB0 001DB910 C8 01 00 28 */ lfd f0, 0x28(r1) /* 801DFCB4 001DB914 EC 62 08 24 */ fdivs f3, f2, f1 /* 801DFCB8 001DB918 90 81 00 2C */ stw r4, 0x2c(r1) /* 801DFCBC 001DB91C C8 41 00 28 */ lfd f2, 0x28(r1) /* 801DFCC0 001DB920 90 81 00 2C */ stw r4, 0x2c(r1) /* 801DFCC4 001DB924 C8 21 00 28 */ lfd f1, 0x28(r1) /* 801DFCC8 001DB928 90 81 00 2C */ stw r4, 0x2c(r1) /* 801DFCCC 001DB92C D0 63 01 20 */ stfs f3, 0x120(r3) /* 801DFCD0 001DB930 EC 80 30 28 */ fsubs f4, f0, f6 /* 801DFCD4 001DB934 EC 62 30 28 */ fsubs f3, f2, f6 /* 801DFCD8 001DB938 C8 01 00 28 */ lfd f0, 0x28(r1) /* 801DFCDC 001DB93C A8 05 00 02 */ lha r0, 2(r5) /* 801DFCE0 001DB940 EC 41 30 28 */ fsubs f2, f1, f6 /* 801DFCE4 001DB944 EC 20 30 28 */ fsubs f1, f0, f6 /* 801DFCE8 001DB948 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 801DFCEC 001DB94C 90 01 00 34 */ stw r0, 0x34(r1) /* 801DFCF0 001DB950 C8 A1 00 30 */ lfd f5, 0x30(r1) /* 801DFCF4 001DB954 90 81 00 2C */ stw r4, 0x2c(r1) /* 801DFCF8 001DB958 EC A5 30 28 */ fsubs f5, f5, f6 /* 801DFCFC 001DB95C C8 01 00 28 */ lfd f0, 0x28(r1) /* 801DFD00 001DB960 EC 85 20 24 */ fdivs f4, f5, f4 /* 801DFD04 001DB964 D0 83 01 24 */ stfs f4, 0x124(r3) /* 801DFD08 001DB968 EC 00 30 28 */ fsubs f0, f0, f6 /* 801DFD0C 001DB96C A8 05 00 04 */ lha r0, 4(r5) /* 801DFD10 001DB970 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 801DFD14 001DB974 90 01 00 34 */ stw r0, 0x34(r1) /* 801DFD18 001DB978 C8 81 00 30 */ lfd f4, 0x30(r1) /* 801DFD1C 001DB97C EC 84 30 28 */ fsubs f4, f4, f6 /* 801DFD20 001DB980 EC 64 18 24 */ fdivs f3, f4, f3 /* 801DFD24 001DB984 D0 63 01 28 */ stfs f3, 0x128(r3) /* 801DFD28 001DB988 A8 05 00 06 */ lha r0, 6(r5) /* 801DFD2C 001DB98C 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 801DFD30 001DB990 90 01 00 34 */ stw r0, 0x34(r1) /* 801DFD34 001DB994 C8 61 00 30 */ lfd f3, 0x30(r1) /* 801DFD38 001DB998 EC 63 30 28 */ fsubs f3, f3, f6 /* 801DFD3C 001DB99C EC 43 10 24 */ fdivs f2, f3, f2 /* 801DFD40 001DB9A0 D0 43 01 2C */ stfs f2, 0x12c(r3) /* 801DFD44 001DB9A4 A8 05 00 08 */ lha r0, 8(r5) /* 801DFD48 001DB9A8 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 801DFD4C 001DB9AC 90 01 00 34 */ stw r0, 0x34(r1) /* 801DFD50 001DB9B0 C8 41 00 30 */ lfd f2, 0x30(r1) /* 801DFD54 001DB9B4 EC 42 30 28 */ fsubs f2, f2, f6 /* 801DFD58 001DB9B8 EC 22 08 24 */ fdivs f1, f2, f1 /* 801DFD5C 001DB9BC D0 23 01 30 */ stfs f1, 0x130(r3) /* 801DFD60 001DB9C0 A8 05 00 0A */ lha r0, 0xa(r5) /* 801DFD64 001DB9C4 6C 00 80 00 */ xoris r0, r0, 0x8000 /* 801DFD68 001DB9C8 90 01 00 34 */ stw r0, 0x34(r1) /* 801DFD6C 001DB9CC C8 21 00 30 */ lfd f1, 0x30(r1) /* 801DFD70 001DB9D0 EC 21 30 28 */ fsubs f1, f1, f6 /* 801DFD74 001DB9D4 EC 01 00 24 */ fdivs f0, f1, f0 /* 801DFD78 001DB9D8 D0 03 01 34 */ stfs f0, 0x134(r3) lbl_801DFD7C: /* 801DFD7C 001DB9DC 80 01 00 54 */ lwz r0, 0x54(r1) /* 801DFD80 001DB9E0 83 E1 00 4C */ lwz r31, 0x4c(r1) /* 801DFD84 001DB9E4 7C 08 03 A6 */ mtlr r0 /* 801DFD88 001DB9E8 38 21 00 50 */ addi r1, r1, 0x50 /* 801DFD8C 001DB9EC 4E 80 00 20 */ blr /* 801DFD90 001DB9F0 94 21 FF A0 */ stwu r1, -0x60(r1) /* 801DFD94 001DB9F4 7C 08 02 A6 */ mflr r0 /* 801DFD98 001DB9F8 90 01 00 64 */ stw r0, 0x64(r1) /* 801DFD9C 001DB9FC DB E1 00 50 */ stfd f31, 0x50(r1) /* 801DFDA0 001DBA00 F3 E1 00 58 */ psq_st f31, 88(r1), 0, qr0 /* 801DFDA4 001DBA04 FF E0 08 90 */ fmr f31, f1 /* 801DFDA8 001DBA08 93 E1 00 4C */ stw r31, 0x4c(r1) /* 801DFDAC 001DBA0C 7C 7F 1B 78 */ mr r31, r3 /* 801DFDB0 001DBA10 93 C1 00 48 */ stw r30, 0x48(r1) /* 801DFDB4 001DBA14 93 A1 00 44 */ stw r29, 0x44(r1) /* 801DFDB8 001DBA18 48 01 3E C5 */ bl func_801F3C7C /* 801DFDBC 001DBA1C 2C 03 00 00 */ cmpwi r3, 0 /* 801DFDC0 001DBA20 41 82 00 08 */ beq lbl_801DFDC8 /* 801DFDC4 001DBA24 C3 E2 96 50 */ lfs f31, lbl_80641C50-_SDA2_BASE_(r2) lbl_801DFDC8: /* 801DFDC8 001DBA28 A0 1F 00 10 */ lhz r0, 0x10(r31) /* 801DFDCC 001DBA2C FC 20 F8 90 */ fmr f1, f31 /* 801DFDD0 001DBA30 7F E3 FB 78 */ mr r3, r31 /* 801DFDD4 001DBA34 54 1E 07 FE */ clrlwi r30, r0, 0x1f /* 801DFDD8 001DBA38 48 01 3B 89 */ bl func_801F3960 /* 801DFDDC 001DBA3C 80 7F 00 B8 */ lwz r3, 0xb8(r31) /* 801DFDE0 001DBA40 2C 03 00 00 */ cmpwi r3, 0 /* 801DFDE4 001DBA44 41 82 01 B0 */ beq lbl_801DFF94 /* 801DFDE8 001DBA48 80 BF 00 04 */ lwz r5, 4(r31) /* 801DFDEC 001DBA4C 2C 05 00 00 */ cmpwi r5, 0 /* 801DFDF0 001DBA50 41 82 00 24 */ beq lbl_801DFE14 /* 801DFDF4 001DBA54 80 85 00 00 */ lwz r4, 0(r5) /* 801DFDF8 001DBA58 2C 04 00 00 */ cmpwi r4, 0 /* 801DFDFC 001DBA5C 41 82 00 0C */ beq lbl_801DFE08 /* 801DFE00 001DBA60 A0 04 00 00 */ lhz r0, 0(r4) /* 801DFE04 001DBA64 48 00 00 18 */ b lbl_801DFE1C lbl_801DFE08: /* 801DFE08 001DBA68 3C 80 00 01 */ lis r4, 0x0000FFFF@ha /* 801DFE0C 001DBA6C 38 04 FF FF */ addi r0, r4, 0x0000FFFF@l /* 801DFE10 001DBA70 48 00 00 0C */ b lbl_801DFE1C lbl_801DFE14: /* 801DFE14 001DBA74 3C 80 00 01 */ lis r4, 0x0000FFFF@ha /* 801DFE18 001DBA78 38 04 FF FF */ addi r0, r4, 0x0000FFFF@l lbl_801DFE1C: /* 801DFE1C 001DBA7C 54 1D 04 3E */ clrlwi r29, r0, 0x10 /* 801DFE20 001DBA80 3C 1D 00 00 */ addis r0, r29, 0 /* 801DFE24 001DBA84 28 00 FF FF */ cmplwi r0, 0xffff /* 801DFE28 001DBA88 41 82 00 50 */ beq lbl_801DFE78 /* 801DFE2C 001DBA8C 2C 05 00 00 */ cmpwi r5, 0 /* 801DFE30 001DBA90 41 82 00 40 */ beq lbl_801DFE70 /* 801DFE34 001DBA94 80 65 00 00 */ lwz r3, 0(r5) /* 801DFE38 001DBA98 2C 03 00 00 */ cmpwi r3, 0 /* 801DFE3C 001DBA9C 40 82 00 0C */ bne lbl_801DFE48 /* 801DFE40 001DBAA0 C0 22 96 50 */ lfs f1, lbl_80641C50-_SDA2_BASE_(r2) /* 801DFE44 001DBAA4 48 00 00 3C */ b lbl_801DFE80 lbl_801DFE48: /* 801DFE48 001DBAA8 C0 25 00 08 */ lfs f1, 8(r5) /* 801DFE4C 001DBAAC C0 02 96 50 */ lfs f0, lbl_80641C50-_SDA2_BASE_(r2) /* 801DFE50 001DBAB0 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 801DFE54 001DBAB4 40 80 00 14 */ bge lbl_801DFE68 /* 801DFE58 001DBAB8 C0 23 00 08 */ lfs f1, 8(r3) /* 801DFE5C 001DBABC C0 05 00 0C */ lfs f0, 0xc(r5) /* 801DFE60 001DBAC0 EC 21 00 28 */ fsubs f1, f1, f0 /* 801DFE64 001DBAC4 48 00 00 1C */ b lbl_801DFE80 lbl_801DFE68: /* 801DFE68 001DBAC8 C0 25 00 0C */ lfs f1, 0xc(r5) /* 801DFE6C 001DBACC 48 00 00 14 */ b lbl_801DFE80 lbl_801DFE70: /* 801DFE70 001DBAD0 C0 22 96 50 */ lfs f1, lbl_80641C50-_SDA2_BASE_(r2) /* 801DFE74 001DBAD4 48 00 00 0C */ b lbl_801DFE80 lbl_801DFE78: /* 801DFE78 001DBAD8 A3 A3 00 F0 */ lhz r29, 0xf0(r3) /* 801DFE7C 001DBADC 48 01 5C C9 */ bl func_801F5B44 lbl_801DFE80: /* 801DFE80 001DBAE0 7F E3 FB 78 */ mr r3, r31 /* 801DFE84 001DBAE4 7F A4 EB 78 */ mr r4, r29 /* 801DFE88 001DBAE8 38 A0 00 00 */ li r5, 0 /* 801DFE8C 001DBAEC 4B FF FB 49 */ bl func_801DF9D4 /* 801DFE90 001DBAF0 80 9F 00 08 */ lwz r4, 8(r31) /* 801DFE94 001DBAF4 2C 04 00 00 */ cmpwi r4, 0 /* 801DFE98 001DBAF8 41 82 00 28 */ beq lbl_801DFEC0 /* 801DFE9C 001DBAFC 80 04 00 00 */ lwz r0, 0(r4) /* 801DFEA0 001DBB00 38 60 00 00 */ li r3, 0 /* 801DFEA4 001DBB04 2C 00 00 00 */ cmpwi r0, 0 /* 801DFEA8 001DBB08 41 82 00 1C */ beq lbl_801DFEC4 /* 801DFEAC 001DBB0C A0 04 00 06 */ lhz r0, 6(r4) /* 801DFEB0 001DBB10 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 801DFEB4 001DBB14 41 82 00 10 */ beq lbl_801DFEC4 /* 801DFEB8 001DBB18 38 60 00 01 */ li r3, 1 /* 801DFEBC 001DBB1C 48 00 00 08 */ b lbl_801DFEC4 lbl_801DFEC0: /* 801DFEC0 001DBB20 38 60 00 00 */ li r3, 0 lbl_801DFEC4: /* 801DFEC4 001DBB24 2C 03 00 00 */ cmpwi r3, 0 /* 801DFEC8 001DBB28 40 82 00 14 */ bne lbl_801DFEDC /* 801DFECC 001DBB2C 80 7F 00 B8 */ lwz r3, 0xb8(r31) /* 801DFED0 001DBB30 48 01 5F ED */ bl func_801F5EBC /* 801DFED4 001DBB34 2C 03 00 00 */ cmpwi r3, 0 /* 801DFED8 001DBB38 41 82 00 BC */ beq lbl_801DFF94 lbl_801DFEDC: /* 801DFEDC 001DBB3C 80 9F 00 08 */ lwz r4, 8(r31) /* 801DFEE0 001DBB40 2C 04 00 00 */ cmpwi r4, 0 /* 801DFEE4 001DBB44 41 82 00 24 */ beq lbl_801DFF08 /* 801DFEE8 001DBB48 80 64 00 00 */ lwz r3, 0(r4) /* 801DFEEC 001DBB4C 2C 03 00 00 */ cmpwi r3, 0 /* 801DFEF0 001DBB50 41 82 00 0C */ beq lbl_801DFEFC /* 801DFEF4 001DBB54 A0 03 00 00 */ lhz r0, 0(r3) /* 801DFEF8 001DBB58 48 00 00 18 */ b lbl_801DFF10 lbl_801DFEFC: /* 801DFEFC 001DBB5C 3C 60 00 01 */ lis r3, 0x0000FFFF@ha /* 801DFF00 001DBB60 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l /* 801DFF04 001DBB64 48 00 00 0C */ b lbl_801DFF10 lbl_801DFF08: /* 801DFF08 001DBB68 3C 60 00 01 */ lis r3, 0x0000FFFF@ha /* 801DFF0C 001DBB6C 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l lbl_801DFF10: /* 801DFF10 001DBB70 54 1D 04 3E */ clrlwi r29, r0, 0x10 /* 801DFF14 001DBB74 3C 1D 00 00 */ addis r0, r29, 0 /* 801DFF18 001DBB78 28 00 FF FF */ cmplwi r0, 0xffff /* 801DFF1C 001DBB7C 41 82 00 50 */ beq lbl_801DFF6C /* 801DFF20 001DBB80 2C 04 00 00 */ cmpwi r4, 0 /* 801DFF24 001DBB84 41 82 00 40 */ beq lbl_801DFF64 /* 801DFF28 001DBB88 80 64 00 00 */ lwz r3, 0(r4) /* 801DFF2C 001DBB8C 2C 03 00 00 */ cmpwi r3, 0 /* 801DFF30 001DBB90 40 82 00 0C */ bne lbl_801DFF3C /* 801DFF34 001DBB94 C0 22 96 50 */ lfs f1, lbl_80641C50-_SDA2_BASE_(r2) /* 801DFF38 001DBB98 48 00 00 40 */ b lbl_801DFF78 lbl_801DFF3C: /* 801DFF3C 001DBB9C C0 24 00 08 */ lfs f1, 8(r4) /* 801DFF40 001DBBA0 C0 02 96 50 */ lfs f0, lbl_80641C50-_SDA2_BASE_(r2) /* 801DFF44 001DBBA4 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 801DFF48 001DBBA8 40 80 00 14 */ bge lbl_801DFF5C /* 801DFF4C 001DBBAC C0 23 00 08 */ lfs f1, 8(r3) /* 801DFF50 001DBBB0 C0 04 00 0C */ lfs f0, 0xc(r4) /* 801DFF54 001DBBB4 EC 21 00 28 */ fsubs f1, f1, f0 /* 801DFF58 001DBBB8 48 00 00 20 */ b lbl_801DFF78 lbl_801DFF5C: /* 801DFF5C 001DBBBC C0 24 00 0C */ lfs f1, 0xc(r4) /* 801DFF60 001DBBC0 48 00 00 18 */ b lbl_801DFF78 lbl_801DFF64: /* 801DFF64 001DBBC4 C0 22 96 50 */ lfs f1, lbl_80641C50-_SDA2_BASE_(r2) /* 801DFF68 001DBBC8 48 00 00 10 */ b lbl_801DFF78 lbl_801DFF6C: /* 801DFF6C 001DBBCC 80 7F 00 B8 */ lwz r3, 0xb8(r31) /* 801DFF70 001DBBD0 A3 A3 01 04 */ lhz r29, 0x104(r3) /* 801DFF74 001DBBD4 48 01 5C ED */ bl func_801F5C60 lbl_801DFF78: /* 801DFF78 001DBBD8 3C 1D 00 00 */ addis r0, r29, 0 /* 801DFF7C 001DBBDC 28 00 FF FF */ cmplwi r0, 0xffff /* 801DFF80 001DBBE0 41 82 00 14 */ beq lbl_801DFF94 /* 801DFF84 001DBBE4 7F E3 FB 78 */ mr r3, r31 /* 801DFF88 001DBBE8 7F A4 EB 78 */ mr r4, r29 /* 801DFF8C 001DBBEC 38 A0 00 01 */ li r5, 1 /* 801DFF90 001DBBF0 4B FF FA 45 */ bl func_801DF9D4 lbl_801DFF94: /* 801DFF94 001DBBF4 7F E3 FB 78 */ mr r3, r31 /* 801DFF98 001DBBF8 4B FF F3 35 */ bl func_801DF2CC /* 801DFF9C 001DBBFC 2C 1E 00 00 */ cmpwi r30, 0 /* 801DFFA0 001DBC00 41 82 00 2C */ beq lbl_801DFFCC /* 801DFFA4 001DBC04 80 7F 01 44 */ lwz r3, 0x144(r31) /* 801DFFA8 001DBC08 80 83 00 64 */ lwz r4, 0x64(r3) /* 801DFFAC 001DBC0C 2C 04 00 00 */ cmpwi r4, 0 /* 801DFFB0 001DBC10 41 82 00 1C */ beq lbl_801DFFCC /* 801DFFB4 001DBC14 38 7F 00 D0 */ addi r3, r31, 0xd0 /* 801DFFB8 001DBC18 38 A1 00 08 */ addi r5, r1, 8 /* 801DFFBC 001DBC1C 48 09 BF D1 */ bl PSMTXConcat /* 801DFFC0 001DBC20 38 61 00 08 */ addi r3, r1, 8 /* 801DFFC4 001DBC24 38 9F 00 D0 */ addi r4, r31, 0xd0 /* 801DFFC8 001DBC28 48 09 BF 91 */ bl PSMTXCopy lbl_801DFFCC: /* 801DFFCC 001DBC2C A0 1F 01 06 */ lhz r0, 0x106(r31) /* 801DFFD0 001DBC30 60 00 00 10 */ ori r0, r0, 0x10 /* 801DFFD4 001DBC34 B0 1F 01 06 */ sth r0, 0x106(r31) /* 801DFFD8 001DBC38 E3 E1 00 58 */ psq_l f31, 88(r1), 0, qr0 /* 801DFFDC 001DBC3C CB E1 00 50 */ lfd f31, 0x50(r1) /* 801DFFE0 001DBC40 83 E1 00 4C */ lwz r31, 0x4c(r1) /* 801DFFE4 001DBC44 83 C1 00 48 */ lwz r30, 0x48(r1) /* 801DFFE8 001DBC48 83 A1 00 44 */ lwz r29, 0x44(r1) /* 801DFFEC 001DBC4C 80 01 00 64 */ lwz r0, 0x64(r1) /* 801DFFF0 001DBC50 7C 08 03 A6 */ mtlr r0 /* 801DFFF4 001DBC54 38 21 00 60 */ addi r1, r1, 0x60 /* 801DFFF8 001DBC58 4E 80 00 20 */ blr .global func_801DFFFC func_801DFFFC: /* 801DFFFC 001DBC5C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 801E0000 001DBC60 7C 08 02 A6 */ mflr r0 /* 801E0004 001DBC64 90 01 00 14 */ stw r0, 0x14(r1) /* 801E0008 001DBC68 93 E1 00 0C */ stw r31, 0xc(r1) /* 801E000C 001DBC6C 7C 7F 1B 78 */ mr r31, r3 /* 801E0010 001DBC70 80 03 00 B8 */ lwz r0, 0xb8(r3) /* 801E0014 001DBC74 2C 00 00 00 */ cmpwi r0, 0 /* 801E0018 001DBC78 41 82 00 2C */ beq lbl_801E0044 /* 801E001C 001DBC7C A0 03 01 06 */ lhz r0, 0x106(r3) /* 801E0020 001DBC80 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b /* 801E0024 001DBC84 40 82 00 08 */ bne lbl_801E002C /* 801E0028 001DBC88 48 00 00 1C */ b lbl_801E0044 lbl_801E002C: /* 801E002C 001DBC8C 4B FF F4 FD */ bl func_801DF528 /* 801E0030 001DBC90 7F E3 FB 78 */ mr r3, r31 /* 801E0034 001DBC94 4B FF F8 29 */ bl func_801DF85C /* 801E0038 001DBC98 A0 1F 01 06 */ lhz r0, 0x106(r31) /* 801E003C 001DBC9C 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a /* 801E0040 001DBCA0 B0 1F 01 06 */ sth r0, 0x106(r31) lbl_801E0044: /* 801E0044 001DBCA4 80 01 00 14 */ lwz r0, 0x14(r1) /* 801E0048 001DBCA8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 801E004C 001DBCAC 7C 08 03 A6 */ mtlr r0 /* 801E0050 001DBCB0 38 21 00 10 */ addi r1, r1, 0x10 /* 801E0054 001DBCB4 4E 80 00 20 */ blr .global func_801E0058 func_801E0058: /* 801E0058 001DBCB8 94 21 FF 70 */ stwu r1, -0x90(r1) /* 801E005C 001DBCBC 7C 08 02 A6 */ mflr r0 /* 801E0060 001DBCC0 90 01 00 94 */ stw r0, 0x94(r1) /* 801E0064 001DBCC4 39 61 00 90 */ addi r11, r1, 0x90 /* 801E0068 001DBCC8 4B FE 70 B9 */ bl _savegpr_25 /* 801E006C 001DBCCC A0 04 00 00 */ lhz r0, 0(r4) /* 801E0070 001DBCD0 7C 7B 1B 78 */ mr r27, r3 /* 801E0074 001DBCD4 80 C3 01 40 */ lwz r6, 0x140(r3) /* 801E0078 001DBCD8 7C BC 2B 78 */ mr r28, r5 /* 801E007C 001DBCDC 1C 00 00 0C */ mulli r0, r0, 0xc /* 801E0080 001DBCE0 C0 02 96 50 */ lfs f0, lbl_80641C50-_SDA2_BASE_(r2) /* 801E0084 001DBCE4 3B A0 00 00 */ li r29, 0 /* 801E0088 001DBCE8 7C 26 04 6E */ lfsux f1, r6, r0 /* 801E008C 001DBCEC FC 01 00 40 */ fcmpo cr0, f1, f0 /* 801E0090 001DBCF0 40 81 00 08 */ ble lbl_801E0098 /* 801E0094 001DBCF4 48 00 00 08 */ b lbl_801E009C lbl_801E0098: /* 801E0098 001DBCF8 FC 20 08 50 */ fneg f1, f1 lbl_801E009C: /* 801E009C 001DBCFC C0 46 00 04 */ lfs f2, 4(r6) /* 801E00A0 001DBD00 C0 02 96 50 */ lfs f0, lbl_80641C50-_SDA2_BASE_(r2) /* 801E00A4 001DBD04 FC 02 00 40 */ fcmpo cr0, f2, f0 /* 801E00A8 001DBD08 40 81 00 08 */ ble lbl_801E00B0 /* 801E00AC 001DBD0C 48 00 00 08 */ b lbl_801E00B4 lbl_801E00B0: /* 801E00B0 001DBD10 FC 40 10 50 */ fneg f2, f2 lbl_801E00B4: /* 801E00B4 001DBD14 C0 66 00 08 */ lfs f3, 8(r6) /* 801E00B8 001DBD18 C0 02 96 50 */ lfs f0, lbl_80641C50-_SDA2_BASE_(r2) /* 801E00BC 001DBD1C FC 03 00 40 */ fcmpo cr0, f3, f0 /* 801E00C0 001DBD20 40 81 00 08 */ ble lbl_801E00C8 /* 801E00C4 001DBD24 48 00 00 08 */ b lbl_801E00CC lbl_801E00C8: /* 801E00C8 001DBD28 FC 60 18 50 */ fneg f3, f3 lbl_801E00CC: /* 801E00CC 001DBD2C FC 01 10 40 */ fcmpo cr0, f1, f2 /* 801E00D0 001DBD30 40 81 00 1C */ ble lbl_801E00EC /* 801E00D4 001DBD34 FC 01 18 40 */ fcmpo cr0, f1, f3 /* 801E00D8 001DBD38 40 81 00 0C */ ble lbl_801E00E4 /* 801E00DC 001DBD3C 38 C0 00 00 */ li r6, 0 /* 801E00E0 001DBD40 48 00 00 20 */ b lbl_801E0100 lbl_801E00E4: /* 801E00E4 001DBD44 38 C0 00 02 */ li r6, 2 /* 801E00E8 001DBD48 48 00 00 18 */ b lbl_801E0100 lbl_801E00EC: /* 801E00EC 001DBD4C FC 02 18 40 */ fcmpo cr0, f2, f3 /* 801E00F0 001DBD50 40 81 00 0C */ ble lbl_801E00FC /* 801E00F4 001DBD54 38 C0 00 01 */ li r6, 1 /* 801E00F8 001DBD58 48 00 00 08 */ b lbl_801E0100 lbl_801E00FC: /* 801E00FC 001DBD5C 38 C0 00 02 */ li r6, 2 lbl_801E0100: /* 801E0100 001DBD60 8B C4 00 03 */ lbz r30, 3(r4) /* 801E0104 001DBD64 2C 06 00 01 */ cmpwi r6, 1 /* 801E0108 001DBD68 83 E4 00 04 */ lwz r31, 4(r4) /* 801E010C 001DBD6C 38 1E FF FF */ addi r0, r30, -1 /* 801E0110 001DBD70 80 63 01 3C */ lwz r3, 0x13c(r3) /* 801E0114 001DBD74 54 00 08 3C */ slwi r0, r0, 1 /* 801E0118 001DBD78 7C 9F 02 14 */ add r4, r31, r0 /* 801E011C 001DBD7C 7C 1F 02 2E */ lhzx r0, r31, r0 /* 801E0120 001DBD80 1C 00 00 0C */ mulli r0, r0, 0xc /* 801E0124 001DBD84 7C 63 02 14 */ add r3, r3, r0 /* 801E0128 001DBD88 40 82 00 EC */ bne lbl_801E0214 /* 801E012C 001DBD8C C0 25 00 00 */ lfs f1, 0(r5) /* 801E0130 001DBD90 C0 03 00 00 */ lfs f0, 0(r3) /* 801E0134 001DBD94 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 801E0138 001DBD98 4C 41 13 82 */ cror 2, 1, 2 /* 801E013C 001DBD9C 7C A0 00 26 */ mfcr r5 /* 801E0140 001DBDA0 54 A5 1F FE */ rlwinm r5, r5, 3, 0x1f, 0x1f lbl_801E0144: /* 801E0144 001DBDA4 A0 1F 00 00 */ lhz r0, 0(r31) /* 801E0148 001DBDA8 A0 64 00 00 */ lhz r3, 0(r4) /* 801E014C 001DBDAC 1C 00 00 0C */ mulli r0, r0, 0xc /* 801E0150 001DBDB0 80 9B 01 3C */ lwz r4, 0x13c(r27) /* 801E0154 001DBDB4 C0 3C 00 00 */ lfs f1, 0(r28) /* 801E0158 001DBDB8 7C 04 04 2E */ lfsx f0, r4, r0 /* 801E015C 001DBDBC 7F 24 02 14 */ add r25, r4, r0 /* 801E0160 001DBDC0 1C 03 00 0C */ mulli r0, r3, 0xc /* 801E0164 001DBDC4 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 801E0168 001DBDC8 7C 64 02 14 */ add r3, r4, r0 /* 801E016C 001DBDCC 4C 41 13 82 */ cror 2, 1, 2 /* 801E0170 001DBDD0 7F 40 00 26 */ mfcr r26 /* 801E0174 001DBDD4 57 5A 1F FE */ rlwinm r26, r26, 3, 0x1f, 0x1f /* 801E0178 001DBDD8 7C 05 D0 00 */ cmpw r5, r26 /* 801E017C 001DBDDC 41 82 00 80 */ beq lbl_801E01FC /* 801E0180 001DBDE0 7F 24 CB 78 */ mr r4, r25 /* 801E0184 001DBDE4 38 A1 00 44 */ addi r5, r1, 0x44 /* 801E0188 001DBDE8 48 09 CB 61 */ bl PSVECSubtract /* 801E018C 001DBDEC C0 41 00 44 */ lfs f2, 0x44(r1) /* 801E0190 001DBDF0 7F 23 CB 78 */ mr r3, r25 /* 801E0194 001DBDF4 C0 21 00 48 */ lfs f1, 0x48(r1) /* 801E0198 001DBDF8 7F 84 E3 78 */ mr r4, r28 /* 801E019C 001DBDFC C0 01 00 4C */ lfs f0, 0x4c(r1) /* 801E01A0 001DBE00 38 A1 00 38 */ addi r5, r1, 0x38 /* 801E01A4 001DBE04 D0 41 00 5C */ stfs f2, 0x5c(r1) /* 801E01A8 001DBE08 D0 21 00 60 */ stfs f1, 0x60(r1) /* 801E01AC 001DBE0C D0 01 00 64 */ stfs f0, 0x64(r1) /* 801E01B0 001DBE10 48 09 CB 39 */ bl PSVECSubtract /* 801E01B4 001DBE14 C0 81 00 38 */ lfs f4, 0x38(r1) /* 801E01B8 001DBE18 C0 41 00 40 */ lfs f2, 0x40(r1) /* 801E01BC 001DBE1C C0 21 00 64 */ lfs f1, 0x64(r1) /* 801E01C0 001DBE20 C0 01 00 5C */ lfs f0, 0x5c(r1) /* 801E01C4 001DBE24 EC 24 00 72 */ fmuls f1, f4, f1 /* 801E01C8 001DBE28 C0 61 00 3C */ lfs f3, 0x3c(r1) /* 801E01CC 001DBE2C EC 02 00 32 */ fmuls f0, f2, f0 /* 801E01D0 001DBE30 D0 81 00 50 */ stfs f4, 0x50(r1) /* 801E01D4 001DBE34 D0 61 00 54 */ stfs f3, 0x54(r1) /* 801E01D8 001DBE38 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 801E01DC 001DBE3C D0 41 00 58 */ stfs f2, 0x58(r1) /* 801E01E0 001DBE40 4C 41 13 82 */ cror 2, 1, 2 /* 801E01E4 001DBE44 7C 00 00 26 */ mfcr r0 /* 801E01E8 001DBE48 54 00 1F FE */ rlwinm r0, r0, 3, 0x1f, 0x1f /* 801E01EC 001DBE4C 7C 1A 00 00 */ cmpw r26, r0 /* 801E01F0 001DBE50 40 82 00 0C */ bne lbl_801E01FC /* 801E01F4 001DBE54 7F A0 00 34 */ cntlzw r0, r29 /* 801E01F8 001DBE58 54 1D D9 7E */ srwi r29, r0, 5 lbl_801E01FC: /* 801E01FC 001DBE5C 37 DE FF FF */ addic. r30, r30, -1 /* 801E0200 001DBE60 7F E4 FB 78 */ mr r4, r31 /* 801E0204 001DBE64 7F 45 D3 78 */ mr r5, r26 /* 801E0208 001DBE68 3B FF 00 02 */ addi r31, r31, 2 /* 801E020C 001DBE6C 40 82 FF 38 */ bne lbl_801E0144 /* 801E0210 001DBE70 48 00 01 D8 */ b lbl_801E03E8 lbl_801E0214: /* 801E0214 001DBE74 2C 06 00 02 */ cmpwi r6, 2 /* 801E0218 001DBE78 40 82 00 EC */ bne lbl_801E0304 /* 801E021C 001DBE7C C0 25 00 04 */ lfs f1, 4(r5) /* 801E0220 001DBE80 C0 03 00 04 */ lfs f0, 4(r3) /* 801E0224 001DBE84 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 801E0228 001DBE88 4C 41 13 82 */ cror 2, 1, 2 /* 801E022C 001DBE8C 7C A0 00 26 */ mfcr r5 /* 801E0230 001DBE90 54 A5 1F FE */ rlwinm r5, r5, 3, 0x1f, 0x1f lbl_801E0234: /* 801E0234 001DBE94 A0 1F 00 00 */ lhz r0, 0(r31) /* 801E0238 001DBE98 A0 64 00 00 */ lhz r3, 0(r4) /* 801E023C 001DBE9C 1C 00 00 0C */ mulli r0, r0, 0xc /* 801E0240 001DBEA0 80 9B 01 3C */ lwz r4, 0x13c(r27) /* 801E0244 001DBEA4 C0 3C 00 04 */ lfs f1, 4(r28) /* 801E0248 001DBEA8 7F 44 02 14 */ add r26, r4, r0 /* 801E024C 001DBEAC C0 1A 00 04 */ lfs f0, 4(r26) /* 801E0250 001DBEB0 1C 03 00 0C */ mulli r0, r3, 0xc /* 801E0254 001DBEB4 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 801E0258 001DBEB8 7C 64 02 14 */ add r3, r4, r0 /* 801E025C 001DBEBC 4C 41 13 82 */ cror 2, 1, 2 /* 801E0260 001DBEC0 7F 20 00 26 */ mfcr r25 /* 801E0264 001DBEC4 57 39 1F FE */ rlwinm r25, r25, 3, 0x1f, 0x1f /* 801E0268 001DBEC8 7C 05 C8 00 */ cmpw r5, r25 /* 801E026C 001DBECC 41 82 00 80 */ beq lbl_801E02EC /* 801E0270 001DBED0 7F 44 D3 78 */ mr r4, r26 /* 801E0274 001DBED4 38 A1 00 2C */ addi r5, r1, 0x2c /* 801E0278 001DBED8 48 09 CA 71 */ bl PSVECSubtract /* 801E027C 001DBEDC C0 41 00 2C */ lfs f2, 0x2c(r1) /* 801E0280 001DBEE0 7F 43 D3 78 */ mr r3, r26 /* 801E0284 001DBEE4 C0 21 00 30 */ lfs f1, 0x30(r1) /* 801E0288 001DBEE8 7F 84 E3 78 */ mr r4, r28 /* 801E028C 001DBEEC C0 01 00 34 */ lfs f0, 0x34(r1) /* 801E0290 001DBEF0 38 A1 00 20 */ addi r5, r1, 0x20 /* 801E0294 001DBEF4 D0 41 00 5C */ stfs f2, 0x5c(r1) /* 801E0298 001DBEF8 D0 21 00 60 */ stfs f1, 0x60(r1) /* 801E029C 001DBEFC D0 01 00 64 */ stfs f0, 0x64(r1) /* 801E02A0 001DBF00 48 09 CA 49 */ bl PSVECSubtract /* 801E02A4 001DBF04 C0 81 00 20 */ lfs f4, 0x20(r1) /* 801E02A8 001DBF08 C0 61 00 24 */ lfs f3, 0x24(r1) /* 801E02AC 001DBF0C C0 21 00 5C */ lfs f1, 0x5c(r1) /* 801E02B0 001DBF10 C0 01 00 60 */ lfs f0, 0x60(r1) /* 801E02B4 001DBF14 EC 23 00 72 */ fmuls f1, f3, f1 /* 801E02B8 001DBF18 C0 41 00 28 */ lfs f2, 0x28(r1) /* 801E02BC 001DBF1C EC 04 00 32 */ fmuls f0, f4, f0 /* 801E02C0 001DBF20 D0 81 00 50 */ stfs f4, 0x50(r1) /* 801E02C4 001DBF24 D0 61 00 54 */ stfs f3, 0x54(r1) /* 801E02C8 001DBF28 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 801E02CC 001DBF2C D0 41 00 58 */ stfs f2, 0x58(r1) /* 801E02D0 001DBF30 4C 41 13 82 */ cror 2, 1, 2 /* 801E02D4 001DBF34 7C 00 00 26 */ mfcr r0 /* 801E02D8 001DBF38 54 00 1F FE */ rlwinm r0, r0, 3, 0x1f, 0x1f /* 801E02DC 001DBF3C 7C 19 00 00 */ cmpw r25, r0 /* 801E02E0 001DBF40 40 82 00 0C */ bne lbl_801E02EC /* 801E02E4 001DBF44 7F A0 00 34 */ cntlzw r0, r29 /* 801E02E8 001DBF48 54 1D D9 7E */ srwi r29, r0, 5 lbl_801E02EC: /* 801E02EC 001DBF4C 37 DE FF FF */ addic. r30, r30, -1 /* 801E02F0 001DBF50 7F E4 FB 78 */ mr r4, r31 /* 801E02F4 001DBF54 7F 25 CB 78 */ mr r5, r25 /* 801E02F8 001DBF58 3B FF 00 02 */ addi r31, r31, 2 /* 801E02FC 001DBF5C 40 82 FF 38 */ bne lbl_801E0234 /* 801E0300 001DBF60 48 00 00 E8 */ b lbl_801E03E8 lbl_801E0304: /* 801E0304 001DBF64 C0 25 00 08 */ lfs f1, 8(r5) /* 801E0308 001DBF68 C0 03 00 08 */ lfs f0, 8(r3) /* 801E030C 001DBF6C FC 01 00 40 */ fcmpo cr0, f1, f0 /* 801E0310 001DBF70 4C 41 13 82 */ cror 2, 1, 2 /* 801E0314 001DBF74 7C A0 00 26 */ mfcr r5 /* 801E0318 001DBF78 54 A5 1F FE */ rlwinm r5, r5, 3, 0x1f, 0x1f lbl_801E031C: /* 801E031C 001DBF7C A0 1F 00 00 */ lhz r0, 0(r31) /* 801E0320 001DBF80 A0 64 00 00 */ lhz r3, 0(r4) /* 801E0324 001DBF84 1C 00 00 0C */ mulli r0, r0, 0xc /* 801E0328 001DBF88 80 9B 01 3C */ lwz r4, 0x13c(r27) /* 801E032C 001DBF8C C0 3C 00 08 */ lfs f1, 8(r28) /* 801E0330 001DBF90 7F 44 02 14 */ add r26, r4, r0 /* 801E0334 001DBF94 C0 1A 00 08 */ lfs f0, 8(r26) /* 801E0338 001DBF98 1C 03 00 0C */ mulli r0, r3, 0xc /* 801E033C 001DBF9C FC 01 00 40 */ fcmpo cr0, f1, f0 /* 801E0340 001DBFA0 7C 64 02 14 */ add r3, r4, r0 /* 801E0344 001DBFA4 4C 41 13 82 */ cror 2, 1, 2 /* 801E0348 001DBFA8 7F 20 00 26 */ mfcr r25 /* 801E034C 001DBFAC 57 39 1F FE */ rlwinm r25, r25, 3, 0x1f, 0x1f /* 801E0350 001DBFB0 7C 05 C8 00 */ cmpw r5, r25 /* 801E0354 001DBFB4 41 82 00 80 */ beq lbl_801E03D4 /* 801E0358 001DBFB8 7F 44 D3 78 */ mr r4, r26 /* 801E035C 001DBFBC 38 A1 00 14 */ addi r5, r1, 0x14 /* 801E0360 001DBFC0 48 09 C9 89 */ bl PSVECSubtract /* 801E0364 001DBFC4 C0 41 00 14 */ lfs f2, 0x14(r1) /* 801E0368 001DBFC8 7F 43 D3 78 */ mr r3, r26 /* 801E036C 001DBFCC C0 21 00 18 */ lfs f1, 0x18(r1) /* 801E0370 001DBFD0 7F 84 E3 78 */ mr r4, r28 /* 801E0374 001DBFD4 C0 01 00 1C */ lfs f0, 0x1c(r1) /* 801E0378 001DBFD8 38 A1 00 08 */ addi r5, r1, 8 /* 801E037C 001DBFDC D0 41 00 5C */ stfs f2, 0x5c(r1) /* 801E0380 001DBFE0 D0 21 00 60 */ stfs f1, 0x60(r1) /* 801E0384 001DBFE4 D0 01 00 64 */ stfs f0, 0x64(r1) /* 801E0388 001DBFE8 48 09 C9 61 */ bl PSVECSubtract /* 801E038C 001DBFEC C0 61 00 0C */ lfs f3, 0xc(r1) /* 801E0390 001DBFF0 C0 41 00 10 */ lfs f2, 0x10(r1) /* 801E0394 001DBFF4 C0 21 00 60 */ lfs f1, 0x60(r1) /* 801E0398 001DBFF8 C0 01 00 64 */ lfs f0, 0x64(r1) /* 801E039C 001DBFFC EC 22 00 72 */ fmuls f1, f2, f1 /* 801E03A0 001DC000 C0 81 00 08 */ lfs f4, 8(r1) /* 801E03A4 001DC004 EC 03 00 32 */ fmuls f0, f3, f0 /* 801E03A8 001DC008 D0 61 00 54 */ stfs f3, 0x54(r1) /* 801E03AC 001DC00C D0 81 00 50 */ stfs f4, 0x50(r1) /* 801E03B0 001DC010 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 801E03B4 001DC014 D0 41 00 58 */ stfs f2, 0x58(r1) /* 801E03B8 001DC018 4C 41 13 82 */ cror 2, 1, 2 /* 801E03BC 001DC01C 7C 00 00 26 */ mfcr r0 /* 801E03C0 001DC020 54 00 1F FE */ rlwinm r0, r0, 3, 0x1f, 0x1f /* 801E03C4 001DC024 7C 19 00 00 */ cmpw r25, r0 /* 801E03C8 001DC028 40 82 00 0C */ bne lbl_801E03D4 /* 801E03CC 001DC02C 7F A0 00 34 */ cntlzw r0, r29 /* 801E03D0 001DC030 54 1D D9 7E */ srwi r29, r0, 5 lbl_801E03D4: /* 801E03D4 001DC034 37 DE FF FF */ addic. r30, r30, -1 /* 801E03D8 001DC038 7F E4 FB 78 */ mr r4, r31 /* 801E03DC 001DC03C 7F 25 CB 78 */ mr r5, r25 /* 801E03E0 001DC040 3B FF 00 02 */ addi r31, r31, 2 /* 801E03E4 001DC044 40 82 FF 38 */ bne lbl_801E031C lbl_801E03E8: /* 801E03E8 001DC048 39 61 00 90 */ addi r11, r1, 0x90 /* 801E03EC 001DC04C 7F A3 EB 78 */ mr r3, r29 /* 801E03F0 001DC050 4B FE 6D 7D */ bl _restgpr_25 /* 801E03F4 001DC054 80 01 00 94 */ lwz r0, 0x94(r1) /* 801E03F8 001DC058 7C 08 03 A6 */ mtlr r0 /* 801E03FC 001DC05C 38 21 00 90 */ addi r1, r1, 0x90 /* 801E0400 001DC060 4E 80 00 20 */ blr .global func_801E0404 func_801E0404: /* 801E0404 001DC064 94 21 FE E0 */ stwu r1, -0x120(r1) /* 801E0408 001DC068 7C 08 02 A6 */ mflr r0 /* 801E040C 001DC06C 90 01 01 24 */ stw r0, 0x124(r1) /* 801E0410 001DC070 DB E1 01 10 */ stfd f31, 0x110(r1) /* 801E0414 001DC074 F3 E1 01 18 */ psq_st f31, 280(r1), 0, qr0 /* 801E0418 001DC078 DB C1 01 00 */ stfd f30, 0x100(r1) /* 801E041C 001DC07C F3 C1 01 08 */ psq_st f30, 264(r1), 0, qr0 /* 801E0420 001DC080 39 61 01 00 */ addi r11, r1, 0x100 /* 801E0424 001DC084 4B FE 6C E9 */ bl _savegpr_20 /* 801E0428 001DC088 7C 75 1B 78 */ mr r21, r3 /* 801E042C 001DC08C 7C 96 23 78 */ mr r22, r4 /* 801E0430 001DC090 7C B7 2B 78 */ mr r23, r5 /* 801E0434 001DC094 7C D8 33 78 */ mr r24, r6 /* 801E0438 001DC098 7C F9 3B 78 */ mr r25, r7 /* 801E043C 001DC09C 7D 1A 43 78 */ mr r26, r8 /* 801E0440 001DC0A0 7D 3B 4B 78 */ mr r27, r9 /* 801E0444 001DC0A4 48 01 38 9D */ bl func_801F3CE0 /* 801E0448 001DC0A8 2C 03 00 00 */ cmpwi r3, 0 /* 801E044C 001DC0AC 40 82 00 0C */ bne lbl_801E0458 /* 801E0450 001DC0B0 38 60 00 00 */ li r3, 0 /* 801E0454 001DC0B4 48 00 03 4C */ b lbl_801E07A0 lbl_801E0458: /* 801E0458 001DC0B8 80 15 01 3C */ lwz r0, 0x13c(r21) /* 801E045C 001DC0BC 2C 00 00 00 */ cmpwi r0, 0 /* 801E0460 001DC0C0 41 82 00 10 */ beq lbl_801E0470 /* 801E0464 001DC0C4 80 15 01 40 */ lwz r0, 0x140(r21) /* 801E0468 001DC0C8 2C 00 00 00 */ cmpwi r0, 0 /* 801E046C 001DC0CC 40 82 00 0C */ bne lbl_801E0478 lbl_801E0470: /* 801E0470 001DC0D0 38 60 00 00 */ li r3, 0 /* 801E0474 001DC0D4 48 00 03 2C */ b lbl_801E07A0 lbl_801E0478: /* 801E0478 001DC0D8 38 75 00 D0 */ addi r3, r21, 0xd0 /* 801E047C 001DC0DC 38 81 00 98 */ addi r4, r1, 0x98 /* 801E0480 001DC0E0 48 09 BC 29 */ bl PSMTXInverse /* 801E0484 001DC0E4 7E C4 B3 78 */ mr r4, r22 /* 801E0488 001DC0E8 38 61 00 98 */ addi r3, r1, 0x98 /* 801E048C 001DC0EC 38 A1 00 8C */ addi r5, r1, 0x8c /* 801E0490 001DC0F0 48 09 C5 6D */ bl PSMTXMultVec /* 801E0494 001DC0F4 7E E4 BB 78 */ mr r4, r23 /* 801E0498 001DC0F8 38 61 00 98 */ addi r3, r1, 0x98 /* 801E049C 001DC0FC 38 A1 00 80 */ addi r5, r1, 0x80 /* 801E04A0 001DC100 48 09 C5 5D */ bl PSMTXMultVec /* 801E04A4 001DC104 C0 01 00 80 */ lfs f0, 0x80(r1) /* 801E04A8 001DC108 C0 35 01 20 */ lfs f1, 0x120(r21) /* 801E04AC 001DC10C FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801E04B0 001DC110 40 80 00 18 */ bge lbl_801E04C8 /* 801E04B4 001DC114 C0 01 00 8C */ lfs f0, 0x8c(r1) /* 801E04B8 001DC118 FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801E04BC 001DC11C 40 80 00 0C */ bge lbl_801E04C8 /* 801E04C0 001DC120 38 60 00 00 */ li r3, 0 /* 801E04C4 001DC124 48 00 02 DC */ b lbl_801E07A0 lbl_801E04C8: /* 801E04C8 001DC128 C0 01 00 84 */ lfs f0, 0x84(r1) /* 801E04CC 001DC12C C0 35 01 24 */ lfs f1, 0x124(r21) /* 801E04D0 001DC130 FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801E04D4 001DC134 40 80 00 18 */ bge lbl_801E04EC /* 801E04D8 001DC138 C0 01 00 90 */ lfs f0, 0x90(r1) /* 801E04DC 001DC13C FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801E04E0 001DC140 40 80 00 0C */ bge lbl_801E04EC /* 801E04E4 001DC144 38 60 00 00 */ li r3, 0 /* 801E04E8 001DC148 48 00 02 B8 */ b lbl_801E07A0 lbl_801E04EC: /* 801E04EC 001DC14C C0 01 00 88 */ lfs f0, 0x88(r1) /* 801E04F0 001DC150 C0 35 01 28 */ lfs f1, 0x128(r21) /* 801E04F4 001DC154 FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801E04F8 001DC158 40 80 00 18 */ bge lbl_801E0510 /* 801E04FC 001DC15C C0 01 00 94 */ lfs f0, 0x94(r1) /* 801E0500 001DC160 FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801E0504 001DC164 40 80 00 0C */ bge lbl_801E0510 /* 801E0508 001DC168 38 60 00 00 */ li r3, 0 /* 801E050C 001DC16C 48 00 02 94 */ b lbl_801E07A0 lbl_801E0510: /* 801E0510 001DC170 C0 01 00 80 */ lfs f0, 0x80(r1) /* 801E0514 001DC174 C0 35 01 2C */ lfs f1, 0x12c(r21) /* 801E0518 001DC178 FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801E051C 001DC17C 40 81 00 18 */ ble lbl_801E0534 /* 801E0520 001DC180 C0 01 00 8C */ lfs f0, 0x8c(r1) /* 801E0524 001DC184 FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801E0528 001DC188 40 81 00 0C */ ble lbl_801E0534 /* 801E052C 001DC18C 38 60 00 00 */ li r3, 0 /* 801E0530 001DC190 48 00 02 70 */ b lbl_801E07A0 lbl_801E0534: /* 801E0534 001DC194 C0 01 00 84 */ lfs f0, 0x84(r1) /* 801E0538 001DC198 C0 35 01 30 */ lfs f1, 0x130(r21) /* 801E053C 001DC19C FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801E0540 001DC1A0 40 81 00 18 */ ble lbl_801E0558 /* 801E0544 001DC1A4 C0 01 00 90 */ lfs f0, 0x90(r1) /* 801E0548 001DC1A8 FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801E054C 001DC1AC 40 81 00 0C */ ble lbl_801E0558 /* 801E0550 001DC1B0 38 60 00 00 */ li r3, 0 /* 801E0554 001DC1B4 48 00 02 4C */ b lbl_801E07A0 lbl_801E0558: /* 801E0558 001DC1B8 C0 01 00 88 */ lfs f0, 0x88(r1) /* 801E055C 001DC1BC C0 35 01 34 */ lfs f1, 0x134(r21) /* 801E0560 001DC1C0 FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801E0564 001DC1C4 40 81 00 18 */ ble lbl_801E057C /* 801E0568 001DC1C8 C0 01 00 94 */ lfs f0, 0x94(r1) /* 801E056C 001DC1CC FC 00 08 40 */ fcmpo cr0, f0, f1 /* 801E0570 001DC1D0 40 81 00 0C */ ble lbl_801E057C /* 801E0574 001DC1D4 38 60 00 00 */ li r3, 0 /* 801E0578 001DC1D8 48 00 02 28 */ b lbl_801E07A0 lbl_801E057C: /* 801E057C 001DC1DC A0 15 01 06 */ lhz r0, 0x106(r21) /* 801E0580 001DC1E0 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b /* 801E0584 001DC1E4 41 82 00 0C */ beq lbl_801E0590 /* 801E0588 001DC1E8 7E A3 AB 78 */ mr r3, r21 /* 801E058C 001DC1EC 4B FF FA 71 */ bl func_801DFFFC lbl_801E0590: /* 801E0590 001DC1F0 38 61 00 80 */ addi r3, r1, 0x80 /* 801E0594 001DC1F4 38 81 00 8C */ addi r4, r1, 0x8c /* 801E0598 001DC1F8 38 A1 00 74 */ addi r5, r1, 0x74 /* 801E059C 001DC1FC 48 09 C7 4D */ bl PSVECSubtract /* 801E05A0 001DC200 C0 02 96 5C */ lfs f0, lbl_80641C5C-_SDA2_BASE_(r2) /* 801E05A4 001DC204 3B E0 00 00 */ li r31, 0 /* 801E05A8 001DC208 C3 E2 96 50 */ lfs f31, lbl_80641C50-_SDA2_BASE_(r2) /* 801E05AC 001DC20C 3B 80 00 00 */ li r28, 0 /* 801E05B0 001DC210 D0 1A 00 00 */ stfs f0, 0(r26) /* 801E05B4 001DC214 80 75 01 44 */ lwz r3, 0x144(r21) /* 801E05B8 001DC218 83 C3 00 40 */ lwz r30, 0x40(r3) /* 801E05BC 001DC21C A3 A3 00 34 */ lhz r29, 0x34(r3) /* 801E05C0 001DC220 48 00 01 D0 */ b lbl_801E0790 lbl_801E05C4: /* 801E05C4 001DC224 A0 1E 00 00 */ lhz r0, 0(r30) /* 801E05C8 001DC228 38 61 00 74 */ addi r3, r1, 0x74 /* 801E05CC 001DC22C 80 DE 00 04 */ lwz r6, 4(r30) /* 801E05D0 001DC230 38 81 00 68 */ addi r4, r1, 0x68 /* 801E05D4 001DC234 1C 00 00 0C */ mulli r0, r0, 0xc /* 801E05D8 001DC238 80 B5 01 40 */ lwz r5, 0x140(r21) /* 801E05DC 001DC23C A0 C6 00 00 */ lhz r6, 0(r6) /* 801E05E0 001DC240 80 F5 01 3C */ lwz r7, 0x13c(r21) /* 801E05E4 001DC244 7C 05 04 6E */ lfsux f0, r5, r0 /* 801E05E8 001DC248 1C 06 00 0C */ mulli r0, r6, 0xc /* 801E05EC 001DC24C D0 01 00 68 */ stfs f0, 0x68(r1) /* 801E05F0 001DC250 7E 87 02 14 */ add r20, r7, r0 /* 801E05F4 001DC254 C0 05 00 04 */ lfs f0, 4(r5) /* 801E05F8 001DC258 D0 01 00 6C */ stfs f0, 0x6c(r1) /* 801E05FC 001DC25C C0 05 00 08 */ lfs f0, 8(r5) /* 801E0600 001DC260 D0 01 00 70 */ stfs f0, 0x70(r1) /* 801E0604 001DC264 48 09 C7 C5 */ bl PSVECDotProduct /* 801E0608 001DC268 FC 01 F8 40 */ fcmpo cr0, f1, f31 /* 801E060C 001DC26C FF C0 08 90 */ fmr f30, f1 /* 801E0610 001DC270 4C 41 13 82 */ cror 2, 1, 2 /* 801E0614 001DC274 40 82 00 38 */ bne lbl_801E064C /* 801E0618 001DC278 88 1E 00 02 */ lbz r0, 2(r30) /* 801E061C 001DC27C 2C 00 00 00 */ cmpwi r0, 0 /* 801E0620 001DC280 41 82 01 68 */ beq lbl_801E0788 /* 801E0624 001DC284 C0 41 00 68 */ lfs f2, 0x68(r1) /* 801E0628 001DC288 FF C0 08 50 */ fneg f30, f1 /* 801E062C 001DC28C C0 21 00 6C */ lfs f1, 0x6c(r1) /* 801E0630 001DC290 C0 01 00 70 */ lfs f0, 0x70(r1) /* 801E0634 001DC294 FC 40 10 50 */ fneg f2, f2 /* 801E0638 001DC298 FC 20 08 50 */ fneg f1, f1 /* 801E063C 001DC29C FC 00 00 50 */ fneg f0, f0 /* 801E0640 001DC2A0 D0 41 00 68 */ stfs f2, 0x68(r1) /* 801E0644 001DC2A4 D0 21 00 6C */ stfs f1, 0x6c(r1) /* 801E0648 001DC2A8 D0 01 00 70 */ stfs f0, 0x70(r1) lbl_801E064C: /* 801E064C 001DC2AC 7E 83 A3 78 */ mr r3, r20 /* 801E0650 001DC2B0 38 81 00 8C */ addi r4, r1, 0x8c /* 801E0654 001DC2B4 38 A1 00 50 */ addi r5, r1, 0x50 /* 801E0658 001DC2B8 48 09 C6 91 */ bl PSVECSubtract /* 801E065C 001DC2BC 38 61 00 50 */ addi r3, r1, 0x50 /* 801E0660 001DC2C0 38 81 00 68 */ addi r4, r1, 0x68 /* 801E0664 001DC2C4 48 09 C7 65 */ bl PSVECDotProduct /* 801E0668 001DC2C8 FC 01 F8 40 */ fcmpo cr0, f1, f31 /* 801E066C 001DC2CC 41 81 01 1C */ bgt lbl_801E0788 /* 801E0670 001DC2D0 FC 01 F0 40 */ fcmpo cr0, f1, f30 /* 801E0674 001DC2D4 4C 40 13 82 */ cror 2, 0, 2 /* 801E0678 001DC2D8 41 82 01 10 */ beq lbl_801E0788 /* 801E067C 001DC2DC EF C1 F0 24 */ fdivs f30, f1, f30 /* 801E0680 001DC2E0 38 61 00 74 */ addi r3, r1, 0x74 /* 801E0684 001DC2E4 38 81 00 38 */ addi r4, r1, 0x38 /* 801E0688 001DC2E8 FC 20 F0 90 */ fmr f1, f30 /* 801E068C 001DC2EC 48 09 C6 81 */ bl PSVECScale /* 801E0690 001DC2F0 38 61 00 8C */ addi r3, r1, 0x8c /* 801E0694 001DC2F4 38 81 00 38 */ addi r4, r1, 0x38 /* 801E0698 001DC2F8 38 A1 00 44 */ addi r5, r1, 0x44 /* 801E069C 001DC2FC 48 09 C6 29 */ bl PSVECAdd /* 801E06A0 001DC300 C0 41 00 44 */ lfs f2, 0x44(r1) /* 801E06A4 001DC304 7E A3 AB 78 */ mr r3, r21 /* 801E06A8 001DC308 C0 21 00 48 */ lfs f1, 0x48(r1) /* 801E06AC 001DC30C 7F C4 F3 78 */ mr r4, r30 /* 801E06B0 001DC310 C0 01 00 4C */ lfs f0, 0x4c(r1) /* 801E06B4 001DC314 38 A1 00 5C */ addi r5, r1, 0x5c /* 801E06B8 001DC318 D0 41 00 5C */ stfs f2, 0x5c(r1) /* 801E06BC 001DC31C D0 21 00 60 */ stfs f1, 0x60(r1) /* 801E06C0 001DC320 D0 01 00 64 */ stfs f0, 0x64(r1) /* 801E06C4 001DC324 4B FF F9 95 */ bl func_801E0058 /* 801E06C8 001DC328 2C 03 00 00 */ cmpwi r3, 0 /* 801E06CC 001DC32C 41 82 00 BC */ beq lbl_801E0788 /* 801E06D0 001DC330 C0 1A 00 00 */ lfs f0, 0(r26) /* 801E06D4 001DC334 FC 00 F0 40 */ fcmpo cr0, f0, f30 /* 801E06D8 001DC338 40 81 00 B0 */ ble lbl_801E0788 /* 801E06DC 001DC33C 7E E3 BB 78 */ mr r3, r23 /* 801E06E0 001DC340 7E C4 B3 78 */ mr r4, r22 /* 801E06E4 001DC344 38 A1 00 14 */ addi r5, r1, 0x14 /* 801E06E8 001DC348 48 09 C6 01 */ bl PSVECSubtract /* 801E06EC 001DC34C FC 20 F0 90 */ fmr f1, f30 /* 801E06F0 001DC350 38 61 00 14 */ addi r3, r1, 0x14 /* 801E06F4 001DC354 38 81 00 20 */ addi r4, r1, 0x20 /* 801E06F8 001DC358 48 09 C6 15 */ bl PSVECScale /* 801E06FC 001DC35C 7E C3 B3 78 */ mr r3, r22 /* 801E0700 001DC360 38 81 00 20 */ addi r4, r1, 0x20 /* 801E0704 001DC364 38 A1 00 2C */ addi r5, r1, 0x2c /* 801E0708 001DC368 48 09 C5 BD */ bl PSVECAdd /* 801E070C 001DC36C C0 01 00 2C */ lfs f0, 0x2c(r1) /* 801E0710 001DC370 7F 04 C3 78 */ mr r4, r24 /* 801E0714 001DC374 7F 05 C3 78 */ mr r5, r24 /* 801E0718 001DC378 38 75 00 D0 */ addi r3, r21, 0xd0 /* 801E071C 001DC37C D0 19 00 00 */ stfs f0, 0(r25) /* 801E0720 001DC380 C0 01 00 30 */ lfs f0, 0x30(r1) /* 801E0724 001DC384 D0 19 00 04 */ stfs f0, 4(r25) /* 801E0728 001DC388 C0 01 00 34 */ lfs f0, 0x34(r1) /* 801E072C 001DC38C D0 19 00 08 */ stfs f0, 8(r25) /* 801E0730 001DC390 C0 01 00 68 */ lfs f0, 0x68(r1) /* 801E0734 001DC394 D0 18 00 00 */ stfs f0, 0(r24) /* 801E0738 001DC398 C0 01 00 6C */ lfs f0, 0x6c(r1) /* 801E073C 001DC39C D0 18 00 04 */ stfs f0, 4(r24) /* 801E0740 001DC3A0 C0 01 00 70 */ lfs f0, 0x70(r1) /* 801E0744 001DC3A4 D0 18 00 08 */ stfs f0, 8(r24) /* 801E0748 001DC3A8 48 09 C3 09 */ bl PSMTXMultVecSR /* 801E074C 001DC3AC 7F 03 C3 78 */ mr r3, r24 /* 801E0750 001DC3B0 7F 04 C3 78 */ mr r4, r24 /* 801E0754 001DC3B4 48 09 C5 D5 */ bl PSVECNormalize /* 801E0758 001DC3B8 C0 22 96 78 */ lfs f1, lbl_80641C78-_SDA2_BASE_(r2) /* 801E075C 001DC3BC 7F 03 C3 78 */ mr r3, r24 /* 801E0760 001DC3C0 38 81 00 08 */ addi r4, r1, 8 /* 801E0764 001DC3C4 48 09 C5 A9 */ bl PSVECScale /* 801E0768 001DC3C8 7F 23 CB 78 */ mr r3, r25 /* 801E076C 001DC3CC 7F 25 CB 78 */ mr r5, r25 /* 801E0770 001DC3D0 38 81 00 08 */ addi r4, r1, 8 /* 801E0774 001DC3D4 48 09 C5 51 */ bl PSVECAdd /* 801E0778 001DC3D8 2C 1B 00 00 */ cmpwi r27, 0 /* 801E077C 001DC3DC D3 DA 00 00 */ stfs f30, 0(r26) /* 801E0780 001DC3E0 3B E0 00 01 */ li r31, 1 /* 801E0784 001DC3E4 41 82 00 18 */ beq lbl_801E079C lbl_801E0788: /* 801E0788 001DC3E8 3B 9C 00 01 */ addi r28, r28, 1 /* 801E078C 001DC3EC 3B DE 00 08 */ addi r30, r30, 8 lbl_801E0790: /* 801E0790 001DC3F0 57 80 04 3E */ clrlwi r0, r28, 0x10 /* 801E0794 001DC3F4 7C 00 E8 40 */ cmplw r0, r29 /* 801E0798 001DC3F8 41 80 FE 2C */ blt lbl_801E05C4 lbl_801E079C: /* 801E079C 001DC3FC 7F E3 FB 78 */ mr r3, r31 lbl_801E07A0: /* 801E07A0 001DC400 E3 E1 01 18 */ psq_l f31, 280(r1), 0, qr0 /* 801E07A4 001DC404 CB E1 01 10 */ lfd f31, 0x110(r1) /* 801E07A8 001DC408 E3 C1 01 08 */ psq_l f30, 264(r1), 0, qr0 /* 801E07AC 001DC40C 39 61 01 00 */ addi r11, r1, 0x100 /* 801E07B0 001DC410 CB C1 01 00 */ lfd f30, 0x100(r1) /* 801E07B4 001DC414 4B FE 69 A5 */ bl _restgpr_20 /* 801E07B8 001DC418 80 01 01 24 */ lwz r0, 0x124(r1) /* 801E07BC 001DC41C 7C 08 03 A6 */ mtlr r0 /* 801E07C0 001DC420 38 21 01 20 */ addi r1, r1, 0x120 /* 801E07C4 001DC424 4E 80 00 20 */ blr .global func_801E07C8 func_801E07C8: /* 801E07C8 001DC428 38 A0 00 01 */ li r5, 1 /* 801E07CC 001DC42C 38 6D A0 A0 */ addi r3, r13, lbl_8063F360-_SDA_BASE_ /* 801E07D0 001DC430 38 80 00 04 */ li r4, 4 /* 801E07D4 001DC434 38 00 00 00 */ li r0, 0 /* 801E07D8 001DC438 98 AD A0 A0 */ stb r5, lbl_8063F360-_SDA_BASE_(r13) /* 801E07DC 001DC43C B0 83 00 02 */ sth r4, 2(r3) /* 801E07E0 001DC440 98 03 00 04 */ stb r0, 4(r3) /* 801E07E4 001DC444 4E 80 00 20 */ blr