.include "macros.inc" .section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860 .global Console_Create__Q24nw4r2dbFPvUsUsUsUsUs Console_Create__Q24nw4r2dbFPvUsUsUsUsUs: /* 80127830 00123670 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80127834 00123674 7C 08 02 A6 */ mflr r0 /* 80127838 00123678 90 01 00 24 */ stw r0, 0x24(r1) /* 8012783C 0012367C 39 61 00 20 */ addi r11, r1, 0x20 /* 80127840 00123680 4B ED FA F9 */ bl lbl_80007338 /* 80127844 00123684 88 0D EC 9C */ lbz r0, sInitialized__Q24nw4r2db_8055D0BC@sda21(r13) /* 80127848 00123688 7C 7F 1B 78 */ mr r31, r3 /* 8012784C 0012368C 7C 9A 23 78 */ mr r26, r4 /* 80127850 00123690 7C BB 2B 78 */ mr r27, r5 /* 80127854 00123694 2C 00 00 00 */ cmpwi r0, 0x0 /* 80127858 00123698 7C DC 33 78 */ mr r28, r6 /* 8012785C 0012369C 7C FD 3B 78 */ mr r29, r7 /* 80127860 001236A0 7D 1E 43 78 */ mr r30, r8 /* 80127864 001236A4 40 82 00 18 */ bne lbl_8012787C /* 80127868 001236A8 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 8012786C 001236AC 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 80127870 001236B0 4B EF B2 F1 */ bl OSInitMutex /* 80127874 001236B4 38 00 00 01 */ li r0, 0x1 /* 80127878 001236B8 98 0D EC 9C */ stb r0, sInitialized__Q24nw4r2db_8055D0BC@sda21(r13) .global lbl_8012787C lbl_8012787C: /* 8012787C 001236BC 38 80 00 00 */ li r4, 0x0 /* 80127880 001236C0 38 BF 00 2C */ addi r5, r31, 0x2c /* 80127884 001236C4 38 60 00 1E */ li r3, 0x1e /* 80127888 001236C8 38 00 00 32 */ li r0, 0x32 /* 8012788C 001236CC 90 BF 00 00 */ stw r5, 0x0(r31) /* 80127890 001236D0 B3 5F 00 04 */ sth r26, 0x4(r31) /* 80127894 001236D4 B3 7F 00 06 */ sth r27, 0x6(r31) /* 80127898 001236D8 B3 BF 00 08 */ sth r29, 0x8(r31) /* 8012789C 001236DC B3 DF 00 0A */ sth r30, 0xa(r31) /* 801278A0 001236E0 98 9F 00 22 */ stb r4, 0x22(r31) /* 801278A4 001236E4 B0 9F 00 0C */ sth r4, 0xc(r31) /* 801278A8 001236E8 B0 9F 00 0E */ sth r4, 0xe(r31) /* 801278AC 001236EC B0 9F 00 10 */ sth r4, 0x10(r31) /* 801278B0 001236F0 90 9F 00 14 */ stw r4, 0x14(r31) /* 801278B4 001236F4 90 9F 00 18 */ stw r4, 0x18(r31) /* 801278B8 001236F8 B0 7F 00 1C */ sth r3, 0x1c(r31) /* 801278BC 001236FC B0 1F 00 1E */ sth r0, 0x1e(r31) /* 801278C0 00123700 B3 9F 00 20 */ sth r28, 0x20(r31) /* 801278C4 00123704 90 9F 00 24 */ stw r4, 0x24(r31) /* 801278C8 00123708 4B EF CE 89 */ bl OSGetCurrentThread /* 801278CC 0012370C 2C 03 00 00 */ cmpwi r3, 0x0 /* 801278D0 00123710 41 82 00 18 */ beq lbl_801278E8 /* 801278D4 00123714 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 801278D8 00123718 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 801278DC 0012371C 4B EF B2 C5 */ bl OSLockMutex /* 801278E0 00123720 38 00 00 01 */ li r0, 0x1 /* 801278E4 00123724 48 00 00 18 */ b lbl_801278FC .global lbl_801278E8 lbl_801278E8: /* 801278E8 00123728 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 801278EC 0012372C 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 801278F0 00123730 80 03 00 08 */ lwz r0, 0x8(r3) /* 801278F4 00123734 7C 00 00 34 */ cntlzw r0, r0 /* 801278F8 00123738 54 00 D9 7E */ srwi r0, r0, 5 .global lbl_801278FC lbl_801278FC: /* 801278FC 0012373C 2C 00 00 00 */ cmpwi r0, 0x0 /* 80127900 00123740 41 82 00 3C */ beq lbl_8012793C /* 80127904 00123744 4B EF 9F 1D */ bl OSDisableInterrupts /* 80127908 00123748 38 00 00 00 */ li r0, 0x0 /* 8012790C 0012374C B0 1F 00 0C */ sth r0, 0xc(r31) /* 80127910 00123750 B0 1F 00 0E */ sth r0, 0xe(r31) /* 80127914 00123754 B0 1F 00 10 */ sth r0, 0x10(r31) /* 80127918 00123758 90 1F 00 14 */ stw r0, 0x14(r31) /* 8012791C 0012375C 90 1F 00 18 */ stw r0, 0x18(r31) /* 80127920 00123760 4B EF 9F 41 */ bl OSRestoreInterrupts /* 80127924 00123764 4B EF CE 2D */ bl OSGetCurrentThread /* 80127928 00123768 2C 03 00 00 */ cmpwi r3, 0x0 /* 8012792C 0012376C 41 82 00 10 */ beq lbl_8012793C /* 80127930 00123770 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 80127934 00123774 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 80127938 00123778 4B EF B3 49 */ bl OSUnlockMutex .global lbl_8012793C lbl_8012793C: /* 8012793C 0012377C 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 80127940 00123780 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 80127944 00123784 4B EF B2 5D */ bl OSLockMutex /* 80127948 00123788 80 CD EC 98 */ lwz r6, sConsoleList__Q24nw4r2db@sda21(r13) /* 8012794C 0012378C A0 7F 00 08 */ lhz r3, 0x8(r31) /* 80127950 00123790 2C 06 00 00 */ cmpwi r6, 0x0 /* 80127954 00123794 7C C4 33 78 */ mr r4, r6 /* 80127958 00123798 41 82 00 10 */ beq lbl_80127968 /* 8012795C 0012379C A0 06 00 08 */ lhz r0, 0x8(r6) /* 80127960 001237A0 7C 00 18 40 */ cmplw r0, r3 /* 80127964 001237A4 40 80 00 28 */ bge lbl_8012798C .global lbl_80127968 lbl_80127968: /* 80127968 001237A8 38 80 00 00 */ li r4, 0x0 /* 8012796C 001237AC 48 00 00 2C */ b lbl_80127998 /* 80127970 001237B0 48 00 00 1C */ b lbl_8012798C /* 80127974 001237B4 60 00 00 00 */ nop .global lbl_80127978 lbl_80127978: /* 80127978 001237B8 A0 05 00 08 */ lhz r0, 0x8(r5) /* 8012797C 001237BC 7C 00 18 40 */ cmplw r0, r3 /* 80127980 001237C0 40 80 00 08 */ bge lbl_80127988 /* 80127984 001237C4 48 00 00 14 */ b lbl_80127998 .global lbl_80127988 lbl_80127988: /* 80127988 001237C8 7C A4 2B 78 */ mr r4, r5 .global lbl_8012798C lbl_8012798C: /* 8012798C 001237CC 80 A4 00 28 */ lwz r5, 0x28(r4) /* 80127990 001237D0 2C 05 00 00 */ cmpwi r5, 0x0 /* 80127994 001237D4 40 82 FF E4 */ bne lbl_80127978 .global lbl_80127998 lbl_80127998: /* 80127998 001237D8 2C 04 00 00 */ cmpwi r4, 0x0 /* 8012799C 001237DC 40 82 00 10 */ bne lbl_801279AC /* 801279A0 001237E0 90 DF 00 28 */ stw r6, 0x28(r31) /* 801279A4 001237E4 93 ED EC 98 */ stw r31, sConsoleList__Q24nw4r2db@sda21(r13) /* 801279A8 001237E8 48 00 00 10 */ b lbl_801279B8 .global lbl_801279AC lbl_801279AC: /* 801279AC 001237EC 80 04 00 28 */ lwz r0, 0x28(r4) /* 801279B0 001237F0 90 1F 00 28 */ stw r0, 0x28(r31) /* 801279B4 001237F4 93 E4 00 28 */ stw r31, 0x28(r4) .global lbl_801279B8 lbl_801279B8: /* 801279B8 001237F8 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 801279BC 001237FC 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 801279C0 00123800 4B EF B2 C1 */ bl OSUnlockMutex /* 801279C4 00123804 39 61 00 20 */ addi r11, r1, 0x20 /* 801279C8 00123808 7F E3 FB 78 */ mr r3, r31 /* 801279CC 0012380C 4B ED F9 B9 */ bl lbl_80007384 /* 801279D0 00123810 80 01 00 24 */ lwz r0, 0x24(r1) /* 801279D4 00123814 7C 08 03 A6 */ mtlr r0 /* 801279D8 00123818 38 21 00 20 */ addi r1, r1, 0x20 /* 801279DC 0012381C 4E 80 00 20 */ blr .global "DoDrawConsole___Q24nw4r2dbFPQ44nw4r2db6detail11ConsoleHeadPQ34nw4r2ut17TextWriterBase" "DoDrawConsole___Q24nw4r2dbFPQ44nw4r2db6detail11ConsoleHeadPQ34nw4r2ut17TextWriterBase": /* 801279E0 00123820 94 21 FF E0 */ stwu r1, -0x20(r1) /* 801279E4 00123824 7C 08 02 A6 */ mflr r0 /* 801279E8 00123828 90 01 00 24 */ stw r0, 0x24(r1) /* 801279EC 0012382C 39 61 00 20 */ addi r11, r1, 0x20 /* 801279F0 00123830 4B ED F9 4D */ bl lbl_8000733C /* 801279F4 00123834 7C 7B 1B 78 */ mr r27, r3 /* 801279F8 00123838 7C 9C 23 78 */ mr r28, r4 /* 801279FC 0012383C 4B EF CD 55 */ bl OSGetCurrentThread /* 80127A00 00123840 2C 03 00 00 */ cmpwi r3, 0x0 /* 80127A04 00123844 41 82 00 10 */ beq lbl_80127A14 /* 80127A08 00123848 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 80127A0C 0012384C 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 80127A10 00123850 4B EF B1 91 */ bl OSLockMutex .global lbl_80127A14 lbl_80127A14: /* 80127A14 00123854 80 7B 00 14 */ lwz r3, 0x14(r27) /* 80127A18 00123858 3B C0 00 00 */ li r30, 0x0 /* 80127A1C 0012385C 80 1B 00 18 */ lwz r0, 0x18(r27) /* 80127A20 00123860 7C 83 00 51 */ subf. r4, r3, r0 /* 80127A24 00123864 40 80 00 0C */ bge lbl_80127A30 /* 80127A28 00123868 38 80 00 00 */ li r4, 0x0 /* 80127A2C 0012386C 48 00 00 3C */ b lbl_80127A68 .global lbl_80127A30 lbl_80127A30: /* 80127A30 00123870 A0 7B 00 10 */ lhz r3, 0x10(r27) /* 80127A34 00123874 A0 1B 00 0C */ lhz r0, 0xc(r27) /* 80127A38 00123878 7C 63 00 51 */ subf. r3, r3, r0 /* 80127A3C 0012387C 40 80 00 0C */ bge lbl_80127A48 /* 80127A40 00123880 A0 1B 00 06 */ lhz r0, 0x6(r27) /* 80127A44 00123884 7C 63 02 14 */ add r3, r3, r0 .global lbl_80127A48 lbl_80127A48: /* 80127A48 00123888 A0 1B 00 0E */ lhz r0, 0xe(r27) /* 80127A4C 0012388C 54 63 04 3E */ clrlwi r3, r3, 16 /* 80127A50 00123890 2C 00 00 00 */ cmpwi r0, 0x0 /* 80127A54 00123894 41 82 00 0C */ beq lbl_80127A60 /* 80127A58 00123898 38 03 00 01 */ addi r0, r3, 0x1 /* 80127A5C 0012389C 54 03 04 3E */ clrlwi r3, r0, 16 .global lbl_80127A60 lbl_80127A60: /* 80127A60 001238A0 7C 04 18 00 */ cmpw r4, r3 /* 80127A64 001238A4 41 81 00 F0 */ bgt lbl_80127B54 .global lbl_80127A68 lbl_80127A68: /* 80127A68 001238A8 A0 1B 00 10 */ lhz r0, 0x10(r27) /* 80127A6C 001238AC A0 BB 00 06 */ lhz r5, 0x6(r27) /* 80127A70 001238B0 7C 00 22 14 */ add r0, r0, r4 /* 80127A74 001238B4 54 1F 04 3E */ clrlwi r31, r0, 16 /* 80127A78 001238B8 7C 1F 28 40 */ cmplw r31, r5 /* 80127A7C 001238BC 41 80 00 0C */ blt lbl_80127A88 /* 80127A80 001238C0 7C 05 F8 50 */ subf r0, r5, r31 /* 80127A84 001238C4 54 1F 04 3E */ clrlwi r31, r0, 16 .global lbl_80127A88 lbl_80127A88: /* 80127A88 001238C8 A0 7B 00 0E */ lhz r3, 0xe(r27) /* 80127A8C 001238CC A0 9B 00 0C */ lhz r4, 0xc(r27) /* 80127A90 001238D0 7C 03 00 D0 */ neg r0, r3 /* 80127A94 001238D4 7C 00 1B 78 */ or r0, r0, r3 /* 80127A98 001238D8 54 00 0F FE */ srwi r0, r0, 31 /* 80127A9C 001238DC 7C 04 02 14 */ add r0, r4, r0 /* 80127AA0 001238E0 54 1D 04 3E */ clrlwi r29, r0, 16 /* 80127AA4 001238E4 7C 1D 28 40 */ cmplw r29, r5 /* 80127AA8 001238E8 40 82 00 A0 */ bne lbl_80127B48 /* 80127AAC 001238EC 3B A0 00 00 */ li r29, 0x0 /* 80127AB0 001238F0 48 00 00 98 */ b lbl_80127B48 .global lbl_80127AB4 lbl_80127AB4: /* 80127AB4 001238F4 A0 7B 00 04 */ lhz r3, 0x4(r27) /* 80127AB8 001238F8 57 E0 04 3E */ clrlwi r0, r31, 16 /* 80127ABC 001238FC 2C 1C 00 00 */ cmpwi r28, 0x0 /* 80127AC0 00123900 80 9B 00 00 */ lwz r4, 0x0(r27) /* 80127AC4 00123904 38 63 00 01 */ addi r3, r3, 0x1 /* 80127AC8 00123908 7C 03 01 D6 */ mullw r0, r3, r0 /* 80127ACC 0012390C 7C A4 02 14 */ add r5, r4, r0 /* 80127AD0 00123910 41 82 00 18 */ beq lbl_80127AE8 /* 80127AD4 00123914 7F 83 E3 78 */ mr r3, r28 /* 80127AD8 00123918 38 8D 86 68 */ addi r4, r13, "@8595"@sda21 /* 80127ADC 0012391C 4C C6 31 82 */ crclr 4*cr1+eq /* 80127AE0 00123920 4B FF C3 61 */ bl "Printf__Q34nw4r2ut17TextWriterBaseFPCce" /* 80127AE4 00123924 48 00 00 2C */ b lbl_80127B10 .global lbl_80127AE8 lbl_80127AE8: /* 80127AE8 00123928 57 C0 04 3E */ clrlwi r0, r30, 16 /* 80127AEC 0012392C 7C A7 2B 78 */ mr r7, r5 /* 80127AF0 00123930 1C 00 00 0A */ mulli r0, r0, 0xa /* 80127AF4 00123934 A8 9B 00 1E */ lha r4, 0x1e(r27) /* 80127AF8 00123938 A8 7B 00 1C */ lha r3, 0x1c(r27) /* 80127AFC 0012393C 38 A0 00 00 */ li r5, 0x0 /* 80127B00 00123940 38 CD 86 68 */ addi r6, r13, "@8595"@sda21 /* 80127B04 00123944 7C 84 02 14 */ add r4, r4, r0 /* 80127B08 00123948 4C C6 31 82 */ crclr 4*cr1+eq /* 80127B0C 0012394C 4B FF F3 B5 */ bl DirectPrint_DrawString__Q24nw4r2dbFiibPCce .global lbl_80127B10 lbl_80127B10: /* 80127B10 00123950 3B FF 00 01 */ addi r31, r31, 0x1 /* 80127B14 00123954 A0 1B 00 06 */ lhz r0, 0x6(r27) /* 80127B18 00123958 57 E3 04 3E */ clrlwi r3, r31, 16 /* 80127B1C 0012395C 3B DE 00 01 */ addi r30, r30, 0x1 /* 80127B20 00123960 7C 03 00 40 */ cmplw r3, r0 /* 80127B24 00123964 40 82 00 14 */ bne lbl_80127B38 /* 80127B28 00123968 A0 1B 00 0A */ lhz r0, 0xa(r27) /* 80127B2C 0012396C 54 00 07 BD */ rlwinm. r0, r0, 0, 30, 30 /* 80127B30 00123970 40 82 00 24 */ bne lbl_80127B54 /* 80127B34 00123974 3B E0 00 00 */ li r31, 0x0 .global lbl_80127B38 lbl_80127B38: /* 80127B38 00123978 A0 1B 00 20 */ lhz r0, 0x20(r27) /* 80127B3C 0012397C 57 C3 04 3E */ clrlwi r3, r30, 16 /* 80127B40 00123980 7C 03 00 40 */ cmplw r3, r0 /* 80127B44 00123984 40 80 00 10 */ bge lbl_80127B54 .global lbl_80127B48 lbl_80127B48: /* 80127B48 00123988 57 E0 04 3E */ clrlwi r0, r31, 16 /* 80127B4C 0012398C 7C 00 E8 40 */ cmplw r0, r29 /* 80127B50 00123990 40 82 FF 64 */ bne lbl_80127AB4 .global lbl_80127B54 lbl_80127B54: /* 80127B54 00123994 4B EF CB FD */ bl OSGetCurrentThread /* 80127B58 00123998 2C 03 00 00 */ cmpwi r3, 0x0 /* 80127B5C 0012399C 41 82 00 10 */ beq lbl_80127B6C /* 80127B60 001239A0 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 80127B64 001239A4 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 80127B68 001239A8 4B EF B1 19 */ bl OSUnlockMutex .global lbl_80127B6C lbl_80127B6C: /* 80127B6C 001239AC 39 61 00 20 */ addi r11, r1, 0x20 /* 80127B70 001239B0 4B ED F8 19 */ bl lbl_80007388 /* 80127B74 001239B4 80 01 00 24 */ lwz r0, 0x24(r1) /* 80127B78 001239B8 7C 08 03 A6 */ mtlr r0 /* 80127B7C 001239BC 38 21 00 20 */ addi r1, r1, 0x20 /* 80127B80 001239C0 4E 80 00 20 */ blr /* 80127B84 001239C4 00 00 00 00 */ .4byte 0x00000000 /* 80127B88 001239C8 00 00 00 00 */ .4byte 0x00000000 /* 80127B8C 001239CC 00 00 00 00 */ .4byte 0x00000000 .global Console_DrawDirect__Q24nw4r2dbFPQ44nw4r2db6detail11ConsoleHead Console_DrawDirect__Q24nw4r2dbFPQ44nw4r2db6detail11ConsoleHead: /* 80127B90 001239D0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80127B94 001239D4 7C 08 02 A6 */ mflr r0 /* 80127B98 001239D8 90 01 00 14 */ stw r0, 0x14(r1) /* 80127B9C 001239DC 93 E1 00 0C */ stw r31, 0xc(r1) /* 80127BA0 001239E0 7C 7F 1B 78 */ mr r31, r3 /* 80127BA4 001239E4 4B FF F1 3D */ bl DirectPrint_IsActive__Q24nw4r2dbFv /* 80127BA8 001239E8 2C 03 00 00 */ cmpwi r3, 0x0 /* 80127BAC 001239EC 41 82 00 4C */ beq lbl_80127BF8 /* 80127BB0 001239F0 88 1F 00 22 */ lbz r0, 0x22(r31) /* 80127BB4 001239F4 2C 00 00 00 */ cmpwi r0, 0x0 /* 80127BB8 001239F8 41 82 00 40 */ beq lbl_80127BF8 /* 80127BBC 001239FC A0 7F 00 04 */ lhz r3, 0x4(r31) /* 80127BC0 00123A00 A0 1F 00 20 */ lhz r0, 0x20(r31) /* 80127BC4 00123A04 1C A3 00 06 */ mulli r5, r3, 0x6 /* 80127BC8 00123A08 A8 7F 00 1C */ lha r3, 0x1c(r31) /* 80127BCC 00123A0C A8 9F 00 1E */ lha r4, 0x1e(r31) /* 80127BD0 00123A10 38 63 FF FA */ addi r3, r3, -0x6 /* 80127BD4 00123A14 1C C0 00 0A */ mulli r6, r0, 0xa /* 80127BD8 00123A18 38 84 FF FD */ addi r4, r4, -0x3 /* 80127BDC 00123A1C 38 A5 00 0C */ addi r5, r5, 0xc /* 80127BE0 00123A20 38 C6 00 04 */ addi r6, r6, 0x4 /* 80127BE4 00123A24 4B FF F1 2D */ bl DirectPrint_EraseXfb__Q24nw4r2dbFiiii /* 80127BE8 00123A28 7F E3 FB 78 */ mr r3, r31 /* 80127BEC 00123A2C 38 80 00 00 */ li r4, 0x0 /* 80127BF0 00123A30 4B FF FD F1 */ bl "DoDrawConsole___Q24nw4r2dbFPQ44nw4r2db6detail11ConsoleHeadPQ34nw4r2ut17TextWriterBase" /* 80127BF4 00123A34 4B FF F2 AD */ bl DirectPrint_StoreCache__Q24nw4r2dbFv .global lbl_80127BF8 lbl_80127BF8: /* 80127BF8 00123A38 80 01 00 14 */ lwz r0, 0x14(r1) /* 80127BFC 00123A3C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80127C00 00123A40 7C 08 03 A6 */ mtlr r0 /* 80127C04 00123A44 38 21 00 10 */ addi r1, r1, 0x10 /* 80127C08 00123A48 4E 80 00 20 */ blr /* 80127C0C 00123A4C 00 00 00 00 */ .4byte 0x00000000 .global PrintToBuffer___Q24nw4r2dbFPQ44nw4r2db6detail11ConsoleHeadPCUc PrintToBuffer___Q24nw4r2dbFPQ44nw4r2db6detail11ConsoleHeadPCUc: /* 80127C10 00123A50 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80127C14 00123A54 7C 08 02 A6 */ mflr r0 /* 80127C18 00123A58 90 01 00 24 */ stw r0, 0x24(r1) /* 80127C1C 00123A5C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80127C20 00123A60 7C 9F 23 78 */ mr r31, r4 /* 80127C24 00123A64 93 C1 00 18 */ stw r30, 0x18(r1) /* 80127C28 00123A68 7C 7E 1B 78 */ mr r30, r3 /* 80127C2C 00123A6C 93 A1 00 14 */ stw r29, 0x14(r1) /* 80127C30 00123A70 93 81 00 10 */ stw r28, 0x10(r1) /* 80127C34 00123A74 4B EF 9B ED */ bl OSDisableInterrupts /* 80127C38 00123A78 A0 BE 00 04 */ lhz r5, 0x4(r30) /* 80127C3C 00123A7C 38 80 00 20 */ li r4, 0x20 /* 80127C40 00123A80 A0 1E 00 0C */ lhz r0, 0xc(r30) /* 80127C44 00123A84 39 40 00 00 */ li r10, 0x0 /* 80127C48 00123A88 38 A5 00 01 */ addi r5, r5, 0x1 /* 80127C4C 00123A8C 80 DE 00 00 */ lwz r6, 0x0(r30) /* 80127C50 00123A90 7C E5 01 D6 */ mullw r7, r5, r0 /* 80127C54 00123A94 A0 1E 00 0E */ lhz r0, 0xe(r30) /* 80127C58 00123A98 38 A0 00 02 */ li r5, 0x2 /* 80127C5C 00123A9C 7C C6 02 14 */ add r6, r6, r0 /* 80127C60 00123AA0 38 00 00 81 */ li r0, 0x81 /* 80127C64 00123AA4 7C C7 32 14 */ add r6, r7, r6 /* 80127C68 00123AA8 48 00 03 30 */ b lbl_80127F98 /* 80127C6C 00123AAC 60 00 00 00 */ nop .global lbl_80127C70 lbl_80127C70: /* 80127C70 00123AB0 A0 FE 00 0A */ lhz r7, 0xa(r30) /* 80127C74 00123AB4 54 E7 07 BD */ rlwinm. r7, r7, 0, 30, 30 /* 80127C78 00123AB8 41 82 03 14 */ beq lbl_80127F8C /* 80127C7C 00123ABC A1 1E 00 0C */ lhz r8, 0xc(r30) /* 80127C80 00123AC0 A0 FE 00 06 */ lhz r7, 0x6(r30) /* 80127C84 00123AC4 7C 08 38 40 */ cmplw r8, r7 /* 80127C88 00123AC8 41 82 03 1C */ beq lbl_80127FA4 /* 80127C8C 00123ACC 48 00 03 00 */ b lbl_80127F8C .global lbl_80127C90 lbl_80127C90: /* 80127C90 00123AD0 2C 09 00 0A */ cmpwi r9, 0xa /* 80127C94 00123AD4 38 E0 00 00 */ li r7, 0x0 /* 80127C98 00123AD8 40 82 00 AC */ bne lbl_80127D44 /* 80127C9C 00123ADC A0 FE 00 04 */ lhz r7, 0x4(r30) /* 80127CA0 00123AE0 3B FF 00 01 */ addi r31, r31, 0x1 /* 80127CA4 00123AE4 A0 DE 00 0C */ lhz r6, 0xc(r30) /* 80127CA8 00123AE8 38 E7 00 01 */ addi r7, r7, 0x1 /* 80127CAC 00123AEC 81 1E 00 00 */ lwz r8, 0x0(r30) /* 80127CB0 00123AF0 7C E7 31 D6 */ mullw r7, r7, r6 /* 80127CB4 00123AF4 A0 DE 00 0E */ lhz r6, 0xe(r30) /* 80127CB8 00123AF8 7C C8 32 14 */ add r6, r8, r6 /* 80127CBC 00123AFC 7D 47 31 AE */ stbx r10, r7, r6 /* 80127CC0 00123B00 A0 FE 00 0C */ lhz r7, 0xc(r30) /* 80127CC4 00123B04 A0 DE 00 06 */ lhz r6, 0x6(r30) /* 80127CC8 00123B08 39 07 00 01 */ addi r8, r7, 0x1 /* 80127CCC 00123B0C B1 5E 00 0E */ sth r10, 0xe(r30) /* 80127CD0 00123B10 55 07 04 3E */ clrlwi r7, r8, 16 /* 80127CD4 00123B14 7C 07 30 40 */ cmplw r7, r6 /* 80127CD8 00123B18 B1 1E 00 0C */ sth r8, 0xc(r30) /* 80127CDC 00123B1C 40 82 00 14 */ bne lbl_80127CF0 /* 80127CE0 00123B20 A0 DE 00 0A */ lhz r6, 0xa(r30) /* 80127CE4 00123B24 54 C6 07 BD */ rlwinm. r6, r6, 0, 30, 30 /* 80127CE8 00123B28 40 82 00 08 */ bne lbl_80127CF0 /* 80127CEC 00123B2C B1 5E 00 0C */ sth r10, 0xc(r30) .global lbl_80127CF0 lbl_80127CF0: /* 80127CF0 00123B30 A0 FE 00 0C */ lhz r7, 0xc(r30) /* 80127CF4 00123B34 A0 DE 00 10 */ lhz r6, 0x10(r30) /* 80127CF8 00123B38 7C 07 30 40 */ cmplw r7, r6 /* 80127CFC 00123B3C 40 82 00 2C */ bne lbl_80127D28 /* 80127D00 00123B40 39 06 00 01 */ addi r8, r6, 0x1 /* 80127D04 00123B44 A0 DE 00 06 */ lhz r6, 0x6(r30) /* 80127D08 00123B48 55 07 04 3E */ clrlwi r7, r8, 16 /* 80127D0C 00123B4C 81 3E 00 14 */ lwz r9, 0x14(r30) /* 80127D10 00123B50 7C 07 30 40 */ cmplw r7, r6 /* 80127D14 00123B54 B1 1E 00 10 */ sth r8, 0x10(r30) /* 80127D18 00123B58 38 C9 00 01 */ addi r6, r9, 0x1 /* 80127D1C 00123B5C 90 DE 00 14 */ stw r6, 0x14(r30) /* 80127D20 00123B60 40 82 00 08 */ bne lbl_80127D28 /* 80127D24 00123B64 B1 5E 00 10 */ sth r10, 0x10(r30) .global lbl_80127D28 lbl_80127D28: /* 80127D28 00123B68 A0 FE 00 04 */ lhz r7, 0x4(r30) /* 80127D2C 00123B6C A0 DE 00 0C */ lhz r6, 0xc(r30) /* 80127D30 00123B70 38 E7 00 01 */ addi r7, r7, 0x1 /* 80127D34 00123B74 81 1E 00 00 */ lwz r8, 0x0(r30) /* 80127D38 00123B78 7C C7 31 D6 */ mullw r6, r7, r6 /* 80127D3C 00123B7C 7C C8 32 14 */ add r6, r8, r6 /* 80127D40 00123B80 48 00 02 58 */ b lbl_80127F98 .global lbl_80127D44 lbl_80127D44: /* 80127D44 00123B84 2C 09 00 09 */ cmpwi r9, 0x9 /* 80127D48 00123B88 40 82 00 48 */ bne lbl_80127D90 /* 80127D4C 00123B8C A1 1E 00 0A */ lhz r8, 0xa(r30) /* 80127D50 00123B90 3B FF 00 01 */ addi r31, r31, 0x1 /* 80127D54 00123B94 55 08 F7 BE */ extrwi r8, r8, 2, 28 /* 80127D58 00123B98 7C A8 40 30 */ slw r8, r5, r8 /* 80127D5C 00123B9C 39 28 FF FF */ addi r9, r8, -0x1 .global lbl_80127D60 lbl_80127D60: /* 80127D60 00123BA0 98 86 00 00 */ stb r4, 0x0(r6) /* 80127D64 00123BA4 38 C6 00 01 */ addi r6, r6, 0x1 /* 80127D68 00123BA8 A1 7E 00 0E */ lhz r11, 0xe(r30) /* 80127D6C 00123BAC A1 1E 00 04 */ lhz r8, 0x4(r30) /* 80127D70 00123BB0 39 6B 00 01 */ addi r11, r11, 0x1 /* 80127D74 00123BB4 B1 7E 00 0E */ sth r11, 0xe(r30) /* 80127D78 00123BB8 55 6B 04 3E */ clrlwi r11, r11, 16 /* 80127D7C 00123BBC 7C 0B 40 40 */ cmplw r11, r8 /* 80127D80 00123BC0 40 80 00 F4 */ bge lbl_80127E74 /* 80127D84 00123BC4 7D 68 48 39 */ and. r8, r11, r9 /* 80127D88 00123BC8 40 82 FF D8 */ bne lbl_80127D60 /* 80127D8C 00123BCC 48 00 00 E8 */ b lbl_80127E74 .global lbl_80127D90 lbl_80127D90: /* 80127D90 00123BD0 39 09 FF 7F */ addi r8, r9, -0x81 /* 80127D94 00123BD4 7D 29 03 38 */ orc r9, r9, r0 /* 80127D98 00123BD8 55 08 F8 7E */ srwi r8, r8, 1 /* 80127D9C 00123BDC A1 7E 00 0E */ lhz r11, 0xe(r30) /* 80127DA0 00123BE0 7D 28 48 50 */ subf r9, r8, r9 /* 80127DA4 00123BE4 A1 1E 00 04 */ lhz r8, 0x4(r30) /* 80127DA8 00123BE8 55 29 0F FE */ srwi r9, r9, 31 /* 80127DAC 00123BEC 7C DD 33 78 */ mr r29, r6 /* 80127DB0 00123BF0 3B 89 00 01 */ addi r28, r9, 0x1 /* 80127DB4 00123BF4 7F EC FB 78 */ mr r12, r31 /* 80127DB8 00123BF8 7D 2B E2 14 */ add r9, r11, r28 /* 80127DBC 00123BFC 7C 09 40 40 */ cmplw r9, r8 /* 80127DC0 00123C00 40 81 00 0C */ ble lbl_80127DCC /* 80127DC4 00123C04 3B 80 00 00 */ li r28, 0x0 /* 80127DC8 00123C08 48 00 00 94 */ b lbl_80127E5C .global lbl_80127DCC lbl_80127DCC: /* 80127DCC 00123C0C 57 88 04 3E */ clrlwi r8, r28, 16 /* 80127DD0 00123C10 2C 1C 00 00 */ cmpwi r28, 0x0 /* 80127DD4 00123C14 7D 0B 42 14 */ add r8, r11, r8 /* 80127DD8 00123C18 B1 1E 00 0E */ sth r8, 0xe(r30) /* 80127DDC 00123C1C 7F 89 E3 78 */ mr r9, r28 /* 80127DE0 00123C20 41 82 00 7C */ beq lbl_80127E5C /* 80127DE4 00123C24 57 88 E8 FF */ srwi. r8, r28, 3 /* 80127DE8 00123C28 7D 09 03 A6 */ mtctr r8 /* 80127DEC 00123C2C 41 82 00 58 */ beq lbl_80127E44 .global lbl_80127DF0 lbl_80127DF0: /* 80127DF0 00123C30 89 0C 00 00 */ lbz r8, 0x0(r12) /* 80127DF4 00123C34 99 1D 00 00 */ stb r8, 0x0(r29) /* 80127DF8 00123C38 89 0C 00 01 */ lbz r8, 0x1(r12) /* 80127DFC 00123C3C 99 1D 00 01 */ stb r8, 0x1(r29) /* 80127E00 00123C40 89 0C 00 02 */ lbz r8, 0x2(r12) /* 80127E04 00123C44 99 1D 00 02 */ stb r8, 0x2(r29) /* 80127E08 00123C48 89 0C 00 03 */ lbz r8, 0x3(r12) /* 80127E0C 00123C4C 99 1D 00 03 */ stb r8, 0x3(r29) /* 80127E10 00123C50 89 0C 00 04 */ lbz r8, 0x4(r12) /* 80127E14 00123C54 99 1D 00 04 */ stb r8, 0x4(r29) /* 80127E18 00123C58 89 0C 00 05 */ lbz r8, 0x5(r12) /* 80127E1C 00123C5C 99 1D 00 05 */ stb r8, 0x5(r29) /* 80127E20 00123C60 89 0C 00 06 */ lbz r8, 0x6(r12) /* 80127E24 00123C64 99 1D 00 06 */ stb r8, 0x6(r29) /* 80127E28 00123C68 89 0C 00 07 */ lbz r8, 0x7(r12) /* 80127E2C 00123C6C 39 8C 00 08 */ addi r12, r12, 0x8 /* 80127E30 00123C70 99 1D 00 07 */ stb r8, 0x7(r29) /* 80127E34 00123C74 3B BD 00 08 */ addi r29, r29, 0x8 /* 80127E38 00123C78 42 00 FF B8 */ bdnz lbl_80127DF0 /* 80127E3C 00123C7C 73 89 00 07 */ andi. r9, r28, 0x7 /* 80127E40 00123C80 41 82 00 1C */ beq lbl_80127E5C .global lbl_80127E44 lbl_80127E44: /* 80127E44 00123C84 7D 29 03 A6 */ mtctr r9 .global lbl_80127E48 lbl_80127E48: /* 80127E48 00123C88 89 0C 00 00 */ lbz r8, 0x0(r12) /* 80127E4C 00123C8C 39 8C 00 01 */ addi r12, r12, 0x1 /* 80127E50 00123C90 99 1D 00 00 */ stb r8, 0x0(r29) /* 80127E54 00123C94 3B BD 00 01 */ addi r29, r29, 0x1 /* 80127E58 00123C98 42 00 FF F0 */ bdnz lbl_80127E48 .global lbl_80127E5C lbl_80127E5C: /* 80127E5C 00123C9C 2C 1C 00 00 */ cmpwi r28, 0x0 /* 80127E60 00123CA0 41 82 00 10 */ beq lbl_80127E70 /* 80127E64 00123CA4 7F FF E2 14 */ add r31, r31, r28 /* 80127E68 00123CA8 7C C6 E2 14 */ add r6, r6, r28 /* 80127E6C 00123CAC 48 00 00 08 */ b lbl_80127E74 .global lbl_80127E70 lbl_80127E70: /* 80127E70 00123CB0 38 E0 00 01 */ li r7, 0x1 .global lbl_80127E74 lbl_80127E74: /* 80127E74 00123CB4 A1 1E 00 04 */ lhz r8, 0x4(r30) /* 80127E78 00123CB8 A1 7E 00 0E */ lhz r11, 0xe(r30) /* 80127E7C 00123CBC 7C 0B 40 40 */ cmplw r11, r8 /* 80127E80 00123CC0 41 80 00 08 */ blt lbl_80127E88 /* 80127E84 00123CC4 38 E0 00 01 */ li r7, 0x1 .global lbl_80127E88 lbl_80127E88: /* 80127E88 00123CC8 2C 07 00 00 */ cmpwi r7, 0x0 /* 80127E8C 00123CCC 41 82 00 DC */ beq lbl_80127F68 /* 80127E90 00123CD0 A0 FE 00 0A */ lhz r7, 0xa(r30) /* 80127E94 00123CD4 54 E7 07 FF */ clrlwi. r7, r7, 31 /* 80127E98 00123CD8 41 82 00 24 */ beq lbl_80127EBC /* 80127E9C 00123CDC 48 00 00 08 */ b lbl_80127EA4 .global lbl_80127EA0 lbl_80127EA0: /* 80127EA0 00123CE0 3B FF 00 01 */ addi r31, r31, 0x1 .global lbl_80127EA4 lbl_80127EA4: /* 80127EA4 00123CE4 88 FF 00 00 */ lbz r7, 0x0(r31) /* 80127EA8 00123CE8 2C 07 00 0A */ cmpwi r7, 0xa /* 80127EAC 00123CEC 41 82 00 EC */ beq lbl_80127F98 /* 80127EB0 00123CF0 2C 07 00 00 */ cmpwi r7, 0x0 /* 80127EB4 00123CF4 40 82 FF EC */ bne lbl_80127EA0 /* 80127EB8 00123CF8 48 00 00 E0 */ b lbl_80127F98 .global lbl_80127EBC lbl_80127EBC: /* 80127EBC 00123CFC 88 DF 00 00 */ lbz r6, 0x0(r31) /* 80127EC0 00123D00 2C 06 00 0A */ cmpwi r6, 0xa /* 80127EC4 00123D04 40 82 00 08 */ bne lbl_80127ECC /* 80127EC8 00123D08 3B FF 00 01 */ addi r31, r31, 0x1 .global lbl_80127ECC lbl_80127ECC: /* 80127ECC 00123D0C A0 DE 00 0C */ lhz r6, 0xc(r30) /* 80127ED0 00123D10 38 E8 00 01 */ addi r7, r8, 0x1 /* 80127ED4 00123D14 81 1E 00 00 */ lwz r8, 0x0(r30) /* 80127ED8 00123D18 7C E7 31 D6 */ mullw r7, r7, r6 /* 80127EDC 00123D1C 7C C8 5A 14 */ add r6, r8, r11 /* 80127EE0 00123D20 7D 47 31 AE */ stbx r10, r7, r6 /* 80127EE4 00123D24 A0 FE 00 0C */ lhz r7, 0xc(r30) /* 80127EE8 00123D28 A0 DE 00 06 */ lhz r6, 0x6(r30) /* 80127EEC 00123D2C 39 07 00 01 */ addi r8, r7, 0x1 /* 80127EF0 00123D30 B1 5E 00 0E */ sth r10, 0xe(r30) /* 80127EF4 00123D34 55 07 04 3E */ clrlwi r7, r8, 16 /* 80127EF8 00123D38 7C 07 30 40 */ cmplw r7, r6 /* 80127EFC 00123D3C B1 1E 00 0C */ sth r8, 0xc(r30) /* 80127F00 00123D40 40 82 00 14 */ bne lbl_80127F14 /* 80127F04 00123D44 A0 DE 00 0A */ lhz r6, 0xa(r30) /* 80127F08 00123D48 54 C6 07 BD */ rlwinm. r6, r6, 0, 30, 30 /* 80127F0C 00123D4C 40 82 00 08 */ bne lbl_80127F14 /* 80127F10 00123D50 B1 5E 00 0C */ sth r10, 0xc(r30) .global lbl_80127F14 lbl_80127F14: /* 80127F14 00123D54 A0 FE 00 0C */ lhz r7, 0xc(r30) /* 80127F18 00123D58 A0 DE 00 10 */ lhz r6, 0x10(r30) /* 80127F1C 00123D5C 7C 07 30 40 */ cmplw r7, r6 /* 80127F20 00123D60 40 82 00 2C */ bne lbl_80127F4C /* 80127F24 00123D64 39 06 00 01 */ addi r8, r6, 0x1 /* 80127F28 00123D68 A0 DE 00 06 */ lhz r6, 0x6(r30) /* 80127F2C 00123D6C 55 07 04 3E */ clrlwi r7, r8, 16 /* 80127F30 00123D70 81 3E 00 14 */ lwz r9, 0x14(r30) /* 80127F34 00123D74 7C 07 30 40 */ cmplw r7, r6 /* 80127F38 00123D78 B1 1E 00 10 */ sth r8, 0x10(r30) /* 80127F3C 00123D7C 38 C9 00 01 */ addi r6, r9, 0x1 /* 80127F40 00123D80 90 DE 00 14 */ stw r6, 0x14(r30) /* 80127F44 00123D84 40 82 00 08 */ bne lbl_80127F4C /* 80127F48 00123D88 B1 5E 00 10 */ sth r10, 0x10(r30) .global lbl_80127F4C lbl_80127F4C: /* 80127F4C 00123D8C A0 FE 00 04 */ lhz r7, 0x4(r30) /* 80127F50 00123D90 A0 DE 00 0C */ lhz r6, 0xc(r30) /* 80127F54 00123D94 38 E7 00 01 */ addi r7, r7, 0x1 /* 80127F58 00123D98 81 1E 00 00 */ lwz r8, 0x0(r30) /* 80127F5C 00123D9C 7C C7 31 D6 */ mullw r6, r7, r6 /* 80127F60 00123DA0 7C C8 32 14 */ add r6, r8, r6 /* 80127F64 00123DA4 48 00 00 34 */ b lbl_80127F98 .global lbl_80127F68 lbl_80127F68: /* 80127F68 00123DA8 88 FF 00 00 */ lbz r7, 0x0(r31) /* 80127F6C 00123DAC 2C 07 00 00 */ cmpwi r7, 0x0 /* 80127F70 00123DB0 40 82 00 1C */ bne lbl_80127F8C /* 80127F74 00123DB4 A0 FE 00 0C */ lhz r7, 0xc(r30) /* 80127F78 00123DB8 39 08 00 01 */ addi r8, r8, 0x1 /* 80127F7C 00123DBC 81 3E 00 00 */ lwz r9, 0x0(r30) /* 80127F80 00123DC0 7D 08 39 D6 */ mullw r8, r8, r7 /* 80127F84 00123DC4 7C E9 5A 14 */ add r7, r9, r11 /* 80127F88 00123DC8 7D 48 39 AE */ stbx r10, r8, r7 .global lbl_80127F8C lbl_80127F8C: /* 80127F8C 00123DCC 89 3F 00 00 */ lbz r9, 0x0(r31) /* 80127F90 00123DD0 2C 09 00 00 */ cmpwi r9, 0x0 /* 80127F94 00123DD4 40 82 FC FC */ bne lbl_80127C90 .global lbl_80127F98 lbl_80127F98: /* 80127F98 00123DD8 88 FF 00 00 */ lbz r7, 0x0(r31) /* 80127F9C 00123DDC 2C 07 00 00 */ cmpwi r7, 0x0 /* 80127FA0 00123DE0 40 82 FC D0 */ bne lbl_80127C70 .global lbl_80127FA4 lbl_80127FA4: /* 80127FA4 00123DE4 4B EF 98 BD */ bl OSRestoreInterrupts /* 80127FA8 00123DE8 80 01 00 24 */ lwz r0, 0x24(r1) /* 80127FAC 00123DEC 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80127FB0 00123DF0 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80127FB4 00123DF4 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80127FB8 00123DF8 83 81 00 10 */ lwz r28, 0x10(r1) /* 80127FBC 00123DFC 7C 08 03 A6 */ mtlr r0 /* 80127FC0 00123E00 38 21 00 20 */ addi r1, r1, 0x20 /* 80127FC4 00123E04 4E 80 00 20 */ blr /* 80127FC8 00123E08 00 00 00 00 */ .4byte 0x00000000 /* 80127FCC 00123E0C 00 00 00 00 */ .4byte 0x00000000 .global Console_VFPrintf__Q24nw4r2dbFQ34nw4r2db17ConsoleOutputTypePQ44nw4r2db6detail11ConsoleHeadPCcP16__va_list_struct Console_VFPrintf__Q24nw4r2dbFQ34nw4r2db17ConsoleOutputTypePQ44nw4r2db6detail11ConsoleHeadPCcP16__va_list_struct: /* 80127FD0 00123E10 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80127FD4 00123E14 7C 08 02 A6 */ mflr r0 /* 80127FD8 00123E18 90 01 00 24 */ stw r0, 0x24(r1) /* 80127FDC 00123E1C 39 61 00 20 */ addi r11, r1, 0x20 /* 80127FE0 00123E20 4B ED F3 5D */ bl lbl_8000733C /* 80127FE4 00123E24 7C 7B 1B 78 */ mr r27, r3 /* 80127FE8 00123E28 7C 9C 23 78 */ mr r28, r4 /* 80127FEC 00123E2C 7C BD 2B 78 */ mr r29, r5 /* 80127FF0 00123E30 7C DE 33 78 */ mr r30, r6 /* 80127FF4 00123E34 4B EF C7 5D */ bl OSGetCurrentThread /* 80127FF8 00123E38 2C 03 00 00 */ cmpwi r3, 0x0 /* 80127FFC 00123E3C 41 82 00 18 */ beq lbl_80128014 /* 80128000 00123E40 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 80128004 00123E44 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 80128008 00123E48 4B EF AB 99 */ bl OSLockMutex /* 8012800C 00123E4C 38 00 00 01 */ li r0, 0x1 /* 80128010 00123E50 48 00 00 18 */ b lbl_80128028 .global lbl_80128014 lbl_80128014: /* 80128014 00123E54 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 80128018 00123E58 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 8012801C 00123E5C 80 03 00 08 */ lwz r0, 0x8(r3) /* 80128020 00123E60 7C 00 00 34 */ cntlzw r0, r0 /* 80128024 00123E64 54 00 D9 7E */ srwi r0, r0, 5 .global lbl_80128028 lbl_80128028: /* 80128028 00123E68 2C 00 00 00 */ cmpwi r0, 0x0 /* 8012802C 00123E6C 41 82 00 64 */ beq lbl_80128090 /* 80128030 00123E70 3F E0 80 54 */ lis r31, "@LOCAL@Console_VFPrintf__Q24nw4r2dbFQ34nw4r2db17ConsoleOutputTypePQ44nw4r2db6detail11ConsoleHeadPCcP16__va_list_struct@sStrBuf@0"@ha /* 80128034 00123E74 7F A5 EB 78 */ mr r5, r29 /* 80128038 00123E78 7F C6 F3 78 */ mr r6, r30 /* 8012803C 00123E7C 38 80 04 00 */ li r4, 0x400 /* 80128040 00123E80 38 7F 30 C8 */ addi r3, r31, "@LOCAL@Console_VFPrintf__Q24nw4r2dbFQ34nw4r2db17ConsoleOutputTypePQ44nw4r2db6detail11ConsoleHeadPCcP16__va_list_struct@sStrBuf@0"@l /* 80128044 00123E84 4B EE 55 79 */ bl vsnprintf /* 80128048 00123E88 57 60 07 BD */ rlwinm. r0, r27, 0, 30, 30 /* 8012804C 00123E8C 41 82 00 14 */ beq lbl_80128060 /* 80128050 00123E90 38 9F 30 C8 */ addi r4, r31, 0x30c8 /* 80128054 00123E94 38 6D 86 6C */ addi r3, r13, "@8712_80556A8C"@sda21 /* 80128058 00123E98 4C C6 31 82 */ crclr 4*cr1+eq /* 8012805C 00123E9C 4B EF 59 35 */ bl OSReport .global lbl_80128060 lbl_80128060: /* 80128060 00123EA0 57 60 07 FF */ clrlwi. r0, r27, 31 /* 80128064 00123EA4 41 82 00 14 */ beq lbl_80128078 /* 80128068 00123EA8 3C 80 80 54 */ lis r4, "@LOCAL@Console_VFPrintf__Q24nw4r2dbFQ34nw4r2db17ConsoleOutputTypePQ44nw4r2db6detail11ConsoleHeadPCcP16__va_list_struct@sStrBuf@0"@ha /* 8012806C 00123EAC 7F 83 E3 78 */ mr r3, r28 /* 80128070 00123EB0 38 84 30 C8 */ addi r4, r4, "@LOCAL@Console_VFPrintf__Q24nw4r2dbFQ34nw4r2db17ConsoleOutputTypePQ44nw4r2db6detail11ConsoleHeadPCcP16__va_list_struct@sStrBuf@0"@l /* 80128074 00123EB4 4B FF FB 9D */ bl PrintToBuffer___Q24nw4r2dbFPQ44nw4r2db6detail11ConsoleHeadPCUc .global lbl_80128078 lbl_80128078: /* 80128078 00123EB8 4B EF C6 D9 */ bl OSGetCurrentThread /* 8012807C 00123EBC 2C 03 00 00 */ cmpwi r3, 0x0 /* 80128080 00123EC0 41 82 00 10 */ beq lbl_80128090 /* 80128084 00123EC4 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 80128088 00123EC8 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 8012808C 00123ECC 4B EF AB F5 */ bl OSUnlockMutex .global lbl_80128090 lbl_80128090: /* 80128090 00123ED0 39 61 00 20 */ addi r11, r1, 0x20 /* 80128094 00123ED4 4B ED F2 F5 */ bl lbl_80007388 /* 80128098 00123ED8 80 01 00 24 */ lwz r0, 0x24(r1) /* 8012809C 00123EDC 7C 08 03 A6 */ mtlr r0 /* 801280A0 00123EE0 38 21 00 20 */ addi r1, r1, 0x20 /* 801280A4 00123EE4 4E 80 00 20 */ blr /* 801280A8 00123EE8 00 00 00 00 */ .4byte 0x00000000 /* 801280AC 00123EEC 00 00 00 00 */ .4byte 0x00000000 .global Console_Printf__Q24nw4r2dbFPQ44nw4r2db6detail11ConsoleHeadPCce Console_Printf__Q24nw4r2dbFPQ44nw4r2db6detail11ConsoleHeadPCce: /* 801280B0 00123EF0 94 21 FF 70 */ stwu r1, -0x90(r1) /* 801280B4 00123EF4 7C 08 02 A6 */ mflr r0 /* 801280B8 00123EF8 90 01 00 94 */ stw r0, 0x94(r1) /* 801280BC 00123EFC 93 E1 00 8C */ stw r31, 0x8c(r1) /* 801280C0 00123F00 93 C1 00 88 */ stw r30, 0x88(r1) /* 801280C4 00123F04 7C 9E 23 78 */ mr r30, r4 /* 801280C8 00123F08 93 A1 00 84 */ stw r29, 0x84(r1) /* 801280CC 00123F0C 7C 7D 1B 78 */ mr r29, r3 /* 801280D0 00123F10 40 86 00 24 */ bne cr1, lbl_801280F4 /* 801280D4 00123F14 D8 21 00 28 */ stfd f1, 0x28(r1) /* 801280D8 00123F18 D8 41 00 30 */ stfd f2, 0x30(r1) /* 801280DC 00123F1C D8 61 00 38 */ stfd f3, 0x38(r1) /* 801280E0 00123F20 D8 81 00 40 */ stfd f4, 0x40(r1) /* 801280E4 00123F24 D8 A1 00 48 */ stfd f5, 0x48(r1) /* 801280E8 00123F28 D8 C1 00 50 */ stfd f6, 0x50(r1) /* 801280EC 00123F2C D8 E1 00 58 */ stfd f7, 0x58(r1) /* 801280F0 00123F30 D9 01 00 60 */ stfd f8, 0x60(r1) .global lbl_801280F4 lbl_801280F4: /* 801280F4 00123F34 39 61 00 98 */ addi r11, r1, 0x98 /* 801280F8 00123F38 38 01 00 08 */ addi r0, r1, 0x8 /* 801280FC 00123F3C 3D 80 02 00 */ lis r12, 0x200 /* 80128100 00123F40 90 61 00 08 */ stw r3, 0x8(r1) /* 80128104 00123F44 90 81 00 0C */ stw r4, 0xc(r1) /* 80128108 00123F48 90 A1 00 10 */ stw r5, 0x10(r1) /* 8012810C 00123F4C 90 C1 00 14 */ stw r6, 0x14(r1) /* 80128110 00123F50 90 E1 00 18 */ stw r7, 0x18(r1) /* 80128114 00123F54 91 01 00 1C */ stw r8, 0x1c(r1) /* 80128118 00123F58 91 21 00 20 */ stw r9, 0x20(r1) /* 8012811C 00123F5C 91 41 00 24 */ stw r10, 0x24(r1) /* 80128120 00123F60 91 81 00 68 */ stw r12, 0x68(r1) /* 80128124 00123F64 91 61 00 6C */ stw r11, 0x6c(r1) /* 80128128 00123F68 90 01 00 70 */ stw r0, 0x70(r1) /* 8012812C 00123F6C 4B EF C6 25 */ bl OSGetCurrentThread /* 80128130 00123F70 2C 03 00 00 */ cmpwi r3, 0x0 /* 80128134 00123F74 41 82 00 18 */ beq lbl_8012814C /* 80128138 00123F78 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 8012813C 00123F7C 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 80128140 00123F80 4B EF AA 61 */ bl OSLockMutex /* 80128144 00123F84 38 00 00 01 */ li r0, 0x1 /* 80128148 00123F88 48 00 00 18 */ b lbl_80128160 .global lbl_8012814C lbl_8012814C: /* 8012814C 00123F8C 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 80128150 00123F90 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 80128154 00123F94 80 03 00 08 */ lwz r0, 0x8(r3) /* 80128158 00123F98 7C 00 00 34 */ cntlzw r0, r0 /* 8012815C 00123F9C 54 00 D9 7E */ srwi r0, r0, 5 .global lbl_80128160 lbl_80128160: /* 80128160 00123FA0 2C 00 00 00 */ cmpwi r0, 0x0 /* 80128164 00123FA4 41 82 00 50 */ beq lbl_801281B4 /* 80128168 00123FA8 3F E0 80 54 */ lis r31, "@LOCAL@Console_VFPrintf__Q24nw4r2dbFQ34nw4r2db17ConsoleOutputTypePQ44nw4r2db6detail11ConsoleHeadPCcP16__va_list_struct@sStrBuf@0"@ha /* 8012816C 00123FAC 7F C5 F3 78 */ mr r5, r30 /* 80128170 00123FB0 38 7F 30 C8 */ addi r3, r31, "@LOCAL@Console_VFPrintf__Q24nw4r2dbFQ34nw4r2db17ConsoleOutputTypePQ44nw4r2db6detail11ConsoleHeadPCcP16__va_list_struct@sStrBuf@0"@l /* 80128174 00123FB4 38 C1 00 68 */ addi r6, r1, 0x68 /* 80128178 00123FB8 38 80 04 00 */ li r4, 0x400 /* 8012817C 00123FBC 4B EE 54 41 */ bl vsnprintf /* 80128180 00123FC0 38 9F 30 C8 */ addi r4, r31, 0x30c8 /* 80128184 00123FC4 38 6D 86 6C */ addi r3, r13, "@8712_80556A8C"@sda21 /* 80128188 00123FC8 4C C6 31 82 */ crclr 4*cr1+eq /* 8012818C 00123FCC 4B EF 58 05 */ bl OSReport /* 80128190 00123FD0 7F A3 EB 78 */ mr r3, r29 /* 80128194 00123FD4 38 9F 30 C8 */ addi r4, r31, 0x30c8 /* 80128198 00123FD8 4B FF FA 79 */ bl PrintToBuffer___Q24nw4r2dbFPQ44nw4r2db6detail11ConsoleHeadPCUc /* 8012819C 00123FDC 4B EF C5 B5 */ bl OSGetCurrentThread /* 801281A0 00123FE0 2C 03 00 00 */ cmpwi r3, 0x0 /* 801281A4 00123FE4 41 82 00 10 */ beq lbl_801281B4 /* 801281A8 00123FE8 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 801281AC 00123FEC 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 801281B0 00123FF0 4B EF AA D1 */ bl OSUnlockMutex .global lbl_801281B4 lbl_801281B4: /* 801281B4 00123FF4 80 01 00 94 */ lwz r0, 0x94(r1) /* 801281B8 00123FF8 83 E1 00 8C */ lwz r31, 0x8c(r1) /* 801281BC 00123FFC 83 C1 00 88 */ lwz r30, 0x88(r1) /* 801281C0 00124000 83 A1 00 84 */ lwz r29, 0x84(r1) /* 801281C4 00124004 7C 08 03 A6 */ mtlr r0 /* 801281C8 00124008 38 21 00 90 */ addi r1, r1, 0x90 /* 801281CC 0012400C 4E 80 00 20 */ blr .global Console_PrintfD__Q24nw4r2dbFPQ44nw4r2db6detail11ConsoleHeadPCce Console_PrintfD__Q24nw4r2dbFPQ44nw4r2db6detail11ConsoleHeadPCce: /* 801281D0 00124010 94 21 FF 70 */ stwu r1, -0x90(r1) /* 801281D4 00124014 7C 08 02 A6 */ mflr r0 /* 801281D8 00124018 90 01 00 94 */ stw r0, 0x94(r1) /* 801281DC 0012401C 93 E1 00 8C */ stw r31, 0x8c(r1) /* 801281E0 00124020 93 C1 00 88 */ stw r30, 0x88(r1) /* 801281E4 00124024 7C 9E 23 78 */ mr r30, r4 /* 801281E8 00124028 93 A1 00 84 */ stw r29, 0x84(r1) /* 801281EC 0012402C 7C 7D 1B 78 */ mr r29, r3 /* 801281F0 00124030 40 86 00 24 */ bne cr1, lbl_80128214 /* 801281F4 00124034 D8 21 00 28 */ stfd f1, 0x28(r1) /* 801281F8 00124038 D8 41 00 30 */ stfd f2, 0x30(r1) /* 801281FC 0012403C D8 61 00 38 */ stfd f3, 0x38(r1) /* 80128200 00124040 D8 81 00 40 */ stfd f4, 0x40(r1) /* 80128204 00124044 D8 A1 00 48 */ stfd f5, 0x48(r1) /* 80128208 00124048 D8 C1 00 50 */ stfd f6, 0x50(r1) /* 8012820C 0012404C D8 E1 00 58 */ stfd f7, 0x58(r1) /* 80128210 00124050 D9 01 00 60 */ stfd f8, 0x60(r1) .global lbl_80128214 lbl_80128214: /* 80128214 00124054 39 61 00 98 */ addi r11, r1, 0x98 /* 80128218 00124058 38 01 00 08 */ addi r0, r1, 0x8 /* 8012821C 0012405C 3D 80 02 00 */ lis r12, 0x200 /* 80128220 00124060 90 61 00 08 */ stw r3, 0x8(r1) /* 80128224 00124064 90 81 00 0C */ stw r4, 0xc(r1) /* 80128228 00124068 90 A1 00 10 */ stw r5, 0x10(r1) /* 8012822C 0012406C 90 C1 00 14 */ stw r6, 0x14(r1) /* 80128230 00124070 90 E1 00 18 */ stw r7, 0x18(r1) /* 80128234 00124074 91 01 00 1C */ stw r8, 0x1c(r1) /* 80128238 00124078 91 21 00 20 */ stw r9, 0x20(r1) /* 8012823C 0012407C 91 41 00 24 */ stw r10, 0x24(r1) /* 80128240 00124080 91 81 00 68 */ stw r12, 0x68(r1) /* 80128244 00124084 91 61 00 6C */ stw r11, 0x6c(r1) /* 80128248 00124088 90 01 00 70 */ stw r0, 0x70(r1) /* 8012824C 0012408C 4B EF C5 05 */ bl OSGetCurrentThread /* 80128250 00124090 2C 03 00 00 */ cmpwi r3, 0x0 /* 80128254 00124094 41 82 00 18 */ beq lbl_8012826C /* 80128258 00124098 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 8012825C 0012409C 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 80128260 001240A0 4B EF A9 41 */ bl OSLockMutex /* 80128264 001240A4 38 00 00 01 */ li r0, 0x1 /* 80128268 001240A8 48 00 00 18 */ b lbl_80128280 .global lbl_8012826C lbl_8012826C: /* 8012826C 001240AC 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 80128270 001240B0 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 80128274 001240B4 80 03 00 08 */ lwz r0, 0x8(r3) /* 80128278 001240B8 7C 00 00 34 */ cntlzw r0, r0 /* 8012827C 001240BC 54 00 D9 7E */ srwi r0, r0, 5 .global lbl_80128280 lbl_80128280: /* 80128280 001240C0 2C 00 00 00 */ cmpwi r0, 0x0 /* 80128284 001240C4 41 82 00 40 */ beq lbl_801282C4 /* 80128288 001240C8 3F E0 80 54 */ lis r31, "@LOCAL@Console_VFPrintf__Q24nw4r2dbFQ34nw4r2db17ConsoleOutputTypePQ44nw4r2db6detail11ConsoleHeadPCcP16__va_list_struct@sStrBuf@0"@ha /* 8012828C 001240CC 7F C5 F3 78 */ mr r5, r30 /* 80128290 001240D0 38 7F 30 C8 */ addi r3, r31, "@LOCAL@Console_VFPrintf__Q24nw4r2dbFQ34nw4r2db17ConsoleOutputTypePQ44nw4r2db6detail11ConsoleHeadPCcP16__va_list_struct@sStrBuf@0"@l /* 80128294 001240D4 38 C1 00 68 */ addi r6, r1, 0x68 /* 80128298 001240D8 38 80 04 00 */ li r4, 0x400 /* 8012829C 001240DC 4B EE 53 21 */ bl vsnprintf /* 801282A0 001240E0 7F A3 EB 78 */ mr r3, r29 /* 801282A4 001240E4 38 9F 30 C8 */ addi r4, r31, 0x30c8 /* 801282A8 001240E8 4B FF F9 69 */ bl PrintToBuffer___Q24nw4r2dbFPQ44nw4r2db6detail11ConsoleHeadPCUc /* 801282AC 001240EC 4B EF C4 A5 */ bl OSGetCurrentThread /* 801282B0 001240F0 2C 03 00 00 */ cmpwi r3, 0x0 /* 801282B4 001240F4 41 82 00 10 */ beq lbl_801282C4 /* 801282B8 001240F8 3C 60 80 54 */ lis r3, sMutex__Q24nw4r2db@ha /* 801282BC 001240FC 38 63 30 B0 */ addi r3, r3, sMutex__Q24nw4r2db@l /* 801282C0 00124100 4B EF A9 C1 */ bl OSUnlockMutex .global lbl_801282C4 lbl_801282C4: /* 801282C4 00124104 80 01 00 94 */ lwz r0, 0x94(r1) /* 801282C8 00124108 83 E1 00 8C */ lwz r31, 0x8c(r1) /* 801282CC 0012410C 83 C1 00 88 */ lwz r30, 0x88(r1) /* 801282D0 00124110 83 A1 00 84 */ lwz r29, 0x84(r1) /* 801282D4 00124114 7C 08 03 A6 */ mtlr r0 /* 801282D8 00124118 38 21 00 90 */ addi r1, r1, 0x90 /* 801282DC 0012411C 4E 80 00 20 */ blr .global Console_GetTotalLines__Q24nw4r2dbFPQ44nw4r2db6detail11ConsoleHead Console_GetTotalLines__Q24nw4r2dbFPQ44nw4r2db6detail11ConsoleHead: /* 801282E0 00124120 94 21 FF F0 */ stwu r1, -0x10(r1) /* 801282E4 00124124 7C 08 02 A6 */ mflr r0 /* 801282E8 00124128 90 01 00 14 */ stw r0, 0x14(r1) /* 801282EC 0012412C 93 E1 00 0C */ stw r31, 0xc(r1) /* 801282F0 00124130 7C 7F 1B 78 */ mr r31, r3 /* 801282F4 00124134 4B EF 95 2D */ bl OSDisableInterrupts /* 801282F8 00124138 A0 9F 00 10 */ lhz r4, 0x10(r31) /* 801282FC 0012413C A0 1F 00 0C */ lhz r0, 0xc(r31) /* 80128300 00124140 7C 84 00 51 */ subf. r4, r4, r0 /* 80128304 00124144 40 80 00 0C */ bge lbl_80128310 /* 80128308 00124148 A0 1F 00 06 */ lhz r0, 0x6(r31) /* 8012830C 0012414C 7C 84 02 14 */ add r4, r4, r0 .global lbl_80128310 lbl_80128310: /* 80128310 00124150 A0 1F 00 0E */ lhz r0, 0xe(r31) /* 80128314 00124154 54 84 04 3E */ clrlwi r4, r4, 16 /* 80128318 00124158 2C 00 00 00 */ cmpwi r0, 0x0 /* 8012831C 0012415C 41 82 00 0C */ beq lbl_80128328 /* 80128320 00124160 38 04 00 01 */ addi r0, r4, 0x1 /* 80128324 00124164 54 04 04 3E */ clrlwi r4, r0, 16 .global lbl_80128328 lbl_80128328: /* 80128328 00124168 80 1F 00 14 */ lwz r0, 0x14(r31) /* 8012832C 0012416C 7F E0 22 14 */ add r31, r0, r4 /* 80128330 00124170 4B EF 95 31 */ bl OSRestoreInterrupts /* 80128334 00124174 7F E3 FB 78 */ mr r3, r31 /* 80128338 00124178 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8012833C 0012417C 80 01 00 14 */ lwz r0, 0x14(r1) /* 80128340 00124180 7C 08 03 A6 */ mtlr r0 /* 80128344 00124184 38 21 00 10 */ addi r1, r1, 0x10 /* 80128348 00124188 4E 80 00 20 */ blr /* 8012834C 0012418C 00 00 00 00 */ .4byte 0x00000000 .include "macros.inc" .section .bss, "", @nobits # 0x80496700 - 0x80556420 ; 0x000BFD20 .global sMutex__Q24nw4r2db sMutex__Q24nw4r2db: .skip 0x18 .global "@LOCAL@Console_VFPrintf__Q24nw4r2dbFQ34nw4r2db17ConsoleOutputTypePQ44nw4r2db6detail11ConsoleHeadPCcP16__va_list_struct@sStrBuf@0" "@LOCAL@Console_VFPrintf__Q24nw4r2dbFQ34nw4r2db17ConsoleOutputTypePQ44nw4r2db6detail11ConsoleHeadPCcP16__va_list_struct@sStrBuf@0": .skip 0x400 .include "macros.inc" .section .sdata, "wa" # 0x80556420 - 0x8055C6E0 ; 0x000062C0 .global "@8595" "@8595": .4byte 0x25730A00 .global "@8712_80556A8C" "@8712_80556A8C": .4byte 0x25730000 .include "macros.inc" .section .sbss, "", @nobits # 0x8055C6E0 - 0x8055DF80 ; 0x000018A0 .global sConsoleList__Q24nw4r2db sConsoleList__Q24nw4r2db: .skip 0x4 .global sInitialized__Q24nw4r2db_8055D0BC sInitialized__Q24nw4r2db_8055D0BC: .skip 0x4