prime/asm/Runtime/strtold.s

1265 lines
57 KiB
ArmAsm

.include "macros.inc"
.section .rodata
.balign 8
.global lbl_803D86E8
lbl_803D86E8:
# ROM: 0x3D56E8
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.global lbl_803D8714
lbl_803D8714:
# ROM: 0x3D5714
.asciz "INFINITY"
.balign 4
.section .text, "ax"
.global atof
atof:
/* 803901DC 0038D13C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803901E0 0038D140 7C 08 02 A6 */ mflr r0
/* 803901E4 0038D144 3C 80 80 39 */ lis r4, __StringRead@ha
/* 803901E8 0038D148 90 01 00 24 */ stw r0, 0x24(r1)
/* 803901EC 0038D14C 38 00 00 00 */ li r0, 0
/* 803901F0 0038D150 38 84 FE 9C */ addi r4, r4, __StringRead@l
/* 803901F4 0038D154 38 A1 00 10 */ addi r5, r1, 0x10
/* 803901F8 0038D158 90 61 00 10 */ stw r3, 0x10(r1)
/* 803901FC 0038D15C 3C 60 80 00 */ lis r3, 0x7FFFFFFF@ha
/* 80390200 0038D160 38 63 FF FF */ addi r3, r3, 0x7FFFFFFF@l
/* 80390204 0038D164 38 C1 00 08 */ addi r6, r1, 8
/* 80390208 0038D168 90 01 00 14 */ stw r0, 0x14(r1)
/* 8039020C 0038D16C 38 E1 00 0C */ addi r7, r1, 0xc
/* 80390210 0038D170 48 00 00 59 */ bl __strtold
/* 80390214 0038D174 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80390218 0038D178 FC 40 0A 10 */ fabs f2, f1
/* 8039021C 0038D17C 2C 00 00 00 */ cmpwi r0, 0
/* 80390220 0038D180 40 82 00 30 */ bne lbl_80390250
/* 80390224 0038D184 C8 02 CF 88 */ lfd f0, lbl_805AECA8@sda21(r2)
/* 80390228 0038D188 FC 00 08 00 */ fcmpu cr0, f0, f1
/* 8039022C 0038D18C 41 82 00 2C */ beq lbl_80390258
/* 80390230 0038D190 3C 60 80 5B */ lis r3, __double_min@ha
/* 80390234 0038D194 C8 03 8B A8 */ lfd f0, __double_min@l(r3)
/* 80390238 0038D198 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8039023C 0038D19C 41 80 00 14 */ blt lbl_80390250
/* 80390240 0038D1A0 3C 60 80 5B */ lis r3, __double_max@ha
/* 80390244 0038D1A4 C8 03 8B B0 */ lfd f0, __double_max@l(r3)
/* 80390248 0038D1A8 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8039024C 0038D1AC 40 81 00 0C */ ble lbl_80390258
lbl_80390250:
/* 80390250 0038D1B0 38 00 00 22 */ li r0, 0x22
/* 80390254 0038D1B4 90 0D AE 10 */ stw r0, errno@sda21(r13)
lbl_80390258:
/* 80390258 0038D1B8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8039025C 0038D1BC 7C 08 03 A6 */ mtlr r0
/* 80390260 0038D1C0 38 21 00 20 */ addi r1, r1, 0x20
/* 80390264 0038D1C4 4E 80 00 20 */ blr
.global __strtold
__strtold:
/* 80390268 0038D1C8 94 21 FF 50 */ stwu r1, -0xb0(r1)
/* 8039026C 0038D1CC 7C 08 02 A6 */ mflr r0
/* 80390270 0038D1D0 3D 00 80 3E */ lis r8, lbl_803D86E8@ha
/* 80390274 0038D1D4 90 01 00 B4 */ stw r0, 0xb4(r1)
/* 80390278 0038D1D8 38 00 00 00 */ li r0, 0
/* 8039027C 0038D1DC BD C1 00 68 */ stmw r14, 0x68(r1)
/* 80390280 0038D1E0 3A E8 86 E8 */ addi r23, r8, lbl_803D86E8@l
/* 80390284 0038D1E4 7C 90 23 78 */ mr r16, r4
/* 80390288 0038D1E8 3C 80 80 3F */ lis r4, __lconv@ha
/* 8039028C 0038D1EC 39 C4 2D 20 */ addi r14, r4, __lconv@l
/* 80390290 0038D1F0 7C B1 2B 78 */ mr r17, r5
/* 80390294 0038D1F4 7C F2 3B 78 */ mr r18, r7
/* 80390298 0038D1F8 90 C1 00 0C */ stw r6, 0xc(r1)
/* 8039029C 0038D1FC 7E 0C 83 78 */ mr r12, r16
/* 803902A0 0038D200 3B 41 00 18 */ addi r26, r1, 0x18
/* 803902A4 0038D204 90 61 00 08 */ stw r3, 8(r1)
/* 803902A8 0038D208 7E 23 8B 78 */ mr r3, r17
/* 803902AC 0038D20C 39 E0 00 01 */ li r15, 1
/* 803902B0 0038D210 3B E0 00 00 */ li r31, 0
/* 803902B4 0038D214 3B A0 00 00 */ li r29, 0
/* 803902B8 0038D218 3B 80 00 00 */ li r28, 0
/* 803902BC 0038D21C 3B 60 00 00 */ li r27, 0
/* 803902C0 0038D220 3B 00 00 00 */ li r24, 0
/* 803902C4 0038D224 82 D7 00 00 */ lwz r22, 0(r23)
/* 803902C8 0038D228 82 97 00 04 */ lwz r20, 4(r23)
/* 803902CC 0038D22C 82 B7 00 08 */ lwz r21, 8(r23)
/* 803902D0 0038D230 80 97 00 0C */ lwz r4, 0xc(r23)
/* 803902D4 0038D234 80 B7 00 10 */ lwz r5, 0x10(r23)
/* 803902D8 0038D238 82 77 00 14 */ lwz r19, 0x14(r23)
/* 803902DC 0038D23C 81 77 00 18 */ lwz r11, 0x18(r23)
/* 803902E0 0038D240 81 57 00 1C */ lwz r10, 0x1c(r23)
/* 803902E4 0038D244 81 37 00 20 */ lwz r9, 0x20(r23)
/* 803902E8 0038D248 81 17 00 24 */ lwz r8, 0x24(r23)
/* 803902EC 0038D24C A0 F7 00 28 */ lhz r7, 0x28(r23)
/* 803902F0 0038D250 3A E0 00 00 */ li r23, 0
/* 803902F4 0038D254 92 C1 00 2C */ stw r22, 0x2c(r1)
/* 803902F8 0038D258 3A C0 00 00 */ li r22, 0
/* 803902FC 0038D25C 80 CE 00 00 */ lwz r6, 0(r14)
/* 80390300 0038D260 39 C0 00 00 */ li r14, 0
/* 80390304 0038D264 92 81 00 30 */ stw r20, 0x30(r1)
/* 80390308 0038D268 3A 80 00 00 */ li r20, 0
/* 8039030C 0038D26C 90 81 00 38 */ stw r4, 0x38(r1)
/* 80390310 0038D270 38 80 00 00 */ li r4, 0
/* 80390314 0038D274 90 A1 00 3C */ stw r5, 0x3c(r1)
/* 80390318 0038D278 38 A0 00 00 */ li r5, 0
/* 8039031C 0038D27C 92 81 00 60 */ stw r20, 0x60(r1)
/* 80390320 0038D280 3A 80 00 00 */ li r20, 0
/* 80390324 0038D284 92 81 00 5C */ stw r20, 0x5c(r1)
/* 80390328 0038D288 3A 80 00 00 */ li r20, 0
/* 8039032C 0038D28C 92 A1 00 34 */ stw r21, 0x34(r1)
/* 80390330 0038D290 92 61 00 40 */ stw r19, 0x40(r1)
/* 80390334 0038D294 91 61 00 44 */ stw r11, 0x44(r1)
/* 80390338 0038D298 91 41 00 48 */ stw r10, 0x48(r1)
/* 8039033C 0038D29C 91 21 00 4C */ stw r9, 0x4c(r1)
/* 80390340 0038D2A0 91 01 00 50 */ stw r8, 0x50(r1)
/* 80390344 0038D2A4 B0 E1 00 54 */ sth r7, 0x54(r1)
/* 80390348 0038D2A8 8A A6 00 00 */ lbz r21, 0(r6)
/* 8039034C 0038D2AC 92 81 00 58 */ stw r20, 0x58(r1)
/* 80390350 0038D2B0 90 12 00 00 */ stw r0, 0(r18)
/* 80390354 0038D2B4 7D 89 03 A6 */ mtctr r12
/* 80390358 0038D2B8 3B C0 00 01 */ li r30, 1
/* 8039035C 0038D2BC 4E 80 04 21 */ bctrl
/* 80390360 0038D2C0 7C 64 1B 78 */ mr r4, r3
/* 80390364 0038D2C4 48 00 0C 48 */ b lbl_80390FAC
lbl_80390368:
/* 80390368 0038D2C8 2C 0F 00 80 */ cmpwi r15, 0x80
/* 8039036C 0038D2CC 41 82 06 7C */ beq lbl_803909E8
/* 80390370 0038D2D0 40 80 00 5C */ bge lbl_803903CC
/* 80390374 0038D2D4 2C 0F 00 08 */ cmpwi r15, 8
/* 80390378 0038D2D8 41 82 04 D8 */ beq lbl_80390850
/* 8039037C 0038D2DC 40 80 00 2C */ bge lbl_803903A8
/* 80390380 0038D2E0 2C 0F 00 03 */ cmpwi r15, 3
/* 80390384 0038D2E4 41 82 0C 28 */ beq lbl_80390FAC
/* 80390388 0038D2E8 40 80 00 14 */ bge lbl_8039039C
/* 8039038C 0038D2EC 2C 0F 00 01 */ cmpwi r15, 1
/* 80390390 0038D2F0 41 82 00 8C */ beq lbl_8039041C
/* 80390394 0038D2F4 40 80 03 C8 */ bge lbl_8039075C
/* 80390398 0038D2F8 48 00 0C 14 */ b lbl_80390FAC
lbl_8039039C:
/* 8039039C 0038D2FC 2C 0F 00 05 */ cmpwi r15, 5
/* 803903A0 0038D300 40 80 0C 0C */ bge lbl_80390FAC
/* 803903A4 0038D304 48 00 04 78 */ b lbl_8039081C
lbl_803903A8:
/* 803903A8 0038D308 2C 0F 00 20 */ cmpwi r15, 0x20
/* 803903AC 0038D30C 41 82 05 68 */ beq lbl_80390914
/* 803903B0 0038D310 40 80 00 10 */ bge lbl_803903C0
/* 803903B4 0038D314 2C 0F 00 10 */ cmpwi r15, 0x10
/* 803903B8 0038D318 41 82 05 34 */ beq lbl_803908EC
/* 803903BC 0038D31C 48 00 0B F0 */ b lbl_80390FAC
lbl_803903C0:
/* 803903C0 0038D320 2C 0F 00 40 */ cmpwi r15, 0x40
/* 803903C4 0038D324 41 82 05 CC */ beq lbl_80390990
/* 803903C8 0038D328 48 00 0B E4 */ b lbl_80390FAC
lbl_803903CC:
/* 803903CC 0038D32C 2C 0F 20 00 */ cmpwi r15, 0x2000
/* 803903D0 0038D330 41 82 02 48 */ beq lbl_80390618
/* 803903D4 0038D334 40 80 00 28 */ bge lbl_803903FC
/* 803903D8 0038D338 2C 0F 02 00 */ cmpwi r15, 0x200
/* 803903DC 0038D33C 41 82 06 C8 */ beq lbl_80390AA4
/* 803903E0 0038D340 40 80 00 10 */ bge lbl_803903F0
/* 803903E4 0038D344 2C 0F 01 00 */ cmpwi r15, 0x100
/* 803903E8 0038D348 41 82 06 64 */ beq lbl_80390A4C
/* 803903EC 0038D34C 48 00 0B C0 */ b lbl_80390FAC
lbl_803903F0:
/* 803903F0 0038D350 2C 0F 04 00 */ cmpwi r15, 0x400
/* 803903F4 0038D354 41 82 06 E4 */ beq lbl_80390AD8
/* 803903F8 0038D358 48 00 0B B4 */ b lbl_80390FAC
lbl_803903FC:
/* 803903FC 0038D35C 3C 60 00 01 */ lis r3, 0x00008000@ha
/* 80390400 0038D360 38 03 80 00 */ addi r0, r3, 0x00008000@l
/* 80390404 0038D364 7C 0F 00 00 */ cmpw r15, r0
/* 80390408 0038D368 41 82 07 30 */ beq lbl_80390B38
/* 8039040C 0038D36C 40 80 0B A0 */ bge lbl_80390FAC
/* 80390410 0038D370 2C 0F 40 00 */ cmpwi r15, 0x4000
/* 80390414 0038D374 41 82 01 24 */ beq lbl_80390538
/* 80390418 0038D378 48 00 0B 94 */ b lbl_80390FAC
lbl_8039041C:
/* 8039041C 0038D37C 3C 60 80 3F */ lis r3, __ctype_map@ha
/* 80390420 0038D380 54 85 06 3E */ clrlwi r5, r4, 0x18
/* 80390424 0038D384 38 63 2A 20 */ addi r3, r3, __ctype_map@l
/* 80390428 0038D388 7C 03 28 AE */ lbzx r0, r3, r5
/* 8039042C 0038D38C 54 00 07 7D */ rlwinm. r0, r0, 0, 0x1d, 0x1e
/* 80390430 0038D390 41 82 00 28 */ beq lbl_80390458
/* 80390434 0038D394 7E 0C 83 78 */ mr r12, r16
/* 80390438 0038D398 7E 23 8B 78 */ mr r3, r17
/* 8039043C 0038D39C 38 80 00 00 */ li r4, 0
/* 80390440 0038D3A0 38 A0 00 00 */ li r5, 0
/* 80390444 0038D3A4 7D 89 03 A6 */ mtctr r12
/* 80390448 0038D3A8 4E 80 04 21 */ bctrl
/* 8039044C 0038D3AC 7C 64 1B 78 */ mr r4, r3
/* 80390450 0038D3B0 3B BD 00 01 */ addi r29, r29, 1
/* 80390454 0038D3B4 48 00 0B 58 */ b lbl_80390FAC
lbl_80390458:
/* 80390458 0038D3B8 2C 04 FF FF */ cmpwi r4, -1
/* 8039045C 0038D3BC 40 82 00 0C */ bne lbl_80390468
/* 80390460 0038D3C0 38 00 FF FF */ li r0, -1
/* 80390464 0038D3C4 48 00 00 10 */ b lbl_80390474
lbl_80390468:
/* 80390468 0038D3C8 3C 60 80 3F */ lis r3, __upper_map@ha
/* 8039046C 0038D3CC 38 63 2C 20 */ addi r3, r3, __upper_map@l
/* 80390470 0038D3D0 7C 03 28 AE */ lbzx r0, r3, r5
lbl_80390474:
/* 80390474 0038D3D4 2C 00 00 49 */ cmpwi r0, 0x49
/* 80390478 0038D3D8 41 82 00 68 */ beq lbl_803904E0
/* 8039047C 0038D3DC 40 80 00 28 */ bge lbl_803904A4
/* 80390480 0038D3E0 2C 00 00 2C */ cmpwi r0, 0x2c
/* 80390484 0038D3E4 41 82 00 AC */ beq lbl_80390530
/* 80390488 0038D3E8 40 80 00 10 */ bge lbl_80390498
/* 8039048C 0038D3EC 2C 00 00 2B */ cmpwi r0, 0x2b
/* 80390490 0038D3F0 40 80 00 24 */ bge lbl_803904B4
/* 80390494 0038D3F4 48 00 00 9C */ b lbl_80390530
lbl_80390498:
/* 80390498 0038D3F8 2C 00 00 2E */ cmpwi r0, 0x2e
/* 8039049C 0038D3FC 40 80 00 94 */ bge lbl_80390530
/* 803904A0 0038D400 48 00 00 10 */ b lbl_803904B0
lbl_803904A4:
/* 803904A4 0038D404 2C 00 00 4E */ cmpwi r0, 0x4e
/* 803904A8 0038D408 41 82 00 60 */ beq lbl_80390508
/* 803904AC 0038D40C 48 00 00 84 */ b lbl_80390530
lbl_803904B0:
/* 803904B0 0038D410 39 C0 00 01 */ li r14, 1
lbl_803904B4:
/* 803904B4 0038D414 7E 0C 83 78 */ mr r12, r16
/* 803904B8 0038D418 7E 23 8B 78 */ mr r3, r17
/* 803904BC 0038D41C 38 80 00 00 */ li r4, 0
/* 803904C0 0038D420 38 A0 00 00 */ li r5, 0
/* 803904C4 0038D424 7D 89 03 A6 */ mtctr r12
/* 803904C8 0038D428 3B DE 00 01 */ addi r30, r30, 1
/* 803904CC 0038D42C 4E 80 04 21 */ bctrl
/* 803904D0 0038D430 38 00 00 01 */ li r0, 1
/* 803904D4 0038D434 7C 64 1B 78 */ mr r4, r3
/* 803904D8 0038D438 90 01 00 5C */ stw r0, 0x5c(r1)
/* 803904DC 0038D43C 48 00 0A D0 */ b lbl_80390FAC
lbl_803904E0:
/* 803904E0 0038D440 7E 0C 83 78 */ mr r12, r16
/* 803904E4 0038D444 7E 23 8B 78 */ mr r3, r17
/* 803904E8 0038D448 38 80 00 00 */ li r4, 0
/* 803904EC 0038D44C 38 A0 00 00 */ li r5, 0
/* 803904F0 0038D450 7D 89 03 A6 */ mtctr r12
/* 803904F4 0038D454 3B DE 00 01 */ addi r30, r30, 1
/* 803904F8 0038D458 4E 80 04 21 */ bctrl
/* 803904FC 0038D45C 39 E0 40 00 */ li r15, 0x4000
/* 80390500 0038D460 7C 64 1B 78 */ mr r4, r3
/* 80390504 0038D464 48 00 0A A8 */ b lbl_80390FAC
lbl_80390508:
/* 80390508 0038D468 7E 0C 83 78 */ mr r12, r16
/* 8039050C 0038D46C 7E 23 8B 78 */ mr r3, r17
/* 80390510 0038D470 38 80 00 00 */ li r4, 0
/* 80390514 0038D474 38 A0 00 00 */ li r5, 0
/* 80390518 0038D478 7D 89 03 A6 */ mtctr r12
/* 8039051C 0038D47C 3B DE 00 01 */ addi r30, r30, 1
/* 80390520 0038D480 4E 80 04 21 */ bctrl
/* 80390524 0038D484 39 E0 20 00 */ li r15, 0x2000
/* 80390528 0038D488 7C 64 1B 78 */ mr r4, r3
/* 8039052C 0038D48C 48 00 0A 80 */ b lbl_80390FAC
lbl_80390530:
/* 80390530 0038D490 39 E0 00 02 */ li r15, 2
/* 80390534 0038D494 48 00 0A 78 */ b lbl_80390FAC
lbl_80390538:
/* 80390538 0038D498 3C 60 80 3E */ lis r3, lbl_803D8714@ha
/* 8039053C 0038D49C 39 E1 00 21 */ addi r15, r1, 0x21
/* 80390540 0038D4A0 38 C3 87 14 */ addi r6, r3, lbl_803D8714@l
/* 80390544 0038D4A4 3A 60 00 01 */ li r19, 1
/* 80390548 0038D4A8 80 A6 00 00 */ lwz r5, 0(r6)
/* 8039054C 0038D4AC 80 66 00 04 */ lwz r3, 4(r6)
/* 80390550 0038D4B0 88 06 00 08 */ lbz r0, 8(r6)
/* 80390554 0038D4B4 90 A1 00 20 */ stw r5, 0x20(r1)
/* 80390558 0038D4B8 90 61 00 24 */ stw r3, 0x24(r1)
/* 8039055C 0038D4BC 98 01 00 28 */ stb r0, 0x28(r1)
/* 80390560 0038D4C0 48 00 00 2C */ b lbl_8039058C
lbl_80390564:
/* 80390564 0038D4C4 7E 0C 83 78 */ mr r12, r16
/* 80390568 0038D4C8 7E 23 8B 78 */ mr r3, r17
/* 8039056C 0038D4CC 38 80 00 00 */ li r4, 0
/* 80390570 0038D4D0 38 A0 00 00 */ li r5, 0
/* 80390574 0038D4D4 7D 89 03 A6 */ mtctr r12
/* 80390578 0038D4D8 39 EF 00 01 */ addi r15, r15, 1
/* 8039057C 0038D4DC 3A 73 00 01 */ addi r19, r19, 1
/* 80390580 0038D4E0 3B DE 00 01 */ addi r30, r30, 1
/* 80390584 0038D4E4 4E 80 04 21 */ bctrl
/* 80390588 0038D4E8 7C 64 1B 78 */ mr r4, r3
lbl_8039058C:
/* 8039058C 0038D4EC 2C 13 00 08 */ cmpwi r19, 8
/* 80390590 0038D4F0 40 80 00 34 */ bge lbl_803905C4
/* 80390594 0038D4F4 88 0F 00 00 */ lbz r0, 0(r15)
/* 80390598 0038D4F8 2C 04 FF FF */ cmpwi r4, -1
/* 8039059C 0038D4FC 7C 05 07 74 */ extsb r5, r0
/* 803905A0 0038D500 40 82 00 0C */ bne lbl_803905AC
/* 803905A4 0038D504 38 00 FF FF */ li r0, -1
/* 803905A8 0038D508 48 00 00 14 */ b lbl_803905BC
lbl_803905AC:
/* 803905AC 0038D50C 3C 60 80 3F */ lis r3, __upper_map@ha
/* 803905B0 0038D510 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 803905B4 0038D514 38 63 2C 20 */ addi r3, r3, __upper_map@l
/* 803905B8 0038D518 7C 03 00 AE */ lbzx r0, r3, r0
lbl_803905BC:
/* 803905BC 0038D51C 7C 05 00 00 */ cmpw r5, r0
/* 803905C0 0038D520 41 82 FF A4 */ beq lbl_80390564
lbl_803905C4:
/* 803905C4 0038D524 2C 13 00 03 */ cmpwi r19, 3
/* 803905C8 0038D528 41 82 00 0C */ beq lbl_803905D4
/* 803905CC 0038D52C 2C 13 00 08 */ cmpwi r19, 8
/* 803905D0 0038D530 40 82 00 40 */ bne lbl_80390610
lbl_803905D4:
/* 803905D4 0038D534 2C 0E 00 00 */ cmpwi r14, 0
/* 803905D8 0038D538 41 82 00 14 */ beq lbl_803905EC
/* 803905DC 0038D53C 3C 60 80 5B */ lis r3, __float_huge@ha
/* 803905E0 0038D540 C0 03 8B A4 */ lfs f0, __float_huge@l(r3)
/* 803905E4 0038D544 FC 20 00 50 */ fneg f1, f0
/* 803905E8 0038D548 48 00 00 0C */ b lbl_803905F4
lbl_803905EC:
/* 803905EC 0038D54C 3C 60 80 5B */ lis r3, __float_huge@ha
/* 803905F0 0038D550 C0 23 8B A4 */ lfs f1, __float_huge@l(r3)
lbl_803905F4:
/* 803905F4 0038D554 80 01 00 5C */ lwz r0, 0x5c(r1)
/* 803905F8 0038D558 80 61 00 0C */ lwz r3, 0xc(r1)
/* 803905FC 0038D55C 7C 13 02 14 */ add r0, r19, r0
/* 80390600 0038D560 D8 21 00 18 */ stfd f1, 0x18(r1)
/* 80390604 0038D564 7C 1D 02 14 */ add r0, r29, r0
/* 80390608 0038D568 90 03 00 00 */ stw r0, 0(r3)
/* 8039060C 0038D56C 48 00 0C 54 */ b lbl_80391260
lbl_80390610:
/* 80390610 0038D570 39 E0 10 00 */ li r15, 0x1000
/* 80390614 0038D574 48 00 09 98 */ b lbl_80390FAC
lbl_80390618:
/* 80390618 0038D578 80 62 CF 80 */ lwz r3, lbl_805AECA0@sda21(r2)
/* 8039061C 0038D57C 39 E1 00 11 */ addi r15, r1, 0x11
/* 80390620 0038D580 88 02 CF 84 */ lbz r0, lbl_805AECA4@sda21(r2)
/* 80390624 0038D584 3A 80 00 01 */ li r20, 1
/* 80390628 0038D588 90 61 00 10 */ stw r3, 0x10(r1)
/* 8039062C 0038D58C 3A 60 00 00 */ li r19, 0
/* 80390630 0038D590 98 01 00 14 */ stb r0, 0x14(r1)
/* 80390634 0038D594 48 00 00 2C */ b lbl_80390660
lbl_80390638:
/* 80390638 0038D598 7E 0C 83 78 */ mr r12, r16
/* 8039063C 0038D59C 7E 23 8B 78 */ mr r3, r17
/* 80390640 0038D5A0 38 80 00 00 */ li r4, 0
/* 80390644 0038D5A4 38 A0 00 00 */ li r5, 0
/* 80390648 0038D5A8 7D 89 03 A6 */ mtctr r12
/* 8039064C 0038D5AC 39 EF 00 01 */ addi r15, r15, 1
/* 80390650 0038D5B0 3A 94 00 01 */ addi r20, r20, 1
/* 80390654 0038D5B4 3B DE 00 01 */ addi r30, r30, 1
/* 80390658 0038D5B8 4E 80 04 21 */ bctrl
/* 8039065C 0038D5BC 7C 64 1B 78 */ mr r4, r3
lbl_80390660:
/* 80390660 0038D5C0 2C 14 00 04 */ cmpwi r20, 4
/* 80390664 0038D5C4 40 80 00 34 */ bge lbl_80390698
/* 80390668 0038D5C8 88 0F 00 00 */ lbz r0, 0(r15)
/* 8039066C 0038D5CC 2C 04 FF FF */ cmpwi r4, -1
/* 80390670 0038D5D0 7C 05 07 74 */ extsb r5, r0
/* 80390674 0038D5D4 40 82 00 0C */ bne lbl_80390680
/* 80390678 0038D5D8 38 00 FF FF */ li r0, -1
/* 8039067C 0038D5DC 48 00 00 14 */ b lbl_80390690
lbl_80390680:
/* 80390680 0038D5E0 3C 60 80 3F */ lis r3, __upper_map@ha
/* 80390684 0038D5E4 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 80390688 0038D5E8 38 63 2C 20 */ addi r3, r3, __upper_map@l
/* 8039068C 0038D5EC 7C 03 00 AE */ lbzx r0, r3, r0
lbl_80390690:
/* 80390690 0038D5F0 7C 05 00 00 */ cmpw r5, r0
/* 80390694 0038D5F4 41 82 FF A4 */ beq lbl_80390638
lbl_80390698:
/* 80390698 0038D5F8 2C 14 00 03 */ cmpwi r20, 3
/* 8039069C 0038D5FC 41 82 00 0C */ beq lbl_803906A8
/* 803906A0 0038D600 2C 14 00 04 */ cmpwi r20, 4
/* 803906A4 0038D604 40 82 00 B0 */ bne lbl_80390754
lbl_803906A8:
/* 803906A8 0038D608 2C 14 00 04 */ cmpwi r20, 4
/* 803906AC 0038D60C 40 82 00 68 */ bne lbl_80390714
/* 803906B0 0038D610 3C 60 80 3F */ lis r3, __ctype_map@ha
/* 803906B4 0038D614 39 E3 2A 20 */ addi r15, r3, __ctype_map@l
/* 803906B8 0038D618 48 00 00 28 */ b lbl_803906E0
lbl_803906BC:
/* 803906BC 0038D61C 7E 0C 83 78 */ mr r12, r16
/* 803906C0 0038D620 7E 23 8B 78 */ mr r3, r17
/* 803906C4 0038D624 38 80 00 00 */ li r4, 0
/* 803906C8 0038D628 38 A0 00 00 */ li r5, 0
/* 803906CC 0038D62C 7D 89 03 A6 */ mtctr r12
/* 803906D0 0038D630 3A 73 00 01 */ addi r19, r19, 1
/* 803906D4 0038D634 3B DE 00 01 */ addi r30, r30, 1
/* 803906D8 0038D638 4E 80 04 21 */ bctrl
/* 803906DC 0038D63C 7C 64 1B 78 */ mr r4, r3
lbl_803906E0:
/* 803906E0 0038D640 2C 13 00 20 */ cmpwi r19, 0x20
/* 803906E4 0038D644 40 80 00 1C */ bge lbl_80390700
/* 803906E8 0038D648 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 803906EC 0038D64C 7C 6F 00 AE */ lbzx r3, r15, r0
/* 803906F0 0038D650 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b
/* 803906F4 0038D654 40 82 FF C8 */ bne lbl_803906BC
/* 803906F8 0038D658 54 60 06 33 */ rlwinm. r0, r3, 0, 0x18, 0x19
/* 803906FC 0038D65C 40 82 FF C0 */ bne lbl_803906BC
lbl_80390700:
/* 80390700 0038D660 2C 04 00 29 */ cmpwi r4, 0x29
/* 80390704 0038D664 41 82 00 0C */ beq lbl_80390710
/* 80390708 0038D668 39 E0 10 00 */ li r15, 0x1000
/* 8039070C 0038D66C 48 00 08 A0 */ b lbl_80390FAC
lbl_80390710:
/* 80390710 0038D670 3A 73 00 01 */ addi r19, r19, 1
lbl_80390714:
/* 80390714 0038D674 2C 0E 00 00 */ cmpwi r14, 0
/* 80390718 0038D678 41 82 00 14 */ beq lbl_8039072C
/* 8039071C 0038D67C 3C 60 80 5B */ lis r3, __float_nan@ha
/* 80390720 0038D680 C0 03 8B A0 */ lfs f0, __float_nan@l(r3)
/* 80390724 0038D684 FC 20 00 50 */ fneg f1, f0
/* 80390728 0038D688 48 00 00 0C */ b lbl_80390734
lbl_8039072C:
/* 8039072C 0038D68C 3C 60 80 5B */ lis r3, __float_nan@ha
/* 80390730 0038D690 C0 23 8B A0 */ lfs f1, __float_nan@l(r3)
lbl_80390734:
/* 80390734 0038D694 80 01 00 5C */ lwz r0, 0x5c(r1)
/* 80390738 0038D698 7C 74 9A 14 */ add r3, r20, r19
/* 8039073C 0038D69C D8 21 00 18 */ stfd f1, 0x18(r1)
/* 80390740 0038D6A0 7C 03 02 14 */ add r0, r3, r0
/* 80390744 0038D6A4 80 61 00 0C */ lwz r3, 0xc(r1)
/* 80390748 0038D6A8 7C 1D 02 14 */ add r0, r29, r0
/* 8039074C 0038D6AC 90 03 00 00 */ stw r0, 0(r3)
/* 80390750 0038D6B0 48 00 0B 10 */ b lbl_80391260
lbl_80390754:
/* 80390754 0038D6B4 39 E0 10 00 */ li r15, 0x1000
/* 80390758 0038D6B8 48 00 08 54 */ b lbl_80390FAC
lbl_8039075C:
/* 8039075C 0038D6BC 7C 04 A8 00 */ cmpw r4, r21
/* 80390760 0038D6C0 40 82 00 2C */ bne lbl_8039078C
/* 80390764 0038D6C4 7E 0C 83 78 */ mr r12, r16
/* 80390768 0038D6C8 7E 23 8B 78 */ mr r3, r17
/* 8039076C 0038D6CC 39 E0 00 10 */ li r15, 0x10
/* 80390770 0038D6D0 38 80 00 00 */ li r4, 0
/* 80390774 0038D6D4 38 A0 00 00 */ li r5, 0
/* 80390778 0038D6D8 7D 89 03 A6 */ mtctr r12
/* 8039077C 0038D6DC 3B DE 00 01 */ addi r30, r30, 1
/* 80390780 0038D6E0 4E 80 04 21 */ bctrl
/* 80390784 0038D6E4 7C 64 1B 78 */ mr r4, r3
/* 80390788 0038D6E8 48 00 08 24 */ b lbl_80390FAC
lbl_8039078C:
/* 8039078C 0038D6EC 3C 60 80 3F */ lis r3, __ctype_map@ha
/* 80390790 0038D6F0 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 80390794 0038D6F4 38 63 2A 20 */ addi r3, r3, __ctype_map@l
/* 80390798 0038D6F8 7C 03 00 AE */ lbzx r0, r3, r0
/* 8039079C 0038D6FC 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 803907A0 0038D700 40 82 00 0C */ bne lbl_803907AC
/* 803907A4 0038D704 39 E0 10 00 */ li r15, 0x1000
/* 803907A8 0038D708 48 00 08 04 */ b lbl_80390FAC
lbl_803907AC:
/* 803907AC 0038D70C 2C 04 00 30 */ cmpwi r4, 0x30
/* 803907B0 0038D710 40 82 00 64 */ bne lbl_80390814
/* 803907B4 0038D714 7E 0C 83 78 */ mr r12, r16
/* 803907B8 0038D718 7E 23 8B 78 */ mr r3, r17
/* 803907BC 0038D71C 38 80 00 00 */ li r4, 0
/* 803907C0 0038D720 38 A0 00 00 */ li r5, 0
/* 803907C4 0038D724 7D 89 03 A6 */ mtctr r12
/* 803907C8 0038D728 3B DE 00 01 */ addi r30, r30, 1
/* 803907CC 0038D72C 4E 80 04 21 */ bctrl
/* 803907D0 0038D730 2C 03 FF FF */ cmpwi r3, -1
/* 803907D4 0038D734 7C 64 1B 78 */ mr r4, r3
/* 803907D8 0038D738 40 82 00 0C */ bne lbl_803907E4
/* 803907DC 0038D73C 38 00 FF FF */ li r0, -1
/* 803907E0 0038D740 48 00 00 14 */ b lbl_803907F4
lbl_803907E4:
/* 803907E4 0038D744 3C A0 80 3F */ lis r5, __upper_map@ha
/* 803907E8 0038D748 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 803907EC 0038D74C 38 65 2C 20 */ addi r3, r5, __upper_map@l
/* 803907F0 0038D750 7C 03 00 AE */ lbzx r0, r3, r0
lbl_803907F4:
/* 803907F4 0038D754 2C 00 00 58 */ cmpwi r0, 0x58
/* 803907F8 0038D758 40 82 00 14 */ bne lbl_8039080C
/* 803907FC 0038D75C 3C 60 00 01 */ lis r3, 0x00008000@ha
/* 80390800 0038D760 3B E0 00 01 */ li r31, 1
/* 80390804 0038D764 39 E3 80 00 */ addi r15, r3, 0x00008000@l
/* 80390808 0038D768 48 00 07 A4 */ b lbl_80390FAC
lbl_8039080C:
/* 8039080C 0038D76C 39 E0 00 04 */ li r15, 4
/* 80390810 0038D770 48 00 07 9C */ b lbl_80390FAC
lbl_80390814:
/* 80390814 0038D774 39 E0 00 08 */ li r15, 8
/* 80390818 0038D778 48 00 07 94 */ b lbl_80390FAC
lbl_8039081C:
/* 8039081C 0038D77C 2C 04 00 30 */ cmpwi r4, 0x30
/* 80390820 0038D780 40 82 00 28 */ bne lbl_80390848
/* 80390824 0038D784 7E 0C 83 78 */ mr r12, r16
/* 80390828 0038D788 7E 23 8B 78 */ mr r3, r17
/* 8039082C 0038D78C 38 80 00 00 */ li r4, 0
/* 80390830 0038D790 38 A0 00 00 */ li r5, 0
/* 80390834 0038D794 7D 89 03 A6 */ mtctr r12
/* 80390838 0038D798 3B DE 00 01 */ addi r30, r30, 1
/* 8039083C 0038D79C 4E 80 04 21 */ bctrl
/* 80390840 0038D7A0 7C 64 1B 78 */ mr r4, r3
/* 80390844 0038D7A4 48 00 07 68 */ b lbl_80390FAC
lbl_80390848:
/* 80390848 0038D7A8 39 E0 00 08 */ li r15, 8
/* 8039084C 0038D7AC 48 00 07 60 */ b lbl_80390FAC
lbl_80390850:
/* 80390850 0038D7B0 3C 60 80 3F */ lis r3, __ctype_map@ha
/* 80390854 0038D7B4 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 80390858 0038D7B8 38 63 2A 20 */ addi r3, r3, __ctype_map@l
/* 8039085C 0038D7BC 7C 03 00 AE */ lbzx r0, r3, r0
/* 80390860 0038D7C0 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 80390864 0038D7C4 40 82 00 3C */ bne lbl_803908A0
/* 80390868 0038D7C8 7C 04 A8 00 */ cmpw r4, r21
/* 8039086C 0038D7CC 40 82 00 2C */ bne lbl_80390898
/* 80390870 0038D7D0 7E 0C 83 78 */ mr r12, r16
/* 80390874 0038D7D4 7E 23 8B 78 */ mr r3, r17
/* 80390878 0038D7D8 39 E0 00 20 */ li r15, 0x20
/* 8039087C 0038D7DC 38 80 00 00 */ li r4, 0
/* 80390880 0038D7E0 38 A0 00 00 */ li r5, 0
/* 80390884 0038D7E4 7D 89 03 A6 */ mtctr r12
/* 80390888 0038D7E8 3B DE 00 01 */ addi r30, r30, 1
/* 8039088C 0038D7EC 4E 80 04 21 */ bctrl
/* 80390890 0038D7F0 7C 64 1B 78 */ mr r4, r3
/* 80390894 0038D7F4 48 00 07 18 */ b lbl_80390FAC
lbl_80390898:
/* 80390898 0038D7F8 39 E0 00 40 */ li r15, 0x40
/* 8039089C 0038D7FC 48 00 07 10 */ b lbl_80390FAC
lbl_803908A0:
/* 803908A0 0038D800 88 A1 00 30 */ lbz r5, 0x30(r1)
/* 803908A4 0038D804 28 05 00 14 */ cmplwi r5, 0x14
/* 803908A8 0038D808 40 80 00 1C */ bge lbl_803908C4
/* 803908AC 0038D80C 38 05 00 01 */ addi r0, r5, 1
/* 803908B0 0038D810 38 61 00 2C */ addi r3, r1, 0x2c
/* 803908B4 0038D814 98 01 00 30 */ stb r0, 0x30(r1)
/* 803908B8 0038D818 38 05 00 05 */ addi r0, r5, 5
/* 803908BC 0038D81C 7C 83 01 AE */ stbx r4, r3, r0
/* 803908C0 0038D820 48 00 00 08 */ b lbl_803908C8
lbl_803908C4:
/* 803908C4 0038D824 3B 7B 00 01 */ addi r27, r27, 1
lbl_803908C8:
/* 803908C8 0038D828 7E 0C 83 78 */ mr r12, r16
/* 803908CC 0038D82C 7E 23 8B 78 */ mr r3, r17
/* 803908D0 0038D830 38 80 00 00 */ li r4, 0
/* 803908D4 0038D834 38 A0 00 00 */ li r5, 0
/* 803908D8 0038D838 7D 89 03 A6 */ mtctr r12
/* 803908DC 0038D83C 3B DE 00 01 */ addi r30, r30, 1
/* 803908E0 0038D840 4E 80 04 21 */ bctrl
/* 803908E4 0038D844 7C 64 1B 78 */ mr r4, r3
/* 803908E8 0038D848 48 00 06 C4 */ b lbl_80390FAC
lbl_803908EC:
/* 803908EC 0038D84C 3C 60 80 3F */ lis r3, __ctype_map@ha
/* 803908F0 0038D850 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 803908F4 0038D854 38 63 2A 20 */ addi r3, r3, __ctype_map@l
/* 803908F8 0038D858 7C 03 00 AE */ lbzx r0, r3, r0
/* 803908FC 0038D85C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 80390900 0038D860 40 82 00 0C */ bne lbl_8039090C
/* 80390904 0038D864 39 E0 10 00 */ li r15, 0x1000
/* 80390908 0038D868 48 00 06 A4 */ b lbl_80390FAC
lbl_8039090C:
/* 8039090C 0038D86C 39 E0 00 20 */ li r15, 0x20
/* 80390910 0038D870 48 00 06 9C */ b lbl_80390FAC
lbl_80390914:
/* 80390914 0038D874 3C 60 80 3F */ lis r3, __ctype_map@ha
/* 80390918 0038D878 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 8039091C 0038D87C 38 63 2A 20 */ addi r3, r3, __ctype_map@l
/* 80390920 0038D880 7C 03 00 AE */ lbzx r0, r3, r0
/* 80390924 0038D884 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 80390928 0038D888 40 82 00 0C */ bne lbl_80390934
/* 8039092C 0038D88C 39 E0 00 40 */ li r15, 0x40
/* 80390930 0038D890 48 00 06 7C */ b lbl_80390FAC
lbl_80390934:
/* 80390934 0038D894 88 01 00 30 */ lbz r0, 0x30(r1)
/* 80390938 0038D898 28 00 00 14 */ cmplwi r0, 0x14
/* 8039093C 0038D89C 40 80 00 30 */ bge lbl_8039096C
/* 80390940 0038D8A0 2C 04 00 30 */ cmpwi r4, 0x30
/* 80390944 0038D8A4 40 82 00 0C */ bne lbl_80390950
/* 80390948 0038D8A8 28 00 00 00 */ cmplwi r0, 0
/* 8039094C 0038D8AC 41 82 00 1C */ beq lbl_80390968
lbl_80390950:
/* 80390950 0038D8B0 88 C1 00 30 */ lbz r6, 0x30(r1)
/* 80390954 0038D8B4 38 61 00 2C */ addi r3, r1, 0x2c
/* 80390958 0038D8B8 38 A6 00 01 */ addi r5, r6, 1
/* 8039095C 0038D8BC 38 06 00 05 */ addi r0, r6, 5
/* 80390960 0038D8C0 98 A1 00 30 */ stb r5, 0x30(r1)
/* 80390964 0038D8C4 7C 83 01 AE */ stbx r4, r3, r0
lbl_80390968:
/* 80390968 0038D8C8 3B 7B FF FF */ addi r27, r27, -1
lbl_8039096C:
/* 8039096C 0038D8CC 7E 0C 83 78 */ mr r12, r16
/* 80390970 0038D8D0 7E 23 8B 78 */ mr r3, r17
/* 80390974 0038D8D4 38 80 00 00 */ li r4, 0
/* 80390978 0038D8D8 38 A0 00 00 */ li r5, 0
/* 8039097C 0038D8DC 7D 89 03 A6 */ mtctr r12
/* 80390980 0038D8E0 3B DE 00 01 */ addi r30, r30, 1
/* 80390984 0038D8E4 4E 80 04 21 */ bctrl
/* 80390988 0038D8E8 7C 64 1B 78 */ mr r4, r3
/* 8039098C 0038D8EC 48 00 06 20 */ b lbl_80390FAC
lbl_80390990:
/* 80390990 0038D8F0 2C 04 FF FF */ cmpwi r4, -1
/* 80390994 0038D8F4 40 82 00 0C */ bne lbl_803909A0
/* 80390998 0038D8F8 38 00 FF FF */ li r0, -1
/* 8039099C 0038D8FC 48 00 00 14 */ b lbl_803909B0
lbl_803909A0:
/* 803909A0 0038D900 3C 60 80 3F */ lis r3, __upper_map@ha
/* 803909A4 0038D904 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 803909A8 0038D908 38 63 2C 20 */ addi r3, r3, __upper_map@l
/* 803909AC 0038D90C 7C 03 00 AE */ lbzx r0, r3, r0
lbl_803909B0:
/* 803909B0 0038D910 2C 00 00 45 */ cmpwi r0, 0x45
/* 803909B4 0038D914 40 82 00 2C */ bne lbl_803909E0
/* 803909B8 0038D918 7E 0C 83 78 */ mr r12, r16
/* 803909BC 0038D91C 7E 23 8B 78 */ mr r3, r17
/* 803909C0 0038D920 39 E0 00 80 */ li r15, 0x80
/* 803909C4 0038D924 38 80 00 00 */ li r4, 0
/* 803909C8 0038D928 38 A0 00 00 */ li r5, 0
/* 803909CC 0038D92C 7D 89 03 A6 */ mtctr r12
/* 803909D0 0038D930 3B DE 00 01 */ addi r30, r30, 1
/* 803909D4 0038D934 4E 80 04 21 */ bctrl
/* 803909D8 0038D938 7C 64 1B 78 */ mr r4, r3
/* 803909DC 0038D93C 48 00 05 D0 */ b lbl_80390FAC
lbl_803909E0:
/* 803909E0 0038D940 39 E0 08 00 */ li r15, 0x800
/* 803909E4 0038D944 48 00 05 C8 */ b lbl_80390FAC
lbl_803909E8:
/* 803909E8 0038D948 2C 04 00 2B */ cmpwi r4, 0x2b
/* 803909EC 0038D94C 40 82 00 28 */ bne lbl_80390A14
/* 803909F0 0038D950 7E 0C 83 78 */ mr r12, r16
/* 803909F4 0038D954 7E 23 8B 78 */ mr r3, r17
/* 803909F8 0038D958 38 80 00 00 */ li r4, 0
/* 803909FC 0038D95C 38 A0 00 00 */ li r5, 0
/* 80390A00 0038D960 7D 89 03 A6 */ mtctr r12
/* 80390A04 0038D964 3B DE 00 01 */ addi r30, r30, 1
/* 80390A08 0038D968 4E 80 04 21 */ bctrl
/* 80390A0C 0038D96C 7C 64 1B 78 */ mr r4, r3
/* 80390A10 0038D970 48 00 00 34 */ b lbl_80390A44
lbl_80390A14:
/* 80390A14 0038D974 2C 04 00 2D */ cmpwi r4, 0x2d
/* 80390A18 0038D978 40 82 00 2C */ bne lbl_80390A44
/* 80390A1C 0038D97C 7E 0C 83 78 */ mr r12, r16
/* 80390A20 0038D980 7E 23 8B 78 */ mr r3, r17
/* 80390A24 0038D984 38 80 00 00 */ li r4, 0
/* 80390A28 0038D988 38 A0 00 00 */ li r5, 0
/* 80390A2C 0038D98C 7D 89 03 A6 */ mtctr r12
/* 80390A30 0038D990 3B DE 00 01 */ addi r30, r30, 1
/* 80390A34 0038D994 4E 80 04 21 */ bctrl
/* 80390A38 0038D998 38 00 00 01 */ li r0, 1
/* 80390A3C 0038D99C 7C 64 1B 78 */ mr r4, r3
/* 80390A40 0038D9A0 90 01 00 60 */ stw r0, 0x60(r1)
lbl_80390A44:
/* 80390A44 0038D9A4 39 E0 01 00 */ li r15, 0x100
/* 80390A48 0038D9A8 48 00 05 64 */ b lbl_80390FAC
lbl_80390A4C:
/* 80390A4C 0038D9AC 3C 60 80 3F */ lis r3, __ctype_map@ha
/* 80390A50 0038D9B0 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 80390A54 0038D9B4 38 63 2A 20 */ addi r3, r3, __ctype_map@l
/* 80390A58 0038D9B8 7C 03 00 AE */ lbzx r0, r3, r0
/* 80390A5C 0038D9BC 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 80390A60 0038D9C0 40 82 00 0C */ bne lbl_80390A6C
/* 80390A64 0038D9C4 39 E0 10 00 */ li r15, 0x1000
/* 80390A68 0038D9C8 48 00 05 44 */ b lbl_80390FAC
lbl_80390A6C:
/* 80390A6C 0038D9CC 2C 04 00 30 */ cmpwi r4, 0x30
/* 80390A70 0038D9D0 40 82 00 2C */ bne lbl_80390A9C
/* 80390A74 0038D9D4 7E 0C 83 78 */ mr r12, r16
/* 80390A78 0038D9D8 7E 23 8B 78 */ mr r3, r17
/* 80390A7C 0038D9DC 39 E0 02 00 */ li r15, 0x200
/* 80390A80 0038D9E0 38 80 00 00 */ li r4, 0
/* 80390A84 0038D9E4 38 A0 00 00 */ li r5, 0
/* 80390A88 0038D9E8 7D 89 03 A6 */ mtctr r12
/* 80390A8C 0038D9EC 3B DE 00 01 */ addi r30, r30, 1
/* 80390A90 0038D9F0 4E 80 04 21 */ bctrl
/* 80390A94 0038D9F4 7C 64 1B 78 */ mr r4, r3
/* 80390A98 0038D9F8 48 00 05 14 */ b lbl_80390FAC
lbl_80390A9C:
/* 80390A9C 0038D9FC 39 E0 04 00 */ li r15, 0x400
/* 80390AA0 0038DA00 48 00 05 0C */ b lbl_80390FAC
lbl_80390AA4:
/* 80390AA4 0038DA04 2C 04 00 30 */ cmpwi r4, 0x30
/* 80390AA8 0038DA08 40 82 00 28 */ bne lbl_80390AD0
/* 80390AAC 0038DA0C 7E 0C 83 78 */ mr r12, r16
/* 80390AB0 0038DA10 7E 23 8B 78 */ mr r3, r17
/* 80390AB4 0038DA14 38 80 00 00 */ li r4, 0
/* 80390AB8 0038DA18 38 A0 00 00 */ li r5, 0
/* 80390ABC 0038DA1C 7D 89 03 A6 */ mtctr r12
/* 80390AC0 0038DA20 3B DE 00 01 */ addi r30, r30, 1
/* 80390AC4 0038DA24 4E 80 04 21 */ bctrl
/* 80390AC8 0038DA28 7C 64 1B 78 */ mr r4, r3
/* 80390ACC 0038DA2C 48 00 04 E0 */ b lbl_80390FAC
lbl_80390AD0:
/* 80390AD0 0038DA30 39 E0 04 00 */ li r15, 0x400
/* 80390AD4 0038DA34 48 00 04 D8 */ b lbl_80390FAC
lbl_80390AD8:
/* 80390AD8 0038DA38 3C 60 80 3F */ lis r3, __ctype_map@ha
/* 80390ADC 0038DA3C 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 80390AE0 0038DA40 38 63 2A 20 */ addi r3, r3, __ctype_map@l
/* 80390AE4 0038DA44 7C 03 00 AE */ lbzx r0, r3, r0
/* 80390AE8 0038DA48 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 80390AEC 0038DA4C 40 82 00 0C */ bne lbl_80390AF8
/* 80390AF0 0038DA50 39 E0 08 00 */ li r15, 0x800
/* 80390AF4 0038DA54 48 00 04 B8 */ b lbl_80390FAC
lbl_80390AF8:
/* 80390AF8 0038DA58 1C 1C 00 0A */ mulli r0, r28, 0xa
/* 80390AFC 0038DA5C 7F 84 02 14 */ add r28, r4, r0
/* 80390B00 0038DA60 3B 9C FF D0 */ addi r28, r28, -48
/* 80390B04 0038DA64 2C 1C 7F FF */ cmpwi r28, 0x7fff
/* 80390B08 0038DA68 40 81 00 0C */ ble lbl_80390B14
/* 80390B0C 0038DA6C 38 00 00 01 */ li r0, 1
/* 80390B10 0038DA70 90 12 00 00 */ stw r0, 0(r18)
lbl_80390B14:
/* 80390B14 0038DA74 7E 0C 83 78 */ mr r12, r16
/* 80390B18 0038DA78 7E 23 8B 78 */ mr r3, r17
/* 80390B1C 0038DA7C 38 80 00 00 */ li r4, 0
/* 80390B20 0038DA80 38 A0 00 00 */ li r5, 0
/* 80390B24 0038DA84 7D 89 03 A6 */ mtctr r12
/* 80390B28 0038DA88 3B DE 00 01 */ addi r30, r30, 1
/* 80390B2C 0038DA8C 4E 80 04 21 */ bctrl
/* 80390B30 0038DA90 7C 64 1B 78 */ mr r4, r3
/* 80390B34 0038DA94 48 00 04 78 */ b lbl_80390FAC
lbl_80390B38:
/* 80390B38 0038DA98 2C 1F 00 10 */ cmpwi r31, 0x10
/* 80390B3C 0038DA9C 41 82 02 F4 */ beq lbl_80390E30
/* 80390B40 0038DAA0 40 80 00 34 */ bge lbl_80390B74
/* 80390B44 0038DAA4 2C 1F 00 04 */ cmpwi r31, 4
/* 80390B48 0038DAA8 41 82 00 D4 */ beq lbl_80390C1C
/* 80390B4C 0038DAAC 40 80 00 1C */ bge lbl_80390B68
/* 80390B50 0038DAB0 2C 1F 00 02 */ cmpwi r31, 2
/* 80390B54 0038DAB4 41 82 00 94 */ beq lbl_80390BE8
/* 80390B58 0038DAB8 40 80 04 54 */ bge lbl_80390FAC
/* 80390B5C 0038DABC 2C 1F 00 01 */ cmpwi r31, 1
/* 80390B60 0038DAC0 40 80 00 38 */ bge lbl_80390B98
/* 80390B64 0038DAC4 48 00 04 48 */ b lbl_80390FAC
lbl_80390B68:
/* 80390B68 0038DAC8 2C 1F 00 08 */ cmpwi r31, 8
/* 80390B6C 0038DACC 41 82 01 D4 */ beq lbl_80390D40
/* 80390B70 0038DAD0 48 00 04 3C */ b lbl_80390FAC
lbl_80390B74:
/* 80390B74 0038DAD4 2C 1F 00 40 */ cmpwi r31, 0x40
/* 80390B78 0038DAD8 41 82 03 74 */ beq lbl_80390EEC
/* 80390B7C 0038DADC 40 80 00 10 */ bge lbl_80390B8C
/* 80390B80 0038DAE0 2C 1F 00 20 */ cmpwi r31, 0x20
/* 80390B84 0038DAE4 41 82 03 08 */ beq lbl_80390E8C
/* 80390B88 0038DAE8 48 00 04 24 */ b lbl_80390FAC
lbl_80390B8C:
/* 80390B8C 0038DAEC 2C 1F 01 00 */ cmpwi r31, 0x100
/* 80390B90 0038DAF0 41 82 03 B8 */ beq lbl_80390F48
/* 80390B94 0038DAF4 48 00 04 18 */ b lbl_80390FAC
lbl_80390B98:
/* 80390B98 0038DAF8 38 00 00 00 */ li r0, 0
/* 80390B9C 0038DAFC 7E 0C 83 78 */ mr r12, r16
/* 80390BA0 0038DB00 7E 23 8B 78 */ mr r3, r17
/* 80390BA4 0038DB04 98 01 00 18 */ stb r0, 0x18(r1)
/* 80390BA8 0038DB08 3B 20 00 02 */ li r25, 2
/* 80390BAC 0038DB0C 3B E0 00 02 */ li r31, 2
/* 80390BB0 0038DB10 98 01 00 19 */ stb r0, 0x19(r1)
/* 80390BB4 0038DB14 38 80 00 00 */ li r4, 0
/* 80390BB8 0038DB18 38 A0 00 00 */ li r5, 0
/* 80390BBC 0038DB1C 98 01 00 1A */ stb r0, 0x1a(r1)
/* 80390BC0 0038DB20 98 01 00 1B */ stb r0, 0x1b(r1)
/* 80390BC4 0038DB24 98 01 00 1C */ stb r0, 0x1c(r1)
/* 80390BC8 0038DB28 98 01 00 1D */ stb r0, 0x1d(r1)
/* 80390BCC 0038DB2C 98 01 00 1E */ stb r0, 0x1e(r1)
/* 80390BD0 0038DB30 98 01 00 1F */ stb r0, 0x1f(r1)
/* 80390BD4 0038DB34 7D 89 03 A6 */ mtctr r12
/* 80390BD8 0038DB38 3B DE 00 01 */ addi r30, r30, 1
/* 80390BDC 0038DB3C 4E 80 04 21 */ bctrl
/* 80390BE0 0038DB40 7C 64 1B 78 */ mr r4, r3
/* 80390BE4 0038DB44 48 00 03 C8 */ b lbl_80390FAC
lbl_80390BE8:
/* 80390BE8 0038DB48 2C 04 00 30 */ cmpwi r4, 0x30
/* 80390BEC 0038DB4C 40 82 00 28 */ bne lbl_80390C14
/* 80390BF0 0038DB50 7E 0C 83 78 */ mr r12, r16
/* 80390BF4 0038DB54 7E 23 8B 78 */ mr r3, r17
/* 80390BF8 0038DB58 38 80 00 00 */ li r4, 0
/* 80390BFC 0038DB5C 38 A0 00 00 */ li r5, 0
/* 80390C00 0038DB60 7D 89 03 A6 */ mtctr r12
/* 80390C04 0038DB64 3B DE 00 01 */ addi r30, r30, 1
/* 80390C08 0038DB68 4E 80 04 21 */ bctrl
/* 80390C0C 0038DB6C 7C 64 1B 78 */ mr r4, r3
/* 80390C10 0038DB70 48 00 03 9C */ b lbl_80390FAC
lbl_80390C14:
/* 80390C14 0038DB74 3B E0 00 04 */ li r31, 4
/* 80390C18 0038DB78 48 00 03 94 */ b lbl_80390FAC
lbl_80390C1C:
/* 80390C1C 0038DB7C 3C 60 80 3F */ lis r3, __ctype_map@ha
/* 80390C20 0038DB80 54 85 06 3E */ clrlwi r5, r4, 0x18
/* 80390C24 0038DB84 38 63 2A 20 */ addi r3, r3, __ctype_map@l
/* 80390C28 0038DB88 7C 03 28 AE */ lbzx r0, r3, r5
/* 80390C2C 0038DB8C 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
/* 80390C30 0038DB90 40 82 00 3C */ bne lbl_80390C6C
/* 80390C34 0038DB94 7C 04 A8 00 */ cmpw r4, r21
/* 80390C38 0038DB98 40 82 00 2C */ bne lbl_80390C64
/* 80390C3C 0038DB9C 7E 0C 83 78 */ mr r12, r16
/* 80390C40 0038DBA0 7E 23 8B 78 */ mr r3, r17
/* 80390C44 0038DBA4 3B E0 00 08 */ li r31, 8
/* 80390C48 0038DBA8 38 80 00 00 */ li r4, 0
/* 80390C4C 0038DBAC 38 A0 00 00 */ li r5, 0
/* 80390C50 0038DBB0 7D 89 03 A6 */ mtctr r12
/* 80390C54 0038DBB4 3B DE 00 01 */ addi r30, r30, 1
/* 80390C58 0038DBB8 4E 80 04 21 */ bctrl
/* 80390C5C 0038DBBC 7C 64 1B 78 */ mr r4, r3
/* 80390C60 0038DBC0 48 00 03 4C */ b lbl_80390FAC
lbl_80390C64:
/* 80390C64 0038DBC4 3B E0 00 10 */ li r31, 0x10
/* 80390C68 0038DBC8 48 00 03 44 */ b lbl_80390FAC
lbl_80390C6C:
/* 80390C6C 0038DBCC 2C 19 00 11 */ cmpwi r25, 0x11
/* 80390C70 0038DBD0 40 80 00 AC */ bge lbl_80390D1C
/* 80390C74 0038DBD4 57 20 0F FE */ srwi r0, r25, 0x1f
/* 80390C78 0038DBD8 2C 04 FF FF */ cmpwi r4, -1
/* 80390C7C 0038DBDC 7C 00 CA 14 */ add r0, r0, r25
/* 80390C80 0038DBE0 3A F7 00 01 */ addi r23, r23, 1
/* 80390C84 0038DBE4 7C 00 0E 70 */ srawi r0, r0, 1
/* 80390C88 0038DBE8 7C DA 00 AE */ lbzx r6, r26, r0
/* 80390C8C 0038DBEC 40 82 00 0C */ bne lbl_80390C98
/* 80390C90 0038DBF0 38 60 FF FF */ li r3, -1
/* 80390C94 0038DBF4 48 00 00 10 */ b lbl_80390CA4
lbl_80390C98:
/* 80390C98 0038DBF8 3C 60 80 3F */ lis r3, __upper_map@ha
/* 80390C9C 0038DBFC 38 63 2C 20 */ addi r3, r3, __upper_map@l
/* 80390CA0 0038DC00 7C 63 28 AE */ lbzx r3, r3, r5
lbl_80390CA4:
/* 80390CA4 0038DC04 2C 03 00 41 */ cmpwi r3, 0x41
/* 80390CA8 0038DC08 41 80 00 0C */ blt lbl_80390CB4
/* 80390CAC 0038DC0C 38 A3 FF C9 */ addi r5, r3, -55
/* 80390CB0 0038DC10 48 00 00 08 */ b lbl_80390CB8
lbl_80390CB4:
/* 80390CB4 0038DC14 38 A3 FF D0 */ addi r5, r3, -48
lbl_80390CB8:
/* 80390CB8 0038DC18 57 24 0F FE */ srwi r4, r25, 0x1f
/* 80390CBC 0038DC1C 57 20 07 FE */ clrlwi r0, r25, 0x1f
/* 80390CC0 0038DC20 7C 03 22 78 */ xor r3, r0, r4
/* 80390CC4 0038DC24 54 A0 25 36 */ rlwinm r0, r5, 4, 0x14, 0x1b
/* 80390CC8 0038DC28 7C 64 18 51 */ subf. r3, r4, r3
/* 80390CCC 0038DC2C 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 80390CD0 0038DC30 7C C0 03 78 */ or r0, r6, r0
/* 80390CD4 0038DC34 54 05 06 3E */ clrlwi r5, r0, 0x18
/* 80390CD8 0038DC38 41 82 00 0C */ beq lbl_80390CE4
/* 80390CDC 0038DC3C 7C C0 1B 78 */ or r0, r6, r3
/* 80390CE0 0038DC40 54 05 06 3E */ clrlwi r5, r0, 0x18
lbl_80390CE4:
/* 80390CE4 0038DC44 57 20 0F FE */ srwi r0, r25, 0x1f
/* 80390CE8 0038DC48 7E 0C 83 78 */ mr r12, r16
/* 80390CEC 0038DC4C 7C 00 CA 14 */ add r0, r0, r25
/* 80390CF0 0038DC50 7E 23 8B 78 */ mr r3, r17
/* 80390CF4 0038DC54 7C 00 0E 70 */ srawi r0, r0, 1
/* 80390CF8 0038DC58 38 80 00 00 */ li r4, 0
/* 80390CFC 0038DC5C 7C BA 01 AE */ stbx r5, r26, r0
/* 80390D00 0038DC60 38 A0 00 00 */ li r5, 0
/* 80390D04 0038DC64 7D 89 03 A6 */ mtctr r12
/* 80390D08 0038DC68 3B 39 00 01 */ addi r25, r25, 1
/* 80390D0C 0038DC6C 3B DE 00 01 */ addi r30, r30, 1
/* 80390D10 0038DC70 4E 80 04 21 */ bctrl
/* 80390D14 0038DC74 7C 64 1B 78 */ mr r4, r3
/* 80390D18 0038DC78 48 00 02 94 */ b lbl_80390FAC
lbl_80390D1C:
/* 80390D1C 0038DC7C 7E 0C 83 78 */ mr r12, r16
/* 80390D20 0038DC80 7E 23 8B 78 */ mr r3, r17
/* 80390D24 0038DC84 38 80 00 00 */ li r4, 0
/* 80390D28 0038DC88 38 A0 00 00 */ li r5, 0
/* 80390D2C 0038DC8C 7D 89 03 A6 */ mtctr r12
/* 80390D30 0038DC90 3B DE 00 01 */ addi r30, r30, 1
/* 80390D34 0038DC94 4E 80 04 21 */ bctrl
/* 80390D38 0038DC98 7C 64 1B 78 */ mr r4, r3
/* 80390D3C 0038DC9C 48 00 02 70 */ b lbl_80390FAC
lbl_80390D40:
/* 80390D40 0038DCA0 3C 60 80 3F */ lis r3, __ctype_map@ha
/* 80390D44 0038DCA4 54 85 06 3E */ clrlwi r5, r4, 0x18
/* 80390D48 0038DCA8 38 63 2A 20 */ addi r3, r3, __ctype_map@l
/* 80390D4C 0038DCAC 7C 03 28 AE */ lbzx r0, r3, r5
/* 80390D50 0038DCB0 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
/* 80390D54 0038DCB4 40 82 00 0C */ bne lbl_80390D60
/* 80390D58 0038DCB8 3B E0 00 10 */ li r31, 0x10
/* 80390D5C 0038DCBC 48 00 02 50 */ b lbl_80390FAC
lbl_80390D60:
/* 80390D60 0038DCC0 2C 19 00 11 */ cmpwi r25, 0x11
/* 80390D64 0038DCC4 40 80 00 A8 */ bge lbl_80390E0C
/* 80390D68 0038DCC8 57 20 0F FE */ srwi r0, r25, 0x1f
/* 80390D6C 0038DCCC 2C 04 FF FF */ cmpwi r4, -1
/* 80390D70 0038DCD0 7C 00 CA 14 */ add r0, r0, r25
/* 80390D74 0038DCD4 7C 00 0E 70 */ srawi r0, r0, 1
/* 80390D78 0038DCD8 7C DA 00 AE */ lbzx r6, r26, r0
/* 80390D7C 0038DCDC 40 82 00 0C */ bne lbl_80390D88
/* 80390D80 0038DCE0 38 60 FF FF */ li r3, -1
/* 80390D84 0038DCE4 48 00 00 10 */ b lbl_80390D94
lbl_80390D88:
/* 80390D88 0038DCE8 3C 60 80 3F */ lis r3, __upper_map@ha
/* 80390D8C 0038DCEC 38 63 2C 20 */ addi r3, r3, __upper_map@l
/* 80390D90 0038DCF0 7C 63 28 AE */ lbzx r3, r3, r5
lbl_80390D94:
/* 80390D94 0038DCF4 2C 03 00 41 */ cmpwi r3, 0x41
/* 80390D98 0038DCF8 41 80 00 0C */ blt lbl_80390DA4
/* 80390D9C 0038DCFC 38 A3 FF C9 */ addi r5, r3, -55
/* 80390DA0 0038DD00 48 00 00 08 */ b lbl_80390DA8
lbl_80390DA4:
/* 80390DA4 0038DD04 38 A3 FF D0 */ addi r5, r3, -48
lbl_80390DA8:
/* 80390DA8 0038DD08 57 24 0F FE */ srwi r4, r25, 0x1f
/* 80390DAC 0038DD0C 57 20 07 FE */ clrlwi r0, r25, 0x1f
/* 80390DB0 0038DD10 7C 03 22 78 */ xor r3, r0, r4
/* 80390DB4 0038DD14 54 A0 25 36 */ rlwinm r0, r5, 4, 0x14, 0x1b
/* 80390DB8 0038DD18 7C 64 18 51 */ subf. r3, r4, r3
/* 80390DBC 0038DD1C 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 80390DC0 0038DD20 7C C0 03 78 */ or r0, r6, r0
/* 80390DC4 0038DD24 54 05 06 3E */ clrlwi r5, r0, 0x18
/* 80390DC8 0038DD28 41 82 00 0C */ beq lbl_80390DD4
/* 80390DCC 0038DD2C 7C C0 1B 78 */ or r0, r6, r3
/* 80390DD0 0038DD30 54 05 06 3E */ clrlwi r5, r0, 0x18
lbl_80390DD4:
/* 80390DD4 0038DD34 57 20 0F FE */ srwi r0, r25, 0x1f
/* 80390DD8 0038DD38 7E 0C 83 78 */ mr r12, r16
/* 80390DDC 0038DD3C 7C 00 CA 14 */ add r0, r0, r25
/* 80390DE0 0038DD40 7E 23 8B 78 */ mr r3, r17
/* 80390DE4 0038DD44 7C 00 0E 70 */ srawi r0, r0, 1
/* 80390DE8 0038DD48 38 80 00 00 */ li r4, 0
/* 80390DEC 0038DD4C 7C BA 01 AE */ stbx r5, r26, r0
/* 80390DF0 0038DD50 38 A0 00 00 */ li r5, 0
/* 80390DF4 0038DD54 7D 89 03 A6 */ mtctr r12
/* 80390DF8 0038DD58 3B 39 00 01 */ addi r25, r25, 1
/* 80390DFC 0038DD5C 3B DE 00 01 */ addi r30, r30, 1
/* 80390E00 0038DD60 4E 80 04 21 */ bctrl
/* 80390E04 0038DD64 7C 64 1B 78 */ mr r4, r3
/* 80390E08 0038DD68 48 00 01 A4 */ b lbl_80390FAC
lbl_80390E0C:
/* 80390E0C 0038DD6C 7E 0C 83 78 */ mr r12, r16
/* 80390E10 0038DD70 7E 23 8B 78 */ mr r3, r17
/* 80390E14 0038DD74 38 80 00 00 */ li r4, 0
/* 80390E18 0038DD78 38 A0 00 00 */ li r5, 0
/* 80390E1C 0038DD7C 7D 89 03 A6 */ mtctr r12
/* 80390E20 0038DD80 3B DE 00 01 */ addi r30, r30, 1
/* 80390E24 0038DD84 4E 80 04 21 */ bctrl
/* 80390E28 0038DD88 7C 64 1B 78 */ mr r4, r3
/* 80390E2C 0038DD8C 48 00 01 80 */ b lbl_80390FAC
lbl_80390E30:
/* 80390E30 0038DD90 2C 04 FF FF */ cmpwi r4, -1
/* 80390E34 0038DD94 40 82 00 0C */ bne lbl_80390E40
/* 80390E38 0038DD98 38 00 FF FF */ li r0, -1
/* 80390E3C 0038DD9C 48 00 00 14 */ b lbl_80390E50
lbl_80390E40:
/* 80390E40 0038DDA0 3C 60 80 3F */ lis r3, __upper_map@ha
/* 80390E44 0038DDA4 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 80390E48 0038DDA8 38 63 2C 20 */ addi r3, r3, __upper_map@l
/* 80390E4C 0038DDAC 7C 03 00 AE */ lbzx r0, r3, r0
lbl_80390E50:
/* 80390E50 0038DDB0 2C 00 00 50 */ cmpwi r0, 0x50
/* 80390E54 0038DDB4 40 82 00 30 */ bne lbl_80390E84
/* 80390E58 0038DDB8 7E 0C 83 78 */ mr r12, r16
/* 80390E5C 0038DDBC 7E 23 8B 78 */ mr r3, r17
/* 80390E60 0038DDC0 3B E0 00 20 */ li r31, 0x20
/* 80390E64 0038DDC4 38 80 00 00 */ li r4, 0
/* 80390E68 0038DDC8 38 A0 00 00 */ li r5, 0
/* 80390E6C 0038DDCC 7D 89 03 A6 */ mtctr r12
/* 80390E70 0038DDD0 3B 18 00 01 */ addi r24, r24, 1
/* 80390E74 0038DDD4 3B DE 00 01 */ addi r30, r30, 1
/* 80390E78 0038DDD8 4E 80 04 21 */ bctrl
/* 80390E7C 0038DDDC 7C 64 1B 78 */ mr r4, r3
/* 80390E80 0038DDE0 48 00 01 2C */ b lbl_80390FAC
lbl_80390E84:
/* 80390E84 0038DDE4 39 E0 08 00 */ li r15, 0x800
/* 80390E88 0038DDE8 48 00 01 24 */ b lbl_80390FAC
lbl_80390E8C:
/* 80390E8C 0038DDEC 2C 04 00 2D */ cmpwi r4, 0x2d
/* 80390E90 0038DDF0 3B 18 00 01 */ addi r24, r24, 1
/* 80390E94 0038DDF4 40 82 00 10 */ bne lbl_80390EA4
/* 80390E98 0038DDF8 38 00 00 01 */ li r0, 1
/* 80390E9C 0038DDFC 90 01 00 58 */ stw r0, 0x58(r1)
/* 80390EA0 0038DE00 48 00 00 24 */ b lbl_80390EC4
lbl_80390EA4:
/* 80390EA4 0038DE04 2C 04 00 2B */ cmpwi r4, 0x2b
/* 80390EA8 0038DE08 41 82 00 1C */ beq lbl_80390EC4
/* 80390EAC 0038DE0C 7E 0C 83 78 */ mr r12, r16
/* 80390EB0 0038DE10 7E 23 8B 78 */ mr r3, r17
/* 80390EB4 0038DE14 38 A0 00 01 */ li r5, 1
/* 80390EB8 0038DE18 7D 89 03 A6 */ mtctr r12
/* 80390EBC 0038DE1C 4E 80 04 21 */ bctrl
/* 80390EC0 0038DE20 3B 18 FF FF */ addi r24, r24, -1
lbl_80390EC4:
/* 80390EC4 0038DE24 7E 0C 83 78 */ mr r12, r16
/* 80390EC8 0038DE28 7E 23 8B 78 */ mr r3, r17
/* 80390ECC 0038DE2C 3B E0 00 40 */ li r31, 0x40
/* 80390ED0 0038DE30 38 80 00 00 */ li r4, 0
/* 80390ED4 0038DE34 38 A0 00 00 */ li r5, 0
/* 80390ED8 0038DE38 7D 89 03 A6 */ mtctr r12
/* 80390EDC 0038DE3C 3B DE 00 01 */ addi r30, r30, 1
/* 80390EE0 0038DE40 4E 80 04 21 */ bctrl
/* 80390EE4 0038DE44 7C 64 1B 78 */ mr r4, r3
/* 80390EE8 0038DE48 48 00 00 C4 */ b lbl_80390FAC
lbl_80390EEC:
/* 80390EEC 0038DE4C 3C 60 80 3F */ lis r3, __ctype_map@ha
/* 80390EF0 0038DE50 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 80390EF4 0038DE54 38 63 2A 20 */ addi r3, r3, __ctype_map@l
/* 80390EF8 0038DE58 7C 03 00 AE */ lbzx r0, r3, r0
/* 80390EFC 0038DE5C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 80390F00 0038DE60 40 82 00 0C */ bne lbl_80390F0C
/* 80390F04 0038DE64 39 E0 10 00 */ li r15, 0x1000
/* 80390F08 0038DE68 48 00 00 A4 */ b lbl_80390FAC
lbl_80390F0C:
/* 80390F0C 0038DE6C 2C 04 00 30 */ cmpwi r4, 0x30
/* 80390F10 0038DE70 40 82 00 30 */ bne lbl_80390F40
/* 80390F14 0038DE74 7E 0C 83 78 */ mr r12, r16
/* 80390F18 0038DE78 7E 23 8B 78 */ mr r3, r17
/* 80390F1C 0038DE7C 3B E0 00 80 */ li r31, 0x80
/* 80390F20 0038DE80 38 80 00 00 */ li r4, 0
/* 80390F24 0038DE84 38 A0 00 00 */ li r5, 0
/* 80390F28 0038DE88 7D 89 03 A6 */ mtctr r12
/* 80390F2C 0038DE8C 3B 18 00 01 */ addi r24, r24, 1
/* 80390F30 0038DE90 3B DE 00 01 */ addi r30, r30, 1
/* 80390F34 0038DE94 4E 80 04 21 */ bctrl
/* 80390F38 0038DE98 7C 64 1B 78 */ mr r4, r3
/* 80390F3C 0038DE9C 48 00 00 70 */ b lbl_80390FAC
lbl_80390F40:
/* 80390F40 0038DEA0 3B E0 01 00 */ li r31, 0x100
/* 80390F44 0038DEA4 48 00 00 68 */ b lbl_80390FAC
lbl_80390F48:
/* 80390F48 0038DEA8 3C 60 80 3F */ lis r3, __ctype_map@ha
/* 80390F4C 0038DEAC 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 80390F50 0038DEB0 38 63 2A 20 */ addi r3, r3, __ctype_map@l
/* 80390F54 0038DEB4 7C 03 00 AE */ lbzx r0, r3, r0
/* 80390F58 0038DEB8 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 80390F5C 0038DEBC 40 82 00 0C */ bne lbl_80390F68
/* 80390F60 0038DEC0 39 E0 08 00 */ li r15, 0x800
/* 80390F64 0038DEC4 48 00 00 48 */ b lbl_80390FAC
lbl_80390F68:
/* 80390F68 0038DEC8 1C 16 00 0A */ mulli r0, r22, 0xa
/* 80390F6C 0038DECC 2C 1C 7F FF */ cmpwi r28, 0x7fff
/* 80390F70 0038DED0 7C 64 02 14 */ add r3, r4, r0
/* 80390F74 0038DED4 38 03 FF D0 */ addi r0, r3, -48
/* 80390F78 0038DED8 7C 16 07 34 */ extsh r22, r0
/* 80390F7C 0038DEDC 40 81 00 0C */ ble lbl_80390F88
/* 80390F80 0038DEE0 38 00 00 01 */ li r0, 1
/* 80390F84 0038DEE4 90 12 00 00 */ stw r0, 0(r18)
lbl_80390F88:
/* 80390F88 0038DEE8 7E 0C 83 78 */ mr r12, r16
/* 80390F8C 0038DEEC 7E 23 8B 78 */ mr r3, r17
/* 80390F90 0038DEF0 38 80 00 00 */ li r4, 0
/* 80390F94 0038DEF4 38 A0 00 00 */ li r5, 0
/* 80390F98 0038DEF8 7D 89 03 A6 */ mtctr r12
/* 80390F9C 0038DEFC 3B 18 00 01 */ addi r24, r24, 1
/* 80390FA0 0038DF00 3B DE 00 01 */ addi r30, r30, 1
/* 80390FA4 0038DF04 4E 80 04 21 */ bctrl
/* 80390FA8 0038DF08 7C 64 1B 78 */ mr r4, r3
lbl_80390FAC:
/* 80390FAC 0038DF0C 80 01 00 08 */ lwz r0, 8(r1)
/* 80390FB0 0038DF10 7C 1E 00 00 */ cmpw r30, r0
/* 80390FB4 0038DF14 41 81 00 14 */ bgt lbl_80390FC8
/* 80390FB8 0038DF18 2C 04 FF FF */ cmpwi r4, -1
/* 80390FBC 0038DF1C 41 82 00 0C */ beq lbl_80390FC8
/* 80390FC0 0038DF20 55 E0 04 E9 */ rlwinm. r0, r15, 0, 0x13, 0x14
/* 80390FC4 0038DF24 41 82 F3 A4 */ beq lbl_80390368
lbl_80390FC8:
/* 80390FC8 0038DF28 71 EF 0E 2C */ andi. r15, r15, 0xe2c
/* 80390FCC 0038DF2C 40 82 00 14 */ bne lbl_80390FE0
/* 80390FD0 0038DF30 80 61 00 0C */ lwz r3, 0xc(r1)
/* 80390FD4 0038DF34 38 00 00 00 */ li r0, 0
/* 80390FD8 0038DF38 90 03 00 00 */ stw r0, 0(r3)
/* 80390FDC 0038DF3C 48 00 00 14 */ b lbl_80390FF0
lbl_80390FE0:
/* 80390FE0 0038DF40 7C 7E EA 14 */ add r3, r30, r29
/* 80390FE4 0038DF44 38 03 FF FF */ addi r0, r3, -1
/* 80390FE8 0038DF48 80 61 00 0C */ lwz r3, 0xc(r1)
/* 80390FEC 0038DF4C 90 03 00 00 */ stw r0, 0(r3)
lbl_80390FF0:
/* 80390FF0 0038DF50 7E 0C 83 78 */ mr r12, r16
/* 80390FF4 0038DF54 7E 23 8B 78 */ mr r3, r17
/* 80390FF8 0038DF58 38 A0 00 01 */ li r5, 1
/* 80390FFC 0038DF5C 7D 89 03 A6 */ mtctr r12
/* 80391000 0038DF60 4E 80 04 21 */ bctrl
/* 80391004 0038DF64 2C 1F 00 00 */ cmpwi r31, 0
/* 80391008 0038DF68 40 82 01 48 */ bne lbl_80391150
/* 8039100C 0038DF6C 80 01 00 60 */ lwz r0, 0x60(r1)
/* 80391010 0038DF70 2C 00 00 00 */ cmpwi r0, 0
/* 80391014 0038DF74 41 82 00 08 */ beq lbl_8039101C
/* 80391018 0038DF78 7F 9C 00 D0 */ neg r28, r28
lbl_8039101C:
/* 8039101C 0038DF7C 88 61 00 30 */ lbz r3, 0x30(r1)
/* 80391020 0038DF80 38 01 00 2C */ addi r0, r1, 0x2c
/* 80391024 0038DF84 38 83 00 05 */ addi r4, r3, 5
/* 80391028 0038DF88 7C 80 22 14 */ add r4, r0, r4
/* 8039102C 0038DF8C 48 00 00 08 */ b lbl_80391034
lbl_80391030:
/* 80391030 0038DF90 3B 7B 00 01 */ addi r27, r27, 1
lbl_80391034:
/* 80391034 0038DF94 2C 03 00 00 */ cmpwi r3, 0
/* 80391038 0038DF98 38 63 FF FF */ addi r3, r3, -1
/* 8039103C 0038DF9C 41 82 00 10 */ beq lbl_8039104C
/* 80391040 0038DFA0 8C 04 FF FF */ lbzu r0, -1(r4)
/* 80391044 0038DFA4 28 00 00 30 */ cmplwi r0, 0x30
/* 80391048 0038DFA8 41 82 FF E8 */ beq lbl_80391030
lbl_8039104C:
/* 8039104C 0038DFAC 38 03 00 01 */ addi r0, r3, 1
/* 80391050 0038DFB0 54 05 06 3F */ clrlwi. r5, r0, 0x18
/* 80391054 0038DFB4 98 01 00 30 */ stb r0, 0x30(r1)
/* 80391058 0038DFB8 40 82 00 18 */ bne lbl_80391070
/* 8039105C 0038DFBC 38 05 00 01 */ addi r0, r5, 1
/* 80391060 0038DFC0 38 61 00 31 */ addi r3, r1, 0x31
/* 80391064 0038DFC4 38 80 00 30 */ li r4, 0x30
/* 80391068 0038DFC8 98 01 00 30 */ stb r0, 0x30(r1)
/* 8039106C 0038DFCC 7C 83 29 AE */ stbx r4, r3, r5
lbl_80391070:
/* 80391070 0038DFD0 7F 9C DA 14 */ add r28, r28, r27
/* 80391074 0038DFD4 2C 1C 80 00 */ cmpwi r28, -32768
/* 80391078 0038DFD8 41 80 00 0C */ blt lbl_80391084
/* 8039107C 0038DFDC 2C 1C 7F FF */ cmpwi r28, 0x7fff
/* 80391080 0038DFE0 40 81 00 0C */ ble lbl_8039108C
lbl_80391084:
/* 80391084 0038DFE4 38 00 00 01 */ li r0, 1
/* 80391088 0038DFE8 90 12 00 00 */ stw r0, 0(r18)
lbl_8039108C:
/* 8039108C 0038DFEC 80 12 00 00 */ lwz r0, 0(r18)
/* 80391090 0038DFF0 2C 00 00 00 */ cmpwi r0, 0
/* 80391094 0038DFF4 41 82 00 3C */ beq lbl_803910D0
/* 80391098 0038DFF8 80 01 00 60 */ lwz r0, 0x60(r1)
/* 8039109C 0038DFFC 2C 00 00 00 */ cmpwi r0, 0
/* 803910A0 0038E000 41 82 00 0C */ beq lbl_803910AC
/* 803910A4 0038E004 C8 22 CF 88 */ lfd f1, lbl_805AECA8@sda21(r2)
/* 803910A8 0038E008 48 00 01 B8 */ b lbl_80391260
lbl_803910AC:
/* 803910AC 0038E00C 2C 0E 00 00 */ cmpwi r14, 0
/* 803910B0 0038E010 41 82 00 14 */ beq lbl_803910C4
/* 803910B4 0038E014 3C 60 80 5B */ lis r3, __double_huge@ha
/* 803910B8 0038E018 C8 03 8B B8 */ lfd f0, __double_huge@l(r3)
/* 803910BC 0038E01C FC 20 00 50 */ fneg f1, f0
/* 803910C0 0038E020 48 00 01 A0 */ b lbl_80391260
lbl_803910C4:
/* 803910C4 0038E024 3C 60 80 5B */ lis r3, __double_huge@ha
/* 803910C8 0038E028 C8 23 8B B8 */ lfd f1, __double_huge@l(r3)
/* 803910CC 0038E02C 48 00 01 94 */ b lbl_80391260
lbl_803910D0:
/* 803910D0 0038E030 B3 81 00 2E */ sth r28, 0x2e(r1)
/* 803910D4 0038E034 38 61 00 2C */ addi r3, r1, 0x2c
/* 803910D8 0038E038 4B FF A0 D9 */ bl __dec2num
/* 803910DC 0038E03C C8 02 CF 88 */ lfd f0, lbl_805AECA8@sda21(r2)
/* 803910E0 0038E040 D8 21 00 18 */ stfd f1, 0x18(r1)
/* 803910E4 0038E044 FC 00 08 00 */ fcmpu cr0, f0, f1
/* 803910E8 0038E048 41 82 00 20 */ beq lbl_80391108
/* 803910EC 0038E04C 3C 60 80 5B */ lis r3, __extended_min@ha
/* 803910F0 0038E050 C8 03 8B C0 */ lfd f0, __extended_min@l(r3)
/* 803910F4 0038E054 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 803910F8 0038E058 40 80 00 10 */ bge lbl_80391108
/* 803910FC 0038E05C 38 00 00 01 */ li r0, 1
/* 80391100 0038E060 90 12 00 00 */ stw r0, 0(r18)
/* 80391104 0038E064 48 00 00 28 */ b lbl_8039112C
lbl_80391108:
/* 80391108 0038E068 3C 60 80 5B */ lis r3, __extended_max@ha
/* 8039110C 0038E06C C8 03 8B C8 */ lfd f0, __extended_max@l(r3)
/* 80391110 0038E070 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80391114 0038E074 40 81 00 18 */ ble lbl_8039112C
/* 80391118 0038E078 38 00 00 01 */ li r0, 1
/* 8039111C 0038E07C 3C 60 80 5B */ lis r3, __double_huge@ha
/* 80391120 0038E080 90 12 00 00 */ stw r0, 0(r18)
/* 80391124 0038E084 C8 03 8B B8 */ lfd f0, __double_huge@l(r3)
/* 80391128 0038E088 D8 01 00 18 */ stfd f0, 0x18(r1)
lbl_8039112C:
/* 8039112C 0038E08C 2C 0E 00 00 */ cmpwi r14, 0
/* 80391130 0038E090 41 82 00 18 */ beq lbl_80391148
/* 80391134 0038E094 2C 0F 00 00 */ cmpwi r15, 0
/* 80391138 0038E098 41 82 00 10 */ beq lbl_80391148
/* 8039113C 0038E09C C8 01 00 18 */ lfd f0, 0x18(r1)
/* 80391140 0038E0A0 FC 00 00 50 */ fneg f0, f0
/* 80391144 0038E0A4 D8 01 00 18 */ stfd f0, 0x18(r1)
lbl_80391148:
/* 80391148 0038E0A8 C8 21 00 18 */ lfd f1, 0x18(r1)
/* 8039114C 0038E0AC 48 00 01 14 */ b lbl_80391260
lbl_80391150:
/* 80391150 0038E0B0 C8 21 00 18 */ lfd f1, 0x18(r1)
/* 80391154 0038E0B4 C8 02 CF 90 */ lfd f0, lbl_805AECB0@sda21(r2)
/* 80391158 0038E0B8 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 8039115C 0038E0BC 41 82 00 F8 */ beq lbl_80391254
/* 80391160 0038E0C0 80 01 00 58 */ lwz r0, 0x58(r1)
/* 80391164 0038E0C4 2C 00 00 00 */ cmpwi r0, 0
/* 80391168 0038E0C8 41 82 00 30 */ beq lbl_80391198
/* 8039116C 0038E0CC 7C 16 00 D0 */ neg r0, r22
/* 80391170 0038E0D0 7C 16 07 34 */ extsh r22, r0
/* 80391174 0038E0D4 48 00 00 24 */ b lbl_80391198
lbl_80391178:
/* 80391178 0038E0D8 80 81 00 18 */ lwz r4, 0x18(r1)
/* 8039117C 0038E0DC 3A D6 00 01 */ addi r22, r22, 1
/* 80391180 0038E0E0 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 80391184 0038E0E4 54 80 F8 7E */ srwi r0, r4, 1
/* 80391188 0038E0E8 54 63 F8 3E */ rotlwi r3, r3, 0x1f
/* 8039118C 0038E0EC 90 01 00 18 */ stw r0, 0x18(r1)
/* 80391190 0038E0F0 50 83 F8 00 */ rlwimi r3, r4, 0x1f, 0, 0
/* 80391194 0038E0F4 90 61 00 1C */ stw r3, 0x1c(r1)
lbl_80391198:
/* 80391198 0038E0F8 A8 61 00 18 */ lha r3, 0x18(r1)
/* 8039119C 0038E0FC 54 60 06 36 */ rlwinm r0, r3, 0, 0x18, 0x1b
/* 803911A0 0038E100 2C 00 00 10 */ cmpwi r0, 0x10
/* 803911A4 0038E104 40 82 FF D4 */ bne lbl_80391178
/* 803911A8 0038E108 38 17 FF FF */ addi r0, r23, -1
/* 803911AC 0038E10C 54 64 07 3E */ clrlwi r4, r3, 0x1c
/* 803911B0 0038E110 54 05 10 3A */ slwi r5, r0, 2
/* 803911B4 0038E114 80 01 00 5C */ lwz r0, 0x5c(r1)
/* 803911B8 0038E118 B0 81 00 18 */ sth r4, 0x18(r1)
/* 803911BC 0038E11C 7C 60 CA 14 */ add r3, r0, r25
/* 803911C0 0038E120 7C 16 2A 14 */ add r0, r22, r5
/* 803911C4 0038E124 7C 16 07 34 */ extsh r22, r0
/* 803911C8 0038E128 C8 22 CF 88 */ lfd f1, lbl_805AECA8@sda21(r2)
/* 803911CC 0038E12C 38 03 00 01 */ addi r0, r3, 1
/* 803911D0 0038E130 38 76 03 FF */ addi r3, r22, 0x3ff
/* 803911D4 0038E134 50 64 20 36 */ rlwimi r4, r3, 4, 0, 0x1b
/* 803911D8 0038E138 7C 00 C2 14 */ add r0, r0, r24
/* 803911DC 0038E13C B0 81 00 18 */ sth r4, 0x18(r1)
/* 803911E0 0038E140 7C 1D 02 14 */ add r0, r29, r0
/* 803911E4 0038E144 80 61 00 0C */ lwz r3, 0xc(r1)
/* 803911E8 0038E148 C8 41 00 18 */ lfd f2, 0x18(r1)
/* 803911EC 0038E14C 90 03 00 00 */ stw r0, 0(r3)
/* 803911F0 0038E150 FC 01 10 00 */ fcmpu cr0, f1, f2
/* 803911F4 0038E154 41 82 00 24 */ beq lbl_80391218
/* 803911F8 0038E158 3C 60 80 5B */ lis r3, __extended_min@ha
/* 803911FC 0038E15C C8 03 8B C0 */ lfd f0, __extended_min@l(r3)
/* 80391200 0038E160 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 80391204 0038E164 40 80 00 14 */ bge lbl_80391218
/* 80391208 0038E168 38 00 00 01 */ li r0, 1
/* 8039120C 0038E16C D8 21 00 18 */ stfd f1, 0x18(r1)
/* 80391210 0038E170 90 12 00 00 */ stw r0, 0(r18)
/* 80391214 0038E174 48 00 00 28 */ b lbl_8039123C
lbl_80391218:
/* 80391218 0038E178 3C 60 80 5B */ lis r3, __extended_max@ha
/* 8039121C 0038E17C C8 03 8B C8 */ lfd f0, __extended_max@l(r3)
/* 80391220 0038E180 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 80391224 0038E184 40 81 00 18 */ ble lbl_8039123C
/* 80391228 0038E188 38 00 00 01 */ li r0, 1
/* 8039122C 0038E18C 3C 60 80 5B */ lis r3, __double_huge@ha
/* 80391230 0038E190 90 12 00 00 */ stw r0, 0(r18)
/* 80391234 0038E194 C8 03 8B B8 */ lfd f0, __double_huge@l(r3)
/* 80391238 0038E198 D8 01 00 18 */ stfd f0, 0x18(r1)
lbl_8039123C:
/* 8039123C 0038E19C 2C 0E 00 00 */ cmpwi r14, 0
/* 80391240 0038E1A0 41 82 00 1C */ beq lbl_8039125C
/* 80391244 0038E1A4 A8 01 00 18 */ lha r0, 0x18(r1)
/* 80391248 0038E1A8 60 00 80 00 */ ori r0, r0, 0x8000
/* 8039124C 0038E1AC B0 01 00 18 */ sth r0, 0x18(r1)
/* 80391250 0038E1B0 48 00 00 0C */ b lbl_8039125C
lbl_80391254:
/* 80391254 0038E1B4 C8 02 CF 88 */ lfd f0, lbl_805AECA8@sda21(r2)
/* 80391258 0038E1B8 D8 01 00 18 */ stfd f0, 0x18(r1)
lbl_8039125C:
/* 8039125C 0038E1BC C8 21 00 18 */ lfd f1, 0x18(r1)
lbl_80391260:
/* 80391260 0038E1C0 B9 C1 00 68 */ lmw r14, 0x68(r1)
/* 80391264 0038E1C4 80 01 00 B4 */ lwz r0, 0xb4(r1)
/* 80391268 0038E1C8 7C 08 03 A6 */ mtlr r0
/* 8039126C 0038E1CC 38 21 00 B0 */ addi r1, r1, 0xb0
/* 80391270 0038E1D0 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805AECA0
lbl_805AECA0:
# ROM: 0x3FB540
.4byte 0x4E414E28
.global lbl_805AECA4
lbl_805AECA4:
# ROM: 0x3FB544
.4byte 0
.global lbl_805AECA8
lbl_805AECA8:
# ROM: 0x3FB548
.4byte 0
.4byte 0
.global lbl_805AECB0
lbl_805AECB0:
# ROM: 0x3FB550
.4byte 0
.4byte 0