summaryrefslogtreecommitdiff
path: root/asm/MSL_C/MSL_Common
diff options
context:
space:
mode:
Diffstat (limited to 'asm/MSL_C/MSL_Common')
-rw-r--r--asm/MSL_C/MSL_Common/ansi_files.s123
-rw-r--r--asm/MSL_C/MSL_Common/arith.s10
-rw-r--r--asm/MSL_C/MSL_Common/buffer_io.s143
-rw-r--r--asm/MSL_C/MSL_Common/direct_io.s459
-rw-r--r--asm/MSL_C/MSL_Common/extras.s175
-rw-r--r--asm/MSL_C/MSL_Common/file_io.s214
-rw-r--r--asm/MSL_C/MSL_Common/file_pos.s211
-rw-r--r--asm/MSL_C/MSL_Common/math_api.s87
-rw-r--r--asm/MSL_C/MSL_Common/mbstring.s105
-rw-r--r--asm/MSL_C/MSL_Common/mem.s125
-rw-r--r--asm/MSL_C/MSL_Common/mem_funcs.s219
-rw-r--r--asm/MSL_C/MSL_Common/misc_io.s10
-rw-r--r--asm/MSL_C/MSL_Common/printf.s2649
-rw-r--r--asm/MSL_C/MSL_Common/qsort.s109
-rw-r--r--asm/MSL_C/MSL_Common/rand.s19
-rw-r--r--asm/MSL_C/MSL_Common/scanf.s1571
-rw-r--r--asm/MSL_C/MSL_Common/string.s424
-rw-r--r--asm/MSL_C/MSL_Common/strtold.s1535
-rw-r--r--asm/MSL_C/MSL_Common/strtoul.s847
-rw-r--r--asm/MSL_C/MSL_Common/wchar_io.s47
-rw-r--r--asm/MSL_C/MSL_Common/wstring.s56
21 files changed, 9138 insertions, 0 deletions
diff --git a/asm/MSL_C/MSL_Common/ansi_files.s b/asm/MSL_C/MSL_Common/ansi_files.s
new file mode 100644
index 0000000..52c4156
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/ansi_files.s
@@ -0,0 +1,123 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __close_all
+__close_all:
+/* 801C7894 001C34F4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 801C7898 001C34F8 7C 08 02 A6 */ mflr r0
+/* 801C789C 001C34FC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801C78A0 001C3500 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 801C78A4 001C3504 3B E0 00 00 */ li r31, 0
+/* 801C78A8 001C3508 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 801C78AC 001C350C 3B C0 00 03 */ li r30, 3
+/* 801C78B0 001C3510 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 801C78B4 001C3514 3F A0 80 42 */ lis r29, lbl_804228F0@ha
+/* 801C78B8 001C3518 3B BD 28 F0 */ addi r29, r29, lbl_804228F0@l
+/* 801C78BC 001C351C 48 00 00 58 */ b lbl_801C7914
+lbl_801C78C0:
+/* 801C78C0 001C3520 80 1D 00 04 */ lwz r0, 4(r29)
+/* 801C78C4 001C3524 54 00 57 7F */ rlwinm. r0, r0, 0xa, 0x1d, 0x1f
+/* 801C78C8 001C3528 41 82 00 0C */ beq lbl_801C78D4
+/* 801C78CC 001C352C 7F A3 EB 78 */ mr r3, r29
+/* 801C78D0 001C3530 48 00 23 01 */ bl fclose
+lbl_801C78D4:
+/* 801C78D4 001C3534 7F A3 EB 78 */ mr r3, r29
+/* 801C78D8 001C3538 83 BD 00 4C */ lwz r29, 0x4c(r29)
+/* 801C78DC 001C353C 88 03 00 0C */ lbz r0, 0xc(r3)
+/* 801C78E0 001C3540 2C 00 00 00 */ cmpwi r0, 0
+/* 801C78E4 001C3544 41 82 00 0C */ beq lbl_801C78F0
+/* 801C78E8 001C3548 4B E4 2E DD */ bl func_8000A7C4
+/* 801C78EC 001C354C 48 00 00 28 */ b lbl_801C7914
+lbl_801C78F0:
+/* 801C78F0 001C3550 80 03 00 04 */ lwz r0, 4(r3)
+/* 801C78F4 001C3554 53 C0 B1 D2 */ rlwimi r0, r30, 0x16, 7, 9
+/* 801C78F8 001C3558 2C 1D 00 00 */ cmpwi r29, 0
+/* 801C78FC 001C355C 90 03 00 04 */ stw r0, 4(r3)
+/* 801C7900 001C3560 41 82 00 14 */ beq lbl_801C7914
+/* 801C7904 001C3564 88 1D 00 0C */ lbz r0, 0xc(r29)
+/* 801C7908 001C3568 2C 00 00 00 */ cmpwi r0, 0
+/* 801C790C 001C356C 41 82 00 08 */ beq lbl_801C7914
+/* 801C7910 001C3570 93 E3 00 4C */ stw r31, 0x4c(r3)
+lbl_801C7914:
+/* 801C7914 001C3574 2C 1D 00 00 */ cmpwi r29, 0
+/* 801C7918 001C3578 40 82 FF A8 */ bne lbl_801C78C0
+/* 801C791C 001C357C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801C7920 001C3580 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 801C7924 001C3584 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 801C7928 001C3588 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 801C792C 001C358C 7C 08 03 A6 */ mtlr r0
+/* 801C7930 001C3590 38 21 00 20 */ addi r1, r1, 0x20
+/* 801C7934 001C3594 4E 80 00 20 */ blr
+
+.global __flush_line_buffered_output_files
+__flush_line_buffered_output_files:
+/* 801C7938 001C3598 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801C793C 001C359C 7C 08 02 A6 */ mflr r0
+/* 801C7940 001C35A0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801C7944 001C35A4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801C7948 001C35A8 3B E0 00 00 */ li r31, 0
+/* 801C794C 001C35AC 93 C1 00 08 */ stw r30, 8(r1)
+/* 801C7950 001C35B0 3F C0 80 42 */ lis r30, lbl_804228F0@ha
+/* 801C7954 001C35B4 3B DE 28 F0 */ addi r30, r30, lbl_804228F0@l
+/* 801C7958 001C35B8 48 00 00 40 */ b lbl_801C7998
+lbl_801C795C:
+/* 801C795C 001C35BC 80 7E 00 04 */ lwz r3, 4(r30)
+/* 801C7960 001C35C0 54 60 57 7F */ rlwinm. r0, r3, 0xa, 0x1d, 0x1f
+/* 801C7964 001C35C4 41 82 00 30 */ beq lbl_801C7994
+/* 801C7968 001C35C8 54 60 3F FF */ rlwinm. r0, r3, 7, 0x1f, 0x1f
+/* 801C796C 001C35CC 41 82 00 28 */ beq lbl_801C7994
+/* 801C7970 001C35D0 80 1E 00 08 */ lwz r0, 8(r30)
+/* 801C7974 001C35D4 54 00 1F 7E */ srwi r0, r0, 0x1d
+/* 801C7978 001C35D8 28 00 00 01 */ cmplwi r0, 1
+/* 801C797C 001C35DC 40 82 00 18 */ bne lbl_801C7994
+/* 801C7980 001C35E0 7F C3 F3 78 */ mr r3, r30
+/* 801C7984 001C35E4 48 00 23 09 */ bl fflush
+/* 801C7988 001C35E8 2C 03 00 00 */ cmpwi r3, 0
+/* 801C798C 001C35EC 41 82 00 08 */ beq lbl_801C7994
+/* 801C7990 001C35F0 3B E0 FF FF */ li r31, -1
+lbl_801C7994:
+/* 801C7994 001C35F4 83 DE 00 4C */ lwz r30, 0x4c(r30)
+lbl_801C7998:
+/* 801C7998 001C35F8 2C 1E 00 00 */ cmpwi r30, 0
+/* 801C799C 001C35FC 40 82 FF C0 */ bne lbl_801C795C
+/* 801C79A0 001C3600 7F E3 FB 78 */ mr r3, r31
+/* 801C79A4 001C3604 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801C79A8 001C3608 83 C1 00 08 */ lwz r30, 8(r1)
+/* 801C79AC 001C360C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801C79B0 001C3610 7C 08 03 A6 */ mtlr r0
+/* 801C79B4 001C3614 38 21 00 10 */ addi r1, r1, 0x10
+/* 801C79B8 001C3618 4E 80 00 20 */ blr
+
+.global __flush_all
+__flush_all:
+/* 801C79BC 001C361C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801C79C0 001C3620 7C 08 02 A6 */ mflr r0
+/* 801C79C4 001C3624 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801C79C8 001C3628 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801C79CC 001C362C 3B E0 00 00 */ li r31, 0
+/* 801C79D0 001C3630 93 C1 00 08 */ stw r30, 8(r1)
+/* 801C79D4 001C3634 3F C0 80 42 */ lis r30, lbl_804228F0@ha
+/* 801C79D8 001C3638 3B DE 28 F0 */ addi r30, r30, lbl_804228F0@l
+/* 801C79DC 001C363C 48 00 00 28 */ b lbl_801C7A04
+lbl_801C79E0:
+/* 801C79E0 001C3640 80 1E 00 04 */ lwz r0, 4(r30)
+/* 801C79E4 001C3644 54 00 57 7F */ rlwinm. r0, r0, 0xa, 0x1d, 0x1f
+/* 801C79E8 001C3648 41 82 00 18 */ beq lbl_801C7A00
+/* 801C79EC 001C364C 7F C3 F3 78 */ mr r3, r30
+/* 801C79F0 001C3650 48 00 22 9D */ bl fflush
+/* 801C79F4 001C3654 2C 03 00 00 */ cmpwi r3, 0
+/* 801C79F8 001C3658 41 82 00 08 */ beq lbl_801C7A00
+/* 801C79FC 001C365C 3B E0 FF FF */ li r31, -1
+lbl_801C7A00:
+/* 801C7A00 001C3660 83 DE 00 4C */ lwz r30, 0x4c(r30)
+lbl_801C7A04:
+/* 801C7A04 001C3664 2C 1E 00 00 */ cmpwi r30, 0
+/* 801C7A08 001C3668 40 82 FF D8 */ bne lbl_801C79E0
+/* 801C7A0C 001C366C 7F E3 FB 78 */ mr r3, r31
+/* 801C7A10 001C3670 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801C7A14 001C3674 83 C1 00 08 */ lwz r30, 8(r1)
+/* 801C7A18 001C3678 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801C7A1C 001C367C 7C 08 03 A6 */ mtlr r0
+/* 801C7A20 001C3680 38 21 00 10 */ addi r1, r1, 0x10
+/* 801C7A24 001C3684 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/arith.s b/asm/MSL_C/MSL_Common/arith.s
new file mode 100644
index 0000000..eac01ad
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/arith.s
@@ -0,0 +1,10 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global abs
+abs:
+/* 801C9398 001C4FF8 7C 64 FE 70 */ srawi r4, r3, 0x1f
+/* 801C939C 001C4FFC 7C 80 1A 78 */ xor r0, r4, r3
+/* 801C93A0 001C5000 7C 64 00 50 */ subf r3, r4, r0
+/* 801C93A4 001C5004 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/buffer_io.s b/asm/MSL_C/MSL_Common/buffer_io.s
new file mode 100644
index 0000000..2ee6618
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/buffer_io.s
@@ -0,0 +1,143 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __prep_buffer
+__prep_buffer:
+/* 801C93A8 001C5008 80 83 00 18 */ lwz r4, 0x18(r3)
+/* 801C93AC 001C500C 80 03 00 2C */ lwz r0, 0x2c(r3)
+/* 801C93B0 001C5010 80 C3 00 1C */ lwz r6, 0x1c(r3)
+/* 801C93B4 001C5014 80 A3 00 20 */ lwz r5, 0x20(r3)
+/* 801C93B8 001C5018 7C 80 00 38 */ and r0, r4, r0
+/* 801C93BC 001C501C 90 C3 00 24 */ stw r6, 0x24(r3)
+/* 801C93C0 001C5020 7C 00 28 50 */ subf r0, r0, r5
+/* 801C93C4 001C5024 90 03 00 28 */ stw r0, 0x28(r3)
+/* 801C93C8 001C5028 90 83 00 34 */ stw r4, 0x34(r3)
+/* 801C93CC 001C502C 4E 80 00 20 */ blr
+
+.global __load_buffer
+__load_buffer:
+/* 801C93D0 001C5030 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801C93D4 001C5034 7C 08 02 A6 */ mflr r0
+/* 801C93D8 001C5038 2C 05 00 01 */ cmpwi r5, 1
+/* 801C93DC 001C503C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801C93E0 001C5040 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801C93E4 001C5044 7C 7F 1B 78 */ mr r31, r3
+/* 801C93E8 001C5048 93 C1 00 08 */ stw r30, 8(r1)
+/* 801C93EC 001C504C 7C 9E 23 78 */ mr r30, r4
+/* 801C93F0 001C5050 80 C3 00 18 */ lwz r6, 0x18(r3)
+/* 801C93F4 001C5054 80 03 00 2C */ lwz r0, 0x2c(r3)
+/* 801C93F8 001C5058 80 A3 00 1C */ lwz r5, 0x1c(r3)
+/* 801C93FC 001C505C 80 83 00 20 */ lwz r4, 0x20(r3)
+/* 801C9400 001C5060 7C C0 00 38 */ and r0, r6, r0
+/* 801C9404 001C5064 90 A3 00 24 */ stw r5, 0x24(r3)
+/* 801C9408 001C5068 7C 00 20 50 */ subf r0, r0, r4
+/* 801C940C 001C506C 90 03 00 28 */ stw r0, 0x28(r3)
+/* 801C9410 001C5070 90 C3 00 34 */ stw r6, 0x34(r3)
+/* 801C9414 001C5074 40 82 00 08 */ bne lbl_801C941C
+/* 801C9418 001C5078 90 83 00 28 */ stw r4, 0x28(r3)
+lbl_801C941C:
+/* 801C941C 001C507C 81 9F 00 3C */ lwz r12, 0x3c(r31)
+/* 801C9420 001C5080 38 BF 00 28 */ addi r5, r31, 0x28
+/* 801C9424 001C5084 80 63 00 00 */ lwz r3, 0(r3)
+/* 801C9428 001C5088 80 9F 00 1C */ lwz r4, 0x1c(r31)
+/* 801C942C 001C508C 80 DF 00 48 */ lwz r6, 0x48(r31)
+/* 801C9430 001C5090 7D 89 03 A6 */ mtctr r12
+/* 801C9434 001C5094 4E 80 04 21 */ bctrl
+/* 801C9438 001C5098 2C 03 00 02 */ cmpwi r3, 2
+/* 801C943C 001C509C 40 82 00 0C */ bne lbl_801C9448
+/* 801C9440 001C50A0 38 00 00 00 */ li r0, 0
+/* 801C9444 001C50A4 90 1F 00 28 */ stw r0, 0x28(r31)
+lbl_801C9448:
+/* 801C9448 001C50A8 2C 1E 00 00 */ cmpwi r30, 0
+/* 801C944C 001C50AC 41 82 00 0C */ beq lbl_801C9458
+/* 801C9450 001C50B0 80 1F 00 28 */ lwz r0, 0x28(r31)
+/* 801C9454 001C50B4 90 1E 00 00 */ stw r0, 0(r30)
+lbl_801C9458:
+/* 801C9458 001C50B8 2C 03 00 00 */ cmpwi r3, 0
+/* 801C945C 001C50BC 41 82 00 08 */ beq lbl_801C9464
+/* 801C9460 001C50C0 48 00 00 54 */ b lbl_801C94B4
+lbl_801C9464:
+/* 801C9464 001C50C4 80 1F 00 04 */ lwz r0, 4(r31)
+/* 801C9468 001C50C8 80 9F 00 18 */ lwz r4, 0x18(r31)
+/* 801C946C 001C50CC 80 7F 00 28 */ lwz r3, 0x28(r31)
+/* 801C9470 001C50D0 54 00 6F FF */ rlwinm. r0, r0, 0xd, 0x1f, 0x1f
+/* 801C9474 001C50D4 7C 04 1A 14 */ add r0, r4, r3
+/* 801C9478 001C50D8 90 1F 00 18 */ stw r0, 0x18(r31)
+/* 801C947C 001C50DC 40 82 00 34 */ bne lbl_801C94B0
+/* 801C9480 001C50E0 80 9F 00 1C */ lwz r4, 0x1c(r31)
+/* 801C9484 001C50E4 7C 69 03 A6 */ mtctr r3
+/* 801C9488 001C50E8 2C 03 00 00 */ cmpwi r3, 0
+/* 801C948C 001C50EC 41 82 00 24 */ beq lbl_801C94B0
+lbl_801C9490:
+/* 801C9490 001C50F0 88 04 00 00 */ lbz r0, 0(r4)
+/* 801C9494 001C50F4 38 84 00 01 */ addi r4, r4, 1
+/* 801C9498 001C50F8 28 00 00 0A */ cmplwi r0, 0xa
+/* 801C949C 001C50FC 40 82 00 10 */ bne lbl_801C94AC
+/* 801C94A0 001C5100 80 7F 00 18 */ lwz r3, 0x18(r31)
+/* 801C94A4 001C5104 38 03 00 01 */ addi r0, r3, 1
+/* 801C94A8 001C5108 90 1F 00 18 */ stw r0, 0x18(r31)
+lbl_801C94AC:
+/* 801C94AC 001C510C 42 00 FF E4 */ bdnz lbl_801C9490
+lbl_801C94B0:
+/* 801C94B0 001C5110 38 60 00 00 */ li r3, 0
+lbl_801C94B4:
+/* 801C94B4 001C5114 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801C94B8 001C5118 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801C94BC 001C511C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 801C94C0 001C5120 7C 08 03 A6 */ mtlr r0
+/* 801C94C4 001C5124 38 21 00 10 */ addi r1, r1, 0x10
+/* 801C94C8 001C5128 4E 80 00 20 */ blr
+
+.global __flush_buffer
+__flush_buffer:
+/* 801C94CC 001C512C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801C94D0 001C5130 7C 08 02 A6 */ mflr r0
+/* 801C94D4 001C5134 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801C94D8 001C5138 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801C94DC 001C513C 7C 9F 23 78 */ mr r31, r4
+/* 801C94E0 001C5140 93 C1 00 08 */ stw r30, 8(r1)
+/* 801C94E4 001C5144 7C 7E 1B 78 */ mr r30, r3
+/* 801C94E8 001C5148 80 A3 00 1C */ lwz r5, 0x1c(r3)
+/* 801C94EC 001C514C 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 801C94F0 001C5150 7C 05 00 51 */ subf. r0, r5, r0
+/* 801C94F4 001C5154 41 82 00 50 */ beq lbl_801C9544
+/* 801C94F8 001C5158 81 9E 00 40 */ lwz r12, 0x40(r30)
+/* 801C94FC 001C515C 7C A4 2B 78 */ mr r4, r5
+/* 801C9500 001C5160 90 03 00 28 */ stw r0, 0x28(r3)
+/* 801C9504 001C5164 38 BE 00 28 */ addi r5, r30, 0x28
+/* 801C9508 001C5168 80 63 00 00 */ lwz r3, 0(r3)
+/* 801C950C 001C516C 80 DE 00 48 */ lwz r6, 0x48(r30)
+/* 801C9510 001C5170 7D 89 03 A6 */ mtctr r12
+/* 801C9514 001C5174 4E 80 04 21 */ bctrl
+/* 801C9518 001C5178 2C 1F 00 00 */ cmpwi r31, 0
+/* 801C951C 001C517C 41 82 00 0C */ beq lbl_801C9528
+/* 801C9520 001C5180 80 1E 00 28 */ lwz r0, 0x28(r30)
+/* 801C9524 001C5184 90 1F 00 00 */ stw r0, 0(r31)
+lbl_801C9528:
+/* 801C9528 001C5188 2C 03 00 00 */ cmpwi r3, 0
+/* 801C952C 001C518C 41 82 00 08 */ beq lbl_801C9534
+/* 801C9530 001C5190 48 00 00 3C */ b lbl_801C956C
+lbl_801C9534:
+/* 801C9534 001C5194 80 7E 00 18 */ lwz r3, 0x18(r30)
+/* 801C9538 001C5198 80 1E 00 28 */ lwz r0, 0x28(r30)
+/* 801C953C 001C519C 7C 03 02 14 */ add r0, r3, r0
+/* 801C9540 001C51A0 90 1E 00 18 */ stw r0, 0x18(r30)
+lbl_801C9544:
+/* 801C9544 001C51A4 80 9E 00 18 */ lwz r4, 0x18(r30)
+/* 801C9548 001C51A8 38 60 00 00 */ li r3, 0
+/* 801C954C 001C51AC 80 1E 00 2C */ lwz r0, 0x2c(r30)
+/* 801C9550 001C51B0 80 DE 00 1C */ lwz r6, 0x1c(r30)
+/* 801C9554 001C51B4 80 BE 00 20 */ lwz r5, 0x20(r30)
+/* 801C9558 001C51B8 7C 80 00 38 */ and r0, r4, r0
+/* 801C955C 001C51BC 90 DE 00 24 */ stw r6, 0x24(r30)
+/* 801C9560 001C51C0 7C 00 28 50 */ subf r0, r0, r5
+/* 801C9564 001C51C4 90 1E 00 28 */ stw r0, 0x28(r30)
+/* 801C9568 001C51C8 90 9E 00 34 */ stw r4, 0x34(r30)
+lbl_801C956C:
+/* 801C956C 001C51CC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801C9570 001C51D0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801C9574 001C51D4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 801C9578 001C51D8 7C 08 03 A6 */ mtlr r0
+/* 801C957C 001C51DC 38 21 00 10 */ addi r1, r1, 0x10
+/* 801C9580 001C51E0 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/direct_io.s b/asm/MSL_C/MSL_Common/direct_io.s
new file mode 100644
index 0000000..ed81bcc
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/direct_io.s
@@ -0,0 +1,459 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global fread
+fread:
+/* 801C9584 001C51E4 48 00 00 04 */ b __fread
+
+__fread:
+/* 801C9588 001C51E8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 801C958C 001C51EC 7C 08 02 A6 */ mflr r0
+/* 801C9590 001C51F0 90 01 00 34 */ stw r0, 0x34(r1)
+/* 801C9594 001C51F4 BF 21 00 14 */ stmw r25, 0x14(r1)
+/* 801C9598 001C51F8 7C 9B 23 78 */ mr r27, r4
+/* 801C959C 001C51FC 7C DC 33 78 */ mr r28, r6
+/* 801C95A0 001C5200 7C 7A 1B 78 */ mr r26, r3
+/* 801C95A4 001C5204 7C B9 2B 78 */ mr r25, r5
+/* 801C95A8 001C5208 38 80 00 00 */ li r4, 0
+/* 801C95AC 001C520C 7F 83 E3 78 */ mr r3, r28
+/* 801C95B0 001C5210 48 00 72 B5 */ bl fwide
+/* 801C95B4 001C5214 2C 03 00 00 */ cmpwi r3, 0
+/* 801C95B8 001C5218 40 82 00 10 */ bne lbl_801C95C8
+/* 801C95BC 001C521C 7F 83 E3 78 */ mr r3, r28
+/* 801C95C0 001C5220 38 80 FF FF */ li r4, -1
+/* 801C95C4 001C5224 48 00 72 A1 */ bl fwide
+lbl_801C95C8:
+/* 801C95C8 001C5228 7F DB C9 D7 */ mullw. r30, r27, r25
+/* 801C95CC 001C522C 41 82 00 1C */ beq lbl_801C95E8
+/* 801C95D0 001C5230 88 1C 00 0A */ lbz r0, 0xa(r28)
+/* 801C95D4 001C5234 2C 00 00 00 */ cmpwi r0, 0
+/* 801C95D8 001C5238 40 82 00 10 */ bne lbl_801C95E8
+/* 801C95DC 001C523C 80 7C 00 04 */ lwz r3, 4(r28)
+/* 801C95E0 001C5240 54 60 57 7F */ rlwinm. r0, r3, 0xa, 0x1d, 0x1f
+/* 801C95E4 001C5244 40 82 00 0C */ bne lbl_801C95F0
+lbl_801C95E8:
+/* 801C95E8 001C5248 38 60 00 00 */ li r3, 0
+/* 801C95EC 001C524C 48 00 02 C8 */ b lbl_801C98B4
+lbl_801C95F0:
+/* 801C95F0 001C5250 54 60 6F FF */ rlwinm. r0, r3, 0xd, 0x1f, 0x1f
+/* 801C95F4 001C5254 3B E0 00 01 */ li r31, 1
+/* 801C95F8 001C5258 41 82 00 14 */ beq lbl_801C960C
+/* 801C95FC 001C525C 54 60 3F BE */ rlwinm r0, r3, 7, 0x1e, 0x1f
+/* 801C9600 001C5260 28 00 00 02 */ cmplwi r0, 2
+/* 801C9604 001C5264 41 82 00 08 */ beq lbl_801C960C
+/* 801C9608 001C5268 3B E0 00 00 */ li r31, 0
+lbl_801C960C:
+/* 801C960C 001C526C 80 7C 00 08 */ lwz r3, 8(r28)
+/* 801C9610 001C5270 54 60 1F 7F */ rlwinm. r0, r3, 3, 0x1d, 0x1f
+/* 801C9614 001C5274 40 82 00 24 */ bne lbl_801C9638
+/* 801C9618 001C5278 80 1C 00 04 */ lwz r0, 4(r28)
+/* 801C961C 001C527C 54 00 2F FF */ rlwinm. r0, r0, 5, 0x1f, 0x1f
+/* 801C9620 001C5280 41 82 00 18 */ beq lbl_801C9638
+/* 801C9624 001C5284 38 00 00 02 */ li r0, 2
+/* 801C9628 001C5288 50 03 E8 04 */ rlwimi r3, r0, 0x1d, 0, 2
+/* 801C962C 001C528C 38 00 00 00 */ li r0, 0
+/* 801C9630 001C5290 90 7C 00 08 */ stw r3, 8(r28)
+/* 801C9634 001C5294 90 1C 00 28 */ stw r0, 0x28(r28)
+lbl_801C9638:
+/* 801C9638 001C5298 80 1C 00 08 */ lwz r0, 8(r28)
+/* 801C963C 001C529C 54 00 1F 7E */ srwi r0, r0, 0x1d
+/* 801C9640 001C52A0 28 00 00 02 */ cmplwi r0, 2
+/* 801C9644 001C52A4 40 80 00 1C */ bge lbl_801C9660
+/* 801C9648 001C52A8 38 60 00 01 */ li r3, 1
+/* 801C964C 001C52AC 38 00 00 00 */ li r0, 0
+/* 801C9650 001C52B0 98 7C 00 0A */ stb r3, 0xa(r28)
+/* 801C9654 001C52B4 38 60 00 00 */ li r3, 0
+/* 801C9658 001C52B8 90 1C 00 28 */ stw r0, 0x28(r28)
+/* 801C965C 001C52BC 48 00 02 58 */ b lbl_801C98B4
+lbl_801C9660:
+/* 801C9660 001C52C0 80 1C 00 04 */ lwz r0, 4(r28)
+/* 801C9664 001C52C4 54 00 3F FF */ rlwinm. r0, r0, 7, 0x1f, 0x1f
+/* 801C9668 001C52C8 41 82 00 28 */ beq lbl_801C9690
+/* 801C966C 001C52CC 4B FF E2 CD */ bl __flush_line_buffered_output_files
+/* 801C9670 001C52D0 2C 03 00 00 */ cmpwi r3, 0
+/* 801C9674 001C52D4 41 82 00 1C */ beq lbl_801C9690
+/* 801C9678 001C52D8 38 60 00 01 */ li r3, 1
+/* 801C967C 001C52DC 38 00 00 00 */ li r0, 0
+/* 801C9680 001C52E0 98 7C 00 0A */ stb r3, 0xa(r28)
+/* 801C9684 001C52E4 38 60 00 00 */ li r3, 0
+/* 801C9688 001C52E8 90 1C 00 28 */ stw r0, 0x28(r28)
+/* 801C968C 001C52EC 48 00 02 28 */ b lbl_801C98B4
+lbl_801C9690:
+/* 801C9690 001C52F0 2C 1E 00 00 */ cmpwi r30, 0
+/* 801C9694 001C52F4 3B A0 00 00 */ li r29, 0
+/* 801C9698 001C52F8 41 82 00 AC */ beq lbl_801C9744
+/* 801C969C 001C52FC 80 1C 00 08 */ lwz r0, 8(r28)
+/* 801C96A0 001C5300 54 00 1F 7E */ srwi r0, r0, 0x1d
+/* 801C96A4 001C5304 28 00 00 03 */ cmplwi r0, 3
+/* 801C96A8 001C5308 41 80 00 9C */ blt lbl_801C9744
+lbl_801C96AC:
+/* 801C96AC 001C530C 7F 83 E3 78 */ mr r3, r28
+/* 801C96B0 001C5310 38 80 00 00 */ li r4, 0
+/* 801C96B4 001C5314 48 00 71 B1 */ bl fwide
+/* 801C96B8 001C5318 2C 03 00 01 */ cmpwi r3, 1
+/* 801C96BC 001C531C 40 82 00 28 */ bne lbl_801C96E4
+/* 801C96C0 001C5320 80 1C 00 08 */ lwz r0, 8(r28)
+/* 801C96C4 001C5324 3B BD 00 02 */ addi r29, r29, 2
+/* 801C96C8 001C5328 3B DE FF FE */ addi r30, r30, -2
+/* 801C96CC 001C532C 54 00 27 3C */ rlwinm r0, r0, 4, 0x1c, 0x1e
+/* 801C96D0 001C5330 7C 7C 02 14 */ add r3, r28, r0
+/* 801C96D4 001C5334 A0 03 00 0C */ lhz r0, 0xc(r3)
+/* 801C96D8 001C5338 B0 1A 00 00 */ sth r0, 0(r26)
+/* 801C96DC 001C533C 3B 5A 00 02 */ addi r26, r26, 2
+/* 801C96E0 001C5340 48 00 00 24 */ b lbl_801C9704
+lbl_801C96E4:
+/* 801C96E4 001C5344 80 1C 00 08 */ lwz r0, 8(r28)
+/* 801C96E8 001C5348 3B BD 00 01 */ addi r29, r29, 1
+/* 801C96EC 001C534C 3B DE FF FF */ addi r30, r30, -1
+/* 801C96F0 001C5350 54 00 1F 7E */ srwi r0, r0, 0x1d
+/* 801C96F4 001C5354 7C 7C 02 14 */ add r3, r28, r0
+/* 801C96F8 001C5358 88 03 00 0C */ lbz r0, 0xc(r3)
+/* 801C96FC 001C535C 98 1A 00 00 */ stb r0, 0(r26)
+/* 801C9700 001C5360 3B 5A 00 01 */ addi r26, r26, 1
+lbl_801C9704:
+/* 801C9704 001C5364 80 9C 00 08 */ lwz r4, 8(r28)
+/* 801C9708 001C5368 2C 1E 00 00 */ cmpwi r30, 0
+/* 801C970C 001C536C 54 83 1F 7E */ srwi r3, r4, 0x1d
+/* 801C9710 001C5370 38 03 FF FF */ addi r0, r3, -1
+/* 801C9714 001C5374 50 04 E8 04 */ rlwimi r4, r0, 0x1d, 0, 2
+/* 801C9718 001C5378 90 9C 00 08 */ stw r4, 8(r28)
+/* 801C971C 001C537C 41 82 00 10 */ beq lbl_801C972C
+/* 801C9720 001C5380 54 80 1F 7E */ srwi r0, r4, 0x1d
+/* 801C9724 001C5384 28 00 00 03 */ cmplwi r0, 3
+/* 801C9728 001C5388 40 80 FF 84 */ bge lbl_801C96AC
+lbl_801C972C:
+/* 801C972C 001C538C 80 1C 00 08 */ lwz r0, 8(r28)
+/* 801C9730 001C5390 54 00 1F 7E */ srwi r0, r0, 0x1d
+/* 801C9734 001C5394 28 00 00 02 */ cmplwi r0, 2
+/* 801C9738 001C5398 40 82 00 0C */ bne lbl_801C9744
+/* 801C973C 001C539C 80 1C 00 30 */ lwz r0, 0x30(r28)
+/* 801C9740 001C53A0 90 1C 00 28 */ stw r0, 0x28(r28)
+lbl_801C9744:
+/* 801C9744 001C53A4 2C 1E 00 00 */ cmpwi r30, 0
+/* 801C9748 001C53A8 41 82 00 D8 */ beq lbl_801C9820
+/* 801C974C 001C53AC 80 1C 00 28 */ lwz r0, 0x28(r28)
+/* 801C9750 001C53B0 2C 00 00 00 */ cmpwi r0, 0
+/* 801C9754 001C53B4 40 82 00 0C */ bne lbl_801C9760
+/* 801C9758 001C53B8 2C 1F 00 00 */ cmpwi r31, 0
+/* 801C975C 001C53BC 41 82 00 C4 */ beq lbl_801C9820
+lbl_801C9760:
+/* 801C9760 001C53C0 80 1C 00 28 */ lwz r0, 0x28(r28)
+/* 801C9764 001C53C4 2C 00 00 00 */ cmpwi r0, 0
+/* 801C9768 001C53C8 40 82 00 5C */ bne lbl_801C97C4
+/* 801C976C 001C53CC 7F 83 E3 78 */ mr r3, r28
+/* 801C9770 001C53D0 38 80 00 00 */ li r4, 0
+/* 801C9774 001C53D4 38 A0 00 00 */ li r5, 0
+/* 801C9778 001C53D8 4B FF FC 59 */ bl __load_buffer
+/* 801C977C 001C53DC 2C 03 00 00 */ cmpwi r3, 0
+/* 801C9780 001C53E0 41 82 00 44 */ beq lbl_801C97C4
+/* 801C9784 001C53E4 2C 03 00 01 */ cmpwi r3, 1
+/* 801C9788 001C53E8 40 82 00 18 */ bne lbl_801C97A0
+/* 801C978C 001C53EC 38 60 00 01 */ li r3, 1
+/* 801C9790 001C53F0 38 00 00 00 */ li r0, 0
+/* 801C9794 001C53F4 98 7C 00 0A */ stb r3, 0xa(r28)
+/* 801C9798 001C53F8 90 1C 00 28 */ stw r0, 0x28(r28)
+/* 801C979C 001C53FC 48 00 00 20 */ b lbl_801C97BC
+lbl_801C97A0:
+/* 801C97A0 001C5400 80 7C 00 08 */ lwz r3, 8(r28)
+/* 801C97A4 001C5404 38 80 00 00 */ li r4, 0
+/* 801C97A8 001C5408 38 00 00 01 */ li r0, 1
+/* 801C97AC 001C540C 90 9C 00 28 */ stw r4, 0x28(r28)
+/* 801C97B0 001C5410 54 63 00 FE */ clrlwi r3, r3, 3
+/* 801C97B4 001C5414 90 7C 00 08 */ stw r3, 8(r28)
+/* 801C97B8 001C5418 98 1C 00 09 */ stb r0, 9(r28)
+lbl_801C97BC:
+/* 801C97BC 001C541C 3B C0 00 00 */ li r30, 0
+/* 801C97C0 001C5420 48 00 00 60 */ b lbl_801C9820
+lbl_801C97C4:
+/* 801C97C4 001C5424 80 BC 00 28 */ lwz r5, 0x28(r28)
+/* 801C97C8 001C5428 7C 05 F0 40 */ cmplw r5, r30
+/* 801C97CC 001C542C 90 A1 00 08 */ stw r5, 8(r1)
+/* 801C97D0 001C5430 40 81 00 0C */ ble lbl_801C97DC
+/* 801C97D4 001C5434 7F C5 F3 78 */ mr r5, r30
+/* 801C97D8 001C5438 93 C1 00 08 */ stw r30, 8(r1)
+lbl_801C97DC:
+/* 801C97DC 001C543C 80 9C 00 24 */ lwz r4, 0x24(r28)
+/* 801C97E0 001C5440 7F 43 D3 78 */ mr r3, r26
+/* 801C97E4 001C5444 4B E3 A8 1D */ bl memcpy
+/* 801C97E8 001C5448 80 81 00 08 */ lwz r4, 8(r1)
+/* 801C97EC 001C544C 80 7C 00 24 */ lwz r3, 0x24(r28)
+/* 801C97F0 001C5450 80 1C 00 28 */ lwz r0, 0x28(r28)
+/* 801C97F4 001C5454 7F C4 F0 51 */ subf. r30, r4, r30
+/* 801C97F8 001C5458 7C 63 22 14 */ add r3, r3, r4
+/* 801C97FC 001C545C 7F 5A 22 14 */ add r26, r26, r4
+/* 801C9800 001C5460 90 7C 00 24 */ stw r3, 0x24(r28)
+/* 801C9804 001C5464 7F BD 22 14 */ add r29, r29, r4
+/* 801C9808 001C5468 80 61 00 08 */ lwz r3, 8(r1)
+/* 801C980C 001C546C 7C 03 00 50 */ subf r0, r3, r0
+/* 801C9810 001C5470 90 1C 00 28 */ stw r0, 0x28(r28)
+/* 801C9814 001C5474 41 82 00 0C */ beq lbl_801C9820
+/* 801C9818 001C5478 2C 1F 00 00 */ cmpwi r31, 0
+/* 801C981C 001C547C 40 82 FF 44 */ bne lbl_801C9760
+lbl_801C9820:
+/* 801C9820 001C5480 2C 1E 00 00 */ cmpwi r30, 0
+/* 801C9824 001C5484 41 82 00 8C */ beq lbl_801C98B0
+/* 801C9828 001C5488 2C 1F 00 00 */ cmpwi r31, 0
+/* 801C982C 001C548C 40 82 00 84 */ bne lbl_801C98B0
+/* 801C9830 001C5490 83 FC 00 1C */ lwz r31, 0x1c(r28)
+/* 801C9834 001C5494 7F 83 E3 78 */ mr r3, r28
+/* 801C9838 001C5498 83 3C 00 20 */ lwz r25, 0x20(r28)
+/* 801C983C 001C549C 38 81 00 08 */ addi r4, r1, 8
+/* 801C9840 001C54A0 93 5C 00 1C */ stw r26, 0x1c(r28)
+/* 801C9844 001C54A4 38 A0 00 01 */ li r5, 1
+/* 801C9848 001C54A8 93 DC 00 20 */ stw r30, 0x20(r28)
+/* 801C984C 001C54AC 4B FF FB 85 */ bl __load_buffer
+/* 801C9850 001C54B0 2C 03 00 00 */ cmpwi r3, 0
+/* 801C9854 001C54B4 41 82 00 3C */ beq lbl_801C9890
+/* 801C9858 001C54B8 2C 03 00 01 */ cmpwi r3, 1
+/* 801C985C 001C54BC 40 82 00 18 */ bne lbl_801C9874
+/* 801C9860 001C54C0 38 60 00 01 */ li r3, 1
+/* 801C9864 001C54C4 38 00 00 00 */ li r0, 0
+/* 801C9868 001C54C8 98 7C 00 0A */ stb r3, 0xa(r28)
+/* 801C986C 001C54CC 90 1C 00 28 */ stw r0, 0x28(r28)
+/* 801C9870 001C54D0 48 00 00 20 */ b lbl_801C9890
+lbl_801C9874:
+/* 801C9874 001C54D4 80 7C 00 08 */ lwz r3, 8(r28)
+/* 801C9878 001C54D8 38 80 00 00 */ li r4, 0
+/* 801C987C 001C54DC 38 00 00 01 */ li r0, 1
+/* 801C9880 001C54E0 90 9C 00 28 */ stw r4, 0x28(r28)
+/* 801C9884 001C54E4 54 63 00 FE */ clrlwi r3, r3, 3
+/* 801C9888 001C54E8 90 7C 00 08 */ stw r3, 8(r28)
+/* 801C988C 001C54EC 98 1C 00 09 */ stb r0, 9(r28)
+lbl_801C9890:
+/* 801C9890 001C54F0 80 01 00 08 */ lwz r0, 8(r1)
+/* 801C9894 001C54F4 7F 83 E3 78 */ mr r3, r28
+/* 801C9898 001C54F8 93 FC 00 1C */ stw r31, 0x1c(r28)
+/* 801C989C 001C54FC 7F BD 02 14 */ add r29, r29, r0
+/* 801C98A0 001C5500 93 3C 00 20 */ stw r25, 0x20(r28)
+/* 801C98A4 001C5504 4B FF FB 05 */ bl __prep_buffer
+/* 801C98A8 001C5508 38 00 00 00 */ li r0, 0
+/* 801C98AC 001C550C 90 1C 00 28 */ stw r0, 0x28(r28)
+lbl_801C98B0:
+/* 801C98B0 001C5510 7C 7D DB 96 */ divwu r3, r29, r27
+lbl_801C98B4:
+/* 801C98B4 001C5514 BB 21 00 14 */ lmw r25, 0x14(r1)
+/* 801C98B8 001C5518 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 801C98BC 001C551C 7C 08 03 A6 */ mtlr r0
+/* 801C98C0 001C5520 38 21 00 30 */ addi r1, r1, 0x30
+/* 801C98C4 001C5524 4E 80 00 20 */ blr
+
+.global __fwrite
+__fwrite:
+/* 801C98C8 001C5528 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 801C98CC 001C552C 7C 08 02 A6 */ mflr r0
+/* 801C98D0 001C5530 90 01 00 34 */ stw r0, 0x34(r1)
+/* 801C98D4 001C5534 BF 21 00 14 */ stmw r25, 0x14(r1)
+/* 801C98D8 001C5538 7C 9B 23 78 */ mr r27, r4
+/* 801C98DC 001C553C 7C DC 33 78 */ mr r28, r6
+/* 801C98E0 001C5540 7C 7A 1B 78 */ mr r26, r3
+/* 801C98E4 001C5544 7C B9 2B 78 */ mr r25, r5
+/* 801C98E8 001C5548 38 80 00 00 */ li r4, 0
+/* 801C98EC 001C554C 7F 83 E3 78 */ mr r3, r28
+/* 801C98F0 001C5550 48 00 6F 75 */ bl fwide
+/* 801C98F4 001C5554 2C 03 00 00 */ cmpwi r3, 0
+/* 801C98F8 001C5558 40 82 00 10 */ bne lbl_801C9908
+/* 801C98FC 001C555C 7F 83 E3 78 */ mr r3, r28
+/* 801C9900 001C5560 38 80 FF FF */ li r4, -1
+/* 801C9904 001C5564 48 00 6F 61 */ bl fwide
+lbl_801C9908:
+/* 801C9908 001C5568 7F DB C9 D7 */ mullw. r30, r27, r25
+/* 801C990C 001C556C 41 82 00 1C */ beq lbl_801C9928
+/* 801C9910 001C5570 88 1C 00 0A */ lbz r0, 0xa(r28)
+/* 801C9914 001C5574 2C 00 00 00 */ cmpwi r0, 0
+/* 801C9918 001C5578 40 82 00 10 */ bne lbl_801C9928
+/* 801C991C 001C557C 80 1C 00 04 */ lwz r0, 4(r28)
+/* 801C9920 001C5580 54 00 57 7F */ rlwinm. r0, r0, 0xa, 0x1d, 0x1f
+/* 801C9924 001C5584 40 82 00 0C */ bne lbl_801C9930
+lbl_801C9928:
+/* 801C9928 001C5588 38 60 00 00 */ li r3, 0
+/* 801C992C 001C558C 48 00 02 90 */ b lbl_801C9BBC
+lbl_801C9930:
+/* 801C9930 001C5590 28 00 00 02 */ cmplwi r0, 2
+/* 801C9934 001C5594 40 82 00 08 */ bne lbl_801C993C
+/* 801C9938 001C5598 48 00 0E 79 */ bl __stdio_atexit
+lbl_801C993C:
+/* 801C993C 001C559C 80 7C 00 04 */ lwz r3, 4(r28)
+/* 801C9940 001C55A0 3B E0 00 01 */ li r31, 1
+/* 801C9944 001C55A4 38 80 00 00 */ li r4, 0
+/* 801C9948 001C55A8 54 60 6F FF */ rlwinm. r0, r3, 0xd, 0x1f, 0x1f
+/* 801C994C 001C55AC 41 82 00 10 */ beq lbl_801C995C
+/* 801C9950 001C55B0 54 60 3F BE */ rlwinm r0, r3, 7, 0x1e, 0x1f
+/* 801C9954 001C55B4 28 00 00 02 */ cmplwi r0, 2
+/* 801C9958 001C55B8 40 82 00 08 */ bne lbl_801C9960
+lbl_801C995C:
+/* 801C995C 001C55BC 38 80 00 01 */ li r4, 1
+lbl_801C9960:
+/* 801C9960 001C55C0 2C 04 00 00 */ cmpwi r4, 0
+/* 801C9964 001C55C4 40 82 00 18 */ bne lbl_801C997C
+/* 801C9968 001C55C8 80 1C 00 04 */ lwz r0, 4(r28)
+/* 801C996C 001C55CC 54 00 3F BE */ rlwinm r0, r0, 7, 0x1e, 0x1f
+/* 801C9970 001C55D0 28 00 00 01 */ cmplwi r0, 1
+/* 801C9974 001C55D4 41 82 00 08 */ beq lbl_801C997C
+/* 801C9978 001C55D8 3B E0 00 00 */ li r31, 0
+lbl_801C997C:
+/* 801C997C 001C55DC 80 1C 00 08 */ lwz r0, 8(r28)
+/* 801C9980 001C55E0 54 00 1F 7F */ rlwinm. r0, r0, 3, 0x1d, 0x1f
+/* 801C9984 001C55E4 40 82 00 54 */ bne lbl_801C99D8
+/* 801C9988 001C55E8 80 7C 00 04 */ lwz r3, 4(r28)
+/* 801C998C 001C55EC 54 60 2F BD */ rlwinm. r0, r3, 5, 0x1e, 0x1e
+/* 801C9990 001C55F0 54 60 2F 7E */ rlwinm r0, r3, 5, 0x1d, 0x1f
+/* 801C9994 001C55F4 41 82 00 44 */ beq lbl_801C99D8
+/* 801C9998 001C55F8 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
+/* 801C999C 001C55FC 41 82 00 24 */ beq lbl_801C99C0
+/* 801C99A0 001C5600 7F 83 E3 78 */ mr r3, r28
+/* 801C99A4 001C5604 38 80 00 00 */ li r4, 0
+/* 801C99A8 001C5608 38 A0 00 02 */ li r5, 2
+/* 801C99AC 001C560C 48 00 05 81 */ bl _fseek
+/* 801C99B0 001C5610 2C 03 00 00 */ cmpwi r3, 0
+/* 801C99B4 001C5614 41 82 00 0C */ beq lbl_801C99C0
+/* 801C99B8 001C5618 38 60 00 00 */ li r3, 0
+/* 801C99BC 001C561C 48 00 02 00 */ b lbl_801C9BBC
+lbl_801C99C0:
+/* 801C99C0 001C5620 80 1C 00 08 */ lwz r0, 8(r28)
+/* 801C99C4 001C5624 38 60 00 01 */ li r3, 1
+/* 801C99C8 001C5628 50 60 E8 04 */ rlwimi r0, r3, 0x1d, 0, 2
+/* 801C99CC 001C562C 90 1C 00 08 */ stw r0, 8(r28)
+/* 801C99D0 001C5630 7F 83 E3 78 */ mr r3, r28
+/* 801C99D4 001C5634 4B FF F9 D5 */ bl __prep_buffer
+lbl_801C99D8:
+/* 801C99D8 001C5638 80 1C 00 08 */ lwz r0, 8(r28)
+/* 801C99DC 001C563C 54 00 1F 7E */ srwi r0, r0, 0x1d
+/* 801C99E0 001C5640 28 00 00 01 */ cmplwi r0, 1
+/* 801C99E4 001C5644 41 82 00 1C */ beq lbl_801C9A00
+/* 801C99E8 001C5648 38 60 00 01 */ li r3, 1
+/* 801C99EC 001C564C 38 00 00 00 */ li r0, 0
+/* 801C99F0 001C5650 98 7C 00 0A */ stb r3, 0xa(r28)
+/* 801C99F4 001C5654 38 60 00 00 */ li r3, 0
+/* 801C99F8 001C5658 90 1C 00 28 */ stw r0, 0x28(r28)
+/* 801C99FC 001C565C 48 00 01 C0 */ b lbl_801C9BBC
+lbl_801C9A00:
+/* 801C9A00 001C5660 2C 1E 00 00 */ cmpwi r30, 0
+/* 801C9A04 001C5664 3B A0 00 00 */ li r29, 0
+/* 801C9A08 001C5668 41 82 01 28 */ beq lbl_801C9B30
+/* 801C9A0C 001C566C 80 7C 00 1C */ lwz r3, 0x1c(r28)
+/* 801C9A10 001C5670 80 9C 00 24 */ lwz r4, 0x24(r28)
+/* 801C9A14 001C5674 7C 04 18 40 */ cmplw r4, r3
+/* 801C9A18 001C5678 40 82 00 0C */ bne lbl_801C9A24
+/* 801C9A1C 001C567C 2C 1F 00 00 */ cmpwi r31, 0
+/* 801C9A20 001C5680 41 82 01 10 */ beq lbl_801C9B30
+lbl_801C9A24:
+/* 801C9A24 001C5684 80 1C 00 20 */ lwz r0, 0x20(r28)
+/* 801C9A28 001C5688 7C 63 20 50 */ subf r3, r3, r4
+/* 801C9A2C 001C568C 7C 03 00 50 */ subf r0, r3, r0
+/* 801C9A30 001C5690 90 1C 00 28 */ stw r0, 0x28(r28)
+lbl_801C9A34:
+/* 801C9A34 001C5694 80 BC 00 28 */ lwz r5, 0x28(r28)
+/* 801C9A38 001C5698 3B 20 00 00 */ li r25, 0
+/* 801C9A3C 001C569C 7C 05 F0 40 */ cmplw r5, r30
+/* 801C9A40 001C56A0 90 A1 00 08 */ stw r5, 8(r1)
+/* 801C9A44 001C56A4 40 81 00 0C */ ble lbl_801C9A50
+/* 801C9A48 001C56A8 7F C5 F3 78 */ mr r5, r30
+/* 801C9A4C 001C56AC 93 C1 00 08 */ stw r30, 8(r1)
+lbl_801C9A50:
+/* 801C9A50 001C56B0 80 1C 00 04 */ lwz r0, 4(r28)
+/* 801C9A54 001C56B4 54 00 3F BE */ rlwinm r0, r0, 7, 0x1e, 0x1f
+/* 801C9A58 001C56B8 28 00 00 01 */ cmplwi r0, 1
+/* 801C9A5C 001C56BC 40 82 00 30 */ bne lbl_801C9A8C
+/* 801C9A60 001C56C0 2C 05 00 00 */ cmpwi r5, 0
+/* 801C9A64 001C56C4 41 82 00 28 */ beq lbl_801C9A8C
+/* 801C9A68 001C56C8 7F 43 D3 78 */ mr r3, r26
+/* 801C9A6C 001C56CC 38 80 00 0A */ li r4, 0xa
+/* 801C9A70 001C56D0 48 00 08 FD */ bl __memrchr
+/* 801C9A74 001C56D4 2C 03 00 00 */ cmpwi r3, 0
+/* 801C9A78 001C56D8 7C 79 1B 78 */ mr r25, r3
+/* 801C9A7C 001C56DC 41 82 00 10 */ beq lbl_801C9A8C
+/* 801C9A80 001C56E0 38 03 00 01 */ addi r0, r3, 1
+/* 801C9A84 001C56E4 7C BA 00 50 */ subf r5, r26, r0
+/* 801C9A88 001C56E8 90 A1 00 08 */ stw r5, 8(r1)
+lbl_801C9A8C:
+/* 801C9A8C 001C56EC 80 A1 00 08 */ lwz r5, 8(r1)
+/* 801C9A90 001C56F0 2C 05 00 00 */ cmpwi r5, 0
+/* 801C9A94 001C56F4 41 82 00 38 */ beq lbl_801C9ACC
+/* 801C9A98 001C56F8 80 7C 00 24 */ lwz r3, 0x24(r28)
+/* 801C9A9C 001C56FC 7F 44 D3 78 */ mr r4, r26
+/* 801C9AA0 001C5700 4B E3 A5 61 */ bl memcpy
+/* 801C9AA4 001C5704 80 81 00 08 */ lwz r4, 8(r1)
+/* 801C9AA8 001C5708 80 7C 00 24 */ lwz r3, 0x24(r28)
+/* 801C9AAC 001C570C 80 1C 00 28 */ lwz r0, 0x28(r28)
+/* 801C9AB0 001C5710 7F 5A 22 14 */ add r26, r26, r4
+/* 801C9AB4 001C5714 7C 63 22 14 */ add r3, r3, r4
+/* 801C9AB8 001C5718 7F C4 F0 50 */ subf r30, r4, r30
+/* 801C9ABC 001C571C 90 7C 00 24 */ stw r3, 0x24(r28)
+/* 801C9AC0 001C5720 80 61 00 08 */ lwz r3, 8(r1)
+/* 801C9AC4 001C5724 7C 03 00 50 */ subf r0, r3, r0
+/* 801C9AC8 001C5728 90 1C 00 28 */ stw r0, 0x28(r28)
+lbl_801C9ACC:
+/* 801C9ACC 001C572C 80 1C 00 28 */ lwz r0, 0x28(r28)
+/* 801C9AD0 001C5730 2C 00 00 00 */ cmpwi r0, 0
+/* 801C9AD4 001C5734 41 82 00 18 */ beq lbl_801C9AEC
+/* 801C9AD8 001C5738 2C 19 00 00 */ cmpwi r25, 0
+/* 801C9ADC 001C573C 40 82 00 10 */ bne lbl_801C9AEC
+/* 801C9AE0 001C5740 80 1C 00 04 */ lwz r0, 4(r28)
+/* 801C9AE4 001C5744 54 00 3F BF */ rlwinm. r0, r0, 7, 0x1e, 0x1f
+/* 801C9AE8 001C5748 40 82 00 30 */ bne lbl_801C9B18
+lbl_801C9AEC:
+/* 801C9AEC 001C574C 7F 83 E3 78 */ mr r3, r28
+/* 801C9AF0 001C5750 38 80 00 00 */ li r4, 0
+/* 801C9AF4 001C5754 4B FF F9 D9 */ bl __flush_buffer
+/* 801C9AF8 001C5758 2C 03 00 00 */ cmpwi r3, 0
+/* 801C9AFC 001C575C 41 82 00 1C */ beq lbl_801C9B18
+/* 801C9B00 001C5760 38 60 00 01 */ li r3, 1
+/* 801C9B04 001C5764 38 00 00 00 */ li r0, 0
+/* 801C9B08 001C5768 98 7C 00 0A */ stb r3, 0xa(r28)
+/* 801C9B0C 001C576C 3B C0 00 00 */ li r30, 0
+/* 801C9B10 001C5770 90 1C 00 28 */ stw r0, 0x28(r28)
+/* 801C9B14 001C5774 48 00 00 1C */ b lbl_801C9B30
+lbl_801C9B18:
+/* 801C9B18 001C5778 80 01 00 08 */ lwz r0, 8(r1)
+/* 801C9B1C 001C577C 2C 1E 00 00 */ cmpwi r30, 0
+/* 801C9B20 001C5780 7F BD 02 14 */ add r29, r29, r0
+/* 801C9B24 001C5784 41 82 00 0C */ beq lbl_801C9B30
+/* 801C9B28 001C5788 2C 1F 00 00 */ cmpwi r31, 0
+/* 801C9B2C 001C578C 40 82 FF 08 */ bne lbl_801C9A34
+lbl_801C9B30:
+/* 801C9B30 001C5790 2C 1E 00 00 */ cmpwi r30, 0
+/* 801C9B34 001C5794 41 82 00 6C */ beq lbl_801C9BA0
+/* 801C9B38 001C5798 2C 1F 00 00 */ cmpwi r31, 0
+/* 801C9B3C 001C579C 40 82 00 64 */ bne lbl_801C9BA0
+/* 801C9B40 001C57A0 83 3C 00 1C */ lwz r25, 0x1c(r28)
+/* 801C9B44 001C57A4 7C 1A F2 14 */ add r0, r26, r30
+/* 801C9B48 001C57A8 83 FC 00 20 */ lwz r31, 0x20(r28)
+/* 801C9B4C 001C57AC 7F 83 E3 78 */ mr r3, r28
+/* 801C9B50 001C57B0 93 5C 00 1C */ stw r26, 0x1c(r28)
+/* 801C9B54 001C57B4 38 81 00 08 */ addi r4, r1, 8
+/* 801C9B58 001C57B8 93 DC 00 20 */ stw r30, 0x20(r28)
+/* 801C9B5C 001C57BC 90 1C 00 24 */ stw r0, 0x24(r28)
+/* 801C9B60 001C57C0 4B FF F9 6D */ bl __flush_buffer
+/* 801C9B64 001C57C4 2C 03 00 00 */ cmpwi r3, 0
+/* 801C9B68 001C57C8 41 82 00 18 */ beq lbl_801C9B80
+/* 801C9B6C 001C57CC 38 60 00 01 */ li r3, 1
+/* 801C9B70 001C57D0 38 00 00 00 */ li r0, 0
+/* 801C9B74 001C57D4 98 7C 00 0A */ stb r3, 0xa(r28)
+/* 801C9B78 001C57D8 90 1C 00 28 */ stw r0, 0x28(r28)
+/* 801C9B7C 001C57DC 48 00 00 0C */ b lbl_801C9B88
+lbl_801C9B80:
+/* 801C9B80 001C57E0 80 01 00 08 */ lwz r0, 8(r1)
+/* 801C9B84 001C57E4 7F BD 02 14 */ add r29, r29, r0
+lbl_801C9B88:
+/* 801C9B88 001C57E8 93 3C 00 1C */ stw r25, 0x1c(r28)
+/* 801C9B8C 001C57EC 7F 83 E3 78 */ mr r3, r28
+/* 801C9B90 001C57F0 93 FC 00 20 */ stw r31, 0x20(r28)
+/* 801C9B94 001C57F4 4B FF F8 15 */ bl __prep_buffer
+/* 801C9B98 001C57F8 38 00 00 00 */ li r0, 0
+/* 801C9B9C 001C57FC 90 1C 00 28 */ stw r0, 0x28(r28)
+lbl_801C9BA0:
+/* 801C9BA0 001C5800 80 1C 00 04 */ lwz r0, 4(r28)
+/* 801C9BA4 001C5804 54 00 3F BE */ rlwinm r0, r0, 7, 0x1e, 0x1f
+/* 801C9BA8 001C5808 28 00 00 02 */ cmplwi r0, 2
+/* 801C9BAC 001C580C 41 82 00 0C */ beq lbl_801C9BB8
+/* 801C9BB0 001C5810 38 00 00 00 */ li r0, 0
+/* 801C9BB4 001C5814 90 1C 00 28 */ stw r0, 0x28(r28)
+lbl_801C9BB8:
+/* 801C9BB8 001C5818 7C 7D DB 96 */ divwu r3, r29, r27
+lbl_801C9BBC:
+/* 801C9BBC 001C581C BB 21 00 14 */ lmw r25, 0x14(r1)
+/* 801C9BC0 001C5820 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 801C9BC4 001C5824 7C 08 03 A6 */ mtlr r0
+/* 801C9BC8 001C5828 38 21 00 30 */ addi r1, r1, 0x30
+/* 801C9BCC 001C582C 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/extras.s b/asm/MSL_C/MSL_Common/extras.s
new file mode 100644
index 0000000..ba07203
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/extras.s
@@ -0,0 +1,175 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global stricmp
+stricmp:
+/* 801D0A00 001CC660 3C A0 80 42 */ lis r5, lbl_80422D48@ha
+/* 801D0A04 001CC664 38 A5 2D 48 */ addi r5, r5, lbl_80422D48@l
+/* 801D0A08 001CC668 80 C5 00 38 */ lwz r6, 0x38(r5)
+lbl_801D0A0C:
+/* 801D0A0C 001CC66C 88 A3 00 00 */ lbz r5, 0(r3)
+/* 801D0A10 001CC670 38 00 00 00 */ li r0, 0
+/* 801D0A14 001CC674 38 63 00 01 */ addi r3, r3, 1
+/* 801D0A18 001CC678 7C A7 07 75 */ extsb. r7, r5
+/* 801D0A1C 001CC67C 41 80 00 0C */ blt lbl_801D0A28
+/* 801D0A20 001CC680 2C 07 01 00 */ cmpwi r7, 0x100
+/* 801D0A24 001CC684 41 80 00 08 */ blt lbl_801D0A2C
+lbl_801D0A28:
+/* 801D0A28 001CC688 38 00 00 01 */ li r0, 1
+lbl_801D0A2C:
+/* 801D0A2C 001CC68C 2C 00 00 00 */ cmpwi r0, 0
+/* 801D0A30 001CC690 41 82 00 08 */ beq lbl_801D0A38
+/* 801D0A34 001CC694 48 00 00 0C */ b lbl_801D0A40
+lbl_801D0A38:
+/* 801D0A38 001CC698 80 A6 00 10 */ lwz r5, 0x10(r6)
+/* 801D0A3C 001CC69C 7C E5 38 AE */ lbzx r7, r5, r7
+lbl_801D0A40:
+/* 801D0A40 001CC6A0 88 A4 00 00 */ lbz r5, 0(r4)
+/* 801D0A44 001CC6A4 7C E8 07 74 */ extsb r8, r7
+/* 801D0A48 001CC6A8 38 00 00 00 */ li r0, 0
+/* 801D0A4C 001CC6AC 38 84 00 01 */ addi r4, r4, 1
+/* 801D0A50 001CC6B0 7C A7 07 75 */ extsb. r7, r5
+/* 801D0A54 001CC6B4 41 80 00 0C */ blt lbl_801D0A60
+/* 801D0A58 001CC6B8 2C 07 01 00 */ cmpwi r7, 0x100
+/* 801D0A5C 001CC6BC 41 80 00 08 */ blt lbl_801D0A64
+lbl_801D0A60:
+/* 801D0A60 001CC6C0 38 00 00 01 */ li r0, 1
+lbl_801D0A64:
+/* 801D0A64 001CC6C4 2C 00 00 00 */ cmpwi r0, 0
+/* 801D0A68 001CC6C8 41 82 00 08 */ beq lbl_801D0A70
+/* 801D0A6C 001CC6CC 48 00 00 0C */ b lbl_801D0A78
+lbl_801D0A70:
+/* 801D0A70 001CC6D0 80 A6 00 10 */ lwz r5, 0x10(r6)
+/* 801D0A74 001CC6D4 7C E5 38 AE */ lbzx r7, r5, r7
+lbl_801D0A78:
+/* 801D0A78 001CC6D8 7C E0 07 74 */ extsb r0, r7
+/* 801D0A7C 001CC6DC 7C 08 00 00 */ cmpw r8, r0
+/* 801D0A80 001CC6E0 40 80 00 0C */ bge lbl_801D0A8C
+/* 801D0A84 001CC6E4 38 60 FF FF */ li r3, -1
+/* 801D0A88 001CC6E8 4E 80 00 20 */ blr
+lbl_801D0A8C:
+/* 801D0A8C 001CC6EC 40 81 00 0C */ ble lbl_801D0A98
+/* 801D0A90 001CC6F0 38 60 00 01 */ li r3, 1
+/* 801D0A94 001CC6F4 4E 80 00 20 */ blr
+lbl_801D0A98:
+/* 801D0A98 001CC6F8 2C 08 00 00 */ cmpwi r8, 0
+/* 801D0A9C 001CC6FC 40 82 FF 70 */ bne lbl_801D0A0C
+/* 801D0AA0 001CC700 38 60 00 00 */ li r3, 0
+/* 801D0AA4 001CC704 4E 80 00 20 */ blr
+
+.global strncasecmp
+strncasecmp:
+/* 801D0AA8 001CC708 4B FF 93 18 */ b __msl_strnicmp
+
+.global strcmpi
+strcmpi:
+/* 801D0AAC 001CC70C 3C A0 80 42 */ lis r5, lbl_80422D48@ha
+/* 801D0AB0 001CC710 38 A5 2D 48 */ addi r5, r5, lbl_80422D48@l
+/* 801D0AB4 001CC714 80 C5 00 38 */ lwz r6, 0x38(r5)
+lbl_801D0AB8:
+/* 801D0AB8 001CC718 88 A3 00 00 */ lbz r5, 0(r3)
+/* 801D0ABC 001CC71C 38 00 00 00 */ li r0, 0
+/* 801D0AC0 001CC720 38 63 00 01 */ addi r3, r3, 1
+/* 801D0AC4 001CC724 7C A7 07 75 */ extsb. r7, r5
+/* 801D0AC8 001CC728 41 80 00 0C */ blt lbl_801D0AD4
+/* 801D0ACC 001CC72C 2C 07 01 00 */ cmpwi r7, 0x100
+/* 801D0AD0 001CC730 41 80 00 08 */ blt lbl_801D0AD8
+lbl_801D0AD4:
+/* 801D0AD4 001CC734 38 00 00 01 */ li r0, 1
+lbl_801D0AD8:
+/* 801D0AD8 001CC738 2C 00 00 00 */ cmpwi r0, 0
+/* 801D0ADC 001CC73C 41 82 00 08 */ beq lbl_801D0AE4
+/* 801D0AE0 001CC740 48 00 00 0C */ b lbl_801D0AEC
+lbl_801D0AE4:
+/* 801D0AE4 001CC744 80 A6 00 10 */ lwz r5, 0x10(r6)
+/* 801D0AE8 001CC748 7C E5 38 AE */ lbzx r7, r5, r7
+lbl_801D0AEC:
+/* 801D0AEC 001CC74C 88 A4 00 00 */ lbz r5, 0(r4)
+/* 801D0AF0 001CC750 7C E8 07 74 */ extsb r8, r7
+/* 801D0AF4 001CC754 38 00 00 00 */ li r0, 0
+/* 801D0AF8 001CC758 38 84 00 01 */ addi r4, r4, 1
+/* 801D0AFC 001CC75C 7C A7 07 75 */ extsb. r7, r5
+/* 801D0B00 001CC760 41 80 00 0C */ blt lbl_801D0B0C
+/* 801D0B04 001CC764 2C 07 01 00 */ cmpwi r7, 0x100
+/* 801D0B08 001CC768 41 80 00 08 */ blt lbl_801D0B10
+lbl_801D0B0C:
+/* 801D0B0C 001CC76C 38 00 00 01 */ li r0, 1
+lbl_801D0B10:
+/* 801D0B10 001CC770 2C 00 00 00 */ cmpwi r0, 0
+/* 801D0B14 001CC774 41 82 00 08 */ beq lbl_801D0B1C
+/* 801D0B18 001CC778 48 00 00 0C */ b lbl_801D0B24
+lbl_801D0B1C:
+/* 801D0B1C 001CC77C 80 A6 00 10 */ lwz r5, 0x10(r6)
+/* 801D0B20 001CC780 7C E5 38 AE */ lbzx r7, r5, r7
+lbl_801D0B24:
+/* 801D0B24 001CC784 7C E0 07 74 */ extsb r0, r7
+/* 801D0B28 001CC788 7C 08 00 00 */ cmpw r8, r0
+/* 801D0B2C 001CC78C 40 80 00 0C */ bge lbl_801D0B38
+/* 801D0B30 001CC790 38 60 FF FF */ li r3, -1
+/* 801D0B34 001CC794 4E 80 00 20 */ blr
+lbl_801D0B38:
+/* 801D0B38 001CC798 40 81 00 0C */ ble lbl_801D0B44
+/* 801D0B3C 001CC79C 38 60 00 01 */ li r3, 1
+/* 801D0B40 001CC7A0 4E 80 00 20 */ blr
+lbl_801D0B44:
+/* 801D0B44 001CC7A4 2C 08 00 00 */ cmpwi r8, 0
+/* 801D0B48 001CC7A8 40 82 FF 70 */ bne lbl_801D0AB8
+/* 801D0B4C 001CC7AC 38 60 00 00 */ li r3, 0
+/* 801D0B50 001CC7B0 4E 80 00 20 */ blr
+
+.global strcasecmp
+strcasecmp:
+/* 801D0B54 001CC7B4 3C A0 80 42 */ lis r5, lbl_80422D48@ha
+/* 801D0B58 001CC7B8 38 A5 2D 48 */ addi r5, r5, lbl_80422D48@l
+/* 801D0B5C 001CC7BC 80 C5 00 38 */ lwz r6, 0x38(r5)
+lbl_801D0B60:
+/* 801D0B60 001CC7C0 88 A3 00 00 */ lbz r5, 0(r3)
+/* 801D0B64 001CC7C4 38 00 00 00 */ li r0, 0
+/* 801D0B68 001CC7C8 38 63 00 01 */ addi r3, r3, 1
+/* 801D0B6C 001CC7CC 7C A7 07 75 */ extsb. r7, r5
+/* 801D0B70 001CC7D0 41 80 00 0C */ blt lbl_801D0B7C
+/* 801D0B74 001CC7D4 2C 07 01 00 */ cmpwi r7, 0x100
+/* 801D0B78 001CC7D8 41 80 00 08 */ blt lbl_801D0B80
+lbl_801D0B7C:
+/* 801D0B7C 001CC7DC 38 00 00 01 */ li r0, 1
+lbl_801D0B80:
+/* 801D0B80 001CC7E0 2C 00 00 00 */ cmpwi r0, 0
+/* 801D0B84 001CC7E4 41 82 00 08 */ beq lbl_801D0B8C
+/* 801D0B88 001CC7E8 48 00 00 0C */ b lbl_801D0B94
+lbl_801D0B8C:
+/* 801D0B8C 001CC7EC 80 A6 00 10 */ lwz r5, 0x10(r6)
+/* 801D0B90 001CC7F0 7C E5 38 AE */ lbzx r7, r5, r7
+lbl_801D0B94:
+/* 801D0B94 001CC7F4 88 A4 00 00 */ lbz r5, 0(r4)
+/* 801D0B98 001CC7F8 7C E8 07 74 */ extsb r8, r7
+/* 801D0B9C 001CC7FC 38 00 00 00 */ li r0, 0
+/* 801D0BA0 001CC800 38 84 00 01 */ addi r4, r4, 1
+/* 801D0BA4 001CC804 7C A7 07 75 */ extsb. r7, r5
+/* 801D0BA8 001CC808 41 80 00 0C */ blt lbl_801D0BB4
+/* 801D0BAC 001CC80C 2C 07 01 00 */ cmpwi r7, 0x100
+/* 801D0BB0 001CC810 41 80 00 08 */ blt lbl_801D0BB8
+lbl_801D0BB4:
+/* 801D0BB4 001CC814 38 00 00 01 */ li r0, 1
+lbl_801D0BB8:
+/* 801D0BB8 001CC818 2C 00 00 00 */ cmpwi r0, 0
+/* 801D0BBC 001CC81C 41 82 00 08 */ beq lbl_801D0BC4
+/* 801D0BC0 001CC820 48 00 00 0C */ b lbl_801D0BCC
+lbl_801D0BC4:
+/* 801D0BC4 001CC824 80 A6 00 10 */ lwz r5, 0x10(r6)
+/* 801D0BC8 001CC828 7C E5 38 AE */ lbzx r7, r5, r7
+lbl_801D0BCC:
+/* 801D0BCC 001CC82C 7C E0 07 74 */ extsb r0, r7
+/* 801D0BD0 001CC830 7C 08 00 00 */ cmpw r8, r0
+/* 801D0BD4 001CC834 40 80 00 0C */ bge lbl_801D0BE0
+/* 801D0BD8 001CC838 38 60 FF FF */ li r3, -1
+/* 801D0BDC 001CC83C 4E 80 00 20 */ blr
+lbl_801D0BE0:
+/* 801D0BE0 001CC840 40 81 00 0C */ ble lbl_801D0BEC
+/* 801D0BE4 001CC844 38 60 00 01 */ li r3, 1
+/* 801D0BE8 001CC848 4E 80 00 20 */ blr
+lbl_801D0BEC:
+/* 801D0BEC 001CC84C 2C 08 00 00 */ cmpwi r8, 0
+/* 801D0BF0 001CC850 40 82 FF 70 */ bne lbl_801D0B60
+/* 801D0BF4 001CC854 38 60 00 00 */ li r3, 0
+/* 801D0BF8 001CC858 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/file_io.s b/asm/MSL_C/MSL_Common/file_io.s
new file mode 100644
index 0000000..be053b1
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/file_io.s
@@ -0,0 +1,214 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global fclose
+fclose:
+/* 801C9BD0 001C5830 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 801C9BD4 001C5834 7C 08 02 A6 */ mflr r0
+/* 801C9BD8 001C5838 2C 03 00 00 */ cmpwi r3, 0
+/* 801C9BDC 001C583C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801C9BE0 001C5840 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 801C9BE4 001C5844 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 801C9BE8 001C5848 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 801C9BEC 001C584C 7C 7D 1B 78 */ mr r29, r3
+/* 801C9BF0 001C5850 40 82 00 0C */ bne lbl_801C9BFC
+/* 801C9BF4 001C5854 38 60 FF FF */ li r3, -1
+/* 801C9BF8 001C5858 48 00 00 78 */ b lbl_801C9C70
+lbl_801C9BFC:
+/* 801C9BFC 001C585C 80 03 00 04 */ lwz r0, 4(r3)
+/* 801C9C00 001C5860 54 00 57 7F */ rlwinm. r0, r0, 0xa, 0x1d, 0x1f
+/* 801C9C04 001C5864 40 82 00 0C */ bne lbl_801C9C10
+/* 801C9C08 001C5868 38 60 00 00 */ li r3, 0
+/* 801C9C0C 001C586C 48 00 00 64 */ b lbl_801C9C70
+lbl_801C9C10:
+/* 801C9C10 001C5870 48 00 00 7D */ bl fflush
+/* 801C9C14 001C5874 81 9D 00 44 */ lwz r12, 0x44(r29)
+/* 801C9C18 001C5878 7C 7E 1B 78 */ mr r30, r3
+/* 801C9C1C 001C587C 80 7D 00 00 */ lwz r3, 0(r29)
+/* 801C9C20 001C5880 7D 89 03 A6 */ mtctr r12
+/* 801C9C24 001C5884 4E 80 04 21 */ bctrl
+/* 801C9C28 001C5888 80 1D 00 08 */ lwz r0, 8(r29)
+/* 801C9C2C 001C588C 38 A0 00 00 */ li r5, 0
+/* 801C9C30 001C5890 80 9D 00 04 */ lwz r4, 4(r29)
+/* 801C9C34 001C5894 7C 7F 1B 78 */ mr r31, r3
+/* 801C9C38 001C5898 54 00 27 FF */ rlwinm. r0, r0, 4, 0x1f, 0x1f
+/* 801C9C3C 001C589C 90 BD 00 00 */ stw r5, 0(r29)
+/* 801C9C40 001C58A0 54 84 02 8C */ rlwinm r4, r4, 0, 0xa, 6
+/* 801C9C44 001C58A4 90 9D 00 04 */ stw r4, 4(r29)
+/* 801C9C48 001C58A8 41 82 00 0C */ beq lbl_801C9C54
+/* 801C9C4C 001C58AC 80 7D 00 1C */ lwz r3, 0x1c(r29)
+/* 801C9C50 001C58B0 4B E4 0B 75 */ bl func_8000A7C4
+lbl_801C9C54:
+/* 801C9C54 001C58B4 2C 1E 00 00 */ cmpwi r30, 0
+/* 801C9C58 001C58B8 38 00 00 00 */ li r0, 0
+/* 801C9C5C 001C58BC 40 82 00 0C */ bne lbl_801C9C68
+/* 801C9C60 001C58C0 2C 1F 00 00 */ cmpwi r31, 0
+/* 801C9C64 001C58C4 41 82 00 08 */ beq lbl_801C9C6C
+lbl_801C9C68:
+/* 801C9C68 001C58C8 38 00 00 01 */ li r0, 1
+lbl_801C9C6C:
+/* 801C9C6C 001C58CC 7C 60 00 D0 */ neg r3, r0
+lbl_801C9C70:
+/* 801C9C70 001C58D0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801C9C74 001C58D4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 801C9C78 001C58D8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 801C9C7C 001C58DC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 801C9C80 001C58E0 7C 08 03 A6 */ mtlr r0
+/* 801C9C84 001C58E4 38 21 00 20 */ addi r1, r1, 0x20
+/* 801C9C88 001C58E8 4E 80 00 20 */ blr
+
+.global fflush
+fflush:
+/* 801C9C8C 001C58EC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801C9C90 001C58F0 7C 08 02 A6 */ mflr r0
+/* 801C9C94 001C58F4 2C 03 00 00 */ cmpwi r3, 0
+/* 801C9C98 001C58F8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801C9C9C 001C58FC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801C9CA0 001C5900 7C 7F 1B 78 */ mr r31, r3
+/* 801C9CA4 001C5904 93 C1 00 08 */ stw r30, 8(r1)
+/* 801C9CA8 001C5908 40 82 00 0C */ bne lbl_801C9CB4
+/* 801C9CAC 001C590C 4B FF DD 11 */ bl __flush_all
+/* 801C9CB0 001C5910 48 00 00 F8 */ b lbl_801C9DA8
+lbl_801C9CB4:
+/* 801C9CB4 001C5914 88 03 00 0A */ lbz r0, 0xa(r3)
+/* 801C9CB8 001C5918 2C 00 00 00 */ cmpwi r0, 0
+/* 801C9CBC 001C591C 40 82 00 10 */ bne lbl_801C9CCC
+/* 801C9CC0 001C5920 80 83 00 04 */ lwz r4, 4(r3)
+/* 801C9CC4 001C5924 54 80 57 7F */ rlwinm. r0, r4, 0xa, 0x1d, 0x1f
+/* 801C9CC8 001C5928 40 82 00 0C */ bne lbl_801C9CD4
+lbl_801C9CCC:
+/* 801C9CCC 001C592C 38 60 FF FF */ li r3, -1
+/* 801C9CD0 001C5930 48 00 00 D8 */ b lbl_801C9DA8
+lbl_801C9CD4:
+/* 801C9CD4 001C5934 54 80 2F 7E */ rlwinm r0, r4, 5, 0x1d, 0x1f
+/* 801C9CD8 001C5938 28 00 00 01 */ cmplwi r0, 1
+/* 801C9CDC 001C593C 40 82 00 0C */ bne lbl_801C9CE8
+/* 801C9CE0 001C5940 38 60 00 00 */ li r3, 0
+/* 801C9CE4 001C5944 48 00 00 C4 */ b lbl_801C9DA8
+lbl_801C9CE8:
+/* 801C9CE8 001C5948 80 83 00 08 */ lwz r4, 8(r3)
+/* 801C9CEC 001C594C 54 80 1F 7E */ srwi r0, r4, 0x1d
+/* 801C9CF0 001C5950 28 00 00 03 */ cmplwi r0, 3
+/* 801C9CF4 001C5954 41 80 00 10 */ blt lbl_801C9D04
+/* 801C9CF8 001C5958 38 00 00 02 */ li r0, 2
+/* 801C9CFC 001C595C 50 04 E8 04 */ rlwimi r4, r0, 0x1d, 0, 2
+/* 801C9D00 001C5960 90 83 00 08 */ stw r4, 8(r3)
+lbl_801C9D04:
+/* 801C9D04 001C5964 80 03 00 08 */ lwz r0, 8(r3)
+/* 801C9D08 001C5968 54 00 1F 7E */ srwi r0, r0, 0x1d
+/* 801C9D0C 001C596C 28 00 00 02 */ cmplwi r0, 2
+/* 801C9D10 001C5970 40 82 00 0C */ bne lbl_801C9D1C
+/* 801C9D14 001C5974 38 00 00 00 */ li r0, 0
+/* 801C9D18 001C5978 90 03 00 28 */ stw r0, 0x28(r3)
+lbl_801C9D1C:
+/* 801C9D1C 001C597C 80 83 00 08 */ lwz r4, 8(r3)
+/* 801C9D20 001C5980 54 80 1F 7E */ srwi r0, r4, 0x1d
+/* 801C9D24 001C5984 28 00 00 01 */ cmplwi r0, 1
+/* 801C9D28 001C5988 41 82 00 14 */ beq lbl_801C9D3C
+/* 801C9D2C 001C598C 54 80 00 FE */ clrlwi r0, r4, 3
+/* 801C9D30 001C5990 90 03 00 08 */ stw r0, 8(r3)
+/* 801C9D34 001C5994 38 60 00 00 */ li r3, 0
+/* 801C9D38 001C5998 48 00 00 70 */ b lbl_801C9DA8
+lbl_801C9D3C:
+/* 801C9D3C 001C599C 80 03 00 04 */ lwz r0, 4(r3)
+/* 801C9D40 001C59A0 54 00 57 7E */ rlwinm r0, r0, 0xa, 0x1d, 0x1f
+/* 801C9D44 001C59A4 28 00 00 01 */ cmplwi r0, 1
+/* 801C9D48 001C59A8 41 82 00 0C */ beq lbl_801C9D54
+/* 801C9D4C 001C59AC 3B C0 00 00 */ li r30, 0
+/* 801C9D50 001C59B0 48 00 00 10 */ b lbl_801C9D60
+lbl_801C9D54:
+/* 801C9D54 001C59B4 7F E3 FB 78 */ mr r3, r31
+/* 801C9D58 001C59B8 48 00 01 D1 */ bl ftell
+/* 801C9D5C 001C59BC 7C 7E 1B 78 */ mr r30, r3
+lbl_801C9D60:
+/* 801C9D60 001C59C0 7F E3 FB 78 */ mr r3, r31
+/* 801C9D64 001C59C4 38 80 00 00 */ li r4, 0
+/* 801C9D68 001C59C8 4B FF F7 65 */ bl __flush_buffer
+/* 801C9D6C 001C59CC 2C 03 00 00 */ cmpwi r3, 0
+/* 801C9D70 001C59D0 41 82 00 1C */ beq lbl_801C9D8C
+/* 801C9D74 001C59D4 38 60 00 01 */ li r3, 1
+/* 801C9D78 001C59D8 38 00 00 00 */ li r0, 0
+/* 801C9D7C 001C59DC 98 7F 00 0A */ stb r3, 0xa(r31)
+/* 801C9D80 001C59E0 38 60 FF FF */ li r3, -1
+/* 801C9D84 001C59E4 90 1F 00 28 */ stw r0, 0x28(r31)
+/* 801C9D88 001C59E8 48 00 00 20 */ b lbl_801C9DA8
+lbl_801C9D8C:
+/* 801C9D8C 001C59EC 80 1F 00 08 */ lwz r0, 8(r31)
+/* 801C9D90 001C59F0 38 80 00 00 */ li r4, 0
+/* 801C9D94 001C59F4 93 DF 00 18 */ stw r30, 0x18(r31)
+/* 801C9D98 001C59F8 38 60 00 00 */ li r3, 0
+/* 801C9D9C 001C59FC 54 00 00 FE */ clrlwi r0, r0, 3
+/* 801C9DA0 001C5A00 90 1F 00 08 */ stw r0, 8(r31)
+/* 801C9DA4 001C5A04 90 9F 00 28 */ stw r4, 0x28(r31)
+lbl_801C9DA8:
+/* 801C9DA8 001C5A08 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801C9DAC 001C5A0C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801C9DB0 001C5A10 83 C1 00 08 */ lwz r30, 8(r1)
+/* 801C9DB4 001C5A14 7C 08 03 A6 */ mtlr r0
+/* 801C9DB8 001C5A18 38 21 00 10 */ addi r1, r1, 0x10
+/* 801C9DBC 001C5A1C 4E 80 00 20 */ blr
+
+.global __msl_strnicmp
+__msl_strnicmp:
+/* 801C9DC0 001C5A20 3C C0 80 42 */ lis r6, lbl_80422D48@ha
+/* 801C9DC4 001C5A24 38 C6 2D 48 */ addi r6, r6, lbl_80422D48@l
+/* 801C9DC8 001C5A28 80 C6 00 38 */ lwz r6, 0x38(r6)
+/* 801C9DCC 001C5A2C 7C A9 03 A6 */ mtctr r5
+/* 801C9DD0 001C5A30 2C 05 00 00 */ cmpwi r5, 0
+/* 801C9DD4 001C5A34 40 81 00 A4 */ ble lbl_801C9E78
+lbl_801C9DD8:
+/* 801C9DD8 001C5A38 88 A3 00 00 */ lbz r5, 0(r3)
+/* 801C9DDC 001C5A3C 38 00 00 00 */ li r0, 0
+/* 801C9DE0 001C5A40 38 63 00 01 */ addi r3, r3, 1
+/* 801C9DE4 001C5A44 7C A7 07 75 */ extsb. r7, r5
+/* 801C9DE8 001C5A48 41 80 00 0C */ blt lbl_801C9DF4
+/* 801C9DEC 001C5A4C 2C 07 01 00 */ cmpwi r7, 0x100
+/* 801C9DF0 001C5A50 41 80 00 08 */ blt lbl_801C9DF8
+lbl_801C9DF4:
+/* 801C9DF4 001C5A54 38 00 00 01 */ li r0, 1
+lbl_801C9DF8:
+/* 801C9DF8 001C5A58 2C 00 00 00 */ cmpwi r0, 0
+/* 801C9DFC 001C5A5C 41 82 00 08 */ beq lbl_801C9E04
+/* 801C9E00 001C5A60 48 00 00 0C */ b lbl_801C9E0C
+lbl_801C9E04:
+/* 801C9E04 001C5A64 80 A6 00 10 */ lwz r5, 0x10(r6)
+/* 801C9E08 001C5A68 7C E5 38 AE */ lbzx r7, r5, r7
+lbl_801C9E0C:
+/* 801C9E0C 001C5A6C 88 A4 00 00 */ lbz r5, 0(r4)
+/* 801C9E10 001C5A70 7C E8 07 74 */ extsb r8, r7
+/* 801C9E14 001C5A74 38 00 00 00 */ li r0, 0
+/* 801C9E18 001C5A78 38 84 00 01 */ addi r4, r4, 1
+/* 801C9E1C 001C5A7C 7C A7 07 75 */ extsb. r7, r5
+/* 801C9E20 001C5A80 41 80 00 0C */ blt lbl_801C9E2C
+/* 801C9E24 001C5A84 2C 07 01 00 */ cmpwi r7, 0x100
+/* 801C9E28 001C5A88 41 80 00 08 */ blt lbl_801C9E30
+lbl_801C9E2C:
+/* 801C9E2C 001C5A8C 38 00 00 01 */ li r0, 1
+lbl_801C9E30:
+/* 801C9E30 001C5A90 2C 00 00 00 */ cmpwi r0, 0
+/* 801C9E34 001C5A94 41 82 00 08 */ beq lbl_801C9E3C
+/* 801C9E38 001C5A98 48 00 00 0C */ b lbl_801C9E44
+lbl_801C9E3C:
+/* 801C9E3C 001C5A9C 80 A6 00 10 */ lwz r5, 0x10(r6)
+/* 801C9E40 001C5AA0 7C E5 38 AE */ lbzx r7, r5, r7
+lbl_801C9E44:
+/* 801C9E44 001C5AA4 7C E0 07 74 */ extsb r0, r7
+/* 801C9E48 001C5AA8 7C 08 00 00 */ cmpw r8, r0
+/* 801C9E4C 001C5AAC 40 80 00 0C */ bge lbl_801C9E58
+/* 801C9E50 001C5AB0 38 60 FF FF */ li r3, -1
+/* 801C9E54 001C5AB4 4E 80 00 20 */ blr
+lbl_801C9E58:
+/* 801C9E58 001C5AB8 40 81 00 0C */ ble lbl_801C9E64
+/* 801C9E5C 001C5ABC 38 60 00 01 */ li r3, 1
+/* 801C9E60 001C5AC0 4E 80 00 20 */ blr
+lbl_801C9E64:
+/* 801C9E64 001C5AC4 2C 08 00 00 */ cmpwi r8, 0
+/* 801C9E68 001C5AC8 40 82 00 0C */ bne lbl_801C9E74
+/* 801C9E6C 001C5ACC 38 60 00 00 */ li r3, 0
+/* 801C9E70 001C5AD0 4E 80 00 20 */ blr
+lbl_801C9E74:
+/* 801C9E74 001C5AD4 42 00 FF 64 */ bdnz lbl_801C9DD8
+lbl_801C9E78:
+/* 801C9E78 001C5AD8 38 60 00 00 */ li r3, 0
+/* 801C9E7C 001C5ADC 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/file_pos.s b/asm/MSL_C/MSL_Common/file_pos.s
new file mode 100644
index 0000000..0aa63a2
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/file_pos.s
@@ -0,0 +1,211 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global _ftell
+_ftell:
+/* 801C9E80 001C5AE0 80 03 00 04 */ lwz r0, 4(r3)
+/* 801C9E84 001C5AE4 38 C0 00 00 */ li r6, 0
+/* 801C9E88 001C5AE8 54 04 57 7E */ rlwinm r4, r0, 0xa, 0x1d, 0x1f
+/* 801C9E8C 001C5AEC 38 04 00 FF */ addi r0, r4, 0xff
+/* 801C9E90 001C5AF0 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 801C9E94 001C5AF4 28 00 00 01 */ cmplwi r0, 1
+/* 801C9E98 001C5AF8 41 81 00 10 */ bgt lbl_801C9EA8
+/* 801C9E9C 001C5AFC 88 03 00 0A */ lbz r0, 0xa(r3)
+/* 801C9EA0 001C5B00 2C 00 00 00 */ cmpwi r0, 0
+/* 801C9EA4 001C5B04 41 82 00 14 */ beq lbl_801C9EB8
+lbl_801C9EA8:
+/* 801C9EA8 001C5B08 38 00 00 28 */ li r0, 0x28
+/* 801C9EAC 001C5B0C 38 60 FF FF */ li r3, -1
+/* 801C9EB0 001C5B10 90 0D 9F C8 */ stw r0, lbl_8063F288-_SDA_BASE_(r13)
+/* 801C9EB4 001C5B14 4E 80 00 20 */ blr
+lbl_801C9EB8:
+/* 801C9EB8 001C5B18 80 03 00 08 */ lwz r0, 8(r3)
+/* 801C9EBC 001C5B1C 54 05 1F 7F */ rlwinm. r5, r0, 3, 0x1d, 0x1f
+/* 801C9EC0 001C5B20 40 82 00 0C */ bne lbl_801C9ECC
+/* 801C9EC4 001C5B24 80 63 00 18 */ lwz r3, 0x18(r3)
+/* 801C9EC8 001C5B28 4E 80 00 20 */ blr
+lbl_801C9ECC:
+/* 801C9ECC 001C5B2C 81 03 00 1C */ lwz r8, 0x1c(r3)
+/* 801C9ED0 001C5B30 28 05 00 03 */ cmplwi r5, 3
+/* 801C9ED4 001C5B34 80 83 00 24 */ lwz r4, 0x24(r3)
+/* 801C9ED8 001C5B38 80 03 00 34 */ lwz r0, 0x34(r3)
+/* 801C9EDC 001C5B3C 7C 88 20 50 */ subf r4, r8, r4
+/* 801C9EE0 001C5B40 7C E0 22 14 */ add r7, r0, r4
+/* 801C9EE4 001C5B44 41 80 00 0C */ blt lbl_801C9EF0
+/* 801C9EE8 001C5B48 38 C5 FF FE */ addi r6, r5, -2
+/* 801C9EEC 001C5B4C 7C E6 38 50 */ subf r7, r6, r7
+lbl_801C9EF0:
+/* 801C9EF0 001C5B50 80 03 00 04 */ lwz r0, 4(r3)
+/* 801C9EF4 001C5B54 54 00 6F FF */ rlwinm. r0, r0, 0xd, 0x1f, 0x1f
+/* 801C9EF8 001C5B58 40 82 00 28 */ bne lbl_801C9F20
+/* 801C9EFC 001C5B5C 7C 06 20 51 */ subf. r0, r6, r4
+/* 801C9F00 001C5B60 7C 09 03 A6 */ mtctr r0
+/* 801C9F04 001C5B64 41 82 00 1C */ beq lbl_801C9F20
+lbl_801C9F08:
+/* 801C9F08 001C5B68 88 08 00 00 */ lbz r0, 0(r8)
+/* 801C9F0C 001C5B6C 39 08 00 01 */ addi r8, r8, 1
+/* 801C9F10 001C5B70 28 00 00 0A */ cmplwi r0, 0xa
+/* 801C9F14 001C5B74 40 82 00 08 */ bne lbl_801C9F1C
+/* 801C9F18 001C5B78 38 E7 00 01 */ addi r7, r7, 1
+lbl_801C9F1C:
+/* 801C9F1C 001C5B7C 42 00 FF EC */ bdnz lbl_801C9F08
+lbl_801C9F20:
+/* 801C9F20 001C5B80 7C E3 3B 78 */ mr r3, r7
+/* 801C9F24 001C5B84 4E 80 00 20 */ blr
+
+.global ftell
+ftell:
+/* 801C9F28 001C5B88 4B FF FF 58 */ b _ftell
+
+.global _fseek
+_fseek:
+/* 801C9F2C 001C5B8C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 801C9F30 001C5B90 7C 08 02 A6 */ mflr r0
+/* 801C9F34 001C5B94 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801C9F38 001C5B98 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 801C9F3C 001C5B9C 7C BF 2B 78 */ mr r31, r5
+/* 801C9F40 001C5BA0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 801C9F44 001C5BA4 7C 7E 1B 78 */ mr r30, r3
+/* 801C9F48 001C5BA8 90 81 00 08 */ stw r4, 8(r1)
+/* 801C9F4C 001C5BAC 80 03 00 04 */ lwz r0, 4(r3)
+/* 801C9F50 001C5BB0 54 00 57 7E */ rlwinm r0, r0, 0xa, 0x1d, 0x1f
+/* 801C9F54 001C5BB4 28 00 00 01 */ cmplwi r0, 1
+/* 801C9F58 001C5BB8 40 82 00 10 */ bne lbl_801C9F68
+/* 801C9F5C 001C5BBC 88 03 00 0A */ lbz r0, 0xa(r3)
+/* 801C9F60 001C5BC0 2C 00 00 00 */ cmpwi r0, 0
+/* 801C9F64 001C5BC4 41 82 00 14 */ beq lbl_801C9F78
+lbl_801C9F68:
+/* 801C9F68 001C5BC8 38 00 00 28 */ li r0, 0x28
+/* 801C9F6C 001C5BCC 38 60 FF FF */ li r3, -1
+/* 801C9F70 001C5BD0 90 0D 9F C8 */ stw r0, lbl_8063F288-_SDA_BASE_(r13)
+/* 801C9F74 001C5BD4 48 00 01 64 */ b lbl_801CA0D8
+lbl_801C9F78:
+/* 801C9F78 001C5BD8 80 03 00 08 */ lwz r0, 8(r3)
+/* 801C9F7C 001C5BDC 54 00 1F 7E */ srwi r0, r0, 0x1d
+/* 801C9F80 001C5BE0 28 00 00 01 */ cmplwi r0, 1
+/* 801C9F84 001C5BE4 40 82 00 34 */ bne lbl_801C9FB8
+/* 801C9F88 001C5BE8 38 80 00 00 */ li r4, 0
+/* 801C9F8C 001C5BEC 4B FF F5 41 */ bl __flush_buffer
+/* 801C9F90 001C5BF0 2C 03 00 00 */ cmpwi r3, 0
+/* 801C9F94 001C5BF4 41 82 00 24 */ beq lbl_801C9FB8
+/* 801C9F98 001C5BF8 38 00 00 01 */ li r0, 1
+/* 801C9F9C 001C5BFC 38 80 00 00 */ li r4, 0
+/* 801C9FA0 001C5C00 98 1E 00 0A */ stb r0, 0xa(r30)
+/* 801C9FA4 001C5C04 38 00 00 28 */ li r0, 0x28
+/* 801C9FA8 001C5C08 38 60 FF FF */ li r3, -1
+/* 801C9FAC 001C5C0C 90 9E 00 28 */ stw r4, 0x28(r30)
+/* 801C9FB0 001C5C10 90 0D 9F C8 */ stw r0, lbl_8063F288-_SDA_BASE_(r13)
+/* 801C9FB4 001C5C14 48 00 01 24 */ b lbl_801CA0D8
+lbl_801C9FB8:
+/* 801C9FB8 001C5C18 2C 1F 00 01 */ cmpwi r31, 1
+/* 801C9FBC 001C5C1C 40 82 00 1C */ bne lbl_801C9FD8
+/* 801C9FC0 001C5C20 7F C3 F3 78 */ mr r3, r30
+/* 801C9FC4 001C5C24 3B E0 00 00 */ li r31, 0
+/* 801C9FC8 001C5C28 4B FF FE B9 */ bl _ftell
+/* 801C9FCC 001C5C2C 80 01 00 08 */ lwz r0, 8(r1)
+/* 801C9FD0 001C5C30 7C 00 1A 14 */ add r0, r0, r3
+/* 801C9FD4 001C5C34 90 01 00 08 */ stw r0, 8(r1)
+lbl_801C9FD8:
+/* 801C9FD8 001C5C38 2C 1F 00 02 */ cmpwi r31, 2
+/* 801C9FDC 001C5C3C 41 82 00 80 */ beq lbl_801CA05C
+/* 801C9FE0 001C5C40 80 1E 00 04 */ lwz r0, 4(r30)
+/* 801C9FE4 001C5C44 54 00 2F 7E */ rlwinm r0, r0, 5, 0x1d, 0x1f
+/* 801C9FE8 001C5C48 28 00 00 03 */ cmplwi r0, 3
+/* 801C9FEC 001C5C4C 41 82 00 70 */ beq lbl_801CA05C
+/* 801C9FF0 001C5C50 80 DE 00 08 */ lwz r6, 8(r30)
+/* 801C9FF4 001C5C54 54 C3 1F 7E */ srwi r3, r6, 0x1d
+/* 801C9FF8 001C5C58 38 03 FF FE */ addi r0, r3, -2
+/* 801C9FFC 001C5C5C 28 00 00 01 */ cmplwi r0, 1
+/* 801CA000 001C5C60 41 81 00 5C */ bgt lbl_801CA05C
+/* 801CA004 001C5C64 80 61 00 08 */ lwz r3, 8(r1)
+/* 801CA008 001C5C68 80 BE 00 18 */ lwz r5, 0x18(r30)
+/* 801CA00C 001C5C6C 7C 03 28 40 */ cmplw r3, r5
+/* 801CA010 001C5C70 40 80 00 10 */ bge lbl_801CA020
+/* 801CA014 001C5C74 80 1E 00 34 */ lwz r0, 0x34(r30)
+/* 801CA018 001C5C78 7C 03 00 40 */ cmplw r3, r0
+/* 801CA01C 001C5C7C 40 80 00 14 */ bge lbl_801CA030
+lbl_801CA020:
+/* 801CA020 001C5C80 80 1E 00 08 */ lwz r0, 8(r30)
+/* 801CA024 001C5C84 54 00 00 FE */ clrlwi r0, r0, 3
+/* 801CA028 001C5C88 90 1E 00 08 */ stw r0, 8(r30)
+/* 801CA02C 001C5C8C 48 00 00 3C */ b lbl_801CA068
+lbl_801CA030:
+/* 801CA030 001C5C90 80 9E 00 1C */ lwz r4, 0x1c(r30)
+/* 801CA034 001C5C94 7C 60 18 50 */ subf r3, r0, r3
+/* 801CA038 001C5C98 38 00 00 02 */ li r0, 2
+/* 801CA03C 001C5C9C 7C 64 1A 14 */ add r3, r4, r3
+/* 801CA040 001C5CA0 90 7E 00 24 */ stw r3, 0x24(r30)
+/* 801CA044 001C5CA4 50 06 E8 04 */ rlwimi r6, r0, 0x1d, 0, 2
+/* 801CA048 001C5CA8 80 01 00 08 */ lwz r0, 8(r1)
+/* 801CA04C 001C5CAC 7C 00 28 50 */ subf r0, r0, r5
+/* 801CA050 001C5CB0 90 DE 00 08 */ stw r6, 8(r30)
+/* 801CA054 001C5CB4 90 1E 00 28 */ stw r0, 0x28(r30)
+/* 801CA058 001C5CB8 48 00 00 10 */ b lbl_801CA068
+lbl_801CA05C:
+/* 801CA05C 001C5CBC 80 1E 00 08 */ lwz r0, 8(r30)
+/* 801CA060 001C5CC0 54 00 00 FE */ clrlwi r0, r0, 3
+/* 801CA064 001C5CC4 90 1E 00 08 */ stw r0, 8(r30)
+lbl_801CA068:
+/* 801CA068 001C5CC8 80 1E 00 08 */ lwz r0, 8(r30)
+/* 801CA06C 001C5CCC 54 00 1F 7F */ rlwinm. r0, r0, 3, 0x1d, 0x1f
+/* 801CA070 001C5CD0 40 82 00 64 */ bne lbl_801CA0D4
+/* 801CA074 001C5CD4 81 9E 00 38 */ lwz r12, 0x38(r30)
+/* 801CA078 001C5CD8 2C 0C 00 00 */ cmpwi r12, 0
+/* 801CA07C 001C5CDC 41 82 00 44 */ beq lbl_801CA0C0
+/* 801CA080 001C5CE0 7F E5 FB 78 */ mr r5, r31
+/* 801CA084 001C5CE4 38 81 00 08 */ addi r4, r1, 8
+/* 801CA088 001C5CE8 80 7E 00 00 */ lwz r3, 0(r30)
+/* 801CA08C 001C5CEC 80 DE 00 48 */ lwz r6, 0x48(r30)
+/* 801CA090 001C5CF0 7D 89 03 A6 */ mtctr r12
+/* 801CA094 001C5CF4 4E 80 04 21 */ bctrl
+/* 801CA098 001C5CF8 2C 03 00 00 */ cmpwi r3, 0
+/* 801CA09C 001C5CFC 41 82 00 24 */ beq lbl_801CA0C0
+/* 801CA0A0 001C5D00 38 00 00 01 */ li r0, 1
+/* 801CA0A4 001C5D04 38 80 00 00 */ li r4, 0
+/* 801CA0A8 001C5D08 98 1E 00 0A */ stb r0, 0xa(r30)
+/* 801CA0AC 001C5D0C 38 00 00 28 */ li r0, 0x28
+/* 801CA0B0 001C5D10 38 60 FF FF */ li r3, -1
+/* 801CA0B4 001C5D14 90 9E 00 28 */ stw r4, 0x28(r30)
+/* 801CA0B8 001C5D18 90 0D 9F C8 */ stw r0, lbl_8063F288-_SDA_BASE_(r13)
+/* 801CA0BC 001C5D1C 48 00 00 1C */ b lbl_801CA0D8
+lbl_801CA0C0:
+/* 801CA0C0 001C5D20 38 60 00 00 */ li r3, 0
+/* 801CA0C4 001C5D24 98 7E 00 09 */ stb r3, 9(r30)
+/* 801CA0C8 001C5D28 80 01 00 08 */ lwz r0, 8(r1)
+/* 801CA0CC 001C5D2C 90 1E 00 18 */ stw r0, 0x18(r30)
+/* 801CA0D0 001C5D30 90 7E 00 28 */ stw r3, 0x28(r30)
+lbl_801CA0D4:
+/* 801CA0D4 001C5D34 38 60 00 00 */ li r3, 0
+lbl_801CA0D8:
+/* 801CA0D8 001C5D38 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801CA0DC 001C5D3C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 801CA0E0 001C5D40 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 801CA0E4 001C5D44 7C 08 03 A6 */ mtlr r0
+/* 801CA0E8 001C5D48 38 21 00 20 */ addi r1, r1, 0x20
+/* 801CA0EC 001C5D4C 4E 80 00 20 */ blr
+
+.global fseek
+fseek:
+/* 801CA0F0 001C5D50 4B FF FE 3C */ b _fseek
+
+.global rewind
+rewind:
+/* 801CA0F4 001C5D54 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801CA0F8 001C5D58 7C 08 02 A6 */ mflr r0
+/* 801CA0FC 001C5D5C 38 80 00 00 */ li r4, 0
+/* 801CA100 001C5D60 38 A0 00 00 */ li r5, 0
+/* 801CA104 001C5D64 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801CA108 001C5D68 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801CA10C 001C5D6C 3B E0 00 00 */ li r31, 0
+/* 801CA110 001C5D70 93 C1 00 08 */ stw r30, 8(r1)
+/* 801CA114 001C5D74 7C 7E 1B 78 */ mr r30, r3
+/* 801CA118 001C5D78 9B E3 00 0A */ stb r31, 0xa(r3)
+/* 801CA11C 001C5D7C 4B FF FE 11 */ bl _fseek
+/* 801CA120 001C5D80 9B FE 00 0A */ stb r31, 0xa(r30)
+/* 801CA124 001C5D84 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801CA128 001C5D88 83 C1 00 08 */ lwz r30, 8(r1)
+/* 801CA12C 001C5D8C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801CA130 001C5D90 7C 08 03 A6 */ mtlr r0
+/* 801CA134 001C5D94 38 21 00 10 */ addi r1, r1, 0x10
+/* 801CA138 001C5D98 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/math_api.s b/asm/MSL_C/MSL_Common/math_api.s
new file mode 100644
index 0000000..847341c
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/math_api.s
@@ -0,0 +1,87 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __fpclassifyf
+__fpclassifyf:
+/* 801CA6B4 001C6314 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801CA6B8 001C6318 3C 00 7F 80 */ lis r0, 0x7f80
+/* 801CA6BC 001C631C D0 21 00 08 */ stfs f1, 8(r1)
+/* 801CA6C0 001C6320 80 81 00 08 */ lwz r4, 8(r1)
+/* 801CA6C4 001C6324 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
+/* 801CA6C8 001C6328 7C 03 00 00 */ cmpw r3, r0
+/* 801CA6CC 001C632C 41 82 00 14 */ beq lbl_801CA6E0
+/* 801CA6D0 001C6330 40 80 00 3C */ bge lbl_801CA70C
+/* 801CA6D4 001C6334 2C 03 00 00 */ cmpwi r3, 0
+/* 801CA6D8 001C6338 41 82 00 20 */ beq lbl_801CA6F8
+/* 801CA6DC 001C633C 48 00 00 30 */ b lbl_801CA70C
+lbl_801CA6E0:
+/* 801CA6E0 001C6340 54 83 02 7E */ clrlwi r3, r4, 9
+/* 801CA6E4 001C6344 7C 03 00 D0 */ neg r0, r3
+/* 801CA6E8 001C6348 7C 00 1B 78 */ or r0, r0, r3
+/* 801CA6EC 001C634C 7C 03 FE 70 */ srawi r3, r0, 0x1f
+/* 801CA6F0 001C6350 38 63 00 02 */ addi r3, r3, 2
+/* 801CA6F4 001C6354 48 00 00 1C */ b lbl_801CA710
+lbl_801CA6F8:
+/* 801CA6F8 001C6358 54 80 02 7F */ clrlwi. r0, r4, 9
+/* 801CA6FC 001C635C 38 60 00 03 */ li r3, 3
+/* 801CA700 001C6360 41 82 00 10 */ beq lbl_801CA710
+/* 801CA704 001C6364 38 60 00 05 */ li r3, 5
+/* 801CA708 001C6368 48 00 00 08 */ b lbl_801CA710
+lbl_801CA70C:
+/* 801CA70C 001C636C 38 60 00 04 */ li r3, 4
+lbl_801CA710:
+/* 801CA710 001C6370 38 21 00 10 */ addi r1, r1, 0x10
+/* 801CA714 001C6374 4E 80 00 20 */ blr
+
+.global __signbitd
+__signbitd:
+/* 801CA718 001C6378 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801CA71C 001C637C D8 21 00 08 */ stfd f1, 8(r1)
+/* 801CA720 001C6380 80 01 00 08 */ lwz r0, 8(r1)
+/* 801CA724 001C6384 54 03 00 00 */ rlwinm r3, r0, 0, 0, 0
+/* 801CA728 001C6388 38 21 00 10 */ addi r1, r1, 0x10
+/* 801CA72C 001C638C 4E 80 00 20 */ blr
+
+.global __fpclassifyd
+__fpclassifyd:
+/* 801CA730 001C6390 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801CA734 001C6394 3C 00 7F F0 */ lis r0, 0x7ff0
+/* 801CA738 001C6398 D8 21 00 08 */ stfd f1, 8(r1)
+/* 801CA73C 001C639C 80 81 00 08 */ lwz r4, 8(r1)
+/* 801CA740 001C63A0 54 83 00 56 */ rlwinm r3, r4, 0, 1, 0xb
+/* 801CA744 001C63A4 7C 03 00 00 */ cmpw r3, r0
+/* 801CA748 001C63A8 41 82 00 14 */ beq lbl_801CA75C
+/* 801CA74C 001C63AC 40 80 00 58 */ bge lbl_801CA7A4
+/* 801CA750 001C63B0 2C 03 00 00 */ cmpwi r3, 0
+/* 801CA754 001C63B4 41 82 00 2C */ beq lbl_801CA780
+/* 801CA758 001C63B8 48 00 00 4C */ b lbl_801CA7A4
+lbl_801CA75C:
+/* 801CA75C 001C63BC 54 80 03 3F */ clrlwi. r0, r4, 0xc
+/* 801CA760 001C63C0 40 82 00 10 */ bne lbl_801CA770
+/* 801CA764 001C63C4 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 801CA768 001C63C8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CA76C 001C63CC 41 82 00 0C */ beq lbl_801CA778
+lbl_801CA770:
+/* 801CA770 001C63D0 38 60 00 01 */ li r3, 1
+/* 801CA774 001C63D4 48 00 00 34 */ b lbl_801CA7A8
+lbl_801CA778:
+/* 801CA778 001C63D8 38 60 00 02 */ li r3, 2
+/* 801CA77C 001C63DC 48 00 00 2C */ b lbl_801CA7A8
+lbl_801CA780:
+/* 801CA780 001C63E0 54 80 03 3F */ clrlwi. r0, r4, 0xc
+/* 801CA784 001C63E4 40 82 00 10 */ bne lbl_801CA794
+/* 801CA788 001C63E8 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 801CA78C 001C63EC 2C 00 00 00 */ cmpwi r0, 0
+/* 801CA790 001C63F0 41 82 00 0C */ beq lbl_801CA79C
+lbl_801CA794:
+/* 801CA794 001C63F4 38 60 00 05 */ li r3, 5
+/* 801CA798 001C63F8 48 00 00 10 */ b lbl_801CA7A8
+lbl_801CA79C:
+/* 801CA79C 001C63FC 38 60 00 03 */ li r3, 3
+/* 801CA7A0 001C6400 48 00 00 08 */ b lbl_801CA7A8
+lbl_801CA7A4:
+/* 801CA7A4 001C6404 38 60 00 04 */ li r3, 4
+lbl_801CA7A8:
+/* 801CA7A8 001C6408 38 21 00 10 */ addi r1, r1, 0x10
+/* 801CA7AC 001C640C 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/mbstring.s b/asm/MSL_C/MSL_Common/mbstring.s
new file mode 100644
index 0000000..559037d
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/mbstring.s
@@ -0,0 +1,105 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global mbtowc
+mbtowc:
+/* 801CA13C 001C5D9C 3C C0 80 42 */ lis r6, lbl_80422D48@ha
+/* 801CA140 001C5DA0 38 C6 2D 48 */ addi r6, r6, lbl_80422D48@l
+/* 801CA144 001C5DA4 80 C6 00 38 */ lwz r6, 0x38(r6)
+/* 801CA148 001C5DA8 81 86 00 20 */ lwz r12, 0x20(r6)
+/* 801CA14C 001C5DAC 7D 89 03 A6 */ mtctr r12
+/* 801CA150 001C5DB0 4E 80 04 20 */ bctr
+
+.global __mbtowc_noconv
+__mbtowc_noconv:
+/* 801CA154 001C5DB4 2C 04 00 00 */ cmpwi r4, 0
+/* 801CA158 001C5DB8 40 82 00 0C */ bne lbl_801CA164
+/* 801CA15C 001C5DBC 38 60 00 00 */ li r3, 0
+/* 801CA160 001C5DC0 4E 80 00 20 */ blr
+lbl_801CA164:
+/* 801CA164 001C5DC4 2C 05 00 00 */ cmpwi r5, 0
+/* 801CA168 001C5DC8 40 82 00 0C */ bne lbl_801CA174
+/* 801CA16C 001C5DCC 38 60 FF FF */ li r3, -1
+/* 801CA170 001C5DD0 4E 80 00 20 */ blr
+lbl_801CA174:
+/* 801CA174 001C5DD4 2C 03 00 00 */ cmpwi r3, 0
+/* 801CA178 001C5DD8 41 82 00 0C */ beq lbl_801CA184
+/* 801CA17C 001C5DDC 88 04 00 00 */ lbz r0, 0(r4)
+/* 801CA180 001C5DE0 B0 03 00 00 */ sth r0, 0(r3)
+lbl_801CA184:
+/* 801CA184 001C5DE4 88 04 00 00 */ lbz r0, 0(r4)
+/* 801CA188 001C5DE8 7C 00 07 75 */ extsb. r0, r0
+/* 801CA18C 001C5DEC 40 82 00 0C */ bne lbl_801CA198
+/* 801CA190 001C5DF0 38 60 00 00 */ li r3, 0
+/* 801CA194 001C5DF4 4E 80 00 20 */ blr
+lbl_801CA198:
+/* 801CA198 001C5DF8 38 60 00 01 */ li r3, 1
+/* 801CA19C 001C5DFC 4E 80 00 20 */ blr
+
+.global __wctomb_noconv
+__wctomb_noconv:
+/* 801CA1A0 001C5E00 2C 03 00 00 */ cmpwi r3, 0
+/* 801CA1A4 001C5E04 40 82 00 0C */ bne lbl_801CA1B0
+/* 801CA1A8 001C5E08 38 60 00 00 */ li r3, 0
+/* 801CA1AC 001C5E0C 4E 80 00 20 */ blr
+lbl_801CA1B0:
+/* 801CA1B0 001C5E10 98 83 00 00 */ stb r4, 0(r3)
+/* 801CA1B4 001C5E14 38 60 00 01 */ li r3, 1
+/* 801CA1B8 001C5E18 4E 80 00 20 */ blr
+
+.global wcstombs
+wcstombs:
+/* 801CA1BC 001C5E1C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 801CA1C0 001C5E20 7C 08 02 A6 */ mflr r0
+/* 801CA1C4 001C5E24 2C 03 00 00 */ cmpwi r3, 0
+/* 801CA1C8 001C5E28 90 01 00 34 */ stw r0, 0x34(r1)
+/* 801CA1CC 001C5E2C BF 41 00 18 */ stmw r26, 0x18(r1)
+/* 801CA1D0 001C5E30 7C 7A 1B 78 */ mr r26, r3
+/* 801CA1D4 001C5E34 7C BB 2B 78 */ mr r27, r5
+/* 801CA1D8 001C5E38 3B A0 00 00 */ li r29, 0
+/* 801CA1DC 001C5E3C 41 82 00 0C */ beq lbl_801CA1E8
+/* 801CA1E0 001C5E40 2C 04 00 00 */ cmpwi r4, 0
+/* 801CA1E4 001C5E44 40 82 00 0C */ bne lbl_801CA1F0
+lbl_801CA1E8:
+/* 801CA1E8 001C5E48 38 60 00 00 */ li r3, 0
+/* 801CA1EC 001C5E4C 48 00 00 74 */ b lbl_801CA260
+lbl_801CA1F0:
+/* 801CA1F0 001C5E50 3F E0 80 42 */ lis r31, lbl_80422D48@ha
+/* 801CA1F4 001C5E54 7C 9C 23 78 */ mr r28, r4
+/* 801CA1F8 001C5E58 3B FF 2D 48 */ addi r31, r31, lbl_80422D48@l
+/* 801CA1FC 001C5E5C 48 00 00 58 */ b lbl_801CA254
+lbl_801CA200:
+/* 801CA200 001C5E60 A0 9C 00 00 */ lhz r4, 0(r28)
+/* 801CA204 001C5E64 2C 04 00 00 */ cmpwi r4, 0
+/* 801CA208 001C5E68 40 82 00 10 */ bne lbl_801CA218
+/* 801CA20C 001C5E6C 38 00 00 00 */ li r0, 0
+/* 801CA210 001C5E70 7C 1A E9 AE */ stbx r0, r26, r29
+/* 801CA214 001C5E74 48 00 00 48 */ b lbl_801CA25C
+lbl_801CA218:
+/* 801CA218 001C5E78 80 BF 00 38 */ lwz r5, 0x38(r31)
+/* 801CA21C 001C5E7C 38 61 00 08 */ addi r3, r1, 8
+/* 801CA220 001C5E80 81 85 00 24 */ lwz r12, 0x24(r5)
+/* 801CA224 001C5E84 7D 89 03 A6 */ mtctr r12
+/* 801CA228 001C5E88 3B 9C 00 02 */ addi r28, r28, 2
+/* 801CA22C 001C5E8C 4E 80 04 21 */ bctrl
+/* 801CA230 001C5E90 7C 1D 1A 14 */ add r0, r29, r3
+/* 801CA234 001C5E94 7C 7E 1B 78 */ mr r30, r3
+/* 801CA238 001C5E98 7C 00 D8 40 */ cmplw r0, r27
+/* 801CA23C 001C5E9C 41 81 00 20 */ bgt lbl_801CA25C
+/* 801CA240 001C5EA0 7F C5 F3 78 */ mr r5, r30
+/* 801CA244 001C5EA4 7C 7A EA 14 */ add r3, r26, r29
+/* 801CA248 001C5EA8 38 81 00 08 */ addi r4, r1, 8
+/* 801CA24C 001C5EAC 48 00 41 45 */ bl strncpy
+/* 801CA250 001C5EB0 7F BD F2 14 */ add r29, r29, r30
+lbl_801CA254:
+/* 801CA254 001C5EB4 7C 1D D8 40 */ cmplw r29, r27
+/* 801CA258 001C5EB8 40 81 FF A8 */ ble lbl_801CA200
+lbl_801CA25C:
+/* 801CA25C 001C5EBC 7F A3 EB 78 */ mr r3, r29
+lbl_801CA260:
+/* 801CA260 001C5EC0 BB 41 00 18 */ lmw r26, 0x18(r1)
+/* 801CA264 001C5EC4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 801CA268 001C5EC8 7C 08 03 A6 */ mtlr r0
+/* 801CA26C 001C5ECC 38 21 00 30 */ addi r1, r1, 0x30
+/* 801CA270 001C5ED0 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/mem.s b/asm/MSL_C/MSL_Common/mem.s
new file mode 100644
index 0000000..4d333ae
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/mem.s
@@ -0,0 +1,125 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global memmove
+memmove:
+/* 801CA274 001C5ED4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801CA278 001C5ED8 7C 08 02 A6 */ mflr r0
+/* 801CA27C 001C5EDC 7C 66 22 78 */ xor r6, r3, r4
+/* 801CA280 001C5EE0 28 05 00 20 */ cmplwi r5, 0x20
+/* 801CA284 001C5EE4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801CA288 001C5EE8 7C C0 00 34 */ cntlzw r0, r6
+/* 801CA28C 001C5EEC 7C 60 00 30 */ slw r0, r3, r0
+/* 801CA290 001C5EF0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801CA294 001C5EF4 7C 7F 1B 78 */ mr r31, r3
+/* 801CA298 001C5EF8 54 07 0F FE */ srwi r7, r0, 0x1f
+/* 801CA29C 001C5EFC 41 80 00 40 */ blt lbl_801CA2DC
+/* 801CA2A0 001C5F00 54 C0 07 BF */ clrlwi. r0, r6, 0x1e
+/* 801CA2A4 001C5F04 41 82 00 1C */ beq lbl_801CA2C0
+/* 801CA2A8 001C5F08 2C 07 00 00 */ cmpwi r7, 0
+/* 801CA2AC 001C5F0C 40 82 00 0C */ bne lbl_801CA2B8
+/* 801CA2B0 001C5F10 48 00 02 99 */ bl __copy_longs_unaligned
+/* 801CA2B4 001C5F14 48 00 00 20 */ b lbl_801CA2D4
+lbl_801CA2B8:
+/* 801CA2B8 001C5F18 48 00 03 51 */ bl __copy_longs_rev_unaligned
+/* 801CA2BC 001C5F1C 48 00 00 18 */ b lbl_801CA2D4
+lbl_801CA2C0:
+/* 801CA2C0 001C5F20 2C 07 00 00 */ cmpwi r7, 0
+/* 801CA2C4 001C5F24 40 82 00 0C */ bne lbl_801CA2D0
+/* 801CA2C8 001C5F28 48 00 01 1D */ bl __copy_longs_aligned
+/* 801CA2CC 001C5F2C 48 00 00 08 */ b lbl_801CA2D4
+lbl_801CA2D0:
+/* 801CA2D0 001C5F30 48 00 01 D1 */ bl __copy_longs_rev_aligned
+lbl_801CA2D4:
+/* 801CA2D4 001C5F34 7F E3 FB 78 */ mr r3, r31
+/* 801CA2D8 001C5F38 48 00 00 54 */ b lbl_801CA32C
+lbl_801CA2DC:
+/* 801CA2DC 001C5F3C 2C 07 00 00 */ cmpwi r7, 0
+/* 801CA2E0 001C5F40 40 82 00 28 */ bne lbl_801CA308
+/* 801CA2E4 001C5F44 38 84 FF FF */ addi r4, r4, -1
+/* 801CA2E8 001C5F48 38 63 FF FF */ addi r3, r3, -1
+/* 801CA2EC 001C5F4C 38 A5 00 01 */ addi r5, r5, 1
+/* 801CA2F0 001C5F50 48 00 00 0C */ b lbl_801CA2FC
+lbl_801CA2F4:
+/* 801CA2F4 001C5F54 8C 04 00 01 */ lbzu r0, 1(r4)
+/* 801CA2F8 001C5F58 9C 03 00 01 */ stbu r0, 1(r3)
+lbl_801CA2FC:
+/* 801CA2FC 001C5F5C 34 A5 FF FF */ addic. r5, r5, -1
+/* 801CA300 001C5F60 40 82 FF F4 */ bne lbl_801CA2F4
+/* 801CA304 001C5F64 48 00 00 24 */ b lbl_801CA328
+lbl_801CA308:
+/* 801CA308 001C5F68 7C 84 2A 14 */ add r4, r4, r5
+/* 801CA30C 001C5F6C 7C 63 2A 14 */ add r3, r3, r5
+/* 801CA310 001C5F70 38 A5 00 01 */ addi r5, r5, 1
+/* 801CA314 001C5F74 48 00 00 0C */ b lbl_801CA320
+lbl_801CA318:
+/* 801CA318 001C5F78 8C 04 FF FF */ lbzu r0, -1(r4)
+/* 801CA31C 001C5F7C 9C 03 FF FF */ stbu r0, -1(r3)
+lbl_801CA320:
+/* 801CA320 001C5F80 34 A5 FF FF */ addic. r5, r5, -1
+/* 801CA324 001C5F84 40 82 FF F4 */ bne lbl_801CA318
+lbl_801CA328:
+/* 801CA328 001C5F88 7F E3 FB 78 */ mr r3, r31
+lbl_801CA32C:
+/* 801CA32C 001C5F8C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801CA330 001C5F90 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801CA334 001C5F94 7C 08 03 A6 */ mtlr r0
+/* 801CA338 001C5F98 38 21 00 10 */ addi r1, r1, 0x10
+/* 801CA33C 001C5F9C 4E 80 00 20 */ blr
+
+.global memchr
+memchr:
+/* 801CA340 001C5FA0 54 84 06 3E */ clrlwi r4, r4, 0x18
+/* 801CA344 001C5FA4 38 63 FF FF */ addi r3, r3, -1
+/* 801CA348 001C5FA8 38 A5 00 01 */ addi r5, r5, 1
+/* 801CA34C 001C5FAC 48 00 00 10 */ b lbl_801CA35C
+lbl_801CA350:
+/* 801CA350 001C5FB0 8C 03 00 01 */ lbzu r0, 1(r3)
+/* 801CA354 001C5FB4 7C 00 20 40 */ cmplw r0, r4
+/* 801CA358 001C5FB8 4D 82 00 20 */ beqlr
+lbl_801CA35C:
+/* 801CA35C 001C5FBC 34 A5 FF FF */ addic. r5, r5, -1
+/* 801CA360 001C5FC0 40 82 FF F0 */ bne lbl_801CA350
+/* 801CA364 001C5FC4 38 60 00 00 */ li r3, 0
+/* 801CA368 001C5FC8 4E 80 00 20 */ blr
+
+.global __memrchr
+__memrchr:
+/* 801CA36C 001C5FCC 7C 63 2A 14 */ add r3, r3, r5
+/* 801CA370 001C5FD0 54 84 06 3E */ clrlwi r4, r4, 0x18
+/* 801CA374 001C5FD4 38 A5 00 01 */ addi r5, r5, 1
+/* 801CA378 001C5FD8 48 00 00 10 */ b lbl_801CA388
+lbl_801CA37C:
+/* 801CA37C 001C5FDC 8C 03 FF FF */ lbzu r0, -1(r3)
+/* 801CA380 001C5FE0 7C 00 20 40 */ cmplw r0, r4
+/* 801CA384 001C5FE4 4D 82 00 20 */ beqlr
+lbl_801CA388:
+/* 801CA388 001C5FE8 34 A5 FF FF */ addic. r5, r5, -1
+/* 801CA38C 001C5FEC 40 82 FF F0 */ bne lbl_801CA37C
+/* 801CA390 001C5FF0 38 60 00 00 */ li r3, 0
+/* 801CA394 001C5FF4 4E 80 00 20 */ blr
+
+.global memcmp
+memcmp:
+/* 801CA398 001C5FF8 38 E4 FF FF */ addi r7, r4, -1
+/* 801CA39C 001C5FFC 38 C3 FF FF */ addi r6, r3, -1
+/* 801CA3A0 001C6000 38 85 00 01 */ addi r4, r5, 1
+/* 801CA3A4 001C6004 48 00 00 30 */ b lbl_801CA3D4
+lbl_801CA3A8:
+/* 801CA3A8 001C6008 8C 66 00 01 */ lbzu r3, 1(r6)
+/* 801CA3AC 001C600C 8C 07 00 01 */ lbzu r0, 1(r7)
+/* 801CA3B0 001C6010 7C 03 00 40 */ cmplw r3, r0
+/* 801CA3B4 001C6014 41 82 00 20 */ beq lbl_801CA3D4
+/* 801CA3B8 001C6018 88 86 00 00 */ lbz r4, 0(r6)
+/* 801CA3BC 001C601C 38 60 00 01 */ li r3, 1
+/* 801CA3C0 001C6020 88 07 00 00 */ lbz r0, 0(r7)
+/* 801CA3C4 001C6024 7C 04 00 40 */ cmplw r4, r0
+/* 801CA3C8 001C6028 4C 80 00 20 */ bgelr
+/* 801CA3CC 001C602C 38 60 FF FF */ li r3, -1
+/* 801CA3D0 001C6030 4E 80 00 20 */ blr
+lbl_801CA3D4:
+/* 801CA3D4 001C6034 34 84 FF FF */ addic. r4, r4, -1
+/* 801CA3D8 001C6038 40 82 FF D0 */ bne lbl_801CA3A8
+/* 801CA3DC 001C603C 38 60 00 00 */ li r3, 0
+/* 801CA3E0 001C6040 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/mem_funcs.s b/asm/MSL_C/MSL_Common/mem_funcs.s
new file mode 100644
index 0000000..426d2cb
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/mem_funcs.s
@@ -0,0 +1,219 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __copy_longs_aligned
+__copy_longs_aligned:
+/* 801CA3E4 001C6044 7C 03 00 D0 */ neg r0, r3
+/* 801CA3E8 001C6048 38 84 FF FF */ addi r4, r4, -1
+/* 801CA3EC 001C604C 54 06 07 BF */ clrlwi. r6, r0, 0x1e
+/* 801CA3F0 001C6050 38 63 FF FF */ addi r3, r3, -1
+/* 801CA3F4 001C6054 41 82 00 18 */ beq lbl_801CA40C
+/* 801CA3F8 001C6058 7C A6 28 50 */ subf r5, r6, r5
+lbl_801CA3FC:
+/* 801CA3FC 001C605C 8C 04 00 01 */ lbzu r0, 1(r4)
+/* 801CA400 001C6060 34 C6 FF FF */ addic. r6, r6, -1
+/* 801CA404 001C6064 9C 03 00 01 */ stbu r0, 1(r3)
+/* 801CA408 001C6068 40 82 FF F4 */ bne lbl_801CA3FC
+lbl_801CA40C:
+/* 801CA40C 001C606C 54 A6 D9 7F */ rlwinm. r6, r5, 0x1b, 5, 0x1f
+/* 801CA410 001C6070 38 E4 FF FD */ addi r7, r4, -3
+/* 801CA414 001C6074 38 83 FF FD */ addi r4, r3, -3
+/* 801CA418 001C6078 41 82 00 4C */ beq lbl_801CA464
+lbl_801CA41C:
+/* 801CA41C 001C607C 80 67 00 04 */ lwz r3, 4(r7)
+/* 801CA420 001C6080 34 C6 FF FF */ addic. r6, r6, -1
+/* 801CA424 001C6084 80 07 00 08 */ lwz r0, 8(r7)
+/* 801CA428 001C6088 90 64 00 04 */ stw r3, 4(r4)
+/* 801CA42C 001C608C 80 67 00 0C */ lwz r3, 0xc(r7)
+/* 801CA430 001C6090 90 04 00 08 */ stw r0, 8(r4)
+/* 801CA434 001C6094 80 07 00 10 */ lwz r0, 0x10(r7)
+/* 801CA438 001C6098 90 64 00 0C */ stw r3, 0xc(r4)
+/* 801CA43C 001C609C 80 67 00 14 */ lwz r3, 0x14(r7)
+/* 801CA440 001C60A0 90 04 00 10 */ stw r0, 0x10(r4)
+/* 801CA444 001C60A4 80 07 00 18 */ lwz r0, 0x18(r7)
+/* 801CA448 001C60A8 90 64 00 14 */ stw r3, 0x14(r4)
+/* 801CA44C 001C60AC 80 67 00 1C */ lwz r3, 0x1c(r7)
+/* 801CA450 001C60B0 90 04 00 18 */ stw r0, 0x18(r4)
+/* 801CA454 001C60B4 84 07 00 20 */ lwzu r0, 0x20(r7)
+/* 801CA458 001C60B8 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 801CA45C 001C60BC 94 04 00 20 */ stwu r0, 0x20(r4)
+/* 801CA460 001C60C0 40 82 FF BC */ bne lbl_801CA41C
+lbl_801CA464:
+/* 801CA464 001C60C4 54 A3 F7 7F */ rlwinm. r3, r5, 0x1e, 0x1d, 0x1f
+/* 801CA468 001C60C8 41 82 00 14 */ beq lbl_801CA47C
+lbl_801CA46C:
+/* 801CA46C 001C60CC 84 07 00 04 */ lwzu r0, 4(r7)
+/* 801CA470 001C60D0 34 63 FF FF */ addic. r3, r3, -1
+/* 801CA474 001C60D4 94 04 00 04 */ stwu r0, 4(r4)
+/* 801CA478 001C60D8 40 82 FF F4 */ bne lbl_801CA46C
+lbl_801CA47C:
+/* 801CA47C 001C60DC 54 A5 07 BF */ clrlwi. r5, r5, 0x1e
+/* 801CA480 001C60E0 38 C7 00 03 */ addi r6, r7, 3
+/* 801CA484 001C60E4 38 64 00 03 */ addi r3, r4, 3
+/* 801CA488 001C60E8 4D 82 00 20 */ beqlr
+lbl_801CA48C:
+/* 801CA48C 001C60EC 8C 06 00 01 */ lbzu r0, 1(r6)
+/* 801CA490 001C60F0 34 A5 FF FF */ addic. r5, r5, -1
+/* 801CA494 001C60F4 9C 03 00 01 */ stbu r0, 1(r3)
+/* 801CA498 001C60F8 40 82 FF F4 */ bne lbl_801CA48C
+/* 801CA49C 001C60FC 4E 80 00 20 */ blr
+
+.global __copy_longs_rev_aligned
+__copy_longs_rev_aligned:
+/* 801CA4A0 001C6100 7C E3 2A 14 */ add r7, r3, r5
+/* 801CA4A4 001C6104 7C C4 2A 14 */ add r6, r4, r5
+/* 801CA4A8 001C6108 54 E3 07 BF */ clrlwi. r3, r7, 0x1e
+/* 801CA4AC 001C610C 41 82 00 18 */ beq lbl_801CA4C4
+/* 801CA4B0 001C6110 7C A3 28 50 */ subf r5, r3, r5
+lbl_801CA4B4:
+/* 801CA4B4 001C6114 8C 06 FF FF */ lbzu r0, -1(r6)
+/* 801CA4B8 001C6118 34 63 FF FF */ addic. r3, r3, -1
+/* 801CA4BC 001C611C 9C 07 FF FF */ stbu r0, -1(r7)
+/* 801CA4C0 001C6120 40 82 FF F4 */ bne lbl_801CA4B4
+lbl_801CA4C4:
+/* 801CA4C4 001C6124 54 A4 D9 7F */ rlwinm. r4, r5, 0x1b, 5, 0x1f
+/* 801CA4C8 001C6128 41 82 00 4C */ beq lbl_801CA514
+lbl_801CA4CC:
+/* 801CA4CC 001C612C 80 66 FF FC */ lwz r3, -4(r6)
+/* 801CA4D0 001C6130 34 84 FF FF */ addic. r4, r4, -1
+/* 801CA4D4 001C6134 80 06 FF F8 */ lwz r0, -8(r6)
+/* 801CA4D8 001C6138 90 67 FF FC */ stw r3, -4(r7)
+/* 801CA4DC 001C613C 80 66 FF F4 */ lwz r3, -0xc(r6)
+/* 801CA4E0 001C6140 90 07 FF F8 */ stw r0, -8(r7)
+/* 801CA4E4 001C6144 80 06 FF F0 */ lwz r0, -0x10(r6)
+/* 801CA4E8 001C6148 90 67 FF F4 */ stw r3, -0xc(r7)
+/* 801CA4EC 001C614C 80 66 FF EC */ lwz r3, -0x14(r6)
+/* 801CA4F0 001C6150 90 07 FF F0 */ stw r0, -0x10(r7)
+/* 801CA4F4 001C6154 80 06 FF E8 */ lwz r0, -0x18(r6)
+/* 801CA4F8 001C6158 90 67 FF EC */ stw r3, -0x14(r7)
+/* 801CA4FC 001C615C 80 66 FF E4 */ lwz r3, -0x1c(r6)
+/* 801CA500 001C6160 90 07 FF E8 */ stw r0, -0x18(r7)
+/* 801CA504 001C6164 84 06 FF E0 */ lwzu r0, -0x20(r6)
+/* 801CA508 001C6168 90 67 FF E4 */ stw r3, -0x1c(r7)
+/* 801CA50C 001C616C 94 07 FF E0 */ stwu r0, -0x20(r7)
+/* 801CA510 001C6170 40 82 FF BC */ bne lbl_801CA4CC
+lbl_801CA514:
+/* 801CA514 001C6174 54 A3 F7 7F */ rlwinm. r3, r5, 0x1e, 0x1d, 0x1f
+/* 801CA518 001C6178 41 82 00 14 */ beq lbl_801CA52C
+lbl_801CA51C:
+/* 801CA51C 001C617C 84 06 FF FC */ lwzu r0, -4(r6)
+/* 801CA520 001C6180 34 63 FF FF */ addic. r3, r3, -1
+/* 801CA524 001C6184 94 07 FF FC */ stwu r0, -4(r7)
+/* 801CA528 001C6188 40 82 FF F4 */ bne lbl_801CA51C
+lbl_801CA52C:
+/* 801CA52C 001C618C 54 A5 07 BF */ clrlwi. r5, r5, 0x1e
+/* 801CA530 001C6190 4D 82 00 20 */ beqlr
+lbl_801CA534:
+/* 801CA534 001C6194 8C 06 FF FF */ lbzu r0, -1(r6)
+/* 801CA538 001C6198 34 A5 FF FF */ addic. r5, r5, -1
+/* 801CA53C 001C619C 9C 07 FF FF */ stbu r0, -1(r7)
+/* 801CA540 001C61A0 40 82 FF F4 */ bne lbl_801CA534
+/* 801CA544 001C61A4 4E 80 00 20 */ blr
+
+.global __copy_longs_unaligned
+__copy_longs_unaligned:
+/* 801CA548 001C61A8 7C 03 00 D0 */ neg r0, r3
+/* 801CA54C 001C61AC 39 04 FF FF */ addi r8, r4, -1
+/* 801CA550 001C61B0 54 06 07 BF */ clrlwi. r6, r0, 0x1e
+/* 801CA554 001C61B4 38 63 FF FF */ addi r3, r3, -1
+/* 801CA558 001C61B8 41 82 00 18 */ beq lbl_801CA570
+/* 801CA55C 001C61BC 7C A6 28 50 */ subf r5, r6, r5
+lbl_801CA560:
+/* 801CA560 001C61C0 8C 08 00 01 */ lbzu r0, 1(r8)
+/* 801CA564 001C61C4 34 C6 FF FF */ addic. r6, r6, -1
+/* 801CA568 001C61C8 9C 03 00 01 */ stbu r0, 1(r3)
+/* 801CA56C 001C61CC 40 82 FF F4 */ bne lbl_801CA560
+lbl_801CA570:
+/* 801CA570 001C61D0 38 08 00 01 */ addi r0, r8, 1
+/* 801CA574 001C61D4 38 C3 FF FD */ addi r6, r3, -3
+/* 801CA578 001C61D8 54 09 07 BE */ clrlwi r9, r0, 0x1e
+/* 801CA57C 001C61DC 54 A7 E8 FE */ srwi r7, r5, 3
+/* 801CA580 001C61E0 7D 09 40 50 */ subf r8, r9, r8
+/* 801CA584 001C61E4 54 0A 1E F8 */ rlwinm r10, r0, 3, 0x1b, 0x1c
+/* 801CA588 001C61E8 84 88 00 01 */ lwzu r4, 1(r8)
+/* 801CA58C 001C61EC 21 6A 00 20 */ subfic r11, r10, 0x20
+lbl_801CA590:
+/* 801CA590 001C61F0 80 68 00 04 */ lwz r3, 4(r8)
+/* 801CA594 001C61F4 7C 84 50 30 */ slw r4, r4, r10
+/* 801CA598 001C61F8 34 E7 FF FF */ addic. r7, r7, -1
+/* 801CA59C 001C61FC 7C 60 5C 30 */ srw r0, r3, r11
+/* 801CA5A0 001C6200 7C 63 50 30 */ slw r3, r3, r10
+/* 801CA5A4 001C6204 7C 80 03 78 */ or r0, r4, r0
+/* 801CA5A8 001C6208 90 06 00 04 */ stw r0, 4(r6)
+/* 801CA5AC 001C620C 84 88 00 08 */ lwzu r4, 8(r8)
+/* 801CA5B0 001C6210 7C 80 5C 30 */ srw r0, r4, r11
+/* 801CA5B4 001C6214 7C 60 03 78 */ or r0, r3, r0
+/* 801CA5B8 001C6218 94 06 00 08 */ stwu r0, 8(r6)
+/* 801CA5BC 001C621C 40 82 FF D4 */ bne lbl_801CA590
+/* 801CA5C0 001C6220 54 A0 07 7B */ rlwinm. r0, r5, 0, 0x1d, 0x1d
+/* 801CA5C4 001C6224 41 82 00 18 */ beq lbl_801CA5DC
+/* 801CA5C8 001C6228 84 08 00 04 */ lwzu r0, 4(r8)
+/* 801CA5CC 001C622C 7C 83 50 30 */ slw r3, r4, r10
+/* 801CA5D0 001C6230 7C 00 5C 30 */ srw r0, r0, r11
+/* 801CA5D4 001C6234 7C 60 03 78 */ or r0, r3, r0
+/* 801CA5D8 001C6238 94 06 00 04 */ stwu r0, 4(r6)
+lbl_801CA5DC:
+/* 801CA5DC 001C623C 54 A5 07 BF */ clrlwi. r5, r5, 0x1e
+/* 801CA5E0 001C6240 38 88 00 03 */ addi r4, r8, 3
+/* 801CA5E4 001C6244 38 66 00 03 */ addi r3, r6, 3
+/* 801CA5E8 001C6248 4D 82 00 20 */ beqlr
+/* 801CA5EC 001C624C 20 09 00 04 */ subfic r0, r9, 4
+/* 801CA5F0 001C6250 7C 80 20 50 */ subf r4, r0, r4
+lbl_801CA5F4:
+/* 801CA5F4 001C6254 8C 04 00 01 */ lbzu r0, 1(r4)
+/* 801CA5F8 001C6258 34 A5 FF FF */ addic. r5, r5, -1
+/* 801CA5FC 001C625C 9C 03 00 01 */ stbu r0, 1(r3)
+/* 801CA600 001C6260 40 82 FF F4 */ bne lbl_801CA5F4
+/* 801CA604 001C6264 4E 80 00 20 */ blr
+
+.global __copy_longs_rev_unaligned
+__copy_longs_rev_unaligned:
+/* 801CA608 001C6268 7D 63 2A 14 */ add r11, r3, r5
+/* 801CA60C 001C626C 7D 44 2A 14 */ add r10, r4, r5
+/* 801CA610 001C6270 55 63 07 BF */ clrlwi. r3, r11, 0x1e
+/* 801CA614 001C6274 41 82 00 18 */ beq lbl_801CA62C
+/* 801CA618 001C6278 7C A3 28 50 */ subf r5, r3, r5
+lbl_801CA61C:
+/* 801CA61C 001C627C 8C 0A FF FF */ lbzu r0, -1(r10)
+/* 801CA620 001C6280 34 63 FF FF */ addic. r3, r3, -1
+/* 801CA624 001C6284 9C 0B FF FF */ stbu r0, -1(r11)
+/* 801CA628 001C6288 40 82 FF F4 */ bne lbl_801CA61C
+lbl_801CA62C:
+/* 801CA62C 001C628C 55 48 1E F8 */ rlwinm r8, r10, 3, 0x1b, 0x1c
+/* 801CA630 001C6290 55 47 07 BE */ clrlwi r7, r10, 0x1e
+/* 801CA634 001C6294 21 28 00 20 */ subfic r9, r8, 0x20
+/* 801CA638 001C6298 54 A6 E8 FE */ srwi r6, r5, 3
+/* 801CA63C 001C629C 20 07 00 04 */ subfic r0, r7, 4
+/* 801CA640 001C62A0 7D 4A 02 14 */ add r10, r10, r0
+/* 801CA644 001C62A4 84 8A FF FC */ lwzu r4, -4(r10)
+lbl_801CA648:
+/* 801CA648 001C62A8 80 0A FF FC */ lwz r0, -4(r10)
+/* 801CA64C 001C62AC 7C 83 4C 30 */ srw r3, r4, r9
+/* 801CA650 001C62B0 34 C6 FF FF */ addic. r6, r6, -1
+/* 801CA654 001C62B4 7C 04 40 30 */ slw r4, r0, r8
+/* 801CA658 001C62B8 7C 00 4C 30 */ srw r0, r0, r9
+/* 801CA65C 001C62BC 7C 83 1B 78 */ or r3, r4, r3
+/* 801CA660 001C62C0 90 6B FF FC */ stw r3, -4(r11)
+/* 801CA664 001C62C4 84 8A FF F8 */ lwzu r4, -8(r10)
+/* 801CA668 001C62C8 7C 83 40 30 */ slw r3, r4, r8
+/* 801CA66C 001C62CC 7C 60 03 78 */ or r0, r3, r0
+/* 801CA670 001C62D0 94 0B FF F8 */ stwu r0, -8(r11)
+/* 801CA674 001C62D4 40 82 FF D4 */ bne lbl_801CA648
+/* 801CA678 001C62D8 54 A0 07 7B */ rlwinm. r0, r5, 0, 0x1d, 0x1d
+/* 801CA67C 001C62DC 41 82 00 18 */ beq lbl_801CA694
+/* 801CA680 001C62E0 84 6A FF FC */ lwzu r3, -4(r10)
+/* 801CA684 001C62E4 7C 80 4C 30 */ srw r0, r4, r9
+/* 801CA688 001C62E8 7C 63 40 30 */ slw r3, r3, r8
+/* 801CA68C 001C62EC 7C 60 03 78 */ or r0, r3, r0
+/* 801CA690 001C62F0 94 0B FF FC */ stwu r0, -4(r11)
+lbl_801CA694:
+/* 801CA694 001C62F4 54 A5 07 BF */ clrlwi. r5, r5, 0x1e
+/* 801CA698 001C62F8 4D 82 00 20 */ beqlr
+/* 801CA69C 001C62FC 7D 4A 3A 14 */ add r10, r10, r7
+lbl_801CA6A0:
+/* 801CA6A0 001C6300 8C 0A FF FF */ lbzu r0, -1(r10)
+/* 801CA6A4 001C6304 34 A5 FF FF */ addic. r5, r5, -1
+/* 801CA6A8 001C6308 9C 0B FF FF */ stbu r0, -1(r11)
+/* 801CA6AC 001C630C 40 82 FF F4 */ bne lbl_801CA6A0
+/* 801CA6B0 001C6310 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/misc_io.s b/asm/MSL_C/MSL_Common/misc_io.s
new file mode 100644
index 0000000..1ccfb0c
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/misc_io.s
@@ -0,0 +1,10 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __stdio_atexit
+__stdio_atexit:
+/* 801CA7B0 001C6410 3C 60 80 1C */ lis r3, __close_all@ha
+/* 801CA7B4 001C6414 38 63 78 94 */ addi r3, r3, __close_all@l
+/* 801CA7B8 001C6418 90 6D 9F D8 */ stw r3, lbl_8063F298-_SDA_BASE_(r13)
+/* 801CA7BC 001C641C 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/printf.s b/asm/MSL_C/MSL_Common/printf.s
new file mode 100644
index 0000000..f437ec1
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/printf.s
@@ -0,0 +1,2649 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+parse_format:
+/* 801CA7C0 001C6420 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 801CA7C4 001C6424 7C 08 02 A6 */ mflr r0
+/* 801CA7C8 001C6428 38 E0 00 00 */ li r7, 0
+/* 801CA7CC 001C642C 88 C3 00 01 */ lbz r6, 1(r3)
+/* 801CA7D0 001C6430 90 01 00 34 */ stw r0, 0x34(r1)
+/* 801CA7D4 001C6434 39 00 00 01 */ li r8, 1
+/* 801CA7D8 001C6438 7C C6 07 74 */ extsb r6, r6
+/* 801CA7DC 001C643C 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 801CA7E0 001C6440 2C 06 00 25 */ cmpwi r6, 0x25
+/* 801CA7E4 001C6444 3B E3 00 01 */ addi r31, r3, 1
+/* 801CA7E8 001C6448 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 801CA7EC 001C644C 7C BE 2B 78 */ mr r30, r5
+/* 801CA7F0 001C6450 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 801CA7F4 001C6454 7C 9D 23 78 */ mr r29, r4
+/* 801CA7F8 001C6458 98 E1 00 09 */ stb r7, 9(r1)
+/* 801CA7FC 001C645C 99 01 00 08 */ stb r8, 8(r1)
+/* 801CA800 001C6460 98 E1 00 0A */ stb r7, 0xa(r1)
+/* 801CA804 001C6464 98 E1 00 0B */ stb r7, 0xb(r1)
+/* 801CA808 001C6468 98 E1 00 0C */ stb r7, 0xc(r1)
+/* 801CA80C 001C646C 90 E1 00 10 */ stw r7, 0x10(r1)
+/* 801CA810 001C6470 90 E1 00 14 */ stw r7, 0x14(r1)
+/* 801CA814 001C6474 40 82 00 28 */ bne lbl_801CA83C
+/* 801CA818 001C6478 98 C1 00 0D */ stb r6, 0xd(r1)
+/* 801CA81C 001C647C 38 7F 00 01 */ addi r3, r31, 1
+/* 801CA820 001C6480 80 81 00 08 */ lwz r4, 8(r1)
+/* 801CA824 001C6484 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 801CA828 001C6488 90 85 00 00 */ stw r4, 0(r5)
+/* 801CA82C 001C648C 90 05 00 04 */ stw r0, 4(r5)
+/* 801CA830 001C6490 90 E5 00 08 */ stw r7, 8(r5)
+/* 801CA834 001C6494 90 E5 00 0C */ stw r7, 0xc(r5)
+/* 801CA838 001C6498 48 00 05 68 */ b lbl_801CADA0
+lbl_801CA83C:
+/* 801CA83C 001C649C 3C 80 80 42 */ lis r4, 0x8042
+/* 801CA840 001C64A0 38 00 00 02 */ li r0, 2
+lbl_801CA844:
+/* 801CA844 001C64A4 38 A6 FF E0 */ addi r5, r6, -32
+/* 801CA848 001C64A8 39 20 00 01 */ li r9, 1
+/* 801CA84C 001C64AC 28 05 00 10 */ cmplwi r5, 0x10
+/* 801CA850 001C64B0 41 81 00 58 */ bgt lbl_801CA8A8
+/* 801CA854 001C64B4 38 64 2E 70 */ addi r3, r4, 0x2e70
+/* 801CA858 001C64B8 54 A5 10 3A */ slwi r5, r5, 2
+/* 801CA85C 001C64BC 7C 63 28 2E */ lwzx r3, r3, r5
+/* 801CA860 001C64C0 7C 69 03 A6 */ mtctr r3
+/* 801CA864 001C64C4 4E 80 04 20 */ bctr
+/* 801CA868 001C64C8 98 E1 00 08 */ stb r7, 8(r1)
+/* 801CA86C 001C64CC 48 00 00 40 */ b lbl_801CA8AC
+/* 801CA870 001C64D0 99 01 00 09 */ stb r8, 9(r1)
+/* 801CA874 001C64D4 48 00 00 38 */ b lbl_801CA8AC
+/* 801CA878 001C64D8 88 61 00 09 */ lbz r3, 9(r1)
+/* 801CA87C 001C64DC 28 03 00 01 */ cmplwi r3, 1
+/* 801CA880 001C64E0 41 82 00 2C */ beq lbl_801CA8AC
+/* 801CA884 001C64E4 98 01 00 09 */ stb r0, 9(r1)
+/* 801CA888 001C64E8 48 00 00 24 */ b lbl_801CA8AC
+/* 801CA88C 001C64EC 99 01 00 0B */ stb r8, 0xb(r1)
+/* 801CA890 001C64F0 48 00 00 1C */ b lbl_801CA8AC
+/* 801CA894 001C64F4 88 61 00 08 */ lbz r3, 8(r1)
+/* 801CA898 001C64F8 2C 03 00 00 */ cmpwi r3, 0
+/* 801CA89C 001C64FC 41 82 00 10 */ beq lbl_801CA8AC
+/* 801CA8A0 001C6500 98 01 00 08 */ stb r0, 8(r1)
+/* 801CA8A4 001C6504 48 00 00 08 */ b lbl_801CA8AC
+lbl_801CA8A8:
+/* 801CA8A8 001C6508 39 20 00 00 */ li r9, 0
+lbl_801CA8AC:
+/* 801CA8AC 001C650C 2C 09 00 00 */ cmpwi r9, 0
+/* 801CA8B0 001C6510 41 82 00 10 */ beq lbl_801CA8C0
+/* 801CA8B4 001C6514 8C DF 00 01 */ lbzu r6, 1(r31)
+/* 801CA8B8 001C6518 7C C6 07 74 */ extsb r6, r6
+/* 801CA8BC 001C651C 4B FF FF 88 */ b lbl_801CA844
+lbl_801CA8C0:
+/* 801CA8C0 001C6520 2C 06 00 2A */ cmpwi r6, 0x2a
+/* 801CA8C4 001C6524 40 82 00 3C */ bne lbl_801CA900
+/* 801CA8C8 001C6528 7F A3 EB 78 */ mr r3, r29
+/* 801CA8CC 001C652C 38 80 00 01 */ li r4, 1
+/* 801CA8D0 001C6530 4B FF C2 B1 */ bl __va_arg
+/* 801CA8D4 001C6534 80 03 00 00 */ lwz r0, 0(r3)
+/* 801CA8D8 001C6538 2C 00 00 00 */ cmpwi r0, 0
+/* 801CA8DC 001C653C 90 01 00 10 */ stw r0, 0x10(r1)
+/* 801CA8E0 001C6540 40 80 00 14 */ bge lbl_801CA8F4
+/* 801CA8E4 001C6544 7C 00 00 D0 */ neg r0, r0
+/* 801CA8E8 001C6548 38 60 00 00 */ li r3, 0
+/* 801CA8EC 001C654C 98 61 00 08 */ stb r3, 8(r1)
+/* 801CA8F0 001C6550 90 01 00 10 */ stw r0, 0x10(r1)
+lbl_801CA8F4:
+/* 801CA8F4 001C6554 8C DF 00 01 */ lbzu r6, 1(r31)
+/* 801CA8F8 001C6558 7C C6 07 74 */ extsb r6, r6
+/* 801CA8FC 001C655C 48 00 00 70 */ b lbl_801CA96C
+lbl_801CA900:
+/* 801CA900 001C6560 3C 60 80 42 */ lis r3, lbl_80422D48@ha
+/* 801CA904 001C6564 38 63 2D 48 */ addi r3, r3, lbl_80422D48@l
+/* 801CA908 001C6568 80 83 00 38 */ lwz r4, 0x38(r3)
+/* 801CA90C 001C656C 48 00 00 20 */ b lbl_801CA92C
+lbl_801CA910:
+/* 801CA910 001C6570 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 801CA914 001C6574 1C 00 00 0A */ mulli r0, r0, 0xa
+/* 801CA918 001C6578 7C 66 02 14 */ add r3, r6, r0
+/* 801CA91C 001C657C 8C DF 00 01 */ lbzu r6, 1(r31)
+/* 801CA920 001C6580 38 03 FF D0 */ addi r0, r3, -48
+/* 801CA924 001C6584 90 01 00 10 */ stw r0, 0x10(r1)
+/* 801CA928 001C6588 7C C6 07 74 */ extsb r6, r6
+lbl_801CA92C:
+/* 801CA92C 001C658C 2C 06 00 00 */ cmpwi r6, 0
+/* 801CA930 001C6590 38 00 00 00 */ li r0, 0
+/* 801CA934 001C6594 41 80 00 0C */ blt lbl_801CA940
+/* 801CA938 001C6598 2C 06 01 00 */ cmpwi r6, 0x100
+/* 801CA93C 001C659C 41 80 00 08 */ blt lbl_801CA944
+lbl_801CA940:
+/* 801CA940 001C65A0 38 00 00 01 */ li r0, 1
+lbl_801CA944:
+/* 801CA944 001C65A4 2C 00 00 00 */ cmpwi r0, 0
+/* 801CA948 001C65A8 41 82 00 0C */ beq lbl_801CA954
+/* 801CA94C 001C65AC 38 00 00 00 */ li r0, 0
+/* 801CA950 001C65B0 48 00 00 14 */ b lbl_801CA964
+lbl_801CA954:
+/* 801CA954 001C65B4 80 64 00 08 */ lwz r3, 8(r4)
+/* 801CA958 001C65B8 54 C0 08 3C */ slwi r0, r6, 1
+/* 801CA95C 001C65BC 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CA960 001C65C0 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
+lbl_801CA964:
+/* 801CA964 001C65C4 2C 00 00 00 */ cmpwi r0, 0
+/* 801CA968 001C65C8 40 82 FF A8 */ bne lbl_801CA910
+lbl_801CA96C:
+/* 801CA96C 001C65CC 80 E1 00 10 */ lwz r7, 0x10(r1)
+/* 801CA970 001C65D0 2C 07 01 FD */ cmpwi r7, 0x1fd
+/* 801CA974 001C65D4 40 81 00 30 */ ble lbl_801CA9A4
+/* 801CA978 001C65D8 38 00 00 FF */ li r0, 0xff
+/* 801CA97C 001C65DC 80 A1 00 08 */ lwz r5, 8(r1)
+/* 801CA980 001C65E0 98 01 00 0D */ stb r0, 0xd(r1)
+/* 801CA984 001C65E4 38 7F 00 01 */ addi r3, r31, 1
+/* 801CA988 001C65E8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801CA98C 001C65EC 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 801CA990 001C65F0 90 BE 00 00 */ stw r5, 0(r30)
+/* 801CA994 001C65F4 90 9E 00 04 */ stw r4, 4(r30)
+/* 801CA998 001C65F8 90 FE 00 08 */ stw r7, 8(r30)
+/* 801CA99C 001C65FC 90 1E 00 0C */ stw r0, 0xc(r30)
+/* 801CA9A0 001C6600 48 00 04 00 */ b lbl_801CADA0
+lbl_801CA9A4:
+/* 801CA9A4 001C6604 2C 06 00 2E */ cmpwi r6, 0x2e
+/* 801CA9A8 001C6608 40 82 00 B8 */ bne lbl_801CAA60
+/* 801CA9AC 001C660C 8C DF 00 01 */ lbzu r6, 1(r31)
+/* 801CA9B0 001C6610 38 00 00 01 */ li r0, 1
+/* 801CA9B4 001C6614 98 01 00 0A */ stb r0, 0xa(r1)
+/* 801CA9B8 001C6618 7C C6 07 74 */ extsb r6, r6
+/* 801CA9BC 001C661C 2C 06 00 2A */ cmpwi r6, 0x2a
+/* 801CA9C0 001C6620 40 82 00 34 */ bne lbl_801CA9F4
+/* 801CA9C4 001C6624 7F A3 EB 78 */ mr r3, r29
+/* 801CA9C8 001C6628 38 80 00 01 */ li r4, 1
+/* 801CA9CC 001C662C 4B FF C1 B5 */ bl __va_arg
+/* 801CA9D0 001C6630 80 03 00 00 */ lwz r0, 0(r3)
+/* 801CA9D4 001C6634 2C 00 00 00 */ cmpwi r0, 0
+/* 801CA9D8 001C6638 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801CA9DC 001C663C 40 80 00 0C */ bge lbl_801CA9E8
+/* 801CA9E0 001C6640 38 00 00 00 */ li r0, 0
+/* 801CA9E4 001C6644 98 01 00 0A */ stb r0, 0xa(r1)
+lbl_801CA9E8:
+/* 801CA9E8 001C6648 8C DF 00 01 */ lbzu r6, 1(r31)
+/* 801CA9EC 001C664C 7C C6 07 74 */ extsb r6, r6
+/* 801CA9F0 001C6650 48 00 00 70 */ b lbl_801CAA60
+lbl_801CA9F4:
+/* 801CA9F4 001C6654 3C 60 80 42 */ lis r3, lbl_80422D48@ha
+/* 801CA9F8 001C6658 38 63 2D 48 */ addi r3, r3, lbl_80422D48@l
+/* 801CA9FC 001C665C 80 83 00 38 */ lwz r4, 0x38(r3)
+/* 801CAA00 001C6660 48 00 00 20 */ b lbl_801CAA20
+lbl_801CAA04:
+/* 801CAA04 001C6664 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801CAA08 001C6668 1C 00 00 0A */ mulli r0, r0, 0xa
+/* 801CAA0C 001C666C 7C 66 02 14 */ add r3, r6, r0
+/* 801CAA10 001C6670 8C DF 00 01 */ lbzu r6, 1(r31)
+/* 801CAA14 001C6674 38 03 FF D0 */ addi r0, r3, -48
+/* 801CAA18 001C6678 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801CAA1C 001C667C 7C C6 07 74 */ extsb r6, r6
+lbl_801CAA20:
+/* 801CAA20 001C6680 2C 06 00 00 */ cmpwi r6, 0
+/* 801CAA24 001C6684 38 00 00 00 */ li r0, 0
+/* 801CAA28 001C6688 41 80 00 0C */ blt lbl_801CAA34
+/* 801CAA2C 001C668C 2C 06 01 00 */ cmpwi r6, 0x100
+/* 801CAA30 001C6690 41 80 00 08 */ blt lbl_801CAA38
+lbl_801CAA34:
+/* 801CAA34 001C6694 38 00 00 01 */ li r0, 1
+lbl_801CAA38:
+/* 801CAA38 001C6698 2C 00 00 00 */ cmpwi r0, 0
+/* 801CAA3C 001C669C 41 82 00 0C */ beq lbl_801CAA48
+/* 801CAA40 001C66A0 38 00 00 00 */ li r0, 0
+/* 801CAA44 001C66A4 48 00 00 14 */ b lbl_801CAA58
+lbl_801CAA48:
+/* 801CAA48 001C66A8 80 64 00 08 */ lwz r3, 8(r4)
+/* 801CAA4C 001C66AC 54 C0 08 3C */ slwi r0, r6, 1
+/* 801CAA50 001C66B0 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CAA54 001C66B4 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
+lbl_801CAA58:
+/* 801CAA58 001C66B8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CAA5C 001C66BC 40 82 FF A8 */ bne lbl_801CAA04
+lbl_801CAA60:
+/* 801CAA60 001C66C0 2C 06 00 6B */ cmpwi r6, 0x6b
+/* 801CAA64 001C66C4 38 80 00 01 */ li r4, 1
+/* 801CAA68 001C66C8 41 82 00 D8 */ beq lbl_801CAB40
+/* 801CAA6C 001C66CC 40 80 00 28 */ bge lbl_801CAA94
+/* 801CAA70 001C66D0 2C 06 00 68 */ cmpwi r6, 0x68
+/* 801CAA74 001C66D4 41 82 00 44 */ beq lbl_801CAAB8
+/* 801CAA78 001C66D8 40 80 00 10 */ bge lbl_801CAA88
+/* 801CAA7C 001C66DC 2C 06 00 4C */ cmpwi r6, 0x4c
+/* 801CAA80 001C66E0 41 82 00 90 */ beq lbl_801CAB10
+/* 801CAA84 001C66E4 48 00 00 BC */ b lbl_801CAB40
+lbl_801CAA88:
+/* 801CAA88 001C66E8 2C 06 00 6A */ cmpwi r6, 0x6a
+/* 801CAA8C 001C66EC 40 80 00 90 */ bge lbl_801CAB1C
+/* 801CAA90 001C66F0 48 00 00 B0 */ b lbl_801CAB40
+lbl_801CAA94:
+/* 801CAA94 001C66F4 2C 06 00 74 */ cmpwi r6, 0x74
+/* 801CAA98 001C66F8 41 82 00 90 */ beq lbl_801CAB28
+/* 801CAA9C 001C66FC 40 80 00 10 */ bge lbl_801CAAAC
+/* 801CAAA0 001C6700 2C 06 00 6D */ cmpwi r6, 0x6d
+/* 801CAAA4 001C6704 40 80 00 9C */ bge lbl_801CAB40
+/* 801CAAA8 001C6708 48 00 00 3C */ b lbl_801CAAE4
+lbl_801CAAAC:
+/* 801CAAAC 001C670C 2C 06 00 7A */ cmpwi r6, 0x7a
+/* 801CAAB0 001C6710 41 82 00 84 */ beq lbl_801CAB34
+/* 801CAAB4 001C6714 48 00 00 8C */ b lbl_801CAB40
+lbl_801CAAB8:
+/* 801CAAB8 001C6718 88 1F 00 01 */ lbz r0, 1(r31)
+/* 801CAABC 001C671C 38 60 00 02 */ li r3, 2
+/* 801CAAC0 001C6720 98 61 00 0C */ stb r3, 0xc(r1)
+/* 801CAAC4 001C6724 7C 03 07 74 */ extsb r3, r0
+/* 801CAAC8 001C6728 2C 03 00 68 */ cmpwi r3, 0x68
+/* 801CAACC 001C672C 40 82 00 78 */ bne lbl_801CAB44
+/* 801CAAD0 001C6730 38 00 00 01 */ li r0, 1
+/* 801CAAD4 001C6734 7C 66 1B 78 */ mr r6, r3
+/* 801CAAD8 001C6738 98 01 00 0C */ stb r0, 0xc(r1)
+/* 801CAADC 001C673C 3B FF 00 01 */ addi r31, r31, 1
+/* 801CAAE0 001C6740 48 00 00 64 */ b lbl_801CAB44
+lbl_801CAAE4:
+/* 801CAAE4 001C6744 88 1F 00 01 */ lbz r0, 1(r31)
+/* 801CAAE8 001C6748 38 60 00 03 */ li r3, 3
+/* 801CAAEC 001C674C 98 61 00 0C */ stb r3, 0xc(r1)
+/* 801CAAF0 001C6750 7C 03 07 74 */ extsb r3, r0
+/* 801CAAF4 001C6754 2C 03 00 6C */ cmpwi r3, 0x6c
+/* 801CAAF8 001C6758 40 82 00 4C */ bne lbl_801CAB44
+/* 801CAAFC 001C675C 38 00 00 04 */ li r0, 4
+/* 801CAB00 001C6760 7C 66 1B 78 */ mr r6, r3
+/* 801CAB04 001C6764 98 01 00 0C */ stb r0, 0xc(r1)
+/* 801CAB08 001C6768 3B FF 00 01 */ addi r31, r31, 1
+/* 801CAB0C 001C676C 48 00 00 38 */ b lbl_801CAB44
+lbl_801CAB10:
+/* 801CAB10 001C6770 38 00 00 09 */ li r0, 9
+/* 801CAB14 001C6774 98 01 00 0C */ stb r0, 0xc(r1)
+/* 801CAB18 001C6778 48 00 00 2C */ b lbl_801CAB44
+lbl_801CAB1C:
+/* 801CAB1C 001C677C 38 00 00 06 */ li r0, 6
+/* 801CAB20 001C6780 98 01 00 0C */ stb r0, 0xc(r1)
+/* 801CAB24 001C6784 48 00 00 20 */ b lbl_801CAB44
+lbl_801CAB28:
+/* 801CAB28 001C6788 38 00 00 08 */ li r0, 8
+/* 801CAB2C 001C678C 98 01 00 0C */ stb r0, 0xc(r1)
+/* 801CAB30 001C6790 48 00 00 14 */ b lbl_801CAB44
+lbl_801CAB34:
+/* 801CAB34 001C6794 38 00 00 07 */ li r0, 7
+/* 801CAB38 001C6798 98 01 00 0C */ stb r0, 0xc(r1)
+/* 801CAB3C 001C679C 48 00 00 08 */ b lbl_801CAB44
+lbl_801CAB40:
+/* 801CAB40 001C67A0 38 80 00 00 */ li r4, 0
+lbl_801CAB44:
+/* 801CAB44 001C67A4 2C 04 00 00 */ cmpwi r4, 0
+/* 801CAB48 001C67A8 41 82 00 0C */ beq lbl_801CAB54
+/* 801CAB4C 001C67AC 8C DF 00 01 */ lbzu r6, 1(r31)
+/* 801CAB50 001C67B0 7C C6 07 74 */ extsb r6, r6
+lbl_801CAB54:
+/* 801CAB54 001C67B4 38 06 FF BF */ addi r0, r6, -65
+/* 801CAB58 001C67B8 98 C1 00 0D */ stb r6, 0xd(r1)
+/* 801CAB5C 001C67BC 28 00 00 37 */ cmplwi r0, 0x37
+/* 801CAB60 001C67C0 41 81 02 14 */ bgt lbl_801CAD74
+/* 801CAB64 001C67C4 3C 60 80 42 */ lis r3, lbl_80422D90@ha
+/* 801CAB68 001C67C8 54 00 10 3A */ slwi r0, r0, 2
+/* 801CAB6C 001C67CC 38 63 2D 90 */ addi r3, r3, lbl_80422D90@l
+/* 801CAB70 001C67D0 7C 63 00 2E */ lwzx r3, r3, r0
+/* 801CAB74 001C67D4 7C 69 03 A6 */ mtctr r3
+/* 801CAB78 001C67D8 4E 80 04 20 */ bctr
+/* 801CAB7C 001C67DC 88 01 00 0C */ lbz r0, 0xc(r1)
+/* 801CAB80 001C67E0 28 00 00 09 */ cmplwi r0, 9
+/* 801CAB84 001C67E4 40 82 00 10 */ bne lbl_801CAB94
+/* 801CAB88 001C67E8 38 00 00 FF */ li r0, 0xff
+/* 801CAB8C 001C67EC 98 01 00 0D */ stb r0, 0xd(r1)
+/* 801CAB90 001C67F0 48 00 01 EC */ b lbl_801CAD7C
+lbl_801CAB94:
+/* 801CAB94 001C67F4 88 01 00 0A */ lbz r0, 0xa(r1)
+/* 801CAB98 001C67F8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CAB9C 001C67FC 40 82 00 10 */ bne lbl_801CABAC
+/* 801CABA0 001C6800 38 00 00 01 */ li r0, 1
+/* 801CABA4 001C6804 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801CABA8 001C6808 48 00 01 D4 */ b lbl_801CAD7C
+lbl_801CABAC:
+/* 801CABAC 001C680C 88 01 00 08 */ lbz r0, 8(r1)
+/* 801CABB0 001C6810 28 00 00 02 */ cmplwi r0, 2
+/* 801CABB4 001C6814 40 82 01 C8 */ bne lbl_801CAD7C
+/* 801CABB8 001C6818 38 00 00 01 */ li r0, 1
+/* 801CABBC 001C681C 98 01 00 08 */ stb r0, 8(r1)
+/* 801CABC0 001C6820 48 00 01 BC */ b lbl_801CAD7C
+/* 801CABC4 001C6824 88 01 00 0C */ lbz r0, 0xc(r1)
+/* 801CABC8 001C6828 28 00 00 02 */ cmplwi r0, 2
+/* 801CABCC 001C682C 41 82 00 24 */ beq lbl_801CABF0
+/* 801CABD0 001C6830 28 00 00 06 */ cmplwi r0, 6
+/* 801CABD4 001C6834 41 82 00 1C */ beq lbl_801CABF0
+/* 801CABD8 001C6838 28 00 00 07 */ cmplwi r0, 7
+/* 801CABDC 001C683C 41 82 00 14 */ beq lbl_801CABF0
+/* 801CABE0 001C6840 28 00 00 08 */ cmplwi r0, 8
+/* 801CABE4 001C6844 41 82 00 0C */ beq lbl_801CABF0
+/* 801CABE8 001C6848 28 00 00 04 */ cmplwi r0, 4
+/* 801CABEC 001C684C 40 82 00 10 */ bne lbl_801CABFC
+lbl_801CABF0:
+/* 801CABF0 001C6850 38 00 00 FF */ li r0, 0xff
+/* 801CABF4 001C6854 98 01 00 0D */ stb r0, 0xd(r1)
+/* 801CABF8 001C6858 48 00 01 84 */ b lbl_801CAD7C
+lbl_801CABFC:
+/* 801CABFC 001C685C 88 01 00 0A */ lbz r0, 0xa(r1)
+/* 801CAC00 001C6860 2C 00 00 00 */ cmpwi r0, 0
+/* 801CAC04 001C6864 40 82 01 78 */ bne lbl_801CAD7C
+/* 801CAC08 001C6868 38 00 00 06 */ li r0, 6
+/* 801CAC0C 001C686C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801CAC10 001C6870 48 00 01 6C */ b lbl_801CAD7C
+/* 801CAC14 001C6874 88 01 00 0A */ lbz r0, 0xa(r1)
+/* 801CAC18 001C6878 2C 00 00 00 */ cmpwi r0, 0
+/* 801CAC1C 001C687C 40 82 00 0C */ bne lbl_801CAC28
+/* 801CAC20 001C6880 38 00 00 0D */ li r0, 0xd
+/* 801CAC24 001C6884 90 01 00 14 */ stw r0, 0x14(r1)
+lbl_801CAC28:
+/* 801CAC28 001C6888 88 01 00 0C */ lbz r0, 0xc(r1)
+/* 801CAC2C 001C688C 28 00 00 02 */ cmplwi r0, 2
+/* 801CAC30 001C6890 41 82 00 2C */ beq lbl_801CAC5C
+/* 801CAC34 001C6894 28 00 00 06 */ cmplwi r0, 6
+/* 801CAC38 001C6898 41 82 00 24 */ beq lbl_801CAC5C
+/* 801CAC3C 001C689C 28 00 00 07 */ cmplwi r0, 7
+/* 801CAC40 001C68A0 41 82 00 1C */ beq lbl_801CAC5C
+/* 801CAC44 001C68A4 28 00 00 08 */ cmplwi r0, 8
+/* 801CAC48 001C68A8 41 82 00 14 */ beq lbl_801CAC5C
+/* 801CAC4C 001C68AC 28 00 00 04 */ cmplwi r0, 4
+/* 801CAC50 001C68B0 41 82 00 0C */ beq lbl_801CAC5C
+/* 801CAC54 001C68B4 28 00 00 01 */ cmplwi r0, 1
+/* 801CAC58 001C68B8 40 82 01 24 */ bne lbl_801CAD7C
+lbl_801CAC5C:
+/* 801CAC5C 001C68BC 38 00 00 FF */ li r0, 0xff
+/* 801CAC60 001C68C0 98 01 00 0D */ stb r0, 0xd(r1)
+/* 801CAC64 001C68C4 48 00 01 18 */ b lbl_801CAD7C
+/* 801CAC68 001C68C8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801CAC6C 001C68CC 2C 00 00 00 */ cmpwi r0, 0
+/* 801CAC70 001C68D0 40 82 00 0C */ bne lbl_801CAC7C
+/* 801CAC74 001C68D4 38 00 00 01 */ li r0, 1
+/* 801CAC78 001C68D8 90 01 00 14 */ stw r0, 0x14(r1)
+lbl_801CAC7C:
+/* 801CAC7C 001C68DC 88 01 00 0C */ lbz r0, 0xc(r1)
+/* 801CAC80 001C68E0 28 00 00 02 */ cmplwi r0, 2
+/* 801CAC84 001C68E4 41 82 00 2C */ beq lbl_801CACB0
+/* 801CAC88 001C68E8 28 00 00 06 */ cmplwi r0, 6
+/* 801CAC8C 001C68EC 41 82 00 24 */ beq lbl_801CACB0
+/* 801CAC90 001C68F0 28 00 00 07 */ cmplwi r0, 7
+/* 801CAC94 001C68F4 41 82 00 1C */ beq lbl_801CACB0
+/* 801CAC98 001C68F8 28 00 00 08 */ cmplwi r0, 8
+/* 801CAC9C 001C68FC 41 82 00 14 */ beq lbl_801CACB0
+/* 801CACA0 001C6900 28 00 00 04 */ cmplwi r0, 4
+/* 801CACA4 001C6904 41 82 00 0C */ beq lbl_801CACB0
+/* 801CACA8 001C6908 28 00 00 01 */ cmplwi r0, 1
+/* 801CACAC 001C690C 40 82 00 10 */ bne lbl_801CACBC
+lbl_801CACB0:
+/* 801CACB0 001C6910 38 00 00 FF */ li r0, 0xff
+/* 801CACB4 001C6914 98 01 00 0D */ stb r0, 0xd(r1)
+/* 801CACB8 001C6918 48 00 00 C4 */ b lbl_801CAD7C
+lbl_801CACBC:
+/* 801CACBC 001C691C 88 01 00 0A */ lbz r0, 0xa(r1)
+/* 801CACC0 001C6920 2C 00 00 00 */ cmpwi r0, 0
+/* 801CACC4 001C6924 40 82 00 B8 */ bne lbl_801CAD7C
+/* 801CACC8 001C6928 38 00 00 06 */ li r0, 6
+/* 801CACCC 001C692C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801CACD0 001C6930 48 00 00 AC */ b lbl_801CAD7C
+/* 801CACD4 001C6934 38 A0 00 78 */ li r5, 0x78
+/* 801CACD8 001C6938 38 80 00 01 */ li r4, 1
+/* 801CACDC 001C693C 38 60 00 03 */ li r3, 3
+/* 801CACE0 001C6940 38 00 00 08 */ li r0, 8
+/* 801CACE4 001C6944 98 A1 00 0D */ stb r5, 0xd(r1)
+/* 801CACE8 001C6948 98 81 00 0B */ stb r4, 0xb(r1)
+/* 801CACEC 001C694C 98 61 00 0C */ stb r3, 0xc(r1)
+/* 801CACF0 001C6950 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801CACF4 001C6954 48 00 00 88 */ b lbl_801CAD7C
+/* 801CACF8 001C6958 88 61 00 0C */ lbz r3, 0xc(r1)
+/* 801CACFC 001C695C 28 03 00 03 */ cmplwi r3, 3
+/* 801CAD00 001C6960 40 82 00 10 */ bne lbl_801CAD10
+/* 801CAD04 001C6964 38 00 00 05 */ li r0, 5
+/* 801CAD08 001C6968 98 01 00 0C */ stb r0, 0xc(r1)
+/* 801CAD0C 001C696C 48 00 00 70 */ b lbl_801CAD7C
+lbl_801CAD10:
+/* 801CAD10 001C6970 88 01 00 0A */ lbz r0, 0xa(r1)
+/* 801CAD14 001C6974 2C 00 00 00 */ cmpwi r0, 0
+/* 801CAD18 001C6978 40 82 00 0C */ bne lbl_801CAD24
+/* 801CAD1C 001C697C 2C 03 00 00 */ cmpwi r3, 0
+/* 801CAD20 001C6980 41 82 00 5C */ beq lbl_801CAD7C
+lbl_801CAD24:
+/* 801CAD24 001C6984 38 00 00 FF */ li r0, 0xff
+/* 801CAD28 001C6988 98 01 00 0D */ stb r0, 0xd(r1)
+/* 801CAD2C 001C698C 48 00 00 50 */ b lbl_801CAD7C
+/* 801CAD30 001C6990 88 01 00 0C */ lbz r0, 0xc(r1)
+/* 801CAD34 001C6994 28 00 00 03 */ cmplwi r0, 3
+/* 801CAD38 001C6998 40 82 00 10 */ bne lbl_801CAD48
+/* 801CAD3C 001C699C 38 00 00 05 */ li r0, 5
+/* 801CAD40 001C69A0 98 01 00 0C */ stb r0, 0xc(r1)
+/* 801CAD44 001C69A4 48 00 00 38 */ b lbl_801CAD7C
+lbl_801CAD48:
+/* 801CAD48 001C69A8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CAD4C 001C69AC 41 82 00 30 */ beq lbl_801CAD7C
+/* 801CAD50 001C69B0 38 00 00 FF */ li r0, 0xff
+/* 801CAD54 001C69B4 98 01 00 0D */ stb r0, 0xd(r1)
+/* 801CAD58 001C69B8 48 00 00 24 */ b lbl_801CAD7C
+/* 801CAD5C 001C69BC 88 01 00 0C */ lbz r0, 0xc(r1)
+/* 801CAD60 001C69C0 28 00 00 09 */ cmplwi r0, 9
+/* 801CAD64 001C69C4 40 82 00 18 */ bne lbl_801CAD7C
+/* 801CAD68 001C69C8 38 00 00 FF */ li r0, 0xff
+/* 801CAD6C 001C69CC 98 01 00 0D */ stb r0, 0xd(r1)
+/* 801CAD70 001C69D0 48 00 00 0C */ b lbl_801CAD7C
+lbl_801CAD74:
+/* 801CAD74 001C69D4 38 00 00 FF */ li r0, 0xff
+/* 801CAD78 001C69D8 98 01 00 0D */ stb r0, 0xd(r1)
+lbl_801CAD7C:
+/* 801CAD7C 001C69DC 80 C1 00 08 */ lwz r6, 8(r1)
+/* 801CAD80 001C69E0 38 7F 00 01 */ addi r3, r31, 1
+/* 801CAD84 001C69E4 80 A1 00 0C */ lwz r5, 0xc(r1)
+/* 801CAD88 001C69E8 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 801CAD8C 001C69EC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801CAD90 001C69F0 90 DE 00 00 */ stw r6, 0(r30)
+/* 801CAD94 001C69F4 90 BE 00 04 */ stw r5, 4(r30)
+/* 801CAD98 001C69F8 90 9E 00 08 */ stw r4, 8(r30)
+/* 801CAD9C 001C69FC 90 1E 00 0C */ stw r0, 0xc(r30)
+lbl_801CADA0:
+/* 801CADA0 001C6A00 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 801CADA4 001C6A04 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 801CADA8 001C6A08 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 801CADAC 001C6A0C 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 801CADB0 001C6A10 7C 08 03 A6 */ mtlr r0
+/* 801CADB4 001C6A14 38 21 00 30 */ addi r1, r1, 0x30
+/* 801CADB8 001C6A18 4E 80 00 20 */ blr
+
+.global long2str
+long2str:
+/* 801CADBC 001C6A1C 39 00 00 00 */ li r8, 0
+/* 801CADC0 001C6A20 2C 03 00 00 */ cmpwi r3, 0
+/* 801CADC4 001C6A24 99 04 FF FF */ stb r8, -1(r4)
+/* 801CADC8 001C6A28 38 C4 FF FF */ addi r6, r4, -1
+/* 801CADCC 001C6A2C 38 E0 00 00 */ li r7, 0
+/* 801CADD0 001C6A30 40 82 00 30 */ bne lbl_801CAE00
+/* 801CADD4 001C6A34 80 05 00 0C */ lwz r0, 0xc(r5)
+/* 801CADD8 001C6A38 2C 00 00 00 */ cmpwi r0, 0
+/* 801CADDC 001C6A3C 40 82 00 24 */ bne lbl_801CAE00
+/* 801CADE0 001C6A40 88 05 00 03 */ lbz r0, 3(r5)
+/* 801CADE4 001C6A44 2C 00 00 00 */ cmpwi r0, 0
+/* 801CADE8 001C6A48 41 82 00 10 */ beq lbl_801CADF8
+/* 801CADEC 001C6A4C 88 05 00 05 */ lbz r0, 5(r5)
+/* 801CADF0 001C6A50 28 00 00 6F */ cmplwi r0, 0x6f
+/* 801CADF4 001C6A54 41 82 00 0C */ beq lbl_801CAE00
+lbl_801CADF8:
+/* 801CADF8 001C6A58 7C C3 33 78 */ mr r3, r6
+/* 801CADFC 001C6A5C 4E 80 00 20 */ blr
+lbl_801CAE00:
+/* 801CAE00 001C6A60 89 25 00 05 */ lbz r9, 5(r5)
+/* 801CAE04 001C6A64 39 49 FF A8 */ addi r10, r9, -88
+/* 801CAE08 001C6A68 28 0A 00 20 */ cmplwi r10, 0x20
+/* 801CAE0C 001C6A6C 41 81 00 6C */ bgt lbl_801CAE78
+/* 801CAE10 001C6A70 3D 20 80 42 */ lis r9, lbl_80422EB4@ha
+/* 801CAE14 001C6A74 55 4A 10 3A */ slwi r10, r10, 2
+/* 801CAE18 001C6A78 39 29 2E B4 */ addi r9, r9, lbl_80422EB4@l
+/* 801CAE1C 001C6A7C 7D 29 50 2E */ lwzx r9, r9, r10
+/* 801CAE20 001C6A80 7D 29 03 A6 */ mtctr r9
+/* 801CAE24 001C6A84 4E 80 04 20 */ bctr
+/* 801CAE28 001C6A88 2C 03 00 00 */ cmpwi r3, 0
+/* 801CAE2C 001C6A8C 38 00 00 0A */ li r0, 0xa
+/* 801CAE30 001C6A90 40 80 00 48 */ bge lbl_801CAE78
+/* 801CAE34 001C6A94 3D 03 80 00 */ addis r8, r3, 0x8000
+/* 801CAE38 001C6A98 28 08 00 00 */ cmplwi r8, 0
+/* 801CAE3C 001C6A9C 41 82 00 08 */ beq lbl_801CAE44
+/* 801CAE40 001C6AA0 7C 63 00 D0 */ neg r3, r3
+lbl_801CAE44:
+/* 801CAE44 001C6AA4 39 00 00 01 */ li r8, 1
+/* 801CAE48 001C6AA8 48 00 00 30 */ b lbl_801CAE78
+/* 801CAE4C 001C6AAC 39 20 00 00 */ li r9, 0
+/* 801CAE50 001C6AB0 38 00 00 08 */ li r0, 8
+/* 801CAE54 001C6AB4 99 25 00 01 */ stb r9, 1(r5)
+/* 801CAE58 001C6AB8 48 00 00 20 */ b lbl_801CAE78
+/* 801CAE5C 001C6ABC 39 20 00 00 */ li r9, 0
+/* 801CAE60 001C6AC0 38 00 00 0A */ li r0, 0xa
+/* 801CAE64 001C6AC4 99 25 00 01 */ stb r9, 1(r5)
+/* 801CAE68 001C6AC8 48 00 00 10 */ b lbl_801CAE78
+/* 801CAE6C 001C6ACC 39 20 00 00 */ li r9, 0
+/* 801CAE70 001C6AD0 38 00 00 10 */ li r0, 0x10
+/* 801CAE74 001C6AD4 99 25 00 01 */ stb r9, 1(r5)
+lbl_801CAE78:
+/* 801CAE78 001C6AD8 7D 23 03 96 */ divwu r9, r3, r0
+/* 801CAE7C 001C6ADC 7D 29 01 D6 */ mullw r9, r9, r0
+/* 801CAE80 001C6AE0 7D 69 18 50 */ subf r11, r9, r3
+/* 801CAE84 001C6AE4 7C 63 03 96 */ divwu r3, r3, r0
+/* 801CAE88 001C6AE8 2C 0B 00 0A */ cmpwi r11, 0xa
+/* 801CAE8C 001C6AEC 40 80 00 0C */ bge lbl_801CAE98
+/* 801CAE90 001C6AF0 39 6B 00 30 */ addi r11, r11, 0x30
+/* 801CAE94 001C6AF4 48 00 00 1C */ b lbl_801CAEB0
+lbl_801CAE98:
+/* 801CAE98 001C6AF8 89 25 00 05 */ lbz r9, 5(r5)
+/* 801CAE9C 001C6AFC 39 4B 00 37 */ addi r10, r11, 0x37
+/* 801CAEA0 001C6B00 28 09 00 78 */ cmplwi r9, 0x78
+/* 801CAEA4 001C6B04 40 82 00 08 */ bne lbl_801CAEAC
+/* 801CAEA8 001C6B08 39 4B 00 57 */ addi r10, r11, 0x57
+lbl_801CAEAC:
+/* 801CAEAC 001C6B0C 7D 4B 53 78 */ mr r11, r10
+lbl_801CAEB0:
+/* 801CAEB0 001C6B10 2C 03 00 00 */ cmpwi r3, 0
+/* 801CAEB4 001C6B14 99 66 FF FF */ stb r11, -1(r6)
+/* 801CAEB8 001C6B18 38 C6 FF FF */ addi r6, r6, -1
+/* 801CAEBC 001C6B1C 38 E7 00 01 */ addi r7, r7, 1
+/* 801CAEC0 001C6B20 40 82 FF B8 */ bne lbl_801CAE78
+/* 801CAEC4 001C6B24 28 00 00 08 */ cmplwi r0, 8
+/* 801CAEC8 001C6B28 40 82 00 28 */ bne lbl_801CAEF0
+/* 801CAECC 001C6B2C 88 65 00 03 */ lbz r3, 3(r5)
+/* 801CAED0 001C6B30 2C 03 00 00 */ cmpwi r3, 0
+/* 801CAED4 001C6B34 41 82 00 1C */ beq lbl_801CAEF0
+/* 801CAED8 001C6B38 88 66 00 00 */ lbz r3, 0(r6)
+/* 801CAEDC 001C6B3C 2C 03 00 30 */ cmpwi r3, 0x30
+/* 801CAEE0 001C6B40 41 82 00 10 */ beq lbl_801CAEF0
+/* 801CAEE4 001C6B44 38 60 00 30 */ li r3, 0x30
+/* 801CAEE8 001C6B48 38 E7 00 01 */ addi r7, r7, 1
+/* 801CAEEC 001C6B4C 9C 66 FF FF */ stbu r3, -1(r6)
+lbl_801CAEF0:
+/* 801CAEF0 001C6B50 88 65 00 00 */ lbz r3, 0(r5)
+/* 801CAEF4 001C6B54 28 03 00 02 */ cmplwi r3, 2
+/* 801CAEF8 001C6B58 40 82 00 4C */ bne lbl_801CAF44
+/* 801CAEFC 001C6B5C 80 65 00 08 */ lwz r3, 8(r5)
+/* 801CAF00 001C6B60 2C 08 00 00 */ cmpwi r8, 0
+/* 801CAF04 001C6B64 90 65 00 0C */ stw r3, 0xc(r5)
+/* 801CAF08 001C6B68 40 82 00 10 */ bne lbl_801CAF18
+/* 801CAF0C 001C6B6C 88 65 00 01 */ lbz r3, 1(r5)
+/* 801CAF10 001C6B70 2C 03 00 00 */ cmpwi r3, 0
+/* 801CAF14 001C6B74 41 82 00 10 */ beq lbl_801CAF24
+lbl_801CAF18:
+/* 801CAF18 001C6B78 80 65 00 0C */ lwz r3, 0xc(r5)
+/* 801CAF1C 001C6B7C 38 63 FF FF */ addi r3, r3, -1
+/* 801CAF20 001C6B80 90 65 00 0C */ stw r3, 0xc(r5)
+lbl_801CAF24:
+/* 801CAF24 001C6B84 28 00 00 10 */ cmplwi r0, 0x10
+/* 801CAF28 001C6B88 40 82 00 1C */ bne lbl_801CAF44
+/* 801CAF2C 001C6B8C 88 65 00 03 */ lbz r3, 3(r5)
+/* 801CAF30 001C6B90 2C 03 00 00 */ cmpwi r3, 0
+/* 801CAF34 001C6B94 41 82 00 10 */ beq lbl_801CAF44
+/* 801CAF38 001C6B98 80 65 00 0C */ lwz r3, 0xc(r5)
+/* 801CAF3C 001C6B9C 38 63 FF FE */ addi r3, r3, -2
+/* 801CAF40 001C6BA0 90 65 00 0C */ stw r3, 0xc(r5)
+lbl_801CAF44:
+/* 801CAF44 001C6BA4 81 25 00 0C */ lwz r9, 0xc(r5)
+/* 801CAF48 001C6BA8 7C 66 20 50 */ subf r3, r6, r4
+/* 801CAF4C 001C6BAC 7C 69 1A 14 */ add r3, r9, r3
+/* 801CAF50 001C6BB0 2C 03 01 FD */ cmpwi r3, 0x1fd
+/* 801CAF54 001C6BB4 40 81 00 0C */ ble lbl_801CAF60
+/* 801CAF58 001C6BB8 38 60 00 00 */ li r3, 0
+/* 801CAF5C 001C6BBC 4E 80 00 20 */ blr
+lbl_801CAF60:
+/* 801CAF60 001C6BC0 38 80 00 30 */ li r4, 0x30
+/* 801CAF64 001C6BC4 48 00 00 0C */ b lbl_801CAF70
+lbl_801CAF68:
+/* 801CAF68 001C6BC8 9C 86 FF FF */ stbu r4, -1(r6)
+/* 801CAF6C 001C6BCC 38 E7 00 01 */ addi r7, r7, 1
+lbl_801CAF70:
+/* 801CAF70 001C6BD0 80 65 00 0C */ lwz r3, 0xc(r5)
+/* 801CAF74 001C6BD4 7C 07 18 00 */ cmpw r7, r3
+/* 801CAF78 001C6BD8 41 80 FF F0 */ blt lbl_801CAF68
+/* 801CAF7C 001C6BDC 28 00 00 10 */ cmplwi r0, 0x10
+/* 801CAF80 001C6BE0 40 82 00 20 */ bne lbl_801CAFA0
+/* 801CAF84 001C6BE4 88 05 00 03 */ lbz r0, 3(r5)
+/* 801CAF88 001C6BE8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CAF8C 001C6BEC 41 82 00 14 */ beq lbl_801CAFA0
+/* 801CAF90 001C6BF0 88 65 00 05 */ lbz r3, 5(r5)
+/* 801CAF94 001C6BF4 38 00 00 30 */ li r0, 0x30
+/* 801CAF98 001C6BF8 98 66 FF FF */ stb r3, -1(r6)
+/* 801CAF9C 001C6BFC 9C 06 FF FE */ stbu r0, -2(r6)
+lbl_801CAFA0:
+/* 801CAFA0 001C6C00 2C 08 00 00 */ cmpwi r8, 0
+/* 801CAFA4 001C6C04 41 82 00 10 */ beq lbl_801CAFB4
+/* 801CAFA8 001C6C08 38 00 00 2D */ li r0, 0x2d
+/* 801CAFAC 001C6C0C 9C 06 FF FF */ stbu r0, -1(r6)
+/* 801CAFB0 001C6C10 48 00 00 2C */ b lbl_801CAFDC
+lbl_801CAFB4:
+/* 801CAFB4 001C6C14 88 05 00 01 */ lbz r0, 1(r5)
+/* 801CAFB8 001C6C18 28 00 00 01 */ cmplwi r0, 1
+/* 801CAFBC 001C6C1C 40 82 00 10 */ bne lbl_801CAFCC
+/* 801CAFC0 001C6C20 38 00 00 2B */ li r0, 0x2b
+/* 801CAFC4 001C6C24 9C 06 FF FF */ stbu r0, -1(r6)
+/* 801CAFC8 001C6C28 48 00 00 14 */ b lbl_801CAFDC
+lbl_801CAFCC:
+/* 801CAFCC 001C6C2C 28 00 00 02 */ cmplwi r0, 2
+/* 801CAFD0 001C6C30 40 82 00 0C */ bne lbl_801CAFDC
+/* 801CAFD4 001C6C34 38 00 00 20 */ li r0, 0x20
+/* 801CAFD8 001C6C38 9C 06 FF FF */ stbu r0, -1(r6)
+lbl_801CAFDC:
+/* 801CAFDC 001C6C3C 7C C3 33 78 */ mr r3, r6
+/* 801CAFE0 001C6C40 4E 80 00 20 */ blr
+
+.global longlong2str
+longlong2str:
+/* 801CAFE4 001C6C44 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 801CAFE8 001C6C48 7C 08 02 A6 */ mflr r0
+/* 801CAFEC 001C6C4C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 801CAFF0 001C6C50 7C 80 1B 79 */ or. r0, r4, r3
+/* 801CAFF4 001C6C54 BE C1 00 08 */ stmw r22, 8(r1)
+/* 801CAFF8 001C6C58 3B 20 00 00 */ li r25, 0
+/* 801CAFFC 001C6C5C 7C 7F 1B 78 */ mr r31, r3
+/* 801CB000 001C6C60 7C 9E 23 78 */ mr r30, r4
+/* 801CB004 001C6C64 7C B7 2B 78 */ mr r23, r5
+/* 801CB008 001C6C68 7C D8 33 78 */ mr r24, r6
+/* 801CB00C 001C6C6C 3B 65 FF FF */ addi r27, r5, -1
+/* 801CB010 001C6C70 3B 40 00 00 */ li r26, 0
+/* 801CB014 001C6C74 9B 25 FF FF */ stb r25, -1(r5)
+/* 801CB018 001C6C78 40 82 00 30 */ bne lbl_801CB048
+/* 801CB01C 001C6C7C 80 06 00 0C */ lwz r0, 0xc(r6)
+/* 801CB020 001C6C80 2C 00 00 00 */ cmpwi r0, 0
+/* 801CB024 001C6C84 40 82 00 24 */ bne lbl_801CB048
+/* 801CB028 001C6C88 88 06 00 03 */ lbz r0, 3(r6)
+/* 801CB02C 001C6C8C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CB030 001C6C90 41 82 00 10 */ beq lbl_801CB040
+/* 801CB034 001C6C94 88 06 00 05 */ lbz r0, 5(r6)
+/* 801CB038 001C6C98 28 00 00 6F */ cmplwi r0, 0x6f
+/* 801CB03C 001C6C9C 41 82 00 0C */ beq lbl_801CB048
+lbl_801CB040:
+/* 801CB040 001C6CA0 7F 63 DB 78 */ mr r3, r27
+/* 801CB044 001C6CA4 48 00 02 2C */ b lbl_801CB270
+lbl_801CB048:
+/* 801CB048 001C6CA8 88 A6 00 05 */ lbz r5, 5(r6)
+/* 801CB04C 001C6CAC 38 05 FF A8 */ addi r0, r5, -88
+/* 801CB050 001C6CB0 28 00 00 20 */ cmplwi r0, 0x20
+/* 801CB054 001C6CB4 41 81 00 8C */ bgt lbl_801CB0E0
+/* 801CB058 001C6CB8 3C A0 80 42 */ lis r5, lbl_80422F38@ha
+/* 801CB05C 001C6CBC 54 00 10 3A */ slwi r0, r0, 2
+/* 801CB060 001C6CC0 38 A5 2F 38 */ addi r5, r5, lbl_80422F38@l
+/* 801CB064 001C6CC4 7C A5 00 2E */ lwzx r5, r5, r0
+/* 801CB068 001C6CC8 7C A9 03 A6 */ mtctr r5
+/* 801CB06C 001C6CCC 4E 80 04 20 */ bctr
+/* 801CB070 001C6CD0 3B A0 00 00 */ li r29, 0
+/* 801CB074 001C6CD4 6C 60 80 00 */ xoris r0, r3, 0x8000
+/* 801CB078 001C6CD8 6F A6 80 00 */ xoris r6, r29, 0x8000
+/* 801CB07C 001C6CDC 3B 80 00 0A */ li r28, 0xa
+/* 801CB080 001C6CE0 7C BD 20 10 */ subfc r5, r29, r4
+/* 801CB084 001C6CE4 7C C6 01 10 */ subfe r6, r6, r0
+/* 801CB088 001C6CE8 7C C0 01 10 */ subfe r6, r0, r0
+/* 801CB08C 001C6CEC 7C C6 00 D1 */ neg. r6, r6
+/* 801CB090 001C6CF0 41 82 00 50 */ beq lbl_801CB0E0
+/* 801CB094 001C6CF4 3C 00 80 00 */ lis r0, 0x8000
+/* 801CB098 001C6CF8 7C 60 02 78 */ xor r0, r3, r0
+/* 801CB09C 001C6CFC 7C 80 03 79 */ or. r0, r4, r0
+/* 801CB0A0 001C6D00 41 82 00 0C */ beq lbl_801CB0AC
+/* 801CB0A4 001C6D04 23 C4 00 00 */ subfic r30, r4, 0
+/* 801CB0A8 001C6D08 7F E3 01 90 */ subfze r31, r3
+lbl_801CB0AC:
+/* 801CB0AC 001C6D0C 3B 20 00 01 */ li r25, 1
+/* 801CB0B0 001C6D10 48 00 00 30 */ b lbl_801CB0E0
+/* 801CB0B4 001C6D14 3B A0 00 00 */ li r29, 0
+/* 801CB0B8 001C6D18 3B 80 00 08 */ li r28, 8
+/* 801CB0BC 001C6D1C 9B A6 00 01 */ stb r29, 1(r6)
+/* 801CB0C0 001C6D20 48 00 00 20 */ b lbl_801CB0E0
+/* 801CB0C4 001C6D24 3B A0 00 00 */ li r29, 0
+/* 801CB0C8 001C6D28 3B 80 00 0A */ li r28, 0xa
+/* 801CB0CC 001C6D2C 9B A6 00 01 */ stb r29, 1(r6)
+/* 801CB0D0 001C6D30 48 00 00 10 */ b lbl_801CB0E0
+/* 801CB0D4 001C6D34 3B A0 00 00 */ li r29, 0
+/* 801CB0D8 001C6D38 3B 80 00 10 */ li r28, 0x10
+/* 801CB0DC 001C6D3C 9B A6 00 01 */ stb r29, 1(r6)
+lbl_801CB0E0:
+/* 801CB0E0 001C6D40 7F E3 FB 78 */ mr r3, r31
+/* 801CB0E4 001C6D44 7F C4 F3 78 */ mr r4, r30
+/* 801CB0E8 001C6D48 7F A5 EB 78 */ mr r5, r29
+/* 801CB0EC 001C6D4C 7F 86 E3 78 */ mr r6, r28
+/* 801CB0F0 001C6D50 4B FF C2 C1 */ bl __mod2u
+/* 801CB0F4 001C6D54 7C 96 23 78 */ mr r22, r4
+/* 801CB0F8 001C6D58 7F E3 FB 78 */ mr r3, r31
+/* 801CB0FC 001C6D5C 7F C4 F3 78 */ mr r4, r30
+/* 801CB100 001C6D60 7F A5 EB 78 */ mr r5, r29
+/* 801CB104 001C6D64 7F 86 E3 78 */ mr r6, r28
+/* 801CB108 001C6D68 4B FF C0 85 */ bl __div2u
+/* 801CB10C 001C6D6C 2C 16 00 0A */ cmpwi r22, 0xa
+/* 801CB110 001C6D70 7C 9E 23 78 */ mr r30, r4
+/* 801CB114 001C6D74 7C 7F 1B 78 */ mr r31, r3
+/* 801CB118 001C6D78 40 80 00 0C */ bge lbl_801CB124
+/* 801CB11C 001C6D7C 38 B6 00 30 */ addi r5, r22, 0x30
+/* 801CB120 001C6D80 48 00 00 18 */ b lbl_801CB138
+lbl_801CB124:
+/* 801CB124 001C6D84 88 18 00 05 */ lbz r0, 5(r24)
+/* 801CB128 001C6D88 38 B6 00 37 */ addi r5, r22, 0x37
+/* 801CB12C 001C6D8C 28 00 00 78 */ cmplwi r0, 0x78
+/* 801CB130 001C6D90 40 82 00 08 */ bne lbl_801CB138
+/* 801CB134 001C6D94 38 B6 00 57 */ addi r5, r22, 0x57
+lbl_801CB138:
+/* 801CB138 001C6D98 7C 80 1B 79 */ or. r0, r4, r3
+/* 801CB13C 001C6D9C 9C BB FF FF */ stbu r5, -1(r27)
+/* 801CB140 001C6DA0 3B 5A 00 01 */ addi r26, r26, 1
+/* 801CB144 001C6DA4 40 82 FF 9C */ bne lbl_801CB0E0
+/* 801CB148 001C6DA8 6B 80 00 08 */ xori r0, r28, 8
+/* 801CB14C 001C6DAC 7C 00 EB 79 */ or. r0, r0, r29
+/* 801CB150 001C6DB0 40 82 00 28 */ bne lbl_801CB178
+/* 801CB154 001C6DB4 88 18 00 03 */ lbz r0, 3(r24)
+/* 801CB158 001C6DB8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CB15C 001C6DBC 41 82 00 1C */ beq lbl_801CB178
+/* 801CB160 001C6DC0 88 1B 00 00 */ lbz r0, 0(r27)
+/* 801CB164 001C6DC4 2C 00 00 30 */ cmpwi r0, 0x30
+/* 801CB168 001C6DC8 41 82 00 10 */ beq lbl_801CB178
+/* 801CB16C 001C6DCC 38 00 00 30 */ li r0, 0x30
+/* 801CB170 001C6DD0 3B 5A 00 01 */ addi r26, r26, 1
+/* 801CB174 001C6DD4 9C 1B FF FF */ stbu r0, -1(r27)
+lbl_801CB178:
+/* 801CB178 001C6DD8 88 18 00 00 */ lbz r0, 0(r24)
+/* 801CB17C 001C6DDC 28 00 00 02 */ cmplwi r0, 2
+/* 801CB180 001C6DE0 40 82 00 50 */ bne lbl_801CB1D0
+/* 801CB184 001C6DE4 80 18 00 08 */ lwz r0, 8(r24)
+/* 801CB188 001C6DE8 2C 19 00 00 */ cmpwi r25, 0
+/* 801CB18C 001C6DEC 90 18 00 0C */ stw r0, 0xc(r24)
+/* 801CB190 001C6DF0 40 82 00 10 */ bne lbl_801CB1A0
+/* 801CB194 001C6DF4 88 18 00 01 */ lbz r0, 1(r24)
+/* 801CB198 001C6DF8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CB19C 001C6DFC 41 82 00 10 */ beq lbl_801CB1AC
+lbl_801CB1A0:
+/* 801CB1A0 001C6E00 80 78 00 0C */ lwz r3, 0xc(r24)
+/* 801CB1A4 001C6E04 38 03 FF FF */ addi r0, r3, -1
+/* 801CB1A8 001C6E08 90 18 00 0C */ stw r0, 0xc(r24)
+lbl_801CB1AC:
+/* 801CB1AC 001C6E0C 6B 80 00 10 */ xori r0, r28, 0x10
+/* 801CB1B0 001C6E10 7C 00 EB 79 */ or. r0, r0, r29
+/* 801CB1B4 001C6E14 40 82 00 1C */ bne lbl_801CB1D0
+/* 801CB1B8 001C6E18 88 18 00 03 */ lbz r0, 3(r24)
+/* 801CB1BC 001C6E1C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CB1C0 001C6E20 41 82 00 10 */ beq lbl_801CB1D0
+/* 801CB1C4 001C6E24 80 78 00 0C */ lwz r3, 0xc(r24)
+/* 801CB1C8 001C6E28 38 03 FF FE */ addi r0, r3, -2
+/* 801CB1CC 001C6E2C 90 18 00 0C */ stw r0, 0xc(r24)
+lbl_801CB1D0:
+/* 801CB1D0 001C6E30 80 78 00 0C */ lwz r3, 0xc(r24)
+/* 801CB1D4 001C6E34 7C 1B B8 50 */ subf r0, r27, r23
+/* 801CB1D8 001C6E38 7C 03 02 14 */ add r0, r3, r0
+/* 801CB1DC 001C6E3C 2C 00 01 FD */ cmpwi r0, 0x1fd
+/* 801CB1E0 001C6E40 40 81 00 0C */ ble lbl_801CB1EC
+/* 801CB1E4 001C6E44 38 60 00 00 */ li r3, 0
+/* 801CB1E8 001C6E48 48 00 00 88 */ b lbl_801CB270
+lbl_801CB1EC:
+/* 801CB1EC 001C6E4C 38 60 00 30 */ li r3, 0x30
+/* 801CB1F0 001C6E50 48 00 00 0C */ b lbl_801CB1FC
+lbl_801CB1F4:
+/* 801CB1F4 001C6E54 9C 7B FF FF */ stbu r3, -1(r27)
+/* 801CB1F8 001C6E58 3B 5A 00 01 */ addi r26, r26, 1
+lbl_801CB1FC:
+/* 801CB1FC 001C6E5C 80 18 00 0C */ lwz r0, 0xc(r24)
+/* 801CB200 001C6E60 7C 1A 00 00 */ cmpw r26, r0
+/* 801CB204 001C6E64 41 80 FF F0 */ blt lbl_801CB1F4
+/* 801CB208 001C6E68 6B 80 00 10 */ xori r0, r28, 0x10
+/* 801CB20C 001C6E6C 7C 00 EB 79 */ or. r0, r0, r29
+/* 801CB210 001C6E70 40 82 00 20 */ bne lbl_801CB230
+/* 801CB214 001C6E74 88 18 00 03 */ lbz r0, 3(r24)
+/* 801CB218 001C6E78 2C 00 00 00 */ cmpwi r0, 0
+/* 801CB21C 001C6E7C 41 82 00 14 */ beq lbl_801CB230
+/* 801CB220 001C6E80 88 78 00 05 */ lbz r3, 5(r24)
+/* 801CB224 001C6E84 38 00 00 30 */ li r0, 0x30
+/* 801CB228 001C6E88 98 7B FF FF */ stb r3, -1(r27)
+/* 801CB22C 001C6E8C 9C 1B FF FE */ stbu r0, -2(r27)
+lbl_801CB230:
+/* 801CB230 001C6E90 2C 19 00 00 */ cmpwi r25, 0
+/* 801CB234 001C6E94 41 82 00 10 */ beq lbl_801CB244
+/* 801CB238 001C6E98 38 00 00 2D */ li r0, 0x2d
+/* 801CB23C 001C6E9C 9C 1B FF FF */ stbu r0, -1(r27)
+/* 801CB240 001C6EA0 48 00 00 2C */ b lbl_801CB26C
+lbl_801CB244:
+/* 801CB244 001C6EA4 88 18 00 01 */ lbz r0, 1(r24)
+/* 801CB248 001C6EA8 28 00 00 01 */ cmplwi r0, 1
+/* 801CB24C 001C6EAC 40 82 00 10 */ bne lbl_801CB25C
+/* 801CB250 001C6EB0 38 00 00 2B */ li r0, 0x2b
+/* 801CB254 001C6EB4 9C 1B FF FF */ stbu r0, -1(r27)
+/* 801CB258 001C6EB8 48 00 00 14 */ b lbl_801CB26C
+lbl_801CB25C:
+/* 801CB25C 001C6EBC 28 00 00 02 */ cmplwi r0, 2
+/* 801CB260 001C6EC0 40 82 00 0C */ bne lbl_801CB26C
+/* 801CB264 001C6EC4 38 00 00 20 */ li r0, 0x20
+/* 801CB268 001C6EC8 9C 1B FF FF */ stbu r0, -1(r27)
+lbl_801CB26C:
+/* 801CB26C 001C6ECC 7F 63 DB 78 */ mr r3, r27
+lbl_801CB270:
+/* 801CB270 001C6ED0 BA C1 00 08 */ lmw r22, 8(r1)
+/* 801CB274 001C6ED4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 801CB278 001C6ED8 7C 08 03 A6 */ mtlr r0
+/* 801CB27C 001C6EDC 38 21 00 30 */ addi r1, r1, 0x30
+/* 801CB280 001C6EE0 4E 80 00 20 */ blr
+
+.global double2hex
+double2hex:
+/* 801CB284 001C6EE4 94 21 FF 70 */ stwu r1, -0x90(r1)
+/* 801CB288 001C6EE8 7C 08 02 A6 */ mflr r0
+/* 801CB28C 001C6EEC 90 01 00 94 */ stw r0, 0x94(r1)
+/* 801CB290 001C6EF0 DB E1 00 80 */ stfd f31, 0x80(r1)
+/* 801CB294 001C6EF4 F3 E1 00 88 */ psq_st f31, 136(r1), 0, qr0
+/* 801CB298 001C6EF8 3C A0 80 42 */ lis r5, lbl_80422B98@ha
+/* 801CB29C 001C6EFC 80 04 00 0C */ lwz r0, 0xc(r4)
+/* 801CB2A0 001C6F00 FF E0 08 90 */ fmr f31, f1
+/* 801CB2A4 001C6F04 93 E1 00 7C */ stw r31, 0x7c(r1)
+/* 801CB2A8 001C6F08 2C 00 01 FD */ cmpwi r0, 0x1fd
+/* 801CB2AC 001C6F0C 93 C1 00 78 */ stw r30, 0x78(r1)
+/* 801CB2B0 001C6F10 7C 9E 23 78 */ mr r30, r4
+/* 801CB2B4 001C6F14 93 A1 00 74 */ stw r29, 0x74(r1)
+/* 801CB2B8 001C6F18 93 81 00 70 */ stw r28, 0x70(r1)
+/* 801CB2BC 001C6F1C 7C 7C 1B 78 */ mr r28, r3
+/* 801CB2C0 001C6F20 80 A5 2B 98 */ lwz r5, lbl_80422B98@l(r5)
+/* 801CB2C4 001C6F24 D8 21 00 08 */ stfd f1, 8(r1)
+/* 801CB2C8 001C6F28 8B E5 00 00 */ lbz r31, 0(r5)
+/* 801CB2CC 001C6F2C 40 81 00 0C */ ble lbl_801CB2D8
+/* 801CB2D0 001C6F30 38 60 00 00 */ li r3, 0
+/* 801CB2D4 001C6F34 48 00 03 50 */ b lbl_801CB624
+lbl_801CB2D8:
+/* 801CB2D8 001C6F38 3B A0 00 00 */ li r29, 0
+/* 801CB2DC 001C6F3C 38 00 00 20 */ li r0, 0x20
+/* 801CB2E0 001C6F40 9B A1 00 10 */ stb r29, 0x10(r1)
+/* 801CB2E4 001C6F44 38 61 00 10 */ addi r3, r1, 0x10
+/* 801CB2E8 001C6F48 38 81 00 38 */ addi r4, r1, 0x38
+/* 801CB2EC 001C6F4C B0 01 00 12 */ sth r0, 0x12(r1)
+/* 801CB2F0 001C6F50 4B FF D7 59 */ bl __num2dec
+/* 801CB2F4 001C6F54 FC 20 FA 10 */ fabs f1, f31
+/* 801CB2F8 001C6F58 C8 02 91 48 */ lfd f0, lbl_80641748-_SDA2_BASE_(r2)
+/* 801CB2FC 001C6F5C FC 00 08 00 */ fcmpu cr0, f0, f1
+/* 801CB300 001C6F60 40 82 00 20 */ bne lbl_801CB320
+/* 801CB304 001C6F64 3B BC FF FA */ addi r29, r28, -6
+/* 801CB308 001C6F68 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CB30C 001C6F6C 7F A3 EB 78 */ mr r3, r29
+/* 801CB310 001C6F70 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CB314 001C6F74 48 00 2F BD */ bl strcpy
+/* 801CB318 001C6F78 7F A3 EB 78 */ mr r3, r29
+/* 801CB31C 001C6F7C 48 00 03 08 */ b lbl_801CB624
+lbl_801CB320:
+/* 801CB320 001C6F80 88 01 00 3D */ lbz r0, 0x3d(r1)
+/* 801CB324 001C6F84 28 00 00 49 */ cmplwi r0, 0x49
+/* 801CB328 001C6F88 40 82 00 94 */ bne lbl_801CB3BC
+/* 801CB32C 001C6F8C 88 01 00 38 */ lbz r0, 0x38(r1)
+/* 801CB330 001C6F90 7C 00 07 75 */ extsb. r0, r0
+/* 801CB334 001C6F94 41 82 00 44 */ beq lbl_801CB378
+/* 801CB338 001C6F98 88 1E 00 05 */ lbz r0, 5(r30)
+/* 801CB33C 001C6F9C 3B BC FF FB */ addi r29, r28, -5
+/* 801CB340 001C6FA0 28 00 00 41 */ cmplwi r0, 0x41
+/* 801CB344 001C6FA4 40 82 00 1C */ bne lbl_801CB360
+/* 801CB348 001C6FA8 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CB34C 001C6FAC 7F A3 EB 78 */ mr r3, r29
+/* 801CB350 001C6FB0 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CB354 001C6FB4 38 84 00 06 */ addi r4, r4, 6
+/* 801CB358 001C6FB8 48 00 2F 79 */ bl strcpy
+/* 801CB35C 001C6FBC 48 00 00 58 */ b lbl_801CB3B4
+lbl_801CB360:
+/* 801CB360 001C6FC0 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CB364 001C6FC4 7F A3 EB 78 */ mr r3, r29
+/* 801CB368 001C6FC8 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CB36C 001C6FCC 38 84 00 0B */ addi r4, r4, 0xb
+/* 801CB370 001C6FD0 48 00 2F 61 */ bl strcpy
+/* 801CB374 001C6FD4 48 00 00 40 */ b lbl_801CB3B4
+lbl_801CB378:
+/* 801CB378 001C6FD8 88 1E 00 05 */ lbz r0, 5(r30)
+/* 801CB37C 001C6FDC 3B BC FF FC */ addi r29, r28, -4
+/* 801CB380 001C6FE0 28 00 00 41 */ cmplwi r0, 0x41
+/* 801CB384 001C6FE4 40 82 00 1C */ bne lbl_801CB3A0
+/* 801CB388 001C6FE8 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CB38C 001C6FEC 7F A3 EB 78 */ mr r3, r29
+/* 801CB390 001C6FF0 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CB394 001C6FF4 38 84 00 10 */ addi r4, r4, 0x10
+/* 801CB398 001C6FF8 48 00 2F 39 */ bl strcpy
+/* 801CB39C 001C6FFC 48 00 00 18 */ b lbl_801CB3B4
+lbl_801CB3A0:
+/* 801CB3A0 001C7000 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CB3A4 001C7004 7F A3 EB 78 */ mr r3, r29
+/* 801CB3A8 001C7008 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CB3AC 001C700C 38 84 00 14 */ addi r4, r4, 0x14
+/* 801CB3B0 001C7010 48 00 2F 21 */ bl strcpy
+lbl_801CB3B4:
+/* 801CB3B4 001C7014 7F A3 EB 78 */ mr r3, r29
+/* 801CB3B8 001C7018 48 00 02 6C */ b lbl_801CB624
+lbl_801CB3BC:
+/* 801CB3BC 001C701C 28 00 00 4E */ cmplwi r0, 0x4e
+/* 801CB3C0 001C7020 40 82 00 94 */ bne lbl_801CB454
+/* 801CB3C4 001C7024 88 01 00 38 */ lbz r0, 0x38(r1)
+/* 801CB3C8 001C7028 7C 00 07 75 */ extsb. r0, r0
+/* 801CB3CC 001C702C 41 82 00 44 */ beq lbl_801CB410
+/* 801CB3D0 001C7030 88 1E 00 05 */ lbz r0, 5(r30)
+/* 801CB3D4 001C7034 3B BC FF FB */ addi r29, r28, -5
+/* 801CB3D8 001C7038 28 00 00 41 */ cmplwi r0, 0x41
+/* 801CB3DC 001C703C 40 82 00 1C */ bne lbl_801CB3F8
+/* 801CB3E0 001C7040 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CB3E4 001C7044 7F A3 EB 78 */ mr r3, r29
+/* 801CB3E8 001C7048 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CB3EC 001C704C 38 84 00 18 */ addi r4, r4, 0x18
+/* 801CB3F0 001C7050 48 00 2E E1 */ bl strcpy
+/* 801CB3F4 001C7054 48 00 00 58 */ b lbl_801CB44C
+lbl_801CB3F8:
+/* 801CB3F8 001C7058 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CB3FC 001C705C 7F A3 EB 78 */ mr r3, r29
+/* 801CB400 001C7060 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CB404 001C7064 38 84 00 1D */ addi r4, r4, 0x1d
+/* 801CB408 001C7068 48 00 2E C9 */ bl strcpy
+/* 801CB40C 001C706C 48 00 00 40 */ b lbl_801CB44C
+lbl_801CB410:
+/* 801CB410 001C7070 88 1E 00 05 */ lbz r0, 5(r30)
+/* 801CB414 001C7074 3B BC FF FC */ addi r29, r28, -4
+/* 801CB418 001C7078 28 00 00 41 */ cmplwi r0, 0x41
+/* 801CB41C 001C707C 40 82 00 1C */ bne lbl_801CB438
+/* 801CB420 001C7080 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CB424 001C7084 7F A3 EB 78 */ mr r3, r29
+/* 801CB428 001C7088 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CB42C 001C708C 38 84 00 22 */ addi r4, r4, 0x22
+/* 801CB430 001C7090 48 00 2E A1 */ bl strcpy
+/* 801CB434 001C7094 48 00 00 18 */ b lbl_801CB44C
+lbl_801CB438:
+/* 801CB438 001C7098 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CB43C 001C709C 7F A3 EB 78 */ mr r3, r29
+/* 801CB440 001C70A0 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CB444 001C70A4 38 84 00 26 */ addi r4, r4, 0x26
+/* 801CB448 001C70A8 48 00 2E 89 */ bl strcpy
+lbl_801CB44C:
+/* 801CB44C 001C70AC 7F A3 EB 78 */ mr r3, r29
+/* 801CB450 001C70B0 48 00 01 D4 */ b lbl_801CB624
+lbl_801CB454:
+/* 801CB454 001C70B4 39 00 00 01 */ li r8, 1
+/* 801CB458 001C70B8 38 E0 00 64 */ li r7, 0x64
+/* 801CB45C 001C70BC 88 01 00 09 */ lbz r0, 9(r1)
+/* 801CB460 001C70C0 7F 84 E3 78 */ mr r4, r28
+/* 801CB464 001C70C4 88 61 00 08 */ lbz r3, 8(r1)
+/* 801CB468 001C70C8 38 A1 00 18 */ addi r5, r1, 0x18
+/* 801CB46C 001C70CC 54 00 88 1C */ slwi r0, r0, 0x11
+/* 801CB470 001C70D0 99 01 00 28 */ stb r8, 0x28(r1)
+/* 801CB474 001C70D4 50 60 C8 0C */ rlwimi r0, r3, 0x19, 0, 6
+/* 801CB478 001C70D8 54 03 5D 7E */ srwi r3, r0, 0x15
+/* 801CB47C 001C70DC 99 01 00 29 */ stb r8, 0x29(r1)
+/* 801CB480 001C70E0 38 63 FC 01 */ addi r3, r3, -1023
+/* 801CB484 001C70E4 9B A1 00 2A */ stb r29, 0x2a(r1)
+/* 801CB488 001C70E8 9B A1 00 2B */ stb r29, 0x2b(r1)
+/* 801CB48C 001C70EC 80 C1 00 28 */ lwz r6, 0x28(r1)
+/* 801CB490 001C70F0 9B A1 00 2C */ stb r29, 0x2c(r1)
+/* 801CB494 001C70F4 98 E1 00 2D */ stb r7, 0x2d(r1)
+/* 801CB498 001C70F8 80 01 00 2C */ lwz r0, 0x2c(r1)
+/* 801CB49C 001C70FC 93 A1 00 30 */ stw r29, 0x30(r1)
+/* 801CB4A0 001C7100 91 01 00 34 */ stw r8, 0x34(r1)
+/* 801CB4A4 001C7104 90 C1 00 18 */ stw r6, 0x18(r1)
+/* 801CB4A8 001C7108 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 801CB4AC 001C710C 93 A1 00 20 */ stw r29, 0x20(r1)
+/* 801CB4B0 001C7110 91 01 00 24 */ stw r8, 0x24(r1)
+/* 801CB4B4 001C7114 4B FF F9 09 */ bl long2str
+/* 801CB4B8 001C7118 88 1E 00 05 */ lbz r0, 5(r30)
+/* 801CB4BC 001C711C 28 00 00 61 */ cmplwi r0, 0x61
+/* 801CB4C0 001C7120 40 82 00 14 */ bne lbl_801CB4D4
+/* 801CB4C4 001C7124 38 00 00 70 */ li r0, 0x70
+/* 801CB4C8 001C7128 38 83 FF FF */ addi r4, r3, -1
+/* 801CB4CC 001C712C 98 03 FF FF */ stb r0, -1(r3)
+/* 801CB4D0 001C7130 48 00 00 10 */ b lbl_801CB4E0
+lbl_801CB4D4:
+/* 801CB4D4 001C7134 38 00 00 50 */ li r0, 0x50
+/* 801CB4D8 001C7138 38 83 FF FF */ addi r4, r3, -1
+/* 801CB4DC 001C713C 98 03 FF FF */ stb r0, -1(r3)
+lbl_801CB4E0:
+/* 801CB4E0 001C7140 80 1E 00 0C */ lwz r0, 0xc(r30)
+/* 801CB4E4 001C7144 39 01 00 08 */ addi r8, r1, 8
+/* 801CB4E8 001C7148 54 03 10 3A */ slwi r3, r0, 2
+/* 801CB4EC 001C714C 39 23 00 0B */ addi r9, r3, 0xb
+/* 801CB4F0 001C7150 7C 09 03 A6 */ mtctr r0
+/* 801CB4F4 001C7154 2C 00 00 01 */ cmpwi r0, 1
+/* 801CB4F8 001C7158 41 80 00 9C */ blt lbl_801CB594
+lbl_801CB4FC:
+/* 801CB4FC 001C715C 2C 09 00 40 */ cmpwi r9, 0x40
+/* 801CB500 001C7160 40 80 00 84 */ bge lbl_801CB584
+/* 801CB504 001C7164 7D 23 1E 70 */ srawi r3, r9, 3
+/* 801CB508 001C7168 38 09 FF FC */ addi r0, r9, -4
+/* 801CB50C 001C716C 7C E8 1A 14 */ add r7, r8, r3
+/* 801CB510 001C7170 55 26 07 7E */ clrlwi r6, r9, 0x1d
+/* 801CB514 001C7174 55 23 00 38 */ rlwinm r3, r9, 0, 0, 0x1c
+/* 801CB518 001C7178 54 00 00 38 */ rlwinm r0, r0, 0, 0, 0x1c
+/* 801CB51C 001C717C 88 A7 00 00 */ lbz r5, 0(r7)
+/* 801CB520 001C7180 20 C6 00 07 */ subfic r6, r6, 7
+/* 801CB524 001C7184 7C 03 00 00 */ cmpw r3, r0
+/* 801CB528 001C7188 7C A0 36 30 */ sraw r0, r5, r6
+/* 801CB52C 001C718C 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 801CB530 001C7190 41 82 00 18 */ beq lbl_801CB548
+/* 801CB534 001C7194 88 07 FF FF */ lbz r0, -1(r7)
+/* 801CB538 001C7198 54 00 40 2E */ slwi r0, r0, 8
+/* 801CB53C 001C719C 7C 00 36 30 */ sraw r0, r0, r6
+/* 801CB540 001C71A0 7C 60 03 78 */ or r0, r3, r0
+/* 801CB544 001C71A4 54 03 06 3E */ clrlwi r3, r0, 0x18
+lbl_801CB548:
+/* 801CB548 001C71A8 54 63 07 3E */ clrlwi r3, r3, 0x1c
+/* 801CB54C 001C71AC 28 03 00 0A */ cmplwi r3, 0xa
+/* 801CB550 001C71B0 40 80 00 10 */ bge lbl_801CB560
+/* 801CB554 001C71B4 38 03 00 30 */ addi r0, r3, 0x30
+/* 801CB558 001C71B8 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 801CB55C 001C71BC 48 00 00 2C */ b lbl_801CB588
+lbl_801CB560:
+/* 801CB560 001C71C0 88 1E 00 05 */ lbz r0, 5(r30)
+/* 801CB564 001C71C4 28 00 00 61 */ cmplwi r0, 0x61
+/* 801CB568 001C71C8 40 82 00 10 */ bne lbl_801CB578
+/* 801CB56C 001C71CC 38 03 00 57 */ addi r0, r3, 0x57
+/* 801CB570 001C71D0 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 801CB574 001C71D4 48 00 00 14 */ b lbl_801CB588
+lbl_801CB578:
+/* 801CB578 001C71D8 38 03 00 37 */ addi r0, r3, 0x37
+/* 801CB57C 001C71DC 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 801CB580 001C71E0 48 00 00 08 */ b lbl_801CB588
+lbl_801CB584:
+/* 801CB584 001C71E4 38 60 00 30 */ li r3, 0x30
+lbl_801CB588:
+/* 801CB588 001C71E8 9C 64 FF FF */ stbu r3, -1(r4)
+/* 801CB58C 001C71EC 39 29 FF FC */ addi r9, r9, -4
+/* 801CB590 001C71F0 42 00 FF 6C */ bdnz lbl_801CB4FC
+lbl_801CB594:
+/* 801CB594 001C71F4 80 1E 00 0C */ lwz r0, 0xc(r30)
+/* 801CB598 001C71F8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CB59C 001C71FC 40 82 00 10 */ bne lbl_801CB5AC
+/* 801CB5A0 001C7200 88 1E 00 03 */ lbz r0, 3(r30)
+/* 801CB5A4 001C7204 2C 00 00 00 */ cmpwi r0, 0
+/* 801CB5A8 001C7208 41 82 00 08 */ beq lbl_801CB5B0
+lbl_801CB5AC:
+/* 801CB5AC 001C720C 9F E4 FF FF */ stbu r31, -1(r4)
+lbl_801CB5B0:
+/* 801CB5B0 001C7210 88 1E 00 05 */ lbz r0, 5(r30)
+/* 801CB5B4 001C7214 38 60 00 31 */ li r3, 0x31
+/* 801CB5B8 001C7218 98 64 FF FF */ stb r3, -1(r4)
+/* 801CB5BC 001C721C 28 00 00 61 */ cmplwi r0, 0x61
+/* 801CB5C0 001C7220 40 82 00 10 */ bne lbl_801CB5D0
+/* 801CB5C4 001C7224 38 00 00 78 */ li r0, 0x78
+/* 801CB5C8 001C7228 9C 04 FF FE */ stbu r0, -2(r4)
+/* 801CB5CC 001C722C 48 00 00 0C */ b lbl_801CB5D8
+lbl_801CB5D0:
+/* 801CB5D0 001C7230 38 00 00 58 */ li r0, 0x58
+/* 801CB5D4 001C7234 9C 04 FF FE */ stbu r0, -2(r4)
+lbl_801CB5D8:
+/* 801CB5D8 001C7238 38 00 00 30 */ li r0, 0x30
+/* 801CB5DC 001C723C 9C 04 FF FF */ stbu r0, -1(r4)
+/* 801CB5E0 001C7240 88 01 00 38 */ lbz r0, 0x38(r1)
+/* 801CB5E4 001C7244 7C 00 07 75 */ extsb. r0, r0
+/* 801CB5E8 001C7248 41 82 00 10 */ beq lbl_801CB5F8
+/* 801CB5EC 001C724C 38 00 00 2D */ li r0, 0x2d
+/* 801CB5F0 001C7250 9C 04 FF FF */ stbu r0, -1(r4)
+/* 801CB5F4 001C7254 48 00 00 2C */ b lbl_801CB620
+lbl_801CB5F8:
+/* 801CB5F8 001C7258 88 1E 00 01 */ lbz r0, 1(r30)
+/* 801CB5FC 001C725C 28 00 00 01 */ cmplwi r0, 1
+/* 801CB600 001C7260 40 82 00 10 */ bne lbl_801CB610
+/* 801CB604 001C7264 38 00 00 2B */ li r0, 0x2b
+/* 801CB608 001C7268 9C 04 FF FF */ stbu r0, -1(r4)
+/* 801CB60C 001C726C 48 00 00 14 */ b lbl_801CB620
+lbl_801CB610:
+/* 801CB610 001C7270 28 00 00 02 */ cmplwi r0, 2
+/* 801CB614 001C7274 40 82 00 0C */ bne lbl_801CB620
+/* 801CB618 001C7278 38 00 00 20 */ li r0, 0x20
+/* 801CB61C 001C727C 9C 04 FF FF */ stbu r0, -1(r4)
+lbl_801CB620:
+/* 801CB620 001C7280 7C 83 23 78 */ mr r3, r4
+lbl_801CB624:
+/* 801CB624 001C7284 E3 E1 00 88 */ psq_l f31, 136(r1), 0, qr0
+/* 801CB628 001C7288 80 01 00 94 */ lwz r0, 0x94(r1)
+/* 801CB62C 001C728C CB E1 00 80 */ lfd f31, 0x80(r1)
+/* 801CB630 001C7290 83 E1 00 7C */ lwz r31, 0x7c(r1)
+/* 801CB634 001C7294 83 C1 00 78 */ lwz r30, 0x78(r1)
+/* 801CB638 001C7298 83 A1 00 74 */ lwz r29, 0x74(r1)
+/* 801CB63C 001C729C 83 81 00 70 */ lwz r28, 0x70(r1)
+/* 801CB640 001C72A0 7C 08 03 A6 */ mtlr r0
+/* 801CB644 001C72A4 38 21 00 90 */ addi r1, r1, 0x90
+/* 801CB648 001C72A8 4E 80 00 20 */ blr
+
+.global round_decimal
+round_decimal:
+/* 801CB64C 001C72AC 2C 04 00 00 */ cmpwi r4, 0
+/* 801CB650 001C72B0 40 80 00 20 */ bge lbl_801CB670
+lbl_801CB654:
+/* 801CB654 001C72B4 38 A0 00 00 */ li r5, 0
+/* 801CB658 001C72B8 38 80 00 01 */ li r4, 1
+/* 801CB65C 001C72BC 38 00 00 30 */ li r0, 0x30
+/* 801CB660 001C72C0 B0 A3 00 02 */ sth r5, 2(r3)
+/* 801CB664 001C72C4 98 83 00 04 */ stb r4, 4(r3)
+/* 801CB668 001C72C8 98 03 00 05 */ stb r0, 5(r3)
+/* 801CB66C 001C72CC 4E 80 00 20 */ blr
+lbl_801CB670:
+/* 801CB670 001C72D0 88 E3 00 04 */ lbz r7, 4(r3)
+/* 801CB674 001C72D4 7C 04 38 00 */ cmpw r4, r7
+/* 801CB678 001C72D8 4C 80 00 20 */ bgelr
+/* 801CB67C 001C72DC 7C C3 22 14 */ add r6, r3, r4
+/* 801CB680 001C72E0 88 A6 00 05 */ lbz r5, 5(r6)
+/* 801CB684 001C72E4 39 06 00 05 */ addi r8, r6, 5
+/* 801CB688 001C72E8 38 05 FF D0 */ addi r0, r5, -48
+/* 801CB68C 001C72EC 7C 06 07 74 */ extsb r6, r0
+/* 801CB690 001C72F0 2C 06 00 05 */ cmpwi r6, 5
+/* 801CB694 001C72F4 40 82 00 40 */ bne lbl_801CB6D4
+/* 801CB698 001C72F8 7C A3 3A 14 */ add r5, r3, r7
+/* 801CB69C 001C72FC 38 A5 00 05 */ addi r5, r5, 5
+lbl_801CB6A0:
+/* 801CB6A0 001C7300 38 A5 FF FF */ addi r5, r5, -1
+/* 801CB6A4 001C7304 7C 05 40 40 */ cmplw r5, r8
+/* 801CB6A8 001C7308 40 81 00 10 */ ble lbl_801CB6B8
+/* 801CB6AC 001C730C 88 05 00 00 */ lbz r0, 0(r5)
+/* 801CB6B0 001C7310 2C 00 00 30 */ cmpwi r0, 0x30
+/* 801CB6B4 001C7314 41 82 FF EC */ beq lbl_801CB6A0
+lbl_801CB6B8:
+/* 801CB6B8 001C7318 7C 05 40 40 */ cmplw r5, r8
+/* 801CB6BC 001C731C 40 82 00 10 */ bne lbl_801CB6CC
+/* 801CB6C0 001C7320 88 08 FF FF */ lbz r0, -1(r8)
+/* 801CB6C4 001C7324 54 05 07 FE */ clrlwi r5, r0, 0x1f
+/* 801CB6C8 001C7328 48 00 00 20 */ b lbl_801CB6E8
+lbl_801CB6CC:
+/* 801CB6CC 001C732C 38 A0 00 01 */ li r5, 1
+/* 801CB6D0 001C7330 48 00 00 18 */ b lbl_801CB6E8
+lbl_801CB6D4:
+/* 801CB6D4 001C7334 68 C0 00 05 */ xori r0, r6, 5
+/* 801CB6D8 001C7338 7C 05 0E 70 */ srawi r5, r0, 1
+/* 801CB6DC 001C733C 7C 00 30 38 */ and r0, r0, r6
+/* 801CB6E0 001C7340 7C 00 28 50 */ subf r0, r0, r5
+/* 801CB6E4 001C7344 54 05 0F FE */ srwi r5, r0, 0x1f
+lbl_801CB6E8:
+/* 801CB6E8 001C7348 7C 89 03 A6 */ mtctr r4
+/* 801CB6EC 001C734C 2C 04 00 00 */ cmpwi r4, 0
+/* 801CB6F0 001C7350 41 82 00 4C */ beq lbl_801CB73C
+lbl_801CB6F4:
+/* 801CB6F4 001C7354 8C 08 FF FF */ lbzu r0, -1(r8)
+/* 801CB6F8 001C7358 7C A0 2A 14 */ add r5, r0, r5
+/* 801CB6FC 001C735C 38 05 FF D0 */ addi r0, r5, -48
+/* 801CB700 001C7360 7C 06 07 74 */ extsb r6, r0
+/* 801CB704 001C7364 68 C0 00 09 */ xori r0, r6, 9
+/* 801CB708 001C7368 7C 05 0E 70 */ srawi r5, r0, 1
+/* 801CB70C 001C736C 7C 00 30 38 */ and r0, r0, r6
+/* 801CB710 001C7370 7C 00 28 50 */ subf r0, r0, r5
+/* 801CB714 001C7374 54 05 0F FF */ rlwinm. r5, r0, 1, 0x1f, 0x1f
+/* 801CB718 001C7378 40 82 00 0C */ bne lbl_801CB724
+/* 801CB71C 001C737C 2C 06 00 00 */ cmpwi r6, 0
+/* 801CB720 001C7380 40 82 00 0C */ bne lbl_801CB72C
+lbl_801CB724:
+/* 801CB724 001C7384 38 84 FF FF */ addi r4, r4, -1
+/* 801CB728 001C7388 48 00 00 10 */ b lbl_801CB738
+lbl_801CB72C:
+/* 801CB72C 001C738C 38 06 00 30 */ addi r0, r6, 0x30
+/* 801CB730 001C7390 98 08 00 00 */ stb r0, 0(r8)
+/* 801CB734 001C7394 48 00 00 08 */ b lbl_801CB73C
+lbl_801CB738:
+/* 801CB738 001C7398 42 00 FF BC */ bdnz lbl_801CB6F4
+lbl_801CB73C:
+/* 801CB73C 001C739C 2C 05 00 00 */ cmpwi r5, 0
+/* 801CB740 001C73A0 41 82 00 24 */ beq lbl_801CB764
+/* 801CB744 001C73A4 A8 A3 00 02 */ lha r5, 2(r3)
+/* 801CB748 001C73A8 38 80 00 01 */ li r4, 1
+/* 801CB74C 001C73AC 38 00 00 31 */ li r0, 0x31
+/* 801CB750 001C73B0 98 83 00 04 */ stb r4, 4(r3)
+/* 801CB754 001C73B4 38 85 00 01 */ addi r4, r5, 1
+/* 801CB758 001C73B8 B0 83 00 02 */ sth r4, 2(r3)
+/* 801CB75C 001C73BC 98 03 00 05 */ stb r0, 5(r3)
+/* 801CB760 001C73C0 4E 80 00 20 */ blr
+lbl_801CB764:
+/* 801CB764 001C73C4 2C 04 00 00 */ cmpwi r4, 0
+/* 801CB768 001C73C8 41 82 FE EC */ beq lbl_801CB654
+/* 801CB76C 001C73CC 98 83 00 04 */ stb r4, 4(r3)
+/* 801CB770 001C73D0 4E 80 00 20 */ blr
+
+.global float2str
+float2str:
+/* 801CB774 001C73D4 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 801CB778 001C73D8 7C 08 02 A6 */ mflr r0
+/* 801CB77C 001C73DC 3C A0 80 42 */ lis r5, lbl_80422B98@ha
+/* 801CB780 001C73E0 90 01 00 54 */ stw r0, 0x54(r1)
+/* 801CB784 001C73E4 80 04 00 0C */ lwz r0, 0xc(r4)
+/* 801CB788 001C73E8 DB E1 00 48 */ stfd f31, 0x48(r1)
+/* 801CB78C 001C73EC FF E0 08 90 */ fmr f31, f1
+/* 801CB790 001C73F0 2C 00 01 FD */ cmpwi r0, 0x1fd
+/* 801CB794 001C73F4 93 E1 00 44 */ stw r31, 0x44(r1)
+/* 801CB798 001C73F8 93 C1 00 40 */ stw r30, 0x40(r1)
+/* 801CB79C 001C73FC 93 A1 00 3C */ stw r29, 0x3c(r1)
+/* 801CB7A0 001C7400 7C 9D 23 78 */ mr r29, r4
+/* 801CB7A4 001C7404 93 81 00 38 */ stw r28, 0x38(r1)
+/* 801CB7A8 001C7408 7C 7C 1B 78 */ mr r28, r3
+/* 801CB7AC 001C740C 80 A5 2B 98 */ lwz r5, lbl_80422B98@l(r5)
+/* 801CB7B0 001C7410 8B C5 00 00 */ lbz r30, 0(r5)
+/* 801CB7B4 001C7414 40 81 00 0C */ ble lbl_801CB7C0
+/* 801CB7B8 001C7418 38 60 00 00 */ li r3, 0
+/* 801CB7BC 001C741C 48 00 07 64 */ b lbl_801CBF20
+lbl_801CB7C0:
+/* 801CB7C0 001C7420 38 60 00 00 */ li r3, 0
+/* 801CB7C4 001C7424 38 00 00 20 */ li r0, 0x20
+/* 801CB7C8 001C7428 98 61 00 08 */ stb r3, 8(r1)
+/* 801CB7CC 001C742C 38 61 00 08 */ addi r3, r1, 8
+/* 801CB7D0 001C7430 38 81 00 0C */ addi r4, r1, 0xc
+/* 801CB7D4 001C7434 B0 01 00 0A */ sth r0, 0xa(r1)
+/* 801CB7D8 001C7438 4B FF D2 71 */ bl __num2dec
+/* 801CB7DC 001C743C 88 01 00 10 */ lbz r0, 0x10(r1)
+/* 801CB7E0 001C7440 38 A1 00 11 */ addi r5, r1, 0x11
+/* 801CB7E4 001C7444 7C A5 02 14 */ add r5, r5, r0
+/* 801CB7E8 001C7448 48 00 00 1C */ b lbl_801CB804
+lbl_801CB7EC:
+/* 801CB7EC 001C744C 88 81 00 10 */ lbz r4, 0x10(r1)
+/* 801CB7F0 001C7450 A8 61 00 0E */ lha r3, 0xe(r1)
+/* 801CB7F4 001C7454 38 84 FF FF */ addi r4, r4, -1
+/* 801CB7F8 001C7458 38 03 00 01 */ addi r0, r3, 1
+/* 801CB7FC 001C745C 98 81 00 10 */ stb r4, 0x10(r1)
+/* 801CB800 001C7460 B0 01 00 0E */ sth r0, 0xe(r1)
+lbl_801CB804:
+/* 801CB804 001C7464 88 01 00 10 */ lbz r0, 0x10(r1)
+/* 801CB808 001C7468 28 00 00 01 */ cmplwi r0, 1
+/* 801CB80C 001C746C 40 81 00 10 */ ble lbl_801CB81C
+/* 801CB810 001C7470 8C 05 FF FF */ lbzu r0, -1(r5)
+/* 801CB814 001C7474 2C 00 00 30 */ cmpwi r0, 0x30
+/* 801CB818 001C7478 41 82 FF D4 */ beq lbl_801CB7EC
+lbl_801CB81C:
+/* 801CB81C 001C747C 88 01 00 11 */ lbz r0, 0x11(r1)
+/* 801CB820 001C7480 2C 00 00 49 */ cmpwi r0, 0x49
+/* 801CB824 001C7484 41 82 00 2C */ beq lbl_801CB850
+/* 801CB828 001C7488 40 80 00 10 */ bge lbl_801CB838
+/* 801CB82C 001C748C 2C 00 00 30 */ cmpwi r0, 0x30
+/* 801CB830 001C7490 41 82 00 14 */ beq lbl_801CB844
+/* 801CB834 001C7494 48 00 02 4C */ b lbl_801CBA80
+lbl_801CB838:
+/* 801CB838 001C7498 2C 00 00 4E */ cmpwi r0, 0x4e
+/* 801CB83C 001C749C 41 82 01 2C */ beq lbl_801CB968
+/* 801CB840 001C74A0 48 00 02 40 */ b lbl_801CBA80
+lbl_801CB844:
+/* 801CB844 001C74A4 38 00 00 00 */ li r0, 0
+/* 801CB848 001C74A8 B0 01 00 0E */ sth r0, 0xe(r1)
+/* 801CB84C 001C74AC 48 00 02 34 */ b lbl_801CBA80
+lbl_801CB850:
+/* 801CB850 001C74B0 C8 02 91 48 */ lfd f0, lbl_80641748-_SDA2_BASE_(r2)
+/* 801CB854 001C74B4 FC 1F 00 40 */ fcmpo cr0, f31, f0
+/* 801CB858 001C74B8 40 80 00 88 */ bge lbl_801CB8E0
+/* 801CB85C 001C74BC 88 9D 00 05 */ lbz r4, 5(r29)
+/* 801CB860 001C74C0 3B FC FF FB */ addi r31, r28, -5
+/* 801CB864 001C74C4 38 00 00 00 */ li r0, 0
+/* 801CB868 001C74C8 2C 04 00 00 */ cmpwi r4, 0
+/* 801CB86C 001C74CC 41 80 00 0C */ blt lbl_801CB878
+/* 801CB870 001C74D0 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CB874 001C74D4 41 80 00 08 */ blt lbl_801CB87C
+lbl_801CB878:
+/* 801CB878 001C74D8 38 00 00 01 */ li r0, 1
+lbl_801CB87C:
+/* 801CB87C 001C74DC 2C 00 00 00 */ cmpwi r0, 0
+/* 801CB880 001C74E0 41 82 00 0C */ beq lbl_801CB88C
+/* 801CB884 001C74E4 38 00 00 00 */ li r0, 0
+/* 801CB888 001C74E8 48 00 00 20 */ b lbl_801CB8A8
+lbl_801CB88C:
+/* 801CB88C 001C74EC 3C 60 80 42 */ lis r3, lbl_80422D48@ha
+/* 801CB890 001C74F0 54 80 08 3C */ slwi r0, r4, 1
+/* 801CB894 001C74F4 38 63 2D 48 */ addi r3, r3, lbl_80422D48@l
+/* 801CB898 001C74F8 80 63 00 38 */ lwz r3, 0x38(r3)
+/* 801CB89C 001C74FC 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CB8A0 001C7500 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CB8A4 001C7504 54 00 05 AC */ rlwinm r0, r0, 0, 0x16, 0x16
+lbl_801CB8A8:
+/* 801CB8A8 001C7508 2C 00 00 00 */ cmpwi r0, 0
+/* 801CB8AC 001C750C 41 82 00 1C */ beq lbl_801CB8C8
+/* 801CB8B0 001C7510 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CB8B4 001C7514 7F E3 FB 78 */ mr r3, r31
+/* 801CB8B8 001C7518 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CB8BC 001C751C 38 84 00 06 */ addi r4, r4, 6
+/* 801CB8C0 001C7520 48 00 2A 11 */ bl strcpy
+/* 801CB8C4 001C7524 48 00 00 9C */ b lbl_801CB960
+lbl_801CB8C8:
+/* 801CB8C8 001C7528 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CB8CC 001C752C 7F E3 FB 78 */ mr r3, r31
+/* 801CB8D0 001C7530 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CB8D4 001C7534 38 84 00 0B */ addi r4, r4, 0xb
+/* 801CB8D8 001C7538 48 00 29 F9 */ bl strcpy
+/* 801CB8DC 001C753C 48 00 00 84 */ b lbl_801CB960
+lbl_801CB8E0:
+/* 801CB8E0 001C7540 88 9D 00 05 */ lbz r4, 5(r29)
+/* 801CB8E4 001C7544 3B FC FF FC */ addi r31, r28, -4
+/* 801CB8E8 001C7548 38 00 00 00 */ li r0, 0
+/* 801CB8EC 001C754C 2C 04 00 00 */ cmpwi r4, 0
+/* 801CB8F0 001C7550 41 80 00 0C */ blt lbl_801CB8FC
+/* 801CB8F4 001C7554 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CB8F8 001C7558 41 80 00 08 */ blt lbl_801CB900
+lbl_801CB8FC:
+/* 801CB8FC 001C755C 38 00 00 01 */ li r0, 1
+lbl_801CB900:
+/* 801CB900 001C7560 2C 00 00 00 */ cmpwi r0, 0
+/* 801CB904 001C7564 41 82 00 0C */ beq lbl_801CB910
+/* 801CB908 001C7568 38 00 00 00 */ li r0, 0
+/* 801CB90C 001C756C 48 00 00 20 */ b lbl_801CB92C
+lbl_801CB910:
+/* 801CB910 001C7570 3C 60 80 42 */ lis r3, lbl_80422D48@ha
+/* 801CB914 001C7574 54 80 08 3C */ slwi r0, r4, 1
+/* 801CB918 001C7578 38 63 2D 48 */ addi r3, r3, lbl_80422D48@l
+/* 801CB91C 001C757C 80 63 00 38 */ lwz r3, 0x38(r3)
+/* 801CB920 001C7580 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CB924 001C7584 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CB928 001C7588 54 00 05 AC */ rlwinm r0, r0, 0, 0x16, 0x16
+lbl_801CB92C:
+/* 801CB92C 001C758C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CB930 001C7590 41 82 00 1C */ beq lbl_801CB94C
+/* 801CB934 001C7594 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CB938 001C7598 7F E3 FB 78 */ mr r3, r31
+/* 801CB93C 001C759C 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CB940 001C75A0 38 84 00 10 */ addi r4, r4, 0x10
+/* 801CB944 001C75A4 48 00 29 8D */ bl strcpy
+/* 801CB948 001C75A8 48 00 00 18 */ b lbl_801CB960
+lbl_801CB94C:
+/* 801CB94C 001C75AC 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CB950 001C75B0 7F E3 FB 78 */ mr r3, r31
+/* 801CB954 001C75B4 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CB958 001C75B8 38 84 00 14 */ addi r4, r4, 0x14
+/* 801CB95C 001C75BC 48 00 29 75 */ bl strcpy
+lbl_801CB960:
+/* 801CB960 001C75C0 7F E3 FB 78 */ mr r3, r31
+/* 801CB964 001C75C4 48 00 05 BC */ b lbl_801CBF20
+lbl_801CB968:
+/* 801CB968 001C75C8 88 01 00 0C */ lbz r0, 0xc(r1)
+/* 801CB96C 001C75CC 7C 00 07 75 */ extsb. r0, r0
+/* 801CB970 001C75D0 41 82 00 88 */ beq lbl_801CB9F8
+/* 801CB974 001C75D4 88 9D 00 05 */ lbz r4, 5(r29)
+/* 801CB978 001C75D8 3B FC FF FB */ addi r31, r28, -5
+/* 801CB97C 001C75DC 38 00 00 00 */ li r0, 0
+/* 801CB980 001C75E0 2C 04 00 00 */ cmpwi r4, 0
+/* 801CB984 001C75E4 41 80 00 0C */ blt lbl_801CB990
+/* 801CB988 001C75E8 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CB98C 001C75EC 41 80 00 08 */ blt lbl_801CB994
+lbl_801CB990:
+/* 801CB990 001C75F0 38 00 00 01 */ li r0, 1
+lbl_801CB994:
+/* 801CB994 001C75F4 2C 00 00 00 */ cmpwi r0, 0
+/* 801CB998 001C75F8 41 82 00 0C */ beq lbl_801CB9A4
+/* 801CB99C 001C75FC 38 00 00 00 */ li r0, 0
+/* 801CB9A0 001C7600 48 00 00 20 */ b lbl_801CB9C0
+lbl_801CB9A4:
+/* 801CB9A4 001C7604 3C 60 80 42 */ lis r3, lbl_80422D48@ha
+/* 801CB9A8 001C7608 54 80 08 3C */ slwi r0, r4, 1
+/* 801CB9AC 001C760C 38 63 2D 48 */ addi r3, r3, lbl_80422D48@l
+/* 801CB9B0 001C7610 80 63 00 38 */ lwz r3, 0x38(r3)
+/* 801CB9B4 001C7614 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CB9B8 001C7618 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CB9BC 001C761C 54 00 05 AC */ rlwinm r0, r0, 0, 0x16, 0x16
+lbl_801CB9C0:
+/* 801CB9C0 001C7620 2C 00 00 00 */ cmpwi r0, 0
+/* 801CB9C4 001C7624 41 82 00 1C */ beq lbl_801CB9E0
+/* 801CB9C8 001C7628 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CB9CC 001C762C 7F E3 FB 78 */ mr r3, r31
+/* 801CB9D0 001C7630 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CB9D4 001C7634 38 84 00 18 */ addi r4, r4, 0x18
+/* 801CB9D8 001C7638 48 00 28 F9 */ bl strcpy
+/* 801CB9DC 001C763C 48 00 00 9C */ b lbl_801CBA78
+lbl_801CB9E0:
+/* 801CB9E0 001C7640 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CB9E4 001C7644 7F E3 FB 78 */ mr r3, r31
+/* 801CB9E8 001C7648 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CB9EC 001C764C 38 84 00 1D */ addi r4, r4, 0x1d
+/* 801CB9F0 001C7650 48 00 28 E1 */ bl strcpy
+/* 801CB9F4 001C7654 48 00 00 84 */ b lbl_801CBA78
+lbl_801CB9F8:
+/* 801CB9F8 001C7658 88 9D 00 05 */ lbz r4, 5(r29)
+/* 801CB9FC 001C765C 3B FC FF FC */ addi r31, r28, -4
+/* 801CBA00 001C7660 38 00 00 00 */ li r0, 0
+/* 801CBA04 001C7664 2C 04 00 00 */ cmpwi r4, 0
+/* 801CBA08 001C7668 41 80 00 0C */ blt lbl_801CBA14
+/* 801CBA0C 001C766C 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CBA10 001C7670 41 80 00 08 */ blt lbl_801CBA18
+lbl_801CBA14:
+/* 801CBA14 001C7674 38 00 00 01 */ li r0, 1
+lbl_801CBA18:
+/* 801CBA18 001C7678 2C 00 00 00 */ cmpwi r0, 0
+/* 801CBA1C 001C767C 41 82 00 0C */ beq lbl_801CBA28
+/* 801CBA20 001C7680 38 00 00 00 */ li r0, 0
+/* 801CBA24 001C7684 48 00 00 20 */ b lbl_801CBA44
+lbl_801CBA28:
+/* 801CBA28 001C7688 3C 60 80 42 */ lis r3, lbl_80422D48@ha
+/* 801CBA2C 001C768C 54 80 08 3C */ slwi r0, r4, 1
+/* 801CBA30 001C7690 38 63 2D 48 */ addi r3, r3, lbl_80422D48@l
+/* 801CBA34 001C7694 80 63 00 38 */ lwz r3, 0x38(r3)
+/* 801CBA38 001C7698 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CBA3C 001C769C 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CBA40 001C76A0 54 00 05 AC */ rlwinm r0, r0, 0, 0x16, 0x16
+lbl_801CBA44:
+/* 801CBA44 001C76A4 2C 00 00 00 */ cmpwi r0, 0
+/* 801CBA48 001C76A8 41 82 00 1C */ beq lbl_801CBA64
+/* 801CBA4C 001C76AC 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CBA50 001C76B0 7F E3 FB 78 */ mr r3, r31
+/* 801CBA54 001C76B4 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CBA58 001C76B8 38 84 00 22 */ addi r4, r4, 0x22
+/* 801CBA5C 001C76BC 48 00 28 75 */ bl strcpy
+/* 801CBA60 001C76C0 48 00 00 18 */ b lbl_801CBA78
+lbl_801CBA64:
+/* 801CBA64 001C76C4 3C 80 80 40 */ lis r4, lbl_803FCCC0@ha
+/* 801CBA68 001C76C8 7F E3 FB 78 */ mr r3, r31
+/* 801CBA6C 001C76CC 38 84 CC C0 */ addi r4, r4, lbl_803FCCC0@l
+/* 801CBA70 001C76D0 38 84 00 26 */ addi r4, r4, 0x26
+/* 801CBA74 001C76D4 48 00 28 5D */ bl strcpy
+lbl_801CBA78:
+/* 801CBA78 001C76D8 7F E3 FB 78 */ mr r3, r31
+/* 801CBA7C 001C76DC 48 00 04 A4 */ b lbl_801CBF20
+lbl_801CBA80:
+/* 801CBA80 001C76E0 A8 A1 00 0E */ lha r5, 0xe(r1)
+/* 801CBA84 001C76E4 38 60 00 00 */ li r3, 0
+/* 801CBA88 001C76E8 88 81 00 10 */ lbz r4, 0x10(r1)
+/* 801CBA8C 001C76EC 3B FC FF FF */ addi r31, r28, -1
+/* 801CBA90 001C76F0 88 1D 00 05 */ lbz r0, 5(r29)
+/* 801CBA94 001C76F4 7C 84 2A 14 */ add r4, r4, r5
+/* 801CBA98 001C76F8 38 84 FF FF */ addi r4, r4, -1
+/* 801CBA9C 001C76FC 2C 00 00 65 */ cmpwi r0, 0x65
+/* 801CBAA0 001C7700 B0 81 00 0E */ sth r4, 0xe(r1)
+/* 801CBAA4 001C7704 98 7C FF FF */ stb r3, -1(r28)
+/* 801CBAA8 001C7708 41 82 00 F4 */ beq lbl_801CBB9C
+/* 801CBAAC 001C770C 40 80 00 28 */ bge lbl_801CBAD4
+/* 801CBAB0 001C7710 2C 00 00 46 */ cmpwi r0, 0x46
+/* 801CBAB4 001C7714 41 82 02 4C */ beq lbl_801CBD00
+/* 801CBAB8 001C7718 40 80 00 10 */ bge lbl_801CBAC8
+/* 801CBABC 001C771C 2C 00 00 45 */ cmpwi r0, 0x45
+/* 801CBAC0 001C7720 40 80 00 DC */ bge lbl_801CBB9C
+/* 801CBAC4 001C7724 48 00 04 58 */ b lbl_801CBF1C
+lbl_801CBAC8:
+/* 801CBAC8 001C7728 2C 00 00 48 */ cmpwi r0, 0x48
+/* 801CBACC 001C772C 40 80 04 50 */ bge lbl_801CBF1C
+/* 801CBAD0 001C7730 48 00 00 14 */ b lbl_801CBAE4
+lbl_801CBAD4:
+/* 801CBAD4 001C7734 2C 00 00 67 */ cmpwi r0, 0x67
+/* 801CBAD8 001C7738 41 82 00 0C */ beq lbl_801CBAE4
+/* 801CBADC 001C773C 40 80 04 40 */ bge lbl_801CBF1C
+/* 801CBAE0 001C7740 48 00 02 20 */ b lbl_801CBD00
+lbl_801CBAE4:
+/* 801CBAE4 001C7744 80 9D 00 0C */ lwz r4, 0xc(r29)
+/* 801CBAE8 001C7748 88 01 00 10 */ lbz r0, 0x10(r1)
+/* 801CBAEC 001C774C 7C 00 20 00 */ cmpw r0, r4
+/* 801CBAF0 001C7750 40 81 00 0C */ ble lbl_801CBAFC
+/* 801CBAF4 001C7754 38 61 00 0C */ addi r3, r1, 0xc
+/* 801CBAF8 001C7758 4B FF FB 55 */ bl round_decimal
+lbl_801CBAFC:
+/* 801CBAFC 001C775C A8 81 00 0E */ lha r4, 0xe(r1)
+/* 801CBB00 001C7760 2C 04 FF FC */ cmpwi r4, -4
+/* 801CBB04 001C7764 41 80 00 10 */ blt lbl_801CBB14
+/* 801CBB08 001C7768 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 801CBB0C 001C776C 7C 04 18 00 */ cmpw r4, r3
+/* 801CBB10 001C7770 41 80 00 50 */ blt lbl_801CBB60
+lbl_801CBB14:
+/* 801CBB14 001C7774 88 1D 00 03 */ lbz r0, 3(r29)
+/* 801CBB18 001C7778 2C 00 00 00 */ cmpwi r0, 0
+/* 801CBB1C 001C777C 41 82 00 14 */ beq lbl_801CBB30
+/* 801CBB20 001C7780 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 801CBB24 001C7784 38 03 FF FF */ addi r0, r3, -1
+/* 801CBB28 001C7788 90 1D 00 0C */ stw r0, 0xc(r29)
+/* 801CBB2C 001C778C 48 00 00 10 */ b lbl_801CBB3C
+lbl_801CBB30:
+/* 801CBB30 001C7790 88 61 00 10 */ lbz r3, 0x10(r1)
+/* 801CBB34 001C7794 38 03 FF FF */ addi r0, r3, -1
+/* 801CBB38 001C7798 90 1D 00 0C */ stw r0, 0xc(r29)
+lbl_801CBB3C:
+/* 801CBB3C 001C779C 88 1D 00 05 */ lbz r0, 5(r29)
+/* 801CBB40 001C77A0 28 00 00 67 */ cmplwi r0, 0x67
+/* 801CBB44 001C77A4 40 82 00 10 */ bne lbl_801CBB54
+/* 801CBB48 001C77A8 38 00 00 65 */ li r0, 0x65
+/* 801CBB4C 001C77AC 98 1D 00 05 */ stb r0, 5(r29)
+/* 801CBB50 001C77B0 48 00 00 4C */ b lbl_801CBB9C
+lbl_801CBB54:
+/* 801CBB54 001C77B4 38 00 00 45 */ li r0, 0x45
+/* 801CBB58 001C77B8 98 1D 00 05 */ stb r0, 5(r29)
+/* 801CBB5C 001C77BC 48 00 00 40 */ b lbl_801CBB9C
+lbl_801CBB60:
+/* 801CBB60 001C77C0 88 1D 00 03 */ lbz r0, 3(r29)
+/* 801CBB64 001C77C4 2C 00 00 00 */ cmpwi r0, 0
+/* 801CBB68 001C77C8 41 82 00 14 */ beq lbl_801CBB7C
+/* 801CBB6C 001C77CC 38 04 00 01 */ addi r0, r4, 1
+/* 801CBB70 001C77D0 7C 00 18 50 */ subf r0, r0, r3
+/* 801CBB74 001C77D4 90 1D 00 0C */ stw r0, 0xc(r29)
+/* 801CBB78 001C77D8 48 00 01 88 */ b lbl_801CBD00
+lbl_801CBB7C:
+/* 801CBB7C 001C77DC 88 01 00 10 */ lbz r0, 0x10(r1)
+/* 801CBB80 001C77E0 38 64 00 01 */ addi r3, r4, 1
+/* 801CBB84 001C77E4 7C 03 00 51 */ subf. r0, r3, r0
+/* 801CBB88 001C77E8 90 1D 00 0C */ stw r0, 0xc(r29)
+/* 801CBB8C 001C77EC 40 80 01 74 */ bge lbl_801CBD00
+/* 801CBB90 001C77F0 38 00 00 00 */ li r0, 0
+/* 801CBB94 001C77F4 90 1D 00 0C */ stw r0, 0xc(r29)
+/* 801CBB98 001C77F8 48 00 01 68 */ b lbl_801CBD00
+lbl_801CBB9C:
+/* 801CBB9C 001C77FC 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 801CBBA0 001C7800 88 01 00 10 */ lbz r0, 0x10(r1)
+/* 801CBBA4 001C7804 38 83 00 01 */ addi r4, r3, 1
+/* 801CBBA8 001C7808 7C 00 20 00 */ cmpw r0, r4
+/* 801CBBAC 001C780C 40 81 00 0C */ ble lbl_801CBBB8
+/* 801CBBB0 001C7810 38 61 00 0C */ addi r3, r1, 0xc
+/* 801CBBB4 001C7814 4B FF FA 99 */ bl round_decimal
+lbl_801CBBB8:
+/* 801CBBB8 001C7818 A8 C1 00 0E */ lha r6, 0xe(r1)
+/* 801CBBBC 001C781C 39 00 00 2B */ li r8, 0x2b
+/* 801CBBC0 001C7820 2C 06 00 00 */ cmpwi r6, 0
+/* 801CBBC4 001C7824 40 80 00 0C */ bge lbl_801CBBD0
+/* 801CBBC8 001C7828 7C C6 00 D0 */ neg r6, r6
+/* 801CBBCC 001C782C 39 00 00 2D */ li r8, 0x2d
+lbl_801CBBD0:
+/* 801CBBD0 001C7830 3C 60 66 66 */ lis r3, 0x66666667@ha
+/* 801CBBD4 001C7834 38 E0 00 00 */ li r7, 0
+/* 801CBBD8 001C7838 38 A3 66 67 */ addi r5, r3, 0x66666667@l
+/* 801CBBDC 001C783C 48 00 00 38 */ b lbl_801CBC14
+lbl_801CBBE0:
+/* 801CBBE0 001C7840 7C 05 30 96 */ mulhw r0, r5, r6
+/* 801CBBE4 001C7844 38 E7 00 01 */ addi r7, r7, 1
+/* 801CBBE8 001C7848 7C 03 16 70 */ srawi r3, r0, 2
+/* 801CBBEC 001C784C 54 64 0F FE */ srwi r4, r3, 0x1f
+/* 801CBBF0 001C7850 7C 00 16 70 */ srawi r0, r0, 2
+/* 801CBBF4 001C7854 7C 63 22 14 */ add r3, r3, r4
+/* 801CBBF8 001C7858 1C 83 00 0A */ mulli r4, r3, 0xa
+/* 801CBBFC 001C785C 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 801CBC00 001C7860 7C 84 30 50 */ subf r4, r4, r6
+/* 801CBC04 001C7864 7C C0 1A 14 */ add r6, r0, r3
+/* 801CBC08 001C7868 38 04 00 30 */ addi r0, r4, 0x30
+/* 801CBC0C 001C786C 98 1F FF FF */ stb r0, -1(r31)
+/* 801CBC10 001C7870 3B FF FF FF */ addi r31, r31, -1
+lbl_801CBC14:
+/* 801CBC14 001C7874 2C 06 00 00 */ cmpwi r6, 0
+/* 801CBC18 001C7878 40 82 FF C8 */ bne lbl_801CBBE0
+/* 801CBC1C 001C787C 2C 07 00 02 */ cmpwi r7, 2
+/* 801CBC20 001C7880 41 80 FF C0 */ blt lbl_801CBBE0
+/* 801CBC24 001C7884 99 1F FF FF */ stb r8, -1(r31)
+/* 801CBC28 001C7888 88 1D 00 05 */ lbz r0, 5(r29)
+/* 801CBC2C 001C788C 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 801CBC30 001C7890 9C 1F FF FE */ stbu r0, -2(r31)
+/* 801CBC34 001C7894 7C 1F E0 50 */ subf r0, r31, r28
+/* 801CBC38 001C7898 7C 03 02 14 */ add r0, r3, r0
+/* 801CBC3C 001C789C 2C 00 01 FD */ cmpwi r0, 0x1fd
+/* 801CBC40 001C78A0 40 81 00 0C */ ble lbl_801CBC4C
+/* 801CBC44 001C78A4 38 60 00 00 */ li r3, 0
+/* 801CBC48 001C78A8 48 00 02 D8 */ b lbl_801CBF20
+lbl_801CBC4C:
+/* 801CBC4C 001C78AC 88 81 00 10 */ lbz r4, 0x10(r1)
+/* 801CBC50 001C78B0 38 03 00 01 */ addi r0, r3, 1
+/* 801CBC54 001C78B4 7C 04 00 00 */ cmpw r4, r0
+/* 801CBC58 001C78B8 40 80 00 20 */ bge lbl_801CBC78
+/* 801CBC5C 001C78BC 38 63 00 02 */ addi r3, r3, 2
+/* 801CBC60 001C78C0 38 00 00 30 */ li r0, 0x30
+/* 801CBC64 001C78C4 7C 64 18 50 */ subf r3, r4, r3
+/* 801CBC68 001C78C8 48 00 00 08 */ b lbl_801CBC70
+lbl_801CBC6C:
+/* 801CBC6C 001C78CC 9C 1F FF FF */ stbu r0, -1(r31)
+lbl_801CBC70:
+/* 801CBC70 001C78D0 34 63 FF FF */ addic. r3, r3, -1
+/* 801CBC74 001C78D4 40 82 FF F8 */ bne lbl_801CBC6C
+lbl_801CBC78:
+/* 801CBC78 001C78D8 88 61 00 10 */ lbz r3, 0x10(r1)
+/* 801CBC7C 001C78DC 38 81 00 11 */ addi r4, r1, 0x11
+/* 801CBC80 001C78E0 7C 84 1A 14 */ add r4, r4, r3
+/* 801CBC84 001C78E4 48 00 00 0C */ b lbl_801CBC90
+lbl_801CBC88:
+/* 801CBC88 001C78E8 8C 04 FF FF */ lbzu r0, -1(r4)
+/* 801CBC8C 001C78EC 9C 1F FF FF */ stbu r0, -1(r31)
+lbl_801CBC90:
+/* 801CBC90 001C78F0 34 63 FF FF */ addic. r3, r3, -1
+/* 801CBC94 001C78F4 40 82 FF F4 */ bne lbl_801CBC88
+/* 801CBC98 001C78F8 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 801CBC9C 001C78FC 2C 00 00 00 */ cmpwi r0, 0
+/* 801CBCA0 001C7900 40 82 00 10 */ bne lbl_801CBCB0
+/* 801CBCA4 001C7904 88 1D 00 03 */ lbz r0, 3(r29)
+/* 801CBCA8 001C7908 2C 00 00 00 */ cmpwi r0, 0
+/* 801CBCAC 001C790C 41 82 00 08 */ beq lbl_801CBCB4
+lbl_801CBCB0:
+/* 801CBCB0 001C7910 9F DF FF FF */ stbu r30, -1(r31)
+lbl_801CBCB4:
+/* 801CBCB4 001C7914 88 01 00 11 */ lbz r0, 0x11(r1)
+/* 801CBCB8 001C7918 9C 1F FF FF */ stbu r0, -1(r31)
+/* 801CBCBC 001C791C 88 01 00 0C */ lbz r0, 0xc(r1)
+/* 801CBCC0 001C7920 7C 00 07 75 */ extsb. r0, r0
+/* 801CBCC4 001C7924 41 82 00 10 */ beq lbl_801CBCD4
+/* 801CBCC8 001C7928 38 00 00 2D */ li r0, 0x2d
+/* 801CBCCC 001C792C 9C 1F FF FF */ stbu r0, -1(r31)
+/* 801CBCD0 001C7930 48 00 02 4C */ b lbl_801CBF1C
+lbl_801CBCD4:
+/* 801CBCD4 001C7934 88 1D 00 01 */ lbz r0, 1(r29)
+/* 801CBCD8 001C7938 28 00 00 01 */ cmplwi r0, 1
+/* 801CBCDC 001C793C 40 82 00 10 */ bne lbl_801CBCEC
+/* 801CBCE0 001C7940 38 00 00 2B */ li r0, 0x2b
+/* 801CBCE4 001C7944 9C 1F FF FF */ stbu r0, -1(r31)
+/* 801CBCE8 001C7948 48 00 02 34 */ b lbl_801CBF1C
+lbl_801CBCEC:
+/* 801CBCEC 001C794C 28 00 00 02 */ cmplwi r0, 2
+/* 801CBCF0 001C7950 40 82 02 2C */ bne lbl_801CBF1C
+/* 801CBCF4 001C7954 38 00 00 20 */ li r0, 0x20
+/* 801CBCF8 001C7958 9C 1F FF FF */ stbu r0, -1(r31)
+/* 801CBCFC 001C795C 48 00 02 20 */ b lbl_801CBF1C
+lbl_801CBD00:
+/* 801CBD00 001C7960 88 81 00 10 */ lbz r4, 0x10(r1)
+/* 801CBD04 001C7964 A8 A1 00 0E */ lha r5, 0xe(r1)
+/* 801CBD08 001C7968 7C 65 20 50 */ subf r3, r5, r4
+/* 801CBD0C 001C796C 35 03 FF FF */ addic. r8, r3, -1
+/* 801CBD10 001C7970 40 80 00 08 */ bge lbl_801CBD18
+/* 801CBD14 001C7974 39 00 00 00 */ li r8, 0
+lbl_801CBD18:
+/* 801CBD18 001C7978 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 801CBD1C 001C797C 7C 08 00 00 */ cmpw r8, r0
+/* 801CBD20 001C7980 40 81 00 2C */ ble lbl_801CBD4C
+/* 801CBD24 001C7984 7C 00 40 50 */ subf r0, r0, r8
+/* 801CBD28 001C7988 38 61 00 0C */ addi r3, r1, 0xc
+/* 801CBD2C 001C798C 7C 80 20 50 */ subf r4, r0, r4
+/* 801CBD30 001C7990 4B FF F9 1D */ bl round_decimal
+/* 801CBD34 001C7994 88 81 00 10 */ lbz r4, 0x10(r1)
+/* 801CBD38 001C7998 A8 A1 00 0E */ lha r5, 0xe(r1)
+/* 801CBD3C 001C799C 7C 65 20 50 */ subf r3, r5, r4
+/* 801CBD40 001C79A0 35 03 FF FF */ addic. r8, r3, -1
+/* 801CBD44 001C79A4 40 80 00 08 */ bge lbl_801CBD4C
+/* 801CBD48 001C79A8 39 00 00 00 */ li r8, 0
+lbl_801CBD4C:
+/* 801CBD4C 001C79AC 34 E5 00 01 */ addic. r7, r5, 1
+/* 801CBD50 001C79B0 40 80 00 08 */ bge lbl_801CBD58
+/* 801CBD54 001C79B4 38 E0 00 00 */ li r7, 0
+lbl_801CBD58:
+/* 801CBD58 001C79B8 7C 07 42 14 */ add r0, r7, r8
+/* 801CBD5C 001C79BC 2C 00 01 FD */ cmpwi r0, 0x1fd
+/* 801CBD60 001C79C0 40 81 00 0C */ ble lbl_801CBD6C
+/* 801CBD64 001C79C4 38 60 00 00 */ li r3, 0
+/* 801CBD68 001C79C8 48 00 01 B8 */ b lbl_801CBF20
+lbl_801CBD6C:
+/* 801CBD6C 001C79CC 38 C1 00 11 */ addi r6, r1, 0x11
+/* 801CBD70 001C79D0 38 A0 00 00 */ li r5, 0
+/* 801CBD74 001C79D4 7C C6 22 14 */ add r6, r6, r4
+/* 801CBD78 001C79D8 38 60 00 30 */ li r3, 0x30
+/* 801CBD7C 001C79DC 48 00 00 0C */ b lbl_801CBD88
+lbl_801CBD80:
+/* 801CBD80 001C79E0 9C 7F FF FF */ stbu r3, -1(r31)
+/* 801CBD84 001C79E4 38 A5 00 01 */ addi r5, r5, 1
+lbl_801CBD88:
+/* 801CBD88 001C79E8 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 801CBD8C 001C79EC 7C 08 00 50 */ subf r0, r8, r0
+/* 801CBD90 001C79F0 7C 05 00 00 */ cmpw r5, r0
+/* 801CBD94 001C79F4 41 80 FF EC */ blt lbl_801CBD80
+/* 801CBD98 001C79F8 38 60 00 00 */ li r3, 0
+/* 801CBD9C 001C79FC 48 00 00 10 */ b lbl_801CBDAC
+lbl_801CBDA0:
+/* 801CBDA0 001C7A00 8C 06 FF FF */ lbzu r0, -1(r6)
+/* 801CBDA4 001C7A04 38 63 00 01 */ addi r3, r3, 1
+/* 801CBDA8 001C7A08 9C 1F FF FF */ stbu r0, -1(r31)
+lbl_801CBDAC:
+/* 801CBDAC 001C7A0C 7C 03 40 00 */ cmpw r3, r8
+/* 801CBDB0 001C7A10 40 80 00 10 */ bge lbl_801CBDC0
+/* 801CBDB4 001C7A14 88 01 00 10 */ lbz r0, 0x10(r1)
+/* 801CBDB8 001C7A18 7C 03 00 00 */ cmpw r3, r0
+/* 801CBDBC 001C7A1C 41 80 FF E4 */ blt lbl_801CBDA0
+lbl_801CBDC0:
+/* 801CBDC0 001C7A20 7C 03 40 00 */ cmpw r3, r8
+/* 801CBDC4 001C7A24 7C 63 40 50 */ subf r3, r3, r8
+/* 801CBDC8 001C7A28 38 80 00 30 */ li r4, 0x30
+/* 801CBDCC 001C7A2C 40 80 00 48 */ bge lbl_801CBE14
+/* 801CBDD0 001C7A30 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f
+/* 801CBDD4 001C7A34 7C 09 03 A6 */ mtctr r0
+/* 801CBDD8 001C7A38 41 82 00 30 */ beq lbl_801CBE08
+lbl_801CBDDC:
+/* 801CBDDC 001C7A3C 98 9F FF FF */ stb r4, -1(r31)
+/* 801CBDE0 001C7A40 98 9F FF FE */ stb r4, -2(r31)
+/* 801CBDE4 001C7A44 98 9F FF FD */ stb r4, -3(r31)
+/* 801CBDE8 001C7A48 98 9F FF FC */ stb r4, -4(r31)
+/* 801CBDEC 001C7A4C 98 9F FF FB */ stb r4, -5(r31)
+/* 801CBDF0 001C7A50 98 9F FF FA */ stb r4, -6(r31)
+/* 801CBDF4 001C7A54 98 9F FF F9 */ stb r4, -7(r31)
+/* 801CBDF8 001C7A58 9C 9F FF F8 */ stbu r4, -8(r31)
+/* 801CBDFC 001C7A5C 42 00 FF E0 */ bdnz lbl_801CBDDC
+/* 801CBE00 001C7A60 70 63 00 07 */ andi. r3, r3, 7
+/* 801CBE04 001C7A64 41 82 00 10 */ beq lbl_801CBE14
+lbl_801CBE08:
+/* 801CBE08 001C7A68 7C 69 03 A6 */ mtctr r3
+lbl_801CBE0C:
+/* 801CBE0C 001C7A6C 9C 9F FF FF */ stbu r4, -1(r31)
+/* 801CBE10 001C7A70 42 00 FF FC */ bdnz lbl_801CBE0C
+lbl_801CBE14:
+/* 801CBE14 001C7A74 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 801CBE18 001C7A78 2C 00 00 00 */ cmpwi r0, 0
+/* 801CBE1C 001C7A7C 40 82 00 10 */ bne lbl_801CBE2C
+/* 801CBE20 001C7A80 88 1D 00 03 */ lbz r0, 3(r29)
+/* 801CBE24 001C7A84 2C 00 00 00 */ cmpwi r0, 0
+/* 801CBE28 001C7A88 41 82 00 08 */ beq lbl_801CBE30
+lbl_801CBE2C:
+/* 801CBE2C 001C7A8C 9F DF FF FF */ stbu r30, -1(r31)
+lbl_801CBE30:
+/* 801CBE30 001C7A90 2C 07 00 00 */ cmpwi r7, 0
+/* 801CBE34 001C7A94 41 82 00 A0 */ beq lbl_801CBED4
+/* 801CBE38 001C7A98 38 80 00 00 */ li r4, 0
+/* 801CBE3C 001C7A9C 38 60 00 30 */ li r3, 0x30
+/* 801CBE40 001C7AA0 48 00 00 0C */ b lbl_801CBE4C
+lbl_801CBE44:
+/* 801CBE44 001C7AA4 9C 7F FF FF */ stbu r3, -1(r31)
+/* 801CBE48 001C7AA8 38 84 00 01 */ addi r4, r4, 1
+lbl_801CBE4C:
+/* 801CBE4C 001C7AAC 88 01 00 10 */ lbz r0, 0x10(r1)
+/* 801CBE50 001C7AB0 7C 00 38 50 */ subf r0, r0, r7
+/* 801CBE54 001C7AB4 7C 04 00 00 */ cmpw r4, r0
+/* 801CBE58 001C7AB8 41 80 FF EC */ blt lbl_801CBE44
+/* 801CBE5C 001C7ABC 7C 04 38 00 */ cmpw r4, r7
+/* 801CBE60 001C7AC0 7C 64 38 50 */ subf r3, r4, r7
+/* 801CBE64 001C7AC4 40 80 00 78 */ bge lbl_801CBEDC
+/* 801CBE68 001C7AC8 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f
+/* 801CBE6C 001C7ACC 7C 09 03 A6 */ mtctr r0
+/* 801CBE70 001C7AD0 41 82 00 50 */ beq lbl_801CBEC0
+lbl_801CBE74:
+/* 801CBE74 001C7AD4 88 06 FF FF */ lbz r0, -1(r6)
+/* 801CBE78 001C7AD8 98 1F FF FF */ stb r0, -1(r31)
+/* 801CBE7C 001C7ADC 88 06 FF FE */ lbz r0, -2(r6)
+/* 801CBE80 001C7AE0 98 1F FF FE */ stb r0, -2(r31)
+/* 801CBE84 001C7AE4 88 06 FF FD */ lbz r0, -3(r6)
+/* 801CBE88 001C7AE8 98 1F FF FD */ stb r0, -3(r31)
+/* 801CBE8C 001C7AEC 88 06 FF FC */ lbz r0, -4(r6)
+/* 801CBE90 001C7AF0 98 1F FF FC */ stb r0, -4(r31)
+/* 801CBE94 001C7AF4 88 06 FF FB */ lbz r0, -5(r6)
+/* 801CBE98 001C7AF8 98 1F FF FB */ stb r0, -5(r31)
+/* 801CBE9C 001C7AFC 88 06 FF FA */ lbz r0, -6(r6)
+/* 801CBEA0 001C7B00 98 1F FF FA */ stb r0, -6(r31)
+/* 801CBEA4 001C7B04 88 06 FF F9 */ lbz r0, -7(r6)
+/* 801CBEA8 001C7B08 98 1F FF F9 */ stb r0, -7(r31)
+/* 801CBEAC 001C7B0C 8C 06 FF F8 */ lbzu r0, -8(r6)
+/* 801CBEB0 001C7B10 9C 1F FF F8 */ stbu r0, -8(r31)
+/* 801CBEB4 001C7B14 42 00 FF C0 */ bdnz lbl_801CBE74
+/* 801CBEB8 001C7B18 70 63 00 07 */ andi. r3, r3, 7
+/* 801CBEBC 001C7B1C 41 82 00 20 */ beq lbl_801CBEDC
+lbl_801CBEC0:
+/* 801CBEC0 001C7B20 7C 69 03 A6 */ mtctr r3
+lbl_801CBEC4:
+/* 801CBEC4 001C7B24 8C 06 FF FF */ lbzu r0, -1(r6)
+/* 801CBEC8 001C7B28 9C 1F FF FF */ stbu r0, -1(r31)
+/* 801CBECC 001C7B2C 42 00 FF F8 */ bdnz lbl_801CBEC4
+/* 801CBED0 001C7B30 48 00 00 0C */ b lbl_801CBEDC
+lbl_801CBED4:
+/* 801CBED4 001C7B34 38 00 00 30 */ li r0, 0x30
+/* 801CBED8 001C7B38 9C 1F FF FF */ stbu r0, -1(r31)
+lbl_801CBEDC:
+/* 801CBEDC 001C7B3C 88 01 00 0C */ lbz r0, 0xc(r1)
+/* 801CBEE0 001C7B40 7C 00 07 75 */ extsb. r0, r0
+/* 801CBEE4 001C7B44 41 82 00 10 */ beq lbl_801CBEF4
+/* 801CBEE8 001C7B48 38 00 00 2D */ li r0, 0x2d
+/* 801CBEEC 001C7B4C 9C 1F FF FF */ stbu r0, -1(r31)
+/* 801CBEF0 001C7B50 48 00 00 2C */ b lbl_801CBF1C
+lbl_801CBEF4:
+/* 801CBEF4 001C7B54 88 1D 00 01 */ lbz r0, 1(r29)
+/* 801CBEF8 001C7B58 28 00 00 01 */ cmplwi r0, 1
+/* 801CBEFC 001C7B5C 40 82 00 10 */ bne lbl_801CBF0C
+/* 801CBF00 001C7B60 38 00 00 2B */ li r0, 0x2b
+/* 801CBF04 001C7B64 9C 1F FF FF */ stbu r0, -1(r31)
+/* 801CBF08 001C7B68 48 00 00 14 */ b lbl_801CBF1C
+lbl_801CBF0C:
+/* 801CBF0C 001C7B6C 28 00 00 02 */ cmplwi r0, 2
+/* 801CBF10 001C7B70 40 82 00 0C */ bne lbl_801CBF1C
+/* 801CBF14 001C7B74 38 00 00 20 */ li r0, 0x20
+/* 801CBF18 001C7B78 9C 1F FF FF */ stbu r0, -1(r31)
+lbl_801CBF1C:
+/* 801CBF1C 001C7B7C 7F E3 FB 78 */ mr r3, r31
+lbl_801CBF20:
+/* 801CBF20 001C7B80 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 801CBF24 001C7B84 CB E1 00 48 */ lfd f31, 0x48(r1)
+/* 801CBF28 001C7B88 83 E1 00 44 */ lwz r31, 0x44(r1)
+/* 801CBF2C 001C7B8C 83 C1 00 40 */ lwz r30, 0x40(r1)
+/* 801CBF30 001C7B90 83 A1 00 3C */ lwz r29, 0x3c(r1)
+/* 801CBF34 001C7B94 83 81 00 38 */ lwz r28, 0x38(r1)
+/* 801CBF38 001C7B98 7C 08 03 A6 */ mtlr r0
+/* 801CBF3C 001C7B9C 38 21 00 50 */ addi r1, r1, 0x50
+/* 801CBF40 001C7BA0 4E 80 00 20 */ blr
+
+.global __pformatter
+__pformatter:
+/* 801CBF44 001C7BA4 94 21 FD 40 */ stwu r1, -0x2c0(r1)
+/* 801CBF48 001C7BA8 7C 08 02 A6 */ mflr r0
+/* 801CBF4C 001C7BAC 90 01 02 C4 */ stw r0, 0x2c4(r1)
+/* 801CBF50 001C7BB0 BE 01 02 80 */ stmw r16, 0x280(r1)
+/* 801CBF54 001C7BB4 3A 00 00 20 */ li r16, 0x20
+/* 801CBF58 001C7BB8 3F A0 80 40 */ lis r29, lbl_803FCCC0@ha
+/* 801CBF5C 001C7BBC 7C 71 1B 78 */ mr r17, r3
+/* 801CBF60 001C7BC0 7C 92 23 78 */ mr r18, r4
+/* 801CBF64 001C7BC4 7C B7 2B 78 */ mr r23, r5
+/* 801CBF68 001C7BC8 7C D3 33 78 */ mr r19, r6
+/* 801CBF6C 001C7BCC 3B BD CC C0 */ addi r29, r29, lbl_803FCCC0@l
+/* 801CBF70 001C7BD0 3B 81 02 7F */ addi r28, r1, 0x27f
+/* 801CBF74 001C7BD4 3B 20 00 00 */ li r25, 0
+/* 801CBF78 001C7BD8 3B E0 00 25 */ li r31, 0x25
+/* 801CBF7C 001C7BDC 3F C0 80 42 */ lis r30, 0x8042
+/* 801CBF80 001C7BE0 9A 01 00 09 */ stb r16, 9(r1)
+/* 801CBF84 001C7BE4 48 00 07 F8 */ b lbl_801CC77C
+lbl_801CBF88:
+/* 801CBF88 001C7BE8 7E E3 BB 78 */ mr r3, r23
+/* 801CBF8C 001C7BEC 38 80 00 25 */ li r4, 0x25
+/* 801CBF90 001C7BF0 48 00 26 19 */ bl strchr
+/* 801CBF94 001C7BF4 2C 03 00 00 */ cmpwi r3, 0
+/* 801CBF98 001C7BF8 7C 78 1B 78 */ mr r24, r3
+/* 801CBF9C 001C7BFC 40 82 00 40 */ bne lbl_801CBFDC
+/* 801CBFA0 001C7C00 7E E3 BB 78 */ mr r3, r23
+/* 801CBFA4 001C7C04 4B FF AB C1 */ bl strlen
+/* 801CBFA8 001C7C08 2C 03 00 00 */ cmpwi r3, 0
+/* 801CBFAC 001C7C0C 7C 65 1B 78 */ mr r5, r3
+/* 801CBFB0 001C7C10 7F 39 1A 14 */ add r25, r25, r3
+/* 801CBFB4 001C7C14 41 82 07 D4 */ beq lbl_801CC788
+/* 801CBFB8 001C7C18 7E 2C 8B 78 */ mr r12, r17
+/* 801CBFBC 001C7C1C 7E 43 93 78 */ mr r3, r18
+/* 801CBFC0 001C7C20 7E E4 BB 78 */ mr r4, r23
+/* 801CBFC4 001C7C24 7D 89 03 A6 */ mtctr r12
+/* 801CBFC8 001C7C28 4E 80 04 21 */ bctrl
+/* 801CBFCC 001C7C2C 2C 03 00 00 */ cmpwi r3, 0
+/* 801CBFD0 001C7C30 40 82 07 B8 */ bne lbl_801CC788
+/* 801CBFD4 001C7C34 38 60 FF FF */ li r3, -1
+/* 801CBFD8 001C7C38 48 00 07 B4 */ b lbl_801CC78C
+lbl_801CBFDC:
+/* 801CBFDC 001C7C3C 7C B7 18 51 */ subf. r5, r23, r3
+/* 801CBFE0 001C7C40 7F 39 2A 14 */ add r25, r25, r5
+/* 801CBFE4 001C7C44 41 82 00 28 */ beq lbl_801CC00C
+/* 801CBFE8 001C7C48 7E 2C 8B 78 */ mr r12, r17
+/* 801CBFEC 001C7C4C 7E 43 93 78 */ mr r3, r18
+/* 801CBFF0 001C7C50 7E E4 BB 78 */ mr r4, r23
+/* 801CBFF4 001C7C54 7D 89 03 A6 */ mtctr r12
+/* 801CBFF8 001C7C58 4E 80 04 21 */ bctrl
+/* 801CBFFC 001C7C5C 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC000 001C7C60 40 82 00 0C */ bne lbl_801CC00C
+/* 801CC004 001C7C64 38 60 FF FF */ li r3, -1
+/* 801CC008 001C7C68 48 00 07 84 */ b lbl_801CC78C
+lbl_801CC00C:
+/* 801CC00C 001C7C6C 7F 03 C3 78 */ mr r3, r24
+/* 801CC010 001C7C70 7E 64 9B 78 */ mr r4, r19
+/* 801CC014 001C7C74 38 A1 00 70 */ addi r5, r1, 0x70
+/* 801CC018 001C7C78 4B FF E7 A9 */ bl parse_format
+/* 801CC01C 001C7C7C 88 01 00 75 */ lbz r0, 0x75(r1)
+/* 801CC020 001C7C80 7C 77 1B 78 */ mr r23, r3
+/* 801CC024 001C7C84 2C 00 00 68 */ cmpwi r0, 0x68
+/* 801CC028 001C7C88 41 82 05 D4 */ beq lbl_801CC5FC
+/* 801CC02C 001C7C8C 40 80 00 60 */ bge lbl_801CC08C
+/* 801CC030 001C7C90 2C 00 00 58 */ cmpwi r0, 0x58
+/* 801CC034 001C7C94 41 82 02 10 */ beq lbl_801CC244
+/* 801CC038 001C7C98 40 80 00 30 */ bge lbl_801CC068
+/* 801CC03C 001C7C9C 2C 00 00 41 */ cmpwi r0, 0x41
+/* 801CC040 001C7CA0 41 82 03 D0 */ beq lbl_801CC410
+/* 801CC044 001C7CA4 40 80 00 10 */ bge lbl_801CC054
+/* 801CC048 001C7CA8 2C 00 00 25 */ cmpwi r0, 0x25
+/* 801CC04C 001C7CAC 41 82 05 A0 */ beq lbl_801CC5EC
+/* 801CC050 001C7CB0 48 00 05 AC */ b lbl_801CC5FC
+lbl_801CC054:
+/* 801CC054 001C7CB4 2C 00 00 48 */ cmpwi r0, 0x48
+/* 801CC058 001C7CB8 40 80 05 A4 */ bge lbl_801CC5FC
+/* 801CC05C 001C7CBC 2C 00 00 45 */ cmpwi r0, 0x45
+/* 801CC060 001C7CC0 40 80 03 40 */ bge lbl_801CC3A0
+/* 801CC064 001C7CC4 48 00 05 98 */ b lbl_801CC5FC
+lbl_801CC068:
+/* 801CC068 001C7CC8 2C 00 00 63 */ cmpwi r0, 0x63
+/* 801CC06C 001C7CCC 41 82 05 60 */ beq lbl_801CC5CC
+/* 801CC070 001C7CD0 40 80 00 10 */ bge lbl_801CC080
+/* 801CC074 001C7CD4 2C 00 00 61 */ cmpwi r0, 0x61
+/* 801CC078 001C7CD8 41 82 03 98 */ beq lbl_801CC410
+/* 801CC07C 001C7CDC 48 00 05 80 */ b lbl_801CC5FC
+lbl_801CC080:
+/* 801CC080 001C7CE0 2C 00 00 65 */ cmpwi r0, 0x65
+/* 801CC084 001C7CE4 40 80 03 1C */ bge lbl_801CC3A0
+/* 801CC088 001C7CE8 48 00 00 60 */ b lbl_801CC0E8
+lbl_801CC08C:
+/* 801CC08C 001C7CEC 2C 00 00 74 */ cmpwi r0, 0x74
+/* 801CC090 001C7CF0 41 82 05 6C */ beq lbl_801CC5FC
+/* 801CC094 001C7CF4 40 80 00 30 */ bge lbl_801CC0C4
+/* 801CC098 001C7CF8 2C 00 00 6F */ cmpwi r0, 0x6f
+/* 801CC09C 001C7CFC 41 82 01 A8 */ beq lbl_801CC244
+/* 801CC0A0 001C7D00 40 80 00 18 */ bge lbl_801CC0B8
+/* 801CC0A4 001C7D04 2C 00 00 6E */ cmpwi r0, 0x6e
+/* 801CC0A8 001C7D08 40 80 04 AC */ bge lbl_801CC554
+/* 801CC0AC 001C7D0C 2C 00 00 6A */ cmpwi r0, 0x6a
+/* 801CC0B0 001C7D10 40 80 05 4C */ bge lbl_801CC5FC
+/* 801CC0B4 001C7D14 48 00 00 34 */ b lbl_801CC0E8
+lbl_801CC0B8:
+/* 801CC0B8 001C7D18 2C 00 00 73 */ cmpwi r0, 0x73
+/* 801CC0BC 001C7D1C 40 80 03 C4 */ bge lbl_801CC480
+/* 801CC0C0 001C7D20 48 00 05 3C */ b lbl_801CC5FC
+lbl_801CC0C4:
+/* 801CC0C4 001C7D24 2C 00 00 78 */ cmpwi r0, 0x78
+/* 801CC0C8 001C7D28 41 82 01 7C */ beq lbl_801CC244
+/* 801CC0CC 001C7D2C 40 80 00 10 */ bge lbl_801CC0DC
+/* 801CC0D0 001C7D30 2C 00 00 76 */ cmpwi r0, 0x76
+/* 801CC0D4 001C7D34 40 80 05 28 */ bge lbl_801CC5FC
+/* 801CC0D8 001C7D38 48 00 01 6C */ b lbl_801CC244
+lbl_801CC0DC:
+/* 801CC0DC 001C7D3C 2C 00 00 FF */ cmpwi r0, 0xff
+/* 801CC0E0 001C7D40 41 82 05 1C */ beq lbl_801CC5FC
+/* 801CC0E4 001C7D44 48 00 05 18 */ b lbl_801CC5FC
+lbl_801CC0E8:
+/* 801CC0E8 001C7D48 88 01 00 74 */ lbz r0, 0x74(r1)
+/* 801CC0EC 001C7D4C 28 00 00 03 */ cmplwi r0, 3
+/* 801CC0F0 001C7D50 40 82 00 18 */ bne lbl_801CC108
+/* 801CC0F4 001C7D54 7E 63 9B 78 */ mr r3, r19
+/* 801CC0F8 001C7D58 38 80 00 01 */ li r4, 1
+/* 801CC0FC 001C7D5C 4B FF AA 85 */ bl __va_arg
+/* 801CC100 001C7D60 82 C3 00 00 */ lwz r22, 0(r3)
+/* 801CC104 001C7D64 48 00 00 8C */ b lbl_801CC190
+lbl_801CC108:
+/* 801CC108 001C7D68 28 00 00 04 */ cmplwi r0, 4
+/* 801CC10C 001C7D6C 40 82 00 1C */ bne lbl_801CC128
+/* 801CC110 001C7D70 7E 63 9B 78 */ mr r3, r19
+/* 801CC114 001C7D74 38 80 00 02 */ li r4, 2
+/* 801CC118 001C7D78 4B FF AA 69 */ bl __va_arg
+/* 801CC11C 001C7D7C 82 A3 00 00 */ lwz r21, 0(r3)
+/* 801CC120 001C7D80 82 83 00 04 */ lwz r20, 4(r3)
+/* 801CC124 001C7D84 48 00 00 6C */ b lbl_801CC190
+lbl_801CC128:
+/* 801CC128 001C7D88 28 00 00 06 */ cmplwi r0, 6
+/* 801CC12C 001C7D8C 40 82 00 1C */ bne lbl_801CC148
+/* 801CC130 001C7D90 7E 63 9B 78 */ mr r3, r19
+/* 801CC134 001C7D94 38 80 00 02 */ li r4, 2
+/* 801CC138 001C7D98 4B FF AA 49 */ bl __va_arg
+/* 801CC13C 001C7D9C 82 A3 00 00 */ lwz r21, 0(r3)
+/* 801CC140 001C7DA0 82 83 00 04 */ lwz r20, 4(r3)
+/* 801CC144 001C7DA4 48 00 00 4C */ b lbl_801CC190
+lbl_801CC148:
+/* 801CC148 001C7DA8 28 00 00 07 */ cmplwi r0, 7
+/* 801CC14C 001C7DAC 40 82 00 18 */ bne lbl_801CC164
+/* 801CC150 001C7DB0 7E 63 9B 78 */ mr r3, r19
+/* 801CC154 001C7DB4 38 80 00 01 */ li r4, 1
+/* 801CC158 001C7DB8 4B FF AA 29 */ bl __va_arg
+/* 801CC15C 001C7DBC 82 C3 00 00 */ lwz r22, 0(r3)
+/* 801CC160 001C7DC0 48 00 00 30 */ b lbl_801CC190
+lbl_801CC164:
+/* 801CC164 001C7DC4 28 00 00 08 */ cmplwi r0, 8
+/* 801CC168 001C7DC8 40 82 00 18 */ bne lbl_801CC180
+/* 801CC16C 001C7DCC 7E 63 9B 78 */ mr r3, r19
+/* 801CC170 001C7DD0 38 80 00 01 */ li r4, 1
+/* 801CC174 001C7DD4 4B FF AA 0D */ bl __va_arg
+/* 801CC178 001C7DD8 82 C3 00 00 */ lwz r22, 0(r3)
+/* 801CC17C 001C7DDC 48 00 00 14 */ b lbl_801CC190
+lbl_801CC180:
+/* 801CC180 001C7DE0 7E 63 9B 78 */ mr r3, r19
+/* 801CC184 001C7DE4 38 80 00 01 */ li r4, 1
+/* 801CC188 001C7DE8 4B FF A9 F9 */ bl __va_arg
+/* 801CC18C 001C7DEC 82 C3 00 00 */ lwz r22, 0(r3)
+lbl_801CC190:
+/* 801CC190 001C7DF0 88 01 00 74 */ lbz r0, 0x74(r1)
+/* 801CC194 001C7DF4 28 00 00 02 */ cmplwi r0, 2
+/* 801CC198 001C7DF8 40 82 00 08 */ bne lbl_801CC1A0
+/* 801CC19C 001C7DFC 7E D6 07 34 */ extsh r22, r22
+lbl_801CC1A0:
+/* 801CC1A0 001C7E00 28 00 00 01 */ cmplwi r0, 1
+/* 801CC1A4 001C7E04 40 82 00 08 */ bne lbl_801CC1AC
+/* 801CC1A8 001C7E08 7E D6 07 74 */ extsb r22, r22
+lbl_801CC1AC:
+/* 801CC1AC 001C7E0C 28 00 00 04 */ cmplwi r0, 4
+/* 801CC1B0 001C7E10 41 82 00 0C */ beq lbl_801CC1BC
+/* 801CC1B4 001C7E14 28 00 00 06 */ cmplwi r0, 6
+/* 801CC1B8 001C7E18 40 82 00 48 */ bne lbl_801CC200
+lbl_801CC1BC:
+/* 801CC1BC 001C7E1C 81 21 00 70 */ lwz r9, 0x70(r1)
+/* 801CC1C0 001C7E20 7E 84 A3 78 */ mr r4, r20
+/* 801CC1C4 001C7E24 81 01 00 74 */ lwz r8, 0x74(r1)
+/* 801CC1C8 001C7E28 7E A3 AB 78 */ mr r3, r21
+/* 801CC1CC 001C7E2C 80 E1 00 78 */ lwz r7, 0x78(r1)
+/* 801CC1D0 001C7E30 38 A1 02 80 */ addi r5, r1, 0x280
+/* 801CC1D4 001C7E34 80 01 00 7C */ lwz r0, 0x7c(r1)
+/* 801CC1D8 001C7E38 38 C1 00 60 */ addi r6, r1, 0x60
+/* 801CC1DC 001C7E3C 91 21 00 60 */ stw r9, 0x60(r1)
+/* 801CC1E0 001C7E40 91 01 00 64 */ stw r8, 0x64(r1)
+/* 801CC1E4 001C7E44 90 E1 00 68 */ stw r7, 0x68(r1)
+/* 801CC1E8 001C7E48 90 01 00 6C */ stw r0, 0x6c(r1)
+/* 801CC1EC 001C7E4C 4B FF ED F9 */ bl longlong2str
+/* 801CC1F0 001C7E50 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC1F4 001C7E54 7C 7A 1B 78 */ mr r26, r3
+/* 801CC1F8 001C7E58 41 82 04 04 */ beq lbl_801CC5FC
+/* 801CC1FC 001C7E5C 48 00 00 40 */ b lbl_801CC23C
+lbl_801CC200:
+/* 801CC200 001C7E60 81 01 00 70 */ lwz r8, 0x70(r1)
+/* 801CC204 001C7E64 7E C3 B3 78 */ mr r3, r22
+/* 801CC208 001C7E68 80 E1 00 74 */ lwz r7, 0x74(r1)
+/* 801CC20C 001C7E6C 38 81 02 80 */ addi r4, r1, 0x280
+/* 801CC210 001C7E70 80 C1 00 78 */ lwz r6, 0x78(r1)
+/* 801CC214 001C7E74 38 A1 00 50 */ addi r5, r1, 0x50
+/* 801CC218 001C7E78 80 01 00 7C */ lwz r0, 0x7c(r1)
+/* 801CC21C 001C7E7C 91 01 00 50 */ stw r8, 0x50(r1)
+/* 801CC220 001C7E80 90 E1 00 54 */ stw r7, 0x54(r1)
+/* 801CC224 001C7E84 90 C1 00 58 */ stw r6, 0x58(r1)
+/* 801CC228 001C7E88 90 01 00 5C */ stw r0, 0x5c(r1)
+/* 801CC22C 001C7E8C 4B FF EB 91 */ bl long2str
+/* 801CC230 001C7E90 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC234 001C7E94 7C 7A 1B 78 */ mr r26, r3
+/* 801CC238 001C7E98 41 82 03 C4 */ beq lbl_801CC5FC
+lbl_801CC23C:
+/* 801CC23C 001C7E9C 7F 7A E0 50 */ subf r27, r26, r28
+/* 801CC240 001C7EA0 48 00 04 00 */ b lbl_801CC640
+lbl_801CC244:
+/* 801CC244 001C7EA4 88 01 00 74 */ lbz r0, 0x74(r1)
+/* 801CC248 001C7EA8 28 00 00 03 */ cmplwi r0, 3
+/* 801CC24C 001C7EAC 40 82 00 18 */ bne lbl_801CC264
+/* 801CC250 001C7EB0 7E 63 9B 78 */ mr r3, r19
+/* 801CC254 001C7EB4 38 80 00 01 */ li r4, 1
+/* 801CC258 001C7EB8 4B FF A9 29 */ bl __va_arg
+/* 801CC25C 001C7EBC 82 C3 00 00 */ lwz r22, 0(r3)
+/* 801CC260 001C7EC0 48 00 00 8C */ b lbl_801CC2EC
+lbl_801CC264:
+/* 801CC264 001C7EC4 28 00 00 04 */ cmplwi r0, 4
+/* 801CC268 001C7EC8 40 82 00 1C */ bne lbl_801CC284
+/* 801CC26C 001C7ECC 7E 63 9B 78 */ mr r3, r19
+/* 801CC270 001C7ED0 38 80 00 02 */ li r4, 2
+/* 801CC274 001C7ED4 4B FF A9 0D */ bl __va_arg
+/* 801CC278 001C7ED8 82 A3 00 00 */ lwz r21, 0(r3)
+/* 801CC27C 001C7EDC 82 83 00 04 */ lwz r20, 4(r3)
+/* 801CC280 001C7EE0 48 00 00 6C */ b lbl_801CC2EC
+lbl_801CC284:
+/* 801CC284 001C7EE4 28 00 00 06 */ cmplwi r0, 6
+/* 801CC288 001C7EE8 40 82 00 1C */ bne lbl_801CC2A4
+/* 801CC28C 001C7EEC 7E 63 9B 78 */ mr r3, r19
+/* 801CC290 001C7EF0 38 80 00 02 */ li r4, 2
+/* 801CC294 001C7EF4 4B FF A8 ED */ bl __va_arg
+/* 801CC298 001C7EF8 82 A3 00 00 */ lwz r21, 0(r3)
+/* 801CC29C 001C7EFC 82 83 00 04 */ lwz r20, 4(r3)
+/* 801CC2A0 001C7F00 48 00 00 4C */ b lbl_801CC2EC
+lbl_801CC2A4:
+/* 801CC2A4 001C7F04 28 00 00 07 */ cmplwi r0, 7
+/* 801CC2A8 001C7F08 40 82 00 18 */ bne lbl_801CC2C0
+/* 801CC2AC 001C7F0C 7E 63 9B 78 */ mr r3, r19
+/* 801CC2B0 001C7F10 38 80 00 01 */ li r4, 1
+/* 801CC2B4 001C7F14 4B FF A8 CD */ bl __va_arg
+/* 801CC2B8 001C7F18 82 C3 00 00 */ lwz r22, 0(r3)
+/* 801CC2BC 001C7F1C 48 00 00 30 */ b lbl_801CC2EC
+lbl_801CC2C0:
+/* 801CC2C0 001C7F20 28 00 00 08 */ cmplwi r0, 8
+/* 801CC2C4 001C7F24 40 82 00 18 */ bne lbl_801CC2DC
+/* 801CC2C8 001C7F28 7E 63 9B 78 */ mr r3, r19
+/* 801CC2CC 001C7F2C 38 80 00 01 */ li r4, 1
+/* 801CC2D0 001C7F30 4B FF A8 B1 */ bl __va_arg
+/* 801CC2D4 001C7F34 82 C3 00 00 */ lwz r22, 0(r3)
+/* 801CC2D8 001C7F38 48 00 00 14 */ b lbl_801CC2EC
+lbl_801CC2DC:
+/* 801CC2DC 001C7F3C 7E 63 9B 78 */ mr r3, r19
+/* 801CC2E0 001C7F40 38 80 00 01 */ li r4, 1
+/* 801CC2E4 001C7F44 4B FF A8 9D */ bl __va_arg
+/* 801CC2E8 001C7F48 82 C3 00 00 */ lwz r22, 0(r3)
+lbl_801CC2EC:
+/* 801CC2EC 001C7F4C 88 01 00 74 */ lbz r0, 0x74(r1)
+/* 801CC2F0 001C7F50 28 00 00 02 */ cmplwi r0, 2
+/* 801CC2F4 001C7F54 40 82 00 08 */ bne lbl_801CC2FC
+/* 801CC2F8 001C7F58 56 D6 04 3E */ clrlwi r22, r22, 0x10
+lbl_801CC2FC:
+/* 801CC2FC 001C7F5C 28 00 00 01 */ cmplwi r0, 1
+/* 801CC300 001C7F60 40 82 00 08 */ bne lbl_801CC308
+/* 801CC304 001C7F64 56 D6 06 3E */ clrlwi r22, r22, 0x18
+lbl_801CC308:
+/* 801CC308 001C7F68 28 00 00 04 */ cmplwi r0, 4
+/* 801CC30C 001C7F6C 41 82 00 0C */ beq lbl_801CC318
+/* 801CC310 001C7F70 28 00 00 06 */ cmplwi r0, 6
+/* 801CC314 001C7F74 40 82 00 48 */ bne lbl_801CC35C
+lbl_801CC318:
+/* 801CC318 001C7F78 81 21 00 70 */ lwz r9, 0x70(r1)
+/* 801CC31C 001C7F7C 7E 84 A3 78 */ mr r4, r20
+/* 801CC320 001C7F80 81 01 00 74 */ lwz r8, 0x74(r1)
+/* 801CC324 001C7F84 7E A3 AB 78 */ mr r3, r21
+/* 801CC328 001C7F88 80 E1 00 78 */ lwz r7, 0x78(r1)
+/* 801CC32C 001C7F8C 38 A1 02 80 */ addi r5, r1, 0x280
+/* 801CC330 001C7F90 80 01 00 7C */ lwz r0, 0x7c(r1)
+/* 801CC334 001C7F94 38 C1 00 40 */ addi r6, r1, 0x40
+/* 801CC338 001C7F98 91 21 00 40 */ stw r9, 0x40(r1)
+/* 801CC33C 001C7F9C 91 01 00 44 */ stw r8, 0x44(r1)
+/* 801CC340 001C7FA0 90 E1 00 48 */ stw r7, 0x48(r1)
+/* 801CC344 001C7FA4 90 01 00 4C */ stw r0, 0x4c(r1)
+/* 801CC348 001C7FA8 4B FF EC 9D */ bl longlong2str
+/* 801CC34C 001C7FAC 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC350 001C7FB0 7C 7A 1B 78 */ mr r26, r3
+/* 801CC354 001C7FB4 41 82 02 A8 */ beq lbl_801CC5FC
+/* 801CC358 001C7FB8 48 00 00 40 */ b lbl_801CC398
+lbl_801CC35C:
+/* 801CC35C 001C7FBC 81 01 00 70 */ lwz r8, 0x70(r1)
+/* 801CC360 001C7FC0 7E C3 B3 78 */ mr r3, r22
+/* 801CC364 001C7FC4 80 E1 00 74 */ lwz r7, 0x74(r1)
+/* 801CC368 001C7FC8 38 81 02 80 */ addi r4, r1, 0x280
+/* 801CC36C 001C7FCC 80 C1 00 78 */ lwz r6, 0x78(r1)
+/* 801CC370 001C7FD0 38 A1 00 30 */ addi r5, r1, 0x30
+/* 801CC374 001C7FD4 80 01 00 7C */ lwz r0, 0x7c(r1)
+/* 801CC378 001C7FD8 91 01 00 30 */ stw r8, 0x30(r1)
+/* 801CC37C 001C7FDC 90 E1 00 34 */ stw r7, 0x34(r1)
+/* 801CC380 001C7FE0 90 C1 00 38 */ stw r6, 0x38(r1)
+/* 801CC384 001C7FE4 90 01 00 3C */ stw r0, 0x3c(r1)
+/* 801CC388 001C7FE8 4B FF EA 35 */ bl long2str
+/* 801CC38C 001C7FEC 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC390 001C7FF0 7C 7A 1B 78 */ mr r26, r3
+/* 801CC394 001C7FF4 41 82 02 68 */ beq lbl_801CC5FC
+lbl_801CC398:
+/* 801CC398 001C7FF8 7F 7A E0 50 */ subf r27, r26, r28
+/* 801CC39C 001C7FFC 48 00 02 A4 */ b lbl_801CC640
+lbl_801CC3A0:
+/* 801CC3A0 001C8000 88 01 00 74 */ lbz r0, 0x74(r1)
+/* 801CC3A4 001C8004 28 00 00 09 */ cmplwi r0, 9
+/* 801CC3A8 001C8008 40 82 00 18 */ bne lbl_801CC3C0
+/* 801CC3AC 001C800C 7E 63 9B 78 */ mr r3, r19
+/* 801CC3B0 001C8010 38 80 00 03 */ li r4, 3
+/* 801CC3B4 001C8014 4B FF A7 CD */ bl __va_arg
+/* 801CC3B8 001C8018 C8 23 00 00 */ lfd f1, 0(r3)
+/* 801CC3BC 001C801C 48 00 00 14 */ b lbl_801CC3D0
+lbl_801CC3C0:
+/* 801CC3C0 001C8020 7E 63 9B 78 */ mr r3, r19
+/* 801CC3C4 001C8024 38 80 00 03 */ li r4, 3
+/* 801CC3C8 001C8028 4B FF A7 B9 */ bl __va_arg
+/* 801CC3CC 001C802C C8 23 00 00 */ lfd f1, 0(r3)
+lbl_801CC3D0:
+/* 801CC3D0 001C8030 80 E1 00 70 */ lwz r7, 0x70(r1)
+/* 801CC3D4 001C8034 38 61 02 80 */ addi r3, r1, 0x280
+/* 801CC3D8 001C8038 80 C1 00 74 */ lwz r6, 0x74(r1)
+/* 801CC3DC 001C803C 38 81 00 20 */ addi r4, r1, 0x20
+/* 801CC3E0 001C8040 80 A1 00 78 */ lwz r5, 0x78(r1)
+/* 801CC3E4 001C8044 80 01 00 7C */ lwz r0, 0x7c(r1)
+/* 801CC3E8 001C8048 90 E1 00 20 */ stw r7, 0x20(r1)
+/* 801CC3EC 001C804C 90 C1 00 24 */ stw r6, 0x24(r1)
+/* 801CC3F0 001C8050 90 A1 00 28 */ stw r5, 0x28(r1)
+/* 801CC3F4 001C8054 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 801CC3F8 001C8058 4B FF F3 7D */ bl float2str
+/* 801CC3FC 001C805C 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC400 001C8060 7C 7A 1B 78 */ mr r26, r3
+/* 801CC404 001C8064 41 82 01 F8 */ beq lbl_801CC5FC
+/* 801CC408 001C8068 7F 63 E0 50 */ subf r27, r3, r28
+/* 801CC40C 001C806C 48 00 02 34 */ b lbl_801CC640
+lbl_801CC410:
+/* 801CC410 001C8070 88 01 00 74 */ lbz r0, 0x74(r1)
+/* 801CC414 001C8074 28 00 00 09 */ cmplwi r0, 9
+/* 801CC418 001C8078 40 82 00 18 */ bne lbl_801CC430
+/* 801CC41C 001C807C 7E 63 9B 78 */ mr r3, r19
+/* 801CC420 001C8080 38 80 00 03 */ li r4, 3
+/* 801CC424 001C8084 4B FF A7 5D */ bl __va_arg
+/* 801CC428 001C8088 C8 23 00 00 */ lfd f1, 0(r3)
+/* 801CC42C 001C808C 48 00 00 14 */ b lbl_801CC440
+lbl_801CC430:
+/* 801CC430 001C8090 7E 63 9B 78 */ mr r3, r19
+/* 801CC434 001C8094 38 80 00 03 */ li r4, 3
+/* 801CC438 001C8098 4B FF A7 49 */ bl __va_arg
+/* 801CC43C 001C809C C8 23 00 00 */ lfd f1, 0(r3)
+lbl_801CC440:
+/* 801CC440 001C80A0 80 E1 00 70 */ lwz r7, 0x70(r1)
+/* 801CC444 001C80A4 38 61 02 80 */ addi r3, r1, 0x280
+/* 801CC448 001C80A8 80 C1 00 74 */ lwz r6, 0x74(r1)
+/* 801CC44C 001C80AC 38 81 00 10 */ addi r4, r1, 0x10
+/* 801CC450 001C80B0 80 A1 00 78 */ lwz r5, 0x78(r1)
+/* 801CC454 001C80B4 80 01 00 7C */ lwz r0, 0x7c(r1)
+/* 801CC458 001C80B8 90 E1 00 10 */ stw r7, 0x10(r1)
+/* 801CC45C 001C80BC 90 C1 00 14 */ stw r6, 0x14(r1)
+/* 801CC460 001C80C0 90 A1 00 18 */ stw r5, 0x18(r1)
+/* 801CC464 001C80C4 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 801CC468 001C80C8 4B FF EE 1D */ bl double2hex
+/* 801CC46C 001C80CC 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC470 001C80D0 7C 7A 1B 78 */ mr r26, r3
+/* 801CC474 001C80D4 41 82 01 88 */ beq lbl_801CC5FC
+/* 801CC478 001C80D8 7F 63 E0 50 */ subf r27, r3, r28
+/* 801CC47C 001C80DC 48 00 01 C4 */ b lbl_801CC640
+lbl_801CC480:
+/* 801CC480 001C80E0 88 01 00 74 */ lbz r0, 0x74(r1)
+/* 801CC484 001C80E4 28 00 00 05 */ cmplwi r0, 5
+/* 801CC488 001C80E8 40 82 00 3C */ bne lbl_801CC4C4
+/* 801CC48C 001C80EC 7E 63 9B 78 */ mr r3, r19
+/* 801CC490 001C80F0 38 80 00 01 */ li r4, 1
+/* 801CC494 001C80F4 4B FF A6 ED */ bl __va_arg
+/* 801CC498 001C80F8 80 83 00 00 */ lwz r4, 0(r3)
+/* 801CC49C 001C80FC 2C 04 00 00 */ cmpwi r4, 0
+/* 801CC4A0 001C8100 40 82 00 08 */ bne lbl_801CC4A8
+/* 801CC4A4 001C8104 38 8D 83 E0 */ addi r4, r13, lbl_8063D6A0-_SDA_BASE_
+lbl_801CC4A8:
+/* 801CC4A8 001C8108 38 61 00 80 */ addi r3, r1, 0x80
+/* 801CC4AC 001C810C 38 A0 02 00 */ li r5, 0x200
+/* 801CC4B0 001C8110 4B FF DD 0D */ bl wcstombs
+/* 801CC4B4 001C8114 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC4B8 001C8118 41 80 01 44 */ blt lbl_801CC5FC
+/* 801CC4BC 001C811C 3B 41 00 80 */ addi r26, r1, 0x80
+/* 801CC4C0 001C8120 48 00 00 14 */ b lbl_801CC4D4
+lbl_801CC4C4:
+/* 801CC4C4 001C8124 7E 63 9B 78 */ mr r3, r19
+/* 801CC4C8 001C8128 38 80 00 01 */ li r4, 1
+/* 801CC4CC 001C812C 4B FF A6 B5 */ bl __va_arg
+/* 801CC4D0 001C8130 83 43 00 00 */ lwz r26, 0(r3)
+lbl_801CC4D4:
+/* 801CC4D4 001C8134 2C 1A 00 00 */ cmpwi r26, 0
+/* 801CC4D8 001C8138 40 82 00 08 */ bne lbl_801CC4E0
+/* 801CC4DC 001C813C 3B 5D 00 2A */ addi r26, r29, 0x2a
+lbl_801CC4E0:
+/* 801CC4E0 001C8140 88 01 00 73 */ lbz r0, 0x73(r1)
+/* 801CC4E4 001C8144 2C 00 00 00 */ cmpwi r0, 0
+/* 801CC4E8 001C8148 41 82 00 2C */ beq lbl_801CC514
+/* 801CC4EC 001C814C 88 01 00 72 */ lbz r0, 0x72(r1)
+/* 801CC4F0 001C8150 8B 7A 00 00 */ lbz r27, 0(r26)
+/* 801CC4F4 001C8154 3B 5A 00 01 */ addi r26, r26, 1
+/* 801CC4F8 001C8158 2C 00 00 00 */ cmpwi r0, 0
+/* 801CC4FC 001C815C 41 82 01 44 */ beq lbl_801CC640
+/* 801CC500 001C8160 80 01 00 7C */ lwz r0, 0x7c(r1)
+/* 801CC504 001C8164 7C 1B 00 00 */ cmpw r27, r0
+/* 801CC508 001C8168 40 81 01 38 */ ble lbl_801CC640
+/* 801CC50C 001C816C 7C 1B 03 78 */ mr r27, r0
+/* 801CC510 001C8170 48 00 01 30 */ b lbl_801CC640
+lbl_801CC514:
+/* 801CC514 001C8174 88 01 00 72 */ lbz r0, 0x72(r1)
+/* 801CC518 001C8178 2C 00 00 00 */ cmpwi r0, 0
+/* 801CC51C 001C817C 41 82 00 28 */ beq lbl_801CC544
+/* 801CC520 001C8180 83 61 00 7C */ lwz r27, 0x7c(r1)
+/* 801CC524 001C8184 7F 43 D3 78 */ mr r3, r26
+/* 801CC528 001C8188 38 80 00 00 */ li r4, 0
+/* 801CC52C 001C818C 7F 65 DB 78 */ mr r5, r27
+/* 801CC530 001C8190 4B FF DE 11 */ bl memchr
+/* 801CC534 001C8194 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC538 001C8198 41 82 01 08 */ beq lbl_801CC640
+/* 801CC53C 001C819C 7F 7A 18 50 */ subf r27, r26, r3
+/* 801CC540 001C81A0 48 00 01 00 */ b lbl_801CC640
+lbl_801CC544:
+/* 801CC544 001C81A4 7F 43 D3 78 */ mr r3, r26
+/* 801CC548 001C81A8 4B FF A6 1D */ bl strlen
+/* 801CC54C 001C81AC 7C 7B 1B 78 */ mr r27, r3
+/* 801CC550 001C81B0 48 00 00 F0 */ b lbl_801CC640
+lbl_801CC554:
+/* 801CC554 001C81B4 7E 63 9B 78 */ mr r3, r19
+/* 801CC558 001C81B8 38 80 00 01 */ li r4, 1
+/* 801CC55C 001C81BC 4B FF A6 25 */ bl __va_arg
+/* 801CC560 001C81C0 88 01 00 74 */ lbz r0, 0x74(r1)
+/* 801CC564 001C81C4 80 83 00 00 */ lwz r4, 0(r3)
+/* 801CC568 001C81C8 28 00 00 08 */ cmplwi r0, 8
+/* 801CC56C 001C81CC 41 81 02 10 */ bgt lbl_801CC77C
+/* 801CC570 001C81D0 38 7E 2F BC */ addi r3, r30, 0x2fbc
+/* 801CC574 001C81D4 54 00 10 3A */ slwi r0, r0, 2
+/* 801CC578 001C81D8 7C 63 00 2E */ lwzx r3, r3, r0
+/* 801CC57C 001C81DC 7C 69 03 A6 */ mtctr r3
+/* 801CC580 001C81E0 4E 80 04 20 */ bctr
+/* 801CC584 001C81E4 93 24 00 00 */ stw r25, 0(r4)
+/* 801CC588 001C81E8 48 00 01 F4 */ b lbl_801CC77C
+/* 801CC58C 001C81EC B3 24 00 00 */ sth r25, 0(r4)
+/* 801CC590 001C81F0 48 00 01 EC */ b lbl_801CC77C
+/* 801CC594 001C81F4 93 24 00 00 */ stw r25, 0(r4)
+/* 801CC598 001C81F8 48 00 01 E4 */ b lbl_801CC77C
+/* 801CC59C 001C81FC 93 24 00 04 */ stw r25, 4(r4)
+/* 801CC5A0 001C8200 7F 20 FE 70 */ srawi r0, r25, 0x1f
+/* 801CC5A4 001C8204 90 04 00 00 */ stw r0, 0(r4)
+/* 801CC5A8 001C8208 48 00 01 D4 */ b lbl_801CC77C
+/* 801CC5AC 001C820C 93 24 00 00 */ stw r25, 0(r4)
+/* 801CC5B0 001C8210 48 00 01 CC */ b lbl_801CC77C
+/* 801CC5B4 001C8214 93 24 00 00 */ stw r25, 0(r4)
+/* 801CC5B8 001C8218 48 00 01 C4 */ b lbl_801CC77C
+/* 801CC5BC 001C821C 93 24 00 04 */ stw r25, 4(r4)
+/* 801CC5C0 001C8220 7F 20 FE 70 */ srawi r0, r25, 0x1f
+/* 801CC5C4 001C8224 90 04 00 00 */ stw r0, 0(r4)
+/* 801CC5C8 001C8228 48 00 01 B4 */ b lbl_801CC77C
+lbl_801CC5CC:
+/* 801CC5CC 001C822C 7E 63 9B 78 */ mr r3, r19
+/* 801CC5D0 001C8230 3B 41 00 80 */ addi r26, r1, 0x80
+/* 801CC5D4 001C8234 38 80 00 01 */ li r4, 1
+/* 801CC5D8 001C8238 4B FF A5 A9 */ bl __va_arg
+/* 801CC5DC 001C823C 80 03 00 00 */ lwz r0, 0(r3)
+/* 801CC5E0 001C8240 3B 60 00 01 */ li r27, 1
+/* 801CC5E4 001C8244 98 01 00 80 */ stb r0, 0x80(r1)
+/* 801CC5E8 001C8248 48 00 00 58 */ b lbl_801CC640
+lbl_801CC5EC:
+/* 801CC5EC 001C824C 9B E1 00 80 */ stb r31, 0x80(r1)
+/* 801CC5F0 001C8250 3B 41 00 80 */ addi r26, r1, 0x80
+/* 801CC5F4 001C8254 3B 60 00 01 */ li r27, 1
+/* 801CC5F8 001C8258 48 00 00 48 */ b lbl_801CC640
+lbl_801CC5FC:
+/* 801CC5FC 001C825C 7F 03 C3 78 */ mr r3, r24
+/* 801CC600 001C8260 4B FF A5 65 */ bl strlen
+/* 801CC604 001C8264 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC608 001C8268 7C 65 1B 78 */ mr r5, r3
+/* 801CC60C 001C826C 7F 39 1A 14 */ add r25, r25, r3
+/* 801CC610 001C8270 41 82 00 28 */ beq lbl_801CC638
+/* 801CC614 001C8274 7E 2C 8B 78 */ mr r12, r17
+/* 801CC618 001C8278 7E 43 93 78 */ mr r3, r18
+/* 801CC61C 001C827C 7F 04 C3 78 */ mr r4, r24
+/* 801CC620 001C8280 7D 89 03 A6 */ mtctr r12
+/* 801CC624 001C8284 4E 80 04 21 */ bctrl
+/* 801CC628 001C8288 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC62C 001C828C 40 82 00 0C */ bne lbl_801CC638
+/* 801CC630 001C8290 38 60 FF FF */ li r3, -1
+/* 801CC634 001C8294 48 00 01 58 */ b lbl_801CC78C
+lbl_801CC638:
+/* 801CC638 001C8298 7F 23 CB 78 */ mr r3, r25
+/* 801CC63C 001C829C 48 00 01 50 */ b lbl_801CC78C
+lbl_801CC640:
+/* 801CC640 001C82A0 88 01 00 70 */ lbz r0, 0x70(r1)
+/* 801CC644 001C82A4 7F 78 DB 78 */ mr r24, r27
+/* 801CC648 001C82A8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CC64C 001C82AC 41 82 00 B0 */ beq lbl_801CC6FC
+/* 801CC650 001C82B0 28 00 00 02 */ cmplwi r0, 2
+/* 801CC654 001C82B4 38 60 00 20 */ li r3, 0x20
+/* 801CC658 001C82B8 40 82 00 08 */ bne lbl_801CC660
+/* 801CC65C 001C82BC 38 60 00 30 */ li r3, 0x30
+lbl_801CC660:
+/* 801CC660 001C82C0 98 61 00 09 */ stb r3, 9(r1)
+/* 801CC664 001C82C4 88 1A 00 00 */ lbz r0, 0(r26)
+/* 801CC668 001C82C8 7C 00 07 74 */ extsb r0, r0
+/* 801CC66C 001C82CC 2C 00 00 2B */ cmpwi r0, 0x2b
+/* 801CC670 001C82D0 41 82 00 14 */ beq lbl_801CC684
+/* 801CC674 001C82D4 2C 00 00 2D */ cmpwi r0, 0x2d
+/* 801CC678 001C82D8 41 82 00 0C */ beq lbl_801CC684
+/* 801CC67C 001C82DC 2C 00 00 20 */ cmpwi r0, 0x20
+/* 801CC680 001C82E0 40 82 00 70 */ bne lbl_801CC6F0
+lbl_801CC684:
+/* 801CC684 001C82E4 7C 60 07 74 */ extsb r0, r3
+/* 801CC688 001C82E8 2C 00 00 30 */ cmpwi r0, 0x30
+/* 801CC68C 001C82EC 40 82 00 64 */ bne lbl_801CC6F0
+/* 801CC690 001C82F0 7E 2C 8B 78 */ mr r12, r17
+/* 801CC694 001C82F4 7E 43 93 78 */ mr r3, r18
+/* 801CC698 001C82F8 7F 44 D3 78 */ mr r4, r26
+/* 801CC69C 001C82FC 38 A0 00 01 */ li r5, 1
+/* 801CC6A0 001C8300 7D 89 03 A6 */ mtctr r12
+/* 801CC6A4 001C8304 4E 80 04 21 */ bctrl
+/* 801CC6A8 001C8308 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC6AC 001C830C 40 82 00 0C */ bne lbl_801CC6B8
+/* 801CC6B0 001C8310 38 60 FF FF */ li r3, -1
+/* 801CC6B4 001C8314 48 00 00 D8 */ b lbl_801CC78C
+lbl_801CC6B8:
+/* 801CC6B8 001C8318 3B 5A 00 01 */ addi r26, r26, 1
+/* 801CC6BC 001C831C 3B 7B FF FF */ addi r27, r27, -1
+/* 801CC6C0 001C8320 48 00 00 30 */ b lbl_801CC6F0
+lbl_801CC6C4:
+/* 801CC6C4 001C8324 7E 2C 8B 78 */ mr r12, r17
+/* 801CC6C8 001C8328 7E 43 93 78 */ mr r3, r18
+/* 801CC6CC 001C832C 38 81 00 09 */ addi r4, r1, 9
+/* 801CC6D0 001C8330 38 A0 00 01 */ li r5, 1
+/* 801CC6D4 001C8334 7D 89 03 A6 */ mtctr r12
+/* 801CC6D8 001C8338 4E 80 04 21 */ bctrl
+/* 801CC6DC 001C833C 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC6E0 001C8340 40 82 00 0C */ bne lbl_801CC6EC
+/* 801CC6E4 001C8344 38 60 FF FF */ li r3, -1
+/* 801CC6E8 001C8348 48 00 00 A4 */ b lbl_801CC78C
+lbl_801CC6EC:
+/* 801CC6EC 001C834C 3B 18 00 01 */ addi r24, r24, 1
+lbl_801CC6F0:
+/* 801CC6F0 001C8350 80 01 00 78 */ lwz r0, 0x78(r1)
+/* 801CC6F4 001C8354 7C 18 00 00 */ cmpw r24, r0
+/* 801CC6F8 001C8358 41 80 FF CC */ blt lbl_801CC6C4
+lbl_801CC6FC:
+/* 801CC6FC 001C835C 2C 1B 00 00 */ cmpwi r27, 0
+/* 801CC700 001C8360 41 82 00 2C */ beq lbl_801CC72C
+/* 801CC704 001C8364 7E 2C 8B 78 */ mr r12, r17
+/* 801CC708 001C8368 7E 43 93 78 */ mr r3, r18
+/* 801CC70C 001C836C 7F 44 D3 78 */ mr r4, r26
+/* 801CC710 001C8370 7F 65 DB 78 */ mr r5, r27
+/* 801CC714 001C8374 7D 89 03 A6 */ mtctr r12
+/* 801CC718 001C8378 4E 80 04 21 */ bctrl
+/* 801CC71C 001C837C 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC720 001C8380 40 82 00 0C */ bne lbl_801CC72C
+/* 801CC724 001C8384 38 60 FF FF */ li r3, -1
+/* 801CC728 001C8388 48 00 00 64 */ b lbl_801CC78C
+lbl_801CC72C:
+/* 801CC72C 001C838C 88 01 00 70 */ lbz r0, 0x70(r1)
+/* 801CC730 001C8390 2C 00 00 00 */ cmpwi r0, 0
+/* 801CC734 001C8394 40 82 00 44 */ bne lbl_801CC778
+/* 801CC738 001C8398 48 00 00 34 */ b lbl_801CC76C
+lbl_801CC73C:
+/* 801CC73C 001C839C 7E 2C 8B 78 */ mr r12, r17
+/* 801CC740 001C83A0 7E 43 93 78 */ mr r3, r18
+/* 801CC744 001C83A4 9A 01 00 08 */ stb r16, 8(r1)
+/* 801CC748 001C83A8 38 81 00 08 */ addi r4, r1, 8
+/* 801CC74C 001C83AC 38 A0 00 01 */ li r5, 1
+/* 801CC750 001C83B0 7D 89 03 A6 */ mtctr r12
+/* 801CC754 001C83B4 4E 80 04 21 */ bctrl
+/* 801CC758 001C83B8 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC75C 001C83BC 40 82 00 0C */ bne lbl_801CC768
+/* 801CC760 001C83C0 38 60 FF FF */ li r3, -1
+/* 801CC764 001C83C4 48 00 00 28 */ b lbl_801CC78C
+lbl_801CC768:
+/* 801CC768 001C83C8 3B 18 00 01 */ addi r24, r24, 1
+lbl_801CC76C:
+/* 801CC76C 001C83CC 80 01 00 78 */ lwz r0, 0x78(r1)
+/* 801CC770 001C83D0 7C 18 00 00 */ cmpw r24, r0
+/* 801CC774 001C83D4 41 80 FF C8 */ blt lbl_801CC73C
+lbl_801CC778:
+/* 801CC778 001C83D8 7F 39 C2 14 */ add r25, r25, r24
+lbl_801CC77C:
+/* 801CC77C 001C83DC 88 17 00 00 */ lbz r0, 0(r23)
+/* 801CC780 001C83E0 7C 00 07 75 */ extsb. r0, r0
+/* 801CC784 001C83E4 40 82 F8 04 */ bne lbl_801CBF88
+lbl_801CC788:
+/* 801CC788 001C83E8 7F 23 CB 78 */ mr r3, r25
+lbl_801CC78C:
+/* 801CC78C 001C83EC BA 01 02 80 */ lmw r16, 0x280(r1)
+/* 801CC790 001C83F0 80 01 02 C4 */ lwz r0, 0x2c4(r1)
+/* 801CC794 001C83F4 7C 08 03 A6 */ mtlr r0
+/* 801CC798 001C83F8 38 21 02 C0 */ addi r1, r1, 0x2c0
+/* 801CC79C 001C83FC 4E 80 00 20 */ blr
+
+.global __FileWrite
+__FileWrite:
+/* 801CC7A0 001C8400 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801CC7A4 001C8404 7C 08 02 A6 */ mflr r0
+/* 801CC7A8 001C8408 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801CC7AC 001C840C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801CC7B0 001C8410 7C BF 2B 78 */ mr r31, r5
+/* 801CC7B4 001C8414 93 C1 00 08 */ stw r30, 8(r1)
+/* 801CC7B8 001C8418 7C 7E 1B 78 */ mr r30, r3
+/* 801CC7BC 001C841C 7C 83 23 78 */ mr r3, r4
+/* 801CC7C0 001C8420 38 80 00 01 */ li r4, 1
+/* 801CC7C4 001C8424 7F C6 F3 78 */ mr r6, r30
+/* 801CC7C8 001C8428 4B FF D1 01 */ bl __fwrite
+/* 801CC7CC 001C842C 7C 1F 18 40 */ cmplw r31, r3
+/* 801CC7D0 001C8430 40 82 00 08 */ bne lbl_801CC7D8
+/* 801CC7D4 001C8434 48 00 00 08 */ b lbl_801CC7DC
+lbl_801CC7D8:
+/* 801CC7D8 001C8438 3B C0 00 00 */ li r30, 0
+lbl_801CC7DC:
+/* 801CC7DC 001C843C 7F C3 F3 78 */ mr r3, r30
+/* 801CC7E0 001C8440 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801CC7E4 001C8444 83 C1 00 08 */ lwz r30, 8(r1)
+/* 801CC7E8 001C8448 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801CC7EC 001C844C 7C 08 03 A6 */ mtlr r0
+/* 801CC7F0 001C8450 38 21 00 10 */ addi r1, r1, 0x10
+/* 801CC7F4 001C8454 4E 80 00 20 */ blr
+
+.global __StringWrite
+__StringWrite:
+/* 801CC7F8 001C8458 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801CC7FC 001C845C 7C 08 02 A6 */ mflr r0
+/* 801CC800 001C8460 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801CC804 001C8464 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801CC808 001C8468 93 C1 00 08 */ stw r30, 8(r1)
+/* 801CC80C 001C846C 7C 7E 1B 78 */ mr r30, r3
+/* 801CC810 001C8470 80 C3 00 08 */ lwz r6, 8(r3)
+/* 801CC814 001C8474 80 E3 00 04 */ lwz r7, 4(r3)
+/* 801CC818 001C8478 7C 06 2A 14 */ add r0, r6, r5
+/* 801CC81C 001C847C 7C 00 38 40 */ cmplw r0, r7
+/* 801CC820 001C8480 7F E6 38 50 */ subf r31, r6, r7
+/* 801CC824 001C8484 41 81 00 08 */ bgt lbl_801CC82C
+/* 801CC828 001C8488 7C BF 2B 78 */ mr r31, r5
+lbl_801CC82C:
+/* 801CC82C 001C848C 80 03 00 00 */ lwz r0, 0(r3)
+/* 801CC830 001C8490 7F E5 FB 78 */ mr r5, r31
+/* 801CC834 001C8494 7C 60 32 14 */ add r3, r0, r6
+/* 801CC838 001C8498 4B E3 77 C9 */ bl memcpy
+/* 801CC83C 001C849C 80 1E 00 08 */ lwz r0, 8(r30)
+/* 801CC840 001C84A0 38 60 00 01 */ li r3, 1
+/* 801CC844 001C84A4 7C 00 FA 14 */ add r0, r0, r31
+/* 801CC848 001C84A8 90 1E 00 08 */ stw r0, 8(r30)
+/* 801CC84C 001C84AC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801CC850 001C84B0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 801CC854 001C84B4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801CC858 001C84B8 7C 08 03 A6 */ mtlr r0
+/* 801CC85C 001C84BC 38 21 00 10 */ addi r1, r1, 0x10
+/* 801CC860 001C84C0 4E 80 00 20 */ blr
+
+.global printf
+printf:
+/* 801CC864 001C84C4 94 21 FF 80 */ stwu r1, -0x80(r1)
+/* 801CC868 001C84C8 7C 08 02 A6 */ mflr r0
+/* 801CC86C 001C84CC 90 01 00 84 */ stw r0, 0x84(r1)
+/* 801CC870 001C84D0 93 E1 00 7C */ stw r31, 0x7c(r1)
+/* 801CC874 001C84D4 93 C1 00 78 */ stw r30, 0x78(r1)
+/* 801CC878 001C84D8 7C 7E 1B 78 */ mr r30, r3
+/* 801CC87C 001C84DC 40 86 00 24 */ bne cr1, lbl_801CC8A0
+/* 801CC880 001C84E0 D8 21 00 28 */ stfd f1, 0x28(r1)
+/* 801CC884 001C84E4 D8 41 00 30 */ stfd f2, 0x30(r1)
+/* 801CC888 001C84E8 D8 61 00 38 */ stfd f3, 0x38(r1)
+/* 801CC88C 001C84EC D8 81 00 40 */ stfd f4, 0x40(r1)
+/* 801CC890 001C84F0 D8 A1 00 48 */ stfd f5, 0x48(r1)
+/* 801CC894 001C84F4 D8 C1 00 50 */ stfd f6, 0x50(r1)
+/* 801CC898 001C84F8 D8 E1 00 58 */ stfd f7, 0x58(r1)
+/* 801CC89C 001C84FC D9 01 00 60 */ stfd f8, 0x60(r1)
+lbl_801CC8A0:
+/* 801CC8A0 001C8500 3F E0 80 42 */ lis r31, lbl_804228F0@ha
+/* 801CC8A4 001C8504 90 81 00 0C */ stw r4, 0xc(r1)
+/* 801CC8A8 001C8508 3B FF 28 F0 */ addi r31, r31, lbl_804228F0@l
+/* 801CC8AC 001C850C 38 80 FF FF */ li r4, -1
+/* 801CC8B0 001C8510 90 61 00 08 */ stw r3, 8(r1)
+/* 801CC8B4 001C8514 38 7F 00 50 */ addi r3, r31, 0x50
+/* 801CC8B8 001C8518 90 A1 00 10 */ stw r5, 0x10(r1)
+/* 801CC8BC 001C851C 90 C1 00 14 */ stw r6, 0x14(r1)
+/* 801CC8C0 001C8520 90 E1 00 18 */ stw r7, 0x18(r1)
+/* 801CC8C4 001C8524 91 01 00 1C */ stw r8, 0x1c(r1)
+/* 801CC8C8 001C8528 91 21 00 20 */ stw r9, 0x20(r1)
+/* 801CC8CC 001C852C 91 41 00 24 */ stw r10, 0x24(r1)
+/* 801CC8D0 001C8530 48 00 3F 95 */ bl fwide
+/* 801CC8D4 001C8534 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC8D8 001C8538 41 80 00 0C */ blt lbl_801CC8E4
+/* 801CC8DC 001C853C 38 60 FF FF */ li r3, -1
+/* 801CC8E0 001C8540 48 00 00 34 */ b lbl_801CC914
+lbl_801CC8E4:
+/* 801CC8E4 001C8544 38 81 00 88 */ addi r4, r1, 0x88
+/* 801CC8E8 001C8548 38 01 00 08 */ addi r0, r1, 8
+/* 801CC8EC 001C854C 3C A0 01 00 */ lis r5, 0x100
+/* 801CC8F0 001C8550 3C 60 80 1D */ lis r3, __FileWrite@ha
+/* 801CC8F4 001C8554 90 A1 00 68 */ stw r5, 0x68(r1)
+/* 801CC8F8 001C8558 38 C1 00 68 */ addi r6, r1, 0x68
+/* 801CC8FC 001C855C 7F C5 F3 78 */ mr r5, r30
+/* 801CC900 001C8560 38 63 C7 A0 */ addi r3, r3, __FileWrite@l
+/* 801CC904 001C8564 90 81 00 6C */ stw r4, 0x6c(r1)
+/* 801CC908 001C8568 38 9F 00 50 */ addi r4, r31, 0x50
+/* 801CC90C 001C856C 90 01 00 70 */ stw r0, 0x70(r1)
+/* 801CC910 001C8570 4B FF F6 35 */ bl __pformatter
+lbl_801CC914:
+/* 801CC914 001C8574 80 01 00 84 */ lwz r0, 0x84(r1)
+/* 801CC918 001C8578 83 E1 00 7C */ lwz r31, 0x7c(r1)
+/* 801CC91C 001C857C 83 C1 00 78 */ lwz r30, 0x78(r1)
+/* 801CC920 001C8580 7C 08 03 A6 */ mtlr r0
+/* 801CC924 001C8584 38 21 00 80 */ addi r1, r1, 0x80
+/* 801CC928 001C8588 4E 80 00 20 */ blr
+
+.global vprintf
+vprintf:
+/* 801CC92C 001C858C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 801CC930 001C8590 7C 08 02 A6 */ mflr r0
+/* 801CC934 001C8594 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801CC938 001C8598 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 801CC93C 001C859C 3F E0 80 42 */ lis r31, lbl_804228F0@ha
+/* 801CC940 001C85A0 3B FF 28 F0 */ addi r31, r31, lbl_804228F0@l
+/* 801CC944 001C85A4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 801CC948 001C85A8 7C 9E 23 78 */ mr r30, r4
+/* 801CC94C 001C85AC 38 80 FF FF */ li r4, -1
+/* 801CC950 001C85B0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 801CC954 001C85B4 7C 7D 1B 78 */ mr r29, r3
+/* 801CC958 001C85B8 38 7F 00 50 */ addi r3, r31, 0x50
+/* 801CC95C 001C85BC 48 00 3F 09 */ bl fwide
+/* 801CC960 001C85C0 2C 03 00 00 */ cmpwi r3, 0
+/* 801CC964 001C85C4 41 80 00 0C */ blt lbl_801CC970
+/* 801CC968 001C85C8 38 60 FF FF */ li r3, -1
+/* 801CC96C 001C85CC 48 00 00 1C */ b lbl_801CC988
+lbl_801CC970:
+/* 801CC970 001C85D0 3C 60 80 1D */ lis r3, __FileWrite@ha
+/* 801CC974 001C85D4 7F A5 EB 78 */ mr r5, r29
+/* 801CC978 001C85D8 7F C6 F3 78 */ mr r6, r30
+/* 801CC97C 001C85DC 38 9F 00 50 */ addi r4, r31, 0x50
+/* 801CC980 001C85E0 38 63 C7 A0 */ addi r3, r3, __FileWrite@l
+/* 801CC984 001C85E4 4B FF F5 C1 */ bl __pformatter
+lbl_801CC988:
+/* 801CC988 001C85E8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801CC98C 001C85EC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 801CC990 001C85F0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 801CC994 001C85F4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 801CC998 001C85F8 7C 08 03 A6 */ mtlr r0
+/* 801CC99C 001C85FC 38 21 00 20 */ addi r1, r1, 0x20
+/* 801CC9A0 001C8600 4E 80 00 20 */ blr
+
+.global vsprintf
+vsprintf:
+/* 801CC9A4 001C8604 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 801CC9A8 001C8608 7C 08 02 A6 */ mflr r0
+/* 801CC9AC 001C860C 7C A6 2B 78 */ mr r6, r5
+/* 801CC9B0 001C8610 7C 85 23 78 */ mr r5, r4
+/* 801CC9B4 001C8614 90 01 00 34 */ stw r0, 0x34(r1)
+/* 801CC9B8 001C8618 3C E0 80 1D */ lis r7, __StringWrite@ha
+/* 801CC9BC 001C861C 38 81 00 08 */ addi r4, r1, 8
+/* 801CC9C0 001C8620 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 801CC9C4 001C8624 3B E0 00 00 */ li r31, 0
+/* 801CC9C8 001C8628 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 801CC9CC 001C862C 3B C0 FF FF */ li r30, -1
+/* 801CC9D0 001C8630 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 801CC9D4 001C8634 7C 7D 1B 78 */ mr r29, r3
+/* 801CC9D8 001C8638 90 61 00 08 */ stw r3, 8(r1)
+/* 801CC9DC 001C863C 38 67 C7 F8 */ addi r3, r7, __StringWrite@l
+/* 801CC9E0 001C8640 93 C1 00 0C */ stw r30, 0xc(r1)
+/* 801CC9E4 001C8644 93 E1 00 10 */ stw r31, 0x10(r1)
+/* 801CC9E8 001C8648 4B FF F5 5D */ bl __pformatter
+/* 801CC9EC 001C864C 2C 1D 00 00 */ cmpwi r29, 0
+/* 801CC9F0 001C8650 41 82 00 18 */ beq lbl_801CCA08
+/* 801CC9F4 001C8654 7C 03 F0 40 */ cmplw r3, r30
+/* 801CC9F8 001C8658 40 80 00 0C */ bge lbl_801CCA04
+/* 801CC9FC 001C865C 7F FD 19 AE */ stbx r31, r29, r3
+/* 801CCA00 001C8660 48 00 00 08 */ b lbl_801CCA08
+lbl_801CCA04:
+/* 801CCA04 001C8664 9B FD FF FE */ stb r31, -2(r29)
+lbl_801CCA08:
+/* 801CCA08 001C8668 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 801CCA0C 001C866C 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 801CCA10 001C8670 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 801CCA14 001C8674 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 801CCA18 001C8678 7C 08 03 A6 */ mtlr r0
+/* 801CCA1C 001C867C 38 21 00 30 */ addi r1, r1, 0x30
+/* 801CCA20 001C8680 4E 80 00 20 */ blr
+
+.global snprintf
+snprintf:
+/* 801CCA24 001C8684 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 801CCA28 001C8688 7C 08 02 A6 */ mflr r0
+/* 801CCA2C 001C868C 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 801CCA30 001C8690 BF 61 00 8C */ stmw r27, 0x8c(r1)
+/* 801CCA34 001C8694 7C 7B 1B 78 */ mr r27, r3
+/* 801CCA38 001C8698 7C 9C 23 78 */ mr r28, r4
+/* 801CCA3C 001C869C 40 86 00 24 */ bne cr1, lbl_801CCA60
+/* 801CCA40 001C86A0 D8 21 00 28 */ stfd f1, 0x28(r1)
+/* 801CCA44 001C86A4 D8 41 00 30 */ stfd f2, 0x30(r1)
+/* 801CCA48 001C86A8 D8 61 00 38 */ stfd f3, 0x38(r1)
+/* 801CCA4C 001C86AC D8 81 00 40 */ stfd f4, 0x40(r1)
+/* 801CCA50 001C86B0 D8 A1 00 48 */ stfd f5, 0x48(r1)
+/* 801CCA54 001C86B4 D8 C1 00 50 */ stfd f6, 0x50(r1)
+/* 801CCA58 001C86B8 D8 E1 00 58 */ stfd f7, 0x58(r1)
+/* 801CCA5C 001C86BC D9 01 00 60 */ stfd f8, 0x60(r1)
+lbl_801CCA60:
+/* 801CCA60 001C86C0 39 81 00 A8 */ addi r12, r1, 0xa8
+/* 801CCA64 001C86C4 38 01 00 08 */ addi r0, r1, 8
+/* 801CCA68 001C86C8 3F C0 03 00 */ lis r30, 0x300
+/* 801CCA6C 001C86CC 3B E0 00 00 */ li r31, 0
+/* 801CCA70 001C86D0 90 A1 00 10 */ stw r5, 0x10(r1)
+/* 801CCA74 001C86D4 3B A1 00 74 */ addi r29, r1, 0x74
+/* 801CCA78 001C86D8 3D 60 80 1D */ lis r11, __StringWrite@ha
+/* 801CCA7C 001C86DC 90 C1 00 14 */ stw r6, 0x14(r1)
+/* 801CCA80 001C86E0 7F A6 EB 78 */ mr r6, r29
+/* 801CCA84 001C86E4 90 61 00 08 */ stw r3, 8(r1)
+/* 801CCA88 001C86E8 90 61 00 68 */ stw r3, 0x68(r1)
+/* 801CCA8C 001C86EC 38 6B C7 F8 */ addi r3, r11, __StringWrite@l
+/* 801CCA90 001C86F0 90 81 00 0C */ stw r4, 0xc(r1)
+/* 801CCA94 001C86F4 90 81 00 6C */ stw r4, 0x6c(r1)
+/* 801CCA98 001C86F8 38 81 00 68 */ addi r4, r1, 0x68
+/* 801CCA9C 001C86FC 90 E1 00 18 */ stw r7, 0x18(r1)
+/* 801CCAA0 001C8700 91 01 00 1C */ stw r8, 0x1c(r1)
+/* 801CCAA4 001C8704 91 21 00 20 */ stw r9, 0x20(r1)
+/* 801CCAA8 001C8708 91 41 00 24 */ stw r10, 0x24(r1)
+/* 801CCAAC 001C870C 93 C1 00 74 */ stw r30, 0x74(r1)
+/* 801CCAB0 001C8710 91 81 00 78 */ stw r12, 0x78(r1)
+/* 801CCAB4 001C8714 90 01 00 7C */ stw r0, 0x7c(r1)
+/* 801CCAB8 001C8718 93 E1 00 70 */ stw r31, 0x70(r1)
+/* 801CCABC 001C871C 4B FF F4 89 */ bl __pformatter
+/* 801CCAC0 001C8720 2C 1B 00 00 */ cmpwi r27, 0
+/* 801CCAC4 001C8724 41 82 00 24 */ beq lbl_801CCAE8
+/* 801CCAC8 001C8728 7C 03 E0 40 */ cmplw r3, r28
+/* 801CCACC 001C872C 40 80 00 0C */ bge lbl_801CCAD8
+/* 801CCAD0 001C8730 7F FB 19 AE */ stbx r31, r27, r3
+/* 801CCAD4 001C8734 48 00 00 14 */ b lbl_801CCAE8
+lbl_801CCAD8:
+/* 801CCAD8 001C8738 2C 1C 00 00 */ cmpwi r28, 0
+/* 801CCADC 001C873C 41 82 00 0C */ beq lbl_801CCAE8
+/* 801CCAE0 001C8740 7C 9B E2 14 */ add r4, r27, r28
+/* 801CCAE4 001C8744 9B E4 FF FF */ stb r31, -1(r4)
+lbl_801CCAE8:
+/* 801CCAE8 001C8748 BB 61 00 8C */ lmw r27, 0x8c(r1)
+/* 801CCAEC 001C874C 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 801CCAF0 001C8750 7C 08 03 A6 */ mtlr r0
+/* 801CCAF4 001C8754 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 801CCAF8 001C8758 4E 80 00 20 */ blr
+
+.global sprintf
+sprintf:
+/* 801CCAFC 001C875C 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 801CCB00 001C8760 7C 08 02 A6 */ mflr r0
+/* 801CCB04 001C8764 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 801CCB08 001C8768 BF 61 00 8C */ stmw r27, 0x8c(r1)
+/* 801CCB0C 001C876C 7C 7B 1B 78 */ mr r27, r3
+/* 801CCB10 001C8770 40 86 00 24 */ bne cr1, lbl_801CCB34
+/* 801CCB14 001C8774 D8 21 00 28 */ stfd f1, 0x28(r1)
+/* 801CCB18 001C8778 D8 41 00 30 */ stfd f2, 0x30(r1)
+/* 801CCB1C 001C877C D8 61 00 38 */ stfd f3, 0x38(r1)
+/* 801CCB20 001C8780 D8 81 00 40 */ stfd f4, 0x40(r1)
+/* 801CCB24 001C8784 D8 A1 00 48 */ stfd f5, 0x48(r1)
+/* 801CCB28 001C8788 D8 C1 00 50 */ stfd f6, 0x50(r1)
+/* 801CCB2C 001C878C D8 E1 00 58 */ stfd f7, 0x58(r1)
+/* 801CCB30 001C8790 D9 01 00 60 */ stfd f8, 0x60(r1)
+lbl_801CCB34:
+/* 801CCB34 001C8794 39 81 00 A8 */ addi r12, r1, 0xa8
+/* 801CCB38 001C8798 38 01 00 08 */ addi r0, r1, 8
+/* 801CCB3C 001C879C 3F A0 02 00 */ lis r29, 0x200
+/* 801CCB40 001C87A0 3B C0 FF FF */ li r30, -1
+/* 801CCB44 001C87A4 3B E0 00 00 */ li r31, 0
+/* 801CCB48 001C87A8 90 A1 00 10 */ stw r5, 0x10(r1)
+/* 801CCB4C 001C87AC 3B 81 00 74 */ addi r28, r1, 0x74
+/* 801CCB50 001C87B0 3D 60 80 1D */ lis r11, __StringWrite@ha
+/* 801CCB54 001C87B4 90 C1 00 14 */ stw r6, 0x14(r1)
+/* 801CCB58 001C87B8 7C 85 23 78 */ mr r5, r4
+/* 801CCB5C 001C87BC 7F 86 E3 78 */ mr r6, r28
+/* 801CCB60 001C87C0 90 81 00 0C */ stw r4, 0xc(r1)
+/* 801CCB64 001C87C4 38 81 00 68 */ addi r4, r1, 0x68
+/* 801CCB68 001C87C8 90 61 00 08 */ stw r3, 8(r1)
+/* 801CCB6C 001C87CC 90 61 00 68 */ stw r3, 0x68(r1)
+/* 801CCB70 001C87D0 38 6B C7 F8 */ addi r3, r11, __StringWrite@l
+/* 801CCB74 001C87D4 90 E1 00 18 */ stw r7, 0x18(r1)
+/* 801CCB78 001C87D8 91 01 00 1C */ stw r8, 0x1c(r1)
+/* 801CCB7C 001C87DC 91 21 00 20 */ stw r9, 0x20(r1)
+/* 801CCB80 001C87E0 91 41 00 24 */ stw r10, 0x24(r1)
+/* 801CCB84 001C87E4 93 A1 00 74 */ stw r29, 0x74(r1)
+/* 801CCB88 001C87E8 91 81 00 78 */ stw r12, 0x78(r1)
+/* 801CCB8C 001C87EC 90 01 00 7C */ stw r0, 0x7c(r1)
+/* 801CCB90 001C87F0 93 C1 00 6C */ stw r30, 0x6c(r1)
+/* 801CCB94 001C87F4 93 E1 00 70 */ stw r31, 0x70(r1)
+/* 801CCB98 001C87F8 4B FF F3 AD */ bl __pformatter
+/* 801CCB9C 001C87FC 2C 1B 00 00 */ cmpwi r27, 0
+/* 801CCBA0 001C8800 41 82 00 18 */ beq lbl_801CCBB8
+/* 801CCBA4 001C8804 7C 03 F0 40 */ cmplw r3, r30
+/* 801CCBA8 001C8808 40 80 00 0C */ bge lbl_801CCBB4
+/* 801CCBAC 001C880C 7F FB 19 AE */ stbx r31, r27, r3
+/* 801CCBB0 001C8810 48 00 00 08 */ b lbl_801CCBB8
+lbl_801CCBB4:
+/* 801CCBB4 001C8814 9B FB FF FE */ stb r31, -2(r27)
+lbl_801CCBB8:
+/* 801CCBB8 001C8818 BB 61 00 8C */ lmw r27, 0x8c(r1)
+/* 801CCBBC 001C881C 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 801CCBC0 001C8820 7C 08 03 A6 */ mtlr r0
+/* 801CCBC4 001C8824 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 801CCBC8 001C8828 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/qsort.s b/asm/MSL_C/MSL_Common/qsort.s
new file mode 100644
index 0000000..1107bbd
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/qsort.s
@@ -0,0 +1,109 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global qsort
+qsort:
+/* 801CCBCC 001C882C 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 801CCBD0 001C8830 7C 08 02 A6 */ mflr r0
+/* 801CCBD4 001C8834 28 04 00 02 */ cmplwi r4, 2
+/* 801CCBD8 001C8838 90 01 00 44 */ stw r0, 0x44(r1)
+/* 801CCBDC 001C883C BE 61 00 0C */ stmw r19, 0xc(r1)
+/* 801CCBE0 001C8840 7C 7B 1B 78 */ mr r27, r3
+/* 801CCBE4 001C8844 7C BC 2B 78 */ mr r28, r5
+/* 801CCBE8 001C8848 7C DD 33 78 */ mr r29, r6
+/* 801CCBEC 001C884C 41 80 01 3C */ blt lbl_801CCD28
+/* 801CCBF0 001C8850 54 87 F8 7E */ srwi r7, r4, 1
+/* 801CCBF4 001C8854 54 A0 08 3C */ slwi r0, r5, 1
+/* 801CCBF8 001C8858 3B E7 00 01 */ addi r31, r7, 1
+/* 801CCBFC 001C885C 38 C4 FF FF */ addi r6, r4, -1
+/* 801CCC00 001C8860 38 FF FF FF */ addi r7, r31, -1
+/* 801CCC04 001C8864 7C 9E 23 78 */ mr r30, r4
+/* 801CCC08 001C8868 7C 85 39 D6 */ mullw r4, r5, r7
+/* 801CCC0C 001C886C 7F 20 28 50 */ subf r25, r0, r5
+/* 801CCC10 001C8870 7C 05 31 D6 */ mullw r0, r5, r6
+/* 801CCC14 001C8874 7E E3 22 14 */ add r23, r3, r4
+/* 801CCC18 001C8878 7F 5F 29 D6 */ mullw r26, r31, r5
+/* 801CCC1C 001C887C 7E C3 02 14 */ add r22, r3, r0
+lbl_801CCC20:
+/* 801CCC20 001C8880 28 1F 00 01 */ cmplwi r31, 1
+/* 801CCC24 001C8884 40 81 00 14 */ ble lbl_801CCC38
+/* 801CCC28 001C8888 7F 5C D0 50 */ subf r26, r28, r26
+/* 801CCC2C 001C888C 7E FC B8 50 */ subf r23, r28, r23
+/* 801CCC30 001C8890 3B FF FF FF */ addi r31, r31, -1
+/* 801CCC34 001C8894 48 00 00 40 */ b lbl_801CCC74
+lbl_801CCC38:
+/* 801CCC38 001C8898 38 76 FF FF */ addi r3, r22, -1
+/* 801CCC3C 001C889C 38 97 FF FF */ addi r4, r23, -1
+/* 801CCC40 001C88A0 38 BC 00 01 */ addi r5, r28, 1
+/* 801CCC44 001C88A4 48 00 00 18 */ b lbl_801CCC5C
+lbl_801CCC48:
+/* 801CCC48 001C88A8 88 C4 00 01 */ lbz r6, 1(r4)
+/* 801CCC4C 001C88AC 88 03 00 01 */ lbz r0, 1(r3)
+/* 801CCC50 001C88B0 7C C6 07 74 */ extsb r6, r6
+/* 801CCC54 001C88B4 9C 04 00 01 */ stbu r0, 1(r4)
+/* 801CCC58 001C88B8 9C C3 00 01 */ stbu r6, 1(r3)
+lbl_801CCC5C:
+/* 801CCC5C 001C88BC 34 A5 FF FF */ addic. r5, r5, -1
+/* 801CCC60 001C88C0 40 82 FF E8 */ bne lbl_801CCC48
+/* 801CCC64 001C88C4 3B DE FF FF */ addi r30, r30, -1
+/* 801CCC68 001C88C8 28 1E 00 01 */ cmplwi r30, 1
+/* 801CCC6C 001C88CC 41 82 00 BC */ beq lbl_801CCD28
+/* 801CCC70 001C88D0 7E DC B0 50 */ subf r22, r28, r22
+lbl_801CCC74:
+/* 801CCC74 001C88D4 7C 1A CA 14 */ add r0, r26, r25
+/* 801CCC78 001C88D8 7F F8 FB 78 */ mr r24, r31
+/* 801CCC7C 001C88DC 7E 9B 02 14 */ add r20, r27, r0
+/* 801CCC80 001C88E0 48 00 00 98 */ b lbl_801CCD18
+lbl_801CCC84:
+/* 801CCC84 001C88E4 57 18 08 3C */ slwi r24, r24, 1
+/* 801CCC88 001C88E8 7E 95 A3 78 */ mr r21, r20
+/* 801CCC8C 001C88EC 38 18 FF FF */ addi r0, r24, -1
+/* 801CCC90 001C88F0 7C 1C 01 D6 */ mullw r0, r28, r0
+/* 801CCC94 001C88F4 7C 18 F0 40 */ cmplw r24, r30
+/* 801CCC98 001C88F8 7E 9B 02 14 */ add r20, r27, r0
+/* 801CCC9C 001C88FC 40 80 00 2C */ bge lbl_801CCCC8
+/* 801CCCA0 001C8900 7E 74 E2 14 */ add r19, r20, r28
+/* 801CCCA4 001C8904 7F AC EB 78 */ mr r12, r29
+/* 801CCCA8 001C8908 7E 83 A3 78 */ mr r3, r20
+/* 801CCCAC 001C890C 7E 64 9B 78 */ mr r4, r19
+/* 801CCCB0 001C8910 7D 89 03 A6 */ mtctr r12
+/* 801CCCB4 001C8914 4E 80 04 21 */ bctrl
+/* 801CCCB8 001C8918 2C 03 00 00 */ cmpwi r3, 0
+/* 801CCCBC 001C891C 40 80 00 0C */ bge lbl_801CCCC8
+/* 801CCCC0 001C8920 7E 74 9B 78 */ mr r20, r19
+/* 801CCCC4 001C8924 3B 18 00 01 */ addi r24, r24, 1
+lbl_801CCCC8:
+/* 801CCCC8 001C8928 7F AC EB 78 */ mr r12, r29
+/* 801CCCCC 001C892C 7E A3 AB 78 */ mr r3, r21
+/* 801CCCD0 001C8930 7E 84 A3 78 */ mr r4, r20
+/* 801CCCD4 001C8934 7D 89 03 A6 */ mtctr r12
+/* 801CCCD8 001C8938 4E 80 04 21 */ bctrl
+/* 801CCCDC 001C893C 2C 03 00 00 */ cmpwi r3, 0
+/* 801CCCE0 001C8940 40 80 FF 40 */ bge lbl_801CCC20
+/* 801CCCE4 001C8944 38 74 FF FF */ addi r3, r20, -1
+/* 801CCCE8 001C8948 38 95 FF FF */ addi r4, r21, -1
+/* 801CCCEC 001C894C 38 BC 00 01 */ addi r5, r28, 1
+/* 801CCCF0 001C8950 48 00 00 20 */ b lbl_801CCD10
+lbl_801CCCF4:
+/* 801CCCF4 001C8954 88 C4 00 01 */ lbz r6, 1(r4)
+/* 801CCCF8 001C8958 88 03 00 01 */ lbz r0, 1(r3)
+/* 801CCCFC 001C895C 7C C6 07 74 */ extsb r6, r6
+/* 801CCD00 001C8960 98 04 00 01 */ stb r0, 1(r4)
+/* 801CCD04 001C8964 38 84 00 01 */ addi r4, r4, 1
+/* 801CCD08 001C8968 98 C3 00 01 */ stb r6, 1(r3)
+/* 801CCD0C 001C896C 38 63 00 01 */ addi r3, r3, 1
+lbl_801CCD10:
+/* 801CCD10 001C8970 34 A5 FF FF */ addic. r5, r5, -1
+/* 801CCD14 001C8974 40 82 FF E0 */ bne lbl_801CCCF4
+lbl_801CCD18:
+/* 801CCD18 001C8978 57 00 08 3C */ slwi r0, r24, 1
+/* 801CCD1C 001C897C 7C 00 F0 40 */ cmplw r0, r30
+/* 801CCD20 001C8980 40 81 FF 64 */ ble lbl_801CCC84
+/* 801CCD24 001C8984 4B FF FE FC */ b lbl_801CCC20
+lbl_801CCD28:
+/* 801CCD28 001C8988 BA 61 00 0C */ lmw r19, 0xc(r1)
+/* 801CCD2C 001C898C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 801CCD30 001C8990 7C 08 03 A6 */ mtlr r0
+/* 801CCD34 001C8994 38 21 00 40 */ addi r1, r1, 0x40
+/* 801CCD38 001C8998 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/rand.s b/asm/MSL_C/MSL_Common/rand.s
new file mode 100644
index 0000000..1f21acb
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/rand.s
@@ -0,0 +1,19 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global rand
+rand:
+/* 801CCD3C 001C899C 3C 60 41 C6 */ lis r3, 0x41C64E6D@ha
+/* 801CCD40 001C89A0 80 8D 83 E8 */ lwz r4, lbl_8063D6A8-_SDA_BASE_(r13)
+/* 801CCD44 001C89A4 38 03 4E 6D */ addi r0, r3, 0x41C64E6D@l
+/* 801CCD48 001C89A8 7C 64 01 D6 */ mullw r3, r4, r0
+/* 801CCD4C 001C89AC 38 03 30 39 */ addi r0, r3, 0x3039
+/* 801CCD50 001C89B0 90 0D 83 E8 */ stw r0, lbl_8063D6A8-_SDA_BASE_(r13)
+/* 801CCD54 001C89B4 54 03 84 7E */ rlwinm r3, r0, 0x10, 0x11, 0x1f
+/* 801CCD58 001C89B8 4E 80 00 20 */ blr
+
+.global srand
+srand:
+/* 801CCD5C 001C89BC 90 6D 83 E8 */ stw r3, lbl_8063D6A8-_SDA_BASE_(r13)
+/* 801CCD60 001C89C0 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/scanf.s b/asm/MSL_C/MSL_Common/scanf.s
new file mode 100644
index 0000000..655314f
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/scanf.s
@@ -0,0 +1,1571 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+parse_format:
+/* 801CCD64 001C89C4 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 801CCD68 001C89C8 3C C0 80 40 */ lis r6, lbl_80400004@ha
+/* 801CCD6C 001C89CC 8C A3 00 01 */ lbzu r5, 1(r3)
+/* 801CCD70 001C89D0 93 E1 00 3C */ stw r31, 0x3c(r1)
+/* 801CCD74 001C89D4 7C A5 07 74 */ extsb r5, r5
+/* 801CCD78 001C89D8 93 C1 00 38 */ stw r30, 0x38(r1)
+/* 801CCD7C 001C89DC 2C 05 00 25 */ cmpwi r5, 0x25
+/* 801CCD80 001C89E0 84 06 CC F0 */ lwzu r0, -0x3310(r6)
+/* 801CCD84 001C89E4 83 C6 00 04 */ lwz r30, lbl_80400004@l(r6)
+/* 801CCD88 001C89E8 83 E6 00 08 */ lwz r31, 8(r6)
+/* 801CCD8C 001C89EC 81 86 00 0C */ lwz r12, 0xc(r6)
+/* 801CCD90 001C89F0 81 66 00 10 */ lwz r11, 0x10(r6)
+/* 801CCD94 001C89F4 81 46 00 14 */ lwz r10, 0x14(r6)
+/* 801CCD98 001C89F8 81 26 00 18 */ lwz r9, 0x18(r6)
+/* 801CCD9C 001C89FC 81 06 00 1C */ lwz r8, 0x1c(r6)
+/* 801CCDA0 001C8A00 80 E6 00 20 */ lwz r7, 0x20(r6)
+/* 801CCDA4 001C8A04 80 C6 00 24 */ lwz r6, 0x24(r6)
+/* 801CCDA8 001C8A08 90 01 00 08 */ stw r0, 8(r1)
+/* 801CCDAC 001C8A0C 93 C1 00 0C */ stw r30, 0xc(r1)
+/* 801CCDB0 001C8A10 93 E1 00 10 */ stw r31, 0x10(r1)
+/* 801CCDB4 001C8A14 91 81 00 14 */ stw r12, 0x14(r1)
+/* 801CCDB8 001C8A18 91 61 00 18 */ stw r11, 0x18(r1)
+/* 801CCDBC 001C8A1C 91 41 00 1C */ stw r10, 0x1c(r1)
+/* 801CCDC0 001C8A20 91 21 00 20 */ stw r9, 0x20(r1)
+/* 801CCDC4 001C8A24 91 01 00 24 */ stw r8, 0x24(r1)
+/* 801CCDC8 001C8A28 90 E1 00 28 */ stw r7, 0x28(r1)
+/* 801CCDCC 001C8A2C 90 C1 00 2C */ stw r6, 0x2c(r1)
+/* 801CCDD0 001C8A30 40 82 00 3C */ bne lbl_801CCE0C
+/* 801CCDD4 001C8A34 98 A1 00 0B */ stb r5, 0xb(r1)
+/* 801CCDD8 001C8A38 38 63 00 01 */ addi r3, r3, 1
+/* 801CCDDC 001C8A3C 80 01 00 08 */ lwz r0, 8(r1)
+/* 801CCDE0 001C8A40 90 04 00 00 */ stw r0, 0(r4)
+/* 801CCDE4 001C8A44 93 C4 00 04 */ stw r30, 4(r4)
+/* 801CCDE8 001C8A48 93 E4 00 08 */ stw r31, 8(r4)
+/* 801CCDEC 001C8A4C 91 84 00 0C */ stw r12, 0xc(r4)
+/* 801CCDF0 001C8A50 91 64 00 10 */ stw r11, 0x10(r4)
+/* 801CCDF4 001C8A54 91 44 00 14 */ stw r10, 0x14(r4)
+/* 801CCDF8 001C8A58 91 24 00 18 */ stw r9, 0x18(r4)
+/* 801CCDFC 001C8A5C 91 04 00 1C */ stw r8, 0x1c(r4)
+/* 801CCE00 001C8A60 90 E4 00 20 */ stw r7, 0x20(r4)
+/* 801CCE04 001C8A64 90 C4 00 24 */ stw r6, 0x24(r4)
+/* 801CCE08 001C8A68 48 00 06 00 */ b lbl_801CD408
+lbl_801CCE0C:
+/* 801CCE0C 001C8A6C 2C 05 00 2A */ cmpwi r5, 0x2a
+/* 801CCE10 001C8A70 40 82 00 14 */ bne lbl_801CCE24
+/* 801CCE14 001C8A74 8C A3 00 01 */ lbzu r5, 1(r3)
+/* 801CCE18 001C8A78 38 00 00 01 */ li r0, 1
+/* 801CCE1C 001C8A7C 98 01 00 08 */ stb r0, 8(r1)
+/* 801CCE20 001C8A80 7C A5 07 74 */ extsb r5, r5
+lbl_801CCE24:
+/* 801CCE24 001C8A84 2C 05 00 00 */ cmpwi r5, 0
+/* 801CCE28 001C8A88 38 00 00 00 */ li r0, 0
+/* 801CCE2C 001C8A8C 41 80 00 0C */ blt lbl_801CCE38
+/* 801CCE30 001C8A90 2C 05 01 00 */ cmpwi r5, 0x100
+/* 801CCE34 001C8A94 41 80 00 08 */ blt lbl_801CCE3C
+lbl_801CCE38:
+/* 801CCE38 001C8A98 38 00 00 01 */ li r0, 1
+lbl_801CCE3C:
+/* 801CCE3C 001C8A9C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CCE40 001C8AA0 41 82 00 0C */ beq lbl_801CCE4C
+/* 801CCE44 001C8AA4 38 00 00 00 */ li r0, 0
+/* 801CCE48 001C8AA8 48 00 00 20 */ b lbl_801CCE68
+lbl_801CCE4C:
+/* 801CCE4C 001C8AAC 3C C0 80 42 */ lis r6, lbl_80422D48@ha
+/* 801CCE50 001C8AB0 54 A0 08 3C */ slwi r0, r5, 1
+/* 801CCE54 001C8AB4 38 C6 2D 48 */ addi r6, r6, lbl_80422D48@l
+/* 801CCE58 001C8AB8 80 C6 00 38 */ lwz r6, 0x38(r6)
+/* 801CCE5C 001C8ABC 80 C6 00 08 */ lwz r6, 8(r6)
+/* 801CCE60 001C8AC0 7C 06 02 2E */ lhzx r0, r6, r0
+/* 801CCE64 001C8AC4 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
+lbl_801CCE68:
+/* 801CCE68 001C8AC8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CCE6C 001C8ACC 41 82 00 E0 */ beq lbl_801CCF4C
+/* 801CCE70 001C8AD0 3C C0 80 42 */ lis r6, lbl_80422D48@ha
+/* 801CCE74 001C8AD4 38 00 00 00 */ li r0, 0
+/* 801CCE78 001C8AD8 38 C6 2D 48 */ addi r6, r6, lbl_80422D48@l
+/* 801CCE7C 001C8ADC 90 01 00 0C */ stw r0, 0xc(r1)
+/* 801CCE80 001C8AE0 80 E6 00 38 */ lwz r7, 0x38(r6)
+lbl_801CCE84:
+/* 801CCE84 001C8AE4 80 C1 00 0C */ lwz r6, 0xc(r1)
+/* 801CCE88 001C8AE8 38 00 00 00 */ li r0, 0
+/* 801CCE8C 001C8AEC 1C C6 00 0A */ mulli r6, r6, 0xa
+/* 801CCE90 001C8AF0 7C C5 32 14 */ add r6, r5, r6
+/* 801CCE94 001C8AF4 8C A3 00 01 */ lbzu r5, 1(r3)
+/* 801CCE98 001C8AF8 38 C6 FF D0 */ addi r6, r6, -48
+/* 801CCE9C 001C8AFC 7C A5 07 75 */ extsb. r5, r5
+/* 801CCEA0 001C8B00 90 C1 00 0C */ stw r6, 0xc(r1)
+/* 801CCEA4 001C8B04 41 80 00 0C */ blt lbl_801CCEB0
+/* 801CCEA8 001C8B08 2C 05 01 00 */ cmpwi r5, 0x100
+/* 801CCEAC 001C8B0C 41 80 00 08 */ blt lbl_801CCEB4
+lbl_801CCEB0:
+/* 801CCEB0 001C8B10 38 00 00 01 */ li r0, 1
+lbl_801CCEB4:
+/* 801CCEB4 001C8B14 2C 00 00 00 */ cmpwi r0, 0
+/* 801CCEB8 001C8B18 41 82 00 0C */ beq lbl_801CCEC4
+/* 801CCEBC 001C8B1C 38 00 00 00 */ li r0, 0
+/* 801CCEC0 001C8B20 48 00 00 14 */ b lbl_801CCED4
+lbl_801CCEC4:
+/* 801CCEC4 001C8B24 80 C7 00 08 */ lwz r6, 8(r7)
+/* 801CCEC8 001C8B28 54 A0 08 3C */ slwi r0, r5, 1
+/* 801CCECC 001C8B2C 7C 06 02 2E */ lhzx r0, r6, r0
+/* 801CCED0 001C8B30 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
+lbl_801CCED4:
+/* 801CCED4 001C8B34 2C 00 00 00 */ cmpwi r0, 0
+/* 801CCED8 001C8B38 40 82 FF AC */ bne lbl_801CCE84
+/* 801CCEDC 001C8B3C 80 C1 00 0C */ lwz r6, 0xc(r1)
+/* 801CCEE0 001C8B40 2C 06 00 00 */ cmpwi r6, 0
+/* 801CCEE4 001C8B44 40 82 00 60 */ bne lbl_801CCF44
+/* 801CCEE8 001C8B48 38 00 00 FF */ li r0, 0xff
+/* 801CCEEC 001C8B4C 38 63 00 01 */ addi r3, r3, 1
+/* 801CCEF0 001C8B50 98 01 00 0B */ stb r0, 0xb(r1)
+/* 801CCEF4 001C8B54 80 01 00 08 */ lwz r0, 8(r1)
+/* 801CCEF8 001C8B58 90 04 00 00 */ stw r0, 0(r4)
+/* 801CCEFC 001C8B5C 90 C4 00 04 */ stw r6, 4(r4)
+/* 801CCF00 001C8B60 80 A1 00 10 */ lwz r5, 0x10(r1)
+/* 801CCF04 001C8B64 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801CCF08 001C8B68 90 A4 00 08 */ stw r5, 8(r4)
+/* 801CCF0C 001C8B6C 90 04 00 0C */ stw r0, 0xc(r4)
+/* 801CCF10 001C8B70 80 A1 00 18 */ lwz r5, 0x18(r1)
+/* 801CCF14 001C8B74 80 01 00 1C */ lwz r0, 0x1c(r1)
+/* 801CCF18 001C8B78 90 A4 00 10 */ stw r5, 0x10(r4)
+/* 801CCF1C 001C8B7C 90 04 00 14 */ stw r0, 0x14(r4)
+/* 801CCF20 001C8B80 80 A1 00 20 */ lwz r5, 0x20(r1)
+/* 801CCF24 001C8B84 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801CCF28 001C8B88 90 A4 00 18 */ stw r5, 0x18(r4)
+/* 801CCF2C 001C8B8C 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 801CCF30 001C8B90 80 A1 00 28 */ lwz r5, 0x28(r1)
+/* 801CCF34 001C8B94 80 01 00 2C */ lwz r0, 0x2c(r1)
+/* 801CCF38 001C8B98 90 A4 00 20 */ stw r5, 0x20(r4)
+/* 801CCF3C 001C8B9C 90 04 00 24 */ stw r0, 0x24(r4)
+/* 801CCF40 001C8BA0 48 00 04 C8 */ b lbl_801CD408
+lbl_801CCF44:
+/* 801CCF44 001C8BA4 38 00 00 01 */ li r0, 1
+/* 801CCF48 001C8BA8 98 01 00 09 */ stb r0, 9(r1)
+lbl_801CCF4C:
+/* 801CCF4C 001C8BAC 2C 05 00 6B */ cmpwi r5, 0x6b
+/* 801CCF50 001C8BB0 38 E0 00 01 */ li r7, 1
+/* 801CCF54 001C8BB4 41 82 00 D8 */ beq lbl_801CD02C
+/* 801CCF58 001C8BB8 40 80 00 28 */ bge lbl_801CCF80
+/* 801CCF5C 001C8BBC 2C 05 00 68 */ cmpwi r5, 0x68
+/* 801CCF60 001C8BC0 41 82 00 44 */ beq lbl_801CCFA4
+/* 801CCF64 001C8BC4 40 80 00 10 */ bge lbl_801CCF74
+/* 801CCF68 001C8BC8 2C 05 00 4C */ cmpwi r5, 0x4c
+/* 801CCF6C 001C8BCC 41 82 00 90 */ beq lbl_801CCFFC
+/* 801CCF70 001C8BD0 48 00 00 BC */ b lbl_801CD02C
+lbl_801CCF74:
+/* 801CCF74 001C8BD4 2C 05 00 6A */ cmpwi r5, 0x6a
+/* 801CCF78 001C8BD8 40 80 00 90 */ bge lbl_801CD008
+/* 801CCF7C 001C8BDC 48 00 00 B0 */ b lbl_801CD02C
+lbl_801CCF80:
+/* 801CCF80 001C8BE0 2C 05 00 74 */ cmpwi r5, 0x74
+/* 801CCF84 001C8BE4 41 82 00 9C */ beq lbl_801CD020
+/* 801CCF88 001C8BE8 40 80 00 10 */ bge lbl_801CCF98
+/* 801CCF8C 001C8BEC 2C 05 00 6D */ cmpwi r5, 0x6d
+/* 801CCF90 001C8BF0 40 80 00 9C */ bge lbl_801CD02C
+/* 801CCF94 001C8BF4 48 00 00 3C */ b lbl_801CCFD0
+lbl_801CCF98:
+/* 801CCF98 001C8BF8 2C 05 00 7A */ cmpwi r5, 0x7a
+/* 801CCF9C 001C8BFC 41 82 00 78 */ beq lbl_801CD014
+/* 801CCFA0 001C8C00 48 00 00 8C */ b lbl_801CD02C
+lbl_801CCFA4:
+/* 801CCFA4 001C8C04 88 03 00 01 */ lbz r0, 1(r3)
+/* 801CCFA8 001C8C08 38 C0 00 02 */ li r6, 2
+/* 801CCFAC 001C8C0C 98 C1 00 0A */ stb r6, 0xa(r1)
+/* 801CCFB0 001C8C10 7C 06 07 74 */ extsb r6, r0
+/* 801CCFB4 001C8C14 2C 06 00 68 */ cmpwi r6, 0x68
+/* 801CCFB8 001C8C18 40 82 00 78 */ bne lbl_801CD030
+/* 801CCFBC 001C8C1C 38 00 00 01 */ li r0, 1
+/* 801CCFC0 001C8C20 7C C5 33 78 */ mr r5, r6
+/* 801CCFC4 001C8C24 98 01 00 0A */ stb r0, 0xa(r1)
+/* 801CCFC8 001C8C28 38 63 00 01 */ addi r3, r3, 1
+/* 801CCFCC 001C8C2C 48 00 00 64 */ b lbl_801CD030
+lbl_801CCFD0:
+/* 801CCFD0 001C8C30 88 03 00 01 */ lbz r0, 1(r3)
+/* 801CCFD4 001C8C34 38 C0 00 03 */ li r6, 3
+/* 801CCFD8 001C8C38 98 C1 00 0A */ stb r6, 0xa(r1)
+/* 801CCFDC 001C8C3C 7C 06 07 74 */ extsb r6, r0
+/* 801CCFE0 001C8C40 2C 06 00 6C */ cmpwi r6, 0x6c
+/* 801CCFE4 001C8C44 40 82 00 4C */ bne lbl_801CD030
+/* 801CCFE8 001C8C48 38 00 00 07 */ li r0, 7
+/* 801CCFEC 001C8C4C 7C C5 33 78 */ mr r5, r6
+/* 801CCFF0 001C8C50 98 01 00 0A */ stb r0, 0xa(r1)
+/* 801CCFF4 001C8C54 38 63 00 01 */ addi r3, r3, 1
+/* 801CCFF8 001C8C58 48 00 00 38 */ b lbl_801CD030
+lbl_801CCFFC:
+/* 801CCFFC 001C8C5C 38 00 00 09 */ li r0, 9
+/* 801CD000 001C8C60 98 01 00 0A */ stb r0, 0xa(r1)
+/* 801CD004 001C8C64 48 00 00 2C */ b lbl_801CD030
+lbl_801CD008:
+/* 801CD008 001C8C68 38 00 00 04 */ li r0, 4
+/* 801CD00C 001C8C6C 98 01 00 0A */ stb r0, 0xa(r1)
+/* 801CD010 001C8C70 48 00 00 20 */ b lbl_801CD030
+lbl_801CD014:
+/* 801CD014 001C8C74 38 00 00 05 */ li r0, 5
+/* 801CD018 001C8C78 98 01 00 0A */ stb r0, 0xa(r1)
+/* 801CD01C 001C8C7C 48 00 00 14 */ b lbl_801CD030
+lbl_801CD020:
+/* 801CD020 001C8C80 38 00 00 06 */ li r0, 6
+/* 801CD024 001C8C84 98 01 00 0A */ stb r0, 0xa(r1)
+/* 801CD028 001C8C88 48 00 00 08 */ b lbl_801CD030
+lbl_801CD02C:
+/* 801CD02C 001C8C8C 38 E0 00 00 */ li r7, 0
+lbl_801CD030:
+/* 801CD030 001C8C90 2C 07 00 00 */ cmpwi r7, 0
+/* 801CD034 001C8C94 41 82 00 0C */ beq lbl_801CD040
+/* 801CD038 001C8C98 8C A3 00 01 */ lbzu r5, 1(r3)
+/* 801CD03C 001C8C9C 7C A5 07 74 */ extsb r5, r5
+lbl_801CD040:
+/* 801CD040 001C8CA0 38 05 FF BF */ addi r0, r5, -65
+/* 801CD044 001C8CA4 98 A1 00 0B */ stb r5, 0xb(r1)
+/* 801CD048 001C8CA8 28 00 00 37 */ cmplwi r0, 0x37
+/* 801CD04C 001C8CAC 41 81 03 60 */ bgt lbl_801CD3AC
+/* 801CD050 001C8CB0 3C A0 80 42 */ lis r5, lbl_80422FE0@ha
+/* 801CD054 001C8CB4 54 00 10 3A */ slwi r0, r0, 2
+/* 801CD058 001C8CB8 38 A5 2F E0 */ addi r5, r5, lbl_80422FE0@l
+/* 801CD05C 001C8CBC 7C A5 00 2E */ lwzx r5, r5, r0
+/* 801CD060 001C8CC0 7C A9 03 A6 */ mtctr r5
+/* 801CD064 001C8CC4 4E 80 04 20 */ bctr
+/* 801CD068 001C8CC8 88 01 00 0A */ lbz r0, 0xa(r1)
+/* 801CD06C 001C8CCC 28 00 00 09 */ cmplwi r0, 9
+/* 801CD070 001C8CD0 40 82 03 44 */ bne lbl_801CD3B4
+/* 801CD074 001C8CD4 38 00 00 FF */ li r0, 0xff
+/* 801CD078 001C8CD8 98 01 00 0B */ stb r0, 0xb(r1)
+/* 801CD07C 001C8CDC 48 00 03 38 */ b lbl_801CD3B4
+/* 801CD080 001C8CE0 88 A1 00 0A */ lbz r5, 0xa(r1)
+/* 801CD084 001C8CE4 28 05 00 01 */ cmplwi r5, 1
+/* 801CD088 001C8CE8 41 82 00 1C */ beq lbl_801CD0A4
+/* 801CD08C 001C8CEC 28 05 00 02 */ cmplwi r5, 2
+/* 801CD090 001C8CF0 41 82 00 14 */ beq lbl_801CD0A4
+/* 801CD094 001C8CF4 38 05 00 FC */ addi r0, r5, 0xfc
+/* 801CD098 001C8CF8 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 801CD09C 001C8CFC 28 00 00 03 */ cmplwi r0, 3
+/* 801CD0A0 001C8D00 41 81 00 10 */ bgt lbl_801CD0B0
+lbl_801CD0A4:
+/* 801CD0A4 001C8D04 38 00 00 FF */ li r0, 0xff
+/* 801CD0A8 001C8D08 98 01 00 0B */ stb r0, 0xb(r1)
+/* 801CD0AC 001C8D0C 48 00 03 08 */ b lbl_801CD3B4
+lbl_801CD0B0:
+/* 801CD0B0 001C8D10 28 05 00 03 */ cmplwi r5, 3
+/* 801CD0B4 001C8D14 40 82 03 00 */ bne lbl_801CD3B4
+/* 801CD0B8 001C8D18 38 00 00 08 */ li r0, 8
+/* 801CD0BC 001C8D1C 98 01 00 0A */ stb r0, 0xa(r1)
+/* 801CD0C0 001C8D20 48 00 02 F4 */ b lbl_801CD3B4
+/* 801CD0C4 001C8D24 38 A0 00 03 */ li r5, 3
+/* 801CD0C8 001C8D28 38 00 00 78 */ li r0, 0x78
+/* 801CD0CC 001C8D2C 98 A1 00 0A */ stb r5, 0xa(r1)
+/* 801CD0D0 001C8D30 98 01 00 0B */ stb r0, 0xb(r1)
+/* 801CD0D4 001C8D34 48 00 02 E0 */ b lbl_801CD3B4
+/* 801CD0D8 001C8D38 88 01 00 0A */ lbz r0, 0xa(r1)
+/* 801CD0DC 001C8D3C 28 00 00 03 */ cmplwi r0, 3
+/* 801CD0E0 001C8D40 40 82 00 10 */ bne lbl_801CD0F0
+/* 801CD0E4 001C8D44 38 00 00 0A */ li r0, 0xa
+/* 801CD0E8 001C8D48 98 01 00 0A */ stb r0, 0xa(r1)
+/* 801CD0EC 001C8D4C 48 00 02 C8 */ b lbl_801CD3B4
+lbl_801CD0F0:
+/* 801CD0F0 001C8D50 2C 00 00 00 */ cmpwi r0, 0
+/* 801CD0F4 001C8D54 41 82 02 C0 */ beq lbl_801CD3B4
+/* 801CD0F8 001C8D58 38 00 00 FF */ li r0, 0xff
+/* 801CD0FC 001C8D5C 98 01 00 0B */ stb r0, 0xb(r1)
+/* 801CD100 001C8D60 48 00 02 B4 */ b lbl_801CD3B4
+/* 801CD104 001C8D64 88 01 00 0A */ lbz r0, 0xa(r1)
+/* 801CD108 001C8D68 28 00 00 03 */ cmplwi r0, 3
+/* 801CD10C 001C8D6C 40 82 00 10 */ bne lbl_801CD11C
+/* 801CD110 001C8D70 38 00 00 0A */ li r0, 0xa
+/* 801CD114 001C8D74 98 01 00 0A */ stb r0, 0xa(r1)
+/* 801CD118 001C8D78 48 00 00 14 */ b lbl_801CD12C
+lbl_801CD11C:
+/* 801CD11C 001C8D7C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CD120 001C8D80 41 82 00 0C */ beq lbl_801CD12C
+/* 801CD124 001C8D84 38 00 00 FF */ li r0, 0xff
+/* 801CD128 001C8D88 98 01 00 0B */ stb r0, 0xb(r1)
+lbl_801CD12C:
+/* 801CD12C 001C8D8C 38 C0 00 FF */ li r6, 0xff
+/* 801CD130 001C8D90 38 A0 00 C1 */ li r5, 0xc1
+/* 801CD134 001C8D94 38 00 00 FE */ li r0, 0xfe
+/* 801CD138 001C8D98 98 C1 00 10 */ stb r6, 0x10(r1)
+/* 801CD13C 001C8D9C 98 C1 00 12 */ stb r6, 0x12(r1)
+/* 801CD140 001C8DA0 98 C1 00 13 */ stb r6, 0x13(r1)
+/* 801CD144 001C8DA4 98 C1 00 15 */ stb r6, 0x15(r1)
+/* 801CD148 001C8DA8 98 C1 00 16 */ stb r6, 0x16(r1)
+/* 801CD14C 001C8DAC 98 C1 00 17 */ stb r6, 0x17(r1)
+/* 801CD150 001C8DB0 98 C1 00 18 */ stb r6, 0x18(r1)
+/* 801CD154 001C8DB4 98 C1 00 19 */ stb r6, 0x19(r1)
+/* 801CD158 001C8DB8 98 C1 00 1A */ stb r6, 0x1a(r1)
+/* 801CD15C 001C8DBC 98 C1 00 1B */ stb r6, 0x1b(r1)
+/* 801CD160 001C8DC0 98 C1 00 1C */ stb r6, 0x1c(r1)
+/* 801CD164 001C8DC4 98 C1 00 1D */ stb r6, 0x1d(r1)
+/* 801CD168 001C8DC8 98 C1 00 1E */ stb r6, 0x1e(r1)
+/* 801CD16C 001C8DCC 98 C1 00 1F */ stb r6, 0x1f(r1)
+/* 801CD170 001C8DD0 98 C1 00 20 */ stb r6, 0x20(r1)
+/* 801CD174 001C8DD4 98 C1 00 21 */ stb r6, 0x21(r1)
+/* 801CD178 001C8DD8 98 C1 00 22 */ stb r6, 0x22(r1)
+/* 801CD17C 001C8DDC 98 C1 00 23 */ stb r6, 0x23(r1)
+/* 801CD180 001C8DE0 98 C1 00 24 */ stb r6, 0x24(r1)
+/* 801CD184 001C8DE4 98 C1 00 25 */ stb r6, 0x25(r1)
+/* 801CD188 001C8DE8 98 C1 00 26 */ stb r6, 0x26(r1)
+/* 801CD18C 001C8DEC 98 C1 00 27 */ stb r6, 0x27(r1)
+/* 801CD190 001C8DF0 98 C1 00 28 */ stb r6, 0x28(r1)
+/* 801CD194 001C8DF4 98 C1 00 29 */ stb r6, 0x29(r1)
+/* 801CD198 001C8DF8 98 C1 00 2A */ stb r6, 0x2a(r1)
+/* 801CD19C 001C8DFC 98 C1 00 2B */ stb r6, 0x2b(r1)
+/* 801CD1A0 001C8E00 98 C1 00 2C */ stb r6, 0x2c(r1)
+/* 801CD1A4 001C8E04 98 C1 00 2D */ stb r6, 0x2d(r1)
+/* 801CD1A8 001C8E08 98 C1 00 2E */ stb r6, 0x2e(r1)
+/* 801CD1AC 001C8E0C 98 C1 00 2F */ stb r6, 0x2f(r1)
+/* 801CD1B0 001C8E10 98 A1 00 11 */ stb r5, 0x11(r1)
+/* 801CD1B4 001C8E14 98 01 00 14 */ stb r0, 0x14(r1)
+/* 801CD1B8 001C8E18 48 00 01 FC */ b lbl_801CD3B4
+/* 801CD1BC 001C8E1C 88 01 00 0A */ lbz r0, 0xa(r1)
+/* 801CD1C0 001C8E20 28 00 00 03 */ cmplwi r0, 3
+/* 801CD1C4 001C8E24 40 82 00 10 */ bne lbl_801CD1D4
+/* 801CD1C8 001C8E28 38 00 00 0A */ li r0, 0xa
+/* 801CD1CC 001C8E2C 98 01 00 0A */ stb r0, 0xa(r1)
+/* 801CD1D0 001C8E30 48 00 00 14 */ b lbl_801CD1E4
+lbl_801CD1D4:
+/* 801CD1D4 001C8E34 2C 00 00 00 */ cmpwi r0, 0
+/* 801CD1D8 001C8E38 41 82 00 0C */ beq lbl_801CD1E4
+/* 801CD1DC 001C8E3C 38 00 00 FF */ li r0, 0xff
+/* 801CD1E0 001C8E40 98 01 00 0B */ stb r0, 0xb(r1)
+lbl_801CD1E4:
+/* 801CD1E4 001C8E44 8D 43 00 01 */ lbzu r10, 1(r3)
+/* 801CD1E8 001C8E48 39 60 00 00 */ li r11, 0
+/* 801CD1EC 001C8E4C 7D 4A 07 74 */ extsb r10, r10
+/* 801CD1F0 001C8E50 2C 0A 00 5E */ cmpwi r10, 0x5e
+/* 801CD1F4 001C8E54 40 82 00 10 */ bne lbl_801CD204
+/* 801CD1F8 001C8E58 8D 43 00 01 */ lbzu r10, 1(r3)
+/* 801CD1FC 001C8E5C 39 60 00 01 */ li r11, 1
+/* 801CD200 001C8E60 7D 4A 07 74 */ extsb r10, r10
+lbl_801CD204:
+/* 801CD204 001C8E64 2C 0A 00 5D */ cmpwi r10, 0x5d
+/* 801CD208 001C8E68 40 82 00 18 */ bne lbl_801CD220
+/* 801CD20C 001C8E6C 88 01 00 1B */ lbz r0, 0x1b(r1)
+/* 801CD210 001C8E70 8D 43 00 01 */ lbzu r10, 1(r3)
+/* 801CD214 001C8E74 60 00 00 20 */ ori r0, r0, 0x20
+/* 801CD218 001C8E78 98 01 00 1B */ stb r0, 0x1b(r1)
+/* 801CD21C 001C8E7C 7D 4A 07 74 */ extsb r10, r10
+lbl_801CD220:
+/* 801CD220 001C8E80 39 01 00 08 */ addi r8, r1, 8
+/* 801CD224 001C8E84 38 A0 00 01 */ li r5, 1
+/* 801CD228 001C8E88 48 00 00 80 */ b lbl_801CD2A8
+lbl_801CD22C:
+/* 801CD22C 001C8E8C 55 46 EE FE */ rlwinm r6, r10, 0x1d, 0x1b, 0x1f
+/* 801CD230 001C8E90 88 03 00 01 */ lbz r0, 1(r3)
+/* 801CD234 001C8E94 7D 28 32 14 */ add r9, r8, r6
+/* 801CD238 001C8E98 55 46 07 7E */ clrlwi r6, r10, 0x1d
+/* 801CD23C 001C8E9C 88 E9 00 08 */ lbz r7, 8(r9)
+/* 801CD240 001C8EA0 7C A6 30 30 */ slw r6, r5, r6
+/* 801CD244 001C8EA4 2C 00 00 2D */ cmpwi r0, 0x2d
+/* 801CD248 001C8EA8 7C E6 33 78 */ or r6, r7, r6
+/* 801CD24C 001C8EAC 98 C9 00 08 */ stb r6, 8(r9)
+/* 801CD250 001C8EB0 40 82 00 50 */ bne lbl_801CD2A0
+/* 801CD254 001C8EB4 89 23 00 02 */ lbz r9, 2(r3)
+/* 801CD258 001C8EB8 7D 29 07 75 */ extsb. r9, r9
+/* 801CD25C 001C8EBC 41 82 00 44 */ beq lbl_801CD2A0
+/* 801CD260 001C8EC0 2C 09 00 5D */ cmpwi r9, 0x5d
+/* 801CD264 001C8EC4 41 82 00 3C */ beq lbl_801CD2A0
+/* 801CD268 001C8EC8 48 00 00 20 */ b lbl_801CD288
+lbl_801CD26C:
+/* 801CD26C 001C8ECC 55 46 EE FE */ rlwinm r6, r10, 0x1d, 0x1b, 0x1f
+/* 801CD270 001C8ED0 55 40 07 7E */ clrlwi r0, r10, 0x1d
+/* 801CD274 001C8ED4 7C E8 32 14 */ add r7, r8, r6
+/* 801CD278 001C8ED8 88 C7 00 08 */ lbz r6, 8(r7)
+/* 801CD27C 001C8EDC 7C A0 00 30 */ slw r0, r5, r0
+/* 801CD280 001C8EE0 7C C0 03 78 */ or r0, r6, r0
+/* 801CD284 001C8EE4 98 07 00 08 */ stb r0, 8(r7)
+lbl_801CD288:
+/* 801CD288 001C8EE8 39 4A 00 01 */ addi r10, r10, 1
+/* 801CD28C 001C8EEC 7C 0A 48 00 */ cmpw r10, r9
+/* 801CD290 001C8EF0 40 81 FF DC */ ble lbl_801CD26C
+/* 801CD294 001C8EF4 8D 43 00 03 */ lbzu r10, 3(r3)
+/* 801CD298 001C8EF8 7D 4A 07 74 */ extsb r10, r10
+/* 801CD29C 001C8EFC 48 00 00 0C */ b lbl_801CD2A8
+lbl_801CD2A0:
+/* 801CD2A0 001C8F00 8D 43 00 01 */ lbzu r10, 1(r3)
+/* 801CD2A4 001C8F04 7D 4A 07 74 */ extsb r10, r10
+lbl_801CD2A8:
+/* 801CD2A8 001C8F08 2C 0A 00 00 */ cmpwi r10, 0
+/* 801CD2AC 001C8F0C 41 82 00 0C */ beq lbl_801CD2B8
+/* 801CD2B0 001C8F10 2C 0A 00 5D */ cmpwi r10, 0x5d
+/* 801CD2B4 001C8F14 40 82 FF 78 */ bne lbl_801CD22C
+lbl_801CD2B8:
+/* 801CD2B8 001C8F18 2C 0A 00 00 */ cmpwi r10, 0
+/* 801CD2BC 001C8F1C 40 82 00 10 */ bne lbl_801CD2CC
+/* 801CD2C0 001C8F20 38 00 00 FF */ li r0, 0xff
+/* 801CD2C4 001C8F24 98 01 00 0B */ stb r0, 0xb(r1)
+/* 801CD2C8 001C8F28 48 00 00 EC */ b lbl_801CD3B4
+lbl_801CD2CC:
+/* 801CD2CC 001C8F2C 2C 0B 00 00 */ cmpwi r11, 0
+/* 801CD2D0 001C8F30 41 82 00 E4 */ beq lbl_801CD3B4
+/* 801CD2D4 001C8F34 38 00 00 02 */ li r0, 2
+/* 801CD2D8 001C8F38 38 A1 00 10 */ addi r5, r1, 0x10
+/* 801CD2DC 001C8F3C 7C 09 03 A6 */ mtctr r0
+lbl_801CD2E0:
+/* 801CD2E0 001C8F40 88 05 00 00 */ lbz r0, 0(r5)
+/* 801CD2E4 001C8F44 7C 00 00 F8 */ nor r0, r0, r0
+/* 801CD2E8 001C8F48 98 05 00 00 */ stb r0, 0(r5)
+/* 801CD2EC 001C8F4C 88 05 00 01 */ lbz r0, 1(r5)
+/* 801CD2F0 001C8F50 7C 00 00 F8 */ nor r0, r0, r0
+/* 801CD2F4 001C8F54 98 05 00 01 */ stb r0, 1(r5)
+/* 801CD2F8 001C8F58 88 05 00 02 */ lbz r0, 2(r5)
+/* 801CD2FC 001C8F5C 7C 00 00 F8 */ nor r0, r0, r0
+/* 801CD300 001C8F60 98 05 00 02 */ stb r0, 2(r5)
+/* 801CD304 001C8F64 88 05 00 03 */ lbz r0, 3(r5)
+/* 801CD308 001C8F68 7C 00 00 F8 */ nor r0, r0, r0
+/* 801CD30C 001C8F6C 98 05 00 03 */ stb r0, 3(r5)
+/* 801CD310 001C8F70 88 05 00 04 */ lbz r0, 4(r5)
+/* 801CD314 001C8F74 7C 00 00 F8 */ nor r0, r0, r0
+/* 801CD318 001C8F78 98 05 00 04 */ stb r0, 4(r5)
+/* 801CD31C 001C8F7C 88 05 00 05 */ lbz r0, 5(r5)
+/* 801CD320 001C8F80 7C 00 00 F8 */ nor r0, r0, r0
+/* 801CD324 001C8F84 98 05 00 05 */ stb r0, 5(r5)
+/* 801CD328 001C8F88 88 05 00 06 */ lbz r0, 6(r5)
+/* 801CD32C 001C8F8C 7C 00 00 F8 */ nor r0, r0, r0
+/* 801CD330 001C8F90 98 05 00 06 */ stb r0, 6(r5)
+/* 801CD334 001C8F94 88 05 00 07 */ lbz r0, 7(r5)
+/* 801CD338 001C8F98 7C 00 00 F8 */ nor r0, r0, r0
+/* 801CD33C 001C8F9C 98 05 00 07 */ stb r0, 7(r5)
+/* 801CD340 001C8FA0 88 05 00 08 */ lbz r0, 8(r5)
+/* 801CD344 001C8FA4 7C 00 00 F8 */ nor r0, r0, r0
+/* 801CD348 001C8FA8 98 05 00 08 */ stb r0, 8(r5)
+/* 801CD34C 001C8FAC 88 05 00 09 */ lbz r0, 9(r5)
+/* 801CD350 001C8FB0 7C 00 00 F8 */ nor r0, r0, r0
+/* 801CD354 001C8FB4 98 05 00 09 */ stb r0, 9(r5)
+/* 801CD358 001C8FB8 88 05 00 0A */ lbz r0, 0xa(r5)
+/* 801CD35C 001C8FBC 7C 00 00 F8 */ nor r0, r0, r0
+/* 801CD360 001C8FC0 98 05 00 0A */ stb r0, 0xa(r5)
+/* 801CD364 001C8FC4 88 05 00 0B */ lbz r0, 0xb(r5)
+/* 801CD368 001C8FC8 7C 00 00 F8 */ nor r0, r0, r0
+/* 801CD36C 001C8FCC 98 05 00 0B */ stb r0, 0xb(r5)
+/* 801CD370 001C8FD0 88 05 00 0C */ lbz r0, 0xc(r5)
+/* 801CD374 001C8FD4 7C 00 00 F8 */ nor r0, r0, r0
+/* 801CD378 001C8FD8 98 05 00 0C */ stb r0, 0xc(r5)
+/* 801CD37C 001C8FDC 88 05 00 0D */ lbz r0, 0xd(r5)
+/* 801CD380 001C8FE0 7C 00 00 F8 */ nor r0, r0, r0
+/* 801CD384 001C8FE4 98 05 00 0D */ stb r0, 0xd(r5)
+/* 801CD388 001C8FE8 88 05 00 0E */ lbz r0, 0xe(r5)
+/* 801CD38C 001C8FEC 7C 00 00 F8 */ nor r0, r0, r0
+/* 801CD390 001C8FF0 98 05 00 0E */ stb r0, 0xe(r5)
+/* 801CD394 001C8FF4 88 05 00 0F */ lbz r0, 0xf(r5)
+/* 801CD398 001C8FF8 7C 00 00 F8 */ nor r0, r0, r0
+/* 801CD39C 001C8FFC 98 05 00 0F */ stb r0, 0xf(r5)
+/* 801CD3A0 001C9000 38 A5 00 10 */ addi r5, r5, 0x10
+/* 801CD3A4 001C9004 42 00 FF 3C */ bdnz lbl_801CD2E0
+/* 801CD3A8 001C9008 48 00 00 0C */ b lbl_801CD3B4
+lbl_801CD3AC:
+/* 801CD3AC 001C900C 38 00 00 FF */ li r0, 0xff
+/* 801CD3B0 001C9010 98 01 00 0B */ stb r0, 0xb(r1)
+lbl_801CD3B4:
+/* 801CD3B4 001C9014 80 A1 00 08 */ lwz r5, 8(r1)
+/* 801CD3B8 001C9018 38 63 00 01 */ addi r3, r3, 1
+/* 801CD3BC 001C901C 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 801CD3C0 001C9020 90 A4 00 00 */ stw r5, 0(r4)
+/* 801CD3C4 001C9024 90 04 00 04 */ stw r0, 4(r4)
+/* 801CD3C8 001C9028 80 A1 00 10 */ lwz r5, 0x10(r1)
+/* 801CD3CC 001C902C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801CD3D0 001C9030 90 A4 00 08 */ stw r5, 8(r4)
+/* 801CD3D4 001C9034 90 04 00 0C */ stw r0, 0xc(r4)
+/* 801CD3D8 001C9038 80 A1 00 18 */ lwz r5, 0x18(r1)
+/* 801CD3DC 001C903C 80 01 00 1C */ lwz r0, 0x1c(r1)
+/* 801CD3E0 001C9040 90 A4 00 10 */ stw r5, 0x10(r4)
+/* 801CD3E4 001C9044 90 04 00 14 */ stw r0, 0x14(r4)
+/* 801CD3E8 001C9048 80 A1 00 20 */ lwz r5, 0x20(r1)
+/* 801CD3EC 001C904C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801CD3F0 001C9050 90 A4 00 18 */ stw r5, 0x18(r4)
+/* 801CD3F4 001C9054 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 801CD3F8 001C9058 80 A1 00 28 */ lwz r5, 0x28(r1)
+/* 801CD3FC 001C905C 80 01 00 2C */ lwz r0, 0x2c(r1)
+/* 801CD400 001C9060 90 A4 00 20 */ stw r5, 0x20(r4)
+/* 801CD404 001C9064 90 04 00 24 */ stw r0, 0x24(r4)
+lbl_801CD408:
+/* 801CD408 001C9068 83 E1 00 3C */ lwz r31, 0x3c(r1)
+/* 801CD40C 001C906C 83 C1 00 38 */ lwz r30, 0x38(r1)
+/* 801CD410 001C9070 38 21 00 40 */ addi r1, r1, 0x40
+/* 801CD414 001C9074 4E 80 00 20 */ blr
+
+.global __sformatter
+__sformatter:
+/* 801CD418 001C9078 94 21 FF 50 */ stwu r1, -0xb0(r1)
+/* 801CD41C 001C907C 7C 08 02 A6 */ mflr r0
+/* 801CD420 001C9080 90 01 00 B4 */ stw r0, 0xb4(r1)
+/* 801CD424 001C9084 39 61 00 B0 */ addi r11, r1, 0xb0
+/* 801CD428 001C9088 4B FF 9C D1 */ bl _savegpr_15
+/* 801CD42C 001C908C 38 00 00 00 */ li r0, 0
+/* 801CD430 001C9090 3D 00 80 42 */ lis r8, lbl_80422D48@ha
+/* 801CD434 001C9094 90 01 00 5C */ stw r0, 0x5c(r1)
+/* 801CD438 001C9098 38 00 00 00 */ li r0, 0
+/* 801CD43C 001C909C 7C 7A 1B 78 */ mr r26, r3
+/* 801CD440 001C90A0 7C 9B 23 78 */ mr r27, r4
+/* 801CD444 001C90A4 90 C1 00 08 */ stw r6, 8(r1)
+/* 801CD448 001C90A8 7C B1 2B 78 */ mr r17, r5
+/* 801CD44C 001C90AC 7C FC 3B 78 */ mr r28, r7
+/* 801CD450 001C90B0 3B 21 00 20 */ addi r25, r1, 0x20
+/* 801CD454 001C90B4 90 01 00 58 */ stw r0, 0x58(r1)
+/* 801CD458 001C90B8 3A E8 2D 48 */ addi r23, r8, lbl_80422D48@l
+/* 801CD45C 001C90BC 3B A0 00 00 */ li r29, 0
+/* 801CD460 001C90C0 3A A0 00 00 */ li r21, 0
+/* 801CD464 001C90C4 3A 80 00 00 */ li r20, 0
+/* 801CD468 001C90C8 3A 60 00 00 */ li r19, 0
+/* 801CD46C 001C90CC 3B 00 00 01 */ li r24, 1
+/* 801CD470 001C90D0 48 00 0C B0 */ b lbl_801CE120
+lbl_801CD474:
+/* 801CD474 001C90D4 2C 16 00 00 */ cmpwi r22, 0
+/* 801CD478 001C90D8 38 00 00 00 */ li r0, 0
+/* 801CD47C 001C90DC 41 80 00 0C */ blt lbl_801CD488
+/* 801CD480 001C90E0 2C 16 01 00 */ cmpwi r22, 0x100
+/* 801CD484 001C90E4 41 80 00 08 */ blt lbl_801CD48C
+lbl_801CD488:
+/* 801CD488 001C90E8 38 00 00 01 */ li r0, 1
+lbl_801CD48C:
+/* 801CD48C 001C90EC 2C 00 00 00 */ cmpwi r0, 0
+/* 801CD490 001C90F0 41 82 00 0C */ beq lbl_801CD49C
+/* 801CD494 001C90F4 38 00 00 00 */ li r0, 0
+/* 801CD498 001C90F8 48 00 00 18 */ b lbl_801CD4B0
+lbl_801CD49C:
+/* 801CD49C 001C90FC 80 77 00 38 */ lwz r3, 0x38(r23)
+/* 801CD4A0 001C9100 56 C0 08 3C */ slwi r0, r22, 1
+/* 801CD4A4 001C9104 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CD4A8 001C9108 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CD4AC 001C910C 54 00 05 EE */ rlwinm r0, r0, 0, 0x17, 0x17
+lbl_801CD4B0:
+/* 801CD4B0 001C9110 2C 00 00 00 */ cmpwi r0, 0
+/* 801CD4B4 001C9114 41 82 00 DC */ beq lbl_801CD590
+/* 801CD4B8 001C9118 80 97 00 38 */ lwz r4, 0x38(r23)
+lbl_801CD4BC:
+/* 801CD4BC 001C911C 8C 71 00 01 */ lbzu r3, 1(r17)
+/* 801CD4C0 001C9120 38 00 00 00 */ li r0, 0
+/* 801CD4C4 001C9124 7C 65 07 75 */ extsb. r5, r3
+/* 801CD4C8 001C9128 41 80 00 0C */ blt lbl_801CD4D4
+/* 801CD4CC 001C912C 2C 05 01 00 */ cmpwi r5, 0x100
+/* 801CD4D0 001C9130 41 80 00 08 */ blt lbl_801CD4D8
+lbl_801CD4D4:
+/* 801CD4D4 001C9134 38 00 00 01 */ li r0, 1
+lbl_801CD4D8:
+/* 801CD4D8 001C9138 2C 00 00 00 */ cmpwi r0, 0
+/* 801CD4DC 001C913C 41 82 00 0C */ beq lbl_801CD4E8
+/* 801CD4E0 001C9140 38 00 00 00 */ li r0, 0
+/* 801CD4E4 001C9144 48 00 00 14 */ b lbl_801CD4F8
+lbl_801CD4E8:
+/* 801CD4E8 001C9148 80 64 00 08 */ lwz r3, 8(r4)
+/* 801CD4EC 001C914C 54 A0 08 3C */ slwi r0, r5, 1
+/* 801CD4F0 001C9150 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CD4F4 001C9154 54 00 05 EE */ rlwinm r0, r0, 0, 0x17, 0x17
+lbl_801CD4F8:
+/* 801CD4F8 001C9158 2C 00 00 00 */ cmpwi r0, 0
+/* 801CD4FC 001C915C 40 82 FF C0 */ bne lbl_801CD4BC
+/* 801CD500 001C9160 2C 1D 00 00 */ cmpwi r29, 0
+/* 801CD504 001C9164 40 82 0C 1C */ bne lbl_801CE120
+/* 801CD508 001C9168 48 00 00 08 */ b lbl_801CD510
+lbl_801CD50C:
+/* 801CD50C 001C916C 3A B5 00 01 */ addi r21, r21, 1
+lbl_801CD510:
+/* 801CD510 001C9170 7F 4C D3 78 */ mr r12, r26
+/* 801CD514 001C9174 7F 63 DB 78 */ mr r3, r27
+/* 801CD518 001C9178 38 80 00 00 */ li r4, 0
+/* 801CD51C 001C917C 38 A0 00 00 */ li r5, 0
+/* 801CD520 001C9180 7D 89 03 A6 */ mtctr r12
+/* 801CD524 001C9184 4E 80 04 21 */ bctrl
+/* 801CD528 001C9188 7C 65 07 75 */ extsb. r5, r3
+/* 801CD52C 001C918C 98 61 00 0C */ stb r3, 0xc(r1)
+/* 801CD530 001C9190 38 00 00 00 */ li r0, 0
+/* 801CD534 001C9194 41 80 00 0C */ blt lbl_801CD540
+/* 801CD538 001C9198 2C 05 01 00 */ cmpwi r5, 0x100
+/* 801CD53C 001C919C 41 80 00 08 */ blt lbl_801CD544
+lbl_801CD540:
+/* 801CD540 001C91A0 38 00 00 01 */ li r0, 1
+lbl_801CD544:
+/* 801CD544 001C91A4 2C 00 00 00 */ cmpwi r0, 0
+/* 801CD548 001C91A8 41 82 00 0C */ beq lbl_801CD554
+/* 801CD54C 001C91AC 38 00 00 00 */ li r0, 0
+/* 801CD550 001C91B0 48 00 00 18 */ b lbl_801CD568
+lbl_801CD554:
+/* 801CD554 001C91B4 80 97 00 38 */ lwz r4, 0x38(r23)
+/* 801CD558 001C91B8 54 A0 08 3C */ slwi r0, r5, 1
+/* 801CD55C 001C91BC 80 84 00 08 */ lwz r4, 8(r4)
+/* 801CD560 001C91C0 7C 04 02 2E */ lhzx r0, r4, r0
+/* 801CD564 001C91C4 54 00 05 EE */ rlwinm r0, r0, 0, 0x17, 0x17
+lbl_801CD568:
+/* 801CD568 001C91C8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CD56C 001C91CC 40 82 FF A0 */ bne lbl_801CD50C
+/* 801CD570 001C91D0 54 64 06 3E */ clrlwi r4, r3, 0x18
+/* 801CD574 001C91D4 7F 4C D3 78 */ mr r12, r26
+/* 801CD578 001C91D8 7F 63 DB 78 */ mr r3, r27
+/* 801CD57C 001C91DC 38 A0 00 01 */ li r5, 1
+/* 801CD580 001C91E0 7C 84 07 74 */ extsb r4, r4
+/* 801CD584 001C91E4 7D 89 03 A6 */ mtctr r12
+/* 801CD588 001C91E8 4E 80 04 21 */ bctrl
+/* 801CD58C 001C91EC 48 00 0B 94 */ b lbl_801CE120
+lbl_801CD590:
+/* 801CD590 001C91F0 2C 16 00 25 */ cmpwi r22, 0x25
+/* 801CD594 001C91F4 41 82 00 74 */ beq lbl_801CD608
+/* 801CD598 001C91F8 2C 1D 00 00 */ cmpwi r29, 0
+/* 801CD59C 001C91FC 40 82 00 6C */ bne lbl_801CD608
+/* 801CD5A0 001C9200 7F 4C D3 78 */ mr r12, r26
+/* 801CD5A4 001C9204 7F 63 DB 78 */ mr r3, r27
+/* 801CD5A8 001C9208 38 80 00 00 */ li r4, 0
+/* 801CD5AC 001C920C 38 A0 00 00 */ li r5, 0
+/* 801CD5B0 001C9210 7D 89 03 A6 */ mtctr r12
+/* 801CD5B4 001C9214 4E 80 04 21 */ bctrl
+/* 801CD5B8 001C9218 7C 64 07 74 */ extsb r4, r3
+/* 801CD5BC 001C921C 56 C0 06 3E */ clrlwi r0, r22, 0x18
+/* 801CD5C0 001C9220 7C 00 20 00 */ cmpw r0, r4
+/* 801CD5C4 001C9224 98 61 00 0C */ stb r3, 0xc(r1)
+/* 801CD5C8 001C9228 41 82 00 34 */ beq lbl_801CD5FC
+/* 801CD5CC 001C922C 54 64 06 3E */ clrlwi r4, r3, 0x18
+/* 801CD5D0 001C9230 7F 4C D3 78 */ mr r12, r26
+/* 801CD5D4 001C9234 7F 63 DB 78 */ mr r3, r27
+/* 801CD5D8 001C9238 38 A0 00 01 */ li r5, 1
+/* 801CD5DC 001C923C 7C 84 07 74 */ extsb r4, r4
+/* 801CD5E0 001C9240 7D 89 03 A6 */ mtctr r12
+/* 801CD5E4 001C9244 4E 80 04 21 */ bctrl
+/* 801CD5E8 001C9248 2C 1C 00 00 */ cmpwi r28, 0
+/* 801CD5EC 001C924C 41 82 0B 40 */ beq lbl_801CE12C
+/* 801CD5F0 001C9250 3B A0 00 01 */ li r29, 1
+/* 801CD5F4 001C9254 3A 31 00 01 */ addi r17, r17, 1
+/* 801CD5F8 001C9258 48 00 0B 28 */ b lbl_801CE120
+lbl_801CD5FC:
+/* 801CD5FC 001C925C 3A B5 00 01 */ addi r21, r21, 1
+/* 801CD600 001C9260 3A 31 00 01 */ addi r17, r17, 1
+/* 801CD604 001C9264 48 00 0B 1C */ b lbl_801CE120
+lbl_801CD608:
+/* 801CD608 001C9268 7E 23 8B 78 */ mr r3, r17
+/* 801CD60C 001C926C 38 81 00 20 */ addi r4, r1, 0x20
+/* 801CD610 001C9270 4B FF F7 55 */ bl parse_format
+/* 801CD614 001C9274 88 01 00 20 */ lbz r0, 0x20(r1)
+/* 801CD618 001C9278 7C 71 1B 78 */ mr r17, r3
+/* 801CD61C 001C927C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CD620 001C9280 40 82 00 24 */ bne lbl_801CD644
+/* 801CD624 001C9284 88 01 00 23 */ lbz r0, 0x23(r1)
+/* 801CD628 001C9288 28 00 00 25 */ cmplwi r0, 0x25
+/* 801CD62C 001C928C 41 82 00 18 */ beq lbl_801CD644
+/* 801CD630 001C9290 80 61 00 08 */ lwz r3, 8(r1)
+/* 801CD634 001C9294 38 80 00 01 */ li r4, 1
+/* 801CD638 001C9298 4B FF 95 49 */ bl __va_arg
+/* 801CD63C 001C929C 82 C3 00 00 */ lwz r22, 0(r3)
+/* 801CD640 001C92A0 48 00 00 08 */ b lbl_801CD648
+lbl_801CD644:
+/* 801CD644 001C92A4 3A C0 00 00 */ li r22, 0
+lbl_801CD648:
+/* 801CD648 001C92A8 88 01 00 23 */ lbz r0, 0x23(r1)
+/* 801CD64C 001C92AC 28 00 00 6E */ cmplwi r0, 0x6e
+/* 801CD650 001C92B0 41 82 00 38 */ beq lbl_801CD688
+/* 801CD654 001C92B4 2C 1D 00 00 */ cmpwi r29, 0
+/* 801CD658 001C92B8 40 82 00 30 */ bne lbl_801CD688
+/* 801CD65C 001C92BC 7F 4C D3 78 */ mr r12, r26
+/* 801CD660 001C92C0 7F 63 DB 78 */ mr r3, r27
+/* 801CD664 001C92C4 38 80 00 00 */ li r4, 0
+/* 801CD668 001C92C8 38 A0 00 02 */ li r5, 2
+/* 801CD66C 001C92CC 7D 89 03 A6 */ mtctr r12
+/* 801CD670 001C92D0 4E 80 04 21 */ bctrl
+/* 801CD674 001C92D4 2C 03 00 00 */ cmpwi r3, 0
+/* 801CD678 001C92D8 41 82 00 10 */ beq lbl_801CD688
+/* 801CD67C 001C92DC 2C 1C 00 00 */ cmpwi r28, 0
+/* 801CD680 001C92E0 41 82 0A AC */ beq lbl_801CE12C
+/* 801CD684 001C92E4 3B A0 00 01 */ li r29, 1
+lbl_801CD688:
+/* 801CD688 001C92E8 88 01 00 23 */ lbz r0, 0x23(r1)
+/* 801CD68C 001C92EC 2C 00 00 64 */ cmpwi r0, 0x64
+/* 801CD690 001C92F0 41 82 00 C4 */ beq lbl_801CD754
+/* 801CD694 001C92F4 40 80 00 60 */ bge lbl_801CD6F4
+/* 801CD698 001C92F8 2C 00 00 58 */ cmpwi r0, 0x58
+/* 801CD69C 001C92FC 41 82 02 7C */ beq lbl_801CD918
+/* 801CD6A0 001C9300 40 80 00 30 */ bge lbl_801CD6D0
+/* 801CD6A4 001C9304 2C 00 00 41 */ cmpwi r0, 0x41
+/* 801CD6A8 001C9308 41 82 03 F8 */ beq lbl_801CDAA0
+/* 801CD6AC 001C930C 40 80 00 10 */ bge lbl_801CD6BC
+/* 801CD6B0 001C9310 2C 00 00 25 */ cmpwi r0, 0x25
+/* 801CD6B4 001C9314 41 82 06 48 */ beq lbl_801CDCFC
+/* 801CD6B8 001C9318 48 00 0A 74 */ b lbl_801CE12C
+lbl_801CD6BC:
+/* 801CD6BC 001C931C 2C 00 00 48 */ cmpwi r0, 0x48
+/* 801CD6C0 001C9320 40 80 0A 6C */ bge lbl_801CE12C
+/* 801CD6C4 001C9324 2C 00 00 45 */ cmpwi r0, 0x45
+/* 801CD6C8 001C9328 40 80 03 D8 */ bge lbl_801CDAA0
+/* 801CD6CC 001C932C 48 00 0A 60 */ b lbl_801CE12C
+lbl_801CD6D0:
+/* 801CD6D0 001C9330 2C 00 00 61 */ cmpwi r0, 0x61
+/* 801CD6D4 001C9334 41 82 03 CC */ beq lbl_801CDAA0
+/* 801CD6D8 001C9338 40 80 00 10 */ bge lbl_801CD6E8
+/* 801CD6DC 001C933C 2C 00 00 5B */ cmpwi r0, 0x5b
+/* 801CD6E0 001C9340 41 82 07 70 */ beq lbl_801CDE50
+/* 801CD6E4 001C9344 48 00 0A 48 */ b lbl_801CE12C
+lbl_801CD6E8:
+/* 801CD6E8 001C9348 2C 00 00 63 */ cmpwi r0, 0x63
+/* 801CD6EC 001C934C 40 80 04 64 */ bge lbl_801CDB50
+/* 801CD6F0 001C9350 48 00 0A 3C */ b lbl_801CE12C
+lbl_801CD6F4:
+/* 801CD6F4 001C9354 2C 00 00 73 */ cmpwi r0, 0x73
+/* 801CD6F8 001C9358 41 82 06 B0 */ beq lbl_801CDDA8
+/* 801CD6FC 001C935C 40 80 00 34 */ bge lbl_801CD730
+/* 801CD700 001C9360 2C 00 00 6E */ cmpwi r0, 0x6e
+/* 801CD704 001C9364 41 82 09 B4 */ beq lbl_801CE0B8
+/* 801CD708 001C9368 40 80 00 1C */ bge lbl_801CD724
+/* 801CD70C 001C936C 2C 00 00 69 */ cmpwi r0, 0x69
+/* 801CD710 001C9370 41 82 00 4C */ beq lbl_801CD75C
+/* 801CD714 001C9374 40 80 0A 18 */ bge lbl_801CE12C
+/* 801CD718 001C9378 2C 00 00 68 */ cmpwi r0, 0x68
+/* 801CD71C 001C937C 40 80 0A 10 */ bge lbl_801CE12C
+/* 801CD720 001C9380 48 00 03 80 */ b lbl_801CDAA0
+lbl_801CD724:
+/* 801CD724 001C9384 2C 00 00 70 */ cmpwi r0, 0x70
+/* 801CD728 001C9388 40 80 0A 04 */ bge lbl_801CE12C
+/* 801CD72C 001C938C 48 00 01 DC */ b lbl_801CD908
+lbl_801CD730:
+/* 801CD730 001C9390 2C 00 00 78 */ cmpwi r0, 0x78
+/* 801CD734 001C9394 41 82 01 E4 */ beq lbl_801CD918
+/* 801CD738 001C9398 40 80 00 10 */ bge lbl_801CD748
+/* 801CD73C 001C939C 2C 00 00 75 */ cmpwi r0, 0x75
+/* 801CD740 001C93A0 41 82 01 D0 */ beq lbl_801CD910
+/* 801CD744 001C93A4 48 00 09 E8 */ b lbl_801CE12C
+lbl_801CD748:
+/* 801CD748 001C93A8 2C 00 00 FF */ cmpwi r0, 0xff
+/* 801CD74C 001C93AC 41 82 09 E0 */ beq lbl_801CE12C
+/* 801CD750 001C93B0 48 00 09 DC */ b lbl_801CE12C
+lbl_801CD754:
+/* 801CD754 001C93B4 38 60 00 0A */ li r3, 0xa
+/* 801CD758 001C93B8 48 00 00 08 */ b lbl_801CD760
+lbl_801CD75C:
+/* 801CD75C 001C93BC 38 60 00 00 */ li r3, 0
+lbl_801CD760:
+/* 801CD760 001C93C0 2C 1D 00 00 */ cmpwi r29, 0
+/* 801CD764 001C93C4 41 82 00 1C */ beq lbl_801CD780
+/* 801CD768 001C93C8 38 00 00 00 */ li r0, 0
+/* 801CD76C 001C93CC 3A 00 00 00 */ li r16, 0
+/* 801CD770 001C93D0 90 01 00 5C */ stw r0, 0x5c(r1)
+/* 801CD774 001C93D4 38 00 00 00 */ li r0, 0
+/* 801CD778 001C93D8 90 01 00 58 */ stw r0, 0x58(r1)
+/* 801CD77C 001C93DC 48 00 00 F8 */ b lbl_801CD874
+lbl_801CD780:
+/* 801CD780 001C93E0 88 01 00 22 */ lbz r0, 0x22(r1)
+/* 801CD784 001C93E4 28 00 00 07 */ cmplwi r0, 7
+/* 801CD788 001C93E8 41 82 00 0C */ beq lbl_801CD794
+/* 801CD78C 001C93EC 28 00 00 04 */ cmplwi r0, 4
+/* 801CD790 001C93F0 40 82 00 2C */ bne lbl_801CD7BC
+lbl_801CD794:
+/* 801CD794 001C93F4 80 81 00 24 */ lwz r4, 0x24(r1)
+/* 801CD798 001C93F8 7F 45 D3 78 */ mr r5, r26
+/* 801CD79C 001C93FC 7F 66 DB 78 */ mr r6, r27
+/* 801CD7A0 001C9400 38 E1 00 18 */ addi r7, r1, 0x18
+/* 801CD7A4 001C9404 39 01 00 14 */ addi r8, r1, 0x14
+/* 801CD7A8 001C9408 39 21 00 10 */ addi r9, r1, 0x10
+/* 801CD7AC 001C940C 48 00 29 09 */ bl __strtoull
+/* 801CD7B0 001C9410 90 81 00 54 */ stw r4, 0x54(r1)
+/* 801CD7B4 001C9414 90 61 00 50 */ stw r3, 0x50(r1)
+/* 801CD7B8 001C9418 48 00 00 24 */ b lbl_801CD7DC
+lbl_801CD7BC:
+/* 801CD7BC 001C941C 80 81 00 24 */ lwz r4, 0x24(r1)
+/* 801CD7C0 001C9420 7F 45 D3 78 */ mr r5, r26
+/* 801CD7C4 001C9424 7F 66 DB 78 */ mr r6, r27
+/* 801CD7C8 001C9428 38 E1 00 18 */ addi r7, r1, 0x18
+/* 801CD7CC 001C942C 39 01 00 14 */ addi r8, r1, 0x14
+/* 801CD7D0 001C9430 39 21 00 10 */ addi r9, r1, 0x10
+/* 801CD7D4 001C9434 48 00 24 B1 */ bl __strtoul
+/* 801CD7D8 001C9438 7C 6F 1B 78 */ mr r15, r3
+lbl_801CD7DC:
+/* 801CD7DC 001C943C 80 61 00 18 */ lwz r3, 0x18(r1)
+/* 801CD7E0 001C9440 2C 03 00 00 */ cmpwi r3, 0
+/* 801CD7E4 001C9444 40 82 00 28 */ bne lbl_801CD80C
+/* 801CD7E8 001C9448 2C 1C 00 00 */ cmpwi r28, 0
+/* 801CD7EC 001C944C 41 82 09 40 */ beq lbl_801CE12C
+/* 801CD7F0 001C9450 38 00 00 00 */ li r0, 0
+/* 801CD7F4 001C9454 3B A0 00 01 */ li r29, 1
+/* 801CD7F8 001C9458 90 01 00 5C */ stw r0, 0x5c(r1)
+/* 801CD7FC 001C945C 38 00 00 00 */ li r0, 0
+/* 801CD800 001C9460 3A 00 00 00 */ li r16, 0
+/* 801CD804 001C9464 90 01 00 58 */ stw r0, 0x58(r1)
+/* 801CD808 001C9468 48 00 00 6C */ b lbl_801CD874
+lbl_801CD80C:
+/* 801CD80C 001C946C 88 01 00 22 */ lbz r0, 0x22(r1)
+/* 801CD810 001C9470 7E B5 1A 14 */ add r21, r21, r3
+/* 801CD814 001C9474 28 00 00 07 */ cmplwi r0, 7
+/* 801CD818 001C9478 41 82 00 0C */ beq lbl_801CD824
+/* 801CD81C 001C947C 28 00 00 04 */ cmplwi r0, 4
+/* 801CD820 001C9480 40 82 00 40 */ bne lbl_801CD860
+lbl_801CD824:
+/* 801CD824 001C9484 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801CD828 001C9488 2C 00 00 00 */ cmpwi r0, 0
+/* 801CD82C 001C948C 41 82 00 20 */ beq lbl_801CD84C
+/* 801CD830 001C9490 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 801CD834 001C9494 20 00 00 00 */ subfic r0, r0, 0
+/* 801CD838 001C9498 90 01 00 5C */ stw r0, 0x5c(r1)
+/* 801CD83C 001C949C 80 01 00 50 */ lwz r0, 0x50(r1)
+/* 801CD840 001C94A0 7C 00 01 90 */ subfze r0, r0
+/* 801CD844 001C94A4 90 01 00 58 */ stw r0, 0x58(r1)
+/* 801CD848 001C94A8 48 00 00 2C */ b lbl_801CD874
+lbl_801CD84C:
+/* 801CD84C 001C94AC 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 801CD850 001C94B0 90 01 00 5C */ stw r0, 0x5c(r1)
+/* 801CD854 001C94B4 80 01 00 50 */ lwz r0, 0x50(r1)
+/* 801CD858 001C94B8 90 01 00 58 */ stw r0, 0x58(r1)
+/* 801CD85C 001C94BC 48 00 00 18 */ b lbl_801CD874
+lbl_801CD860:
+/* 801CD860 001C94C0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801CD864 001C94C4 7D F0 7B 78 */ mr r16, r15
+/* 801CD868 001C94C8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CD86C 001C94CC 41 82 00 08 */ beq lbl_801CD874
+/* 801CD870 001C94D0 7E 0F 00 D0 */ neg r16, r15
+lbl_801CD874:
+/* 801CD874 001C94D4 2C 16 00 00 */ cmpwi r22, 0
+/* 801CD878 001C94D8 41 82 00 88 */ beq lbl_801CD900
+/* 801CD87C 001C94DC 88 01 00 22 */ lbz r0, 0x22(r1)
+/* 801CD880 001C94E0 28 00 00 07 */ cmplwi r0, 7
+/* 801CD884 001C94E4 41 81 00 70 */ bgt lbl_801CD8F4
+/* 801CD888 001C94E8 3C 60 80 42 */ lis r3, lbl_804230E0@ha
+/* 801CD88C 001C94EC 54 00 10 3A */ slwi r0, r0, 2
+/* 801CD890 001C94F0 38 63 30 E0 */ addi r3, r3, lbl_804230E0@l
+/* 801CD894 001C94F4 7C 63 00 2E */ lwzx r3, r3, r0
+/* 801CD898 001C94F8 7C 69 03 A6 */ mtctr r3
+/* 801CD89C 001C94FC 4E 80 04 20 */ bctr
+/* 801CD8A0 001C9500 92 16 00 00 */ stw r16, 0(r22)
+/* 801CD8A4 001C9504 48 00 00 50 */ b lbl_801CD8F4
+/* 801CD8A8 001C9508 9A 16 00 00 */ stb r16, 0(r22)
+/* 801CD8AC 001C950C 48 00 00 48 */ b lbl_801CD8F4
+/* 801CD8B0 001C9510 B2 16 00 00 */ sth r16, 0(r22)
+/* 801CD8B4 001C9514 48 00 00 40 */ b lbl_801CD8F4
+/* 801CD8B8 001C9518 92 16 00 00 */ stw r16, 0(r22)
+/* 801CD8BC 001C951C 48 00 00 38 */ b lbl_801CD8F4
+/* 801CD8C0 001C9520 80 01 00 5C */ lwz r0, 0x5c(r1)
+/* 801CD8C4 001C9524 90 16 00 04 */ stw r0, 4(r22)
+/* 801CD8C8 001C9528 80 01 00 58 */ lwz r0, 0x58(r1)
+/* 801CD8CC 001C952C 90 16 00 00 */ stw r0, 0(r22)
+/* 801CD8D0 001C9530 48 00 00 24 */ b lbl_801CD8F4
+/* 801CD8D4 001C9534 92 16 00 00 */ stw r16, 0(r22)
+/* 801CD8D8 001C9538 48 00 00 1C */ b lbl_801CD8F4
+/* 801CD8DC 001C953C 92 16 00 00 */ stw r16, 0(r22)
+/* 801CD8E0 001C9540 48 00 00 14 */ b lbl_801CD8F4
+/* 801CD8E4 001C9544 80 01 00 5C */ lwz r0, 0x5c(r1)
+/* 801CD8E8 001C9548 90 16 00 04 */ stw r0, 4(r22)
+/* 801CD8EC 001C954C 80 01 00 58 */ lwz r0, 0x58(r1)
+/* 801CD8F0 001C9550 90 16 00 00 */ stw r0, 0(r22)
+lbl_801CD8F4:
+/* 801CD8F4 001C9554 2C 1D 00 00 */ cmpwi r29, 0
+/* 801CD8F8 001C9558 40 82 00 08 */ bne lbl_801CD900
+/* 801CD8FC 001C955C 3A 94 00 01 */ addi r20, r20, 1
+lbl_801CD900:
+/* 801CD900 001C9560 3A 73 00 01 */ addi r19, r19, 1
+/* 801CD904 001C9564 48 00 08 1C */ b lbl_801CE120
+lbl_801CD908:
+/* 801CD908 001C9568 38 60 00 08 */ li r3, 8
+/* 801CD90C 001C956C 48 00 00 10 */ b lbl_801CD91C
+lbl_801CD910:
+/* 801CD910 001C9570 38 60 00 0A */ li r3, 0xa
+/* 801CD914 001C9574 48 00 00 08 */ b lbl_801CD91C
+lbl_801CD918:
+/* 801CD918 001C9578 38 60 00 10 */ li r3, 0x10
+lbl_801CD91C:
+/* 801CD91C 001C957C 2C 1D 00 00 */ cmpwi r29, 0
+/* 801CD920 001C9580 41 82 00 1C */ beq lbl_801CD93C
+/* 801CD924 001C9584 38 00 00 00 */ li r0, 0
+/* 801CD928 001C9588 39 E0 00 00 */ li r15, 0
+/* 801CD92C 001C958C 90 01 00 54 */ stw r0, 0x54(r1)
+/* 801CD930 001C9590 38 00 00 00 */ li r0, 0
+/* 801CD934 001C9594 90 01 00 50 */ stw r0, 0x50(r1)
+/* 801CD938 001C9598 48 00 00 D4 */ b lbl_801CDA0C
+lbl_801CD93C:
+/* 801CD93C 001C959C 88 01 00 22 */ lbz r0, 0x22(r1)
+/* 801CD940 001C95A0 28 00 00 07 */ cmplwi r0, 7
+/* 801CD944 001C95A4 41 82 00 0C */ beq lbl_801CD950
+/* 801CD948 001C95A8 28 00 00 04 */ cmplwi r0, 4
+/* 801CD94C 001C95AC 40 82 00 2C */ bne lbl_801CD978
+lbl_801CD950:
+/* 801CD950 001C95B0 80 81 00 24 */ lwz r4, 0x24(r1)
+/* 801CD954 001C95B4 7F 45 D3 78 */ mr r5, r26
+/* 801CD958 001C95B8 7F 66 DB 78 */ mr r6, r27
+/* 801CD95C 001C95BC 38 E1 00 18 */ addi r7, r1, 0x18
+/* 801CD960 001C95C0 39 01 00 14 */ addi r8, r1, 0x14
+/* 801CD964 001C95C4 39 21 00 10 */ addi r9, r1, 0x10
+/* 801CD968 001C95C8 48 00 27 4D */ bl __strtoull
+/* 801CD96C 001C95CC 90 81 00 54 */ stw r4, 0x54(r1)
+/* 801CD970 001C95D0 90 61 00 50 */ stw r3, 0x50(r1)
+/* 801CD974 001C95D4 48 00 00 24 */ b lbl_801CD998
+lbl_801CD978:
+/* 801CD978 001C95D8 80 81 00 24 */ lwz r4, 0x24(r1)
+/* 801CD97C 001C95DC 7F 45 D3 78 */ mr r5, r26
+/* 801CD980 001C95E0 7F 66 DB 78 */ mr r6, r27
+/* 801CD984 001C95E4 38 E1 00 18 */ addi r7, r1, 0x18
+/* 801CD988 001C95E8 39 01 00 14 */ addi r8, r1, 0x14
+/* 801CD98C 001C95EC 39 21 00 10 */ addi r9, r1, 0x10
+/* 801CD990 001C95F0 48 00 22 F5 */ bl __strtoul
+/* 801CD994 001C95F4 7C 6F 1B 78 */ mr r15, r3
+lbl_801CD998:
+/* 801CD998 001C95F8 80 61 00 18 */ lwz r3, 0x18(r1)
+/* 801CD99C 001C95FC 2C 03 00 00 */ cmpwi r3, 0
+/* 801CD9A0 001C9600 40 82 00 28 */ bne lbl_801CD9C8
+/* 801CD9A4 001C9604 2C 1C 00 00 */ cmpwi r28, 0
+/* 801CD9A8 001C9608 41 82 07 84 */ beq lbl_801CE12C
+/* 801CD9AC 001C960C 38 00 00 00 */ li r0, 0
+/* 801CD9B0 001C9610 3B A0 00 01 */ li r29, 1
+/* 801CD9B4 001C9614 90 01 00 54 */ stw r0, 0x54(r1)
+/* 801CD9B8 001C9618 38 00 00 00 */ li r0, 0
+/* 801CD9BC 001C961C 39 E0 00 00 */ li r15, 0
+/* 801CD9C0 001C9620 90 01 00 50 */ stw r0, 0x50(r1)
+/* 801CD9C4 001C9624 48 00 00 48 */ b lbl_801CDA0C
+lbl_801CD9C8:
+/* 801CD9C8 001C9628 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801CD9CC 001C962C 7E B5 1A 14 */ add r21, r21, r3
+/* 801CD9D0 001C9630 2C 00 00 00 */ cmpwi r0, 0
+/* 801CD9D4 001C9634 41 82 00 38 */ beq lbl_801CDA0C
+/* 801CD9D8 001C9638 88 01 00 22 */ lbz r0, 0x22(r1)
+/* 801CD9DC 001C963C 28 00 00 07 */ cmplwi r0, 7
+/* 801CD9E0 001C9640 40 82 00 1C */ bne lbl_801CD9FC
+/* 801CD9E4 001C9644 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 801CD9E8 001C9648 20 00 00 00 */ subfic r0, r0, 0
+/* 801CD9EC 001C964C 90 01 00 54 */ stw r0, 0x54(r1)
+/* 801CD9F0 001C9650 80 01 00 50 */ lwz r0, 0x50(r1)
+/* 801CD9F4 001C9654 7C 00 01 90 */ subfze r0, r0
+/* 801CD9F8 001C9658 90 01 00 50 */ stw r0, 0x50(r1)
+lbl_801CD9FC:
+/* 801CD9FC 001C965C 88 01 00 22 */ lbz r0, 0x22(r1)
+/* 801CDA00 001C9660 28 00 00 07 */ cmplwi r0, 7
+/* 801CDA04 001C9664 41 82 00 08 */ beq lbl_801CDA0C
+/* 801CDA08 001C9668 7D EF 00 D0 */ neg r15, r15
+lbl_801CDA0C:
+/* 801CDA0C 001C966C 2C 16 00 00 */ cmpwi r22, 0
+/* 801CDA10 001C9670 41 82 00 88 */ beq lbl_801CDA98
+/* 801CDA14 001C9674 88 01 00 22 */ lbz r0, 0x22(r1)
+/* 801CDA18 001C9678 28 00 00 07 */ cmplwi r0, 7
+/* 801CDA1C 001C967C 41 81 00 70 */ bgt lbl_801CDA8C
+/* 801CDA20 001C9680 3C 60 80 42 */ lis r3, lbl_804230C0@ha
+/* 801CDA24 001C9684 54 00 10 3A */ slwi r0, r0, 2
+/* 801CDA28 001C9688 38 63 30 C0 */ addi r3, r3, lbl_804230C0@l
+/* 801CDA2C 001C968C 7C 63 00 2E */ lwzx r3, r3, r0
+/* 801CDA30 001C9690 7C 69 03 A6 */ mtctr r3
+/* 801CDA34 001C9694 4E 80 04 20 */ bctr
+/* 801CDA38 001C9698 91 F6 00 00 */ stw r15, 0(r22)
+/* 801CDA3C 001C969C 48 00 00 50 */ b lbl_801CDA8C
+/* 801CDA40 001C96A0 99 F6 00 00 */ stb r15, 0(r22)
+/* 801CDA44 001C96A4 48 00 00 48 */ b lbl_801CDA8C
+/* 801CDA48 001C96A8 B1 F6 00 00 */ sth r15, 0(r22)
+/* 801CDA4C 001C96AC 48 00 00 40 */ b lbl_801CDA8C
+/* 801CDA50 001C96B0 91 F6 00 00 */ stw r15, 0(r22)
+/* 801CDA54 001C96B4 48 00 00 38 */ b lbl_801CDA8C
+/* 801CDA58 001C96B8 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 801CDA5C 001C96BC 90 16 00 04 */ stw r0, 4(r22)
+/* 801CDA60 001C96C0 80 01 00 50 */ lwz r0, 0x50(r1)
+/* 801CDA64 001C96C4 90 16 00 00 */ stw r0, 0(r22)
+/* 801CDA68 001C96C8 48 00 00 24 */ b lbl_801CDA8C
+/* 801CDA6C 001C96CC 91 F6 00 00 */ stw r15, 0(r22)
+/* 801CDA70 001C96D0 48 00 00 1C */ b lbl_801CDA8C
+/* 801CDA74 001C96D4 91 F6 00 00 */ stw r15, 0(r22)
+/* 801CDA78 001C96D8 48 00 00 14 */ b lbl_801CDA8C
+/* 801CDA7C 001C96DC 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 801CDA80 001C96E0 90 16 00 04 */ stw r0, 4(r22)
+/* 801CDA84 001C96E4 80 01 00 50 */ lwz r0, 0x50(r1)
+/* 801CDA88 001C96E8 90 16 00 00 */ stw r0, 0(r22)
+lbl_801CDA8C:
+/* 801CDA8C 001C96EC 2C 1D 00 00 */ cmpwi r29, 0
+/* 801CDA90 001C96F0 40 82 00 08 */ bne lbl_801CDA98
+/* 801CDA94 001C96F4 3A 94 00 01 */ addi r20, r20, 1
+lbl_801CDA98:
+/* 801CDA98 001C96F8 3A 73 00 01 */ addi r19, r19, 1
+/* 801CDA9C 001C96FC 48 00 06 84 */ b lbl_801CE120
+lbl_801CDAA0:
+/* 801CDAA0 001C9700 2C 1D 00 00 */ cmpwi r29, 0
+/* 801CDAA4 001C9704 41 82 00 10 */ beq lbl_801CDAB4
+/* 801CDAA8 001C9708 3C 60 80 64 */ lis r3, lbl_8063D6B8@ha
+/* 801CDAAC 001C970C C0 23 D6 B8 */ lfs f1, lbl_8063D6B8@l(r3)
+/* 801CDAB0 001C9710 48 00 00 44 */ b lbl_801CDAF4
+lbl_801CDAB4:
+/* 801CDAB4 001C9714 80 61 00 24 */ lwz r3, 0x24(r1)
+/* 801CDAB8 001C9718 7F 44 D3 78 */ mr r4, r26
+/* 801CDABC 001C971C 7F 65 DB 78 */ mr r5, r27
+/* 801CDAC0 001C9720 38 C1 00 18 */ addi r6, r1, 0x18
+/* 801CDAC4 001C9724 38 E1 00 10 */ addi r7, r1, 0x10
+/* 801CDAC8 001C9728 48 00 0D 45 */ bl __strtold
+/* 801CDACC 001C972C 80 01 00 18 */ lwz r0, 0x18(r1)
+/* 801CDAD0 001C9730 2C 00 00 00 */ cmpwi r0, 0
+/* 801CDAD4 001C9734 40 82 00 1C */ bne lbl_801CDAF0
+/* 801CDAD8 001C9738 2C 1C 00 00 */ cmpwi r28, 0
+/* 801CDADC 001C973C 41 82 06 50 */ beq lbl_801CE12C
+/* 801CDAE0 001C9740 3C 60 80 64 */ lis r3, lbl_8063D6B8@ha
+/* 801CDAE4 001C9744 3B A0 00 01 */ li r29, 1
+/* 801CDAE8 001C9748 C0 23 D6 B8 */ lfs f1, lbl_8063D6B8@l(r3)
+/* 801CDAEC 001C974C 48 00 00 08 */ b lbl_801CDAF4
+lbl_801CDAF0:
+/* 801CDAF0 001C9750 7E B5 02 14 */ add r21, r21, r0
+lbl_801CDAF4:
+/* 801CDAF4 001C9754 2C 16 00 00 */ cmpwi r22, 0
+/* 801CDAF8 001C9758 41 82 00 50 */ beq lbl_801CDB48
+/* 801CDAFC 001C975C 88 01 00 22 */ lbz r0, 0x22(r1)
+/* 801CDB00 001C9760 2C 00 00 08 */ cmpwi r0, 8
+/* 801CDB04 001C9764 41 82 00 2C */ beq lbl_801CDB30
+/* 801CDB08 001C9768 40 80 00 10 */ bge lbl_801CDB18
+/* 801CDB0C 001C976C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CDB10 001C9770 41 82 00 14 */ beq lbl_801CDB24
+/* 801CDB14 001C9774 48 00 00 28 */ b lbl_801CDB3C
+lbl_801CDB18:
+/* 801CDB18 001C9778 2C 00 00 0A */ cmpwi r0, 0xa
+/* 801CDB1C 001C977C 40 80 00 20 */ bge lbl_801CDB3C
+/* 801CDB20 001C9780 48 00 00 18 */ b lbl_801CDB38
+lbl_801CDB24:
+/* 801CDB24 001C9784 FC 00 08 18 */ frsp f0, f1
+/* 801CDB28 001C9788 D0 16 00 00 */ stfs f0, 0(r22)
+/* 801CDB2C 001C978C 48 00 00 10 */ b lbl_801CDB3C
+lbl_801CDB30:
+/* 801CDB30 001C9790 D8 36 00 00 */ stfd f1, 0(r22)
+/* 801CDB34 001C9794 48 00 00 08 */ b lbl_801CDB3C
+lbl_801CDB38:
+/* 801CDB38 001C9798 D8 36 00 00 */ stfd f1, 0(r22)
+lbl_801CDB3C:
+/* 801CDB3C 001C979C 2C 1D 00 00 */ cmpwi r29, 0
+/* 801CDB40 001C97A0 40 82 00 08 */ bne lbl_801CDB48
+/* 801CDB44 001C97A4 3A 94 00 01 */ addi r20, r20, 1
+lbl_801CDB48:
+/* 801CDB48 001C97A8 3A 73 00 01 */ addi r19, r19, 1
+/* 801CDB4C 001C97AC 48 00 05 D4 */ b lbl_801CE120
+lbl_801CDB50:
+/* 801CDB50 001C97B0 88 01 00 21 */ lbz r0, 0x21(r1)
+/* 801CDB54 001C97B4 2C 00 00 00 */ cmpwi r0, 0
+/* 801CDB58 001C97B8 40 82 00 08 */ bne lbl_801CDB60
+/* 801CDB5C 001C97BC 93 01 00 24 */ stw r24, 0x24(r1)
+lbl_801CDB60:
+/* 801CDB60 001C97C0 2C 16 00 00 */ cmpwi r22, 0
+/* 801CDB64 001C97C4 41 82 01 2C */ beq lbl_801CDC90
+/* 801CDB68 001C97C8 2C 1C 00 00 */ cmpwi r28, 0
+/* 801CDB6C 001C97CC 41 82 00 18 */ beq lbl_801CDB84
+/* 801CDB70 001C97D0 80 61 00 08 */ lwz r3, 8(r1)
+/* 801CDB74 001C97D4 3B E0 00 01 */ li r31, 1
+/* 801CDB78 001C97D8 38 80 00 01 */ li r4, 1
+/* 801CDB7C 001C97DC 4B FF 90 05 */ bl __va_arg
+/* 801CDB80 001C97E0 83 C3 00 00 */ lwz r30, 0(r3)
+lbl_801CDB84:
+/* 801CDB84 001C97E4 38 00 00 00 */ li r0, 0
+/* 801CDB88 001C97E8 2C 1D 00 00 */ cmpwi r29, 0
+/* 801CDB8C 001C97EC 90 01 00 18 */ stw r0, 0x18(r1)
+/* 801CDB90 001C97F0 41 82 00 18 */ beq lbl_801CDBA8
+/* 801CDB94 001C97F4 2C 1E 00 00 */ cmpwi r30, 0
+/* 801CDB98 001C97F8 41 82 05 88 */ beq lbl_801CE120
+/* 801CDB9C 001C97FC 38 00 00 00 */ li r0, 0
+/* 801CDBA0 001C9800 98 16 00 00 */ stb r0, 0(r22)
+/* 801CDBA4 001C9804 48 00 05 7C */ b lbl_801CE120
+lbl_801CDBA8:
+/* 801CDBA8 001C9808 92 C1 00 4C */ stw r22, 0x4c(r1)
+/* 801CDBAC 001C980C 48 00 00 40 */ b lbl_801CDBEC
+lbl_801CDBB0:
+/* 801CDBB0 001C9810 88 01 00 22 */ lbz r0, 0x22(r1)
+/* 801CDBB4 001C9814 98 61 00 0C */ stb r3, 0xc(r1)
+/* 801CDBB8 001C9818 28 00 00 0A */ cmplwi r0, 0xa
+/* 801CDBBC 001C981C 40 82 00 1C */ bne lbl_801CDBD8
+/* 801CDBC0 001C9820 7E C3 B3 78 */ mr r3, r22
+/* 801CDBC4 001C9824 38 81 00 0C */ addi r4, r1, 0xc
+/* 801CDBC8 001C9828 38 A0 00 01 */ li r5, 1
+/* 801CDBCC 001C982C 4B FF C5 71 */ bl mbtowc
+/* 801CDBD0 001C9830 3A D6 00 01 */ addi r22, r22, 1
+/* 801CDBD4 001C9834 48 00 00 0C */ b lbl_801CDBE0
+lbl_801CDBD8:
+/* 801CDBD8 001C9838 98 76 00 00 */ stb r3, 0(r22)
+/* 801CDBDC 001C983C 3A D6 00 01 */ addi r22, r22, 1
+lbl_801CDBE0:
+/* 801CDBE0 001C9840 80 61 00 18 */ lwz r3, 0x18(r1)
+/* 801CDBE4 001C9844 38 03 00 01 */ addi r0, r3, 1
+/* 801CDBE8 001C9848 90 01 00 18 */ stw r0, 0x18(r1)
+lbl_801CDBEC:
+/* 801CDBEC 001C984C 80 81 00 24 */ lwz r4, 0x24(r1)
+/* 801CDBF0 001C9850 38 64 FF FF */ addi r3, r4, -1
+/* 801CDBF4 001C9854 2C 04 00 00 */ cmpwi r4, 0
+/* 801CDBF8 001C9858 90 61 00 24 */ stw r3, 0x24(r1)
+/* 801CDBFC 001C985C 41 82 00 44 */ beq lbl_801CDC40
+/* 801CDC00 001C9860 2C 1C 00 00 */ cmpwi r28, 0
+/* 801CDC04 001C9864 41 82 00 18 */ beq lbl_801CDC1C
+/* 801CDC08 001C9868 7F C0 02 78 */ xor r0, r30, r0
+/* 801CDC0C 001C986C 7C 00 00 34 */ cntlzw r0, r0
+/* 801CDC10 001C9870 7F C0 00 30 */ slw r0, r30, r0
+/* 801CDC14 001C9874 54 1F 0F FF */ rlwinm. r31, r0, 1, 0x1f, 0x1f
+/* 801CDC18 001C9878 41 82 00 28 */ beq lbl_801CDC40
+lbl_801CDC1C:
+/* 801CDC1C 001C987C 7F 4C D3 78 */ mr r12, r26
+/* 801CDC20 001C9880 7F 63 DB 78 */ mr r3, r27
+/* 801CDC24 001C9884 38 80 00 00 */ li r4, 0
+/* 801CDC28 001C9888 38 A0 00 00 */ li r5, 0
+/* 801CDC2C 001C988C 7D 89 03 A6 */ mtctr r12
+/* 801CDC30 001C9890 4E 80 04 21 */ bctrl
+/* 801CDC34 001C9894 2C 03 FF FF */ cmpwi r3, -1
+/* 801CDC38 001C9898 7C 72 1B 78 */ mr r18, r3
+/* 801CDC3C 001C989C 40 82 FF 74 */ bne lbl_801CDBB0
+lbl_801CDC40:
+/* 801CDC40 001C98A0 80 01 00 18 */ lwz r0, 0x18(r1)
+/* 801CDC44 001C98A4 9A 41 00 0C */ stb r18, 0xc(r1)
+/* 801CDC48 001C98A8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CDC4C 001C98AC 41 82 00 14 */ beq lbl_801CDC60
+/* 801CDC50 001C98B0 2C 1C 00 00 */ cmpwi r28, 0
+/* 801CDC54 001C98B4 41 82 00 30 */ beq lbl_801CDC84
+/* 801CDC58 001C98B8 2C 1F 00 00 */ cmpwi r31, 0
+/* 801CDC5C 001C98BC 40 82 00 28 */ bne lbl_801CDC84
+lbl_801CDC60:
+/* 801CDC60 001C98C0 2C 1C 00 00 */ cmpwi r28, 0
+/* 801CDC64 001C98C4 41 82 04 C8 */ beq lbl_801CE12C
+/* 801CDC68 001C98C8 2C 1E 00 00 */ cmpwi r30, 0
+/* 801CDC6C 001C98CC 3B A0 00 01 */ li r29, 1
+/* 801CDC70 001C98D0 41 82 04 B0 */ beq lbl_801CE120
+/* 801CDC74 001C98D4 80 61 00 4C */ lwz r3, 0x4c(r1)
+/* 801CDC78 001C98D8 38 00 00 00 */ li r0, 0
+/* 801CDC7C 001C98DC 98 03 00 00 */ stb r0, 0(r3)
+/* 801CDC80 001C98E0 48 00 04 A0 */ b lbl_801CE120
+lbl_801CDC84:
+/* 801CDC84 001C98E4 7E B5 02 14 */ add r21, r21, r0
+/* 801CDC88 001C98E8 3A 94 00 01 */ addi r20, r20, 1
+/* 801CDC8C 001C98EC 48 00 00 68 */ b lbl_801CDCF4
+lbl_801CDC90:
+/* 801CDC90 001C98F0 38 00 00 00 */ li r0, 0
+/* 801CDC94 001C98F4 90 01 00 18 */ stw r0, 0x18(r1)
+/* 801CDC98 001C98F8 48 00 00 14 */ b lbl_801CDCAC
+lbl_801CDC9C:
+/* 801CDC9C 001C98FC 80 81 00 18 */ lwz r4, 0x18(r1)
+/* 801CDCA0 001C9900 98 61 00 0C */ stb r3, 0xc(r1)
+/* 801CDCA4 001C9904 38 04 00 01 */ addi r0, r4, 1
+/* 801CDCA8 001C9908 90 01 00 18 */ stw r0, 0x18(r1)
+lbl_801CDCAC:
+/* 801CDCAC 001C990C 80 61 00 24 */ lwz r3, 0x24(r1)
+/* 801CDCB0 001C9910 38 03 FF FF */ addi r0, r3, -1
+/* 801CDCB4 001C9914 2C 03 00 00 */ cmpwi r3, 0
+/* 801CDCB8 001C9918 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801CDCBC 001C991C 41 82 00 28 */ beq lbl_801CDCE4
+/* 801CDCC0 001C9920 7F 4C D3 78 */ mr r12, r26
+/* 801CDCC4 001C9924 7F 63 DB 78 */ mr r3, r27
+/* 801CDCC8 001C9928 38 80 00 00 */ li r4, 0
+/* 801CDCCC 001C992C 38 A0 00 00 */ li r5, 0
+/* 801CDCD0 001C9930 7D 89 03 A6 */ mtctr r12
+/* 801CDCD4 001C9934 4E 80 04 21 */ bctrl
+/* 801CDCD8 001C9938 2C 03 FF FF */ cmpwi r3, -1
+/* 801CDCDC 001C993C 7C 72 1B 78 */ mr r18, r3
+/* 801CDCE0 001C9940 40 82 FF BC */ bne lbl_801CDC9C
+lbl_801CDCE4:
+/* 801CDCE4 001C9944 80 01 00 18 */ lwz r0, 0x18(r1)
+/* 801CDCE8 001C9948 9A 41 00 0C */ stb r18, 0xc(r1)
+/* 801CDCEC 001C994C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CDCF0 001C9950 41 82 04 3C */ beq lbl_801CE12C
+lbl_801CDCF4:
+/* 801CDCF4 001C9954 3A 73 00 01 */ addi r19, r19, 1
+/* 801CDCF8 001C9958 48 00 04 28 */ b lbl_801CE120
+lbl_801CDCFC:
+/* 801CDCFC 001C995C 2C 1D 00 00 */ cmpwi r29, 0
+/* 801CDD00 001C9960 40 82 04 20 */ bne lbl_801CE120
+/* 801CDD04 001C9964 48 00 00 08 */ b lbl_801CDD0C
+lbl_801CDD08:
+/* 801CDD08 001C9968 3A B5 00 01 */ addi r21, r21, 1
+lbl_801CDD0C:
+/* 801CDD0C 001C996C 7F 4C D3 78 */ mr r12, r26
+/* 801CDD10 001C9970 7F 63 DB 78 */ mr r3, r27
+/* 801CDD14 001C9974 38 80 00 00 */ li r4, 0
+/* 801CDD18 001C9978 38 A0 00 00 */ li r5, 0
+/* 801CDD1C 001C997C 7D 89 03 A6 */ mtctr r12
+/* 801CDD20 001C9980 4E 80 04 21 */ bctrl
+/* 801CDD24 001C9984 7C 65 07 75 */ extsb. r5, r3
+/* 801CDD28 001C9988 98 61 00 0C */ stb r3, 0xc(r1)
+/* 801CDD2C 001C998C 38 00 00 00 */ li r0, 0
+/* 801CDD30 001C9990 41 80 00 0C */ blt lbl_801CDD3C
+/* 801CDD34 001C9994 2C 05 01 00 */ cmpwi r5, 0x100
+/* 801CDD38 001C9998 41 80 00 08 */ blt lbl_801CDD40
+lbl_801CDD3C:
+/* 801CDD3C 001C999C 38 00 00 01 */ li r0, 1
+lbl_801CDD40:
+/* 801CDD40 001C99A0 2C 00 00 00 */ cmpwi r0, 0
+/* 801CDD44 001C99A4 41 82 00 0C */ beq lbl_801CDD50
+/* 801CDD48 001C99A8 38 00 00 00 */ li r0, 0
+/* 801CDD4C 001C99AC 48 00 00 18 */ b lbl_801CDD64
+lbl_801CDD50:
+/* 801CDD50 001C99B0 80 97 00 38 */ lwz r4, 0x38(r23)
+/* 801CDD54 001C99B4 54 A0 08 3C */ slwi r0, r5, 1
+/* 801CDD58 001C99B8 80 84 00 08 */ lwz r4, 8(r4)
+/* 801CDD5C 001C99BC 7C 04 02 2E */ lhzx r0, r4, r0
+/* 801CDD60 001C99C0 54 00 05 EE */ rlwinm r0, r0, 0, 0x17, 0x17
+lbl_801CDD64:
+/* 801CDD64 001C99C4 2C 00 00 00 */ cmpwi r0, 0
+/* 801CDD68 001C99C8 40 82 FF A0 */ bne lbl_801CDD08
+/* 801CDD6C 001C99CC 54 60 06 3E */ clrlwi r0, r3, 0x18
+/* 801CDD70 001C99D0 7C 04 07 74 */ extsb r4, r0
+/* 801CDD74 001C99D4 2C 04 00 25 */ cmpwi r4, 0x25
+/* 801CDD78 001C99D8 41 82 00 28 */ beq lbl_801CDDA0
+/* 801CDD7C 001C99DC 7F 4C D3 78 */ mr r12, r26
+/* 801CDD80 001C99E0 7F 63 DB 78 */ mr r3, r27
+/* 801CDD84 001C99E4 38 A0 00 01 */ li r5, 1
+/* 801CDD88 001C99E8 7D 89 03 A6 */ mtctr r12
+/* 801CDD8C 001C99EC 4E 80 04 21 */ bctrl
+/* 801CDD90 001C99F0 2C 1C 00 00 */ cmpwi r28, 0
+/* 801CDD94 001C99F4 41 82 03 98 */ beq lbl_801CE12C
+/* 801CDD98 001C99F8 3B A0 00 01 */ li r29, 1
+/* 801CDD9C 001C99FC 48 00 03 84 */ b lbl_801CE120
+lbl_801CDDA0:
+/* 801CDDA0 001C9A00 3A B5 00 01 */ addi r21, r21, 1
+/* 801CDDA4 001C9A04 48 00 03 7C */ b lbl_801CE120
+lbl_801CDDA8:
+/* 801CDDA8 001C9A08 2C 1D 00 00 */ cmpwi r29, 0
+/* 801CDDAC 001C9A0C 40 82 00 A4 */ bne lbl_801CDE50
+/* 801CDDB0 001C9A10 7F 4C D3 78 */ mr r12, r26
+/* 801CDDB4 001C9A14 7F 63 DB 78 */ mr r3, r27
+/* 801CDDB8 001C9A18 38 80 00 00 */ li r4, 0
+/* 801CDDBC 001C9A1C 38 A0 00 00 */ li r5, 0
+/* 801CDDC0 001C9A20 7D 89 03 A6 */ mtctr r12
+/* 801CDDC4 001C9A24 4E 80 04 21 */ bctrl
+/* 801CDDC8 001C9A28 98 61 00 0C */ stb r3, 0xc(r1)
+/* 801CDDCC 001C9A2C 48 00 00 24 */ b lbl_801CDDF0
+lbl_801CDDD0:
+/* 801CDDD0 001C9A30 7F 4C D3 78 */ mr r12, r26
+/* 801CDDD4 001C9A34 7F 63 DB 78 */ mr r3, r27
+/* 801CDDD8 001C9A38 38 80 00 00 */ li r4, 0
+/* 801CDDDC 001C9A3C 38 A0 00 00 */ li r5, 0
+/* 801CDDE0 001C9A40 7D 89 03 A6 */ mtctr r12
+/* 801CDDE4 001C9A44 3A B5 00 01 */ addi r21, r21, 1
+/* 801CDDE8 001C9A48 4E 80 04 21 */ bctrl
+/* 801CDDEC 001C9A4C 98 61 00 0C */ stb r3, 0xc(r1)
+lbl_801CDDF0:
+/* 801CDDF0 001C9A50 54 65 06 3E */ clrlwi r5, r3, 0x18
+/* 801CDDF4 001C9A54 38 00 00 00 */ li r0, 0
+/* 801CDDF8 001C9A58 7C A4 07 75 */ extsb. r4, r5
+/* 801CDDFC 001C9A5C 41 80 00 0C */ blt lbl_801CDE08
+/* 801CDE00 001C9A60 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CDE04 001C9A64 41 80 00 08 */ blt lbl_801CDE0C
+lbl_801CDE08:
+/* 801CDE08 001C9A68 38 00 00 01 */ li r0, 1
+lbl_801CDE0C:
+/* 801CDE0C 001C9A6C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CDE10 001C9A70 41 82 00 0C */ beq lbl_801CDE1C
+/* 801CDE14 001C9A74 38 00 00 00 */ li r0, 0
+/* 801CDE18 001C9A78 48 00 00 18 */ b lbl_801CDE30
+lbl_801CDE1C:
+/* 801CDE1C 001C9A7C 80 77 00 38 */ lwz r3, 0x38(r23)
+/* 801CDE20 001C9A80 54 80 08 3C */ slwi r0, r4, 1
+/* 801CDE24 001C9A84 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CDE28 001C9A88 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CDE2C 001C9A8C 54 00 05 EE */ rlwinm r0, r0, 0, 0x17, 0x17
+lbl_801CDE30:
+/* 801CDE30 001C9A90 2C 00 00 00 */ cmpwi r0, 0
+/* 801CDE34 001C9A94 40 82 FF 9C */ bne lbl_801CDDD0
+/* 801CDE38 001C9A98 7F 4C D3 78 */ mr r12, r26
+/* 801CDE3C 001C9A9C 7C A4 07 74 */ extsb r4, r5
+/* 801CDE40 001C9AA0 7F 63 DB 78 */ mr r3, r27
+/* 801CDE44 001C9AA4 38 A0 00 01 */ li r5, 1
+/* 801CDE48 001C9AA8 7D 89 03 A6 */ mtctr r12
+/* 801CDE4C 001C9AAC 4E 80 04 21 */ bctrl
+lbl_801CDE50:
+/* 801CDE50 001C9AB0 2C 16 00 00 */ cmpwi r22, 0
+/* 801CDE54 001C9AB4 41 82 01 90 */ beq lbl_801CDFE4
+/* 801CDE58 001C9AB8 2C 1C 00 00 */ cmpwi r28, 0
+/* 801CDE5C 001C9ABC 41 82 00 1C */ beq lbl_801CDE78
+/* 801CDE60 001C9AC0 80 61 00 08 */ lwz r3, 8(r1)
+/* 801CDE64 001C9AC4 3B E0 00 01 */ li r31, 1
+/* 801CDE68 001C9AC8 38 80 00 01 */ li r4, 1
+/* 801CDE6C 001C9ACC 4B FF 8D 15 */ bl __va_arg
+/* 801CDE70 001C9AD0 80 63 00 00 */ lwz r3, 0(r3)
+/* 801CDE74 001C9AD4 3B C3 FF FF */ addi r30, r3, -1
+lbl_801CDE78:
+/* 801CDE78 001C9AD8 38 00 00 00 */ li r0, 0
+/* 801CDE7C 001C9ADC 2C 1D 00 00 */ cmpwi r29, 0
+/* 801CDE80 001C9AE0 90 01 00 18 */ stw r0, 0x18(r1)
+/* 801CDE84 001C9AE4 41 82 00 18 */ beq lbl_801CDE9C
+/* 801CDE88 001C9AE8 2C 1E 00 00 */ cmpwi r30, 0
+/* 801CDE8C 001C9AEC 41 82 02 94 */ beq lbl_801CE120
+/* 801CDE90 001C9AF0 38 00 00 00 */ li r0, 0
+/* 801CDE94 001C9AF4 98 16 00 00 */ stb r0, 0(r22)
+/* 801CDE98 001C9AF8 48 00 02 88 */ b lbl_801CE120
+lbl_801CDE9C:
+/* 801CDE9C 001C9AFC 92 C1 00 48 */ stw r22, 0x48(r1)
+/* 801CDEA0 001C9B00 48 00 00 60 */ b lbl_801CDF00
+lbl_801CDEA4:
+/* 801CDEA4 001C9B04 54 60 EE FE */ rlwinm r0, r3, 0x1d, 0x1b, 0x1f
+/* 801CDEA8 001C9B08 54 65 07 7E */ clrlwi r5, r3, 0x1d
+/* 801CDEAC 001C9B0C 7C 99 02 14 */ add r4, r25, r0
+/* 801CDEB0 001C9B10 98 61 00 0C */ stb r3, 0xc(r1)
+/* 801CDEB4 001C9B14 88 04 00 08 */ lbz r0, 8(r4)
+/* 801CDEB8 001C9B18 7F 04 28 30 */ slw r4, r24, r5
+/* 801CDEBC 001C9B1C 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 801CDEC0 001C9B20 7C 80 00 39 */ and. r0, r4, r0
+/* 801CDEC4 001C9B24 41 82 00 94 */ beq lbl_801CDF58
+/* 801CDEC8 001C9B28 88 01 00 22 */ lbz r0, 0x22(r1)
+/* 801CDECC 001C9B2C 28 00 00 0A */ cmplwi r0, 0xa
+/* 801CDED0 001C9B30 40 82 00 1C */ bne lbl_801CDEEC
+/* 801CDED4 001C9B34 7E C3 B3 78 */ mr r3, r22
+/* 801CDED8 001C9B38 38 81 00 0C */ addi r4, r1, 0xc
+/* 801CDEDC 001C9B3C 38 A0 00 01 */ li r5, 1
+/* 801CDEE0 001C9B40 4B FF C2 5D */ bl mbtowc
+/* 801CDEE4 001C9B44 3A D6 00 02 */ addi r22, r22, 2
+/* 801CDEE8 001C9B48 48 00 00 0C */ b lbl_801CDEF4
+lbl_801CDEEC:
+/* 801CDEEC 001C9B4C 98 76 00 00 */ stb r3, 0(r22)
+/* 801CDEF0 001C9B50 3A D6 00 01 */ addi r22, r22, 1
+lbl_801CDEF4:
+/* 801CDEF4 001C9B54 80 61 00 18 */ lwz r3, 0x18(r1)
+/* 801CDEF8 001C9B58 38 03 00 01 */ addi r0, r3, 1
+/* 801CDEFC 001C9B5C 90 01 00 18 */ stw r0, 0x18(r1)
+lbl_801CDF00:
+/* 801CDF00 001C9B60 80 81 00 24 */ lwz r4, 0x24(r1)
+/* 801CDF04 001C9B64 38 64 FF FF */ addi r3, r4, -1
+/* 801CDF08 001C9B68 2C 04 00 00 */ cmpwi r4, 0
+/* 801CDF0C 001C9B6C 90 61 00 24 */ stw r3, 0x24(r1)
+/* 801CDF10 001C9B70 41 82 00 48 */ beq lbl_801CDF58
+/* 801CDF14 001C9B74 2C 1C 00 00 */ cmpwi r28, 0
+/* 801CDF18 001C9B78 41 82 00 1C */ beq lbl_801CDF34
+/* 801CDF1C 001C9B7C 7C 80 F0 50 */ subf r4, r0, r30
+/* 801CDF20 001C9B80 7F C3 03 38 */ orc r3, r30, r0
+/* 801CDF24 001C9B84 54 80 F8 7E */ srwi r0, r4, 1
+/* 801CDF28 001C9B88 7C 00 18 50 */ subf r0, r0, r3
+/* 801CDF2C 001C9B8C 54 1F 0F FF */ rlwinm. r31, r0, 1, 0x1f, 0x1f
+/* 801CDF30 001C9B90 41 82 00 28 */ beq lbl_801CDF58
+lbl_801CDF34:
+/* 801CDF34 001C9B94 7F 4C D3 78 */ mr r12, r26
+/* 801CDF38 001C9B98 7F 63 DB 78 */ mr r3, r27
+/* 801CDF3C 001C9B9C 38 80 00 00 */ li r4, 0
+/* 801CDF40 001C9BA0 38 A0 00 00 */ li r5, 0
+/* 801CDF44 001C9BA4 7D 89 03 A6 */ mtctr r12
+/* 801CDF48 001C9BA8 4E 80 04 21 */ bctrl
+/* 801CDF4C 001C9BAC 2C 03 FF FF */ cmpwi r3, -1
+/* 801CDF50 001C9BB0 7C 72 1B 78 */ mr r18, r3
+/* 801CDF54 001C9BB4 40 82 FF 50 */ bne lbl_801CDEA4
+lbl_801CDF58:
+/* 801CDF58 001C9BB8 80 61 00 18 */ lwz r3, 0x18(r1)
+/* 801CDF5C 001C9BBC 9A 41 00 0C */ stb r18, 0xc(r1)
+/* 801CDF60 001C9BC0 2C 03 00 00 */ cmpwi r3, 0
+/* 801CDF64 001C9BC4 41 82 00 14 */ beq lbl_801CDF78
+/* 801CDF68 001C9BC8 2C 1C 00 00 */ cmpwi r28, 0
+/* 801CDF6C 001C9BCC 41 82 00 4C */ beq lbl_801CDFB8
+/* 801CDF70 001C9BD0 2C 1F 00 00 */ cmpwi r31, 0
+/* 801CDF74 001C9BD4 40 82 00 44 */ bne lbl_801CDFB8
+lbl_801CDF78:
+/* 801CDF78 001C9BD8 56 44 06 3E */ clrlwi r4, r18, 0x18
+/* 801CDF7C 001C9BDC 7F 4C D3 78 */ mr r12, r26
+/* 801CDF80 001C9BE0 7F 63 DB 78 */ mr r3, r27
+/* 801CDF84 001C9BE4 38 A0 00 01 */ li r5, 1
+/* 801CDF88 001C9BE8 7C 84 07 74 */ extsb r4, r4
+/* 801CDF8C 001C9BEC 7D 89 03 A6 */ mtctr r12
+/* 801CDF90 001C9BF0 4E 80 04 21 */ bctrl
+/* 801CDF94 001C9BF4 2C 1C 00 00 */ cmpwi r28, 0
+/* 801CDF98 001C9BF8 41 82 01 94 */ beq lbl_801CE12C
+/* 801CDF9C 001C9BFC 2C 1E 00 00 */ cmpwi r30, 0
+/* 801CDFA0 001C9C00 3B A0 00 01 */ li r29, 1
+/* 801CDFA4 001C9C04 41 82 01 7C */ beq lbl_801CE120
+/* 801CDFA8 001C9C08 80 61 00 48 */ lwz r3, 0x48(r1)
+/* 801CDFAC 001C9C0C 38 00 00 00 */ li r0, 0
+/* 801CDFB0 001C9C10 98 03 00 00 */ stb r0, 0(r3)
+/* 801CDFB4 001C9C14 48 00 01 6C */ b lbl_801CE120
+lbl_801CDFB8:
+/* 801CDFB8 001C9C18 88 01 00 22 */ lbz r0, 0x22(r1)
+/* 801CDFBC 001C9C1C 7E B5 1A 14 */ add r21, r21, r3
+/* 801CDFC0 001C9C20 28 00 00 0A */ cmplwi r0, 0xa
+/* 801CDFC4 001C9C24 40 82 00 10 */ bne lbl_801CDFD4
+/* 801CDFC8 001C9C28 38 00 00 00 */ li r0, 0
+/* 801CDFCC 001C9C2C B0 16 00 00 */ sth r0, 0(r22)
+/* 801CDFD0 001C9C30 48 00 00 0C */ b lbl_801CDFDC
+lbl_801CDFD4:
+/* 801CDFD4 001C9C34 38 00 00 00 */ li r0, 0
+/* 801CDFD8 001C9C38 98 16 00 00 */ stb r0, 0(r22)
+lbl_801CDFDC:
+/* 801CDFDC 001C9C3C 3A 94 00 01 */ addi r20, r20, 1
+/* 801CDFE0 001C9C40 48 00 00 A8 */ b lbl_801CE088
+lbl_801CDFE4:
+/* 801CDFE4 001C9C44 38 00 00 00 */ li r0, 0
+/* 801CDFE8 001C9C48 90 01 00 18 */ stw r0, 0x18(r1)
+/* 801CDFEC 001C9C4C 48 00 00 30 */ b lbl_801CE01C
+lbl_801CDFF0:
+/* 801CDFF0 001C9C50 54 60 EE FE */ rlwinm r0, r3, 0x1d, 0x1b, 0x1f
+/* 801CDFF4 001C9C54 54 65 07 7E */ clrlwi r5, r3, 0x1d
+/* 801CDFF8 001C9C58 7C 99 02 14 */ add r4, r25, r0
+/* 801CDFFC 001C9C5C 98 61 00 0C */ stb r3, 0xc(r1)
+/* 801CE000 001C9C60 88 04 00 08 */ lbz r0, 8(r4)
+/* 801CE004 001C9C64 7F 03 28 30 */ slw r3, r24, r5
+/* 801CE008 001C9C68 7C 60 00 39 */ and. r0, r3, r0
+/* 801CE00C 001C9C6C 41 82 00 48 */ beq lbl_801CE054
+/* 801CE010 001C9C70 80 61 00 18 */ lwz r3, 0x18(r1)
+/* 801CE014 001C9C74 38 03 00 01 */ addi r0, r3, 1
+/* 801CE018 001C9C78 90 01 00 18 */ stw r0, 0x18(r1)
+lbl_801CE01C:
+/* 801CE01C 001C9C7C 80 61 00 24 */ lwz r3, 0x24(r1)
+/* 801CE020 001C9C80 38 03 FF FF */ addi r0, r3, -1
+/* 801CE024 001C9C84 2C 03 00 00 */ cmpwi r3, 0
+/* 801CE028 001C9C88 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801CE02C 001C9C8C 41 82 00 28 */ beq lbl_801CE054
+/* 801CE030 001C9C90 7F 4C D3 78 */ mr r12, r26
+/* 801CE034 001C9C94 7F 63 DB 78 */ mr r3, r27
+/* 801CE038 001C9C98 38 80 00 00 */ li r4, 0
+/* 801CE03C 001C9C9C 38 A0 00 00 */ li r5, 0
+/* 801CE040 001C9CA0 7D 89 03 A6 */ mtctr r12
+/* 801CE044 001C9CA4 4E 80 04 21 */ bctrl
+/* 801CE048 001C9CA8 2C 03 FF FF */ cmpwi r3, -1
+/* 801CE04C 001C9CAC 7C 72 1B 78 */ mr r18, r3
+/* 801CE050 001C9CB0 40 82 FF A0 */ bne lbl_801CDFF0
+lbl_801CE054:
+/* 801CE054 001C9CB4 80 01 00 18 */ lwz r0, 0x18(r1)
+/* 801CE058 001C9CB8 9A 41 00 0C */ stb r18, 0xc(r1)
+/* 801CE05C 001C9CBC 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE060 001C9CC0 40 82 00 24 */ bne lbl_801CE084
+/* 801CE064 001C9CC4 56 44 06 3E */ clrlwi r4, r18, 0x18
+/* 801CE068 001C9CC8 7F 4C D3 78 */ mr r12, r26
+/* 801CE06C 001C9CCC 7F 63 DB 78 */ mr r3, r27
+/* 801CE070 001C9CD0 38 A0 00 01 */ li r5, 1
+/* 801CE074 001C9CD4 7C 84 07 74 */ extsb r4, r4
+/* 801CE078 001C9CD8 7D 89 03 A6 */ mtctr r12
+/* 801CE07C 001C9CDC 4E 80 04 21 */ bctrl
+/* 801CE080 001C9CE0 48 00 00 A0 */ b lbl_801CE120
+lbl_801CE084:
+/* 801CE084 001C9CE4 7E B5 02 14 */ add r21, r21, r0
+lbl_801CE088:
+/* 801CE088 001C9CE8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801CE08C 001C9CEC 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE090 001C9CF0 41 80 00 20 */ blt lbl_801CE0B0
+/* 801CE094 001C9CF4 88 81 00 0C */ lbz r4, 0xc(r1)
+/* 801CE098 001C9CF8 7F 4C D3 78 */ mr r12, r26
+/* 801CE09C 001C9CFC 7F 63 DB 78 */ mr r3, r27
+/* 801CE0A0 001C9D00 38 A0 00 01 */ li r5, 1
+/* 801CE0A4 001C9D04 7C 84 07 74 */ extsb r4, r4
+/* 801CE0A8 001C9D08 7D 89 03 A6 */ mtctr r12
+/* 801CE0AC 001C9D0C 4E 80 04 21 */ bctrl
+lbl_801CE0B0:
+/* 801CE0B0 001C9D10 3A 73 00 01 */ addi r19, r19, 1
+/* 801CE0B4 001C9D14 48 00 00 6C */ b lbl_801CE120
+lbl_801CE0B8:
+/* 801CE0B8 001C9D18 2C 16 00 00 */ cmpwi r22, 0
+/* 801CE0BC 001C9D1C 41 82 00 64 */ beq lbl_801CE120
+/* 801CE0C0 001C9D20 88 01 00 22 */ lbz r0, 0x22(r1)
+/* 801CE0C4 001C9D24 2C 00 00 03 */ cmpwi r0, 3
+/* 801CE0C8 001C9D28 41 82 00 3C */ beq lbl_801CE104
+/* 801CE0CC 001C9D2C 40 80 00 1C */ bge lbl_801CE0E8
+/* 801CE0D0 001C9D30 2C 00 00 01 */ cmpwi r0, 1
+/* 801CE0D4 001C9D34 41 82 00 38 */ beq lbl_801CE10C
+/* 801CE0D8 001C9D38 40 80 00 24 */ bge lbl_801CE0FC
+/* 801CE0DC 001C9D3C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE0E0 001C9D40 40 80 00 14 */ bge lbl_801CE0F4
+/* 801CE0E4 001C9D44 48 00 00 3C */ b lbl_801CE120
+lbl_801CE0E8:
+/* 801CE0E8 001C9D48 2C 00 00 07 */ cmpwi r0, 7
+/* 801CE0EC 001C9D4C 41 82 00 28 */ beq lbl_801CE114
+/* 801CE0F0 001C9D50 48 00 00 30 */ b lbl_801CE120
+lbl_801CE0F4:
+/* 801CE0F4 001C9D54 92 B6 00 00 */ stw r21, 0(r22)
+/* 801CE0F8 001C9D58 48 00 00 28 */ b lbl_801CE120
+lbl_801CE0FC:
+/* 801CE0FC 001C9D5C B2 B6 00 00 */ sth r21, 0(r22)
+/* 801CE100 001C9D60 48 00 00 20 */ b lbl_801CE120
+lbl_801CE104:
+/* 801CE104 001C9D64 92 B6 00 00 */ stw r21, 0(r22)
+/* 801CE108 001C9D68 48 00 00 18 */ b lbl_801CE120
+lbl_801CE10C:
+/* 801CE10C 001C9D6C 9A B6 00 00 */ stb r21, 0(r22)
+/* 801CE110 001C9D70 48 00 00 10 */ b lbl_801CE120
+lbl_801CE114:
+/* 801CE114 001C9D74 92 B6 00 04 */ stw r21, 4(r22)
+/* 801CE118 001C9D78 7E A0 FE 70 */ srawi r0, r21, 0x1f
+/* 801CE11C 001C9D7C 90 16 00 00 */ stw r0, 0(r22)
+lbl_801CE120:
+/* 801CE120 001C9D80 88 11 00 00 */ lbz r0, 0(r17)
+/* 801CE124 001C9D84 7C 16 07 75 */ extsb. r22, r0
+/* 801CE128 001C9D88 40 82 F3 4C */ bne lbl_801CD474
+lbl_801CE12C:
+/* 801CE12C 001C9D8C 7F 4C D3 78 */ mr r12, r26
+/* 801CE130 001C9D90 7F 63 DB 78 */ mr r3, r27
+/* 801CE134 001C9D94 38 80 00 00 */ li r4, 0
+/* 801CE138 001C9D98 38 A0 00 02 */ li r5, 2
+/* 801CE13C 001C9D9C 7D 89 03 A6 */ mtctr r12
+/* 801CE140 001C9DA0 4E 80 04 21 */ bctrl
+/* 801CE144 001C9DA4 2C 03 00 00 */ cmpwi r3, 0
+/* 801CE148 001C9DA8 41 82 00 14 */ beq lbl_801CE15C
+/* 801CE14C 001C9DAC 2C 13 00 00 */ cmpwi r19, 0
+/* 801CE150 001C9DB0 40 82 00 0C */ bne lbl_801CE15C
+/* 801CE154 001C9DB4 38 60 FF FF */ li r3, -1
+/* 801CE158 001C9DB8 48 00 00 08 */ b lbl_801CE160
+lbl_801CE15C:
+/* 801CE15C 001C9DBC 7E 83 A3 78 */ mr r3, r20
+lbl_801CE160:
+/* 801CE160 001C9DC0 39 61 00 B0 */ addi r11, r1, 0xb0
+/* 801CE164 001C9DC4 4B FF 8F E1 */ bl _restgpr_15
+/* 801CE168 001C9DC8 80 01 00 B4 */ lwz r0, 0xb4(r1)
+/* 801CE16C 001C9DCC 7C 08 03 A6 */ mtlr r0
+/* 801CE170 001C9DD0 38 21 00 B0 */ addi r1, r1, 0xb0
+/* 801CE174 001C9DD4 4E 80 00 20 */ blr
+
+.global __StringRead
+__StringRead:
+/* 801CE178 001C9DD8 2C 05 00 01 */ cmpwi r5, 1
+/* 801CE17C 001C9DDC 41 82 00 50 */ beq lbl_801CE1CC
+/* 801CE180 001C9DE0 40 80 00 10 */ bge lbl_801CE190
+/* 801CE184 001C9DE4 2C 05 00 00 */ cmpwi r5, 0
+/* 801CE188 001C9DE8 40 80 00 14 */ bge lbl_801CE19C
+/* 801CE18C 001C9DEC 48 00 00 74 */ b lbl_801CE200
+lbl_801CE190:
+/* 801CE190 001C9DF0 2C 05 00 03 */ cmpwi r5, 3
+/* 801CE194 001C9DF4 40 80 00 6C */ bge lbl_801CE200
+/* 801CE198 001C9DF8 48 00 00 60 */ b lbl_801CE1F8
+lbl_801CE19C:
+/* 801CE19C 001C9DFC 80 83 00 00 */ lwz r4, 0(r3)
+/* 801CE1A0 001C9E00 88 A4 00 00 */ lbz r5, 0(r4)
+/* 801CE1A4 001C9E04 7C A0 07 75 */ extsb. r0, r5
+/* 801CE1A8 001C9E08 40 82 00 14 */ bne lbl_801CE1BC
+/* 801CE1AC 001C9E0C 38 00 00 01 */ li r0, 1
+/* 801CE1B0 001C9E10 90 03 00 04 */ stw r0, 4(r3)
+/* 801CE1B4 001C9E14 38 60 FF FF */ li r3, -1
+/* 801CE1B8 001C9E18 4E 80 00 20 */ blr
+lbl_801CE1BC:
+/* 801CE1BC 001C9E1C 38 04 00 01 */ addi r0, r4, 1
+/* 801CE1C0 001C9E20 90 03 00 00 */ stw r0, 0(r3)
+/* 801CE1C4 001C9E24 7C A3 2B 78 */ mr r3, r5
+/* 801CE1C8 001C9E28 4E 80 00 20 */ blr
+lbl_801CE1CC:
+/* 801CE1CC 001C9E2C 80 03 00 04 */ lwz r0, 4(r3)
+/* 801CE1D0 001C9E30 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE1D4 001C9E34 40 82 00 14 */ bne lbl_801CE1E8
+/* 801CE1D8 001C9E38 80 A3 00 00 */ lwz r5, 0(r3)
+/* 801CE1DC 001C9E3C 38 05 FF FF */ addi r0, r5, -1
+/* 801CE1E0 001C9E40 90 03 00 00 */ stw r0, 0(r3)
+/* 801CE1E4 001C9E44 48 00 00 0C */ b lbl_801CE1F0
+lbl_801CE1E8:
+/* 801CE1E8 001C9E48 38 00 00 00 */ li r0, 0
+/* 801CE1EC 001C9E4C 90 03 00 04 */ stw r0, 4(r3)
+lbl_801CE1F0:
+/* 801CE1F0 001C9E50 7C 83 23 78 */ mr r3, r4
+/* 801CE1F4 001C9E54 4E 80 00 20 */ blr
+lbl_801CE1F8:
+/* 801CE1F8 001C9E58 80 63 00 04 */ lwz r3, 4(r3)
+/* 801CE1FC 001C9E5C 4E 80 00 20 */ blr
+lbl_801CE200:
+/* 801CE200 001C9E60 38 60 00 00 */ li r3, 0
+/* 801CE204 001C9E64 4E 80 00 20 */ blr
+
+.global sscanf
+sscanf:
+/* 801CE208 001C9E68 94 21 FF 70 */ stwu r1, -0x90(r1)
+/* 801CE20C 001C9E6C 7C 08 02 A6 */ mflr r0
+/* 801CE210 001C9E70 90 01 00 94 */ stw r0, 0x94(r1)
+/* 801CE214 001C9E74 93 E1 00 8C */ stw r31, 0x8c(r1)
+/* 801CE218 001C9E78 40 86 00 24 */ bne cr1, lbl_801CE23C
+/* 801CE21C 001C9E7C D8 21 00 28 */ stfd f1, 0x28(r1)
+/* 801CE220 001C9E80 D8 41 00 30 */ stfd f2, 0x30(r1)
+/* 801CE224 001C9E84 D8 61 00 38 */ stfd f3, 0x38(r1)
+/* 801CE228 001C9E88 D8 81 00 40 */ stfd f4, 0x40(r1)
+/* 801CE22C 001C9E8C D8 A1 00 48 */ stfd f5, 0x48(r1)
+/* 801CE230 001C9E90 D8 C1 00 50 */ stfd f6, 0x50(r1)
+/* 801CE234 001C9E94 D8 E1 00 58 */ stfd f7, 0x58(r1)
+/* 801CE238 001C9E98 D9 01 00 60 */ stfd f8, 0x60(r1)
+lbl_801CE23C:
+/* 801CE23C 001C9E9C 39 61 00 98 */ addi r11, r1, 0x98
+/* 801CE240 001C9EA0 38 01 00 08 */ addi r0, r1, 8
+/* 801CE244 001C9EA4 3D 80 02 00 */ lis r12, 0x200
+/* 801CE248 001C9EA8 2C 03 00 00 */ cmpwi r3, 0
+/* 801CE24C 001C9EAC 90 61 00 08 */ stw r3, 8(r1)
+/* 801CE250 001C9EB0 3B E1 00 70 */ addi r31, r1, 0x70
+/* 801CE254 001C9EB4 90 81 00 0C */ stw r4, 0xc(r1)
+/* 801CE258 001C9EB8 90 A1 00 10 */ stw r5, 0x10(r1)
+/* 801CE25C 001C9EBC 90 C1 00 14 */ stw r6, 0x14(r1)
+/* 801CE260 001C9EC0 90 E1 00 18 */ stw r7, 0x18(r1)
+/* 801CE264 001C9EC4 91 01 00 1C */ stw r8, 0x1c(r1)
+/* 801CE268 001C9EC8 91 21 00 20 */ stw r9, 0x20(r1)
+/* 801CE26C 001C9ECC 91 41 00 24 */ stw r10, 0x24(r1)
+/* 801CE270 001C9ED0 91 81 00 70 */ stw r12, 0x70(r1)
+/* 801CE274 001C9ED4 91 61 00 74 */ stw r11, 0x74(r1)
+/* 801CE278 001C9ED8 90 01 00 78 */ stw r0, 0x78(r1)
+/* 801CE27C 001C9EDC 90 61 00 68 */ stw r3, 0x68(r1)
+/* 801CE280 001C9EE0 41 82 00 10 */ beq lbl_801CE290
+/* 801CE284 001C9EE4 88 03 00 00 */ lbz r0, 0(r3)
+/* 801CE288 001C9EE8 7C 00 07 75 */ extsb. r0, r0
+/* 801CE28C 001C9EEC 40 82 00 0C */ bne lbl_801CE298
+lbl_801CE290:
+/* 801CE290 001C9EF0 38 60 FF FF */ li r3, -1
+/* 801CE294 001C9EF4 48 00 00 28 */ b lbl_801CE2BC
+lbl_801CE298:
+/* 801CE298 001C9EF8 38 00 00 00 */ li r0, 0
+/* 801CE29C 001C9EFC 3C 60 80 1D */ lis r3, __StringRead@ha
+/* 801CE2A0 001C9F00 90 01 00 6C */ stw r0, 0x6c(r1)
+/* 801CE2A4 001C9F04 7C 85 23 78 */ mr r5, r4
+/* 801CE2A8 001C9F08 7F E6 FB 78 */ mr r6, r31
+/* 801CE2AC 001C9F0C 38 63 E1 78 */ addi r3, r3, __StringRead@l
+/* 801CE2B0 001C9F10 38 81 00 68 */ addi r4, r1, 0x68
+/* 801CE2B4 001C9F14 38 E0 00 00 */ li r7, 0
+/* 801CE2B8 001C9F18 4B FF F1 61 */ bl __sformatter
+lbl_801CE2BC:
+/* 801CE2BC 001C9F1C 80 01 00 94 */ lwz r0, 0x94(r1)
+/* 801CE2C0 001C9F20 83 E1 00 8C */ lwz r31, 0x8c(r1)
+/* 801CE2C4 001C9F24 7C 08 03 A6 */ mtlr r0
+/* 801CE2C8 001C9F28 38 21 00 90 */ addi r1, r1, 0x90
+/* 801CE2CC 001C9F2C 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/string.s b/asm/MSL_C/MSL_Common/string.s
new file mode 100644
index 0000000..311ea67
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/string.s
@@ -0,0 +1,424 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global strcpy
+strcpy:
+/* 801CE2D0 001C9F30 54 60 07 BE */ clrlwi r0, r3, 0x1e
+/* 801CE2D4 001C9F34 54 85 07 BE */ clrlwi r5, r4, 0x1e
+/* 801CE2D8 001C9F38 7C 00 28 40 */ cmplw r0, r5
+/* 801CE2DC 001C9F3C 7C 67 1B 78 */ mr r7, r3
+/* 801CE2E0 001C9F40 40 82 00 8C */ bne lbl_801CE36C
+/* 801CE2E4 001C9F44 2C 05 00 00 */ cmpwi r5, 0
+/* 801CE2E8 001C9F48 41 82 00 40 */ beq lbl_801CE328
+/* 801CE2EC 001C9F4C 88 04 00 00 */ lbz r0, 0(r4)
+/* 801CE2F0 001C9F50 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE2F4 001C9F54 98 03 00 00 */ stb r0, 0(r3)
+/* 801CE2F8 001C9F58 4D 82 00 20 */ beqlr
+/* 801CE2FC 001C9F5C 20 05 00 03 */ subfic r0, r5, 3
+/* 801CE300 001C9F60 7C 09 03 A6 */ mtctr r0
+/* 801CE304 001C9F64 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE308 001C9F68 41 82 00 18 */ beq lbl_801CE320
+lbl_801CE30C:
+/* 801CE30C 001C9F6C 8C 04 00 01 */ lbzu r0, 1(r4)
+/* 801CE310 001C9F70 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE314 001C9F74 9C 07 00 01 */ stbu r0, 1(r7)
+/* 801CE318 001C9F78 4D 82 00 20 */ beqlr
+/* 801CE31C 001C9F7C 42 00 FF F0 */ bdnz lbl_801CE30C
+lbl_801CE320:
+/* 801CE320 001C9F80 38 E7 00 01 */ addi r7, r7, 1
+/* 801CE324 001C9F84 38 84 00 01 */ addi r4, r4, 1
+lbl_801CE328:
+/* 801CE328 001C9F88 81 04 00 00 */ lwz r8, 0(r4)
+/* 801CE32C 001C9F8C 3C A0 80 81 */ lis r5, 0x80808080@ha
+/* 801CE330 001C9F90 38 A5 80 80 */ addi r5, r5, 0x80808080@l
+/* 801CE334 001C9F94 3C C8 FE FF */ addis r6, r8, 0xfeff
+/* 801CE338 001C9F98 38 C6 FE FF */ addi r6, r6, -257
+/* 801CE33C 001C9F9C 7C C6 40 78 */ andc r6, r6, r8
+/* 801CE340 001C9FA0 7C C0 28 39 */ and. r0, r6, r5
+/* 801CE344 001C9FA4 40 82 00 28 */ bne lbl_801CE36C
+/* 801CE348 001C9FA8 38 E7 FF FC */ addi r7, r7, -4
+lbl_801CE34C:
+/* 801CE34C 001C9FAC 95 07 00 04 */ stwu r8, 4(r7)
+/* 801CE350 001C9FB0 85 04 00 04 */ lwzu r8, 4(r4)
+/* 801CE354 001C9FB4 3C C8 FE FF */ addis r6, r8, 0xfeff
+/* 801CE358 001C9FB8 38 C6 FE FF */ addi r6, r6, -257
+/* 801CE35C 001C9FBC 7C C6 40 78 */ andc r6, r6, r8
+/* 801CE360 001C9FC0 7C C0 28 39 */ and. r0, r6, r5
+/* 801CE364 001C9FC4 41 82 FF E8 */ beq lbl_801CE34C
+/* 801CE368 001C9FC8 38 E7 00 04 */ addi r7, r7, 4
+lbl_801CE36C:
+/* 801CE36C 001C9FCC 88 04 00 00 */ lbz r0, 0(r4)
+/* 801CE370 001C9FD0 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE374 001C9FD4 98 07 00 00 */ stb r0, 0(r7)
+/* 801CE378 001C9FD8 4D 82 00 20 */ beqlr
+lbl_801CE37C:
+/* 801CE37C 001C9FDC 8C 04 00 01 */ lbzu r0, 1(r4)
+/* 801CE380 001C9FE0 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE384 001C9FE4 9C 07 00 01 */ stbu r0, 1(r7)
+/* 801CE388 001C9FE8 40 82 FF F4 */ bne lbl_801CE37C
+/* 801CE38C 001C9FEC 4E 80 00 20 */ blr
+
+.global strncpy
+strncpy:
+/* 801CE390 001C9FF0 38 84 FF FF */ addi r4, r4, -1
+/* 801CE394 001C9FF4 38 C3 FF FF */ addi r6, r3, -1
+/* 801CE398 001C9FF8 38 A5 00 01 */ addi r5, r5, 1
+/* 801CE39C 001C9FFC 48 00 00 2C */ b lbl_801CE3C8
+lbl_801CE3A0:
+/* 801CE3A0 001CA000 8C 04 00 01 */ lbzu r0, 1(r4)
+/* 801CE3A4 001CA004 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE3A8 001CA008 9C 06 00 01 */ stbu r0, 1(r6)
+/* 801CE3AC 001CA00C 40 82 00 1C */ bne lbl_801CE3C8
+/* 801CE3B0 001CA010 38 00 00 00 */ li r0, 0
+/* 801CE3B4 001CA014 48 00 00 08 */ b lbl_801CE3BC
+lbl_801CE3B8:
+/* 801CE3B8 001CA018 9C 06 00 01 */ stbu r0, 1(r6)
+lbl_801CE3BC:
+/* 801CE3BC 001CA01C 34 A5 FF FF */ addic. r5, r5, -1
+/* 801CE3C0 001CA020 40 82 FF F8 */ bne lbl_801CE3B8
+/* 801CE3C4 001CA024 4E 80 00 20 */ blr
+lbl_801CE3C8:
+/* 801CE3C8 001CA028 34 A5 FF FF */ addic. r5, r5, -1
+/* 801CE3CC 001CA02C 40 82 FF D4 */ bne lbl_801CE3A0
+/* 801CE3D0 001CA030 4E 80 00 20 */ blr
+
+.global strcat
+strcat:
+/* 801CE3D4 001CA034 38 84 FF FF */ addi r4, r4, -1
+/* 801CE3D8 001CA038 38 A3 FF FF */ addi r5, r3, -1
+lbl_801CE3DC:
+/* 801CE3DC 001CA03C 8C 05 00 01 */ lbzu r0, 1(r5)
+/* 801CE3E0 001CA040 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE3E4 001CA044 40 82 FF F8 */ bne lbl_801CE3DC
+/* 801CE3E8 001CA048 38 A5 FF FF */ addi r5, r5, -1
+lbl_801CE3EC:
+/* 801CE3EC 001CA04C 8C 04 00 01 */ lbzu r0, 1(r4)
+/* 801CE3F0 001CA050 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE3F4 001CA054 9C 05 00 01 */ stbu r0, 1(r5)
+/* 801CE3F8 001CA058 40 82 FF F4 */ bne lbl_801CE3EC
+/* 801CE3FC 001CA05C 4E 80 00 20 */ blr
+
+.global strncat
+strncat:
+/* 801CE400 001CA060 38 84 FF FF */ addi r4, r4, -1
+/* 801CE404 001CA064 38 C3 FF FF */ addi r6, r3, -1
+lbl_801CE408:
+/* 801CE408 001CA068 8C 06 00 01 */ lbzu r0, 1(r6)
+/* 801CE40C 001CA06C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE410 001CA070 40 82 FF F8 */ bne lbl_801CE408
+/* 801CE414 001CA074 38 C6 FF FF */ addi r6, r6, -1
+/* 801CE418 001CA078 38 A5 00 01 */ addi r5, r5, 1
+/* 801CE41C 001CA07C 48 00 00 1C */ b lbl_801CE438
+lbl_801CE420:
+/* 801CE420 001CA080 8C 04 00 01 */ lbzu r0, 1(r4)
+/* 801CE424 001CA084 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE428 001CA088 9C 06 00 01 */ stbu r0, 1(r6)
+/* 801CE42C 001CA08C 40 82 00 0C */ bne lbl_801CE438
+/* 801CE430 001CA090 38 C6 FF FF */ addi r6, r6, -1
+/* 801CE434 001CA094 48 00 00 0C */ b lbl_801CE440
+lbl_801CE438:
+/* 801CE438 001CA098 34 A5 FF FF */ addic. r5, r5, -1
+/* 801CE43C 001CA09C 40 82 FF E4 */ bne lbl_801CE420
+lbl_801CE440:
+/* 801CE440 001CA0A0 38 00 00 00 */ li r0, 0
+/* 801CE444 001CA0A4 98 06 00 01 */ stb r0, 1(r6)
+/* 801CE448 001CA0A8 4E 80 00 20 */ blr
+
+.global strcmp
+strcmp:
+/* 801CE44C 001CA0AC 88 A3 00 00 */ lbz r5, 0(r3)
+/* 801CE450 001CA0B0 88 04 00 00 */ lbz r0, 0(r4)
+/* 801CE454 001CA0B4 7C 00 28 51 */ subf. r0, r0, r5
+/* 801CE458 001CA0B8 41 82 00 0C */ beq lbl_801CE464
+/* 801CE45C 001CA0BC 7C 03 03 78 */ mr r3, r0
+/* 801CE460 001CA0C0 4E 80 00 20 */ blr
+lbl_801CE464:
+/* 801CE464 001CA0C4 54 80 07 BE */ clrlwi r0, r4, 0x1e
+/* 801CE468 001CA0C8 54 66 07 BE */ clrlwi r6, r3, 0x1e
+/* 801CE46C 001CA0CC 7C 00 30 40 */ cmplw r0, r6
+/* 801CE470 001CA0D0 40 82 00 C0 */ bne lbl_801CE530
+/* 801CE474 001CA0D4 2C 06 00 00 */ cmpwi r6, 0
+/* 801CE478 001CA0D8 41 82 00 58 */ beq lbl_801CE4D0
+/* 801CE47C 001CA0DC 2C 05 00 00 */ cmpwi r5, 0
+/* 801CE480 001CA0E0 40 82 00 0C */ bne lbl_801CE48C
+/* 801CE484 001CA0E4 38 60 00 00 */ li r3, 0
+/* 801CE488 001CA0E8 4E 80 00 20 */ blr
+lbl_801CE48C:
+/* 801CE48C 001CA0EC 20 06 00 03 */ subfic r0, r6, 3
+/* 801CE490 001CA0F0 7C 09 03 A6 */ mtctr r0
+/* 801CE494 001CA0F4 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE498 001CA0F8 41 82 00 30 */ beq lbl_801CE4C8
+lbl_801CE49C:
+/* 801CE49C 001CA0FC 8C A3 00 01 */ lbzu r5, 1(r3)
+/* 801CE4A0 001CA100 8C 04 00 01 */ lbzu r0, 1(r4)
+/* 801CE4A4 001CA104 7C 00 28 51 */ subf. r0, r0, r5
+/* 801CE4A8 001CA108 41 82 00 0C */ beq lbl_801CE4B4
+/* 801CE4AC 001CA10C 7C 03 03 78 */ mr r3, r0
+/* 801CE4B0 001CA110 4E 80 00 20 */ blr
+lbl_801CE4B4:
+/* 801CE4B4 001CA114 2C 05 00 00 */ cmpwi r5, 0
+/* 801CE4B8 001CA118 40 82 00 0C */ bne lbl_801CE4C4
+/* 801CE4BC 001CA11C 38 60 00 00 */ li r3, 0
+/* 801CE4C0 001CA120 4E 80 00 20 */ blr
+lbl_801CE4C4:
+/* 801CE4C4 001CA124 42 00 FF D8 */ bdnz lbl_801CE49C
+lbl_801CE4C8:
+/* 801CE4C8 001CA128 38 63 00 01 */ addi r3, r3, 1
+/* 801CE4CC 001CA12C 38 84 00 01 */ addi r4, r4, 1
+lbl_801CE4D0:
+/* 801CE4D0 001CA130 80 E3 00 00 */ lwz r7, 0(r3)
+/* 801CE4D4 001CA134 3C A0 80 81 */ lis r5, 0x80808080@ha
+/* 801CE4D8 001CA138 38 C5 80 80 */ addi r6, r5, 0x80808080@l
+/* 801CE4DC 001CA13C 81 04 00 00 */ lwz r8, 0(r4)
+/* 801CE4E0 001CA140 3C A7 FE FF */ addis r5, r7, 0xfeff
+/* 801CE4E4 001CA144 38 A5 FE FF */ addi r5, r5, -257
+/* 801CE4E8 001CA148 7C A5 38 78 */ andc r5, r5, r7
+/* 801CE4EC 001CA14C 7C A0 30 39 */ and. r0, r5, r6
+/* 801CE4F0 001CA150 40 82 00 28 */ bne lbl_801CE518
+/* 801CE4F4 001CA154 48 00 00 1C */ b lbl_801CE510
+lbl_801CE4F8:
+/* 801CE4F8 001CA158 84 E3 00 04 */ lwzu r7, 4(r3)
+/* 801CE4FC 001CA15C 85 04 00 04 */ lwzu r8, 4(r4)
+/* 801CE500 001CA160 3C A7 FE FF */ addis r5, r7, 0xfeff
+/* 801CE504 001CA164 38 05 FE FF */ addi r0, r5, -257
+/* 801CE508 001CA168 7C 00 30 39 */ and. r0, r0, r6
+/* 801CE50C 001CA16C 40 82 00 0C */ bne lbl_801CE518
+lbl_801CE510:
+/* 801CE510 001CA170 7C 07 40 40 */ cmplw r7, r8
+/* 801CE514 001CA174 41 82 FF E4 */ beq lbl_801CE4F8
+lbl_801CE518:
+/* 801CE518 001CA178 88 A3 00 00 */ lbz r5, 0(r3)
+/* 801CE51C 001CA17C 88 04 00 00 */ lbz r0, 0(r4)
+/* 801CE520 001CA180 7C 00 28 51 */ subf. r0, r0, r5
+/* 801CE524 001CA184 41 82 00 0C */ beq lbl_801CE530
+/* 801CE528 001CA188 7C 03 03 78 */ mr r3, r0
+/* 801CE52C 001CA18C 4E 80 00 20 */ blr
+lbl_801CE530:
+/* 801CE530 001CA190 2C 05 00 00 */ cmpwi r5, 0
+/* 801CE534 001CA194 40 82 00 0C */ bne lbl_801CE540
+/* 801CE538 001CA198 38 60 00 00 */ li r3, 0
+/* 801CE53C 001CA19C 4E 80 00 20 */ blr
+lbl_801CE540:
+/* 801CE540 001CA1A0 8C A3 00 01 */ lbzu r5, 1(r3)
+/* 801CE544 001CA1A4 8C 04 00 01 */ lbzu r0, 1(r4)
+/* 801CE548 001CA1A8 7C 00 28 51 */ subf. r0, r0, r5
+/* 801CE54C 001CA1AC 41 82 00 0C */ beq lbl_801CE558
+/* 801CE550 001CA1B0 7C 03 03 78 */ mr r3, r0
+/* 801CE554 001CA1B4 4E 80 00 20 */ blr
+lbl_801CE558:
+/* 801CE558 001CA1B8 2C 05 00 00 */ cmpwi r5, 0
+/* 801CE55C 001CA1BC 40 82 FF E4 */ bne lbl_801CE540
+/* 801CE560 001CA1C0 38 60 00 00 */ li r3, 0
+/* 801CE564 001CA1C4 4E 80 00 20 */ blr
+
+.global strncmp
+strncmp:
+/* 801CE568 001CA1C8 38 63 FF FF */ addi r3, r3, -1
+/* 801CE56C 001CA1CC 38 84 FF FF */ addi r4, r4, -1
+/* 801CE570 001CA1D0 38 C5 00 01 */ addi r6, r5, 1
+/* 801CE574 001CA1D4 48 00 00 24 */ b lbl_801CE598
+lbl_801CE578:
+/* 801CE578 001CA1D8 8C 03 00 01 */ lbzu r0, 1(r3)
+/* 801CE57C 001CA1DC 8C A4 00 01 */ lbzu r5, 1(r4)
+/* 801CE580 001CA1E0 7C 00 28 40 */ cmplw r0, r5
+/* 801CE584 001CA1E4 41 82 00 0C */ beq lbl_801CE590
+/* 801CE588 001CA1E8 7C 65 00 50 */ subf r3, r5, r0
+/* 801CE58C 001CA1EC 4E 80 00 20 */ blr
+lbl_801CE590:
+/* 801CE590 001CA1F0 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE594 001CA1F4 41 82 00 0C */ beq lbl_801CE5A0
+lbl_801CE598:
+/* 801CE598 001CA1F8 34 C6 FF FF */ addic. r6, r6, -1
+/* 801CE59C 001CA1FC 40 82 FF DC */ bne lbl_801CE578
+lbl_801CE5A0:
+/* 801CE5A0 001CA200 38 60 00 00 */ li r3, 0
+/* 801CE5A4 001CA204 4E 80 00 20 */ blr
+
+.global strchr
+strchr:
+/* 801CE5A8 001CA208 38 63 FF FF */ addi r3, r3, -1
+/* 801CE5AC 001CA20C 54 80 06 3E */ clrlwi r0, r4, 0x18
+/* 801CE5B0 001CA210 48 00 00 0C */ b lbl_801CE5BC
+lbl_801CE5B4:
+/* 801CE5B4 001CA214 7C 04 00 40 */ cmplw r4, r0
+/* 801CE5B8 001CA218 4D 82 00 20 */ beqlr
+lbl_801CE5BC:
+/* 801CE5BC 001CA21C 8C 83 00 01 */ lbzu r4, 1(r3)
+/* 801CE5C0 001CA220 2C 04 00 00 */ cmpwi r4, 0
+/* 801CE5C4 001CA224 40 82 FF F0 */ bne lbl_801CE5B4
+/* 801CE5C8 001CA228 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE5CC 001CA22C 4D 82 00 20 */ beqlr
+/* 801CE5D0 001CA230 38 60 00 00 */ li r3, 0
+/* 801CE5D4 001CA234 4E 80 00 20 */ blr
+
+.global strcspn
+strcspn:
+/* 801CE5D8 001CA238 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 801CE5DC 001CA23C 38 00 00 00 */ li r0, 0
+/* 801CE5E0 001CA240 39 04 FF FF */ addi r8, r4, -1
+/* 801CE5E4 001CA244 38 80 00 01 */ li r4, 1
+/* 801CE5E8 001CA248 90 01 00 08 */ stw r0, 8(r1)
+/* 801CE5EC 001CA24C 38 C1 00 08 */ addi r6, r1, 8
+/* 801CE5F0 001CA250 90 01 00 0C */ stw r0, 0xc(r1)
+/* 801CE5F4 001CA254 90 01 00 10 */ stw r0, 0x10(r1)
+/* 801CE5F8 001CA258 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801CE5FC 001CA25C 90 01 00 18 */ stw r0, 0x18(r1)
+/* 801CE600 001CA260 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 801CE604 001CA264 90 01 00 20 */ stw r0, 0x20(r1)
+/* 801CE608 001CA268 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801CE60C 001CA26C 48 00 00 20 */ b lbl_801CE62C
+lbl_801CE610:
+/* 801CE610 001CA270 54 07 EE FE */ rlwinm r7, r0, 0x1d, 0x1b, 0x1f
+/* 801CE614 001CA274 54 00 07 7E */ clrlwi r0, r0, 0x1d
+/* 801CE618 001CA278 7C 80 00 30 */ slw r0, r4, r0
+/* 801CE61C 001CA27C 7C A6 38 AE */ lbzx r5, r6, r7
+/* 801CE620 001CA280 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 801CE624 001CA284 7C A0 03 78 */ or r0, r5, r0
+/* 801CE628 001CA288 7C 06 39 AE */ stbx r0, r6, r7
+lbl_801CE62C:
+/* 801CE62C 001CA28C 8C 08 00 01 */ lbzu r0, 1(r8)
+/* 801CE630 001CA290 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE634 001CA294 40 82 FF DC */ bne lbl_801CE610
+/* 801CE638 001CA298 38 E3 FF FF */ addi r7, r3, -1
+/* 801CE63C 001CA29C 38 C1 00 08 */ addi r6, r1, 8
+/* 801CE640 001CA2A0 38 80 00 01 */ li r4, 1
+/* 801CE644 001CA2A4 48 00 00 20 */ b lbl_801CE664
+lbl_801CE648:
+/* 801CE648 001CA2A8 54 05 EE FE */ rlwinm r5, r0, 0x1d, 0x1b, 0x1f
+/* 801CE64C 001CA2AC 54 00 07 7E */ clrlwi r0, r0, 0x1d
+/* 801CE650 001CA2B0 7C 80 00 30 */ slw r0, r4, r0
+/* 801CE654 001CA2B4 7C A6 28 AE */ lbzx r5, r6, r5
+/* 801CE658 001CA2B8 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 801CE65C 001CA2BC 7C A0 00 39 */ and. r0, r5, r0
+/* 801CE660 001CA2C0 40 82 00 10 */ bne lbl_801CE670
+lbl_801CE664:
+/* 801CE664 001CA2C4 8C 07 00 01 */ lbzu r0, 1(r7)
+/* 801CE668 001CA2C8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE66C 001CA2CC 40 82 FF DC */ bne lbl_801CE648
+lbl_801CE670:
+/* 801CE670 001CA2D0 7C 63 38 50 */ subf r3, r3, r7
+/* 801CE674 001CA2D4 38 21 00 30 */ addi r1, r1, 0x30
+/* 801CE678 001CA2D8 4E 80 00 20 */ blr
+
+.global strtok
+strtok:
+/* 801CE67C 001CA2DC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 801CE680 001CA2E0 38 00 00 00 */ li r0, 0
+/* 801CE684 001CA2E4 2C 03 00 00 */ cmpwi r3, 0
+/* 801CE688 001CA2E8 90 01 00 08 */ stw r0, 8(r1)
+/* 801CE68C 001CA2EC 90 01 00 0C */ stw r0, 0xc(r1)
+/* 801CE690 001CA2F0 90 01 00 10 */ stw r0, 0x10(r1)
+/* 801CE694 001CA2F4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801CE698 001CA2F8 90 01 00 18 */ stw r0, 0x18(r1)
+/* 801CE69C 001CA2FC 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 801CE6A0 001CA300 90 01 00 20 */ stw r0, 0x20(r1)
+/* 801CE6A4 001CA304 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801CE6A8 001CA308 41 82 00 08 */ beq lbl_801CE6B0
+/* 801CE6AC 001CA30C 90 6D 83 F4 */ stw r3, lbl_8063D6B4-_SDA_BASE_(r13)
+lbl_801CE6B0:
+/* 801CE6B0 001CA310 38 E4 FF FF */ addi r7, r4, -1
+/* 801CE6B4 001CA314 38 A1 00 08 */ addi r5, r1, 8
+/* 801CE6B8 001CA318 38 60 00 01 */ li r3, 1
+/* 801CE6BC 001CA31C 48 00 00 20 */ b lbl_801CE6DC
+lbl_801CE6C0:
+/* 801CE6C0 001CA320 54 06 EE FE */ rlwinm r6, r0, 0x1d, 0x1b, 0x1f
+/* 801CE6C4 001CA324 54 00 07 7E */ clrlwi r0, r0, 0x1d
+/* 801CE6C8 001CA328 7C 60 00 30 */ slw r0, r3, r0
+/* 801CE6CC 001CA32C 7C 85 30 AE */ lbzx r4, r5, r6
+/* 801CE6D0 001CA330 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 801CE6D4 001CA334 7C 80 03 78 */ or r0, r4, r0
+/* 801CE6D8 001CA338 7C 05 31 AE */ stbx r0, r5, r6
+lbl_801CE6DC:
+/* 801CE6DC 001CA33C 8C 07 00 01 */ lbzu r0, 1(r7)
+/* 801CE6E0 001CA340 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE6E4 001CA344 40 82 FF DC */ bne lbl_801CE6C0
+/* 801CE6E8 001CA348 80 8D 83 F4 */ lwz r4, lbl_8063D6B4-_SDA_BASE_(r13)
+/* 801CE6EC 001CA34C 38 A1 00 08 */ addi r5, r1, 8
+/* 801CE6F0 001CA350 38 60 00 01 */ li r3, 1
+/* 801CE6F4 001CA354 38 E4 FF FF */ addi r7, r4, -1
+/* 801CE6F8 001CA358 48 00 00 20 */ b lbl_801CE718
+lbl_801CE6FC:
+/* 801CE6FC 001CA35C 54 C4 EE FE */ rlwinm r4, r6, 0x1d, 0x1b, 0x1f
+/* 801CE700 001CA360 54 C0 07 7E */ clrlwi r0, r6, 0x1d
+/* 801CE704 001CA364 7C 60 00 30 */ slw r0, r3, r0
+/* 801CE708 001CA368 7C 85 20 AE */ lbzx r4, r5, r4
+/* 801CE70C 001CA36C 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 801CE710 001CA370 7C 80 00 39 */ and. r0, r4, r0
+/* 801CE714 001CA374 41 82 00 10 */ beq lbl_801CE724
+lbl_801CE718:
+/* 801CE718 001CA378 8C C7 00 01 */ lbzu r6, 1(r7)
+/* 801CE71C 001CA37C 2C 06 00 00 */ cmpwi r6, 0
+/* 801CE720 001CA380 40 82 FF DC */ bne lbl_801CE6FC
+lbl_801CE724:
+/* 801CE724 001CA384 2C 06 00 00 */ cmpwi r6, 0
+/* 801CE728 001CA388 40 82 00 14 */ bne lbl_801CE73C
+/* 801CE72C 001CA38C 80 0D 83 F0 */ lwz r0, lbl_8063D6B0-_SDA_BASE_(r13)
+/* 801CE730 001CA390 38 60 00 00 */ li r3, 0
+/* 801CE734 001CA394 90 0D 83 F4 */ stw r0, lbl_8063D6B4-_SDA_BASE_(r13)
+/* 801CE738 001CA398 48 00 00 60 */ b lbl_801CE798
+lbl_801CE73C:
+/* 801CE73C 001CA39C 7C E3 3B 78 */ mr r3, r7
+/* 801CE740 001CA3A0 38 C1 00 08 */ addi r6, r1, 8
+/* 801CE744 001CA3A4 38 80 00 01 */ li r4, 1
+/* 801CE748 001CA3A8 48 00 00 20 */ b lbl_801CE768
+lbl_801CE74C:
+/* 801CE74C 001CA3AC 55 05 EE FE */ rlwinm r5, r8, 0x1d, 0x1b, 0x1f
+/* 801CE750 001CA3B0 55 00 07 7E */ clrlwi r0, r8, 0x1d
+/* 801CE754 001CA3B4 7C 80 00 30 */ slw r0, r4, r0
+/* 801CE758 001CA3B8 7C A6 28 AE */ lbzx r5, r6, r5
+/* 801CE75C 001CA3BC 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 801CE760 001CA3C0 7C A0 00 39 */ and. r0, r5, r0
+/* 801CE764 001CA3C4 40 82 00 10 */ bne lbl_801CE774
+lbl_801CE768:
+/* 801CE768 001CA3C8 8D 07 00 01 */ lbzu r8, 1(r7)
+/* 801CE76C 001CA3CC 2C 08 00 00 */ cmpwi r8, 0
+/* 801CE770 001CA3D0 40 82 FF DC */ bne lbl_801CE74C
+lbl_801CE774:
+/* 801CE774 001CA3D4 2C 08 00 00 */ cmpwi r8, 0
+/* 801CE778 001CA3D8 40 82 00 10 */ bne lbl_801CE788
+/* 801CE77C 001CA3DC 80 0D 83 F0 */ lwz r0, lbl_8063D6B0-_SDA_BASE_(r13)
+/* 801CE780 001CA3E0 90 0D 83 F4 */ stw r0, lbl_8063D6B4-_SDA_BASE_(r13)
+/* 801CE784 001CA3E4 48 00 00 14 */ b lbl_801CE798
+lbl_801CE788:
+/* 801CE788 001CA3E8 38 87 00 01 */ addi r4, r7, 1
+/* 801CE78C 001CA3EC 38 00 00 00 */ li r0, 0
+/* 801CE790 001CA3F0 90 8D 83 F4 */ stw r4, lbl_8063D6B4-_SDA_BASE_(r13)
+/* 801CE794 001CA3F4 98 07 00 00 */ stb r0, 0(r7)
+lbl_801CE798:
+/* 801CE798 001CA3F8 38 21 00 30 */ addi r1, r1, 0x30
+/* 801CE79C 001CA3FC 4E 80 00 20 */ blr
+
+.global strstr
+strstr:
+/* 801CE7A0 001CA400 2C 04 00 00 */ cmpwi r4, 0
+/* 801CE7A4 001CA404 38 A3 FF FF */ addi r5, r3, -1
+/* 801CE7A8 001CA408 4D 82 00 20 */ beqlr
+/* 801CE7AC 001CA40C 88 C4 00 00 */ lbz r6, 0(r4)
+/* 801CE7B0 001CA410 2C 06 00 00 */ cmpwi r6, 0
+/* 801CE7B4 001CA414 40 82 00 44 */ bne lbl_801CE7F8
+/* 801CE7B8 001CA418 4E 80 00 20 */ blr
+/* 801CE7BC 001CA41C 48 00 00 3C */ b lbl_801CE7F8
+lbl_801CE7C0:
+/* 801CE7C0 001CA420 7C 00 30 40 */ cmplw r0, r6
+/* 801CE7C4 001CA424 40 82 00 34 */ bne lbl_801CE7F8
+/* 801CE7C8 001CA428 38 E5 FF FF */ addi r7, r5, -1
+/* 801CE7CC 001CA42C 39 04 FF FF */ addi r8, r4, -1
+lbl_801CE7D0:
+/* 801CE7D0 001CA430 8C 07 00 01 */ lbzu r0, 1(r7)
+/* 801CE7D4 001CA434 8C 68 00 01 */ lbzu r3, 1(r8)
+/* 801CE7D8 001CA438 7C 00 18 40 */ cmplw r0, r3
+/* 801CE7DC 001CA43C 40 82 00 0C */ bne lbl_801CE7E8
+/* 801CE7E0 001CA440 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE7E4 001CA444 40 82 FF EC */ bne lbl_801CE7D0
+lbl_801CE7E8:
+/* 801CE7E8 001CA448 2C 03 00 00 */ cmpwi r3, 0
+/* 801CE7EC 001CA44C 40 82 00 0C */ bne lbl_801CE7F8
+/* 801CE7F0 001CA450 7C A3 2B 78 */ mr r3, r5
+/* 801CE7F4 001CA454 4E 80 00 20 */ blr
+lbl_801CE7F8:
+/* 801CE7F8 001CA458 8C 05 00 01 */ lbzu r0, 1(r5)
+/* 801CE7FC 001CA45C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE800 001CA460 40 82 FF C0 */ bne lbl_801CE7C0
+/* 801CE804 001CA464 38 60 00 00 */ li r3, 0
+/* 801CE808 001CA468 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/strtold.s b/asm/MSL_C/MSL_Common/strtold.s
new file mode 100644
index 0000000..c7bcf1a
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/strtold.s
@@ -0,0 +1,1535 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __strtold
+__strtold:
+/* 801CE80C 001CA46C 94 21 FF 20 */ stwu r1, -0xe0(r1)
+/* 801CE810 001CA470 7C 08 02 A6 */ mflr r0
+/* 801CE814 001CA474 90 01 00 E4 */ stw r0, 0xe4(r1)
+/* 801CE818 001CA478 39 61 00 E0 */ addi r11, r1, 0xe0
+/* 801CE81C 001CA47C 4B FF 88 D9 */ bl __save_gpr
+/* 801CE820 001CA480 3B E0 00 00 */ li r31, 0
+/* 801CE824 001CA484 3D 00 80 42 */ lis r8, lbl_80422B98@ha
+/* 801CE828 001CA488 38 00 00 00 */ li r0, 0
+/* 801CE82C 001CA48C 93 E1 00 58 */ stw r31, 0x58(r1)
+/* 801CE830 001CA490 81 08 2B 98 */ lwz r8, lbl_80422B98@l(r8)
+/* 801CE834 001CA494 7C 92 23 78 */ mr r18, r4
+/* 801CE838 001CA498 90 01 00 90 */ stw r0, 0x90(r1)
+/* 801CE83C 001CA49C 38 00 00 00 */ li r0, 0
+/* 801CE840 001CA4A0 7C B3 2B 78 */ mr r19, r5
+/* 801CE844 001CA4A4 7E 4C 93 78 */ mr r12, r18
+/* 801CE848 001CA4A8 90 01 00 8C */ stw r0, 0x8c(r1)
+/* 801CE84C 001CA4AC 38 00 00 00 */ li r0, 0
+/* 801CE850 001CA4B0 7C F4 3B 78 */ mr r20, r7
+/* 801CE854 001CA4B4 3A 20 00 01 */ li r17, 1
+/* 801CE858 001CA4B8 90 01 00 88 */ stw r0, 0x88(r1)
+/* 801CE85C 001CA4BC 38 00 00 00 */ li r0, 0
+/* 801CE860 001CA4C0 39 C0 00 00 */ li r14, 0
+/* 801CE864 001CA4C4 3B A0 00 00 */ li r29, 0
+/* 801CE868 001CA4C8 90 61 00 08 */ stw r3, 8(r1)
+/* 801CE86C 001CA4CC 7E 63 9B 78 */ mr r3, r19
+/* 801CE870 001CA4D0 3B 80 00 00 */ li r28, 0
+/* 801CE874 001CA4D4 3B 20 00 00 */ li r25, 0
+/* 801CE878 001CA4D8 93 E1 00 5C */ stw r31, 0x5c(r1)
+/* 801CE87C 001CA4DC 3A E0 00 00 */ li r23, 0
+/* 801CE880 001CA4E0 3B C0 00 01 */ li r30, 1
+/* 801CE884 001CA4E4 38 80 00 00 */ li r4, 0
+/* 801CE888 001CA4E8 93 E1 00 60 */ stw r31, 0x60(r1)
+/* 801CE88C 001CA4EC 38 A0 00 00 */ li r5, 0
+/* 801CE890 001CA4F0 93 E1 00 64 */ stw r31, 0x64(r1)
+/* 801CE894 001CA4F4 93 E1 00 68 */ stw r31, 0x68(r1)
+/* 801CE898 001CA4F8 93 E1 00 6C */ stw r31, 0x6c(r1)
+/* 801CE89C 001CA4FC 93 E1 00 70 */ stw r31, 0x70(r1)
+/* 801CE8A0 001CA500 93 E1 00 74 */ stw r31, 0x74(r1)
+/* 801CE8A4 001CA504 93 E1 00 78 */ stw r31, 0x78(r1)
+/* 801CE8A8 001CA508 93 E1 00 7C */ stw r31, 0x7c(r1)
+/* 801CE8AC 001CA50C B3 E1 00 80 */ sth r31, 0x80(r1)
+/* 801CE8B0 001CA510 8B 68 00 00 */ lbz r27, 0(r8)
+/* 801CE8B4 001CA514 90 C1 00 0C */ stw r6, 0xc(r1)
+/* 801CE8B8 001CA518 90 01 00 84 */ stw r0, 0x84(r1)
+/* 801CE8BC 001CA51C 93 E7 00 00 */ stw r31, 0(r7)
+/* 801CE8C0 001CA520 7D 89 03 A6 */ mtctr r12
+/* 801CE8C4 001CA524 4E 80 04 21 */ bctrl
+/* 801CE8C8 001CA528 3E 00 80 42 */ lis r16, lbl_80422D48@ha
+/* 801CE8CC 001CA52C 3D E0 80 40 */ lis r15, lbl_803FCD18@ha
+/* 801CE8D0 001CA530 7C 64 1B 78 */ mr r4, r3
+/* 801CE8D4 001CA534 3A 10 2D 48 */ addi r16, r16, lbl_80422D48@l
+/* 801CE8D8 001CA538 39 EF CD 18 */ addi r15, r15, lbl_803FCD18@l
+/* 801CE8DC 001CA53C 48 00 0F D0 */ b lbl_801CF8AC
+lbl_801CE8E0:
+/* 801CE8E0 001CA540 2C 11 00 80 */ cmpwi r17, 0x80
+/* 801CE8E4 001CA544 41 82 08 A0 */ beq lbl_801CF184
+/* 801CE8E8 001CA548 40 80 00 5C */ bge lbl_801CE944
+/* 801CE8EC 001CA54C 2C 11 00 08 */ cmpwi r17, 8
+/* 801CE8F0 001CA550 41 82 06 64 */ beq lbl_801CEF54
+/* 801CE8F4 001CA554 40 80 00 2C */ bge lbl_801CE920
+/* 801CE8F8 001CA558 2C 11 00 03 */ cmpwi r17, 3
+/* 801CE8FC 001CA55C 41 82 0F B0 */ beq lbl_801CF8AC
+/* 801CE900 001CA560 40 80 00 14 */ bge lbl_801CE914
+/* 801CE904 001CA564 2C 11 00 01 */ cmpwi r17, 1
+/* 801CE908 001CA568 41 82 00 8C */ beq lbl_801CE994
+/* 801CE90C 001CA56C 40 80 05 18 */ bge lbl_801CEE24
+/* 801CE910 001CA570 48 00 0F 9C */ b lbl_801CF8AC
+lbl_801CE914:
+/* 801CE914 001CA574 2C 11 00 05 */ cmpwi r17, 5
+/* 801CE918 001CA578 40 80 0F 94 */ bge lbl_801CF8AC
+/* 801CE91C 001CA57C 48 00 06 04 */ b lbl_801CEF20
+lbl_801CE920:
+/* 801CE920 001CA580 2C 11 00 20 */ cmpwi r17, 0x20
+/* 801CE924 001CA584 41 82 07 4C */ beq lbl_801CF070
+/* 801CE928 001CA588 40 80 00 10 */ bge lbl_801CE938
+/* 801CE92C 001CA58C 2C 11 00 10 */ cmpwi r17, 0x10
+/* 801CE930 001CA590 41 82 06 EC */ beq lbl_801CF01C
+/* 801CE934 001CA594 48 00 0F 78 */ b lbl_801CF8AC
+lbl_801CE938:
+/* 801CE938 001CA598 2C 11 00 40 */ cmpwi r17, 0x40
+/* 801CE93C 001CA59C 41 82 07 DC */ beq lbl_801CF118
+/* 801CE940 001CA5A0 48 00 0F 6C */ b lbl_801CF8AC
+lbl_801CE944:
+/* 801CE944 001CA5A4 2C 11 20 00 */ cmpwi r17, 0x2000
+/* 801CE948 001CA5A8 41 82 02 D0 */ beq lbl_801CEC18
+/* 801CE94C 001CA5AC 40 80 00 28 */ bge lbl_801CE974
+/* 801CE950 001CA5B0 2C 11 02 00 */ cmpwi r17, 0x200
+/* 801CE954 001CA5B4 41 82 09 18 */ beq lbl_801CF26C
+/* 801CE958 001CA5B8 40 80 00 10 */ bge lbl_801CE968
+/* 801CE95C 001CA5BC 2C 11 01 00 */ cmpwi r17, 0x100
+/* 801CE960 001CA5C0 41 82 08 88 */ beq lbl_801CF1E8
+/* 801CE964 001CA5C4 48 00 0F 48 */ b lbl_801CF8AC
+lbl_801CE968:
+/* 801CE968 001CA5C8 2C 11 04 00 */ cmpwi r17, 0x400
+/* 801CE96C 001CA5CC 41 82 09 34 */ beq lbl_801CF2A0
+/* 801CE970 001CA5D0 48 00 0F 3C */ b lbl_801CF8AC
+lbl_801CE974:
+/* 801CE974 001CA5D4 3C 60 00 01 */ lis r3, 0x00008000@ha
+/* 801CE978 001CA5D8 38 03 80 00 */ addi r0, r3, 0x00008000@l
+/* 801CE97C 001CA5DC 7C 11 00 00 */ cmpw r17, r0
+/* 801CE980 001CA5E0 41 82 09 AC */ beq lbl_801CF32C
+/* 801CE984 001CA5E4 40 80 0F 28 */ bge lbl_801CF8AC
+/* 801CE988 001CA5E8 2C 11 40 00 */ cmpwi r17, 0x4000
+/* 801CE98C 001CA5EC 41 82 01 6C */ beq lbl_801CEAF8
+/* 801CE990 001CA5F0 48 00 0F 1C */ b lbl_801CF8AC
+lbl_801CE994:
+/* 801CE994 001CA5F4 2C 04 00 00 */ cmpwi r4, 0
+/* 801CE998 001CA5F8 38 00 00 00 */ li r0, 0
+/* 801CE99C 001CA5FC 41 80 00 0C */ blt lbl_801CE9A8
+/* 801CE9A0 001CA600 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CE9A4 001CA604 41 80 00 08 */ blt lbl_801CE9AC
+lbl_801CE9A8:
+/* 801CE9A8 001CA608 38 00 00 01 */ li r0, 1
+lbl_801CE9AC:
+/* 801CE9AC 001CA60C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE9B0 001CA610 41 82 00 0C */ beq lbl_801CE9BC
+/* 801CE9B4 001CA614 38 00 00 00 */ li r0, 0
+/* 801CE9B8 001CA618 48 00 00 18 */ b lbl_801CE9D0
+lbl_801CE9BC:
+/* 801CE9BC 001CA61C 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CE9C0 001CA620 54 80 08 3C */ slwi r0, r4, 1
+/* 801CE9C4 001CA624 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CE9C8 001CA628 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CE9CC 001CA62C 54 00 05 EE */ rlwinm r0, r0, 0, 0x17, 0x17
+lbl_801CE9D0:
+/* 801CE9D0 001CA630 2C 00 00 00 */ cmpwi r0, 0
+/* 801CE9D4 001CA634 41 82 00 28 */ beq lbl_801CE9FC
+/* 801CE9D8 001CA638 7E 4C 93 78 */ mr r12, r18
+/* 801CE9DC 001CA63C 7E 63 9B 78 */ mr r3, r19
+/* 801CE9E0 001CA640 38 80 00 00 */ li r4, 0
+/* 801CE9E4 001CA644 38 A0 00 00 */ li r5, 0
+/* 801CE9E8 001CA648 7D 89 03 A6 */ mtctr r12
+/* 801CE9EC 001CA64C 4E 80 04 21 */ bctrl
+/* 801CE9F0 001CA650 7C 64 1B 78 */ mr r4, r3
+/* 801CE9F4 001CA654 39 CE 00 01 */ addi r14, r14, 1
+/* 801CE9F8 001CA658 48 00 0E B4 */ b lbl_801CF8AC
+lbl_801CE9FC:
+/* 801CE9FC 001CA65C 2C 04 00 00 */ cmpwi r4, 0
+/* 801CEA00 001CA660 38 00 00 00 */ li r0, 0
+/* 801CEA04 001CA664 41 80 00 0C */ blt lbl_801CEA10
+/* 801CEA08 001CA668 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CEA0C 001CA66C 41 80 00 08 */ blt lbl_801CEA14
+lbl_801CEA10:
+/* 801CEA10 001CA670 38 00 00 01 */ li r0, 1
+lbl_801CEA14:
+/* 801CEA14 001CA674 2C 00 00 00 */ cmpwi r0, 0
+/* 801CEA18 001CA678 41 82 00 0C */ beq lbl_801CEA24
+/* 801CEA1C 001CA67C 7C 80 23 78 */ mr r0, r4
+/* 801CEA20 001CA680 48 00 00 10 */ b lbl_801CEA30
+lbl_801CEA24:
+/* 801CEA24 001CA684 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CEA28 001CA688 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 801CEA2C 001CA68C 7C 03 20 AE */ lbzx r0, r3, r4
+lbl_801CEA30:
+/* 801CEA30 001CA690 2C 00 00 49 */ cmpwi r0, 0x49
+/* 801CEA34 001CA694 41 82 00 6C */ beq lbl_801CEAA0
+/* 801CEA38 001CA698 40 80 00 28 */ bge lbl_801CEA60
+/* 801CEA3C 001CA69C 2C 00 00 2C */ cmpwi r0, 0x2c
+/* 801CEA40 001CA6A0 41 82 00 B0 */ beq lbl_801CEAF0
+/* 801CEA44 001CA6A4 40 80 00 10 */ bge lbl_801CEA54
+/* 801CEA48 001CA6A8 2C 00 00 2B */ cmpwi r0, 0x2b
+/* 801CEA4C 001CA6AC 40 80 00 28 */ bge lbl_801CEA74
+/* 801CEA50 001CA6B0 48 00 00 A0 */ b lbl_801CEAF0
+lbl_801CEA54:
+/* 801CEA54 001CA6B4 2C 00 00 2E */ cmpwi r0, 0x2e
+/* 801CEA58 001CA6B8 40 80 00 98 */ bge lbl_801CEAF0
+/* 801CEA5C 001CA6BC 48 00 00 10 */ b lbl_801CEA6C
+lbl_801CEA60:
+/* 801CEA60 001CA6C0 2C 00 00 4E */ cmpwi r0, 0x4e
+/* 801CEA64 001CA6C4 41 82 00 64 */ beq lbl_801CEAC8
+/* 801CEA68 001CA6C8 48 00 00 88 */ b lbl_801CEAF0
+lbl_801CEA6C:
+/* 801CEA6C 001CA6CC 38 00 00 01 */ li r0, 1
+/* 801CEA70 001CA6D0 90 01 00 90 */ stw r0, 0x90(r1)
+lbl_801CEA74:
+/* 801CEA74 001CA6D4 7E 4C 93 78 */ mr r12, r18
+/* 801CEA78 001CA6D8 7E 63 9B 78 */ mr r3, r19
+/* 801CEA7C 001CA6DC 38 80 00 00 */ li r4, 0
+/* 801CEA80 001CA6E0 38 A0 00 00 */ li r5, 0
+/* 801CEA84 001CA6E4 7D 89 03 A6 */ mtctr r12
+/* 801CEA88 001CA6E8 3B DE 00 01 */ addi r30, r30, 1
+/* 801CEA8C 001CA6EC 4E 80 04 21 */ bctrl
+/* 801CEA90 001CA6F0 38 00 00 01 */ li r0, 1
+/* 801CEA94 001CA6F4 7C 64 1B 78 */ mr r4, r3
+/* 801CEA98 001CA6F8 90 01 00 88 */ stw r0, 0x88(r1)
+/* 801CEA9C 001CA6FC 48 00 0E 10 */ b lbl_801CF8AC
+lbl_801CEAA0:
+/* 801CEAA0 001CA700 7E 4C 93 78 */ mr r12, r18
+/* 801CEAA4 001CA704 7E 63 9B 78 */ mr r3, r19
+/* 801CEAA8 001CA708 38 80 00 00 */ li r4, 0
+/* 801CEAAC 001CA70C 38 A0 00 00 */ li r5, 0
+/* 801CEAB0 001CA710 7D 89 03 A6 */ mtctr r12
+/* 801CEAB4 001CA714 3B DE 00 01 */ addi r30, r30, 1
+/* 801CEAB8 001CA718 4E 80 04 21 */ bctrl
+/* 801CEABC 001CA71C 7C 64 1B 78 */ mr r4, r3
+/* 801CEAC0 001CA720 3A 20 40 00 */ li r17, 0x4000
+/* 801CEAC4 001CA724 48 00 0D E8 */ b lbl_801CF8AC
+lbl_801CEAC8:
+/* 801CEAC8 001CA728 7E 4C 93 78 */ mr r12, r18
+/* 801CEACC 001CA72C 7E 63 9B 78 */ mr r3, r19
+/* 801CEAD0 001CA730 38 80 00 00 */ li r4, 0
+/* 801CEAD4 001CA734 38 A0 00 00 */ li r5, 0
+/* 801CEAD8 001CA738 7D 89 03 A6 */ mtctr r12
+/* 801CEADC 001CA73C 3B DE 00 01 */ addi r30, r30, 1
+/* 801CEAE0 001CA740 4E 80 04 21 */ bctrl
+/* 801CEAE4 001CA744 7C 64 1B 78 */ mr r4, r3
+/* 801CEAE8 001CA748 3A 20 20 00 */ li r17, 0x2000
+/* 801CEAEC 001CA74C 48 00 0D C0 */ b lbl_801CF8AC
+lbl_801CEAF0:
+/* 801CEAF0 001CA750 3A 20 00 02 */ li r17, 2
+/* 801CEAF4 001CA754 48 00 0D B8 */ b lbl_801CF8AC
+lbl_801CEAF8:
+/* 801CEAF8 001CA758 89 6F 00 00 */ lbz r11, 0(r15)
+/* 801CEAFC 001CA75C 3A 21 00 29 */ addi r17, r1, 0x29
+/* 801CEB00 001CA760 89 4F 00 01 */ lbz r10, 1(r15)
+/* 801CEB04 001CA764 3A A0 00 01 */ li r21, 1
+/* 801CEB08 001CA768 89 2F 00 02 */ lbz r9, 2(r15)
+/* 801CEB0C 001CA76C 89 0F 00 03 */ lbz r8, 3(r15)
+/* 801CEB10 001CA770 88 EF 00 04 */ lbz r7, 4(r15)
+/* 801CEB14 001CA774 88 CF 00 05 */ lbz r6, 5(r15)
+/* 801CEB18 001CA778 88 AF 00 06 */ lbz r5, 6(r15)
+/* 801CEB1C 001CA77C 88 6F 00 07 */ lbz r3, 7(r15)
+/* 801CEB20 001CA780 88 0F 00 08 */ lbz r0, 8(r15)
+/* 801CEB24 001CA784 99 61 00 28 */ stb r11, 0x28(r1)
+/* 801CEB28 001CA788 99 41 00 29 */ stb r10, 0x29(r1)
+/* 801CEB2C 001CA78C 99 21 00 2A */ stb r9, 0x2a(r1)
+/* 801CEB30 001CA790 99 01 00 2B */ stb r8, 0x2b(r1)
+/* 801CEB34 001CA794 98 E1 00 2C */ stb r7, 0x2c(r1)
+/* 801CEB38 001CA798 98 C1 00 2D */ stb r6, 0x2d(r1)
+/* 801CEB3C 001CA79C 98 A1 00 2E */ stb r5, 0x2e(r1)
+/* 801CEB40 001CA7A0 98 61 00 2F */ stb r3, 0x2f(r1)
+/* 801CEB44 001CA7A4 98 01 00 30 */ stb r0, 0x30(r1)
+/* 801CEB48 001CA7A8 48 00 00 2C */ b lbl_801CEB74
+lbl_801CEB4C:
+/* 801CEB4C 001CA7AC 7E 4C 93 78 */ mr r12, r18
+/* 801CEB50 001CA7B0 7E 63 9B 78 */ mr r3, r19
+/* 801CEB54 001CA7B4 38 80 00 00 */ li r4, 0
+/* 801CEB58 001CA7B8 38 A0 00 00 */ li r5, 0
+/* 801CEB5C 001CA7BC 7D 89 03 A6 */ mtctr r12
+/* 801CEB60 001CA7C0 3A 31 00 01 */ addi r17, r17, 1
+/* 801CEB64 001CA7C4 3A B5 00 01 */ addi r21, r21, 1
+/* 801CEB68 001CA7C8 3B DE 00 01 */ addi r30, r30, 1
+/* 801CEB6C 001CA7CC 4E 80 04 21 */ bctrl
+/* 801CEB70 001CA7D0 7C 64 1B 78 */ mr r4, r3
+lbl_801CEB74:
+/* 801CEB74 001CA7D4 2C 15 00 08 */ cmpwi r21, 8
+/* 801CEB78 001CA7D8 40 80 00 48 */ bge lbl_801CEBC0
+/* 801CEB7C 001CA7DC 88 71 00 00 */ lbz r3, 0(r17)
+/* 801CEB80 001CA7E0 2C 04 00 00 */ cmpwi r4, 0
+/* 801CEB84 001CA7E4 38 00 00 00 */ li r0, 0
+/* 801CEB88 001CA7E8 7C 65 07 74 */ extsb r5, r3
+/* 801CEB8C 001CA7EC 41 80 00 0C */ blt lbl_801CEB98
+/* 801CEB90 001CA7F0 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CEB94 001CA7F4 41 80 00 08 */ blt lbl_801CEB9C
+lbl_801CEB98:
+/* 801CEB98 001CA7F8 38 00 00 01 */ li r0, 1
+lbl_801CEB9C:
+/* 801CEB9C 001CA7FC 2C 00 00 00 */ cmpwi r0, 0
+/* 801CEBA0 001CA800 41 82 00 0C */ beq lbl_801CEBAC
+/* 801CEBA4 001CA804 7C 80 23 78 */ mr r0, r4
+/* 801CEBA8 001CA808 48 00 00 10 */ b lbl_801CEBB8
+lbl_801CEBAC:
+/* 801CEBAC 001CA80C 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CEBB0 001CA810 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 801CEBB4 001CA814 7C 03 20 AE */ lbzx r0, r3, r4
+lbl_801CEBB8:
+/* 801CEBB8 001CA818 7C 05 00 00 */ cmpw r5, r0
+/* 801CEBBC 001CA81C 41 82 FF 90 */ beq lbl_801CEB4C
+lbl_801CEBC0:
+/* 801CEBC0 001CA820 2C 15 00 03 */ cmpwi r21, 3
+/* 801CEBC4 001CA824 41 82 00 0C */ beq lbl_801CEBD0
+/* 801CEBC8 001CA828 2C 15 00 08 */ cmpwi r21, 8
+/* 801CEBCC 001CA82C 40 82 00 44 */ bne lbl_801CEC10
+lbl_801CEBD0:
+/* 801CEBD0 001CA830 80 01 00 90 */ lwz r0, 0x90(r1)
+/* 801CEBD4 001CA834 2C 00 00 00 */ cmpwi r0, 0
+/* 801CEBD8 001CA838 41 82 00 18 */ beq lbl_801CEBF0
+/* 801CEBDC 001CA83C 3C 60 80 64 */ lis r3, lbl_8063D6BC@ha
+/* 801CEBE0 001CA840 C0 03 D6 BC */ lfs f0, lbl_8063D6BC@l(r3)
+/* 801CEBE4 001CA844 FC 20 00 50 */ fneg f1, f0
+/* 801CEBE8 001CA848 FC 20 08 18 */ frsp f1, f1
+/* 801CEBEC 001CA84C 48 00 00 0C */ b lbl_801CEBF8
+lbl_801CEBF0:
+/* 801CEBF0 001CA850 3C 60 80 64 */ lis r3, lbl_8063D6BC@ha
+/* 801CEBF4 001CA854 C0 23 D6 BC */ lfs f1, lbl_8063D6BC@l(r3)
+lbl_801CEBF8:
+/* 801CEBF8 001CA858 80 01 00 88 */ lwz r0, 0x88(r1)
+/* 801CEBFC 001CA85C 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 801CEC00 001CA860 7C 00 72 14 */ add r0, r0, r14
+/* 801CEC04 001CA864 7C 15 02 14 */ add r0, r21, r0
+/* 801CEC08 001CA868 90 03 00 00 */ stw r0, 0(r3)
+/* 801CEC0C 001CA86C 48 00 0F DC */ b lbl_801CFBE8
+lbl_801CEC10:
+/* 801CEC10 001CA870 3A 20 10 00 */ li r17, 0x1000
+/* 801CEC14 001CA874 48 00 0C 98 */ b lbl_801CF8AC
+lbl_801CEC18:
+/* 801CEC18 001CA878 88 E2 91 58 */ lbz r7, lbl_80641758-_SDA2_BASE_(r2)
+/* 801CEC1C 001CA87C 3A A0 00 00 */ li r21, 0
+/* 801CEC20 001CA880 88 C2 91 59 */ lbz r6, lbl_80641759-_SDA2_BASE_(r2)
+/* 801CEC24 001CA884 3A 21 00 19 */ addi r17, r1, 0x19
+/* 801CEC28 001CA888 88 A2 91 5A */ lbz r5, lbl_8064175A-_SDA2_BASE_(r2)
+/* 801CEC2C 001CA88C 3A C0 00 01 */ li r22, 1
+/* 801CEC30 001CA890 88 62 91 5B */ lbz r3, lbl_8064175B-_SDA2_BASE_(r2)
+/* 801CEC34 001CA894 88 02 91 5C */ lbz r0, lbl_8064175C-_SDA2_BASE_(r2)
+/* 801CEC38 001CA898 98 E1 00 18 */ stb r7, 0x18(r1)
+/* 801CEC3C 001CA89C 98 C1 00 19 */ stb r6, 0x19(r1)
+/* 801CEC40 001CA8A0 98 A1 00 1A */ stb r5, 0x1a(r1)
+/* 801CEC44 001CA8A4 98 61 00 1B */ stb r3, 0x1b(r1)
+/* 801CEC48 001CA8A8 98 01 00 1C */ stb r0, 0x1c(r1)
+/* 801CEC4C 001CA8AC 92 A1 00 38 */ stw r21, 0x38(r1)
+/* 801CEC50 001CA8B0 92 A1 00 3C */ stw r21, 0x3c(r1)
+/* 801CEC54 001CA8B4 92 A1 00 40 */ stw r21, 0x40(r1)
+/* 801CEC58 001CA8B8 92 A1 00 44 */ stw r21, 0x44(r1)
+/* 801CEC5C 001CA8BC 92 A1 00 48 */ stw r21, 0x48(r1)
+/* 801CEC60 001CA8C0 92 A1 00 4C */ stw r21, 0x4c(r1)
+/* 801CEC64 001CA8C4 92 A1 00 50 */ stw r21, 0x50(r1)
+/* 801CEC68 001CA8C8 92 A1 00 54 */ stw r21, 0x54(r1)
+/* 801CEC6C 001CA8CC 48 00 00 2C */ b lbl_801CEC98
+lbl_801CEC70:
+/* 801CEC70 001CA8D0 7E 4C 93 78 */ mr r12, r18
+/* 801CEC74 001CA8D4 7E 63 9B 78 */ mr r3, r19
+/* 801CEC78 001CA8D8 38 80 00 00 */ li r4, 0
+/* 801CEC7C 001CA8DC 38 A0 00 00 */ li r5, 0
+/* 801CEC80 001CA8E0 7D 89 03 A6 */ mtctr r12
+/* 801CEC84 001CA8E4 3A 31 00 01 */ addi r17, r17, 1
+/* 801CEC88 001CA8E8 3A D6 00 01 */ addi r22, r22, 1
+/* 801CEC8C 001CA8EC 3B DE 00 01 */ addi r30, r30, 1
+/* 801CEC90 001CA8F0 4E 80 04 21 */ bctrl
+/* 801CEC94 001CA8F4 7C 64 1B 78 */ mr r4, r3
+lbl_801CEC98:
+/* 801CEC98 001CA8F8 2C 16 00 04 */ cmpwi r22, 4
+/* 801CEC9C 001CA8FC 40 80 00 48 */ bge lbl_801CECE4
+/* 801CECA0 001CA900 88 71 00 00 */ lbz r3, 0(r17)
+/* 801CECA4 001CA904 2C 04 00 00 */ cmpwi r4, 0
+/* 801CECA8 001CA908 38 00 00 00 */ li r0, 0
+/* 801CECAC 001CA90C 7C 65 07 74 */ extsb r5, r3
+/* 801CECB0 001CA910 41 80 00 0C */ blt lbl_801CECBC
+/* 801CECB4 001CA914 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CECB8 001CA918 41 80 00 08 */ blt lbl_801CECC0
+lbl_801CECBC:
+/* 801CECBC 001CA91C 38 00 00 01 */ li r0, 1
+lbl_801CECC0:
+/* 801CECC0 001CA920 2C 00 00 00 */ cmpwi r0, 0
+/* 801CECC4 001CA924 41 82 00 0C */ beq lbl_801CECD0
+/* 801CECC8 001CA928 7C 80 23 78 */ mr r0, r4
+/* 801CECCC 001CA92C 48 00 00 10 */ b lbl_801CECDC
+lbl_801CECD0:
+/* 801CECD0 001CA930 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CECD4 001CA934 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 801CECD8 001CA938 7C 03 20 AE */ lbzx r0, r3, r4
+lbl_801CECDC:
+/* 801CECDC 001CA93C 7C 05 00 00 */ cmpw r5, r0
+/* 801CECE0 001CA940 41 82 FF 90 */ beq lbl_801CEC70
+lbl_801CECE4:
+/* 801CECE4 001CA944 38 16 FF FD */ addi r0, r22, -3
+/* 801CECE8 001CA948 28 00 00 01 */ cmplwi r0, 1
+/* 801CECEC 001CA94C 41 81 01 30 */ bgt lbl_801CEE1C
+/* 801CECF0 001CA950 2C 16 00 04 */ cmpwi r22, 4
+/* 801CECF4 001CA954 40 82 00 E4 */ bne lbl_801CEDD8
+/* 801CECF8 001CA958 3A 21 00 38 */ addi r17, r1, 0x38
+/* 801CECFC 001CA95C 48 00 00 30 */ b lbl_801CED2C
+lbl_801CED00:
+/* 801CED00 001CA960 7E 4C 93 78 */ mr r12, r18
+/* 801CED04 001CA964 98 91 00 00 */ stb r4, 0(r17)
+/* 801CED08 001CA968 7E 63 9B 78 */ mr r3, r19
+/* 801CED0C 001CA96C 38 80 00 00 */ li r4, 0
+/* 801CED10 001CA970 38 A0 00 00 */ li r5, 0
+/* 801CED14 001CA974 7D 89 03 A6 */ mtctr r12
+/* 801CED18 001CA978 3A B5 00 01 */ addi r21, r21, 1
+/* 801CED1C 001CA97C 3A 31 00 01 */ addi r17, r17, 1
+/* 801CED20 001CA980 3B DE 00 01 */ addi r30, r30, 1
+/* 801CED24 001CA984 4E 80 04 21 */ bctrl
+/* 801CED28 001CA988 7C 64 1B 78 */ mr r4, r3
+lbl_801CED2C:
+/* 801CED2C 001CA98C 2C 15 00 20 */ cmpwi r21, 0x20
+/* 801CED30 001CA990 40 80 00 94 */ bge lbl_801CEDC4
+/* 801CED34 001CA994 2C 04 00 00 */ cmpwi r4, 0
+/* 801CED38 001CA998 38 00 00 00 */ li r0, 0
+/* 801CED3C 001CA99C 41 80 00 0C */ blt lbl_801CED48
+/* 801CED40 001CA9A0 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CED44 001CA9A4 41 80 00 08 */ blt lbl_801CED4C
+lbl_801CED48:
+/* 801CED48 001CA9A8 38 00 00 01 */ li r0, 1
+lbl_801CED4C:
+/* 801CED4C 001CA9AC 2C 00 00 00 */ cmpwi r0, 0
+/* 801CED50 001CA9B0 41 82 00 0C */ beq lbl_801CED5C
+/* 801CED54 001CA9B4 38 00 00 00 */ li r0, 0
+/* 801CED58 001CA9B8 48 00 00 18 */ b lbl_801CED70
+lbl_801CED5C:
+/* 801CED5C 001CA9BC 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CED60 001CA9C0 54 80 08 3C */ slwi r0, r4, 1
+/* 801CED64 001CA9C4 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CED68 001CA9C8 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CED6C 001CA9CC 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
+lbl_801CED70:
+/* 801CED70 001CA9D0 2C 00 00 00 */ cmpwi r0, 0
+/* 801CED74 001CA9D4 40 82 FF 8C */ bne lbl_801CED00
+/* 801CED78 001CA9D8 2C 04 00 00 */ cmpwi r4, 0
+/* 801CED7C 001CA9DC 38 00 00 00 */ li r0, 0
+/* 801CED80 001CA9E0 41 80 00 0C */ blt lbl_801CED8C
+/* 801CED84 001CA9E4 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CED88 001CA9E8 41 80 00 08 */ blt lbl_801CED90
+lbl_801CED8C:
+/* 801CED8C 001CA9EC 38 00 00 01 */ li r0, 1
+lbl_801CED90:
+/* 801CED90 001CA9F0 2C 00 00 00 */ cmpwi r0, 0
+/* 801CED94 001CA9F4 41 82 00 0C */ beq lbl_801CEDA0
+/* 801CED98 001CA9F8 38 00 00 00 */ li r0, 0
+/* 801CED9C 001CA9FC 48 00 00 18 */ b lbl_801CEDB4
+lbl_801CEDA0:
+/* 801CEDA0 001CAA00 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CEDA4 001CAA04 54 80 08 3C */ slwi r0, r4, 1
+/* 801CEDA8 001CAA08 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CEDAC 001CAA0C 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CEDB0 001CAA10 54 00 07 FE */ clrlwi r0, r0, 0x1f
+lbl_801CEDB4:
+/* 801CEDB4 001CAA14 2C 00 00 00 */ cmpwi r0, 0
+/* 801CEDB8 001CAA18 40 82 FF 48 */ bne lbl_801CED00
+/* 801CEDBC 001CAA1C 7C 04 D8 00 */ cmpw r4, r27
+/* 801CEDC0 001CAA20 41 82 FF 40 */ beq lbl_801CED00
+lbl_801CEDC4:
+/* 801CEDC4 001CAA24 2C 04 00 29 */ cmpwi r4, 0x29
+/* 801CEDC8 001CAA28 41 82 00 0C */ beq lbl_801CEDD4
+/* 801CEDCC 001CAA2C 3A 20 10 00 */ li r17, 0x1000
+/* 801CEDD0 001CAA30 48 00 0A DC */ b lbl_801CF8AC
+lbl_801CEDD4:
+/* 801CEDD4 001CAA34 3A B5 00 01 */ addi r21, r21, 1
+lbl_801CEDD8:
+/* 801CEDD8 001CAA38 80 01 00 90 */ lwz r0, 0x90(r1)
+/* 801CEDDC 001CAA3C 38 61 00 38 */ addi r3, r1, 0x38
+/* 801CEDE0 001CAA40 2C 00 00 00 */ cmpwi r0, 0
+/* 801CEDE4 001CAA44 38 00 00 00 */ li r0, 0
+/* 801CEDE8 001CAA48 7C 03 A9 AE */ stbx r0, r3, r21
+/* 801CEDEC 001CAA4C 41 82 00 10 */ beq lbl_801CEDFC
+/* 801CEDF0 001CAA50 48 00 5A 41 */ bl nan
+/* 801CEDF4 001CAA54 FC 20 08 50 */ fneg f1, f1
+/* 801CEDF8 001CAA58 48 00 00 08 */ b lbl_801CEE00
+lbl_801CEDFC:
+/* 801CEDFC 001CAA5C 48 00 5A 35 */ bl nan
+lbl_801CEE00:
+/* 801CEE00 001CAA60 80 01 00 88 */ lwz r0, 0x88(r1)
+/* 801CEE04 001CAA64 7C 60 B2 14 */ add r3, r0, r22
+/* 801CEE08 001CAA68 7C 15 72 14 */ add r0, r21, r14
+/* 801CEE0C 001CAA6C 7C 03 02 14 */ add r0, r3, r0
+/* 801CEE10 001CAA70 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 801CEE14 001CAA74 90 03 00 00 */ stw r0, 0(r3)
+/* 801CEE18 001CAA78 48 00 0D D0 */ b lbl_801CFBE8
+lbl_801CEE1C:
+/* 801CEE1C 001CAA7C 3A 20 10 00 */ li r17, 0x1000
+/* 801CEE20 001CAA80 48 00 0A 8C */ b lbl_801CF8AC
+lbl_801CEE24:
+/* 801CEE24 001CAA84 7C 04 D8 00 */ cmpw r4, r27
+/* 801CEE28 001CAA88 40 82 00 2C */ bne lbl_801CEE54
+/* 801CEE2C 001CAA8C 7E 4C 93 78 */ mr r12, r18
+/* 801CEE30 001CAA90 7E 63 9B 78 */ mr r3, r19
+/* 801CEE34 001CAA94 3A 20 00 10 */ li r17, 0x10
+/* 801CEE38 001CAA98 38 80 00 00 */ li r4, 0
+/* 801CEE3C 001CAA9C 38 A0 00 00 */ li r5, 0
+/* 801CEE40 001CAAA0 7D 89 03 A6 */ mtctr r12
+/* 801CEE44 001CAAA4 3B DE 00 01 */ addi r30, r30, 1
+/* 801CEE48 001CAAA8 4E 80 04 21 */ bctrl
+/* 801CEE4C 001CAAAC 7C 64 1B 78 */ mr r4, r3
+/* 801CEE50 001CAAB0 48 00 0A 5C */ b lbl_801CF8AC
+lbl_801CEE54:
+/* 801CEE54 001CAAB4 2C 04 00 00 */ cmpwi r4, 0
+/* 801CEE58 001CAAB8 38 00 00 00 */ li r0, 0
+/* 801CEE5C 001CAABC 41 80 00 0C */ blt lbl_801CEE68
+/* 801CEE60 001CAAC0 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CEE64 001CAAC4 41 80 00 08 */ blt lbl_801CEE6C
+lbl_801CEE68:
+/* 801CEE68 001CAAC8 38 00 00 01 */ li r0, 1
+lbl_801CEE6C:
+/* 801CEE6C 001CAACC 2C 00 00 00 */ cmpwi r0, 0
+/* 801CEE70 001CAAD0 41 82 00 0C */ beq lbl_801CEE7C
+/* 801CEE74 001CAAD4 38 00 00 00 */ li r0, 0
+/* 801CEE78 001CAAD8 48 00 00 18 */ b lbl_801CEE90
+lbl_801CEE7C:
+/* 801CEE7C 001CAADC 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CEE80 001CAAE0 54 80 08 3C */ slwi r0, r4, 1
+/* 801CEE84 001CAAE4 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CEE88 001CAAE8 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CEE8C 001CAAEC 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
+lbl_801CEE90:
+/* 801CEE90 001CAAF0 2C 00 00 00 */ cmpwi r0, 0
+/* 801CEE94 001CAAF4 40 82 00 0C */ bne lbl_801CEEA0
+/* 801CEE98 001CAAF8 3A 20 10 00 */ li r17, 0x1000
+/* 801CEE9C 001CAAFC 48 00 0A 10 */ b lbl_801CF8AC
+lbl_801CEEA0:
+/* 801CEEA0 001CAB00 2C 04 00 30 */ cmpwi r4, 0x30
+/* 801CEEA4 001CAB04 40 82 00 74 */ bne lbl_801CEF18
+/* 801CEEA8 001CAB08 7E 4C 93 78 */ mr r12, r18
+/* 801CEEAC 001CAB0C 7E 63 9B 78 */ mr r3, r19
+/* 801CEEB0 001CAB10 38 80 00 00 */ li r4, 0
+/* 801CEEB4 001CAB14 38 A0 00 00 */ li r5, 0
+/* 801CEEB8 001CAB18 7D 89 03 A6 */ mtctr r12
+/* 801CEEBC 001CAB1C 3B DE 00 01 */ addi r30, r30, 1
+/* 801CEEC0 001CAB20 4E 80 04 21 */ bctrl
+/* 801CEEC4 001CAB24 2C 03 00 00 */ cmpwi r3, 0
+/* 801CEEC8 001CAB28 7C 64 1B 78 */ mr r4, r3
+/* 801CEECC 001CAB2C 38 00 00 00 */ li r0, 0
+/* 801CEED0 001CAB30 41 80 00 0C */ blt lbl_801CEEDC
+/* 801CEED4 001CAB34 2C 03 01 00 */ cmpwi r3, 0x100
+/* 801CEED8 001CAB38 41 80 00 08 */ blt lbl_801CEEE0
+lbl_801CEEDC:
+/* 801CEEDC 001CAB3C 38 00 00 01 */ li r0, 1
+lbl_801CEEE0:
+/* 801CEEE0 001CAB40 2C 00 00 00 */ cmpwi r0, 0
+/* 801CEEE4 001CAB44 41 82 00 08 */ beq lbl_801CEEEC
+/* 801CEEE8 001CAB48 48 00 00 10 */ b lbl_801CEEF8
+lbl_801CEEEC:
+/* 801CEEEC 001CAB4C 80 B0 00 38 */ lwz r5, 0x38(r16)
+/* 801CEEF0 001CAB50 80 A5 00 0C */ lwz r5, 0xc(r5)
+/* 801CEEF4 001CAB54 7C 65 18 AE */ lbzx r3, r5, r3
+lbl_801CEEF8:
+/* 801CEEF8 001CAB58 2C 03 00 58 */ cmpwi r3, 0x58
+/* 801CEEFC 001CAB5C 40 82 00 14 */ bne lbl_801CEF10
+/* 801CEF00 001CAB60 3C 60 00 01 */ lis r3, 0x00008000@ha
+/* 801CEF04 001CAB64 3B E0 00 01 */ li r31, 1
+/* 801CEF08 001CAB68 3A 23 80 00 */ addi r17, r3, 0x00008000@l
+/* 801CEF0C 001CAB6C 48 00 09 A0 */ b lbl_801CF8AC
+lbl_801CEF10:
+/* 801CEF10 001CAB70 3A 20 00 04 */ li r17, 4
+/* 801CEF14 001CAB74 48 00 09 98 */ b lbl_801CF8AC
+lbl_801CEF18:
+/* 801CEF18 001CAB78 3A 20 00 08 */ li r17, 8
+/* 801CEF1C 001CAB7C 48 00 09 90 */ b lbl_801CF8AC
+lbl_801CEF20:
+/* 801CEF20 001CAB80 2C 04 00 30 */ cmpwi r4, 0x30
+/* 801CEF24 001CAB84 40 82 00 28 */ bne lbl_801CEF4C
+/* 801CEF28 001CAB88 7E 4C 93 78 */ mr r12, r18
+/* 801CEF2C 001CAB8C 7E 63 9B 78 */ mr r3, r19
+/* 801CEF30 001CAB90 38 80 00 00 */ li r4, 0
+/* 801CEF34 001CAB94 38 A0 00 00 */ li r5, 0
+/* 801CEF38 001CAB98 7D 89 03 A6 */ mtctr r12
+/* 801CEF3C 001CAB9C 3B DE 00 01 */ addi r30, r30, 1
+/* 801CEF40 001CABA0 4E 80 04 21 */ bctrl
+/* 801CEF44 001CABA4 7C 64 1B 78 */ mr r4, r3
+/* 801CEF48 001CABA8 48 00 09 64 */ b lbl_801CF8AC
+lbl_801CEF4C:
+/* 801CEF4C 001CABAC 3A 20 00 08 */ li r17, 8
+/* 801CEF50 001CABB0 48 00 09 5C */ b lbl_801CF8AC
+lbl_801CEF54:
+/* 801CEF54 001CABB4 2C 04 00 00 */ cmpwi r4, 0
+/* 801CEF58 001CABB8 38 00 00 00 */ li r0, 0
+/* 801CEF5C 001CABBC 41 80 00 0C */ blt lbl_801CEF68
+/* 801CEF60 001CABC0 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CEF64 001CABC4 41 80 00 08 */ blt lbl_801CEF6C
+lbl_801CEF68:
+/* 801CEF68 001CABC8 38 00 00 01 */ li r0, 1
+lbl_801CEF6C:
+/* 801CEF6C 001CABCC 2C 00 00 00 */ cmpwi r0, 0
+/* 801CEF70 001CABD0 41 82 00 0C */ beq lbl_801CEF7C
+/* 801CEF74 001CABD4 38 00 00 00 */ li r0, 0
+/* 801CEF78 001CABD8 48 00 00 18 */ b lbl_801CEF90
+lbl_801CEF7C:
+/* 801CEF7C 001CABDC 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CEF80 001CABE0 54 80 08 3C */ slwi r0, r4, 1
+/* 801CEF84 001CABE4 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CEF88 001CABE8 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CEF8C 001CABEC 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
+lbl_801CEF90:
+/* 801CEF90 001CABF0 2C 00 00 00 */ cmpwi r0, 0
+/* 801CEF94 001CABF4 40 82 00 3C */ bne lbl_801CEFD0
+/* 801CEF98 001CABF8 7C 04 D8 00 */ cmpw r4, r27
+/* 801CEF9C 001CABFC 40 82 00 2C */ bne lbl_801CEFC8
+/* 801CEFA0 001CAC00 7E 4C 93 78 */ mr r12, r18
+/* 801CEFA4 001CAC04 7E 63 9B 78 */ mr r3, r19
+/* 801CEFA8 001CAC08 3A 20 00 20 */ li r17, 0x20
+/* 801CEFAC 001CAC0C 38 80 00 00 */ li r4, 0
+/* 801CEFB0 001CAC10 38 A0 00 00 */ li r5, 0
+/* 801CEFB4 001CAC14 7D 89 03 A6 */ mtctr r12
+/* 801CEFB8 001CAC18 3B DE 00 01 */ addi r30, r30, 1
+/* 801CEFBC 001CAC1C 4E 80 04 21 */ bctrl
+/* 801CEFC0 001CAC20 7C 64 1B 78 */ mr r4, r3
+/* 801CEFC4 001CAC24 48 00 08 E8 */ b lbl_801CF8AC
+lbl_801CEFC8:
+/* 801CEFC8 001CAC28 3A 20 00 40 */ li r17, 0x40
+/* 801CEFCC 001CAC2C 48 00 08 E0 */ b lbl_801CF8AC
+lbl_801CEFD0:
+/* 801CEFD0 001CAC30 88 A1 00 5C */ lbz r5, 0x5c(r1)
+/* 801CEFD4 001CAC34 28 05 00 14 */ cmplwi r5, 0x14
+/* 801CEFD8 001CAC38 40 80 00 1C */ bge lbl_801CEFF4
+/* 801CEFDC 001CAC3C 38 01 00 58 */ addi r0, r1, 0x58
+/* 801CEFE0 001CAC40 7C 60 2A 14 */ add r3, r0, r5
+/* 801CEFE4 001CAC44 98 83 00 05 */ stb r4, 5(r3)
+/* 801CEFE8 001CAC48 38 05 00 01 */ addi r0, r5, 1
+/* 801CEFEC 001CAC4C 98 01 00 5C */ stb r0, 0x5c(r1)
+/* 801CEFF0 001CAC50 48 00 00 08 */ b lbl_801CEFF8
+lbl_801CEFF4:
+/* 801CEFF4 001CAC54 3B 9C 00 01 */ addi r28, r28, 1
+lbl_801CEFF8:
+/* 801CEFF8 001CAC58 7E 4C 93 78 */ mr r12, r18
+/* 801CEFFC 001CAC5C 7E 63 9B 78 */ mr r3, r19
+/* 801CF000 001CAC60 38 80 00 00 */ li r4, 0
+/* 801CF004 001CAC64 38 A0 00 00 */ li r5, 0
+/* 801CF008 001CAC68 7D 89 03 A6 */ mtctr r12
+/* 801CF00C 001CAC6C 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF010 001CAC70 4E 80 04 21 */ bctrl
+/* 801CF014 001CAC74 7C 64 1B 78 */ mr r4, r3
+/* 801CF018 001CAC78 48 00 08 94 */ b lbl_801CF8AC
+lbl_801CF01C:
+/* 801CF01C 001CAC7C 2C 04 00 00 */ cmpwi r4, 0
+/* 801CF020 001CAC80 38 00 00 00 */ li r0, 0
+/* 801CF024 001CAC84 41 80 00 0C */ blt lbl_801CF030
+/* 801CF028 001CAC88 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CF02C 001CAC8C 41 80 00 08 */ blt lbl_801CF034
+lbl_801CF030:
+/* 801CF030 001CAC90 38 00 00 01 */ li r0, 1
+lbl_801CF034:
+/* 801CF034 001CAC94 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF038 001CAC98 41 82 00 0C */ beq lbl_801CF044
+/* 801CF03C 001CAC9C 38 00 00 00 */ li r0, 0
+/* 801CF040 001CACA0 48 00 00 18 */ b lbl_801CF058
+lbl_801CF044:
+/* 801CF044 001CACA4 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CF048 001CACA8 54 80 08 3C */ slwi r0, r4, 1
+/* 801CF04C 001CACAC 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CF050 001CACB0 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CF054 001CACB4 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
+lbl_801CF058:
+/* 801CF058 001CACB8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF05C 001CACBC 40 82 00 0C */ bne lbl_801CF068
+/* 801CF060 001CACC0 3A 20 10 00 */ li r17, 0x1000
+/* 801CF064 001CACC4 48 00 08 48 */ b lbl_801CF8AC
+lbl_801CF068:
+/* 801CF068 001CACC8 3A 20 00 20 */ li r17, 0x20
+/* 801CF06C 001CACCC 48 00 08 40 */ b lbl_801CF8AC
+lbl_801CF070:
+/* 801CF070 001CACD0 2C 04 00 00 */ cmpwi r4, 0
+/* 801CF074 001CACD4 38 00 00 00 */ li r0, 0
+/* 801CF078 001CACD8 41 80 00 0C */ blt lbl_801CF084
+/* 801CF07C 001CACDC 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CF080 001CACE0 41 80 00 08 */ blt lbl_801CF088
+lbl_801CF084:
+/* 801CF084 001CACE4 38 00 00 01 */ li r0, 1
+lbl_801CF088:
+/* 801CF088 001CACE8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF08C 001CACEC 41 82 00 0C */ beq lbl_801CF098
+/* 801CF090 001CACF0 38 00 00 00 */ li r0, 0
+/* 801CF094 001CACF4 48 00 00 18 */ b lbl_801CF0AC
+lbl_801CF098:
+/* 801CF098 001CACF8 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CF09C 001CACFC 54 80 08 3C */ slwi r0, r4, 1
+/* 801CF0A0 001CAD00 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CF0A4 001CAD04 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CF0A8 001CAD08 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
+lbl_801CF0AC:
+/* 801CF0AC 001CAD0C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF0B0 001CAD10 40 82 00 0C */ bne lbl_801CF0BC
+/* 801CF0B4 001CAD14 3A 20 00 40 */ li r17, 0x40
+/* 801CF0B8 001CAD18 48 00 07 F4 */ b lbl_801CF8AC
+lbl_801CF0BC:
+/* 801CF0BC 001CAD1C 88 01 00 5C */ lbz r0, 0x5c(r1)
+/* 801CF0C0 001CAD20 28 00 00 14 */ cmplwi r0, 0x14
+/* 801CF0C4 001CAD24 40 80 00 30 */ bge lbl_801CF0F4
+/* 801CF0C8 001CAD28 2C 04 00 30 */ cmpwi r4, 0x30
+/* 801CF0CC 001CAD2C 40 82 00 0C */ bne lbl_801CF0D8
+/* 801CF0D0 001CAD30 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF0D4 001CAD34 41 82 00 1C */ beq lbl_801CF0F0
+lbl_801CF0D8:
+/* 801CF0D8 001CAD38 88 A1 00 5C */ lbz r5, 0x5c(r1)
+/* 801CF0DC 001CAD3C 38 01 00 58 */ addi r0, r1, 0x58
+/* 801CF0E0 001CAD40 7C 60 2A 14 */ add r3, r0, r5
+/* 801CF0E4 001CAD44 38 05 00 01 */ addi r0, r5, 1
+/* 801CF0E8 001CAD48 98 83 00 05 */ stb r4, 5(r3)
+/* 801CF0EC 001CAD4C 98 01 00 5C */ stb r0, 0x5c(r1)
+lbl_801CF0F0:
+/* 801CF0F0 001CAD50 3B 9C FF FF */ addi r28, r28, -1
+lbl_801CF0F4:
+/* 801CF0F4 001CAD54 7E 4C 93 78 */ mr r12, r18
+/* 801CF0F8 001CAD58 7E 63 9B 78 */ mr r3, r19
+/* 801CF0FC 001CAD5C 38 80 00 00 */ li r4, 0
+/* 801CF100 001CAD60 38 A0 00 00 */ li r5, 0
+/* 801CF104 001CAD64 7D 89 03 A6 */ mtctr r12
+/* 801CF108 001CAD68 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF10C 001CAD6C 4E 80 04 21 */ bctrl
+/* 801CF110 001CAD70 7C 64 1B 78 */ mr r4, r3
+/* 801CF114 001CAD74 48 00 07 98 */ b lbl_801CF8AC
+lbl_801CF118:
+/* 801CF118 001CAD78 2C 04 00 00 */ cmpwi r4, 0
+/* 801CF11C 001CAD7C 38 00 00 00 */ li r0, 0
+/* 801CF120 001CAD80 41 80 00 0C */ blt lbl_801CF12C
+/* 801CF124 001CAD84 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CF128 001CAD88 41 80 00 08 */ blt lbl_801CF130
+lbl_801CF12C:
+/* 801CF12C 001CAD8C 38 00 00 01 */ li r0, 1
+lbl_801CF130:
+/* 801CF130 001CAD90 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF134 001CAD94 41 82 00 0C */ beq lbl_801CF140
+/* 801CF138 001CAD98 7C 80 23 78 */ mr r0, r4
+/* 801CF13C 001CAD9C 48 00 00 10 */ b lbl_801CF14C
+lbl_801CF140:
+/* 801CF140 001CADA0 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CF144 001CADA4 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 801CF148 001CADA8 7C 03 20 AE */ lbzx r0, r3, r4
+lbl_801CF14C:
+/* 801CF14C 001CADAC 2C 00 00 45 */ cmpwi r0, 0x45
+/* 801CF150 001CADB0 40 82 00 2C */ bne lbl_801CF17C
+/* 801CF154 001CADB4 7E 4C 93 78 */ mr r12, r18
+/* 801CF158 001CADB8 7E 63 9B 78 */ mr r3, r19
+/* 801CF15C 001CADBC 3A 20 00 80 */ li r17, 0x80
+/* 801CF160 001CADC0 38 80 00 00 */ li r4, 0
+/* 801CF164 001CADC4 38 A0 00 00 */ li r5, 0
+/* 801CF168 001CADC8 7D 89 03 A6 */ mtctr r12
+/* 801CF16C 001CADCC 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF170 001CADD0 4E 80 04 21 */ bctrl
+/* 801CF174 001CADD4 7C 64 1B 78 */ mr r4, r3
+/* 801CF178 001CADD8 48 00 07 34 */ b lbl_801CF8AC
+lbl_801CF17C:
+/* 801CF17C 001CADDC 3A 20 08 00 */ li r17, 0x800
+/* 801CF180 001CADE0 48 00 07 2C */ b lbl_801CF8AC
+lbl_801CF184:
+/* 801CF184 001CADE4 2C 04 00 2B */ cmpwi r4, 0x2b
+/* 801CF188 001CADE8 40 82 00 28 */ bne lbl_801CF1B0
+/* 801CF18C 001CADEC 7E 4C 93 78 */ mr r12, r18
+/* 801CF190 001CADF0 7E 63 9B 78 */ mr r3, r19
+/* 801CF194 001CADF4 38 80 00 00 */ li r4, 0
+/* 801CF198 001CADF8 38 A0 00 00 */ li r5, 0
+/* 801CF19C 001CADFC 7D 89 03 A6 */ mtctr r12
+/* 801CF1A0 001CAE00 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF1A4 001CAE04 4E 80 04 21 */ bctrl
+/* 801CF1A8 001CAE08 7C 64 1B 78 */ mr r4, r3
+/* 801CF1AC 001CAE0C 48 00 00 34 */ b lbl_801CF1E0
+lbl_801CF1B0:
+/* 801CF1B0 001CAE10 2C 04 00 2D */ cmpwi r4, 0x2d
+/* 801CF1B4 001CAE14 40 82 00 2C */ bne lbl_801CF1E0
+/* 801CF1B8 001CAE18 7E 4C 93 78 */ mr r12, r18
+/* 801CF1BC 001CAE1C 7E 63 9B 78 */ mr r3, r19
+/* 801CF1C0 001CAE20 38 80 00 00 */ li r4, 0
+/* 801CF1C4 001CAE24 38 A0 00 00 */ li r5, 0
+/* 801CF1C8 001CAE28 7D 89 03 A6 */ mtctr r12
+/* 801CF1CC 001CAE2C 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF1D0 001CAE30 4E 80 04 21 */ bctrl
+/* 801CF1D4 001CAE34 38 00 00 01 */ li r0, 1
+/* 801CF1D8 001CAE38 7C 64 1B 78 */ mr r4, r3
+/* 801CF1DC 001CAE3C 90 01 00 8C */ stw r0, 0x8c(r1)
+lbl_801CF1E0:
+/* 801CF1E0 001CAE40 3A 20 01 00 */ li r17, 0x100
+/* 801CF1E4 001CAE44 48 00 06 C8 */ b lbl_801CF8AC
+lbl_801CF1E8:
+/* 801CF1E8 001CAE48 2C 04 00 00 */ cmpwi r4, 0
+/* 801CF1EC 001CAE4C 38 00 00 00 */ li r0, 0
+/* 801CF1F0 001CAE50 41 80 00 0C */ blt lbl_801CF1FC
+/* 801CF1F4 001CAE54 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CF1F8 001CAE58 41 80 00 08 */ blt lbl_801CF200
+lbl_801CF1FC:
+/* 801CF1FC 001CAE5C 38 00 00 01 */ li r0, 1
+lbl_801CF200:
+/* 801CF200 001CAE60 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF204 001CAE64 41 82 00 0C */ beq lbl_801CF210
+/* 801CF208 001CAE68 38 00 00 00 */ li r0, 0
+/* 801CF20C 001CAE6C 48 00 00 18 */ b lbl_801CF224
+lbl_801CF210:
+/* 801CF210 001CAE70 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CF214 001CAE74 54 80 08 3C */ slwi r0, r4, 1
+/* 801CF218 001CAE78 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CF21C 001CAE7C 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CF220 001CAE80 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
+lbl_801CF224:
+/* 801CF224 001CAE84 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF228 001CAE88 40 82 00 0C */ bne lbl_801CF234
+/* 801CF22C 001CAE8C 3A 20 10 00 */ li r17, 0x1000
+/* 801CF230 001CAE90 48 00 06 7C */ b lbl_801CF8AC
+lbl_801CF234:
+/* 801CF234 001CAE94 2C 04 00 30 */ cmpwi r4, 0x30
+/* 801CF238 001CAE98 40 82 00 2C */ bne lbl_801CF264
+/* 801CF23C 001CAE9C 7E 4C 93 78 */ mr r12, r18
+/* 801CF240 001CAEA0 7E 63 9B 78 */ mr r3, r19
+/* 801CF244 001CAEA4 3A 20 02 00 */ li r17, 0x200
+/* 801CF248 001CAEA8 38 80 00 00 */ li r4, 0
+/* 801CF24C 001CAEAC 38 A0 00 00 */ li r5, 0
+/* 801CF250 001CAEB0 7D 89 03 A6 */ mtctr r12
+/* 801CF254 001CAEB4 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF258 001CAEB8 4E 80 04 21 */ bctrl
+/* 801CF25C 001CAEBC 7C 64 1B 78 */ mr r4, r3
+/* 801CF260 001CAEC0 48 00 06 4C */ b lbl_801CF8AC
+lbl_801CF264:
+/* 801CF264 001CAEC4 3A 20 04 00 */ li r17, 0x400
+/* 801CF268 001CAEC8 48 00 06 44 */ b lbl_801CF8AC
+lbl_801CF26C:
+/* 801CF26C 001CAECC 2C 04 00 30 */ cmpwi r4, 0x30
+/* 801CF270 001CAED0 40 82 00 28 */ bne lbl_801CF298
+/* 801CF274 001CAED4 7E 4C 93 78 */ mr r12, r18
+/* 801CF278 001CAED8 7E 63 9B 78 */ mr r3, r19
+/* 801CF27C 001CAEDC 38 80 00 00 */ li r4, 0
+/* 801CF280 001CAEE0 38 A0 00 00 */ li r5, 0
+/* 801CF284 001CAEE4 7D 89 03 A6 */ mtctr r12
+/* 801CF288 001CAEE8 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF28C 001CAEEC 4E 80 04 21 */ bctrl
+/* 801CF290 001CAEF0 7C 64 1B 78 */ mr r4, r3
+/* 801CF294 001CAEF4 48 00 06 18 */ b lbl_801CF8AC
+lbl_801CF298:
+/* 801CF298 001CAEF8 3A 20 04 00 */ li r17, 0x400
+/* 801CF29C 001CAEFC 48 00 06 10 */ b lbl_801CF8AC
+lbl_801CF2A0:
+/* 801CF2A0 001CAF00 2C 04 00 00 */ cmpwi r4, 0
+/* 801CF2A4 001CAF04 38 00 00 00 */ li r0, 0
+/* 801CF2A8 001CAF08 41 80 00 0C */ blt lbl_801CF2B4
+/* 801CF2AC 001CAF0C 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CF2B0 001CAF10 41 80 00 08 */ blt lbl_801CF2B8
+lbl_801CF2B4:
+/* 801CF2B4 001CAF14 38 00 00 01 */ li r0, 1
+lbl_801CF2B8:
+/* 801CF2B8 001CAF18 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF2BC 001CAF1C 41 82 00 0C */ beq lbl_801CF2C8
+/* 801CF2C0 001CAF20 38 00 00 00 */ li r0, 0
+/* 801CF2C4 001CAF24 48 00 00 18 */ b lbl_801CF2DC
+lbl_801CF2C8:
+/* 801CF2C8 001CAF28 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CF2CC 001CAF2C 54 80 08 3C */ slwi r0, r4, 1
+/* 801CF2D0 001CAF30 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CF2D4 001CAF34 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CF2D8 001CAF38 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
+lbl_801CF2DC:
+/* 801CF2DC 001CAF3C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF2E0 001CAF40 40 82 00 0C */ bne lbl_801CF2EC
+/* 801CF2E4 001CAF44 3A 20 08 00 */ li r17, 0x800
+/* 801CF2E8 001CAF48 48 00 05 C4 */ b lbl_801CF8AC
+lbl_801CF2EC:
+/* 801CF2EC 001CAF4C 1C 1D 00 0A */ mulli r0, r29, 0xa
+/* 801CF2F0 001CAF50 7C 64 02 14 */ add r3, r4, r0
+/* 801CF2F4 001CAF54 3B A3 FF D0 */ addi r29, r3, -48
+/* 801CF2F8 001CAF58 2C 1D 7F FF */ cmpwi r29, 0x7fff
+/* 801CF2FC 001CAF5C 40 81 00 0C */ ble lbl_801CF308
+/* 801CF300 001CAF60 38 00 00 01 */ li r0, 1
+/* 801CF304 001CAF64 90 14 00 00 */ stw r0, 0(r20)
+lbl_801CF308:
+/* 801CF308 001CAF68 7E 4C 93 78 */ mr r12, r18
+/* 801CF30C 001CAF6C 7E 63 9B 78 */ mr r3, r19
+/* 801CF310 001CAF70 38 80 00 00 */ li r4, 0
+/* 801CF314 001CAF74 38 A0 00 00 */ li r5, 0
+/* 801CF318 001CAF78 7D 89 03 A6 */ mtctr r12
+/* 801CF31C 001CAF7C 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF320 001CAF80 4E 80 04 21 */ bctrl
+/* 801CF324 001CAF84 7C 64 1B 78 */ mr r4, r3
+/* 801CF328 001CAF88 48 00 05 84 */ b lbl_801CF8AC
+lbl_801CF32C:
+/* 801CF32C 001CAF8C 2C 1F 00 10 */ cmpwi r31, 0x10
+/* 801CF330 001CAF90 41 82 03 74 */ beq lbl_801CF6A4
+/* 801CF334 001CAF94 40 80 00 34 */ bge lbl_801CF368
+/* 801CF338 001CAF98 2C 1F 00 04 */ cmpwi r31, 4
+/* 801CF33C 001CAF9C 41 82 00 D4 */ beq lbl_801CF410
+/* 801CF340 001CAFA0 40 80 00 1C */ bge lbl_801CF35C
+/* 801CF344 001CAFA4 2C 1F 00 02 */ cmpwi r31, 2
+/* 801CF348 001CAFA8 41 82 00 94 */ beq lbl_801CF3DC
+/* 801CF34C 001CAFAC 40 80 05 60 */ bge lbl_801CF8AC
+/* 801CF350 001CAFB0 2C 1F 00 01 */ cmpwi r31, 1
+/* 801CF354 001CAFB4 40 80 00 44 */ bge lbl_801CF398
+/* 801CF358 001CAFB8 48 00 05 54 */ b lbl_801CF8AC
+lbl_801CF35C:
+/* 801CF35C 001CAFBC 2C 1F 00 08 */ cmpwi r31, 8
+/* 801CF360 001CAFC0 41 82 02 14 */ beq lbl_801CF574
+/* 801CF364 001CAFC4 48 00 05 48 */ b lbl_801CF8AC
+lbl_801CF368:
+/* 801CF368 001CAFC8 2C 1F 00 80 */ cmpwi r31, 0x80
+/* 801CF36C 001CAFCC 41 82 04 84 */ beq lbl_801CF7F0
+/* 801CF370 001CAFD0 40 80 00 1C */ bge lbl_801CF38C
+/* 801CF374 001CAFD4 2C 1F 00 40 */ cmpwi r31, 0x40
+/* 801CF378 001CAFD8 41 82 03 F4 */ beq lbl_801CF76C
+/* 801CF37C 001CAFDC 40 80 05 30 */ bge lbl_801CF8AC
+/* 801CF380 001CAFE0 2C 1F 00 20 */ cmpwi r31, 0x20
+/* 801CF384 001CAFE4 41 82 03 8C */ beq lbl_801CF710
+/* 801CF388 001CAFE8 48 00 05 24 */ b lbl_801CF8AC
+lbl_801CF38C:
+/* 801CF38C 001CAFEC 2C 1F 01 00 */ cmpwi r31, 0x100
+/* 801CF390 001CAFF0 41 82 04 94 */ beq lbl_801CF824
+/* 801CF394 001CAFF4 48 00 05 18 */ b lbl_801CF8AC
+lbl_801CF398:
+/* 801CF398 001CAFF8 38 61 00 20 */ addi r3, r1, 0x20
+/* 801CF39C 001CAFFC 38 80 00 00 */ li r4, 0
+/* 801CF3A0 001CB000 38 A0 00 08 */ li r5, 8
+/* 801CF3A4 001CB004 4B E3 4D 61 */ bl memset
+/* 801CF3A8 001CB008 7E 4C 93 78 */ mr r12, r18
+/* 801CF3AC 001CB00C 7E 63 9B 78 */ mr r3, r19
+/* 801CF3B0 001CB010 3B 41 00 20 */ addi r26, r1, 0x20
+/* 801CF3B4 001CB014 3A E0 00 00 */ li r23, 0
+/* 801CF3B8 001CB018 3B 00 00 00 */ li r24, 0
+/* 801CF3BC 001CB01C 3B E0 00 02 */ li r31, 2
+/* 801CF3C0 001CB020 38 80 00 00 */ li r4, 0
+/* 801CF3C4 001CB024 38 A0 00 00 */ li r5, 0
+/* 801CF3C8 001CB028 7D 89 03 A6 */ mtctr r12
+/* 801CF3CC 001CB02C 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF3D0 001CB030 4E 80 04 21 */ bctrl
+/* 801CF3D4 001CB034 7C 64 1B 78 */ mr r4, r3
+/* 801CF3D8 001CB038 48 00 04 D4 */ b lbl_801CF8AC
+lbl_801CF3DC:
+/* 801CF3DC 001CB03C 2C 04 00 30 */ cmpwi r4, 0x30
+/* 801CF3E0 001CB040 40 82 00 28 */ bne lbl_801CF408
+/* 801CF3E4 001CB044 7E 4C 93 78 */ mr r12, r18
+/* 801CF3E8 001CB048 7E 63 9B 78 */ mr r3, r19
+/* 801CF3EC 001CB04C 38 80 00 00 */ li r4, 0
+/* 801CF3F0 001CB050 38 A0 00 00 */ li r5, 0
+/* 801CF3F4 001CB054 7D 89 03 A6 */ mtctr r12
+/* 801CF3F8 001CB058 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF3FC 001CB05C 4E 80 04 21 */ bctrl
+/* 801CF400 001CB060 7C 64 1B 78 */ mr r4, r3
+/* 801CF404 001CB064 48 00 04 A8 */ b lbl_801CF8AC
+lbl_801CF408:
+/* 801CF408 001CB068 3B E0 00 04 */ li r31, 4
+/* 801CF40C 001CB06C 48 00 04 A0 */ b lbl_801CF8AC
+lbl_801CF410:
+/* 801CF410 001CB070 2C 04 00 00 */ cmpwi r4, 0
+/* 801CF414 001CB074 38 00 00 00 */ li r0, 0
+/* 801CF418 001CB078 41 80 00 0C */ blt lbl_801CF424
+/* 801CF41C 001CB07C 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CF420 001CB080 41 80 00 08 */ blt lbl_801CF428
+lbl_801CF424:
+/* 801CF424 001CB084 38 00 00 01 */ li r0, 1
+lbl_801CF428:
+/* 801CF428 001CB088 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF42C 001CB08C 41 82 00 0C */ beq lbl_801CF438
+/* 801CF430 001CB090 38 00 00 00 */ li r0, 0
+/* 801CF434 001CB094 48 00 00 18 */ b lbl_801CF44C
+lbl_801CF438:
+/* 801CF438 001CB098 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CF43C 001CB09C 54 80 08 3C */ slwi r0, r4, 1
+/* 801CF440 001CB0A0 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CF444 001CB0A4 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CF448 001CB0A8 54 00 05 6A */ rlwinm r0, r0, 0, 0x15, 0x15
+lbl_801CF44C:
+/* 801CF44C 001CB0AC 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF450 001CB0B0 40 82 00 3C */ bne lbl_801CF48C
+/* 801CF454 001CB0B4 7C 04 D8 00 */ cmpw r4, r27
+/* 801CF458 001CB0B8 40 82 00 2C */ bne lbl_801CF484
+/* 801CF45C 001CB0BC 7E 4C 93 78 */ mr r12, r18
+/* 801CF460 001CB0C0 7E 63 9B 78 */ mr r3, r19
+/* 801CF464 001CB0C4 3B E0 00 08 */ li r31, 8
+/* 801CF468 001CB0C8 38 80 00 00 */ li r4, 0
+/* 801CF46C 001CB0CC 38 A0 00 00 */ li r5, 0
+/* 801CF470 001CB0D0 7D 89 03 A6 */ mtctr r12
+/* 801CF474 001CB0D4 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF478 001CB0D8 4E 80 04 21 */ bctrl
+/* 801CF47C 001CB0DC 7C 64 1B 78 */ mr r4, r3
+/* 801CF480 001CB0E0 48 00 04 2C */ b lbl_801CF8AC
+lbl_801CF484:
+/* 801CF484 001CB0E4 3B E0 00 10 */ li r31, 0x10
+/* 801CF488 001CB0E8 48 00 04 24 */ b lbl_801CF8AC
+lbl_801CF48C:
+/* 801CF48C 001CB0EC 38 00 00 0E */ li r0, 0xe
+/* 801CF490 001CB0F0 7C 17 00 40 */ cmplw r23, r0
+/* 801CF494 001CB0F4 40 80 00 BC */ bge lbl_801CF550
+/* 801CF498 001CB0F8 57 00 0F FE */ srwi r0, r24, 0x1f
+/* 801CF49C 001CB0FC 2C 04 00 00 */ cmpwi r4, 0
+/* 801CF4A0 001CB100 7C 00 C2 14 */ add r0, r0, r24
+/* 801CF4A4 001CB104 38 60 00 00 */ li r3, 0
+/* 801CF4A8 001CB108 7C 00 0E 70 */ srawi r0, r0, 1
+/* 801CF4AC 001CB10C 3A F7 00 01 */ addi r23, r23, 1
+/* 801CF4B0 001CB110 7C 1A 00 AE */ lbzx r0, r26, r0
+/* 801CF4B4 001CB114 41 80 00 0C */ blt lbl_801CF4C0
+/* 801CF4B8 001CB118 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CF4BC 001CB11C 41 80 00 08 */ blt lbl_801CF4C4
+lbl_801CF4C0:
+/* 801CF4C0 001CB120 38 60 00 01 */ li r3, 1
+lbl_801CF4C4:
+/* 801CF4C4 001CB124 2C 03 00 00 */ cmpwi r3, 0
+/* 801CF4C8 001CB128 41 82 00 08 */ beq lbl_801CF4D0
+/* 801CF4CC 001CB12C 48 00 00 10 */ b lbl_801CF4DC
+lbl_801CF4D0:
+/* 801CF4D0 001CB130 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CF4D4 001CB134 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 801CF4D8 001CB138 7C 83 20 AE */ lbzx r4, r3, r4
+lbl_801CF4DC:
+/* 801CF4DC 001CB13C 2C 04 00 41 */ cmpwi r4, 0x41
+/* 801CF4E0 001CB140 38 C4 FF D0 */ addi r6, r4, -48
+/* 801CF4E4 001CB144 41 80 00 08 */ blt lbl_801CF4EC
+/* 801CF4E8 001CB148 38 C4 FF C9 */ addi r6, r4, -55
+lbl_801CF4EC:
+/* 801CF4EC 001CB14C 57 05 0F FE */ srwi r5, r24, 0x1f
+/* 801CF4F0 001CB150 57 03 07 FE */ clrlwi r3, r24, 0x1f
+/* 801CF4F4 001CB154 7C 64 2A 78 */ xor r4, r3, r5
+/* 801CF4F8 001CB158 54 C3 26 36 */ rlwinm r3, r6, 4, 0x18, 0x1b
+/* 801CF4FC 001CB15C 7C 85 20 51 */ subf. r4, r5, r4
+/* 801CF500 001CB160 7C 03 1B 78 */ or r3, r0, r3
+/* 801CF504 001CB164 54 C4 06 3E */ clrlwi r4, r6, 0x18
+/* 801CF508 001CB168 54 65 06 3E */ clrlwi r5, r3, 0x18
+/* 801CF50C 001CB16C 41 82 00 0C */ beq lbl_801CF518
+/* 801CF510 001CB170 7C 00 23 78 */ or r0, r0, r4
+/* 801CF514 001CB174 54 05 06 3E */ clrlwi r5, r0, 0x18
+lbl_801CF518:
+/* 801CF518 001CB178 57 00 0F FE */ srwi r0, r24, 0x1f
+/* 801CF51C 001CB17C 7E 4C 93 78 */ mr r12, r18
+/* 801CF520 001CB180 7C 00 C2 14 */ add r0, r0, r24
+/* 801CF524 001CB184 7E 63 9B 78 */ mr r3, r19
+/* 801CF528 001CB188 7C 00 0E 70 */ srawi r0, r0, 1
+/* 801CF52C 001CB18C 38 80 00 00 */ li r4, 0
+/* 801CF530 001CB190 7C BA 01 AE */ stbx r5, r26, r0
+/* 801CF534 001CB194 38 A0 00 00 */ li r5, 0
+/* 801CF538 001CB198 7D 89 03 A6 */ mtctr r12
+/* 801CF53C 001CB19C 3B 18 00 01 */ addi r24, r24, 1
+/* 801CF540 001CB1A0 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF544 001CB1A4 4E 80 04 21 */ bctrl
+/* 801CF548 001CB1A8 7C 64 1B 78 */ mr r4, r3
+/* 801CF54C 001CB1AC 48 00 03 60 */ b lbl_801CF8AC
+lbl_801CF550:
+/* 801CF550 001CB1B0 7E 4C 93 78 */ mr r12, r18
+/* 801CF554 001CB1B4 7E 63 9B 78 */ mr r3, r19
+/* 801CF558 001CB1B8 38 80 00 00 */ li r4, 0
+/* 801CF55C 001CB1BC 38 A0 00 00 */ li r5, 0
+/* 801CF560 001CB1C0 7D 89 03 A6 */ mtctr r12
+/* 801CF564 001CB1C4 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF568 001CB1C8 4E 80 04 21 */ bctrl
+/* 801CF56C 001CB1CC 7C 64 1B 78 */ mr r4, r3
+/* 801CF570 001CB1D0 48 00 03 3C */ b lbl_801CF8AC
+lbl_801CF574:
+/* 801CF574 001CB1D4 2C 04 00 00 */ cmpwi r4, 0
+/* 801CF578 001CB1D8 38 00 00 00 */ li r0, 0
+/* 801CF57C 001CB1DC 41 80 00 0C */ blt lbl_801CF588
+/* 801CF580 001CB1E0 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CF584 001CB1E4 41 80 00 08 */ blt lbl_801CF58C
+lbl_801CF588:
+/* 801CF588 001CB1E8 38 00 00 01 */ li r0, 1
+lbl_801CF58C:
+/* 801CF58C 001CB1EC 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF590 001CB1F0 41 82 00 0C */ beq lbl_801CF59C
+/* 801CF594 001CB1F4 38 00 00 00 */ li r0, 0
+/* 801CF598 001CB1F8 48 00 00 18 */ b lbl_801CF5B0
+lbl_801CF59C:
+/* 801CF59C 001CB1FC 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CF5A0 001CB200 54 80 08 3C */ slwi r0, r4, 1
+/* 801CF5A4 001CB204 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CF5A8 001CB208 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CF5AC 001CB20C 54 00 05 6A */ rlwinm r0, r0, 0, 0x15, 0x15
+lbl_801CF5B0:
+/* 801CF5B0 001CB210 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF5B4 001CB214 40 82 00 0C */ bne lbl_801CF5C0
+/* 801CF5B8 001CB218 3B E0 00 10 */ li r31, 0x10
+/* 801CF5BC 001CB21C 48 00 02 F0 */ b lbl_801CF8AC
+lbl_801CF5C0:
+/* 801CF5C0 001CB220 38 00 00 0E */ li r0, 0xe
+/* 801CF5C4 001CB224 7C 17 00 40 */ cmplw r23, r0
+/* 801CF5C8 001CB228 40 80 00 B8 */ bge lbl_801CF680
+/* 801CF5CC 001CB22C 57 00 0F FE */ srwi r0, r24, 0x1f
+/* 801CF5D0 001CB230 2C 04 00 00 */ cmpwi r4, 0
+/* 801CF5D4 001CB234 7C 00 C2 14 */ add r0, r0, r24
+/* 801CF5D8 001CB238 38 60 00 00 */ li r3, 0
+/* 801CF5DC 001CB23C 7C 00 0E 70 */ srawi r0, r0, 1
+/* 801CF5E0 001CB240 7C 1A 00 AE */ lbzx r0, r26, r0
+/* 801CF5E4 001CB244 41 80 00 0C */ blt lbl_801CF5F0
+/* 801CF5E8 001CB248 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CF5EC 001CB24C 41 80 00 08 */ blt lbl_801CF5F4
+lbl_801CF5F0:
+/* 801CF5F0 001CB250 38 60 00 01 */ li r3, 1
+lbl_801CF5F4:
+/* 801CF5F4 001CB254 2C 03 00 00 */ cmpwi r3, 0
+/* 801CF5F8 001CB258 41 82 00 08 */ beq lbl_801CF600
+/* 801CF5FC 001CB25C 48 00 00 10 */ b lbl_801CF60C
+lbl_801CF600:
+/* 801CF600 001CB260 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CF604 001CB264 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 801CF608 001CB268 7C 83 20 AE */ lbzx r4, r3, r4
+lbl_801CF60C:
+/* 801CF60C 001CB26C 2C 04 00 41 */ cmpwi r4, 0x41
+/* 801CF610 001CB270 38 C4 FF D0 */ addi r6, r4, -48
+/* 801CF614 001CB274 41 80 00 08 */ blt lbl_801CF61C
+/* 801CF618 001CB278 38 C4 FF C9 */ addi r6, r4, -55
+lbl_801CF61C:
+/* 801CF61C 001CB27C 57 05 0F FE */ srwi r5, r24, 0x1f
+/* 801CF620 001CB280 57 03 07 FE */ clrlwi r3, r24, 0x1f
+/* 801CF624 001CB284 7C 64 2A 78 */ xor r4, r3, r5
+/* 801CF628 001CB288 54 C3 26 36 */ rlwinm r3, r6, 4, 0x18, 0x1b
+/* 801CF62C 001CB28C 7C 85 20 51 */ subf. r4, r5, r4
+/* 801CF630 001CB290 7C 03 1B 78 */ or r3, r0, r3
+/* 801CF634 001CB294 54 C4 06 3E */ clrlwi r4, r6, 0x18
+/* 801CF638 001CB298 54 65 06 3E */ clrlwi r5, r3, 0x18
+/* 801CF63C 001CB29C 41 82 00 0C */ beq lbl_801CF648
+/* 801CF640 001CB2A0 7C 00 23 78 */ or r0, r0, r4
+/* 801CF644 001CB2A4 54 05 06 3E */ clrlwi r5, r0, 0x18
+lbl_801CF648:
+/* 801CF648 001CB2A8 57 00 0F FE */ srwi r0, r24, 0x1f
+/* 801CF64C 001CB2AC 7E 4C 93 78 */ mr r12, r18
+/* 801CF650 001CB2B0 7C 00 C2 14 */ add r0, r0, r24
+/* 801CF654 001CB2B4 7E 63 9B 78 */ mr r3, r19
+/* 801CF658 001CB2B8 7C 00 0E 70 */ srawi r0, r0, 1
+/* 801CF65C 001CB2BC 38 80 00 00 */ li r4, 0
+/* 801CF660 001CB2C0 7C BA 01 AE */ stbx r5, r26, r0
+/* 801CF664 001CB2C4 38 A0 00 00 */ li r5, 0
+/* 801CF668 001CB2C8 7D 89 03 A6 */ mtctr r12
+/* 801CF66C 001CB2CC 3B 18 00 01 */ addi r24, r24, 1
+/* 801CF670 001CB2D0 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF674 001CB2D4 4E 80 04 21 */ bctrl
+/* 801CF678 001CB2D8 7C 64 1B 78 */ mr r4, r3
+/* 801CF67C 001CB2DC 48 00 02 30 */ b lbl_801CF8AC
+lbl_801CF680:
+/* 801CF680 001CB2E0 7E 4C 93 78 */ mr r12, r18
+/* 801CF684 001CB2E4 7E 63 9B 78 */ mr r3, r19
+/* 801CF688 001CB2E8 38 80 00 00 */ li r4, 0
+/* 801CF68C 001CB2EC 38 A0 00 00 */ li r5, 0
+/* 801CF690 001CB2F0 7D 89 03 A6 */ mtctr r12
+/* 801CF694 001CB2F4 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF698 001CB2F8 4E 80 04 21 */ bctrl
+/* 801CF69C 001CB2FC 7C 64 1B 78 */ mr r4, r3
+/* 801CF6A0 001CB300 48 00 02 0C */ b lbl_801CF8AC
+lbl_801CF6A4:
+/* 801CF6A4 001CB304 2C 04 00 00 */ cmpwi r4, 0
+/* 801CF6A8 001CB308 38 00 00 00 */ li r0, 0
+/* 801CF6AC 001CB30C 41 80 00 0C */ blt lbl_801CF6B8
+/* 801CF6B0 001CB310 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CF6B4 001CB314 41 80 00 08 */ blt lbl_801CF6BC
+lbl_801CF6B8:
+/* 801CF6B8 001CB318 38 00 00 01 */ li r0, 1
+lbl_801CF6BC:
+/* 801CF6BC 001CB31C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF6C0 001CB320 41 82 00 0C */ beq lbl_801CF6CC
+/* 801CF6C4 001CB324 7C 80 23 78 */ mr r0, r4
+/* 801CF6C8 001CB328 48 00 00 10 */ b lbl_801CF6D8
+lbl_801CF6CC:
+/* 801CF6CC 001CB32C 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CF6D0 001CB330 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 801CF6D4 001CB334 7C 03 20 AE */ lbzx r0, r3, r4
+lbl_801CF6D8:
+/* 801CF6D8 001CB338 2C 00 00 50 */ cmpwi r0, 0x50
+/* 801CF6DC 001CB33C 40 82 00 2C */ bne lbl_801CF708
+/* 801CF6E0 001CB340 7E 4C 93 78 */ mr r12, r18
+/* 801CF6E4 001CB344 7E 63 9B 78 */ mr r3, r19
+/* 801CF6E8 001CB348 3B E0 00 20 */ li r31, 0x20
+/* 801CF6EC 001CB34C 38 80 00 00 */ li r4, 0
+/* 801CF6F0 001CB350 38 A0 00 00 */ li r5, 0
+/* 801CF6F4 001CB354 7D 89 03 A6 */ mtctr r12
+/* 801CF6F8 001CB358 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF6FC 001CB35C 4E 80 04 21 */ bctrl
+/* 801CF700 001CB360 7C 64 1B 78 */ mr r4, r3
+/* 801CF704 001CB364 48 00 01 A8 */ b lbl_801CF8AC
+lbl_801CF708:
+/* 801CF708 001CB368 3A 20 08 00 */ li r17, 0x800
+/* 801CF70C 001CB36C 48 00 01 A0 */ b lbl_801CF8AC
+lbl_801CF710:
+/* 801CF710 001CB370 2C 04 00 2D */ cmpwi r4, 0x2d
+/* 801CF714 001CB374 40 82 00 10 */ bne lbl_801CF724
+/* 801CF718 001CB378 38 00 00 01 */ li r0, 1
+/* 801CF71C 001CB37C 90 01 00 84 */ stw r0, 0x84(r1)
+/* 801CF720 001CB380 48 00 00 24 */ b lbl_801CF744
+lbl_801CF724:
+/* 801CF724 001CB384 2C 04 00 2B */ cmpwi r4, 0x2b
+/* 801CF728 001CB388 41 82 00 1C */ beq lbl_801CF744
+/* 801CF72C 001CB38C 7E 4C 93 78 */ mr r12, r18
+/* 801CF730 001CB390 7E 63 9B 78 */ mr r3, r19
+/* 801CF734 001CB394 38 A0 00 01 */ li r5, 1
+/* 801CF738 001CB398 7D 89 03 A6 */ mtctr r12
+/* 801CF73C 001CB39C 4E 80 04 21 */ bctrl
+/* 801CF740 001CB3A0 3B DE FF FF */ addi r30, r30, -1
+lbl_801CF744:
+/* 801CF744 001CB3A4 7E 4C 93 78 */ mr r12, r18
+/* 801CF748 001CB3A8 7E 63 9B 78 */ mr r3, r19
+/* 801CF74C 001CB3AC 3B E0 00 40 */ li r31, 0x40
+/* 801CF750 001CB3B0 38 80 00 00 */ li r4, 0
+/* 801CF754 001CB3B4 38 A0 00 00 */ li r5, 0
+/* 801CF758 001CB3B8 7D 89 03 A6 */ mtctr r12
+/* 801CF75C 001CB3BC 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF760 001CB3C0 4E 80 04 21 */ bctrl
+/* 801CF764 001CB3C4 7C 64 1B 78 */ mr r4, r3
+/* 801CF768 001CB3C8 48 00 01 44 */ b lbl_801CF8AC
+lbl_801CF76C:
+/* 801CF76C 001CB3CC 2C 04 00 00 */ cmpwi r4, 0
+/* 801CF770 001CB3D0 38 00 00 00 */ li r0, 0
+/* 801CF774 001CB3D4 41 80 00 0C */ blt lbl_801CF780
+/* 801CF778 001CB3D8 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CF77C 001CB3DC 41 80 00 08 */ blt lbl_801CF784
+lbl_801CF780:
+/* 801CF780 001CB3E0 38 00 00 01 */ li r0, 1
+lbl_801CF784:
+/* 801CF784 001CB3E4 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF788 001CB3E8 41 82 00 0C */ beq lbl_801CF794
+/* 801CF78C 001CB3EC 38 00 00 00 */ li r0, 0
+/* 801CF790 001CB3F0 48 00 00 18 */ b lbl_801CF7A8
+lbl_801CF794:
+/* 801CF794 001CB3F4 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CF798 001CB3F8 54 80 08 3C */ slwi r0, r4, 1
+/* 801CF79C 001CB3FC 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CF7A0 001CB400 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CF7A4 001CB404 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
+lbl_801CF7A8:
+/* 801CF7A8 001CB408 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF7AC 001CB40C 40 82 00 0C */ bne lbl_801CF7B8
+/* 801CF7B0 001CB410 3A 20 10 00 */ li r17, 0x1000
+/* 801CF7B4 001CB414 48 00 00 F8 */ b lbl_801CF8AC
+lbl_801CF7B8:
+/* 801CF7B8 001CB418 2C 04 00 30 */ cmpwi r4, 0x30
+/* 801CF7BC 001CB41C 40 82 00 2C */ bne lbl_801CF7E8
+/* 801CF7C0 001CB420 7E 4C 93 78 */ mr r12, r18
+/* 801CF7C4 001CB424 7E 63 9B 78 */ mr r3, r19
+/* 801CF7C8 001CB428 3B E0 00 80 */ li r31, 0x80
+/* 801CF7CC 001CB42C 38 80 00 00 */ li r4, 0
+/* 801CF7D0 001CB430 38 A0 00 00 */ li r5, 0
+/* 801CF7D4 001CB434 7D 89 03 A6 */ mtctr r12
+/* 801CF7D8 001CB438 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF7DC 001CB43C 4E 80 04 21 */ bctrl
+/* 801CF7E0 001CB440 7C 64 1B 78 */ mr r4, r3
+/* 801CF7E4 001CB444 48 00 00 C8 */ b lbl_801CF8AC
+lbl_801CF7E8:
+/* 801CF7E8 001CB448 3B E0 01 00 */ li r31, 0x100
+/* 801CF7EC 001CB44C 48 00 00 C0 */ b lbl_801CF8AC
+lbl_801CF7F0:
+/* 801CF7F0 001CB450 2C 04 00 30 */ cmpwi r4, 0x30
+/* 801CF7F4 001CB454 40 82 00 28 */ bne lbl_801CF81C
+/* 801CF7F8 001CB458 7E 4C 93 78 */ mr r12, r18
+/* 801CF7FC 001CB45C 7E 63 9B 78 */ mr r3, r19
+/* 801CF800 001CB460 38 80 00 00 */ li r4, 0
+/* 801CF804 001CB464 38 A0 00 00 */ li r5, 0
+/* 801CF808 001CB468 7D 89 03 A6 */ mtctr r12
+/* 801CF80C 001CB46C 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF810 001CB470 4E 80 04 21 */ bctrl
+/* 801CF814 001CB474 7C 64 1B 78 */ mr r4, r3
+/* 801CF818 001CB478 48 00 00 94 */ b lbl_801CF8AC
+lbl_801CF81C:
+/* 801CF81C 001CB47C 3B E0 01 00 */ li r31, 0x100
+/* 801CF820 001CB480 48 00 00 8C */ b lbl_801CF8AC
+lbl_801CF824:
+/* 801CF824 001CB484 2C 04 00 00 */ cmpwi r4, 0
+/* 801CF828 001CB488 38 00 00 00 */ li r0, 0
+/* 801CF82C 001CB48C 41 80 00 0C */ blt lbl_801CF838
+/* 801CF830 001CB490 2C 04 01 00 */ cmpwi r4, 0x100
+/* 801CF834 001CB494 41 80 00 08 */ blt lbl_801CF83C
+lbl_801CF838:
+/* 801CF838 001CB498 38 00 00 01 */ li r0, 1
+lbl_801CF83C:
+/* 801CF83C 001CB49C 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF840 001CB4A0 41 82 00 0C */ beq lbl_801CF84C
+/* 801CF844 001CB4A4 38 00 00 00 */ li r0, 0
+/* 801CF848 001CB4A8 48 00 00 18 */ b lbl_801CF860
+lbl_801CF84C:
+/* 801CF84C 001CB4AC 80 70 00 38 */ lwz r3, 0x38(r16)
+/* 801CF850 001CB4B0 54 80 08 3C */ slwi r0, r4, 1
+/* 801CF854 001CB4B4 80 63 00 08 */ lwz r3, 8(r3)
+/* 801CF858 001CB4B8 7C 03 02 2E */ lhzx r0, r3, r0
+/* 801CF85C 001CB4BC 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
+lbl_801CF860:
+/* 801CF860 001CB4C0 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF864 001CB4C4 40 82 00 0C */ bne lbl_801CF870
+/* 801CF868 001CB4C8 3A 20 08 00 */ li r17, 0x800
+/* 801CF86C 001CB4CC 48 00 00 40 */ b lbl_801CF8AC
+lbl_801CF870:
+/* 801CF870 001CB4D0 1C 19 00 0A */ mulli r0, r25, 0xa
+/* 801CF874 001CB4D4 2C 1D 7F FF */ cmpwi r29, 0x7fff
+/* 801CF878 001CB4D8 7C 64 02 14 */ add r3, r4, r0
+/* 801CF87C 001CB4DC 3B 23 FF D0 */ addi r25, r3, -48
+/* 801CF880 001CB4E0 40 81 00 0C */ ble lbl_801CF88C
+/* 801CF884 001CB4E4 38 00 00 01 */ li r0, 1
+/* 801CF888 001CB4E8 90 14 00 00 */ stw r0, 0(r20)
+lbl_801CF88C:
+/* 801CF88C 001CB4EC 7E 4C 93 78 */ mr r12, r18
+/* 801CF890 001CB4F0 7E 63 9B 78 */ mr r3, r19
+/* 801CF894 001CB4F4 38 80 00 00 */ li r4, 0
+/* 801CF898 001CB4F8 38 A0 00 00 */ li r5, 0
+/* 801CF89C 001CB4FC 7D 89 03 A6 */ mtctr r12
+/* 801CF8A0 001CB500 3B DE 00 01 */ addi r30, r30, 1
+/* 801CF8A4 001CB504 4E 80 04 21 */ bctrl
+/* 801CF8A8 001CB508 7C 64 1B 78 */ mr r4, r3
+lbl_801CF8AC:
+/* 801CF8AC 001CB50C 80 01 00 08 */ lwz r0, 8(r1)
+/* 801CF8B0 001CB510 7C 1E 00 00 */ cmpw r30, r0
+/* 801CF8B4 001CB514 41 81 00 14 */ bgt lbl_801CF8C8
+/* 801CF8B8 001CB518 2C 04 FF FF */ cmpwi r4, -1
+/* 801CF8BC 001CB51C 41 82 00 0C */ beq lbl_801CF8C8
+/* 801CF8C0 001CB520 56 20 04 E9 */ rlwinm. r0, r17, 0, 0x13, 0x14
+/* 801CF8C4 001CB524 41 82 F0 1C */ beq lbl_801CE8E0
+lbl_801CF8C8:
+/* 801CF8C8 001CB528 3C 11 00 00 */ addis r0, r17, 0
+/* 801CF8CC 001CB52C 28 00 80 00 */ cmplwi r0, 0x8000
+/* 801CF8D0 001CB530 41 82 00 14 */ beq lbl_801CF8E4
+/* 801CF8D4 001CB534 72 20 0E 2C */ andi. r0, r17, 0xe2c
+/* 801CF8D8 001CB538 7C 00 00 34 */ cntlzw r0, r0
+/* 801CF8DC 001CB53C 54 03 D9 7E */ srwi r3, r0, 5
+/* 801CF8E0 001CB540 48 00 00 20 */ b lbl_801CF900
+lbl_801CF8E4:
+/* 801CF8E4 001CB544 38 1E FF FF */ addi r0, r30, -1
+/* 801CF8E8 001CB548 38 60 00 00 */ li r3, 0
+/* 801CF8EC 001CB54C 2C 00 00 02 */ cmpwi r0, 2
+/* 801CF8F0 001CB550 40 81 00 0C */ ble lbl_801CF8FC
+/* 801CF8F4 001CB554 73 E0 01 8E */ andi. r0, r31, 0x18e
+/* 801CF8F8 001CB558 40 82 00 08 */ bne lbl_801CF900
+lbl_801CF8FC:
+/* 801CF8FC 001CB55C 38 60 00 01 */ li r3, 1
+lbl_801CF900:
+/* 801CF900 001CB560 2C 03 00 00 */ cmpwi r3, 0
+/* 801CF904 001CB564 41 82 00 14 */ beq lbl_801CF918
+/* 801CF908 001CB568 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 801CF90C 001CB56C 38 00 00 00 */ li r0, 0
+/* 801CF910 001CB570 90 03 00 00 */ stw r0, 0(r3)
+/* 801CF914 001CB574 48 00 00 14 */ b lbl_801CF928
+lbl_801CF918:
+/* 801CF918 001CB578 7C 7E 72 14 */ add r3, r30, r14
+/* 801CF91C 001CB57C 38 03 FF FF */ addi r0, r3, -1
+/* 801CF920 001CB580 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 801CF924 001CB584 90 03 00 00 */ stw r0, 0(r3)
+lbl_801CF928:
+/* 801CF928 001CB588 7E 4C 93 78 */ mr r12, r18
+/* 801CF92C 001CB58C 7E 63 9B 78 */ mr r3, r19
+/* 801CF930 001CB590 38 A0 00 01 */ li r5, 1
+/* 801CF934 001CB594 7D 89 03 A6 */ mtctr r12
+/* 801CF938 001CB598 4E 80 04 21 */ bctrl
+/* 801CF93C 001CB59C 2C 1F 00 00 */ cmpwi r31, 0
+/* 801CF940 001CB5A0 40 82 01 30 */ bne lbl_801CFA70
+/* 801CF944 001CB5A4 80 01 00 8C */ lwz r0, 0x8c(r1)
+/* 801CF948 001CB5A8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF94C 001CB5AC 41 82 00 08 */ beq lbl_801CF954
+/* 801CF950 001CB5B0 7F BD 00 D0 */ neg r29, r29
+lbl_801CF954:
+/* 801CF954 001CB5B4 88 61 00 5C */ lbz r3, 0x5c(r1)
+/* 801CF958 001CB5B8 38 81 00 5D */ addi r4, r1, 0x5d
+/* 801CF95C 001CB5BC 7C 84 1A 14 */ add r4, r4, r3
+/* 801CF960 001CB5C0 48 00 00 08 */ b lbl_801CF968
+lbl_801CF964:
+/* 801CF964 001CB5C4 3B 9C 00 01 */ addi r28, r28, 1
+lbl_801CF968:
+/* 801CF968 001CB5C8 2C 03 00 00 */ cmpwi r3, 0
+/* 801CF96C 001CB5CC 38 63 FF FF */ addi r3, r3, -1
+/* 801CF970 001CB5D0 41 82 00 10 */ beq lbl_801CF980
+/* 801CF974 001CB5D4 8C 04 FF FF */ lbzu r0, -1(r4)
+/* 801CF978 001CB5D8 28 00 00 30 */ cmplwi r0, 0x30
+/* 801CF97C 001CB5DC 41 82 FF E8 */ beq lbl_801CF964
+lbl_801CF980:
+/* 801CF980 001CB5E0 38 03 00 01 */ addi r0, r3, 1
+/* 801CF984 001CB5E4 54 04 06 3F */ clrlwi. r4, r0, 0x18
+/* 801CF988 001CB5E8 98 01 00 5C */ stb r0, 0x5c(r1)
+/* 801CF98C 001CB5EC 40 82 00 18 */ bne lbl_801CF9A4
+/* 801CF990 001CB5F0 38 61 00 5D */ addi r3, r1, 0x5d
+/* 801CF994 001CB5F4 38 00 00 30 */ li r0, 0x30
+/* 801CF998 001CB5F8 7C 03 21 AE */ stbx r0, r3, r4
+/* 801CF99C 001CB5FC 38 04 00 01 */ addi r0, r4, 1
+/* 801CF9A0 001CB600 98 01 00 5C */ stb r0, 0x5c(r1)
+lbl_801CF9A4:
+/* 801CF9A4 001CB604 7F BD E2 14 */ add r29, r29, r28
+/* 801CF9A8 001CB608 2C 1D 80 00 */ cmpwi r29, -32768
+/* 801CF9AC 001CB60C 41 80 00 0C */ blt lbl_801CF9B8
+/* 801CF9B0 001CB610 2C 1D 7F FF */ cmpwi r29, 0x7fff
+/* 801CF9B4 001CB614 40 81 00 0C */ ble lbl_801CF9C0
+lbl_801CF9B8:
+/* 801CF9B8 001CB618 38 00 00 01 */ li r0, 1
+/* 801CF9BC 001CB61C 90 14 00 00 */ stw r0, 0(r20)
+lbl_801CF9C0:
+/* 801CF9C0 001CB620 80 14 00 00 */ lwz r0, 0(r20)
+/* 801CF9C4 001CB624 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF9C8 001CB628 41 82 00 40 */ beq lbl_801CFA08
+/* 801CF9CC 001CB62C 80 01 00 8C */ lwz r0, 0x8c(r1)
+/* 801CF9D0 001CB630 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF9D4 001CB634 41 82 00 0C */ beq lbl_801CF9E0
+/* 801CF9D8 001CB638 C8 22 91 60 */ lfd f1, lbl_80641760-_SDA2_BASE_(r2)
+/* 801CF9DC 001CB63C 48 00 02 0C */ b lbl_801CFBE8
+lbl_801CF9E0:
+/* 801CF9E0 001CB640 80 01 00 90 */ lwz r0, 0x90(r1)
+/* 801CF9E4 001CB644 2C 00 00 00 */ cmpwi r0, 0
+/* 801CF9E8 001CB648 41 82 00 14 */ beq lbl_801CF9FC
+/* 801CF9EC 001CB64C 3C 60 80 64 */ lis r3, lbl_8063D6C0@ha
+/* 801CF9F0 001CB650 C8 03 D6 C0 */ lfd f0, lbl_8063D6C0@l(r3)
+/* 801CF9F4 001CB654 FC 20 00 50 */ fneg f1, f0
+/* 801CF9F8 001CB658 48 00 01 F0 */ b lbl_801CFBE8
+lbl_801CF9FC:
+/* 801CF9FC 001CB65C 3C 60 80 64 */ lis r3, lbl_8063D6C0@ha
+/* 801CFA00 001CB660 C8 23 D6 C0 */ lfd f1, lbl_8063D6C0@l(r3)
+/* 801CFA04 001CB664 48 00 01 E4 */ b lbl_801CFBE8
+lbl_801CFA08:
+/* 801CFA08 001CB668 B3 A1 00 5A */ sth r29, 0x5a(r1)
+/* 801CFA0C 001CB66C 38 61 00 58 */ addi r3, r1, 0x58
+/* 801CFA10 001CB670 4B FF 91 D9 */ bl __dec2num
+/* 801CFA14 001CB674 C8 02 91 60 */ lfd f0, lbl_80641760-_SDA2_BASE_(r2)
+/* 801CFA18 001CB678 FC 00 08 00 */ fcmpu cr0, f0, f1
+/* 801CFA1C 001CB67C 41 82 00 1C */ beq lbl_801CFA38
+/* 801CFA20 001CB680 C8 02 91 68 */ lfd f0, lbl_80641768-_SDA2_BASE_(r2)
+/* 801CFA24 001CB684 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 801CFA28 001CB688 40 80 00 10 */ bge lbl_801CFA38
+/* 801CFA2C 001CB68C 38 00 00 01 */ li r0, 1
+/* 801CFA30 001CB690 90 14 00 00 */ stw r0, 0(r20)
+/* 801CFA34 001CB694 48 00 00 20 */ b lbl_801CFA54
+lbl_801CFA38:
+/* 801CFA38 001CB698 C8 02 91 70 */ lfd f0, lbl_80641770-_SDA2_BASE_(r2)
+/* 801CFA3C 001CB69C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 801CFA40 001CB6A0 40 81 00 14 */ ble lbl_801CFA54
+/* 801CFA44 001CB6A4 38 00 00 01 */ li r0, 1
+/* 801CFA48 001CB6A8 3C 60 80 64 */ lis r3, lbl_8063D6C0@ha
+/* 801CFA4C 001CB6AC 90 14 00 00 */ stw r0, 0(r20)
+/* 801CFA50 001CB6B0 C8 23 D6 C0 */ lfd f1, lbl_8063D6C0@l(r3)
+lbl_801CFA54:
+/* 801CFA54 001CB6B4 80 01 00 90 */ lwz r0, 0x90(r1)
+/* 801CFA58 001CB6B8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CFA5C 001CB6BC 41 82 01 8C */ beq lbl_801CFBE8
+/* 801CFA60 001CB6C0 72 20 0E 2C */ andi. r0, r17, 0xe2c
+/* 801CFA64 001CB6C4 41 82 01 84 */ beq lbl_801CFBE8
+/* 801CFA68 001CB6C8 FC 20 08 50 */ fneg f1, f1
+/* 801CFA6C 001CB6CC 48 00 01 7C */ b lbl_801CFBE8
+lbl_801CFA70:
+/* 801CFA70 001CB6D0 80 01 00 84 */ lwz r0, 0x84(r1)
+/* 801CFA74 001CB6D4 38 61 00 10 */ addi r3, r1, 0x10
+/* 801CFA78 001CB6D8 2C 00 00 00 */ cmpwi r0, 0
+/* 801CFA7C 001CB6DC 41 82 00 08 */ beq lbl_801CFA84
+/* 801CFA80 001CB6E0 7F 39 00 D0 */ neg r25, r25
+lbl_801CFA84:
+/* 801CFA84 001CB6E4 56 E0 10 3A */ slwi r0, r23, 2
+/* 801CFA88 001CB6E8 88 A1 00 20 */ lbz r5, 0x20(r1)
+/* 801CFA8C 001CB6EC 7F 39 02 14 */ add r25, r25, r0
+/* 801CFA90 001CB6F0 38 C0 00 00 */ li r6, 0
+/* 801CFA94 001CB6F4 38 80 00 80 */ li r4, 0x80
+/* 801CFA98 001CB6F8 48 00 00 0C */ b lbl_801CFAA4
+lbl_801CFA9C:
+/* 801CFA9C 001CB6FC 38 C6 00 01 */ addi r6, r6, 1
+/* 801CFAA0 001CB700 3B 39 FF FF */ addi r25, r25, -1
+lbl_801CFAA4:
+/* 801CFAA4 001CB704 28 06 00 04 */ cmplwi r6, 4
+/* 801CFAA8 001CB708 40 80 00 10 */ bge lbl_801CFAB8
+/* 801CFAAC 001CB70C 7C 80 36 30 */ sraw r0, r4, r6
+/* 801CFAB0 001CB710 7C A0 00 39 */ and. r0, r5, r0
+/* 801CFAB4 001CB714 41 82 FF E8 */ beq lbl_801CFA9C
+lbl_801CFAB8:
+/* 801CFAB8 001CB718 34 A6 00 01 */ addic. r5, r6, 1
+/* 801CFABC 001CB71C 41 82 00 4C */ beq lbl_801CFB08
+/* 801CFAC0 001CB720 3B 41 00 27 */ addi r26, r1, 0x27
+/* 801CFAC4 001CB724 38 81 00 20 */ addi r4, r1, 0x20
+/* 801CFAC8 001CB728 7C 1A 20 40 */ cmplw r26, r4
+/* 801CFACC 001CB72C 38 E0 00 00 */ li r7, 0
+/* 801CFAD0 001CB730 41 80 00 38 */ blt lbl_801CFB08
+/* 801CFAD4 001CB734 38 1A 00 01 */ addi r0, r26, 1
+/* 801CFAD8 001CB738 20 C5 00 08 */ subfic r6, r5, 8
+/* 801CFADC 001CB73C 7C 04 00 50 */ subf r0, r4, r0
+/* 801CFAE0 001CB740 7C 09 03 A6 */ mtctr r0
+/* 801CFAE4 001CB744 41 80 00 24 */ blt lbl_801CFB08
+lbl_801CFAE8:
+/* 801CFAE8 001CB748 88 1A 00 00 */ lbz r0, 0(r26)
+/* 801CFAEC 001CB74C 7C 04 28 30 */ slw r4, r0, r5
+/* 801CFAF0 001CB750 7C 00 36 30 */ sraw r0, r0, r6
+/* 801CFAF4 001CB754 7C E4 23 78 */ or r4, r7, r4
+/* 801CFAF8 001CB758 98 9A 00 00 */ stb r4, 0(r26)
+/* 801CFAFC 001CB75C 54 07 06 3E */ clrlwi r7, r0, 0x18
+/* 801CFB00 001CB760 3B 5A FF FF */ addi r26, r26, -1
+/* 801CFB04 001CB764 42 00 FF E4 */ bdnz lbl_801CFAE8
+lbl_801CFB08:
+/* 801CFB08 001CB768 38 80 00 00 */ li r4, 0
+/* 801CFB0C 001CB76C 38 A0 00 08 */ li r5, 8
+/* 801CFB10 001CB770 4B E3 45 F5 */ bl memset
+/* 801CFB14 001CB774 38 00 00 07 */ li r0, 7
+/* 801CFB18 001CB778 38 81 00 20 */ addi r4, r1, 0x20
+/* 801CFB1C 001CB77C 38 61 00 11 */ addi r3, r1, 0x11
+/* 801CFB20 001CB780 39 00 00 00 */ li r8, 0
+/* 801CFB24 001CB784 38 E0 00 FF */ li r7, 0xff
+/* 801CFB28 001CB788 7C 09 03 A6 */ mtctr r0
+lbl_801CFB2C:
+/* 801CFB2C 001CB78C 38 08 00 08 */ addi r0, r8, 8
+/* 801CFB30 001CB790 89 24 00 00 */ lbz r9, 0(r4)
+/* 801CFB34 001CB794 28 00 00 34 */ cmplwi r0, 0x34
+/* 801CFB38 001CB798 38 A8 00 0C */ addi r5, r8, 0xc
+/* 801CFB3C 001CB79C 40 81 00 14 */ ble lbl_801CFB50
+/* 801CFB40 001CB7A0 20 08 00 34 */ subfic r0, r8, 0x34
+/* 801CFB44 001CB7A4 7C E0 00 30 */ slw r0, r7, r0
+/* 801CFB48 001CB7A8 7D 20 00 38 */ and r0, r9, r0
+/* 801CFB4C 001CB7AC 54 09 06 3E */ clrlwi r9, r0, 0x18
+lbl_801CFB50:
+/* 801CFB50 001CB7B0 54 AA 07 7E */ clrlwi r10, r5, 0x1d
+/* 801CFB54 001CB7B4 88 C3 00 00 */ lbz r6, 0(r3)
+/* 801CFB58 001CB7B8 7D 20 56 30 */ sraw r0, r9, r10
+/* 801CFB5C 001CB7BC 38 84 00 01 */ addi r4, r4, 1
+/* 801CFB60 001CB7C0 54 05 06 3E */ clrlwi r5, r0, 0x18
+/* 801CFB64 001CB7C4 39 08 00 08 */ addi r8, r8, 8
+/* 801CFB68 001CB7C8 7C C5 2B 78 */ or r5, r6, r5
+/* 801CFB6C 001CB7CC 20 0A 00 08 */ subfic r0, r10, 8
+/* 801CFB70 001CB7D0 98 A3 00 00 */ stb r5, 0(r3)
+/* 801CFB74 001CB7D4 7D 20 00 30 */ slw r0, r9, r0
+/* 801CFB78 001CB7D8 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 801CFB7C 001CB7DC 8C A3 00 01 */ lbzu r5, 1(r3)
+/* 801CFB80 001CB7E0 7C A0 03 78 */ or r0, r5, r0
+/* 801CFB84 001CB7E4 98 03 00 00 */ stb r0, 0(r3)
+/* 801CFB88 001CB7E8 42 00 FF A4 */ bdnz lbl_801CFB2C
+/* 801CFB8C 001CB7EC 3B 39 03 FE */ addi r25, r25, 0x3fe
+/* 801CFB90 001CB7F0 57 20 00 29 */ rlwinm. r0, r25, 0, 0, 0x14
+/* 801CFB94 001CB7F4 41 82 00 14 */ beq lbl_801CFBA8
+/* 801CFB98 001CB7F8 38 00 00 01 */ li r0, 1
+/* 801CFB9C 001CB7FC C8 22 91 60 */ lfd f1, lbl_80641760-_SDA2_BASE_(r2)
+/* 801CFBA0 001CB800 90 14 00 00 */ stw r0, 0(r20)
+/* 801CFBA4 001CB804 48 00 00 44 */ b lbl_801CFBE8
+lbl_801CFBA8:
+/* 801CFBA8 001CB808 57 39 A8 14 */ slwi r25, r25, 0x15
+/* 801CFBAC 001CB80C 80 01 00 90 */ lwz r0, 0x90(r1)
+/* 801CFBB0 001CB810 88 C1 00 10 */ lbz r6, 0x10(r1)
+/* 801CFBB4 001CB814 57 25 3E 7E */ srwi r5, r25, 0x19
+/* 801CFBB8 001CB818 88 81 00 11 */ lbz r4, 0x11(r1)
+/* 801CFBBC 001CB81C 57 23 7C 7E */ srwi r3, r25, 0x11
+/* 801CFBC0 001CB820 2C 00 00 00 */ cmpwi r0, 0
+/* 801CFBC4 001CB824 7C C5 2B 78 */ or r5, r6, r5
+/* 801CFBC8 001CB828 7C 80 1B 78 */ or r0, r4, r3
+/* 801CFBCC 001CB82C 98 A1 00 10 */ stb r5, 0x10(r1)
+/* 801CFBD0 001CB830 98 01 00 11 */ stb r0, 0x11(r1)
+/* 801CFBD4 001CB834 41 82 00 10 */ beq lbl_801CFBE4
+/* 801CFBD8 001CB838 54 A0 06 3E */ clrlwi r0, r5, 0x18
+/* 801CFBDC 001CB83C 60 00 00 80 */ ori r0, r0, 0x80
+/* 801CFBE0 001CB840 98 01 00 10 */ stb r0, 0x10(r1)
+lbl_801CFBE4:
+/* 801CFBE4 001CB844 C8 21 00 10 */ lfd f1, 0x10(r1)
+lbl_801CFBE8:
+/* 801CFBE8 001CB848 39 61 00 E0 */ addi r11, r1, 0xe0
+/* 801CFBEC 001CB84C 4B FF 75 55 */ bl __restore_gpr
+/* 801CFBF0 001CB850 80 01 00 E4 */ lwz r0, 0xe4(r1)
+/* 801CFBF4 001CB854 7C 08 03 A6 */ mtlr r0
+/* 801CFBF8 001CB858 38 21 00 E0 */ addi r1, r1, 0xe0
+/* 801CFBFC 001CB85C 4E 80 00 20 */ blr
+
+.global atof
+atof:
+/* 801CFC00 001CB860 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 801CFC04 001CB864 7C 08 02 A6 */ mflr r0
+/* 801CFC08 001CB868 3C 80 80 1D */ lis r4, __StringRead@ha
+/* 801CFC0C 001CB86C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801CFC10 001CB870 38 00 00 00 */ li r0, 0
+/* 801CFC14 001CB874 38 84 E1 78 */ addi r4, r4, __StringRead@l
+/* 801CFC18 001CB878 38 A1 00 10 */ addi r5, r1, 0x10
+/* 801CFC1C 001CB87C 90 61 00 10 */ stw r3, 0x10(r1)
+/* 801CFC20 001CB880 3C 60 80 00 */ lis r3, 0x7FFFFFFF@ha
+/* 801CFC24 001CB884 38 63 FF FF */ addi r3, r3, 0x7FFFFFFF@l
+/* 801CFC28 001CB888 38 C1 00 08 */ addi r6, r1, 8
+/* 801CFC2C 001CB88C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801CFC30 001CB890 38 E1 00 0C */ addi r7, r1, 0xc
+/* 801CFC34 001CB894 4B FF EB D9 */ bl __strtold
+/* 801CFC38 001CB898 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 801CFC3C 001CB89C FC 40 0A 10 */ fabs f2, f1
+/* 801CFC40 001CB8A0 2C 00 00 00 */ cmpwi r0, 0
+/* 801CFC44 001CB8A4 40 82 00 28 */ bne lbl_801CFC6C
+/* 801CFC48 001CB8A8 C8 02 91 78 */ lfd f0, lbl_80641778-_SDA2_BASE_(r2)
+/* 801CFC4C 001CB8AC FC 00 08 00 */ fcmpu cr0, f0, f1
+/* 801CFC50 001CB8B0 41 82 00 24 */ beq lbl_801CFC74
+/* 801CFC54 001CB8B4 C8 02 91 80 */ lfd f0, lbl_80641780-_SDA2_BASE_(r2)
+/* 801CFC58 001CB8B8 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 801CFC5C 001CB8BC 41 80 00 10 */ blt lbl_801CFC6C
+/* 801CFC60 001CB8C0 C8 02 91 88 */ lfd f0, lbl_80641788-_SDA2_BASE_(r2)
+/* 801CFC64 001CB8C4 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 801CFC68 001CB8C8 40 81 00 0C */ ble lbl_801CFC74
+lbl_801CFC6C:
+/* 801CFC6C 001CB8CC 38 00 00 22 */ li r0, 0x22
+/* 801CFC70 001CB8D0 90 0D 9F C8 */ stw r0, lbl_8063F288-_SDA_BASE_(r13)
+lbl_801CFC74:
+/* 801CFC74 001CB8D4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801CFC78 001CB8D8 7C 08 03 A6 */ mtlr r0
+/* 801CFC7C 001CB8DC 38 21 00 20 */ addi r1, r1, 0x20
+/* 801CFC80 001CB8E0 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/strtoul.s b/asm/MSL_C/MSL_Common/strtoul.s
new file mode 100644
index 0000000..c6e412c
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/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
diff --git a/asm/MSL_C/MSL_Common/wchar_io.s b/asm/MSL_C/MSL_Common/wchar_io.s
new file mode 100644
index 0000000..8864676
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/wchar_io.s
@@ -0,0 +1,47 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global fwide
+fwide:
+/* 801D0864 001CC4C4 2C 03 00 00 */ cmpwi r3, 0
+/* 801D0868 001CC4C8 41 82 00 10 */ beq lbl_801D0878
+/* 801D086C 001CC4CC 80 A3 00 04 */ lwz r5, 4(r3)
+/* 801D0870 001CC4D0 54 A0 57 7F */ rlwinm. r0, r5, 0xa, 0x1d, 0x1f
+/* 801D0874 001CC4D4 40 82 00 0C */ bne lbl_801D0880
+lbl_801D0878:
+/* 801D0878 001CC4D8 38 60 00 00 */ li r3, 0
+/* 801D087C 001CC4DC 4E 80 00 20 */ blr
+lbl_801D0880:
+/* 801D0880 001CC4E0 54 A0 67 BE */ rlwinm r0, r5, 0xc, 0x1e, 0x1f
+/* 801D0884 001CC4E4 2C 00 00 01 */ cmpwi r0, 1
+/* 801D0888 001CC4E8 41 82 00 54 */ beq lbl_801D08DC
+/* 801D088C 001CC4EC 40 80 00 10 */ bge lbl_801D089C
+/* 801D0890 001CC4F0 2C 00 00 00 */ cmpwi r0, 0
+/* 801D0894 001CC4F4 40 80 00 14 */ bge lbl_801D08A8
+/* 801D0898 001CC4F8 48 00 00 48 */ b lbl_801D08E0
+lbl_801D089C:
+/* 801D089C 001CC4FC 2C 00 00 03 */ cmpwi r0, 3
+/* 801D08A0 001CC500 40 80 00 40 */ bge lbl_801D08E0
+/* 801D08A4 001CC504 48 00 00 30 */ b lbl_801D08D4
+lbl_801D08A8:
+/* 801D08A8 001CC508 2C 04 00 00 */ cmpwi r4, 0
+/* 801D08AC 001CC50C 40 81 00 14 */ ble lbl_801D08C0
+/* 801D08B0 001CC510 38 00 00 02 */ li r0, 2
+/* 801D08B4 001CC514 50 05 A2 96 */ rlwimi r5, r0, 0x14, 0xa, 0xb
+/* 801D08B8 001CC518 90 A3 00 04 */ stw r5, 4(r3)
+/* 801D08BC 001CC51C 48 00 00 24 */ b lbl_801D08E0
+lbl_801D08C0:
+/* 801D08C0 001CC520 40 80 00 20 */ bge lbl_801D08E0
+/* 801D08C4 001CC524 38 00 00 01 */ li r0, 1
+/* 801D08C8 001CC528 50 05 A2 96 */ rlwimi r5, r0, 0x14, 0xa, 0xb
+/* 801D08CC 001CC52C 90 A3 00 04 */ stw r5, 4(r3)
+/* 801D08D0 001CC530 48 00 00 10 */ b lbl_801D08E0
+lbl_801D08D4:
+/* 801D08D4 001CC534 38 80 00 01 */ li r4, 1
+/* 801D08D8 001CC538 48 00 00 08 */ b lbl_801D08E0
+lbl_801D08DC:
+/* 801D08DC 001CC53C 38 80 FF FF */ li r4, -1
+lbl_801D08E0:
+/* 801D08E0 001CC540 7C 83 23 78 */ mr r3, r4
+/* 801D08E4 001CC544 4E 80 00 20 */ blr
diff --git a/asm/MSL_C/MSL_Common/wstring.s b/asm/MSL_C/MSL_Common/wstring.s
new file mode 100644
index 0000000..74bbfe8
--- /dev/null
+++ b/asm/MSL_C/MSL_Common/wstring.s
@@ -0,0 +1,56 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global wcslen
+wcslen:
+/* 801D07D0 001CC430 38 83 FF FE */ addi r4, r3, -2
+/* 801D07D4 001CC434 38 60 FF FF */ li r3, -1
+lbl_801D07D8:
+/* 801D07D8 001CC438 A4 04 00 02 */ lhzu r0, 2(r4)
+/* 801D07DC 001CC43C 38 63 00 01 */ addi r3, r3, 1
+/* 801D07E0 001CC440 2C 00 00 00 */ cmpwi r0, 0
+/* 801D07E4 001CC444 40 82 FF F4 */ bne lbl_801D07D8
+/* 801D07E8 001CC448 4E 80 00 20 */ blr
+
+.global wcsncpy
+wcsncpy:
+/* 801D07EC 001CC44C 38 84 FF FE */ addi r4, r4, -2
+/* 801D07F0 001CC450 38 C3 FF FE */ addi r6, r3, -2
+/* 801D07F4 001CC454 38 A5 00 01 */ addi r5, r5, 1
+/* 801D07F8 001CC458 48 00 00 2C */ b lbl_801D0824
+lbl_801D07FC:
+/* 801D07FC 001CC45C A4 04 00 02 */ lhzu r0, 2(r4)
+/* 801D0800 001CC460 2C 00 00 00 */ cmpwi r0, 0
+/* 801D0804 001CC464 B4 06 00 02 */ sthu r0, 2(r6)
+/* 801D0808 001CC468 40 82 00 1C */ bne lbl_801D0824
+/* 801D080C 001CC46C 38 00 00 00 */ li r0, 0
+/* 801D0810 001CC470 48 00 00 08 */ b lbl_801D0818
+lbl_801D0814:
+/* 801D0814 001CC474 B4 06 00 02 */ sthu r0, 2(r6)
+lbl_801D0818:
+/* 801D0818 001CC478 34 A5 FF FF */ addic. r5, r5, -1
+/* 801D081C 001CC47C 40 82 FF F8 */ bne lbl_801D0814
+/* 801D0820 001CC480 4E 80 00 20 */ blr
+lbl_801D0824:
+/* 801D0824 001CC484 34 A5 FF FF */ addic. r5, r5, -1
+/* 801D0828 001CC488 40 82 FF D4 */ bne lbl_801D07FC
+/* 801D082C 001CC48C 4E 80 00 20 */ blr
+
+.global wcscmp
+wcscmp:
+/* 801D0830 001CC490 38 A3 FF FE */ addi r5, r3, -2
+/* 801D0834 001CC494 38 84 FF FE */ addi r4, r4, -2
+/* 801D0838 001CC498 48 00 00 14 */ b lbl_801D084C
+lbl_801D083C:
+/* 801D083C 001CC49C 2C 03 00 00 */ cmpwi r3, 0
+/* 801D0840 001CC4A0 40 82 00 0C */ bne lbl_801D084C
+/* 801D0844 001CC4A4 38 60 00 00 */ li r3, 0
+/* 801D0848 001CC4A8 4E 80 00 20 */ blr
+lbl_801D084C:
+/* 801D084C 001CC4AC A4 65 00 02 */ lhzu r3, 2(r5)
+/* 801D0850 001CC4B0 A4 04 00 02 */ lhzu r0, 2(r4)
+/* 801D0854 001CC4B4 7C 03 00 40 */ cmplw r3, r0
+/* 801D0858 001CC4B8 41 82 FF E4 */ beq lbl_801D083C
+/* 801D085C 001CC4BC 7C 60 18 50 */ subf r3, r0, r3
+/* 801D0860 001CC4C0 4E 80 00 20 */ blr