From f2eabdb6257c09cf2890dac5e9737912728542af Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Thu, 2 Feb 2023 17:29:19 -0400 Subject: global: Add rest of Dolphin SDK proper, add MSL, and MetroTRK Finally, it links properly. --- asm/MSL_C.PPCEABI.bare.H/ansi_fp.s | 343 ++++ asm/MSL_C.PPCEABI.bare.H/common_float_tables.s | 338 +++ .../critical_regions.ppc_eabi.s | 6 + asm/MSL_C.PPCEABI.bare.H/exponentialsf.s | 762 +++++++ asm/MSL_C.PPCEABI.bare.H/inverse_trig.s | 345 ++++ asm/MSL_C.PPCEABI.bare.H/printf.s | 2156 ++++++++++++++++++++ asm/MSL_C.PPCEABI.bare.H/scanf.s | 49 + asm/MSL_C.PPCEABI.bare.H/strtoul.s | 387 ++++ asm/MSL_C.PPCEABI.bare.H/trigf.s | 314 +++ asm/MSL_C.PPCEABI.bare.H/uart_console_io.s | 123 ++ 10 files changed, 4823 insertions(+) create mode 100644 asm/MSL_C.PPCEABI.bare.H/ansi_fp.s create mode 100644 asm/MSL_C.PPCEABI.bare.H/common_float_tables.s create mode 100644 asm/MSL_C.PPCEABI.bare.H/critical_regions.ppc_eabi.s create mode 100644 asm/MSL_C.PPCEABI.bare.H/exponentialsf.s create mode 100644 asm/MSL_C.PPCEABI.bare.H/inverse_trig.s create mode 100644 asm/MSL_C.PPCEABI.bare.H/printf.s create mode 100644 asm/MSL_C.PPCEABI.bare.H/scanf.s create mode 100644 asm/MSL_C.PPCEABI.bare.H/strtoul.s create mode 100644 asm/MSL_C.PPCEABI.bare.H/trigf.s create mode 100644 asm/MSL_C.PPCEABI.bare.H/uart_console_io.s (limited to 'asm/MSL_C.PPCEABI.bare.H') diff --git a/asm/MSL_C.PPCEABI.bare.H/ansi_fp.s b/asm/MSL_C.PPCEABI.bare.H/ansi_fp.s new file mode 100644 index 0000000..641a10f --- /dev/null +++ b/asm/MSL_C.PPCEABI.bare.H/ansi_fp.s @@ -0,0 +1,343 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global __num2dec +__num2dec: +/* 800833A4 000802E4 7C 08 02 A6 */ mflr r0 +/* 800833A8 000802E8 90 01 00 04 */ stw r0, 4(r1) +/* 800833AC 000802EC 94 21 FF 98 */ stwu r1, -0x68(r1) +/* 800833B0 000802F0 DB E1 00 60 */ stfd f31, 0x60(r1) +/* 800833B4 000802F4 FF E0 08 90 */ fmr f31, f1 +/* 800833B8 000802F8 93 E1 00 5C */ stw r31, 0x5c(r1) +/* 800833BC 000802FC 93 C1 00 58 */ stw r30, 0x58(r1) +/* 800833C0 00080300 3B C4 00 00 */ addi r30, r4, 0 +/* 800833C4 00080304 93 A1 00 54 */ stw r29, 0x54(r1) +/* 800833C8 00080308 7C 7D 1B 78 */ mr r29, r3 +/* 800833CC 0008030C A8 03 00 02 */ lha r0, 2(r3) +/* 800833D0 00080310 2C 00 00 10 */ cmpwi r0, 0x10 +/* 800833D4 00080314 7C 1F 03 78 */ mr r31, r0 +/* 800833D8 00080318 40 81 00 08 */ ble lbl_800833E0 +/* 800833DC 0008031C 3B E0 00 10 */ li r31, 0x10 +lbl_800833E0: +/* 800833E0 00080320 38 60 00 00 */ li r3, 0 +/* 800833E4 00080324 98 7E 00 00 */ stb r3, 0(r30) +/* 800833E8 00080328 38 00 00 01 */ li r0, 1 +/* 800833EC 0008032C B0 7E 00 02 */ sth r3, 2(r30) +/* 800833F0 00080330 98 1E 00 04 */ stb r0, 4(r30) +/* 800833F4 00080334 C8 02 89 58 */ lfd f0, "@268"@sda21(r2) +/* 800833F8 00080338 FC 00 F8 00 */ fcmpu cr0, f0, f31 +/* 800833FC 0008033C 40 82 00 10 */ bne lbl_8008340C +/* 80083400 00080340 38 00 00 30 */ li r0, 0x30 +/* 80083404 00080344 98 1E 00 05 */ stb r0, 5(r30) +/* 80083408 00080348 48 00 03 30 */ b lbl_80083738 +lbl_8008340C: +/* 8008340C 0008034C DB E1 00 28 */ stfd f31, 0x28(r1) +/* 80083410 00080350 3C 00 7F F0 */ lis r0, 0x7ff0 +/* 80083414 00080354 80 81 00 28 */ lwz r4, 0x28(r1) +/* 80083418 00080358 54 83 00 56 */ rlwinm r3, r4, 0, 1, 0xb +/* 8008341C 0008035C 7C 03 00 00 */ cmpw r3, r0 +/* 80083420 00080360 41 82 00 14 */ beq lbl_80083434 +/* 80083424 00080364 40 80 00 58 */ bge lbl_8008347C +/* 80083428 00080368 2C 03 00 00 */ cmpwi r3, 0 +/* 8008342C 0008036C 41 82 00 2C */ beq lbl_80083458 +/* 80083430 00080370 48 00 00 4C */ b lbl_8008347C +lbl_80083434: +/* 80083434 00080374 54 80 03 3F */ clrlwi. r0, r4, 0xc +/* 80083438 00080378 40 82 00 10 */ bne lbl_80083448 +/* 8008343C 0008037C 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 80083440 00080380 2C 00 00 00 */ cmpwi r0, 0 +/* 80083444 00080384 41 82 00 0C */ beq lbl_80083450 +lbl_80083448: +/* 80083448 00080388 38 00 00 01 */ li r0, 1 +/* 8008344C 0008038C 48 00 00 34 */ b lbl_80083480 +lbl_80083450: +/* 80083450 00080390 38 00 00 02 */ li r0, 2 +/* 80083454 00080394 48 00 00 2C */ b lbl_80083480 +lbl_80083458: +/* 80083458 00080398 54 80 03 3F */ clrlwi. r0, r4, 0xc +/* 8008345C 0008039C 40 82 00 10 */ bne lbl_8008346C +/* 80083460 000803A0 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 80083464 000803A4 2C 00 00 00 */ cmpwi r0, 0 +/* 80083468 000803A8 41 82 00 0C */ beq lbl_80083474 +lbl_8008346C: +/* 8008346C 000803AC 38 00 00 05 */ li r0, 5 +/* 80083470 000803B0 48 00 00 10 */ b lbl_80083480 +lbl_80083474: +/* 80083474 000803B4 38 00 00 03 */ li r0, 3 +/* 80083478 000803B8 48 00 00 08 */ b lbl_80083480 +lbl_8008347C: +/* 8008347C 000803BC 38 00 00 04 */ li r0, 4 +lbl_80083480: +/* 80083480 000803C0 2C 00 00 02 */ cmpwi r0, 2 +/* 80083484 000803C4 41 81 00 94 */ bgt lbl_80083518 +/* 80083488 000803C8 DB E1 00 20 */ stfd f31, 0x20(r1) +/* 8008348C 000803CC 3C 00 7F F0 */ lis r0, 0x7ff0 +/* 80083490 000803D0 80 81 00 20 */ lwz r4, 0x20(r1) +/* 80083494 000803D4 54 83 00 56 */ rlwinm r3, r4, 0, 1, 0xb +/* 80083498 000803D8 7C 03 00 00 */ cmpw r3, r0 +/* 8008349C 000803DC 41 82 00 14 */ beq lbl_800834B0 +/* 800834A0 000803E0 40 80 00 58 */ bge lbl_800834F8 +/* 800834A4 000803E4 2C 03 00 00 */ cmpwi r3, 0 +/* 800834A8 000803E8 41 82 00 2C */ beq lbl_800834D4 +/* 800834AC 000803EC 48 00 00 4C */ b lbl_800834F8 +lbl_800834B0: +/* 800834B0 000803F0 54 80 03 3F */ clrlwi. r0, r4, 0xc +/* 800834B4 000803F4 40 82 00 10 */ bne lbl_800834C4 +/* 800834B8 000803F8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800834BC 000803FC 2C 00 00 00 */ cmpwi r0, 0 +/* 800834C0 00080400 41 82 00 0C */ beq lbl_800834CC +lbl_800834C4: +/* 800834C4 00080404 38 00 00 01 */ li r0, 1 +/* 800834C8 00080408 48 00 00 34 */ b lbl_800834FC +lbl_800834CC: +/* 800834CC 0008040C 38 00 00 02 */ li r0, 2 +/* 800834D0 00080410 48 00 00 2C */ b lbl_800834FC +lbl_800834D4: +/* 800834D4 00080414 54 80 03 3F */ clrlwi. r0, r4, 0xc +/* 800834D8 00080418 40 82 00 10 */ bne lbl_800834E8 +/* 800834DC 0008041C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800834E0 00080420 2C 00 00 00 */ cmpwi r0, 0 +/* 800834E4 00080424 41 82 00 0C */ beq lbl_800834F0 +lbl_800834E8: +/* 800834E8 00080428 38 00 00 05 */ li r0, 5 +/* 800834EC 0008042C 48 00 00 10 */ b lbl_800834FC +lbl_800834F0: +/* 800834F0 00080430 38 00 00 03 */ li r0, 3 +/* 800834F4 00080434 48 00 00 08 */ b lbl_800834FC +lbl_800834F8: +/* 800834F8 00080438 38 00 00 04 */ li r0, 4 +lbl_800834FC: +/* 800834FC 0008043C 2C 00 00 01 */ cmpwi r0, 1 +/* 80083500 00080440 40 82 00 0C */ bne lbl_8008350C +/* 80083504 00080444 38 00 00 4E */ li r0, 0x4e +/* 80083508 00080448 48 00 00 08 */ b lbl_80083510 +lbl_8008350C: +/* 8008350C 0008044C 38 00 00 49 */ li r0, 0x49 +lbl_80083510: +/* 80083510 00080450 98 1E 00 05 */ stb r0, 5(r30) +/* 80083514 00080454 48 00 02 24 */ b lbl_80083738 +lbl_80083518: +/* 80083518 00080458 38 00 00 00 */ li r0, 0 +/* 8008351C 0008045C 98 1E 00 04 */ stb r0, 4(r30) +/* 80083520 00080460 C8 02 89 58 */ lfd f0, "@268"@sda21(r2) +/* 80083524 00080464 FC 1F 00 40 */ fcmpo cr0, f31, f0 +/* 80083528 00080468 40 80 00 10 */ bge lbl_80083538 +/* 8008352C 0008046C 38 00 00 01 */ li r0, 1 +/* 80083530 00080470 FF E0 F8 50 */ fneg f31, f31 +/* 80083534 00080474 98 1E 00 00 */ stb r0, 0(r30) +lbl_80083538: +/* 80083538 00080478 FC 20 F8 90 */ fmr f1, f31 +/* 8008353C 0008047C 38 61 00 30 */ addi r3, r1, 0x30 +/* 80083540 00080480 48 00 35 49 */ bl frexp +/* 80083544 00080484 3C 60 00 05 */ lis r3, 0x000497E5@ha +/* 80083548 00080488 80 81 00 30 */ lwz r4, 0x30(r1) +/* 8008354C 0008048C 38 03 97 E5 */ addi r0, r3, 0x000497E5@l +/* 80083550 00080490 7C 04 01 D6 */ mullw r0, r4, r0 +/* 80083554 00080494 3C 60 43 1C */ lis r3, 0x431BDE83@ha +/* 80083558 00080498 38 63 DE 83 */ addi r3, r3, 0x431BDE83@l +/* 8008355C 0008049C 7C 03 00 96 */ mulhw r0, r3, r0 +/* 80083560 000804A0 7C 00 96 70 */ srawi r0, r0, 0x12 +/* 80083564 000804A4 54 03 0F FE */ srwi r3, r0, 0x1f +/* 80083568 000804A8 7C 80 1A 15 */ add. r4, r0, r3 +/* 8008356C 000804AC 3C 60 80 37 */ lis r3, bit_values@ha +/* 80083570 000804B0 38 03 15 98 */ addi r0, r3, bit_values@l +/* 80083574 000804B4 38 64 00 00 */ addi r3, r4, 0 +/* 80083578 000804B8 7C 05 03 78 */ mr r5, r0 +/* 8008357C 000804BC 40 80 00 30 */ bge lbl_800835AC +/* 80083580 000804C0 7C 84 00 D0 */ neg r4, r4 +/* 80083584 000804C4 48 00 00 1C */ b lbl_800835A0 +lbl_80083588: +/* 80083588 000804C8 54 80 07 FF */ clrlwi. r0, r4, 0x1f +/* 8008358C 000804CC 41 82 00 0C */ beq lbl_80083598 +/* 80083590 000804D0 C8 05 00 00 */ lfd f0, 0(r5) +/* 80083594 000804D4 FF FF 00 32 */ fmul f31, f31, f0 +lbl_80083598: +/* 80083598 000804D8 7C 84 0E 70 */ srawi r4, r4, 1 +/* 8008359C 000804DC 38 A5 00 08 */ addi r5, r5, 8 +lbl_800835A0: +/* 800835A0 000804E0 2C 04 00 00 */ cmpwi r4, 0 +/* 800835A4 000804E4 40 82 FF E4 */ bne lbl_80083588 +/* 800835A8 000804E8 48 00 00 34 */ b lbl_800835DC +lbl_800835AC: +/* 800835AC 000804EC 40 81 00 30 */ ble lbl_800835DC +/* 800835B0 000804F0 C8 22 89 60 */ lfd f1, "@270"@sda21(r2) +/* 800835B4 000804F4 48 00 00 1C */ b lbl_800835D0 +lbl_800835B8: +/* 800835B8 000804F8 54 80 07 FF */ clrlwi. r0, r4, 0x1f +/* 800835BC 000804FC 41 82 00 0C */ beq lbl_800835C8 +/* 800835C0 00080500 C8 05 00 00 */ lfd f0, 0(r5) +/* 800835C4 00080504 FC 21 00 32 */ fmul f1, f1, f0 +lbl_800835C8: +/* 800835C8 00080508 7C 84 0E 70 */ srawi r4, r4, 1 +/* 800835CC 0008050C 38 A5 00 08 */ addi r5, r5, 8 +lbl_800835D0: +/* 800835D0 00080510 2C 04 00 00 */ cmpwi r4, 0 +/* 800835D4 00080514 40 82 FF E4 */ bne lbl_800835B8 +/* 800835D8 00080518 FF FF 08 24 */ fdiv f31, f31, f1 +lbl_800835DC: +/* 800835DC 0008051C C8 22 89 70 */ lfd f1, "@362"@sda21(r2) +/* 800835E0 00080520 C8 02 89 60 */ lfd f0, "@270"@sda21(r2) +/* 800835E4 00080524 48 00 00 0C */ b lbl_800835F0 +lbl_800835E8: +/* 800835E8 00080528 FF FF 00 72 */ fmul f31, f31, f1 +/* 800835EC 0008052C 38 63 00 01 */ addi r3, r3, 1 +lbl_800835F0: +/* 800835F0 00080530 FC 1F 00 40 */ fcmpo cr0, f31, f0 +/* 800835F4 00080534 4C 41 13 82 */ cror 2, 1, 2 +/* 800835F8 00080538 41 82 FF F0 */ beq lbl_800835E8 +/* 800835FC 0008053C C8 22 89 78 */ lfd f1, "@363"@sda21(r2) +/* 80083600 00080540 C8 02 89 70 */ lfd f0, "@362"@sda21(r2) +/* 80083604 00080544 48 00 00 0C */ b lbl_80083610 +lbl_80083608: +/* 80083608 00080548 FF FF 00 72 */ fmul f31, f31, f1 +/* 8008360C 0008054C 38 63 FF FF */ addi r3, r3, -1 +lbl_80083610: +/* 80083610 00080550 FC 1F 00 40 */ fcmpo cr0, f31, f0 +/* 80083614 00080554 41 80 FF F4 */ blt lbl_80083608 +/* 80083618 00080558 3C A0 66 66 */ lis r5, 0x66666667@ha +/* 8008361C 0008055C C8 22 89 68 */ lfd f1, "@272"@sda21(r2) +/* 80083620 00080560 3C C0 80 37 */ lis r6, digit_values@ha +/* 80083624 00080564 38 9E 00 05 */ addi r4, r30, 5 +/* 80083628 00080568 38 E5 66 67 */ addi r7, r5, 0x66666667@l +/* 8008362C 0008056C 39 46 15 E0 */ addi r10, r6, digit_values@l +/* 80083630 00080570 3D 20 43 30 */ lis r9, 0x4330 +/* 80083634 00080574 48 00 00 AC */ b lbl_800836E0 +lbl_80083638: +/* 80083638 00080578 2C 1F 00 08 */ cmpwi r31, 8 +/* 8008363C 0008057C 39 9F 00 00 */ addi r12, r31, 0 +/* 80083640 00080580 40 81 00 08 */ ble lbl_80083648 +/* 80083644 00080584 39 80 00 08 */ li r12, 8 +lbl_80083648: +/* 80083648 00080588 88 DE 00 04 */ lbz r6, 4(r30) +/* 8008364C 0008058C 55 80 18 38 */ slwi r0, r12, 3 +/* 80083650 00080590 7C AA 02 14 */ add r5, r10, r0 +/* 80083654 00080594 7C 06 62 14 */ add r0, r6, r12 +/* 80083658 00080598 98 1E 00 04 */ stb r0, 4(r30) +/* 8008365C 0008059C 7F EC F8 50 */ subf r31, r12, r31 +/* 80083660 000805A0 7C 6C 18 50 */ subf r3, r12, r3 +/* 80083664 000805A4 C8 05 FF F8 */ lfd f0, -8(r5) +/* 80083668 000805A8 7C 84 62 14 */ add r4, r4, r12 +/* 8008366C 000805AC 39 6C 00 01 */ addi r11, r12, 1 +/* 80083670 000805B0 FF FF 00 32 */ fmul f31, f31, f0 +/* 80083674 000805B4 FC 00 F8 1E */ fctiwz f0, f31 +/* 80083678 000805B8 D8 01 00 40 */ stfd f0, 0x40(r1) +/* 8008367C 000805BC 80 01 00 44 */ lwz r0, 0x44(r1) +/* 80083680 000805C0 D8 01 00 48 */ stfd f0, 0x48(r1) +/* 80083684 000805C4 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 80083688 000805C8 90 01 00 3C */ stw r0, 0x3c(r1) +/* 8008368C 000805CC 80 C1 00 4C */ lwz r6, 0x4c(r1) +/* 80083690 000805D0 91 21 00 38 */ stw r9, 0x38(r1) +/* 80083694 000805D4 C8 01 00 38 */ lfd f0, 0x38(r1) +/* 80083698 000805D8 FC 00 08 28 */ fsub f0, f0, f1 +/* 8008369C 000805DC FF FF 00 28 */ fsub f31, f31, f0 +/* 800836A0 000805E0 48 00 00 34 */ b lbl_800836D4 +lbl_800836A4: +/* 800836A4 000805E4 7D 07 30 96 */ mulhw r8, r7, r6 +/* 800836A8 000805E8 7D 00 16 70 */ srawi r0, r8, 2 +/* 800836AC 000805EC 54 05 0F FE */ srwi r5, r0, 0x1f +/* 800836B0 000805F0 7C 00 2A 14 */ add r0, r0, r5 +/* 800836B4 000805F4 1C 00 00 0A */ mulli r0, r0, 0xa +/* 800836B8 000805F8 7C C0 30 50 */ subf r6, r0, r6 +/* 800836BC 000805FC 7D 00 16 70 */ srawi r0, r8, 2 +/* 800836C0 00080600 38 C6 00 30 */ addi r6, r6, 0x30 +/* 800836C4 00080604 98 C4 FF FF */ stb r6, -1(r4) +/* 800836C8 00080608 54 05 0F FE */ srwi r5, r0, 0x1f +/* 800836CC 0008060C 7C C0 2A 14 */ add r6, r0, r5 +/* 800836D0 00080610 38 84 FF FF */ addi r4, r4, -1 +lbl_800836D4: +/* 800836D4 00080614 35 6B FF FF */ addic. r11, r11, -1 +/* 800836D8 00080618 40 82 FF CC */ bne lbl_800836A4 +/* 800836DC 0008061C 7C 84 62 14 */ add r4, r4, r12 +lbl_800836E0: +/* 800836E0 00080620 2C 1F 00 00 */ cmpwi r31, 0 +/* 800836E4 00080624 40 82 FF 54 */ bne lbl_80083638 +/* 800836E8 00080628 A8 BD 00 02 */ lha r5, 2(r29) +/* 800836EC 0008062C 2C 05 00 24 */ cmpwi r5, 0x24 +/* 800836F0 00080630 40 81 00 08 */ ble lbl_800836F8 +/* 800836F4 00080634 38 A0 00 24 */ li r5, 0x24 +lbl_800836F8: +/* 800836F8 00080638 88 1E 00 04 */ lbz r0, 4(r30) +/* 800836FC 0008063C 7C A0 28 51 */ subf. r5, r0, r5 +/* 80083700 00080640 40 81 00 30 */ ble lbl_80083730 +/* 80083704 00080644 38 C5 00 01 */ addi r6, r5, 1 +/* 80083708 00080648 38 00 00 30 */ li r0, 0x30 +/* 8008370C 0008064C 48 00 00 0C */ b lbl_80083718 +lbl_80083710: +/* 80083710 00080650 98 04 00 00 */ stb r0, 0(r4) +/* 80083714 00080654 38 84 00 01 */ addi r4, r4, 1 +lbl_80083718: +/* 80083718 00080658 34 C6 FF FF */ addic. r6, r6, -1 +/* 8008371C 0008065C 40 82 FF F4 */ bne lbl_80083710 +/* 80083720 00080660 88 1E 00 04 */ lbz r0, 4(r30) +/* 80083724 00080664 7C 65 18 50 */ subf r3, r5, r3 +/* 80083728 00080668 7C 00 2A 14 */ add r0, r0, r5 +/* 8008372C 0008066C 98 1E 00 04 */ stb r0, 4(r30) +lbl_80083730: +/* 80083730 00080670 7C 60 07 34 */ extsh r0, r3 +/* 80083734 00080674 B0 1E 00 02 */ sth r0, 2(r30) +lbl_80083738: +/* 80083738 00080678 80 01 00 6C */ lwz r0, 0x6c(r1) +/* 8008373C 0008067C CB E1 00 60 */ lfd f31, 0x60(r1) +/* 80083740 00080680 83 E1 00 5C */ lwz r31, 0x5c(r1) +/* 80083744 00080684 7C 08 03 A6 */ mtlr r0 +/* 80083748 00080688 83 C1 00 58 */ lwz r30, 0x58(r1) +/* 8008374C 0008068C 83 A1 00 54 */ lwz r29, 0x54(r1) +/* 80083750 00080690 38 21 00 68 */ addi r1, r1, 0x68 +/* 80083754 00080694 4E 80 00 20 */ blr + +.section .rodata, "a" # 0x8036FFA0 - 0x803A8380 +.balign 8 +bit_values: + .4byte 0x40240000 + .4byte 0 + .4byte 0x40590000 + .4byte 0 + .4byte 0x40C38800 + .4byte 0 + .4byte 0x4197D784 + .4byte 0 + .4byte 0x4341C379 + .4byte 0x37E08000 + .4byte 0x4693B8B5 + .4byte 0xB5056E17 + .4byte 0x4D384F03 + .4byte 0xE93FF9F5 + .4byte 0x5A827748 + .4byte 0xF9301D32 + .4byte 0x75154FDD + .4byte 0x7F73BF3C +digit_values: + .4byte 0x40240000 + .4byte 0 + .4byte 0x40590000 + .4byte 0 + .4byte 0x408F4000 + .4byte 0 + .4byte 0x40C38800 + .4byte 0 + .4byte 0x40F86A00 + .4byte 0 + .4byte 0x412E8480 + .4byte 0 + .4byte 0x416312D0 + .4byte 0 + .4byte 0x4197D784 + .4byte 0 + +.section .sdata2, "a" # 0x8040B460 - 0x80414020 +.balign 8 +"@268": + .4byte 0 + .4byte 0 +"@270": + .4byte 0x3FF00000 + .4byte 0 +"@272": + .4byte 0x43300000 + .4byte 0x80000000 +"@362": + .4byte 0x3FB99999 + .4byte 0x9999999A +"@363": + .4byte 0x40240000 + .4byte 0 diff --git a/asm/MSL_C.PPCEABI.bare.H/common_float_tables.s b/asm/MSL_C.PPCEABI.bare.H/common_float_tables.s new file mode 100644 index 0000000..3437bd6 --- /dev/null +++ b/asm/MSL_C.PPCEABI.bare.H/common_float_tables.s @@ -0,0 +1,338 @@ +.include "macros.inc" + +.section .rodata, "a" # 0x8036FFA0 - 0x803A8380 +.balign 8 +.global __two_to_log2e_m1_tI +__two_to_log2e_m1_tI: + .4byte 0x2C03DB89 + .4byte 0x2C333687 + .4byte 0x2C739362 + .4byte 0x2CA586E0 + .4byte 0x2CE0F96D + .4byte 0x2D18E2CB + .4byte 0x2D4FCB22 + .4byte 0x2D8D35D7 + .4byte 0x2DBFECBA + .4byte 0x2E026D27 + .4byte 0x2E314490 + .4byte 0x2E70EE94 + .4byte 0x2EA3BAF0 + .4byte 0x2EDE884F + .4byte 0x2F1739FB + .4byte 0x2F4D89C1 + .4byte 0x2F8BAD78 + .4byte 0x2FBDD771 + .4byte 0x300102BF + .4byte 0x302F5800 + .4byte 0x306E511E + .4byte 0x30A1F3FE + .4byte 0x30DC1DF9 + .4byte 0x311595C7 + .4byte 0x314B4EA4 + .4byte 0x318A295C + .4byte 0x31BBC7F1 + .4byte 0x31FF388B + .4byte 0x322D70C9 + .4byte 0x326BBAEC + .4byte 0x32A031FC + .4byte 0x32D9BA5A + .4byte 0x3313F623 + .4byte 0x334919B9 + .4byte 0x3388A975 + .4byte 0x33B9BE2B + .4byte 0x33FC7361 + .4byte 0x342B8EDC + .4byte 0x34692BEB + .4byte 0x349E74DD + .4byte 0x34D75D5D + .4byte 0x35125B02 + .4byte 0x3546EAF1 + .4byte 0x35872DBA + .4byte 0x35B7BA0F + .4byte 0x35F9B5EA + .4byte 0x3629B229 + .4byte 0x3666A405 + .4byte 0x369CBC92 + .4byte 0x36D506F2 + .4byte 0x3710C457 + .4byte 0x3744C239 + .4byte 0x3785B61D + .4byte 0x37B5BB8D + .4byte 0x37F7000F + .4byte 0x3827DAA4 + .4byte 0x38642328 + .4byte 0x389B090F + .4byte 0x38D2B706 + .4byte 0x390F3216 + .4byte 0x39429F81 + .4byte 0x39844295 + .4byte 0x39B3C295 + .4byte 0x39F451BD + .4byte 0x3A26083D + .4byte 0x3A61A93F + .4byte 0x3A995A46 + .4byte 0x3AD06D87 + .4byte 0x3B0DA433 + .4byte 0x3B4082B8 + .4byte 0x3B82D314 + .4byte 0x3BB1CF19 + .4byte 0x3BF1AADE + .4byte 0x3C243AE5 + .4byte 0x3C5F3638 + .4byte 0x3C97B02A + .4byte 0x3CCE2A62 + .4byte 0x3D0C1AA1 + .4byte 0x3D3E6BCE + .4byte 0x3D816791 + .4byte 0x3DAFE108 + .4byte 0x3DEF0B5D + .4byte 0x3E227290 + .4byte 0x3E5CC9FF + .4byte 0x3E960AAE + .4byte 0x3ECBED86 + .4byte 0x3F0A9555 + .4byte 0x3F3C5AB2 + .4byte 0x3F800000 + .4byte 0x3FADF854 + .4byte 0x3FEC7326 + .4byte 0x4020AF2E + .4byte 0x405A6481 + .4byte 0x409469C5 + .4byte 0x40C9B6E3 + .4byte 0x41091443 + .4byte 0x413A4F54 + .4byte 0x417D38AC + .4byte 0x41AC14EE + .4byte 0x41E9E224 + .4byte 0x421EF0B3 + .4byte 0x425805AD + .4byte 0x4292CD62 + .4byte 0x42C78665 + .4byte 0x4307975F + .4byte 0x433849A4 + .4byte 0x437A7910 + .4byte 0x43AA36C8 + .4byte 0x43E75844 + .4byte 0x441D3710 + .4byte 0x4455AD6E + .4byte 0x4491357A + .4byte 0x44C55BFE + .4byte 0x45061E9D + .4byte 0x45364993 + .4byte 0x4577C118 + .4byte 0x45A85DD2 + .4byte 0x45E4D572 + .4byte 0x461B8238 + .4byte 0x46535BB3 + .4byte 0x468FA1FE + .4byte 0x46C3379A + .4byte 0x4704A9F1 + .4byte 0x47344F11 + .4byte 0x477510AD + .4byte 0x47A689FE + .4byte 0x47E2599A + .4byte 0x4819D21F + .4byte 0x4851106A + .4byte 0x488E12E4 + .4byte 0x48C1192B + .4byte 0x49033952 + .4byte 0x49325A0E + .4byte 0x497267BB + .4byte 0x49A4BB3E + .4byte 0x49DFE4A9 + .4byte 0x4A1826B5 + .4byte 0x4A4ECB81 + .4byte 0x4A8C881F + .4byte 0x4ABF009E + .4byte 0x4B01CCB3 + .4byte 0x4B306A7C + .4byte 0x4B6FC62E + .4byte 0x4BA2F184 + .4byte 0x4BDD768B + .4byte 0x4C167FF0 + .4byte 0x4C4C8CE5 + .4byte 0x4C8B01A3 + .4byte 0x4CBCEDE5 + .4byte 0x4D006408 + .4byte 0x4D2E804A + .4byte 0x4D6D2BEF + .4byte 0x4DA12CC1 + .4byte 0x4DDB0F2E + .4byte 0x4E14DDC1 + .4byte 0x4E4A5487 + .4byte 0x4E897F64 + .4byte 0x4EBAE0EE + .4byte 0x4EFDFE91 + .4byte 0x4F2C9B6A + .4byte 0x4F6A98EC + .4byte 0x4F9F6CE9 + .4byte 0x4FD8AE7F + .4byte 0x5013401C + .4byte 0x50482254 + .4byte 0x50880156 + .4byte 0x50B8D9AA + .4byte 0x50FB3CCF + .4byte 0x512ABBCE + .4byte 0x51680D11 + .4byte 0x519DB1ED + .4byte 0x51D6546B + .4byte 0x5211A6F5 + .4byte 0x5245F63B + .4byte 0x5286876D + .4byte 0x52B6D809 + .4byte 0x52F882B7 + .4byte 0x5328E166 +.global __one_over_F +__one_over_F: + .4byte 0x3F800000 + .4byte 0x3F7E03F8 + .4byte 0x3F7C0FC1 + .4byte 0x3F7A232D + .4byte 0x3F783E10 + .4byte 0x3F76603E + .4byte 0x3F74898D + .4byte 0x3F72B9D6 + .4byte 0x3F70F0F1 + .4byte 0x3F6F2EB7 + .4byte 0x3F6D7304 + .4byte 0x3F6BBDB3 + .4byte 0x3F6A0EA1 + .4byte 0x3F6865AC + .4byte 0x3F66C2B4 + .4byte 0x3F652598 + .4byte 0x3F638E39 + .4byte 0x3F61FC78 + .4byte 0x3F607038 + .4byte 0x3F5EE95C + .4byte 0x3F5D67C9 + .4byte 0x3F5BEB62 + .4byte 0x3F5A740E + .4byte 0x3F5901B2 + .4byte 0x3F579436 + .4byte 0x3F562B81 + .4byte 0x3F54C77B + .4byte 0x3F53680D + .4byte 0x3F520D21 + .4byte 0x3F50B6A0 + .4byte 0x3F4F6475 + .4byte 0x3F4E168A + .4byte 0x3F4CCCCD + .4byte 0x3F4B8728 + .4byte 0x3F4A4588 + .4byte 0x3F4907DA + .4byte 0x3F47CE0C + .4byte 0x3F46980C + .4byte 0x3F4565C8 + .4byte 0x3F443730 + .4byte 0x3F430C31 + .4byte 0x3F41E4BC + .4byte 0x3F40C0C1 + .4byte 0x3F3FA030 + .4byte 0x3F3E82FA + .4byte 0x3F3D6910 + .4byte 0x3F3C5264 + .4byte 0x3F3B3EE7 + .4byte 0x3F3A2E8C + .4byte 0x3F392144 + .4byte 0x3F381703 + .4byte 0x3F370FBB + .4byte 0x3F360B61 + .4byte 0x3F3509E7 + .4byte 0x3F340B41 + .4byte 0x3F330F63 + .4byte 0x3F321643 + .4byte 0x3F311FD4 + .4byte 0x3F302C0B + .4byte 0x3F2F3ADE + .4byte 0x3F2E4C41 + .4byte 0x3F2D602B + .4byte 0x3F2C7692 + .4byte 0x3F2B8F6A + .4byte 0x3F2AAAAB + .4byte 0x3F29C84A + .4byte 0x3F28E83F + .4byte 0x3F280A81 + .4byte 0x3F272F05 + .4byte 0x3F2655C4 + .4byte 0x3F257EB5 + .4byte 0x3F24A9CF + .4byte 0x3F23D70A + .4byte 0x3F23065E + .4byte 0x3F2237C3 + .4byte 0x3F216B31 + .4byte 0x3F20A0A1 + .4byte 0x3F1FD80A + .4byte 0x3F1F1166 + .4byte 0x3F1E4CAD + .4byte 0x3F1D89D9 + .4byte 0x3F1CC8E1 + .4byte 0x3F1C09C1 + .4byte 0x3F1B4C70 + .4byte 0x3F1A90E8 + .4byte 0x3F19D723 + .4byte 0x3F191F1A + .4byte 0x3F1868C8 + .4byte 0x3F17B426 + .4byte 0x3F17012E + .4byte 0x3F164FDA + .4byte 0x3F15A025 + .4byte 0x3F14F209 + .4byte 0x3F144581 + .4byte 0x3F139A86 + .4byte 0x3F12F114 + .4byte 0x3F124925 + .4byte 0x3F11A2B4 + .4byte 0x3F10FDBC + .4byte 0x3F105A38 + .4byte 0x3F0FB824 + .4byte 0x3F0F177A + .4byte 0x3F0E7835 + .4byte 0x3F0DDA52 + .4byte 0x3F0D3DCB + .4byte 0x3F0CA29C + .4byte 0x3F0C08C1 + .4byte 0x3F0B7034 + .4byte 0x3F0AD8F3 + .4byte 0x3F0A42F8 + .4byte 0x3F09AE41 + .4byte 0x3F091AC7 + .4byte 0x3F088889 + .4byte 0x3F07F781 + .4byte 0x3F0767AB + .4byte 0x3F06D905 + .4byte 0x3F064B8A + .4byte 0x3F05BF37 + .4byte 0x3F053408 + .4byte 0x3F04A9FA + .4byte 0x3F042108 + .4byte 0x3F039930 + .4byte 0x3F03126F + .4byte 0x3F028CC0 + .4byte 0x3F020821 + .4byte 0x3F01848E + .4byte 0x3F010204 + .4byte 0x3F008080 + .4byte 0x3F000000 +.global __sincos_on_quadrant +__sincos_on_quadrant: + .4byte 0 + .4byte 0x3F800000 + .4byte 0x3F800000 + .4byte 0 + .4byte 0 + .4byte 0xBF800000 + .4byte 0xBF800000 + .4byte 0 +.global __sincos_poly +__sincos_poly: + .4byte 0x366CCFAA + .4byte 0x34A5E129 + .4byte 0xB9AAE275 + .4byte 0xB8196543 + .4byte 0x3C81E0ED + .4byte 0x3B2335DD + .4byte 0xBE9DE9E6 + .4byte 0xBDA55DE7 + .4byte 0x3F800000 + .4byte 0x3F490FDB + .4byte 0 diff --git a/asm/MSL_C.PPCEABI.bare.H/critical_regions.ppc_eabi.s b/asm/MSL_C.PPCEABI.bare.H/critical_regions.ppc_eabi.s new file mode 100644 index 0000000..6d0f74c --- /dev/null +++ b/asm/MSL_C.PPCEABI.bare.H/critical_regions.ppc_eabi.s @@ -0,0 +1,6 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global __kill_critical_regions +__kill_critical_regions: +/* 80083858 00080798 4E 80 00 20 */ blr diff --git a/asm/MSL_C.PPCEABI.bare.H/exponentialsf.s b/asm/MSL_C.PPCEABI.bare.H/exponentialsf.s new file mode 100644 index 0000000..ebf0950 --- /dev/null +++ b/asm/MSL_C.PPCEABI.bare.H/exponentialsf.s @@ -0,0 +1,762 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global powf +powf: +/* 800872D8 00084218 94 21 FF 70 */ stwu r1, -0x90(r1) +/* 800872DC 0008421C 3C 60 80 37 */ lis r3, __log2_F@ha +/* 800872E0 00084220 38 63 1F A8 */ addi r3, r3, __log2_F@l +/* 800872E4 00084224 C0 62 8A 60 */ lfs f3, "@246"@sda21(r2) +/* 800872E8 00084228 FC 01 18 40 */ fcmpo cr0, f1, f3 +/* 800872EC 0008422C 40 81 01 E4 */ ble lbl_800874D0 +/* 800872F0 00084230 D0 21 00 60 */ stfs f1, 0x60(r1) +/* 800872F4 00084234 80 02 8A 50 */ lwz r0, "@93"@sda21(r2) +/* 800872F8 00084238 81 21 00 60 */ lwz r9, 0x60(r1) +/* 800872FC 0008423C 90 01 00 68 */ stw r0, 0x68(r1) +/* 80087300 00084240 80 A2 8A 54 */ lwz r5, lbl_8040BEB4@sda21(r2) +/* 80087304 00084244 55 20 04 3F */ clrlwi. r0, r9, 0x10 +/* 80087308 00084248 55 24 4D FE */ srwi r4, r9, 0x17 +/* 8008730C 0008424C 90 A1 00 6C */ stw r5, 0x6c(r1) +/* 80087310 00084250 55 26 02 7E */ clrlwi r6, r9, 9 +/* 80087314 00084254 39 04 FF 80 */ addi r8, r4, -128 +/* 80087318 00084258 55 27 86 7E */ rlwinm r7, r9, 0x10, 0x19, 0x1f +/* 8008731C 0008425C 41 82 00 B4 */ beq lbl_800873D0 +/* 80087320 00084260 55 24 02 5E */ rlwinm r4, r9, 0, 9, 0xf +/* 80087324 00084264 64 85 3F 80 */ oris r5, r4, 0x3f80 +/* 80087328 00084268 64 C4 3F 80 */ oris r4, r6, 0x3f80 +/* 8008732C 0008426C 90 A1 00 64 */ stw r5, 0x64(r1) +/* 80087330 00084270 55 20 04 21 */ rlwinm. r0, r9, 0, 0x10, 0x10 +/* 80087334 00084274 90 81 00 74 */ stw r4, 0x74(r1) +/* 80087338 00084278 41 82 00 14 */ beq lbl_8008734C +/* 8008733C 0008427C 80 81 00 64 */ lwz r4, 0x64(r1) +/* 80087340 00084280 38 E7 00 01 */ addi r7, r7, 1 +/* 80087344 00084284 3C 04 00 01 */ addis r0, r4, 1 +/* 80087348 00084288 90 01 00 64 */ stw r0, 0x64(r1) +lbl_8008734C: +/* 8008734C 0008428C 3C 80 80 37 */ lis r4, __one_over_F@ha +/* 80087350 00084290 C0 61 00 74 */ lfs f3, 0x74(r1) +/* 80087354 00084294 C0 01 00 64 */ lfs f0, 0x64(r1) +/* 80087358 00084298 54 E5 10 3A */ slwi r5, r7, 2 +/* 8008735C 0008429C 38 04 1D 58 */ addi r0, r4, __one_over_F@l +/* 80087360 000842A0 C0 21 00 6C */ lfs f1, 0x6c(r1) +/* 80087364 000842A4 7C 80 2A 14 */ add r4, r0, r5 +/* 80087368 000842A8 ED 03 00 28 */ fsubs f8, f3, f0 +/* 8008736C 000842AC C0 64 00 00 */ lfs f3, 0(r4) +/* 80087370 000842B0 38 82 8A 48 */ addi r4, r2, __log2e_m1$localstatic0$__log2f__Ff@sda21 +/* 80087374 000842B4 C0 01 00 68 */ lfs f0, 0x68(r1) +/* 80087378 000842B8 6D 00 80 00 */ xoris r0, r8, 0x8000 +/* 8008737C 000842BC ED 08 00 F2 */ fmuls f8, f8, f3 +/* 80087380 000842C0 C0 84 00 04 */ lfs f4, 4(r4) +/* 80087384 000842C4 90 01 00 8C */ stw r0, 0x8c(r1) +/* 80087388 000842C8 3C 00 43 30 */ lis r0, 0x4330 +/* 8008738C 000842CC C0 A2 8A 48 */ lfs f5, __log2e_m1$localstatic0$__log2f__Ff@sda21(r2) +/* 80087390 000842D0 EC 68 02 32 */ fmuls f3, f8, f8 +/* 80087394 000842D4 90 01 00 88 */ stw r0, 0x88(r1) +/* 80087398 000842D8 EC 08 00 7A */ fmadds f0, f8, f1, f0 +/* 8008739C 000842DC C8 C2 8A 78 */ lfd f6, "@253"@sda21(r2) +/* 800873A0 000842E0 C8 21 00 88 */ lfd f1, 0x88(r1) +/* 800873A4 000842E4 EC 03 00 32 */ fmuls f0, f3, f0 +/* 800873A8 000842E8 C0 E2 8A 64 */ lfs f7, "@247"@sda21(r2) +/* 800873AC 000842EC EC 61 30 28 */ fsubs f3, f1, f6 +/* 800873B0 000842F0 7C 23 2C 2E */ lfsx f1, r3, r5 +/* 800873B4 000842F4 EC 04 02 3A */ fmadds f0, f4, f8, f0 +/* 800873B8 000842F8 EC 67 18 2A */ fadds f3, f7, f3 +/* 800873BC 000842FC EC 05 02 3A */ fmadds f0, f5, f8, f0 +/* 800873C0 00084300 EC 08 00 2A */ fadds f0, f8, f0 +/* 800873C4 00084304 EC 01 00 2A */ fadds f0, f1, f0 +/* 800873C8 00084308 EC 03 00 2A */ fadds f0, f3, f0 +/* 800873CC 0008430C 48 00 00 34 */ b lbl_80087400 +lbl_800873D0: +/* 800873D0 00084310 6D 00 80 00 */ xoris r0, r8, 0x8000 +/* 800873D4 00084314 C8 62 8A 78 */ lfd f3, "@253"@sda21(r2) +/* 800873D8 00084318 90 01 00 8C */ stw r0, 0x8c(r1) +/* 800873DC 0008431C 3C 80 43 30 */ lis r4, 0x4330 +/* 800873E0 00084320 54 E0 10 3A */ slwi r0, r7, 2 +/* 800873E4 00084324 C0 82 8A 64 */ lfs f4, "@247"@sda21(r2) +/* 800873E8 00084328 90 81 00 88 */ stw r4, 0x88(r1) +/* 800873EC 0008432C 7C 03 04 2E */ lfsx f0, r3, r0 +/* 800873F0 00084330 C8 21 00 88 */ lfd f1, 0x88(r1) +/* 800873F4 00084334 EC 21 18 28 */ fsubs f1, f1, f3 +/* 800873F8 00084338 EC 24 08 2A */ fadds f1, f4, f1 +/* 800873FC 0008433C EC 01 00 2A */ fadds f0, f1, f0 +lbl_80087400: +/* 80087400 00084340 EC 42 00 32 */ fmuls f2, f2, f0 +/* 80087404 00084344 3C 00 43 30 */ lis r0, 0x4330 +/* 80087408 00084348 C8 22 8A 78 */ lfd f1, "@253"@sda21(r2) +/* 8008740C 0008434C FC 00 10 1E */ fctiwz f0, f2 +/* 80087410 00084350 D8 01 00 88 */ stfd f0, 0x88(r1) +/* 80087414 00084354 80 81 00 8C */ lwz r4, 0x8c(r1) +/* 80087418 00084358 90 81 00 58 */ stw r4, 0x58(r1) +/* 8008741C 0008435C 80 A1 00 58 */ lwz r5, 0x58(r1) +/* 80087420 00084360 6C A4 80 00 */ xoris r4, r5, 0x8000 +/* 80087424 00084364 90 81 00 84 */ stw r4, 0x84(r1) +/* 80087428 00084368 2C 05 00 80 */ cmpwi r5, 0x80 +/* 8008742C 0008436C 90 01 00 80 */ stw r0, 0x80(r1) +/* 80087430 00084370 C8 01 00 80 */ lfd f0, 0x80(r1) +/* 80087434 00084374 EC 00 08 28 */ fsubs f0, f0, f1 +/* 80087438 00084378 ED 22 00 28 */ fsubs f9, f2, f0 +/* 8008743C 0008437C 40 81 00 0C */ ble lbl_80087448 +/* 80087440 00084380 C0 22 8A 58 */ lfs f1, _inf@sda21(r2) +/* 80087444 00084384 48 00 05 CC */ b lbl_80087A10 +lbl_80087448: +/* 80087448 00084388 2C 05 FF 81 */ cmpwi r5, -127 +/* 8008744C 0008438C 40 80 00 0C */ bge lbl_80087458 +/* 80087450 00084390 C0 22 8A 60 */ lfs f1, "@246"@sda21(r2) +/* 80087454 00084394 48 00 05 BC */ b lbl_80087A10 +lbl_80087458: +/* 80087458 00084398 38 05 00 7F */ addi r0, r5, 0x7f +/* 8008745C 0008439C C0 C2 8A 6C */ lfs f6, "@249"@sda21(r2) +/* 80087460 000843A0 90 01 00 58 */ stw r0, 0x58(r1) +/* 80087464 000843A4 C0 E2 8A 68 */ lfs f7, "@248"@sda21(r2) +/* 80087468 000843A8 80 01 00 58 */ lwz r0, 0x58(r1) +/* 8008746C 000843AC 54 00 B8 10 */ slwi r0, r0, 0x17 +/* 80087470 000843B0 90 01 00 58 */ stw r0, 0x58(r1) +/* 80087474 000843B4 C0 43 02 24 */ lfs f2, 0x224(r3) +/* 80087478 000843B8 C0 03 02 20 */ lfs f0, 0x220(r3) +/* 8008747C 000843BC C0 23 02 1C */ lfs f1, 0x21c(r3) +/* 80087480 000843C0 EC 49 00 BA */ fmadds f2, f9, f2, f0 +/* 80087484 000843C4 C0 03 02 18 */ lfs f0, 0x218(r3) +/* 80087488 000843C8 C0 83 02 14 */ lfs f4, 0x214(r3) +/* 8008748C 000843CC C0 63 02 10 */ lfs f3, 0x210(r3) +/* 80087490 000843D0 EC A9 08 BA */ fmadds f5, f9, f2, f1 +/* 80087494 000843D4 C0 43 02 0C */ lfs f2, 0x20c(r3) +/* 80087498 000843D8 C0 23 02 08 */ lfs f1, 0x208(r3) +/* 8008749C 000843DC EC A9 01 7A */ fmadds f5, f9, f5, f0 +/* 800874A0 000843E0 C0 03 02 04 */ lfs f0, 0x204(r3) +/* 800874A4 000843E4 C1 01 00 58 */ lfs f8, 0x58(r1) +/* 800874A8 000843E8 EC 89 21 7A */ fmadds f4, f9, f5, f4 +/* 800874AC 000843EC EC 69 19 3A */ fmadds f3, f9, f4, f3 +/* 800874B0 000843F0 EC 49 10 FA */ fmadds f2, f9, f3, f2 +/* 800874B4 000843F4 EC 29 08 BA */ fmadds f1, f9, f2, f1 +/* 800874B8 000843F8 EC 09 00 7A */ fmadds f0, f9, f1, f0 +/* 800874BC 000843FC EC 09 00 32 */ fmuls f0, f9, f0 +/* 800874C0 00084400 EC 06 00 2A */ fadds f0, f6, f0 +/* 800874C4 00084404 EC 07 00 2A */ fadds f0, f7, f0 +/* 800874C8 00084408 EC 28 00 32 */ fmuls f1, f8, f0 +/* 800874CC 0008440C 48 00 05 44 */ b lbl_80087A10 +lbl_800874D0: +/* 800874D0 00084410 40 80 04 18 */ bge lbl_800878E8 +/* 800874D4 00084414 FC 00 10 1E */ fctiwz f0, f2 +/* 800874D8 00084418 3C A0 43 30 */ lis r5, 0x4330 +/* 800874DC 0008441C C8 82 8A 78 */ lfd f4, "@253"@sda21(r2) +/* 800874E0 00084420 D8 01 00 88 */ stfd f0, 0x88(r1) +/* 800874E4 00084424 80 01 00 8C */ lwz r0, 0x8c(r1) +/* 800874E8 00084428 D8 01 00 80 */ stfd f0, 0x80(r1) +/* 800874EC 0008442C 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 800874F0 00084430 90 01 00 7C */ stw r0, 0x7c(r1) +/* 800874F4 00084434 80 81 00 84 */ lwz r4, 0x84(r1) +/* 800874F8 00084438 90 A1 00 78 */ stw r5, 0x78(r1) +/* 800874FC 0008443C C8 01 00 78 */ lfd f0, 0x78(r1) +/* 80087500 00084440 EC 00 20 28 */ fsubs f0, f0, f4 +/* 80087504 00084444 EC 02 00 28 */ fsubs f0, f2, f0 +/* 80087508 00084448 FC 00 18 00 */ fcmpu cr0, f0, f3 +/* 8008750C 0008444C 41 82 00 0C */ beq lbl_80087518 +/* 80087510 00084450 C0 22 8A 5C */ lfs f1, _nan@sda21(r2) +/* 80087514 00084454 48 00 04 FC */ b lbl_80087A10 +lbl_80087518: +/* 80087518 00084458 7C 80 0E 70 */ srawi r0, r4, 1 +/* 8008751C 0008445C 7C 00 01 94 */ addze r0, r0 +/* 80087520 00084460 54 00 08 3C */ slwi r0, r0, 1 +/* 80087524 00084464 7C 00 20 11 */ subfc. r0, r0, r4 +/* 80087528 00084468 41 82 01 E4 */ beq lbl_8008770C +/* 8008752C 0008446C FC 00 08 50 */ fneg f0, f1 +/* 80087530 00084470 80 82 8A 50 */ lwz r4, "@93"@sda21(r2) +/* 80087534 00084474 80 02 8A 54 */ lwz r0, lbl_8040BEB4@sda21(r2) +/* 80087538 00084478 90 81 00 48 */ stw r4, 0x48(r1) +/* 8008753C 0008447C D0 01 00 40 */ stfs f0, 0x40(r1) +/* 80087540 00084480 81 21 00 40 */ lwz r9, 0x40(r1) +/* 80087544 00084484 90 01 00 4C */ stw r0, 0x4c(r1) +/* 80087548 00084488 55 24 4D FE */ srwi r4, r9, 0x17 +/* 8008754C 0008448C 55 20 04 3F */ clrlwi. r0, r9, 0x10 +/* 80087550 00084490 55 26 02 7E */ clrlwi r6, r9, 9 +/* 80087554 00084494 39 04 FF 80 */ addi r8, r4, -128 +/* 80087558 00084498 55 27 86 7E */ rlwinm r7, r9, 0x10, 0x19, 0x1f +/* 8008755C 0008449C 41 82 00 B4 */ beq lbl_80087610 +/* 80087560 000844A0 55 24 02 5E */ rlwinm r4, r9, 0, 9, 0xf +/* 80087564 000844A4 64 85 3F 80 */ oris r5, r4, 0x3f80 +/* 80087568 000844A8 64 C4 3F 80 */ oris r4, r6, 0x3f80 +/* 8008756C 000844AC 90 A1 00 44 */ stw r5, 0x44(r1) +/* 80087570 000844B0 55 20 04 21 */ rlwinm. r0, r9, 0, 0x10, 0x10 +/* 80087574 000844B4 90 81 00 54 */ stw r4, 0x54(r1) +/* 80087578 000844B8 41 82 00 14 */ beq lbl_8008758C +/* 8008757C 000844BC 80 81 00 44 */ lwz r4, 0x44(r1) +/* 80087580 000844C0 38 E7 00 01 */ addi r7, r7, 1 +/* 80087584 000844C4 3C 04 00 01 */ addis r0, r4, 1 +/* 80087588 000844C8 90 01 00 44 */ stw r0, 0x44(r1) +lbl_8008758C: +/* 8008758C 000844CC 3C 80 80 37 */ lis r4, __one_over_F@ha +/* 80087590 000844D0 C0 61 00 54 */ lfs f3, 0x54(r1) +/* 80087594 000844D4 C0 01 00 44 */ lfs f0, 0x44(r1) +/* 80087598 000844D8 54 E5 10 3A */ slwi r5, r7, 2 +/* 8008759C 000844DC 38 04 1D 58 */ addi r0, r4, __one_over_F@l +/* 800875A0 000844E0 C0 21 00 4C */ lfs f1, 0x4c(r1) +/* 800875A4 000844E4 7C 80 2A 14 */ add r4, r0, r5 +/* 800875A8 000844E8 ED 03 00 28 */ fsubs f8, f3, f0 +/* 800875AC 000844EC C0 64 00 00 */ lfs f3, 0(r4) +/* 800875B0 000844F0 38 82 8A 48 */ addi r4, r2, __log2e_m1$localstatic0$__log2f__Ff@sda21 +/* 800875B4 000844F4 C0 01 00 48 */ lfs f0, 0x48(r1) +/* 800875B8 000844F8 6D 00 80 00 */ xoris r0, r8, 0x8000 +/* 800875BC 000844FC ED 08 00 F2 */ fmuls f8, f8, f3 +/* 800875C0 00084500 C0 84 00 04 */ lfs f4, 4(r4) +/* 800875C4 00084504 90 01 00 7C */ stw r0, 0x7c(r1) +/* 800875C8 00084508 3C 00 43 30 */ lis r0, 0x4330 +/* 800875CC 0008450C C0 A2 8A 48 */ lfs f5, __log2e_m1$localstatic0$__log2f__Ff@sda21(r2) +/* 800875D0 00084510 EC 68 02 32 */ fmuls f3, f8, f8 +/* 800875D4 00084514 90 01 00 78 */ stw r0, 0x78(r1) +/* 800875D8 00084518 EC 08 00 7A */ fmadds f0, f8, f1, f0 +/* 800875DC 0008451C C8 C2 8A 78 */ lfd f6, "@253"@sda21(r2) +/* 800875E0 00084520 C8 21 00 78 */ lfd f1, 0x78(r1) +/* 800875E4 00084524 EC 03 00 32 */ fmuls f0, f3, f0 +/* 800875E8 00084528 C0 E2 8A 64 */ lfs f7, "@247"@sda21(r2) +/* 800875EC 0008452C EC 61 30 28 */ fsubs f3, f1, f6 +/* 800875F0 00084530 7C 23 2C 2E */ lfsx f1, r3, r5 +/* 800875F4 00084534 EC 04 02 3A */ fmadds f0, f4, f8, f0 +/* 800875F8 00084538 EC 67 18 2A */ fadds f3, f7, f3 +/* 800875FC 0008453C EC 05 02 3A */ fmadds f0, f5, f8, f0 +/* 80087600 00084540 EC 08 00 2A */ fadds f0, f8, f0 +/* 80087604 00084544 EC 01 00 2A */ fadds f0, f1, f0 +/* 80087608 00084548 EC 03 00 2A */ fadds f0, f3, f0 +/* 8008760C 0008454C 48 00 00 2C */ b lbl_80087638 +lbl_80087610: +/* 80087610 00084550 6D 00 80 00 */ xoris r0, r8, 0x8000 +/* 80087614 00084554 C0 62 8A 64 */ lfs f3, "@247"@sda21(r2) +/* 80087618 00084558 90 01 00 7C */ stw r0, 0x7c(r1) +/* 8008761C 0008455C 54 E0 10 3A */ slwi r0, r7, 2 +/* 80087620 00084560 7C 03 04 2E */ lfsx f0, r3, r0 +/* 80087624 00084564 90 A1 00 78 */ stw r5, 0x78(r1) +/* 80087628 00084568 C8 21 00 78 */ lfd f1, 0x78(r1) +/* 8008762C 0008456C EC 21 20 28 */ fsubs f1, f1, f4 +/* 80087630 00084570 EC 23 08 2A */ fadds f1, f3, f1 +/* 80087634 00084574 EC 01 00 2A */ fadds f0, f1, f0 +lbl_80087638: +/* 80087638 00084578 EC 42 00 32 */ fmuls f2, f2, f0 +/* 8008763C 0008457C 3C 00 43 30 */ lis r0, 0x4330 +/* 80087640 00084580 C8 22 8A 78 */ lfd f1, "@253"@sda21(r2) +/* 80087644 00084584 FC 00 10 1E */ fctiwz f0, f2 +/* 80087648 00084588 D8 01 00 78 */ stfd f0, 0x78(r1) +/* 8008764C 0008458C 80 81 00 7C */ lwz r4, 0x7c(r1) +/* 80087650 00084590 90 81 00 38 */ stw r4, 0x38(r1) +/* 80087654 00084594 80 A1 00 38 */ lwz r5, 0x38(r1) +/* 80087658 00084598 6C A4 80 00 */ xoris r4, r5, 0x8000 +/* 8008765C 0008459C 90 81 00 84 */ stw r4, 0x84(r1) +/* 80087660 000845A0 2C 05 00 80 */ cmpwi r5, 0x80 +/* 80087664 000845A4 90 01 00 80 */ stw r0, 0x80(r1) +/* 80087668 000845A8 C8 01 00 80 */ lfd f0, 0x80(r1) +/* 8008766C 000845AC EC 00 08 28 */ fsubs f0, f0, f1 +/* 80087670 000845B0 ED 22 00 28 */ fsubs f9, f2, f0 +/* 80087674 000845B4 40 81 00 0C */ ble lbl_80087680 +/* 80087678 000845B8 C0 02 8A 58 */ lfs f0, _inf@sda21(r2) +/* 8008767C 000845BC 48 00 00 88 */ b lbl_80087704 +lbl_80087680: +/* 80087680 000845C0 2C 05 FF 81 */ cmpwi r5, -127 +/* 80087684 000845C4 40 80 00 0C */ bge lbl_80087690 +/* 80087688 000845C8 C0 02 8A 60 */ lfs f0, "@246"@sda21(r2) +/* 8008768C 000845CC 48 00 00 78 */ b lbl_80087704 +lbl_80087690: +/* 80087690 000845D0 38 05 00 7F */ addi r0, r5, 0x7f +/* 80087694 000845D4 C0 C2 8A 6C */ lfs f6, "@249"@sda21(r2) +/* 80087698 000845D8 90 01 00 38 */ stw r0, 0x38(r1) +/* 8008769C 000845DC C0 E2 8A 68 */ lfs f7, "@248"@sda21(r2) +/* 800876A0 000845E0 80 01 00 38 */ lwz r0, 0x38(r1) +/* 800876A4 000845E4 54 00 B8 10 */ slwi r0, r0, 0x17 +/* 800876A8 000845E8 90 01 00 38 */ stw r0, 0x38(r1) +/* 800876AC 000845EC C0 43 02 24 */ lfs f2, 0x224(r3) +/* 800876B0 000845F0 C0 03 02 20 */ lfs f0, 0x220(r3) +/* 800876B4 000845F4 C0 23 02 1C */ lfs f1, 0x21c(r3) +/* 800876B8 000845F8 EC 49 00 BA */ fmadds f2, f9, f2, f0 +/* 800876BC 000845FC C0 03 02 18 */ lfs f0, 0x218(r3) +/* 800876C0 00084600 C0 83 02 14 */ lfs f4, 0x214(r3) +/* 800876C4 00084604 C0 63 02 10 */ lfs f3, 0x210(r3) +/* 800876C8 00084608 EC A9 08 BA */ fmadds f5, f9, f2, f1 +/* 800876CC 0008460C C0 43 02 0C */ lfs f2, 0x20c(r3) +/* 800876D0 00084610 C0 23 02 08 */ lfs f1, 0x208(r3) +/* 800876D4 00084614 EC A9 01 7A */ fmadds f5, f9, f5, f0 +/* 800876D8 00084618 C0 03 02 04 */ lfs f0, 0x204(r3) +/* 800876DC 0008461C C1 01 00 38 */ lfs f8, 0x38(r1) +/* 800876E0 00084620 EC 89 21 7A */ fmadds f4, f9, f5, f4 +/* 800876E4 00084624 EC 69 19 3A */ fmadds f3, f9, f4, f3 +/* 800876E8 00084628 EC 49 10 FA */ fmadds f2, f9, f3, f2 +/* 800876EC 0008462C EC 29 08 BA */ fmadds f1, f9, f2, f1 +/* 800876F0 00084630 EC 09 00 7A */ fmadds f0, f9, f1, f0 +/* 800876F4 00084634 EC 09 00 32 */ fmuls f0, f9, f0 +/* 800876F8 00084638 EC 06 00 2A */ fadds f0, f6, f0 +/* 800876FC 0008463C EC 07 00 2A */ fadds f0, f7, f0 +/* 80087700 00084640 EC 08 00 32 */ fmuls f0, f8, f0 +lbl_80087704: +/* 80087704 00084644 FC 20 00 50 */ fneg f1, f0 +/* 80087708 00084648 48 00 03 08 */ b lbl_80087A10 +lbl_8008770C: +/* 8008770C 0008464C FC 00 08 50 */ fneg f0, f1 +/* 80087710 00084650 80 82 8A 50 */ lwz r4, "@93"@sda21(r2) +/* 80087714 00084654 80 02 8A 54 */ lwz r0, lbl_8040BEB4@sda21(r2) +/* 80087718 00084658 90 81 00 28 */ stw r4, 0x28(r1) +/* 8008771C 0008465C D0 01 00 20 */ stfs f0, 0x20(r1) +/* 80087720 00084660 81 21 00 20 */ lwz r9, 0x20(r1) +/* 80087724 00084664 90 01 00 2C */ stw r0, 0x2c(r1) +/* 80087728 00084668 55 24 4D FE */ srwi r4, r9, 0x17 +/* 8008772C 0008466C 55 20 04 3F */ clrlwi. r0, r9, 0x10 +/* 80087730 00084670 55 26 02 7E */ clrlwi r6, r9, 9 +/* 80087734 00084674 39 04 FF 80 */ addi r8, r4, -128 +/* 80087738 00084678 55 27 86 7E */ rlwinm r7, r9, 0x10, 0x19, 0x1f +/* 8008773C 0008467C 41 82 00 B4 */ beq lbl_800877F0 +/* 80087740 00084680 55 24 02 5E */ rlwinm r4, r9, 0, 9, 0xf +/* 80087744 00084684 64 85 3F 80 */ oris r5, r4, 0x3f80 +/* 80087748 00084688 64 C4 3F 80 */ oris r4, r6, 0x3f80 +/* 8008774C 0008468C 90 A1 00 24 */ stw r5, 0x24(r1) +/* 80087750 00084690 55 20 04 21 */ rlwinm. r0, r9, 0, 0x10, 0x10 +/* 80087754 00084694 90 81 00 34 */ stw r4, 0x34(r1) +/* 80087758 00084698 41 82 00 14 */ beq lbl_8008776C +/* 8008775C 0008469C 80 81 00 24 */ lwz r4, 0x24(r1) +/* 80087760 000846A0 38 E7 00 01 */ addi r7, r7, 1 +/* 80087764 000846A4 3C 04 00 01 */ addis r0, r4, 1 +/* 80087768 000846A8 90 01 00 24 */ stw r0, 0x24(r1) +lbl_8008776C: +/* 8008776C 000846AC 3C 80 80 37 */ lis r4, __one_over_F@ha +/* 80087770 000846B0 C0 61 00 34 */ lfs f3, 0x34(r1) +/* 80087774 000846B4 C0 01 00 24 */ lfs f0, 0x24(r1) +/* 80087778 000846B8 54 E5 10 3A */ slwi r5, r7, 2 +/* 8008777C 000846BC 38 04 1D 58 */ addi r0, r4, __one_over_F@l +/* 80087780 000846C0 C0 21 00 2C */ lfs f1, 0x2c(r1) +/* 80087784 000846C4 7C 80 2A 14 */ add r4, r0, r5 +/* 80087788 000846C8 ED 03 00 28 */ fsubs f8, f3, f0 +/* 8008778C 000846CC C0 64 00 00 */ lfs f3, 0(r4) +/* 80087790 000846D0 38 82 8A 48 */ addi r4, r2, __log2e_m1$localstatic0$__log2f__Ff@sda21 +/* 80087794 000846D4 C0 01 00 28 */ lfs f0, 0x28(r1) +/* 80087798 000846D8 6D 00 80 00 */ xoris r0, r8, 0x8000 +/* 8008779C 000846DC ED 08 00 F2 */ fmuls f8, f8, f3 +/* 800877A0 000846E0 C0 84 00 04 */ lfs f4, 4(r4) +/* 800877A4 000846E4 90 01 00 7C */ stw r0, 0x7c(r1) +/* 800877A8 000846E8 3C 00 43 30 */ lis r0, 0x4330 +/* 800877AC 000846EC C0 A2 8A 48 */ lfs f5, __log2e_m1$localstatic0$__log2f__Ff@sda21(r2) +/* 800877B0 000846F0 EC 68 02 32 */ fmuls f3, f8, f8 +/* 800877B4 000846F4 90 01 00 78 */ stw r0, 0x78(r1) +/* 800877B8 000846F8 EC 08 00 7A */ fmadds f0, f8, f1, f0 +/* 800877BC 000846FC C8 C2 8A 78 */ lfd f6, "@253"@sda21(r2) +/* 800877C0 00084700 C8 21 00 78 */ lfd f1, 0x78(r1) +/* 800877C4 00084704 EC 03 00 32 */ fmuls f0, f3, f0 +/* 800877C8 00084708 C0 E2 8A 64 */ lfs f7, "@247"@sda21(r2) +/* 800877CC 0008470C EC 61 30 28 */ fsubs f3, f1, f6 +/* 800877D0 00084710 7C 23 2C 2E */ lfsx f1, r3, r5 +/* 800877D4 00084714 EC 04 02 3A */ fmadds f0, f4, f8, f0 +/* 800877D8 00084718 EC 67 18 2A */ fadds f3, f7, f3 +/* 800877DC 0008471C EC 05 02 3A */ fmadds f0, f5, f8, f0 +/* 800877E0 00084720 EC 08 00 2A */ fadds f0, f8, f0 +/* 800877E4 00084724 EC 01 00 2A */ fadds f0, f1, f0 +/* 800877E8 00084728 EC 03 00 2A */ fadds f0, f3, f0 +/* 800877EC 0008472C 48 00 00 2C */ b lbl_80087818 +lbl_800877F0: +/* 800877F0 00084730 6D 00 80 00 */ xoris r0, r8, 0x8000 +/* 800877F4 00084734 C0 62 8A 64 */ lfs f3, "@247"@sda21(r2) +/* 800877F8 00084738 90 01 00 7C */ stw r0, 0x7c(r1) +/* 800877FC 0008473C 54 E0 10 3A */ slwi r0, r7, 2 +/* 80087800 00084740 7C 03 04 2E */ lfsx f0, r3, r0 +/* 80087804 00084744 90 A1 00 78 */ stw r5, 0x78(r1) +/* 80087808 00084748 C8 21 00 78 */ lfd f1, 0x78(r1) +/* 8008780C 0008474C EC 21 20 28 */ fsubs f1, f1, f4 +/* 80087810 00084750 EC 23 08 2A */ fadds f1, f3, f1 +/* 80087814 00084754 EC 01 00 2A */ fadds f0, f1, f0 +lbl_80087818: +/* 80087818 00084758 EC 42 00 32 */ fmuls f2, f2, f0 +/* 8008781C 0008475C 3C 00 43 30 */ lis r0, 0x4330 +/* 80087820 00084760 C8 22 8A 78 */ lfd f1, "@253"@sda21(r2) +/* 80087824 00084764 FC 00 10 1E */ fctiwz f0, f2 +/* 80087828 00084768 D8 01 00 78 */ stfd f0, 0x78(r1) +/* 8008782C 0008476C 80 81 00 7C */ lwz r4, 0x7c(r1) +/* 80087830 00084770 90 81 00 18 */ stw r4, 0x18(r1) +/* 80087834 00084774 80 A1 00 18 */ lwz r5, 0x18(r1) +/* 80087838 00084778 6C A4 80 00 */ xoris r4, r5, 0x8000 +/* 8008783C 0008477C 90 81 00 84 */ stw r4, 0x84(r1) +/* 80087840 00084780 2C 05 00 80 */ cmpwi r5, 0x80 +/* 80087844 00084784 90 01 00 80 */ stw r0, 0x80(r1) +/* 80087848 00084788 C8 01 00 80 */ lfd f0, 0x80(r1) +/* 8008784C 0008478C EC 00 08 28 */ fsubs f0, f0, f1 +/* 80087850 00084790 ED 22 00 28 */ fsubs f9, f2, f0 +/* 80087854 00084794 40 81 00 0C */ ble lbl_80087860 +/* 80087858 00084798 C0 22 8A 58 */ lfs f1, _inf@sda21(r2) +/* 8008785C 0008479C 48 00 01 B4 */ b lbl_80087A10 +lbl_80087860: +/* 80087860 000847A0 2C 05 FF 81 */ cmpwi r5, -127 +/* 80087864 000847A4 40 80 00 0C */ bge lbl_80087870 +/* 80087868 000847A8 C0 22 8A 60 */ lfs f1, "@246"@sda21(r2) +/* 8008786C 000847AC 48 00 01 A4 */ b lbl_80087A10 +lbl_80087870: +/* 80087870 000847B0 38 05 00 7F */ addi r0, r5, 0x7f +/* 80087874 000847B4 C0 C2 8A 6C */ lfs f6, "@249"@sda21(r2) +/* 80087878 000847B8 90 01 00 18 */ stw r0, 0x18(r1) +/* 8008787C 000847BC C0 E2 8A 68 */ lfs f7, "@248"@sda21(r2) +/* 80087880 000847C0 80 01 00 18 */ lwz r0, 0x18(r1) +/* 80087884 000847C4 54 00 B8 10 */ slwi r0, r0, 0x17 +/* 80087888 000847C8 90 01 00 18 */ stw r0, 0x18(r1) +/* 8008788C 000847CC C0 43 02 24 */ lfs f2, 0x224(r3) +/* 80087890 000847D0 C0 03 02 20 */ lfs f0, 0x220(r3) +/* 80087894 000847D4 C0 23 02 1C */ lfs f1, 0x21c(r3) +/* 80087898 000847D8 EC 49 00 BA */ fmadds f2, f9, f2, f0 +/* 8008789C 000847DC C0 03 02 18 */ lfs f0, 0x218(r3) +/* 800878A0 000847E0 C0 83 02 14 */ lfs f4, 0x214(r3) +/* 800878A4 000847E4 C0 63 02 10 */ lfs f3, 0x210(r3) +/* 800878A8 000847E8 EC A9 08 BA */ fmadds f5, f9, f2, f1 +/* 800878AC 000847EC C0 43 02 0C */ lfs f2, 0x20c(r3) +/* 800878B0 000847F0 C0 23 02 08 */ lfs f1, 0x208(r3) +/* 800878B4 000847F4 EC A9 01 7A */ fmadds f5, f9, f5, f0 +/* 800878B8 000847F8 C0 03 02 04 */ lfs f0, 0x204(r3) +/* 800878BC 000847FC C1 01 00 18 */ lfs f8, 0x18(r1) +/* 800878C0 00084800 EC 89 21 7A */ fmadds f4, f9, f5, f4 +/* 800878C4 00084804 EC 69 19 3A */ fmadds f3, f9, f4, f3 +/* 800878C8 00084808 EC 49 10 FA */ fmadds f2, f9, f3, f2 +/* 800878CC 0008480C EC 29 08 BA */ fmadds f1, f9, f2, f1 +/* 800878D0 00084810 EC 09 00 7A */ fmadds f0, f9, f1, f0 +/* 800878D4 00084814 EC 09 00 32 */ fmuls f0, f9, f0 +/* 800878D8 00084818 EC 06 00 2A */ fadds f0, f6, f0 +/* 800878DC 0008481C EC 07 00 2A */ fadds f0, f7, f0 +/* 800878E0 00084820 EC 28 00 32 */ fmuls f1, f8, f0 +/* 800878E4 00084824 48 00 01 2C */ b lbl_80087A10 +lbl_800878E8: +/* 800878E8 00084828 D0 21 00 14 */ stfs f1, 0x14(r1) +/* 800878EC 0008482C 3C 00 7F 80 */ lis r0, 0x7f80 +/* 800878F0 00084830 80 81 00 14 */ lwz r4, 0x14(r1) +/* 800878F4 00084834 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8 +/* 800878F8 00084838 7C 03 00 00 */ cmpw r3, r0 +/* 800878FC 0008483C 41 82 00 14 */ beq lbl_80087910 +/* 80087900 00084840 40 80 00 40 */ bge lbl_80087940 +/* 80087904 00084844 2C 03 00 00 */ cmpwi r3, 0 +/* 80087908 00084848 41 82 00 20 */ beq lbl_80087928 +/* 8008790C 0008484C 48 00 00 34 */ b lbl_80087940 +lbl_80087910: +/* 80087910 00084850 54 80 02 7F */ clrlwi. r0, r4, 9 +/* 80087914 00084854 41 82 00 0C */ beq lbl_80087920 +/* 80087918 00084858 38 00 00 01 */ li r0, 1 +/* 8008791C 0008485C 48 00 00 28 */ b lbl_80087944 +lbl_80087920: +/* 80087920 00084860 38 00 00 02 */ li r0, 2 +/* 80087924 00084864 48 00 00 20 */ b lbl_80087944 +lbl_80087928: +/* 80087928 00084868 54 80 02 7F */ clrlwi. r0, r4, 9 +/* 8008792C 0008486C 41 82 00 0C */ beq lbl_80087938 +/* 80087930 00084870 38 00 00 05 */ li r0, 5 +/* 80087934 00084874 48 00 00 10 */ b lbl_80087944 +lbl_80087938: +/* 80087938 00084878 38 00 00 03 */ li r0, 3 +/* 8008793C 0008487C 48 00 00 08 */ b lbl_80087944 +lbl_80087940: +/* 80087940 00084880 38 00 00 04 */ li r0, 4 +lbl_80087944: +/* 80087944 00084884 2C 00 00 01 */ cmpwi r0, 1 +/* 80087948 00084888 40 82 00 08 */ bne lbl_80087950 +/* 8008794C 0008488C 48 00 00 C4 */ b lbl_80087A10 +lbl_80087950: +/* 80087950 00084890 D0 41 00 10 */ stfs f2, 0x10(r1) +/* 80087954 00084894 3C 00 7F 80 */ lis r0, 0x7f80 +/* 80087958 00084898 80 81 00 10 */ lwz r4, 0x10(r1) +/* 8008795C 0008489C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8 +/* 80087960 000848A0 7C 03 00 00 */ cmpw r3, r0 +/* 80087964 000848A4 41 82 00 14 */ beq lbl_80087978 +/* 80087968 000848A8 40 80 00 40 */ bge lbl_800879A8 +/* 8008796C 000848AC 2C 03 00 00 */ cmpwi r3, 0 +/* 80087970 000848B0 41 82 00 20 */ beq lbl_80087990 +/* 80087974 000848B4 48 00 00 34 */ b lbl_800879A8 +lbl_80087978: +/* 80087978 000848B8 54 80 02 7F */ clrlwi. r0, r4, 9 +/* 8008797C 000848BC 41 82 00 0C */ beq lbl_80087988 +/* 80087980 000848C0 38 00 00 01 */ li r0, 1 +/* 80087984 000848C4 48 00 00 28 */ b lbl_800879AC +lbl_80087988: +/* 80087988 000848C8 38 00 00 02 */ li r0, 2 +/* 8008798C 000848CC 48 00 00 20 */ b lbl_800879AC +lbl_80087990: +/* 80087990 000848D0 54 80 02 7F */ clrlwi. r0, r4, 9 +/* 80087994 000848D4 41 82 00 0C */ beq lbl_800879A0 +/* 80087998 000848D8 38 00 00 05 */ li r0, 5 +/* 8008799C 000848DC 48 00 00 10 */ b lbl_800879AC +lbl_800879A0: +/* 800879A0 000848E0 38 00 00 03 */ li r0, 3 +/* 800879A4 000848E4 48 00 00 08 */ b lbl_800879AC +lbl_800879A8: +/* 800879A8 000848E8 38 00 00 04 */ li r0, 4 +lbl_800879AC: +/* 800879AC 000848EC 2C 00 00 03 */ cmpwi r0, 3 +/* 800879B0 000848F0 41 82 00 20 */ beq lbl_800879D0 +/* 800879B4 000848F4 40 80 00 10 */ bge lbl_800879C4 +/* 800879B8 000848F8 2C 00 00 01 */ cmpwi r0, 1 +/* 800879BC 000848FC 40 80 00 1C */ bge lbl_800879D8 +/* 800879C0 00084900 48 00 00 4C */ b lbl_80087A0C +lbl_800879C4: +/* 800879C4 00084904 2C 00 00 06 */ cmpwi r0, 6 +/* 800879C8 00084908 40 80 00 44 */ bge lbl_80087A0C +/* 800879CC 0008490C 48 00 00 14 */ b lbl_800879E0 +lbl_800879D0: +/* 800879D0 00084910 C0 22 8A 70 */ lfs f1, "@250"@sda21(r2) +/* 800879D4 00084914 48 00 00 3C */ b lbl_80087A10 +lbl_800879D8: +/* 800879D8 00084918 C0 22 8A 5C */ lfs f1, _nan@sda21(r2) +/* 800879DC 0008491C 48 00 00 34 */ b lbl_80087A10 +lbl_800879E0: +/* 800879E0 00084920 C0 02 8A 60 */ lfs f0, "@246"@sda21(r2) +/* 800879E4 00084924 FC 02 00 40 */ fcmpo cr0, f2, f0 +/* 800879E8 00084928 40 80 00 24 */ bge lbl_80087A0C +/* 800879EC 0008492C C0 02 8A 74 */ lfs f0, "@251"@sda21(r2) +/* 800879F0 00084930 FC 00 08 00 */ fcmpu cr0, f0, f1 +/* 800879F4 00084934 40 82 00 10 */ bne lbl_80087A04 +/* 800879F8 00084938 C0 02 8A 58 */ lfs f0, _inf@sda21(r2) +/* 800879FC 0008493C FC 20 00 50 */ fneg f1, f0 +/* 80087A00 00084940 48 00 00 10 */ b lbl_80087A10 +lbl_80087A04: +/* 80087A04 00084944 C0 22 8A 58 */ lfs f1, _inf@sda21(r2) +/* 80087A08 00084948 48 00 00 08 */ b lbl_80087A10 +lbl_80087A0C: +/* 80087A0C 0008494C C0 22 8A 60 */ lfs f1, "@246"@sda21(r2) +lbl_80087A10: +/* 80087A10 00084950 38 21 00 90 */ addi r1, r1, 0x90 +/* 80087A14 00084954 4E 80 00 20 */ blr + +.global expf +expf: +/* 80087A18 00084958 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 80087A1C 0008495C 3C 60 80 37 */ lis r3, __log2_F@ha +/* 80087A20 00084960 38 A3 1F A8 */ addi r5, r3, __log2_F@l +/* 80087A24 00084964 C0 02 8A 80 */ lfs f0, "@259"@sda21(r2) +/* 80087A28 00084968 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 80087A2C 0008496C 40 81 00 0C */ ble lbl_80087A38 +/* 80087A30 00084970 C0 22 8A 58 */ lfs f1, _inf@sda21(r2) +/* 80087A34 00084974 48 00 00 C4 */ b lbl_80087AF8 +lbl_80087A38: +/* 80087A38 00084978 C0 02 8A 84 */ lfs f0, "@260"@sda21(r2) +/* 80087A3C 0008497C FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 80087A40 00084980 40 80 00 0C */ bge lbl_80087A4C +/* 80087A44 00084984 C0 22 8A 60 */ lfs f1, "@246"@sda21(r2) +/* 80087A48 00084988 48 00 00 B0 */ b lbl_80087AF8 +lbl_80087A4C: +/* 80087A4C 0008498C FC 00 08 1E */ fctiwz f0, f1 +/* 80087A50 00084990 3C 60 80 37 */ lis r3, __two_to_log2e_m1_tI@ha +/* 80087A54 00084994 3C 80 43 30 */ lis r4, 0x4330 +/* 80087A58 00084998 C8 42 8A 78 */ lfd f2, "@253"@sda21(r2) +/* 80087A5C 0008499C C0 C2 8A 8C */ lfs f6, "@262"@sda21(r2) +/* 80087A60 000849A0 D8 01 00 20 */ stfd f0, 0x20(r1) +/* 80087A64 000849A4 38 03 1A 90 */ addi r0, r3, __two_to_log2e_m1_tI@l +/* 80087A68 000849A8 C0 E2 8A 88 */ lfs f7, "@261"@sda21(r2) +/* 80087A6C 000849AC 80 C1 00 24 */ lwz r6, 0x24(r1) +/* 80087A70 000849B0 6C C3 80 00 */ xoris r3, r6, 0x8000 +/* 80087A74 000849B4 90 61 00 1C */ stw r3, 0x1c(r1) +/* 80087A78 000849B8 38 C6 00 58 */ addi r6, r6, 0x58 +/* 80087A7C 000849BC 38 66 00 27 */ addi r3, r6, 0x27 +/* 80087A80 000849C0 90 81 00 18 */ stw r4, 0x18(r1) +/* 80087A84 000849C4 54 64 B8 10 */ slwi r4, r3, 0x17 +/* 80087A88 000849C8 54 C3 10 3A */ slwi r3, r6, 2 +/* 80087A8C 000849CC C8 01 00 18 */ lfd f0, 0x18(r1) +/* 80087A90 000849D0 7C 60 1A 14 */ add r3, r0, r3 +/* 80087A94 000849D4 90 81 00 10 */ stw r4, 0x10(r1) +/* 80087A98 000849D8 EC 00 10 28 */ fsubs f0, f0, f2 +/* 80087A9C 000849DC C0 A5 02 44 */ lfs f5, 0x244(r5) +/* 80087AA0 000849E0 C0 45 02 40 */ lfs f2, 0x240(r5) +/* 80087AA4 000849E4 ED 41 00 28 */ fsubs f10, f1, f0 +/* 80087AA8 000849E8 C0 05 02 3C */ lfs f0, 0x23c(r5) +/* 80087AAC 000849EC C0 85 02 38 */ lfs f4, 0x238(r5) +/* 80087AB0 000849F0 C0 65 02 34 */ lfs f3, 0x234(r5) +/* 80087AB4 000849F4 EC AA 11 7A */ fmadds f5, f10, f5, f2 +/* 80087AB8 000849F8 C0 45 02 30 */ lfs f2, 0x230(r5) +/* 80087ABC 000849FC C0 25 02 2C */ lfs f1, 0x22c(r5) +/* 80087AC0 00084A00 EC AA 01 7A */ fmadds f5, f10, f5, f0 +/* 80087AC4 00084A04 C0 05 02 28 */ lfs f0, 0x228(r5) +/* 80087AC8 00084A08 C1 01 00 10 */ lfs f8, 0x10(r1) +/* 80087ACC 00084A0C C1 23 00 00 */ lfs f9, 0(r3) +/* 80087AD0 00084A10 EC 8A 21 7A */ fmadds f4, f10, f5, f4 +/* 80087AD4 00084A14 EC 6A 19 3A */ fmadds f3, f10, f4, f3 +/* 80087AD8 00084A18 EC 4A 10 FA */ fmadds f2, f10, f3, f2 +/* 80087ADC 00084A1C EC 2A 08 BA */ fmadds f1, f10, f2, f1 +/* 80087AE0 00084A20 EC 0A 00 7A */ fmadds f0, f10, f1, f0 +/* 80087AE4 00084A24 EC 0A 00 32 */ fmuls f0, f10, f0 +/* 80087AE8 00084A28 EC 06 00 2A */ fadds f0, f6, f0 +/* 80087AEC 00084A2C EC 07 00 2A */ fadds f0, f7, f0 +/* 80087AF0 00084A30 EC 08 00 32 */ fmuls f0, f8, f0 +/* 80087AF4 00084A34 EC 29 00 32 */ fmuls f1, f9, f0 +lbl_80087AF8: +/* 80087AF8 00084A38 38 21 00 28 */ addi r1, r1, 0x28 +/* 80087AFC 00084A3C 4E 80 00 20 */ blr + +.section .rodata, "a" # 0x8036FFA0 - 0x803A8380 +.balign 8 +__log2_F: + .4byte 0xBEC00000 + .4byte 0xBEBA406C + .4byte 0xBEB48C35 + .4byte 0xBEAEE32E + .4byte 0xBEA9452D + .4byte 0xBEA3B205 + .4byte 0xBE9E298F + .4byte 0xBE98ABA0 + .4byte 0xBE933812 + .4byte 0xBE8DCEBD + .4byte 0xBE886F7B + .4byte 0xBE831A28 + .4byte 0xBE7B9D3C + .4byte 0xBE711973 + .4byte 0xBE66A8B1 + .4byte 0xBE5C4AB0 + .4byte 0xBE51FF2E + .4byte 0xBE47C5E9 + .4byte 0xBE3D9EA1 + .4byte 0xBE338918 + .4byte 0xBE29850F + .4byte 0xBE1F924A + .4byte 0xBE15B08E + .4byte 0xBE0BDFA1 + .4byte 0xBE021F4A + .4byte 0xBDF0DEA4 + .4byte 0xBDDD9F05 + .4byte 0xBDCA7F4A + .4byte 0xBDB77F0B + .4byte 0xBDA49DE0 + .4byte 0xBD91DB66 + .4byte 0xBD7E6E71 + .4byte 0xBD5961ED + .4byte 0xBD349081 + .4byte 0xBD0FF971 + .4byte 0xBCD7380E + .4byte 0xBC8EEF19 + .4byte 0xBC0E2D45 + .4byte 0x38256316 + .4byte 0x3C0E9C73 + .4byte 0x3C8DDD45 + .4byte 0x3CD4011D + .4byte 0x3D0CDD83 + .4byte 0x3D2F861E + .4byte 0x3D51FAFE + .4byte 0x3D743CBA + .4byte 0x3D8B25F6 + .4byte 0x3D9C1492 + .4byte 0x3DACEA7C + .4byte 0x3DBDA7FB + .4byte 0x3DCE4D54 + .4byte 0x3DDEDACE + .4byte 0x3DEF50AD + .4byte 0x3DFFAF33 + .4byte 0x3E07FB51 + .4byte 0x3E10139E + .4byte 0x3E1820A0 + .4byte 0x3E202276 + .4byte 0x3E28193F + .4byte 0x3E30051A + .4byte 0x3E37E624 + .4byte 0x3E3FBC7A + .4byte 0x3E47883A + .4byte 0x3E4F4981 + .4byte 0x3E570069 + .4byte 0x3E5EAD0F + .4byte 0x3E664F8D + .4byte 0x3E6DE7FF + .4byte 0x3E75767F + .4byte 0x3E7CFB27 + .4byte 0x3E823B08 + .4byte 0x3E85F3AA + .4byte 0x3E89A785 + .4byte 0x3E8D56A6 + .4byte 0x3E910118 + .4byte 0x3E94A6E9 + .4byte 0x3E984822 + .4byte 0x3E9BE4D1 + .4byte 0x3E9F7CFF + .4byte 0x3EA310B9 + .4byte 0x3EA6A009 + .4byte 0x3EAA2AFA + .4byte 0x3EADB197 + .4byte 0x3EB133EA + .4byte 0x3EB4B1FD + .4byte 0x3EB82BDC + .4byte 0x3EBBA190 + .4byte 0x3EBF1322 + .4byte 0x3EC2809D + .4byte 0x3EC5EA0B + .4byte 0x3EC94F75 + .4byte 0x3ECCB0E4 + .4byte 0x3ED00E61 + .4byte 0x3ED367F7 + .4byte 0x3ED6BDAD + .4byte 0x3EDA0F8D + .4byte 0x3EDD5DA0 + .4byte 0x3EE0A7EE + .4byte 0x3EE3EE7F + .4byte 0x3EE7315D + .4byte 0x3EEA708F + .4byte 0x3EEDAC1E + .4byte 0x3EF0E412 + .4byte 0x3EF41873 + .4byte 0x3EF74949 + .4byte 0x3EFA769B + .4byte 0x3EFDA072 + .4byte 0x3F00636A + .4byte 0x3F01F4E5 + .4byte 0x3F0384AD + .4byte 0x3F0512C7 + .4byte 0x3F069F35 + .4byte 0x3F0829FB + .4byte 0x3F09B31E + .4byte 0x3F0B3A9F + .4byte 0x3F0CC083 + .4byte 0x3F0E44CD + .4byte 0x3F0FC781 + .4byte 0x3F1148A1 + .4byte 0x3F12C832 + .4byte 0x3F144636 + .4byte 0x3F15C2B0 + .4byte 0x3F173DA4 + .4byte 0x3F18B714 + .4byte 0x3F1A2F04 + .4byte 0x3F1BA578 + .4byte 0x3F1D1A71 + .4byte 0x3F1E8DF2 + .4byte 0x3F200000 +__two_to_x: + .4byte 0x3F317218 + .4byte 0x3E75FDF0 + .4byte 0x3D635854 + .4byte 0x3C1D9561 + .4byte 0x3AAEBE2F + .4byte 0x3921805E + .4byte 0x3781E214 + .4byte 0x35B3C15F + .4byte 0x33DD30D7 +__exp_to_x$105: + .4byte 0x3F7FFFFE + .4byte 0x3EFFFFFF + .4byte 0x3E2AAB03 + .4byte 0x3D2AAAE6 + .4byte 0x3C0874AA + .4byte 0x3AB5F6D0 + .4byte 0x3956A4B8 + .4byte 0x37D5E715 + +.section .sdata2, "a" # 0x8040B460 - 0x80414020 +.balign 8 +__log2e_m1$localstatic0$__log2f__Ff: + .4byte 0x3ED20000 + .4byte 0x3D054765 +"@93": + .4byte 0xBF38AA80 +lbl_8040BEB4: + .4byte 0x3EF637A6 +_inf: + .4byte 0x7F800000 +_nan: + .4byte 0x7FFFFFFF +"@246": + .4byte 0 +"@247": + .4byte 0x3FB00000 +"@248": + .4byte 0x3F400000 +"@249": + .4byte 0x3E800000 +"@250": + .4byte 0x3F800000 +"@251": + .4byte 0x80000000 +"@253": + .4byte 0x43300000 + .4byte 0x80000000 +"@259": + .4byte 0x42B17218 +"@260": + .4byte 0xC2AEAC50 +"@261": + .4byte 0x3F7E0000 +"@262": + .4byte 0x3C000001 diff --git a/asm/MSL_C.PPCEABI.bare.H/inverse_trig.s b/asm/MSL_C.PPCEABI.bare.H/inverse_trig.s new file mode 100644 index 0000000..81f6f68 --- /dev/null +++ b/asm/MSL_C.PPCEABI.bare.H/inverse_trig.s @@ -0,0 +1,345 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global atanf +atanf: +/* 80086B4C 00083A8C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80086B50 00083A90 3C 60 80 37 */ lis r3, atan_coeff$96@ha +/* 80086B54 00083A94 38 83 19 C8 */ addi r4, r3, atan_coeff$96@l +/* 80086B58 00083A98 D0 21 00 08 */ stfs f1, 8(r1) +/* 80086B5C 00083A9C 38 C0 FF FF */ li r6, -1 +/* 80086B60 00083AA0 C0 02 8A 10 */ lfs f0, "@156"@sda21(r2) +/* 80086B64 00083AA4 38 E0 00 00 */ li r7, 0 +/* 80086B68 00083AA8 80 61 00 08 */ lwz r3, 8(r1) +/* 80086B6C 00083AAC 54 60 00 7E */ clrlwi r0, r3, 1 +/* 80086B70 00083AB0 90 01 00 08 */ stw r0, 8(r1) +/* 80086B74 00083AB4 54 68 00 00 */ rlwinm r8, r3, 0, 0, 0 +/* 80086B78 00083AB8 C0 41 00 08 */ lfs f2, 8(r1) +/* 80086B7C 00083ABC FC 02 00 40 */ fcmpo cr0, f2, f0 +/* 80086B80 00083AC0 4C 41 13 82 */ cror 2, 1, 2 +/* 80086B84 00083AC4 40 82 00 18 */ bne lbl_80086B9C +/* 80086B88 00083AC8 C0 02 8A 14 */ lfs f0, "@157"@sda21(r2) +/* 80086B8C 00083ACC 38 E0 00 01 */ li r7, 1 +/* 80086B90 00083AD0 EC 00 10 24 */ fdivs f0, f0, f2 +/* 80086B94 00083AD4 D0 01 00 0C */ stfs f0, 0xc(r1) +/* 80086B98 00083AD8 48 00 00 F4 */ b lbl_80086C8C +lbl_80086B9C: +/* 80086B9C 00083ADC C0 02 8A 18 */ lfs f0, "@158"@sda21(r2) +/* 80086BA0 00083AE0 FC 00 10 40 */ fcmpo cr0, f0, f2 +/* 80086BA4 00083AE4 40 80 00 E4 */ bge lbl_80086C88 +/* 80086BA8 00083AE8 80 A1 00 08 */ lwz r5, 8(r1) +/* 80086BAC 00083AEC 3C 00 3F 80 */ lis r0, 0x3f80 +/* 80086BB0 00083AF0 38 C0 00 00 */ li r6, 0 +/* 80086BB4 00083AF4 54 A3 00 50 */ rlwinm r3, r5, 0, 1, 8 +/* 80086BB8 00083AF8 7C 03 00 00 */ cmpw r3, r0 +/* 80086BBC 00083AFC 41 82 00 54 */ beq lbl_80086C10 +/* 80086BC0 00083B00 40 80 00 14 */ bge lbl_80086BD4 +/* 80086BC4 00083B04 3C 00 3F 00 */ lis r0, 0x3f00 +/* 80086BC8 00083B08 7C 03 00 00 */ cmpw r3, r0 +/* 80086BCC 00083B0C 41 82 00 18 */ beq lbl_80086BE4 +/* 80086BD0 00083B10 48 00 00 74 */ b lbl_80086C44 +lbl_80086BD4: +/* 80086BD4 00083B14 3C 00 40 00 */ lis r0, 0x4000 +/* 80086BD8 00083B18 7C 03 00 00 */ cmpw r3, r0 +/* 80086BDC 00083B1C 41 82 00 64 */ beq lbl_80086C40 +/* 80086BE0 00083B20 48 00 00 64 */ b lbl_80086C44 +lbl_80086BE4: +/* 80086BE4 00083B24 3C 60 3F 09 */ lis r3, 0x3F08D5B9@ha +/* 80086BE8 00083B28 38 03 D5 B9 */ addi r0, r3, 0x3F08D5B9@l +/* 80086BEC 00083B2C 7C 05 00 00 */ cmpw r5, r0 +/* 80086BF0 00083B30 41 80 00 08 */ blt lbl_80086BF8 +/* 80086BF4 00083B34 38 C0 00 01 */ li r6, 1 +lbl_80086BF8: +/* 80086BF8 00083B38 3C 60 3F 52 */ lis r3, 0x3F521801@ha +/* 80086BFC 00083B3C 38 03 18 01 */ addi r0, r3, 0x3F521801@l +/* 80086C00 00083B40 7C 05 00 00 */ cmpw r5, r0 +/* 80086C04 00083B44 41 80 00 40 */ blt lbl_80086C44 +/* 80086C08 00083B48 38 C6 00 01 */ addi r6, r6, 1 +/* 80086C0C 00083B4C 48 00 00 38 */ b lbl_80086C44 +lbl_80086C10: +/* 80086C10 00083B50 3C 60 3F 9C */ lis r3, 0x3F9BF7EC@ha +/* 80086C14 00083B54 38 03 F7 EC */ addi r0, r3, 0x3F9BF7EC@l +/* 80086C18 00083B58 7C 05 00 00 */ cmpw r5, r0 +/* 80086C1C 00083B5C 38 C0 00 02 */ li r6, 2 +/* 80086C20 00083B60 41 80 00 08 */ blt lbl_80086C28 +/* 80086C24 00083B64 38 C0 00 03 */ li r6, 3 +lbl_80086C28: +/* 80086C28 00083B68 3C 60 3F EF */ lis r3, 0x3FEF789E@ha +/* 80086C2C 00083B6C 38 03 78 9E */ addi r0, r3, 0x3FEF789E@l +/* 80086C30 00083B70 7C 05 00 00 */ cmpw r5, r0 +/* 80086C34 00083B74 41 80 00 10 */ blt lbl_80086C44 +/* 80086C38 00083B78 38 C6 00 01 */ addi r6, r6, 1 +/* 80086C3C 00083B7C 48 00 00 08 */ b lbl_80086C44 +lbl_80086C40: +/* 80086C40 00083B80 38 C0 00 04 */ li r6, 4 +lbl_80086C44: +/* 80086C44 00083B84 54 C0 10 3A */ slwi r0, r6, 2 +/* 80086C48 00083B88 C0 22 8A 14 */ lfs f1, "@157"@sda21(r2) +/* 80086C4C 00083B8C 7C 64 02 14 */ add r3, r4, r0 +/* 80086C50 00083B90 C0 63 00 9C */ lfs f3, 0x9c(r3) +/* 80086C54 00083B94 C0 83 00 84 */ lfs f4, 0x84(r3) +/* 80086C58 00083B98 EC 02 18 2A */ fadds f0, f2, f3 +/* 80086C5C 00083B9C EC 04 00 2A */ fadds f0, f4, f0 +/* 80086C60 00083BA0 EC 01 00 24 */ fdivs f0, f1, f0 +/* 80086C64 00083BA4 D0 01 00 0C */ stfs f0, 0xc(r1) +/* 80086C68 00083BA8 C0 41 00 0C */ lfs f2, 0xc(r1) +/* 80086C6C 00083BAC C0 23 00 1C */ lfs f1, 0x1c(r3) +/* 80086C70 00083BB0 C0 03 00 34 */ lfs f0, 0x34(r3) +/* 80086C74 00083BB4 EC 22 20 7C */ fnmsubs f1, f2, f1, f4 +/* 80086C78 00083BB8 EC 02 18 3C */ fnmsubs f0, f2, f0, f3 +/* 80086C7C 00083BBC EC 01 00 2A */ fadds f0, f1, f0 +/* 80086C80 00083BC0 D0 01 00 0C */ stfs f0, 0xc(r1) +/* 80086C84 00083BC4 48 00 00 08 */ b lbl_80086C8C +lbl_80086C88: +/* 80086C88 00083BC8 D0 41 00 0C */ stfs f2, 0xc(r1) +lbl_80086C8C: +/* 80086C8C 00083BCC C0 A1 00 0C */ lfs f5, 0xc(r1) +/* 80086C90 00083BD0 54 C0 10 3A */ slwi r0, r6, 2 +/* 80086C94 00083BD4 C0 44 00 18 */ lfs f2, 0x18(r4) +/* 80086C98 00083BD8 7C 64 02 14 */ add r3, r4, r0 +/* 80086C9C 00083BDC EC C5 01 72 */ fmuls f6, f5, f5 +/* 80086CA0 00083BE0 C0 24 00 14 */ lfs f1, 0x14(r4) +/* 80086CA4 00083BE4 2C 07 00 00 */ cmpwi r7, 0 +/* 80086CA8 00083BE8 C0 04 00 10 */ lfs f0, 0x10(r4) +/* 80086CAC 00083BEC EC 66 08 BA */ fmadds f3, f6, f2, f1 +/* 80086CB0 00083BF0 C0 44 00 0C */ lfs f2, 0xc(r4) +/* 80086CB4 00083BF4 EC 85 01 B2 */ fmuls f4, f5, f6 +/* 80086CB8 00083BF8 C0 24 00 08 */ lfs f1, 8(r4) +/* 80086CBC 00083BFC EC 66 00 FA */ fmadds f3, f6, f3, f0 +/* 80086CC0 00083C00 C0 04 00 04 */ lfs f0, 4(r4) +/* 80086CC4 00083C04 EC 46 10 FA */ fmadds f2, f6, f3, f2 +/* 80086CC8 00083C08 EC 26 08 BA */ fmadds f1, f6, f2, f1 +/* 80086CCC 00083C0C EC 06 00 7A */ fmadds f0, f6, f1, f0 +/* 80086CD0 00083C10 EC 04 28 3A */ fmadds f0, f4, f0, f5 +/* 80086CD4 00083C14 D0 01 00 0C */ stfs f0, 0xc(r1) +/* 80086CD8 00083C18 C0 21 00 0C */ lfs f1, 0xc(r1) +/* 80086CDC 00083C1C C0 03 00 6C */ lfs f0, 0x6c(r3) +/* 80086CE0 00083C20 EC 01 00 2A */ fadds f0, f1, f0 +/* 80086CE4 00083C24 D0 01 00 0C */ stfs f0, 0xc(r1) +/* 80086CE8 00083C28 C0 21 00 0C */ lfs f1, 0xc(r1) +/* 80086CEC 00083C2C C0 03 00 50 */ lfs f0, 0x50(r3) +/* 80086CF0 00083C30 EC 01 00 2A */ fadds f0, f1, f0 +/* 80086CF4 00083C34 D0 01 00 0C */ stfs f0, 0xc(r1) +/* 80086CF8 00083C38 41 82 00 30 */ beq lbl_80086D28 +/* 80086CFC 00083C3C C0 21 00 0C */ lfs f1, 0xc(r1) +/* 80086D00 00083C40 2C 08 00 00 */ cmpwi r8, 0 +/* 80086D04 00083C44 C0 02 8A 1C */ lfs f0, "@159"@sda21(r2) +/* 80086D08 00083C48 EC 01 00 28 */ fsubs f0, f1, f0 +/* 80086D0C 00083C4C D0 01 00 0C */ stfs f0, 0xc(r1) +/* 80086D10 00083C50 41 82 00 0C */ beq lbl_80086D1C +/* 80086D14 00083C54 C0 21 00 0C */ lfs f1, 0xc(r1) +/* 80086D18 00083C58 48 00 00 20 */ b lbl_80086D38 +lbl_80086D1C: +/* 80086D1C 00083C5C C0 01 00 0C */ lfs f0, 0xc(r1) +/* 80086D20 00083C60 FC 20 00 50 */ fneg f1, f0 +/* 80086D24 00083C64 48 00 00 14 */ b lbl_80086D38 +lbl_80086D28: +/* 80086D28 00083C68 80 01 00 0C */ lwz r0, 0xc(r1) +/* 80086D2C 00083C6C 7C 00 43 78 */ or r0, r0, r8 +/* 80086D30 00083C70 90 01 00 0C */ stw r0, 0xc(r1) +/* 80086D34 00083C74 C0 21 00 0C */ lfs f1, 0xc(r1) +lbl_80086D38: +/* 80086D38 00083C78 38 21 00 10 */ addi r1, r1, 0x10 +/* 80086D3C 00083C7C 4E 80 00 20 */ blr + +.global atan__Ff +atan__Ff: +/* 80086D40 00083C80 7C 08 02 A6 */ mflr r0 +/* 80086D44 00083C84 90 01 00 04 */ stw r0, 4(r1) +/* 80086D48 00083C88 94 21 FF F8 */ stwu r1, -8(r1) +/* 80086D4C 00083C8C 4B FF FE 01 */ bl atanf +/* 80086D50 00083C90 80 01 00 0C */ lwz r0, 0xc(r1) +/* 80086D54 00083C94 38 21 00 08 */ addi r1, r1, 8 +/* 80086D58 00083C98 7C 08 03 A6 */ mtlr r0 +/* 80086D5C 00083C9C 4E 80 00 20 */ blr + +.global _inv_sqrtf +_inv_sqrtf: +/* 80086D60 00083CA0 C0 02 8A 20 */ lfs f0, "@168"@sda21(r2) +/* 80086D64 00083CA4 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 80086D68 00083CA8 40 81 00 48 */ ble lbl_80086DB0 +/* 80086D6C 00083CAC FC 40 08 34 */ frsqrte f2, f1 +/* 80086D70 00083CB0 C0 82 8A 24 */ lfs f4, "@169"@sda21(r2) +/* 80086D74 00083CB4 C0 62 8A 28 */ lfs f3, "@170"@sda21(r2) +/* 80086D78 00083CB8 FC 40 10 18 */ frsp f2, f2 +/* 80086D7C 00083CBC EC 02 00 B2 */ fmuls f0, f2, f2 +/* 80086D80 00083CC0 EC 44 00 B2 */ fmuls f2, f4, f2 +/* 80086D84 00083CC4 EC 01 18 3C */ fnmsubs f0, f1, f0, f3 +/* 80086D88 00083CC8 EC 42 00 32 */ fmuls f2, f2, f0 +/* 80086D8C 00083CCC EC 02 00 B2 */ fmuls f0, f2, f2 +/* 80086D90 00083CD0 EC 44 00 B2 */ fmuls f2, f4, f2 +/* 80086D94 00083CD4 EC 01 18 3C */ fnmsubs f0, f1, f0, f3 +/* 80086D98 00083CD8 EC 42 00 32 */ fmuls f2, f2, f0 +/* 80086D9C 00083CDC EC 02 00 B2 */ fmuls f0, f2, f2 +/* 80086DA0 00083CE0 EC 44 00 B2 */ fmuls f2, f4, f2 +/* 80086DA4 00083CE4 EC 01 18 3C */ fnmsubs f0, f1, f0, f3 +/* 80086DA8 00083CE8 EC 22 00 32 */ fmuls f1, f2, f0 +/* 80086DAC 00083CEC 4E 80 00 20 */ blr +lbl_80086DB0: +/* 80086DB0 00083CF0 FC 01 00 00 */ fcmpu cr0, f1, f0 +/* 80086DB4 00083CF4 41 82 00 10 */ beq lbl_80086DC4 +/* 80086DB8 00083CF8 3C 60 80 3B */ lis r3, __float_nan@ha +/* 80086DBC 00083CFC C0 23 EF 40 */ lfs f1, __float_nan@l(r3) +/* 80086DC0 00083D00 4E 80 00 20 */ blr +lbl_80086DC4: +/* 80086DC4 00083D04 3C 60 80 3B */ lis r3, __float_huge@ha +/* 80086DC8 00083D08 C0 23 EF 44 */ lfs f1, __float_huge@l(r3) +/* 80086DCC 00083D0C 4E 80 00 20 */ blr + +.global acosf +acosf: +/* 80086DD0 00083D10 7C 08 02 A6 */ mflr r0 +/* 80086DD4 00083D14 90 01 00 04 */ stw r0, 4(r1) +/* 80086DD8 00083D18 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 80086DDC 00083D1C DB E1 00 10 */ stfd f31, 0x10(r1) +/* 80086DE0 00083D20 FF E0 08 90 */ fmr f31, f1 +/* 80086DE4 00083D24 C0 02 8A 14 */ lfs f0, "@157"@sda21(r2) +/* 80086DE8 00083D28 EC 3F 07 FC */ fnmsubs f1, f31, f31, f0 +/* 80086DEC 00083D2C 4B FF FF 75 */ bl _inv_sqrtf +/* 80086DF0 00083D30 EC 3F 00 72 */ fmuls f1, f31, f1 +/* 80086DF4 00083D34 4B FF FF 4D */ bl atan__Ff +/* 80086DF8 00083D38 C0 02 8A 1C */ lfs f0, "@159"@sda21(r2) +/* 80086DFC 00083D3C 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 80086E00 00083D40 EC 20 08 28 */ fsubs f1, f0, f1 +/* 80086E04 00083D44 CB E1 00 10 */ lfd f31, 0x10(r1) +/* 80086E08 00083D48 7C 08 03 A6 */ mtlr r0 +/* 80086E0C 00083D4C 38 21 00 18 */ addi r1, r1, 0x18 +/* 80086E10 00083D50 4E 80 00 20 */ blr + +.global atan2f +atan2f: +/* 80086E14 00083D54 7C 08 02 A6 */ mflr r0 +/* 80086E18 00083D58 90 01 00 04 */ stw r0, 4(r1) +/* 80086E1C 00083D5C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80086E20 00083D60 D0 21 00 08 */ stfs f1, 8(r1) +/* 80086E24 00083D64 D0 41 00 0C */ stfs f2, 0xc(r1) +/* 80086E28 00083D68 80 01 00 08 */ lwz r0, 8(r1) +/* 80086E2C 00083D6C 80 61 00 0C */ lwz r3, 0xc(r1) +/* 80086E30 00083D70 54 04 00 00 */ rlwinm r4, r0, 0, 0, 0 +/* 80086E34 00083D74 54 60 00 00 */ rlwinm r0, r3, 0, 0, 0 +/* 80086E38 00083D78 7C 00 20 00 */ cmpw r0, r4 +/* 80086E3C 00083D7C 40 82 00 50 */ bne lbl_80086E8C +/* 80086E40 00083D80 2C 00 00 00 */ cmpwi r0, 0 +/* 80086E44 00083D84 41 82 00 20 */ beq lbl_80086E64 +/* 80086E48 00083D88 C0 21 00 08 */ lfs f1, 8(r1) +/* 80086E4C 00083D8C C0 01 00 0C */ lfs f0, 0xc(r1) +/* 80086E50 00083D90 EC 21 00 24 */ fdivs f1, f1, f0 +/* 80086E54 00083D94 4B FF FC F9 */ bl atanf +/* 80086E58 00083D98 C0 02 8A 2C */ lfs f0, "@188"@sda21(r2) +/* 80086E5C 00083D9C EC 21 00 28 */ fsubs f1, f1, f0 +/* 80086E60 00083DA0 48 00 00 7C */ b lbl_80086EDC +lbl_80086E64: +/* 80086E64 00083DA4 C0 21 00 0C */ lfs f1, 0xc(r1) +/* 80086E68 00083DA8 C0 02 8A 20 */ lfs f0, "@168"@sda21(r2) +/* 80086E6C 00083DAC FC 01 00 00 */ fcmpu cr0, f1, f0 +/* 80086E70 00083DB0 41 82 00 14 */ beq lbl_80086E84 +/* 80086E74 00083DB4 C0 01 00 08 */ lfs f0, 8(r1) +/* 80086E78 00083DB8 EC 20 08 24 */ fdivs f1, f0, f1 +/* 80086E7C 00083DBC 4B FF FC D1 */ bl atanf +/* 80086E80 00083DC0 48 00 00 5C */ b lbl_80086EDC +lbl_80086E84: +/* 80086E84 00083DC4 C0 22 8A 1C */ lfs f1, "@159"@sda21(r2) +/* 80086E88 00083DC8 48 00 00 54 */ b lbl_80086EDC +lbl_80086E8C: +/* 80086E8C 00083DCC C0 21 00 0C */ lfs f1, 0xc(r1) +/* 80086E90 00083DD0 C0 02 8A 20 */ lfs f0, "@168"@sda21(r2) +/* 80086E94 00083DD4 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 80086E98 00083DD8 40 80 00 1C */ bge lbl_80086EB4 +/* 80086E9C 00083DDC C0 01 00 08 */ lfs f0, 8(r1) +/* 80086EA0 00083DE0 EC 20 08 24 */ fdivs f1, f0, f1 +/* 80086EA4 00083DE4 4B FF FC A9 */ bl atanf +/* 80086EA8 00083DE8 C0 02 8A 2C */ lfs f0, "@188"@sda21(r2) +/* 80086EAC 00083DEC EC 20 08 2A */ fadds f1, f0, f1 +/* 80086EB0 00083DF0 48 00 00 2C */ b lbl_80086EDC +lbl_80086EB4: +/* 80086EB4 00083DF4 FC 01 00 00 */ fcmpu cr0, f1, f0 +/* 80086EB8 00083DF8 41 82 00 14 */ beq lbl_80086ECC +/* 80086EBC 00083DFC C0 01 00 08 */ lfs f0, 8(r1) +/* 80086EC0 00083E00 EC 20 08 24 */ fdivs f1, f0, f1 +/* 80086EC4 00083E04 4B FF FC 89 */ bl atanf +/* 80086EC8 00083E08 48 00 00 14 */ b lbl_80086EDC +lbl_80086ECC: +/* 80086ECC 00083E0C 3C 64 3F C9 */ addis r3, r4, 0x3fc9 +/* 80086ED0 00083E10 38 03 0F DB */ addi r0, r3, 0xfdb +/* 80086ED4 00083E14 90 01 00 08 */ stw r0, 8(r1) +/* 80086ED8 00083E18 C0 21 00 08 */ lfs f1, 8(r1) +lbl_80086EDC: +/* 80086EDC 00083E1C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80086EE0 00083E20 38 21 00 10 */ addi r1, r1, 0x10 +/* 80086EE4 00083E24 7C 08 03 A6 */ mtlr r0 +/* 80086EE8 00083E28 4E 80 00 20 */ blr + +.section .rodata, "a" # 0x8036FFA0 - 0x803A8380 +.balign 8 +atan_coeff$96: + .4byte 0x3F800000 + .4byte 0xBEAAAAAA + .4byte 0x3E4CCC81 + .4byte 0xBE123E7D + .4byte 0x3DE21F95 + .4byte 0xBDAD417C + .4byte 0x3D41186D +onep_one_over_xisqr_hi$97: + .4byte 0x40DA826B + .asciz "@OYX@" + .balign 4 + .4byte 0x3FB925AB + .4byte 0x3F95F61A + .4byte 0x3F851081 +onep_one_over_xisqr_lo$98: + .4byte 0x36EF692F + .4byte 0x355C1DF9 + .4byte 0 + .4byte 0x35291D45 + .4byte 0 + .4byte 0 +atan_xi_hi$99: + .4byte 0 + .4byte 0x3EC90EAA + .4byte 0x3F16CBE4 + .4byte 0x3F490FDA + .4byte 0x3F7B53C5 + .4byte 0x3F96CBE2 + .4byte 0x3FAFEDD9 +atan_xi_lo$100: + .4byte 0 + .4byte 0x37185D99 + .4byte 0x32C59189 + .4byte 0x33874A9E + .4byte 0x353CFA83 + .4byte 0x348637BD + .4byte 0x35541063 +one_over_xi_hi$101: + .4byte 0x401A8277 + .4byte 0x3FBF90C7 + .4byte 0x3F800000 + .4byte 0x3F2B0DC1 + .4byte 0x3ED413CD + .4byte 0x3E4BAFAF +one_over_xi_lo$102: + .4byte 0x3516DC59 + .4byte 0 + .4byte 0 + .4byte 0 + .4byte 0 + .4byte 0 + .4byte 0 + +.section .sdata2, "a" # 0x8040B460 - 0x80414020 +.balign 8 +"@156": + .4byte 0x401A827A +"@157": + .4byte 0x3F800000 +"@158": + .4byte 0x3ED413CD +"@159": + .4byte 0x3FC90FDB +"@168": + .4byte 0 +"@169": + .4byte 0x3F000000 +"@170": + .4byte 0x40400000 +"@188": + .4byte 0x40490FDB diff --git a/asm/MSL_C.PPCEABI.bare.H/printf.s b/asm/MSL_C.PPCEABI.bare.H/printf.s new file mode 100644 index 0000000..d6540b7 --- /dev/null +++ b/asm/MSL_C.PPCEABI.bare.H/printf.s @@ -0,0 +1,2156 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global sprintf +sprintf: +/* 80083FF0 00080F30 7C 08 02 A6 */ mflr r0 +/* 80083FF4 00080F34 90 01 00 04 */ stw r0, 4(r1) +/* 80083FF8 00080F38 94 21 FF 70 */ stwu r1, -0x90(r1) +/* 80083FFC 00080F3C 93 E1 00 8C */ stw r31, 0x8c(r1) +/* 80084000 00080F40 93 C1 00 88 */ stw r30, 0x88(r1) +/* 80084004 00080F44 40 86 00 24 */ bne cr1, lbl_80084028 +/* 80084008 00080F48 D8 21 00 28 */ stfd f1, 0x28(r1) +/* 8008400C 00080F4C D8 41 00 30 */ stfd f2, 0x30(r1) +/* 80084010 00080F50 D8 61 00 38 */ stfd f3, 0x38(r1) +/* 80084014 00080F54 D8 81 00 40 */ stfd f4, 0x40(r1) +/* 80084018 00080F58 D8 A1 00 48 */ stfd f5, 0x48(r1) +/* 8008401C 00080F5C D8 C1 00 50 */ stfd f6, 0x50(r1) +/* 80084020 00080F60 D8 E1 00 58 */ stfd f7, 0x58(r1) +/* 80084024 00080F64 D9 01 00 60 */ stfd f8, 0x60(r1) +lbl_80084028: +/* 80084028 00080F68 90 61 00 08 */ stw r3, 8(r1) +/* 8008402C 00080F6C 3C 00 02 00 */ lis r0, 0x200 +/* 80084030 00080F70 3B C3 00 00 */ addi r30, r3, 0 +/* 80084034 00080F74 90 81 00 0C */ stw r4, 0xc(r1) +/* 80084038 00080F78 3B E0 FF FF */ li r31, -1 +/* 8008403C 00080F7C 90 A1 00 10 */ stw r5, 0x10(r1) +/* 80084040 00080F80 3C A0 80 08 */ lis r5, __StringWrite@ha +/* 80084044 00080F84 38 65 42 80 */ addi r3, r5, __StringWrite@l +/* 80084048 00080F88 90 C1 00 14 */ stw r6, 0x14(r1) +/* 8008404C 00080F8C 38 A4 00 00 */ addi r5, r4, 0 +/* 80084050 00080F90 38 C1 00 7C */ addi r6, r1, 0x7c +/* 80084054 00080F94 90 E1 00 18 */ stw r7, 0x18(r1) +/* 80084058 00080F98 38 81 00 70 */ addi r4, r1, 0x70 +/* 8008405C 00080F9C 91 01 00 1C */ stw r8, 0x1c(r1) +/* 80084060 00080FA0 91 21 00 20 */ stw r9, 0x20(r1) +/* 80084064 00080FA4 91 41 00 24 */ stw r10, 0x24(r1) +/* 80084068 00080FA8 90 01 00 7C */ stw r0, 0x7c(r1) +/* 8008406C 00080FAC 38 01 00 98 */ addi r0, r1, 0x98 +/* 80084070 00080FB0 90 01 00 80 */ stw r0, 0x80(r1) +/* 80084074 00080FB4 38 01 00 08 */ addi r0, r1, 8 +/* 80084078 00080FB8 90 01 00 84 */ stw r0, 0x84(r1) +/* 8008407C 00080FBC 38 00 00 00 */ li r0, 0 +/* 80084080 00080FC0 93 C1 00 70 */ stw r30, 0x70(r1) +/* 80084084 00080FC4 93 E1 00 74 */ stw r31, 0x74(r1) +/* 80084088 00080FC8 90 01 00 78 */ stw r0, 0x78(r1) +/* 8008408C 00080FCC 48 00 02 B9 */ bl __pformatter +/* 80084090 00080FD0 7C 03 F8 40 */ cmplw r3, r31 +/* 80084094 00080FD4 40 80 00 0C */ bge lbl_800840A0 +/* 80084098 00080FD8 7C 64 1B 78 */ mr r4, r3 +/* 8008409C 00080FDC 48 00 00 08 */ b lbl_800840A4 +lbl_800840A0: +/* 800840A0 00080FE0 38 80 FF FE */ li r4, -2 +lbl_800840A4: +/* 800840A4 00080FE4 38 00 00 00 */ li r0, 0 +/* 800840A8 00080FE8 7C 1E 21 AE */ stbx r0, r30, r4 +/* 800840AC 00080FEC 80 01 00 94 */ lwz r0, 0x94(r1) +/* 800840B0 00080FF0 83 E1 00 8C */ lwz r31, 0x8c(r1) +/* 800840B4 00080FF4 83 C1 00 88 */ lwz r30, 0x88(r1) +/* 800840B8 00080FF8 7C 08 03 A6 */ mtlr r0 +/* 800840BC 00080FFC 38 21 00 90 */ addi r1, r1, 0x90 +/* 800840C0 00081000 4E 80 00 20 */ blr + +.global snprintf +snprintf: +/* 800840C4 00081004 7C 08 02 A6 */ mflr r0 +/* 800840C8 00081008 90 01 00 04 */ stw r0, 4(r1) +/* 800840CC 0008100C 94 21 FF 68 */ stwu r1, -0x98(r1) +/* 800840D0 00081010 93 E1 00 94 */ stw r31, 0x94(r1) +/* 800840D4 00081014 93 C1 00 90 */ stw r30, 0x90(r1) +/* 800840D8 00081018 40 86 00 24 */ bne cr1, lbl_800840FC +/* 800840DC 0008101C D8 21 00 28 */ stfd f1, 0x28(r1) +/* 800840E0 00081020 D8 41 00 30 */ stfd f2, 0x30(r1) +/* 800840E4 00081024 D8 61 00 38 */ stfd f3, 0x38(r1) +/* 800840E8 00081028 D8 81 00 40 */ stfd f4, 0x40(r1) +/* 800840EC 0008102C D8 A1 00 48 */ stfd f5, 0x48(r1) +/* 800840F0 00081030 D8 C1 00 50 */ stfd f6, 0x50(r1) +/* 800840F4 00081034 D8 E1 00 58 */ stfd f7, 0x58(r1) +/* 800840F8 00081038 D9 01 00 60 */ stfd f8, 0x60(r1) +lbl_800840FC: +/* 800840FC 0008103C 90 61 00 08 */ stw r3, 8(r1) +/* 80084100 00081040 3C 00 03 00 */ lis r0, 0x300 +/* 80084104 00081044 7C 7E 1B 78 */ mr r30, r3 +/* 80084108 00081048 90 81 00 0C */ stw r4, 0xc(r1) +/* 8008410C 0008104C 3B E4 00 00 */ addi r31, r4, 0 +/* 80084110 00081050 3C 80 80 08 */ lis r4, __StringWrite@ha +/* 80084114 00081054 90 A1 00 10 */ stw r5, 0x10(r1) +/* 80084118 00081058 38 64 42 80 */ addi r3, r4, __StringWrite@l +/* 8008411C 0008105C 38 81 00 74 */ addi r4, r1, 0x74 +/* 80084120 00081060 90 C1 00 14 */ stw r6, 0x14(r1) +/* 80084124 00081064 38 C1 00 80 */ addi r6, r1, 0x80 +/* 80084128 00081068 90 E1 00 18 */ stw r7, 0x18(r1) +/* 8008412C 0008106C 91 01 00 1C */ stw r8, 0x1c(r1) +/* 80084130 00081070 91 21 00 20 */ stw r9, 0x20(r1) +/* 80084134 00081074 91 41 00 24 */ stw r10, 0x24(r1) +/* 80084138 00081078 90 01 00 80 */ stw r0, 0x80(r1) +/* 8008413C 0008107C 38 01 00 A0 */ addi r0, r1, 0xa0 +/* 80084140 00081080 90 01 00 84 */ stw r0, 0x84(r1) +/* 80084144 00081084 38 01 00 08 */ addi r0, r1, 8 +/* 80084148 00081088 90 01 00 88 */ stw r0, 0x88(r1) +/* 8008414C 0008108C 38 00 00 00 */ li r0, 0 +/* 80084150 00081090 93 C1 00 74 */ stw r30, 0x74(r1) +/* 80084154 00081094 93 E1 00 78 */ stw r31, 0x78(r1) +/* 80084158 00081098 90 01 00 7C */ stw r0, 0x7c(r1) +/* 8008415C 0008109C 48 00 01 E9 */ bl __pformatter +/* 80084160 000810A0 7C 03 F8 40 */ cmplw r3, r31 +/* 80084164 000810A4 40 80 00 0C */ bge lbl_80084170 +/* 80084168 000810A8 7C 64 1B 78 */ mr r4, r3 +/* 8008416C 000810AC 48 00 00 08 */ b lbl_80084174 +lbl_80084170: +/* 80084170 000810B0 38 9F FF FF */ addi r4, r31, -1 +lbl_80084174: +/* 80084174 000810B4 38 00 00 00 */ li r0, 0 +/* 80084178 000810B8 7C 1E 21 AE */ stbx r0, r30, r4 +/* 8008417C 000810BC 80 01 00 9C */ lwz r0, 0x9c(r1) +/* 80084180 000810C0 83 E1 00 94 */ lwz r31, 0x94(r1) +/* 80084184 000810C4 83 C1 00 90 */ lwz r30, 0x90(r1) +/* 80084188 000810C8 7C 08 03 A6 */ mtlr r0 +/* 8008418C 000810CC 38 21 00 98 */ addi r1, r1, 0x98 +/* 80084190 000810D0 4E 80 00 20 */ blr + +.global vsnprintf +vsnprintf: +/* 80084194 000810D4 7C 08 02 A6 */ mflr r0 +/* 80084198 000810D8 90 01 00 04 */ stw r0, 4(r1) +/* 8008419C 000810DC 38 00 00 00 */ li r0, 0 +/* 800841A0 000810E0 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 800841A4 000810E4 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 800841A8 000810E8 3B E4 00 00 */ addi r31, r4, 0 +/* 800841AC 000810EC 38 81 00 18 */ addi r4, r1, 0x18 +/* 800841B0 000810F0 93 C1 00 28 */ stw r30, 0x28(r1) +/* 800841B4 000810F4 7C 7E 1B 78 */ mr r30, r3 +/* 800841B8 000810F8 3C 60 80 08 */ lis r3, __StringWrite@ha +/* 800841BC 000810FC 93 C1 00 18 */ stw r30, 0x18(r1) +/* 800841C0 00081100 38 63 42 80 */ addi r3, r3, __StringWrite@l +/* 800841C4 00081104 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 800841C8 00081108 90 01 00 20 */ stw r0, 0x20(r1) +/* 800841CC 0008110C 48 00 01 79 */ bl __pformatter +/* 800841D0 00081110 7C 03 F8 40 */ cmplw r3, r31 +/* 800841D4 00081114 40 80 00 0C */ bge lbl_800841E0 +/* 800841D8 00081118 7C 64 1B 78 */ mr r4, r3 +/* 800841DC 0008111C 48 00 00 08 */ b lbl_800841E4 +lbl_800841E0: +/* 800841E0 00081120 38 9F FF FF */ addi r4, r31, -1 +lbl_800841E4: +/* 800841E4 00081124 38 00 00 00 */ li r0, 0 +/* 800841E8 00081128 7C 1E 21 AE */ stbx r0, r30, r4 +/* 800841EC 0008112C 80 01 00 34 */ lwz r0, 0x34(r1) +/* 800841F0 00081130 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 800841F4 00081134 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 800841F8 00081138 7C 08 03 A6 */ mtlr r0 +/* 800841FC 0008113C 38 21 00 30 */ addi r1, r1, 0x30 +/* 80084200 00081140 4E 80 00 20 */ blr + +.global vprintf +vprintf: +/* 80084204 00081144 7C 08 02 A6 */ mflr r0 +/* 80084208 00081148 3C A0 80 3B */ lis r5, __files@ha +/* 8008420C 0008114C 90 01 00 04 */ stw r0, 4(r1) +/* 80084210 00081150 38 A5 EC 00 */ addi r5, r5, __files@l +/* 80084214 00081154 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80084218 00081158 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8008421C 0008115C 3B E5 00 48 */ addi r31, r5, 0x48 +/* 80084220 00081160 93 C1 00 18 */ stw r30, 0x18(r1) +/* 80084224 00081164 3B C4 00 00 */ addi r30, r4, 0 +/* 80084228 00081168 38 80 FF FF */ li r4, -1 +/* 8008422C 0008116C 93 A1 00 14 */ stw r29, 0x14(r1) +/* 80084230 00081170 3B A3 00 00 */ addi r29, r3, 0 +/* 80084234 00081174 38 7F 00 00 */ addi r3, r31, 0 +/* 80084238 00081178 48 00 22 F1 */ bl fwide +/* 8008423C 0008117C 2C 03 00 00 */ cmpwi r3, 0 +/* 80084240 00081180 41 80 00 0C */ blt lbl_8008424C +/* 80084244 00081184 38 60 FF FF */ li r3, -1 +/* 80084248 00081188 48 00 00 1C */ b lbl_80084264 +lbl_8008424C: +/* 8008424C 0008118C 3C 60 80 08 */ lis r3, __FileWrite@ha +/* 80084250 00081190 38 63 42 EC */ addi r3, r3, __FileWrite@l +/* 80084254 00081194 38 9F 00 00 */ addi r4, r31, 0 +/* 80084258 00081198 38 BD 00 00 */ addi r5, r29, 0 +/* 8008425C 0008119C 38 DE 00 00 */ addi r6, r30, 0 +/* 80084260 000811A0 48 00 00 E5 */ bl __pformatter +lbl_80084264: +/* 80084264 000811A4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80084268 000811A8 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8008426C 000811AC 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 80084270 000811B0 7C 08 03 A6 */ mtlr r0 +/* 80084274 000811B4 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 80084278 000811B8 38 21 00 20 */ addi r1, r1, 0x20 +/* 8008427C 000811BC 4E 80 00 20 */ blr + +.global __StringWrite +__StringWrite: +/* 80084280 000811C0 7C 08 02 A6 */ mflr r0 +/* 80084284 000811C4 90 01 00 04 */ stw r0, 4(r1) +/* 80084288 000811C8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8008428C 000811CC 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 80084290 000811D0 93 C1 00 18 */ stw r30, 0x18(r1) +/* 80084294 000811D4 7C 7E 1B 78 */ mr r30, r3 +/* 80084298 000811D8 80 63 00 08 */ lwz r3, 8(r3) +/* 8008429C 000811DC 80 DE 00 04 */ lwz r6, 4(r30) +/* 800842A0 000811E0 7C 03 2A 14 */ add r0, r3, r5 +/* 800842A4 000811E4 7C 00 30 40 */ cmplw r0, r6 +/* 800842A8 000811E8 41 81 00 0C */ bgt lbl_800842B4 +/* 800842AC 000811EC 7C BF 2B 78 */ mr r31, r5 +/* 800842B0 000811F0 48 00 00 08 */ b lbl_800842B8 +lbl_800842B4: +/* 800842B4 000811F4 7F E3 30 50 */ subf r31, r3, r6 +lbl_800842B8: +/* 800842B8 000811F8 80 1E 00 00 */ lwz r0, 0(r30) +/* 800842BC 000811FC 38 BF 00 00 */ addi r5, r31, 0 +/* 800842C0 00081200 7C 60 1A 14 */ add r3, r0, r3 +/* 800842C4 00081204 4B F7 EF 31 */ bl memcpy +/* 800842C8 00081208 80 1E 00 08 */ lwz r0, 8(r30) +/* 800842CC 0008120C 7C 00 FA 14 */ add r0, r0, r31 +/* 800842D0 00081210 90 1E 00 08 */ stw r0, 8(r30) +/* 800842D4 00081214 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800842D8 00081218 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 800842DC 0008121C 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 800842E0 00081220 7C 08 03 A6 */ mtlr r0 +/* 800842E4 00081224 38 21 00 20 */ addi r1, r1, 0x20 +/* 800842E8 00081228 4E 80 00 20 */ blr + +.global __FileWrite +__FileWrite: +/* 800842EC 0008122C 7C 08 02 A6 */ mflr r0 +/* 800842F0 00081230 90 01 00 04 */ stw r0, 4(r1) +/* 800842F4 00081234 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 800842F8 00081238 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 800842FC 0008123C 3B E5 00 00 */ addi r31, r5, 0 +/* 80084300 00081240 93 C1 00 18 */ stw r30, 0x18(r1) +/* 80084304 00081244 3B C3 00 00 */ addi r30, r3, 0 +/* 80084308 00081248 38 64 00 00 */ addi r3, r4, 0 +/* 8008430C 0008124C 38 DE 00 00 */ addi r6, r30, 0 +/* 80084310 00081250 38 80 00 01 */ li r4, 1 +/* 80084314 00081254 4B FF F5 99 */ bl fwrite +/* 80084318 00081258 7C 1F 18 40 */ cmplw r31, r3 +/* 8008431C 0008125C 40 82 00 0C */ bne lbl_80084328 +/* 80084320 00081260 7F C3 F3 78 */ mr r3, r30 +/* 80084324 00081264 48 00 00 08 */ b lbl_8008432C +lbl_80084328: +/* 80084328 00081268 38 60 00 00 */ li r3, 0 +lbl_8008432C: +/* 8008432C 0008126C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80084330 00081270 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 80084334 00081274 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 80084338 00081278 7C 08 03 A6 */ mtlr r0 +/* 8008433C 0008127C 38 21 00 20 */ addi r1, r1, 0x20 +/* 80084340 00081280 4E 80 00 20 */ blr + +.global __pformatter +__pformatter: +/* 80084344 00081284 7C 08 02 A6 */ mflr r0 +/* 80084348 00081288 3C E0 80 37 */ lis r7, "@stringBase0"@ha +/* 8008434C 0008128C 90 01 00 04 */ stw r0, 4(r1) +/* 80084350 00081290 38 00 00 20 */ li r0, 0x20 +/* 80084354 00081294 94 21 FD 98 */ stwu r1, -0x268(r1) +/* 80084358 00081298 BE 41 02 30 */ stmw r18, 0x230(r1) +/* 8008435C 0008129C 3B E3 00 00 */ addi r31, r3, 0 +/* 80084360 000812A0 3B C4 00 00 */ addi r30, r4, 0 +/* 80084364 000812A4 3B 86 00 00 */ addi r28, r6, 0 +/* 80084368 000812A8 3B 25 00 00 */ addi r25, r5, 0 +/* 8008436C 000812AC 3B 41 02 1C */ addi r26, r1, 0x21c +/* 80084370 000812B0 3A E1 02 1B */ addi r23, r1, 0x21b +/* 80084374 000812B4 3A 87 19 20 */ addi r20, r7, "@stringBase0"@l +/* 80084378 000812B8 3B 60 00 00 */ li r27, 0 +/* 8008437C 000812BC 98 01 00 19 */ stb r0, 0x19(r1) +/* 80084380 000812C0 48 00 05 D0 */ b lbl_80084950 +lbl_80084384: +/* 80084384 000812C4 38 79 00 00 */ addi r3, r25, 0 +/* 80084388 000812C8 38 80 00 25 */ li r4, 0x25 +/* 8008438C 000812CC 48 00 18 A1 */ bl strchr +/* 80084390 000812D0 7C 78 1B 79 */ or. r24, r3, r3 +/* 80084394 000812D4 40 82 00 3C */ bne lbl_800843D0 +/* 80084398 000812D8 7F 23 CB 78 */ mr r3, r25 +/* 8008439C 000812DC 48 00 1B 09 */ bl strlen +/* 800843A0 000812E0 7C 65 1B 79 */ or. r5, r3, r3 +/* 800843A4 000812E4 7F 7B 2A 14 */ add r27, r27, r5 +/* 800843A8 000812E8 41 82 05 B4 */ beq lbl_8008495C +/* 800843AC 000812EC 39 9F 00 00 */ addi r12, r31, 0 +/* 800843B0 000812F0 7D 88 03 A6 */ mtlr r12 +/* 800843B4 000812F4 38 7E 00 00 */ addi r3, r30, 0 +/* 800843B8 000812F8 38 99 00 00 */ addi r4, r25, 0 +/* 800843BC 000812FC 4E 80 00 21 */ blrl +/* 800843C0 00081300 28 03 00 00 */ cmplwi r3, 0 +/* 800843C4 00081304 40 82 05 98 */ bne lbl_8008495C +/* 800843C8 00081308 38 60 FF FF */ li r3, -1 +/* 800843CC 0008130C 48 00 05 94 */ b lbl_80084960 +lbl_800843D0: +/* 800843D0 00081310 7C B9 C0 51 */ subf. r5, r25, r24 +/* 800843D4 00081314 7F 7B 2A 14 */ add r27, r27, r5 +/* 800843D8 00081318 41 82 00 28 */ beq lbl_80084400 +/* 800843DC 0008131C 39 9F 00 00 */ addi r12, r31, 0 +/* 800843E0 00081320 7D 88 03 A6 */ mtlr r12 +/* 800843E4 00081324 38 7E 00 00 */ addi r3, r30, 0 +/* 800843E8 00081328 38 99 00 00 */ addi r4, r25, 0 +/* 800843EC 0008132C 4E 80 00 21 */ blrl +/* 800843F0 00081330 28 03 00 00 */ cmplwi r3, 0 +/* 800843F4 00081334 40 82 00 0C */ bne lbl_80084400 +/* 800843F8 00081338 38 60 FF FF */ li r3, -1 +/* 800843FC 0008133C 48 00 05 64 */ b lbl_80084960 +lbl_80084400: +/* 80084400 00081340 38 78 00 00 */ addi r3, r24, 0 +/* 80084404 00081344 38 9C 00 00 */ addi r4, r28, 0 +/* 80084408 00081348 38 A1 02 1C */ addi r5, r1, 0x21c +/* 8008440C 0008134C 48 00 11 D9 */ bl parse_format +/* 80084410 00081350 88 01 02 21 */ lbz r0, 0x221(r1) +/* 80084414 00081354 3B 23 00 00 */ addi r25, r3, 0 +/* 80084418 00081358 2C 00 00 69 */ cmpwi r0, 0x69 +/* 8008441C 0008135C 41 82 00 A4 */ beq lbl_800844C0 +/* 80084420 00081360 40 80 00 58 */ bge lbl_80084478 +/* 80084424 00081364 2C 00 00 58 */ cmpwi r0, 0x58 +/* 80084428 00081368 41 82 01 54 */ beq lbl_8008457C +/* 8008442C 0008136C 40 80 00 28 */ bge lbl_80084454 +/* 80084430 00081370 2C 00 00 45 */ cmpwi r0, 0x45 +/* 80084434 00081374 41 82 02 04 */ beq lbl_80084638 +/* 80084438 00081378 40 80 00 10 */ bge lbl_80084448 +/* 8008443C 0008137C 2C 00 00 25 */ cmpwi r0, 0x25 +/* 80084440 00081380 41 82 03 7C */ beq lbl_800847BC +/* 80084444 00081384 48 00 03 8C */ b lbl_800847D0 +lbl_80084448: +/* 80084448 00081388 2C 00 00 47 */ cmpwi r0, 0x47 +/* 8008444C 0008138C 41 82 01 EC */ beq lbl_80084638 +/* 80084450 00081390 48 00 03 80 */ b lbl_800847D0 +lbl_80084454: +/* 80084454 00081394 2C 00 00 64 */ cmpwi r0, 0x64 +/* 80084458 00081398 41 82 00 68 */ beq lbl_800844C0 +/* 8008445C 0008139C 40 80 00 10 */ bge lbl_8008446C +/* 80084460 000813A0 2C 00 00 63 */ cmpwi r0, 0x63 +/* 80084464 000813A4 40 80 03 34 */ bge lbl_80084798 +/* 80084468 000813A8 48 00 03 68 */ b lbl_800847D0 +lbl_8008446C: +/* 8008446C 000813AC 2C 00 00 68 */ cmpwi r0, 0x68 +/* 80084470 000813B0 40 80 03 60 */ bge lbl_800847D0 +/* 80084474 000813B4 48 00 01 C4 */ b lbl_80084638 +lbl_80084478: +/* 80084478 000813B8 2C 00 00 75 */ cmpwi r0, 0x75 +/* 8008447C 000813BC 41 82 01 00 */ beq lbl_8008457C +/* 80084480 000813C0 40 80 00 28 */ bge lbl_800844A8 +/* 80084484 000813C4 2C 00 00 6F */ cmpwi r0, 0x6f +/* 80084488 000813C8 41 82 00 F4 */ beq lbl_8008457C +/* 8008448C 000813CC 40 80 00 10 */ bge lbl_8008449C +/* 80084490 000813D0 2C 00 00 6E */ cmpwi r0, 0x6e +/* 80084494 000813D4 40 80 02 9C */ bge lbl_80084730 +/* 80084498 000813D8 48 00 03 38 */ b lbl_800847D0 +lbl_8008449C: +/* 8008449C 000813DC 2C 00 00 73 */ cmpwi r0, 0x73 +/* 800844A0 000813E0 41 82 01 BC */ beq lbl_8008465C +/* 800844A4 000813E4 48 00 03 2C */ b lbl_800847D0 +lbl_800844A8: +/* 800844A8 000813E8 2C 00 00 FF */ cmpwi r0, 0xff +/* 800844AC 000813EC 41 82 03 24 */ beq lbl_800847D0 +/* 800844B0 000813F0 40 80 03 20 */ bge lbl_800847D0 +/* 800844B4 000813F4 2C 00 00 78 */ cmpwi r0, 0x78 +/* 800844B8 000813F8 41 82 00 C4 */ beq lbl_8008457C +/* 800844BC 000813FC 48 00 03 14 */ b lbl_800847D0 +lbl_800844C0: +/* 800844C0 00081400 88 01 02 20 */ lbz r0, 0x220(r1) +/* 800844C4 00081404 28 00 00 03 */ cmplwi r0, 3 +/* 800844C8 00081408 40 82 00 18 */ bne lbl_800844E0 +/* 800844CC 0008140C 38 7C 00 00 */ addi r3, r28, 0 +/* 800844D0 00081410 38 80 00 01 */ li r4, 1 +/* 800844D4 00081414 4B FF E1 19 */ bl __va_arg +/* 800844D8 00081418 83 A3 00 00 */ lwz r29, 0(r3) +/* 800844DC 0008141C 48 00 00 34 */ b lbl_80084510 +lbl_800844E0: +/* 800844E0 00081420 28 00 00 04 */ cmplwi r0, 4 +/* 800844E4 00081424 40 82 00 1C */ bne lbl_80084500 +/* 800844E8 00081428 38 7C 00 00 */ addi r3, r28, 0 +/* 800844EC 0008142C 38 80 00 02 */ li r4, 2 +/* 800844F0 00081430 4B FF E0 FD */ bl __va_arg +/* 800844F4 00081434 82 A3 00 00 */ lwz r21, 0(r3) +/* 800844F8 00081438 82 C3 00 04 */ lwz r22, 4(r3) +/* 800844FC 0008143C 48 00 00 14 */ b lbl_80084510 +lbl_80084500: +/* 80084500 00081440 38 7C 00 00 */ addi r3, r28, 0 +/* 80084504 00081444 38 80 00 01 */ li r4, 1 +/* 80084508 00081448 4B FF E0 E5 */ bl __va_arg +/* 8008450C 0008144C 83 A3 00 00 */ lwz r29, 0(r3) +lbl_80084510: +/* 80084510 00081450 88 61 02 20 */ lbz r3, 0x220(r1) +/* 80084514 00081454 28 03 00 02 */ cmplwi r3, 2 +/* 80084518 00081458 40 82 00 0C */ bne lbl_80084524 +/* 8008451C 0008145C 7F A0 07 34 */ extsh r0, r29 +/* 80084520 00081460 7C 1D 03 78 */ mr r29, r0 +lbl_80084524: +/* 80084524 00081464 28 03 00 01 */ cmplwi r3, 1 +/* 80084528 00081468 40 82 00 0C */ bne lbl_80084534 +/* 8008452C 0008146C 7F A0 07 74 */ extsb r0, r29 +/* 80084530 00081470 7C 1D 03 78 */ mr r29, r0 +lbl_80084534: +/* 80084534 00081474 28 03 00 04 */ cmplwi r3, 4 +/* 80084538 00081478 40 82 00 24 */ bne lbl_8008455C +/* 8008453C 0008147C 38 96 00 00 */ addi r4, r22, 0 +/* 80084540 00081480 38 75 00 00 */ addi r3, r21, 0 +/* 80084544 00081484 38 BA 00 00 */ addi r5, r26, 0 +/* 80084548 00081488 38 C1 02 1C */ addi r6, r1, 0x21c +/* 8008454C 0008148C 48 00 0B 95 */ bl longlong2str +/* 80084550 00081490 7C 73 1B 79 */ or. r19, r3, r3 +/* 80084554 00081494 41 82 02 7C */ beq lbl_800847D0 +/* 80084558 00081498 48 00 00 1C */ b lbl_80084574 +lbl_8008455C: +/* 8008455C 0008149C 38 7D 00 00 */ addi r3, r29, 0 +/* 80084560 000814A0 38 9A 00 00 */ addi r4, r26, 0 +/* 80084564 000814A4 38 A1 02 1C */ addi r5, r1, 0x21c +/* 80084568 000814A8 48 00 0E 59 */ bl long2str +/* 8008456C 000814AC 7C 73 1B 79 */ or. r19, r3, r3 +/* 80084570 000814B0 41 82 02 60 */ beq lbl_800847D0 +lbl_80084574: +/* 80084574 000814B4 7F 13 B8 50 */ subf r24, r19, r23 +/* 80084578 000814B8 48 00 02 98 */ b lbl_80084810 +lbl_8008457C: +/* 8008457C 000814BC 88 01 02 20 */ lbz r0, 0x220(r1) +/* 80084580 000814C0 28 00 00 03 */ cmplwi r0, 3 +/* 80084584 000814C4 40 82 00 18 */ bne lbl_8008459C +/* 80084588 000814C8 38 7C 00 00 */ addi r3, r28, 0 +/* 8008458C 000814CC 38 80 00 01 */ li r4, 1 +/* 80084590 000814D0 4B FF E0 5D */ bl __va_arg +/* 80084594 000814D4 83 A3 00 00 */ lwz r29, 0(r3) +/* 80084598 000814D8 48 00 00 34 */ b lbl_800845CC +lbl_8008459C: +/* 8008459C 000814DC 28 00 00 04 */ cmplwi r0, 4 +/* 800845A0 000814E0 40 82 00 1C */ bne lbl_800845BC +/* 800845A4 000814E4 38 7C 00 00 */ addi r3, r28, 0 +/* 800845A8 000814E8 38 80 00 02 */ li r4, 2 +/* 800845AC 000814EC 4B FF E0 41 */ bl __va_arg +/* 800845B0 000814F0 82 A3 00 00 */ lwz r21, 0(r3) +/* 800845B4 000814F4 82 C3 00 04 */ lwz r22, 4(r3) +/* 800845B8 000814F8 48 00 00 14 */ b lbl_800845CC +lbl_800845BC: +/* 800845BC 000814FC 38 7C 00 00 */ addi r3, r28, 0 +/* 800845C0 00081500 38 80 00 01 */ li r4, 1 +/* 800845C4 00081504 4B FF E0 29 */ bl __va_arg +/* 800845C8 00081508 83 A3 00 00 */ lwz r29, 0(r3) +lbl_800845CC: +/* 800845CC 0008150C 88 61 02 20 */ lbz r3, 0x220(r1) +/* 800845D0 00081510 28 03 00 02 */ cmplwi r3, 2 +/* 800845D4 00081514 40 82 00 0C */ bne lbl_800845E0 +/* 800845D8 00081518 57 A0 04 3E */ clrlwi r0, r29, 0x10 +/* 800845DC 0008151C 7C 1D 03 78 */ mr r29, r0 +lbl_800845E0: +/* 800845E0 00081520 28 03 00 01 */ cmplwi r3, 1 +/* 800845E4 00081524 40 82 00 0C */ bne lbl_800845F0 +/* 800845E8 00081528 57 A0 06 3E */ clrlwi r0, r29, 0x18 +/* 800845EC 0008152C 7C 1D 03 78 */ mr r29, r0 +lbl_800845F0: +/* 800845F0 00081530 28 03 00 04 */ cmplwi r3, 4 +/* 800845F4 00081534 40 82 00 24 */ bne lbl_80084618 +/* 800845F8 00081538 38 96 00 00 */ addi r4, r22, 0 +/* 800845FC 0008153C 38 75 00 00 */ addi r3, r21, 0 +/* 80084600 00081540 38 BA 00 00 */ addi r5, r26, 0 +/* 80084604 00081544 38 C1 02 1C */ addi r6, r1, 0x21c +/* 80084608 00081548 48 00 0A D9 */ bl longlong2str +/* 8008460C 0008154C 7C 73 1B 79 */ or. r19, r3, r3 +/* 80084610 00081550 41 82 01 C0 */ beq lbl_800847D0 +/* 80084614 00081554 48 00 00 1C */ b lbl_80084630 +lbl_80084618: +/* 80084618 00081558 38 7D 00 00 */ addi r3, r29, 0 +/* 8008461C 0008155C 38 9A 00 00 */ addi r4, r26, 0 +/* 80084620 00081560 38 A1 02 1C */ addi r5, r1, 0x21c +/* 80084624 00081564 48 00 0D 9D */ bl long2str +/* 80084628 00081568 7C 73 1B 79 */ or. r19, r3, r3 +/* 8008462C 0008156C 41 82 01 A4 */ beq lbl_800847D0 +lbl_80084630: +/* 80084630 00081570 7F 13 B8 50 */ subf r24, r19, r23 +/* 80084634 00081574 48 00 01 DC */ b lbl_80084810 +lbl_80084638: +/* 80084638 00081578 38 7C 00 00 */ addi r3, r28, 0 +/* 8008463C 0008157C 38 9A 00 00 */ addi r4, r26, 0 +/* 80084640 00081580 38 A1 02 1C */ addi r5, r1, 0x21c +/* 80084644 00081584 38 C0 00 00 */ li r6, 0 +/* 80084648 00081588 48 00 03 2D */ bl float2str +/* 8008464C 0008158C 7C 73 1B 79 */ or. r19, r3, r3 +/* 80084650 00081590 41 82 01 80 */ beq lbl_800847D0 +/* 80084654 00081594 7F 13 B8 50 */ subf r24, r19, r23 +/* 80084658 00081598 48 00 01 B8 */ b lbl_80084810 +lbl_8008465C: +/* 8008465C 0008159C 88 01 02 20 */ lbz r0, 0x220(r1) +/* 80084660 000815A0 28 00 00 06 */ cmplwi r0, 6 +/* 80084664 000815A4 40 82 00 3C */ bne lbl_800846A0 +/* 80084668 000815A8 38 7C 00 00 */ addi r3, r28, 0 +/* 8008466C 000815AC 38 80 00 01 */ li r4, 1 +/* 80084670 000815B0 4B FF DF 7D */ bl __va_arg +/* 80084674 000815B4 80 83 00 00 */ lwz r4, 0(r3) +/* 80084678 000815B8 28 04 00 00 */ cmplwi r4, 0 +/* 8008467C 000815BC 40 82 00 08 */ bne lbl_80084684 +/* 80084680 000815C0 38 8D 82 28 */ addi r4, r13, "@wstringBase0"@sda21 +lbl_80084684: +/* 80084684 000815C4 38 61 00 1C */ addi r3, r1, 0x1c +/* 80084688 000815C8 38 A0 02 00 */ li r5, 0x200 +/* 8008468C 000815CC 4B FF F4 FD */ bl wcstombs +/* 80084690 000815D0 2C 03 00 00 */ cmpwi r3, 0 +/* 80084694 000815D4 41 80 01 3C */ blt lbl_800847D0 +/* 80084698 000815D8 3A 61 00 1C */ addi r19, r1, 0x1c +/* 8008469C 000815DC 48 00 00 14 */ b lbl_800846B0 +lbl_800846A0: +/* 800846A0 000815E0 38 7C 00 00 */ addi r3, r28, 0 +/* 800846A4 000815E4 38 80 00 01 */ li r4, 1 +/* 800846A8 000815E8 4B FF DF 45 */ bl __va_arg +/* 800846AC 000815EC 82 63 00 00 */ lwz r19, 0(r3) +lbl_800846B0: +/* 800846B0 000815F0 28 13 00 00 */ cmplwi r19, 0 +/* 800846B4 000815F4 40 82 00 08 */ bne lbl_800846BC +/* 800846B8 000815F8 7E 93 A3 78 */ mr r19, r20 +lbl_800846BC: +/* 800846BC 000815FC 88 01 02 1F */ lbz r0, 0x21f(r1) +/* 800846C0 00081600 28 00 00 00 */ cmplwi r0, 0 +/* 800846C4 00081604 41 82 00 2C */ beq lbl_800846F0 +/* 800846C8 00081608 88 01 02 1E */ lbz r0, 0x21e(r1) +/* 800846CC 0008160C 8B 13 00 00 */ lbz r24, 0(r19) +/* 800846D0 00081610 3A 73 00 01 */ addi r19, r19, 1 +/* 800846D4 00081614 28 00 00 00 */ cmplwi r0, 0 +/* 800846D8 00081618 41 82 01 38 */ beq lbl_80084810 +/* 800846DC 0008161C 80 01 02 28 */ lwz r0, 0x228(r1) +/* 800846E0 00081620 7C 18 00 00 */ cmpw r24, r0 +/* 800846E4 00081624 40 81 01 2C */ ble lbl_80084810 +/* 800846E8 00081628 7C 18 03 78 */ mr r24, r0 +/* 800846EC 0008162C 48 00 01 24 */ b lbl_80084810 +lbl_800846F0: +/* 800846F0 00081630 88 01 02 1E */ lbz r0, 0x21e(r1) +/* 800846F4 00081634 28 00 00 00 */ cmplwi r0, 0 +/* 800846F8 00081638 41 82 00 28 */ beq lbl_80084720 +/* 800846FC 0008163C 83 01 02 28 */ lwz r24, 0x228(r1) +/* 80084700 00081640 38 73 00 00 */ addi r3, r19, 0 +/* 80084704 00081644 38 80 00 00 */ li r4, 0 +/* 80084708 00081648 38 B8 00 00 */ addi r5, r24, 0 +/* 8008470C 0008164C 4B FF F4 FD */ bl memchr +/* 80084710 00081650 28 03 00 00 */ cmplwi r3, 0 +/* 80084714 00081654 41 82 00 FC */ beq lbl_80084810 +/* 80084718 00081658 7F 13 18 50 */ subf r24, r19, r3 +/* 8008471C 0008165C 48 00 00 F4 */ b lbl_80084810 +lbl_80084720: +/* 80084720 00081660 7E 63 9B 78 */ mr r3, r19 +/* 80084724 00081664 48 00 17 81 */ bl strlen +/* 80084728 00081668 7C 78 1B 78 */ mr r24, r3 +/* 8008472C 0008166C 48 00 00 E4 */ b lbl_80084810 +lbl_80084730: +/* 80084730 00081670 38 7C 00 00 */ addi r3, r28, 0 +/* 80084734 00081674 38 80 00 01 */ li r4, 1 +/* 80084738 00081678 4B FF DE B5 */ bl __va_arg +/* 8008473C 0008167C 88 01 02 20 */ lbz r0, 0x220(r1) +/* 80084740 00081680 80 63 00 00 */ lwz r3, 0(r3) +/* 80084744 00081684 2C 00 00 02 */ cmpwi r0, 2 +/* 80084748 00081688 41 82 00 2C */ beq lbl_80084774 +/* 8008474C 0008168C 40 80 00 10 */ bge lbl_8008475C +/* 80084750 00081690 2C 00 00 00 */ cmpwi r0, 0 +/* 80084754 00081694 41 82 00 18 */ beq lbl_8008476C +/* 80084758 00081698 48 00 01 F8 */ b lbl_80084950 +lbl_8008475C: +/* 8008475C 0008169C 2C 00 00 04 */ cmpwi r0, 4 +/* 80084760 000816A0 41 82 00 28 */ beq lbl_80084788 +/* 80084764 000816A4 40 80 01 EC */ bge lbl_80084950 +/* 80084768 000816A8 48 00 00 18 */ b lbl_80084780 +lbl_8008476C: +/* 8008476C 000816AC 93 63 00 00 */ stw r27, 0(r3) +/* 80084770 000816B0 48 00 01 E0 */ b lbl_80084950 +lbl_80084774: +/* 80084774 000816B4 7F 60 07 34 */ extsh r0, r27 +/* 80084778 000816B8 B0 03 00 00 */ sth r0, 0(r3) +/* 8008477C 000816BC 48 00 01 D4 */ b lbl_80084950 +lbl_80084780: +/* 80084780 000816C0 93 63 00 00 */ stw r27, 0(r3) +/* 80084784 000816C4 48 00 01 CC */ b lbl_80084950 +lbl_80084788: +/* 80084788 000816C8 93 63 00 04 */ stw r27, 4(r3) +/* 8008478C 000816CC 7F 60 FE 70 */ srawi r0, r27, 0x1f +/* 80084790 000816D0 90 03 00 00 */ stw r0, 0(r3) +/* 80084794 000816D4 48 00 01 BC */ b lbl_80084950 +lbl_80084798: +/* 80084798 000816D8 38 7C 00 00 */ addi r3, r28, 0 +/* 8008479C 000816DC 3A 61 00 1C */ addi r19, r1, 0x1c +/* 800847A0 000816E0 38 80 00 01 */ li r4, 1 +/* 800847A4 000816E4 4B FF DE 49 */ bl __va_arg +/* 800847A8 000816E8 80 03 00 00 */ lwz r0, 0(r3) +/* 800847AC 000816EC 3B 00 00 01 */ li r24, 1 +/* 800847B0 000816F0 7C 00 07 74 */ extsb r0, r0 +/* 800847B4 000816F4 98 01 00 1C */ stb r0, 0x1c(r1) +/* 800847B8 000816F8 48 00 00 58 */ b lbl_80084810 +lbl_800847BC: +/* 800847BC 000816FC 38 00 00 25 */ li r0, 0x25 +/* 800847C0 00081700 98 01 00 1C */ stb r0, 0x1c(r1) +/* 800847C4 00081704 3A 61 00 1C */ addi r19, r1, 0x1c +/* 800847C8 00081708 3B 00 00 01 */ li r24, 1 +/* 800847CC 0008170C 48 00 00 44 */ b lbl_80084810 +lbl_800847D0: +/* 800847D0 00081710 7F 03 C3 78 */ mr r3, r24 +/* 800847D4 00081714 48 00 16 D1 */ bl strlen +/* 800847D8 00081718 7C 65 1B 79 */ or. r5, r3, r3 +/* 800847DC 0008171C 7F 7B 2A 14 */ add r27, r27, r5 +/* 800847E0 00081720 41 82 00 28 */ beq lbl_80084808 +/* 800847E4 00081724 39 9F 00 00 */ addi r12, r31, 0 +/* 800847E8 00081728 7D 88 03 A6 */ mtlr r12 +/* 800847EC 0008172C 38 7E 00 00 */ addi r3, r30, 0 +/* 800847F0 00081730 38 98 00 00 */ addi r4, r24, 0 +/* 800847F4 00081734 4E 80 00 21 */ blrl +/* 800847F8 00081738 28 03 00 00 */ cmplwi r3, 0 +/* 800847FC 0008173C 40 82 00 0C */ bne lbl_80084808 +/* 80084800 00081740 38 60 FF FF */ li r3, -1 +/* 80084804 00081744 48 00 01 5C */ b lbl_80084960 +lbl_80084808: +/* 80084808 00081748 7F 63 DB 78 */ mr r3, r27 +/* 8008480C 0008174C 48 00 01 54 */ b lbl_80084960 +lbl_80084810: +/* 80084810 00081750 88 01 02 1C */ lbz r0, 0x21c(r1) +/* 80084814 00081754 3A 58 00 00 */ addi r18, r24, 0 +/* 80084818 00081758 28 00 00 00 */ cmplwi r0, 0 +/* 8008481C 0008175C 41 82 00 B0 */ beq lbl_800848CC +/* 80084820 00081760 28 00 00 02 */ cmplwi r0, 2 +/* 80084824 00081764 40 82 00 0C */ bne lbl_80084830 +/* 80084828 00081768 38 00 00 30 */ li r0, 0x30 +/* 8008482C 0008176C 48 00 00 08 */ b lbl_80084834 +lbl_80084830: +/* 80084830 00081770 38 00 00 20 */ li r0, 0x20 +lbl_80084834: +/* 80084834 00081774 7C 00 07 74 */ extsb r0, r0 +/* 80084838 00081778 98 01 00 19 */ stb r0, 0x19(r1) +/* 8008483C 0008177C 88 13 00 00 */ lbz r0, 0(r19) +/* 80084840 00081780 7C 00 07 74 */ extsb r0, r0 +/* 80084844 00081784 2C 00 00 2B */ cmpwi r0, 0x2b +/* 80084848 00081788 41 82 00 0C */ beq lbl_80084854 +/* 8008484C 0008178C 2C 00 00 2D */ cmpwi r0, 0x2d +/* 80084850 00081790 40 82 00 70 */ bne lbl_800848C0 +lbl_80084854: +/* 80084854 00081794 88 01 00 19 */ lbz r0, 0x19(r1) +/* 80084858 00081798 2C 00 00 30 */ cmpwi r0, 0x30 +/* 8008485C 0008179C 40 82 00 64 */ bne lbl_800848C0 +/* 80084860 000817A0 39 9F 00 00 */ addi r12, r31, 0 +/* 80084864 000817A4 7D 88 03 A6 */ mtlr r12 +/* 80084868 000817A8 38 7E 00 00 */ addi r3, r30, 0 +/* 8008486C 000817AC 38 93 00 00 */ addi r4, r19, 0 +/* 80084870 000817B0 38 A0 00 01 */ li r5, 1 +/* 80084874 000817B4 4E 80 00 21 */ blrl +/* 80084878 000817B8 28 03 00 00 */ cmplwi r3, 0 +/* 8008487C 000817BC 40 82 00 0C */ bne lbl_80084888 +/* 80084880 000817C0 38 60 FF FF */ li r3, -1 +/* 80084884 000817C4 48 00 00 DC */ b lbl_80084960 +lbl_80084888: +/* 80084888 000817C8 3A 73 00 01 */ addi r19, r19, 1 +/* 8008488C 000817CC 3B 18 FF FF */ addi r24, r24, -1 +/* 80084890 000817D0 48 00 00 30 */ b lbl_800848C0 +lbl_80084894: +/* 80084894 000817D4 39 9F 00 00 */ addi r12, r31, 0 +/* 80084898 000817D8 7D 88 03 A6 */ mtlr r12 +/* 8008489C 000817DC 38 7E 00 00 */ addi r3, r30, 0 +/* 800848A0 000817E0 38 81 00 19 */ addi r4, r1, 0x19 +/* 800848A4 000817E4 38 A0 00 01 */ li r5, 1 +/* 800848A8 000817E8 4E 80 00 21 */ blrl +/* 800848AC 000817EC 28 03 00 00 */ cmplwi r3, 0 +/* 800848B0 000817F0 40 82 00 0C */ bne lbl_800848BC +/* 800848B4 000817F4 38 60 FF FF */ li r3, -1 +/* 800848B8 000817F8 48 00 00 A8 */ b lbl_80084960 +lbl_800848BC: +/* 800848BC 000817FC 3A 52 00 01 */ addi r18, r18, 1 +lbl_800848C0: +/* 800848C0 00081800 80 01 02 24 */ lwz r0, 0x224(r1) +/* 800848C4 00081804 7C 12 00 00 */ cmpw r18, r0 +/* 800848C8 00081808 41 80 FF CC */ blt lbl_80084894 +lbl_800848CC: +/* 800848CC 0008180C 2C 18 00 00 */ cmpwi r24, 0 +/* 800848D0 00081810 41 82 00 2C */ beq lbl_800848FC +/* 800848D4 00081814 39 9F 00 00 */ addi r12, r31, 0 +/* 800848D8 00081818 7D 88 03 A6 */ mtlr r12 +/* 800848DC 0008181C 38 7E 00 00 */ addi r3, r30, 0 +/* 800848E0 00081820 38 93 00 00 */ addi r4, r19, 0 +/* 800848E4 00081824 38 B8 00 00 */ addi r5, r24, 0 +/* 800848E8 00081828 4E 80 00 21 */ blrl +/* 800848EC 0008182C 28 03 00 00 */ cmplwi r3, 0 +/* 800848F0 00081830 40 82 00 0C */ bne lbl_800848FC +/* 800848F4 00081834 38 60 FF FF */ li r3, -1 +/* 800848F8 00081838 48 00 00 68 */ b lbl_80084960 +lbl_800848FC: +/* 800848FC 0008183C 88 01 02 1C */ lbz r0, 0x21c(r1) +/* 80084900 00081840 28 00 00 00 */ cmplwi r0, 0 +/* 80084904 00081844 40 82 00 48 */ bne lbl_8008494C +/* 80084908 00081848 3A 60 00 20 */ li r19, 0x20 +/* 8008490C 0008184C 48 00 00 34 */ b lbl_80084940 +lbl_80084910: +/* 80084910 00081850 7F EC FB 78 */ mr r12, r31 +/* 80084914 00081854 9A 61 00 18 */ stb r19, 0x18(r1) +/* 80084918 00081858 7D 88 03 A6 */ mtlr r12 +/* 8008491C 0008185C 38 7E 00 00 */ addi r3, r30, 0 +/* 80084920 00081860 38 81 00 18 */ addi r4, r1, 0x18 +/* 80084924 00081864 38 A0 00 01 */ li r5, 1 +/* 80084928 00081868 4E 80 00 21 */ blrl +/* 8008492C 0008186C 28 03 00 00 */ cmplwi r3, 0 +/* 80084930 00081870 40 82 00 0C */ bne lbl_8008493C +/* 80084934 00081874 38 60 FF FF */ li r3, -1 +/* 80084938 00081878 48 00 00 28 */ b lbl_80084960 +lbl_8008493C: +/* 8008493C 0008187C 3A 52 00 01 */ addi r18, r18, 1 +lbl_80084940: +/* 80084940 00081880 80 01 02 24 */ lwz r0, 0x224(r1) +/* 80084944 00081884 7C 12 00 00 */ cmpw r18, r0 +/* 80084948 00081888 41 80 FF C8 */ blt lbl_80084910 +lbl_8008494C: +/* 8008494C 0008188C 7F 7B 92 14 */ add r27, r27, r18 +lbl_80084950: +/* 80084950 00081890 88 19 00 00 */ lbz r0, 0(r25) +/* 80084954 00081894 7C 00 07 75 */ extsb. r0, r0 +/* 80084958 00081898 40 82 FA 2C */ bne lbl_80084384 +lbl_8008495C: +/* 8008495C 0008189C 7F 63 DB 78 */ mr r3, r27 +lbl_80084960: +/* 80084960 000818A0 BA 41 02 30 */ lmw r18, 0x230(r1) +/* 80084964 000818A4 80 01 02 6C */ lwz r0, 0x26c(r1) +/* 80084968 000818A8 38 21 02 68 */ addi r1, r1, 0x268 +/* 8008496C 000818AC 7C 08 03 A6 */ mtlr r0 +/* 80084970 000818B0 4E 80 00 20 */ blr + +.global float2str +float2str: +/* 80084974 000818B4 7C 08 02 A6 */ mflr r0 +/* 80084978 000818B8 90 01 00 04 */ stw r0, 4(r1) +/* 8008497C 000818BC 94 21 FF A0 */ stwu r1, -0x60(r1) +/* 80084980 000818C0 DB E1 00 58 */ stfd f31, 0x58(r1) +/* 80084984 000818C4 93 E1 00 54 */ stw r31, 0x54(r1) +/* 80084988 000818C8 93 C1 00 50 */ stw r30, 0x50(r1) +/* 8008498C 000818CC 93 A1 00 4C */ stw r29, 0x4c(r1) +/* 80084990 000818D0 7C BD 2B 78 */ mr r29, r5 +/* 80084994 000818D4 93 81 00 48 */ stw r28, 0x48(r1) +/* 80084998 000818D8 3B 84 00 00 */ addi r28, r4, 0 +/* 8008499C 000818DC 88 05 00 04 */ lbz r0, 4(r5) +/* 800849A0 000818E0 28 00 00 05 */ cmplwi r0, 5 +/* 800849A4 000818E4 40 82 00 14 */ bne lbl_800849B8 +/* 800849A8 000818E8 38 80 00 03 */ li r4, 3 +/* 800849AC 000818EC 4B FF DC 41 */ bl __va_arg +/* 800849B0 000818F0 CB E3 00 00 */ lfd f31, 0(r3) +/* 800849B4 000818F4 48 00 00 10 */ b lbl_800849C4 +lbl_800849B8: +/* 800849B8 000818F8 38 80 00 03 */ li r4, 3 +/* 800849BC 000818FC 4B FF DC 31 */ bl __va_arg +/* 800849C0 00081900 CB E3 00 00 */ lfd f31, 0(r3) +lbl_800849C4: +/* 800849C4 00081904 80 1D 00 0C */ lwz r0, 0xc(r29) +/* 800849C8 00081908 2C 00 01 FD */ cmpwi r0, 0x1fd +/* 800849CC 0008190C 40 81 00 0C */ ble lbl_800849D8 +/* 800849D0 00081910 38 60 00 00 */ li r3, 0 +/* 800849D4 00081914 48 00 05 B4 */ b lbl_80084F88 +lbl_800849D8: +/* 800849D8 00081918 38 00 00 00 */ li r0, 0 +/* 800849DC 0008191C FC 20 F8 90 */ fmr f1, f31 +/* 800849E0 00081920 98 01 00 18 */ stb r0, 0x18(r1) +/* 800849E4 00081924 38 00 00 20 */ li r0, 0x20 +/* 800849E8 00081928 38 61 00 18 */ addi r3, r1, 0x18 +/* 800849EC 0008192C B0 01 00 1A */ sth r0, 0x1a(r1) +/* 800849F0 00081930 38 81 00 1C */ addi r4, r1, 0x1c +/* 800849F4 00081934 4B FF E9 B1 */ bl __num2dec +/* 800849F8 00081938 88 01 00 20 */ lbz r0, 0x20(r1) +/* 800849FC 0008193C 3B E1 00 21 */ addi r31, r1, 0x21 +/* 80084A00 00081940 7C 9F 02 14 */ add r4, r31, r0 +/* 80084A04 00081944 48 00 00 1C */ b lbl_80084A20 +lbl_80084A08: +/* 80084A08 00081948 88 61 00 20 */ lbz r3, 0x20(r1) +/* 80084A0C 0008194C 38 03 FF FF */ addi r0, r3, -1 +/* 80084A10 00081950 98 01 00 20 */ stb r0, 0x20(r1) +/* 80084A14 00081954 A8 61 00 1E */ lha r3, 0x1e(r1) +/* 80084A18 00081958 38 03 00 01 */ addi r0, r3, 1 +/* 80084A1C 0008195C B0 01 00 1E */ sth r0, 0x1e(r1) +lbl_80084A20: +/* 80084A20 00081960 88 01 00 20 */ lbz r0, 0x20(r1) +/* 80084A24 00081964 28 00 00 01 */ cmplwi r0, 1 +/* 80084A28 00081968 40 81 00 10 */ ble lbl_80084A38 +/* 80084A2C 0008196C 8C 04 FF FF */ lbzu r0, -1(r4) +/* 80084A30 00081970 2C 00 00 30 */ cmpwi r0, 0x30 +/* 80084A34 00081974 41 82 FF D4 */ beq lbl_80084A08 +lbl_80084A38: +/* 80084A38 00081978 88 01 00 21 */ lbz r0, 0x21(r1) +/* 80084A3C 0008197C 2C 00 00 49 */ cmpwi r0, 0x49 +/* 80084A40 00081980 41 82 00 2C */ beq lbl_80084A6C +/* 80084A44 00081984 40 80 00 10 */ bge lbl_80084A54 +/* 80084A48 00081988 2C 00 00 30 */ cmpwi r0, 0x30 +/* 80084A4C 0008198C 41 82 00 14 */ beq lbl_80084A60 +/* 80084A50 00081990 48 00 00 84 */ b lbl_80084AD4 +lbl_80084A54: +/* 80084A54 00081994 2C 00 00 4E */ cmpwi r0, 0x4e +/* 80084A58 00081998 41 82 00 5C */ beq lbl_80084AB4 +/* 80084A5C 0008199C 48 00 00 78 */ b lbl_80084AD4 +lbl_80084A60: +/* 80084A60 000819A0 38 00 00 00 */ li r0, 0 +/* 80084A64 000819A4 B0 01 00 1E */ sth r0, 0x1e(r1) +/* 80084A68 000819A8 48 00 00 6C */ b lbl_80084AD4 +lbl_80084A6C: +/* 80084A6C 000819AC C8 02 89 80 */ lfd f0, "@919"@sda21(r2) +/* 80084A70 000819B0 FC 1F 00 40 */ fcmpo cr0, f31, f0 +/* 80084A74 000819B4 40 80 00 20 */ bge lbl_80084A94 +/* 80084A78 000819B8 3C 60 80 37 */ lis r3, "@stringBase0"@ha +/* 80084A7C 000819BC 3B 9C FF FB */ addi r28, r28, -5 +/* 80084A80 000819C0 38 83 19 20 */ addi r4, r3, "@stringBase0"@l +/* 80084A84 000819C4 38 7C 00 00 */ addi r3, r28, 0 +/* 80084A88 000819C8 38 84 00 01 */ addi r4, r4, 1 +/* 80084A8C 000819CC 48 00 13 65 */ bl strcpy +/* 80084A90 000819D0 48 00 00 1C */ b lbl_80084AAC +lbl_80084A94: +/* 80084A94 000819D4 3C 60 80 37 */ lis r3, "@stringBase0"@ha +/* 80084A98 000819D8 3B 9C FF FC */ addi r28, r28, -4 +/* 80084A9C 000819DC 38 83 19 20 */ addi r4, r3, "@stringBase0"@l +/* 80084AA0 000819E0 38 7C 00 00 */ addi r3, r28, 0 +/* 80084AA4 000819E4 38 84 00 06 */ addi r4, r4, 6 +/* 80084AA8 000819E8 48 00 13 49 */ bl strcpy +lbl_80084AAC: +/* 80084AAC 000819EC 7F 83 E3 78 */ mr r3, r28 +/* 80084AB0 000819F0 48 00 04 D8 */ b lbl_80084F88 +lbl_80084AB4: +/* 80084AB4 000819F4 3C 60 80 37 */ lis r3, "@stringBase0"@ha +/* 80084AB8 000819F8 3B 9C FF FC */ addi r28, r28, -4 +/* 80084ABC 000819FC 38 83 19 20 */ addi r4, r3, "@stringBase0"@l +/* 80084AC0 00081A00 38 7C 00 00 */ addi r3, r28, 0 +/* 80084AC4 00081A04 38 84 00 0A */ addi r4, r4, 0xa +/* 80084AC8 00081A08 48 00 13 29 */ bl strcpy +/* 80084ACC 00081A0C 7F 83 E3 78 */ mr r3, r28 +/* 80084AD0 00081A10 48 00 04 B8 */ b lbl_80084F88 +lbl_80084AD4: +/* 80084AD4 00081A14 A8 81 00 1E */ lha r4, 0x1e(r1) +/* 80084AD8 00081A18 38 00 00 00 */ li r0, 0 +/* 80084ADC 00081A1C 88 61 00 20 */ lbz r3, 0x20(r1) +/* 80084AE0 00081A20 3B DC FF FF */ addi r30, r28, -1 +/* 80084AE4 00081A24 7C 63 22 14 */ add r3, r3, r4 +/* 80084AE8 00081A28 38 63 FF FF */ addi r3, r3, -1 +/* 80084AEC 00081A2C B0 61 00 1E */ sth r3, 0x1e(r1) +/* 80084AF0 00081A30 98 1C FF FF */ stb r0, -1(r28) +/* 80084AF4 00081A34 88 1D 00 05 */ lbz r0, 5(r29) +/* 80084AF8 00081A38 2C 00 00 65 */ cmpwi r0, 0x65 +/* 80084AFC 00081A3C 41 82 00 F4 */ beq lbl_80084BF0 +/* 80084B00 00081A40 40 80 00 28 */ bge lbl_80084B28 +/* 80084B04 00081A44 2C 00 00 46 */ cmpwi r0, 0x46 +/* 80084B08 00081A48 41 82 04 7C */ beq lbl_80084F84 +/* 80084B0C 00081A4C 40 80 00 10 */ bge lbl_80084B1C +/* 80084B10 00081A50 2C 00 00 45 */ cmpwi r0, 0x45 +/* 80084B14 00081A54 40 80 00 DC */ bge lbl_80084BF0 +/* 80084B18 00081A58 48 00 04 6C */ b lbl_80084F84 +lbl_80084B1C: +/* 80084B1C 00081A5C 2C 00 00 48 */ cmpwi r0, 0x48 +/* 80084B20 00081A60 40 80 04 64 */ bge lbl_80084F84 +/* 80084B24 00081A64 48 00 00 14 */ b lbl_80084B38 +lbl_80084B28: +/* 80084B28 00081A68 2C 00 00 67 */ cmpwi r0, 0x67 +/* 80084B2C 00081A6C 41 82 00 0C */ beq lbl_80084B38 +/* 80084B30 00081A70 40 80 04 54 */ bge lbl_80084F84 +/* 80084B34 00081A74 48 00 02 2C */ b lbl_80084D60 +lbl_80084B38: +/* 80084B38 00081A78 88 01 00 20 */ lbz r0, 0x20(r1) +/* 80084B3C 00081A7C 80 9D 00 0C */ lwz r4, 0xc(r29) +/* 80084B40 00081A80 7C 00 20 00 */ cmpw r0, r4 +/* 80084B44 00081A84 40 81 00 0C */ ble lbl_80084B50 +/* 80084B48 00081A88 38 61 00 1C */ addi r3, r1, 0x1c +/* 80084B4C 00081A8C 48 00 04 61 */ bl round_decimal +lbl_80084B50: +/* 80084B50 00081A90 A8 81 00 1E */ lha r4, 0x1e(r1) +/* 80084B54 00081A94 2C 04 FF FC */ cmpwi r4, -4 +/* 80084B58 00081A98 41 80 00 10 */ blt lbl_80084B68 +/* 80084B5C 00081A9C 80 7D 00 0C */ lwz r3, 0xc(r29) +/* 80084B60 00081AA0 7C 04 18 00 */ cmpw r4, r3 +/* 80084B64 00081AA4 41 80 00 50 */ blt lbl_80084BB4 +lbl_80084B68: +/* 80084B68 00081AA8 88 1D 00 03 */ lbz r0, 3(r29) +/* 80084B6C 00081AAC 28 00 00 00 */ cmplwi r0, 0 +/* 80084B70 00081AB0 41 82 00 14 */ beq lbl_80084B84 +/* 80084B74 00081AB4 80 7D 00 0C */ lwz r3, 0xc(r29) +/* 80084B78 00081AB8 38 03 FF FF */ addi r0, r3, -1 +/* 80084B7C 00081ABC 90 1D 00 0C */ stw r0, 0xc(r29) +/* 80084B80 00081AC0 48 00 00 10 */ b lbl_80084B90 +lbl_80084B84: +/* 80084B84 00081AC4 88 61 00 20 */ lbz r3, 0x20(r1) +/* 80084B88 00081AC8 38 03 FF FF */ addi r0, r3, -1 +/* 80084B8C 00081ACC 90 1D 00 0C */ stw r0, 0xc(r29) +lbl_80084B90: +/* 80084B90 00081AD0 88 1D 00 05 */ lbz r0, 5(r29) +/* 80084B94 00081AD4 28 00 00 67 */ cmplwi r0, 0x67 +/* 80084B98 00081AD8 40 82 00 10 */ bne lbl_80084BA8 +/* 80084B9C 00081ADC 38 00 00 65 */ li r0, 0x65 +/* 80084BA0 00081AE0 98 1D 00 05 */ stb r0, 5(r29) +/* 80084BA4 00081AE4 48 00 00 4C */ b lbl_80084BF0 +lbl_80084BA8: +/* 80084BA8 00081AE8 38 00 00 45 */ li r0, 0x45 +/* 80084BAC 00081AEC 98 1D 00 05 */ stb r0, 5(r29) +/* 80084BB0 00081AF0 48 00 00 40 */ b lbl_80084BF0 +lbl_80084BB4: +/* 80084BB4 00081AF4 88 1D 00 03 */ lbz r0, 3(r29) +/* 80084BB8 00081AF8 28 00 00 00 */ cmplwi r0, 0 +/* 80084BBC 00081AFC 41 82 00 14 */ beq lbl_80084BD0 +/* 80084BC0 00081B00 38 04 00 01 */ addi r0, r4, 1 +/* 80084BC4 00081B04 7C 00 18 50 */ subf r0, r0, r3 +/* 80084BC8 00081B08 90 1D 00 0C */ stw r0, 0xc(r29) +/* 80084BCC 00081B0C 48 00 01 94 */ b lbl_80084D60 +lbl_80084BD0: +/* 80084BD0 00081B10 88 01 00 20 */ lbz r0, 0x20(r1) +/* 80084BD4 00081B14 38 64 00 01 */ addi r3, r4, 1 +/* 80084BD8 00081B18 7C 03 00 51 */ subf. r0, r3, r0 +/* 80084BDC 00081B1C 90 1D 00 0C */ stw r0, 0xc(r29) +/* 80084BE0 00081B20 40 80 01 80 */ bge lbl_80084D60 +/* 80084BE4 00081B24 38 00 00 00 */ li r0, 0 +/* 80084BE8 00081B28 90 1D 00 0C */ stw r0, 0xc(r29) +/* 80084BEC 00081B2C 48 00 01 74 */ b lbl_80084D60 +lbl_80084BF0: +/* 80084BF0 00081B30 80 7D 00 0C */ lwz r3, 0xc(r29) +/* 80084BF4 00081B34 88 01 00 20 */ lbz r0, 0x20(r1) +/* 80084BF8 00081B38 38 83 00 01 */ addi r4, r3, 1 +/* 80084BFC 00081B3C 7C 00 20 00 */ cmpw r0, r4 +/* 80084C00 00081B40 40 81 00 0C */ ble lbl_80084C0C +/* 80084C04 00081B44 38 61 00 1C */ addi r3, r1, 0x1c +/* 80084C08 00081B48 48 00 03 A5 */ bl round_decimal +lbl_80084C0C: +/* 80084C0C 00081B4C A8 01 00 1E */ lha r0, 0x1e(r1) +/* 80084C10 00081B50 39 00 00 2B */ li r8, 0x2b +/* 80084C14 00081B54 2C 00 00 00 */ cmpwi r0, 0 +/* 80084C18 00081B58 7C 04 03 78 */ mr r4, r0 +/* 80084C1C 00081B5C 40 80 00 0C */ bge lbl_80084C28 +/* 80084C20 00081B60 7C 84 00 D0 */ neg r4, r4 +/* 80084C24 00081B64 39 00 00 2D */ li r8, 0x2d +lbl_80084C28: +/* 80084C28 00081B68 3C 60 66 66 */ lis r3, 0x66666667@ha +/* 80084C2C 00081B6C 38 A3 66 67 */ addi r5, r3, 0x66666667@l +/* 80084C30 00081B70 38 E0 00 00 */ li r7, 0 +/* 80084C34 00081B74 48 00 00 38 */ b lbl_80084C6C +lbl_80084C38: +/* 80084C38 00081B78 7C C5 20 96 */ mulhw r6, r5, r4 +/* 80084C3C 00081B7C 7C C0 16 70 */ srawi r0, r6, 2 +/* 80084C40 00081B80 54 03 0F FE */ srwi r3, r0, 0x1f +/* 80084C44 00081B84 7C 00 1A 14 */ add r0, r0, r3 +/* 80084C48 00081B88 1C 00 00 0A */ mulli r0, r0, 0xa +/* 80084C4C 00081B8C 7C 80 20 50 */ subf r4, r0, r4 +/* 80084C50 00081B90 7C C0 16 70 */ srawi r0, r6, 2 +/* 80084C54 00081B94 38 84 00 30 */ addi r4, r4, 0x30 +/* 80084C58 00081B98 98 9E FF FF */ stb r4, -1(r30) +/* 80084C5C 00081B9C 54 03 0F FE */ srwi r3, r0, 0x1f +/* 80084C60 00081BA0 7C 80 1A 14 */ add r4, r0, r3 +/* 80084C64 00081BA4 38 E7 00 01 */ addi r7, r7, 1 +/* 80084C68 00081BA8 3B DE FF FF */ addi r30, r30, -1 +lbl_80084C6C: +/* 80084C6C 00081BAC 2C 04 00 00 */ cmpwi r4, 0 +/* 80084C70 00081BB0 40 82 FF C8 */ bne lbl_80084C38 +/* 80084C74 00081BB4 2C 07 00 02 */ cmpwi r7, 2 +/* 80084C78 00081BB8 41 80 FF C0 */ blt lbl_80084C38 +/* 80084C7C 00081BBC 7D 00 07 74 */ extsb r0, r8 +/* 80084C80 00081BC0 98 1E FF FF */ stb r0, -1(r30) +/* 80084C84 00081BC4 3B DE FF FE */ addi r30, r30, -2 +/* 80084C88 00081BC8 7C 1E E0 50 */ subf r0, r30, r28 +/* 80084C8C 00081BCC 88 7D 00 05 */ lbz r3, 5(r29) +/* 80084C90 00081BD0 98 7E 00 00 */ stb r3, 0(r30) +/* 80084C94 00081BD4 80 7D 00 0C */ lwz r3, 0xc(r29) +/* 80084C98 00081BD8 7C 03 02 14 */ add r0, r3, r0 +/* 80084C9C 00081BDC 2C 00 01 FD */ cmpwi r0, 0x1fd +/* 80084CA0 00081BE0 40 81 00 0C */ ble lbl_80084CAC +/* 80084CA4 00081BE4 38 60 00 00 */ li r3, 0 +/* 80084CA8 00081BE8 48 00 02 E0 */ b lbl_80084F88 +lbl_80084CAC: +/* 80084CAC 00081BEC 88 81 00 20 */ lbz r4, 0x20(r1) +/* 80084CB0 00081BF0 38 03 00 01 */ addi r0, r3, 1 +/* 80084CB4 00081BF4 7C 04 00 00 */ cmpw r4, r0 +/* 80084CB8 00081BF8 40 80 00 20 */ bge lbl_80084CD8 +/* 80084CBC 00081BFC 38 03 00 02 */ addi r0, r3, 2 +/* 80084CC0 00081C00 7C 64 00 50 */ subf r3, r4, r0 +/* 80084CC4 00081C04 38 00 00 30 */ li r0, 0x30 +/* 80084CC8 00081C08 48 00 00 08 */ b lbl_80084CD0 +lbl_80084CCC: +/* 80084CCC 00081C0C 9C 1E FF FF */ stbu r0, -1(r30) +lbl_80084CD0: +/* 80084CD0 00081C10 34 63 FF FF */ addic. r3, r3, -1 +/* 80084CD4 00081C14 40 82 FF F8 */ bne lbl_80084CCC +lbl_80084CD8: +/* 80084CD8 00081C18 88 61 00 20 */ lbz r3, 0x20(r1) +/* 80084CDC 00081C1C 7C 9F 1A 14 */ add r4, r31, r3 +/* 80084CE0 00081C20 48 00 00 0C */ b lbl_80084CEC +lbl_80084CE4: +/* 80084CE4 00081C24 8C 04 FF FF */ lbzu r0, -1(r4) +/* 80084CE8 00081C28 9C 1E FF FF */ stbu r0, -1(r30) +lbl_80084CEC: +/* 80084CEC 00081C2C 34 63 FF FF */ addic. r3, r3, -1 +/* 80084CF0 00081C30 40 82 FF F4 */ bne lbl_80084CE4 +/* 80084CF4 00081C34 80 1D 00 0C */ lwz r0, 0xc(r29) +/* 80084CF8 00081C38 2C 00 00 00 */ cmpwi r0, 0 +/* 80084CFC 00081C3C 40 82 00 10 */ bne lbl_80084D0C +/* 80084D00 00081C40 88 1D 00 03 */ lbz r0, 3(r29) +/* 80084D04 00081C44 28 00 00 00 */ cmplwi r0, 0 +/* 80084D08 00081C48 41 82 00 0C */ beq lbl_80084D14 +lbl_80084D0C: +/* 80084D0C 00081C4C 38 00 00 2E */ li r0, 0x2e +/* 80084D10 00081C50 9C 1E FF FF */ stbu r0, -1(r30) +lbl_80084D14: +/* 80084D14 00081C54 88 01 00 21 */ lbz r0, 0x21(r1) +/* 80084D18 00081C58 9C 1E FF FF */ stbu r0, -1(r30) +/* 80084D1C 00081C5C 88 01 00 1C */ lbz r0, 0x1c(r1) +/* 80084D20 00081C60 7C 00 07 75 */ extsb. r0, r0 +/* 80084D24 00081C64 41 82 00 10 */ beq lbl_80084D34 +/* 80084D28 00081C68 38 00 00 2D */ li r0, 0x2d +/* 80084D2C 00081C6C 9C 1E FF FF */ stbu r0, -1(r30) +/* 80084D30 00081C70 48 00 02 54 */ b lbl_80084F84 +lbl_80084D34: +/* 80084D34 00081C74 88 1D 00 01 */ lbz r0, 1(r29) +/* 80084D38 00081C78 28 00 00 01 */ cmplwi r0, 1 +/* 80084D3C 00081C7C 40 82 00 10 */ bne lbl_80084D4C +/* 80084D40 00081C80 38 00 00 2B */ li r0, 0x2b +/* 80084D44 00081C84 9C 1E FF FF */ stbu r0, -1(r30) +/* 80084D48 00081C88 48 00 02 3C */ b lbl_80084F84 +lbl_80084D4C: +/* 80084D4C 00081C8C 28 00 00 02 */ cmplwi r0, 2 +/* 80084D50 00081C90 40 82 02 34 */ bne lbl_80084F84 +/* 80084D54 00081C94 38 00 00 20 */ li r0, 0x20 +/* 80084D58 00081C98 9C 1E FF FF */ stbu r0, -1(r30) +/* 80084D5C 00081C9C 48 00 02 28 */ b lbl_80084F84 +lbl_80084D60: +/* 80084D60 00081CA0 A8 01 00 1E */ lha r0, 0x1e(r1) +/* 80084D64 00081CA4 88 81 00 20 */ lbz r4, 0x20(r1) +/* 80084D68 00081CA8 7C 00 20 50 */ subf r0, r0, r4 +/* 80084D6C 00081CAC 34 E0 FF FF */ addic. r7, r0, -1 +/* 80084D70 00081CB0 40 80 00 08 */ bge lbl_80084D78 +/* 80084D74 00081CB4 38 E0 00 00 */ li r7, 0 +lbl_80084D78: +/* 80084D78 00081CB8 80 1D 00 0C */ lwz r0, 0xc(r29) +/* 80084D7C 00081CBC 7C 07 00 00 */ cmpw r7, r0 +/* 80084D80 00081CC0 40 81 00 2C */ ble lbl_80084DAC +/* 80084D84 00081CC4 7C 00 38 50 */ subf r0, r0, r7 +/* 80084D88 00081CC8 38 61 00 1C */ addi r3, r1, 0x1c +/* 80084D8C 00081CCC 7C 80 20 50 */ subf r4, r0, r4 +/* 80084D90 00081CD0 48 00 02 1D */ bl round_decimal +/* 80084D94 00081CD4 A8 61 00 1E */ lha r3, 0x1e(r1) +/* 80084D98 00081CD8 88 01 00 20 */ lbz r0, 0x20(r1) +/* 80084D9C 00081CDC 7C 03 00 50 */ subf r0, r3, r0 +/* 80084DA0 00081CE0 34 E0 FF FF */ addic. r7, r0, -1 +/* 80084DA4 00081CE4 40 80 00 08 */ bge lbl_80084DAC +/* 80084DA8 00081CE8 38 E0 00 00 */ li r7, 0 +lbl_80084DAC: +/* 80084DAC 00081CEC A8 01 00 1E */ lha r0, 0x1e(r1) +/* 80084DB0 00081CF0 34 C0 00 01 */ addic. r6, r0, 1 +/* 80084DB4 00081CF4 40 80 00 08 */ bge lbl_80084DBC +/* 80084DB8 00081CF8 38 C0 00 00 */ li r6, 0 +lbl_80084DBC: +/* 80084DBC 00081CFC 7C 06 3A 14 */ add r0, r6, r7 +/* 80084DC0 00081D00 2C 00 01 FD */ cmpwi r0, 0x1fd +/* 80084DC4 00081D04 40 81 00 0C */ ble lbl_80084DD0 +/* 80084DC8 00081D08 38 60 00 00 */ li r3, 0 +/* 80084DCC 00081D0C 48 00 01 BC */ b lbl_80084F88 +lbl_80084DD0: +/* 80084DD0 00081D10 88 01 00 20 */ lbz r0, 0x20(r1) +/* 80084DD4 00081D14 38 80 00 00 */ li r4, 0 +/* 80084DD8 00081D18 38 60 00 30 */ li r3, 0x30 +/* 80084DDC 00081D1C 7C BF 02 14 */ add r5, r31, r0 +/* 80084DE0 00081D20 48 00 00 0C */ b lbl_80084DEC +lbl_80084DE4: +/* 80084DE4 00081D24 9C 7E FF FF */ stbu r3, -1(r30) +/* 80084DE8 00081D28 38 84 00 01 */ addi r4, r4, 1 +lbl_80084DEC: +/* 80084DEC 00081D2C 80 1D 00 0C */ lwz r0, 0xc(r29) +/* 80084DF0 00081D30 7C 07 00 50 */ subf r0, r7, r0 +/* 80084DF4 00081D34 7C 04 00 00 */ cmpw r4, r0 +/* 80084DF8 00081D38 41 80 FF EC */ blt lbl_80084DE4 +/* 80084DFC 00081D3C 38 60 00 00 */ li r3, 0 +/* 80084E00 00081D40 48 00 00 10 */ b lbl_80084E10 +lbl_80084E04: +/* 80084E04 00081D44 8C 05 FF FF */ lbzu r0, -1(r5) +/* 80084E08 00081D48 38 63 00 01 */ addi r3, r3, 1 +/* 80084E0C 00081D4C 9C 1E FF FF */ stbu r0, -1(r30) +lbl_80084E10: +/* 80084E10 00081D50 7C 03 38 00 */ cmpw r3, r7 +/* 80084E14 00081D54 40 80 00 10 */ bge lbl_80084E24 +/* 80084E18 00081D58 88 01 00 20 */ lbz r0, 0x20(r1) +/* 80084E1C 00081D5C 7C 03 00 00 */ cmpw r3, r0 +/* 80084E20 00081D60 41 80 FF E4 */ blt lbl_80084E04 +lbl_80084E24: +/* 80084E24 00081D64 7C 03 38 00 */ cmpw r3, r7 +/* 80084E28 00081D68 7C 63 38 50 */ subf r3, r3, r7 +/* 80084E2C 00081D6C 38 80 00 30 */ li r4, 0x30 +/* 80084E30 00081D70 40 80 00 48 */ bge lbl_80084E78 +/* 80084E34 00081D74 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 80084E38 00081D78 7C 09 03 A6 */ mtctr r0 +/* 80084E3C 00081D7C 41 82 00 30 */ beq lbl_80084E6C +lbl_80084E40: +/* 80084E40 00081D80 98 9E FF FF */ stb r4, -1(r30) +/* 80084E44 00081D84 98 9E FF FE */ stb r4, -2(r30) +/* 80084E48 00081D88 98 9E FF FD */ stb r4, -3(r30) +/* 80084E4C 00081D8C 98 9E FF FC */ stb r4, -4(r30) +/* 80084E50 00081D90 98 9E FF FB */ stb r4, -5(r30) +/* 80084E54 00081D94 98 9E FF FA */ stb r4, -6(r30) +/* 80084E58 00081D98 98 9E FF F9 */ stb r4, -7(r30) +/* 80084E5C 00081D9C 9C 9E FF F8 */ stbu r4, -8(r30) +/* 80084E60 00081DA0 42 00 FF E0 */ bdnz lbl_80084E40 +/* 80084E64 00081DA4 70 63 00 07 */ andi. r3, r3, 7 +/* 80084E68 00081DA8 41 82 00 10 */ beq lbl_80084E78 +lbl_80084E6C: +/* 80084E6C 00081DAC 7C 69 03 A6 */ mtctr r3 +lbl_80084E70: +/* 80084E70 00081DB0 9C 9E FF FF */ stbu r4, -1(r30) +/* 80084E74 00081DB4 42 00 FF FC */ bdnz lbl_80084E70 +lbl_80084E78: +/* 80084E78 00081DB8 80 1D 00 0C */ lwz r0, 0xc(r29) +/* 80084E7C 00081DBC 2C 00 00 00 */ cmpwi r0, 0 +/* 80084E80 00081DC0 40 82 00 10 */ bne lbl_80084E90 +/* 80084E84 00081DC4 88 1D 00 03 */ lbz r0, 3(r29) +/* 80084E88 00081DC8 28 00 00 00 */ cmplwi r0, 0 +/* 80084E8C 00081DCC 41 82 00 0C */ beq lbl_80084E98 +lbl_80084E90: +/* 80084E90 00081DD0 38 00 00 2E */ li r0, 0x2e +/* 80084E94 00081DD4 9C 1E FF FF */ stbu r0, -1(r30) +lbl_80084E98: +/* 80084E98 00081DD8 2C 06 00 00 */ cmpwi r6, 0 +/* 80084E9C 00081DDC 41 82 00 A0 */ beq lbl_80084F3C +/* 80084EA0 00081DE0 38 80 00 00 */ li r4, 0 +/* 80084EA4 00081DE4 38 60 00 30 */ li r3, 0x30 +/* 80084EA8 00081DE8 48 00 00 0C */ b lbl_80084EB4 +lbl_80084EAC: +/* 80084EAC 00081DEC 9C 7E FF FF */ stbu r3, -1(r30) +/* 80084EB0 00081DF0 38 84 00 01 */ addi r4, r4, 1 +lbl_80084EB4: +/* 80084EB4 00081DF4 88 01 00 20 */ lbz r0, 0x20(r1) +/* 80084EB8 00081DF8 7C 00 30 50 */ subf r0, r0, r6 +/* 80084EBC 00081DFC 7C 04 00 00 */ cmpw r4, r0 +/* 80084EC0 00081E00 41 80 FF EC */ blt lbl_80084EAC +/* 80084EC4 00081E04 7C 04 30 00 */ cmpw r4, r6 +/* 80084EC8 00081E08 7C 64 30 50 */ subf r3, r4, r6 +/* 80084ECC 00081E0C 40 80 00 78 */ bge lbl_80084F44 +/* 80084ED0 00081E10 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 80084ED4 00081E14 7C 09 03 A6 */ mtctr r0 +/* 80084ED8 00081E18 41 82 00 50 */ beq lbl_80084F28 +lbl_80084EDC: +/* 80084EDC 00081E1C 88 05 FF FF */ lbz r0, -1(r5) +/* 80084EE0 00081E20 98 1E FF FF */ stb r0, -1(r30) +/* 80084EE4 00081E24 88 05 FF FE */ lbz r0, -2(r5) +/* 80084EE8 00081E28 98 1E FF FE */ stb r0, -2(r30) +/* 80084EEC 00081E2C 88 05 FF FD */ lbz r0, -3(r5) +/* 80084EF0 00081E30 98 1E FF FD */ stb r0, -3(r30) +/* 80084EF4 00081E34 88 05 FF FC */ lbz r0, -4(r5) +/* 80084EF8 00081E38 98 1E FF FC */ stb r0, -4(r30) +/* 80084EFC 00081E3C 88 05 FF FB */ lbz r0, -5(r5) +/* 80084F00 00081E40 98 1E FF FB */ stb r0, -5(r30) +/* 80084F04 00081E44 88 05 FF FA */ lbz r0, -6(r5) +/* 80084F08 00081E48 98 1E FF FA */ stb r0, -6(r30) +/* 80084F0C 00081E4C 88 05 FF F9 */ lbz r0, -7(r5) +/* 80084F10 00081E50 98 1E FF F9 */ stb r0, -7(r30) +/* 80084F14 00081E54 8C 05 FF F8 */ lbzu r0, -8(r5) +/* 80084F18 00081E58 9C 1E FF F8 */ stbu r0, -8(r30) +/* 80084F1C 00081E5C 42 00 FF C0 */ bdnz lbl_80084EDC +/* 80084F20 00081E60 70 63 00 07 */ andi. r3, r3, 7 +/* 80084F24 00081E64 41 82 00 20 */ beq lbl_80084F44 +lbl_80084F28: +/* 80084F28 00081E68 7C 69 03 A6 */ mtctr r3 +lbl_80084F2C: +/* 80084F2C 00081E6C 8C 05 FF FF */ lbzu r0, -1(r5) +/* 80084F30 00081E70 9C 1E FF FF */ stbu r0, -1(r30) +/* 80084F34 00081E74 42 00 FF F8 */ bdnz lbl_80084F2C +/* 80084F38 00081E78 48 00 00 0C */ b lbl_80084F44 +lbl_80084F3C: +/* 80084F3C 00081E7C 38 00 00 30 */ li r0, 0x30 +/* 80084F40 00081E80 9C 1E FF FF */ stbu r0, -1(r30) +lbl_80084F44: +/* 80084F44 00081E84 88 01 00 1C */ lbz r0, 0x1c(r1) +/* 80084F48 00081E88 7C 00 07 75 */ extsb. r0, r0 +/* 80084F4C 00081E8C 41 82 00 10 */ beq lbl_80084F5C +/* 80084F50 00081E90 38 00 00 2D */ li r0, 0x2d +/* 80084F54 00081E94 9C 1E FF FF */ stbu r0, -1(r30) +/* 80084F58 00081E98 48 00 00 2C */ b lbl_80084F84 +lbl_80084F5C: +/* 80084F5C 00081E9C 88 1D 00 01 */ lbz r0, 1(r29) +/* 80084F60 00081EA0 28 00 00 01 */ cmplwi r0, 1 +/* 80084F64 00081EA4 40 82 00 10 */ bne lbl_80084F74 +/* 80084F68 00081EA8 38 00 00 2B */ li r0, 0x2b +/* 80084F6C 00081EAC 9C 1E FF FF */ stbu r0, -1(r30) +/* 80084F70 00081EB0 48 00 00 14 */ b lbl_80084F84 +lbl_80084F74: +/* 80084F74 00081EB4 28 00 00 02 */ cmplwi r0, 2 +/* 80084F78 00081EB8 40 82 00 0C */ bne lbl_80084F84 +/* 80084F7C 00081EBC 38 00 00 20 */ li r0, 0x20 +/* 80084F80 00081EC0 9C 1E FF FF */ stbu r0, -1(r30) +lbl_80084F84: +/* 80084F84 00081EC4 7F C3 F3 78 */ mr r3, r30 +lbl_80084F88: +/* 80084F88 00081EC8 80 01 00 64 */ lwz r0, 0x64(r1) +/* 80084F8C 00081ECC CB E1 00 58 */ lfd f31, 0x58(r1) +/* 80084F90 00081ED0 83 E1 00 54 */ lwz r31, 0x54(r1) +/* 80084F94 00081ED4 7C 08 03 A6 */ mtlr r0 +/* 80084F98 00081ED8 83 C1 00 50 */ lwz r30, 0x50(r1) +/* 80084F9C 00081EDC 83 A1 00 4C */ lwz r29, 0x4c(r1) +/* 80084FA0 00081EE0 83 81 00 48 */ lwz r28, 0x48(r1) +/* 80084FA4 00081EE4 38 21 00 60 */ addi r1, r1, 0x60 +/* 80084FA8 00081EE8 4E 80 00 20 */ blr + +.global round_decimal +round_decimal: +/* 80084FAC 00081EEC 2C 04 00 00 */ cmpwi r4, 0 +/* 80084FB0 00081EF0 40 80 00 24 */ bge lbl_80084FD4 +lbl_80084FB4: +/* 80084FB4 00081EF4 38 A0 00 00 */ li r5, 0 +/* 80084FB8 00081EF8 98 A3 00 00 */ stb r5, 0(r3) +/* 80084FBC 00081EFC 38 80 00 01 */ li r4, 1 +/* 80084FC0 00081F00 38 00 00 30 */ li r0, 0x30 +/* 80084FC4 00081F04 B0 A3 00 02 */ sth r5, 2(r3) +/* 80084FC8 00081F08 98 83 00 04 */ stb r4, 4(r3) +/* 80084FCC 00081F0C 98 03 00 05 */ stb r0, 5(r3) +/* 80084FD0 00081F10 4E 80 00 20 */ blr +lbl_80084FD4: +/* 80084FD4 00081F14 88 03 00 04 */ lbz r0, 4(r3) +/* 80084FD8 00081F18 7C 04 00 00 */ cmpw r4, r0 +/* 80084FDC 00081F1C 4C 80 00 20 */ bgelr +/* 80084FE0 00081F20 7C A3 22 14 */ add r5, r3, r4 +/* 80084FE4 00081F24 39 05 00 06 */ addi r8, r5, 6 +/* 80084FE8 00081F28 8C A8 FF FF */ lbzu r5, -1(r8) +/* 80084FEC 00081F2C 38 A5 FF D0 */ addi r5, r5, -48 +/* 80084FF0 00081F30 7C A6 07 74 */ extsb r6, r5 +/* 80084FF4 00081F34 2C 06 00 05 */ cmpwi r6, 5 +/* 80084FF8 00081F38 40 82 00 44 */ bne lbl_8008503C +/* 80084FFC 00081F3C 7C A3 02 14 */ add r5, r3, r0 +/* 80085000 00081F40 38 A5 00 05 */ addi r5, r5, 5 +lbl_80085004: +/* 80085004 00081F44 38 A5 FF FF */ addi r5, r5, -1 +/* 80085008 00081F48 7C 05 40 40 */ cmplw r5, r8 +/* 8008500C 00081F4C 40 81 00 10 */ ble lbl_8008501C +/* 80085010 00081F50 88 05 00 00 */ lbz r0, 0(r5) +/* 80085014 00081F54 2C 00 00 30 */ cmpwi r0, 0x30 +/* 80085018 00081F58 41 82 FF EC */ beq lbl_80085004 +lbl_8008501C: +/* 8008501C 00081F5C 7C 05 40 40 */ cmplw r5, r8 +/* 80085020 00081F60 40 82 00 10 */ bne lbl_80085030 +/* 80085024 00081F64 88 08 FF FF */ lbz r0, -1(r8) +/* 80085028 00081F68 54 00 07 FE */ clrlwi r0, r0, 0x1f +/* 8008502C 00081F6C 48 00 00 08 */ b lbl_80085034 +lbl_80085030: +/* 80085030 00081F70 38 00 00 01 */ li r0, 1 +lbl_80085034: +/* 80085034 00081F74 7C 05 03 78 */ mr r5, r0 +/* 80085038 00081F78 48 00 00 64 */ b lbl_8008509C +lbl_8008503C: +/* 8008503C 00081F7C 38 A0 00 05 */ li r5, 5 +/* 80085040 00081F80 7C C0 2A 38 */ eqv r0, r6, r5 +/* 80085044 00081F84 7C A6 28 10 */ subfc r5, r6, r5 +/* 80085048 00081F88 54 00 0F FE */ srwi r0, r0, 0x1f +/* 8008504C 00081F8C 7C A0 01 94 */ addze r5, r0 +/* 80085050 00081F90 54 A5 07 FE */ clrlwi r5, r5, 0x1f +/* 80085054 00081F94 48 00 00 48 */ b lbl_8008509C +lbl_80085058: +/* 80085058 00081F98 8C 08 FF FF */ lbzu r0, -1(r8) +/* 8008505C 00081F9C 7C E0 2A 14 */ add r7, r0, r5 +/* 80085060 00081FA0 38 E7 FF D0 */ addi r7, r7, -48 +/* 80085064 00081FA4 7C E5 07 74 */ extsb r5, r7 +/* 80085068 00081FA8 7C A0 32 38 */ eqv r0, r5, r6 +/* 8008506C 00081FAC 7C A5 30 10 */ subfc r5, r5, r6 +/* 80085070 00081FB0 54 00 0F FE */ srwi r0, r0, 0x1f +/* 80085074 00081FB4 7C A0 01 94 */ addze r5, r0 +/* 80085078 00081FB8 54 A5 07 FF */ clrlwi. r5, r5, 0x1f +/* 8008507C 00081FBC 40 82 00 0C */ bne lbl_80085088 +/* 80085080 00081FC0 7C E0 07 75 */ extsb. r0, r7 +/* 80085084 00081FC4 40 82 00 0C */ bne lbl_80085090 +lbl_80085088: +/* 80085088 00081FC8 38 84 FF FF */ addi r4, r4, -1 +/* 8008508C 00081FCC 48 00 00 14 */ b lbl_800850A0 +lbl_80085090: +/* 80085090 00081FD0 38 07 00 30 */ addi r0, r7, 0x30 +/* 80085094 00081FD4 98 08 00 00 */ stb r0, 0(r8) +/* 80085098 00081FD8 48 00 00 10 */ b lbl_800850A8 +lbl_8008509C: +/* 8008509C 00081FDC 38 C0 00 09 */ li r6, 9 +lbl_800850A0: +/* 800850A0 00081FE0 2C 04 00 00 */ cmpwi r4, 0 +/* 800850A4 00081FE4 40 82 FF B4 */ bne lbl_80085058 +lbl_800850A8: +/* 800850A8 00081FE8 2C 05 00 00 */ cmpwi r5, 0 +/* 800850AC 00081FEC 41 82 00 24 */ beq lbl_800850D0 +/* 800850B0 00081FF0 A8 A3 00 02 */ lha r5, 2(r3) +/* 800850B4 00081FF4 38 80 00 01 */ li r4, 1 +/* 800850B8 00081FF8 38 00 00 31 */ li r0, 0x31 +/* 800850BC 00081FFC 38 A5 00 01 */ addi r5, r5, 1 +/* 800850C0 00082000 B0 A3 00 02 */ sth r5, 2(r3) +/* 800850C4 00082004 98 83 00 04 */ stb r4, 4(r3) +/* 800850C8 00082008 98 03 00 05 */ stb r0, 5(r3) +/* 800850CC 0008200C 4E 80 00 20 */ blr +lbl_800850D0: +/* 800850D0 00082010 2C 04 00 00 */ cmpwi r4, 0 +/* 800850D4 00082014 41 82 FE E0 */ beq lbl_80084FB4 +/* 800850D8 00082018 98 83 00 04 */ stb r4, 4(r3) +/* 800850DC 0008201C 4E 80 00 20 */ blr + +.global longlong2str +longlong2str: +/* 800850E0 00082020 7C 08 02 A6 */ mflr r0 +/* 800850E4 00082024 90 01 00 04 */ stw r0, 4(r1) +/* 800850E8 00082028 38 00 00 00 */ li r0, 0 +/* 800850EC 0008202C 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 800850F0 00082030 BE C1 00 18 */ stmw r22, 0x18(r1) +/* 800850F4 00082034 3A E5 00 00 */ addi r23, r5, 0 +/* 800850F8 00082038 7C 85 02 78 */ xor r5, r4, r0 +/* 800850FC 0008203C 3B 77 FF FF */ addi r27, r23, -1 +/* 80085100 00082040 3B 06 00 00 */ addi r24, r6, 0 +/* 80085104 00082044 3B C4 00 00 */ addi r30, r4, 0 +/* 80085108 00082048 3B E3 00 00 */ addi r31, r3, 0 +/* 8008510C 0008204C 3B 20 00 00 */ li r25, 0 +/* 80085110 00082050 3B 40 00 00 */ li r26, 0 +/* 80085114 00082054 98 17 FF FF */ stb r0, -1(r23) +/* 80085118 00082058 7C 60 02 78 */ xor r0, r3, r0 +/* 8008511C 0008205C 7C A0 03 79 */ or. r0, r5, r0 +/* 80085120 00082060 40 82 00 30 */ bne lbl_80085150 +/* 80085124 00082064 80 18 00 0C */ lwz r0, 0xc(r24) +/* 80085128 00082068 2C 00 00 00 */ cmpwi r0, 0 +/* 8008512C 0008206C 40 82 00 24 */ bne lbl_80085150 +/* 80085130 00082070 88 18 00 03 */ lbz r0, 3(r24) +/* 80085134 00082074 28 00 00 00 */ cmplwi r0, 0 +/* 80085138 00082078 41 82 00 10 */ beq lbl_80085148 +/* 8008513C 0008207C 88 18 00 05 */ lbz r0, 5(r24) +/* 80085140 00082080 28 00 00 6F */ cmplwi r0, 0x6f +/* 80085144 00082084 41 82 00 0C */ beq lbl_80085150 +lbl_80085148: +/* 80085148 00082088 7F 63 DB 78 */ mr r3, r27 +/* 8008514C 0008208C 48 00 02 60 */ b lbl_800853AC +lbl_80085150: +/* 80085150 00082090 88 B8 00 05 */ lbz r5, 5(r24) +/* 80085154 00082094 38 05 FF A8 */ addi r0, r5, -88 +/* 80085158 00082098 28 00 00 20 */ cmplwi r0, 0x20 +/* 8008515C 0008209C 41 81 00 8C */ bgt lbl_800851E8 +/* 80085160 000820A0 3C A0 80 3B */ lis r5, "@1009"@ha +/* 80085164 000820A4 38 A5 EC D8 */ addi r5, r5, "@1009"@l +/* 80085168 000820A8 54 00 10 3A */ slwi r0, r0, 2 +/* 8008516C 000820AC 7C 05 00 2E */ lwzx r0, r5, r0 +/* 80085170 000820B0 7C 09 03 A6 */ mtctr r0 +/* 80085174 000820B4 4E 80 04 20 */ bctr +lbl_80085178: +/* 80085178 000820B8 38 00 00 00 */ li r0, 0 +/* 8008517C 000820BC 6C 65 80 00 */ xoris r5, r3, 0x8000 +/* 80085180 000820C0 6C 03 80 00 */ xoris r3, r0, 0x8000 +/* 80085184 000820C4 7C 00 20 10 */ subfc r0, r0, r4 +/* 80085188 000820C8 7C 63 29 10 */ subfe r3, r3, r5 +/* 8008518C 000820CC 7C 65 29 10 */ subfe r3, r5, r5 +/* 80085190 000820D0 7C 63 00 D1 */ neg. r3, r3 +/* 80085194 000820D4 3B 80 00 0A */ li r28, 0xa +/* 80085198 000820D8 3B A0 00 00 */ li r29, 0 +/* 8008519C 000820DC 41 82 00 4C */ beq lbl_800851E8 +/* 800851A0 000820E0 23 DE 00 00 */ subfic r30, r30, 0 +/* 800851A4 000820E4 7F FF 01 90 */ subfze r31, r31 +/* 800851A8 000820E8 3B 20 00 01 */ li r25, 1 +/* 800851AC 000820EC 48 00 00 3C */ b lbl_800851E8 +lbl_800851B0: +/* 800851B0 000820F0 38 00 00 00 */ li r0, 0 +/* 800851B4 000820F4 98 18 00 01 */ stb r0, 1(r24) +/* 800851B8 000820F8 3B 80 00 08 */ li r28, 8 +/* 800851BC 000820FC 3B A0 00 00 */ li r29, 0 +/* 800851C0 00082100 48 00 00 28 */ b lbl_800851E8 +lbl_800851C4: +/* 800851C4 00082104 38 00 00 00 */ li r0, 0 +/* 800851C8 00082108 98 18 00 01 */ stb r0, 1(r24) +/* 800851CC 0008210C 3B 80 00 0A */ li r28, 0xa +/* 800851D0 00082110 3B A0 00 00 */ li r29, 0 +/* 800851D4 00082114 48 00 00 14 */ b lbl_800851E8 +lbl_800851D8: +/* 800851D8 00082118 38 00 00 00 */ li r0, 0 +/* 800851DC 0008211C 98 18 00 01 */ stb r0, 1(r24) +/* 800851E0 00082120 3B 80 00 10 */ li r28, 0x10 +/* 800851E4 00082124 3B A0 00 00 */ li r29, 0 +lbl_800851E8: +/* 800851E8 00082128 38 7F 00 00 */ addi r3, r31, 0 +/* 800851EC 0008212C 38 9E 00 00 */ addi r4, r30, 0 +/* 800851F0 00082130 38 BD 00 00 */ addi r5, r29, 0 +/* 800851F4 00082134 38 DC 00 00 */ addi r6, r28, 0 +/* 800851F8 00082138 4B FF DC 45 */ bl __mod2u +/* 800851FC 0008213C 3A C4 00 00 */ addi r22, r4, 0 +/* 80085200 00082140 38 7F 00 00 */ addi r3, r31, 0 +/* 80085204 00082144 38 9E 00 00 */ addi r4, r30, 0 +/* 80085208 00082148 38 BD 00 00 */ addi r5, r29, 0 +/* 8008520C 0008214C 38 DC 00 00 */ addi r6, r28, 0 +/* 80085210 00082150 4B FF DA 09 */ bl __div2u +/* 80085214 00082154 2C 16 00 0A */ cmpwi r22, 0xa +/* 80085218 00082158 3B C4 00 00 */ addi r30, r4, 0 +/* 8008521C 0008215C 3B E3 00 00 */ addi r31, r3, 0 +/* 80085220 00082160 40 80 00 0C */ bge lbl_8008522C +/* 80085224 00082164 38 B6 00 30 */ addi r5, r22, 0x30 +/* 80085228 00082168 48 00 00 1C */ b lbl_80085244 +lbl_8008522C: +/* 8008522C 0008216C 88 18 00 05 */ lbz r0, 5(r24) +/* 80085230 00082170 28 00 00 78 */ cmplwi r0, 0x78 +/* 80085234 00082174 40 82 00 0C */ bne lbl_80085240 +/* 80085238 00082178 38 B6 00 57 */ addi r5, r22, 0x57 +/* 8008523C 0008217C 48 00 00 08 */ b lbl_80085244 +lbl_80085240: +/* 80085240 00082180 38 B6 00 37 */ addi r5, r22, 0x37 +lbl_80085244: +/* 80085244 00082184 38 80 00 00 */ li r4, 0 +/* 80085248 00082188 7F C3 22 78 */ xor r3, r30, r4 +/* 8008524C 0008218C 7F E0 22 78 */ xor r0, r31, r4 +/* 80085250 00082190 7C 60 03 79 */ or. r0, r3, r0 +/* 80085254 00082194 7C A0 07 74 */ extsb r0, r5 +/* 80085258 00082198 3B 5A 00 01 */ addi r26, r26, 1 +/* 8008525C 0008219C 9C 1B FF FF */ stbu r0, -1(r27) +/* 80085260 000821A0 40 82 FF 88 */ bne lbl_800851E8 +/* 80085264 000821A4 38 00 00 08 */ li r0, 8 +/* 80085268 000821A8 7F 83 02 78 */ xor r3, r28, r0 +/* 8008526C 000821AC 7F A0 22 78 */ xor r0, r29, r4 +/* 80085270 000821B0 7C 60 03 79 */ or. r0, r3, r0 +/* 80085274 000821B4 40 82 00 28 */ bne lbl_8008529C +/* 80085278 000821B8 88 18 00 03 */ lbz r0, 3(r24) +/* 8008527C 000821BC 28 00 00 00 */ cmplwi r0, 0 +/* 80085280 000821C0 41 82 00 1C */ beq lbl_8008529C +/* 80085284 000821C4 88 1B 00 00 */ lbz r0, 0(r27) +/* 80085288 000821C8 2C 00 00 30 */ cmpwi r0, 0x30 +/* 8008528C 000821CC 41 82 00 10 */ beq lbl_8008529C +/* 80085290 000821D0 38 00 00 30 */ li r0, 0x30 +/* 80085294 000821D4 9C 1B FF FF */ stbu r0, -1(r27) +/* 80085298 000821D8 3B 5A 00 01 */ addi r26, r26, 1 +lbl_8008529C: +/* 8008529C 000821DC 88 18 00 00 */ lbz r0, 0(r24) +/* 800852A0 000821E0 28 00 00 02 */ cmplwi r0, 2 +/* 800852A4 000821E4 40 82 00 5C */ bne lbl_80085300 +/* 800852A8 000821E8 80 18 00 08 */ lwz r0, 8(r24) +/* 800852AC 000821EC 2C 19 00 00 */ cmpwi r25, 0 +/* 800852B0 000821F0 90 18 00 0C */ stw r0, 0xc(r24) +/* 800852B4 000821F4 40 82 00 10 */ bne lbl_800852C4 +/* 800852B8 000821F8 88 18 00 01 */ lbz r0, 1(r24) +/* 800852BC 000821FC 28 00 00 00 */ cmplwi r0, 0 +/* 800852C0 00082200 41 82 00 10 */ beq lbl_800852D0 +lbl_800852C4: +/* 800852C4 00082204 80 78 00 0C */ lwz r3, 0xc(r24) +/* 800852C8 00082208 38 03 FF FF */ addi r0, r3, -1 +/* 800852CC 0008220C 90 18 00 0C */ stw r0, 0xc(r24) +lbl_800852D0: +/* 800852D0 00082210 38 60 00 10 */ li r3, 0x10 +/* 800852D4 00082214 38 00 00 00 */ li r0, 0 +/* 800852D8 00082218 7F 83 1A 78 */ xor r3, r28, r3 +/* 800852DC 0008221C 7F A0 02 78 */ xor r0, r29, r0 +/* 800852E0 00082220 7C 60 03 79 */ or. r0, r3, r0 +/* 800852E4 00082224 40 82 00 1C */ bne lbl_80085300 +/* 800852E8 00082228 88 18 00 03 */ lbz r0, 3(r24) +/* 800852EC 0008222C 28 00 00 00 */ cmplwi r0, 0 +/* 800852F0 00082230 41 82 00 10 */ beq lbl_80085300 +/* 800852F4 00082234 80 78 00 0C */ lwz r3, 0xc(r24) +/* 800852F8 00082238 38 03 FF FE */ addi r0, r3, -2 +/* 800852FC 0008223C 90 18 00 0C */ stw r0, 0xc(r24) +lbl_80085300: +/* 80085300 00082240 80 78 00 0C */ lwz r3, 0xc(r24) +/* 80085304 00082244 7C 1B B8 50 */ subf r0, r27, r23 +/* 80085308 00082248 7C 03 02 14 */ add r0, r3, r0 +/* 8008530C 0008224C 2C 00 01 FD */ cmpwi r0, 0x1fd +/* 80085310 00082250 40 81 00 0C */ ble lbl_8008531C +/* 80085314 00082254 38 60 00 00 */ li r3, 0 +/* 80085318 00082258 48 00 00 94 */ b lbl_800853AC +lbl_8008531C: +/* 8008531C 0008225C 38 60 00 30 */ li r3, 0x30 +/* 80085320 00082260 48 00 00 0C */ b lbl_8008532C +lbl_80085324: +/* 80085324 00082264 9C 7B FF FF */ stbu r3, -1(r27) +/* 80085328 00082268 3B 5A 00 01 */ addi r26, r26, 1 +lbl_8008532C: +/* 8008532C 0008226C 80 18 00 0C */ lwz r0, 0xc(r24) +/* 80085330 00082270 7C 1A 00 00 */ cmpw r26, r0 +/* 80085334 00082274 41 80 FF F0 */ blt lbl_80085324 +/* 80085338 00082278 38 60 00 10 */ li r3, 0x10 +/* 8008533C 0008227C 38 00 00 00 */ li r0, 0 +/* 80085340 00082280 7F 83 1A 78 */ xor r3, r28, r3 +/* 80085344 00082284 7F A0 02 78 */ xor r0, r29, r0 +/* 80085348 00082288 7C 60 03 79 */ or. r0, r3, r0 +/* 8008534C 0008228C 40 82 00 20 */ bne lbl_8008536C +/* 80085350 00082290 88 18 00 03 */ lbz r0, 3(r24) +/* 80085354 00082294 28 00 00 00 */ cmplwi r0, 0 +/* 80085358 00082298 41 82 00 14 */ beq lbl_8008536C +/* 8008535C 0008229C 88 78 00 05 */ lbz r3, 5(r24) +/* 80085360 000822A0 38 00 00 30 */ li r0, 0x30 +/* 80085364 000822A4 98 7B FF FF */ stb r3, -1(r27) +/* 80085368 000822A8 9C 1B FF FE */ stbu r0, -2(r27) +lbl_8008536C: +/* 8008536C 000822AC 2C 19 00 00 */ cmpwi r25, 0 +/* 80085370 000822B0 41 82 00 10 */ beq lbl_80085380 +/* 80085374 000822B4 38 00 00 2D */ li r0, 0x2d +/* 80085378 000822B8 9C 1B FF FF */ stbu r0, -1(r27) +/* 8008537C 000822BC 48 00 00 2C */ b lbl_800853A8 +lbl_80085380: +/* 80085380 000822C0 88 18 00 01 */ lbz r0, 1(r24) +/* 80085384 000822C4 28 00 00 01 */ cmplwi r0, 1 +/* 80085388 000822C8 40 82 00 10 */ bne lbl_80085398 +/* 8008538C 000822CC 38 00 00 2B */ li r0, 0x2b +/* 80085390 000822D0 9C 1B FF FF */ stbu r0, -1(r27) +/* 80085394 000822D4 48 00 00 14 */ b lbl_800853A8 +lbl_80085398: +/* 80085398 000822D8 28 00 00 02 */ cmplwi r0, 2 +/* 8008539C 000822DC 40 82 00 0C */ bne lbl_800853A8 +/* 800853A0 000822E0 38 00 00 20 */ li r0, 0x20 +/* 800853A4 000822E4 9C 1B FF FF */ stbu r0, -1(r27) +lbl_800853A8: +/* 800853A8 000822E8 7F 63 DB 78 */ mr r3, r27 +lbl_800853AC: +/* 800853AC 000822EC BA C1 00 18 */ lmw r22, 0x18(r1) +/* 800853B0 000822F0 80 01 00 44 */ lwz r0, 0x44(r1) +/* 800853B4 000822F4 38 21 00 40 */ addi r1, r1, 0x40 +/* 800853B8 000822F8 7C 08 03 A6 */ mtlr r0 +/* 800853BC 000822FC 4E 80 00 20 */ blr + +.global long2str +long2str: +/* 800853C0 00082300 38 E0 00 00 */ li r7, 0 +/* 800853C4 00082304 98 E4 FF FF */ stb r7, -1(r4) +/* 800853C8 00082308 2C 03 00 00 */ cmpwi r3, 0 +/* 800853CC 0008230C 38 C4 FF FF */ addi r6, r4, -1 +/* 800853D0 00082310 39 00 00 00 */ li r8, 0 +/* 800853D4 00082314 38 E0 00 00 */ li r7, 0 +/* 800853D8 00082318 40 82 00 30 */ bne lbl_80085408 +/* 800853DC 0008231C 81 25 00 0C */ lwz r9, 0xc(r5) +/* 800853E0 00082320 2C 09 00 00 */ cmpwi r9, 0 +/* 800853E4 00082324 40 82 00 24 */ bne lbl_80085408 +/* 800853E8 00082328 89 25 00 03 */ lbz r9, 3(r5) +/* 800853EC 0008232C 28 09 00 00 */ cmplwi r9, 0 +/* 800853F0 00082330 41 82 00 10 */ beq lbl_80085400 +/* 800853F4 00082334 89 25 00 05 */ lbz r9, 5(r5) +/* 800853F8 00082338 28 09 00 6F */ cmplwi r9, 0x6f +/* 800853FC 0008233C 41 82 00 0C */ beq lbl_80085408 +lbl_80085400: +/* 80085400 00082340 7C C3 33 78 */ mr r3, r6 +/* 80085404 00082344 4E 80 00 20 */ blr +lbl_80085408: +/* 80085408 00082348 89 25 00 05 */ lbz r9, 5(r5) +/* 8008540C 0008234C 39 49 FF A8 */ addi r10, r9, -88 +/* 80085410 00082350 28 0A 00 20 */ cmplwi r10, 0x20 +/* 80085414 00082354 41 81 00 60 */ bgt lbl_80085474 +/* 80085418 00082358 3D 20 80 3B */ lis r9, "@1066"@ha +/* 8008541C 0008235C 39 29 ED 5C */ addi r9, r9, "@1066"@l +/* 80085420 00082360 55 4A 10 3A */ slwi r10, r10, 2 +/* 80085424 00082364 7D 29 50 2E */ lwzx r9, r9, r10 +/* 80085428 00082368 7D 29 03 A6 */ mtctr r9 +/* 8008542C 0008236C 4E 80 04 20 */ bctr +lbl_80085430: +/* 80085430 00082370 2C 03 00 00 */ cmpwi r3, 0 +/* 80085434 00082374 38 00 00 0A */ li r0, 0xa +/* 80085438 00082378 40 80 00 3C */ bge lbl_80085474 +/* 8008543C 0008237C 7C 63 00 D0 */ neg r3, r3 +/* 80085440 00082380 39 00 00 01 */ li r8, 1 +/* 80085444 00082384 48 00 00 30 */ b lbl_80085474 +lbl_80085448: +/* 80085448 00082388 38 00 00 00 */ li r0, 0 +/* 8008544C 0008238C 98 05 00 01 */ stb r0, 1(r5) +/* 80085450 00082390 38 00 00 08 */ li r0, 8 +/* 80085454 00082394 48 00 00 20 */ b lbl_80085474 +lbl_80085458: +/* 80085458 00082398 38 00 00 00 */ li r0, 0 +/* 8008545C 0008239C 98 05 00 01 */ stb r0, 1(r5) +/* 80085460 000823A0 38 00 00 0A */ li r0, 0xa +/* 80085464 000823A4 48 00 00 10 */ b lbl_80085474 +lbl_80085468: +/* 80085468 000823A8 38 00 00 00 */ li r0, 0 +/* 8008546C 000823AC 98 05 00 01 */ stb r0, 1(r5) +/* 80085470 000823B0 38 00 00 10 */ li r0, 0x10 +lbl_80085474: +/* 80085474 000823B4 7D 23 03 96 */ divwu r9, r3, r0 +/* 80085478 000823B8 7D 29 01 D6 */ mullw r9, r9, r0 +/* 8008547C 000823BC 7D 49 18 50 */ subf r10, r9, r3 +/* 80085480 000823C0 7C 63 03 96 */ divwu r3, r3, r0 +/* 80085484 000823C4 2C 0A 00 0A */ cmpwi r10, 0xa +/* 80085488 000823C8 40 80 00 0C */ bge lbl_80085494 +/* 8008548C 000823CC 39 4A 00 30 */ addi r10, r10, 0x30 +/* 80085490 000823D0 48 00 00 1C */ b lbl_800854AC +lbl_80085494: +/* 80085494 000823D4 89 25 00 05 */ lbz r9, 5(r5) +/* 80085498 000823D8 28 09 00 78 */ cmplwi r9, 0x78 +/* 8008549C 000823DC 40 82 00 0C */ bne lbl_800854A8 +/* 800854A0 000823E0 39 4A 00 57 */ addi r10, r10, 0x57 +/* 800854A4 000823E4 48 00 00 08 */ b lbl_800854AC +lbl_800854A8: +/* 800854A8 000823E8 39 4A 00 37 */ addi r10, r10, 0x37 +lbl_800854AC: +/* 800854AC 000823EC 7D 49 07 74 */ extsb r9, r10 +/* 800854B0 000823F0 99 26 FF FF */ stb r9, -1(r6) +/* 800854B4 000823F4 28 03 00 00 */ cmplwi r3, 0 +/* 800854B8 000823F8 38 C6 FF FF */ addi r6, r6, -1 +/* 800854BC 000823FC 38 E7 00 01 */ addi r7, r7, 1 +/* 800854C0 00082400 40 82 FF B4 */ bne lbl_80085474 +/* 800854C4 00082404 28 00 00 08 */ cmplwi r0, 8 +/* 800854C8 00082408 40 82 00 28 */ bne lbl_800854F0 +/* 800854CC 0008240C 88 65 00 03 */ lbz r3, 3(r5) +/* 800854D0 00082410 28 03 00 00 */ cmplwi r3, 0 +/* 800854D4 00082414 41 82 00 1C */ beq lbl_800854F0 +/* 800854D8 00082418 88 66 00 00 */ lbz r3, 0(r6) +/* 800854DC 0008241C 2C 03 00 30 */ cmpwi r3, 0x30 +/* 800854E0 00082420 41 82 00 10 */ beq lbl_800854F0 +/* 800854E4 00082424 38 60 00 30 */ li r3, 0x30 +/* 800854E8 00082428 9C 66 FF FF */ stbu r3, -1(r6) +/* 800854EC 0008242C 38 E7 00 01 */ addi r7, r7, 1 +lbl_800854F0: +/* 800854F0 00082430 88 65 00 00 */ lbz r3, 0(r5) +/* 800854F4 00082434 28 03 00 02 */ cmplwi r3, 2 +/* 800854F8 00082438 40 82 00 4C */ bne lbl_80085544 +/* 800854FC 0008243C 80 65 00 08 */ lwz r3, 8(r5) +/* 80085500 00082440 2C 08 00 00 */ cmpwi r8, 0 +/* 80085504 00082444 90 65 00 0C */ stw r3, 0xc(r5) +/* 80085508 00082448 40 82 00 10 */ bne lbl_80085518 +/* 8008550C 0008244C 88 65 00 01 */ lbz r3, 1(r5) +/* 80085510 00082450 28 03 00 00 */ cmplwi r3, 0 +/* 80085514 00082454 41 82 00 10 */ beq lbl_80085524 +lbl_80085518: +/* 80085518 00082458 80 65 00 0C */ lwz r3, 0xc(r5) +/* 8008551C 0008245C 38 63 FF FF */ addi r3, r3, -1 +/* 80085520 00082460 90 65 00 0C */ stw r3, 0xc(r5) +lbl_80085524: +/* 80085524 00082464 28 00 00 10 */ cmplwi r0, 0x10 +/* 80085528 00082468 40 82 00 1C */ bne lbl_80085544 +/* 8008552C 0008246C 88 65 00 03 */ lbz r3, 3(r5) +/* 80085530 00082470 28 03 00 00 */ cmplwi r3, 0 +/* 80085534 00082474 41 82 00 10 */ beq lbl_80085544 +/* 80085538 00082478 80 65 00 0C */ lwz r3, 0xc(r5) +/* 8008553C 0008247C 38 63 FF FE */ addi r3, r3, -2 +/* 80085540 00082480 90 65 00 0C */ stw r3, 0xc(r5) +lbl_80085544: +/* 80085544 00082484 81 25 00 0C */ lwz r9, 0xc(r5) +/* 80085548 00082488 7C 66 20 50 */ subf r3, r6, r4 +/* 8008554C 0008248C 7C 69 1A 14 */ add r3, r9, r3 +/* 80085550 00082490 2C 03 01 FD */ cmpwi r3, 0x1fd +/* 80085554 00082494 40 81 00 0C */ ble lbl_80085560 +/* 80085558 00082498 38 60 00 00 */ li r3, 0 +/* 8008555C 0008249C 4E 80 00 20 */ blr +lbl_80085560: +/* 80085560 000824A0 38 80 00 30 */ li r4, 0x30 +/* 80085564 000824A4 48 00 00 0C */ b lbl_80085570 +lbl_80085568: +/* 80085568 000824A8 9C 86 FF FF */ stbu r4, -1(r6) +/* 8008556C 000824AC 38 E7 00 01 */ addi r7, r7, 1 +lbl_80085570: +/* 80085570 000824B0 80 65 00 0C */ lwz r3, 0xc(r5) +/* 80085574 000824B4 7C 07 18 00 */ cmpw r7, r3 +/* 80085578 000824B8 41 80 FF F0 */ blt lbl_80085568 +/* 8008557C 000824BC 28 00 00 10 */ cmplwi r0, 0x10 +/* 80085580 000824C0 40 82 00 20 */ bne lbl_800855A0 +/* 80085584 000824C4 88 05 00 03 */ lbz r0, 3(r5) +/* 80085588 000824C8 28 00 00 00 */ cmplwi r0, 0 +/* 8008558C 000824CC 41 82 00 14 */ beq lbl_800855A0 +/* 80085590 000824D0 88 65 00 05 */ lbz r3, 5(r5) +/* 80085594 000824D4 38 00 00 30 */ li r0, 0x30 +/* 80085598 000824D8 98 66 FF FF */ stb r3, -1(r6) +/* 8008559C 000824DC 9C 06 FF FE */ stbu r0, -2(r6) +lbl_800855A0: +/* 800855A0 000824E0 2C 08 00 00 */ cmpwi r8, 0 +/* 800855A4 000824E4 41 82 00 10 */ beq lbl_800855B4 +/* 800855A8 000824E8 38 00 00 2D */ li r0, 0x2d +/* 800855AC 000824EC 9C 06 FF FF */ stbu r0, -1(r6) +/* 800855B0 000824F0 48 00 00 2C */ b lbl_800855DC +lbl_800855B4: +/* 800855B4 000824F4 88 05 00 01 */ lbz r0, 1(r5) +/* 800855B8 000824F8 28 00 00 01 */ cmplwi r0, 1 +/* 800855BC 000824FC 40 82 00 10 */ bne lbl_800855CC +/* 800855C0 00082500 38 00 00 2B */ li r0, 0x2b +/* 800855C4 00082504 9C 06 FF FF */ stbu r0, -1(r6) +/* 800855C8 00082508 48 00 00 14 */ b lbl_800855DC +lbl_800855CC: +/* 800855CC 0008250C 28 00 00 02 */ cmplwi r0, 2 +/* 800855D0 00082510 40 82 00 0C */ bne lbl_800855DC +/* 800855D4 00082514 38 00 00 20 */ li r0, 0x20 +/* 800855D8 00082518 9C 06 FF FF */ stbu r0, -1(r6) +lbl_800855DC: +/* 800855DC 0008251C 7C C3 33 78 */ mr r3, r6 +/* 800855E0 00082520 4E 80 00 20 */ blr + +.global parse_format +parse_format: +/* 800855E4 00082524 7C 08 02 A6 */ mflr r0 +/* 800855E8 00082528 90 01 00 04 */ stw r0, 4(r1) +/* 800855EC 0008252C 38 00 00 01 */ li r0, 1 +/* 800855F0 00082530 94 21 FF C8 */ stwu r1, -0x38(r1) +/* 800855F4 00082534 93 E1 00 34 */ stw r31, 0x34(r1) +/* 800855F8 00082538 3B E3 00 01 */ addi r31, r3, 1 +/* 800855FC 0008253C 93 C1 00 30 */ stw r30, 0x30(r1) +/* 80085600 00082540 3B C5 00 00 */ addi r30, r5, 0 +/* 80085604 00082544 93 A1 00 2C */ stw r29, 0x2c(r1) +/* 80085608 00082548 3B A4 00 00 */ addi r29, r4, 0 +/* 8008560C 0008254C 98 01 00 14 */ stb r0, 0x14(r1) +/* 80085610 00082550 38 00 00 00 */ li r0, 0 +/* 80085614 00082554 98 01 00 15 */ stb r0, 0x15(r1) +/* 80085618 00082558 98 01 00 16 */ stb r0, 0x16(r1) +/* 8008561C 0008255C 98 01 00 17 */ stb r0, 0x17(r1) +/* 80085620 00082560 98 01 00 18 */ stb r0, 0x18(r1) +/* 80085624 00082564 90 01 00 1C */ stw r0, 0x1c(r1) +/* 80085628 00082568 90 01 00 20 */ stw r0, 0x20(r1) +/* 8008562C 0008256C 88 63 00 01 */ lbz r3, 1(r3) +/* 80085630 00082570 7C 63 07 74 */ extsb r3, r3 +/* 80085634 00082574 2C 03 00 25 */ cmpwi r3, 0x25 +/* 80085638 00082578 40 82 00 30 */ bne lbl_80085668 +/* 8008563C 0008257C 98 61 00 19 */ stb r3, 0x19(r1) +/* 80085640 00082580 38 7F 00 01 */ addi r3, r31, 1 +/* 80085644 00082584 80 81 00 14 */ lwz r4, 0x14(r1) +/* 80085648 00082588 80 01 00 18 */ lwz r0, 0x18(r1) +/* 8008564C 0008258C 90 9E 00 00 */ stw r4, 0(r30) +/* 80085650 00082590 90 1E 00 04 */ stw r0, 4(r30) +/* 80085654 00082594 80 81 00 1C */ lwz r4, 0x1c(r1) +/* 80085658 00082598 80 01 00 20 */ lwz r0, 0x20(r1) +/* 8008565C 0008259C 90 9E 00 08 */ stw r4, 8(r30) +/* 80085660 000825A0 90 1E 00 0C */ stw r0, 0xc(r30) +/* 80085664 000825A4 48 00 04 3C */ b lbl_80085AA0 +lbl_80085668: +/* 80085668 000825A8 3C 80 80 3B */ lis r4, "@1185"@ha +/* 8008566C 000825AC 38 84 EE B0 */ addi r4, r4, "@1185"@l +lbl_80085670: +/* 80085670 000825B0 38 03 FF E0 */ addi r0, r3, -32 +/* 80085674 000825B4 28 00 00 10 */ cmplwi r0, 0x10 +/* 80085678 000825B8 38 A0 00 01 */ li r5, 1 +/* 8008567C 000825BC 41 81 00 68 */ bgt lbl_800856E4 +/* 80085680 000825C0 54 00 10 3A */ slwi r0, r0, 2 +/* 80085684 000825C4 7C 04 00 2E */ lwzx r0, r4, r0 +/* 80085688 000825C8 7C 09 03 A6 */ mtctr r0 +/* 8008568C 000825CC 4E 80 04 20 */ bctr +lbl_80085690: +/* 80085690 000825D0 38 00 00 00 */ li r0, 0 +/* 80085694 000825D4 98 01 00 14 */ stb r0, 0x14(r1) +/* 80085698 000825D8 48 00 00 50 */ b lbl_800856E8 +lbl_8008569C: +/* 8008569C 000825DC 38 00 00 01 */ li r0, 1 +/* 800856A0 000825E0 98 01 00 15 */ stb r0, 0x15(r1) +/* 800856A4 000825E4 48 00 00 44 */ b lbl_800856E8 +lbl_800856A8: +/* 800856A8 000825E8 88 01 00 15 */ lbz r0, 0x15(r1) +/* 800856AC 000825EC 28 00 00 01 */ cmplwi r0, 1 +/* 800856B0 000825F0 41 82 00 38 */ beq lbl_800856E8 +/* 800856B4 000825F4 38 00 00 02 */ li r0, 2 +/* 800856B8 000825F8 98 01 00 15 */ stb r0, 0x15(r1) +/* 800856BC 000825FC 48 00 00 2C */ b lbl_800856E8 +lbl_800856C0: +/* 800856C0 00082600 38 00 00 01 */ li r0, 1 +/* 800856C4 00082604 98 01 00 17 */ stb r0, 0x17(r1) +/* 800856C8 00082608 48 00 00 20 */ b lbl_800856E8 +lbl_800856CC: +/* 800856CC 0008260C 88 01 00 14 */ lbz r0, 0x14(r1) +/* 800856D0 00082610 28 00 00 00 */ cmplwi r0, 0 +/* 800856D4 00082614 41 82 00 14 */ beq lbl_800856E8 +/* 800856D8 00082618 38 00 00 02 */ li r0, 2 +/* 800856DC 0008261C 98 01 00 14 */ stb r0, 0x14(r1) +/* 800856E0 00082620 48 00 00 08 */ b lbl_800856E8 +lbl_800856E4: +/* 800856E4 00082624 38 A0 00 00 */ li r5, 0 +lbl_800856E8: +/* 800856E8 00082628 2C 05 00 00 */ cmpwi r5, 0 +/* 800856EC 0008262C 41 82 00 10 */ beq lbl_800856FC +/* 800856F0 00082630 8C 7F 00 01 */ lbzu r3, 1(r31) +/* 800856F4 00082634 7C 63 07 74 */ extsb r3, r3 +/* 800856F8 00082638 4B FF FF 78 */ b lbl_80085670 +lbl_800856FC: +/* 800856FC 0008263C 2C 03 00 2A */ cmpwi r3, 0x2a +/* 80085700 00082640 40 82 00 40 */ bne lbl_80085740 +/* 80085704 00082644 38 7D 00 00 */ addi r3, r29, 0 +/* 80085708 00082648 38 80 00 01 */ li r4, 1 +/* 8008570C 0008264C 4B FF CE E1 */ bl __va_arg +/* 80085710 00082650 80 03 00 00 */ lwz r0, 0(r3) +/* 80085714 00082654 2C 00 00 00 */ cmpwi r0, 0 +/* 80085718 00082658 90 01 00 1C */ stw r0, 0x1c(r1) +/* 8008571C 0008265C 40 80 00 18 */ bge lbl_80085734 +/* 80085720 00082660 38 00 00 00 */ li r0, 0 +/* 80085724 00082664 98 01 00 14 */ stb r0, 0x14(r1) +/* 80085728 00082668 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 8008572C 0008266C 7C 00 00 D0 */ neg r0, r0 +/* 80085730 00082670 90 01 00 1C */ stw r0, 0x1c(r1) +lbl_80085734: +/* 80085734 00082674 8C 7F 00 01 */ lbzu r3, 1(r31) +/* 80085738 00082678 7C 63 07 74 */ extsb r3, r3 +/* 8008573C 0008267C 48 00 00 40 */ b lbl_8008577C +lbl_80085740: +/* 80085740 00082680 3C 80 80 37 */ lis r4, __ctype_map@ha +/* 80085744 00082684 38 A4 16 20 */ addi r5, r4, __ctype_map@l +/* 80085748 00082688 48 00 00 20 */ b lbl_80085768 +lbl_8008574C: +/* 8008574C 0008268C 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 80085750 00082690 1C 00 00 0A */ mulli r0, r0, 0xa +/* 80085754 00082694 7C 63 02 14 */ add r3, r3, r0 +/* 80085758 00082698 38 03 FF D0 */ addi r0, r3, -48 +/* 8008575C 0008269C 90 01 00 1C */ stw r0, 0x1c(r1) +/* 80085760 000826A0 8C 7F 00 01 */ lbzu r3, 1(r31) +/* 80085764 000826A4 7C 63 07 74 */ extsb r3, r3 +lbl_80085768: +/* 80085768 000826A8 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 8008576C 000826AC 7C 85 02 14 */ add r4, r5, r0 +/* 80085770 000826B0 88 04 00 00 */ lbz r0, 0(r4) +/* 80085774 000826B4 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 80085778 000826B8 40 82 FF D4 */ bne lbl_8008574C +lbl_8008577C: +/* 8008577C 000826BC 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 80085780 000826C0 2C 00 01 FD */ cmpwi r0, 0x1fd +/* 80085784 000826C4 40 81 00 34 */ ble lbl_800857B8 +/* 80085788 000826C8 38 00 00 FF */ li r0, 0xff +/* 8008578C 000826CC 98 01 00 19 */ stb r0, 0x19(r1) +/* 80085790 000826D0 38 7F 00 01 */ addi r3, r31, 1 +/* 80085794 000826D4 80 81 00 14 */ lwz r4, 0x14(r1) +/* 80085798 000826D8 80 01 00 18 */ lwz r0, 0x18(r1) +/* 8008579C 000826DC 90 9E 00 00 */ stw r4, 0(r30) +/* 800857A0 000826E0 90 1E 00 04 */ stw r0, 4(r30) +/* 800857A4 000826E4 80 81 00 1C */ lwz r4, 0x1c(r1) +/* 800857A8 000826E8 80 01 00 20 */ lwz r0, 0x20(r1) +/* 800857AC 000826EC 90 9E 00 08 */ stw r4, 8(r30) +/* 800857B0 000826F0 90 1E 00 0C */ stw r0, 0xc(r30) +/* 800857B4 000826F4 48 00 02 EC */ b lbl_80085AA0 +lbl_800857B8: +/* 800857B8 000826F8 2C 03 00 2E */ cmpwi r3, 0x2e +/* 800857BC 000826FC 40 82 00 88 */ bne lbl_80085844 +/* 800857C0 00082700 38 00 00 01 */ li r0, 1 +/* 800857C4 00082704 98 01 00 16 */ stb r0, 0x16(r1) +/* 800857C8 00082708 8C 7F 00 01 */ lbzu r3, 1(r31) +/* 800857CC 0008270C 7C 63 07 74 */ extsb r3, r3 +/* 800857D0 00082710 2C 03 00 2A */ cmpwi r3, 0x2a +/* 800857D4 00082714 40 82 00 34 */ bne lbl_80085808 +/* 800857D8 00082718 38 7D 00 00 */ addi r3, r29, 0 +/* 800857DC 0008271C 38 80 00 01 */ li r4, 1 +/* 800857E0 00082720 4B FF CE 0D */ bl __va_arg +/* 800857E4 00082724 80 03 00 00 */ lwz r0, 0(r3) +/* 800857E8 00082728 2C 00 00 00 */ cmpwi r0, 0 +/* 800857EC 0008272C 90 01 00 20 */ stw r0, 0x20(r1) +/* 800857F0 00082730 40 80 00 0C */ bge lbl_800857FC +/* 800857F4 00082734 38 00 00 00 */ li r0, 0 +/* 800857F8 00082738 98 01 00 16 */ stb r0, 0x16(r1) +lbl_800857FC: +/* 800857FC 0008273C 8C 7F 00 01 */ lbzu r3, 1(r31) +/* 80085800 00082740 7C 63 07 74 */ extsb r3, r3 +/* 80085804 00082744 48 00 00 40 */ b lbl_80085844 +lbl_80085808: +/* 80085808 00082748 3C 80 80 37 */ lis r4, __ctype_map@ha +/* 8008580C 0008274C 38 A4 16 20 */ addi r5, r4, __ctype_map@l +/* 80085810 00082750 48 00 00 20 */ b lbl_80085830 +lbl_80085814: +/* 80085814 00082754 80 01 00 20 */ lwz r0, 0x20(r1) +/* 80085818 00082758 1C 00 00 0A */ mulli r0, r0, 0xa +/* 8008581C 0008275C 7C 63 02 14 */ add r3, r3, r0 +/* 80085820 00082760 38 03 FF D0 */ addi r0, r3, -48 +/* 80085824 00082764 90 01 00 20 */ stw r0, 0x20(r1) +/* 80085828 00082768 8C 7F 00 01 */ lbzu r3, 1(r31) +/* 8008582C 0008276C 7C 63 07 74 */ extsb r3, r3 +lbl_80085830: +/* 80085830 00082770 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 80085834 00082774 7C 85 02 14 */ add r4, r5, r0 +/* 80085838 00082778 88 04 00 00 */ lbz r0, 0(r4) +/* 8008583C 0008277C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 80085840 00082780 40 82 FF D4 */ bne lbl_80085814 +lbl_80085844: +/* 80085844 00082784 2C 03 00 68 */ cmpwi r3, 0x68 +/* 80085848 00082788 38 80 00 01 */ li r4, 1 +/* 8008584C 0008278C 41 82 00 20 */ beq lbl_8008586C +/* 80085850 00082790 40 80 00 10 */ bge lbl_80085860 +/* 80085854 00082794 2C 03 00 4C */ cmpwi r3, 0x4c +/* 80085858 00082798 41 82 00 60 */ beq lbl_800858B8 +/* 8008585C 0008279C 48 00 00 68 */ b lbl_800858C4 +lbl_80085860: +/* 80085860 000827A0 2C 03 00 6C */ cmpwi r3, 0x6c +/* 80085864 000827A4 41 82 00 2C */ beq lbl_80085890 +/* 80085868 000827A8 48 00 00 5C */ b lbl_800858C4 +lbl_8008586C: +/* 8008586C 000827AC 38 00 00 02 */ li r0, 2 +/* 80085870 000827B0 98 01 00 18 */ stb r0, 0x18(r1) +/* 80085874 000827B4 88 1F 00 01 */ lbz r0, 1(r31) +/* 80085878 000827B8 2C 00 00 68 */ cmpwi r0, 0x68 +/* 8008587C 000827BC 40 82 00 4C */ bne lbl_800858C8 +/* 80085880 000827C0 98 81 00 18 */ stb r4, 0x18(r1) +/* 80085884 000827C4 8C 7F 00 01 */ lbzu r3, 1(r31) +/* 80085888 000827C8 7C 63 07 74 */ extsb r3, r3 +/* 8008588C 000827CC 48 00 00 3C */ b lbl_800858C8 +lbl_80085890: +/* 80085890 000827D0 38 00 00 03 */ li r0, 3 +/* 80085894 000827D4 98 01 00 18 */ stb r0, 0x18(r1) +/* 80085898 000827D8 88 1F 00 01 */ lbz r0, 1(r31) +/* 8008589C 000827DC 2C 00 00 6C */ cmpwi r0, 0x6c +/* 800858A0 000827E0 40 82 00 28 */ bne lbl_800858C8 +/* 800858A4 000827E4 38 00 00 04 */ li r0, 4 +/* 800858A8 000827E8 98 01 00 18 */ stb r0, 0x18(r1) +/* 800858AC 000827EC 8C 7F 00 01 */ lbzu r3, 1(r31) +/* 800858B0 000827F0 7C 63 07 74 */ extsb r3, r3 +/* 800858B4 000827F4 48 00 00 14 */ b lbl_800858C8 +lbl_800858B8: +/* 800858B8 000827F8 38 00 00 05 */ li r0, 5 +/* 800858BC 000827FC 98 01 00 18 */ stb r0, 0x18(r1) +/* 800858C0 00082800 48 00 00 08 */ b lbl_800858C8 +lbl_800858C4: +/* 800858C4 00082804 38 80 00 00 */ li r4, 0 +lbl_800858C8: +/* 800858C8 00082808 2C 04 00 00 */ cmpwi r4, 0 +/* 800858CC 0008280C 41 82 00 0C */ beq lbl_800858D8 +/* 800858D0 00082810 8C 7F 00 01 */ lbzu r3, 1(r31) +/* 800858D4 00082814 7C 63 07 74 */ extsb r3, r3 +lbl_800858D8: +/* 800858D8 00082818 38 03 FF BB */ addi r0, r3, -69 +/* 800858DC 0008281C 98 61 00 19 */ stb r3, 0x19(r1) +/* 800858E0 00082820 28 00 00 33 */ cmplwi r0, 0x33 +/* 800858E4 00082824 41 81 01 90 */ bgt lbl_80085A74 +/* 800858E8 00082828 3C 60 80 3B */ lis r3, "@1186"@ha +/* 800858EC 0008282C 38 63 ED E0 */ addi r3, r3, "@1186"@l +/* 800858F0 00082830 54 00 10 3A */ slwi r0, r0, 2 +/* 800858F4 00082834 7C 03 00 2E */ lwzx r0, r3, r0 +/* 800858F8 00082838 7C 09 03 A6 */ mtctr r0 +/* 800858FC 0008283C 4E 80 04 20 */ bctr +lbl_80085900: +/* 80085900 00082840 88 01 00 18 */ lbz r0, 0x18(r1) +/* 80085904 00082844 28 00 00 05 */ cmplwi r0, 5 +/* 80085908 00082848 40 82 00 10 */ bne lbl_80085918 +/* 8008590C 0008284C 38 00 00 FF */ li r0, 0xff +/* 80085910 00082850 98 01 00 19 */ stb r0, 0x19(r1) +/* 80085914 00082854 48 00 01 68 */ b lbl_80085A7C +lbl_80085918: +/* 80085918 00082858 88 01 00 16 */ lbz r0, 0x16(r1) +/* 8008591C 0008285C 28 00 00 00 */ cmplwi r0, 0 +/* 80085920 00082860 40 82 00 10 */ bne lbl_80085930 +/* 80085924 00082864 38 00 00 01 */ li r0, 1 +/* 80085928 00082868 90 01 00 20 */ stw r0, 0x20(r1) +/* 8008592C 0008286C 48 00 01 50 */ b lbl_80085A7C +lbl_80085930: +/* 80085930 00082870 88 01 00 14 */ lbz r0, 0x14(r1) +/* 80085934 00082874 28 00 00 02 */ cmplwi r0, 2 +/* 80085938 00082878 40 82 01 44 */ bne lbl_80085A7C +/* 8008593C 0008287C 38 00 00 01 */ li r0, 1 +/* 80085940 00082880 98 01 00 14 */ stb r0, 0x14(r1) +/* 80085944 00082884 48 00 01 38 */ b lbl_80085A7C +lbl_80085948: +/* 80085948 00082888 88 01 00 18 */ lbz r0, 0x18(r1) +/* 8008594C 0008288C 28 00 00 02 */ cmplwi r0, 2 +/* 80085950 00082890 41 82 00 0C */ beq lbl_8008595C +/* 80085954 00082894 28 00 00 04 */ cmplwi r0, 4 +/* 80085958 00082898 40 82 00 10 */ bne lbl_80085968 +lbl_8008595C: +/* 8008595C 0008289C 38 00 00 FF */ li r0, 0xff +/* 80085960 000828A0 98 01 00 19 */ stb r0, 0x19(r1) +/* 80085964 000828A4 48 00 01 18 */ b lbl_80085A7C +lbl_80085968: +/* 80085968 000828A8 88 01 00 16 */ lbz r0, 0x16(r1) +/* 8008596C 000828AC 28 00 00 00 */ cmplwi r0, 0 +/* 80085970 000828B0 40 82 01 0C */ bne lbl_80085A7C +/* 80085974 000828B4 38 00 00 06 */ li r0, 6 +/* 80085978 000828B8 90 01 00 20 */ stw r0, 0x20(r1) +/* 8008597C 000828BC 48 00 01 00 */ b lbl_80085A7C +lbl_80085980: +/* 80085980 000828C0 80 01 00 20 */ lwz r0, 0x20(r1) +/* 80085984 000828C4 2C 00 00 00 */ cmpwi r0, 0 +/* 80085988 000828C8 40 82 00 0C */ bne lbl_80085994 +/* 8008598C 000828CC 38 00 00 01 */ li r0, 1 +/* 80085990 000828D0 90 01 00 20 */ stw r0, 0x20(r1) +lbl_80085994: +/* 80085994 000828D4 88 01 00 18 */ lbz r0, 0x18(r1) +/* 80085998 000828D8 28 00 00 02 */ cmplwi r0, 2 +/* 8008599C 000828DC 41 82 00 14 */ beq lbl_800859B0 +/* 800859A0 000828E0 28 00 00 04 */ cmplwi r0, 4 +/* 800859A4 000828E4 41 82 00 0C */ beq lbl_800859B0 +/* 800859A8 000828E8 28 00 00 01 */ cmplwi r0, 1 +/* 800859AC 000828EC 40 82 00 10 */ bne lbl_800859BC +lbl_800859B0: +/* 800859B0 000828F0 38 00 00 FF */ li r0, 0xff +/* 800859B4 000828F4 98 01 00 19 */ stb r0, 0x19(r1) +/* 800859B8 000828F8 48 00 00 C4 */ b lbl_80085A7C +lbl_800859BC: +/* 800859BC 000828FC 88 01 00 16 */ lbz r0, 0x16(r1) +/* 800859C0 00082900 28 00 00 00 */ cmplwi r0, 0 +/* 800859C4 00082904 40 82 00 B8 */ bne lbl_80085A7C +/* 800859C8 00082908 38 00 00 06 */ li r0, 6 +/* 800859CC 0008290C 90 01 00 20 */ stw r0, 0x20(r1) +/* 800859D0 00082910 48 00 00 AC */ b lbl_80085A7C +lbl_800859D4: +/* 800859D4 00082914 38 00 00 78 */ li r0, 0x78 +/* 800859D8 00082918 98 01 00 19 */ stb r0, 0x19(r1) +/* 800859DC 0008291C 38 00 00 01 */ li r0, 1 +/* 800859E0 00082920 38 60 00 03 */ li r3, 3 +/* 800859E4 00082924 98 01 00 17 */ stb r0, 0x17(r1) +/* 800859E8 00082928 38 00 00 08 */ li r0, 8 +/* 800859EC 0008292C 98 61 00 18 */ stb r3, 0x18(r1) +/* 800859F0 00082930 90 01 00 20 */ stw r0, 0x20(r1) +/* 800859F4 00082934 48 00 00 88 */ b lbl_80085A7C +lbl_800859F8: +/* 800859F8 00082938 88 61 00 18 */ lbz r3, 0x18(r1) +/* 800859FC 0008293C 28 03 00 03 */ cmplwi r3, 3 +/* 80085A00 00082940 40 82 00 10 */ bne lbl_80085A10 +/* 80085A04 00082944 38 00 00 06 */ li r0, 6 +/* 80085A08 00082948 98 01 00 18 */ stb r0, 0x18(r1) +/* 80085A0C 0008294C 48 00 00 70 */ b lbl_80085A7C +lbl_80085A10: +/* 80085A10 00082950 88 01 00 16 */ lbz r0, 0x16(r1) +/* 80085A14 00082954 28 00 00 00 */ cmplwi r0, 0 +/* 80085A18 00082958 40 82 00 0C */ bne lbl_80085A24 +/* 80085A1C 0008295C 28 03 00 00 */ cmplwi r3, 0 +/* 80085A20 00082960 41 82 00 5C */ beq lbl_80085A7C +lbl_80085A24: +/* 80085A24 00082964 38 00 00 FF */ li r0, 0xff +/* 80085A28 00082968 98 01 00 19 */ stb r0, 0x19(r1) +/* 80085A2C 0008296C 48 00 00 50 */ b lbl_80085A7C +lbl_80085A30: +/* 80085A30 00082970 88 01 00 18 */ lbz r0, 0x18(r1) +/* 80085A34 00082974 28 00 00 03 */ cmplwi r0, 3 +/* 80085A38 00082978 40 82 00 10 */ bne lbl_80085A48 +/* 80085A3C 0008297C 38 00 00 06 */ li r0, 6 +/* 80085A40 00082980 98 01 00 18 */ stb r0, 0x18(r1) +/* 80085A44 00082984 48 00 00 38 */ b lbl_80085A7C +lbl_80085A48: +/* 80085A48 00082988 28 00 00 00 */ cmplwi r0, 0 +/* 80085A4C 0008298C 41 82 00 30 */ beq lbl_80085A7C +/* 80085A50 00082990 38 00 00 FF */ li r0, 0xff +/* 80085A54 00082994 98 01 00 19 */ stb r0, 0x19(r1) +/* 80085A58 00082998 48 00 00 24 */ b lbl_80085A7C +lbl_80085A5C: +/* 80085A5C 0008299C 88 01 00 18 */ lbz r0, 0x18(r1) +/* 80085A60 000829A0 28 00 00 05 */ cmplwi r0, 5 +/* 80085A64 000829A4 40 82 00 18 */ bne lbl_80085A7C +/* 80085A68 000829A8 38 00 00 FF */ li r0, 0xff +/* 80085A6C 000829AC 98 01 00 19 */ stb r0, 0x19(r1) +/* 80085A70 000829B0 48 00 00 0C */ b lbl_80085A7C +lbl_80085A74: +/* 80085A74 000829B4 38 00 00 FF */ li r0, 0xff +/* 80085A78 000829B8 98 01 00 19 */ stb r0, 0x19(r1) +lbl_80085A7C: +/* 80085A7C 000829BC 80 81 00 14 */ lwz r4, 0x14(r1) +/* 80085A80 000829C0 38 7F 00 01 */ addi r3, r31, 1 +/* 80085A84 000829C4 80 01 00 18 */ lwz r0, 0x18(r1) +/* 80085A88 000829C8 90 9E 00 00 */ stw r4, 0(r30) +/* 80085A8C 000829CC 90 1E 00 04 */ stw r0, 4(r30) +/* 80085A90 000829D0 80 81 00 1C */ lwz r4, 0x1c(r1) +/* 80085A94 000829D4 80 01 00 20 */ lwz r0, 0x20(r1) +/* 80085A98 000829D8 90 9E 00 08 */ stw r4, 8(r30) +/* 80085A9C 000829DC 90 1E 00 0C */ stw r0, 0xc(r30) +lbl_80085AA0: +/* 80085AA0 000829E0 80 01 00 3C */ lwz r0, 0x3c(r1) +/* 80085AA4 000829E4 83 E1 00 34 */ lwz r31, 0x34(r1) +/* 80085AA8 000829E8 83 C1 00 30 */ lwz r30, 0x30(r1) +/* 80085AAC 000829EC 7C 08 03 A6 */ mtlr r0 +/* 80085AB0 000829F0 83 A1 00 2C */ lwz r29, 0x2c(r1) +/* 80085AB4 000829F4 38 21 00 38 */ addi r1, r1, 0x38 +/* 80085AB8 000829F8 4E 80 00 20 */ blr + +.section .rodata, "a" # 0x8036FFA0 - 0x803A8380 +.balign 8 +"@stringBase0": + .4byte 0x002D496E + .4byte 0x6600496E + .4byte 0x66004E61 + .4byte 0x4E000000 + +.section .data, "wa" # 0x803A8380 - 0x803E6000 +"@1009": + .4byte lbl_800851D8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_80085178 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_80085178 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851B0 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851C4 + .4byte lbl_800851E8 + .4byte lbl_800851E8 + .4byte lbl_800851D8 +"@1066": + .4byte lbl_80085468 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085430 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085430 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085448 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085458 + .4byte lbl_80085474 + .4byte lbl_80085474 + .4byte lbl_80085468 +"@1186": + .4byte lbl_80085994 + .4byte lbl_80085A74 + .4byte lbl_80085980 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085900 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_800859F8 + .4byte lbl_80085900 + .4byte lbl_80085994 + .4byte lbl_80085948 + .4byte lbl_80085980 + .4byte lbl_80085A74 + .4byte lbl_80085900 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A5C + .4byte lbl_80085900 + .4byte lbl_800859D4 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085A30 + .4byte lbl_80085A74 + .4byte lbl_80085900 + .4byte lbl_80085A74 + .4byte lbl_80085A74 + .4byte lbl_80085900 +"@1185": + .4byte lbl_800856A8 + .4byte lbl_800856E4 + .4byte lbl_800856E4 + .4byte lbl_800856C0 + .4byte lbl_800856E4 + .4byte lbl_800856E4 + .4byte lbl_800856E4 + .4byte lbl_800856E4 + .4byte lbl_800856E4 + .4byte lbl_800856E4 + .4byte lbl_800856E4 + .4byte lbl_8008569C + .4byte lbl_800856E4 + .4byte lbl_80085690 + .4byte lbl_800856E4 + .4byte lbl_800856E4 + .4byte lbl_800856CC +.section .sdata, "wa" # 0x80408AC0 - 0x804097C0 +"@wstringBase0": + .4byte 0 + .4byte 0 + +.section .sdata2, "a" # 0x8040B460 - 0x80414020 +.balign 8 +"@919": + .4byte 0 + .4byte 0 diff --git a/asm/MSL_C.PPCEABI.bare.H/scanf.s b/asm/MSL_C.PPCEABI.bare.H/scanf.s new file mode 100644 index 0000000..8c028c9 --- /dev/null +++ b/asm/MSL_C.PPCEABI.bare.H/scanf.s @@ -0,0 +1,49 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global __StringRead +__StringRead: +/* 80085AE8 00082A28 2C 05 00 01 */ cmpwi r5, 1 +/* 80085AEC 00082A2C 41 82 00 50 */ beq lbl_80085B3C +/* 80085AF0 00082A30 40 80 00 10 */ bge lbl_80085B00 +/* 80085AF4 00082A34 2C 05 00 00 */ cmpwi r5, 0 +/* 80085AF8 00082A38 40 80 00 14 */ bge lbl_80085B0C +/* 80085AFC 00082A3C 48 00 00 74 */ b lbl_80085B70 +lbl_80085B00: +/* 80085B00 00082A40 2C 05 00 03 */ cmpwi r5, 3 +/* 80085B04 00082A44 40 80 00 6C */ bge lbl_80085B70 +/* 80085B08 00082A48 48 00 00 60 */ b lbl_80085B68 +lbl_80085B0C: +/* 80085B0C 00082A4C 80 83 00 00 */ lwz r4, 0(r3) +/* 80085B10 00082A50 88 A4 00 00 */ lbz r5, 0(r4) +/* 80085B14 00082A54 7C A0 07 75 */ extsb. r0, r5 +/* 80085B18 00082A58 40 82 00 14 */ bne lbl_80085B2C +/* 80085B1C 00082A5C 38 00 00 01 */ li r0, 1 +/* 80085B20 00082A60 90 03 00 04 */ stw r0, 4(r3) +/* 80085B24 00082A64 38 60 FF FF */ li r3, -1 +/* 80085B28 00082A68 4E 80 00 20 */ blr +lbl_80085B2C: +/* 80085B2C 00082A6C 38 04 00 01 */ addi r0, r4, 1 +/* 80085B30 00082A70 90 03 00 00 */ stw r0, 0(r3) +/* 80085B34 00082A74 7C A3 07 74 */ extsb r3, r5 +/* 80085B38 00082A78 4E 80 00 20 */ blr +lbl_80085B3C: +/* 80085B3C 00082A7C 80 03 00 04 */ lwz r0, 4(r3) +/* 80085B40 00082A80 2C 00 00 00 */ cmpwi r0, 0 +/* 80085B44 00082A84 40 82 00 14 */ bne lbl_80085B58 +/* 80085B48 00082A88 80 A3 00 00 */ lwz r5, 0(r3) +/* 80085B4C 00082A8C 38 05 FF FF */ addi r0, r5, -1 +/* 80085B50 00082A90 90 03 00 00 */ stw r0, 0(r3) +/* 80085B54 00082A94 48 00 00 0C */ b lbl_80085B60 +lbl_80085B58: +/* 80085B58 00082A98 38 00 00 00 */ li r0, 0 +/* 80085B5C 00082A9C 90 03 00 04 */ stw r0, 4(r3) +lbl_80085B60: +/* 80085B60 00082AA0 7C 83 23 78 */ mr r3, r4 +/* 80085B64 00082AA4 4E 80 00 20 */ blr +lbl_80085B68: +/* 80085B68 00082AA8 80 63 00 04 */ lwz r3, 4(r3) +/* 80085B6C 00082AAC 4E 80 00 20 */ blr +lbl_80085B70: +/* 80085B70 00082AB0 38 60 00 00 */ li r3, 0 +/* 80085B74 00082AB4 4E 80 00 20 */ blr diff --git a/asm/MSL_C.PPCEABI.bare.H/strtoul.s b/asm/MSL_C.PPCEABI.bare.H/strtoul.s new file mode 100644 index 0000000..ec66ea2 --- /dev/null +++ b/asm/MSL_C.PPCEABI.bare.H/strtoul.s @@ -0,0 +1,387 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global strtol +strtol: +/* 80085EC4 00082E04 7C 08 02 A6 */ mflr r0 +/* 80085EC8 00082E08 3C C0 80 00 */ lis r6, 0x7FFFFFFF@ha +/* 80085ECC 00082E0C 90 01 00 04 */ stw r0, 4(r1) +/* 80085ED0 00082E10 38 00 00 00 */ li r0, 0 +/* 80085ED4 00082E14 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 80085ED8 00082E18 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 80085EDC 00082E1C 3B E4 00 00 */ addi r31, r4, 0 +/* 80085EE0 00082E20 38 86 FF FF */ addi r4, r6, 0x7FFFFFFF@l +/* 80085EE4 00082E24 93 C1 00 28 */ stw r30, 0x28(r1) +/* 80085EE8 00082E28 7C 7E 1B 78 */ mr r30, r3 +/* 80085EEC 00082E2C 3C 60 80 08 */ lis r3, __StringRead@ha +/* 80085EF0 00082E30 93 C1 00 14 */ stw r30, 0x14(r1) +/* 80085EF4 00082E34 38 C1 00 14 */ addi r6, r1, 0x14 +/* 80085EF8 00082E38 38 E1 00 24 */ addi r7, r1, 0x24 +/* 80085EFC 00082E3C 90 01 00 18 */ stw r0, 0x18(r1) +/* 80085F00 00082E40 38 03 5A E8 */ addi r0, r3, __StringRead@l +/* 80085F04 00082E44 38 65 00 00 */ addi r3, r5, 0 +/* 80085F08 00082E48 7C 05 03 78 */ mr r5, r0 +/* 80085F0C 00082E4C 39 01 00 20 */ addi r8, r1, 0x20 +/* 80085F10 00082E50 39 21 00 1C */ addi r9, r1, 0x1c +/* 80085F14 00082E54 48 00 01 4D */ bl __strtoul +/* 80085F18 00082E58 28 1F 00 00 */ cmplwi r31, 0 +/* 80085F1C 00082E5C 41 82 00 10 */ beq lbl_80085F2C +/* 80085F20 00082E60 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80085F24 00082E64 7C 1E 02 14 */ add r0, r30, r0 +/* 80085F28 00082E68 90 1F 00 00 */ stw r0, 0(r31) +lbl_80085F2C: +/* 80085F2C 00082E6C 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 80085F30 00082E70 2C 00 00 00 */ cmpwi r0, 0 +/* 80085F34 00082E74 40 82 00 34 */ bne lbl_80085F68 +/* 80085F38 00082E78 80 A1 00 20 */ lwz r5, 0x20(r1) +/* 80085F3C 00082E7C 2C 05 00 00 */ cmpwi r5, 0 +/* 80085F40 00082E80 40 82 00 14 */ bne lbl_80085F54 +/* 80085F44 00082E84 3C 80 80 00 */ lis r4, 0x7FFFFFFF@ha +/* 80085F48 00082E88 38 04 FF FF */ addi r0, r4, 0x7FFFFFFF@l +/* 80085F4C 00082E8C 7C 03 00 40 */ cmplw r3, r0 +/* 80085F50 00082E90 41 81 00 18 */ bgt lbl_80085F68 +lbl_80085F54: +/* 80085F54 00082E94 2C 05 00 00 */ cmpwi r5, 0 +/* 80085F58 00082E98 41 82 00 38 */ beq lbl_80085F90 +/* 80085F5C 00082E9C 3C 00 80 00 */ lis r0, 0x8000 +/* 80085F60 00082EA0 7C 03 00 40 */ cmplw r3, r0 +/* 80085F64 00082EA4 40 81 00 2C */ ble lbl_80085F90 +lbl_80085F68: +/* 80085F68 00082EA8 80 01 00 20 */ lwz r0, 0x20(r1) +/* 80085F6C 00082EAC 2C 00 00 00 */ cmpwi r0, 0 +/* 80085F70 00082EB0 41 82 00 0C */ beq lbl_80085F7C +/* 80085F74 00082EB4 3C 60 80 00 */ lis r3, 0x8000 +/* 80085F78 00082EB8 48 00 00 0C */ b lbl_80085F84 +lbl_80085F7C: +/* 80085F7C 00082EBC 3C 60 80 00 */ lis r3, 0x7FFFFFFF@ha +/* 80085F80 00082EC0 38 63 FF FF */ addi r3, r3, 0x7FFFFFFF@l +lbl_80085F84: +/* 80085F84 00082EC4 38 00 00 22 */ li r0, 0x22 +/* 80085F88 00082EC8 90 0D 92 A8 */ stw r0, errno@sda21(r13) +/* 80085F8C 00082ECC 48 00 00 10 */ b lbl_80085F9C +lbl_80085F90: +/* 80085F90 00082ED0 2C 05 00 00 */ cmpwi r5, 0 +/* 80085F94 00082ED4 41 82 00 08 */ beq lbl_80085F9C +/* 80085F98 00082ED8 7C 63 00 D0 */ neg r3, r3 +lbl_80085F9C: +/* 80085F9C 00082EDC 80 01 00 34 */ lwz r0, 0x34(r1) +/* 80085FA0 00082EE0 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 80085FA4 00082EE4 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 80085FA8 00082EE8 7C 08 03 A6 */ mtlr r0 +/* 80085FAC 00082EEC 38 21 00 30 */ addi r1, r1, 0x30 +/* 80085FB0 00082EF0 4E 80 00 20 */ blr + +.global strtoul +strtoul: +/* 80085FB4 00082EF4 7C 08 02 A6 */ mflr r0 +/* 80085FB8 00082EF8 3C C0 80 00 */ lis r6, 0x7FFFFFFF@ha +/* 80085FBC 00082EFC 90 01 00 04 */ stw r0, 4(r1) +/* 80085FC0 00082F00 38 00 00 00 */ li r0, 0 +/* 80085FC4 00082F04 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 80085FC8 00082F08 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 80085FCC 00082F0C 3B E4 00 00 */ addi r31, r4, 0 +/* 80085FD0 00082F10 38 86 FF FF */ addi r4, r6, 0x7FFFFFFF@l +/* 80085FD4 00082F14 93 C1 00 28 */ stw r30, 0x28(r1) +/* 80085FD8 00082F18 7C 7E 1B 78 */ mr r30, r3 +/* 80085FDC 00082F1C 3C 60 80 08 */ lis r3, __StringRead@ha +/* 80085FE0 00082F20 93 C1 00 14 */ stw r30, 0x14(r1) +/* 80085FE4 00082F24 38 C1 00 14 */ addi r6, r1, 0x14 +/* 80085FE8 00082F28 38 E1 00 24 */ addi r7, r1, 0x24 +/* 80085FEC 00082F2C 90 01 00 18 */ stw r0, 0x18(r1) +/* 80085FF0 00082F30 38 03 5A E8 */ addi r0, r3, __StringRead@l +/* 80085FF4 00082F34 38 65 00 00 */ addi r3, r5, 0 +/* 80085FF8 00082F38 7C 05 03 78 */ mr r5, r0 +/* 80085FFC 00082F3C 39 01 00 20 */ addi r8, r1, 0x20 +/* 80086000 00082F40 39 21 00 1C */ addi r9, r1, 0x1c +/* 80086004 00082F44 48 00 00 5D */ bl __strtoul +/* 80086008 00082F48 28 1F 00 00 */ cmplwi r31, 0 +/* 8008600C 00082F4C 41 82 00 10 */ beq lbl_8008601C +/* 80086010 00082F50 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80086014 00082F54 7C 1E 02 14 */ add r0, r30, r0 +/* 80086018 00082F58 90 1F 00 00 */ stw r0, 0(r31) +lbl_8008601C: +/* 8008601C 00082F5C 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 80086020 00082F60 2C 00 00 00 */ cmpwi r0, 0 +/* 80086024 00082F64 41 82 00 14 */ beq lbl_80086038 +/* 80086028 00082F68 38 00 00 22 */ li r0, 0x22 +/* 8008602C 00082F6C 90 0D 92 A8 */ stw r0, errno@sda21(r13) +/* 80086030 00082F70 38 60 FF FF */ li r3, -1 +/* 80086034 00082F74 48 00 00 14 */ b lbl_80086048 +lbl_80086038: +/* 80086038 00082F78 80 01 00 20 */ lwz r0, 0x20(r1) +/* 8008603C 00082F7C 2C 00 00 00 */ cmpwi r0, 0 +/* 80086040 00082F80 41 82 00 08 */ beq lbl_80086048 +/* 80086044 00082F84 7C 63 00 D0 */ neg r3, r3 +lbl_80086048: +/* 80086048 00082F88 80 01 00 34 */ lwz r0, 0x34(r1) +/* 8008604C 00082F8C 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 80086050 00082F90 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 80086054 00082F94 7C 08 03 A6 */ mtlr r0 +/* 80086058 00082F98 38 21 00 30 */ addi r1, r1, 0x30 +/* 8008605C 00082F9C 4E 80 00 20 */ blr + +.global __strtoul +__strtoul: +/* 80086060 00082FA0 7C 08 02 A6 */ mflr r0 +/* 80086064 00082FA4 90 01 00 04 */ stw r0, 4(r1) +/* 80086068 00082FA8 38 00 00 00 */ li r0, 0 +/* 8008606C 00082FAC 94 21 FF A0 */ stwu r1, -0x60(r1) +/* 80086070 00082FB0 BE 41 00 28 */ stmw r18, 0x28(r1) +/* 80086074 00082FB4 7C 7C 1B 79 */ or. r28, r3, r3 +/* 80086078 00082FB8 3A E9 00 00 */ addi r23, r9, 0 +/* 8008607C 00082FBC 7D 15 43 78 */ mr r21, r8 +/* 80086080 00082FC0 3A C4 00 00 */ addi r22, r4, 0 +/* 80086084 00082FC4 3B A5 00 00 */ addi r29, r5, 0 +/* 80086088 00082FC8 3B C6 00 00 */ addi r30, r6, 0 +/* 8008608C 00082FCC 3A 67 00 00 */ addi r19, r7, 0 +/* 80086090 00082FD0 3B 00 00 01 */ li r24, 1 +/* 80086094 00082FD4 3B E0 00 00 */ li r31, 0 +/* 80086098 00082FD8 3B 60 00 00 */ li r27, 0 +/* 8008609C 00082FDC 3B 40 00 00 */ li r26, 0 +/* 800860A0 00082FE0 90 09 00 00 */ stw r0, 0(r9) +/* 800860A4 00082FE4 90 08 00 00 */ stw r0, 0(r8) +/* 800860A8 00082FE8 41 80 00 1C */ blt lbl_800860C4 +/* 800860AC 00082FEC 2C 1C 00 01 */ cmpwi r28, 1 +/* 800860B0 00082FF0 41 82 00 14 */ beq lbl_800860C4 +/* 800860B4 00082FF4 2C 1C 00 24 */ cmpwi r28, 0x24 +/* 800860B8 00082FF8 41 81 00 0C */ bgt lbl_800860C4 +/* 800860BC 00082FFC 2C 16 00 01 */ cmpwi r22, 1 +/* 800860C0 00083000 40 80 00 0C */ bge lbl_800860CC +lbl_800860C4: +/* 800860C4 00083004 3B 00 00 40 */ li r24, 0x40 +/* 800860C8 00083008 48 00 00 24 */ b lbl_800860EC +lbl_800860CC: +/* 800860CC 0008300C 39 9D 00 00 */ addi r12, r29, 0 +/* 800860D0 00083010 7D 88 03 A6 */ mtlr r12 +/* 800860D4 00083014 38 7E 00 00 */ addi r3, r30, 0 +/* 800860D8 00083018 3B E0 00 01 */ li r31, 1 +/* 800860DC 0008301C 38 80 00 00 */ li r4, 0 +/* 800860E0 00083020 38 A0 00 00 */ li r5, 0 +/* 800860E4 00083024 4E 80 00 21 */ blrl +/* 800860E8 00083028 7C 72 1B 78 */ mr r18, r3 +lbl_800860EC: +/* 800860EC 0008302C 2C 1C 00 00 */ cmpwi r28, 0 +/* 800860F0 00083030 41 82 00 0C */ beq lbl_800860FC +/* 800860F4 00083034 38 00 FF FF */ li r0, -1 +/* 800860F8 00083038 7F 40 E3 96 */ divwu r26, r0, r28 +lbl_800860FC: +/* 800860FC 0008303C 3C 60 80 37 */ lis r3, __ctype_map@ha +/* 80086100 00083040 3C 80 80 3B */ lis r4, "@410"@ha +/* 80086104 00083044 3B 23 16 20 */ addi r25, r3, __ctype_map@l +/* 80086108 00083048 3A 84 EE F8 */ addi r20, r4, "@410"@l +/* 8008610C 0008304C 48 00 02 38 */ b lbl_80086344 +lbl_80086110: +/* 80086110 00083050 28 18 00 10 */ cmplwi r24, 0x10 +/* 80086114 00083054 41 81 02 30 */ bgt lbl_80086344 +/* 80086118 00083058 57 00 10 3A */ slwi r0, r24, 2 +/* 8008611C 0008305C 7C 14 00 2E */ lwzx r0, r20, r0 +/* 80086120 00083060 7C 09 03 A6 */ mtctr r0 +/* 80086124 00083064 4E 80 04 20 */ bctr +lbl_80086128: +/* 80086128 00083068 56 40 06 3E */ clrlwi r0, r18, 0x18 +/* 8008612C 0008306C 7C 79 02 14 */ add r3, r25, r0 +/* 80086130 00083070 88 03 00 00 */ lbz r0, 0(r3) +/* 80086134 00083074 54 00 07 7D */ rlwinm. r0, r0, 0, 0x1d, 0x1e +/* 80086138 00083078 41 82 00 28 */ beq lbl_80086160 +/* 8008613C 0008307C 39 9D 00 00 */ addi r12, r29, 0 +/* 80086140 00083080 7D 88 03 A6 */ mtlr r12 +/* 80086144 00083084 38 7E 00 00 */ addi r3, r30, 0 +/* 80086148 00083088 38 80 00 00 */ li r4, 0 +/* 8008614C 0008308C 38 A0 00 00 */ li r5, 0 +/* 80086150 00083090 3B FF 00 01 */ addi r31, r31, 1 +/* 80086154 00083094 4E 80 00 21 */ blrl +/* 80086158 00083098 7C 72 1B 78 */ mr r18, r3 +/* 8008615C 0008309C 48 00 01 E8 */ b lbl_80086344 +lbl_80086160: +/* 80086160 000830A0 2C 12 00 2B */ cmpwi r18, 0x2b +/* 80086164 000830A4 40 82 00 28 */ bne lbl_8008618C +/* 80086168 000830A8 39 9D 00 00 */ addi r12, r29, 0 +/* 8008616C 000830AC 7D 88 03 A6 */ mtlr r12 +/* 80086170 000830B0 38 7E 00 00 */ addi r3, r30, 0 +/* 80086174 000830B4 38 80 00 00 */ li r4, 0 +/* 80086178 000830B8 38 A0 00 00 */ li r5, 0 +/* 8008617C 000830BC 3B FF 00 01 */ addi r31, r31, 1 +/* 80086180 000830C0 4E 80 00 21 */ blrl +/* 80086184 000830C4 7C 72 1B 78 */ mr r18, r3 +/* 80086188 000830C8 48 00 00 34 */ b lbl_800861BC +lbl_8008618C: +/* 8008618C 000830CC 2C 12 00 2D */ cmpwi r18, 0x2d +/* 80086190 000830D0 40 82 00 2C */ bne lbl_800861BC +/* 80086194 000830D4 39 9D 00 00 */ addi r12, r29, 0 +/* 80086198 000830D8 7D 88 03 A6 */ mtlr r12 +/* 8008619C 000830DC 38 7E 00 00 */ addi r3, r30, 0 +/* 800861A0 000830E0 38 80 00 00 */ li r4, 0 +/* 800861A4 000830E4 38 A0 00 00 */ li r5, 0 +/* 800861A8 000830E8 3B FF 00 01 */ addi r31, r31, 1 +/* 800861AC 000830EC 4E 80 00 21 */ blrl +/* 800861B0 000830F0 38 00 00 01 */ li r0, 1 +/* 800861B4 000830F4 90 15 00 00 */ stw r0, 0(r21) +/* 800861B8 000830F8 7C 72 1B 78 */ mr r18, r3 +lbl_800861BC: +/* 800861BC 000830FC 3B 00 00 02 */ li r24, 2 +/* 800861C0 00083100 48 00 01 84 */ b lbl_80086344 +lbl_800861C4: +/* 800861C4 00083104 2C 1C 00 00 */ cmpwi r28, 0 +/* 800861C8 00083108 41 82 00 0C */ beq lbl_800861D4 +/* 800861CC 0008310C 2C 1C 00 10 */ cmpwi r28, 0x10 +/* 800861D0 00083110 40 82 00 34 */ bne lbl_80086204 +lbl_800861D4: +/* 800861D4 00083114 2C 12 00 30 */ cmpwi r18, 0x30 +/* 800861D8 00083118 40 82 00 2C */ bne lbl_80086204 +/* 800861DC 0008311C 39 9D 00 00 */ addi r12, r29, 0 +/* 800861E0 00083120 7D 88 03 A6 */ mtlr r12 +/* 800861E4 00083124 38 7E 00 00 */ addi r3, r30, 0 +/* 800861E8 00083128 3B 00 00 04 */ li r24, 4 +/* 800861EC 0008312C 38 80 00 00 */ li r4, 0 +/* 800861F0 00083130 38 A0 00 00 */ li r5, 0 +/* 800861F4 00083134 3B FF 00 01 */ addi r31, r31, 1 +/* 800861F8 00083138 4E 80 00 21 */ blrl +/* 800861FC 0008313C 7C 72 1B 78 */ mr r18, r3 +/* 80086200 00083140 48 00 01 44 */ b lbl_80086344 +lbl_80086204: +/* 80086204 00083144 3B 00 00 08 */ li r24, 8 +/* 80086208 00083148 48 00 01 3C */ b lbl_80086344 +lbl_8008620C: +/* 8008620C 0008314C 2C 12 00 58 */ cmpwi r18, 0x58 +/* 80086210 00083150 41 82 00 0C */ beq lbl_8008621C +/* 80086214 00083154 2C 12 00 78 */ cmpwi r18, 0x78 +/* 80086218 00083158 40 82 00 30 */ bne lbl_80086248 +lbl_8008621C: +/* 8008621C 0008315C 39 9D 00 00 */ addi r12, r29, 0 +/* 80086220 00083160 7D 88 03 A6 */ mtlr r12 +/* 80086224 00083164 38 7E 00 00 */ addi r3, r30, 0 +/* 80086228 00083168 3B 80 00 10 */ li r28, 0x10 +/* 8008622C 0008316C 3B 00 00 08 */ li r24, 8 +/* 80086230 00083170 38 80 00 00 */ li r4, 0 +/* 80086234 00083174 38 A0 00 00 */ li r5, 0 +/* 80086238 00083178 3B FF 00 01 */ addi r31, r31, 1 +/* 8008623C 0008317C 4E 80 00 21 */ blrl +/* 80086240 00083180 7C 72 1B 78 */ mr r18, r3 +/* 80086244 00083184 48 00 01 00 */ b lbl_80086344 +lbl_80086248: +/* 80086248 00083188 2C 1C 00 00 */ cmpwi r28, 0 +/* 8008624C 0008318C 40 82 00 08 */ bne lbl_80086254 +/* 80086250 00083190 3B 80 00 08 */ li r28, 8 +lbl_80086254: +/* 80086254 00083194 3B 00 00 10 */ li r24, 0x10 +/* 80086258 00083198 48 00 00 EC */ b lbl_80086344 +lbl_8008625C: +/* 8008625C 0008319C 2C 1C 00 00 */ cmpwi r28, 0 +/* 80086260 000831A0 40 82 00 08 */ bne lbl_80086268 +/* 80086264 000831A4 3B 80 00 0A */ li r28, 0xa +lbl_80086268: +/* 80086268 000831A8 28 1A 00 00 */ cmplwi r26, 0 +/* 8008626C 000831AC 40 82 00 0C */ bne lbl_80086278 +/* 80086270 000831B0 38 00 FF FF */ li r0, -1 +/* 80086274 000831B4 7F 40 E3 96 */ divwu r26, r0, r28 +lbl_80086278: +/* 80086278 000831B8 56 40 06 3E */ clrlwi r0, r18, 0x18 +/* 8008627C 000831BC 7C 79 02 14 */ add r3, r25, r0 +/* 80086280 000831C0 88 63 00 00 */ lbz r3, 0(r3) +/* 80086284 000831C4 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b +/* 80086288 000831C8 41 82 00 2C */ beq lbl_800862B4 +/* 8008628C 000831CC 3A 52 FF D0 */ addi r18, r18, -48 +/* 80086290 000831D0 7C 12 E0 00 */ cmpw r18, r28 +/* 80086294 000831D4 41 80 00 60 */ blt lbl_800862F4 +/* 80086298 000831D8 2C 18 00 10 */ cmpwi r24, 0x10 +/* 8008629C 000831DC 40 82 00 0C */ bne lbl_800862A8 +/* 800862A0 000831E0 3B 00 00 20 */ li r24, 0x20 +/* 800862A4 000831E4 48 00 00 08 */ b lbl_800862AC +lbl_800862A8: +/* 800862A8 000831E8 3B 00 00 40 */ li r24, 0x40 +lbl_800862AC: +/* 800862AC 000831EC 3A 52 00 30 */ addi r18, r18, 0x30 +/* 800862B0 000831F0 48 00 00 94 */ b lbl_80086344 +lbl_800862B4: +/* 800862B4 000831F4 54 60 06 33 */ rlwinm. r0, r3, 0, 0x18, 0x19 +/* 800862B8 000831F8 41 82 00 18 */ beq lbl_800862D0 +/* 800862BC 000831FC 7E 43 93 78 */ mr r3, r18 +/* 800862C0 00083200 4B FF D5 9D */ bl toupper +/* 800862C4 00083204 38 03 FF C9 */ addi r0, r3, -55 +/* 800862C8 00083208 7C 00 E0 00 */ cmpw r0, r28 +/* 800862CC 0008320C 41 80 00 1C */ blt lbl_800862E8 +lbl_800862D0: +/* 800862D0 00083210 2C 18 00 10 */ cmpwi r24, 0x10 +/* 800862D4 00083214 40 82 00 0C */ bne lbl_800862E0 +/* 800862D8 00083218 3B 00 00 20 */ li r24, 0x20 +/* 800862DC 0008321C 48 00 00 68 */ b lbl_80086344 +lbl_800862E0: +/* 800862E0 00083220 3B 00 00 40 */ li r24, 0x40 +/* 800862E4 00083224 48 00 00 60 */ b lbl_80086344 +lbl_800862E8: +/* 800862E8 00083228 7E 43 93 78 */ mr r3, r18 +/* 800862EC 0008322C 4B FF D5 71 */ bl toupper +/* 800862F0 00083230 3A 43 FF C9 */ addi r18, r3, -55 +lbl_800862F4: +/* 800862F4 00083234 7C 1B D0 40 */ cmplw r27, r26 +/* 800862F8 00083238 40 81 00 0C */ ble lbl_80086304 +/* 800862FC 0008323C 38 00 00 01 */ li r0, 1 +/* 80086300 00083240 90 17 00 00 */ stw r0, 0(r23) +lbl_80086304: +/* 80086304 00083244 7F 7B E1 D6 */ mullw r27, r27, r28 +/* 80086308 00083248 20 1B FF FF */ subfic r0, r27, -1 +/* 8008630C 0008324C 7C 12 00 40 */ cmplw r18, r0 +/* 80086310 00083250 40 81 00 0C */ ble lbl_8008631C +/* 80086314 00083254 38 00 00 01 */ li r0, 1 +/* 80086318 00083258 90 17 00 00 */ stw r0, 0(r23) +lbl_8008631C: +/* 8008631C 0008325C 39 9D 00 00 */ addi r12, r29, 0 +/* 80086320 00083260 7D 88 03 A6 */ mtlr r12 +/* 80086324 00083264 38 7E 00 00 */ addi r3, r30, 0 +/* 80086328 00083268 7F 7B 92 14 */ add r27, r27, r18 +/* 8008632C 0008326C 3B 00 00 10 */ li r24, 0x10 +/* 80086330 00083270 38 80 00 00 */ li r4, 0 +/* 80086334 00083274 38 A0 00 00 */ li r5, 0 +/* 80086338 00083278 3B FF 00 01 */ addi r31, r31, 1 +/* 8008633C 0008327C 4E 80 00 21 */ blrl +/* 80086340 00083280 7C 72 1B 78 */ mr r18, r3 +lbl_80086344: +/* 80086344 00083284 7C 1F B0 00 */ cmpw r31, r22 +/* 80086348 00083288 41 81 00 14 */ bgt lbl_8008635C +/* 8008634C 0008328C 2C 12 FF FF */ cmpwi r18, -1 +/* 80086350 00083290 41 82 00 0C */ beq lbl_8008635C +/* 80086354 00083294 57 00 06 75 */ rlwinm. r0, r24, 0, 0x19, 0x1a +/* 80086358 00083298 41 82 FD B8 */ beq lbl_80086110 +lbl_8008635C: +/* 8008635C 0008329C 73 00 00 34 */ andi. r0, r24, 0x34 +/* 80086360 000832A0 40 82 00 10 */ bne lbl_80086370 +/* 80086364 000832A4 3B 60 00 00 */ li r27, 0 +/* 80086368 000832A8 3B E0 00 00 */ li r31, 0 +/* 8008636C 000832AC 48 00 00 08 */ b lbl_80086374 +lbl_80086370: +/* 80086370 000832B0 3B FF FF FF */ addi r31, r31, -1 +lbl_80086374: +/* 80086374 000832B4 7F AC EB 78 */ mr r12, r29 +/* 80086378 000832B8 93 F3 00 00 */ stw r31, 0(r19) +/* 8008637C 000832BC 7D 88 03 A6 */ mtlr r12 +/* 80086380 000832C0 38 7E 00 00 */ addi r3, r30, 0 +/* 80086384 000832C4 38 92 00 00 */ addi r4, r18, 0 +/* 80086388 000832C8 38 A0 00 01 */ li r5, 1 +/* 8008638C 000832CC 4E 80 00 21 */ blrl +/* 80086390 000832D0 7F 63 DB 78 */ mr r3, r27 +/* 80086394 000832D4 BA 41 00 28 */ lmw r18, 0x28(r1) +/* 80086398 000832D8 80 01 00 64 */ lwz r0, 0x64(r1) +/* 8008639C 000832DC 38 21 00 60 */ addi r1, r1, 0x60 +/* 800863A0 000832E0 7C 08 03 A6 */ mtlr r0 +/* 800863A4 000832E4 4E 80 00 20 */ blr + +.section .data, "wa" # 0x803A8380 - 0x803E6000 + .balign 8 +"@410": + .4byte lbl_80086344 + .4byte lbl_80086128 + .4byte lbl_800861C4 + .4byte lbl_80086344 + .4byte lbl_8008620C + .4byte lbl_80086344 + .4byte lbl_80086344 + .4byte lbl_80086344 + .4byte lbl_8008625C + .4byte lbl_80086344 + .4byte lbl_80086344 + .4byte lbl_80086344 + .4byte lbl_80086344 + .4byte lbl_80086344 + .4byte lbl_80086344 + .4byte lbl_80086344 + .4byte lbl_8008625C diff --git a/asm/MSL_C.PPCEABI.bare.H/trigf.s b/asm/MSL_C.PPCEABI.bare.H/trigf.s new file mode 100644 index 0000000..5168e4b --- /dev/null +++ b/asm/MSL_C.PPCEABI.bare.H/trigf.s @@ -0,0 +1,314 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 + +.global cos__Ff +cos__Ff: +/* 80086F30 00083E70 7C 08 02 A6 */ mflr r0 +/* 80086F34 00083E74 90 01 00 04 */ stw r0, 4(r1) +/* 80086F38 00083E78 94 21 FF F8 */ stwu r1, -8(r1) +/* 80086F3C 00083E7C 48 00 00 35 */ bl cosf +/* 80086F40 00083E80 80 01 00 0C */ lwz r0, 0xc(r1) +/* 80086F44 00083E84 38 21 00 08 */ addi r1, r1, 8 +/* 80086F48 00083E88 7C 08 03 A6 */ mtlr r0 +/* 80086F4C 00083E8C 4E 80 00 20 */ blr + +.global sin__Ff +sin__Ff: +/* 80086F50 00083E90 7C 08 02 A6 */ mflr r0 +/* 80086F54 00083E94 90 01 00 04 */ stw r0, 4(r1) +/* 80086F58 00083E98 94 21 FF F8 */ stwu r1, -8(r1) +/* 80086F5C 00083E9C 48 00 01 A9 */ bl sinf +/* 80086F60 00083EA0 80 01 00 0C */ lwz r0, 0xc(r1) +/* 80086F64 00083EA4 38 21 00 08 */ addi r1, r1, 8 +/* 80086F68 00083EA8 7C 08 03 A6 */ mtlr r0 +/* 80086F6C 00083EAC 4E 80 00 20 */ blr + +.global tanf +tanf: +/* 80086EEC 00083E2C 7C 08 02 A6 */ mflr r0 +/* 80086EF0 00083E30 90 01 00 04 */ stw r0, 4(r1) +/* 80086EF4 00083E34 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80086EF8 00083E38 DB E1 00 18 */ stfd f31, 0x18(r1) +/* 80086EFC 00083E3C DB C1 00 10 */ stfd f30, 0x10(r1) +/* 80086F00 00083E40 FF C0 08 90 */ fmr f30, f1 +/* 80086F04 00083E44 48 00 00 2D */ bl cos__Ff +/* 80086F08 00083E48 FF E0 08 90 */ fmr f31, f1 +/* 80086F0C 00083E4C FC 20 F0 90 */ fmr f1, f30 +/* 80086F10 00083E50 48 00 00 41 */ bl sin__Ff +/* 80086F14 00083E54 EC 21 F8 24 */ fdivs f1, f1, f31 +/* 80086F18 00083E58 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80086F1C 00083E5C CB E1 00 18 */ lfd f31, 0x18(r1) +/* 80086F20 00083E60 CB C1 00 10 */ lfd f30, 0x10(r1) +/* 80086F24 00083E64 7C 08 03 A6 */ mtlr r0 +/* 80086F28 00083E68 38 21 00 20 */ addi r1, r1, 0x20 +/* 80086F2C 00083E6C 4E 80 00 20 */ blr + +.global sinf +sinf: +/* 80087104 00084044 7C 08 02 A6 */ mflr r0 +/* 80087108 00084048 3C 60 80 3B */ lis r3, __four_over_pi_m1@ha +/* 8008710C 0008404C 90 01 00 04 */ stw r0, 4(r1) +/* 80087110 00084050 38 63 EF 48 */ addi r3, r3, __four_over_pi_m1@l +/* 80087114 00084054 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 80087118 00084058 DB E1 00 20 */ stfd f31, 0x20(r1) +/* 8008711C 0008405C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 80087120 00084060 D0 21 00 08 */ stfs f1, 8(r1) +/* 80087124 00084064 C0 02 8A 30 */ lfs f0, "@106"@sda21(r2) +/* 80087128 00084068 80 01 00 08 */ lwz r0, 8(r1) +/* 8008712C 0008406C C0 C1 00 08 */ lfs f6, 8(r1) +/* 80087130 00084070 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0 +/* 80087134 00084074 EC 20 01 B2 */ fmuls f1, f0, f6 +/* 80087138 00084078 41 82 00 1C */ beq lbl_80087154 +/* 8008713C 0008407C C0 02 8A 34 */ lfs f0, "@107"@sda21(r2) +/* 80087140 00084080 EC 01 00 28 */ fsubs f0, f1, f0 +/* 80087144 00084084 FC 00 00 1E */ fctiwz f0, f0 +/* 80087148 00084088 D8 01 00 10 */ stfd f0, 0x10(r1) +/* 8008714C 0008408C 80 81 00 14 */ lwz r4, 0x14(r1) +/* 80087150 00084090 48 00 00 18 */ b lbl_80087168 +lbl_80087154: +/* 80087154 00084094 C0 02 8A 34 */ lfs f0, "@107"@sda21(r2) +/* 80087158 00084098 EC 00 08 2A */ fadds f0, f0, f1 +/* 8008715C 0008409C FC 00 00 1E */ fctiwz f0, f0 +/* 80087160 000840A0 D8 01 00 10 */ stfd f0, 0x10(r1) +/* 80087164 000840A4 80 81 00 14 */ lwz r4, 0x14(r1) +lbl_80087168: +/* 80087168 000840A8 54 80 08 3C */ slwi r0, r4, 1 +/* 8008716C 000840AC C8 22 8A 40 */ lfd f1, "@110"@sda21(r2) +/* 80087170 000840B0 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 80087174 000840B4 C0 43 00 00 */ lfs f2, 0(r3) +/* 80087178 000840B8 90 01 00 14 */ stw r0, 0x14(r1) +/* 8008717C 000840BC 3C 00 43 30 */ lis r0, 0x4330 +/* 80087180 000840C0 C0 63 00 04 */ lfs f3, 4(r3) +/* 80087184 000840C4 54 9F 07 BE */ clrlwi r31, r4, 0x1e +/* 80087188 000840C8 90 01 00 10 */ stw r0, 0x10(r1) +/* 8008718C 000840CC C0 83 00 08 */ lfs f4, 8(r3) +/* 80087190 000840D0 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 80087194 000840D4 C0 A3 00 0C */ lfs f5, 0xc(r3) +/* 80087198 000840D8 EC 00 08 28 */ fsubs f0, f0, f1 +/* 8008719C 000840DC EC 06 00 28 */ fsubs f0, f6, f0 +/* 800871A0 000840E0 EC 02 01 BA */ fmadds f0, f2, f6, f0 +/* 800871A4 000840E4 EC 03 01 BA */ fmadds f0, f3, f6, f0 +/* 800871A8 000840E8 EC 04 01 BA */ fmadds f0, f4, f6, f0 +/* 800871AC 000840EC EF E5 01 BA */ fmadds f31, f5, f6, f0 +/* 800871B0 000840F0 FC 20 F8 90 */ fmr f1, f31 +/* 800871B4 000840F4 4B FF F9 91 */ bl fabsf__Ff +/* 800871B8 000840F8 C0 02 8A 38 */ lfs f0, "@108"@sda21(r2) +/* 800871BC 000840FC FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 800871C0 00084100 40 80 00 34 */ bge lbl_800871F4 +/* 800871C4 00084104 3C 60 80 37 */ lis r3, __sincos_on_quadrant@ha +/* 800871C8 00084108 57 E4 18 38 */ slwi r4, r31, 3 +/* 800871CC 0008410C 38 03 1F 5C */ addi r0, r3, __sincos_on_quadrant@l +/* 800871D0 00084110 7C 60 22 14 */ add r3, r0, r4 +/* 800871D4 00084114 C0 23 00 04 */ lfs f1, 4(r3) +/* 800871D8 00084118 3C 80 80 37 */ lis r4, __sincos_poly@ha +/* 800871DC 0008411C 38 84 1F 7C */ addi r4, r4, __sincos_poly@l +/* 800871E0 00084120 C0 03 00 00 */ lfs f0, 0(r3) +/* 800871E4 00084124 EC 3F 00 72 */ fmuls f1, f31, f1 +/* 800871E8 00084128 C0 44 00 24 */ lfs f2, 0x24(r4) +/* 800871EC 0008412C EC 22 00 7A */ fmadds f1, f2, f1, f0 +/* 800871F0 00084130 48 00 00 A0 */ b lbl_80087290 +lbl_800871F4: +/* 800871F4 00084134 57 E0 07 FF */ clrlwi. r0, r31, 0x1f +/* 800871F8 00084138 EC 9F 07 F2 */ fmuls f4, f31, f31 +/* 800871FC 0008413C 41 82 00 4C */ beq lbl_80087248 +/* 80087200 00084140 3C 60 80 37 */ lis r3, __sincos_poly@ha +/* 80087204 00084144 38 83 1F 7C */ addi r4, r3, __sincos_poly@l +/* 80087208 00084148 C0 44 00 00 */ lfs f2, 0(r4) +/* 8008720C 0008414C 3C 60 80 37 */ lis r3, __sincos_on_quadrant@ha +/* 80087210 00084150 C0 24 00 08 */ lfs f1, 8(r4) +/* 80087214 00084154 38 03 1F 5C */ addi r0, r3, __sincos_on_quadrant@l +/* 80087218 00084158 C0 04 00 10 */ lfs f0, 0x10(r4) +/* 8008721C 0008415C EC 62 09 3A */ fmadds f3, f2, f4, f1 +/* 80087220 00084160 C0 44 00 18 */ lfs f2, 0x18(r4) +/* 80087224 00084164 C0 24 00 20 */ lfs f1, 0x20(r4) +/* 80087228 00084168 57 E4 18 38 */ slwi r4, r31, 3 +/* 8008722C 0008416C 7C 60 22 14 */ add r3, r0, r4 +/* 80087230 00084170 EC 64 00 FA */ fmadds f3, f4, f3, f0 +/* 80087234 00084174 C0 03 00 00 */ lfs f0, 0(r3) +/* 80087238 00084178 EC 44 10 FA */ fmadds f2, f4, f3, f2 +/* 8008723C 0008417C EC 24 08 BA */ fmadds f1, f4, f2, f1 +/* 80087240 00084180 EC 21 00 32 */ fmuls f1, f1, f0 +/* 80087244 00084184 48 00 00 4C */ b lbl_80087290 +lbl_80087248: +/* 80087248 00084188 3C 60 80 37 */ lis r3, __sincos_poly@ha +/* 8008724C 0008418C 38 83 1F 7C */ addi r4, r3, __sincos_poly@l +/* 80087250 00084190 C0 44 00 04 */ lfs f2, 4(r4) +/* 80087254 00084194 3C 60 80 37 */ lis r3, __sincos_on_quadrant@ha +/* 80087258 00084198 C0 24 00 0C */ lfs f1, 0xc(r4) +/* 8008725C 0008419C 38 63 1F 5C */ addi r3, r3, __sincos_on_quadrant@l +/* 80087260 000841A0 57 E0 18 38 */ slwi r0, r31, 3 +/* 80087264 000841A4 EC 62 09 3A */ fmadds f3, f2, f4, f1 +/* 80087268 000841A8 C0 04 00 14 */ lfs f0, 0x14(r4) +/* 8008726C 000841AC C0 44 00 1C */ lfs f2, 0x1c(r4) +/* 80087270 000841B0 7C 63 02 14 */ add r3, r3, r0 +/* 80087274 000841B4 C0 24 00 24 */ lfs f1, 0x24(r4) +/* 80087278 000841B8 EC 64 00 FA */ fmadds f3, f4, f3, f0 +/* 8008727C 000841BC C0 03 00 04 */ lfs f0, 4(r3) +/* 80087280 000841C0 EC 44 10 FA */ fmadds f2, f4, f3, f2 +/* 80087284 000841C4 EC 24 08 BA */ fmadds f1, f4, f2, f1 +/* 80087288 000841C8 EC 3F 00 72 */ fmuls f1, f31, f1 +/* 8008728C 000841CC EC 21 00 32 */ fmuls f1, f1, f0 +lbl_80087290: +/* 80087290 000841D0 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 80087294 000841D4 CB E1 00 20 */ lfd f31, 0x20(r1) +/* 80087298 000841D8 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8008729C 000841DC 7C 08 03 A6 */ mtlr r0 +/* 800872A0 000841E0 38 21 00 28 */ addi r1, r1, 0x28 +/* 800872A4 000841E4 4E 80 00 20 */ blr + +.global cosf +cosf: +/* 80086F70 00083EB0 7C 08 02 A6 */ mflr r0 +/* 80086F74 00083EB4 3C 60 80 3B */ lis r3, __four_over_pi_m1@ha +/* 80086F78 00083EB8 90 01 00 04 */ stw r0, 4(r1) +/* 80086F7C 00083EBC 38 63 EF 48 */ addi r3, r3, __four_over_pi_m1@l +/* 80086F80 00083EC0 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 80086F84 00083EC4 DB E1 00 20 */ stfd f31, 0x20(r1) +/* 80086F88 00083EC8 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 80086F8C 00083ECC D0 21 00 08 */ stfs f1, 8(r1) +/* 80086F90 00083ED0 C0 02 8A 30 */ lfs f0, "@106"@sda21(r2) +/* 80086F94 00083ED4 80 01 00 08 */ lwz r0, 8(r1) +/* 80086F98 00083ED8 C0 C1 00 08 */ lfs f6, 8(r1) +/* 80086F9C 00083EDC 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0 +/* 80086FA0 00083EE0 EC 20 01 B2 */ fmuls f1, f0, f6 +/* 80086FA4 00083EE4 41 82 00 1C */ beq lbl_80086FC0 +/* 80086FA8 00083EE8 C0 02 8A 34 */ lfs f0, "@107"@sda21(r2) +/* 80086FAC 00083EEC EC 01 00 28 */ fsubs f0, f1, f0 +/* 80086FB0 00083EF0 FC 00 00 1E */ fctiwz f0, f0 +/* 80086FB4 00083EF4 D8 01 00 10 */ stfd f0, 0x10(r1) +/* 80086FB8 00083EF8 80 81 00 14 */ lwz r4, 0x14(r1) +/* 80086FBC 00083EFC 48 00 00 18 */ b lbl_80086FD4 +lbl_80086FC0: +/* 80086FC0 00083F00 C0 02 8A 34 */ lfs f0, "@107"@sda21(r2) +/* 80086FC4 00083F04 EC 00 08 2A */ fadds f0, f0, f1 +/* 80086FC8 00083F08 FC 00 00 1E */ fctiwz f0, f0 +/* 80086FCC 00083F0C D8 01 00 10 */ stfd f0, 0x10(r1) +/* 80086FD0 00083F10 80 81 00 14 */ lwz r4, 0x14(r1) +lbl_80086FD4: +/* 80086FD4 00083F14 54 80 08 3C */ slwi r0, r4, 1 +/* 80086FD8 00083F18 C8 22 8A 40 */ lfd f1, "@110"@sda21(r2) +/* 80086FDC 00083F1C 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 80086FE0 00083F20 C0 43 00 00 */ lfs f2, 0(r3) +/* 80086FE4 00083F24 90 01 00 14 */ stw r0, 0x14(r1) +/* 80086FE8 00083F28 3C 00 43 30 */ lis r0, 0x4330 +/* 80086FEC 00083F2C C0 63 00 04 */ lfs f3, 4(r3) +/* 80086FF0 00083F30 54 9F 07 BE */ clrlwi r31, r4, 0x1e +/* 80086FF4 00083F34 90 01 00 10 */ stw r0, 0x10(r1) +/* 80086FF8 00083F38 C0 83 00 08 */ lfs f4, 8(r3) +/* 80086FFC 00083F3C C8 01 00 10 */ lfd f0, 0x10(r1) +/* 80087000 00083F40 C0 A3 00 0C */ lfs f5, 0xc(r3) +/* 80087004 00083F44 EC 00 08 28 */ fsubs f0, f0, f1 +/* 80087008 00083F48 EC 06 00 28 */ fsubs f0, f6, f0 +/* 8008700C 00083F4C EC 02 01 BA */ fmadds f0, f2, f6, f0 +/* 80087010 00083F50 EC 03 01 BA */ fmadds f0, f3, f6, f0 +/* 80087014 00083F54 EC 04 01 BA */ fmadds f0, f4, f6, f0 +/* 80087018 00083F58 EF E5 01 BA */ fmadds f31, f5, f6, f0 +/* 8008701C 00083F5C FC 20 F8 90 */ fmr f1, f31 +/* 80087020 00083F60 4B FF FB 25 */ bl fabsf__Ff +/* 80087024 00083F64 C0 02 8A 38 */ lfs f0, "@108"@sda21(r2) +/* 80087028 00083F68 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 8008702C 00083F6C 40 80 00 24 */ bge lbl_80087050 +/* 80087030 00083F70 3C 60 80 37 */ lis r3, __sincos_on_quadrant@ha +/* 80087034 00083F74 57 E4 18 38 */ slwi r4, r31, 3 +/* 80087038 00083F78 38 03 1F 5C */ addi r0, r3, __sincos_on_quadrant@l +/* 8008703C 00083F7C 7C 60 22 14 */ add r3, r0, r4 +/* 80087040 00083F80 C0 23 00 00 */ lfs f1, 0(r3) +/* 80087044 00083F84 C0 03 00 04 */ lfs f0, 4(r3) +/* 80087048 00083F88 EC 3F 00 7C */ fnmsubs f1, f31, f1, f0 +/* 8008704C 00083F8C 48 00 00 A0 */ b lbl_800870EC +lbl_80087050: +/* 80087050 00083F90 57 E0 07 FF */ clrlwi. r0, r31, 0x1f +/* 80087054 00083F94 EC 9F 07 F2 */ fmuls f4, f31, f31 +/* 80087058 00083F98 41 82 00 50 */ beq lbl_800870A8 +/* 8008705C 00083F9C 3C 60 80 37 */ lis r3, __sincos_poly@ha +/* 80087060 00083FA0 38 83 1F 7C */ addi r4, r3, __sincos_poly@l +/* 80087064 00083FA4 C0 44 00 04 */ lfs f2, 4(r4) +/* 80087068 00083FA8 3C 60 80 37 */ lis r3, __sincos_on_quadrant@ha +/* 8008706C 00083FAC C0 24 00 0C */ lfs f1, 0xc(r4) +/* 80087070 00083FB0 38 03 1F 5C */ addi r0, r3, __sincos_on_quadrant@l +/* 80087074 00083FB4 C0 04 00 14 */ lfs f0, 0x14(r4) +/* 80087078 00083FB8 EC 62 09 3A */ fmadds f3, f2, f4, f1 +/* 8008707C 00083FBC C0 44 00 1C */ lfs f2, 0x1c(r4) +/* 80087080 00083FC0 C0 24 00 24 */ lfs f1, 0x24(r4) +/* 80087084 00083FC4 57 E4 18 38 */ slwi r4, r31, 3 +/* 80087088 00083FC8 7C 60 22 14 */ add r3, r0, r4 +/* 8008708C 00083FCC EC 64 00 FA */ fmadds f3, f4, f3, f0 +/* 80087090 00083FD0 C0 03 00 00 */ lfs f0, 0(r3) +/* 80087094 00083FD4 EC 44 10 FA */ fmadds f2, f4, f3, f2 +/* 80087098 00083FD8 EC 24 08 BE */ fnmadds f1, f4, f2, f1 +/* 8008709C 00083FDC EC 3F 00 72 */ fmuls f1, f31, f1 +/* 800870A0 00083FE0 EC 21 00 32 */ fmuls f1, f1, f0 +/* 800870A4 00083FE4 48 00 00 48 */ b lbl_800870EC +lbl_800870A8: +/* 800870A8 00083FE8 3C 60 80 37 */ lis r3, __sincos_poly@ha +/* 800870AC 00083FEC 38 83 1F 7C */ addi r4, r3, __sincos_poly@l +/* 800870B0 00083FF0 C0 44 00 00 */ lfs f2, 0(r4) +/* 800870B4 00083FF4 3C 60 80 37 */ lis r3, __sincos_on_quadrant@ha +/* 800870B8 00083FF8 C0 24 00 08 */ lfs f1, 8(r4) +/* 800870BC 00083FFC 38 63 1F 5C */ addi r3, r3, __sincos_on_quadrant@l +/* 800870C0 00084000 57 E0 18 38 */ slwi r0, r31, 3 +/* 800870C4 00084004 EC 62 09 3A */ fmadds f3, f2, f4, f1 +/* 800870C8 00084008 C0 04 00 10 */ lfs f0, 0x10(r4) +/* 800870CC 0008400C C0 44 00 18 */ lfs f2, 0x18(r4) +/* 800870D0 00084010 7C 63 02 14 */ add r3, r3, r0 +/* 800870D4 00084014 C0 24 00 20 */ lfs f1, 0x20(r4) +/* 800870D8 00084018 EC 64 00 FA */ fmadds f3, f4, f3, f0 +/* 800870DC 0008401C C0 03 00 04 */ lfs f0, 4(r3) +/* 800870E0 00084020 EC 44 10 FA */ fmadds f2, f4, f3, f2 +/* 800870E4 00084024 EC 24 08 BA */ fmadds f1, f4, f2, f1 +/* 800870E8 00084028 EC 21 00 32 */ fmuls f1, f1, f0 +lbl_800870EC: +/* 800870EC 0008402C 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 800870F0 00084030 CB E1 00 20 */ lfd f31, 0x20(r1) +/* 800870F4 00084034 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 800870F8 00084038 7C 08 03 A6 */ mtlr r0 +/* 800870FC 0008403C 38 21 00 28 */ addi r1, r1, 0x28 +/* 80087100 00084040 4E 80 00 20 */ blr + +.global __sinit_trigf_c +__sinit_trigf_c: +/* 800872A8 000841E8 3C 60 80 37 */ lis r3, tmp_float@ha +/* 800872AC 000841EC 38 83 1A 80 */ addi r4, r3, tmp_float@l +/* 800872B0 000841F0 C0 04 00 00 */ lfs f0, 0(r4) +/* 800872B4 000841F4 3C 60 80 3B */ lis r3, __four_over_pi_m1@ha +/* 800872B8 000841F8 D4 03 EF 48 */ stfsu f0, __four_over_pi_m1@l(r3) +/* 800872BC 000841FC C0 04 00 04 */ lfs f0, 4(r4) +/* 800872C0 00084200 D0 03 00 04 */ stfs f0, 4(r3) +/* 800872C4 00084204 C0 04 00 08 */ lfs f0, 8(r4) +/* 800872C8 00084208 D0 03 00 08 */ stfs f0, 8(r3) +/* 800872CC 0008420C C0 04 00 0C */ lfs f0, 0xc(r4) +/* 800872D0 00084210 D0 03 00 0C */ stfs f0, 0xc(r3) +/* 800872D4 00084214 4E 80 00 20 */ blr + +.section .ctors, "wa" # 0x8036FBA0 - 0x8036FF80 +lbl_constructor: + .4byte __sinit_trigf_c + +.section .rodata, "a" # 0x8036FFA0 - 0x803A8380 +.balign 8 +tmp_float: + .4byte 0x3E800000 + .4byte 0x3CBE6080 + .4byte 0x34372200 + .4byte 0x2DA44152 + +.section .data, "wa" # 0x803A8380 - 0x803E6000 +__four_over_pi_m1: + .4byte 0 + .4byte 0 + .4byte 0 + .4byte 0 + +.section .sdata2, "a" # 0x8040B460 - 0x80414020 +.balign 8 +"@106": + .4byte 0x3F22F983 +"@107": + .4byte 0x3F000000 +"@108": + .4byte 0x39B504F3 + .4byte 0 +"@110": + .4byte 0x43300000 + .4byte 0x80000000 diff --git a/asm/MSL_C.PPCEABI.bare.H/uart_console_io.s b/asm/MSL_C.PPCEABI.bare.H/uart_console_io.s new file mode 100644 index 0000000..671c827 --- /dev/null +++ b/asm/MSL_C.PPCEABI.bare.H/uart_console_io.s @@ -0,0 +1,123 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global __close_console +__close_console: +/* 800863A8 000832E8 38 60 00 00 */ li r3, 0 +/* 800863AC 000832EC 4E 80 00 20 */ blr + +.global __write_console +__write_console: +/* 800863B0 000832F0 7C 08 02 A6 */ mflr r0 +/* 800863B4 000832F4 38 60 00 00 */ li r3, 0 +/* 800863B8 000832F8 90 01 00 04 */ stw r0, 4(r1) +/* 800863BC 000832FC 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 800863C0 00083300 93 E1 00 24 */ stw r31, 0x24(r1) +/* 800863C4 00083304 3B E5 00 00 */ addi r31, r5, 0 +/* 800863C8 00083308 93 C1 00 20 */ stw r30, 0x20(r1) +/* 800863CC 0008330C 3B C4 00 00 */ addi r30, r4, 0 +/* 800863D0 00083310 80 0D 92 B0 */ lwz r0, initialized$16@sda21(r13) +/* 800863D4 00083314 2C 00 00 00 */ cmpwi r0, 0 +/* 800863D8 00083318 40 82 00 20 */ bne lbl_800863F8 +/* 800863DC 0008331C 3C 60 00 01 */ lis r3, 0x0000E100@ha +/* 800863E0 00083320 38 63 E1 00 */ addi r3, r3, 0x0000E100@l +/* 800863E4 00083324 48 02 F9 09 */ bl InitializeUART +/* 800863E8 00083328 2C 03 00 00 */ cmpwi r3, 0 +/* 800863EC 0008332C 40 82 00 0C */ bne lbl_800863F8 +/* 800863F0 00083330 38 00 00 01 */ li r0, 1 +/* 800863F4 00083334 90 0D 92 B0 */ stw r0, initialized$16@sda21(r13) +lbl_800863F8: +/* 800863F8 00083338 2C 03 00 00 */ cmpwi r3, 0 +/* 800863FC 0008333C 41 82 00 0C */ beq lbl_80086408 +/* 80086400 00083340 38 60 00 01 */ li r3, 1 +/* 80086404 00083344 48 00 00 2C */ b lbl_80086430 +lbl_80086408: +/* 80086408 00083348 7F C3 F3 78 */ mr r3, r30 +/* 8008640C 0008334C 80 9F 00 00 */ lwz r4, 0(r31) +/* 80086410 00083350 48 02 F9 55 */ bl WriteUARTN +/* 80086414 00083354 2C 03 00 00 */ cmpwi r3, 0 +/* 80086418 00083358 41 82 00 14 */ beq lbl_8008642C +/* 8008641C 0008335C 38 00 00 00 */ li r0, 0 +/* 80086420 00083360 90 1F 00 00 */ stw r0, 0(r31) +/* 80086424 00083364 38 60 00 01 */ li r3, 1 +/* 80086428 00083368 48 00 00 08 */ b lbl_80086430 +lbl_8008642C: +/* 8008642C 0008336C 38 60 00 00 */ li r3, 0 +lbl_80086430: +/* 80086430 00083370 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 80086434 00083374 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 80086438 00083378 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 8008643C 0008337C 7C 08 03 A6 */ mtlr r0 +/* 80086440 00083380 38 21 00 28 */ addi r1, r1, 0x28 +/* 80086444 00083384 4E 80 00 20 */ blr + +.global __read_console +__read_console: +/* 80086448 00083388 7C 08 02 A6 */ mflr r0 +/* 8008644C 0008338C 38 60 00 00 */ li r3, 0 +/* 80086450 00083390 90 01 00 04 */ stw r0, 4(r1) +/* 80086454 00083394 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 80086458 00083398 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 8008645C 0008339C 93 C1 00 28 */ stw r30, 0x28(r1) +/* 80086460 000833A0 3B C5 00 00 */ addi r30, r5, 0 +/* 80086464 000833A4 93 A1 00 24 */ stw r29, 0x24(r1) +/* 80086468 000833A8 3B A4 00 00 */ addi r29, r4, 0 +/* 8008646C 000833AC 80 0D 92 B0 */ lwz r0, initialized$16@sda21(r13) +/* 80086470 000833B0 2C 00 00 00 */ cmpwi r0, 0 +/* 80086474 000833B4 40 82 00 20 */ bne lbl_80086494 +/* 80086478 000833B8 3C 60 00 01 */ lis r3, 0x0000E100@ha +/* 8008647C 000833BC 38 63 E1 00 */ addi r3, r3, 0x0000E100@l +/* 80086480 000833C0 48 02 F8 6D */ bl InitializeUART +/* 80086484 000833C4 2C 03 00 00 */ cmpwi r3, 0 +/* 80086488 000833C8 40 82 00 0C */ bne lbl_80086494 +/* 8008648C 000833CC 38 00 00 01 */ li r0, 1 +/* 80086490 000833D0 90 0D 92 B0 */ stw r0, initialized$16@sda21(r13) +lbl_80086494: +/* 80086494 000833D4 2C 03 00 00 */ cmpwi r3, 0 +/* 80086498 000833D8 41 82 00 0C */ beq lbl_800864A4 +/* 8008649C 000833DC 38 60 00 01 */ li r3, 1 +/* 800864A0 000833E0 48 00 00 6C */ b lbl_8008650C +lbl_800864A4: +/* 800864A4 000833E4 83 FE 00 00 */ lwz r31, 0(r30) +/* 800864A8 000833E8 38 00 00 00 */ li r0, 0 +/* 800864AC 000833EC 38 60 00 00 */ li r3, 0 +/* 800864B0 000833F0 90 1E 00 00 */ stw r0, 0(r30) +/* 800864B4 000833F4 48 00 00 2C */ b lbl_800864E0 +lbl_800864B8: +/* 800864B8 000833F8 38 7D 00 00 */ addi r3, r29, 0 +/* 800864BC 000833FC 38 80 00 01 */ li r4, 1 +/* 800864C0 00083400 48 02 F8 9D */ bl ReadUARTN +/* 800864C4 00083404 80 9E 00 00 */ lwz r4, 0(r30) +/* 800864C8 00083408 38 04 00 01 */ addi r0, r4, 1 +/* 800864CC 0008340C 90 1E 00 00 */ stw r0, 0(r30) +/* 800864D0 00083410 88 1D 00 00 */ lbz r0, 0(r29) +/* 800864D4 00083414 28 00 00 0D */ cmplwi r0, 0xd +/* 800864D8 00083418 41 82 00 1C */ beq lbl_800864F4 +/* 800864DC 0008341C 3B BD 00 01 */ addi r29, r29, 1 +lbl_800864E0: +/* 800864E0 00083420 80 1E 00 00 */ lwz r0, 0(r30) +/* 800864E4 00083424 7C 00 F8 40 */ cmplw r0, r31 +/* 800864E8 00083428 41 81 00 0C */ bgt lbl_800864F4 +/* 800864EC 0008342C 2C 03 00 00 */ cmpwi r3, 0 +/* 800864F0 00083430 41 82 FF C8 */ beq lbl_800864B8 +lbl_800864F4: +/* 800864F4 00083434 2C 03 00 00 */ cmpwi r3, 0 +/* 800864F8 00083438 40 82 00 0C */ bne lbl_80086504 +/* 800864FC 0008343C 38 00 00 00 */ li r0, 0 +/* 80086500 00083440 48 00 00 08 */ b lbl_80086508 +lbl_80086504: +/* 80086504 00083444 38 00 00 01 */ li r0, 1 +lbl_80086508: +/* 80086508 00083448 54 03 06 3E */ clrlwi r3, r0, 0x18 +lbl_8008650C: +/* 8008650C 0008344C 80 01 00 34 */ lwz r0, 0x34(r1) +/* 80086510 00083450 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 80086514 00083454 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 80086518 00083458 7C 08 03 A6 */ mtlr r0 +/* 8008651C 0008345C 83 A1 00 24 */ lwz r29, 0x24(r1) +/* 80086520 00083460 38 21 00 30 */ addi r1, r1, 0x30 +/* 80086524 00083464 4E 80 00 20 */ blr + +.section .sbss, "wa" # 0x804097C0 - 0x8040B45C +initialized$16: + .skip 0x8 -- cgit v1.2.3-13-gbd6f