summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-11-08 21:27:58 -0500
committerMax <mparisi@stevens.edu>2020-11-08 21:27:58 -0500
commit155c5181988d53c10a58b08af174cc092e576826 (patch)
tree5339cca03feb775122f05d59bc7a43771575dcc2
parent2ac190172940c5646a8848c46a3a1f61c7cbcfa9 (diff)
added nonmatching ifdefs for each function in GScamera and match register order in 801DDF78 constructor
-rw-r--r--asm/code_800B9E10.s4
-rw-r--r--asm/code_800E4234.s4
-rw-r--r--asm/code_801DDF78_asm.s1092
-rw-r--r--asm/code_801DF040.s4
-rw-r--r--asm/code_801E0A54.s4
-rw-r--r--asm/code_801E4360.s4
-rw-r--r--asm/code_801E5F7C.s4
-rw-r--r--asm/code_801EE044.s6
-rw-r--r--asm/code_801F1AE8.s12
-rw-r--r--asm/code_801F40E0.s4
-rw-r--r--asm/code_801F98EC.s4
-rw-r--r--asm/code_80204058.s2
-rw-r--r--asm/code_80232D24.s4
-rw-r--r--src/code_801DDF78.cpp1325
14 files changed, 1330 insertions, 1143 deletions
diff --git a/asm/code_800B9E10.s b/asm/code_800B9E10.s
index e40e14b..eb3b480 100644
--- a/asm/code_800B9E10.s
+++ b/asm/code_800B9E10.s
@@ -12368,10 +12368,10 @@ func_800C51EC:
/* 800C5238 000C0E98 3F 60 80 48 */ lis r27, lbl_8047CE70@ha
/* 800C523C 000C0E9C 38 7B CE 70 */ addi r3, r27, lbl_8047CE70@l
/* 800C5240 000C0EA0 48 11 8D 39 */ bl __ct__8GScameraFv
-/* 800C5244 000C0EA4 3C 80 80 1E */ lis r4, func_801DE19C@ha
+/* 800C5244 000C0EA4 3C 80 80 1E */ lis r4, __dt__8GScameraFv@ha
/* 800C5248 000C0EA8 3C A0 80 48 */ lis r5, lbl_8047CE64@ha
/* 800C524C 000C0EAC 38 7B CE 70 */ addi r3, r27, -12688
-/* 800C5250 000C0EB0 38 84 E1 9C */ addi r4, r4, func_801DE19C@l
+/* 800C5250 000C0EB0 38 84 E1 9C */ addi r4, r4, __dt__8GScameraFv@l
/* 800C5254 000C0EB4 38 A5 CE 64 */ addi r5, r5, lbl_8047CE64@l
/* 800C5258 000C0EB8 48 10 19 F1 */ bl __register_global_object_tmp
/* 800C525C 000C0EBC 38 00 00 01 */ li r0, 1
diff --git a/asm/code_800E4234.s b/asm/code_800E4234.s
index d589698..2672174 100644
--- a/asm/code_800E4234.s
+++ b/asm/code_800E4234.s
@@ -2869,9 +2869,9 @@ lbl_800E69E8:
/* 800E6A2C 000E268C 40 82 00 28 */ bne lbl_800E6A54
/* 800E6A30 000E2690 38 7E 01 18 */ addi r3, r30, 0x118
/* 800E6A34 000E2694 48 0F 75 45 */ bl __ct__8GScameraFv
-/* 800E6A38 000E2698 3C 80 80 1E */ lis r4, func_801DE19C@ha
+/* 800E6A38 000E2698 3C 80 80 1E */ lis r4, __dt__8GScameraFv@ha
/* 800E6A3C 000E269C 38 7E 01 18 */ addi r3, r30, 0x118
-/* 800E6A40 000E26A0 38 84 E1 9C */ addi r4, r4, func_801DE19C@l
+/* 800E6A40 000E26A0 38 84 E1 9C */ addi r4, r4, __dt__8GScameraFv@l
/* 800E6A44 000E26A4 38 BE 01 0C */ addi r5, r30, 0x10c
/* 800E6A48 000E26A8 48 0E 02 01 */ bl __register_global_object_tmp
/* 800E6A4C 000E26AC 38 00 00 01 */ li r0, 1
diff --git a/asm/code_801DDF78_asm.s b/asm/code_801DDF78_asm.s
index 6c5ec4e..511b178 100644
--- a/asm/code_801DDF78_asm.s
+++ b/asm/code_801DDF78_asm.s
@@ -2,1098 +2,6 @@
.section .text, "ax" # 0x80006980 - 0x803E1E60
-# GScamera constructor
-.global func_801DE084
-func_801DE084:
-/* 801DE084 001D9CE4 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 801DE088 001D9CE8 7C 08 02 A6 */ mflr r0
-/* 801DE08C 001D9CEC 90 01 00 14 */ stw r0, 0x14(r1)
-/* 801DE090 001D9CF0 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 801DE094 001D9CF4 7C BF 2B 78 */ mr r31, r5
-/* 801DE098 001D9CF8 93 C1 00 08 */ stw r30, 8(r1)
-/* 801DE09C 001D9CFC 7C 7E 1B 78 */ mr r30, r3
-/* 801DE0A0 001D9D00 48 01 3B 29 */ bl func_801F1BC8
-/* 801DE0A4 001D9D04 C0 C2 95 FC */ lfs f6, lbl_80641BFC-_SDA2_BASE_(r2)
-/* 801DE0A8 001D9D08 38 00 00 00 */ li r0, 0
-/* 801DE0AC 001D9D0C C0 42 96 0C */ lfs f2, lbl_80641C0C-_SDA2_BASE_(r2)
-/* 801DE0B0 001D9D10 3C A0 80 42 */ lis r5, lbl_80423358@ha
-/* 801DE0B4 001D9D14 C0 22 96 10 */ lfs f1, lbl_80641C10-_SDA2_BASE_(r2)
-/* 801DE0B8 001D9D18 38 A5 33 58 */ addi r5, r5, lbl_80423358@l
-/* 801DE0BC 001D9D1C C0 A2 96 00 */ lfs f5, lbl_80641C00-_SDA2_BASE_(r2)
-/* 801DE0C0 001D9D20 38 80 01 09 */ li r4, 0x109
-/* 801DE0C4 001D9D24 C0 02 96 14 */ lfs f0, lbl_80641C14-_SDA2_BASE_(r2)
-/* 801DE0C8 001D9D28 38 7E 01 D4 */ addi r3, r30, 0x1d4
-/* 801DE0CC 001D9D2C D0 DE 01 6C */ stfs f6, 0x16c(r30)
-/* 801DE0D0 001D9D30 C0 E2 95 F8 */ lfs f7, lbl_80641BF8-_SDA2_BASE_(r2)
-/* 801DE0D4 001D9D34 D0 5E 01 84 */ stfs f2, 0x184(r30)
-/* 801DE0D8 001D9D38 C0 82 96 04 */ lfs f4, lbl_80641C04-_SDA2_BASE_(r2)
-/* 801DE0DC 001D9D3C C0 62 96 08 */ lfs f3, lbl_80641C08-_SDA2_BASE_(r2)
-/* 801DE0E0 001D9D40 90 BE 01 00 */ stw r5, 0x100(r30)
-/* 801DE0E4 001D9D44 90 9E 01 04 */ stw r4, 0x104(r30)
-/* 801DE0E8 001D9D48 93 FE 01 08 */ stw r31, 0x108(r30)
-/* 801DE0EC 001D9D4C 90 1E 01 4C */ stw r0, 0x14c(r30)
-/* 801DE0F0 001D9D50 90 1E 01 50 */ stw r0, 0x150(r30)
-/* 801DE0F4 001D9D54 90 1E 01 54 */ stw r0, 0x154(r30)
-/* 801DE0F8 001D9D58 90 1E 01 58 */ stw r0, 0x158(r30)
-/* 801DE0FC 001D9D5C 90 1E 01 5C */ stw r0, 0x15c(r30)
-/* 801DE100 001D9D60 90 1E 01 60 */ stw r0, 0x160(r30)
-/* 801DE104 001D9D64 90 1E 01 64 */ stw r0, 0x164(r30)
-/* 801DE108 001D9D68 D0 FE 01 68 */ stfs f7, 0x168(r30)
-/* 801DE10C 001D9D6C D0 BE 01 78 */ stfs f5, 0x178(r30)
-/* 801DE110 001D9D70 D0 9E 01 7C */ stfs f4, 0x17c(r30)
-/* 801DE114 001D9D74 D0 7E 01 80 */ stfs f3, 0x180(r30)
-/* 801DE118 001D9D78 D0 3E 01 88 */ stfs f1, 0x188(r30)
-/* 801DE11C 001D9D7C D0 3E 01 8C */ stfs f1, 0x18c(r30)
-/* 801DE120 001D9D80 D0 1E 01 90 */ stfs f0, 0x190(r30)
-/* 801DE124 001D9D84 D0 3E 01 94 */ stfs f1, 0x194(r30)
-/* 801DE128 001D9D88 D0 BE 01 98 */ stfs f5, 0x198(r30)
-/* 801DE12C 001D9D8C D0 3E 01 9C */ stfs f1, 0x19c(r30)
-/* 801DE130 001D9D90 D0 3E 01 A0 */ stfs f1, 0x1a0(r30)
-/* 801DE134 001D9D94 D0 3E 01 A4 */ stfs f1, 0x1a4(r30)
-/* 801DE138 001D9D98 D0 3E 01 A8 */ stfs f1, 0x1a8(r30)
-/* 801DE13C 001D9D9C D0 3E 01 AC */ stfs f1, 0x1ac(r30)
-/* 801DE140 001D9DA0 D0 3E 01 B0 */ stfs f1, 0x1b0(r30)
-/* 801DE144 001D9DA4 D0 3E 01 B4 */ stfs f1, 0x1b4(r30)
-/* 801DE148 001D9DA8 D0 3E 01 B8 */ stfs f1, 0x1b8(r30)
-/* 801DE14C 001D9DAC D0 BE 01 BC */ stfs f5, 0x1bc(r30)
-/* 801DE150 001D9DB0 D0 3E 01 C0 */ stfs f1, 0x1c0(r30)
-/* 801DE154 001D9DB4 D0 3E 01 C4 */ stfs f1, 0x1c4(r30)
-/* 801DE158 001D9DB8 D0 3E 01 C8 */ stfs f1, 0x1c8(r30)
-/* 801DE15C 001D9DBC D0 1E 01 CC */ stfs f0, 0x1cc(r30)
-/* 801DE160 001D9DC0 90 1E 01 D0 */ stw r0, 0x1d0(r30)
-/* 801DE164 001D9DC4 D0 DE 01 6C */ stfs f6, 0x16c(r30)
-/* 801DE168 001D9DC8 D0 5E 01 84 */ stfs f2, 0x184(r30)
-/* 801DE16C 001D9DCC 48 09 DD C1 */ bl PSMTXIdentity
-/* 801DE170 001D9DD0 38 7E 02 04 */ addi r3, r30, 0x204
-/* 801DE174 001D9DD4 48 09 DD B9 */ bl PSMTXIdentity
-/* 801DE178 001D9DD8 38 7E 02 34 */ addi r3, r30, 0x234
-/* 801DE17C 001D9DDC 48 09 DD B1 */ bl PSMTXIdentity
-/* 801DE180 001D9DE0 7F C3 F3 78 */ mr r3, r30
-/* 801DE184 001D9DE4 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 801DE188 001D9DE8 83 C1 00 08 */ lwz r30, 8(r1)
-/* 801DE18C 001D9DEC 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 801DE190 001D9DF0 7C 08 03 A6 */ mtlr r0
-/* 801DE194 001D9DF4 38 21 00 10 */ addi r1, r1, 0x10
-/* 801DE198 001D9DF8 4E 80 00 20 */ blr
-
-# GScamera virtual
-.global func_801DE19C
-func_801DE19C:
-/* 801DE19C 001D9DFC 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 801DE1A0 001D9E00 7C 08 02 A6 */ mflr r0
-/* 801DE1A4 001D9E04 2C 03 00 00 */ cmpwi r3, 0
-/* 801DE1A8 001D9E08 90 01 00 14 */ stw r0, 0x14(r1)
-/* 801DE1AC 001D9E0C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 801DE1B0 001D9E10 7C 9F 23 78 */ mr r31, r4
-/* 801DE1B4 001D9E14 93 C1 00 08 */ stw r30, 8(r1)
-/* 801DE1B8 001D9E18 7C 7E 1B 78 */ mr r30, r3
-/* 801DE1BC 001D9E1C 41 82 00 20 */ beq lbl_801DE1DC
-/* 801DE1C0 001D9E20 38 80 00 00 */ li r4, 0
-/* 801DE1C4 001D9E24 48 01 3D 61 */ bl func_801F1F24
-/* 801DE1C8 001D9E28 2C 1F 00 00 */ cmpwi r31, 0
-/* 801DE1CC 001D9E2C 40 81 00 10 */ ble lbl_801DE1DC
-/* 801DE1D0 001D9E30 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
-/* 801DE1D4 001D9E34 7F C4 F3 78 */ mr r4, r30
-/* 801DE1D8 001D9E38 4B FF CB 71 */ bl func_801DAD48
-lbl_801DE1DC:
-/* 801DE1DC 001D9E3C 7F C3 F3 78 */ mr r3, r30
-/* 801DE1E0 001D9E40 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 801DE1E4 001D9E44 83 C1 00 08 */ lwz r30, 8(r1)
-/* 801DE1E8 001D9E48 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 801DE1EC 001D9E4C 7C 08 03 A6 */ mtlr r0
-/* 801DE1F0 001D9E50 38 21 00 10 */ addi r1, r1, 0x10
-/* 801DE1F4 001D9E54 4E 80 00 20 */ blr
-
-.global func_801DE1F8
-func_801DE1F8:
-/* 801DE1F8 001D9E58 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 801DE1FC 001D9E5C 7C 08 02 A6 */ mflr r0
-/* 801DE200 001D9E60 90 01 00 34 */ stw r0, 0x34(r1)
-/* 801DE204 001D9E64 DB E1 00 20 */ stfd f31, 0x20(r1)
-/* 801DE208 001D9E68 F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0
-/* 801DE20C 001D9E6C DB C1 00 10 */ stfd f30, 0x10(r1)
-/* 801DE210 001D9E70 F3 C1 00 18 */ psq_st f30, 24(r1), 0, qr0
-/* 801DE214 001D9E74 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 801DE218 001D9E78 7C 7F 1B 78 */ mr r31, r3
-/* 801DE21C 001D9E7C 80 8D A4 C8 */ lwz r4, lbl_8063F788-_SDA_BASE_(r13)
-/* 801DE220 001D9E80 88 04 00 7A */ lbz r0, 0x7a(r4)
-/* 801DE224 001D9E84 2C 00 00 00 */ cmpwi r0, 0
-/* 801DE228 001D9E88 41 82 00 28 */ beq lbl_801DE250
-/* 801DE22C 001D9E8C 80 83 01 04 */ lwz r4, 0x104(r3)
-/* 801DE230 001D9E90 54 80 05 EF */ rlwinm. r0, r4, 0, 0x17, 0x17
-/* 801DE234 001D9E94 41 82 00 1C */ beq lbl_801DE250
-/* 801DE238 001D9E98 54 80 07 7B */ rlwinm. r0, r4, 0, 0x1d, 0x1d
-/* 801DE23C 001D9E9C 40 82 00 0C */ bne lbl_801DE248
-/* 801DE240 001D9EA0 60 80 00 0C */ ori r0, r4, 0xc
-/* 801DE244 001D9EA4 90 03 01 04 */ stw r0, 0x104(r3)
-lbl_801DE248:
-/* 801DE248 001D9EA8 C3 C2 96 18 */ lfs f30, lbl_80641C18-_SDA2_BASE_(r2)
-/* 801DE24C 001D9EAC 48 00 00 20 */ b lbl_801DE26C
-lbl_801DE250:
-/* 801DE250 001D9EB0 80 83 01 04 */ lwz r4, 0x104(r3)
-/* 801DE254 001D9EB4 54 80 07 7B */ rlwinm. r0, r4, 0, 0x1d, 0x1d
-/* 801DE258 001D9EB8 41 82 00 10 */ beq lbl_801DE268
-/* 801DE25C 001D9EBC 60 80 00 08 */ ori r0, r4, 8
-/* 801DE260 001D9EC0 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
-/* 801DE264 001D9EC4 90 03 01 04 */ stw r0, 0x104(r3)
-lbl_801DE268:
-/* 801DE268 001D9EC8 C3 C2 96 00 */ lfs f30, lbl_80641C00-_SDA2_BASE_(r2)
-lbl_801DE26C:
-/* 801DE26C 001D9ECC 80 83 01 04 */ lwz r4, 0x104(r3)
-/* 801DE270 001D9ED0 54 80 07 39 */ rlwinm. r0, r4, 0, 0x1c, 0x1c
-/* 801DE274 001D9ED4 41 82 02 8C */ beq lbl_801DE500
-/* 801DE278 001D9ED8 54 80 07 BE */ clrlwi r0, r4, 0x1e
-/* 801DE27C 001D9EDC C3 E3 01 78 */ lfs f31, 0x178(r3)
-/* 801DE280 001D9EE0 2C 00 00 02 */ cmpwi r0, 2
-/* 801DE284 001D9EE4 41 82 00 18 */ beq lbl_801DE29C
-/* 801DE288 001D9EE8 40 80 00 08 */ bge lbl_801DE290
-/* 801DE28C 001D9EEC 48 00 01 A0 */ b lbl_801DE42C
-lbl_801DE290:
-/* 801DE290 001D9EF0 2C 00 00 04 */ cmpwi r0, 4
-/* 801DE294 001D9EF4 40 80 01 98 */ bge lbl_801DE42C
-/* 801DE298 001D9EF8 48 00 00 CC */ b lbl_801DE364
-lbl_801DE29C:
-/* 801DE29C 001D9EFC C0 A2 96 00 */ lfs f5, lbl_80641C00-_SDA2_BASE_(r2)
-/* 801DE2A0 001D9F00 C0 83 01 74 */ lfs f4, 0x174(r3)
-/* 801DE2A4 001D9F04 C0 63 01 70 */ lfs f3, 0x170(r3)
-/* 801DE2A8 001D9F08 EC 45 F0 28 */ fsubs f2, f5, f30
-/* 801DE2AC 001D9F0C C0 02 96 1C */ lfs f0, lbl_80641C1C-_SDA2_BASE_(r2)
-/* 801DE2B0 001D9F10 FC 1F 28 40 */ fcmpo cr0, f31, f5
-/* 801DE2B4 001D9F14 EC 24 18 28 */ fsubs f1, f4, f3
-/* 801DE2B8 001D9F18 EC 22 00 72 */ fmuls f1, f2, f1
-/* 801DE2BC 001D9F1C ED 00 00 72 */ fmuls f8, f0, f1
-/* 801DE2C0 001D9F20 40 81 00 3C */ ble lbl_801DE2FC
-/* 801DE2C4 001D9F24 EC E5 F8 24 */ fdivs f7, f5, f31
-/* 801DE2C8 001D9F28 C0 23 01 68 */ lfs f1, 0x168(r3)
-/* 801DE2CC 001D9F2C C0 43 01 6C */ lfs f2, 0x16c(r3)
-/* 801DE2D0 001D9F30 C0 A3 01 7C */ lfs f5, 0x17c(r3)
-/* 801DE2D4 001D9F34 C0 C3 01 80 */ lfs f6, 0x180(r3)
-/* 801DE2D8 001D9F38 38 63 01 0C */ addi r3, r3, 0x10c
-/* 801DE2DC 001D9F3C EC 63 07 B2 */ fmuls f3, f3, f30
-/* 801DE2E0 001D9F40 EC 04 07 B2 */ fmuls f0, f4, f30
-/* 801DE2E4 001D9F44 EC 21 01 F2 */ fmuls f1, f1, f7
-/* 801DE2E8 001D9F48 EC 42 01 F2 */ fmuls f2, f2, f7
-/* 801DE2EC 001D9F4C EC 68 18 2A */ fadds f3, f8, f3
-/* 801DE2F0 001D9F50 EC 88 00 2A */ fadds f4, f8, f0
-/* 801DE2F4 001D9F54 48 04 53 A5 */ bl func_80223698
-/* 801DE2F8 001D9F58 48 00 00 30 */ b lbl_801DE328
-lbl_801DE2FC:
-/* 801DE2FC 001D9F5C EF FF 07 B2 */ fmuls f31, f31, f30
-/* 801DE300 001D9F60 C0 23 01 68 */ lfs f1, 0x168(r3)
-/* 801DE304 001D9F64 C0 43 01 6C */ lfs f2, 0x16c(r3)
-/* 801DE308 001D9F68 C0 A3 01 7C */ lfs f5, 0x17c(r3)
-/* 801DE30C 001D9F6C EC 63 07 F2 */ fmuls f3, f3, f31
-/* 801DE310 001D9F70 C0 C3 01 80 */ lfs f6, 0x180(r3)
-/* 801DE314 001D9F74 EC 04 07 F2 */ fmuls f0, f4, f31
-/* 801DE318 001D9F78 38 63 01 0C */ addi r3, r3, 0x10c
-/* 801DE31C 001D9F7C EC 68 18 2A */ fadds f3, f8, f3
-/* 801DE320 001D9F80 EC 88 00 2A */ fadds f4, f8, f0
-/* 801DE324 001D9F84 48 04 53 75 */ bl func_80223698
-lbl_801DE328:
-/* 801DE328 001D9F88 C0 C2 96 00 */ lfs f6, lbl_80641C00-_SDA2_BASE_(r2)
-/* 801DE32C 001D9F8C C0 BF 01 0C */ lfs f5, 0x10c(r31)
-/* 801DE330 001D9F90 C0 9F 01 18 */ lfs f4, 0x118(r31)
-/* 801DE334 001D9F94 C0 7F 01 20 */ lfs f3, 0x120(r31)
-/* 801DE338 001D9F98 C0 5F 01 28 */ lfs f2, 0x128(r31)
-/* 801DE33C 001D9F9C C0 3F 01 34 */ lfs f1, 0x134(r31)
-/* 801DE340 001D9FA0 C0 1F 01 38 */ lfs f0, 0x138(r31)
-/* 801DE344 001D9FA4 D0 DF 01 4C */ stfs f6, 0x14c(r31)
-/* 801DE348 001D9FA8 D0 BF 01 50 */ stfs f5, 0x150(r31)
-/* 801DE34C 001D9FAC D0 9F 01 54 */ stfs f4, 0x154(r31)
-/* 801DE350 001D9FB0 D0 7F 01 58 */ stfs f3, 0x158(r31)
-/* 801DE354 001D9FB4 D0 5F 01 5C */ stfs f2, 0x15c(r31)
-/* 801DE358 001D9FB8 D0 3F 01 60 */ stfs f1, 0x160(r31)
-/* 801DE35C 001D9FBC D0 1F 01 64 */ stfs f0, 0x164(r31)
-/* 801DE360 001D9FC0 48 00 01 94 */ b lbl_801DE4F4
-lbl_801DE364:
-/* 801DE364 001D9FC4 C0 A2 96 00 */ lfs f5, lbl_80641C00-_SDA2_BASE_(r2)
-/* 801DE368 001D9FC8 C0 83 01 74 */ lfs f4, 0x174(r3)
-/* 801DE36C 001D9FCC C0 63 01 70 */ lfs f3, 0x170(r3)
-/* 801DE370 001D9FD0 EC 45 F0 28 */ fsubs f2, f5, f30
-/* 801DE374 001D9FD4 C0 02 96 1C */ lfs f0, lbl_80641C1C-_SDA2_BASE_(r2)
-/* 801DE378 001D9FD8 FC 1F 28 40 */ fcmpo cr0, f31, f5
-/* 801DE37C 001D9FDC EC 24 18 28 */ fsubs f1, f4, f3
-/* 801DE380 001D9FE0 EC 22 00 72 */ fmuls f1, f2, f1
-/* 801DE384 001D9FE4 ED 00 00 72 */ fmuls f8, f0, f1
-/* 801DE388 001D9FE8 40 81 00 3C */ ble lbl_801DE3C4
-/* 801DE38C 001D9FEC EC E5 F8 24 */ fdivs f7, f5, f31
-/* 801DE390 001D9FF0 C0 23 01 68 */ lfs f1, 0x168(r3)
-/* 801DE394 001D9FF4 C0 43 01 6C */ lfs f2, 0x16c(r3)
-/* 801DE398 001D9FF8 C0 A3 01 7C */ lfs f5, 0x17c(r3)
-/* 801DE39C 001D9FFC C0 C3 01 80 */ lfs f6, 0x180(r3)
-/* 801DE3A0 001DA000 38 63 01 0C */ addi r3, r3, 0x10c
-/* 801DE3A4 001DA004 EC 63 07 B2 */ fmuls f3, f3, f30
-/* 801DE3A8 001DA008 EC 04 07 B2 */ fmuls f0, f4, f30
-/* 801DE3AC 001DA00C EC 21 01 F2 */ fmuls f1, f1, f7
-/* 801DE3B0 001DA010 EC 42 01 F2 */ fmuls f2, f2, f7
-/* 801DE3B4 001DA014 EC 68 18 2A */ fadds f3, f8, f3
-/* 801DE3B8 001DA018 EC 88 00 2A */ fadds f4, f8, f0
-/* 801DE3BC 001DA01C 48 04 52 D9 */ bl func_80223694
-/* 801DE3C0 001DA020 48 00 00 30 */ b lbl_801DE3F0
-lbl_801DE3C4:
-/* 801DE3C4 001DA024 EF FF 07 B2 */ fmuls f31, f31, f30
-/* 801DE3C8 001DA028 C0 23 01 68 */ lfs f1, 0x168(r3)
-/* 801DE3CC 001DA02C C0 43 01 6C */ lfs f2, 0x16c(r3)
-/* 801DE3D0 001DA030 C0 A3 01 7C */ lfs f5, 0x17c(r3)
-/* 801DE3D4 001DA034 EC 63 07 F2 */ fmuls f3, f3, f31
-/* 801DE3D8 001DA038 C0 C3 01 80 */ lfs f6, 0x180(r3)
-/* 801DE3DC 001DA03C EC 04 07 F2 */ fmuls f0, f4, f31
-/* 801DE3E0 001DA040 38 63 01 0C */ addi r3, r3, 0x10c
-/* 801DE3E4 001DA044 EC 68 18 2A */ fadds f3, f8, f3
-/* 801DE3E8 001DA048 EC 88 00 2A */ fadds f4, f8, f0
-/* 801DE3EC 001DA04C 48 04 52 A9 */ bl func_80223694
-lbl_801DE3F0:
-/* 801DE3F0 001DA050 C0 C2 96 10 */ lfs f6, lbl_80641C10-_SDA2_BASE_(r2)
-/* 801DE3F4 001DA054 C0 BF 01 0C */ lfs f5, 0x10c(r31)
-/* 801DE3F8 001DA058 C0 9F 01 14 */ lfs f4, 0x114(r31)
-/* 801DE3FC 001DA05C C0 7F 01 20 */ lfs f3, 0x120(r31)
-/* 801DE400 001DA060 C0 5F 01 24 */ lfs f2, 0x124(r31)
-/* 801DE404 001DA064 C0 3F 01 34 */ lfs f1, 0x134(r31)
-/* 801DE408 001DA068 C0 1F 01 38 */ lfs f0, 0x138(r31)
-/* 801DE40C 001DA06C D0 DF 01 4C */ stfs f6, 0x14c(r31)
-/* 801DE410 001DA070 D0 BF 01 50 */ stfs f5, 0x150(r31)
-/* 801DE414 001DA074 D0 9F 01 54 */ stfs f4, 0x154(r31)
-/* 801DE418 001DA078 D0 7F 01 58 */ stfs f3, 0x158(r31)
-/* 801DE41C 001DA07C D0 5F 01 5C */ stfs f2, 0x15c(r31)
-/* 801DE420 001DA080 D0 3F 01 60 */ stfs f1, 0x160(r31)
-/* 801DE424 001DA084 D0 1F 01 64 */ stfs f0, 0x164(r31)
-/* 801DE428 001DA088 48 00 00 CC */ b lbl_801DE4F4
-lbl_801DE42C:
-/* 801DE42C 001DA08C 54 80 06 31 */ rlwinm. r0, r4, 0, 0x18, 0x18
-/* 801DE430 001DA090 41 82 00 6C */ beq lbl_801DE49C
-/* 801DE434 001DA094 C0 02 96 00 */ lfs f0, lbl_80641C00-_SDA2_BASE_(r2)
-/* 801DE438 001DA098 FC 1F 00 40 */ fcmpo cr0, f31, f0
-/* 801DE43C 001DA09C 40 81 00 60 */ ble lbl_801DE49C
-/* 801DE440 001DA0A0 C0 42 96 1C */ lfs f2, lbl_80641C1C-_SDA2_BASE_(r2)
-/* 801DE444 001DA0A4 C0 23 01 68 */ lfs f1, 0x168(r3)
-/* 801DE448 001DA0A8 C0 02 96 20 */ lfs f0, lbl_80641C20-_SDA2_BASE_(r2)
-/* 801DE44C 001DA0AC EC 22 00 72 */ fmuls f1, f2, f1
-/* 801DE450 001DA0B0 EC 20 00 72 */ fmuls f1, f0, f1
-/* 801DE454 001DA0B4 4B FF 61 09 */ bl tan
-/* 801DE458 001DA0B8 FC 00 08 18 */ frsp f0, f1
-/* 801DE45C 001DA0BC C8 42 96 28 */ lfd f2, lbl_80641C28-_SDA2_BASE_(r2)
-/* 801DE460 001DA0C0 EC 20 F8 24 */ fdivs f1, f0, f31
-/* 801DE464 001DA0C4 4B FF 61 79 */ bl atan2
-/* 801DE468 001DA0C8 FC 60 08 18 */ frsp f3, f1
-/* 801DE46C 001DA0CC C0 42 96 30 */ lfs f2, lbl_80641C30-_SDA2_BASE_(r2)
-/* 801DE470 001DA0D0 EF FF 07 B2 */ fmuls f31, f31, f30
-/* 801DE474 001DA0D4 C0 22 96 34 */ lfs f1, lbl_80641C34-_SDA2_BASE_(r2)
-/* 801DE478 001DA0D8 C0 1F 01 6C */ lfs f0, 0x16c(r31)
-/* 801DE47C 001DA0DC 38 7F 01 0C */ addi r3, r31, 0x10c
-/* 801DE480 001DA0E0 EC A2 00 F2 */ fmuls f5, f2, f3
-/* 801DE484 001DA0E4 C0 7F 01 7C */ lfs f3, 0x17c(r31)
-/* 801DE488 001DA0E8 EC 40 07 F2 */ fmuls f2, f0, f31
-/* 801DE48C 001DA0EC C0 9F 01 80 */ lfs f4, 0x180(r31)
-/* 801DE490 001DA0F0 EC 21 01 72 */ fmuls f1, f1, f5
-/* 801DE494 001DA0F4 48 04 52 09 */ bl func_8022369C
-/* 801DE498 001DA0F8 48 00 00 24 */ b lbl_801DE4BC
-lbl_801DE49C:
-/* 801DE49C 001DA0FC EF FF 07 B2 */ fmuls f31, f31, f30
-/* 801DE4A0 001DA100 C0 03 01 6C */ lfs f0, 0x16c(r3)
-/* 801DE4A4 001DA104 C0 23 01 68 */ lfs f1, 0x168(r3)
-/* 801DE4A8 001DA108 C0 63 01 7C */ lfs f3, 0x17c(r3)
-/* 801DE4AC 001DA10C EC 40 07 F2 */ fmuls f2, f0, f31
-/* 801DE4B0 001DA110 C0 83 01 80 */ lfs f4, 0x180(r3)
-/* 801DE4B4 001DA114 38 63 01 0C */ addi r3, r3, 0x10c
-/* 801DE4B8 001DA118 48 04 51 E5 */ bl func_8022369C
-lbl_801DE4BC:
-/* 801DE4BC 001DA11C C0 C2 96 10 */ lfs f6, lbl_80641C10-_SDA2_BASE_(r2)
-/* 801DE4C0 001DA120 C0 BF 01 0C */ lfs f5, 0x10c(r31)
-/* 801DE4C4 001DA124 C0 9F 01 14 */ lfs f4, 0x114(r31)
-/* 801DE4C8 001DA128 C0 7F 01 20 */ lfs f3, 0x120(r31)
-/* 801DE4CC 001DA12C C0 5F 01 24 */ lfs f2, 0x124(r31)
-/* 801DE4D0 001DA130 C0 3F 01 34 */ lfs f1, 0x134(r31)
-/* 801DE4D4 001DA134 C0 1F 01 38 */ lfs f0, 0x138(r31)
-/* 801DE4D8 001DA138 D0 DF 01 4C */ stfs f6, 0x14c(r31)
-/* 801DE4DC 001DA13C D0 BF 01 50 */ stfs f5, 0x150(r31)
-/* 801DE4E0 001DA140 D0 9F 01 54 */ stfs f4, 0x154(r31)
-/* 801DE4E4 001DA144 D0 7F 01 58 */ stfs f3, 0x158(r31)
-/* 801DE4E8 001DA148 D0 5F 01 5C */ stfs f2, 0x15c(r31)
-/* 801DE4EC 001DA14C D0 3F 01 60 */ stfs f1, 0x160(r31)
-/* 801DE4F0 001DA150 D0 1F 01 64 */ stfs f0, 0x164(r31)
-lbl_801DE4F4:
-/* 801DE4F4 001DA154 80 1F 01 04 */ lwz r0, 0x104(r31)
-/* 801DE4F8 001DA158 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
-/* 801DE4FC 001DA15C 90 1F 01 04 */ stw r0, 0x104(r31)
-lbl_801DE500:
-/* 801DE500 001DA160 E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0
-/* 801DE504 001DA164 CB E1 00 20 */ lfd f31, 0x20(r1)
-/* 801DE508 001DA168 E3 C1 00 18 */ psq_l f30, 24(r1), 0, qr0
-/* 801DE50C 001DA16C CB C1 00 10 */ lfd f30, 0x10(r1)
-/* 801DE510 001DA170 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 801DE514 001DA174 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 801DE518 001DA178 7C 08 03 A6 */ mtlr r0
-/* 801DE51C 001DA17C 38 21 00 30 */ addi r1, r1, 0x30
-/* 801DE520 001DA180 4E 80 00 20 */ blr
-
-.global func_801DE524
-func_801DE524:
-/* 801DE524 001DA184 94 21 FF B0 */ stwu r1, -0x50(r1)
-/* 801DE528 001DA188 7C 08 02 A6 */ mflr r0
-/* 801DE52C 001DA18C 90 01 00 54 */ stw r0, 0x54(r1)
-/* 801DE530 001DA190 93 E1 00 4C */ stw r31, 0x4c(r1)
-/* 801DE534 001DA194 7C 7F 1B 78 */ mr r31, r3
-/* 801DE538 001DA198 80 03 01 04 */ lwz r0, 0x104(r3)
-/* 801DE53C 001DA19C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
-/* 801DE540 001DA1A0 41 82 00 A4 */ beq lbl_801DE5E4
-/* 801DE544 001DA1A4 38 63 01 C4 */ addi r3, r3, 0x1c4
-/* 801DE548 001DA1A8 38 9F 01 AC */ addi r4, r31, 0x1ac
-/* 801DE54C 001DA1AC 38 A1 00 20 */ addi r5, r1, 0x20
-/* 801DE550 001DA1B0 48 09 E7 99 */ bl PSVECSubtract
-/* 801DE554 001DA1B4 C0 41 00 20 */ lfs f2, 0x20(r1)
-/* 801DE558 001DA1B8 38 61 00 38 */ addi r3, r1, 0x38
-/* 801DE55C 001DA1BC C0 21 00 24 */ lfs f1, 0x24(r1)
-/* 801DE560 001DA1C0 7C 64 1B 78 */ mr r4, r3
-/* 801DE564 001DA1C4 C0 01 00 28 */ lfs f0, 0x28(r1)
-/* 801DE568 001DA1C8 D0 41 00 38 */ stfs f2, 0x38(r1)
-/* 801DE56C 001DA1CC D0 21 00 3C */ stfs f1, 0x3c(r1)
-/* 801DE570 001DA1D0 D0 01 00 40 */ stfs f0, 0x40(r1)
-/* 801DE574 001DA1D4 48 09 E7 B5 */ bl PSVECNormalize
-/* 801DE578 001DA1D8 38 61 00 38 */ addi r3, r1, 0x38
-/* 801DE57C 001DA1DC 38 9F 01 B8 */ addi r4, r31, 0x1b8
-/* 801DE580 001DA1E0 38 A1 00 14 */ addi r5, r1, 0x14
-/* 801DE584 001DA1E4 48 09 E8 65 */ bl PSVECCrossProduct
-/* 801DE588 001DA1E8 C0 41 00 14 */ lfs f2, 0x14(r1)
-/* 801DE58C 001DA1EC 38 61 00 2C */ addi r3, r1, 0x2c
-/* 801DE590 001DA1F0 C0 21 00 18 */ lfs f1, 0x18(r1)
-/* 801DE594 001DA1F4 7C 64 1B 78 */ mr r4, r3
-/* 801DE598 001DA1F8 C0 01 00 1C */ lfs f0, 0x1c(r1)
-/* 801DE59C 001DA1FC D0 41 00 2C */ stfs f2, 0x2c(r1)
-/* 801DE5A0 001DA200 D0 21 00 30 */ stfs f1, 0x30(r1)
-/* 801DE5A4 001DA204 D0 01 00 34 */ stfs f0, 0x34(r1)
-/* 801DE5A8 001DA208 48 09 E7 81 */ bl PSVECNormalize
-/* 801DE5AC 001DA20C 38 61 00 2C */ addi r3, r1, 0x2c
-/* 801DE5B0 001DA210 38 81 00 38 */ addi r4, r1, 0x38
-/* 801DE5B4 001DA214 38 A1 00 08 */ addi r5, r1, 8
-/* 801DE5B8 001DA218 48 09 E8 31 */ bl PSVECCrossProduct
-/* 801DE5BC 001DA21C C0 01 00 08 */ lfs f0, 8(r1)
-/* 801DE5C0 001DA220 80 1F 01 04 */ lwz r0, 0x104(r31)
-/* 801DE5C4 001DA224 D0 1F 01 B8 */ stfs f0, 0x1b8(r31)
-/* 801DE5C8 001DA228 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
-/* 801DE5CC 001DA22C C0 01 00 0C */ lfs f0, 0xc(r1)
-/* 801DE5D0 001DA230 60 00 00 20 */ ori r0, r0, 0x20
-/* 801DE5D4 001DA234 D0 1F 01 BC */ stfs f0, 0x1bc(r31)
-/* 801DE5D8 001DA238 C0 01 00 10 */ lfs f0, 0x10(r1)
-/* 801DE5DC 001DA23C D0 1F 01 C0 */ stfs f0, 0x1c0(r31)
-/* 801DE5E0 001DA240 90 1F 01 04 */ stw r0, 0x104(r31)
-lbl_801DE5E4:
-/* 801DE5E4 001DA244 80 01 00 54 */ lwz r0, 0x54(r1)
-/* 801DE5E8 001DA248 83 E1 00 4C */ lwz r31, 0x4c(r1)
-/* 801DE5EC 001DA24C 7C 08 03 A6 */ mtlr r0
-/* 801DE5F0 001DA250 38 21 00 50 */ addi r1, r1, 0x50
-/* 801DE5F4 001DA254 4E 80 00 20 */ blr
-
-# GScamera virtual
-func_801DE5F8:
-/* 801DE5F8 001DA258 94 21 FE B0 */ stwu r1, -0x150(r1)
-/* 801DE5FC 001DA25C 7C 08 02 A6 */ mflr r0
-/* 801DE600 001DA260 90 01 01 54 */ stw r0, 0x154(r1)
-/* 801DE604 001DA264 93 E1 01 4C */ stw r31, 0x14c(r1)
-/* 801DE608 001DA268 7C 7F 1B 78 */ mr r31, r3
-/* 801DE60C 001DA26C 93 C1 01 48 */ stw r30, 0x148(r1)
-/* 801DE610 001DA270 80 83 01 D0 */ lwz r4, 0x1d0(r3)
-/* 801DE614 001DA274 A0 03 00 10 */ lhz r0, 0x10(r3)
-/* 801DE618 001DA278 2C 04 00 00 */ cmpwi r4, 0
-/* 801DE61C 001DA27C 54 1E 07 FE */ clrlwi r30, r0, 0x1f
-/* 801DE620 001DA280 41 82 01 6C */ beq lbl_801DE78C
-/* 801DE624 001DA284 A0 04 00 10 */ lhz r0, 0x10(r4)
-/* 801DE628 001DA288 54 00 07 FE */ clrlwi r0, r0, 0x1f
-/* 801DE62C 001DA28C 2C 00 00 01 */ cmpwi r0, 1
-/* 801DE630 001DA290 40 82 00 18 */ bne lbl_801DE648
-/* 801DE634 001DA294 81 84 01 00 */ lwz r12, 0x100(r4)
-/* 801DE638 001DA298 7C 83 23 78 */ mr r3, r4
-/* 801DE63C 001DA29C 81 8C 00 14 */ lwz r12, 0x14(r12)
-/* 801DE640 001DA2A0 7D 89 03 A6 */ mtctr r12
-/* 801DE644 001DA2A4 4E 80 04 21 */ bctrl
-lbl_801DE648:
-/* 801DE648 001DA2A8 80 DF 01 D0 */ lwz r6, 0x1d0(r31)
-/* 801DE64C 001DA2AC 38 7F 01 C4 */ addi r3, r31, 0x1c4
-/* 801DE650 001DA2B0 38 9F 01 AC */ addi r4, r31, 0x1ac
-/* 801DE654 001DA2B4 38 A1 00 80 */ addi r5, r1, 0x80
-/* 801DE658 001DA2B8 C0 46 00 DC */ lfs f2, 0xdc(r6)
-/* 801DE65C 001DA2BC C0 26 00 EC */ lfs f1, 0xec(r6)
-/* 801DE660 001DA2C0 C0 06 00 FC */ lfs f0, 0xfc(r6)
-/* 801DE664 001DA2C4 D0 41 00 8C */ stfs f2, 0x8c(r1)
-/* 801DE668 001DA2C8 D0 21 00 90 */ stfs f1, 0x90(r1)
-/* 801DE66C 001DA2CC D0 01 00 94 */ stfs f0, 0x94(r1)
-/* 801DE670 001DA2D0 D0 5F 01 C4 */ stfs f2, 0x1c4(r31)
-/* 801DE674 001DA2D4 D0 3F 01 C8 */ stfs f1, 0x1c8(r31)
-/* 801DE678 001DA2D8 D0 1F 01 CC */ stfs f0, 0x1cc(r31)
-/* 801DE67C 001DA2DC 48 09 E6 6D */ bl PSVECSubtract
-/* 801DE680 001DA2E0 C0 41 00 80 */ lfs f2, 0x80(r1)
-/* 801DE684 001DA2E4 38 61 00 A4 */ addi r3, r1, 0xa4
-/* 801DE688 001DA2E8 C0 21 00 84 */ lfs f1, 0x84(r1)
-/* 801DE68C 001DA2EC 7C 64 1B 78 */ mr r4, r3
-/* 801DE690 001DA2F0 C0 01 00 88 */ lfs f0, 0x88(r1)
-/* 801DE694 001DA2F4 D0 41 00 A4 */ stfs f2, 0xa4(r1)
-/* 801DE698 001DA2F8 D0 21 00 A8 */ stfs f1, 0xa8(r1)
-/* 801DE69C 001DA2FC D0 01 00 AC */ stfs f0, 0xac(r1)
-/* 801DE6A0 001DA300 48 09 E6 89 */ bl PSVECNormalize
-/* 801DE6A4 001DA304 3C 80 80 49 */ lis r4, lbl_80493614@ha
-/* 801DE6A8 001DA308 38 61 00 A4 */ addi r3, r1, 0xa4
-/* 801DE6AC 001DA30C 38 84 36 14 */ addi r4, r4, lbl_80493614@l
-/* 801DE6B0 001DA310 38 A1 00 74 */ addi r5, r1, 0x74
-/* 801DE6B4 001DA314 48 09 E7 35 */ bl PSVECCrossProduct
-/* 801DE6B8 001DA318 C0 81 00 74 */ lfs f4, 0x74(r1)
-/* 801DE6BC 001DA31C C0 22 96 38 */ lfs f1, lbl_80641C38-_SDA2_BASE_(r2)
-/* 801DE6C0 001DA320 C0 61 00 78 */ lfs f3, 0x78(r1)
-/* 801DE6C4 001DA324 C0 41 00 7C */ lfs f2, 0x7c(r1)
-/* 801DE6C8 001DA328 FC 04 08 40 */ fcmpo cr0, f4, f1
-/* 801DE6CC 001DA32C D0 81 00 98 */ stfs f4, 0x98(r1)
-/* 801DE6D0 001DA330 D0 61 00 9C */ stfs f3, 0x9c(r1)
-/* 801DE6D4 001DA334 D0 41 00 A0 */ stfs f2, 0xa0(r1)
-/* 801DE6D8 001DA338 40 80 00 30 */ bge lbl_801DE708
-/* 801DE6DC 001DA33C C0 02 96 3C */ lfs f0, lbl_80641C3C-_SDA2_BASE_(r2)
-/* 801DE6E0 001DA340 FC 04 00 40 */ fcmpo cr0, f4, f0
-/* 801DE6E4 001DA344 40 81 00 24 */ ble lbl_801DE708
-/* 801DE6E8 001DA348 FC 03 08 40 */ fcmpo cr0, f3, f1
-/* 801DE6EC 001DA34C 40 80 00 1C */ bge lbl_801DE708
-/* 801DE6F0 001DA350 FC 03 00 40 */ fcmpo cr0, f3, f0
-/* 801DE6F4 001DA354 40 81 00 14 */ ble lbl_801DE708
-/* 801DE6F8 001DA358 FC 02 08 40 */ fcmpo cr0, f2, f1
-/* 801DE6FC 001DA35C 40 80 00 0C */ bge lbl_801DE708
-/* 801DE700 001DA360 FC 02 00 40 */ fcmpo cr0, f2, f0
-/* 801DE704 001DA364 41 81 00 0C */ bgt lbl_801DE710
-lbl_801DE708:
-/* 801DE708 001DA368 38 00 00 00 */ li r0, 0
-/* 801DE70C 001DA36C 48 00 00 08 */ b lbl_801DE714
-lbl_801DE710:
-/* 801DE710 001DA370 38 00 00 01 */ li r0, 1
-lbl_801DE714:
-/* 801DE714 001DA374 2C 00 00 00 */ cmpwi r0, 0
-/* 801DE718 001DA378 41 82 00 30 */ beq lbl_801DE748
-/* 801DE71C 001DA37C 3C 80 80 49 */ lis r4, lbl_80493620@ha
-/* 801DE720 001DA380 38 61 00 A4 */ addi r3, r1, 0xa4
-/* 801DE724 001DA384 38 84 36 20 */ addi r4, r4, lbl_80493620@l
-/* 801DE728 001DA388 38 A1 00 68 */ addi r5, r1, 0x68
-/* 801DE72C 001DA38C 48 09 E6 BD */ bl PSVECCrossProduct
-/* 801DE730 001DA390 C0 41 00 68 */ lfs f2, 0x68(r1)
-/* 801DE734 001DA394 C0 21 00 6C */ lfs f1, 0x6c(r1)
-/* 801DE738 001DA398 C0 01 00 70 */ lfs f0, 0x70(r1)
-/* 801DE73C 001DA39C D0 41 00 98 */ stfs f2, 0x98(r1)
-/* 801DE740 001DA3A0 D0 21 00 9C */ stfs f1, 0x9c(r1)
-/* 801DE744 001DA3A4 D0 01 00 A0 */ stfs f0, 0xa0(r1)
-lbl_801DE748:
-/* 801DE748 001DA3A8 38 61 00 98 */ addi r3, r1, 0x98
-/* 801DE74C 001DA3AC 7C 64 1B 78 */ mr r4, r3
-/* 801DE750 001DA3B0 48 09 E5 D9 */ bl PSVECNormalize
-/* 801DE754 001DA3B4 38 61 00 98 */ addi r3, r1, 0x98
-/* 801DE758 001DA3B8 38 81 00 A4 */ addi r4, r1, 0xa4
-/* 801DE75C 001DA3BC 38 A1 00 5C */ addi r5, r1, 0x5c
-/* 801DE760 001DA3C0 48 09 E6 89 */ bl PSVECCrossProduct
-/* 801DE764 001DA3C4 C0 01 00 5C */ lfs f0, 0x5c(r1)
-/* 801DE768 001DA3C8 80 1F 01 04 */ lwz r0, 0x104(r31)
-/* 801DE76C 001DA3CC D0 1F 01 B8 */ stfs f0, 0x1b8(r31)
-/* 801DE770 001DA3D0 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
-/* 801DE774 001DA3D4 C0 01 00 60 */ lfs f0, 0x60(r1)
-/* 801DE778 001DA3D8 60 00 00 20 */ ori r0, r0, 0x20
-/* 801DE77C 001DA3DC D0 1F 01 BC */ stfs f0, 0x1bc(r31)
-/* 801DE780 001DA3E0 C0 01 00 64 */ lfs f0, 0x64(r1)
-/* 801DE784 001DA3E4 D0 1F 01 C0 */ stfs f0, 0x1c0(r31)
-/* 801DE788 001DA3E8 90 1F 01 04 */ stw r0, 0x104(r31)
-lbl_801DE78C:
-/* 801DE78C 001DA3EC 80 1F 01 04 */ lwz r0, 0x104(r31)
-/* 801DE790 001DA3F0 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
-/* 801DE794 001DA3F4 41 82 00 0C */ beq lbl_801DE7A0
-/* 801DE798 001DA3F8 7F E3 FB 78 */ mr r3, r31
-/* 801DE79C 001DA3FC 4B FF FD 89 */ bl func_801DE524
-lbl_801DE7A0:
-/* 801DE7A0 001DA400 80 1F 01 04 */ lwz r0, 0x104(r31)
-/* 801DE7A4 001DA404 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
-/* 801DE7A8 001DA408 40 82 00 0C */ bne lbl_801DE7B4
-/* 801DE7AC 001DA40C 2C 1E 00 00 */ cmpwi r30, 0
-/* 801DE7B0 001DA410 41 82 02 74 */ beq lbl_801DEA24
-lbl_801DE7B4:
-/* 801DE7B4 001DA414 38 7F 00 D0 */ addi r3, r31, 0xd0
-/* 801DE7B8 001DA418 38 81 01 10 */ addi r4, r1, 0x110
-/* 801DE7BC 001DA41C 48 09 D8 ED */ bl PSMTXInverse
-/* 801DE7C0 001DA420 38 61 01 10 */ addi r3, r1, 0x110
-/* 801DE7C4 001DA424 38 9F 01 AC */ addi r4, r31, 0x1ac
-/* 801DE7C8 001DA428 38 A1 00 50 */ addi r5, r1, 0x50
-/* 801DE7CC 001DA42C 48 09 E2 31 */ bl PSMTXMultVec
-/* 801DE7D0 001DA430 C0 01 00 50 */ lfs f0, 0x50(r1)
-/* 801DE7D4 001DA434 38 61 01 10 */ addi r3, r1, 0x110
-/* 801DE7D8 001DA438 38 9F 01 B8 */ addi r4, r31, 0x1b8
-/* 801DE7DC 001DA43C 38 A1 00 44 */ addi r5, r1, 0x44
-/* 801DE7E0 001DA440 D0 1F 01 88 */ stfs f0, 0x188(r31)
-/* 801DE7E4 001DA444 C0 01 00 54 */ lfs f0, 0x54(r1)
-/* 801DE7E8 001DA448 D0 1F 01 8C */ stfs f0, 0x18c(r31)
-/* 801DE7EC 001DA44C C0 01 00 58 */ lfs f0, 0x58(r1)
-/* 801DE7F0 001DA450 D0 1F 01 90 */ stfs f0, 0x190(r31)
-/* 801DE7F4 001DA454 48 09 E2 5D */ bl PSMTXMultVecSR
-/* 801DE7F8 001DA458 C0 01 00 44 */ lfs f0, 0x44(r1)
-/* 801DE7FC 001DA45C 38 61 01 10 */ addi r3, r1, 0x110
-/* 801DE800 001DA460 38 9F 01 C4 */ addi r4, r31, 0x1c4
-/* 801DE804 001DA464 38 A1 00 38 */ addi r5, r1, 0x38
-/* 801DE808 001DA468 D0 1F 01 94 */ stfs f0, 0x194(r31)
-/* 801DE80C 001DA46C C0 01 00 48 */ lfs f0, 0x48(r1)
-/* 801DE810 001DA470 D0 1F 01 98 */ stfs f0, 0x198(r31)
-/* 801DE814 001DA474 C0 01 00 4C */ lfs f0, 0x4c(r1)
-/* 801DE818 001DA478 D0 1F 01 9C */ stfs f0, 0x19c(r31)
-/* 801DE81C 001DA47C 48 09 E1 E1 */ bl PSMTXMultVec
-/* 801DE820 001DA480 C0 01 00 38 */ lfs f0, 0x38(r1)
-/* 801DE824 001DA484 2C 1E 00 00 */ cmpwi r30, 0
-/* 801DE828 001DA488 D0 1F 01 A0 */ stfs f0, 0x1a0(r31)
-/* 801DE82C 001DA48C C0 01 00 3C */ lfs f0, 0x3c(r1)
-/* 801DE830 001DA490 D0 1F 01 A4 */ stfs f0, 0x1a4(r31)
-/* 801DE834 001DA494 C0 01 00 40 */ lfs f0, 0x40(r1)
-/* 801DE838 001DA498 D0 1F 01 A8 */ stfs f0, 0x1a8(r31)
-/* 801DE83C 001DA49C 41 82 00 0C */ beq lbl_801DE848
-/* 801DE840 001DA4A0 7F E3 FB 78 */ mr r3, r31
-/* 801DE844 001DA4A4 48 01 4F 4D */ bl func_801F3790
-lbl_801DE848:
-/* 801DE848 001DA4A8 38 7F 00 D0 */ addi r3, r31, 0xd0
-/* 801DE84C 001DA4AC 38 9F 01 88 */ addi r4, r31, 0x188
-/* 801DE850 001DA4B0 38 A1 00 2C */ addi r5, r1, 0x2c
-/* 801DE854 001DA4B4 48 09 E1 A9 */ bl PSMTXMultVec
-/* 801DE858 001DA4B8 C0 01 00 2C */ lfs f0, 0x2c(r1)
-/* 801DE85C 001DA4BC 38 7F 00 D0 */ addi r3, r31, 0xd0
-/* 801DE860 001DA4C0 38 9F 01 94 */ addi r4, r31, 0x194
-/* 801DE864 001DA4C4 38 A1 00 20 */ addi r5, r1, 0x20
-/* 801DE868 001DA4C8 D0 1F 01 AC */ stfs f0, 0x1ac(r31)
-/* 801DE86C 001DA4CC C0 01 00 30 */ lfs f0, 0x30(r1)
-/* 801DE870 001DA4D0 D0 1F 01 B0 */ stfs f0, 0x1b0(r31)
-/* 801DE874 001DA4D4 C0 01 00 34 */ lfs f0, 0x34(r1)
-/* 801DE878 001DA4D8 D0 1F 01 B4 */ stfs f0, 0x1b4(r31)
-/* 801DE87C 001DA4DC 48 09 E1 D5 */ bl PSMTXMultVecSR
-/* 801DE880 001DA4E0 C0 01 00 20 */ lfs f0, 0x20(r1)
-/* 801DE884 001DA4E4 38 7F 00 D0 */ addi r3, r31, 0xd0
-/* 801DE888 001DA4E8 38 9F 01 A0 */ addi r4, r31, 0x1a0
-/* 801DE88C 001DA4EC 38 A1 00 14 */ addi r5, r1, 0x14
-/* 801DE890 001DA4F0 D0 1F 01 B8 */ stfs f0, 0x1b8(r31)
-/* 801DE894 001DA4F4 C0 01 00 24 */ lfs f0, 0x24(r1)
-/* 801DE898 001DA4F8 D0 1F 01 BC */ stfs f0, 0x1bc(r31)
-/* 801DE89C 001DA4FC C0 01 00 28 */ lfs f0, 0x28(r1)
-/* 801DE8A0 001DA500 D0 1F 01 C0 */ stfs f0, 0x1c0(r31)
-/* 801DE8A4 001DA504 48 09 E1 59 */ bl PSMTXMultVec
-/* 801DE8A8 001DA508 C0 21 00 14 */ lfs f1, 0x14(r1)
-/* 801DE8AC 001DA50C C0 1F 01 B8 */ lfs f0, 0x1b8(r31)
-/* 801DE8B0 001DA510 D0 3F 01 C4 */ stfs f1, 0x1c4(r31)
-/* 801DE8B4 001DA514 C0 42 96 38 */ lfs f2, lbl_80641C38-_SDA2_BASE_(r2)
-/* 801DE8B8 001DA518 C0 21 00 18 */ lfs f1, 0x18(r1)
-/* 801DE8BC 001DA51C FC 00 10 40 */ fcmpo cr0, f0, f2
-/* 801DE8C0 001DA520 D0 3F 01 C8 */ stfs f1, 0x1c8(r31)
-/* 801DE8C4 001DA524 C0 21 00 1C */ lfs f1, 0x1c(r1)
-/* 801DE8C8 001DA528 D0 3F 01 CC */ stfs f1, 0x1cc(r31)
-/* 801DE8CC 001DA52C 40 80 00 38 */ bge lbl_801DE904
-/* 801DE8D0 001DA530 C0 22 96 3C */ lfs f1, lbl_80641C3C-_SDA2_BASE_(r2)
-/* 801DE8D4 001DA534 FC 00 08 40 */ fcmpo cr0, f0, f1
-/* 801DE8D8 001DA538 40 81 00 2C */ ble lbl_801DE904
-/* 801DE8DC 001DA53C C0 1F 01 BC */ lfs f0, 0x1bc(r31)
-/* 801DE8E0 001DA540 FC 00 10 40 */ fcmpo cr0, f0, f2
-/* 801DE8E4 001DA544 40 80 00 20 */ bge lbl_801DE904
-/* 801DE8E8 001DA548 FC 00 08 40 */ fcmpo cr0, f0, f1
-/* 801DE8EC 001DA54C 40 81 00 18 */ ble lbl_801DE904
-/* 801DE8F0 001DA550 C0 1F 01 C0 */ lfs f0, 0x1c0(r31)
-/* 801DE8F4 001DA554 FC 00 10 40 */ fcmpo cr0, f0, f2
-/* 801DE8F8 001DA558 40 80 00 0C */ bge lbl_801DE904
-/* 801DE8FC 001DA55C FC 00 08 40 */ fcmpo cr0, f0, f1
-/* 801DE900 001DA560 41 81 00 0C */ bgt lbl_801DE90C
-lbl_801DE904:
-/* 801DE904 001DA564 38 00 00 00 */ li r0, 0
-/* 801DE908 001DA568 48 00 00 08 */ b lbl_801DE910
-lbl_801DE90C:
-/* 801DE90C 001DA56C 38 00 00 01 */ li r0, 1
-lbl_801DE910:
-/* 801DE910 001DA570 2C 00 00 00 */ cmpwi r0, 0
-/* 801DE914 001DA574 41 82 00 24 */ beq lbl_801DE938
-/* 801DE918 001DA578 3C 60 80 49 */ lis r3, lbl_80493614@ha
-/* 801DE91C 001DA57C C0 03 36 14 */ lfs f0, lbl_80493614@l(r3)
-/* 801DE920 001DA580 38 63 36 14 */ addi r3, r3, 0x3614
-/* 801DE924 001DA584 D0 1F 01 B8 */ stfs f0, 0x1b8(r31)
-/* 801DE928 001DA588 C0 03 00 04 */ lfs f0, 4(r3)
-/* 801DE92C 001DA58C D0 1F 01 BC */ stfs f0, 0x1bc(r31)
-/* 801DE930 001DA590 C0 03 00 08 */ lfs f0, 8(r3)
-/* 801DE934 001DA594 D0 1F 01 C0 */ stfs f0, 0x1c0(r31)
-lbl_801DE938:
-/* 801DE938 001DA598 C0 3F 01 AC */ lfs f1, 0x1ac(r31)
-/* 801DE93C 001DA59C C0 1F 01 C4 */ lfs f0, 0x1c4(r31)
-/* 801DE940 001DA5A0 C0 62 96 38 */ lfs f3, lbl_80641C38-_SDA2_BASE_(r2)
-/* 801DE944 001DA5A4 EC 01 00 28 */ fsubs f0, f1, f0
-/* 801DE948 001DA5A8 FC 00 18 40 */ fcmpo cr0, f0, f3
-/* 801DE94C 001DA5AC 40 80 00 48 */ bge lbl_801DE994
-/* 801DE950 001DA5B0 C0 42 96 3C */ lfs f2, lbl_80641C3C-_SDA2_BASE_(r2)
-/* 801DE954 001DA5B4 FC 00 10 40 */ fcmpo cr0, f0, f2
-/* 801DE958 001DA5B8 40 81 00 3C */ ble lbl_801DE994
-/* 801DE95C 001DA5BC C0 3F 01 B0 */ lfs f1, 0x1b0(r31)
-/* 801DE960 001DA5C0 C0 1F 01 C8 */ lfs f0, 0x1c8(r31)
-/* 801DE964 001DA5C4 EC 01 00 28 */ fsubs f0, f1, f0
-/* 801DE968 001DA5C8 FC 00 18 40 */ fcmpo cr0, f0, f3
-/* 801DE96C 001DA5CC 40 80 00 28 */ bge lbl_801DE994
-/* 801DE970 001DA5D0 FC 00 10 40 */ fcmpo cr0, f0, f2
-/* 801DE974 001DA5D4 40 81 00 20 */ ble lbl_801DE994
-/* 801DE978 001DA5D8 C0 3F 01 B4 */ lfs f1, 0x1b4(r31)
-/* 801DE97C 001DA5DC C0 1F 01 CC */ lfs f0, 0x1cc(r31)
-/* 801DE980 001DA5E0 EC 01 00 28 */ fsubs f0, f1, f0
-/* 801DE984 001DA5E4 FC 00 18 40 */ fcmpo cr0, f0, f3
-/* 801DE988 001DA5E8 40 80 00 0C */ bge lbl_801DE994
-/* 801DE98C 001DA5EC FC 00 10 40 */ fcmpo cr0, f0, f2
-/* 801DE990 001DA5F0 41 81 00 0C */ bgt lbl_801DE99C
-lbl_801DE994:
-/* 801DE994 001DA5F4 38 00 00 00 */ li r0, 0
-/* 801DE998 001DA5F8 48 00 00 08 */ b lbl_801DE9A0
-lbl_801DE99C:
-/* 801DE99C 001DA5FC 38 00 00 01 */ li r0, 1
-lbl_801DE9A0:
-/* 801DE9A0 001DA600 2C 00 00 00 */ cmpwi r0, 0
-/* 801DE9A4 001DA604 41 82 00 30 */ beq lbl_801DE9D4
-/* 801DE9A8 001DA608 3C 80 80 49 */ lis r4, lbl_80493620@ha
-/* 801DE9AC 001DA60C 38 7F 01 AC */ addi r3, r31, 0x1ac
-/* 801DE9B0 001DA610 38 84 36 20 */ addi r4, r4, lbl_80493620@l
-/* 801DE9B4 001DA614 38 A1 00 08 */ addi r5, r1, 8
-/* 801DE9B8 001DA618 48 09 E3 0D */ bl PSVECAdd
-/* 801DE9BC 001DA61C C0 01 00 08 */ lfs f0, 8(r1)
-/* 801DE9C0 001DA620 D0 1F 01 C4 */ stfs f0, 0x1c4(r31)
-/* 801DE9C4 001DA624 C0 01 00 0C */ lfs f0, 0xc(r1)
-/* 801DE9C8 001DA628 D0 1F 01 C8 */ stfs f0, 0x1c8(r31)
-/* 801DE9CC 001DA62C C0 01 00 10 */ lfs f0, 0x10(r1)
-/* 801DE9D0 001DA630 D0 1F 01 CC */ stfs f0, 0x1cc(r31)
-lbl_801DE9D4:
-/* 801DE9D4 001DA634 38 7F 01 D4 */ addi r3, r31, 0x1d4
-/* 801DE9D8 001DA638 38 9F 01 AC */ addi r4, r31, 0x1ac
-/* 801DE9DC 001DA63C 38 BF 01 B8 */ addi r5, r31, 0x1b8
-/* 801DE9E0 001DA640 38 DF 01 C4 */ addi r6, r31, 0x1c4
-/* 801DE9E4 001DA644 48 09 DC 81 */ bl C_MTXLookAt
-/* 801DE9E8 001DA648 38 7F 01 D4 */ addi r3, r31, 0x1d4
-/* 801DE9EC 001DA64C 38 81 00 E0 */ addi r4, r1, 0xe0
-/* 801DE9F0 001DA650 48 09 D6 B9 */ bl PSMTXInverse
-/* 801DE9F4 001DA654 38 61 00 E0 */ addi r3, r1, 0xe0
-/* 801DE9F8 001DA658 38 9F 02 04 */ addi r4, r31, 0x204
-/* 801DE9FC 001DA65C 48 09 D5 5D */ bl PSMTXCopy
-/* 801DEA00 001DA660 38 7F 02 04 */ addi r3, r31, 0x204
-/* 801DEA04 001DA664 38 81 00 B0 */ addi r4, r1, 0xb0
-/* 801DEA08 001DA668 48 09 D6 51 */ bl PSMTXTranspose
-/* 801DEA0C 001DA66C 38 61 00 B0 */ addi r3, r1, 0xb0
-/* 801DEA10 001DA670 38 9F 02 34 */ addi r4, r31, 0x234
-/* 801DEA14 001DA674 48 09 D5 45 */ bl PSMTXCopy
-/* 801DEA18 001DA678 80 1F 01 04 */ lwz r0, 0x104(r31)
-/* 801DEA1C 001DA67C 54 00 06 F2 */ rlwinm r0, r0, 0, 0x1b, 0x19
-/* 801DEA20 001DA680 90 1F 01 04 */ stw r0, 0x104(r31)
-lbl_801DEA24:
-/* 801DEA24 001DA684 80 01 01 54 */ lwz r0, 0x154(r1)
-/* 801DEA28 001DA688 83 E1 01 4C */ lwz r31, 0x14c(r1)
-/* 801DEA2C 001DA68C 83 C1 01 48 */ lwz r30, 0x148(r1)
-/* 801DEA30 001DA690 7C 08 03 A6 */ mtlr r0
-/* 801DEA34 001DA694 38 21 01 50 */ addi r1, r1, 0x150
-/* 801DEA38 001DA698 4E 80 00 20 */ blr
-
-.global func_801DEA3C
-func_801DEA3C:
-/* 801DEA3C 001DA69C 94 21 FF 50 */ stwu r1, -0xb0(r1)
-/* 801DEA40 001DA6A0 7C 08 02 A6 */ mflr r0
-/* 801DEA44 001DA6A4 C0 25 00 00 */ lfs f1, 0(r5)
-/* 801DEA48 001DA6A8 C0 05 00 10 */ lfs f0, 0x10(r5)
-/* 801DEA4C 001DA6AC C0 45 00 20 */ lfs f2, 0x20(r5)
-/* 801DEA50 001DA6B0 EC 21 00 72 */ fmuls f1, f1, f1
-/* 801DEA54 001DA6B4 EC 00 00 32 */ fmuls f0, f0, f0
-/* 801DEA58 001DA6B8 90 01 00 B4 */ stw r0, 0xb4(r1)
-/* 801DEA5C 001DA6BC EC 42 00 B2 */ fmuls f2, f2, f2
-/* 801DEA60 001DA6C0 C0 62 96 10 */ lfs f3, lbl_80641C10-_SDA2_BASE_(r2)
-/* 801DEA64 001DA6C4 93 E1 00 AC */ stw r31, 0xac(r1)
-/* 801DEA68 001DA6C8 EC 01 00 2A */ fadds f0, f1, f0
-/* 801DEA6C 001DA6CC 93 C1 00 A8 */ stw r30, 0xa8(r1)
-/* 801DEA70 001DA6D0 7C BE 2B 78 */ mr r30, r5
-/* 801DEA74 001DA6D4 7C DF 33 78 */ mr r31, r6
-/* 801DEA78 001DA6D8 EC 22 00 2A */ fadds f1, f2, f0
-/* 801DEA7C 001DA6DC 93 A1 00 A4 */ stw r29, 0xa4(r1)
-/* 801DEA80 001DA6E0 7C 9D 23 78 */ mr r29, r4
-/* 801DEA84 001DA6E4 93 81 00 A0 */ stw r28, 0xa0(r1)
-/* 801DEA88 001DA6E8 7C 7C 1B 78 */ mr r28, r3
-/* 801DEA8C 001DA6EC FC 01 18 40 */ fcmpo cr0, f1, f3
-/* 801DEA90 001DA6F0 4C 40 13 82 */ cror 2, 0, 2
-/* 801DEA94 001DA6F4 40 82 00 08 */ bne lbl_801DEA9C
-/* 801DEA98 001DA6F8 48 00 00 0C */ b lbl_801DEAA4
-lbl_801DEA9C:
-/* 801DEA9C 001DA6FC 4B FF 5D 99 */ bl sqrt
-/* 801DEAA0 001DA700 FC 60 08 18 */ frsp f3, f1
-lbl_801DEAA4:
-/* 801DEAA4 001DA704 C0 3E 00 04 */ lfs f1, 4(r30)
-/* 801DEAA8 001DA708 C0 1E 00 14 */ lfs f0, 0x14(r30)
-/* 801DEAAC 001DA70C EC 21 00 72 */ fmuls f1, f1, f1
-/* 801DEAB0 001DA710 C0 5E 00 24 */ lfs f2, 0x24(r30)
-/* 801DEAB4 001DA714 EC 00 00 32 */ fmuls f0, f0, f0
-/* 801DEAB8 001DA718 C0 82 96 10 */ lfs f4, lbl_80641C10-_SDA2_BASE_(r2)
-/* 801DEABC 001DA71C EC 42 00 B2 */ fmuls f2, f2, f2
-/* 801DEAC0 001DA720 D0 61 00 18 */ stfs f3, 0x18(r1)
-/* 801DEAC4 001DA724 EC 01 00 2A */ fadds f0, f1, f0
-/* 801DEAC8 001DA728 EC 22 00 2A */ fadds f1, f2, f0
-/* 801DEACC 001DA72C FC 01 20 40 */ fcmpo cr0, f1, f4
-/* 801DEAD0 001DA730 4C 40 13 82 */ cror 2, 0, 2
-/* 801DEAD4 001DA734 40 82 00 08 */ bne lbl_801DEADC
-/* 801DEAD8 001DA738 48 00 00 0C */ b lbl_801DEAE4
-lbl_801DEADC:
-/* 801DEADC 001DA73C 4B FF 5D 59 */ bl sqrt
-/* 801DEAE0 001DA740 FC 80 08 18 */ frsp f4, f1
-lbl_801DEAE4:
-/* 801DEAE4 001DA744 C0 3E 00 08 */ lfs f1, 8(r30)
-/* 801DEAE8 001DA748 C0 1E 00 18 */ lfs f0, 0x18(r30)
-/* 801DEAEC 001DA74C EC 21 00 72 */ fmuls f1, f1, f1
-/* 801DEAF0 001DA750 C0 5E 00 28 */ lfs f2, 0x28(r30)
-/* 801DEAF4 001DA754 EC 00 00 32 */ fmuls f0, f0, f0
-/* 801DEAF8 001DA758 C0 A2 96 10 */ lfs f5, lbl_80641C10-_SDA2_BASE_(r2)
-/* 801DEAFC 001DA75C EC 42 00 B2 */ fmuls f2, f2, f2
-/* 801DEB00 001DA760 D0 81 00 1C */ stfs f4, 0x1c(r1)
-/* 801DEB04 001DA764 EC 01 00 2A */ fadds f0, f1, f0
-/* 801DEB08 001DA768 EC 22 00 2A */ fadds f1, f2, f0
-/* 801DEB0C 001DA76C FC 01 28 40 */ fcmpo cr0, f1, f5
-/* 801DEB10 001DA770 4C 40 13 82 */ cror 2, 0, 2
-/* 801DEB14 001DA774 40 82 00 08 */ bne lbl_801DEB1C
-/* 801DEB18 001DA778 48 00 00 0C */ b lbl_801DEB24
-lbl_801DEB1C:
-/* 801DEB1C 001DA77C 4B FF 5D 19 */ bl sqrt
-/* 801DEB20 001DA780 FC A0 08 18 */ frsp f5, f1
-lbl_801DEB24:
-/* 801DEB24 001DA784 FC 60 28 18 */ frsp f3, f5
-/* 801DEB28 001DA788 D0 A1 00 20 */ stfs f5, 0x20(r1)
-/* 801DEB2C 001DA78C C0 21 00 18 */ lfs f1, 0x18(r1)
-/* 801DEB30 001DA790 38 61 00 70 */ addi r3, r1, 0x70
-/* 801DEB34 001DA794 C0 41 00 1C */ lfs f2, 0x1c(r1)
-/* 801DEB38 001DA798 48 09 DA 09 */ bl PSMTXScale
-/* 801DEB3C 001DA79C C0 5E 00 0C */ lfs f2, 0xc(r30)
-/* 801DEB40 001DA7A0 2C 1F 00 00 */ cmpwi r31, 0
-/* 801DEB44 001DA7A4 C0 3E 00 1C */ lfs f1, 0x1c(r30)
-/* 801DEB48 001DA7A8 C0 1E 00 2C */ lfs f0, 0x2c(r30)
-/* 801DEB4C 001DA7AC D0 41 00 30 */ stfs f2, 0x30(r1)
-/* 801DEB50 001DA7B0 D0 21 00 34 */ stfs f1, 0x34(r1)
-/* 801DEB54 001DA7B4 D0 01 00 38 */ stfs f0, 0x38(r1)
-/* 801DEB58 001DA7B8 41 82 01 10 */ beq lbl_801DEC68
-/* 801DEB5C 001DA7BC 38 7D 01 AC */ addi r3, r29, 0x1ac
-/* 801DEB60 001DA7C0 38 81 00 30 */ addi r4, r1, 0x30
-/* 801DEB64 001DA7C4 38 A1 00 24 */ addi r5, r1, 0x24
-/* 801DEB68 001DA7C8 48 09 E1 81 */ bl PSVECSubtract
-/* 801DEB6C 001DA7CC C0 01 00 24 */ lfs f0, 0x24(r1)
-/* 801DEB70 001DA7D0 C0 42 96 38 */ lfs f2, lbl_80641C38-_SDA2_BASE_(r2)
-/* 801DEB74 001DA7D4 C0 62 96 10 */ lfs f3, lbl_80641C10-_SDA2_BASE_(r2)
-/* 801DEB78 001DA7D8 FC 00 10 40 */ fcmpo cr0, f0, f2
-/* 801DEB7C 001DA7DC D0 61 00 28 */ stfs f3, 0x28(r1)
-/* 801DEB80 001DA7E0 40 80 00 34 */ bge lbl_801DEBB4
-/* 801DEB84 001DA7E4 C0 22 96 3C */ lfs f1, lbl_80641C3C-_SDA2_BASE_(r2)
-/* 801DEB88 001DA7E8 FC 00 08 40 */ fcmpo cr0, f0, f1
-/* 801DEB8C 001DA7EC 40 81 00 28 */ ble lbl_801DEBB4
-/* 801DEB90 001DA7F0 FC 03 10 40 */ fcmpo cr0, f3, f2
-/* 801DEB94 001DA7F4 40 80 00 20 */ bge lbl_801DEBB4
-/* 801DEB98 001DA7F8 FC 03 08 40 */ fcmpo cr0, f3, f1
-/* 801DEB9C 001DA7FC 40 81 00 18 */ ble lbl_801DEBB4
-/* 801DEBA0 001DA800 C0 01 00 2C */ lfs f0, 0x2c(r1)
-/* 801DEBA4 001DA804 FC 00 10 40 */ fcmpo cr0, f0, f2
-/* 801DEBA8 001DA808 40 80 00 0C */ bge lbl_801DEBB4
-/* 801DEBAC 001DA80C FC 00 08 40 */ fcmpo cr0, f0, f1
-/* 801DEBB0 001DA810 41 81 00 0C */ bgt lbl_801DEBBC
-lbl_801DEBB4:
-/* 801DEBB4 001DA814 38 00 00 00 */ li r0, 0
-/* 801DEBB8 001DA818 48 00 00 08 */ b lbl_801DEBC0
-lbl_801DEBBC:
-/* 801DEBBC 001DA81C 38 00 00 01 */ li r0, 1
-lbl_801DEBC0:
-/* 801DEBC0 001DA820 2C 00 00 00 */ cmpwi r0, 0
-/* 801DEBC4 001DA824 41 82 00 18 */ beq lbl_801DEBDC
-/* 801DEBC8 001DA828 3C 60 80 49 */ lis r3, lbl_804932E0@ha
-/* 801DEBCC 001DA82C 7F 84 E3 78 */ mr r4, r28
-/* 801DEBD0 001DA830 38 63 32 E0 */ addi r3, r3, lbl_804932E0@l
-/* 801DEBD4 001DA834 48 09 D3 85 */ bl PSMTXCopy
-/* 801DEBD8 001DA838 48 00 00 C4 */ b lbl_801DEC9C
-lbl_801DEBDC:
-/* 801DEBDC 001DA83C 38 61 00 24 */ addi r3, r1, 0x24
-/* 801DEBE0 001DA840 7C 64 1B 78 */ mr r4, r3
-/* 801DEBE4 001DA844 48 09 E1 45 */ bl PSVECNormalize
-/* 801DEBE8 001DA848 C0 21 00 2C */ lfs f1, 0x2c(r1)
-/* 801DEBEC 001DA84C C0 02 96 00 */ lfs f0, lbl_80641C00-_SDA2_BASE_(r2)
-/* 801DEBF0 001DA850 FC 01 00 40 */ fcmpo cr0, f1, f0
-/* 801DEBF4 001DA854 4C 41 13 82 */ cror 2, 1, 2
-/* 801DEBF8 001DA858 40 82 00 0C */ bne lbl_801DEC04
-/* 801DEBFC 001DA85C C0 22 96 10 */ lfs f1, lbl_80641C10-_SDA2_BASE_(r2)
-/* 801DEC00 001DA860 48 00 00 24 */ b lbl_801DEC24
-lbl_801DEC04:
-/* 801DEC04 001DA864 C0 02 96 14 */ lfs f0, lbl_80641C14-_SDA2_BASE_(r2)
-/* 801DEC08 001DA868 FC 01 00 40 */ fcmpo cr0, f1, f0
-/* 801DEC0C 001DA86C 4C 40 13 82 */ cror 2, 0, 2
-/* 801DEC10 001DA870 40 82 00 0C */ bne lbl_801DEC1C
-/* 801DEC14 001DA874 C0 22 96 40 */ lfs f1, lbl_80641C40-_SDA2_BASE_(r2)
-/* 801DEC18 001DA878 48 00 00 0C */ b lbl_801DEC24
-lbl_801DEC1C:
-/* 801DEC1C 001DA87C 4B FF 59 B9 */ bl acos
-/* 801DEC20 001DA880 FC 20 08 18 */ frsp f1, f1
-lbl_801DEC24:
-/* 801DEC24 001DA884 C0 41 00 24 */ lfs f2, 0x24(r1)
-/* 801DEC28 001DA888 C0 02 96 10 */ lfs f0, lbl_80641C10-_SDA2_BASE_(r2)
-/* 801DEC2C 001DA88C FC 02 00 40 */ fcmpo cr0, f2, f0
-/* 801DEC30 001DA890 40 80 00 08 */ bge lbl_801DEC38
-/* 801DEC34 001DA894 FC 20 08 50 */ fneg f1, f1
-lbl_801DEC38:
-/* 801DEC38 001DA898 3C 80 80 49 */ lis r4, lbl_80493614@ha
-/* 801DEC3C 001DA89C 38 61 00 08 */ addi r3, r1, 8
-/* 801DEC40 001DA8A0 38 84 36 14 */ addi r4, r4, lbl_80493614@l
-/* 801DEC44 001DA8A4 48 09 E4 E1 */ bl C_QUATRotAxisRad
-/* 801DEC48 001DA8A8 38 61 00 40 */ addi r3, r1, 0x40
-/* 801DEC4C 001DA8AC 38 81 00 08 */ addi r4, r1, 8
-/* 801DEC50 001DA8B0 48 09 D9 71 */ bl PSMTXQuat
-/* 801DEC54 001DA8B4 38 81 00 70 */ addi r4, r1, 0x70
-/* 801DEC58 001DA8B8 38 61 00 40 */ addi r3, r1, 0x40
-/* 801DEC5C 001DA8BC 7C 85 23 78 */ mr r5, r4
-/* 801DEC60 001DA8C0 48 09 D3 2D */ bl PSMTXConcat
-/* 801DEC64 001DA8C4 48 00 00 14 */ b lbl_801DEC78
-lbl_801DEC68:
-/* 801DEC68 001DA8C8 38 81 00 70 */ addi r4, r1, 0x70
-/* 801DEC6C 001DA8CC 38 7D 02 04 */ addi r3, r29, 0x204
-/* 801DEC70 001DA8D0 7C 85 23 78 */ mr r5, r4
-/* 801DEC74 001DA8D4 48 09 D3 19 */ bl PSMTXConcat
-lbl_801DEC78:
-/* 801DEC78 001DA8D8 C0 41 00 30 */ lfs f2, 0x30(r1)
-/* 801DEC7C 001DA8DC 7F 84 E3 78 */ mr r4, r28
-/* 801DEC80 001DA8E0 C0 21 00 34 */ lfs f1, 0x34(r1)
-/* 801DEC84 001DA8E4 38 61 00 70 */ addi r3, r1, 0x70
-/* 801DEC88 001DA8E8 C0 01 00 38 */ lfs f0, 0x38(r1)
-/* 801DEC8C 001DA8EC D0 41 00 7C */ stfs f2, 0x7c(r1)
-/* 801DEC90 001DA8F0 D0 21 00 8C */ stfs f1, 0x8c(r1)
-/* 801DEC94 001DA8F4 D0 01 00 9C */ stfs f0, 0x9c(r1)
-/* 801DEC98 001DA8F8 48 09 D2 C1 */ bl PSMTXCopy
-lbl_801DEC9C:
-/* 801DEC9C 001DA8FC 80 01 00 B4 */ lwz r0, 0xb4(r1)
-/* 801DECA0 001DA900 83 E1 00 AC */ lwz r31, 0xac(r1)
-/* 801DECA4 001DA904 83 C1 00 A8 */ lwz r30, 0xa8(r1)
-/* 801DECA8 001DA908 83 A1 00 A4 */ lwz r29, 0xa4(r1)
-/* 801DECAC 001DA90C 83 81 00 A0 */ lwz r28, 0xa0(r1)
-/* 801DECB0 001DA910 7C 08 03 A6 */ mtlr r0
-/* 801DECB4 001DA914 38 21 00 B0 */ addi r1, r1, 0xb0
-/* 801DECB8 001DA918 4E 80 00 20 */ blr
-
-# GScamera virtual
-func_801DECBC:
-/* 801DECBC 001DA91C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 801DECC0 001DA920 7C 08 02 A6 */ mflr r0
-/* 801DECC4 001DA924 90 01 00 24 */ stw r0, 0x24(r1)
-/* 801DECC8 001DA928 DB E1 00 10 */ stfd f31, 0x10(r1)
-/* 801DECCC 001DA92C F3 E1 00 18 */ psq_st f31, 24(r1), 0, qr0
-/* 801DECD0 001DA930 FF E0 08 90 */ fmr f31, f1
-/* 801DECD4 001DA934 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 801DECD8 001DA938 7C 7F 1B 78 */ mr r31, r3
-/* 801DECDC 001DA93C 48 01 4F A1 */ bl func_801F3C7C
-/* 801DECE0 001DA940 2C 03 00 00 */ cmpwi r3, 0
-/* 801DECE4 001DA944 41 82 00 08 */ beq lbl_801DECEC
-/* 801DECE8 001DA948 C3 E2 96 10 */ lfs f31, lbl_80641C10-_SDA2_BASE_(r2)
-lbl_801DECEC:
-/* 801DECEC 001DA94C FC 20 F8 90 */ fmr f1, f31
-/* 801DECF0 001DA950 7F E3 FB 78 */ mr r3, r31
-/* 801DECF4 001DA954 4B FF EF 91 */ bl func_801DDC84__13GSblendObjectFf
-/* 801DECF8 001DA958 81 9F 01 00 */ lwz r12, 0x100(r31)
-/* 801DECFC 001DA95C 7F E3 FB 78 */ mr r3, r31
-/* 801DED00 001DA960 81 8C 00 14 */ lwz r12, 0x14(r12)
-/* 801DED04 001DA964 7D 89 03 A6 */ mtctr r12
-/* 801DED08 001DA968 4E 80 04 21 */ bctrl
-/* 801DED0C 001DA96C 7F E3 FB 78 */ mr r3, r31
-/* 801DED10 001DA970 4B FF F4 E9 */ bl func_801DE1F8
-/* 801DED14 001DA974 FC 20 F8 90 */ fmr f1, f31
-/* 801DED18 001DA978 7F E3 FB 78 */ mr r3, r31
-/* 801DED1C 001DA97C 48 01 4B E9 */ bl func_801F3904
-/* 801DED20 001DA980 E3 E1 00 18 */ psq_l f31, 24(r1), 0, qr0
-/* 801DED24 001DA984 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 801DED28 001DA988 CB E1 00 10 */ lfd f31, 0x10(r1)
-/* 801DED2C 001DA98C 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 801DED30 001DA990 7C 08 03 A6 */ mtlr r0
-/* 801DED34 001DA994 38 21 00 20 */ addi r1, r1, 0x20
-/* 801DED38 001DA998 4E 80 00 20 */ blr
-
-# GScamera virtual
-func_801DED3C:
-/* 801DED3C 001DA99C 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 801DED40 001DA9A0 7C 08 02 A6 */ mflr r0
-/* 801DED44 001DA9A4 90 01 00 14 */ stw r0, 0x14(r1)
-/* 801DED48 001DA9A8 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 801DED4C 001DA9AC 7C 7F 1B 78 */ mr r31, r3
-/* 801DED50 001DA9B0 48 01 4C 99 */ bl func_801F39E8
-/* 801DED54 001DA9B4 80 9F 01 08 */ lwz r4, 0x108(r31)
-/* 801DED58 001DA9B8 2C 04 00 00 */ cmpwi r4, 0
-/* 801DED5C 001DA9BC 41 82 01 88 */ beq lbl_801DEEE4
-/* 801DED60 001DA9C0 80 04 00 30 */ lwz r0, 0x30(r4)
-/* 801DED64 001DA9C4 54 00 07 BE */ clrlwi r0, r0, 0x1e
-/* 801DED68 001DA9C8 60 03 01 00 */ ori r3, r0, 0x100
-/* 801DED6C 001DA9CC 90 7F 01 04 */ stw r3, 0x104(r31)
-/* 801DED70 001DA9D0 80 04 00 30 */ lwz r0, 0x30(r4)
-/* 801DED74 001DA9D4 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
-/* 801DED78 001DA9D8 41 82 00 0C */ beq lbl_801DED84
-/* 801DED7C 001DA9DC 60 60 00 40 */ ori r0, r3, 0x40
-/* 801DED80 001DA9E0 90 1F 01 04 */ stw r0, 0x104(r31)
-lbl_801DED84:
-/* 801DED84 001DA9E4 80 1F 01 04 */ lwz r0, 0x104(r31)
-/* 801DED88 001DA9E8 54 00 07 BE */ clrlwi r0, r0, 0x1e
-/* 801DED8C 001DA9EC 2C 00 00 02 */ cmpwi r0, 2
-/* 801DED90 001DA9F0 41 82 00 18 */ beq lbl_801DEDA8
-/* 801DED94 001DA9F4 40 80 00 08 */ bge lbl_801DED9C
-/* 801DED98 001DA9F8 48 00 00 70 */ b lbl_801DEE08
-lbl_801DED9C:
-/* 801DED9C 001DA9FC 2C 00 00 04 */ cmpwi r0, 4
-/* 801DEDA0 001DAA00 40 80 00 68 */ bge lbl_801DEE08
-/* 801DEDA4 001DAA04 48 00 00 30 */ b lbl_801DEDD4
-lbl_801DEDA8:
-/* 801DEDA8 001DAA08 C0 02 96 10 */ lfs f0, lbl_80641C10-_SDA2_BASE_(r2)
-/* 801DEDAC 001DAA0C 80 7F 01 08 */ lwz r3, 0x108(r31)
-/* 801DEDB0 001DAA10 D0 1F 01 68 */ stfs f0, 0x168(r31)
-/* 801DEDB4 001DAA14 D0 1F 01 70 */ stfs f0, 0x170(r31)
-/* 801DEDB8 001DAA18 C0 03 00 34 */ lfs f0, 0x34(r3)
-/* 801DEDBC 001DAA1C D0 1F 01 74 */ stfs f0, 0x174(r31)
-/* 801DEDC0 001DAA20 C0 23 00 34 */ lfs f1, 0x34(r3)
-/* 801DEDC4 001DAA24 C0 03 00 38 */ lfs f0, 0x38(r3)
-/* 801DEDC8 001DAA28 EC 01 00 24 */ fdivs f0, f1, f0
-/* 801DEDCC 001DAA2C D0 1F 01 6C */ stfs f0, 0x16c(r31)
-/* 801DEDD0 001DAA30 48 00 00 54 */ b lbl_801DEE24
-lbl_801DEDD4:
-/* 801DEDD4 001DAA34 80 7F 01 08 */ lwz r3, 0x108(r31)
-/* 801DEDD8 001DAA38 C0 22 96 1C */ lfs f1, lbl_80641C1C-_SDA2_BASE_(r2)
-/* 801DEDDC 001DAA3C C0 03 00 34 */ lfs f0, 0x34(r3)
-/* 801DEDE0 001DAA40 EC 21 00 32 */ fmuls f1, f1, f0
-/* 801DEDE4 001DAA44 FC 00 08 50 */ fneg f0, f1
-/* 801DEDE8 001DAA48 D0 3F 01 74 */ stfs f1, 0x174(r31)
-/* 801DEDEC 001DAA4C D0 1F 01 70 */ stfs f0, 0x170(r31)
-/* 801DEDF0 001DAA50 C0 03 00 38 */ lfs f0, 0x38(r3)
-/* 801DEDF4 001DAA54 EC 21 00 24 */ fdivs f1, f1, f0
-/* 801DEDF8 001DAA58 FC 00 08 50 */ fneg f0, f1
-/* 801DEDFC 001DAA5C D0 3F 01 6C */ stfs f1, 0x16c(r31)
-/* 801DEE00 001DAA60 D0 1F 01 68 */ stfs f0, 0x168(r31)
-/* 801DEE04 001DAA64 48 00 00 20 */ b lbl_801DEE24
-lbl_801DEE08:
-/* 801DEE08 001DAA68 80 7F 01 08 */ lwz r3, 0x108(r31)
-/* 801DEE0C 001DAA6C C0 22 96 34 */ lfs f1, lbl_80641C34-_SDA2_BASE_(r2)
-/* 801DEE10 001DAA70 C0 03 00 34 */ lfs f0, 0x34(r3)
-/* 801DEE14 001DAA74 EC 01 00 32 */ fmuls f0, f1, f0
-/* 801DEE18 001DAA78 D0 1F 01 68 */ stfs f0, 0x168(r31)
-/* 801DEE1C 001DAA7C C0 03 00 38 */ lfs f0, 0x38(r3)
-/* 801DEE20 001DAA80 D0 1F 01 6C */ stfs f0, 0x16c(r31)
-lbl_801DEE24:
-/* 801DEE24 001DAA84 80 9F 01 08 */ lwz r4, 0x108(r31)
-/* 801DEE28 001DAA88 C0 04 00 3C */ lfs f0, 0x3c(r4)
-/* 801DEE2C 001DAA8C D0 1F 01 7C */ stfs f0, 0x17c(r31)
-/* 801DEE30 001DAA90 C0 04 00 40 */ lfs f0, 0x40(r4)
-/* 801DEE34 001DAA94 D0 1F 01 80 */ stfs f0, 0x180(r31)
-/* 801DEE38 001DAA98 C0 04 00 44 */ lfs f0, 0x44(r4)
-/* 801DEE3C 001DAA9C D0 1F 01 84 */ stfs f0, 0x184(r31)
-/* 801DEE40 001DAAA0 80 64 00 48 */ lwz r3, 0x48(r4)
-/* 801DEE44 001DAAA4 2C 03 00 00 */ cmpwi r3, 0
-/* 801DEE48 001DAAA8 41 82 00 58 */ beq lbl_801DEEA0
-/* 801DEE4C 001DAAAC C0 03 00 00 */ lfs f0, 0(r3)
-/* 801DEE50 001DAAB0 D0 1F 01 88 */ stfs f0, 0x188(r31)
-/* 801DEE54 001DAAB4 C0 03 00 04 */ lfs f0, 4(r3)
-/* 801DEE58 001DAAB8 D0 1F 01 8C */ stfs f0, 0x18c(r31)
-/* 801DEE5C 001DAABC C0 03 00 08 */ lfs f0, 8(r3)
-/* 801DEE60 001DAAC0 D0 1F 01 90 */ stfs f0, 0x190(r31)
-/* 801DEE64 001DAAC4 80 64 00 48 */ lwz r3, 0x48(r4)
-/* 801DEE68 001DAAC8 C0 03 00 0C */ lfs f0, 0xc(r3)
-/* 801DEE6C 001DAACC D0 1F 01 94 */ stfs f0, 0x194(r31)
-/* 801DEE70 001DAAD0 C0 03 00 10 */ lfs f0, 0x10(r3)
-/* 801DEE74 001DAAD4 D0 1F 01 98 */ stfs f0, 0x198(r31)
-/* 801DEE78 001DAAD8 C0 03 00 14 */ lfs f0, 0x14(r3)
-/* 801DEE7C 001DAADC D0 1F 01 9C */ stfs f0, 0x19c(r31)
-/* 801DEE80 001DAAE0 80 64 00 48 */ lwz r3, 0x48(r4)
-/* 801DEE84 001DAAE4 C0 03 00 18 */ lfs f0, 0x18(r3)
-/* 801DEE88 001DAAE8 D0 1F 01 A0 */ stfs f0, 0x1a0(r31)
-/* 801DEE8C 001DAAEC C0 03 00 1C */ lfs f0, 0x1c(r3)
-/* 801DEE90 001DAAF0 D0 1F 01 A4 */ stfs f0, 0x1a4(r31)
-/* 801DEE94 001DAAF4 C0 03 00 20 */ lfs f0, 0x20(r3)
-/* 801DEE98 001DAAF8 D0 1F 01 A8 */ stfs f0, 0x1a8(r31)
-/* 801DEE9C 001DAAFC 48 00 00 34 */ b lbl_801DEED0
-lbl_801DEEA0:
-/* 801DEEA0 001DAB00 C0 42 96 10 */ lfs f2, lbl_80641C10-_SDA2_BASE_(r2)
-/* 801DEEA4 001DAB04 C0 22 96 00 */ lfs f1, lbl_80641C00-_SDA2_BASE_(r2)
-/* 801DEEA8 001DAB08 C0 02 96 14 */ lfs f0, lbl_80641C14-_SDA2_BASE_(r2)
-/* 801DEEAC 001DAB0C D0 5F 01 88 */ stfs f2, 0x188(r31)
-/* 801DEEB0 001DAB10 D0 5F 01 8C */ stfs f2, 0x18c(r31)
-/* 801DEEB4 001DAB14 D0 5F 01 90 */ stfs f2, 0x190(r31)
-/* 801DEEB8 001DAB18 D0 5F 01 94 */ stfs f2, 0x194(r31)
-/* 801DEEBC 001DAB1C D0 3F 01 98 */ stfs f1, 0x198(r31)
-/* 801DEEC0 001DAB20 D0 5F 01 9C */ stfs f2, 0x19c(r31)
-/* 801DEEC4 001DAB24 D0 5F 01 A0 */ stfs f2, 0x1a0(r31)
-/* 801DEEC8 001DAB28 D0 5F 01 A4 */ stfs f2, 0x1a4(r31)
-/* 801DEECC 001DAB2C D0 1F 01 A8 */ stfs f0, 0x1a8(r31)
-lbl_801DEED0:
-/* 801DEED0 001DAB30 80 1F 01 04 */ lwz r0, 0x104(r31)
-/* 801DEED4 001DAB34 38 60 00 00 */ li r3, 0
-/* 801DEED8 001DAB38 90 7F 01 D0 */ stw r3, 0x1d0(r31)
-/* 801DEEDC 001DAB3C 60 00 00 28 */ ori r0, r0, 0x28
-/* 801DEEE0 001DAB40 90 1F 01 04 */ stw r0, 0x104(r31)
-lbl_801DEEE4:
-/* 801DEEE4 001DAB44 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 801DEEE8 001DAB48 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 801DEEEC 001DAB4C 7C 08 03 A6 */ mtlr r0
-/* 801DEEF0 001DAB50 38 21 00 10 */ addi r1, r1, 0x10
-/* 801DEEF4 001DAB54 4E 80 00 20 */ blr
-
-.global lbl_801DEEF8
-lbl_801DEEF8:
-/* 801DEEF8 001DAB58 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 801DEEFC 001DAB5C 7C 08 02 A6 */ mflr r0
-/* 801DEF00 001DAB60 2C 05 00 00 */ cmpwi r5, 0
-/* 801DEF04 001DAB64 90 01 00 14 */ stw r0, 0x14(r1)
-/* 801DEF08 001DAB68 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 801DEF0C 001DAB6C 7C 7F 1B 78 */ mr r31, r3
-/* 801DEF10 001DAB70 40 82 00 FC */ bne lbl_801DF00C
-/* 801DEF14 001DAB74 88 64 00 01 */ lbz r3, 1(r4)
-/* 801DEF18 001DAB78 38 03 FF FB */ addi r0, r3, -5
-/* 801DEF1C 001DAB7C 28 00 00 07 */ cmplwi r0, 7
-/* 801DEF20 001DAB80 41 81 00 EC */ bgt lbl_801DF00C
-/* 801DEF24 001DAB84 3C 60 80 42 */ lis r3, lbl_80423338@ha
-/* 801DEF28 001DAB88 54 00 10 3A */ slwi r0, r0, 2
-/* 801DEF2C 001DAB8C 38 63 33 38 */ addi r3, r3, lbl_80423338@l
-/* 801DEF30 001DAB90 7C 63 00 2E */ lwzx r3, r3, r0
-/* 801DEF34 001DAB94 7C 69 03 A6 */ mtctr r3
-/* 801DEF38 001DAB98 4E 80 04 20 */ bctr
-/* 801DEF3C 001DAB9C 7C 83 23 78 */ mr r3, r4
-/* 801DEF40 001DABA0 38 9F 01 68 */ addi r4, r31, 0x168
-/* 801DEF44 001DABA4 48 00 21 7D */ bl func_801E10C0
-/* 801DEF48 001DABA8 80 1F 01 04 */ lwz r0, 0x104(r31)
-/* 801DEF4C 001DABAC 60 00 00 08 */ ori r0, r0, 8
-/* 801DEF50 001DABB0 90 1F 01 04 */ stw r0, 0x104(r31)
-/* 801DEF54 001DABB4 48 00 00 B8 */ b lbl_801DF00C
-/* 801DEF58 001DABB8 7C 83 23 78 */ mr r3, r4
-/* 801DEF5C 001DABBC 38 9F 01 6C */ addi r4, r31, 0x16c
-/* 801DEF60 001DABC0 48 00 21 61 */ bl func_801E10C0
-/* 801DEF64 001DABC4 80 1F 01 04 */ lwz r0, 0x104(r31)
-/* 801DEF68 001DABC8 60 00 00 08 */ ori r0, r0, 8
-/* 801DEF6C 001DABCC 90 1F 01 04 */ stw r0, 0x104(r31)
-/* 801DEF70 001DABD0 48 00 00 9C */ b lbl_801DF00C
-/* 801DEF74 001DABD4 7C 83 23 78 */ mr r3, r4
-/* 801DEF78 001DABD8 38 9F 01 7C */ addi r4, r31, 0x17c
-/* 801DEF7C 001DABDC 48 00 21 45 */ bl func_801E10C0
-/* 801DEF80 001DABE0 80 1F 01 04 */ lwz r0, 0x104(r31)
-/* 801DEF84 001DABE4 60 00 00 08 */ ori r0, r0, 8
-/* 801DEF88 001DABE8 90 1F 01 04 */ stw r0, 0x104(r31)
-/* 801DEF8C 001DABEC 48 00 00 80 */ b lbl_801DF00C
-/* 801DEF90 001DABF0 7C 83 23 78 */ mr r3, r4
-/* 801DEF94 001DABF4 38 9F 01 80 */ addi r4, r31, 0x180
-/* 801DEF98 001DABF8 48 00 21 29 */ bl func_801E10C0
-/* 801DEF9C 001DABFC 80 1F 01 04 */ lwz r0, 0x104(r31)
-/* 801DEFA0 001DAC00 60 00 00 08 */ ori r0, r0, 8
-/* 801DEFA4 001DAC04 90 1F 01 04 */ stw r0, 0x104(r31)
-/* 801DEFA8 001DAC08 48 00 00 64 */ b lbl_801DF00C
-/* 801DEFAC 001DAC0C 7C 83 23 78 */ mr r3, r4
-/* 801DEFB0 001DAC10 38 9F 01 84 */ addi r4, r31, 0x184
-/* 801DEFB4 001DAC14 48 00 21 0D */ bl func_801E10C0
-/* 801DEFB8 001DAC18 48 00 00 54 */ b lbl_801DF00C
-/* 801DEFBC 001DAC1C 7C 83 23 78 */ mr r3, r4
-/* 801DEFC0 001DAC20 38 9F 01 88 */ addi r4, r31, 0x188
-/* 801DEFC4 001DAC24 48 00 22 B5 */ bl func_801E1278
-/* 801DEFC8 001DAC28 80 1F 01 04 */ lwz r0, 0x104(r31)
-/* 801DEFCC 001DAC2C 60 00 00 20 */ ori r0, r0, 0x20
-/* 801DEFD0 001DAC30 90 1F 01 04 */ stw r0, 0x104(r31)
-/* 801DEFD4 001DAC34 48 00 00 38 */ b lbl_801DF00C
-/* 801DEFD8 001DAC38 7C 83 23 78 */ mr r3, r4
-/* 801DEFDC 001DAC3C 38 9F 01 A0 */ addi r4, r31, 0x1a0
-/* 801DEFE0 001DAC40 48 00 22 99 */ bl func_801E1278
-/* 801DEFE4 001DAC44 80 1F 01 04 */ lwz r0, 0x104(r31)
-/* 801DEFE8 001DAC48 60 00 00 20 */ ori r0, r0, 0x20
-/* 801DEFEC 001DAC4C 90 1F 01 04 */ stw r0, 0x104(r31)
-/* 801DEFF0 001DAC50 48 00 00 1C */ b lbl_801DF00C
-/* 801DEFF4 001DAC54 7C 83 23 78 */ mr r3, r4
-/* 801DEFF8 001DAC58 38 9F 01 94 */ addi r4, r31, 0x194
-/* 801DEFFC 001DAC5C 48 00 22 7D */ bl func_801E1278
-/* 801DF000 001DAC60 80 1F 01 04 */ lwz r0, 0x104(r31)
-/* 801DF004 001DAC64 60 00 00 20 */ ori r0, r0, 0x20
-/* 801DF008 001DAC68 90 1F 01 04 */ stw r0, 0x104(r31)
-lbl_801DF00C:
-/* 801DF00C 001DAC6C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 801DF010 001DAC70 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 801DF014 001DAC74 7C 08 03 A6 */ mtlr r0
-/* 801DF018 001DAC78 38 21 00 10 */ addi r1, r1, 0x10
-/* 801DF01C 001DAC7C 4E 80 00 20 */ blr
-
.global func_801DF020
func_801DF020:
/* 801DF020 001DAC80 38 A0 00 01 */ li r5, 1
diff --git a/asm/code_801DF040.s b/asm/code_801DF040.s
index 8dbdccd..7cfe0d3 100644
--- a/asm/code_801DF040.s
+++ b/asm/code_801DF040.s
@@ -12,7 +12,7 @@ func_801DF040:
/* 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 func_801F1BC8
+/* 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)
@@ -159,7 +159,7 @@ lbl_801DF268:
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 func_801F1F24
+/* 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)
diff --git a/asm/code_801E0A54.s b/asm/code_801E0A54.s
index d053fd9..c0551fc 100644
--- a/asm/code_801E0A54.s
+++ b/asm/code_801E0A54.s
@@ -55,9 +55,9 @@ lbl_801E0AE8:
/* 801E0AF8 001DC758 90 83 00 0C */ stw r4, 0xc(r3)
/* 801E0AFC 001DC75C 48 00 00 60 */ b lbl_801E0B5C
lbl_801E0B00:
-/* 801E0B00 001DC760 3C 80 80 1E */ lis r4, lbl_801DEEF8@ha
+/* 801E0B00 001DC760 3C 80 80 1E */ lis r4, lbl_801DEEF8__8GScameraFv@ha
/* 801E0B04 001DC764 38 00 00 00 */ li r0, 0
-/* 801E0B08 001DC768 38 84 EE F8 */ addi r4, r4, lbl_801DEEF8@l
+/* 801E0B08 001DC768 38 84 EE F8 */ addi r4, r4, lbl_801DEEF8__8GScameraFv@l
/* 801E0B0C 001DC76C 98 03 00 00 */ stb r0, 0(r3)
/* 801E0B10 001DC770 90 83 00 0C */ stw r4, 0xc(r3)
/* 801E0B14 001DC774 48 00 00 48 */ b lbl_801E0B5C
diff --git a/asm/code_801E4360.s b/asm/code_801E4360.s
index b72a6e7..9be4057 100644
--- a/asm/code_801E4360.s
+++ b/asm/code_801E4360.s
@@ -11,7 +11,7 @@ func_801E4360:
/* 801E4370 001DFFD0 7C BF 2B 78 */ mr r31, r5
/* 801E4374 001DFFD4 93 C1 00 08 */ stw r30, 8(r1)
/* 801E4378 001DFFD8 7C 7E 1B 78 */ mr r30, r3
-/* 801E437C 001DFFDC 48 00 D8 4D */ bl func_801F1BC8
+/* 801E437C 001DFFDC 48 00 D8 4D */ bl __ct__6GSnullFPvP11gUnkClass10
/* 801E4380 001DFFE0 C0 22 96 B0 */ lfs f1, lbl_80641CB0-_SDA2_BASE_(r2)
/* 801E4384 001DFFE4 3C 60 80 42 */ lis r3, lbl_80423500@ha
/* 801E4388 001DFFE8 C0 02 96 B4 */ lfs f0, lbl_80641CB4-_SDA2_BASE_(r2)
@@ -252,7 +252,7 @@ lbl_801E46BC:
/* 801E46EC 001E034C 7C 7E 1B 78 */ mr r30, r3
/* 801E46F0 001E0350 41 82 00 20 */ beq lbl_801E4710
/* 801E46F4 001E0354 38 80 00 00 */ li r4, 0
-/* 801E46F8 001E0358 48 00 D8 2D */ bl func_801F1F24
+/* 801E46F8 001E0358 48 00 D8 2D */ bl __dt__6GSnullFv
/* 801E46FC 001E035C 2C 1F 00 00 */ cmpwi r31, 0
/* 801E4700 001E0360 40 81 00 10 */ ble lbl_801E4710
/* 801E4704 001E0364 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
diff --git a/asm/code_801E5F7C.s b/asm/code_801E5F7C.s
index b716071..236b645 100644
--- a/asm/code_801E5F7C.s
+++ b/asm/code_801E5F7C.s
@@ -139,7 +139,7 @@ func_801E6148:
/* 801E6158 001E1DB8 7C BF 2B 78 */ mr r31, r5
/* 801E615C 001E1DBC 93 C1 00 08 */ stw r30, 8(r1)
/* 801E6160 001E1DC0 7C 7E 1B 78 */ mr r30, r3
-/* 801E6164 001E1DC4 48 00 BA 65 */ bl func_801F1BC8
+/* 801E6164 001E1DC4 48 00 BA 65 */ bl __ct__6GSnullFPvP11gUnkClass10
/* 801E6168 001E1DC8 C0 62 97 40 */ lfs f3, lbl_80641D40-_SDA2_BASE_(r2)
/* 801E616C 001E1DCC 3C 80 80 42 */ lis r4, lbl_80423590@ha
/* 801E6170 001E1DD0 38 60 00 00 */ li r3, 0
@@ -372,7 +372,7 @@ lbl_801E6484:
lbl_801E64A0:
/* 801E64A0 001E2100 7F C3 F3 78 */ mr r3, r30
/* 801E64A4 001E2104 38 80 00 00 */ li r4, 0
-/* 801E64A8 001E2108 48 00 BA 7D */ bl func_801F1F24
+/* 801E64A8 001E2108 48 00 BA 7D */ bl __dt__6GSnullFv
/* 801E64AC 001E210C 2C 1F 00 00 */ cmpwi r31, 0
/* 801E64B0 001E2110 40 81 00 10 */ ble lbl_801E64C0
/* 801E64B4 001E2114 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
diff --git a/asm/code_801EE044.s b/asm/code_801EE044.s
index ff78337..b1d48e0 100644
--- a/asm/code_801EE044.s
+++ b/asm/code_801EE044.s
@@ -2172,7 +2172,7 @@ func_801EFF10:
/* 801EFF24 001EBB84 7C BE 2B 78 */ mr r30, r5
/* 801EFF28 001EBB88 93 A1 00 14 */ stw r29, 0x14(r1)
/* 801EFF2C 001EBB8C 7C 7D 1B 78 */ mr r29, r3
-/* 801EFF30 001EBB90 48 00 1C 99 */ bl func_801F1BC8
+/* 801EFF30 001EBB90 48 00 1C 99 */ bl __ct__6GSnullFPvP11gUnkClass10
/* 801EFF34 001EBB94 C0 42 97 E0 */ lfs f2, lbl_80641DE0-_SDA2_BASE_(r2)
/* 801EFF38 001EBB98 3C 60 80 42 */ lis r3, lbl_80423668@ha
/* 801EFF3C 001EBB9C 3B E0 00 00 */ li r31, 0
@@ -2420,7 +2420,7 @@ lbl_801F029C:
/* 801F02AC 001EBF0C 4B FF FB 15 */ bl func_801EFDC0
/* 801F02B0 001EBF10 7F A3 EB 78 */ mr r3, r29
/* 801F02B4 001EBF14 38 80 00 00 */ li r4, 0
-/* 801F02B8 001EBF18 48 00 1C 6D */ bl func_801F1F24
+/* 801F02B8 001EBF18 48 00 1C 6D */ bl __dt__6GSnullFv
/* 801F02BC 001EBF1C 2C 1E 00 00 */ cmpwi r30, 0
/* 801F02C0 001EBF20 40 81 00 10 */ ble lbl_801F02D0
/* 801F02C4 001EBF24 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
@@ -2900,7 +2900,7 @@ lbl_801F08E0:
/* 801F0914 001EC574 38 61 00 48 */ addi r3, r1, 0x48
/* 801F0918 001EC578 38 BF 00 D0 */ addi r5, r31, 0xd0
/* 801F091C 001EC57C 54 06 EF FE */ rlwinm r6, r0, 0x1d, 0x1f, 0x1f
-/* 801F0920 001EC580 4B FE E1 1D */ bl func_801DEA3C
+/* 801F0920 001EC580 4B FE E1 1D */ bl func_801DEA3C__8GScameraFv
/* 801F0924 001EC584 38 61 00 48 */ addi r3, r1, 0x48
/* 801F0928 001EC588 38 9F 00 D0 */ addi r4, r31, 0xd0
/* 801F092C 001EC58C 48 08 B6 2D */ bl PSMTXCopy
diff --git a/asm/code_801F1AE8.s b/asm/code_801F1AE8.s
index b202a70..2eb1804 100644
--- a/asm/code_801F1AE8.s
+++ b/asm/code_801F1AE8.s
@@ -61,8 +61,8 @@ __ct__6GSnullFUc:
/* 801F1BC0 001ED820 38 21 00 10 */ addi r1, r1, 0x10
/* 801F1BC4 001ED824 4E 80 00 20 */ blr
-.global func_801F1BC8
-func_801F1BC8:
+.global __ct__6GSnullFPvP11gUnkClass10
+__ct__6GSnullFPvP11gUnkClass10:
/* 801F1BC8 001ED828 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801F1BCC 001ED82C 7C 08 02 A6 */ mflr r0
/* 801F1BD0 001ED830 90 01 00 24 */ stw r0, 0x24(r1)
@@ -181,7 +181,7 @@ lbl_801F1D70:
/* 801F1D74 001ED9D4 41 82 00 10 */ beq lbl_801F1D84
/* 801F1D78 001ED9D8 7F E4 FB 78 */ mr r4, r31
/* 801F1D7C 001ED9DC 7F 85 E3 78 */ mr r5, r28
-/* 801F1D80 001ED9E0 4B FE C3 05 */ bl func_801DE084
+/* 801F1D80 001ED9E0 4B FE C3 05 */ bl __ct__8GScameraFPvP11gUnkClass10
lbl_801F1D84:
/* 801F1D84 001ED9E4 7C 64 1B 78 */ mr r4, r3
/* 801F1D88 001ED9E8 48 00 01 2C */ b lbl_801F1EB4
@@ -272,7 +272,7 @@ lbl_801F1E9C:
/* 801F1EA0 001EDB00 41 82 00 10 */ beq lbl_801F1EB0
/* 801F1EA4 001EDB04 7F E4 FB 78 */ mr r4, r31
/* 801F1EA8 001EDB08 7F 85 E3 78 */ mr r5, r28
-/* 801F1EAC 001EDB0C 4B FF FD 1D */ bl func_801F1BC8
+/* 801F1EAC 001EDB0C 4B FF FD 1D */ bl __ct__6GSnullFPvP11gUnkClass10
lbl_801F1EB0:
/* 801F1EB0 001EDB10 7C 64 1B 78 */ mr r4, r3
lbl_801F1EB4:
@@ -308,8 +308,8 @@ lbl_801F1F00:
/* 801F1F1C 001EDB7C 38 21 00 20 */ addi r1, r1, 0x20
/* 801F1F20 001EDB80 4E 80 00 20 */ blr
-.global func_801F1F24
-func_801F1F24:
+.global __dt__6GSnullFv
+__dt__6GSnullFv:
/* 801F1F24 001EDB84 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801F1F28 001EDB88 7C 08 02 A6 */ mflr r0
/* 801F1F2C 001EDB8C 2C 03 00 00 */ cmpwi r3, 0
diff --git a/asm/code_801F40E0.s b/asm/code_801F40E0.s
index 79fdf7e..d5bcb0c 100644
--- a/asm/code_801F40E0.s
+++ b/asm/code_801F40E0.s
@@ -568,7 +568,7 @@ lbl_801F48B0:
/* 801F48B4 001F0514 41 82 00 10 */ beq lbl_801F48C4
/* 801F48B8 001F0518 80 BF 00 10 */ lwz r5, 0x10(r31)
/* 801F48BC 001F051C 7F C4 F3 78 */ mr r4, r30
-/* 801F48C0 001F0520 4B FE 97 C5 */ bl func_801DE084
+/* 801F48C0 001F0520 4B FE 97 C5 */ bl __ct__8GScameraFPvP11gUnkClass10
lbl_801F48C4:
/* 801F48C4 001F0524 7C 64 1B 78 */ mr r4, r3
/* 801F48C8 001F0528 48 00 01 2C */ b lbl_801F49F4
@@ -659,7 +659,7 @@ lbl_801F49DC:
/* 801F49E0 001F0640 41 82 00 10 */ beq lbl_801F49F0
/* 801F49E4 001F0644 80 BF 00 10 */ lwz r5, 0x10(r31)
/* 801F49E8 001F0648 7F C4 F3 78 */ mr r4, r30
-/* 801F49EC 001F064C 4B FF D1 DD */ bl func_801F1BC8
+/* 801F49EC 001F064C 4B FF D1 DD */ bl __ct__6GSnullFPvP11gUnkClass10
lbl_801F49F0:
/* 801F49F0 001F0650 7C 64 1B 78 */ mr r4, r3
lbl_801F49F4:
diff --git a/asm/code_801F98EC.s b/asm/code_801F98EC.s
index 9425c99..c7e5cc1 100644
--- a/asm/code_801F98EC.s
+++ b/asm/code_801F98EC.s
@@ -57,7 +57,7 @@ func_801F9994:
/* 801F99A4 001F5604 7C 7F 1B 78 */ mr r31, r3
/* 801F99A8 001F5608 93 C1 00 08 */ stw r30, 8(r1)
/* 801F99AC 001F560C 7C BE 2B 78 */ mr r30, r5
-/* 801F99B0 001F5610 4B FF 82 19 */ bl func_801F1BC8
+/* 801F99B0 001F5610 4B FF 82 19 */ bl __ct__6GSnullFPvP11gUnkClass10
/* 801F99B4 001F5614 C0 02 98 40 */ lfs f0, lbl_80641E40-_SDA2_BASE_(r2)
/* 801F99B8 001F5618 3C 60 80 42 */ lis r3, lbl_80423720@ha
/* 801F99BC 001F561C 38 00 00 00 */ li r0, 0
@@ -151,7 +151,7 @@ lbl_801F9A98:
lbl_801F9B00:
/* 801F9B00 001F5760 7F C3 F3 78 */ mr r3, r30
/* 801F9B04 001F5764 38 80 00 00 */ li r4, 0
-/* 801F9B08 001F5768 4B FF 84 1D */ bl func_801F1F24
+/* 801F9B08 001F5768 4B FF 84 1D */ bl __dt__6GSnullFv
/* 801F9B0C 001F576C 2C 1F 00 00 */ cmpwi r31, 0
/* 801F9B10 001F5770 40 81 00 10 */ ble lbl_801F9B20
/* 801F9B14 001F5774 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
diff --git a/asm/code_80204058.s b/asm/code_80204058.s
index ea3ef81..ba88baa 100644
--- a/asm/code_80204058.s
+++ b/asm/code_80204058.s
@@ -275,7 +275,7 @@ func_802043B0:
/* 80204448 002000A8 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 8020444C 002000AC 41 82 00 0C */ beq lbl_80204458
/* 80204450 002000B0 7F C3 F3 78 */ mr r3, r30
-/* 80204454 002000B4 4B FD A0 D1 */ bl func_801DE524
+/* 80204454 002000B4 4B FD A0 D1 */ bl func_801DE524__8GScameraFv
lbl_80204458:
/* 80204458 002000B8 C0 1E 01 B8 */ lfs f0, 0x1b8(r30)
/* 8020445C 002000BC 38 9F 00 58 */ addi r4, r31, 0x58
diff --git a/asm/code_80232D24.s b/asm/code_80232D24.s
index ce4e6f7..e428458 100644
--- a/asm/code_80232D24.s
+++ b/asm/code_80232D24.s
@@ -206,7 +206,7 @@ lbl_80233010:
/* 80233010 0022EC70 7F 5F D3 78 */ mr r31, r26
/* 80233014 0022EC74 7E E3 BB 78 */ mr r3, r23
/* 80233018 0022EC78 3B C0 00 02 */ li r30, 2
-/* 8023301C 0022EC7C 4B FA B1 DD */ bl func_801DE1F8
+/* 8023301C 0022EC7C 4B FA B1 DD */ bl func_801DE1F8__8GScameraFv
/* 80233020 0022EC80 81 97 01 00 */ lwz r12, 0x100(r23)
/* 80233024 0022EC84 7E E3 BB 78 */ mr r3, r23
/* 80233028 0022EC88 81 8C 00 14 */ lwz r12, 0x14(r12)
@@ -454,7 +454,7 @@ lbl_8023338C:
/* 80233390 0022EFF0 41 82 01 80 */ beq lbl_80233510
lbl_80233394:
/* 80233394 0022EFF4 7F E3 FB 78 */ mr r3, r31
-/* 80233398 0022EFF8 4B FA AE 61 */ bl func_801DE1F8
+/* 80233398 0022EFF8 4B FA AE 61 */ bl func_801DE1F8__8GScameraFv
/* 8023339C 0022EFFC 81 9F 01 00 */ lwz r12, 0x100(r31)
/* 802333A0 0022F000 7F E3 FB 78 */ mr r3, r31
/* 802333A4 0022F004 81 8C 00 14 */ lwz r12, 0x14(r12)
diff --git a/src/code_801DDF78.cpp b/src/code_801DDF78.cpp
index c826a73..732e08b 100644
--- a/src/code_801DDF78.cpp
+++ b/src/code_801DDF78.cpp
@@ -5,20 +5,32 @@
#include <SDK/mtx.h>
#include "GSblendObject.h"
+struct gUnkClass10
+{
+ u8 unk0[0x20];
+ gUnkClass8* unk20;
+};
+
class GSnull : public GSblendObject
{
u8 unk10[0xF0]; // padding
public:
- u32* vptr100; // TODO: replace
+ //u32* vptr100; // TODO: replace
+ // 801F1AE8
GSnull(u8 p1);
- ~GSnull();
+ // 801F1BC8
+ GSnull(void* p1, gUnkClass10* p2); // TODO: p1 type
+ virtual ~GSnull(); // 801F1F24
+ virtual void func1(); // 801F3960
+ virtual void func2(); // 801F39E8
+ virtual void func3(); // 801F3790
};
class GScamera : public GSnull
{
u32 unk104;
- u32 unk108;
+ gUnkClass10* unk108;
u8 unk10C[0x40]; // pad
@@ -67,32 +79,53 @@ class GScamera : public GSnull
public:
GScamera();
-
+ GScamera(void* p1, gUnkClass10* p2);
+ void func_801DE1F8();
+ void func_801DE524();
+ void func_801DEA3C();
+ void lbl_801DEEF8();
+ virtual ~GScamera(); // 801DE19C
+ virtual void func1(); // 801DECBC
+ virtual void func2(); // 801DED3C
+ virtual void func3(); // 801DE5F8
};
extern "C" {
__declspec(section ".data") extern u32 lbl_80423358; // GScamera vtable
+extern float lbl_80641BF8;
+extern float lbl_80641BFC;
+extern float lbl_80641C00;
+extern float lbl_80641C04;
+extern float lbl_80641C08;
+extern float lbl_80641C0C;
+extern float lbl_80641C10;
+extern float lbl_80641C14;
+extern void __ct__6GSnullFUc(void);
+
// 801DDF78
+#define NONMATCHING_1
+#ifdef NONMATCHING_1
+// floating point register shuffle, could be related to vptr
GScamera::GScamera() : GSnull(4)
{
- #if 0
- 10.0f //f2
- 0 // r0
- 0.0f // f1
- lbl_80423358 //r5
- 1.0f // f5
- -1.0f // f0
- 0x109 // r4
- 60.0f // f7
- 1.28f //f6
- 0.1 //f4
- 100000.0f //f3
- #endif
+ //float f0 = -1.0f;
+ //float f1 = 0.0f;
+ float f2 = 10.0f;
+ float f3;
+ float f4;
+ float f5 = 1.0f;
+ float f6;
+ float f7;
- unk184 = 10.0f;
- vptr100 = &lbl_80423358;
+ f7 = 60.0f;
+ f6 = 1.28f;
+ f4 = 0.1f;
+ f3 = 100000.0f;
+
+ unk184 = f2;
+ //vptr100 = &lbl_80423358;
unk104 = 0x109;
unk108 = 0;
@@ -104,8 +137,130 @@ GScamera::GScamera() : GSnull(4)
unk160 = 0;
unk164 = 0;
- unk168 = 60.0f;
+ unk168 = f7;
+ unk16C = f6;
+ unk178 = f5;
+ unk17C = f4;
+ unk180 = f3;
+ unk188 = 0.0f;
+ unk18C = 0.0f;
+ unk190 = -1.0f;
+ unk194 = 0.0f;
+ unk198 = f5;
+ unk19C = 0.0f;
+ unk1A0 = 0.0f;
+ unk1A4 = 0.0f;
+ unk1A8 = 0.0f;
+ unk1AC = 0.0f;
+ unk1B0 = 0.0f;
+ unk1B4 = -1.0f;
+ unk1B8 = 0.0f;
+ unk1BC = f5;
+ unk1C0 = 0.0f;
+ unk1C4 = 0.0f;
+ unk1C8 = 0.0f;
+ unk1CC = 0.0f;
+ unk1D0 = 0;
+
+ unk184 = f2;
+
+ MTXIdentity(unk1D4);
+ MTXIdentity(unk204);
+ MTXIdentity(unk234);
+}
+#else
+asm GScamera::GScamera()
+{
+/* 801DDF78 001D9BD8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DDF7C 001D9BDC 7C 08 02 A6 */ mflr r0
+/* 801DDF80 001D9BE0 38 80 00 04 */ li r4, 4
+/* 801DDF84 001D9BE4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DDF88 001D9BE8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801DDF8C 001D9BEC 7C 7F 1B 78 */ mr r31, r3
+/* 801DDF90 001D9BF0 48 01 3B 59 */ bl __ct__6GSnullFUc
+/* 801DDF94 001D9BF4 C0 42 96 0C */ lfs f2, lbl_80641C0C
+/* 801DDF98 001D9BF8 38 00 00 00 */ li r0, 0
+/* 801DDF9C 001D9BFC C0 22 96 10 */ lfs f1, lbl_80641C10
+/* 801DDFA0 001D9C00 3C A0 80 42 */ lis r5, lbl_80423358@ha
+/* 801DDFA4 001D9C04 C0 A2 96 00 */ lfs f5, lbl_80641C00
+/* 801DDFA8 001D9C08 38 A5 33 58 */ addi r5, r5, lbl_80423358@l
+/* 801DDFAC 001D9C0C C0 02 96 14 */ lfs f0, lbl_80641C14
+/* 801DDFB0 001D9C10 38 80 01 09 */ li r4, 0x109
+/* 801DDFB4 001D9C14 D0 5F 01 84 */ stfs f2, 0x184(r31)
+/* 801DDFB8 001D9C18 38 7F 01 D4 */ addi r3, r31, 0x1d4
+/* 801DDFBC 001D9C1C C0 E2 95 F8 */ lfs f7, lbl_80641BF8
+/* 801DDFC0 001D9C20 C0 C2 95 FC */ lfs f6, lbl_80641BFC
+/* 801DDFC4 001D9C24 C0 82 96 04 */ lfs f4, lbl_80641C04
+/* 801DDFC8 001D9C28 C0 62 96 08 */ lfs f3, lbl_80641C08
+/* 801DDFCC 001D9C2C 90 BF 01 00 */ stw r5, 0x100(r31)
+/* 801DDFD0 001D9C30 90 9F 01 04 */ stw r4, 0x104(r31)
+/* 801DDFD4 001D9C34 90 1F 01 08 */ stw r0, 0x108(r31)
+/* 801DDFD8 001D9C38 90 1F 01 4C */ stw r0, 0x14c(r31)
+/* 801DDFDC 001D9C3C 90 1F 01 50 */ stw r0, 0x150(r31)
+/* 801DDFE0 001D9C40 90 1F 01 54 */ stw r0, 0x154(r31)
+/* 801DDFE4 001D9C44 90 1F 01 58 */ stw r0, 0x158(r31)
+/* 801DDFE8 001D9C48 90 1F 01 5C */ stw r0, 0x15c(r31)
+/* 801DDFEC 001D9C4C 90 1F 01 60 */ stw r0, 0x160(r31)
+/* 801DDFF0 001D9C50 90 1F 01 64 */ stw r0, 0x164(r31)
+/* 801DDFF4 001D9C54 D0 FF 01 68 */ stfs f7, 0x168(r31)
+/* 801DDFF8 001D9C58 D0 DF 01 6C */ stfs f6, 0x16c(r31)
+/* 801DDFFC 001D9C5C D0 BF 01 78 */ stfs f5, 0x178(r31)
+/* 801DE000 001D9C60 D0 9F 01 7C */ stfs f4, 0x17c(r31)
+/* 801DE004 001D9C64 D0 7F 01 80 */ stfs f3, 0x180(r31)
+/* 801DE008 001D9C68 D0 3F 01 88 */ stfs f1, 0x188(r31)
+/* 801DE00C 001D9C6C D0 3F 01 8C */ stfs f1, 0x18c(r31)
+/* 801DE010 001D9C70 D0 1F 01 90 */ stfs f0, 0x190(r31)
+/* 801DE014 001D9C74 D0 3F 01 94 */ stfs f1, 0x194(r31)
+/* 801DE018 001D9C78 D0 BF 01 98 */ stfs f5, 0x198(r31)
+/* 801DE01C 001D9C7C D0 3F 01 9C */ stfs f1, 0x19c(r31)
+/* 801DE020 001D9C80 D0 3F 01 A0 */ stfs f1, 0x1a0(r31)
+/* 801DE024 001D9C84 D0 3F 01 A4 */ stfs f1, 0x1a4(r31)
+/* 801DE028 001D9C88 D0 3F 01 A8 */ stfs f1, 0x1a8(r31)
+/* 801DE02C 001D9C8C D0 3F 01 AC */ stfs f1, 0x1ac(r31)
+/* 801DE030 001D9C90 D0 3F 01 B0 */ stfs f1, 0x1b0(r31)
+/* 801DE034 001D9C94 D0 1F 01 B4 */ stfs f0, 0x1b4(r31)
+/* 801DE038 001D9C98 D0 3F 01 B8 */ stfs f1, 0x1b8(r31)
+/* 801DE03C 001D9C9C D0 BF 01 BC */ stfs f5, 0x1bc(r31)
+/* 801DE040 001D9CA0 D0 3F 01 C0 */ stfs f1, 0x1c0(r31)
+/* 801DE044 001D9CA4 D0 3F 01 C4 */ stfs f1, 0x1c4(r31)
+/* 801DE048 001D9CA8 D0 3F 01 C8 */ stfs f1, 0x1c8(r31)
+/* 801DE04C 001D9CAC D0 3F 01 CC */ stfs f1, 0x1cc(r31)
+/* 801DE050 001D9CB0 90 1F 01 D0 */ stw r0, 0x1d0(r31)
+/* 801DE054 001D9CB4 D0 5F 01 84 */ stfs f2, 0x184(r31)
+/* 801DE058 001D9CB8 48 09 DE D5 */ bl PSMTXIdentity
+/* 801DE05C 001D9CBC 38 7F 02 04 */ addi r3, r31, 0x204
+/* 801DE060 001D9CC0 48 09 DE CD */ bl PSMTXIdentity
+/* 801DE064 001D9CC4 38 7F 02 34 */ addi r3, r31, 0x234
+/* 801DE068 001D9CC8 48 09 DE C5 */ bl PSMTXIdentity
+/* 801DE06C 001D9CCC 7F E3 FB 78 */ mr r3, r31
+/* 801DE070 001D9CD0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801DE074 001D9CD4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DE078 001D9CD8 7C 08 03 A6 */ mtlr r0
+/* 801DE07C 001D9CDC 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DE080 001D9CE0 4E 80 00 20 */ blr
+}
+#pragma peephole on
+#endif
+
+// 801DE084
+GScamera::GScamera(void* p1, gUnkClass10* p2) : GSnull(p1, p2)
+{
unk16C = 1.28f;
+ unk184 = 10.0f;
+ // vptr100 = &lbl_80423358;
+
+ unk104 = 0x109;
+ unk108 = p2;
+
+ unk14C = 0;
+ unk150 = 0;
+ unk154 = 0;
+ unk158 = 0;
+ unk15C = 0;
+ unk160 = 0;
+ unk164 = 0;
+
+ unk168 = 60.0f;
unk178 = 1.0f;
unk17C = 0.1f;
unk180 = 100000.0f;
@@ -114,28 +269,1152 @@ GScamera::GScamera() : GSnull(4)
unk190 = -1.0f;
unk194 = 0.0f;
unk198 = 1.0f;
+
unk19C = 0.0f;
unk1A0 = 0.0f;
unk1A4 = 0.0f;
unk1A8 = 0.0f;
unk1AC = 0.0f;
unk1B0 = 0.0f;
- unk1B4 = -1.0f;
+ unk1B4 = 0.0f;
unk1B8 = 0.0f;
unk1BC = 1.0f;
unk1C0 = 0.0f;
unk1C4 = 0.0f;
unk1C8 = 0.0f;
- unk1CC = 0.0f;
+ unk1CC = -1.0f;
unk1D0 = 0;
+ unk16C = 1.28f;
unk184 = 10.0f;
-
+
MTXIdentity(unk1D4);
MTXIdentity(unk204);
MTXIdentity(unk234);
}
+// 801DE19C
+GScamera::~GScamera()
+{
+
+}
+
+#ifdef NONMATCHING
+void GScamera::func_801DE1F8()
+{
+
+}
+#else
+extern u32 lbl_8063F788;
+extern float lbl_80641C18;
+extern float lbl_80641C1C;
+extern float lbl_80641C20;
+extern double lbl_80641C28;
+extern float lbl_80641C30;
+extern float lbl_80641C34;
+void func_8022369C(void);
+void atan2(void);
+void tan(void);
+void func_80223694(void);
+void func_80223698(void);
+asm void GScamera::func_801DE1F8()
+{
+ nofralloc
+/* 801DE1F8 001D9E58 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 801DE1FC 001D9E5C 7C 08 02 A6 */ mflr r0
+/* 801DE200 001D9E60 90 01 00 34 */ stw r0, 0x34(r1)
+/* 801DE204 001D9E64 DB E1 00 20 */ stfd f31, 0x20(r1)
+/* 801DE208 001D9E68 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0
+/* 801DE20C 001D9E6C DB C1 00 10 */ stfd f30, 0x10(r1)
+/* 801DE210 001D9E70 F3 C1 00 18 */ psq_st f30, 24(r1), 0, 0
+/* 801DE214 001D9E74 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801DE218 001D9E78 7C 7F 1B 78 */ mr r31, r3
+/* 801DE21C 001D9E7C 80 8D A4 C8 */ lwz r4, lbl_8063F788
+/* 801DE220 001D9E80 88 04 00 7A */ lbz r0, 0x7a(r4)
+/* 801DE224 001D9E84 2C 00 00 00 */ cmpwi r0, 0
+/* 801DE228 001D9E88 41 82 00 28 */ beq lbl_801DE250
+/* 801DE22C 001D9E8C 80 83 01 04 */ lwz r4, 0x104(r3)
+/* 801DE230 001D9E90 54 80 05 EF */ rlwinm. r0, r4, 0, 0x17, 0x17
+/* 801DE234 001D9E94 41 82 00 1C */ beq lbl_801DE250
+/* 801DE238 001D9E98 54 80 07 7B */ rlwinm. r0, r4, 0, 0x1d, 0x1d
+/* 801DE23C 001D9E9C 40 82 00 0C */ bne lbl_801DE248
+/* 801DE240 001D9EA0 60 80 00 0C */ ori r0, r4, 0xc
+/* 801DE244 001D9EA4 90 03 01 04 */ stw r0, 0x104(r3)
+lbl_801DE248:
+/* 801DE248 001D9EA8 C3 C2 96 18 */ lfs f30, lbl_80641C18
+/* 801DE24C 001D9EAC 48 00 00 20 */ b lbl_801DE26C
+lbl_801DE250:
+/* 801DE250 001D9EB0 80 83 01 04 */ lwz r4, 0x104(r3)
+/* 801DE254 001D9EB4 54 80 07 7B */ rlwinm. r0, r4, 0, 0x1d, 0x1d
+/* 801DE258 001D9EB8 41 82 00 10 */ beq lbl_801DE268
+/* 801DE25C 001D9EBC 60 80 00 08 */ ori r0, r4, 8
+/* 801DE260 001D9EC0 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
+/* 801DE264 001D9EC4 90 03 01 04 */ stw r0, 0x104(r3)
+lbl_801DE268:
+/* 801DE268 001D9EC8 C3 C2 96 00 */ lfs f30, lbl_80641C00
+lbl_801DE26C:
+/* 801DE26C 001D9ECC 80 83 01 04 */ lwz r4, 0x104(r3)
+/* 801DE270 001D9ED0 54 80 07 39 */ rlwinm. r0, r4, 0, 0x1c, 0x1c
+/* 801DE274 001D9ED4 41 82 02 8C */ beq lbl_801DE500
+/* 801DE278 001D9ED8 54 80 07 BE */ clrlwi r0, r4, 0x1e
+/* 801DE27C 001D9EDC C3 E3 01 78 */ lfs f31, 0x178(r3)
+/* 801DE280 001D9EE0 2C 00 00 02 */ cmpwi r0, 2
+/* 801DE284 001D9EE4 41 82 00 18 */ beq lbl_801DE29C
+/* 801DE288 001D9EE8 40 80 00 08 */ bge lbl_801DE290
+/* 801DE28C 001D9EEC 48 00 01 A0 */ b lbl_801DE42C
+lbl_801DE290:
+/* 801DE290 001D9EF0 2C 00 00 04 */ cmpwi r0, 4
+/* 801DE294 001D9EF4 40 80 01 98 */ bge lbl_801DE42C
+/* 801DE298 001D9EF8 48 00 00 CC */ b lbl_801DE364
+lbl_801DE29C:
+/* 801DE29C 001D9EFC C0 A2 96 00 */ lfs f5, lbl_80641C00
+/* 801DE2A0 001D9F00 C0 83 01 74 */ lfs f4, 0x174(r3)
+/* 801DE2A4 001D9F04 C0 63 01 70 */ lfs f3, 0x170(r3)
+/* 801DE2A8 001D9F08 EC 45 F0 28 */ fsubs f2, f5, f30
+/* 801DE2AC 001D9F0C C0 02 96 1C */ lfs f0, lbl_80641C1C
+/* 801DE2B0 001D9F10 FC 1F 28 40 */ fcmpo cr0, f31, f5
+/* 801DE2B4 001D9F14 EC 24 18 28 */ fsubs f1, f4, f3
+/* 801DE2B8 001D9F18 EC 22 00 72 */ fmuls f1, f2, f1
+/* 801DE2BC 001D9F1C ED 00 00 72 */ fmuls f8, f0, f1
+/* 801DE2C0 001D9F20 40 81 00 3C */ ble lbl_801DE2FC
+/* 801DE2C4 001D9F24 EC E5 F8 24 */ fdivs f7, f5, f31
+/* 801DE2C8 001D9F28 C0 23 01 68 */ lfs f1, 0x168(r3)
+/* 801DE2CC 001D9F2C C0 43 01 6C */ lfs f2, 0x16c(r3)
+/* 801DE2D0 001D9F30 C0 A3 01 7C */ lfs f5, 0x17c(r3)
+/* 801DE2D4 001D9F34 C0 C3 01 80 */ lfs f6, 0x180(r3)
+/* 801DE2D8 001D9F38 38 63 01 0C */ addi r3, r3, 0x10c
+/* 801DE2DC 001D9F3C EC 63 07 B2 */ fmuls f3, f3, f30
+/* 801DE2E0 001D9F40 EC 04 07 B2 */ fmuls f0, f4, f30
+/* 801DE2E4 001D9F44 EC 21 01 F2 */ fmuls f1, f1, f7
+/* 801DE2E8 001D9F48 EC 42 01 F2 */ fmuls f2, f2, f7
+/* 801DE2EC 001D9F4C EC 68 18 2A */ fadds f3, f8, f3
+/* 801DE2F0 001D9F50 EC 88 00 2A */ fadds f4, f8, f0
+/* 801DE2F4 001D9F54 48 04 53 A5 */ bl func_80223698
+/* 801DE2F8 001D9F58 48 00 00 30 */ b lbl_801DE328
+lbl_801DE2FC:
+/* 801DE2FC 001D9F5C EF FF 07 B2 */ fmuls f31, f31, f30
+/* 801DE300 001D9F60 C0 23 01 68 */ lfs f1, 0x168(r3)
+/* 801DE304 001D9F64 C0 43 01 6C */ lfs f2, 0x16c(r3)
+/* 801DE308 001D9F68 C0 A3 01 7C */ lfs f5, 0x17c(r3)
+/* 801DE30C 001D9F6C EC 63 07 F2 */ fmuls f3, f3, f31
+/* 801DE310 001D9F70 C0 C3 01 80 */ lfs f6, 0x180(r3)
+/* 801DE314 001D9F74 EC 04 07 F2 */ fmuls f0, f4, f31
+/* 801DE318 001D9F78 38 63 01 0C */ addi r3, r3, 0x10c
+/* 801DE31C 001D9F7C EC 68 18 2A */ fadds f3, f8, f3
+/* 801DE320 001D9F80 EC 88 00 2A */ fadds f4, f8, f0
+/* 801DE324 001D9F84 48 04 53 75 */ bl func_80223698
+lbl_801DE328:
+/* 801DE328 001D9F88 C0 C2 96 00 */ lfs f6, lbl_80641C00
+/* 801DE32C 001D9F8C C0 BF 01 0C */ lfs f5, 0x10c(r31)
+/* 801DE330 001D9F90 C0 9F 01 18 */ lfs f4, 0x118(r31)
+/* 801DE334 001D9F94 C0 7F 01 20 */ lfs f3, 0x120(r31)
+/* 801DE338 001D9F98 C0 5F 01 28 */ lfs f2, 0x128(r31)
+/* 801DE33C 001D9F9C C0 3F 01 34 */ lfs f1, 0x134(r31)
+/* 801DE340 001D9FA0 C0 1F 01 38 */ lfs f0, 0x138(r31)
+/* 801DE344 001D9FA4 D0 DF 01 4C */ stfs f6, 0x14c(r31)
+/* 801DE348 001D9FA8 D0 BF 01 50 */ stfs f5, 0x150(r31)
+/* 801DE34C 001D9FAC D0 9F 01 54 */ stfs f4, 0x154(r31)
+/* 801DE350 001D9FB0 D0 7F 01 58 */ stfs f3, 0x158(r31)
+/* 801DE354 001D9FB4 D0 5F 01 5C */ stfs f2, 0x15c(r31)
+/* 801DE358 001D9FB8 D0 3F 01 60 */ stfs f1, 0x160(r31)
+/* 801DE35C 001D9FBC D0 1F 01 64 */ stfs f0, 0x164(r31)
+/* 801DE360 001D9FC0 48 00 01 94 */ b lbl_801DE4F4
+lbl_801DE364:
+/* 801DE364 001D9FC4 C0 A2 96 00 */ lfs f5, lbl_80641C00
+/* 801DE368 001D9FC8 C0 83 01 74 */ lfs f4, 0x174(r3)
+/* 801DE36C 001D9FCC C0 63 01 70 */ lfs f3, 0x170(r3)
+/* 801DE370 001D9FD0 EC 45 F0 28 */ fsubs f2, f5, f30
+/* 801DE374 001D9FD4 C0 02 96 1C */ lfs f0, lbl_80641C1C
+/* 801DE378 001D9FD8 FC 1F 28 40 */ fcmpo cr0, f31, f5
+/* 801DE37C 001D9FDC EC 24 18 28 */ fsubs f1, f4, f3
+/* 801DE380 001D9FE0 EC 22 00 72 */ fmuls f1, f2, f1
+/* 801DE384 001D9FE4 ED 00 00 72 */ fmuls f8, f0, f1
+/* 801DE388 001D9FE8 40 81 00 3C */ ble lbl_801DE3C4
+/* 801DE38C 001D9FEC EC E5 F8 24 */ fdivs f7, f5, f31
+/* 801DE390 001D9FF0 C0 23 01 68 */ lfs f1, 0x168(r3)
+/* 801DE394 001D9FF4 C0 43 01 6C */ lfs f2, 0x16c(r3)
+/* 801DE398 001D9FF8 C0 A3 01 7C */ lfs f5, 0x17c(r3)
+/* 801DE39C 001D9FFC C0 C3 01 80 */ lfs f6, 0x180(r3)
+/* 801DE3A0 001DA000 38 63 01 0C */ addi r3, r3, 0x10c
+/* 801DE3A4 001DA004 EC 63 07 B2 */ fmuls f3, f3, f30
+/* 801DE3A8 001DA008 EC 04 07 B2 */ fmuls f0, f4, f30
+/* 801DE3AC 001DA00C EC 21 01 F2 */ fmuls f1, f1, f7
+/* 801DE3B0 001DA010 EC 42 01 F2 */ fmuls f2, f2, f7
+/* 801DE3B4 001DA014 EC 68 18 2A */ fadds f3, f8, f3
+/* 801DE3B8 001DA018 EC 88 00 2A */ fadds f4, f8, f0
+/* 801DE3BC 001DA01C 48 04 52 D9 */ bl func_80223694
+/* 801DE3C0 001DA020 48 00 00 30 */ b lbl_801DE3F0
+lbl_801DE3C4:
+/* 801DE3C4 001DA024 EF FF 07 B2 */ fmuls f31, f31, f30
+/* 801DE3C8 001DA028 C0 23 01 68 */ lfs f1, 0x168(r3)
+/* 801DE3CC 001DA02C C0 43 01 6C */ lfs f2, 0x16c(r3)
+/* 801DE3D0 001DA030 C0 A3 01 7C */ lfs f5, 0x17c(r3)
+/* 801DE3D4 001DA034 EC 63 07 F2 */ fmuls f3, f3, f31
+/* 801DE3D8 001DA038 C0 C3 01 80 */ lfs f6, 0x180(r3)
+/* 801DE3DC 001DA03C EC 04 07 F2 */ fmuls f0, f4, f31
+/* 801DE3E0 001DA040 38 63 01 0C */ addi r3, r3, 0x10c
+/* 801DE3E4 001DA044 EC 68 18 2A */ fadds f3, f8, f3
+/* 801DE3E8 001DA048 EC 88 00 2A */ fadds f4, f8, f0
+/* 801DE3EC 001DA04C 48 04 52 A9 */ bl func_80223694
+lbl_801DE3F0:
+/* 801DE3F0 001DA050 C0 C2 96 10 */ lfs f6, lbl_80641C10
+/* 801DE3F4 001DA054 C0 BF 01 0C */ lfs f5, 0x10c(r31)
+/* 801DE3F8 001DA058 C0 9F 01 14 */ lfs f4, 0x114(r31)
+/* 801DE3FC 001DA05C C0 7F 01 20 */ lfs f3, 0x120(r31)
+/* 801DE400 001DA060 C0 5F 01 24 */ lfs f2, 0x124(r31)
+/* 801DE404 001DA064 C0 3F 01 34 */ lfs f1, 0x134(r31)
+/* 801DE408 001DA068 C0 1F 01 38 */ lfs f0, 0x138(r31)
+/* 801DE40C 001DA06C D0 DF 01 4C */ stfs f6, 0x14c(r31)
+/* 801DE410 001DA070 D0 BF 01 50 */ stfs f5, 0x150(r31)
+/* 801DE414 001DA074 D0 9F 01 54 */ stfs f4, 0x154(r31)
+/* 801DE418 001DA078 D0 7F 01 58 */ stfs f3, 0x158(r31)
+/* 801DE41C 001DA07C D0 5F 01 5C */ stfs f2, 0x15c(r31)
+/* 801DE420 001DA080 D0 3F 01 60 */ stfs f1, 0x160(r31)
+/* 801DE424 001DA084 D0 1F 01 64 */ stfs f0, 0x164(r31)
+/* 801DE428 001DA088 48 00 00 CC */ b lbl_801DE4F4
+lbl_801DE42C:
+/* 801DE42C 001DA08C 54 80 06 31 */ rlwinm. r0, r4, 0, 0x18, 0x18
+/* 801DE430 001DA090 41 82 00 6C */ beq lbl_801DE49C
+/* 801DE434 001DA094 C0 02 96 00 */ lfs f0, lbl_80641C00
+/* 801DE438 001DA098 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 801DE43C 001DA09C 40 81 00 60 */ ble lbl_801DE49C
+/* 801DE440 001DA0A0 C0 42 96 1C */ lfs f2, lbl_80641C1C
+/* 801DE444 001DA0A4 C0 23 01 68 */ lfs f1, 0x168(r3)
+/* 801DE448 001DA0A8 C0 02 96 20 */ lfs f0, lbl_80641C20
+/* 801DE44C 001DA0AC EC 22 00 72 */ fmuls f1, f2, f1
+/* 801DE450 001DA0B0 EC 20 00 72 */ fmuls f1, f0, f1
+/* 801DE454 001DA0B4 4B FF 61 09 */ bl tan
+/* 801DE458 001DA0B8 FC 00 08 18 */ frsp f0, f1
+/* 801DE45C 001DA0BC C8 42 96 28 */ lfd f2, lbl_80641C28
+/* 801DE460 001DA0C0 EC 20 F8 24 */ fdivs f1, f0, f31
+/* 801DE464 001DA0C4 4B FF 61 79 */ bl atan2
+/* 801DE468 001DA0C8 FC 60 08 18 */ frsp f3, f1
+/* 801DE46C 001DA0CC C0 42 96 30 */ lfs f2, lbl_80641C30
+/* 801DE470 001DA0D0 EF FF 07 B2 */ fmuls f31, f31, f30
+/* 801DE474 001DA0D4 C0 22 96 34 */ lfs f1, lbl_80641C34
+/* 801DE478 001DA0D8 C0 1F 01 6C */ lfs f0, 0x16c(r31)
+/* 801DE47C 001DA0DC 38 7F 01 0C */ addi r3, r31, 0x10c
+/* 801DE480 001DA0E0 EC A2 00 F2 */ fmuls f5, f2, f3
+/* 801DE484 001DA0E4 C0 7F 01 7C */ lfs f3, 0x17c(r31)
+/* 801DE488 001DA0E8 EC 40 07 F2 */ fmuls f2, f0, f31
+/* 801DE48C 001DA0EC C0 9F 01 80 */ lfs f4, 0x180(r31)
+/* 801DE490 001DA0F0 EC 21 01 72 */ fmuls f1, f1, f5
+/* 801DE494 001DA0F4 48 04 52 09 */ bl func_8022369C
+/* 801DE498 001DA0F8 48 00 00 24 */ b lbl_801DE4BC
+lbl_801DE49C:
+/* 801DE49C 001DA0FC EF FF 07 B2 */ fmuls f31, f31, f30
+/* 801DE4A0 001DA100 C0 03 01 6C */ lfs f0, 0x16c(r3)
+/* 801DE4A4 001DA104 C0 23 01 68 */ lfs f1, 0x168(r3)
+/* 801DE4A8 001DA108 C0 63 01 7C */ lfs f3, 0x17c(r3)
+/* 801DE4AC 001DA10C EC 40 07 F2 */ fmuls f2, f0, f31
+/* 801DE4B0 001DA110 C0 83 01 80 */ lfs f4, 0x180(r3)
+/* 801DE4B4 001DA114 38 63 01 0C */ addi r3, r3, 0x10c
+/* 801DE4B8 001DA118 48 04 51 E5 */ bl func_8022369C
+lbl_801DE4BC:
+/* 801DE4BC 001DA11C C0 C2 96 10 */ lfs f6, lbl_80641C10
+/* 801DE4C0 001DA120 C0 BF 01 0C */ lfs f5, 0x10c(r31)
+/* 801DE4C4 001DA124 C0 9F 01 14 */ lfs f4, 0x114(r31)
+/* 801DE4C8 001DA128 C0 7F 01 20 */ lfs f3, 0x120(r31)
+/* 801DE4CC 001DA12C C0 5F 01 24 */ lfs f2, 0x124(r31)
+/* 801DE4D0 001DA130 C0 3F 01 34 */ lfs f1, 0x134(r31)
+/* 801DE4D4 001DA134 C0 1F 01 38 */ lfs f0, 0x138(r31)
+/* 801DE4D8 001DA138 D0 DF 01 4C */ stfs f6, 0x14c(r31)
+/* 801DE4DC 001DA13C D0 BF 01 50 */ stfs f5, 0x150(r31)
+/* 801DE4E0 001DA140 D0 9F 01 54 */ stfs f4, 0x154(r31)
+/* 801DE4E4 001DA144 D0 7F 01 58 */ stfs f3, 0x158(r31)
+/* 801DE4E8 001DA148 D0 5F 01 5C */ stfs f2, 0x15c(r31)
+/* 801DE4EC 001DA14C D0 3F 01 60 */ stfs f1, 0x160(r31)
+/* 801DE4F0 001DA150 D0 1F 01 64 */ stfs f0, 0x164(r31)
+lbl_801DE4F4:
+/* 801DE4F4 001DA154 80 1F 01 04 */ lwz r0, 0x104(r31)
+/* 801DE4F8 001DA158 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
+/* 801DE4FC 001DA15C 90 1F 01 04 */ stw r0, 0x104(r31)
+lbl_801DE500:
+/* 801DE500 001DA160 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0
+/* 801DE504 001DA164 CB E1 00 20 */ lfd f31, 0x20(r1)
+/* 801DE508 001DA168 E3 C1 00 18 */ psq_l f30, 24(r1), 0, 0
+/* 801DE50C 001DA16C CB C1 00 10 */ lfd f30, 0x10(r1)
+/* 801DE510 001DA170 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 801DE514 001DA174 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801DE518 001DA178 7C 08 03 A6 */ mtlr r0
+/* 801DE51C 001DA17C 38 21 00 30 */ addi r1, r1, 0x30
+/* 801DE520 001DA180 4E 80 00 20 */ blr
+}
+#pragma peephole on
+#endif
+#ifdef NONMATCHING
+void GScamera::func_801DE524()
+{
+
+}
+#else
+void PSVECCrossProduct();
+void PSVECNormalize();
+void PSVECSubtract();
+asm void GScamera::func_801DE524()
+{
+ nofralloc
+/* 801DE524 001DA184 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 801DE528 001DA188 7C 08 02 A6 */ mflr r0
+/* 801DE52C 001DA18C 90 01 00 54 */ stw r0, 0x54(r1)
+/* 801DE530 001DA190 93 E1 00 4C */ stw r31, 0x4c(r1)
+/* 801DE534 001DA194 7C 7F 1B 78 */ mr r31, r3
+/* 801DE538 001DA198 80 03 01 04 */ lwz r0, 0x104(r3)
+/* 801DE53C 001DA19C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
+/* 801DE540 001DA1A0 41 82 00 A4 */ beq lbl_801DE5E4
+/* 801DE544 001DA1A4 38 63 01 C4 */ addi r3, r3, 0x1c4
+/* 801DE548 001DA1A8 38 9F 01 AC */ addi r4, r31, 0x1ac
+/* 801DE54C 001DA1AC 38 A1 00 20 */ addi r5, r1, 0x20
+/* 801DE550 001DA1B0 48 09 E7 99 */ bl PSVECSubtract
+/* 801DE554 001DA1B4 C0 41 00 20 */ lfs f2, 0x20(r1)
+/* 801DE558 001DA1B8 38 61 00 38 */ addi r3, r1, 0x38
+/* 801DE55C 001DA1BC C0 21 00 24 */ lfs f1, 0x24(r1)
+/* 801DE560 001DA1C0 7C 64 1B 78 */ mr r4, r3
+/* 801DE564 001DA1C4 C0 01 00 28 */ lfs f0, 0x28(r1)
+/* 801DE568 001DA1C8 D0 41 00 38 */ stfs f2, 0x38(r1)
+/* 801DE56C 001DA1CC D0 21 00 3C */ stfs f1, 0x3c(r1)
+/* 801DE570 001DA1D0 D0 01 00 40 */ stfs f0, 0x40(r1)
+/* 801DE574 001DA1D4 48 09 E7 B5 */ bl PSVECNormalize
+/* 801DE578 001DA1D8 38 61 00 38 */ addi r3, r1, 0x38
+/* 801DE57C 001DA1DC 38 9F 01 B8 */ addi r4, r31, 0x1b8
+/* 801DE580 001DA1E0 38 A1 00 14 */ addi r5, r1, 0x14
+/* 801DE584 001DA1E4 48 09 E8 65 */ bl PSVECCrossProduct
+/* 801DE588 001DA1E8 C0 41 00 14 */ lfs f2, 0x14(r1)
+/* 801DE58C 001DA1EC 38 61 00 2C */ addi r3, r1, 0x2c
+/* 801DE590 001DA1F0 C0 21 00 18 */ lfs f1, 0x18(r1)
+/* 801DE594 001DA1F4 7C 64 1B 78 */ mr r4, r3
+/* 801DE598 001DA1F8 C0 01 00 1C */ lfs f0, 0x1c(r1)
+/* 801DE59C 001DA1FC D0 41 00 2C */ stfs f2, 0x2c(r1)
+/* 801DE5A0 001DA200 D0 21 00 30 */ stfs f1, 0x30(r1)
+/* 801DE5A4 001DA204 D0 01 00 34 */ stfs f0, 0x34(r1)
+/* 801DE5A8 001DA208 48 09 E7 81 */ bl PSVECNormalize
+/* 801DE5AC 001DA20C 38 61 00 2C */ addi r3, r1, 0x2c
+/* 801DE5B0 001DA210 38 81 00 38 */ addi r4, r1, 0x38
+/* 801DE5B4 001DA214 38 A1 00 08 */ addi r5, r1, 8
+/* 801DE5B8 001DA218 48 09 E8 31 */ bl PSVECCrossProduct
+/* 801DE5BC 001DA21C C0 01 00 08 */ lfs f0, 8(r1)
+/* 801DE5C0 001DA220 80 1F 01 04 */ lwz r0, 0x104(r31)
+/* 801DE5C4 001DA224 D0 1F 01 B8 */ stfs f0, 0x1b8(r31)
+/* 801DE5C8 001DA228 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
+/* 801DE5CC 001DA22C C0 01 00 0C */ lfs f0, 0xc(r1)
+/* 801DE5D0 001DA230 60 00 00 20 */ ori r0, r0, 0x20
+/* 801DE5D4 001DA234 D0 1F 01 BC */ stfs f0, 0x1bc(r31)
+/* 801DE5D8 001DA238 C0 01 00 10 */ lfs f0, 0x10(r1)
+/* 801DE5DC 001DA23C D0 1F 01 C0 */ stfs f0, 0x1c0(r31)
+/* 801DE5E0 001DA240 90 1F 01 04 */ stw r0, 0x104(r31)
+lbl_801DE5E4:
+/* 801DE5E4 001DA244 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 801DE5E8 001DA248 83 E1 00 4C */ lwz r31, 0x4c(r1)
+/* 801DE5EC 001DA24C 7C 08 03 A6 */ mtlr r0
+/* 801DE5F0 001DA250 38 21 00 50 */ addi r1, r1, 0x50
+/* 801DE5F4 001DA254 4E 80 00 20 */ blr
}
+#pragma peephole on
+#endif
+
+
+#ifdef NONMATCHING
+void GScamera::func3()
+{
+
+}
+#else
+extern u32 lbl_80493614;
+extern float lbl_80641C38;
+extern float lbl_80641C3C;
+extern u32 lbl_80493620;
+void PSMTXTranspose();
+void PSMTXCopy();
+void C_MTXLookAt();
+void PSVECAdd();
+void func_801F3790();
+void PSMTXMultVecSR();
+void PSMTXMultVec();
+void PSMTXInverse();
+void func_801DE524();
+asm void GScamera::func3()
+{
+ nofralloc
+/* 801DE5F8 001DA258 94 21 FE B0 */ stwu r1, -0x150(r1)
+/* 801DE5FC 001DA25C 7C 08 02 A6 */ mflr r0
+/* 801DE600 001DA260 90 01 01 54 */ stw r0, 0x154(r1)
+/* 801DE604 001DA264 93 E1 01 4C */ stw r31, 0x14c(r1)
+/* 801DE608 001DA268 7C 7F 1B 78 */ mr r31, r3
+/* 801DE60C 001DA26C 93 C1 01 48 */ stw r30, 0x148(r1)
+/* 801DE610 001DA270 80 83 01 D0 */ lwz r4, 0x1d0(r3)
+/* 801DE614 001DA274 A0 03 00 10 */ lhz r0, 0x10(r3)
+/* 801DE618 001DA278 2C 04 00 00 */ cmpwi r4, 0
+/* 801DE61C 001DA27C 54 1E 07 FE */ clrlwi r30, r0, 0x1f
+/* 801DE620 001DA280 41 82 01 6C */ beq lbl_801DE78C
+/* 801DE624 001DA284 A0 04 00 10 */ lhz r0, 0x10(r4)
+/* 801DE628 001DA288 54 00 07 FE */ clrlwi r0, r0, 0x1f
+/* 801DE62C 001DA28C 2C 00 00 01 */ cmpwi r0, 1
+/* 801DE630 001DA290 40 82 00 18 */ bne lbl_801DE648
+/* 801DE634 001DA294 81 84 01 00 */ lwz r12, 0x100(r4)
+/* 801DE638 001DA298 7C 83 23 78 */ mr r3, r4
+/* 801DE63C 001DA29C 81 8C 00 14 */ lwz r12, 0x14(r12)
+/* 801DE640 001DA2A0 7D 89 03 A6 */ mtctr r12
+/* 801DE644 001DA2A4 4E 80 04 21 */ bctrl
+lbl_801DE648:
+/* 801DE648 001DA2A8 80 DF 01 D0 */ lwz r6, 0x1d0(r31)
+/* 801DE64C 001DA2AC 38 7F 01 C4 */ addi r3, r31, 0x1c4
+/* 801DE650 001DA2B0 38 9F 01 AC */ addi r4, r31, 0x1ac
+/* 801DE654 001DA2B4 38 A1 00 80 */ addi r5, r1, 0x80
+/* 801DE658 001DA2B8 C0 46 00 DC */ lfs f2, 0xdc(r6)
+/* 801DE65C 001DA2BC C0 26 00 EC */ lfs f1, 0xec(r6)
+/* 801DE660 001DA2C0 C0 06 00 FC */ lfs f0, 0xfc(r6)
+/* 801DE664 001DA2C4 D0 41 00 8C */ stfs f2, 0x8c(r1)
+/* 801DE668 001DA2C8 D0 21 00 90 */ stfs f1, 0x90(r1)
+/* 801DE66C 001DA2CC D0 01 00 94 */ stfs f0, 0x94(r1)
+/* 801DE670 001DA2D0 D0 5F 01 C4 */ stfs f2, 0x1c4(r31)
+/* 801DE674 001DA2D4 D0 3F 01 C8 */ stfs f1, 0x1c8(r31)
+/* 801DE678 001DA2D8 D0 1F 01 CC */ stfs f0, 0x1cc(r31)
+/* 801DE67C 001DA2DC 48 09 E6 6D */ bl PSVECSubtract
+/* 801DE680 001DA2E0 C0 41 00 80 */ lfs f2, 0x80(r1)
+/* 801DE684 001DA2E4 38 61 00 A4 */ addi r3, r1, 0xa4
+/* 801DE688 001DA2E8 C0 21 00 84 */ lfs f1, 0x84(r1)
+/* 801DE68C 001DA2EC 7C 64 1B 78 */ mr r4, r3
+/* 801DE690 001DA2F0 C0 01 00 88 */ lfs f0, 0x88(r1)
+/* 801DE694 001DA2F4 D0 41 00 A4 */ stfs f2, 0xa4(r1)
+/* 801DE698 001DA2F8 D0 21 00 A8 */ stfs f1, 0xa8(r1)
+/* 801DE69C 001DA2FC D0 01 00 AC */ stfs f0, 0xac(r1)
+/* 801DE6A0 001DA300 48 09 E6 89 */ bl PSVECNormalize
+/* 801DE6A4 001DA304 3C 80 80 49 */ lis r4, lbl_80493614@ha
+/* 801DE6A8 001DA308 38 61 00 A4 */ addi r3, r1, 0xa4
+/* 801DE6AC 001DA30C 38 84 36 14 */ addi r4, r4, lbl_80493614@l
+/* 801DE6B0 001DA310 38 A1 00 74 */ addi r5, r1, 0x74
+/* 801DE6B4 001DA314 48 09 E7 35 */ bl PSVECCrossProduct
+/* 801DE6B8 001DA318 C0 81 00 74 */ lfs f4, 0x74(r1)
+/* 801DE6BC 001DA31C C0 22 96 38 */ lfs f1, lbl_80641C38
+/* 801DE6C0 001DA320 C0 61 00 78 */ lfs f3, 0x78(r1)
+/* 801DE6C4 001DA324 C0 41 00 7C */ lfs f2, 0x7c(r1)
+/* 801DE6C8 001DA328 FC 04 08 40 */ fcmpo cr0, f4, f1
+/* 801DE6CC 001DA32C D0 81 00 98 */ stfs f4, 0x98(r1)
+/* 801DE6D0 001DA330 D0 61 00 9C */ stfs f3, 0x9c(r1)
+/* 801DE6D4 001DA334 D0 41 00 A0 */ stfs f2, 0xa0(r1)
+/* 801DE6D8 001DA338 40 80 00 30 */ bge lbl_801DE708
+/* 801DE6DC 001DA33C C0 02 96 3C */ lfs f0, lbl_80641C3C
+/* 801DE6E0 001DA340 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 801DE6E4 001DA344 40 81 00 24 */ ble lbl_801DE708
+/* 801DE6E8 001DA348 FC 03 08 40 */ fcmpo cr0, f3, f1
+/* 801DE6EC 001DA34C 40 80 00 1C */ bge lbl_801DE708
+/* 801DE6F0 001DA350 FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 801DE6F4 001DA354 40 81 00 14 */ ble lbl_801DE708
+/* 801DE6F8 001DA358 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 801DE6FC 001DA35C 40 80 00 0C */ bge lbl_801DE708
+/* 801DE700 001DA360 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 801DE704 001DA364 41 81 00 0C */ bgt lbl_801DE710
+lbl_801DE708:
+/* 801DE708 001DA368 38 00 00 00 */ li r0, 0
+/* 801DE70C 001DA36C 48 00 00 08 */ b lbl_801DE714
+lbl_801DE710:
+/* 801DE710 001DA370 38 00 00 01 */ li r0, 1
+lbl_801DE714:
+/* 801DE714 001DA374 2C 00 00 00 */ cmpwi r0, 0
+/* 801DE718 001DA378 41 82 00 30 */ beq lbl_801DE748
+/* 801DE71C 001DA37C 3C 80 80 49 */ lis r4, lbl_80493620@ha
+/* 801DE720 001DA380 38 61 00 A4 */ addi r3, r1, 0xa4
+/* 801DE724 001DA384 38 84 36 20 */ addi r4, r4, lbl_80493620@l
+/* 801DE728 001DA388 38 A1 00 68 */ addi r5, r1, 0x68
+/* 801DE72C 001DA38C 48 09 E6 BD */ bl PSVECCrossProduct
+/* 801DE730 001DA390 C0 41 00 68 */ lfs f2, 0x68(r1)
+/* 801DE734 001DA394 C0 21 00 6C */ lfs f1, 0x6c(r1)
+/* 801DE738 001DA398 C0 01 00 70 */ lfs f0, 0x70(r1)
+/* 801DE73C 001DA39C D0 41 00 98 */ stfs f2, 0x98(r1)
+/* 801DE740 001DA3A0 D0 21 00 9C */ stfs f1, 0x9c(r1)
+/* 801DE744 001DA3A4 D0 01 00 A0 */ stfs f0, 0xa0(r1)
+lbl_801DE748:
+/* 801DE748 001DA3A8 38 61 00 98 */ addi r3, r1, 0x98
+/* 801DE74C 001DA3AC 7C 64 1B 78 */ mr r4, r3
+/* 801DE750 001DA3B0 48 09 E5 D9 */ bl PSVECNormalize
+/* 801DE754 001DA3B4 38 61 00 98 */ addi r3, r1, 0x98
+/* 801DE758 001DA3B8 38 81 00 A4 */ addi r4, r1, 0xa4
+/* 801DE75C 001DA3BC 38 A1 00 5C */ addi r5, r1, 0x5c
+/* 801DE760 001DA3C0 48 09 E6 89 */ bl PSVECCrossProduct
+/* 801DE764 001DA3C4 C0 01 00 5C */ lfs f0, 0x5c(r1)
+/* 801DE768 001DA3C8 80 1F 01 04 */ lwz r0, 0x104(r31)
+/* 801DE76C 001DA3CC D0 1F 01 B8 */ stfs f0, 0x1b8(r31)
+/* 801DE770 001DA3D0 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
+/* 801DE774 001DA3D4 C0 01 00 60 */ lfs f0, 0x60(r1)
+/* 801DE778 001DA3D8 60 00 00 20 */ ori r0, r0, 0x20
+/* 801DE77C 001DA3DC D0 1F 01 BC */ stfs f0, 0x1bc(r31)
+/* 801DE780 001DA3E0 C0 01 00 64 */ lfs f0, 0x64(r1)
+/* 801DE784 001DA3E4 D0 1F 01 C0 */ stfs f0, 0x1c0(r31)
+/* 801DE788 001DA3E8 90 1F 01 04 */ stw r0, 0x104(r31)
+lbl_801DE78C:
+/* 801DE78C 001DA3EC 80 1F 01 04 */ lwz r0, 0x104(r31)
+/* 801DE790 001DA3F0 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
+/* 801DE794 001DA3F4 41 82 00 0C */ beq lbl_801DE7A0
+/* 801DE798 001DA3F8 7F E3 FB 78 */ mr r3, r31
+/* 801DE79C 001DA3FC 4B FF FD 89 */ bl func_801DE524
+lbl_801DE7A0:
+/* 801DE7A0 001DA400 80 1F 01 04 */ lwz r0, 0x104(r31)
+/* 801DE7A4 001DA404 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
+/* 801DE7A8 001DA408 40 82 00 0C */ bne lbl_801DE7B4
+/* 801DE7AC 001DA40C 2C 1E 00 00 */ cmpwi r30, 0
+/* 801DE7B0 001DA410 41 82 02 74 */ beq lbl_801DEA24
+lbl_801DE7B4:
+/* 801DE7B4 001DA414 38 7F 00 D0 */ addi r3, r31, 0xd0
+/* 801DE7B8 001DA418 38 81 01 10 */ addi r4, r1, 0x110
+/* 801DE7BC 001DA41C 48 09 D8 ED */ bl PSMTXInverse
+/* 801DE7C0 001DA420 38 61 01 10 */ addi r3, r1, 0x110
+/* 801DE7C4 001DA424 38 9F 01 AC */ addi r4, r31, 0x1ac
+/* 801DE7C8 001DA428 38 A1 00 50 */ addi r5, r1, 0x50
+/* 801DE7CC 001DA42C 48 09 E2 31 */ bl PSMTXMultVec
+/* 801DE7D0 001DA430 C0 01 00 50 */ lfs f0, 0x50(r1)
+/* 801DE7D4 001DA434 38 61 01 10 */ addi r3, r1, 0x110
+/* 801DE7D8 001DA438 38 9F 01 B8 */ addi r4, r31, 0x1b8
+/* 801DE7DC 001DA43C 38 A1 00 44 */ addi r5, r1, 0x44
+/* 801DE7E0 001DA440 D0 1F 01 88 */ stfs f0, 0x188(r31)
+/* 801DE7E4 001DA444 C0 01 00 54 */ lfs f0, 0x54(r1)
+/* 801DE7E8 001DA448 D0 1F 01 8C */ stfs f0, 0x18c(r31)
+/* 801DE7EC 001DA44C C0 01 00 58 */ lfs f0, 0x58(r1)
+/* 801DE7F0 001DA450 D0 1F 01 90 */ stfs f0, 0x190(r31)
+/* 801DE7F4 001DA454 48 09 E2 5D */ bl PSMTXMultVecSR
+/* 801DE7F8 001DA458 C0 01 00 44 */ lfs f0, 0x44(r1)
+/* 801DE7FC 001DA45C 38 61 01 10 */ addi r3, r1, 0x110
+/* 801DE800 001DA460 38 9F 01 C4 */ addi r4, r31, 0x1c4
+/* 801DE804 001DA464 38 A1 00 38 */ addi r5, r1, 0x38
+/* 801DE808 001DA468 D0 1F 01 94 */ stfs f0, 0x194(r31)
+/* 801DE80C 001DA46C C0 01 00 48 */ lfs f0, 0x48(r1)
+/* 801DE810 001DA470 D0 1F 01 98 */ stfs f0, 0x198(r31)
+/* 801DE814 001DA474 C0 01 00 4C */ lfs f0, 0x4c(r1)
+/* 801DE818 001DA478 D0 1F 01 9C */ stfs f0, 0x19c(r31)
+/* 801DE81C 001DA47C 48 09 E1 E1 */ bl PSMTXMultVec
+/* 801DE820 001DA480 C0 01 00 38 */ lfs f0, 0x38(r1)
+/* 801DE824 001DA484 2C 1E 00 00 */ cmpwi r30, 0
+/* 801DE828 001DA488 D0 1F 01 A0 */ stfs f0, 0x1a0(r31)
+/* 801DE82C 001DA48C C0 01 00 3C */ lfs f0, 0x3c(r1)
+/* 801DE830 001DA490 D0 1F 01 A4 */ stfs f0, 0x1a4(r31)
+/* 801DE834 001DA494 C0 01 00 40 */ lfs f0, 0x40(r1)
+/* 801DE838 001DA498 D0 1F 01 A8 */ stfs f0, 0x1a8(r31)
+/* 801DE83C 001DA49C 41 82 00 0C */ beq lbl_801DE848
+/* 801DE840 001DA4A0 7F E3 FB 78 */ mr r3, r31
+/* 801DE844 001DA4A4 48 01 4F 4D */ bl func_801F3790
+lbl_801DE848:
+/* 801DE848 001DA4A8 38 7F 00 D0 */ addi r3, r31, 0xd0
+/* 801DE84C 001DA4AC 38 9F 01 88 */ addi r4, r31, 0x188
+/* 801DE850 001DA4B0 38 A1 00 2C */ addi r5, r1, 0x2c
+/* 801DE854 001DA4B4 48 09 E1 A9 */ bl PSMTXMultVec
+/* 801DE858 001DA4B8 C0 01 00 2C */ lfs f0, 0x2c(r1)
+/* 801DE85C 001DA4BC 38 7F 00 D0 */ addi r3, r31, 0xd0
+/* 801DE860 001DA4C0 38 9F 01 94 */ addi r4, r31, 0x194
+/* 801DE864 001DA4C4 38 A1 00 20 */ addi r5, r1, 0x20
+/* 801DE868 001DA4C8 D0 1F 01 AC */ stfs f0, 0x1ac(r31)
+/* 801DE86C 001DA4CC C0 01 00 30 */ lfs f0, 0x30(r1)
+/* 801DE870 001DA4D0 D0 1F 01 B0 */ stfs f0, 0x1b0(r31)
+/* 801DE874 001DA4D4 C0 01 00 34 */ lfs f0, 0x34(r1)
+/* 801DE878 001DA4D8 D0 1F 01 B4 */ stfs f0, 0x1b4(r31)
+/* 801DE87C 001DA4DC 48 09 E1 D5 */ bl PSMTXMultVecSR
+/* 801DE880 001DA4E0 C0 01 00 20 */ lfs f0, 0x20(r1)
+/* 801DE884 001DA4E4 38 7F 00 D0 */ addi r3, r31, 0xd0
+/* 801DE888 001DA4E8 38 9F 01 A0 */ addi r4, r31, 0x1a0
+/* 801DE88C 001DA4EC 38 A1 00 14 */ addi r5, r1, 0x14
+/* 801DE890 001DA4F0 D0 1F 01 B8 */ stfs f0, 0x1b8(r31)
+/* 801DE894 001DA4F4 C0 01 00 24 */ lfs f0, 0x24(r1)
+/* 801DE898 001DA4F8 D0 1F 01 BC */ stfs f0, 0x1bc(r31)
+/* 801DE89C 001DA4FC C0 01 00 28 */ lfs f0, 0x28(r1)
+/* 801DE8A0 001DA500 D0 1F 01 C0 */ stfs f0, 0x1c0(r31)
+/* 801DE8A4 001DA504 48 09 E1 59 */ bl PSMTXMultVec
+/* 801DE8A8 001DA508 C0 21 00 14 */ lfs f1, 0x14(r1)
+/* 801DE8AC 001DA50C C0 1F 01 B8 */ lfs f0, 0x1b8(r31)
+/* 801DE8B0 001DA510 D0 3F 01 C4 */ stfs f1, 0x1c4(r31)
+/* 801DE8B4 001DA514 C0 42 96 38 */ lfs f2, lbl_80641C38
+/* 801DE8B8 001DA518 C0 21 00 18 */ lfs f1, 0x18(r1)
+/* 801DE8BC 001DA51C FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 801DE8C0 001DA520 D0 3F 01 C8 */ stfs f1, 0x1c8(r31)
+/* 801DE8C4 001DA524 C0 21 00 1C */ lfs f1, 0x1c(r1)
+/* 801DE8C8 001DA528 D0 3F 01 CC */ stfs f1, 0x1cc(r31)
+/* 801DE8CC 001DA52C 40 80 00 38 */ bge lbl_801DE904
+/* 801DE8D0 001DA530 C0 22 96 3C */ lfs f1, lbl_80641C3C
+/* 801DE8D4 001DA534 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 801DE8D8 001DA538 40 81 00 2C */ ble lbl_801DE904
+/* 801DE8DC 001DA53C C0 1F 01 BC */ lfs f0, 0x1bc(r31)
+/* 801DE8E0 001DA540 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 801DE8E4 001DA544 40 80 00 20 */ bge lbl_801DE904
+/* 801DE8E8 001DA548 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 801DE8EC 001DA54C 40 81 00 18 */ ble lbl_801DE904
+/* 801DE8F0 001DA550 C0 1F 01 C0 */ lfs f0, 0x1c0(r31)
+/* 801DE8F4 001DA554 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 801DE8F8 001DA558 40 80 00 0C */ bge lbl_801DE904
+/* 801DE8FC 001DA55C FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 801DE900 001DA560 41 81 00 0C */ bgt lbl_801DE90C
+lbl_801DE904:
+/* 801DE904 001DA564 38 00 00 00 */ li r0, 0
+/* 801DE908 001DA568 48 00 00 08 */ b lbl_801DE910
+lbl_801DE90C:
+/* 801DE90C 001DA56C 38 00 00 01 */ li r0, 1
+lbl_801DE910:
+/* 801DE910 001DA570 2C 00 00 00 */ cmpwi r0, 0
+/* 801DE914 001DA574 41 82 00 24 */ beq lbl_801DE938
+/* 801DE918 001DA578 3C 60 80 49 */ lis r3, lbl_80493614@ha
+/* 801DE91C 001DA57C C0 03 36 14 */ lfs f0, lbl_80493614@l(r3)
+/* 801DE920 001DA580 38 63 36 14 */ addi r3, r3, 0x3614
+/* 801DE924 001DA584 D0 1F 01 B8 */ stfs f0, 0x1b8(r31)
+/* 801DE928 001DA588 C0 03 00 04 */ lfs f0, 4(r3)
+/* 801DE92C 001DA58C D0 1F 01 BC */ stfs f0, 0x1bc(r31)
+/* 801DE930 001DA590 C0 03 00 08 */ lfs f0, 8(r3)
+/* 801DE934 001DA594 D0 1F 01 C0 */ stfs f0, 0x1c0(r31)
+lbl_801DE938:
+/* 801DE938 001DA598 C0 3F 01 AC */ lfs f1, 0x1ac(r31)
+/* 801DE93C 001DA59C C0 1F 01 C4 */ lfs f0, 0x1c4(r31)
+/* 801DE940 001DA5A0 C0 62 96 38 */ lfs f3, lbl_80641C38
+/* 801DE944 001DA5A4 EC 01 00 28 */ fsubs f0, f1, f0
+/* 801DE948 001DA5A8 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 801DE94C 001DA5AC 40 80 00 48 */ bge lbl_801DE994
+/* 801DE950 001DA5B0 C0 42 96 3C */ lfs f2, lbl_80641C3C
+/* 801DE954 001DA5B4 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 801DE958 001DA5B8 40 81 00 3C */ ble lbl_801DE994
+/* 801DE95C 001DA5BC C0 3F 01 B0 */ lfs f1, 0x1b0(r31)
+/* 801DE960 001DA5C0 C0 1F 01 C8 */ lfs f0, 0x1c8(r31)
+/* 801DE964 001DA5C4 EC 01 00 28 */ fsubs f0, f1, f0
+/* 801DE968 001DA5C8 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 801DE96C 001DA5CC 40 80 00 28 */ bge lbl_801DE994
+/* 801DE970 001DA5D0 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 801DE974 001DA5D4 40 81 00 20 */ ble lbl_801DE994
+/* 801DE978 001DA5D8 C0 3F 01 B4 */ lfs f1, 0x1b4(r31)
+/* 801DE97C 001DA5DC C0 1F 01 CC */ lfs f0, 0x1cc(r31)
+/* 801DE980 001DA5E0 EC 01 00 28 */ fsubs f0, f1, f0
+/* 801DE984 001DA5E4 FC 00 18 40 */ fcmpo cr0, f0, f3
+/* 801DE988 001DA5E8 40 80 00 0C */ bge lbl_801DE994
+/* 801DE98C 001DA5EC FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 801DE990 001DA5F0 41 81 00 0C */ bgt lbl_801DE99C
+lbl_801DE994:
+/* 801DE994 001DA5F4 38 00 00 00 */ li r0, 0
+/* 801DE998 001DA5F8 48 00 00 08 */ b lbl_801DE9A0
+lbl_801DE99C:
+/* 801DE99C 001DA5FC 38 00 00 01 */ li r0, 1
+lbl_801DE9A0:
+/* 801DE9A0 001DA600 2C 00 00 00 */ cmpwi r0, 0
+/* 801DE9A4 001DA604 41 82 00 30 */ beq lbl_801DE9D4
+/* 801DE9A8 001DA608 3C 80 80 49 */ lis r4, lbl_80493620@ha
+/* 801DE9AC 001DA60C 38 7F 01 AC */ addi r3, r31, 0x1ac
+/* 801DE9B0 001DA610 38 84 36 20 */ addi r4, r4, lbl_80493620@l
+/* 801DE9B4 001DA614 38 A1 00 08 */ addi r5, r1, 8
+/* 801DE9B8 001DA618 48 09 E3 0D */ bl PSVECAdd
+/* 801DE9BC 001DA61C C0 01 00 08 */ lfs f0, 8(r1)
+/* 801DE9C0 001DA620 D0 1F 01 C4 */ stfs f0, 0x1c4(r31)
+/* 801DE9C4 001DA624 C0 01 00 0C */ lfs f0, 0xc(r1)
+/* 801DE9C8 001DA628 D0 1F 01 C8 */ stfs f0, 0x1c8(r31)
+/* 801DE9CC 001DA62C C0 01 00 10 */ lfs f0, 0x10(r1)
+/* 801DE9D0 001DA630 D0 1F 01 CC */ stfs f0, 0x1cc(r31)
+lbl_801DE9D4:
+/* 801DE9D4 001DA634 38 7F 01 D4 */ addi r3, r31, 0x1d4
+/* 801DE9D8 001DA638 38 9F 01 AC */ addi r4, r31, 0x1ac
+/* 801DE9DC 001DA63C 38 BF 01 B8 */ addi r5, r31, 0x1b8
+/* 801DE9E0 001DA640 38 DF 01 C4 */ addi r6, r31, 0x1c4
+/* 801DE9E4 001DA644 48 09 DC 81 */ bl C_MTXLookAt
+/* 801DE9E8 001DA648 38 7F 01 D4 */ addi r3, r31, 0x1d4
+/* 801DE9EC 001DA64C 38 81 00 E0 */ addi r4, r1, 0xe0
+/* 801DE9F0 001DA650 48 09 D6 B9 */ bl PSMTXInverse
+/* 801DE9F4 001DA654 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 801DE9F8 001DA658 38 9F 02 04 */ addi r4, r31, 0x204
+/* 801DE9FC 001DA65C 48 09 D5 5D */ bl PSMTXCopy
+/* 801DEA00 001DA660 38 7F 02 04 */ addi r3, r31, 0x204
+/* 801DEA04 001DA664 38 81 00 B0 */ addi r4, r1, 0xb0
+/* 801DEA08 001DA668 48 09 D6 51 */ bl PSMTXTranspose
+/* 801DEA0C 001DA66C 38 61 00 B0 */ addi r3, r1, 0xb0
+/* 801DEA10 001DA670 38 9F 02 34 */ addi r4, r31, 0x234
+/* 801DEA14 001DA674 48 09 D5 45 */ bl PSMTXCopy
+/* 801DEA18 001DA678 80 1F 01 04 */ lwz r0, 0x104(r31)
+/* 801DEA1C 001DA67C 54 00 06 F2 */ rlwinm r0, r0, 0, 0x1b, 0x19
+/* 801DEA20 001DA680 90 1F 01 04 */ stw r0, 0x104(r31)
+lbl_801DEA24:
+/* 801DEA24 001DA684 80 01 01 54 */ lwz r0, 0x154(r1)
+/* 801DEA28 001DA688 83 E1 01 4C */ lwz r31, 0x14c(r1)
+/* 801DEA2C 001DA68C 83 C1 01 48 */ lwz r30, 0x148(r1)
+/* 801DEA30 001DA690 7C 08 03 A6 */ mtlr r0
+/* 801DEA34 001DA694 38 21 01 50 */ addi r1, r1, 0x150
+/* 801DEA38 001DA698 4E 80 00 20 */ blr
+}
+#pragma peephole on
+#endif
+
+#ifdef NONMATCHING
+void GScamera::func_801DEA3C()
+{
+
+}
+#else
+extern u32 lbl_804932E0;
+extern float lbl_80641C40;
+void PSMTXConcat();
+void PSMTXQuat();
+void C_QUATRotAxisRad();
+void acos();
+void PSMTXScale();
+void sqrt();
+
+asm void GScamera::func_801DEA3C()
+{
+nofralloc
+/* 801DEA3C 001DA69C 94 21 FF 50 */ stwu r1, -0xb0(r1)
+/* 801DEA40 001DA6A0 7C 08 02 A6 */ mflr r0
+/* 801DEA44 001DA6A4 C0 25 00 00 */ lfs f1, 0(r5)
+/* 801DEA48 001DA6A8 C0 05 00 10 */ lfs f0, 0x10(r5)
+/* 801DEA4C 001DA6AC C0 45 00 20 */ lfs f2, 0x20(r5)
+/* 801DEA50 001DA6B0 EC 21 00 72 */ fmuls f1, f1, f1
+/* 801DEA54 001DA6B4 EC 00 00 32 */ fmuls f0, f0, f0
+/* 801DEA58 001DA6B8 90 01 00 B4 */ stw r0, 0xb4(r1)
+/* 801DEA5C 001DA6BC EC 42 00 B2 */ fmuls f2, f2, f2
+/* 801DEA60 001DA6C0 C0 62 96 10 */ lfs f3, lbl_80641C10
+/* 801DEA64 001DA6C4 93 E1 00 AC */ stw r31, 0xac(r1)
+/* 801DEA68 001DA6C8 EC 01 00 2A */ fadds f0, f1, f0
+/* 801DEA6C 001DA6CC 93 C1 00 A8 */ stw r30, 0xa8(r1)
+/* 801DEA70 001DA6D0 7C BE 2B 78 */ mr r30, r5
+/* 801DEA74 001DA6D4 7C DF 33 78 */ mr r31, r6
+/* 801DEA78 001DA6D8 EC 22 00 2A */ fadds f1, f2, f0
+/* 801DEA7C 001DA6DC 93 A1 00 A4 */ stw r29, 0xa4(r1)
+/* 801DEA80 001DA6E0 7C 9D 23 78 */ mr r29, r4
+/* 801DEA84 001DA6E4 93 81 00 A0 */ stw r28, 0xa0(r1)
+/* 801DEA88 001DA6E8 7C 7C 1B 78 */ mr r28, r3
+/* 801DEA8C 001DA6EC FC 01 18 40 */ fcmpo cr0, f1, f3
+/* 801DEA90 001DA6F0 4C 40 13 82 */ cror 2, 0, 2
+/* 801DEA94 001DA6F4 40 82 00 08 */ bne lbl_801DEA9C
+/* 801DEA98 001DA6F8 48 00 00 0C */ b lbl_801DEAA4
+lbl_801DEA9C:
+/* 801DEA9C 001DA6FC 4B FF 5D 99 */ bl sqrt
+/* 801DEAA0 001DA700 FC 60 08 18 */ frsp f3, f1
+lbl_801DEAA4:
+/* 801DEAA4 001DA704 C0 3E 00 04 */ lfs f1, 4(r30)
+/* 801DEAA8 001DA708 C0 1E 00 14 */ lfs f0, 0x14(r30)
+/* 801DEAAC 001DA70C EC 21 00 72 */ fmuls f1, f1, f1
+/* 801DEAB0 001DA710 C0 5E 00 24 */ lfs f2, 0x24(r30)
+/* 801DEAB4 001DA714 EC 00 00 32 */ fmuls f0, f0, f0
+/* 801DEAB8 001DA718 C0 82 96 10 */ lfs f4, lbl_80641C10
+/* 801DEABC 001DA71C EC 42 00 B2 */ fmuls f2, f2, f2
+/* 801DEAC0 001DA720 D0 61 00 18 */ stfs f3, 0x18(r1)
+/* 801DEAC4 001DA724 EC 01 00 2A */ fadds f0, f1, f0
+/* 801DEAC8 001DA728 EC 22 00 2A */ fadds f1, f2, f0
+/* 801DEACC 001DA72C FC 01 20 40 */ fcmpo cr0, f1, f4
+/* 801DEAD0 001DA730 4C 40 13 82 */ cror 2, 0, 2
+/* 801DEAD4 001DA734 40 82 00 08 */ bne lbl_801DEADC
+/* 801DEAD8 001DA738 48 00 00 0C */ b lbl_801DEAE4
+lbl_801DEADC:
+/* 801DEADC 001DA73C 4B FF 5D 59 */ bl sqrt
+/* 801DEAE0 001DA740 FC 80 08 18 */ frsp f4, f1
+lbl_801DEAE4:
+/* 801DEAE4 001DA744 C0 3E 00 08 */ lfs f1, 8(r30)
+/* 801DEAE8 001DA748 C0 1E 00 18 */ lfs f0, 0x18(r30)
+/* 801DEAEC 001DA74C EC 21 00 72 */ fmuls f1, f1, f1
+/* 801DEAF0 001DA750 C0 5E 00 28 */ lfs f2, 0x28(r30)
+/* 801DEAF4 001DA754 EC 00 00 32 */ fmuls f0, f0, f0
+/* 801DEAF8 001DA758 C0 A2 96 10 */ lfs f5, lbl_80641C10
+/* 801DEAFC 001DA75C EC 42 00 B2 */ fmuls f2, f2, f2
+/* 801DEB00 001DA760 D0 81 00 1C */ stfs f4, 0x1c(r1)
+/* 801DEB04 001DA764 EC 01 00 2A */ fadds f0, f1, f0
+/* 801DEB08 001DA768 EC 22 00 2A */ fadds f1, f2, f0
+/* 801DEB0C 001DA76C FC 01 28 40 */ fcmpo cr0, f1, f5
+/* 801DEB10 001DA770 4C 40 13 82 */ cror 2, 0, 2
+/* 801DEB14 001DA774 40 82 00 08 */ bne lbl_801DEB1C
+/* 801DEB18 001DA778 48 00 00 0C */ b lbl_801DEB24
+lbl_801DEB1C:
+/* 801DEB1C 001DA77C 4B FF 5D 19 */ bl sqrt
+/* 801DEB20 001DA780 FC A0 08 18 */ frsp f5, f1
+lbl_801DEB24:
+/* 801DEB24 001DA784 FC 60 28 18 */ frsp f3, f5
+/* 801DEB28 001DA788 D0 A1 00 20 */ stfs f5, 0x20(r1)
+/* 801DEB2C 001DA78C C0 21 00 18 */ lfs f1, 0x18(r1)
+/* 801DEB30 001DA790 38 61 00 70 */ addi r3, r1, 0x70
+/* 801DEB34 001DA794 C0 41 00 1C */ lfs f2, 0x1c(r1)
+/* 801DEB38 001DA798 48 09 DA 09 */ bl PSMTXScale
+/* 801DEB3C 001DA79C C0 5E 00 0C */ lfs f2, 0xc(r30)
+/* 801DEB40 001DA7A0 2C 1F 00 00 */ cmpwi r31, 0
+/* 801DEB44 001DA7A4 C0 3E 00 1C */ lfs f1, 0x1c(r30)
+/* 801DEB48 001DA7A8 C0 1E 00 2C */ lfs f0, 0x2c(r30)
+/* 801DEB4C 001DA7AC D0 41 00 30 */ stfs f2, 0x30(r1)
+/* 801DEB50 001DA7B0 D0 21 00 34 */ stfs f1, 0x34(r1)
+/* 801DEB54 001DA7B4 D0 01 00 38 */ stfs f0, 0x38(r1)
+/* 801DEB58 001DA7B8 41 82 01 10 */ beq lbl_801DEC68
+/* 801DEB5C 001DA7BC 38 7D 01 AC */ addi r3, r29, 0x1ac
+/* 801DEB60 001DA7C0 38 81 00 30 */ addi r4, r1, 0x30
+/* 801DEB64 001DA7C4 38 A1 00 24 */ addi r5, r1, 0x24
+/* 801DEB68 001DA7C8 48 09 E1 81 */ bl PSVECSubtract
+/* 801DEB6C 001DA7CC C0 01 00 24 */ lfs f0, 0x24(r1)
+/* 801DEB70 001DA7D0 C0 42 96 38 */ lfs f2, lbl_80641C38
+/* 801DEB74 001DA7D4 C0 62 96 10 */ lfs f3, lbl_80641C10
+/* 801DEB78 001DA7D8 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 801DEB7C 001DA7DC D0 61 00 28 */ stfs f3, 0x28(r1)
+/* 801DEB80 001DA7E0 40 80 00 34 */ bge lbl_801DEBB4
+/* 801DEB84 001DA7E4 C0 22 96 3C */ lfs f1, lbl_80641C3C
+/* 801DEB88 001DA7E8 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 801DEB8C 001DA7EC 40 81 00 28 */ ble lbl_801DEBB4
+/* 801DEB90 001DA7F0 FC 03 10 40 */ fcmpo cr0, f3, f2
+/* 801DEB94 001DA7F4 40 80 00 20 */ bge lbl_801DEBB4
+/* 801DEB98 001DA7F8 FC 03 08 40 */ fcmpo cr0, f3, f1
+/* 801DEB9C 001DA7FC 40 81 00 18 */ ble lbl_801DEBB4
+/* 801DEBA0 001DA800 C0 01 00 2C */ lfs f0, 0x2c(r1)
+/* 801DEBA4 001DA804 FC 00 10 40 */ fcmpo cr0, f0, f2
+/* 801DEBA8 001DA808 40 80 00 0C */ bge lbl_801DEBB4
+/* 801DEBAC 001DA80C FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 801DEBB0 001DA810 41 81 00 0C */ bgt lbl_801DEBBC
+lbl_801DEBB4:
+/* 801DEBB4 001DA814 38 00 00 00 */ li r0, 0
+/* 801DEBB8 001DA818 48 00 00 08 */ b lbl_801DEBC0
+lbl_801DEBBC:
+/* 801DEBBC 001DA81C 38 00 00 01 */ li r0, 1
+lbl_801DEBC0:
+/* 801DEBC0 001DA820 2C 00 00 00 */ cmpwi r0, 0
+/* 801DEBC4 001DA824 41 82 00 18 */ beq lbl_801DEBDC
+/* 801DEBC8 001DA828 3C 60 80 49 */ lis r3, lbl_804932E0@ha
+/* 801DEBCC 001DA82C 7F 84 E3 78 */ mr r4, r28
+/* 801DEBD0 001DA830 38 63 32 E0 */ addi r3, r3, lbl_804932E0@l
+/* 801DEBD4 001DA834 48 09 D3 85 */ bl PSMTXCopy
+/* 801DEBD8 001DA838 48 00 00 C4 */ b lbl_801DEC9C
+lbl_801DEBDC:
+/* 801DEBDC 001DA83C 38 61 00 24 */ addi r3, r1, 0x24
+/* 801DEBE0 001DA840 7C 64 1B 78 */ mr r4, r3
+/* 801DEBE4 001DA844 48 09 E1 45 */ bl PSVECNormalize
+/* 801DEBE8 001DA848 C0 21 00 2C */ lfs f1, 0x2c(r1)
+/* 801DEBEC 001DA84C C0 02 96 00 */ lfs f0, lbl_80641C00
+/* 801DEBF0 001DA850 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 801DEBF4 001DA854 4C 41 13 82 */ cror 2, 1, 2
+/* 801DEBF8 001DA858 40 82 00 0C */ bne lbl_801DEC04
+/* 801DEBFC 001DA85C C0 22 96 10 */ lfs f1, lbl_80641C10
+/* 801DEC00 001DA860 48 00 00 24 */ b lbl_801DEC24
+lbl_801DEC04:
+/* 801DEC04 001DA864 C0 02 96 14 */ lfs f0, lbl_80641C14
+/* 801DEC08 001DA868 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 801DEC0C 001DA86C 4C 40 13 82 */ cror 2, 0, 2
+/* 801DEC10 001DA870 40 82 00 0C */ bne lbl_801DEC1C
+/* 801DEC14 001DA874 C0 22 96 40 */ lfs f1, lbl_80641C40
+/* 801DEC18 001DA878 48 00 00 0C */ b lbl_801DEC24
+lbl_801DEC1C:
+/* 801DEC1C 001DA87C 4B FF 59 B9 */ bl acos
+/* 801DEC20 001DA880 FC 20 08 18 */ frsp f1, f1
+lbl_801DEC24:
+/* 801DEC24 001DA884 C0 41 00 24 */ lfs f2, 0x24(r1)
+/* 801DEC28 001DA888 C0 02 96 10 */ lfs f0, lbl_80641C10
+/* 801DEC2C 001DA88C FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 801DEC30 001DA890 40 80 00 08 */ bge lbl_801DEC38
+/* 801DEC34 001DA894 FC 20 08 50 */ fneg f1, f1
+lbl_801DEC38:
+/* 801DEC38 001DA898 3C 80 80 49 */ lis r4, lbl_80493614@ha
+/* 801DEC3C 001DA89C 38 61 00 08 */ addi r3, r1, 8
+/* 801DEC40 001DA8A0 38 84 36 14 */ addi r4, r4, lbl_80493614@l
+/* 801DEC44 001DA8A4 48 09 E4 E1 */ bl C_QUATRotAxisRad
+/* 801DEC48 001DA8A8 38 61 00 40 */ addi r3, r1, 0x40
+/* 801DEC4C 001DA8AC 38 81 00 08 */ addi r4, r1, 8
+/* 801DEC50 001DA8B0 48 09 D9 71 */ bl PSMTXQuat
+/* 801DEC54 001DA8B4 38 81 00 70 */ addi r4, r1, 0x70
+/* 801DEC58 001DA8B8 38 61 00 40 */ addi r3, r1, 0x40
+/* 801DEC5C 001DA8BC 7C 85 23 78 */ mr r5, r4
+/* 801DEC60 001DA8C0 48 09 D3 2D */ bl PSMTXConcat
+/* 801DEC64 001DA8C4 48 00 00 14 */ b lbl_801DEC78
+lbl_801DEC68:
+/* 801DEC68 001DA8C8 38 81 00 70 */ addi r4, r1, 0x70
+/* 801DEC6C 001DA8CC 38 7D 02 04 */ addi r3, r29, 0x204
+/* 801DEC70 001DA8D0 7C 85 23 78 */ mr r5, r4
+/* 801DEC74 001DA8D4 48 09 D3 19 */ bl PSMTXConcat
+lbl_801DEC78:
+/* 801DEC78 001DA8D8 C0 41 00 30 */ lfs f2, 0x30(r1)
+/* 801DEC7C 001DA8DC 7F 84 E3 78 */ mr r4, r28
+/* 801DEC80 001DA8E0 C0 21 00 34 */ lfs f1, 0x34(r1)
+/* 801DEC84 001DA8E4 38 61 00 70 */ addi r3, r1, 0x70
+/* 801DEC88 001DA8E8 C0 01 00 38 */ lfs f0, 0x38(r1)
+/* 801DEC8C 001DA8EC D0 41 00 7C */ stfs f2, 0x7c(r1)
+/* 801DEC90 001DA8F0 D0 21 00 8C */ stfs f1, 0x8c(r1)
+/* 801DEC94 001DA8F4 D0 01 00 9C */ stfs f0, 0x9c(r1)
+/* 801DEC98 001DA8F8 48 09 D2 C1 */ bl PSMTXCopy
+lbl_801DEC9C:
+/* 801DEC9C 001DA8FC 80 01 00 B4 */ lwz r0, 0xb4(r1)
+/* 801DECA0 001DA900 83 E1 00 AC */ lwz r31, 0xac(r1)
+/* 801DECA4 001DA904 83 C1 00 A8 */ lwz r30, 0xa8(r1)
+/* 801DECA8 001DA908 83 A1 00 A4 */ lwz r29, 0xa4(r1)
+/* 801DECAC 001DA90C 83 81 00 A0 */ lwz r28, 0xa0(r1)
+/* 801DECB0 001DA910 7C 08 03 A6 */ mtlr r0
+/* 801DECB4 001DA914 38 21 00 B0 */ addi r1, r1, 0xb0
+/* 801DECB8 001DA918 4E 80 00 20 */ blr
+}
+#pragma peephole on
+#endif
+
+#ifdef NONMATCHING
+void GScamera::func1()
+{
+
+}
+#else
+void func_801F3904();
+void func_801DDC84__13GSblendObjectFf();
+void func_801F3C7C();
+asm void GScamera::func1()
+{
+nofralloc
+/* 801DECBC 001DA91C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 801DECC0 001DA920 7C 08 02 A6 */ mflr r0
+/* 801DECC4 001DA924 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801DECC8 001DA928 DB E1 00 10 */ stfd f31, 0x10(r1)
+/* 801DECCC 001DA92C F3 E1 00 18 */ psq_st f31, 24(r1), 0, 0
+/* 801DECD0 001DA930 FF E0 08 90 */ fmr f31, f1
+/* 801DECD4 001DA934 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801DECD8 001DA938 7C 7F 1B 78 */ mr r31, r3
+/* 801DECDC 001DA93C 48 01 4F A1 */ bl func_801F3C7C
+/* 801DECE0 001DA940 2C 03 00 00 */ cmpwi r3, 0
+/* 801DECE4 001DA944 41 82 00 08 */ beq lbl_801DECEC
+/* 801DECE8 001DA948 C3 E2 96 10 */ lfs f31, lbl_80641C10
+lbl_801DECEC:
+/* 801DECEC 001DA94C FC 20 F8 90 */ fmr f1, f31
+/* 801DECF0 001DA950 7F E3 FB 78 */ mr r3, r31
+/* 801DECF4 001DA954 4B FF EF 91 */ bl func_801DDC84__13GSblendObjectFf
+/* 801DECF8 001DA958 81 9F 01 00 */ lwz r12, 0x100(r31)
+/* 801DECFC 001DA95C 7F E3 FB 78 */ mr r3, r31
+/* 801DED00 001DA960 81 8C 00 14 */ lwz r12, 0x14(r12)
+/* 801DED04 001DA964 7D 89 03 A6 */ mtctr r12
+/* 801DED08 001DA968 4E 80 04 21 */ bctrl
+/* 801DED0C 001DA96C 7F E3 FB 78 */ mr r3, r31
+/* 801DED10 001DA970 4B FF F4 E9 */ bl func_801DE1F8
+/* 801DED14 001DA974 FC 20 F8 90 */ fmr f1, f31
+/* 801DED18 001DA978 7F E3 FB 78 */ mr r3, r31
+/* 801DED1C 001DA97C 48 01 4B E9 */ bl func_801F3904
+/* 801DED20 001DA980 E3 E1 00 18 */ psq_l f31, 24(r1), 0, 0
+/* 801DED24 001DA984 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801DED28 001DA988 CB E1 00 10 */ lfd f31, 0x10(r1)
+/* 801DED2C 001DA98C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801DED30 001DA990 7C 08 03 A6 */ mtlr r0
+/* 801DED34 001DA994 38 21 00 20 */ addi r1, r1, 0x20
+/* 801DED38 001DA998 4E 80 00 20 */ blr
+}
+#pragma peephole on
+#endif
+
+#ifdef NONMATCHING
+void GScamera::func2()
+{
+
+}
+#else
+void func_801F39E8();
+
+asm void GScamera::func2()
+{
+nofralloc
+/* 801DED3C 001DA99C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DED40 001DA9A0 7C 08 02 A6 */ mflr r0
+/* 801DED44 001DA9A4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DED48 001DA9A8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801DED4C 001DA9AC 7C 7F 1B 78 */ mr r31, r3
+/* 801DED50 001DA9B0 48 01 4C 99 */ bl func_801F39E8
+/* 801DED54 001DA9B4 80 9F 01 08 */ lwz r4, 0x108(r31)
+/* 801DED58 001DA9B8 2C 04 00 00 */ cmpwi r4, 0
+/* 801DED5C 001DA9BC 41 82 01 88 */ beq lbl_801DEEE4
+/* 801DED60 001DA9C0 80 04 00 30 */ lwz r0, 0x30(r4)
+/* 801DED64 001DA9C4 54 00 07 BE */ clrlwi r0, r0, 0x1e
+/* 801DED68 001DA9C8 60 03 01 00 */ ori r3, r0, 0x100
+/* 801DED6C 001DA9CC 90 7F 01 04 */ stw r3, 0x104(r31)
+/* 801DED70 001DA9D0 80 04 00 30 */ lwz r0, 0x30(r4)
+/* 801DED74 001DA9D4 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
+/* 801DED78 001DA9D8 41 82 00 0C */ beq lbl_801DED84
+/* 801DED7C 001DA9DC 60 60 00 40 */ ori r0, r3, 0x40
+/* 801DED80 001DA9E0 90 1F 01 04 */ stw r0, 0x104(r31)
+lbl_801DED84:
+/* 801DED84 001DA9E4 80 1F 01 04 */ lwz r0, 0x104(r31)
+/* 801DED88 001DA9E8 54 00 07 BE */ clrlwi r0, r0, 0x1e
+/* 801DED8C 001DA9EC 2C 00 00 02 */ cmpwi r0, 2
+/* 801DED90 001DA9F0 41 82 00 18 */ beq lbl_801DEDA8
+/* 801DED94 001DA9F4 40 80 00 08 */ bge lbl_801DED9C
+/* 801DED98 001DA9F8 48 00 00 70 */ b lbl_801DEE08
+lbl_801DED9C:
+/* 801DED9C 001DA9FC 2C 00 00 04 */ cmpwi r0, 4
+/* 801DEDA0 001DAA00 40 80 00 68 */ bge lbl_801DEE08
+/* 801DEDA4 001DAA04 48 00 00 30 */ b lbl_801DEDD4
+lbl_801DEDA8:
+/* 801DEDA8 001DAA08 C0 02 96 10 */ lfs f0, lbl_80641C10
+/* 801DEDAC 001DAA0C 80 7F 01 08 */ lwz r3, 0x108(r31)
+/* 801DEDB0 001DAA10 D0 1F 01 68 */ stfs f0, 0x168(r31)
+/* 801DEDB4 001DAA14 D0 1F 01 70 */ stfs f0, 0x170(r31)
+/* 801DEDB8 001DAA18 C0 03 00 34 */ lfs f0, 0x34(r3)
+/* 801DEDBC 001DAA1C D0 1F 01 74 */ stfs f0, 0x174(r31)
+/* 801DEDC0 001DAA20 C0 23 00 34 */ lfs f1, 0x34(r3)
+/* 801DEDC4 001DAA24 C0 03 00 38 */ lfs f0, 0x38(r3)
+/* 801DEDC8 001DAA28 EC 01 00 24 */ fdivs f0, f1, f0
+/* 801DEDCC 001DAA2C D0 1F 01 6C */ stfs f0, 0x16c(r31)
+/* 801DEDD0 001DAA30 48 00 00 54 */ b lbl_801DEE24
+lbl_801DEDD4:
+/* 801DEDD4 001DAA34 80 7F 01 08 */ lwz r3, 0x108(r31)
+/* 801DEDD8 001DAA38 C0 22 96 1C */ lfs f1, lbl_80641C1C
+/* 801DEDDC 001DAA3C C0 03 00 34 */ lfs f0, 0x34(r3)
+/* 801DEDE0 001DAA40 EC 21 00 32 */ fmuls f1, f1, f0
+/* 801DEDE4 001DAA44 FC 00 08 50 */ fneg f0, f1
+/* 801DEDE8 001DAA48 D0 3F 01 74 */ stfs f1, 0x174(r31)
+/* 801DEDEC 001DAA4C D0 1F 01 70 */ stfs f0, 0x170(r31)
+/* 801DEDF0 001DAA50 C0 03 00 38 */ lfs f0, 0x38(r3)
+/* 801DEDF4 001DAA54 EC 21 00 24 */ fdivs f1, f1, f0
+/* 801DEDF8 001DAA58 FC 00 08 50 */ fneg f0, f1
+/* 801DEDFC 001DAA5C D0 3F 01 6C */ stfs f1, 0x16c(r31)
+/* 801DEE00 001DAA60 D0 1F 01 68 */ stfs f0, 0x168(r31)
+/* 801DEE04 001DAA64 48 00 00 20 */ b lbl_801DEE24
+lbl_801DEE08:
+/* 801DEE08 001DAA68 80 7F 01 08 */ lwz r3, 0x108(r31)
+/* 801DEE0C 001DAA6C C0 22 96 34 */ lfs f1, lbl_80641C34
+/* 801DEE10 001DAA70 C0 03 00 34 */ lfs f0, 0x34(r3)
+/* 801DEE14 001DAA74 EC 01 00 32 */ fmuls f0, f1, f0
+/* 801DEE18 001DAA78 D0 1F 01 68 */ stfs f0, 0x168(r31)
+/* 801DEE1C 001DAA7C C0 03 00 38 */ lfs f0, 0x38(r3)
+/* 801DEE20 001DAA80 D0 1F 01 6C */ stfs f0, 0x16c(r31)
+lbl_801DEE24:
+/* 801DEE24 001DAA84 80 9F 01 08 */ lwz r4, 0x108(r31)
+/* 801DEE28 001DAA88 C0 04 00 3C */ lfs f0, 0x3c(r4)
+/* 801DEE2C 001DAA8C D0 1F 01 7C */ stfs f0, 0x17c(r31)
+/* 801DEE30 001DAA90 C0 04 00 40 */ lfs f0, 0x40(r4)
+/* 801DEE34 001DAA94 D0 1F 01 80 */ stfs f0, 0x180(r31)
+/* 801DEE38 001DAA98 C0 04 00 44 */ lfs f0, 0x44(r4)
+/* 801DEE3C 001DAA9C D0 1F 01 84 */ stfs f0, 0x184(r31)
+/* 801DEE40 001DAAA0 80 64 00 48 */ lwz r3, 0x48(r4)
+/* 801DEE44 001DAAA4 2C 03 00 00 */ cmpwi r3, 0
+/* 801DEE48 001DAAA8 41 82 00 58 */ beq lbl_801DEEA0
+/* 801DEE4C 001DAAAC C0 03 00 00 */ lfs f0, 0(r3)
+/* 801DEE50 001DAAB0 D0 1F 01 88 */ stfs f0, 0x188(r31)
+/* 801DEE54 001DAAB4 C0 03 00 04 */ lfs f0, 4(r3)
+/* 801DEE58 001DAAB8 D0 1F 01 8C */ stfs f0, 0x18c(r31)
+/* 801DEE5C 001DAABC C0 03 00 08 */ lfs f0, 8(r3)
+/* 801DEE60 001DAAC0 D0 1F 01 90 */ stfs f0, 0x190(r31)
+/* 801DEE64 001DAAC4 80 64 00 48 */ lwz r3, 0x48(r4)
+/* 801DEE68 001DAAC8 C0 03 00 0C */ lfs f0, 0xc(r3)
+/* 801DEE6C 001DAACC D0 1F 01 94 */ stfs f0, 0x194(r31)
+/* 801DEE70 001DAAD0 C0 03 00 10 */ lfs f0, 0x10(r3)
+/* 801DEE74 001DAAD4 D0 1F 01 98 */ stfs f0, 0x198(r31)
+/* 801DEE78 001DAAD8 C0 03 00 14 */ lfs f0, 0x14(r3)
+/* 801DEE7C 001DAADC D0 1F 01 9C */ stfs f0, 0x19c(r31)
+/* 801DEE80 001DAAE0 80 64 00 48 */ lwz r3, 0x48(r4)
+/* 801DEE84 001DAAE4 C0 03 00 18 */ lfs f0, 0x18(r3)
+/* 801DEE88 001DAAE8 D0 1F 01 A0 */ stfs f0, 0x1a0(r31)
+/* 801DEE8C 001DAAEC C0 03 00 1C */ lfs f0, 0x1c(r3)
+/* 801DEE90 001DAAF0 D0 1F 01 A4 */ stfs f0, 0x1a4(r31)
+/* 801DEE94 001DAAF4 C0 03 00 20 */ lfs f0, 0x20(r3)
+/* 801DEE98 001DAAF8 D0 1F 01 A8 */ stfs f0, 0x1a8(r31)
+/* 801DEE9C 001DAAFC 48 00 00 34 */ b lbl_801DEED0
+lbl_801DEEA0:
+/* 801DEEA0 001DAB00 C0 42 96 10 */ lfs f2, lbl_80641C10
+/* 801DEEA4 001DAB04 C0 22 96 00 */ lfs f1, lbl_80641C00
+/* 801DEEA8 001DAB08 C0 02 96 14 */ lfs f0, lbl_80641C14
+/* 801DEEAC 001DAB0C D0 5F 01 88 */ stfs f2, 0x188(r31)
+/* 801DEEB0 001DAB10 D0 5F 01 8C */ stfs f2, 0x18c(r31)
+/* 801DEEB4 001DAB14 D0 5F 01 90 */ stfs f2, 0x190(r31)
+/* 801DEEB8 001DAB18 D0 5F 01 94 */ stfs f2, 0x194(r31)
+/* 801DEEBC 001DAB1C D0 3F 01 98 */ stfs f1, 0x198(r31)
+/* 801DEEC0 001DAB20 D0 5F 01 9C */ stfs f2, 0x19c(r31)
+/* 801DEEC4 001DAB24 D0 5F 01 A0 */ stfs f2, 0x1a0(r31)
+/* 801DEEC8 001DAB28 D0 5F 01 A4 */ stfs f2, 0x1a4(r31)
+/* 801DEECC 001DAB2C D0 1F 01 A8 */ stfs f0, 0x1a8(r31)
+lbl_801DEED0:
+/* 801DEED0 001DAB30 80 1F 01 04 */ lwz r0, 0x104(r31)
+/* 801DEED4 001DAB34 38 60 00 00 */ li r3, 0
+/* 801DEED8 001DAB38 90 7F 01 D0 */ stw r3, 0x1d0(r31)
+/* 801DEEDC 001DAB3C 60 00 00 28 */ ori r0, r0, 0x28
+/* 801DEEE0 001DAB40 90 1F 01 04 */ stw r0, 0x104(r31)
+lbl_801DEEE4:
+/* 801DEEE4 001DAB44 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DEEE8 001DAB48 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801DEEEC 001DAB4C 7C 08 03 A6 */ mtlr r0
+/* 801DEEF0 001DAB50 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DEEF4 001DAB54 4E 80 00 20 */ blr
+}
+#pragma peephole on
+#endif
+
+#ifdef NONMATCHING
+void GScamera::lbl_801DEEF8()
+{
+
+}
+#else
+extern u32 lbl_80423338;
+void func_801E1278();
+void func_801E10C0();
+asm void GScamera::lbl_801DEEF8()
+{
+nofralloc
+/* 801DEEF8 001DAB58 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DEEFC 001DAB5C 7C 08 02 A6 */ mflr r0
+/* 801DEF00 001DAB60 2C 05 00 00 */ cmpwi r5, 0
+/* 801DEF04 001DAB64 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DEF08 001DAB68 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801DEF0C 001DAB6C 7C 7F 1B 78 */ mr r31, r3
+/* 801DEF10 001DAB70 40 82 00 FC */ bne lbl_801DF00C
+/* 801DEF14 001DAB74 88 64 00 01 */ lbz r3, 1(r4)
+/* 801DEF18 001DAB78 38 03 FF FB */ addi r0, r3, -5
+/* 801DEF1C 001DAB7C 28 00 00 07 */ cmplwi r0, 7
+/* 801DEF20 001DAB80 41 81 00 EC */ bgt lbl_801DF00C
+/* 801DEF24 001DAB84 3C 60 80 42 */ lis r3, lbl_80423338@ha
+/* 801DEF28 001DAB88 54 00 10 3A */ slwi r0, r0, 2
+/* 801DEF2C 001DAB8C 38 63 33 38 */ addi r3, r3, lbl_80423338@l
+/* 801DEF30 001DAB90 7C 63 00 2E */ lwzx r3, r3, r0
+/* 801DEF34 001DAB94 7C 69 03 A6 */ mtctr r3
+/* 801DEF38 001DAB98 4E 80 04 20 */ bctr
+/* 801DEF3C 001DAB9C 7C 83 23 78 */ mr r3, r4
+/* 801DEF40 001DABA0 38 9F 01 68 */ addi r4, r31, 0x168
+/* 801DEF44 001DABA4 48 00 21 7D */ bl func_801E10C0
+/* 801DEF48 001DABA8 80 1F 01 04 */ lwz r0, 0x104(r31)
+/* 801DEF4C 001DABAC 60 00 00 08 */ ori r0, r0, 8
+/* 801DEF50 001DABB0 90 1F 01 04 */ stw r0, 0x104(r31)
+/* 801DEF54 001DABB4 48 00 00 B8 */ b lbl_801DF00C
+/* 801DEF58 001DABB8 7C 83 23 78 */ mr r3, r4
+/* 801DEF5C 001DABBC 38 9F 01 6C */ addi r4, r31, 0x16c
+/* 801DEF60 001DABC0 48 00 21 61 */ bl func_801E10C0
+/* 801DEF64 001DABC4 80 1F 01 04 */ lwz r0, 0x104(r31)
+/* 801DEF68 001DABC8 60 00 00 08 */ ori r0, r0, 8
+/* 801DEF6C 001DABCC 90 1F 01 04 */ stw r0, 0x104(r31)
+/* 801DEF70 001DABD0 48 00 00 9C */ b lbl_801DF00C
+/* 801DEF74 001DABD4 7C 83 23 78 */ mr r3, r4
+/* 801DEF78 001DABD8 38 9F 01 7C */ addi r4, r31, 0x17c
+/* 801DEF7C 001DABDC 48 00 21 45 */ bl func_801E10C0
+/* 801DEF80 001DABE0 80 1F 01 04 */ lwz r0, 0x104(r31)
+/* 801DEF84 001DABE4 60 00 00 08 */ ori r0, r0, 8
+/* 801DEF88 001DABE8 90 1F 01 04 */ stw r0, 0x104(r31)
+/* 801DEF8C 001DABEC 48 00 00 80 */ b lbl_801DF00C
+/* 801DEF90 001DABF0 7C 83 23 78 */ mr r3, r4
+/* 801DEF94 001DABF4 38 9F 01 80 */ addi r4, r31, 0x180
+/* 801DEF98 001DABF8 48 00 21 29 */ bl func_801E10C0
+/* 801DEF9C 001DABFC 80 1F 01 04 */ lwz r0, 0x104(r31)
+/* 801DEFA0 001DAC00 60 00 00 08 */ ori r0, r0, 8
+/* 801DEFA4 001DAC04 90 1F 01 04 */ stw r0, 0x104(r31)
+/* 801DEFA8 001DAC08 48 00 00 64 */ b lbl_801DF00C
+/* 801DEFAC 001DAC0C 7C 83 23 78 */ mr r3, r4
+/* 801DEFB0 001DAC10 38 9F 01 84 */ addi r4, r31, 0x184
+/* 801DEFB4 001DAC14 48 00 21 0D */ bl func_801E10C0
+/* 801DEFB8 001DAC18 48 00 00 54 */ b lbl_801DF00C
+/* 801DEFBC 001DAC1C 7C 83 23 78 */ mr r3, r4
+/* 801DEFC0 001DAC20 38 9F 01 88 */ addi r4, r31, 0x188
+/* 801DEFC4 001DAC24 48 00 22 B5 */ bl func_801E1278
+/* 801DEFC8 001DAC28 80 1F 01 04 */ lwz r0, 0x104(r31)
+/* 801DEFCC 001DAC2C 60 00 00 20 */ ori r0, r0, 0x20
+/* 801DEFD0 001DAC30 90 1F 01 04 */ stw r0, 0x104(r31)
+/* 801DEFD4 001DAC34 48 00 00 38 */ b lbl_801DF00C
+/* 801DEFD8 001DAC38 7C 83 23 78 */ mr r3, r4
+/* 801DEFDC 001DAC3C 38 9F 01 A0 */ addi r4, r31, 0x1a0
+/* 801DEFE0 001DAC40 48 00 22 99 */ bl func_801E1278
+/* 801DEFE4 001DAC44 80 1F 01 04 */ lwz r0, 0x104(r31)
+/* 801DEFE8 001DAC48 60 00 00 20 */ ori r0, r0, 0x20
+/* 801DEFEC 001DAC4C 90 1F 01 04 */ stw r0, 0x104(r31)
+/* 801DEFF0 001DAC50 48 00 00 1C */ b lbl_801DF00C
+/* 801DEFF4 001DAC54 7C 83 23 78 */ mr r3, r4
+/* 801DEFF8 001DAC58 38 9F 01 94 */ addi r4, r31, 0x194
+/* 801DEFFC 001DAC5C 48 00 22 7D */ bl func_801E1278
+/* 801DF000 001DAC60 80 1F 01 04 */ lwz r0, 0x104(r31)
+/* 801DF004 001DAC64 60 00 00 20 */ ori r0, r0, 0x20
+/* 801DF008 001DAC68 90 1F 01 04 */ stw r0, 0x104(r31)
+lbl_801DF00C:
+/* 801DF00C 001DAC6C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DF010 001DAC70 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801DF014 001DAC74 7C 08 03 A6 */ mtlr r0
+/* 801DF018 001DAC78 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DF01C 001DAC7C 4E 80 00 20 */ blr
+}
+#pragma peephole on
+#endif
+
+
+/*
+#ifdef NONMATCHING
+
+#else
+
+#pragma peephole on
+#endif
+*/
+
+} // extern "C"
+