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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global __strtoul
__strtoul:
/* 801CFC84 001CB8E4 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 801CFC88 001CB8E8 7C 08 02 A6 */ mflr r0
/* 801CFC8C 001CB8EC 2C 03 00 00 */ cmpwi r3, 0
/* 801CFC90 001CB8F0 90 01 00 54 */ stw r0, 0x54(r1)
/* 801CFC94 001CB8F4 BE 01 00 10 */ stmw r16, 0x10(r1)
/* 801CFC98 001CB8F8 3B 40 00 00 */ li r26, 0
/* 801CFC9C 001CB8FC 7C 70 1B 78 */ mr r16, r3
/* 801CFCA0 001CB900 7C 91 23 78 */ mr r17, r4
/* 801CFCA4 001CB904 7C B2 2B 78 */ mr r18, r5
/* 801CFCA8 001CB908 7C D3 33 78 */ mr r19, r6
/* 801CFCAC 001CB90C 7C F4 3B 78 */ mr r20, r7
/* 801CFCB0 001CB910 7D 15 43 78 */ mr r21, r8
/* 801CFCB4 001CB914 7D 36 4B 78 */ mr r22, r9
/* 801CFCB8 001CB918 3B 60 00 01 */ li r27, 1
/* 801CFCBC 001CB91C 3B 20 00 00 */ li r25, 0
/* 801CFCC0 001CB920 3B 00 00 00 */ li r24, 0
/* 801CFCC4 001CB924 3A E0 00 00 */ li r23, 0
/* 801CFCC8 001CB928 93 49 00 00 */ stw r26, 0(r9)
/* 801CFCCC 001CB92C 93 48 00 00 */ stw r26, 0(r8)
/* 801CFCD0 001CB930 41 80 00 1C */ blt lbl_801CFCEC
/* 801CFCD4 001CB934 2C 03 00 01 */ cmpwi r3, 1
/* 801CFCD8 001CB938 41 82 00 14 */ beq lbl_801CFCEC
/* 801CFCDC 001CB93C 2C 03 00 24 */ cmpwi r3, 0x24
/* 801CFCE0 001CB940 41 81 00 0C */ bgt lbl_801CFCEC
/* 801CFCE4 001CB944 2C 04 00 01 */ cmpwi r4, 1
/* 801CFCE8 001CB948 40 80 00 0C */ bge lbl_801CFCF4
lbl_801CFCEC:
/* 801CFCEC 001CB94C 3B 60 00 40 */ li r27, 0x40
/* 801CFCF0 001CB950 48 00 00 24 */ b lbl_801CFD14
lbl_801CFCF4:
/* 801CFCF4 001CB954 7E 4C 93 78 */ mr r12, r18
/* 801CFCF8 001CB958 7E 63 9B 78 */ mr r3, r19
/* 801CFCFC 001CB95C 38 80 00 00 */ li r4, 0
/* 801CFD00 001CB960 38 A0 00 00 */ li r5, 0
/* 801CFD04 001CB964 7D 89 03 A6 */ mtctr r12
/* 801CFD08 001CB968 3B 40 00 01 */ li r26, 1
/* 801CFD0C 001CB96C 4E 80 04 21 */ bctrl
/* 801CFD10 001CB970 7C 64 1B 78 */ mr r4, r3
lbl_801CFD14:
/* 801CFD14 001CB974 2C 10 00 00 */ cmpwi r16, 0
/* 801CFD18 001CB978 41 82 00 0C */ beq lbl_801CFD24
/* 801CFD1C 001CB97C 38 00 FF FF */ li r0, -1
/* 801CFD20 001CB980 7E E0 83 96 */ divwu r23, r0, r16
lbl_801CFD24:
/* 801CFD24 001CB984 3C 60 80 42 */ lis r3, lbl_80422D48@ha
/* 801CFD28 001CB988 3B C0 00 01 */ li r30, 1
/* 801CFD2C 001CB98C 3B E0 FF FF */ li r31, -1
/* 801CFD30 001CB990 3F 80 80 42 */ lis r28, 0x8042
/* 801CFD34 001CB994 3B A3 2D 48 */ addi r29, r3, lbl_80422D48@l
/* 801CFD38 001CB998 48 00 03 18 */ b lbl_801D0050
lbl_801CFD3C:
/* 801CFD3C 001CB99C 28 1B 00 10 */ cmplwi r27, 0x10
/* 801CFD40 001CB9A0 41 81 03 10 */ bgt lbl_801D0050
/* 801CFD44 001CB9A4 38 7C 31 00 */ addi r3, r28, 0x3100
/* 801CFD48 001CB9A8 57 60 10 3A */ slwi r0, r27, 2
/* 801CFD4C 001CB9AC 7C 63 00 2E */ lwzx r3, r3, r0
/* 801CFD50 001CB9B0 7C 69 03 A6 */ mtctr r3
/* 801CFD54 001CB9B4 4E 80 04 20 */ bctr
/* 801CFD58 001CB9B8 2C 04 00 00 */ cmpwi r4, 0
/* 801CFD5C 001CB9BC 38 00 00 00 */ li r0, 0
/* 801CFD60 001CB9C0 41 80 00 0C */ blt lbl_801CFD6C
/* 801CFD64 001CB9C4 2C 04 01 00 */ cmpwi r4, 0x100
/* 801CFD68 001CB9C8 41 80 00 08 */ blt lbl_801CFD70
lbl_801CFD6C:
/* 801CFD6C 001CB9CC 38 00 00 01 */ li r0, 1
lbl_801CFD70:
/* 801CFD70 001CB9D0 2C 00 00 00 */ cmpwi r0, 0
/* 801CFD74 001CB9D4 41 82 00 0C */ beq lbl_801CFD80
/* 801CFD78 001CB9D8 38 00 00 00 */ li r0, 0
/* 801CFD7C 001CB9DC 48 00 00 18 */ b lbl_801CFD94
lbl_801CFD80:
/* 801CFD80 001CB9E0 80 7D 00 38 */ lwz r3, 0x38(r29)
/* 801CFD84 001CB9E4 54 80 08 3C */ slwi r0, r4, 1
/* 801CFD88 001CB9E8 80 63 00 08 */ lwz r3, 8(r3)
/* 801CFD8C 001CB9EC 7C 03 02 2E */ lhzx r0, r3, r0
/* 801CFD90 001CB9F0 54 00 05 EE */ rlwinm r0, r0, 0, 0x17, 0x17
lbl_801CFD94:
/* 801CFD94 001CB9F4 2C 00 00 00 */ cmpwi r0, 0
/* 801CFD98 001CB9F8 41 82 00 28 */ beq lbl_801CFDC0
/* 801CFD9C 001CB9FC 7E 4C 93 78 */ mr r12, r18
/* 801CFDA0 001CBA00 7E 63 9B 78 */ mr r3, r19
/* 801CFDA4 001CBA04 38 80 00 00 */ li r4, 0
/* 801CFDA8 001CBA08 38 A0 00 00 */ li r5, 0
/* 801CFDAC 001CBA0C 7D 89 03 A6 */ mtctr r12
/* 801CFDB0 001CBA10 4E 80 04 21 */ bctrl
/* 801CFDB4 001CBA14 7C 64 1B 78 */ mr r4, r3
/* 801CFDB8 001CBA18 3B 39 00 01 */ addi r25, r25, 1
/* 801CFDBC 001CBA1C 48 00 02 94 */ b lbl_801D0050
lbl_801CFDC0:
/* 801CFDC0 001CBA20 2C 04 00 2B */ cmpwi r4, 0x2b
/* 801CFDC4 001CBA24 40 82 00 28 */ bne lbl_801CFDEC
/* 801CFDC8 001CBA28 7E 4C 93 78 */ mr r12, r18
/* 801CFDCC 001CBA2C 7E 63 9B 78 */ mr r3, r19
/* 801CFDD0 001CBA30 38 80 00 00 */ li r4, 0
/* 801CFDD4 001CBA34 38 A0 00 00 */ li r5, 0
/* 801CFDD8 001CBA38 7D 89 03 A6 */ mtctr r12
/* 801CFDDC 001CBA3C 3B 5A 00 01 */ addi r26, r26, 1
/* 801CFDE0 001CBA40 4E 80 04 21 */ bctrl
/* 801CFDE4 001CBA44 7C 64 1B 78 */ mr r4, r3
/* 801CFDE8 001CBA48 48 00 00 30 */ b lbl_801CFE18
lbl_801CFDEC:
/* 801CFDEC 001CBA4C 2C 04 00 2D */ cmpwi r4, 0x2d
/* 801CFDF0 001CBA50 40 82 00 28 */ bne lbl_801CFE18
/* 801CFDF4 001CBA54 7E 4C 93 78 */ mr r12, r18
/* 801CFDF8 001CBA58 7E 63 9B 78 */ mr r3, r19
/* 801CFDFC 001CBA5C 38 80 00 00 */ li r4, 0
/* 801CFE00 001CBA60 38 A0 00 00 */ li r5, 0
/* 801CFE04 001CBA64 7D 89 03 A6 */ mtctr r12
/* 801CFE08 001CBA68 3B 5A 00 01 */ addi r26, r26, 1
/* 801CFE0C 001CBA6C 4E 80 04 21 */ bctrl
/* 801CFE10 001CBA70 7C 64 1B 78 */ mr r4, r3
/* 801CFE14 001CBA74 93 D5 00 00 */ stw r30, 0(r21)
lbl_801CFE18:
/* 801CFE18 001CBA78 3B 60 00 02 */ li r27, 2
/* 801CFE1C 001CBA7C 48 00 02 34 */ b lbl_801D0050
/* 801CFE20 001CBA80 2C 10 00 00 */ cmpwi r16, 0
/* 801CFE24 001CBA84 41 82 00 0C */ beq lbl_801CFE30
/* 801CFE28 001CBA88 2C 10 00 10 */ cmpwi r16, 0x10
/* 801CFE2C 001CBA8C 40 82 00 34 */ bne lbl_801CFE60
lbl_801CFE30:
/* 801CFE30 001CBA90 2C 04 00 30 */ cmpwi r4, 0x30
/* 801CFE34 001CBA94 40 82 00 2C */ bne lbl_801CFE60
/* 801CFE38 001CBA98 7E 4C 93 78 */ mr r12, r18
/* 801CFE3C 001CBA9C 7E 63 9B 78 */ mr r3, r19
/* 801CFE40 001CBAA0 3B 60 00 04 */ li r27, 4
/* 801CFE44 001CBAA4 38 80 00 00 */ li r4, 0
/* 801CFE48 001CBAA8 38 A0 00 00 */ li r5, 0
/* 801CFE4C 001CBAAC 7D 89 03 A6 */ mtctr r12
/* 801CFE50 001CBAB0 3B 5A 00 01 */ addi r26, r26, 1
/* 801CFE54 001CBAB4 4E 80 04 21 */ bctrl
/* 801CFE58 001CBAB8 7C 64 1B 78 */ mr r4, r3
/* 801CFE5C 001CBABC 48 00 01 F4 */ b lbl_801D0050
lbl_801CFE60:
/* 801CFE60 001CBAC0 3B 60 00 08 */ li r27, 8
/* 801CFE64 001CBAC4 48 00 01 EC */ b lbl_801D0050
/* 801CFE68 001CBAC8 2C 04 00 58 */ cmpwi r4, 0x58
/* 801CFE6C 001CBACC 41 82 00 0C */ beq lbl_801CFE78
/* 801CFE70 001CBAD0 2C 04 00 78 */ cmpwi r4, 0x78
/* 801CFE74 001CBAD4 40 82 00 30 */ bne lbl_801CFEA4
lbl_801CFE78:
/* 801CFE78 001CBAD8 7E 4C 93 78 */ mr r12, r18
/* 801CFE7C 001CBADC 7E 63 9B 78 */ mr r3, r19
/* 801CFE80 001CBAE0 3A 00 00 10 */ li r16, 0x10
/* 801CFE84 001CBAE4 3B 60 00 08 */ li r27, 8
/* 801CFE88 001CBAE8 38 80 00 00 */ li r4, 0
/* 801CFE8C 001CBAEC 38 A0 00 00 */ li r5, 0
/* 801CFE90 001CBAF0 7D 89 03 A6 */ mtctr r12
/* 801CFE94 001CBAF4 3B 5A 00 01 */ addi r26, r26, 1
/* 801CFE98 001CBAF8 4E 80 04 21 */ bctrl
/* 801CFE9C 001CBAFC 7C 64 1B 78 */ mr r4, r3
/* 801CFEA0 001CBB00 48 00 01 B0 */ b lbl_801D0050
lbl_801CFEA4:
/* 801CFEA4 001CBB04 2C 10 00 00 */ cmpwi r16, 0
/* 801CFEA8 001CBB08 40 82 00 08 */ bne lbl_801CFEB0
/* 801CFEAC 001CBB0C 3A 00 00 08 */ li r16, 8
lbl_801CFEB0:
/* 801CFEB0 001CBB10 3B 60 00 10 */ li r27, 0x10
/* 801CFEB4 001CBB14 48 00 01 9C */ b lbl_801D0050
/* 801CFEB8 001CBB18 2C 10 00 00 */ cmpwi r16, 0
/* 801CFEBC 001CBB1C 40 82 00 08 */ bne lbl_801CFEC4
/* 801CFEC0 001CBB20 3A 00 00 0A */ li r16, 0xa
lbl_801CFEC4:
/* 801CFEC4 001CBB24 2C 17 00 00 */ cmpwi r23, 0
/* 801CFEC8 001CBB28 40 82 00 08 */ bne lbl_801CFED0
/* 801CFECC 001CBB2C 7E FF 83 96 */ divwu r23, r31, r16
lbl_801CFED0:
/* 801CFED0 001CBB30 2C 04 00 00 */ cmpwi r4, 0
/* 801CFED4 001CBB34 38 00 00 00 */ li r0, 0
/* 801CFED8 001CBB38 41 80 00 0C */ blt lbl_801CFEE4
/* 801CFEDC 001CBB3C 2C 04 01 00 */ cmpwi r4, 0x100
/* 801CFEE0 001CBB40 41 80 00 08 */ blt lbl_801CFEE8
lbl_801CFEE4:
/* 801CFEE4 001CBB44 38 00 00 01 */ li r0, 1
lbl_801CFEE8:
/* 801CFEE8 001CBB48 2C 00 00 00 */ cmpwi r0, 0
/* 801CFEEC 001CBB4C 41 82 00 0C */ beq lbl_801CFEF8
/* 801CFEF0 001CBB50 38 00 00 00 */ li r0, 0
/* 801CFEF4 001CBB54 48 00 00 18 */ b lbl_801CFF0C
lbl_801CFEF8:
/* 801CFEF8 001CBB58 80 7D 00 38 */ lwz r3, 0x38(r29)
/* 801CFEFC 001CBB5C 54 80 08 3C */ slwi r0, r4, 1
/* 801CFF00 001CBB60 80 63 00 08 */ lwz r3, 8(r3)
/* 801CFF04 001CBB64 7C 03 02 2E */ lhzx r0, r3, r0
/* 801CFF08 001CBB68 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
lbl_801CFF0C:
/* 801CFF0C 001CBB6C 2C 00 00 00 */ cmpwi r0, 0
/* 801CFF10 001CBB70 41 82 00 28 */ beq lbl_801CFF38
/* 801CFF14 001CBB74 38 84 FF D0 */ addi r4, r4, -48
/* 801CFF18 001CBB78 7C 04 80 00 */ cmpw r4, r16
/* 801CFF1C 001CBB7C 41 80 00 EC */ blt lbl_801D0008
/* 801CFF20 001CBB80 2C 1B 00 10 */ cmpwi r27, 0x10
/* 801CFF24 001CBB84 3B 60 00 40 */ li r27, 0x40
/* 801CFF28 001CBB88 40 82 00 08 */ bne lbl_801CFF30
/* 801CFF2C 001CBB8C 3B 60 00 20 */ li r27, 0x20
lbl_801CFF30:
/* 801CFF30 001CBB90 38 84 00 30 */ addi r4, r4, 0x30
/* 801CFF34 001CBB94 48 00 01 1C */ b lbl_801D0050
lbl_801CFF38:
/* 801CFF38 001CBB98 2C 04 00 00 */ cmpwi r4, 0
/* 801CFF3C 001CBB9C 38 00 00 00 */ li r0, 0
/* 801CFF40 001CBBA0 41 80 00 0C */ blt lbl_801CFF4C
/* 801CFF44 001CBBA4 2C 04 01 00 */ cmpwi r4, 0x100
/* 801CFF48 001CBBA8 41 80 00 08 */ blt lbl_801CFF50
lbl_801CFF4C:
/* 801CFF4C 001CBBAC 38 00 00 01 */ li r0, 1
lbl_801CFF50:
/* 801CFF50 001CBBB0 2C 00 00 00 */ cmpwi r0, 0
/* 801CFF54 001CBBB4 41 82 00 0C */ beq lbl_801CFF60
/* 801CFF58 001CBBB8 38 00 00 00 */ li r0, 0
/* 801CFF5C 001CBBBC 48 00 00 18 */ b lbl_801CFF74
lbl_801CFF60:
/* 801CFF60 001CBBC0 80 7D 00 38 */ lwz r3, 0x38(r29)
/* 801CFF64 001CBBC4 54 80 08 3C */ slwi r0, r4, 1
/* 801CFF68 001CBBC8 80 63 00 08 */ lwz r3, 8(r3)
/* 801CFF6C 001CBBCC 7C 03 02 2E */ lhzx r0, r3, r0
/* 801CFF70 001CBBD0 54 00 07 FE */ clrlwi r0, r0, 0x1f
lbl_801CFF74:
/* 801CFF74 001CBBD4 2C 00 00 00 */ cmpwi r0, 0
/* 801CFF78 001CBBD8 41 82 00 44 */ beq lbl_801CFFBC
/* 801CFF7C 001CBBDC 2C 04 00 00 */ cmpwi r4, 0
/* 801CFF80 001CBBE0 38 00 00 00 */ li r0, 0
/* 801CFF84 001CBBE4 41 80 00 0C */ blt lbl_801CFF90
/* 801CFF88 001CBBE8 2C 04 01 00 */ cmpwi r4, 0x100
/* 801CFF8C 001CBBEC 41 80 00 08 */ blt lbl_801CFF94
lbl_801CFF90:
/* 801CFF90 001CBBF0 38 00 00 01 */ li r0, 1
lbl_801CFF94:
/* 801CFF94 001CBBF4 2C 00 00 00 */ cmpwi r0, 0
/* 801CFF98 001CBBF8 41 82 00 0C */ beq lbl_801CFFA4
/* 801CFF9C 001CBBFC 7C 83 23 78 */ mr r3, r4
/* 801CFFA0 001CBC00 48 00 00 10 */ b lbl_801CFFB0
lbl_801CFFA4:
/* 801CFFA4 001CBC04 80 7D 00 38 */ lwz r3, 0x38(r29)
/* 801CFFA8 001CBC08 80 63 00 0C */ lwz r3, 0xc(r3)
/* 801CFFAC 001CBC0C 7C 63 20 AE */ lbzx r3, r3, r4
lbl_801CFFB0:
/* 801CFFB0 001CBC10 38 03 FF C9 */ addi r0, r3, -55
/* 801CFFB4 001CBC14 7C 00 80 00 */ cmpw r0, r16
/* 801CFFB8 001CBC18 41 80 00 1C */ blt lbl_801CFFD4
lbl_801CFFBC:
/* 801CFFBC 001CBC1C 2C 1B 00 10 */ cmpwi r27, 0x10
/* 801CFFC0 001CBC20 40 82 00 0C */ bne lbl_801CFFCC
/* 801CFFC4 001CBC24 3B 60 00 20 */ li r27, 0x20
/* 801CFFC8 001CBC28 48 00 00 88 */ b lbl_801D0050
lbl_801CFFCC:
/* 801CFFCC 001CBC2C 3B 60 00 40 */ li r27, 0x40
/* 801CFFD0 001CBC30 48 00 00 80 */ b lbl_801D0050
lbl_801CFFD4:
/* 801CFFD4 001CBC34 2C 04 00 00 */ cmpwi r4, 0
/* 801CFFD8 001CBC38 38 00 00 00 */ li r0, 0
/* 801CFFDC 001CBC3C 41 80 00 0C */ blt lbl_801CFFE8
/* 801CFFE0 001CBC40 2C 04 01 00 */ cmpwi r4, 0x100
/* 801CFFE4 001CBC44 41 80 00 08 */ blt lbl_801CFFEC
lbl_801CFFE8:
/* 801CFFE8 001CBC48 38 00 00 01 */ li r0, 1
lbl_801CFFEC:
/* 801CFFEC 001CBC4C 2C 00 00 00 */ cmpwi r0, 0
/* 801CFFF0 001CBC50 41 82 00 08 */ beq lbl_801CFFF8
/* 801CFFF4 001CBC54 48 00 00 10 */ b lbl_801D0004
lbl_801CFFF8:
/* 801CFFF8 001CBC58 80 7D 00 38 */ lwz r3, 0x38(r29)
/* 801CFFFC 001CBC5C 80 63 00 0C */ lwz r3, 0xc(r3)
/* 801D0000 001CBC60 7C 83 20 AE */ lbzx r4, r3, r4
lbl_801D0004:
/* 801D0004 001CBC64 38 84 FF C9 */ addi r4, r4, -55
lbl_801D0008:
/* 801D0008 001CBC68 7C 18 B8 40 */ cmplw r24, r23
/* 801D000C 001CBC6C 40 81 00 08 */ ble lbl_801D0014
/* 801D0010 001CBC70 93 D6 00 00 */ stw r30, 0(r22)
lbl_801D0014:
/* 801D0014 001CBC74 7F 18 81 D6 */ mullw r24, r24, r16
/* 801D0018 001CBC78 20 18 FF FF */ subfic r0, r24, -1
/* 801D001C 001CBC7C 7C 04 00 40 */ cmplw r4, r0
/* 801D0020 001CBC80 40 81 00 08 */ ble lbl_801D0028
/* 801D0024 001CBC84 93 D6 00 00 */ stw r30, 0(r22)
lbl_801D0028:
/* 801D0028 001CBC88 7E 4C 93 78 */ mr r12, r18
/* 801D002C 001CBC8C 7F 18 22 14 */ add r24, r24, r4
/* 801D0030 001CBC90 7E 63 9B 78 */ mr r3, r19
/* 801D0034 001CBC94 3B 60 00 10 */ li r27, 0x10
/* 801D0038 001CBC98 38 80 00 00 */ li r4, 0
/* 801D003C 001CBC9C 38 A0 00 00 */ li r5, 0
/* 801D0040 001CBCA0 7D 89 03 A6 */ mtctr r12
/* 801D0044 001CBCA4 3B 5A 00 01 */ addi r26, r26, 1
/* 801D0048 001CBCA8 4E 80 04 21 */ bctrl
/* 801D004C 001CBCAC 7C 64 1B 78 */ mr r4, r3
lbl_801D0050:
/* 801D0050 001CBCB0 7C 1A 88 00 */ cmpw r26, r17
/* 801D0054 001CBCB4 41 81 00 14 */ bgt lbl_801D0068
/* 801D0058 001CBCB8 2C 04 FF FF */ cmpwi r4, -1
/* 801D005C 001CBCBC 41 82 00 0C */ beq lbl_801D0068
/* 801D0060 001CBCC0 57 60 06 75 */ rlwinm. r0, r27, 0, 0x19, 0x1a
/* 801D0064 001CBCC4 41 82 FC D8 */ beq lbl_801CFD3C
lbl_801D0068:
/* 801D0068 001CBCC8 73 60 00 34 */ andi. r0, r27, 0x34
/* 801D006C 001CBCCC 40 82 00 10 */ bne lbl_801D007C
/* 801D0070 001CBCD0 3B 00 00 00 */ li r24, 0
/* 801D0074 001CBCD4 93 14 00 00 */ stw r24, 0(r20)
/* 801D0078 001CBCD8 48 00 00 10 */ b lbl_801D0088
lbl_801D007C:
/* 801D007C 001CBCDC 7C 7A CA 14 */ add r3, r26, r25
/* 801D0080 001CBCE0 38 03 FF FF */ addi r0, r3, -1
/* 801D0084 001CBCE4 90 14 00 00 */ stw r0, 0(r20)
lbl_801D0088:
/* 801D0088 001CBCE8 7E 4C 93 78 */ mr r12, r18
/* 801D008C 001CBCEC 7E 63 9B 78 */ mr r3, r19
/* 801D0090 001CBCF0 38 A0 00 01 */ li r5, 1
/* 801D0094 001CBCF4 7D 89 03 A6 */ mtctr r12
/* 801D0098 001CBCF8 4E 80 04 21 */ bctrl
/* 801D009C 001CBCFC 7F 03 C3 78 */ mr r3, r24
/* 801D00A0 001CBD00 BA 01 00 10 */ lmw r16, 0x10(r1)
/* 801D00A4 001CBD04 80 01 00 54 */ lwz r0, 0x54(r1)
/* 801D00A8 001CBD08 7C 08 03 A6 */ mtlr r0
/* 801D00AC 001CBD0C 38 21 00 50 */ addi r1, r1, 0x50
/* 801D00B0 001CBD10 4E 80 00 20 */ blr
.global __strtoull
__strtoull:
/* 801D00B4 001CBD14 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 801D00B8 001CBD18 7C 08 02 A6 */ mflr r0
/* 801D00BC 001CBD1C 2C 03 00 00 */ cmpwi r3, 0
/* 801D00C0 001CBD20 90 01 00 64 */ stw r0, 0x64(r1)
/* 801D00C4 001CBD24 BD C1 00 18 */ stmw r14, 0x18(r1)
/* 801D00C8 001CBD28 3B 60 00 00 */ li r27, 0
/* 801D00CC 001CBD2C 7C 6F 1B 78 */ mr r15, r3
/* 801D00D0 001CBD30 7C 90 23 78 */ mr r16, r4
/* 801D00D4 001CBD34 90 E1 00 08 */ stw r7, 8(r1)
/* 801D00D8 001CBD38 7C B1 2B 78 */ mr r17, r5
/* 801D00DC 001CBD3C 7C D2 33 78 */ mr r18, r6
/* 801D00E0 001CBD40 7D 13 43 78 */ mr r19, r8
/* 801D00E4 001CBD44 7D 34 4B 78 */ mr r20, r9
/* 801D00E8 001CBD48 3B 80 00 01 */ li r28, 1
/* 801D00EC 001CBD4C 3B 40 00 00 */ li r26, 0
/* 801D00F0 001CBD50 3B 00 00 00 */ li r24, 0
/* 801D00F4 001CBD54 3B 20 00 00 */ li r25, 0
/* 801D00F8 001CBD58 3A C0 00 00 */ li r22, 0
/* 801D00FC 001CBD5C 3A E0 00 00 */ li r23, 0
/* 801D0100 001CBD60 93 69 00 00 */ stw r27, 0(r9)
/* 801D0104 001CBD64 93 68 00 00 */ stw r27, 0(r8)
/* 801D0108 001CBD68 41 80 00 1C */ blt lbl_801D0124
/* 801D010C 001CBD6C 2C 03 00 01 */ cmpwi r3, 1
/* 801D0110 001CBD70 41 82 00 14 */ beq lbl_801D0124
/* 801D0114 001CBD74 2C 03 00 24 */ cmpwi r3, 0x24
/* 801D0118 001CBD78 41 81 00 0C */ bgt lbl_801D0124
/* 801D011C 001CBD7C 2C 04 00 01 */ cmpwi r4, 1
/* 801D0120 001CBD80 40 80 00 0C */ bge lbl_801D012C
lbl_801D0124:
/* 801D0124 001CBD84 3B 80 00 40 */ li r28, 0x40
/* 801D0128 001CBD88 48 00 00 24 */ b lbl_801D014C
lbl_801D012C:
/* 801D012C 001CBD8C 7E 2C 8B 78 */ mr r12, r17
/* 801D0130 001CBD90 7E 43 93 78 */ mr r3, r18
/* 801D0134 001CBD94 38 80 00 00 */ li r4, 0
/* 801D0138 001CBD98 38 A0 00 00 */ li r5, 0
/* 801D013C 001CBD9C 7D 89 03 A6 */ mtctr r12
/* 801D0140 001CBDA0 3B 60 00 01 */ li r27, 1
/* 801D0144 001CBDA4 4E 80 04 21 */ bctrl
/* 801D0148 001CBDA8 7C 75 1B 78 */ mr r21, r3
lbl_801D014C:
/* 801D014C 001CBDAC 2C 0F 00 00 */ cmpwi r15, 0
/* 801D0150 001CBDB0 41 82 00 20 */ beq lbl_801D0170
/* 801D0154 001CBDB4 7D E6 7B 78 */ mr r6, r15
/* 801D0158 001CBDB8 7D E5 FE 70 */ srawi r5, r15, 0x1f
/* 801D015C 001CBDBC 38 60 FF FF */ li r3, -1
/* 801D0160 001CBDC0 38 80 FF FF */ li r4, -1
/* 801D0164 001CBDC4 4B FF 70 29 */ bl __div2u
/* 801D0168 001CBDC8 7C 96 23 78 */ mr r22, r4
/* 801D016C 001CBDCC 7C 77 1B 78 */ mr r23, r3
lbl_801D0170:
/* 801D0170 001CBDD0 3C 60 80 42 */ lis r3, lbl_80422D48@ha
/* 801D0174 001CBDD4 3B C0 00 01 */ li r30, 1
/* 801D0178 001CBDD8 3B E0 FF FF */ li r31, -1
/* 801D017C 001CBDDC 3D C0 80 42 */ lis r14, 0x8042
/* 801D0180 001CBDE0 3B A3 2D 48 */ addi r29, r3, lbl_80422D48@l
/* 801D0184 001CBDE4 48 00 03 7C */ b lbl_801D0500
lbl_801D0188:
/* 801D0188 001CBDE8 28 1C 00 10 */ cmplwi r28, 0x10
/* 801D018C 001CBDEC 41 81 03 74 */ bgt lbl_801D0500
/* 801D0190 001CBDF0 38 6E 31 44 */ addi r3, r14, 0x3144
/* 801D0194 001CBDF4 57 80 10 3A */ slwi r0, r28, 2
/* 801D0198 001CBDF8 7C 63 00 2E */ lwzx r3, r3, r0
/* 801D019C 001CBDFC 7C 69 03 A6 */ mtctr r3
/* 801D01A0 001CBE00 4E 80 04 20 */ bctr
/* 801D01A4 001CBE04 2C 15 00 00 */ cmpwi r21, 0
/* 801D01A8 001CBE08 38 00 00 00 */ li r0, 0
/* 801D01AC 001CBE0C 41 80 00 0C */ blt lbl_801D01B8
/* 801D01B0 001CBE10 2C 15 01 00 */ cmpwi r21, 0x100
/* 801D01B4 001CBE14 41 80 00 08 */ blt lbl_801D01BC
lbl_801D01B8:
/* 801D01B8 001CBE18 38 00 00 01 */ li r0, 1
lbl_801D01BC:
/* 801D01BC 001CBE1C 2C 00 00 00 */ cmpwi r0, 0
/* 801D01C0 001CBE20 41 82 00 0C */ beq lbl_801D01CC
/* 801D01C4 001CBE24 38 00 00 00 */ li r0, 0
/* 801D01C8 001CBE28 48 00 00 18 */ b lbl_801D01E0
lbl_801D01CC:
/* 801D01CC 001CBE2C 80 7D 00 38 */ lwz r3, 0x38(r29)
/* 801D01D0 001CBE30 56 A0 08 3C */ slwi r0, r21, 1
/* 801D01D4 001CBE34 80 63 00 08 */ lwz r3, 8(r3)
/* 801D01D8 001CBE38 7C 03 02 2E */ lhzx r0, r3, r0
/* 801D01DC 001CBE3C 54 00 05 EE */ rlwinm r0, r0, 0, 0x17, 0x17
lbl_801D01E0:
/* 801D01E0 001CBE40 2C 00 00 00 */ cmpwi r0, 0
/* 801D01E4 001CBE44 41 82 00 28 */ beq lbl_801D020C
/* 801D01E8 001CBE48 7E 2C 8B 78 */ mr r12, r17
/* 801D01EC 001CBE4C 7E 43 93 78 */ mr r3, r18
/* 801D01F0 001CBE50 38 80 00 00 */ li r4, 0
/* 801D01F4 001CBE54 38 A0 00 00 */ li r5, 0
/* 801D01F8 001CBE58 7D 89 03 A6 */ mtctr r12
/* 801D01FC 001CBE5C 4E 80 04 21 */ bctrl
/* 801D0200 001CBE60 7C 75 1B 78 */ mr r21, r3
/* 801D0204 001CBE64 3B 5A 00 01 */ addi r26, r26, 1
/* 801D0208 001CBE68 48 00 02 F8 */ b lbl_801D0500
lbl_801D020C:
/* 801D020C 001CBE6C 2C 15 00 2B */ cmpwi r21, 0x2b
/* 801D0210 001CBE70 40 82 00 28 */ bne lbl_801D0238
/* 801D0214 001CBE74 7E 2C 8B 78 */ mr r12, r17
/* 801D0218 001CBE78 7E 43 93 78 */ mr r3, r18
/* 801D021C 001CBE7C 38 80 00 00 */ li r4, 0
/* 801D0220 001CBE80 38 A0 00 00 */ li r5, 0
/* 801D0224 001CBE84 7D 89 03 A6 */ mtctr r12
/* 801D0228 001CBE88 3B 7B 00 01 */ addi r27, r27, 1
/* 801D022C 001CBE8C 4E 80 04 21 */ bctrl
/* 801D0230 001CBE90 7C 75 1B 78 */ mr r21, r3
/* 801D0234 001CBE94 48 00 00 30 */ b lbl_801D0264
lbl_801D0238:
/* 801D0238 001CBE98 2C 15 00 2D */ cmpwi r21, 0x2d
/* 801D023C 001CBE9C 40 82 00 28 */ bne lbl_801D0264
/* 801D0240 001CBEA0 7E 2C 8B 78 */ mr r12, r17
/* 801D0244 001CBEA4 7E 43 93 78 */ mr r3, r18
/* 801D0248 001CBEA8 38 80 00 00 */ li r4, 0
/* 801D024C 001CBEAC 38 A0 00 00 */ li r5, 0
/* 801D0250 001CBEB0 7D 89 03 A6 */ mtctr r12
/* 801D0254 001CBEB4 3B 7B 00 01 */ addi r27, r27, 1
/* 801D0258 001CBEB8 4E 80 04 21 */ bctrl
/* 801D025C 001CBEBC 7C 75 1B 78 */ mr r21, r3
/* 801D0260 001CBEC0 93 D3 00 00 */ stw r30, 0(r19)
lbl_801D0264:
/* 801D0264 001CBEC4 3B 80 00 02 */ li r28, 2
/* 801D0268 001CBEC8 48 00 02 98 */ b lbl_801D0500
/* 801D026C 001CBECC 2C 0F 00 00 */ cmpwi r15, 0
/* 801D0270 001CBED0 41 82 00 0C */ beq lbl_801D027C
/* 801D0274 001CBED4 2C 0F 00 10 */ cmpwi r15, 0x10
/* 801D0278 001CBED8 40 82 00 34 */ bne lbl_801D02AC
lbl_801D027C:
/* 801D027C 001CBEDC 2C 15 00 30 */ cmpwi r21, 0x30
/* 801D0280 001CBEE0 40 82 00 2C */ bne lbl_801D02AC
/* 801D0284 001CBEE4 7E 2C 8B 78 */ mr r12, r17
/* 801D0288 001CBEE8 7E 43 93 78 */ mr r3, r18
/* 801D028C 001CBEEC 3B 80 00 04 */ li r28, 4
/* 801D0290 001CBEF0 38 80 00 00 */ li r4, 0
/* 801D0294 001CBEF4 38 A0 00 00 */ li r5, 0
/* 801D0298 001CBEF8 7D 89 03 A6 */ mtctr r12
/* 801D029C 001CBEFC 3B 7B 00 01 */ addi r27, r27, 1
/* 801D02A0 001CBF00 4E 80 04 21 */ bctrl
/* 801D02A4 001CBF04 7C 75 1B 78 */ mr r21, r3
/* 801D02A8 001CBF08 48 00 02 58 */ b lbl_801D0500
lbl_801D02AC:
/* 801D02AC 001CBF0C 3B 80 00 08 */ li r28, 8
/* 801D02B0 001CBF10 48 00 02 50 */ b lbl_801D0500
/* 801D02B4 001CBF14 2C 15 00 58 */ cmpwi r21, 0x58
/* 801D02B8 001CBF18 41 82 00 0C */ beq lbl_801D02C4
/* 801D02BC 001CBF1C 2C 15 00 78 */ cmpwi r21, 0x78
/* 801D02C0 001CBF20 40 82 00 30 */ bne lbl_801D02F0
lbl_801D02C4:
/* 801D02C4 001CBF24 7E 2C 8B 78 */ mr r12, r17
/* 801D02C8 001CBF28 7E 43 93 78 */ mr r3, r18
/* 801D02CC 001CBF2C 39 E0 00 10 */ li r15, 0x10
/* 801D02D0 001CBF30 3B 80 00 08 */ li r28, 8
/* 801D02D4 001CBF34 38 80 00 00 */ li r4, 0
/* 801D02D8 001CBF38 38 A0 00 00 */ li r5, 0
/* 801D02DC 001CBF3C 7D 89 03 A6 */ mtctr r12
/* 801D02E0 001CBF40 3B 7B 00 01 */ addi r27, r27, 1
/* 801D02E4 001CBF44 4E 80 04 21 */ bctrl
/* 801D02E8 001CBF48 7C 75 1B 78 */ mr r21, r3
/* 801D02EC 001CBF4C 48 00 02 14 */ b lbl_801D0500
lbl_801D02F0:
/* 801D02F0 001CBF50 2C 0F 00 00 */ cmpwi r15, 0
/* 801D02F4 001CBF54 40 82 00 08 */ bne lbl_801D02FC
/* 801D02F8 001CBF58 39 E0 00 08 */ li r15, 8
lbl_801D02FC:
/* 801D02FC 001CBF5C 3B 80 00 10 */ li r28, 0x10
/* 801D0300 001CBF60 48 00 02 00 */ b lbl_801D0500
/* 801D0304 001CBF64 2C 0F 00 00 */ cmpwi r15, 0
/* 801D0308 001CBF68 40 82 00 08 */ bne lbl_801D0310
/* 801D030C 001CBF6C 39 E0 00 0A */ li r15, 0xa
lbl_801D0310:
/* 801D0310 001CBF70 38 00 00 00 */ li r0, 0
/* 801D0314 001CBF74 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 801D0318 001CBF78 7E E0 02 78 */ xor r0, r23, r0
/* 801D031C 001CBF7C 7E C0 03 79 */ or. r0, r22, r0
/* 801D0320 001CBF80 40 82 00 20 */ bne lbl_801D0340
/* 801D0324 001CBF84 7D E6 7B 78 */ mr r6, r15
/* 801D0328 001CBF88 7D E5 FE 70 */ srawi r5, r15, 0x1f
/* 801D032C 001CBF8C 38 60 FF FF */ li r3, -1
/* 801D0330 001CBF90 38 80 FF FF */ li r4, -1
/* 801D0334 001CBF94 4B FF 6E 59 */ bl __div2u
/* 801D0338 001CBF98 7C 96 23 78 */ mr r22, r4
/* 801D033C 001CBF9C 7C 77 1B 78 */ mr r23, r3
lbl_801D0340:
/* 801D0340 001CBFA0 2C 15 00 00 */ cmpwi r21, 0
/* 801D0344 001CBFA4 38 00 00 00 */ li r0, 0
/* 801D0348 001CBFA8 41 80 00 0C */ blt lbl_801D0354
/* 801D034C 001CBFAC 2C 15 01 00 */ cmpwi r21, 0x100
/* 801D0350 001CBFB0 41 80 00 08 */ blt lbl_801D0358
lbl_801D0354:
/* 801D0354 001CBFB4 38 00 00 01 */ li r0, 1
lbl_801D0358:
/* 801D0358 001CBFB8 2C 00 00 00 */ cmpwi r0, 0
/* 801D035C 001CBFBC 41 82 00 0C */ beq lbl_801D0368
/* 801D0360 001CBFC0 38 00 00 00 */ li r0, 0
/* 801D0364 001CBFC4 48 00 00 18 */ b lbl_801D037C
lbl_801D0368:
/* 801D0368 001CBFC8 80 7D 00 38 */ lwz r3, 0x38(r29)
/* 801D036C 001CBFCC 56 A0 08 3C */ slwi r0, r21, 1
/* 801D0370 001CBFD0 80 63 00 08 */ lwz r3, 8(r3)
/* 801D0374 001CBFD4 7C 03 02 2E */ lhzx r0, r3, r0
/* 801D0378 001CBFD8 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
lbl_801D037C:
/* 801D037C 001CBFDC 2C 00 00 00 */ cmpwi r0, 0
/* 801D0380 001CBFE0 41 82 00 28 */ beq lbl_801D03A8
/* 801D0384 001CBFE4 3A B5 FF D0 */ addi r21, r21, -48
/* 801D0388 001CBFE8 7C 15 78 00 */ cmpw r21, r15
/* 801D038C 001CBFEC 41 80 00 EC */ blt lbl_801D0478
/* 801D0390 001CBFF0 2C 1C 00 10 */ cmpwi r28, 0x10
/* 801D0394 001CBFF4 3B 80 00 40 */ li r28, 0x40
/* 801D0398 001CBFF8 40 82 00 08 */ bne lbl_801D03A0
/* 801D039C 001CBFFC 3B 80 00 20 */ li r28, 0x20
lbl_801D03A0:
/* 801D03A0 001CC000 3A B5 00 30 */ addi r21, r21, 0x30
/* 801D03A4 001CC004 48 00 01 5C */ b lbl_801D0500
lbl_801D03A8:
/* 801D03A8 001CC008 2C 15 00 00 */ cmpwi r21, 0
/* 801D03AC 001CC00C 38 00 00 00 */ li r0, 0
/* 801D03B0 001CC010 41 80 00 0C */ blt lbl_801D03BC
/* 801D03B4 001CC014 2C 15 01 00 */ cmpwi r21, 0x100
/* 801D03B8 001CC018 41 80 00 08 */ blt lbl_801D03C0
lbl_801D03BC:
/* 801D03BC 001CC01C 38 00 00 01 */ li r0, 1
lbl_801D03C0:
/* 801D03C0 001CC020 2C 00 00 00 */ cmpwi r0, 0
/* 801D03C4 001CC024 41 82 00 0C */ beq lbl_801D03D0
/* 801D03C8 001CC028 38 00 00 00 */ li r0, 0
/* 801D03CC 001CC02C 48 00 00 18 */ b lbl_801D03E4
lbl_801D03D0:
/* 801D03D0 001CC030 80 7D 00 38 */ lwz r3, 0x38(r29)
/* 801D03D4 001CC034 56 A0 08 3C */ slwi r0, r21, 1
/* 801D03D8 001CC038 80 63 00 08 */ lwz r3, 8(r3)
/* 801D03DC 001CC03C 7C 03 02 2E */ lhzx r0, r3, r0
/* 801D03E0 001CC040 54 00 07 FE */ clrlwi r0, r0, 0x1f
lbl_801D03E4:
/* 801D03E4 001CC044 2C 00 00 00 */ cmpwi r0, 0
/* 801D03E8 001CC048 41 82 00 44 */ beq lbl_801D042C
/* 801D03EC 001CC04C 2C 15 00 00 */ cmpwi r21, 0
/* 801D03F0 001CC050 38 00 00 00 */ li r0, 0
/* 801D03F4 001CC054 41 80 00 0C */ blt lbl_801D0400
/* 801D03F8 001CC058 2C 15 01 00 */ cmpwi r21, 0x100
/* 801D03FC 001CC05C 41 80 00 08 */ blt lbl_801D0404
lbl_801D0400:
/* 801D0400 001CC060 38 00 00 01 */ li r0, 1
lbl_801D0404:
/* 801D0404 001CC064 2C 00 00 00 */ cmpwi r0, 0
/* 801D0408 001CC068 41 82 00 0C */ beq lbl_801D0414
/* 801D040C 001CC06C 7E A3 AB 78 */ mr r3, r21
/* 801D0410 001CC070 48 00 00 10 */ b lbl_801D0420
lbl_801D0414:
/* 801D0414 001CC074 80 7D 00 38 */ lwz r3, 0x38(r29)
/* 801D0418 001CC078 80 63 00 0C */ lwz r3, 0xc(r3)
/* 801D041C 001CC07C 7C 63 A8 AE */ lbzx r3, r3, r21
lbl_801D0420:
/* 801D0420 001CC080 38 03 FF C9 */ addi r0, r3, -55
/* 801D0424 001CC084 7C 00 78 00 */ cmpw r0, r15
/* 801D0428 001CC088 41 80 00 1C */ blt lbl_801D0444
lbl_801D042C:
/* 801D042C 001CC08C 2C 1C 00 10 */ cmpwi r28, 0x10
/* 801D0430 001CC090 40 82 00 0C */ bne lbl_801D043C
/* 801D0434 001CC094 3B 80 00 20 */ li r28, 0x20
/* 801D0438 001CC098 48 00 00 C8 */ b lbl_801D0500
lbl_801D043C:
/* 801D043C 001CC09C 3B 80 00 40 */ li r28, 0x40
/* 801D0440 001CC0A0 48 00 00 C0 */ b lbl_801D0500
lbl_801D0444:
/* 801D0444 001CC0A4 2C 15 00 00 */ cmpwi r21, 0
/* 801D0448 001CC0A8 38 00 00 00 */ li r0, 0
/* 801D044C 001CC0AC 41 80 00 0C */ blt lbl_801D0458
/* 801D0450 001CC0B0 2C 15 01 00 */ cmpwi r21, 0x100
/* 801D0454 001CC0B4 41 80 00 08 */ blt lbl_801D045C
lbl_801D0458:
/* 801D0458 001CC0B8 38 00 00 01 */ li r0, 1
lbl_801D045C:
/* 801D045C 001CC0BC 2C 00 00 00 */ cmpwi r0, 0
/* 801D0460 001CC0C0 41 82 00 08 */ beq lbl_801D0468
/* 801D0464 001CC0C4 48 00 00 10 */ b lbl_801D0474
lbl_801D0468:
/* 801D0468 001CC0C8 80 7D 00 38 */ lwz r3, 0x38(r29)
/* 801D046C 001CC0CC 80 63 00 0C */ lwz r3, 0xc(r3)
/* 801D0470 001CC0D0 7E A3 A8 AE */ lbzx r21, r3, r21
lbl_801D0474:
/* 801D0474 001CC0D4 3A B5 FF C9 */ addi r21, r21, -55
lbl_801D0478:
/* 801D0478 001CC0D8 7C 18 B0 10 */ subfc r0, r24, r22
/* 801D047C 001CC0DC 7C 19 B9 10 */ subfe r0, r25, r23
/* 801D0480 001CC0E0 7C 16 B1 10 */ subfe r0, r22, r22
/* 801D0484 001CC0E4 7C 00 00 D1 */ neg. r0, r0
/* 801D0488 001CC0E8 41 82 00 08 */ beq lbl_801D0490
/* 801D048C 001CC0EC 93 D4 00 00 */ stw r30, 0(r20)
lbl_801D0490:
/* 801D0490 001CC0F0 7C 78 78 16 */ mulhwu r3, r24, r15
/* 801D0494 001CC0F4 7D E5 FE 70 */ srawi r5, r15, 0x1f
/* 801D0498 001CC0F8 7E A6 FE 70 */ srawi r6, r21, 0x1f
/* 801D049C 001CC0FC 7C 99 79 D6 */ mullw r4, r25, r15
/* 801D04A0 001CC100 7C 83 22 14 */ add r4, r3, r4
/* 801D04A4 001CC104 7C 78 29 D6 */ mullw r3, r24, r5
/* 801D04A8 001CC108 7C 18 79 D6 */ mullw r0, r24, r15
/* 801D04AC 001CC10C 7C E4 1A 14 */ add r7, r4, r3
/* 801D04B0 001CC110 7C A0 F8 10 */ subfc r5, r0, r31
/* 801D04B4 001CC114 7C 87 F9 10 */ subfe r4, r7, r31
/* 801D04B8 001CC118 7C 75 28 10 */ subfc r3, r21, r5
/* 801D04BC 001CC11C 7C 66 21 10 */ subfe r3, r6, r4
/* 801D04C0 001CC120 7C 65 29 10 */ subfe r3, r5, r5
/* 801D04C4 001CC124 7C 63 00 D1 */ neg. r3, r3
/* 801D04C8 001CC128 41 82 00 08 */ beq lbl_801D04D0
/* 801D04CC 001CC12C 93 D4 00 00 */ stw r30, 0(r20)
lbl_801D04D0:
/* 801D04D0 001CC130 7E A4 FE 70 */ srawi r4, r21, 0x1f
/* 801D04D4 001CC134 7E 2C 8B 78 */ mr r12, r17
/* 801D04D8 001CC138 7F 00 A8 14 */ addc r24, r0, r21
/* 801D04DC 001CC13C 7E 43 93 78 */ mr r3, r18
/* 801D04E0 001CC140 7F 27 21 14 */ adde r25, r7, r4
/* 801D04E4 001CC144 3B 80 00 10 */ li r28, 0x10
/* 801D04E8 001CC148 38 80 00 00 */ li r4, 0
/* 801D04EC 001CC14C 38 A0 00 00 */ li r5, 0
/* 801D04F0 001CC150 7D 89 03 A6 */ mtctr r12
/* 801D04F4 001CC154 3B 7B 00 01 */ addi r27, r27, 1
/* 801D04F8 001CC158 4E 80 04 21 */ bctrl
/* 801D04FC 001CC15C 7C 75 1B 78 */ mr r21, r3
lbl_801D0500:
/* 801D0500 001CC160 7C 1B 80 00 */ cmpw r27, r16
/* 801D0504 001CC164 41 81 00 14 */ bgt lbl_801D0518
/* 801D0508 001CC168 2C 15 FF FF */ cmpwi r21, -1
/* 801D050C 001CC16C 41 82 00 0C */ beq lbl_801D0518
/* 801D0510 001CC170 57 80 06 75 */ rlwinm. r0, r28, 0, 0x19, 0x1a
/* 801D0514 001CC174 41 82 FC 74 */ beq lbl_801D0188
lbl_801D0518:
/* 801D0518 001CC178 73 80 00 34 */ andi. r0, r28, 0x34
/* 801D051C 001CC17C 40 82 00 18 */ bne lbl_801D0534
/* 801D0520 001CC180 80 61 00 08 */ lwz r3, 8(r1)
/* 801D0524 001CC184 3B 00 00 00 */ li r24, 0
/* 801D0528 001CC188 3B 20 00 00 */ li r25, 0
/* 801D052C 001CC18C 93 03 00 00 */ stw r24, 0(r3)
/* 801D0530 001CC190 48 00 00 14 */ b lbl_801D0544
lbl_801D0534:
/* 801D0534 001CC194 7C 7B D2 14 */ add r3, r27, r26
/* 801D0538 001CC198 38 03 FF FF */ addi r0, r3, -1
/* 801D053C 001CC19C 80 61 00 08 */ lwz r3, 8(r1)
/* 801D0540 001CC1A0 90 03 00 00 */ stw r0, 0(r3)
lbl_801D0544:
/* 801D0544 001CC1A4 7E 2C 8B 78 */ mr r12, r17
/* 801D0548 001CC1A8 7E 43 93 78 */ mr r3, r18
/* 801D054C 001CC1AC 7E A4 AB 78 */ mr r4, r21
/* 801D0550 001CC1B0 38 A0 00 01 */ li r5, 1
/* 801D0554 001CC1B4 7D 89 03 A6 */ mtctr r12
/* 801D0558 001CC1B8 4E 80 04 21 */ bctrl
/* 801D055C 001CC1BC 7F 04 C3 78 */ mr r4, r24
/* 801D0560 001CC1C0 7F 23 CB 78 */ mr r3, r25
/* 801D0564 001CC1C4 B9 C1 00 18 */ lmw r14, 0x18(r1)
/* 801D0568 001CC1C8 80 01 00 64 */ lwz r0, 0x64(r1)
/* 801D056C 001CC1CC 7C 08 03 A6 */ mtlr r0
/* 801D0570 001CC1D0 38 21 00 60 */ addi r1, r1, 0x60
/* 801D0574 001CC1D4 4E 80 00 20 */ blr
.global strtoul
strtoul:
/* 801D0578 001CC1D8 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 801D057C 001CC1DC 7C 08 02 A6 */ mflr r0
/* 801D0580 001CC1E0 3C E0 80 00 */ lis r7, 0x7FFFFFFF@ha
/* 801D0584 001CC1E4 3C C0 80 1D */ lis r6, __StringRead@ha
/* 801D0588 001CC1E8 90 01 00 34 */ stw r0, 0x34(r1)
/* 801D058C 001CC1EC 38 00 00 00 */ li r0, 0
/* 801D0590 001CC1F0 39 01 00 0C */ addi r8, r1, 0xc
/* 801D0594 001CC1F4 39 21 00 08 */ addi r9, r1, 8
/* 801D0598 001CC1F8 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 801D059C 001CC1FC 7C 9F 23 78 */ mr r31, r4
/* 801D05A0 001CC200 38 87 FF FF */ addi r4, r7, 0x7FFFFFFF@l
/* 801D05A4 001CC204 38 E1 00 10 */ addi r7, r1, 0x10
/* 801D05A8 001CC208 93 C1 00 28 */ stw r30, 0x28(r1)
/* 801D05AC 001CC20C 7C 7E 1B 78 */ mr r30, r3
/* 801D05B0 001CC210 7C A3 2B 78 */ mr r3, r5
/* 801D05B4 001CC214 38 A6 E1 78 */ addi r5, r6, __StringRead@l
/* 801D05B8 001CC218 93 C1 00 18 */ stw r30, 0x18(r1)
/* 801D05BC 001CC21C 38 C1 00 18 */ addi r6, r1, 0x18
/* 801D05C0 001CC220 90 01 00 1C */ stw r0, 0x1c(r1)
/* 801D05C4 001CC224 4B FF F6 C1 */ bl __strtoul
/* 801D05C8 001CC228 2C 1F 00 00 */ cmpwi r31, 0
/* 801D05CC 001CC22C 41 82 00 10 */ beq lbl_801D05DC
/* 801D05D0 001CC230 80 01 00 10 */ lwz r0, 0x10(r1)
/* 801D05D4 001CC234 7C 1E 02 14 */ add r0, r30, r0
/* 801D05D8 001CC238 90 1F 00 00 */ stw r0, 0(r31)
lbl_801D05DC:
/* 801D05DC 001CC23C 80 01 00 08 */ lwz r0, 8(r1)
/* 801D05E0 001CC240 2C 00 00 00 */ cmpwi r0, 0
/* 801D05E4 001CC244 41 82 00 14 */ beq lbl_801D05F8
/* 801D05E8 001CC248 38 00 00 22 */ li r0, 0x22
/* 801D05EC 001CC24C 38 60 FF FF */ li r3, -1
/* 801D05F0 001CC250 90 0D 9F C8 */ stw r0, lbl_8063F288-_SDA_BASE_(r13)
/* 801D05F4 001CC254 48 00 00 14 */ b lbl_801D0608
lbl_801D05F8:
/* 801D05F8 001CC258 80 01 00 0C */ lwz r0, 0xc(r1)
/* 801D05FC 001CC25C 2C 00 00 00 */ cmpwi r0, 0
/* 801D0600 001CC260 41 82 00 08 */ beq lbl_801D0608
/* 801D0604 001CC264 7C 63 00 D0 */ neg r3, r3
lbl_801D0608:
/* 801D0608 001CC268 80 01 00 34 */ lwz r0, 0x34(r1)
/* 801D060C 001CC26C 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 801D0610 001CC270 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 801D0614 001CC274 7C 08 03 A6 */ mtlr r0
/* 801D0618 001CC278 38 21 00 30 */ addi r1, r1, 0x30
/* 801D061C 001CC27C 4E 80 00 20 */ blr
.global strtol
strtol:
/* 801D0620 001CC280 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 801D0624 001CC284 7C 08 02 A6 */ mflr r0
/* 801D0628 001CC288 3C E0 80 00 */ lis r7, 0x7FFFFFFF@ha
/* 801D062C 001CC28C 3C C0 80 1D */ lis r6, __StringRead@ha
/* 801D0630 001CC290 90 01 00 34 */ stw r0, 0x34(r1)
/* 801D0634 001CC294 38 00 00 00 */ li r0, 0
/* 801D0638 001CC298 39 01 00 0C */ addi r8, r1, 0xc
/* 801D063C 001CC29C 39 21 00 08 */ addi r9, r1, 8
/* 801D0640 001CC2A0 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 801D0644 001CC2A4 7C 9F 23 78 */ mr r31, r4
/* 801D0648 001CC2A8 38 87 FF FF */ addi r4, r7, 0x7FFFFFFF@l
/* 801D064C 001CC2AC 38 E1 00 10 */ addi r7, r1, 0x10
/* 801D0650 001CC2B0 93 C1 00 28 */ stw r30, 0x28(r1)
/* 801D0654 001CC2B4 7C 7E 1B 78 */ mr r30, r3
/* 801D0658 001CC2B8 7C A3 2B 78 */ mr r3, r5
/* 801D065C 001CC2BC 38 A6 E1 78 */ addi r5, r6, __StringRead@l
/* 801D0660 001CC2C0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 801D0664 001CC2C4 38 C1 00 18 */ addi r6, r1, 0x18
/* 801D0668 001CC2C8 90 01 00 1C */ stw r0, 0x1c(r1)
/* 801D066C 001CC2CC 4B FF F6 19 */ bl __strtoul
/* 801D0670 001CC2D0 2C 1F 00 00 */ cmpwi r31, 0
/* 801D0674 001CC2D4 41 82 00 10 */ beq lbl_801D0684
/* 801D0678 001CC2D8 80 01 00 10 */ lwz r0, 0x10(r1)
/* 801D067C 001CC2DC 7C 1E 02 14 */ add r0, r30, r0
/* 801D0680 001CC2E0 90 1F 00 00 */ stw r0, 0(r31)
lbl_801D0684:
/* 801D0684 001CC2E4 80 01 00 08 */ lwz r0, 8(r1)
/* 801D0688 001CC2E8 2C 00 00 00 */ cmpwi r0, 0
/* 801D068C 001CC2EC 40 82 00 34 */ bne lbl_801D06C0
/* 801D0690 001CC2F0 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 801D0694 001CC2F4 2C 05 00 00 */ cmpwi r5, 0
/* 801D0698 001CC2F8 40 82 00 14 */ bne lbl_801D06AC
/* 801D069C 001CC2FC 3C 80 80 00 */ lis r4, 0x7FFFFFFF@ha
/* 801D06A0 001CC300 38 04 FF FF */ addi r0, r4, 0x7FFFFFFF@l
/* 801D06A4 001CC304 7C 03 00 40 */ cmplw r3, r0
/* 801D06A8 001CC308 41 81 00 18 */ bgt lbl_801D06C0
lbl_801D06AC:
/* 801D06AC 001CC30C 2C 05 00 00 */ cmpwi r5, 0
/* 801D06B0 001CC310 41 82 00 38 */ beq lbl_801D06E8
/* 801D06B4 001CC314 3C 00 80 00 */ lis r0, 0x8000
/* 801D06B8 001CC318 7C 03 00 40 */ cmplw r3, r0
/* 801D06BC 001CC31C 40 81 00 2C */ ble lbl_801D06E8
lbl_801D06C0:
/* 801D06C0 001CC320 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 801D06C4 001CC324 38 00 00 22 */ li r0, 0x22
/* 801D06C8 001CC328 3C 60 80 00 */ lis r3, 0x7FFFFFFF@ha
/* 801D06CC 001CC32C 90 0D 9F C8 */ stw r0, lbl_8063F288-_SDA_BASE_(r13)
/* 801D06D0 001CC330 7C 85 00 D0 */ neg r4, r5
/* 801D06D4 001CC334 7C 84 2B 78 */ or r4, r4, r5
/* 801D06D8 001CC338 38 03 FF FF */ addi r0, r3, 0x7FFFFFFF@l
/* 801D06DC 001CC33C 54 83 0F FE */ srwi r3, r4, 0x1f
/* 801D06E0 001CC340 7C 63 02 14 */ add r3, r3, r0
/* 801D06E4 001CC344 48 00 00 10 */ b lbl_801D06F4
lbl_801D06E8:
/* 801D06E8 001CC348 2C 05 00 00 */ cmpwi r5, 0
/* 801D06EC 001CC34C 41 82 00 08 */ beq lbl_801D06F4
/* 801D06F0 001CC350 7C 63 00 D0 */ neg r3, r3
lbl_801D06F4:
/* 801D06F4 001CC354 80 01 00 34 */ lwz r0, 0x34(r1)
/* 801D06F8 001CC358 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 801D06FC 001CC35C 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 801D0700 001CC360 7C 08 03 A6 */ mtlr r0
/* 801D0704 001CC364 38 21 00 30 */ addi r1, r1, 0x30
/* 801D0708 001CC368 4E 80 00 20 */ blr
.global atoi
atoi:
/* 801D070C 001CC36C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 801D0710 001CC370 7C 08 02 A6 */ mflr r0
/* 801D0714 001CC374 3C A0 80 1D */ lis r5, __StringRead@ha
/* 801D0718 001CC378 90 01 00 34 */ stw r0, 0x34(r1)
/* 801D071C 001CC37C 38 00 00 00 */ li r0, 0
/* 801D0720 001CC380 38 A5 E1 78 */ addi r5, r5, __StringRead@l
/* 801D0724 001CC384 38 C1 00 18 */ addi r6, r1, 0x18
/* 801D0728 001CC388 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 801D072C 001CC38C 3F E0 80 00 */ lis r31, 0x7FFFFFFF@ha
/* 801D0730 001CC390 38 9F FF FF */ addi r4, r31, 0x7FFFFFFF@l
/* 801D0734 001CC394 38 E1 00 08 */ addi r7, r1, 8
/* 801D0738 001CC398 90 61 00 18 */ stw r3, 0x18(r1)
/* 801D073C 001CC39C 39 01 00 0C */ addi r8, r1, 0xc
/* 801D0740 001CC3A0 39 21 00 10 */ addi r9, r1, 0x10
/* 801D0744 001CC3A4 38 60 00 0A */ li r3, 0xa
/* 801D0748 001CC3A8 90 01 00 1C */ stw r0, 0x1c(r1)
/* 801D074C 001CC3AC 4B FF F5 39 */ bl __strtoul
/* 801D0750 001CC3B0 80 01 00 10 */ lwz r0, 0x10(r1)
/* 801D0754 001CC3B4 2C 00 00 00 */ cmpwi r0, 0
/* 801D0758 001CC3B8 40 82 00 30 */ bne lbl_801D0788
/* 801D075C 001CC3BC 80 81 00 0C */ lwz r4, 0xc(r1)
/* 801D0760 001CC3C0 2C 04 00 00 */ cmpwi r4, 0
/* 801D0764 001CC3C4 40 82 00 10 */ bne lbl_801D0774
/* 801D0768 001CC3C8 38 1F FF FF */ addi r0, r31, -1
/* 801D076C 001CC3CC 7C 03 00 40 */ cmplw r3, r0
/* 801D0770 001CC3D0 41 81 00 18 */ bgt lbl_801D0788
lbl_801D0774:
/* 801D0774 001CC3D4 2C 04 00 00 */ cmpwi r4, 0
/* 801D0778 001CC3D8 41 82 00 38 */ beq lbl_801D07B0
/* 801D077C 001CC3DC 3C 00 80 00 */ lis r0, 0x8000
/* 801D0780 001CC3E0 7C 03 00 40 */ cmplw r3, r0
/* 801D0784 001CC3E4 40 81 00 2C */ ble lbl_801D07B0
lbl_801D0788:
/* 801D0788 001CC3E8 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 801D078C 001CC3EC 38 00 00 22 */ li r0, 0x22
/* 801D0790 001CC3F0 3C 60 80 00 */ lis r3, 0x7FFFFFFF@ha
/* 801D0794 001CC3F4 90 0D 9F C8 */ stw r0, lbl_8063F288-_SDA_BASE_(r13)
/* 801D0798 001CC3F8 7C 85 00 D0 */ neg r4, r5
/* 801D079C 001CC3FC 7C 84 2B 78 */ or r4, r4, r5
/* 801D07A0 001CC400 38 03 FF FF */ addi r0, r3, 0x7FFFFFFF@l
/* 801D07A4 001CC404 54 83 0F FE */ srwi r3, r4, 0x1f
/* 801D07A8 001CC408 7C 63 02 14 */ add r3, r3, r0
/* 801D07AC 001CC40C 48 00 00 10 */ b lbl_801D07BC
lbl_801D07B0:
/* 801D07B0 001CC410 2C 04 00 00 */ cmpwi r4, 0
/* 801D07B4 001CC414 41 82 00 08 */ beq lbl_801D07BC
/* 801D07B8 001CC418 7C 63 00 D0 */ neg r3, r3
lbl_801D07BC:
/* 801D07BC 001CC41C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 801D07C0 001CC420 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 801D07C4 001CC424 7C 08 03 A6 */ mtlr r0
/* 801D07C8 001CC428 38 21 00 30 */ addi r1, r1, 0x30
/* 801D07CC 001CC42C 4E 80 00 20 */ blr
|