summaryrefslogtreecommitdiff
path: root/asm/MSL_C/MSL_Common/strtold.s
blob: c7bcf1a077e4d9331ad4121c822473394e283ec6 (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
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global __strtold
__strtold:
/* 801CE80C 001CA46C  94 21 FF 20 */	stwu r1, -0xe0(r1)
/* 801CE810 001CA470  7C 08 02 A6 */	mflr r0
/* 801CE814 001CA474  90 01 00 E4 */	stw r0, 0xe4(r1)
/* 801CE818 001CA478  39 61 00 E0 */	addi r11, r1, 0xe0
/* 801CE81C 001CA47C  4B FF 88 D9 */	bl __save_gpr
/* 801CE820 001CA480  3B E0 00 00 */	li r31, 0
/* 801CE824 001CA484  3D 00 80 42 */	lis r8, lbl_80422B98@ha
/* 801CE828 001CA488  38 00 00 00 */	li r0, 0
/* 801CE82C 001CA48C  93 E1 00 58 */	stw r31, 0x58(r1)
/* 801CE830 001CA490  81 08 2B 98 */	lwz r8, lbl_80422B98@l(r8)
/* 801CE834 001CA494  7C 92 23 78 */	mr r18, r4
/* 801CE838 001CA498  90 01 00 90 */	stw r0, 0x90(r1)
/* 801CE83C 001CA49C  38 00 00 00 */	li r0, 0
/* 801CE840 001CA4A0  7C B3 2B 78 */	mr r19, r5
/* 801CE844 001CA4A4  7E 4C 93 78 */	mr r12, r18
/* 801CE848 001CA4A8  90 01 00 8C */	stw r0, 0x8c(r1)
/* 801CE84C 001CA4AC  38 00 00 00 */	li r0, 0
/* 801CE850 001CA4B0  7C F4 3B 78 */	mr r20, r7
/* 801CE854 001CA4B4  3A 20 00 01 */	li r17, 1
/* 801CE858 001CA4B8  90 01 00 88 */	stw r0, 0x88(r1)
/* 801CE85C 001CA4BC  38 00 00 00 */	li r0, 0
/* 801CE860 001CA4C0  39 C0 00 00 */	li r14, 0
/* 801CE864 001CA4C4  3B A0 00 00 */	li r29, 0
/* 801CE868 001CA4C8  90 61 00 08 */	stw r3, 8(r1)
/* 801CE86C 001CA4CC  7E 63 9B 78 */	mr r3, r19
/* 801CE870 001CA4D0  3B 80 00 00 */	li r28, 0
/* 801CE874 001CA4D4  3B 20 00 00 */	li r25, 0
/* 801CE878 001CA4D8  93 E1 00 5C */	stw r31, 0x5c(r1)
/* 801CE87C 001CA4DC  3A E0 00 00 */	li r23, 0
/* 801CE880 001CA4E0  3B C0 00 01 */	li r30, 1
/* 801CE884 001CA4E4  38 80 00 00 */	li r4, 0
/* 801CE888 001CA4E8  93 E1 00 60 */	stw r31, 0x60(r1)
/* 801CE88C 001CA4EC  38 A0 00 00 */	li r5, 0
/* 801CE890 001CA4F0  93 E1 00 64 */	stw r31, 0x64(r1)
/* 801CE894 001CA4F4  93 E1 00 68 */	stw r31, 0x68(r1)
/* 801CE898 001CA4F8  93 E1 00 6C */	stw r31, 0x6c(r1)
/* 801CE89C 001CA4FC  93 E1 00 70 */	stw r31, 0x70(r1)
/* 801CE8A0 001CA500  93 E1 00 74 */	stw r31, 0x74(r1)
/* 801CE8A4 001CA504  93 E1 00 78 */	stw r31, 0x78(r1)
/* 801CE8A8 001CA508  93 E1 00 7C */	stw r31, 0x7c(r1)
/* 801CE8AC 001CA50C  B3 E1 00 80 */	sth r31, 0x80(r1)
/* 801CE8B0 001CA510  8B 68 00 00 */	lbz r27, 0(r8)
/* 801CE8B4 001CA514  90 C1 00 0C */	stw r6, 0xc(r1)
/* 801CE8B8 001CA518  90 01 00 84 */	stw r0, 0x84(r1)
/* 801CE8BC 001CA51C  93 E7 00 00 */	stw r31, 0(r7)
/* 801CE8C0 001CA520  7D 89 03 A6 */	mtctr r12
/* 801CE8C4 001CA524  4E 80 04 21 */	bctrl
/* 801CE8C8 001CA528  3E 00 80 42 */	lis r16, lbl_80422D48@ha
/* 801CE8CC 001CA52C  3D E0 80 40 */	lis r15, lbl_803FCD18@ha
/* 801CE8D0 001CA530  7C 64 1B 78 */	mr r4, r3
/* 801CE8D4 001CA534  3A 10 2D 48 */	addi r16, r16, lbl_80422D48@l
/* 801CE8D8 001CA538  39 EF CD 18 */	addi r15, r15, lbl_803FCD18@l
/* 801CE8DC 001CA53C  48 00 0F D0 */	b lbl_801CF8AC
lbl_801CE8E0:
/* 801CE8E0 001CA540  2C 11 00 80 */	cmpwi r17, 0x80
/* 801CE8E4 001CA544  41 82 08 A0 */	beq lbl_801CF184
/* 801CE8E8 001CA548  40 80 00 5C */	bge lbl_801CE944
/* 801CE8EC 001CA54C  2C 11 00 08 */	cmpwi r17, 8
/* 801CE8F0 001CA550  41 82 06 64 */	beq lbl_801CEF54
/* 801CE8F4 001CA554  40 80 00 2C */	bge lbl_801CE920
/* 801CE8F8 001CA558  2C 11 00 03 */	cmpwi r17, 3
/* 801CE8FC 001CA55C  41 82 0F B0 */	beq lbl_801CF8AC
/* 801CE900 001CA560  40 80 00 14 */	bge lbl_801CE914
/* 801CE904 001CA564  2C 11 00 01 */	cmpwi r17, 1
/* 801CE908 001CA568  41 82 00 8C */	beq lbl_801CE994
/* 801CE90C 001CA56C  40 80 05 18 */	bge lbl_801CEE24
/* 801CE910 001CA570  48 00 0F 9C */	b lbl_801CF8AC
lbl_801CE914:
/* 801CE914 001CA574  2C 11 00 05 */	cmpwi r17, 5
/* 801CE918 001CA578  40 80 0F 94 */	bge lbl_801CF8AC
/* 801CE91C 001CA57C  48 00 06 04 */	b lbl_801CEF20
lbl_801CE920:
/* 801CE920 001CA580  2C 11 00 20 */	cmpwi r17, 0x20
/* 801CE924 001CA584  41 82 07 4C */	beq lbl_801CF070
/* 801CE928 001CA588  40 80 00 10 */	bge lbl_801CE938
/* 801CE92C 001CA58C  2C 11 00 10 */	cmpwi r17, 0x10
/* 801CE930 001CA590  41 82 06 EC */	beq lbl_801CF01C
/* 801CE934 001CA594  48 00 0F 78 */	b lbl_801CF8AC
lbl_801CE938:
/* 801CE938 001CA598  2C 11 00 40 */	cmpwi r17, 0x40
/* 801CE93C 001CA59C  41 82 07 DC */	beq lbl_801CF118
/* 801CE940 001CA5A0  48 00 0F 6C */	b lbl_801CF8AC
lbl_801CE944:
/* 801CE944 001CA5A4  2C 11 20 00 */	cmpwi r17, 0x2000
/* 801CE948 001CA5A8  41 82 02 D0 */	beq lbl_801CEC18
/* 801CE94C 001CA5AC  40 80 00 28 */	bge lbl_801CE974
/* 801CE950 001CA5B0  2C 11 02 00 */	cmpwi r17, 0x200
/* 801CE954 001CA5B4  41 82 09 18 */	beq lbl_801CF26C
/* 801CE958 001CA5B8  40 80 00 10 */	bge lbl_801CE968
/* 801CE95C 001CA5BC  2C 11 01 00 */	cmpwi r17, 0x100
/* 801CE960 001CA5C0  41 82 08 88 */	beq lbl_801CF1E8
/* 801CE964 001CA5C4  48 00 0F 48 */	b lbl_801CF8AC
lbl_801CE968:
/* 801CE968 001CA5C8  2C 11 04 00 */	cmpwi r17, 0x400
/* 801CE96C 001CA5CC  41 82 09 34 */	beq lbl_801CF2A0
/* 801CE970 001CA5D0  48 00 0F 3C */	b lbl_801CF8AC
lbl_801CE974:
/* 801CE974 001CA5D4  3C 60 00 01 */	lis r3, 0x00008000@ha
/* 801CE978 001CA5D8  38 03 80 00 */	addi r0, r3, 0x00008000@l
/* 801CE97C 001CA5DC  7C 11 00 00 */	cmpw r17, r0
/* 801CE980 001CA5E0  41 82 09 AC */	beq lbl_801CF32C
/* 801CE984 001CA5E4  40 80 0F 28 */	bge lbl_801CF8AC
/* 801CE988 001CA5E8  2C 11 40 00 */	cmpwi r17, 0x4000
/* 801CE98C 001CA5EC  41 82 01 6C */	beq lbl_801CEAF8
/* 801CE990 001CA5F0  48 00 0F 1C */	b lbl_801CF8AC
lbl_801CE994:
/* 801CE994 001CA5F4  2C 04 00 00 */	cmpwi r4, 0
/* 801CE998 001CA5F8  38 00 00 00 */	li r0, 0
/* 801CE99C 001CA5FC  41 80 00 0C */	blt lbl_801CE9A8
/* 801CE9A0 001CA600  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CE9A4 001CA604  41 80 00 08 */	blt lbl_801CE9AC
lbl_801CE9A8:
/* 801CE9A8 001CA608  38 00 00 01 */	li r0, 1
lbl_801CE9AC:
/* 801CE9AC 001CA60C  2C 00 00 00 */	cmpwi r0, 0
/* 801CE9B0 001CA610  41 82 00 0C */	beq lbl_801CE9BC
/* 801CE9B4 001CA614  38 00 00 00 */	li r0, 0
/* 801CE9B8 001CA618  48 00 00 18 */	b lbl_801CE9D0
lbl_801CE9BC:
/* 801CE9BC 001CA61C  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CE9C0 001CA620  54 80 08 3C */	slwi r0, r4, 1
/* 801CE9C4 001CA624  80 63 00 08 */	lwz r3, 8(r3)
/* 801CE9C8 001CA628  7C 03 02 2E */	lhzx r0, r3, r0
/* 801CE9CC 001CA62C  54 00 05 EE */	rlwinm r0, r0, 0, 0x17, 0x17
lbl_801CE9D0:
/* 801CE9D0 001CA630  2C 00 00 00 */	cmpwi r0, 0
/* 801CE9D4 001CA634  41 82 00 28 */	beq lbl_801CE9FC
/* 801CE9D8 001CA638  7E 4C 93 78 */	mr r12, r18
/* 801CE9DC 001CA63C  7E 63 9B 78 */	mr r3, r19
/* 801CE9E0 001CA640  38 80 00 00 */	li r4, 0
/* 801CE9E4 001CA644  38 A0 00 00 */	li r5, 0
/* 801CE9E8 001CA648  7D 89 03 A6 */	mtctr r12
/* 801CE9EC 001CA64C  4E 80 04 21 */	bctrl
/* 801CE9F0 001CA650  7C 64 1B 78 */	mr r4, r3
/* 801CE9F4 001CA654  39 CE 00 01 */	addi r14, r14, 1
/* 801CE9F8 001CA658  48 00 0E B4 */	b lbl_801CF8AC
lbl_801CE9FC:
/* 801CE9FC 001CA65C  2C 04 00 00 */	cmpwi r4, 0
/* 801CEA00 001CA660  38 00 00 00 */	li r0, 0
/* 801CEA04 001CA664  41 80 00 0C */	blt lbl_801CEA10
/* 801CEA08 001CA668  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CEA0C 001CA66C  41 80 00 08 */	blt lbl_801CEA14
lbl_801CEA10:
/* 801CEA10 001CA670  38 00 00 01 */	li r0, 1
lbl_801CEA14:
/* 801CEA14 001CA674  2C 00 00 00 */	cmpwi r0, 0
/* 801CEA18 001CA678  41 82 00 0C */	beq lbl_801CEA24
/* 801CEA1C 001CA67C  7C 80 23 78 */	mr r0, r4
/* 801CEA20 001CA680  48 00 00 10 */	b lbl_801CEA30
lbl_801CEA24:
/* 801CEA24 001CA684  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CEA28 001CA688  80 63 00 0C */	lwz r3, 0xc(r3)
/* 801CEA2C 001CA68C  7C 03 20 AE */	lbzx r0, r3, r4
lbl_801CEA30:
/* 801CEA30 001CA690  2C 00 00 49 */	cmpwi r0, 0x49
/* 801CEA34 001CA694  41 82 00 6C */	beq lbl_801CEAA0
/* 801CEA38 001CA698  40 80 00 28 */	bge lbl_801CEA60
/* 801CEA3C 001CA69C  2C 00 00 2C */	cmpwi r0, 0x2c
/* 801CEA40 001CA6A0  41 82 00 B0 */	beq lbl_801CEAF0
/* 801CEA44 001CA6A4  40 80 00 10 */	bge lbl_801CEA54
/* 801CEA48 001CA6A8  2C 00 00 2B */	cmpwi r0, 0x2b
/* 801CEA4C 001CA6AC  40 80 00 28 */	bge lbl_801CEA74
/* 801CEA50 001CA6B0  48 00 00 A0 */	b lbl_801CEAF0
lbl_801CEA54:
/* 801CEA54 001CA6B4  2C 00 00 2E */	cmpwi r0, 0x2e
/* 801CEA58 001CA6B8  40 80 00 98 */	bge lbl_801CEAF0
/* 801CEA5C 001CA6BC  48 00 00 10 */	b lbl_801CEA6C
lbl_801CEA60:
/* 801CEA60 001CA6C0  2C 00 00 4E */	cmpwi r0, 0x4e
/* 801CEA64 001CA6C4  41 82 00 64 */	beq lbl_801CEAC8
/* 801CEA68 001CA6C8  48 00 00 88 */	b lbl_801CEAF0
lbl_801CEA6C:
/* 801CEA6C 001CA6CC  38 00 00 01 */	li r0, 1
/* 801CEA70 001CA6D0  90 01 00 90 */	stw r0, 0x90(r1)
lbl_801CEA74:
/* 801CEA74 001CA6D4  7E 4C 93 78 */	mr r12, r18
/* 801CEA78 001CA6D8  7E 63 9B 78 */	mr r3, r19
/* 801CEA7C 001CA6DC  38 80 00 00 */	li r4, 0
/* 801CEA80 001CA6E0  38 A0 00 00 */	li r5, 0
/* 801CEA84 001CA6E4  7D 89 03 A6 */	mtctr r12
/* 801CEA88 001CA6E8  3B DE 00 01 */	addi r30, r30, 1
/* 801CEA8C 001CA6EC  4E 80 04 21 */	bctrl
/* 801CEA90 001CA6F0  38 00 00 01 */	li r0, 1
/* 801CEA94 001CA6F4  7C 64 1B 78 */	mr r4, r3
/* 801CEA98 001CA6F8  90 01 00 88 */	stw r0, 0x88(r1)
/* 801CEA9C 001CA6FC  48 00 0E 10 */	b lbl_801CF8AC
lbl_801CEAA0:
/* 801CEAA0 001CA700  7E 4C 93 78 */	mr r12, r18
/* 801CEAA4 001CA704  7E 63 9B 78 */	mr r3, r19
/* 801CEAA8 001CA708  38 80 00 00 */	li r4, 0
/* 801CEAAC 001CA70C  38 A0 00 00 */	li r5, 0
/* 801CEAB0 001CA710  7D 89 03 A6 */	mtctr r12
/* 801CEAB4 001CA714  3B DE 00 01 */	addi r30, r30, 1
/* 801CEAB8 001CA718  4E 80 04 21 */	bctrl
/* 801CEABC 001CA71C  7C 64 1B 78 */	mr r4, r3
/* 801CEAC0 001CA720  3A 20 40 00 */	li r17, 0x4000
/* 801CEAC4 001CA724  48 00 0D E8 */	b lbl_801CF8AC
lbl_801CEAC8:
/* 801CEAC8 001CA728  7E 4C 93 78 */	mr r12, r18
/* 801CEACC 001CA72C  7E 63 9B 78 */	mr r3, r19
/* 801CEAD0 001CA730  38 80 00 00 */	li r4, 0
/* 801CEAD4 001CA734  38 A0 00 00 */	li r5, 0
/* 801CEAD8 001CA738  7D 89 03 A6 */	mtctr r12
/* 801CEADC 001CA73C  3B DE 00 01 */	addi r30, r30, 1
/* 801CEAE0 001CA740  4E 80 04 21 */	bctrl
/* 801CEAE4 001CA744  7C 64 1B 78 */	mr r4, r3
/* 801CEAE8 001CA748  3A 20 20 00 */	li r17, 0x2000
/* 801CEAEC 001CA74C  48 00 0D C0 */	b lbl_801CF8AC
lbl_801CEAF0:
/* 801CEAF0 001CA750  3A 20 00 02 */	li r17, 2
/* 801CEAF4 001CA754  48 00 0D B8 */	b lbl_801CF8AC
lbl_801CEAF8:
/* 801CEAF8 001CA758  89 6F 00 00 */	lbz r11, 0(r15)
/* 801CEAFC 001CA75C  3A 21 00 29 */	addi r17, r1, 0x29
/* 801CEB00 001CA760  89 4F 00 01 */	lbz r10, 1(r15)
/* 801CEB04 001CA764  3A A0 00 01 */	li r21, 1
/* 801CEB08 001CA768  89 2F 00 02 */	lbz r9, 2(r15)
/* 801CEB0C 001CA76C  89 0F 00 03 */	lbz r8, 3(r15)
/* 801CEB10 001CA770  88 EF 00 04 */	lbz r7, 4(r15)
/* 801CEB14 001CA774  88 CF 00 05 */	lbz r6, 5(r15)
/* 801CEB18 001CA778  88 AF 00 06 */	lbz r5, 6(r15)
/* 801CEB1C 001CA77C  88 6F 00 07 */	lbz r3, 7(r15)
/* 801CEB20 001CA780  88 0F 00 08 */	lbz r0, 8(r15)
/* 801CEB24 001CA784  99 61 00 28 */	stb r11, 0x28(r1)
/* 801CEB28 001CA788  99 41 00 29 */	stb r10, 0x29(r1)
/* 801CEB2C 001CA78C  99 21 00 2A */	stb r9, 0x2a(r1)
/* 801CEB30 001CA790  99 01 00 2B */	stb r8, 0x2b(r1)
/* 801CEB34 001CA794  98 E1 00 2C */	stb r7, 0x2c(r1)
/* 801CEB38 001CA798  98 C1 00 2D */	stb r6, 0x2d(r1)
/* 801CEB3C 001CA79C  98 A1 00 2E */	stb r5, 0x2e(r1)
/* 801CEB40 001CA7A0  98 61 00 2F */	stb r3, 0x2f(r1)
/* 801CEB44 001CA7A4  98 01 00 30 */	stb r0, 0x30(r1)
/* 801CEB48 001CA7A8  48 00 00 2C */	b lbl_801CEB74
lbl_801CEB4C:
/* 801CEB4C 001CA7AC  7E 4C 93 78 */	mr r12, r18
/* 801CEB50 001CA7B0  7E 63 9B 78 */	mr r3, r19
/* 801CEB54 001CA7B4  38 80 00 00 */	li r4, 0
/* 801CEB58 001CA7B8  38 A0 00 00 */	li r5, 0
/* 801CEB5C 001CA7BC  7D 89 03 A6 */	mtctr r12
/* 801CEB60 001CA7C0  3A 31 00 01 */	addi r17, r17, 1
/* 801CEB64 001CA7C4  3A B5 00 01 */	addi r21, r21, 1
/* 801CEB68 001CA7C8  3B DE 00 01 */	addi r30, r30, 1
/* 801CEB6C 001CA7CC  4E 80 04 21 */	bctrl
/* 801CEB70 001CA7D0  7C 64 1B 78 */	mr r4, r3
lbl_801CEB74:
/* 801CEB74 001CA7D4  2C 15 00 08 */	cmpwi r21, 8
/* 801CEB78 001CA7D8  40 80 00 48 */	bge lbl_801CEBC0
/* 801CEB7C 001CA7DC  88 71 00 00 */	lbz r3, 0(r17)
/* 801CEB80 001CA7E0  2C 04 00 00 */	cmpwi r4, 0
/* 801CEB84 001CA7E4  38 00 00 00 */	li r0, 0
/* 801CEB88 001CA7E8  7C 65 07 74 */	extsb r5, r3
/* 801CEB8C 001CA7EC  41 80 00 0C */	blt lbl_801CEB98
/* 801CEB90 001CA7F0  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CEB94 001CA7F4  41 80 00 08 */	blt lbl_801CEB9C
lbl_801CEB98:
/* 801CEB98 001CA7F8  38 00 00 01 */	li r0, 1
lbl_801CEB9C:
/* 801CEB9C 001CA7FC  2C 00 00 00 */	cmpwi r0, 0
/* 801CEBA0 001CA800  41 82 00 0C */	beq lbl_801CEBAC
/* 801CEBA4 001CA804  7C 80 23 78 */	mr r0, r4
/* 801CEBA8 001CA808  48 00 00 10 */	b lbl_801CEBB8
lbl_801CEBAC:
/* 801CEBAC 001CA80C  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CEBB0 001CA810  80 63 00 0C */	lwz r3, 0xc(r3)
/* 801CEBB4 001CA814  7C 03 20 AE */	lbzx r0, r3, r4
lbl_801CEBB8:
/* 801CEBB8 001CA818  7C 05 00 00 */	cmpw r5, r0
/* 801CEBBC 001CA81C  41 82 FF 90 */	beq lbl_801CEB4C
lbl_801CEBC0:
/* 801CEBC0 001CA820  2C 15 00 03 */	cmpwi r21, 3
/* 801CEBC4 001CA824  41 82 00 0C */	beq lbl_801CEBD0
/* 801CEBC8 001CA828  2C 15 00 08 */	cmpwi r21, 8
/* 801CEBCC 001CA82C  40 82 00 44 */	bne lbl_801CEC10
lbl_801CEBD0:
/* 801CEBD0 001CA830  80 01 00 90 */	lwz r0, 0x90(r1)
/* 801CEBD4 001CA834  2C 00 00 00 */	cmpwi r0, 0
/* 801CEBD8 001CA838  41 82 00 18 */	beq lbl_801CEBF0
/* 801CEBDC 001CA83C  3C 60 80 64 */	lis r3, lbl_8063D6BC@ha
/* 801CEBE0 001CA840  C0 03 D6 BC */	lfs f0, lbl_8063D6BC@l(r3)
/* 801CEBE4 001CA844  FC 20 00 50 */	fneg f1, f0
/* 801CEBE8 001CA848  FC 20 08 18 */	frsp f1, f1
/* 801CEBEC 001CA84C  48 00 00 0C */	b lbl_801CEBF8
lbl_801CEBF0:
/* 801CEBF0 001CA850  3C 60 80 64 */	lis r3, lbl_8063D6BC@ha
/* 801CEBF4 001CA854  C0 23 D6 BC */	lfs f1, lbl_8063D6BC@l(r3)
lbl_801CEBF8:
/* 801CEBF8 001CA858  80 01 00 88 */	lwz r0, 0x88(r1)
/* 801CEBFC 001CA85C  80 61 00 0C */	lwz r3, 0xc(r1)
/* 801CEC00 001CA860  7C 00 72 14 */	add r0, r0, r14
/* 801CEC04 001CA864  7C 15 02 14 */	add r0, r21, r0
/* 801CEC08 001CA868  90 03 00 00 */	stw r0, 0(r3)
/* 801CEC0C 001CA86C  48 00 0F DC */	b lbl_801CFBE8
lbl_801CEC10:
/* 801CEC10 001CA870  3A 20 10 00 */	li r17, 0x1000
/* 801CEC14 001CA874  48 00 0C 98 */	b lbl_801CF8AC
lbl_801CEC18:
/* 801CEC18 001CA878  88 E2 91 58 */	lbz r7, lbl_80641758-_SDA2_BASE_(r2)
/* 801CEC1C 001CA87C  3A A0 00 00 */	li r21, 0
/* 801CEC20 001CA880  88 C2 91 59 */	lbz r6, lbl_80641759-_SDA2_BASE_(r2)
/* 801CEC24 001CA884  3A 21 00 19 */	addi r17, r1, 0x19
/* 801CEC28 001CA888  88 A2 91 5A */	lbz r5, lbl_8064175A-_SDA2_BASE_(r2)
/* 801CEC2C 001CA88C  3A C0 00 01 */	li r22, 1
/* 801CEC30 001CA890  88 62 91 5B */	lbz r3, lbl_8064175B-_SDA2_BASE_(r2)
/* 801CEC34 001CA894  88 02 91 5C */	lbz r0, lbl_8064175C-_SDA2_BASE_(r2)
/* 801CEC38 001CA898  98 E1 00 18 */	stb r7, 0x18(r1)
/* 801CEC3C 001CA89C  98 C1 00 19 */	stb r6, 0x19(r1)
/* 801CEC40 001CA8A0  98 A1 00 1A */	stb r5, 0x1a(r1)
/* 801CEC44 001CA8A4  98 61 00 1B */	stb r3, 0x1b(r1)
/* 801CEC48 001CA8A8  98 01 00 1C */	stb r0, 0x1c(r1)
/* 801CEC4C 001CA8AC  92 A1 00 38 */	stw r21, 0x38(r1)
/* 801CEC50 001CA8B0  92 A1 00 3C */	stw r21, 0x3c(r1)
/* 801CEC54 001CA8B4  92 A1 00 40 */	stw r21, 0x40(r1)
/* 801CEC58 001CA8B8  92 A1 00 44 */	stw r21, 0x44(r1)
/* 801CEC5C 001CA8BC  92 A1 00 48 */	stw r21, 0x48(r1)
/* 801CEC60 001CA8C0  92 A1 00 4C */	stw r21, 0x4c(r1)
/* 801CEC64 001CA8C4  92 A1 00 50 */	stw r21, 0x50(r1)
/* 801CEC68 001CA8C8  92 A1 00 54 */	stw r21, 0x54(r1)
/* 801CEC6C 001CA8CC  48 00 00 2C */	b lbl_801CEC98
lbl_801CEC70:
/* 801CEC70 001CA8D0  7E 4C 93 78 */	mr r12, r18
/* 801CEC74 001CA8D4  7E 63 9B 78 */	mr r3, r19
/* 801CEC78 001CA8D8  38 80 00 00 */	li r4, 0
/* 801CEC7C 001CA8DC  38 A0 00 00 */	li r5, 0
/* 801CEC80 001CA8E0  7D 89 03 A6 */	mtctr r12
/* 801CEC84 001CA8E4  3A 31 00 01 */	addi r17, r17, 1
/* 801CEC88 001CA8E8  3A D6 00 01 */	addi r22, r22, 1
/* 801CEC8C 001CA8EC  3B DE 00 01 */	addi r30, r30, 1
/* 801CEC90 001CA8F0  4E 80 04 21 */	bctrl
/* 801CEC94 001CA8F4  7C 64 1B 78 */	mr r4, r3
lbl_801CEC98:
/* 801CEC98 001CA8F8  2C 16 00 04 */	cmpwi r22, 4
/* 801CEC9C 001CA8FC  40 80 00 48 */	bge lbl_801CECE4
/* 801CECA0 001CA900  88 71 00 00 */	lbz r3, 0(r17)
/* 801CECA4 001CA904  2C 04 00 00 */	cmpwi r4, 0
/* 801CECA8 001CA908  38 00 00 00 */	li r0, 0
/* 801CECAC 001CA90C  7C 65 07 74 */	extsb r5, r3
/* 801CECB0 001CA910  41 80 00 0C */	blt lbl_801CECBC
/* 801CECB4 001CA914  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CECB8 001CA918  41 80 00 08 */	blt lbl_801CECC0
lbl_801CECBC:
/* 801CECBC 001CA91C  38 00 00 01 */	li r0, 1
lbl_801CECC0:
/* 801CECC0 001CA920  2C 00 00 00 */	cmpwi r0, 0
/* 801CECC4 001CA924  41 82 00 0C */	beq lbl_801CECD0
/* 801CECC8 001CA928  7C 80 23 78 */	mr r0, r4
/* 801CECCC 001CA92C  48 00 00 10 */	b lbl_801CECDC
lbl_801CECD0:
/* 801CECD0 001CA930  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CECD4 001CA934  80 63 00 0C */	lwz r3, 0xc(r3)
/* 801CECD8 001CA938  7C 03 20 AE */	lbzx r0, r3, r4
lbl_801CECDC:
/* 801CECDC 001CA93C  7C 05 00 00 */	cmpw r5, r0
/* 801CECE0 001CA940  41 82 FF 90 */	beq lbl_801CEC70
lbl_801CECE4:
/* 801CECE4 001CA944  38 16 FF FD */	addi r0, r22, -3
/* 801CECE8 001CA948  28 00 00 01 */	cmplwi r0, 1
/* 801CECEC 001CA94C  41 81 01 30 */	bgt lbl_801CEE1C
/* 801CECF0 001CA950  2C 16 00 04 */	cmpwi r22, 4
/* 801CECF4 001CA954  40 82 00 E4 */	bne lbl_801CEDD8
/* 801CECF8 001CA958  3A 21 00 38 */	addi r17, r1, 0x38
/* 801CECFC 001CA95C  48 00 00 30 */	b lbl_801CED2C
lbl_801CED00:
/* 801CED00 001CA960  7E 4C 93 78 */	mr r12, r18
/* 801CED04 001CA964  98 91 00 00 */	stb r4, 0(r17)
/* 801CED08 001CA968  7E 63 9B 78 */	mr r3, r19
/* 801CED0C 001CA96C  38 80 00 00 */	li r4, 0
/* 801CED10 001CA970  38 A0 00 00 */	li r5, 0
/* 801CED14 001CA974  7D 89 03 A6 */	mtctr r12
/* 801CED18 001CA978  3A B5 00 01 */	addi r21, r21, 1
/* 801CED1C 001CA97C  3A 31 00 01 */	addi r17, r17, 1
/* 801CED20 001CA980  3B DE 00 01 */	addi r30, r30, 1
/* 801CED24 001CA984  4E 80 04 21 */	bctrl
/* 801CED28 001CA988  7C 64 1B 78 */	mr r4, r3
lbl_801CED2C:
/* 801CED2C 001CA98C  2C 15 00 20 */	cmpwi r21, 0x20
/* 801CED30 001CA990  40 80 00 94 */	bge lbl_801CEDC4
/* 801CED34 001CA994  2C 04 00 00 */	cmpwi r4, 0
/* 801CED38 001CA998  38 00 00 00 */	li r0, 0
/* 801CED3C 001CA99C  41 80 00 0C */	blt lbl_801CED48
/* 801CED40 001CA9A0  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CED44 001CA9A4  41 80 00 08 */	blt lbl_801CED4C
lbl_801CED48:
/* 801CED48 001CA9A8  38 00 00 01 */	li r0, 1
lbl_801CED4C:
/* 801CED4C 001CA9AC  2C 00 00 00 */	cmpwi r0, 0
/* 801CED50 001CA9B0  41 82 00 0C */	beq lbl_801CED5C
/* 801CED54 001CA9B4  38 00 00 00 */	li r0, 0
/* 801CED58 001CA9B8  48 00 00 18 */	b lbl_801CED70
lbl_801CED5C:
/* 801CED5C 001CA9BC  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CED60 001CA9C0  54 80 08 3C */	slwi r0, r4, 1
/* 801CED64 001CA9C4  80 63 00 08 */	lwz r3, 8(r3)
/* 801CED68 001CA9C8  7C 03 02 2E */	lhzx r0, r3, r0
/* 801CED6C 001CA9CC  54 00 07 38 */	rlwinm r0, r0, 0, 0x1c, 0x1c
lbl_801CED70:
/* 801CED70 001CA9D0  2C 00 00 00 */	cmpwi r0, 0
/* 801CED74 001CA9D4  40 82 FF 8C */	bne lbl_801CED00
/* 801CED78 001CA9D8  2C 04 00 00 */	cmpwi r4, 0
/* 801CED7C 001CA9DC  38 00 00 00 */	li r0, 0
/* 801CED80 001CA9E0  41 80 00 0C */	blt lbl_801CED8C
/* 801CED84 001CA9E4  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CED88 001CA9E8  41 80 00 08 */	blt lbl_801CED90
lbl_801CED8C:
/* 801CED8C 001CA9EC  38 00 00 01 */	li r0, 1
lbl_801CED90:
/* 801CED90 001CA9F0  2C 00 00 00 */	cmpwi r0, 0
/* 801CED94 001CA9F4  41 82 00 0C */	beq lbl_801CEDA0
/* 801CED98 001CA9F8  38 00 00 00 */	li r0, 0
/* 801CED9C 001CA9FC  48 00 00 18 */	b lbl_801CEDB4
lbl_801CEDA0:
/* 801CEDA0 001CAA00  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CEDA4 001CAA04  54 80 08 3C */	slwi r0, r4, 1
/* 801CEDA8 001CAA08  80 63 00 08 */	lwz r3, 8(r3)
/* 801CEDAC 001CAA0C  7C 03 02 2E */	lhzx r0, r3, r0
/* 801CEDB0 001CAA10  54 00 07 FE */	clrlwi r0, r0, 0x1f
lbl_801CEDB4:
/* 801CEDB4 001CAA14  2C 00 00 00 */	cmpwi r0, 0
/* 801CEDB8 001CAA18  40 82 FF 48 */	bne lbl_801CED00
/* 801CEDBC 001CAA1C  7C 04 D8 00 */	cmpw r4, r27
/* 801CEDC0 001CAA20  41 82 FF 40 */	beq lbl_801CED00
lbl_801CEDC4:
/* 801CEDC4 001CAA24  2C 04 00 29 */	cmpwi r4, 0x29
/* 801CEDC8 001CAA28  41 82 00 0C */	beq lbl_801CEDD4
/* 801CEDCC 001CAA2C  3A 20 10 00 */	li r17, 0x1000
/* 801CEDD0 001CAA30  48 00 0A DC */	b lbl_801CF8AC
lbl_801CEDD4:
/* 801CEDD4 001CAA34  3A B5 00 01 */	addi r21, r21, 1
lbl_801CEDD8:
/* 801CEDD8 001CAA38  80 01 00 90 */	lwz r0, 0x90(r1)
/* 801CEDDC 001CAA3C  38 61 00 38 */	addi r3, r1, 0x38
/* 801CEDE0 001CAA40  2C 00 00 00 */	cmpwi r0, 0
/* 801CEDE4 001CAA44  38 00 00 00 */	li r0, 0
/* 801CEDE8 001CAA48  7C 03 A9 AE */	stbx r0, r3, r21
/* 801CEDEC 001CAA4C  41 82 00 10 */	beq lbl_801CEDFC
/* 801CEDF0 001CAA50  48 00 5A 41 */	bl nan
/* 801CEDF4 001CAA54  FC 20 08 50 */	fneg f1, f1
/* 801CEDF8 001CAA58  48 00 00 08 */	b lbl_801CEE00
lbl_801CEDFC:
/* 801CEDFC 001CAA5C  48 00 5A 35 */	bl nan
lbl_801CEE00:
/* 801CEE00 001CAA60  80 01 00 88 */	lwz r0, 0x88(r1)
/* 801CEE04 001CAA64  7C 60 B2 14 */	add r3, r0, r22
/* 801CEE08 001CAA68  7C 15 72 14 */	add r0, r21, r14
/* 801CEE0C 001CAA6C  7C 03 02 14 */	add r0, r3, r0
/* 801CEE10 001CAA70  80 61 00 0C */	lwz r3, 0xc(r1)
/* 801CEE14 001CAA74  90 03 00 00 */	stw r0, 0(r3)
/* 801CEE18 001CAA78  48 00 0D D0 */	b lbl_801CFBE8
lbl_801CEE1C:
/* 801CEE1C 001CAA7C  3A 20 10 00 */	li r17, 0x1000
/* 801CEE20 001CAA80  48 00 0A 8C */	b lbl_801CF8AC
lbl_801CEE24:
/* 801CEE24 001CAA84  7C 04 D8 00 */	cmpw r4, r27
/* 801CEE28 001CAA88  40 82 00 2C */	bne lbl_801CEE54
/* 801CEE2C 001CAA8C  7E 4C 93 78 */	mr r12, r18
/* 801CEE30 001CAA90  7E 63 9B 78 */	mr r3, r19
/* 801CEE34 001CAA94  3A 20 00 10 */	li r17, 0x10
/* 801CEE38 001CAA98  38 80 00 00 */	li r4, 0
/* 801CEE3C 001CAA9C  38 A0 00 00 */	li r5, 0
/* 801CEE40 001CAAA0  7D 89 03 A6 */	mtctr r12
/* 801CEE44 001CAAA4  3B DE 00 01 */	addi r30, r30, 1
/* 801CEE48 001CAAA8  4E 80 04 21 */	bctrl
/* 801CEE4C 001CAAAC  7C 64 1B 78 */	mr r4, r3
/* 801CEE50 001CAAB0  48 00 0A 5C */	b lbl_801CF8AC
lbl_801CEE54:
/* 801CEE54 001CAAB4  2C 04 00 00 */	cmpwi r4, 0
/* 801CEE58 001CAAB8  38 00 00 00 */	li r0, 0
/* 801CEE5C 001CAABC  41 80 00 0C */	blt lbl_801CEE68
/* 801CEE60 001CAAC0  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CEE64 001CAAC4  41 80 00 08 */	blt lbl_801CEE6C
lbl_801CEE68:
/* 801CEE68 001CAAC8  38 00 00 01 */	li r0, 1
lbl_801CEE6C:
/* 801CEE6C 001CAACC  2C 00 00 00 */	cmpwi r0, 0
/* 801CEE70 001CAAD0  41 82 00 0C */	beq lbl_801CEE7C
/* 801CEE74 001CAAD4  38 00 00 00 */	li r0, 0
/* 801CEE78 001CAAD8  48 00 00 18 */	b lbl_801CEE90
lbl_801CEE7C:
/* 801CEE7C 001CAADC  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CEE80 001CAAE0  54 80 08 3C */	slwi r0, r4, 1
/* 801CEE84 001CAAE4  80 63 00 08 */	lwz r3, 8(r3)
/* 801CEE88 001CAAE8  7C 03 02 2E */	lhzx r0, r3, r0
/* 801CEE8C 001CAAEC  54 00 07 38 */	rlwinm r0, r0, 0, 0x1c, 0x1c
lbl_801CEE90:
/* 801CEE90 001CAAF0  2C 00 00 00 */	cmpwi r0, 0
/* 801CEE94 001CAAF4  40 82 00 0C */	bne lbl_801CEEA0
/* 801CEE98 001CAAF8  3A 20 10 00 */	li r17, 0x1000
/* 801CEE9C 001CAAFC  48 00 0A 10 */	b lbl_801CF8AC
lbl_801CEEA0:
/* 801CEEA0 001CAB00  2C 04 00 30 */	cmpwi r4, 0x30
/* 801CEEA4 001CAB04  40 82 00 74 */	bne lbl_801CEF18
/* 801CEEA8 001CAB08  7E 4C 93 78 */	mr r12, r18
/* 801CEEAC 001CAB0C  7E 63 9B 78 */	mr r3, r19
/* 801CEEB0 001CAB10  38 80 00 00 */	li r4, 0
/* 801CEEB4 001CAB14  38 A0 00 00 */	li r5, 0
/* 801CEEB8 001CAB18  7D 89 03 A6 */	mtctr r12
/* 801CEEBC 001CAB1C  3B DE 00 01 */	addi r30, r30, 1
/* 801CEEC0 001CAB20  4E 80 04 21 */	bctrl
/* 801CEEC4 001CAB24  2C 03 00 00 */	cmpwi r3, 0
/* 801CEEC8 001CAB28  7C 64 1B 78 */	mr r4, r3
/* 801CEECC 001CAB2C  38 00 00 00 */	li r0, 0
/* 801CEED0 001CAB30  41 80 00 0C */	blt lbl_801CEEDC
/* 801CEED4 001CAB34  2C 03 01 00 */	cmpwi r3, 0x100
/* 801CEED8 001CAB38  41 80 00 08 */	blt lbl_801CEEE0
lbl_801CEEDC:
/* 801CEEDC 001CAB3C  38 00 00 01 */	li r0, 1
lbl_801CEEE0:
/* 801CEEE0 001CAB40  2C 00 00 00 */	cmpwi r0, 0
/* 801CEEE4 001CAB44  41 82 00 08 */	beq lbl_801CEEEC
/* 801CEEE8 001CAB48  48 00 00 10 */	b lbl_801CEEF8
lbl_801CEEEC:
/* 801CEEEC 001CAB4C  80 B0 00 38 */	lwz r5, 0x38(r16)
/* 801CEEF0 001CAB50  80 A5 00 0C */	lwz r5, 0xc(r5)
/* 801CEEF4 001CAB54  7C 65 18 AE */	lbzx r3, r5, r3
lbl_801CEEF8:
/* 801CEEF8 001CAB58  2C 03 00 58 */	cmpwi r3, 0x58
/* 801CEEFC 001CAB5C  40 82 00 14 */	bne lbl_801CEF10
/* 801CEF00 001CAB60  3C 60 00 01 */	lis r3, 0x00008000@ha
/* 801CEF04 001CAB64  3B E0 00 01 */	li r31, 1
/* 801CEF08 001CAB68  3A 23 80 00 */	addi r17, r3, 0x00008000@l
/* 801CEF0C 001CAB6C  48 00 09 A0 */	b lbl_801CF8AC
lbl_801CEF10:
/* 801CEF10 001CAB70  3A 20 00 04 */	li r17, 4
/* 801CEF14 001CAB74  48 00 09 98 */	b lbl_801CF8AC
lbl_801CEF18:
/* 801CEF18 001CAB78  3A 20 00 08 */	li r17, 8
/* 801CEF1C 001CAB7C  48 00 09 90 */	b lbl_801CF8AC
lbl_801CEF20:
/* 801CEF20 001CAB80  2C 04 00 30 */	cmpwi r4, 0x30
/* 801CEF24 001CAB84  40 82 00 28 */	bne lbl_801CEF4C
/* 801CEF28 001CAB88  7E 4C 93 78 */	mr r12, r18
/* 801CEF2C 001CAB8C  7E 63 9B 78 */	mr r3, r19
/* 801CEF30 001CAB90  38 80 00 00 */	li r4, 0
/* 801CEF34 001CAB94  38 A0 00 00 */	li r5, 0
/* 801CEF38 001CAB98  7D 89 03 A6 */	mtctr r12
/* 801CEF3C 001CAB9C  3B DE 00 01 */	addi r30, r30, 1
/* 801CEF40 001CABA0  4E 80 04 21 */	bctrl
/* 801CEF44 001CABA4  7C 64 1B 78 */	mr r4, r3
/* 801CEF48 001CABA8  48 00 09 64 */	b lbl_801CF8AC
lbl_801CEF4C:
/* 801CEF4C 001CABAC  3A 20 00 08 */	li r17, 8
/* 801CEF50 001CABB0  48 00 09 5C */	b lbl_801CF8AC
lbl_801CEF54:
/* 801CEF54 001CABB4  2C 04 00 00 */	cmpwi r4, 0
/* 801CEF58 001CABB8  38 00 00 00 */	li r0, 0
/* 801CEF5C 001CABBC  41 80 00 0C */	blt lbl_801CEF68
/* 801CEF60 001CABC0  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CEF64 001CABC4  41 80 00 08 */	blt lbl_801CEF6C
lbl_801CEF68:
/* 801CEF68 001CABC8  38 00 00 01 */	li r0, 1
lbl_801CEF6C:
/* 801CEF6C 001CABCC  2C 00 00 00 */	cmpwi r0, 0
/* 801CEF70 001CABD0  41 82 00 0C */	beq lbl_801CEF7C
/* 801CEF74 001CABD4  38 00 00 00 */	li r0, 0
/* 801CEF78 001CABD8  48 00 00 18 */	b lbl_801CEF90
lbl_801CEF7C:
/* 801CEF7C 001CABDC  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CEF80 001CABE0  54 80 08 3C */	slwi r0, r4, 1
/* 801CEF84 001CABE4  80 63 00 08 */	lwz r3, 8(r3)
/* 801CEF88 001CABE8  7C 03 02 2E */	lhzx r0, r3, r0
/* 801CEF8C 001CABEC  54 00 07 38 */	rlwinm r0, r0, 0, 0x1c, 0x1c
lbl_801CEF90:
/* 801CEF90 001CABF0  2C 00 00 00 */	cmpwi r0, 0
/* 801CEF94 001CABF4  40 82 00 3C */	bne lbl_801CEFD0
/* 801CEF98 001CABF8  7C 04 D8 00 */	cmpw r4, r27
/* 801CEF9C 001CABFC  40 82 00 2C */	bne lbl_801CEFC8
/* 801CEFA0 001CAC00  7E 4C 93 78 */	mr r12, r18
/* 801CEFA4 001CAC04  7E 63 9B 78 */	mr r3, r19
/* 801CEFA8 001CAC08  3A 20 00 20 */	li r17, 0x20
/* 801CEFAC 001CAC0C  38 80 00 00 */	li r4, 0
/* 801CEFB0 001CAC10  38 A0 00 00 */	li r5, 0
/* 801CEFB4 001CAC14  7D 89 03 A6 */	mtctr r12
/* 801CEFB8 001CAC18  3B DE 00 01 */	addi r30, r30, 1
/* 801CEFBC 001CAC1C  4E 80 04 21 */	bctrl
/* 801CEFC0 001CAC20  7C 64 1B 78 */	mr r4, r3
/* 801CEFC4 001CAC24  48 00 08 E8 */	b lbl_801CF8AC
lbl_801CEFC8:
/* 801CEFC8 001CAC28  3A 20 00 40 */	li r17, 0x40
/* 801CEFCC 001CAC2C  48 00 08 E0 */	b lbl_801CF8AC
lbl_801CEFD0:
/* 801CEFD0 001CAC30  88 A1 00 5C */	lbz r5, 0x5c(r1)
/* 801CEFD4 001CAC34  28 05 00 14 */	cmplwi r5, 0x14
/* 801CEFD8 001CAC38  40 80 00 1C */	bge lbl_801CEFF4
/* 801CEFDC 001CAC3C  38 01 00 58 */	addi r0, r1, 0x58
/* 801CEFE0 001CAC40  7C 60 2A 14 */	add r3, r0, r5
/* 801CEFE4 001CAC44  98 83 00 05 */	stb r4, 5(r3)
/* 801CEFE8 001CAC48  38 05 00 01 */	addi r0, r5, 1
/* 801CEFEC 001CAC4C  98 01 00 5C */	stb r0, 0x5c(r1)
/* 801CEFF0 001CAC50  48 00 00 08 */	b lbl_801CEFF8
lbl_801CEFF4:
/* 801CEFF4 001CAC54  3B 9C 00 01 */	addi r28, r28, 1
lbl_801CEFF8:
/* 801CEFF8 001CAC58  7E 4C 93 78 */	mr r12, r18
/* 801CEFFC 001CAC5C  7E 63 9B 78 */	mr r3, r19
/* 801CF000 001CAC60  38 80 00 00 */	li r4, 0
/* 801CF004 001CAC64  38 A0 00 00 */	li r5, 0
/* 801CF008 001CAC68  7D 89 03 A6 */	mtctr r12
/* 801CF00C 001CAC6C  3B DE 00 01 */	addi r30, r30, 1
/* 801CF010 001CAC70  4E 80 04 21 */	bctrl
/* 801CF014 001CAC74  7C 64 1B 78 */	mr r4, r3
/* 801CF018 001CAC78  48 00 08 94 */	b lbl_801CF8AC
lbl_801CF01C:
/* 801CF01C 001CAC7C  2C 04 00 00 */	cmpwi r4, 0
/* 801CF020 001CAC80  38 00 00 00 */	li r0, 0
/* 801CF024 001CAC84  41 80 00 0C */	blt lbl_801CF030
/* 801CF028 001CAC88  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CF02C 001CAC8C  41 80 00 08 */	blt lbl_801CF034
lbl_801CF030:
/* 801CF030 001CAC90  38 00 00 01 */	li r0, 1
lbl_801CF034:
/* 801CF034 001CAC94  2C 00 00 00 */	cmpwi r0, 0
/* 801CF038 001CAC98  41 82 00 0C */	beq lbl_801CF044
/* 801CF03C 001CAC9C  38 00 00 00 */	li r0, 0
/* 801CF040 001CACA0  48 00 00 18 */	b lbl_801CF058
lbl_801CF044:
/* 801CF044 001CACA4  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CF048 001CACA8  54 80 08 3C */	slwi r0, r4, 1
/* 801CF04C 001CACAC  80 63 00 08 */	lwz r3, 8(r3)
/* 801CF050 001CACB0  7C 03 02 2E */	lhzx r0, r3, r0
/* 801CF054 001CACB4  54 00 07 38 */	rlwinm r0, r0, 0, 0x1c, 0x1c
lbl_801CF058:
/* 801CF058 001CACB8  2C 00 00 00 */	cmpwi r0, 0
/* 801CF05C 001CACBC  40 82 00 0C */	bne lbl_801CF068
/* 801CF060 001CACC0  3A 20 10 00 */	li r17, 0x1000
/* 801CF064 001CACC4  48 00 08 48 */	b lbl_801CF8AC
lbl_801CF068:
/* 801CF068 001CACC8  3A 20 00 20 */	li r17, 0x20
/* 801CF06C 001CACCC  48 00 08 40 */	b lbl_801CF8AC
lbl_801CF070:
/* 801CF070 001CACD0  2C 04 00 00 */	cmpwi r4, 0
/* 801CF074 001CACD4  38 00 00 00 */	li r0, 0
/* 801CF078 001CACD8  41 80 00 0C */	blt lbl_801CF084
/* 801CF07C 001CACDC  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CF080 001CACE0  41 80 00 08 */	blt lbl_801CF088
lbl_801CF084:
/* 801CF084 001CACE4  38 00 00 01 */	li r0, 1
lbl_801CF088:
/* 801CF088 001CACE8  2C 00 00 00 */	cmpwi r0, 0
/* 801CF08C 001CACEC  41 82 00 0C */	beq lbl_801CF098
/* 801CF090 001CACF0  38 00 00 00 */	li r0, 0
/* 801CF094 001CACF4  48 00 00 18 */	b lbl_801CF0AC
lbl_801CF098:
/* 801CF098 001CACF8  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CF09C 001CACFC  54 80 08 3C */	slwi r0, r4, 1
/* 801CF0A0 001CAD00  80 63 00 08 */	lwz r3, 8(r3)
/* 801CF0A4 001CAD04  7C 03 02 2E */	lhzx r0, r3, r0
/* 801CF0A8 001CAD08  54 00 07 38 */	rlwinm r0, r0, 0, 0x1c, 0x1c
lbl_801CF0AC:
/* 801CF0AC 001CAD0C  2C 00 00 00 */	cmpwi r0, 0
/* 801CF0B0 001CAD10  40 82 00 0C */	bne lbl_801CF0BC
/* 801CF0B4 001CAD14  3A 20 00 40 */	li r17, 0x40
/* 801CF0B8 001CAD18  48 00 07 F4 */	b lbl_801CF8AC
lbl_801CF0BC:
/* 801CF0BC 001CAD1C  88 01 00 5C */	lbz r0, 0x5c(r1)
/* 801CF0C0 001CAD20  28 00 00 14 */	cmplwi r0, 0x14
/* 801CF0C4 001CAD24  40 80 00 30 */	bge lbl_801CF0F4
/* 801CF0C8 001CAD28  2C 04 00 30 */	cmpwi r4, 0x30
/* 801CF0CC 001CAD2C  40 82 00 0C */	bne lbl_801CF0D8
/* 801CF0D0 001CAD30  2C 00 00 00 */	cmpwi r0, 0
/* 801CF0D4 001CAD34  41 82 00 1C */	beq lbl_801CF0F0
lbl_801CF0D8:
/* 801CF0D8 001CAD38  88 A1 00 5C */	lbz r5, 0x5c(r1)
/* 801CF0DC 001CAD3C  38 01 00 58 */	addi r0, r1, 0x58
/* 801CF0E0 001CAD40  7C 60 2A 14 */	add r3, r0, r5
/* 801CF0E4 001CAD44  38 05 00 01 */	addi r0, r5, 1
/* 801CF0E8 001CAD48  98 83 00 05 */	stb r4, 5(r3)
/* 801CF0EC 001CAD4C  98 01 00 5C */	stb r0, 0x5c(r1)
lbl_801CF0F0:
/* 801CF0F0 001CAD50  3B 9C FF FF */	addi r28, r28, -1
lbl_801CF0F4:
/* 801CF0F4 001CAD54  7E 4C 93 78 */	mr r12, r18
/* 801CF0F8 001CAD58  7E 63 9B 78 */	mr r3, r19
/* 801CF0FC 001CAD5C  38 80 00 00 */	li r4, 0
/* 801CF100 001CAD60  38 A0 00 00 */	li r5, 0
/* 801CF104 001CAD64  7D 89 03 A6 */	mtctr r12
/* 801CF108 001CAD68  3B DE 00 01 */	addi r30, r30, 1
/* 801CF10C 001CAD6C  4E 80 04 21 */	bctrl
/* 801CF110 001CAD70  7C 64 1B 78 */	mr r4, r3
/* 801CF114 001CAD74  48 00 07 98 */	b lbl_801CF8AC
lbl_801CF118:
/* 801CF118 001CAD78  2C 04 00 00 */	cmpwi r4, 0
/* 801CF11C 001CAD7C  38 00 00 00 */	li r0, 0
/* 801CF120 001CAD80  41 80 00 0C */	blt lbl_801CF12C
/* 801CF124 001CAD84  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CF128 001CAD88  41 80 00 08 */	blt lbl_801CF130
lbl_801CF12C:
/* 801CF12C 001CAD8C  38 00 00 01 */	li r0, 1
lbl_801CF130:
/* 801CF130 001CAD90  2C 00 00 00 */	cmpwi r0, 0
/* 801CF134 001CAD94  41 82 00 0C */	beq lbl_801CF140
/* 801CF138 001CAD98  7C 80 23 78 */	mr r0, r4
/* 801CF13C 001CAD9C  48 00 00 10 */	b lbl_801CF14C
lbl_801CF140:
/* 801CF140 001CADA0  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CF144 001CADA4  80 63 00 0C */	lwz r3, 0xc(r3)
/* 801CF148 001CADA8  7C 03 20 AE */	lbzx r0, r3, r4
lbl_801CF14C:
/* 801CF14C 001CADAC  2C 00 00 45 */	cmpwi r0, 0x45
/* 801CF150 001CADB0  40 82 00 2C */	bne lbl_801CF17C
/* 801CF154 001CADB4  7E 4C 93 78 */	mr r12, r18
/* 801CF158 001CADB8  7E 63 9B 78 */	mr r3, r19
/* 801CF15C 001CADBC  3A 20 00 80 */	li r17, 0x80
/* 801CF160 001CADC0  38 80 00 00 */	li r4, 0
/* 801CF164 001CADC4  38 A0 00 00 */	li r5, 0
/* 801CF168 001CADC8  7D 89 03 A6 */	mtctr r12
/* 801CF16C 001CADCC  3B DE 00 01 */	addi r30, r30, 1
/* 801CF170 001CADD0  4E 80 04 21 */	bctrl
/* 801CF174 001CADD4  7C 64 1B 78 */	mr r4, r3
/* 801CF178 001CADD8  48 00 07 34 */	b lbl_801CF8AC
lbl_801CF17C:
/* 801CF17C 001CADDC  3A 20 08 00 */	li r17, 0x800
/* 801CF180 001CADE0  48 00 07 2C */	b lbl_801CF8AC
lbl_801CF184:
/* 801CF184 001CADE4  2C 04 00 2B */	cmpwi r4, 0x2b
/* 801CF188 001CADE8  40 82 00 28 */	bne lbl_801CF1B0
/* 801CF18C 001CADEC  7E 4C 93 78 */	mr r12, r18
/* 801CF190 001CADF0  7E 63 9B 78 */	mr r3, r19
/* 801CF194 001CADF4  38 80 00 00 */	li r4, 0
/* 801CF198 001CADF8  38 A0 00 00 */	li r5, 0
/* 801CF19C 001CADFC  7D 89 03 A6 */	mtctr r12
/* 801CF1A0 001CAE00  3B DE 00 01 */	addi r30, r30, 1
/* 801CF1A4 001CAE04  4E 80 04 21 */	bctrl
/* 801CF1A8 001CAE08  7C 64 1B 78 */	mr r4, r3
/* 801CF1AC 001CAE0C  48 00 00 34 */	b lbl_801CF1E0
lbl_801CF1B0:
/* 801CF1B0 001CAE10  2C 04 00 2D */	cmpwi r4, 0x2d
/* 801CF1B4 001CAE14  40 82 00 2C */	bne lbl_801CF1E0
/* 801CF1B8 001CAE18  7E 4C 93 78 */	mr r12, r18
/* 801CF1BC 001CAE1C  7E 63 9B 78 */	mr r3, r19
/* 801CF1C0 001CAE20  38 80 00 00 */	li r4, 0
/* 801CF1C4 001CAE24  38 A0 00 00 */	li r5, 0
/* 801CF1C8 001CAE28  7D 89 03 A6 */	mtctr r12
/* 801CF1CC 001CAE2C  3B DE 00 01 */	addi r30, r30, 1
/* 801CF1D0 001CAE30  4E 80 04 21 */	bctrl
/* 801CF1D4 001CAE34  38 00 00 01 */	li r0, 1
/* 801CF1D8 001CAE38  7C 64 1B 78 */	mr r4, r3
/* 801CF1DC 001CAE3C  90 01 00 8C */	stw r0, 0x8c(r1)
lbl_801CF1E0:
/* 801CF1E0 001CAE40  3A 20 01 00 */	li r17, 0x100
/* 801CF1E4 001CAE44  48 00 06 C8 */	b lbl_801CF8AC
lbl_801CF1E8:
/* 801CF1E8 001CAE48  2C 04 00 00 */	cmpwi r4, 0
/* 801CF1EC 001CAE4C  38 00 00 00 */	li r0, 0
/* 801CF1F0 001CAE50  41 80 00 0C */	blt lbl_801CF1FC
/* 801CF1F4 001CAE54  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CF1F8 001CAE58  41 80 00 08 */	blt lbl_801CF200
lbl_801CF1FC:
/* 801CF1FC 001CAE5C  38 00 00 01 */	li r0, 1
lbl_801CF200:
/* 801CF200 001CAE60  2C 00 00 00 */	cmpwi r0, 0
/* 801CF204 001CAE64  41 82 00 0C */	beq lbl_801CF210
/* 801CF208 001CAE68  38 00 00 00 */	li r0, 0
/* 801CF20C 001CAE6C  48 00 00 18 */	b lbl_801CF224
lbl_801CF210:
/* 801CF210 001CAE70  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CF214 001CAE74  54 80 08 3C */	slwi r0, r4, 1
/* 801CF218 001CAE78  80 63 00 08 */	lwz r3, 8(r3)
/* 801CF21C 001CAE7C  7C 03 02 2E */	lhzx r0, r3, r0
/* 801CF220 001CAE80  54 00 07 38 */	rlwinm r0, r0, 0, 0x1c, 0x1c
lbl_801CF224:
/* 801CF224 001CAE84  2C 00 00 00 */	cmpwi r0, 0
/* 801CF228 001CAE88  40 82 00 0C */	bne lbl_801CF234
/* 801CF22C 001CAE8C  3A 20 10 00 */	li r17, 0x1000
/* 801CF230 001CAE90  48 00 06 7C */	b lbl_801CF8AC
lbl_801CF234:
/* 801CF234 001CAE94  2C 04 00 30 */	cmpwi r4, 0x30
/* 801CF238 001CAE98  40 82 00 2C */	bne lbl_801CF264
/* 801CF23C 001CAE9C  7E 4C 93 78 */	mr r12, r18
/* 801CF240 001CAEA0  7E 63 9B 78 */	mr r3, r19
/* 801CF244 001CAEA4  3A 20 02 00 */	li r17, 0x200
/* 801CF248 001CAEA8  38 80 00 00 */	li r4, 0
/* 801CF24C 001CAEAC  38 A0 00 00 */	li r5, 0
/* 801CF250 001CAEB0  7D 89 03 A6 */	mtctr r12
/* 801CF254 001CAEB4  3B DE 00 01 */	addi r30, r30, 1
/* 801CF258 001CAEB8  4E 80 04 21 */	bctrl
/* 801CF25C 001CAEBC  7C 64 1B 78 */	mr r4, r3
/* 801CF260 001CAEC0  48 00 06 4C */	b lbl_801CF8AC
lbl_801CF264:
/* 801CF264 001CAEC4  3A 20 04 00 */	li r17, 0x400
/* 801CF268 001CAEC8  48 00 06 44 */	b lbl_801CF8AC
lbl_801CF26C:
/* 801CF26C 001CAECC  2C 04 00 30 */	cmpwi r4, 0x30
/* 801CF270 001CAED0  40 82 00 28 */	bne lbl_801CF298
/* 801CF274 001CAED4  7E 4C 93 78 */	mr r12, r18
/* 801CF278 001CAED8  7E 63 9B 78 */	mr r3, r19
/* 801CF27C 001CAEDC  38 80 00 00 */	li r4, 0
/* 801CF280 001CAEE0  38 A0 00 00 */	li r5, 0
/* 801CF284 001CAEE4  7D 89 03 A6 */	mtctr r12
/* 801CF288 001CAEE8  3B DE 00 01 */	addi r30, r30, 1
/* 801CF28C 001CAEEC  4E 80 04 21 */	bctrl
/* 801CF290 001CAEF0  7C 64 1B 78 */	mr r4, r3
/* 801CF294 001CAEF4  48 00 06 18 */	b lbl_801CF8AC
lbl_801CF298:
/* 801CF298 001CAEF8  3A 20 04 00 */	li r17, 0x400
/* 801CF29C 001CAEFC  48 00 06 10 */	b lbl_801CF8AC
lbl_801CF2A0:
/* 801CF2A0 001CAF00  2C 04 00 00 */	cmpwi r4, 0
/* 801CF2A4 001CAF04  38 00 00 00 */	li r0, 0
/* 801CF2A8 001CAF08  41 80 00 0C */	blt lbl_801CF2B4
/* 801CF2AC 001CAF0C  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CF2B0 001CAF10  41 80 00 08 */	blt lbl_801CF2B8
lbl_801CF2B4:
/* 801CF2B4 001CAF14  38 00 00 01 */	li r0, 1
lbl_801CF2B8:
/* 801CF2B8 001CAF18  2C 00 00 00 */	cmpwi r0, 0
/* 801CF2BC 001CAF1C  41 82 00 0C */	beq lbl_801CF2C8
/* 801CF2C0 001CAF20  38 00 00 00 */	li r0, 0
/* 801CF2C4 001CAF24  48 00 00 18 */	b lbl_801CF2DC
lbl_801CF2C8:
/* 801CF2C8 001CAF28  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CF2CC 001CAF2C  54 80 08 3C */	slwi r0, r4, 1
/* 801CF2D0 001CAF30  80 63 00 08 */	lwz r3, 8(r3)
/* 801CF2D4 001CAF34  7C 03 02 2E */	lhzx r0, r3, r0
/* 801CF2D8 001CAF38  54 00 07 38 */	rlwinm r0, r0, 0, 0x1c, 0x1c
lbl_801CF2DC:
/* 801CF2DC 001CAF3C  2C 00 00 00 */	cmpwi r0, 0
/* 801CF2E0 001CAF40  40 82 00 0C */	bne lbl_801CF2EC
/* 801CF2E4 001CAF44  3A 20 08 00 */	li r17, 0x800
/* 801CF2E8 001CAF48  48 00 05 C4 */	b lbl_801CF8AC
lbl_801CF2EC:
/* 801CF2EC 001CAF4C  1C 1D 00 0A */	mulli r0, r29, 0xa
/* 801CF2F0 001CAF50  7C 64 02 14 */	add r3, r4, r0
/* 801CF2F4 001CAF54  3B A3 FF D0 */	addi r29, r3, -48
/* 801CF2F8 001CAF58  2C 1D 7F FF */	cmpwi r29, 0x7fff
/* 801CF2FC 001CAF5C  40 81 00 0C */	ble lbl_801CF308
/* 801CF300 001CAF60  38 00 00 01 */	li r0, 1
/* 801CF304 001CAF64  90 14 00 00 */	stw r0, 0(r20)
lbl_801CF308:
/* 801CF308 001CAF68  7E 4C 93 78 */	mr r12, r18
/* 801CF30C 001CAF6C  7E 63 9B 78 */	mr r3, r19
/* 801CF310 001CAF70  38 80 00 00 */	li r4, 0
/* 801CF314 001CAF74  38 A0 00 00 */	li r5, 0
/* 801CF318 001CAF78  7D 89 03 A6 */	mtctr r12
/* 801CF31C 001CAF7C  3B DE 00 01 */	addi r30, r30, 1
/* 801CF320 001CAF80  4E 80 04 21 */	bctrl
/* 801CF324 001CAF84  7C 64 1B 78 */	mr r4, r3
/* 801CF328 001CAF88  48 00 05 84 */	b lbl_801CF8AC
lbl_801CF32C:
/* 801CF32C 001CAF8C  2C 1F 00 10 */	cmpwi r31, 0x10
/* 801CF330 001CAF90  41 82 03 74 */	beq lbl_801CF6A4
/* 801CF334 001CAF94  40 80 00 34 */	bge lbl_801CF368
/* 801CF338 001CAF98  2C 1F 00 04 */	cmpwi r31, 4
/* 801CF33C 001CAF9C  41 82 00 D4 */	beq lbl_801CF410
/* 801CF340 001CAFA0  40 80 00 1C */	bge lbl_801CF35C
/* 801CF344 001CAFA4  2C 1F 00 02 */	cmpwi r31, 2
/* 801CF348 001CAFA8  41 82 00 94 */	beq lbl_801CF3DC
/* 801CF34C 001CAFAC  40 80 05 60 */	bge lbl_801CF8AC
/* 801CF350 001CAFB0  2C 1F 00 01 */	cmpwi r31, 1
/* 801CF354 001CAFB4  40 80 00 44 */	bge lbl_801CF398
/* 801CF358 001CAFB8  48 00 05 54 */	b lbl_801CF8AC
lbl_801CF35C:
/* 801CF35C 001CAFBC  2C 1F 00 08 */	cmpwi r31, 8
/* 801CF360 001CAFC0  41 82 02 14 */	beq lbl_801CF574
/* 801CF364 001CAFC4  48 00 05 48 */	b lbl_801CF8AC
lbl_801CF368:
/* 801CF368 001CAFC8  2C 1F 00 80 */	cmpwi r31, 0x80
/* 801CF36C 001CAFCC  41 82 04 84 */	beq lbl_801CF7F0
/* 801CF370 001CAFD0  40 80 00 1C */	bge lbl_801CF38C
/* 801CF374 001CAFD4  2C 1F 00 40 */	cmpwi r31, 0x40
/* 801CF378 001CAFD8  41 82 03 F4 */	beq lbl_801CF76C
/* 801CF37C 001CAFDC  40 80 05 30 */	bge lbl_801CF8AC
/* 801CF380 001CAFE0  2C 1F 00 20 */	cmpwi r31, 0x20
/* 801CF384 001CAFE4  41 82 03 8C */	beq lbl_801CF710
/* 801CF388 001CAFE8  48 00 05 24 */	b lbl_801CF8AC
lbl_801CF38C:
/* 801CF38C 001CAFEC  2C 1F 01 00 */	cmpwi r31, 0x100
/* 801CF390 001CAFF0  41 82 04 94 */	beq lbl_801CF824
/* 801CF394 001CAFF4  48 00 05 18 */	b lbl_801CF8AC
lbl_801CF398:
/* 801CF398 001CAFF8  38 61 00 20 */	addi r3, r1, 0x20
/* 801CF39C 001CAFFC  38 80 00 00 */	li r4, 0
/* 801CF3A0 001CB000  38 A0 00 08 */	li r5, 8
/* 801CF3A4 001CB004  4B E3 4D 61 */	bl memset
/* 801CF3A8 001CB008  7E 4C 93 78 */	mr r12, r18
/* 801CF3AC 001CB00C  7E 63 9B 78 */	mr r3, r19
/* 801CF3B0 001CB010  3B 41 00 20 */	addi r26, r1, 0x20
/* 801CF3B4 001CB014  3A E0 00 00 */	li r23, 0
/* 801CF3B8 001CB018  3B 00 00 00 */	li r24, 0
/* 801CF3BC 001CB01C  3B E0 00 02 */	li r31, 2
/* 801CF3C0 001CB020  38 80 00 00 */	li r4, 0
/* 801CF3C4 001CB024  38 A0 00 00 */	li r5, 0
/* 801CF3C8 001CB028  7D 89 03 A6 */	mtctr r12
/* 801CF3CC 001CB02C  3B DE 00 01 */	addi r30, r30, 1
/* 801CF3D0 001CB030  4E 80 04 21 */	bctrl
/* 801CF3D4 001CB034  7C 64 1B 78 */	mr r4, r3
/* 801CF3D8 001CB038  48 00 04 D4 */	b lbl_801CF8AC
lbl_801CF3DC:
/* 801CF3DC 001CB03C  2C 04 00 30 */	cmpwi r4, 0x30
/* 801CF3E0 001CB040  40 82 00 28 */	bne lbl_801CF408
/* 801CF3E4 001CB044  7E 4C 93 78 */	mr r12, r18
/* 801CF3E8 001CB048  7E 63 9B 78 */	mr r3, r19
/* 801CF3EC 001CB04C  38 80 00 00 */	li r4, 0
/* 801CF3F0 001CB050  38 A0 00 00 */	li r5, 0
/* 801CF3F4 001CB054  7D 89 03 A6 */	mtctr r12
/* 801CF3F8 001CB058  3B DE 00 01 */	addi r30, r30, 1
/* 801CF3FC 001CB05C  4E 80 04 21 */	bctrl
/* 801CF400 001CB060  7C 64 1B 78 */	mr r4, r3
/* 801CF404 001CB064  48 00 04 A8 */	b lbl_801CF8AC
lbl_801CF408:
/* 801CF408 001CB068  3B E0 00 04 */	li r31, 4
/* 801CF40C 001CB06C  48 00 04 A0 */	b lbl_801CF8AC
lbl_801CF410:
/* 801CF410 001CB070  2C 04 00 00 */	cmpwi r4, 0
/* 801CF414 001CB074  38 00 00 00 */	li r0, 0
/* 801CF418 001CB078  41 80 00 0C */	blt lbl_801CF424
/* 801CF41C 001CB07C  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CF420 001CB080  41 80 00 08 */	blt lbl_801CF428
lbl_801CF424:
/* 801CF424 001CB084  38 00 00 01 */	li r0, 1
lbl_801CF428:
/* 801CF428 001CB088  2C 00 00 00 */	cmpwi r0, 0
/* 801CF42C 001CB08C  41 82 00 0C */	beq lbl_801CF438
/* 801CF430 001CB090  38 00 00 00 */	li r0, 0
/* 801CF434 001CB094  48 00 00 18 */	b lbl_801CF44C
lbl_801CF438:
/* 801CF438 001CB098  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CF43C 001CB09C  54 80 08 3C */	slwi r0, r4, 1
/* 801CF440 001CB0A0  80 63 00 08 */	lwz r3, 8(r3)
/* 801CF444 001CB0A4  7C 03 02 2E */	lhzx r0, r3, r0
/* 801CF448 001CB0A8  54 00 05 6A */	rlwinm r0, r0, 0, 0x15, 0x15
lbl_801CF44C:
/* 801CF44C 001CB0AC  2C 00 00 00 */	cmpwi r0, 0
/* 801CF450 001CB0B0  40 82 00 3C */	bne lbl_801CF48C
/* 801CF454 001CB0B4  7C 04 D8 00 */	cmpw r4, r27
/* 801CF458 001CB0B8  40 82 00 2C */	bne lbl_801CF484
/* 801CF45C 001CB0BC  7E 4C 93 78 */	mr r12, r18
/* 801CF460 001CB0C0  7E 63 9B 78 */	mr r3, r19
/* 801CF464 001CB0C4  3B E0 00 08 */	li r31, 8
/* 801CF468 001CB0C8  38 80 00 00 */	li r4, 0
/* 801CF46C 001CB0CC  38 A0 00 00 */	li r5, 0
/* 801CF470 001CB0D0  7D 89 03 A6 */	mtctr r12
/* 801CF474 001CB0D4  3B DE 00 01 */	addi r30, r30, 1
/* 801CF478 001CB0D8  4E 80 04 21 */	bctrl
/* 801CF47C 001CB0DC  7C 64 1B 78 */	mr r4, r3
/* 801CF480 001CB0E0  48 00 04 2C */	b lbl_801CF8AC
lbl_801CF484:
/* 801CF484 001CB0E4  3B E0 00 10 */	li r31, 0x10
/* 801CF488 001CB0E8  48 00 04 24 */	b lbl_801CF8AC
lbl_801CF48C:
/* 801CF48C 001CB0EC  38 00 00 0E */	li r0, 0xe
/* 801CF490 001CB0F0  7C 17 00 40 */	cmplw r23, r0
/* 801CF494 001CB0F4  40 80 00 BC */	bge lbl_801CF550
/* 801CF498 001CB0F8  57 00 0F FE */	srwi r0, r24, 0x1f
/* 801CF49C 001CB0FC  2C 04 00 00 */	cmpwi r4, 0
/* 801CF4A0 001CB100  7C 00 C2 14 */	add r0, r0, r24
/* 801CF4A4 001CB104  38 60 00 00 */	li r3, 0
/* 801CF4A8 001CB108  7C 00 0E 70 */	srawi r0, r0, 1
/* 801CF4AC 001CB10C  3A F7 00 01 */	addi r23, r23, 1
/* 801CF4B0 001CB110  7C 1A 00 AE */	lbzx r0, r26, r0
/* 801CF4B4 001CB114  41 80 00 0C */	blt lbl_801CF4C0
/* 801CF4B8 001CB118  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CF4BC 001CB11C  41 80 00 08 */	blt lbl_801CF4C4
lbl_801CF4C0:
/* 801CF4C0 001CB120  38 60 00 01 */	li r3, 1
lbl_801CF4C4:
/* 801CF4C4 001CB124  2C 03 00 00 */	cmpwi r3, 0
/* 801CF4C8 001CB128  41 82 00 08 */	beq lbl_801CF4D0
/* 801CF4CC 001CB12C  48 00 00 10 */	b lbl_801CF4DC
lbl_801CF4D0:
/* 801CF4D0 001CB130  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CF4D4 001CB134  80 63 00 0C */	lwz r3, 0xc(r3)
/* 801CF4D8 001CB138  7C 83 20 AE */	lbzx r4, r3, r4
lbl_801CF4DC:
/* 801CF4DC 001CB13C  2C 04 00 41 */	cmpwi r4, 0x41
/* 801CF4E0 001CB140  38 C4 FF D0 */	addi r6, r4, -48
/* 801CF4E4 001CB144  41 80 00 08 */	blt lbl_801CF4EC
/* 801CF4E8 001CB148  38 C4 FF C9 */	addi r6, r4, -55
lbl_801CF4EC:
/* 801CF4EC 001CB14C  57 05 0F FE */	srwi r5, r24, 0x1f
/* 801CF4F0 001CB150  57 03 07 FE */	clrlwi r3, r24, 0x1f
/* 801CF4F4 001CB154  7C 64 2A 78 */	xor r4, r3, r5
/* 801CF4F8 001CB158  54 C3 26 36 */	rlwinm r3, r6, 4, 0x18, 0x1b
/* 801CF4FC 001CB15C  7C 85 20 51 */	subf. r4, r5, r4
/* 801CF500 001CB160  7C 03 1B 78 */	or r3, r0, r3
/* 801CF504 001CB164  54 C4 06 3E */	clrlwi r4, r6, 0x18
/* 801CF508 001CB168  54 65 06 3E */	clrlwi r5, r3, 0x18
/* 801CF50C 001CB16C  41 82 00 0C */	beq lbl_801CF518
/* 801CF510 001CB170  7C 00 23 78 */	or r0, r0, r4
/* 801CF514 001CB174  54 05 06 3E */	clrlwi r5, r0, 0x18
lbl_801CF518:
/* 801CF518 001CB178  57 00 0F FE */	srwi r0, r24, 0x1f
/* 801CF51C 001CB17C  7E 4C 93 78 */	mr r12, r18
/* 801CF520 001CB180  7C 00 C2 14 */	add r0, r0, r24
/* 801CF524 001CB184  7E 63 9B 78 */	mr r3, r19
/* 801CF528 001CB188  7C 00 0E 70 */	srawi r0, r0, 1
/* 801CF52C 001CB18C  38 80 00 00 */	li r4, 0
/* 801CF530 001CB190  7C BA 01 AE */	stbx r5, r26, r0
/* 801CF534 001CB194  38 A0 00 00 */	li r5, 0
/* 801CF538 001CB198  7D 89 03 A6 */	mtctr r12
/* 801CF53C 001CB19C  3B 18 00 01 */	addi r24, r24, 1
/* 801CF540 001CB1A0  3B DE 00 01 */	addi r30, r30, 1
/* 801CF544 001CB1A4  4E 80 04 21 */	bctrl
/* 801CF548 001CB1A8  7C 64 1B 78 */	mr r4, r3
/* 801CF54C 001CB1AC  48 00 03 60 */	b lbl_801CF8AC
lbl_801CF550:
/* 801CF550 001CB1B0  7E 4C 93 78 */	mr r12, r18
/* 801CF554 001CB1B4  7E 63 9B 78 */	mr r3, r19
/* 801CF558 001CB1B8  38 80 00 00 */	li r4, 0
/* 801CF55C 001CB1BC  38 A0 00 00 */	li r5, 0
/* 801CF560 001CB1C0  7D 89 03 A6 */	mtctr r12
/* 801CF564 001CB1C4  3B DE 00 01 */	addi r30, r30, 1
/* 801CF568 001CB1C8  4E 80 04 21 */	bctrl
/* 801CF56C 001CB1CC  7C 64 1B 78 */	mr r4, r3
/* 801CF570 001CB1D0  48 00 03 3C */	b lbl_801CF8AC
lbl_801CF574:
/* 801CF574 001CB1D4  2C 04 00 00 */	cmpwi r4, 0
/* 801CF578 001CB1D8  38 00 00 00 */	li r0, 0
/* 801CF57C 001CB1DC  41 80 00 0C */	blt lbl_801CF588
/* 801CF580 001CB1E0  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CF584 001CB1E4  41 80 00 08 */	blt lbl_801CF58C
lbl_801CF588:
/* 801CF588 001CB1E8  38 00 00 01 */	li r0, 1
lbl_801CF58C:
/* 801CF58C 001CB1EC  2C 00 00 00 */	cmpwi r0, 0
/* 801CF590 001CB1F0  41 82 00 0C */	beq lbl_801CF59C
/* 801CF594 001CB1F4  38 00 00 00 */	li r0, 0
/* 801CF598 001CB1F8  48 00 00 18 */	b lbl_801CF5B0
lbl_801CF59C:
/* 801CF59C 001CB1FC  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CF5A0 001CB200  54 80 08 3C */	slwi r0, r4, 1
/* 801CF5A4 001CB204  80 63 00 08 */	lwz r3, 8(r3)
/* 801CF5A8 001CB208  7C 03 02 2E */	lhzx r0, r3, r0
/* 801CF5AC 001CB20C  54 00 05 6A */	rlwinm r0, r0, 0, 0x15, 0x15
lbl_801CF5B0:
/* 801CF5B0 001CB210  2C 00 00 00 */	cmpwi r0, 0
/* 801CF5B4 001CB214  40 82 00 0C */	bne lbl_801CF5C0
/* 801CF5B8 001CB218  3B E0 00 10 */	li r31, 0x10
/* 801CF5BC 001CB21C  48 00 02 F0 */	b lbl_801CF8AC
lbl_801CF5C0:
/* 801CF5C0 001CB220  38 00 00 0E */	li r0, 0xe
/* 801CF5C4 001CB224  7C 17 00 40 */	cmplw r23, r0
/* 801CF5C8 001CB228  40 80 00 B8 */	bge lbl_801CF680
/* 801CF5CC 001CB22C  57 00 0F FE */	srwi r0, r24, 0x1f
/* 801CF5D0 001CB230  2C 04 00 00 */	cmpwi r4, 0
/* 801CF5D4 001CB234  7C 00 C2 14 */	add r0, r0, r24
/* 801CF5D8 001CB238  38 60 00 00 */	li r3, 0
/* 801CF5DC 001CB23C  7C 00 0E 70 */	srawi r0, r0, 1
/* 801CF5E0 001CB240  7C 1A 00 AE */	lbzx r0, r26, r0
/* 801CF5E4 001CB244  41 80 00 0C */	blt lbl_801CF5F0
/* 801CF5E8 001CB248  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CF5EC 001CB24C  41 80 00 08 */	blt lbl_801CF5F4
lbl_801CF5F0:
/* 801CF5F0 001CB250  38 60 00 01 */	li r3, 1
lbl_801CF5F4:
/* 801CF5F4 001CB254  2C 03 00 00 */	cmpwi r3, 0
/* 801CF5F8 001CB258  41 82 00 08 */	beq lbl_801CF600
/* 801CF5FC 001CB25C  48 00 00 10 */	b lbl_801CF60C
lbl_801CF600:
/* 801CF600 001CB260  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CF604 001CB264  80 63 00 0C */	lwz r3, 0xc(r3)
/* 801CF608 001CB268  7C 83 20 AE */	lbzx r4, r3, r4
lbl_801CF60C:
/* 801CF60C 001CB26C  2C 04 00 41 */	cmpwi r4, 0x41
/* 801CF610 001CB270  38 C4 FF D0 */	addi r6, r4, -48
/* 801CF614 001CB274  41 80 00 08 */	blt lbl_801CF61C
/* 801CF618 001CB278  38 C4 FF C9 */	addi r6, r4, -55
lbl_801CF61C:
/* 801CF61C 001CB27C  57 05 0F FE */	srwi r5, r24, 0x1f
/* 801CF620 001CB280  57 03 07 FE */	clrlwi r3, r24, 0x1f
/* 801CF624 001CB284  7C 64 2A 78 */	xor r4, r3, r5
/* 801CF628 001CB288  54 C3 26 36 */	rlwinm r3, r6, 4, 0x18, 0x1b
/* 801CF62C 001CB28C  7C 85 20 51 */	subf. r4, r5, r4
/* 801CF630 001CB290  7C 03 1B 78 */	or r3, r0, r3
/* 801CF634 001CB294  54 C4 06 3E */	clrlwi r4, r6, 0x18
/* 801CF638 001CB298  54 65 06 3E */	clrlwi r5, r3, 0x18
/* 801CF63C 001CB29C  41 82 00 0C */	beq lbl_801CF648
/* 801CF640 001CB2A0  7C 00 23 78 */	or r0, r0, r4
/* 801CF644 001CB2A4  54 05 06 3E */	clrlwi r5, r0, 0x18
lbl_801CF648:
/* 801CF648 001CB2A8  57 00 0F FE */	srwi r0, r24, 0x1f
/* 801CF64C 001CB2AC  7E 4C 93 78 */	mr r12, r18
/* 801CF650 001CB2B0  7C 00 C2 14 */	add r0, r0, r24
/* 801CF654 001CB2B4  7E 63 9B 78 */	mr r3, r19
/* 801CF658 001CB2B8  7C 00 0E 70 */	srawi r0, r0, 1
/* 801CF65C 001CB2BC  38 80 00 00 */	li r4, 0
/* 801CF660 001CB2C0  7C BA 01 AE */	stbx r5, r26, r0
/* 801CF664 001CB2C4  38 A0 00 00 */	li r5, 0
/* 801CF668 001CB2C8  7D 89 03 A6 */	mtctr r12
/* 801CF66C 001CB2CC  3B 18 00 01 */	addi r24, r24, 1
/* 801CF670 001CB2D0  3B DE 00 01 */	addi r30, r30, 1
/* 801CF674 001CB2D4  4E 80 04 21 */	bctrl
/* 801CF678 001CB2D8  7C 64 1B 78 */	mr r4, r3
/* 801CF67C 001CB2DC  48 00 02 30 */	b lbl_801CF8AC
lbl_801CF680:
/* 801CF680 001CB2E0  7E 4C 93 78 */	mr r12, r18
/* 801CF684 001CB2E4  7E 63 9B 78 */	mr r3, r19
/* 801CF688 001CB2E8  38 80 00 00 */	li r4, 0
/* 801CF68C 001CB2EC  38 A0 00 00 */	li r5, 0
/* 801CF690 001CB2F0  7D 89 03 A6 */	mtctr r12
/* 801CF694 001CB2F4  3B DE 00 01 */	addi r30, r30, 1
/* 801CF698 001CB2F8  4E 80 04 21 */	bctrl
/* 801CF69C 001CB2FC  7C 64 1B 78 */	mr r4, r3
/* 801CF6A0 001CB300  48 00 02 0C */	b lbl_801CF8AC
lbl_801CF6A4:
/* 801CF6A4 001CB304  2C 04 00 00 */	cmpwi r4, 0
/* 801CF6A8 001CB308  38 00 00 00 */	li r0, 0
/* 801CF6AC 001CB30C  41 80 00 0C */	blt lbl_801CF6B8
/* 801CF6B0 001CB310  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CF6B4 001CB314  41 80 00 08 */	blt lbl_801CF6BC
lbl_801CF6B8:
/* 801CF6B8 001CB318  38 00 00 01 */	li r0, 1
lbl_801CF6BC:
/* 801CF6BC 001CB31C  2C 00 00 00 */	cmpwi r0, 0
/* 801CF6C0 001CB320  41 82 00 0C */	beq lbl_801CF6CC
/* 801CF6C4 001CB324  7C 80 23 78 */	mr r0, r4
/* 801CF6C8 001CB328  48 00 00 10 */	b lbl_801CF6D8
lbl_801CF6CC:
/* 801CF6CC 001CB32C  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CF6D0 001CB330  80 63 00 0C */	lwz r3, 0xc(r3)
/* 801CF6D4 001CB334  7C 03 20 AE */	lbzx r0, r3, r4
lbl_801CF6D8:
/* 801CF6D8 001CB338  2C 00 00 50 */	cmpwi r0, 0x50
/* 801CF6DC 001CB33C  40 82 00 2C */	bne lbl_801CF708
/* 801CF6E0 001CB340  7E 4C 93 78 */	mr r12, r18
/* 801CF6E4 001CB344  7E 63 9B 78 */	mr r3, r19
/* 801CF6E8 001CB348  3B E0 00 20 */	li r31, 0x20
/* 801CF6EC 001CB34C  38 80 00 00 */	li r4, 0
/* 801CF6F0 001CB350  38 A0 00 00 */	li r5, 0
/* 801CF6F4 001CB354  7D 89 03 A6 */	mtctr r12
/* 801CF6F8 001CB358  3B DE 00 01 */	addi r30, r30, 1
/* 801CF6FC 001CB35C  4E 80 04 21 */	bctrl
/* 801CF700 001CB360  7C 64 1B 78 */	mr r4, r3
/* 801CF704 001CB364  48 00 01 A8 */	b lbl_801CF8AC
lbl_801CF708:
/* 801CF708 001CB368  3A 20 08 00 */	li r17, 0x800
/* 801CF70C 001CB36C  48 00 01 A0 */	b lbl_801CF8AC
lbl_801CF710:
/* 801CF710 001CB370  2C 04 00 2D */	cmpwi r4, 0x2d
/* 801CF714 001CB374  40 82 00 10 */	bne lbl_801CF724
/* 801CF718 001CB378  38 00 00 01 */	li r0, 1
/* 801CF71C 001CB37C  90 01 00 84 */	stw r0, 0x84(r1)
/* 801CF720 001CB380  48 00 00 24 */	b lbl_801CF744
lbl_801CF724:
/* 801CF724 001CB384  2C 04 00 2B */	cmpwi r4, 0x2b
/* 801CF728 001CB388  41 82 00 1C */	beq lbl_801CF744
/* 801CF72C 001CB38C  7E 4C 93 78 */	mr r12, r18
/* 801CF730 001CB390  7E 63 9B 78 */	mr r3, r19
/* 801CF734 001CB394  38 A0 00 01 */	li r5, 1
/* 801CF738 001CB398  7D 89 03 A6 */	mtctr r12
/* 801CF73C 001CB39C  4E 80 04 21 */	bctrl
/* 801CF740 001CB3A0  3B DE FF FF */	addi r30, r30, -1
lbl_801CF744:
/* 801CF744 001CB3A4  7E 4C 93 78 */	mr r12, r18
/* 801CF748 001CB3A8  7E 63 9B 78 */	mr r3, r19
/* 801CF74C 001CB3AC  3B E0 00 40 */	li r31, 0x40
/* 801CF750 001CB3B0  38 80 00 00 */	li r4, 0
/* 801CF754 001CB3B4  38 A0 00 00 */	li r5, 0
/* 801CF758 001CB3B8  7D 89 03 A6 */	mtctr r12
/* 801CF75C 001CB3BC  3B DE 00 01 */	addi r30, r30, 1
/* 801CF760 001CB3C0  4E 80 04 21 */	bctrl
/* 801CF764 001CB3C4  7C 64 1B 78 */	mr r4, r3
/* 801CF768 001CB3C8  48 00 01 44 */	b lbl_801CF8AC
lbl_801CF76C:
/* 801CF76C 001CB3CC  2C 04 00 00 */	cmpwi r4, 0
/* 801CF770 001CB3D0  38 00 00 00 */	li r0, 0
/* 801CF774 001CB3D4  41 80 00 0C */	blt lbl_801CF780
/* 801CF778 001CB3D8  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CF77C 001CB3DC  41 80 00 08 */	blt lbl_801CF784
lbl_801CF780:
/* 801CF780 001CB3E0  38 00 00 01 */	li r0, 1
lbl_801CF784:
/* 801CF784 001CB3E4  2C 00 00 00 */	cmpwi r0, 0
/* 801CF788 001CB3E8  41 82 00 0C */	beq lbl_801CF794
/* 801CF78C 001CB3EC  38 00 00 00 */	li r0, 0
/* 801CF790 001CB3F0  48 00 00 18 */	b lbl_801CF7A8
lbl_801CF794:
/* 801CF794 001CB3F4  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CF798 001CB3F8  54 80 08 3C */	slwi r0, r4, 1
/* 801CF79C 001CB3FC  80 63 00 08 */	lwz r3, 8(r3)
/* 801CF7A0 001CB400  7C 03 02 2E */	lhzx r0, r3, r0
/* 801CF7A4 001CB404  54 00 07 38 */	rlwinm r0, r0, 0, 0x1c, 0x1c
lbl_801CF7A8:
/* 801CF7A8 001CB408  2C 00 00 00 */	cmpwi r0, 0
/* 801CF7AC 001CB40C  40 82 00 0C */	bne lbl_801CF7B8
/* 801CF7B0 001CB410  3A 20 10 00 */	li r17, 0x1000
/* 801CF7B4 001CB414  48 00 00 F8 */	b lbl_801CF8AC
lbl_801CF7B8:
/* 801CF7B8 001CB418  2C 04 00 30 */	cmpwi r4, 0x30
/* 801CF7BC 001CB41C  40 82 00 2C */	bne lbl_801CF7E8
/* 801CF7C0 001CB420  7E 4C 93 78 */	mr r12, r18
/* 801CF7C4 001CB424  7E 63 9B 78 */	mr r3, r19
/* 801CF7C8 001CB428  3B E0 00 80 */	li r31, 0x80
/* 801CF7CC 001CB42C  38 80 00 00 */	li r4, 0
/* 801CF7D0 001CB430  38 A0 00 00 */	li r5, 0
/* 801CF7D4 001CB434  7D 89 03 A6 */	mtctr r12
/* 801CF7D8 001CB438  3B DE 00 01 */	addi r30, r30, 1
/* 801CF7DC 001CB43C  4E 80 04 21 */	bctrl
/* 801CF7E0 001CB440  7C 64 1B 78 */	mr r4, r3
/* 801CF7E4 001CB444  48 00 00 C8 */	b lbl_801CF8AC
lbl_801CF7E8:
/* 801CF7E8 001CB448  3B E0 01 00 */	li r31, 0x100
/* 801CF7EC 001CB44C  48 00 00 C0 */	b lbl_801CF8AC
lbl_801CF7F0:
/* 801CF7F0 001CB450  2C 04 00 30 */	cmpwi r4, 0x30
/* 801CF7F4 001CB454  40 82 00 28 */	bne lbl_801CF81C
/* 801CF7F8 001CB458  7E 4C 93 78 */	mr r12, r18
/* 801CF7FC 001CB45C  7E 63 9B 78 */	mr r3, r19
/* 801CF800 001CB460  38 80 00 00 */	li r4, 0
/* 801CF804 001CB464  38 A0 00 00 */	li r5, 0
/* 801CF808 001CB468  7D 89 03 A6 */	mtctr r12
/* 801CF80C 001CB46C  3B DE 00 01 */	addi r30, r30, 1
/* 801CF810 001CB470  4E 80 04 21 */	bctrl
/* 801CF814 001CB474  7C 64 1B 78 */	mr r4, r3
/* 801CF818 001CB478  48 00 00 94 */	b lbl_801CF8AC
lbl_801CF81C:
/* 801CF81C 001CB47C  3B E0 01 00 */	li r31, 0x100
/* 801CF820 001CB480  48 00 00 8C */	b lbl_801CF8AC
lbl_801CF824:
/* 801CF824 001CB484  2C 04 00 00 */	cmpwi r4, 0
/* 801CF828 001CB488  38 00 00 00 */	li r0, 0
/* 801CF82C 001CB48C  41 80 00 0C */	blt lbl_801CF838
/* 801CF830 001CB490  2C 04 01 00 */	cmpwi r4, 0x100
/* 801CF834 001CB494  41 80 00 08 */	blt lbl_801CF83C
lbl_801CF838:
/* 801CF838 001CB498  38 00 00 01 */	li r0, 1
lbl_801CF83C:
/* 801CF83C 001CB49C  2C 00 00 00 */	cmpwi r0, 0
/* 801CF840 001CB4A0  41 82 00 0C */	beq lbl_801CF84C
/* 801CF844 001CB4A4  38 00 00 00 */	li r0, 0
/* 801CF848 001CB4A8  48 00 00 18 */	b lbl_801CF860
lbl_801CF84C:
/* 801CF84C 001CB4AC  80 70 00 38 */	lwz r3, 0x38(r16)
/* 801CF850 001CB4B0  54 80 08 3C */	slwi r0, r4, 1
/* 801CF854 001CB4B4  80 63 00 08 */	lwz r3, 8(r3)
/* 801CF858 001CB4B8  7C 03 02 2E */	lhzx r0, r3, r0
/* 801CF85C 001CB4BC  54 00 07 38 */	rlwinm r0, r0, 0, 0x1c, 0x1c
lbl_801CF860:
/* 801CF860 001CB4C0  2C 00 00 00 */	cmpwi r0, 0
/* 801CF864 001CB4C4  40 82 00 0C */	bne lbl_801CF870
/* 801CF868 001CB4C8  3A 20 08 00 */	li r17, 0x800
/* 801CF86C 001CB4CC  48 00 00 40 */	b lbl_801CF8AC
lbl_801CF870:
/* 801CF870 001CB4D0  1C 19 00 0A */	mulli r0, r25, 0xa
/* 801CF874 001CB4D4  2C 1D 7F FF */	cmpwi r29, 0x7fff
/* 801CF878 001CB4D8  7C 64 02 14 */	add r3, r4, r0
/* 801CF87C 001CB4DC  3B 23 FF D0 */	addi r25, r3, -48
/* 801CF880 001CB4E0  40 81 00 0C */	ble lbl_801CF88C
/* 801CF884 001CB4E4  38 00 00 01 */	li r0, 1
/* 801CF888 001CB4E8  90 14 00 00 */	stw r0, 0(r20)
lbl_801CF88C:
/* 801CF88C 001CB4EC  7E 4C 93 78 */	mr r12, r18
/* 801CF890 001CB4F0  7E 63 9B 78 */	mr r3, r19
/* 801CF894 001CB4F4  38 80 00 00 */	li r4, 0
/* 801CF898 001CB4F8  38 A0 00 00 */	li r5, 0
/* 801CF89C 001CB4FC  7D 89 03 A6 */	mtctr r12
/* 801CF8A0 001CB500  3B DE 00 01 */	addi r30, r30, 1
/* 801CF8A4 001CB504  4E 80 04 21 */	bctrl
/* 801CF8A8 001CB508  7C 64 1B 78 */	mr r4, r3
lbl_801CF8AC:
/* 801CF8AC 001CB50C  80 01 00 08 */	lwz r0, 8(r1)
/* 801CF8B0 001CB510  7C 1E 00 00 */	cmpw r30, r0
/* 801CF8B4 001CB514  41 81 00 14 */	bgt lbl_801CF8C8
/* 801CF8B8 001CB518  2C 04 FF FF */	cmpwi r4, -1
/* 801CF8BC 001CB51C  41 82 00 0C */	beq lbl_801CF8C8
/* 801CF8C0 001CB520  56 20 04 E9 */	rlwinm. r0, r17, 0, 0x13, 0x14
/* 801CF8C4 001CB524  41 82 F0 1C */	beq lbl_801CE8E0
lbl_801CF8C8:
/* 801CF8C8 001CB528  3C 11 00 00 */	addis r0, r17, 0
/* 801CF8CC 001CB52C  28 00 80 00 */	cmplwi r0, 0x8000
/* 801CF8D0 001CB530  41 82 00 14 */	beq lbl_801CF8E4
/* 801CF8D4 001CB534  72 20 0E 2C */	andi. r0, r17, 0xe2c
/* 801CF8D8 001CB538  7C 00 00 34 */	cntlzw r0, r0
/* 801CF8DC 001CB53C  54 03 D9 7E */	srwi r3, r0, 5
/* 801CF8E0 001CB540  48 00 00 20 */	b lbl_801CF900
lbl_801CF8E4:
/* 801CF8E4 001CB544  38 1E FF FF */	addi r0, r30, -1
/* 801CF8E8 001CB548  38 60 00 00 */	li r3, 0
/* 801CF8EC 001CB54C  2C 00 00 02 */	cmpwi r0, 2
/* 801CF8F0 001CB550  40 81 00 0C */	ble lbl_801CF8FC
/* 801CF8F4 001CB554  73 E0 01 8E */	andi. r0, r31, 0x18e
/* 801CF8F8 001CB558  40 82 00 08 */	bne lbl_801CF900
lbl_801CF8FC:
/* 801CF8FC 001CB55C  38 60 00 01 */	li r3, 1
lbl_801CF900:
/* 801CF900 001CB560  2C 03 00 00 */	cmpwi r3, 0
/* 801CF904 001CB564  41 82 00 14 */	beq lbl_801CF918
/* 801CF908 001CB568  80 61 00 0C */	lwz r3, 0xc(r1)
/* 801CF90C 001CB56C  38 00 00 00 */	li r0, 0
/* 801CF910 001CB570  90 03 00 00 */	stw r0, 0(r3)
/* 801CF914 001CB574  48 00 00 14 */	b lbl_801CF928
lbl_801CF918:
/* 801CF918 001CB578  7C 7E 72 14 */	add r3, r30, r14
/* 801CF91C 001CB57C  38 03 FF FF */	addi r0, r3, -1
/* 801CF920 001CB580  80 61 00 0C */	lwz r3, 0xc(r1)
/* 801CF924 001CB584  90 03 00 00 */	stw r0, 0(r3)
lbl_801CF928:
/* 801CF928 001CB588  7E 4C 93 78 */	mr r12, r18
/* 801CF92C 001CB58C  7E 63 9B 78 */	mr r3, r19
/* 801CF930 001CB590  38 A0 00 01 */	li r5, 1
/* 801CF934 001CB594  7D 89 03 A6 */	mtctr r12
/* 801CF938 001CB598  4E 80 04 21 */	bctrl
/* 801CF93C 001CB59C  2C 1F 00 00 */	cmpwi r31, 0
/* 801CF940 001CB5A0  40 82 01 30 */	bne lbl_801CFA70
/* 801CF944 001CB5A4  80 01 00 8C */	lwz r0, 0x8c(r1)
/* 801CF948 001CB5A8  2C 00 00 00 */	cmpwi r0, 0
/* 801CF94C 001CB5AC  41 82 00 08 */	beq lbl_801CF954
/* 801CF950 001CB5B0  7F BD 00 D0 */	neg r29, r29
lbl_801CF954:
/* 801CF954 001CB5B4  88 61 00 5C */	lbz r3, 0x5c(r1)
/* 801CF958 001CB5B8  38 81 00 5D */	addi r4, r1, 0x5d
/* 801CF95C 001CB5BC  7C 84 1A 14 */	add r4, r4, r3
/* 801CF960 001CB5C0  48 00 00 08 */	b lbl_801CF968
lbl_801CF964:
/* 801CF964 001CB5C4  3B 9C 00 01 */	addi r28, r28, 1
lbl_801CF968:
/* 801CF968 001CB5C8  2C 03 00 00 */	cmpwi r3, 0
/* 801CF96C 001CB5CC  38 63 FF FF */	addi r3, r3, -1
/* 801CF970 001CB5D0  41 82 00 10 */	beq lbl_801CF980
/* 801CF974 001CB5D4  8C 04 FF FF */	lbzu r0, -1(r4)
/* 801CF978 001CB5D8  28 00 00 30 */	cmplwi r0, 0x30
/* 801CF97C 001CB5DC  41 82 FF E8 */	beq lbl_801CF964
lbl_801CF980:
/* 801CF980 001CB5E0  38 03 00 01 */	addi r0, r3, 1
/* 801CF984 001CB5E4  54 04 06 3F */	clrlwi. r4, r0, 0x18
/* 801CF988 001CB5E8  98 01 00 5C */	stb r0, 0x5c(r1)
/* 801CF98C 001CB5EC  40 82 00 18 */	bne lbl_801CF9A4
/* 801CF990 001CB5F0  38 61 00 5D */	addi r3, r1, 0x5d
/* 801CF994 001CB5F4  38 00 00 30 */	li r0, 0x30
/* 801CF998 001CB5F8  7C 03 21 AE */	stbx r0, r3, r4
/* 801CF99C 001CB5FC  38 04 00 01 */	addi r0, r4, 1
/* 801CF9A0 001CB600  98 01 00 5C */	stb r0, 0x5c(r1)
lbl_801CF9A4:
/* 801CF9A4 001CB604  7F BD E2 14 */	add r29, r29, r28
/* 801CF9A8 001CB608  2C 1D 80 00 */	cmpwi r29, -32768
/* 801CF9AC 001CB60C  41 80 00 0C */	blt lbl_801CF9B8
/* 801CF9B0 001CB610  2C 1D 7F FF */	cmpwi r29, 0x7fff
/* 801CF9B4 001CB614  40 81 00 0C */	ble lbl_801CF9C0
lbl_801CF9B8:
/* 801CF9B8 001CB618  38 00 00 01 */	li r0, 1
/* 801CF9BC 001CB61C  90 14 00 00 */	stw r0, 0(r20)
lbl_801CF9C0:
/* 801CF9C0 001CB620  80 14 00 00 */	lwz r0, 0(r20)
/* 801CF9C4 001CB624  2C 00 00 00 */	cmpwi r0, 0
/* 801CF9C8 001CB628  41 82 00 40 */	beq lbl_801CFA08
/* 801CF9CC 001CB62C  80 01 00 8C */	lwz r0, 0x8c(r1)
/* 801CF9D0 001CB630  2C 00 00 00 */	cmpwi r0, 0
/* 801CF9D4 001CB634  41 82 00 0C */	beq lbl_801CF9E0
/* 801CF9D8 001CB638  C8 22 91 60 */	lfd f1, lbl_80641760-_SDA2_BASE_(r2)
/* 801CF9DC 001CB63C  48 00 02 0C */	b lbl_801CFBE8
lbl_801CF9E0:
/* 801CF9E0 001CB640  80 01 00 90 */	lwz r0, 0x90(r1)
/* 801CF9E4 001CB644  2C 00 00 00 */	cmpwi r0, 0
/* 801CF9E8 001CB648  41 82 00 14 */	beq lbl_801CF9FC
/* 801CF9EC 001CB64C  3C 60 80 64 */	lis r3, lbl_8063D6C0@ha
/* 801CF9F0 001CB650  C8 03 D6 C0 */	lfd f0, lbl_8063D6C0@l(r3)
/* 801CF9F4 001CB654  FC 20 00 50 */	fneg f1, f0
/* 801CF9F8 001CB658  48 00 01 F0 */	b lbl_801CFBE8
lbl_801CF9FC:
/* 801CF9FC 001CB65C  3C 60 80 64 */	lis r3, lbl_8063D6C0@ha
/* 801CFA00 001CB660  C8 23 D6 C0 */	lfd f1, lbl_8063D6C0@l(r3)
/* 801CFA04 001CB664  48 00 01 E4 */	b lbl_801CFBE8
lbl_801CFA08:
/* 801CFA08 001CB668  B3 A1 00 5A */	sth r29, 0x5a(r1)
/* 801CFA0C 001CB66C  38 61 00 58 */	addi r3, r1, 0x58
/* 801CFA10 001CB670  4B FF 91 D9 */	bl __dec2num
/* 801CFA14 001CB674  C8 02 91 60 */	lfd f0, lbl_80641760-_SDA2_BASE_(r2)
/* 801CFA18 001CB678  FC 00 08 00 */	fcmpu cr0, f0, f1
/* 801CFA1C 001CB67C  41 82 00 1C */	beq lbl_801CFA38
/* 801CFA20 001CB680  C8 02 91 68 */	lfd f0, lbl_80641768-_SDA2_BASE_(r2)
/* 801CFA24 001CB684  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 801CFA28 001CB688  40 80 00 10 */	bge lbl_801CFA38
/* 801CFA2C 001CB68C  38 00 00 01 */	li r0, 1
/* 801CFA30 001CB690  90 14 00 00 */	stw r0, 0(r20)
/* 801CFA34 001CB694  48 00 00 20 */	b lbl_801CFA54
lbl_801CFA38:
/* 801CFA38 001CB698  C8 02 91 70 */	lfd f0, lbl_80641770-_SDA2_BASE_(r2)
/* 801CFA3C 001CB69C  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 801CFA40 001CB6A0  40 81 00 14 */	ble lbl_801CFA54
/* 801CFA44 001CB6A4  38 00 00 01 */	li r0, 1
/* 801CFA48 001CB6A8  3C 60 80 64 */	lis r3, lbl_8063D6C0@ha
/* 801CFA4C 001CB6AC  90 14 00 00 */	stw r0, 0(r20)
/* 801CFA50 001CB6B0  C8 23 D6 C0 */	lfd f1, lbl_8063D6C0@l(r3)
lbl_801CFA54:
/* 801CFA54 001CB6B4  80 01 00 90 */	lwz r0, 0x90(r1)
/* 801CFA58 001CB6B8  2C 00 00 00 */	cmpwi r0, 0
/* 801CFA5C 001CB6BC  41 82 01 8C */	beq lbl_801CFBE8
/* 801CFA60 001CB6C0  72 20 0E 2C */	andi. r0, r17, 0xe2c
/* 801CFA64 001CB6C4  41 82 01 84 */	beq lbl_801CFBE8
/* 801CFA68 001CB6C8  FC 20 08 50 */	fneg f1, f1
/* 801CFA6C 001CB6CC  48 00 01 7C */	b lbl_801CFBE8
lbl_801CFA70:
/* 801CFA70 001CB6D0  80 01 00 84 */	lwz r0, 0x84(r1)
/* 801CFA74 001CB6D4  38 61 00 10 */	addi r3, r1, 0x10
/* 801CFA78 001CB6D8  2C 00 00 00 */	cmpwi r0, 0
/* 801CFA7C 001CB6DC  41 82 00 08 */	beq lbl_801CFA84
/* 801CFA80 001CB6E0  7F 39 00 D0 */	neg r25, r25
lbl_801CFA84:
/* 801CFA84 001CB6E4  56 E0 10 3A */	slwi r0, r23, 2
/* 801CFA88 001CB6E8  88 A1 00 20 */	lbz r5, 0x20(r1)
/* 801CFA8C 001CB6EC  7F 39 02 14 */	add r25, r25, r0
/* 801CFA90 001CB6F0  38 C0 00 00 */	li r6, 0
/* 801CFA94 001CB6F4  38 80 00 80 */	li r4, 0x80
/* 801CFA98 001CB6F8  48 00 00 0C */	b lbl_801CFAA4
lbl_801CFA9C:
/* 801CFA9C 001CB6FC  38 C6 00 01 */	addi r6, r6, 1
/* 801CFAA0 001CB700  3B 39 FF FF */	addi r25, r25, -1
lbl_801CFAA4:
/* 801CFAA4 001CB704  28 06 00 04 */	cmplwi r6, 4
/* 801CFAA8 001CB708  40 80 00 10 */	bge lbl_801CFAB8
/* 801CFAAC 001CB70C  7C 80 36 30 */	sraw r0, r4, r6
/* 801CFAB0 001CB710  7C A0 00 39 */	and. r0, r5, r0
/* 801CFAB4 001CB714  41 82 FF E8 */	beq lbl_801CFA9C
lbl_801CFAB8:
/* 801CFAB8 001CB718  34 A6 00 01 */	addic. r5, r6, 1
/* 801CFABC 001CB71C  41 82 00 4C */	beq lbl_801CFB08
/* 801CFAC0 001CB720  3B 41 00 27 */	addi r26, r1, 0x27
/* 801CFAC4 001CB724  38 81 00 20 */	addi r4, r1, 0x20
/* 801CFAC8 001CB728  7C 1A 20 40 */	cmplw r26, r4
/* 801CFACC 001CB72C  38 E0 00 00 */	li r7, 0
/* 801CFAD0 001CB730  41 80 00 38 */	blt lbl_801CFB08
/* 801CFAD4 001CB734  38 1A 00 01 */	addi r0, r26, 1
/* 801CFAD8 001CB738  20 C5 00 08 */	subfic r6, r5, 8
/* 801CFADC 001CB73C  7C 04 00 50 */	subf r0, r4, r0
/* 801CFAE0 001CB740  7C 09 03 A6 */	mtctr r0
/* 801CFAE4 001CB744  41 80 00 24 */	blt lbl_801CFB08
lbl_801CFAE8:
/* 801CFAE8 001CB748  88 1A 00 00 */	lbz r0, 0(r26)
/* 801CFAEC 001CB74C  7C 04 28 30 */	slw r4, r0, r5
/* 801CFAF0 001CB750  7C 00 36 30 */	sraw r0, r0, r6
/* 801CFAF4 001CB754  7C E4 23 78 */	or r4, r7, r4
/* 801CFAF8 001CB758  98 9A 00 00 */	stb r4, 0(r26)
/* 801CFAFC 001CB75C  54 07 06 3E */	clrlwi r7, r0, 0x18
/* 801CFB00 001CB760  3B 5A FF FF */	addi r26, r26, -1
/* 801CFB04 001CB764  42 00 FF E4 */	bdnz lbl_801CFAE8
lbl_801CFB08:
/* 801CFB08 001CB768  38 80 00 00 */	li r4, 0
/* 801CFB0C 001CB76C  38 A0 00 08 */	li r5, 8
/* 801CFB10 001CB770  4B E3 45 F5 */	bl memset
/* 801CFB14 001CB774  38 00 00 07 */	li r0, 7
/* 801CFB18 001CB778  38 81 00 20 */	addi r4, r1, 0x20
/* 801CFB1C 001CB77C  38 61 00 11 */	addi r3, r1, 0x11
/* 801CFB20 001CB780  39 00 00 00 */	li r8, 0
/* 801CFB24 001CB784  38 E0 00 FF */	li r7, 0xff
/* 801CFB28 001CB788  7C 09 03 A6 */	mtctr r0
lbl_801CFB2C:
/* 801CFB2C 001CB78C  38 08 00 08 */	addi r0, r8, 8
/* 801CFB30 001CB790  89 24 00 00 */	lbz r9, 0(r4)
/* 801CFB34 001CB794  28 00 00 34 */	cmplwi r0, 0x34
/* 801CFB38 001CB798  38 A8 00 0C */	addi r5, r8, 0xc
/* 801CFB3C 001CB79C  40 81 00 14 */	ble lbl_801CFB50
/* 801CFB40 001CB7A0  20 08 00 34 */	subfic r0, r8, 0x34
/* 801CFB44 001CB7A4  7C E0 00 30 */	slw r0, r7, r0
/* 801CFB48 001CB7A8  7D 20 00 38 */	and r0, r9, r0
/* 801CFB4C 001CB7AC  54 09 06 3E */	clrlwi r9, r0, 0x18
lbl_801CFB50:
/* 801CFB50 001CB7B0  54 AA 07 7E */	clrlwi r10, r5, 0x1d
/* 801CFB54 001CB7B4  88 C3 00 00 */	lbz r6, 0(r3)
/* 801CFB58 001CB7B8  7D 20 56 30 */	sraw r0, r9, r10
/* 801CFB5C 001CB7BC  38 84 00 01 */	addi r4, r4, 1
/* 801CFB60 001CB7C0  54 05 06 3E */	clrlwi r5, r0, 0x18
/* 801CFB64 001CB7C4  39 08 00 08 */	addi r8, r8, 8
/* 801CFB68 001CB7C8  7C C5 2B 78 */	or r5, r6, r5
/* 801CFB6C 001CB7CC  20 0A 00 08 */	subfic r0, r10, 8
/* 801CFB70 001CB7D0  98 A3 00 00 */	stb r5, 0(r3)
/* 801CFB74 001CB7D4  7D 20 00 30 */	slw r0, r9, r0
/* 801CFB78 001CB7D8  54 00 06 3E */	clrlwi r0, r0, 0x18
/* 801CFB7C 001CB7DC  8C A3 00 01 */	lbzu r5, 1(r3)
/* 801CFB80 001CB7E0  7C A0 03 78 */	or r0, r5, r0
/* 801CFB84 001CB7E4  98 03 00 00 */	stb r0, 0(r3)
/* 801CFB88 001CB7E8  42 00 FF A4 */	bdnz lbl_801CFB2C
/* 801CFB8C 001CB7EC  3B 39 03 FE */	addi r25, r25, 0x3fe
/* 801CFB90 001CB7F0  57 20 00 29 */	rlwinm. r0, r25, 0, 0, 0x14
/* 801CFB94 001CB7F4  41 82 00 14 */	beq lbl_801CFBA8
/* 801CFB98 001CB7F8  38 00 00 01 */	li r0, 1
/* 801CFB9C 001CB7FC  C8 22 91 60 */	lfd f1, lbl_80641760-_SDA2_BASE_(r2)
/* 801CFBA0 001CB800  90 14 00 00 */	stw r0, 0(r20)
/* 801CFBA4 001CB804  48 00 00 44 */	b lbl_801CFBE8
lbl_801CFBA8:
/* 801CFBA8 001CB808  57 39 A8 14 */	slwi r25, r25, 0x15
/* 801CFBAC 001CB80C  80 01 00 90 */	lwz r0, 0x90(r1)
/* 801CFBB0 001CB810  88 C1 00 10 */	lbz r6, 0x10(r1)
/* 801CFBB4 001CB814  57 25 3E 7E */	srwi r5, r25, 0x19
/* 801CFBB8 001CB818  88 81 00 11 */	lbz r4, 0x11(r1)
/* 801CFBBC 001CB81C  57 23 7C 7E */	srwi r3, r25, 0x11
/* 801CFBC0 001CB820  2C 00 00 00 */	cmpwi r0, 0
/* 801CFBC4 001CB824  7C C5 2B 78 */	or r5, r6, r5
/* 801CFBC8 001CB828  7C 80 1B 78 */	or r0, r4, r3
/* 801CFBCC 001CB82C  98 A1 00 10 */	stb r5, 0x10(r1)
/* 801CFBD0 001CB830  98 01 00 11 */	stb r0, 0x11(r1)
/* 801CFBD4 001CB834  41 82 00 10 */	beq lbl_801CFBE4
/* 801CFBD8 001CB838  54 A0 06 3E */	clrlwi r0, r5, 0x18
/* 801CFBDC 001CB83C  60 00 00 80 */	ori r0, r0, 0x80
/* 801CFBE0 001CB840  98 01 00 10 */	stb r0, 0x10(r1)
lbl_801CFBE4:
/* 801CFBE4 001CB844  C8 21 00 10 */	lfd f1, 0x10(r1)
lbl_801CFBE8:
/* 801CFBE8 001CB848  39 61 00 E0 */	addi r11, r1, 0xe0
/* 801CFBEC 001CB84C  4B FF 75 55 */	bl __restore_gpr
/* 801CFBF0 001CB850  80 01 00 E4 */	lwz r0, 0xe4(r1)
/* 801CFBF4 001CB854  7C 08 03 A6 */	mtlr r0
/* 801CFBF8 001CB858  38 21 00 E0 */	addi r1, r1, 0xe0
/* 801CFBFC 001CB85C  4E 80 00 20 */	blr

.global atof
atof:
/* 801CFC00 001CB860  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801CFC04 001CB864  7C 08 02 A6 */	mflr r0
/* 801CFC08 001CB868  3C 80 80 1D */	lis r4, __StringRead@ha
/* 801CFC0C 001CB86C  90 01 00 24 */	stw r0, 0x24(r1)
/* 801CFC10 001CB870  38 00 00 00 */	li r0, 0
/* 801CFC14 001CB874  38 84 E1 78 */	addi r4, r4, __StringRead@l
/* 801CFC18 001CB878  38 A1 00 10 */	addi r5, r1, 0x10
/* 801CFC1C 001CB87C  90 61 00 10 */	stw r3, 0x10(r1)
/* 801CFC20 001CB880  3C 60 80 00 */	lis r3, 0x7FFFFFFF@ha
/* 801CFC24 001CB884  38 63 FF FF */	addi r3, r3, 0x7FFFFFFF@l
/* 801CFC28 001CB888  38 C1 00 08 */	addi r6, r1, 8
/* 801CFC2C 001CB88C  90 01 00 14 */	stw r0, 0x14(r1)
/* 801CFC30 001CB890  38 E1 00 0C */	addi r7, r1, 0xc
/* 801CFC34 001CB894  4B FF EB D9 */	bl __strtold
/* 801CFC38 001CB898  80 01 00 0C */	lwz r0, 0xc(r1)
/* 801CFC3C 001CB89C  FC 40 0A 10 */	fabs f2, f1
/* 801CFC40 001CB8A0  2C 00 00 00 */	cmpwi r0, 0
/* 801CFC44 001CB8A4  40 82 00 28 */	bne lbl_801CFC6C
/* 801CFC48 001CB8A8  C8 02 91 78 */	lfd f0, lbl_80641778-_SDA2_BASE_(r2)
/* 801CFC4C 001CB8AC  FC 00 08 00 */	fcmpu cr0, f0, f1
/* 801CFC50 001CB8B0  41 82 00 24 */	beq lbl_801CFC74
/* 801CFC54 001CB8B4  C8 02 91 80 */	lfd f0, lbl_80641780-_SDA2_BASE_(r2)
/* 801CFC58 001CB8B8  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 801CFC5C 001CB8BC  41 80 00 10 */	blt lbl_801CFC6C
/* 801CFC60 001CB8C0  C8 02 91 88 */	lfd f0, lbl_80641788-_SDA2_BASE_(r2)
/* 801CFC64 001CB8C4  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 801CFC68 001CB8C8  40 81 00 0C */	ble lbl_801CFC74
lbl_801CFC6C:
/* 801CFC6C 001CB8CC  38 00 00 22 */	li r0, 0x22
/* 801CFC70 001CB8D0  90 0D 9F C8 */	stw r0, lbl_8063F288-_SDA_BASE_(r13)
lbl_801CFC74:
/* 801CFC74 001CB8D4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801CFC78 001CB8D8  7C 08 03 A6 */	mtlr r0
/* 801CFC7C 001CB8DC  38 21 00 20 */	addi r1, r1, 0x20
/* 801CFC80 001CB8E0  4E 80 00 20 */	blr