summaryrefslogtreecommitdiff
path: root/src/code_801DDF78.cpp
blob: 205322db1e89e903943ec0ca215d4866c7df4cb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433


// GScamera

#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
    
    // 801F1AE8
    GSnull(u8 p1);
    // 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;
    gUnkClass10* unk108;
    
    u8 unk10C[0x40]; // pad
    
    
    u32 unk14C;
    u32 unk150;
    u32 unk154;
    u32 unk158;
    u32 unk15C;
    u32 unk160;
    u32 unk164;
    
    float unk168;
    float unk16C;
    
    u8 unk170[0x8]; // pad
    
    float unk178;
    float unk17C;
    float unk180;
    
    float unk184;
    
    float unk188;
    float unk18C;
    float unk190;
    float unk194;
    float unk198;
    float unk19C;
    float unk1A0;
    float unk1A4;
    float unk1A8;
    float unk1AC;
    float unk1B0;
    float unk1B4;
    float unk1B8;
    float unk1BC;
    float unk1C0;
    float unk1C4;
    float unk1C8;
    float unk1CC;
    u32 unk1D0;
    Mtx unk1D4;
    Mtx unk204;
    Mtx unk234;
    
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)
{
    //float f0 = -1.0f;
    //float f1 = 0.0f;
    float f2 = 10.0f;
    float f3;
    float f4;
    float f5 = 1.0f;
    float f6;
    float f7;
    
    f7 = 60.0f;
    f6 = 1.28f;
    f4 = 0.1f;
    f3 = 100000.0f;
    
    unk184 = f2;
    //vptr100 = &lbl_80423358;
    unk104 = 0x109;
    unk108 = 0;
    
    unk14C = 0;
    unk150 = 0;
    unk154 = 0;
    unk158 = 0;
    unk15C = 0;
    unk160 = 0;
    unk164 = 0;
    
    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)
{
    float f2;
    float f3;
    float f4;
    float f5 = 1.0f;
    float f6;
    float f7;
    
    f6 = 1.28f;
    f2 = 10.0f;
    f7 = 60.0f;
    f4 = 0.1f;
    f3 = 100000.0f;
    
    unk16C = f6;
    unk184 = f2;
    // vptr100 = &lbl_80423358;
    
    unk104 = 0x109;
    unk108 = p2;
    
    unk14C = 0;
    unk150 = 0;
    unk154 = 0;
    unk158 = 0;
    unk15C = 0;
    unk160 = 0;
    unk164 = 0;
    
    unk168 = f7;
    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 = 0.0f;
    unk1B8 = 0.0f;
    unk1BC = f5;
    unk1C0 = 0.0f;
    unk1C4 = 0.0f;
    unk1C8 = 0.0f;
    unk1CC = -1.0f;
    unk1D0 = 0;
    
    unk16C = f6;
    unk184 = f2;

    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"