summaryrefslogtreecommitdiff
path: root/asm/libstdc++/strtoul.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/libstdc++/strtoul.s')
-rw-r--r--asm/libstdc++/strtoul.s847
1 files changed, 847 insertions, 0 deletions
diff --git a/asm/libstdc++/strtoul.s b/asm/libstdc++/strtoul.s
new file mode 100644
index 0000000..c6e412c
--- /dev/null
+++ b/asm/libstdc++/strtoul.s
@@ -0,0 +1,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