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
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
|
.include "macros.inc"
.section .text, "ax"
.global sprintf
sprintf:
mflr r0
stw r0, 4(r1)
stwu r1, -0x90(r1)
stw r31, 0x8c(r1)
stw r30, 0x88(r1)
bne cr1, lbl_80084028
stfd f1, 0x28(r1)
stfd f2, 0x30(r1)
stfd f3, 0x38(r1)
stfd f4, 0x40(r1)
stfd f5, 0x48(r1)
stfd f6, 0x50(r1)
stfd f7, 0x58(r1)
stfd f8, 0x60(r1)
lbl_80084028:
stw r3, 8(r1)
lis r0, 0x200
addi r30, r3, 0
stw r4, 0xc(r1)
li r31, -1
stw r5, 0x10(r1)
lis r5, __StringWrite@ha
addi r3, r5, __StringWrite@l
stw r6, 0x14(r1)
addi r5, r4, 0
addi r6, r1, 0x7c
stw r7, 0x18(r1)
addi r4, r1, 0x70
stw r8, 0x1c(r1)
stw r9, 0x20(r1)
stw r10, 0x24(r1)
stw r0, 0x7c(r1)
addi r0, r1, 0x98
stw r0, 0x80(r1)
addi r0, r1, 8
stw r0, 0x84(r1)
li r0, 0
stw r30, 0x70(r1)
stw r31, 0x74(r1)
stw r0, 0x78(r1)
bl __pformatter
cmplw r3, r31
bge lbl_800840A0
mr r4, r3
b lbl_800840A4
lbl_800840A0:
li r4, -2
lbl_800840A4:
li r0, 0
stbx r0, r30, r4
lwz r0, 0x94(r1)
lwz r31, 0x8c(r1)
lwz r30, 0x88(r1)
mtlr r0
addi r1, r1, 0x90
blr
.global snprintf
snprintf:
mflr r0
stw r0, 4(r1)
stwu r1, -0x98(r1)
stw r31, 0x94(r1)
stw r30, 0x90(r1)
bne cr1, lbl_800840FC
stfd f1, 0x28(r1)
stfd f2, 0x30(r1)
stfd f3, 0x38(r1)
stfd f4, 0x40(r1)
stfd f5, 0x48(r1)
stfd f6, 0x50(r1)
stfd f7, 0x58(r1)
stfd f8, 0x60(r1)
lbl_800840FC:
stw r3, 8(r1)
lis r0, 0x300
mr r30, r3
stw r4, 0xc(r1)
addi r31, r4, 0
lis r4, __StringWrite@ha
stw r5, 0x10(r1)
addi r3, r4, __StringWrite@l
addi r4, r1, 0x74
stw r6, 0x14(r1)
addi r6, r1, 0x80
stw r7, 0x18(r1)
stw r8, 0x1c(r1)
stw r9, 0x20(r1)
stw r10, 0x24(r1)
stw r0, 0x80(r1)
addi r0, r1, 0xa0
stw r0, 0x84(r1)
addi r0, r1, 8
stw r0, 0x88(r1)
li r0, 0
stw r30, 0x74(r1)
stw r31, 0x78(r1)
stw r0, 0x7c(r1)
bl __pformatter
cmplw r3, r31
bge lbl_80084170
mr r4, r3
b lbl_80084174
lbl_80084170:
addi r4, r31, -1
lbl_80084174:
li r0, 0
stbx r0, r30, r4
lwz r0, 0x9c(r1)
lwz r31, 0x94(r1)
lwz r30, 0x90(r1)
mtlr r0
addi r1, r1, 0x98
blr
.global vsnprintf
vsnprintf:
mflr r0
stw r0, 4(r1)
li r0, 0
stwu r1, -0x30(r1)
stw r31, 0x2c(r1)
addi r31, r4, 0
addi r4, r1, 0x18
stw r30, 0x28(r1)
mr r30, r3
lis r3, __StringWrite@ha
stw r30, 0x18(r1)
addi r3, r3, __StringWrite@l
stw r31, 0x1c(r1)
stw r0, 0x20(r1)
bl __pformatter
cmplw r3, r31
bge lbl_800841E0
mr r4, r3
b lbl_800841E4
lbl_800841E0:
addi r4, r31, -1
lbl_800841E4:
li r0, 0
stbx r0, r30, r4
lwz r0, 0x34(r1)
lwz r31, 0x2c(r1)
lwz r30, 0x28(r1)
mtlr r0
addi r1, r1, 0x30
blr
.global vprintf
vprintf:
mflr r0
lis r5, __files@ha
stw r0, 4(r1)
addi r5, r5, __files@l
stwu r1, -0x20(r1)
stw r31, 0x1c(r1)
addi r31, r5, 0x48
stw r30, 0x18(r1)
addi r30, r4, 0
li r4, -1
stw r29, 0x14(r1)
addi r29, r3, 0
addi r3, r31, 0
bl fwide
cmpwi r3, 0
blt lbl_8008424C
li r3, -1
b lbl_80084264
lbl_8008424C:
lis r3, __FileWrite@ha
addi r3, r3, __FileWrite@l
addi r4, r31, 0
addi r5, r29, 0
addi r6, r30, 0
bl __pformatter
lbl_80084264:
lwz r0, 0x24(r1)
lwz r31, 0x1c(r1)
lwz r30, 0x18(r1)
mtlr r0
lwz r29, 0x14(r1)
addi r1, r1, 0x20
blr
.global __StringWrite
__StringWrite:
mflr r0
stw r0, 4(r1)
stwu r1, -0x20(r1)
stw r31, 0x1c(r1)
stw r30, 0x18(r1)
mr r30, r3
lwz r3, 8(r3)
lwz r6, 4(r30)
add r0, r3, r5
cmplw r0, r6
bgt lbl_800842B4
mr r31, r5
b lbl_800842B8
lbl_800842B4:
subf r31, r3, r6
lbl_800842B8:
lwz r0, 0(r30)
addi r5, r31, 0
add r3, r0, r3
bl memcpy
lwz r0, 8(r30)
add r0, r0, r31
stw r0, 8(r30)
lwz r0, 0x24(r1)
lwz r31, 0x1c(r1)
lwz r30, 0x18(r1)
mtlr r0
addi r1, r1, 0x20
blr
.global __FileWrite
__FileWrite:
mflr r0
stw r0, 4(r1)
stwu r1, -0x20(r1)
stw r31, 0x1c(r1)
addi r31, r5, 0
stw r30, 0x18(r1)
addi r30, r3, 0
addi r3, r4, 0
addi r6, r30, 0
li r4, 1
bl fwrite
cmplw r31, r3
bne lbl_80084328
mr r3, r30
b lbl_8008432C
lbl_80084328:
li r3, 0
lbl_8008432C:
lwz r0, 0x24(r1)
lwz r31, 0x1c(r1)
lwz r30, 0x18(r1)
mtlr r0
addi r1, r1, 0x20
blr
.global __pformatter
__pformatter:
mflr r0
lis r7, "@stringBase0"@ha
stw r0, 4(r1)
li r0, 0x20
stwu r1, -0x268(r1)
stmw r18, 0x230(r1)
addi r31, r3, 0
addi r30, r4, 0
addi r28, r6, 0
addi r25, r5, 0
addi r26, r1, 0x21c
addi r23, r1, 0x21b
addi r20, r7, "@stringBase0"@l
li r27, 0
stb r0, 0x19(r1)
b lbl_80084950
lbl_80084384:
addi r3, r25, 0
li r4, 0x25
bl strchr
or. r24, r3, r3
bne lbl_800843D0
mr r3, r25
bl strlen
or. r5, r3, r3
add r27, r27, r5
beq lbl_8008495C
addi r12, r31, 0
mtlr r12
addi r3, r30, 0
addi r4, r25, 0
blrl
cmplwi r3, 0
bne lbl_8008495C
li r3, -1
b lbl_80084960
lbl_800843D0:
subf. r5, r25, r24
add r27, r27, r5
beq lbl_80084400
addi r12, r31, 0
mtlr r12
addi r3, r30, 0
addi r4, r25, 0
blrl
cmplwi r3, 0
bne lbl_80084400
li r3, -1
b lbl_80084960
lbl_80084400:
addi r3, r24, 0
addi r4, r28, 0
addi r5, r1, 0x21c
bl parse_format
lbz r0, 0x221(r1)
addi r25, r3, 0
cmpwi r0, 0x69
beq lbl_800844C0
bge lbl_80084478
cmpwi r0, 0x58
beq lbl_8008457C
bge lbl_80084454
cmpwi r0, 0x45
beq lbl_80084638
bge lbl_80084448
cmpwi r0, 0x25
beq lbl_800847BC
b lbl_800847D0
lbl_80084448:
cmpwi r0, 0x47
beq lbl_80084638
b lbl_800847D0
lbl_80084454:
cmpwi r0, 0x64
beq lbl_800844C0
bge lbl_8008446C
cmpwi r0, 0x63
bge lbl_80084798
b lbl_800847D0
lbl_8008446C:
cmpwi r0, 0x68
bge lbl_800847D0
b lbl_80084638
lbl_80084478:
cmpwi r0, 0x75
beq lbl_8008457C
bge lbl_800844A8
cmpwi r0, 0x6f
beq lbl_8008457C
bge lbl_8008449C
cmpwi r0, 0x6e
bge lbl_80084730
b lbl_800847D0
lbl_8008449C:
cmpwi r0, 0x73
beq lbl_8008465C
b lbl_800847D0
lbl_800844A8:
cmpwi r0, 0xff
beq lbl_800847D0
bge lbl_800847D0
cmpwi r0, 0x78
beq lbl_8008457C
b lbl_800847D0
lbl_800844C0:
lbz r0, 0x220(r1)
cmplwi r0, 3
bne lbl_800844E0
addi r3, r28, 0
li r4, 1
bl __va_arg
lwz r29, 0(r3)
b lbl_80084510
lbl_800844E0:
cmplwi r0, 4
bne lbl_80084500
addi r3, r28, 0
li r4, 2
bl __va_arg
lwz r21, 0(r3)
lwz r22, 4(r3)
b lbl_80084510
lbl_80084500:
addi r3, r28, 0
li r4, 1
bl __va_arg
lwz r29, 0(r3)
lbl_80084510:
lbz r3, 0x220(r1)
cmplwi r3, 2
bne lbl_80084524
extsh r0, r29
mr r29, r0
lbl_80084524:
cmplwi r3, 1
bne lbl_80084534
extsb r0, r29
mr r29, r0
lbl_80084534:
cmplwi r3, 4
bne lbl_8008455C
addi r4, r22, 0
addi r3, r21, 0
addi r5, r26, 0
addi r6, r1, 0x21c
bl longlong2str
or. r19, r3, r3
beq lbl_800847D0
b lbl_80084574
lbl_8008455C:
addi r3, r29, 0
addi r4, r26, 0
addi r5, r1, 0x21c
bl long2str
or. r19, r3, r3
beq lbl_800847D0
lbl_80084574:
subf r24, r19, r23
b lbl_80084810
lbl_8008457C:
lbz r0, 0x220(r1)
cmplwi r0, 3
bne lbl_8008459C
addi r3, r28, 0
li r4, 1
bl __va_arg
lwz r29, 0(r3)
b lbl_800845CC
lbl_8008459C:
cmplwi r0, 4
bne lbl_800845BC
addi r3, r28, 0
li r4, 2
bl __va_arg
lwz r21, 0(r3)
lwz r22, 4(r3)
b lbl_800845CC
lbl_800845BC:
addi r3, r28, 0
li r4, 1
bl __va_arg
lwz r29, 0(r3)
lbl_800845CC:
lbz r3, 0x220(r1)
cmplwi r3, 2
bne lbl_800845E0
clrlwi r0, r29, 0x10
mr r29, r0
lbl_800845E0:
cmplwi r3, 1
bne lbl_800845F0
clrlwi r0, r29, 0x18
mr r29, r0
lbl_800845F0:
cmplwi r3, 4
bne lbl_80084618
addi r4, r22, 0
addi r3, r21, 0
addi r5, r26, 0
addi r6, r1, 0x21c
bl longlong2str
or. r19, r3, r3
beq lbl_800847D0
b lbl_80084630
lbl_80084618:
addi r3, r29, 0
addi r4, r26, 0
addi r5, r1, 0x21c
bl long2str
or. r19, r3, r3
beq lbl_800847D0
lbl_80084630:
subf r24, r19, r23
b lbl_80084810
lbl_80084638:
addi r3, r28, 0
addi r4, r26, 0
addi r5, r1, 0x21c
li r6, 0
bl float2str
or. r19, r3, r3
beq lbl_800847D0
subf r24, r19, r23
b lbl_80084810
lbl_8008465C:
lbz r0, 0x220(r1)
cmplwi r0, 6
bne lbl_800846A0
addi r3, r28, 0
li r4, 1
bl __va_arg
lwz r4, 0(r3)
cmplwi r4, 0
bne lbl_80084684
addi r4, r13, "@wstringBase0"@sda21
lbl_80084684:
addi r3, r1, 0x1c
li r5, 0x200
bl wcstombs
cmpwi r3, 0
blt lbl_800847D0
addi r19, r1, 0x1c
b lbl_800846B0
lbl_800846A0:
addi r3, r28, 0
li r4, 1
bl __va_arg
lwz r19, 0(r3)
lbl_800846B0:
cmplwi r19, 0
bne lbl_800846BC
mr r19, r20
lbl_800846BC:
lbz r0, 0x21f(r1)
cmplwi r0, 0
beq lbl_800846F0
lbz r0, 0x21e(r1)
lbz r24, 0(r19)
addi r19, r19, 1
cmplwi r0, 0
beq lbl_80084810
lwz r0, 0x228(r1)
cmpw r24, r0
ble lbl_80084810
mr r24, r0
b lbl_80084810
lbl_800846F0:
lbz r0, 0x21e(r1)
cmplwi r0, 0
beq lbl_80084720
lwz r24, 0x228(r1)
addi r3, r19, 0
li r4, 0
addi r5, r24, 0
bl memchr
cmplwi r3, 0
beq lbl_80084810
subf r24, r19, r3
b lbl_80084810
lbl_80084720:
mr r3, r19
bl strlen
mr r24, r3
b lbl_80084810
lbl_80084730:
addi r3, r28, 0
li r4, 1
bl __va_arg
lbz r0, 0x220(r1)
lwz r3, 0(r3)
cmpwi r0, 2
beq lbl_80084774
bge lbl_8008475C
cmpwi r0, 0
beq lbl_8008476C
b lbl_80084950
lbl_8008475C:
cmpwi r0, 4
beq lbl_80084788
bge lbl_80084950
b lbl_80084780
lbl_8008476C:
stw r27, 0(r3)
b lbl_80084950
lbl_80084774:
extsh r0, r27
sth r0, 0(r3)
b lbl_80084950
lbl_80084780:
stw r27, 0(r3)
b lbl_80084950
lbl_80084788:
stw r27, 4(r3)
srawi r0, r27, 0x1f
stw r0, 0(r3)
b lbl_80084950
lbl_80084798:
addi r3, r28, 0
addi r19, r1, 0x1c
li r4, 1
bl __va_arg
lwz r0, 0(r3)
li r24, 1
extsb r0, r0
stb r0, 0x1c(r1)
b lbl_80084810
lbl_800847BC:
li r0, 0x25
stb r0, 0x1c(r1)
addi r19, r1, 0x1c
li r24, 1
b lbl_80084810
lbl_800847D0:
mr r3, r24
bl strlen
or. r5, r3, r3
add r27, r27, r5
beq lbl_80084808
addi r12, r31, 0
mtlr r12
addi r3, r30, 0
addi r4, r24, 0
blrl
cmplwi r3, 0
bne lbl_80084808
li r3, -1
b lbl_80084960
lbl_80084808:
mr r3, r27
b lbl_80084960
lbl_80084810:
lbz r0, 0x21c(r1)
addi r18, r24, 0
cmplwi r0, 0
beq lbl_800848CC
cmplwi r0, 2
bne lbl_80084830
li r0, 0x30
b lbl_80084834
lbl_80084830:
li r0, 0x20
lbl_80084834:
extsb r0, r0
stb r0, 0x19(r1)
lbz r0, 0(r19)
extsb r0, r0
cmpwi r0, 0x2b
beq lbl_80084854
cmpwi r0, 0x2d
bne lbl_800848C0
lbl_80084854:
lbz r0, 0x19(r1)
cmpwi r0, 0x30
bne lbl_800848C0
addi r12, r31, 0
mtlr r12
addi r3, r30, 0
addi r4, r19, 0
li r5, 1
blrl
cmplwi r3, 0
bne lbl_80084888
li r3, -1
b lbl_80084960
lbl_80084888:
addi r19, r19, 1
addi r24, r24, -1
b lbl_800848C0
lbl_80084894:
addi r12, r31, 0
mtlr r12
addi r3, r30, 0
addi r4, r1, 0x19
li r5, 1
blrl
cmplwi r3, 0
bne lbl_800848BC
li r3, -1
b lbl_80084960
lbl_800848BC:
addi r18, r18, 1
lbl_800848C0:
lwz r0, 0x224(r1)
cmpw r18, r0
blt lbl_80084894
lbl_800848CC:
cmpwi r24, 0
beq lbl_800848FC
addi r12, r31, 0
mtlr r12
addi r3, r30, 0
addi r4, r19, 0
addi r5, r24, 0
blrl
cmplwi r3, 0
bne lbl_800848FC
li r3, -1
b lbl_80084960
lbl_800848FC:
lbz r0, 0x21c(r1)
cmplwi r0, 0
bne lbl_8008494C
li r19, 0x20
b lbl_80084940
lbl_80084910:
mr r12, r31
stb r19, 0x18(r1)
mtlr r12
addi r3, r30, 0
addi r4, r1, 0x18
li r5, 1
blrl
cmplwi r3, 0
bne lbl_8008493C
li r3, -1
b lbl_80084960
lbl_8008493C:
addi r18, r18, 1
lbl_80084940:
lwz r0, 0x224(r1)
cmpw r18, r0
blt lbl_80084910
lbl_8008494C:
add r27, r27, r18
lbl_80084950:
lbz r0, 0(r25)
extsb. r0, r0
bne lbl_80084384
lbl_8008495C:
mr r3, r27
lbl_80084960:
lmw r18, 0x230(r1)
lwz r0, 0x26c(r1)
addi r1, r1, 0x268
mtlr r0
blr
.global float2str
float2str:
mflr r0
stw r0, 4(r1)
stwu r1, -0x60(r1)
stfd f31, 0x58(r1)
stw r31, 0x54(r1)
stw r30, 0x50(r1)
stw r29, 0x4c(r1)
mr r29, r5
stw r28, 0x48(r1)
addi r28, r4, 0
lbz r0, 4(r5)
cmplwi r0, 5
bne lbl_800849B8
li r4, 3
bl __va_arg
lfd f31, 0(r3)
b lbl_800849C4
lbl_800849B8:
li r4, 3
bl __va_arg
lfd f31, 0(r3)
lbl_800849C4:
lwz r0, 0xc(r29)
cmpwi r0, 0x1fd
ble lbl_800849D8
li r3, 0
b lbl_80084F88
lbl_800849D8:
li r0, 0
fmr f1, f31
stb r0, 0x18(r1)
li r0, 0x20
addi r3, r1, 0x18
sth r0, 0x1a(r1)
addi r4, r1, 0x1c
bl __num2dec
lbz r0, 0x20(r1)
addi r31, r1, 0x21
add r4, r31, r0
b lbl_80084A20
lbl_80084A08:
lbz r3, 0x20(r1)
addi r0, r3, -1
stb r0, 0x20(r1)
lha r3, 0x1e(r1)
addi r0, r3, 1
sth r0, 0x1e(r1)
lbl_80084A20:
lbz r0, 0x20(r1)
cmplwi r0, 1
ble lbl_80084A38
lbzu r0, -1(r4)
cmpwi r0, 0x30
beq lbl_80084A08
lbl_80084A38:
lbz r0, 0x21(r1)
cmpwi r0, 0x49
beq lbl_80084A6C
bge lbl_80084A54
cmpwi r0, 0x30
beq lbl_80084A60
b lbl_80084AD4
lbl_80084A54:
cmpwi r0, 0x4e
beq lbl_80084AB4
b lbl_80084AD4
lbl_80084A60:
li r0, 0
sth r0, 0x1e(r1)
b lbl_80084AD4
lbl_80084A6C:
lfd f0, "@919"@sda21(r2)
fcmpo cr0, f31, f0
bge lbl_80084A94
lis r3, "@stringBase0"@ha
addi r28, r28, -5
addi r4, r3, "@stringBase0"@l
addi r3, r28, 0
addi r4, r4, 1
bl strcpy
b lbl_80084AAC
lbl_80084A94:
lis r3, "@stringBase0"@ha
addi r28, r28, -4
addi r4, r3, "@stringBase0"@l
addi r3, r28, 0
addi r4, r4, 6
bl strcpy
lbl_80084AAC:
mr r3, r28
b lbl_80084F88
lbl_80084AB4:
lis r3, "@stringBase0"@ha
addi r28, r28, -4
addi r4, r3, "@stringBase0"@l
addi r3, r28, 0
addi r4, r4, 0xa
bl strcpy
mr r3, r28
b lbl_80084F88
lbl_80084AD4:
lha r4, 0x1e(r1)
li r0, 0
lbz r3, 0x20(r1)
addi r30, r28, -1
add r3, r3, r4
addi r3, r3, -1
sth r3, 0x1e(r1)
stb r0, -1(r28)
lbz r0, 5(r29)
cmpwi r0, 0x65
beq lbl_80084BF0
bge lbl_80084B28
cmpwi r0, 0x46
beq lbl_80084F84
bge lbl_80084B1C
cmpwi r0, 0x45
bge lbl_80084BF0
b lbl_80084F84
lbl_80084B1C:
cmpwi r0, 0x48
bge lbl_80084F84
b lbl_80084B38
lbl_80084B28:
cmpwi r0, 0x67
beq lbl_80084B38
bge lbl_80084F84
b lbl_80084D60
lbl_80084B38:
lbz r0, 0x20(r1)
lwz r4, 0xc(r29)
cmpw r0, r4
ble lbl_80084B50
addi r3, r1, 0x1c
bl round_decimal
lbl_80084B50:
lha r4, 0x1e(r1)
cmpwi r4, -4
blt lbl_80084B68
lwz r3, 0xc(r29)
cmpw r4, r3
blt lbl_80084BB4
lbl_80084B68:
lbz r0, 3(r29)
cmplwi r0, 0
beq lbl_80084B84
lwz r3, 0xc(r29)
addi r0, r3, -1
stw r0, 0xc(r29)
b lbl_80084B90
lbl_80084B84:
lbz r3, 0x20(r1)
addi r0, r3, -1
stw r0, 0xc(r29)
lbl_80084B90:
lbz r0, 5(r29)
cmplwi r0, 0x67
bne lbl_80084BA8
li r0, 0x65
stb r0, 5(r29)
b lbl_80084BF0
lbl_80084BA8:
li r0, 0x45
stb r0, 5(r29)
b lbl_80084BF0
lbl_80084BB4:
lbz r0, 3(r29)
cmplwi r0, 0
beq lbl_80084BD0
addi r0, r4, 1
subf r0, r0, r3
stw r0, 0xc(r29)
b lbl_80084D60
lbl_80084BD0:
lbz r0, 0x20(r1)
addi r3, r4, 1
subf. r0, r3, r0
stw r0, 0xc(r29)
bge lbl_80084D60
li r0, 0
stw r0, 0xc(r29)
b lbl_80084D60
lbl_80084BF0:
lwz r3, 0xc(r29)
lbz r0, 0x20(r1)
addi r4, r3, 1
cmpw r0, r4
ble lbl_80084C0C
addi r3, r1, 0x1c
bl round_decimal
lbl_80084C0C:
lha r0, 0x1e(r1)
li r8, 0x2b
cmpwi r0, 0
mr r4, r0
bge lbl_80084C28
neg r4, r4
li r8, 0x2d
lbl_80084C28:
lis r3, 0x66666667@ha
addi r5, r3, 0x66666667@l
li r7, 0
b lbl_80084C6C
lbl_80084C38:
mulhw r6, r5, r4
srawi r0, r6, 2
srwi r3, r0, 0x1f
add r0, r0, r3
mulli r0, r0, 0xa
subf r4, r0, r4
srawi r0, r6, 2
addi r4, r4, 0x30
stb r4, -1(r30)
srwi r3, r0, 0x1f
add r4, r0, r3
addi r7, r7, 1
addi r30, r30, -1
lbl_80084C6C:
cmpwi r4, 0
bne lbl_80084C38
cmpwi r7, 2
blt lbl_80084C38
extsb r0, r8
stb r0, -1(r30)
addi r30, r30, -2
subf r0, r30, r28
lbz r3, 5(r29)
stb r3, 0(r30)
lwz r3, 0xc(r29)
add r0, r3, r0
cmpwi r0, 0x1fd
ble lbl_80084CAC
li r3, 0
b lbl_80084F88
lbl_80084CAC:
lbz r4, 0x20(r1)
addi r0, r3, 1
cmpw r4, r0
bge lbl_80084CD8
addi r0, r3, 2
subf r3, r4, r0
li r0, 0x30
b lbl_80084CD0
lbl_80084CCC:
stbu r0, -1(r30)
lbl_80084CD0:
addic. r3, r3, -1
bne lbl_80084CCC
lbl_80084CD8:
lbz r3, 0x20(r1)
add r4, r31, r3
b lbl_80084CEC
lbl_80084CE4:
lbzu r0, -1(r4)
stbu r0, -1(r30)
lbl_80084CEC:
addic. r3, r3, -1
bne lbl_80084CE4
lwz r0, 0xc(r29)
cmpwi r0, 0
bne lbl_80084D0C
lbz r0, 3(r29)
cmplwi r0, 0
beq lbl_80084D14
lbl_80084D0C:
li r0, 0x2e
stbu r0, -1(r30)
lbl_80084D14:
lbz r0, 0x21(r1)
stbu r0, -1(r30)
lbz r0, 0x1c(r1)
extsb. r0, r0
beq lbl_80084D34
li r0, 0x2d
stbu r0, -1(r30)
b lbl_80084F84
lbl_80084D34:
lbz r0, 1(r29)
cmplwi r0, 1
bne lbl_80084D4C
li r0, 0x2b
stbu r0, -1(r30)
b lbl_80084F84
lbl_80084D4C:
cmplwi r0, 2
bne lbl_80084F84
li r0, 0x20
stbu r0, -1(r30)
b lbl_80084F84
lbl_80084D60:
lha r0, 0x1e(r1)
lbz r4, 0x20(r1)
subf r0, r0, r4
addic. r7, r0, -1
bge lbl_80084D78
li r7, 0
lbl_80084D78:
lwz r0, 0xc(r29)
cmpw r7, r0
ble lbl_80084DAC
subf r0, r0, r7
addi r3, r1, 0x1c
subf r4, r0, r4
bl round_decimal
lha r3, 0x1e(r1)
lbz r0, 0x20(r1)
subf r0, r3, r0
addic. r7, r0, -1
bge lbl_80084DAC
li r7, 0
lbl_80084DAC:
lha r0, 0x1e(r1)
addic. r6, r0, 1
bge lbl_80084DBC
li r6, 0
lbl_80084DBC:
add r0, r6, r7
cmpwi r0, 0x1fd
ble lbl_80084DD0
li r3, 0
b lbl_80084F88
lbl_80084DD0:
lbz r0, 0x20(r1)
li r4, 0
li r3, 0x30
add r5, r31, r0
b lbl_80084DEC
lbl_80084DE4:
stbu r3, -1(r30)
addi r4, r4, 1
lbl_80084DEC:
lwz r0, 0xc(r29)
subf r0, r7, r0
cmpw r4, r0
blt lbl_80084DE4
li r3, 0
b lbl_80084E10
lbl_80084E04:
lbzu r0, -1(r5)
addi r3, r3, 1
stbu r0, -1(r30)
lbl_80084E10:
cmpw r3, r7
bge lbl_80084E24
lbz r0, 0x20(r1)
cmpw r3, r0
blt lbl_80084E04
lbl_80084E24:
cmpw r3, r7
subf r3, r3, r7
li r4, 0x30
bge lbl_80084E78
rlwinm. r0, r3, 0x1d, 3, 0x1f
mtctr r0
beq lbl_80084E6C
lbl_80084E40:
stb r4, -1(r30)
stb r4, -2(r30)
stb r4, -3(r30)
stb r4, -4(r30)
stb r4, -5(r30)
stb r4, -6(r30)
stb r4, -7(r30)
stbu r4, -8(r30)
bdnz lbl_80084E40
andi. r3, r3, 7
beq lbl_80084E78
lbl_80084E6C:
mtctr r3
lbl_80084E70:
stbu r4, -1(r30)
bdnz lbl_80084E70
lbl_80084E78:
lwz r0, 0xc(r29)
cmpwi r0, 0
bne lbl_80084E90
lbz r0, 3(r29)
cmplwi r0, 0
beq lbl_80084E98
lbl_80084E90:
li r0, 0x2e
stbu r0, -1(r30)
lbl_80084E98:
cmpwi r6, 0
beq lbl_80084F3C
li r4, 0
li r3, 0x30
b lbl_80084EB4
lbl_80084EAC:
stbu r3, -1(r30)
addi r4, r4, 1
lbl_80084EB4:
lbz r0, 0x20(r1)
subf r0, r0, r6
cmpw r4, r0
blt lbl_80084EAC
cmpw r4, r6
subf r3, r4, r6
bge lbl_80084F44
rlwinm. r0, r3, 0x1d, 3, 0x1f
mtctr r0
beq lbl_80084F28
lbl_80084EDC:
lbz r0, -1(r5)
stb r0, -1(r30)
lbz r0, -2(r5)
stb r0, -2(r30)
lbz r0, -3(r5)
stb r0, -3(r30)
lbz r0, -4(r5)
stb r0, -4(r30)
lbz r0, -5(r5)
stb r0, -5(r30)
lbz r0, -6(r5)
stb r0, -6(r30)
lbz r0, -7(r5)
stb r0, -7(r30)
lbzu r0, -8(r5)
stbu r0, -8(r30)
bdnz lbl_80084EDC
andi. r3, r3, 7
beq lbl_80084F44
lbl_80084F28:
mtctr r3
lbl_80084F2C:
lbzu r0, -1(r5)
stbu r0, -1(r30)
bdnz lbl_80084F2C
b lbl_80084F44
lbl_80084F3C:
li r0, 0x30
stbu r0, -1(r30)
lbl_80084F44:
lbz r0, 0x1c(r1)
extsb. r0, r0
beq lbl_80084F5C
li r0, 0x2d
stbu r0, -1(r30)
b lbl_80084F84
lbl_80084F5C:
lbz r0, 1(r29)
cmplwi r0, 1
bne lbl_80084F74
li r0, 0x2b
stbu r0, -1(r30)
b lbl_80084F84
lbl_80084F74:
cmplwi r0, 2
bne lbl_80084F84
li r0, 0x20
stbu r0, -1(r30)
lbl_80084F84:
mr r3, r30
lbl_80084F88:
lwz r0, 0x64(r1)
lfd f31, 0x58(r1)
lwz r31, 0x54(r1)
mtlr r0
lwz r30, 0x50(r1)
lwz r29, 0x4c(r1)
lwz r28, 0x48(r1)
addi r1, r1, 0x60
blr
.global round_decimal
round_decimal:
cmpwi r4, 0
bge lbl_80084FD4
lbl_80084FB4:
li r5, 0
stb r5, 0(r3)
li r4, 1
li r0, 0x30
sth r5, 2(r3)
stb r4, 4(r3)
stb r0, 5(r3)
blr
lbl_80084FD4:
lbz r0, 4(r3)
cmpw r4, r0
bgelr
add r5, r3, r4
addi r8, r5, 6
lbzu r5, -1(r8)
addi r5, r5, -48
extsb r6, r5
cmpwi r6, 5
bne lbl_8008503C
add r5, r3, r0
addi r5, r5, 5
lbl_80085004:
addi r5, r5, -1
cmplw r5, r8
ble lbl_8008501C
lbz r0, 0(r5)
cmpwi r0, 0x30
beq lbl_80085004
lbl_8008501C:
cmplw r5, r8
bne lbl_80085030
lbz r0, -1(r8)
clrlwi r0, r0, 0x1f
b lbl_80085034
lbl_80085030:
li r0, 1
lbl_80085034:
mr r5, r0
b lbl_8008509C
lbl_8008503C:
li r5, 5
eqv r0, r6, r5
subfc r5, r6, r5
srwi r0, r0, 0x1f
addze r5, r0
clrlwi r5, r5, 0x1f
b lbl_8008509C
lbl_80085058:
lbzu r0, -1(r8)
add r7, r0, r5
addi r7, r7, -48
extsb r5, r7
eqv r0, r5, r6
subfc r5, r5, r6
srwi r0, r0, 0x1f
addze r5, r0
clrlwi. r5, r5, 0x1f
bne lbl_80085088
extsb. r0, r7
bne lbl_80085090
lbl_80085088:
addi r4, r4, -1
b lbl_800850A0
lbl_80085090:
addi r0, r7, 0x30
stb r0, 0(r8)
b lbl_800850A8
lbl_8008509C:
li r6, 9
lbl_800850A0:
cmpwi r4, 0
bne lbl_80085058
lbl_800850A8:
cmpwi r5, 0
beq lbl_800850D0
lha r5, 2(r3)
li r4, 1
li r0, 0x31
addi r5, r5, 1
sth r5, 2(r3)
stb r4, 4(r3)
stb r0, 5(r3)
blr
lbl_800850D0:
cmpwi r4, 0
beq lbl_80084FB4
stb r4, 4(r3)
blr
.global longlong2str
longlong2str:
mflr r0
stw r0, 4(r1)
li r0, 0
stwu r1, -0x40(r1)
stmw r22, 0x18(r1)
addi r23, r5, 0
xor r5, r4, r0
addi r27, r23, -1
addi r24, r6, 0
addi r30, r4, 0
addi r31, r3, 0
li r25, 0
li r26, 0
stb r0, -1(r23)
xor r0, r3, r0
or. r0, r5, r0
bne lbl_80085150
lwz r0, 0xc(r24)
cmpwi r0, 0
bne lbl_80085150
lbz r0, 3(r24)
cmplwi r0, 0
beq lbl_80085148
lbz r0, 5(r24)
cmplwi r0, 0x6f
beq lbl_80085150
lbl_80085148:
mr r3, r27
b lbl_800853AC
lbl_80085150:
lbz r5, 5(r24)
addi r0, r5, -88
cmplwi r0, 0x20
bgt lbl_800851E8
lis r5, "@1009"@ha
addi r5, r5, "@1009"@l
slwi r0, r0, 2
lwzx r0, r5, r0
mtctr r0
bctr
lbl_80085178:
li r0, 0
xoris r5, r3, 0x8000
xoris r3, r0, 0x8000
subfc r0, r0, r4
subfe r3, r3, r5
subfe r3, r5, r5
neg. r3, r3
li r28, 0xa
li r29, 0
beq lbl_800851E8
subfic r30, r30, 0
subfze r31, r31
li r25, 1
b lbl_800851E8
lbl_800851B0:
li r0, 0
stb r0, 1(r24)
li r28, 8
li r29, 0
b lbl_800851E8
lbl_800851C4:
li r0, 0
stb r0, 1(r24)
li r28, 0xa
li r29, 0
b lbl_800851E8
lbl_800851D8:
li r0, 0
stb r0, 1(r24)
li r28, 0x10
li r29, 0
lbl_800851E8:
addi r3, r31, 0
addi r4, r30, 0
addi r5, r29, 0
addi r6, r28, 0
bl __mod2u
addi r22, r4, 0
addi r3, r31, 0
addi r4, r30, 0
addi r5, r29, 0
addi r6, r28, 0
bl __div2u
cmpwi r22, 0xa
addi r30, r4, 0
addi r31, r3, 0
bge lbl_8008522C
addi r5, r22, 0x30
b lbl_80085244
lbl_8008522C:
lbz r0, 5(r24)
cmplwi r0, 0x78
bne lbl_80085240
addi r5, r22, 0x57
b lbl_80085244
lbl_80085240:
addi r5, r22, 0x37
lbl_80085244:
li r4, 0
xor r3, r30, r4
xor r0, r31, r4
or. r0, r3, r0
extsb r0, r5
addi r26, r26, 1
stbu r0, -1(r27)
bne lbl_800851E8
li r0, 8
xor r3, r28, r0
xor r0, r29, r4
or. r0, r3, r0
bne lbl_8008529C
lbz r0, 3(r24)
cmplwi r0, 0
beq lbl_8008529C
lbz r0, 0(r27)
cmpwi r0, 0x30
beq lbl_8008529C
li r0, 0x30
stbu r0, -1(r27)
addi r26, r26, 1
lbl_8008529C:
lbz r0, 0(r24)
cmplwi r0, 2
bne lbl_80085300
lwz r0, 8(r24)
cmpwi r25, 0
stw r0, 0xc(r24)
bne lbl_800852C4
lbz r0, 1(r24)
cmplwi r0, 0
beq lbl_800852D0
lbl_800852C4:
lwz r3, 0xc(r24)
addi r0, r3, -1
stw r0, 0xc(r24)
lbl_800852D0:
li r3, 0x10
li r0, 0
xor r3, r28, r3
xor r0, r29, r0
or. r0, r3, r0
bne lbl_80085300
lbz r0, 3(r24)
cmplwi r0, 0
beq lbl_80085300
lwz r3, 0xc(r24)
addi r0, r3, -2
stw r0, 0xc(r24)
lbl_80085300:
lwz r3, 0xc(r24)
subf r0, r27, r23
add r0, r3, r0
cmpwi r0, 0x1fd
ble lbl_8008531C
li r3, 0
b lbl_800853AC
lbl_8008531C:
li r3, 0x30
b lbl_8008532C
lbl_80085324:
stbu r3, -1(r27)
addi r26, r26, 1
lbl_8008532C:
lwz r0, 0xc(r24)
cmpw r26, r0
blt lbl_80085324
li r3, 0x10
li r0, 0
xor r3, r28, r3
xor r0, r29, r0
or. r0, r3, r0
bne lbl_8008536C
lbz r0, 3(r24)
cmplwi r0, 0
beq lbl_8008536C
lbz r3, 5(r24)
li r0, 0x30
stb r3, -1(r27)
stbu r0, -2(r27)
lbl_8008536C:
cmpwi r25, 0
beq lbl_80085380
li r0, 0x2d
stbu r0, -1(r27)
b lbl_800853A8
lbl_80085380:
lbz r0, 1(r24)
cmplwi r0, 1
bne lbl_80085398
li r0, 0x2b
stbu r0, -1(r27)
b lbl_800853A8
lbl_80085398:
cmplwi r0, 2
bne lbl_800853A8
li r0, 0x20
stbu r0, -1(r27)
lbl_800853A8:
mr r3, r27
lbl_800853AC:
lmw r22, 0x18(r1)
lwz r0, 0x44(r1)
addi r1, r1, 0x40
mtlr r0
blr
.global long2str
long2str:
li r7, 0
stb r7, -1(r4)
cmpwi r3, 0
addi r6, r4, -1
li r8, 0
li r7, 0
bne lbl_80085408
lwz r9, 0xc(r5)
cmpwi r9, 0
bne lbl_80085408
lbz r9, 3(r5)
cmplwi r9, 0
beq lbl_80085400
lbz r9, 5(r5)
cmplwi r9, 0x6f
beq lbl_80085408
lbl_80085400:
mr r3, r6
blr
lbl_80085408:
lbz r9, 5(r5)
addi r10, r9, -88
cmplwi r10, 0x20
bgt lbl_80085474
lis r9, "@1066"@ha
addi r9, r9, "@1066"@l
slwi r10, r10, 2
lwzx r9, r9, r10
mtctr r9
bctr
lbl_80085430:
cmpwi r3, 0
li r0, 0xa
bge lbl_80085474
neg r3, r3
li r8, 1
b lbl_80085474
lbl_80085448:
li r0, 0
stb r0, 1(r5)
li r0, 8
b lbl_80085474
lbl_80085458:
li r0, 0
stb r0, 1(r5)
li r0, 0xa
b lbl_80085474
lbl_80085468:
li r0, 0
stb r0, 1(r5)
li r0, 0x10
lbl_80085474:
divwu r9, r3, r0
mullw r9, r9, r0
subf r10, r9, r3
divwu r3, r3, r0
cmpwi r10, 0xa
bge lbl_80085494
addi r10, r10, 0x30
b lbl_800854AC
lbl_80085494:
lbz r9, 5(r5)
cmplwi r9, 0x78
bne lbl_800854A8
addi r10, r10, 0x57
b lbl_800854AC
lbl_800854A8:
addi r10, r10, 0x37
lbl_800854AC:
extsb r9, r10
stb r9, -1(r6)
cmplwi r3, 0
addi r6, r6, -1
addi r7, r7, 1
bne lbl_80085474
cmplwi r0, 8
bne lbl_800854F0
lbz r3, 3(r5)
cmplwi r3, 0
beq lbl_800854F0
lbz r3, 0(r6)
cmpwi r3, 0x30
beq lbl_800854F0
li r3, 0x30
stbu r3, -1(r6)
addi r7, r7, 1
lbl_800854F0:
lbz r3, 0(r5)
cmplwi r3, 2
bne lbl_80085544
lwz r3, 8(r5)
cmpwi r8, 0
stw r3, 0xc(r5)
bne lbl_80085518
lbz r3, 1(r5)
cmplwi r3, 0
beq lbl_80085524
lbl_80085518:
lwz r3, 0xc(r5)
addi r3, r3, -1
stw r3, 0xc(r5)
lbl_80085524:
cmplwi r0, 0x10
bne lbl_80085544
lbz r3, 3(r5)
cmplwi r3, 0
beq lbl_80085544
lwz r3, 0xc(r5)
addi r3, r3, -2
stw r3, 0xc(r5)
lbl_80085544:
lwz r9, 0xc(r5)
subf r3, r6, r4
add r3, r9, r3
cmpwi r3, 0x1fd
ble lbl_80085560
li r3, 0
blr
lbl_80085560:
li r4, 0x30
b lbl_80085570
lbl_80085568:
stbu r4, -1(r6)
addi r7, r7, 1
lbl_80085570:
lwz r3, 0xc(r5)
cmpw r7, r3
blt lbl_80085568
cmplwi r0, 0x10
bne lbl_800855A0
lbz r0, 3(r5)
cmplwi r0, 0
beq lbl_800855A0
lbz r3, 5(r5)
li r0, 0x30
stb r3, -1(r6)
stbu r0, -2(r6)
lbl_800855A0:
cmpwi r8, 0
beq lbl_800855B4
li r0, 0x2d
stbu r0, -1(r6)
b lbl_800855DC
lbl_800855B4:
lbz r0, 1(r5)
cmplwi r0, 1
bne lbl_800855CC
li r0, 0x2b
stbu r0, -1(r6)
b lbl_800855DC
lbl_800855CC:
cmplwi r0, 2
bne lbl_800855DC
li r0, 0x20
stbu r0, -1(r6)
lbl_800855DC:
mr r3, r6
blr
.global parse_format
parse_format:
mflr r0
stw r0, 4(r1)
li r0, 1
stwu r1, -0x38(r1)
stw r31, 0x34(r1)
addi r31, r3, 1
stw r30, 0x30(r1)
addi r30, r5, 0
stw r29, 0x2c(r1)
addi r29, r4, 0
stb r0, 0x14(r1)
li r0, 0
stb r0, 0x15(r1)
stb r0, 0x16(r1)
stb r0, 0x17(r1)
stb r0, 0x18(r1)
stw r0, 0x1c(r1)
stw r0, 0x20(r1)
lbz r3, 1(r3)
extsb r3, r3
cmpwi r3, 0x25
bne lbl_80085668
stb r3, 0x19(r1)
addi r3, r31, 1
lwz r4, 0x14(r1)
lwz r0, 0x18(r1)
stw r4, 0(r30)
stw r0, 4(r30)
lwz r4, 0x1c(r1)
lwz r0, 0x20(r1)
stw r4, 8(r30)
stw r0, 0xc(r30)
b lbl_80085AA0
lbl_80085668:
lis r4, "@1185"@ha
addi r4, r4, "@1185"@l
lbl_80085670:
addi r0, r3, -32
cmplwi r0, 0x10
li r5, 1
bgt lbl_800856E4
slwi r0, r0, 2
lwzx r0, r4, r0
mtctr r0
bctr
lbl_80085690:
li r0, 0
stb r0, 0x14(r1)
b lbl_800856E8
lbl_8008569C:
li r0, 1
stb r0, 0x15(r1)
b lbl_800856E8
lbl_800856A8:
lbz r0, 0x15(r1)
cmplwi r0, 1
beq lbl_800856E8
li r0, 2
stb r0, 0x15(r1)
b lbl_800856E8
lbl_800856C0:
li r0, 1
stb r0, 0x17(r1)
b lbl_800856E8
lbl_800856CC:
lbz r0, 0x14(r1)
cmplwi r0, 0
beq lbl_800856E8
li r0, 2
stb r0, 0x14(r1)
b lbl_800856E8
lbl_800856E4:
li r5, 0
lbl_800856E8:
cmpwi r5, 0
beq lbl_800856FC
lbzu r3, 1(r31)
extsb r3, r3
b lbl_80085670
lbl_800856FC:
cmpwi r3, 0x2a
bne lbl_80085740
addi r3, r29, 0
li r4, 1
bl __va_arg
lwz r0, 0(r3)
cmpwi r0, 0
stw r0, 0x1c(r1)
bge lbl_80085734
li r0, 0
stb r0, 0x14(r1)
lwz r0, 0x1c(r1)
neg r0, r0
stw r0, 0x1c(r1)
lbl_80085734:
lbzu r3, 1(r31)
extsb r3, r3
b lbl_8008577C
lbl_80085740:
lis r4, __ctype_map@ha
addi r5, r4, __ctype_map@l
b lbl_80085768
lbl_8008574C:
lwz r0, 0x1c(r1)
mulli r0, r0, 0xa
add r3, r3, r0
addi r0, r3, -48
stw r0, 0x1c(r1)
lbzu r3, 1(r31)
extsb r3, r3
lbl_80085768:
clrlwi r0, r3, 0x18
add r4, r5, r0
lbz r0, 0(r4)
rlwinm. r0, r0, 0, 0x1b, 0x1b
bne lbl_8008574C
lbl_8008577C:
lwz r0, 0x1c(r1)
cmpwi r0, 0x1fd
ble lbl_800857B8
li r0, 0xff
stb r0, 0x19(r1)
addi r3, r31, 1
lwz r4, 0x14(r1)
lwz r0, 0x18(r1)
stw r4, 0(r30)
stw r0, 4(r30)
lwz r4, 0x1c(r1)
lwz r0, 0x20(r1)
stw r4, 8(r30)
stw r0, 0xc(r30)
b lbl_80085AA0
lbl_800857B8:
cmpwi r3, 0x2e
bne lbl_80085844
li r0, 1
stb r0, 0x16(r1)
lbzu r3, 1(r31)
extsb r3, r3
cmpwi r3, 0x2a
bne lbl_80085808
addi r3, r29, 0
li r4, 1
bl __va_arg
lwz r0, 0(r3)
cmpwi r0, 0
stw r0, 0x20(r1)
bge lbl_800857FC
li r0, 0
stb r0, 0x16(r1)
lbl_800857FC:
lbzu r3, 1(r31)
extsb r3, r3
b lbl_80085844
lbl_80085808:
lis r4, __ctype_map@ha
addi r5, r4, __ctype_map@l
b lbl_80085830
lbl_80085814:
lwz r0, 0x20(r1)
mulli r0, r0, 0xa
add r3, r3, r0
addi r0, r3, -48
stw r0, 0x20(r1)
lbzu r3, 1(r31)
extsb r3, r3
lbl_80085830:
clrlwi r0, r3, 0x18
add r4, r5, r0
lbz r0, 0(r4)
rlwinm. r0, r0, 0, 0x1b, 0x1b
bne lbl_80085814
lbl_80085844:
cmpwi r3, 0x68
li r4, 1
beq lbl_8008586C
bge lbl_80085860
cmpwi r3, 0x4c
beq lbl_800858B8
b lbl_800858C4
lbl_80085860:
cmpwi r3, 0x6c
beq lbl_80085890
b lbl_800858C4
lbl_8008586C:
li r0, 2
stb r0, 0x18(r1)
lbz r0, 1(r31)
cmpwi r0, 0x68
bne lbl_800858C8
stb r4, 0x18(r1)
lbzu r3, 1(r31)
extsb r3, r3
b lbl_800858C8
lbl_80085890:
li r0, 3
stb r0, 0x18(r1)
lbz r0, 1(r31)
cmpwi r0, 0x6c
bne lbl_800858C8
li r0, 4
stb r0, 0x18(r1)
lbzu r3, 1(r31)
extsb r3, r3
b lbl_800858C8
lbl_800858B8:
li r0, 5
stb r0, 0x18(r1)
b lbl_800858C8
lbl_800858C4:
li r4, 0
lbl_800858C8:
cmpwi r4, 0
beq lbl_800858D8
lbzu r3, 1(r31)
extsb r3, r3
lbl_800858D8:
addi r0, r3, -69
stb r3, 0x19(r1)
cmplwi r0, 0x33
bgt lbl_80085A74
lis r3, "@1186"@ha
addi r3, r3, "@1186"@l
slwi r0, r0, 2
lwzx r0, r3, r0
mtctr r0
bctr
lbl_80085900:
lbz r0, 0x18(r1)
cmplwi r0, 5
bne lbl_80085918
li r0, 0xff
stb r0, 0x19(r1)
b lbl_80085A7C
lbl_80085918:
lbz r0, 0x16(r1)
cmplwi r0, 0
bne lbl_80085930
li r0, 1
stw r0, 0x20(r1)
b lbl_80085A7C
lbl_80085930:
lbz r0, 0x14(r1)
cmplwi r0, 2
bne lbl_80085A7C
li r0, 1
stb r0, 0x14(r1)
b lbl_80085A7C
lbl_80085948:
lbz r0, 0x18(r1)
cmplwi r0, 2
beq lbl_8008595C
cmplwi r0, 4
bne lbl_80085968
lbl_8008595C:
li r0, 0xff
stb r0, 0x19(r1)
b lbl_80085A7C
lbl_80085968:
lbz r0, 0x16(r1)
cmplwi r0, 0
bne lbl_80085A7C
li r0, 6
stw r0, 0x20(r1)
b lbl_80085A7C
lbl_80085980:
lwz r0, 0x20(r1)
cmpwi r0, 0
bne lbl_80085994
li r0, 1
stw r0, 0x20(r1)
lbl_80085994:
lbz r0, 0x18(r1)
cmplwi r0, 2
beq lbl_800859B0
cmplwi r0, 4
beq lbl_800859B0
cmplwi r0, 1
bne lbl_800859BC
lbl_800859B0:
li r0, 0xff
stb r0, 0x19(r1)
b lbl_80085A7C
lbl_800859BC:
lbz r0, 0x16(r1)
cmplwi r0, 0
bne lbl_80085A7C
li r0, 6
stw r0, 0x20(r1)
b lbl_80085A7C
lbl_800859D4:
li r0, 0x78
stb r0, 0x19(r1)
li r0, 1
li r3, 3
stb r0, 0x17(r1)
li r0, 8
stb r3, 0x18(r1)
stw r0, 0x20(r1)
b lbl_80085A7C
lbl_800859F8:
lbz r3, 0x18(r1)
cmplwi r3, 3
bne lbl_80085A10
li r0, 6
stb r0, 0x18(r1)
b lbl_80085A7C
lbl_80085A10:
lbz r0, 0x16(r1)
cmplwi r0, 0
bne lbl_80085A24
cmplwi r3, 0
beq lbl_80085A7C
lbl_80085A24:
li r0, 0xff
stb r0, 0x19(r1)
b lbl_80085A7C
lbl_80085A30:
lbz r0, 0x18(r1)
cmplwi r0, 3
bne lbl_80085A48
li r0, 6
stb r0, 0x18(r1)
b lbl_80085A7C
lbl_80085A48:
cmplwi r0, 0
beq lbl_80085A7C
li r0, 0xff
stb r0, 0x19(r1)
b lbl_80085A7C
lbl_80085A5C:
lbz r0, 0x18(r1)
cmplwi r0, 5
bne lbl_80085A7C
li r0, 0xff
stb r0, 0x19(r1)
b lbl_80085A7C
lbl_80085A74:
li r0, 0xff
stb r0, 0x19(r1)
lbl_80085A7C:
lwz r4, 0x14(r1)
addi r3, r31, 1
lwz r0, 0x18(r1)
stw r4, 0(r30)
stw r0, 4(r30)
lwz r4, 0x1c(r1)
lwz r0, 0x20(r1)
stw r4, 8(r30)
stw r0, 0xc(r30)
lbl_80085AA0:
lwz r0, 0x3c(r1)
lwz r31, 0x34(r1)
lwz r30, 0x30(r1)
mtlr r0
lwz r29, 0x2c(r1)
addi r1, r1, 0x38
blr
.section .rodata, "a"
.balign 8
"@stringBase0":
.4byte 0x002D496E
.4byte 0x6600496E
.4byte 0x66004E61
.4byte 0x4E000000
.section .data, "wa"
"@1009":
.4byte lbl_800851D8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_80085178
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_80085178
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851B0
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851C4
.4byte lbl_800851E8
.4byte lbl_800851E8
.4byte lbl_800851D8
"@1066":
.4byte lbl_80085468
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085430
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085430
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085448
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085458
.4byte lbl_80085474
.4byte lbl_80085474
.4byte lbl_80085468
"@1186":
.4byte lbl_80085994
.4byte lbl_80085A74
.4byte lbl_80085980
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085900
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_800859F8
.4byte lbl_80085900
.4byte lbl_80085994
.4byte lbl_80085948
.4byte lbl_80085980
.4byte lbl_80085A74
.4byte lbl_80085900
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A5C
.4byte lbl_80085900
.4byte lbl_800859D4
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085A30
.4byte lbl_80085A74
.4byte lbl_80085900
.4byte lbl_80085A74
.4byte lbl_80085A74
.4byte lbl_80085900
"@1185":
.4byte lbl_800856A8
.4byte lbl_800856E4
.4byte lbl_800856E4
.4byte lbl_800856C0
.4byte lbl_800856E4
.4byte lbl_800856E4
.4byte lbl_800856E4
.4byte lbl_800856E4
.4byte lbl_800856E4
.4byte lbl_800856E4
.4byte lbl_800856E4
.4byte lbl_8008569C
.4byte lbl_800856E4
.4byte lbl_80085690
.4byte lbl_800856E4
.4byte lbl_800856E4
.4byte lbl_800856CC
.section .sdata, "wa"
"@wstringBase0":
.4byte 0
.4byte 0
.section .sdata2, "a"
.balign 8
"@919":
.4byte 0
.4byte 0
|