From f048ac917bcb493fdabf03f0066cd252ba0f841b Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 25 Nov 2020 22:37:14 -0500 Subject: decompile code_801E07E8.o and code_801E0810.o --- asm/GSvolume.s | 1659 ++++++++++++++++++++++++++++++++++++++++++++++ asm/GSvolume_ctors.s | 5 + asm/GSvolume_sbss.s | 10 + asm/code_801DF040.s | 1659 ---------------------------------------------- asm/code_801E07E8.s | 19 - asm/code_801E0810.s | 176 ----- asm/code_801E0810_asm.s | 3 + asm/ctors_2.s | 1 - asm/sbss_2.s | 13 +- include/SDK/OS/OSCache.h | 1 + obj_files.mk | 9 +- src/code_801E07E8.cpp | 13 + src/code_801E0810.cpp | 131 ++++ 13 files changed, 1830 insertions(+), 1869 deletions(-) create mode 100644 asm/GSvolume.s create mode 100644 asm/GSvolume_ctors.s create mode 100644 asm/GSvolume_sbss.s delete mode 100644 asm/code_801DF040.s delete mode 100644 asm/code_801E07E8.s delete mode 100644 asm/code_801E0810.s create mode 100644 asm/code_801E0810_asm.s create mode 100644 src/code_801E07E8.cpp create mode 100644 src/code_801E0810.cpp diff --git a/asm/GSvolume.s b/asm/GSvolume.s new file mode 100644 index 0000000..7cfe0d3 --- /dev/null +++ b/asm/GSvolume.s @@ -0,0 +1,1659 @@ +.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 PSQUATDotProduct +/* 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 PSQUATDotProduct +/* 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 diff --git a/asm/GSvolume_ctors.s b/asm/GSvolume_ctors.s new file mode 100644 index 0000000..326d8f9 --- /dev/null +++ b/asm/GSvolume_ctors.s @@ -0,0 +1,5 @@ +.include "macros.inc" + +.section .ctors, "wa" # 0x803E1E60 - 0x803E22A0 + +.4byte func_801E07C8 diff --git a/asm/GSvolume_sbss.s b/asm/GSvolume_sbss.s new file mode 100644 index 0000000..2889b60 --- /dev/null +++ b/asm/GSvolume_sbss.s @@ -0,0 +1,10 @@ +.section .sbss, "wa" # 0x80474F00 - 0x80643050 + +# NOTE: This is a placeholder for GSvolume's ctorStruct instance + +.global lbl_8063F35E +lbl_8063F35E: + .skip 0x2 +.global lbl_8063F360 +lbl_8063F360: + .skip 0x8 diff --git a/asm/code_801DF040.s b/asm/code_801DF040.s deleted file mode 100644 index 7cfe0d3..0000000 --- a/asm/code_801DF040.s +++ /dev/null @@ -1,1659 +0,0 @@ -.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 PSQUATDotProduct -/* 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 PSQUATDotProduct -/* 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 diff --git a/asm/code_801E07E8.s b/asm/code_801E07E8.s deleted file mode 100644 index cfea9dd..0000000 --- a/asm/code_801E07E8.s +++ /dev/null @@ -1,19 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 0x80006980 - 0x803E1E60 - -.global func_801E07E8 -func_801E07E8: -/* 801E07E8 001DC448 38 60 00 00 */ li r3, 0 -/* 801E07EC 001DC44C 4E 80 00 20 */ blr - -.global func_801E07F0 -func_801E07F0: -/* 801E07F0 001DC450 38 A0 00 01 */ li r5, 1 -/* 801E07F4 001DC454 38 6D A0 A8 */ addi r3, r13, lbl_8063F368-_SDA_BASE_ -/* 801E07F8 001DC458 38 80 00 04 */ li r4, 4 -/* 801E07FC 001DC45C 38 00 00 00 */ li r0, 0 -/* 801E0800 001DC460 98 AD A0 A8 */ stb r5, lbl_8063F368-_SDA_BASE_(r13) -/* 801E0804 001DC464 B0 83 00 02 */ sth r4, 2(r3) -/* 801E0808 001DC468 98 03 00 04 */ stb r0, 4(r3) -/* 801E080C 001DC46C 4E 80 00 20 */ blr diff --git a/asm/code_801E0810.s b/asm/code_801E0810.s deleted file mode 100644 index 82d275f..0000000 --- a/asm/code_801E0810.s +++ /dev/null @@ -1,176 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 0x80006980 - 0x803E1E60 - -.global func_801E0810 -func_801E0810: -/* 801E0810 001DC470 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 801E0814 001DC474 7C 08 02 A6 */ mflr r0 -/* 801E0818 001DC478 90 01 00 24 */ stw r0, 0x24(r1) -/* 801E081C 001DC47C 39 61 00 20 */ addi r11, r1, 0x20 -/* 801E0820 001DC480 4B FE 69 09 */ bl _savegpr_27 -/* 801E0824 001DC484 80 0D A1 50 */ lwz r0, lbl_8063F410-_SDA_BASE_(r13) -/* 801E0828 001DC488 7C 7F 1B 78 */ mr r31, r3 -/* 801E082C 001DC48C 7C 9B 23 78 */ mr r27, r4 -/* 801E0830 001DC490 7C BC 2B 78 */ mr r28, r5 -/* 801E0834 001DC494 2C 00 00 00 */ cmpwi r0, 0 -/* 801E0838 001DC498 7C DE 33 78 */ mr r30, r6 -/* 801E083C 001DC49C 40 82 00 0C */ bne lbl_801E0848 -/* 801E0840 001DC4A0 38 60 00 00 */ li r3, 0 -/* 801E0844 001DC4A4 48 00 00 A8 */ b lbl_801E08EC -lbl_801E0848: -/* 801E0848 001DC4A8 7C 03 03 78 */ mr r3, r0 -/* 801E084C 001DC4AC 48 01 AF C1 */ bl func_801FB80C -/* 801E0850 001DC4B0 2C 03 00 00 */ cmpwi r3, 0 -/* 801E0854 001DC4B4 7C 7D 1B 78 */ mr r29, r3 -/* 801E0858 001DC4B8 40 82 00 0C */ bne lbl_801E0864 -/* 801E085C 001DC4BC 38 60 00 00 */ li r3, 0 -/* 801E0860 001DC4C0 48 00 00 8C */ b lbl_801E08EC -lbl_801E0864: -/* 801E0864 001DC4C4 38 00 00 01 */ li r0, 1 -/* 801E0868 001DC4C8 2C 1E 00 00 */ cmpwi r30, 0 -/* 801E086C 001DC4CC 98 03 00 01 */ stb r0, 1(r3) -/* 801E0870 001DC4D0 9B 83 00 02 */ stb r28, 2(r3) -/* 801E0874 001DC4D4 9B C3 00 03 */ stb r30, 3(r3) -/* 801E0878 001DC4D8 93 63 00 04 */ stw r27, 4(r3) -/* 801E087C 001DC4DC 41 82 00 24 */ beq lbl_801E08A0 -/* 801E0880 001DC4E0 80 6D A1 50 */ lwz r3, lbl_8063F410-_SDA_BASE_(r13) -/* 801E0884 001DC4E4 83 C3 00 10 */ lwz r30, 0x10(r3) -/* 801E0888 001DC4E8 57 C3 86 3E */ rlwinm r3, r30, 0x10, 0x18, 0x1f -/* 801E088C 001DC4EC 48 05 A7 CD */ bl func_8023B058 -/* 801E0890 001DC4F0 2C 03 00 00 */ cmpwi r3, 0 -/* 801E0894 001DC4F4 41 82 00 0C */ beq lbl_801E08A0 -/* 801E0898 001DC4F8 7F C4 F3 78 */ mr r4, r30 -/* 801E089C 001DC4FC 48 05 AB 1D */ bl func_8023B3B8 -lbl_801E08A0: -/* 801E08A0 001DC500 88 1D 00 01 */ lbz r0, 1(r29) -/* 801E08A4 001DC504 80 6D A1 50 */ lwz r3, lbl_8063F410-_SDA_BASE_(r13) -/* 801E08A8 001DC508 2C 00 00 00 */ cmpwi r0, 0 -/* 801E08AC 001DC50C 41 82 00 18 */ beq lbl_801E08C4 -/* 801E08B0 001DC510 88 1D 00 00 */ lbz r0, 0(r29) -/* 801E08B4 001DC514 80 63 03 F0 */ lwz r3, 0x3f0(r3) -/* 801E08B8 001DC518 54 00 10 3A */ slwi r0, r0, 2 -/* 801E08BC 001DC51C 7C 83 02 14 */ add r4, r3, r0 -/* 801E08C0 001DC520 48 00 00 08 */ b lbl_801E08C8 -lbl_801E08C4: -/* 801E08C4 001DC524 38 80 00 00 */ li r4, 0 -lbl_801E08C8: -/* 801E08C8 001DC528 88 1F 00 00 */ lbz r0, 0(r31) -/* 801E08CC 001DC52C 7F A3 EB 78 */ mr r3, r29 -/* 801E08D0 001DC530 98 04 00 00 */ stb r0, 0(r4) -/* 801E08D4 001DC534 88 1F 00 01 */ lbz r0, 1(r31) -/* 801E08D8 001DC538 98 04 00 01 */ stb r0, 1(r4) -/* 801E08DC 001DC53C 88 1F 00 02 */ lbz r0, 2(r31) -/* 801E08E0 001DC540 98 04 00 02 */ stb r0, 2(r4) -/* 801E08E4 001DC544 88 1F 00 03 */ lbz r0, 3(r31) -/* 801E08E8 001DC548 98 04 00 03 */ stb r0, 3(r4) -lbl_801E08EC: -/* 801E08EC 001DC54C 39 61 00 20 */ addi r11, r1, 0x20 -/* 801E08F0 001DC550 4B FE 68 85 */ bl _restgpr_27 -/* 801E08F4 001DC554 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801E08F8 001DC558 7C 08 03 A6 */ mtlr r0 -/* 801E08FC 001DC55C 38 21 00 20 */ addi r1, r1, 0x20 -/* 801E0900 001DC560 4E 80 00 20 */ blr - -.global func_801E0904 -func_801E0904: -/* 801E0904 001DC564 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801E0908 001DC568 7C 08 02 A6 */ mflr r0 -/* 801E090C 001DC56C 90 01 00 14 */ stw r0, 0x14(r1) -/* 801E0910 001DC570 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801E0914 001DC574 93 C1 00 08 */ stw r30, 8(r1) -/* 801E0918 001DC578 7C 7E 1B 78 */ mr r30, r3 -/* 801E091C 001DC57C 88 03 00 01 */ lbz r0, 1(r3) -/* 801E0920 001DC580 2C 00 00 00 */ cmpwi r0, 0 -/* 801E0924 001DC584 41 82 00 3C */ beq lbl_801E0960 -/* 801E0928 001DC588 88 03 00 03 */ lbz r0, 3(r3) -/* 801E092C 001DC58C 2C 00 00 00 */ cmpwi r0, 0 -/* 801E0930 001DC590 41 82 00 24 */ beq lbl_801E0954 -/* 801E0934 001DC594 80 6D A1 50 */ lwz r3, lbl_8063F410-_SDA_BASE_(r13) -/* 801E0938 001DC598 83 E3 00 10 */ lwz r31, 0x10(r3) -/* 801E093C 001DC59C 57 E3 86 3E */ rlwinm r3, r31, 0x10, 0x18, 0x1f -/* 801E0940 001DC5A0 48 05 A7 19 */ bl func_8023B058 -/* 801E0944 001DC5A4 2C 03 00 00 */ cmpwi r3, 0 -/* 801E0948 001DC5A8 41 82 00 0C */ beq lbl_801E0954 -/* 801E094C 001DC5AC 7F E4 FB 78 */ mr r4, r31 -/* 801E0950 001DC5B0 48 05 AA D1 */ bl func_8023B420 -lbl_801E0954: -/* 801E0954 001DC5B4 38 00 00 00 */ li r0, 0 -/* 801E0958 001DC5B8 98 1E 00 01 */ stb r0, 1(r30) -/* 801E095C 001DC5BC 90 1E 00 04 */ stw r0, 4(r30) -lbl_801E0960: -/* 801E0960 001DC5C0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801E0964 001DC5C4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801E0968 001DC5C8 83 C1 00 08 */ lwz r30, 8(r1) -/* 801E096C 001DC5CC 7C 08 03 A6 */ mtlr r0 -/* 801E0970 001DC5D0 38 21 00 10 */ addi r1, r1, 0x10 -/* 801E0974 001DC5D4 4E 80 00 20 */ blr - -.global func_801E0978 -func_801E0978: -/* 801E0978 001DC5D8 88 03 00 01 */ lbz r0, 1(r3) -/* 801E097C 001DC5DC 2C 00 00 00 */ cmpwi r0, 0 -/* 801E0980 001DC5E0 41 82 00 48 */ beq lbl_801E09C8 -/* 801E0984 001DC5E4 80 AD A1 50 */ lwz r5, lbl_8063F410-_SDA_BASE_(r13) -/* 801E0988 001DC5E8 41 82 00 18 */ beq lbl_801E09A0 -/* 801E098C 001DC5EC 88 03 00 00 */ lbz r0, 0(r3) -/* 801E0990 001DC5F0 80 65 03 F0 */ lwz r3, 0x3f0(r5) -/* 801E0994 001DC5F4 54 00 10 3A */ slwi r0, r0, 2 -/* 801E0998 001DC5F8 7C 63 02 14 */ add r3, r3, r0 -/* 801E099C 001DC5FC 48 00 00 08 */ b lbl_801E09A4 -lbl_801E09A0: -/* 801E09A0 001DC600 38 60 00 00 */ li r3, 0 -lbl_801E09A4: -/* 801E09A4 001DC604 88 03 00 00 */ lbz r0, 0(r3) -/* 801E09A8 001DC608 98 04 00 00 */ stb r0, 0(r4) -/* 801E09AC 001DC60C 88 03 00 01 */ lbz r0, 1(r3) -/* 801E09B0 001DC610 98 04 00 01 */ stb r0, 1(r4) -/* 801E09B4 001DC614 88 03 00 02 */ lbz r0, 2(r3) -/* 801E09B8 001DC618 98 04 00 02 */ stb r0, 2(r4) -/* 801E09BC 001DC61C 88 03 00 03 */ lbz r0, 3(r3) -/* 801E09C0 001DC620 98 04 00 03 */ stb r0, 3(r4) -/* 801E09C4 001DC624 4E 80 00 20 */ blr -lbl_801E09C8: -/* 801E09C8 001DC628 7C 83 23 78 */ mr r3, r4 -/* 801E09CC 001DC62C 38 80 00 00 */ li r4, 0 -/* 801E09D0 001DC630 38 A0 00 04 */ li r5, 4 -/* 801E09D4 001DC634 4B E2 37 30 */ b memset -/* 801E09D8 001DC638 4E 80 00 20 */ blr - -.global func_801E09DC -func_801E09DC: -/* 801E09DC 001DC63C 88 03 00 01 */ lbz r0, 1(r3) -/* 801E09E0 001DC640 2C 00 00 00 */ cmpwi r0, 0 -/* 801E09E4 001DC644 4D 82 00 20 */ beqlr -/* 801E09E8 001DC648 80 AD A1 50 */ lwz r5, lbl_8063F410-_SDA_BASE_(r13) -/* 801E09EC 001DC64C 41 82 00 18 */ beq lbl_801E0A04 -/* 801E09F0 001DC650 88 03 00 00 */ lbz r0, 0(r3) -/* 801E09F4 001DC654 80 65 03 F0 */ lwz r3, 0x3f0(r5) -/* 801E09F8 001DC658 54 00 10 3A */ slwi r0, r0, 2 -/* 801E09FC 001DC65C 7C 63 02 14 */ add r3, r3, r0 -/* 801E0A00 001DC660 48 00 00 08 */ b lbl_801E0A08 -lbl_801E0A04: -/* 801E0A04 001DC664 38 60 00 00 */ li r3, 0 -lbl_801E0A08: -/* 801E0A08 001DC668 88 04 00 00 */ lbz r0, 0(r4) -/* 801E0A0C 001DC66C 98 03 00 00 */ stb r0, 0(r3) -/* 801E0A10 001DC670 88 04 00 01 */ lbz r0, 1(r4) -/* 801E0A14 001DC674 98 03 00 01 */ stb r0, 1(r3) -/* 801E0A18 001DC678 88 04 00 02 */ lbz r0, 2(r4) -/* 801E0A1C 001DC67C 98 03 00 02 */ stb r0, 2(r3) -/* 801E0A20 001DC680 88 04 00 03 */ lbz r0, 3(r4) -/* 801E0A24 001DC684 38 80 00 04 */ li r4, 4 -/* 801E0A28 001DC688 98 03 00 03 */ stb r0, 3(r3) -/* 801E0A2C 001DC68C 48 08 9C 28 */ b DCFlushRange -/* 801E0A30 001DC690 4E 80 00 20 */ blr - -.global func_801E0A34 -func_801E0A34: -/* 801E0A34 001DC694 38 A0 00 01 */ li r5, 1 -/* 801E0A38 001DC698 38 6D A0 B0 */ addi r3, r13, lbl_8063F370-_SDA_BASE_ -/* 801E0A3C 001DC69C 38 80 00 04 */ li r4, 4 -/* 801E0A40 001DC6A0 38 00 00 00 */ li r0, 0 -/* 801E0A44 001DC6A4 98 AD A0 B0 */ stb r5, lbl_8063F370-_SDA_BASE_(r13) -/* 801E0A48 001DC6A8 B0 83 00 02 */ sth r4, 2(r3) -/* 801E0A4C 001DC6AC 98 03 00 04 */ stb r0, 4(r3) -/* 801E0A50 001DC6B0 4E 80 00 20 */ blr diff --git a/asm/code_801E0810_asm.s b/asm/code_801E0810_asm.s new file mode 100644 index 0000000..4ea72fe --- /dev/null +++ b/asm/code_801E0810_asm.s @@ -0,0 +1,3 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 diff --git a/asm/ctors_2.s b/asm/ctors_2.s index ce9d11a..b758228 100644 --- a/asm/ctors_2.s +++ b/asm/ctors_2.s @@ -2,7 +2,6 @@ .section .ctors, "wa" # 0x803E1E60 - 0x803E22A0 -.4byte func_801E07C8, func_801E07F0, func_801E0A34 .4byte func_801E4308, func_801E472C, func_801E5F5C, func_801E6BD8 .4byte func_801ED364, func_801EE024, func_801F1A68, func_801F40C0 .4byte func_801F98CC, func_801FA074, func_801FA36C, func_801FB40C diff --git a/asm/sbss_2.s b/asm/sbss_2.s index 0c96a06..ec7549b 100644 --- a/asm/sbss_2.s +++ b/asm/sbss_2.s @@ -1,17 +1,8 @@ .section .sbss, "wa" # 0x80474F00 - 0x80643050 -.global lbl_8063F35E -lbl_8063F35E: +.global lbl_8063F376 +lbl_8063F376: .skip 0x2 -.global lbl_8063F360 -lbl_8063F360: - .skip 0x8 -.global lbl_8063F368 -lbl_8063F368: - .skip 0x8 -.global lbl_8063F370 -lbl_8063F370: - .skip 0x8 .global lbl_8063F378 lbl_8063F378: .skip 0x8 diff --git a/include/SDK/OS/OSCache.h b/include/SDK/OS/OSCache.h index 75dd2ca..73dcc94 100644 --- a/include/SDK/OS/OSCache.h +++ b/include/SDK/OS/OSCache.h @@ -5,6 +5,7 @@ extern "C" { #endif +void DCFlushRange(void* startAddr, u32 nBytes); void DCInvalidateRange(void* startAddr, u32 nBytes); void LCEnable(void); #define LC_BASE (0xE000 << 16) diff --git a/obj_files.mk b/obj_files.mk index bffb85d..1e27ac4 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -230,9 +230,12 @@ SPLIT_O_FILES := \ $(BUILD_DIR)/src/code_801DD5C8.o \ $(BUILD_DIR)/src/code_801DD8C0.o \ $(BUILD_DIR)/src/GScamera.o \ - $(BUILD_DIR)/asm/code_801DF040.o \ - $(BUILD_DIR)/asm/code_801E07E8.o \ - $(BUILD_DIR)/asm/code_801E0810.o \ + $(BUILD_DIR)/asm/GSvolume.o \ + $(BUILD_DIR)/asm/GSvolume_ctors.o \ + $(BUILD_DIR)/asm/GSvolume_sbss.o \ + $(BUILD_DIR)/src/code_801E07E8.o \ + $(BUILD_DIR)/src/code_801E0810.o \ + $(BUILD_DIR)/asm/code_801E0810_asm.o \ $(BUILD_DIR)/asm/code_801E0A54.o \ $(BUILD_DIR)/asm/code_801E4360.o \ $(BUILD_DIR)/asm/code_801E474C.o \ diff --git a/src/code_801E07E8.cpp b/src/code_801E07E8.cpp new file mode 100644 index 0000000..d3ae54d --- /dev/null +++ b/src/code_801E07E8.cpp @@ -0,0 +1,13 @@ +#include "ctorStruct.h" + +static ctorStruct gUnk8063F368(1, 4, 0); + +extern "C" +{ + +u32 func_801E07E8(void) +{ + return 0; +} + +} //extern "C" diff --git a/src/code_801E0810.cpp b/src/code_801E0810.cpp new file mode 100644 index 0000000..9095c63 --- /dev/null +++ b/src/code_801E0810.cpp @@ -0,0 +1,131 @@ +#include "ctorStruct.h" +#include +#include + +static ctorStruct gUnk8063F370(1, 4, 0); + +// size == 0x4 +struct unkClass3 +{ + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; +}; + +// size == 0x8 +struct unkClass2 +{ + u8 unk0; // index into unkClass3 array + u8 unk1; // func_801FB80C returns first instance when this is 0 + u8 unk2; + u8 unk3; + u32 unk4; +}; + +struct GSfilterModule +{ + u8 unk0[0x10]; // pad + u32 unk10; + u8 unk14[0x3D8]; // pad + unkClass2* unk3EC; // pointer to array + unkClass3* unk3F0; + u8 unk3F4[0x18]; // pad + u8 unk40C; // counter +}; + +extern "C" +{ + +extern GSfilterModule* lbl_8063F410; +unkClass2* func_801FB80C(GSfilterModule*); + +void* func_8023B058(u8); +void func_8023B3B8(void*, u32); +void func_8023B420(void*, u32); + +// NONMATCHING: r29/r30 regswaps + +// TODO: type of p1? + +unkClass2* func_801E0810(unkClass2* p1, u32 p2, u8 p3, u8 p4) +{ + u32 r30; + + if (!lbl_8063F410) + return NULL; + unkClass2* r29 = func_801FB80C(lbl_8063F410); + if (!r29) + return NULL; + r29->unk1 = 1; + r29->unk2 = p3; + r29->unk3 = p4; + r29->unk4 = p2; + if (r29->unk3) { + r30 = lbl_8063F410->unk10; + void* r3 = func_8023B058(static_cast(r30 >> 16)); + if (r3) + func_8023B3B8(r3, r30); + } + + unkClass* r3 = lbl_8063F410; + unkClass3* r4 = (r29->unk1) ? &r3->unk3F0[r29->unk0] : NULL; + + r4->unk0 = p1->unk0; + r4->unk1 = p1->unk1; + r4->unk2 = p1->unk2; + r4->unk3 = p1->unk3; + return r29; +} + +// TODO: p1 type? + +void func_801E0904(unkClass2* p1) +{ + if (p1->unk1) { + if (p1->unk3) { + u32 r31 = lbl_8063F410->unk10; + void* r3 = func_8023B058(static_cast(r31 >> 16)); + if (r3) + func_8023B420(r3, r31); + } + p1->unk1 = 0; + p1->unk4 = NULL; + } +} + +// TODO: p1 type? + +void func_801E0978(const unkClass2* p1, unkClass3* p2) +{ + if (p1->unk1) { + unkClass3* r3; + unkClass* r5 = lbl_8063F410; + if (p1->unk1) { + r3 = &r5->unk3F0[p1->unk0]; + } else { + r3 = NULL; + } + p2->unk0 = r3->unk0; + p2->unk1 = r3->unk1; + p2->unk2 = r3->unk2; + p2->unk3 = r3->unk3; + return; + } + memset(p2, 0, sizeof(unkClass3)); +} + +void func_801E09DC(const unkClass2* p1, unkClass3* p2) +{ + if (!p1->unk1) + return; + unkClass* r5 = lbl_8063F410; + unkClass3* r3 = (p1->unk1) ? &r5->unk3F0[p1->unk0] : NULL; + r3->unk0 = p2->unk0; + r3->unk1 = p2->unk1; + r3->unk2 = p2->unk2; + r3->unk3 = p2->unk3; + DCFlushRange(r3, sizeof(unkClass3)); +} + +} //extern "C" -- cgit v1.2.3