summaryrefslogtreecommitdiff
path: root/src/debug/taya_debug_window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/debug/taya_debug_window.c')
-rw-r--r--src/debug/taya_debug_window.c2122
1 files changed, 2122 insertions, 0 deletions
diff --git a/src/debug/taya_debug_window.c b/src/debug/taya_debug_window.c
new file mode 100644
index 000000000..4f9b588d8
--- /dev/null
+++ b/src/debug/taya_debug_window.c
@@ -0,0 +1,2122 @@
+#ifdef DEBUG
+#include "global.h"
+
+EWRAM_DATA u8 unk_2030224[4] = { 0 };
+
+__attribute__((naked))
+void TayaDebugMenu_Trend()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " add sp, sp, #0xffffffd8\n"
+ " bl MenuZeroFillScreen\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1e\n"
+ " mov r3, #0xb\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r5, ._3\n"
+ " mov r7, #0x0\n"
+ " mov r0, #0x1\n"
+ " add r0, r0, sp\n"
+ " mov sl, r0\n"
+ " mov r9, sp\n"
+ " mov r0, #0x0\n"
+ " mov r8, r0\n"
+ " add r6, sp, #0x20\n"
+ "._2:\n"
+ " ldrb r1, [r5, #0x1]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " mov r1, #0xa1\n"
+ " cmp r0, #0\n"
+ " beq ._1 @cond_branch\n"
+ " mov r1, #0xa2\n"
+ "._1:\n"
+ " mov r0, r9\n"
+ " strb r1, [r0]\n"
+ " ldrh r1, [r5, #0x4]\n"
+ " add r0, r6, #0\n"
+ " bl sub_80EB3FC\n"
+ " mov r0, sl\n"
+ " add r1, r6, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x7\n"
+ " bl StringCopyPadded\n"
+ " add r4, r0, #0\n"
+ " ldrh r1, [r5, #0x6]\n"
+ " add r0, r6, #0\n"
+ " bl sub_80EB3FC\n"
+ " add r0, r4, #0\n"
+ " add r1, r6, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x8\n"
+ " bl StringCopyPadded\n"
+ " add r4, r0, #0\n"
+ " ldrb r1, [r5]\n"
+ " lsl r1, r1, #0x19\n"
+ " lsr r1, r1, #0x19\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r4, r0, #0\n"
+ " mov r0, r8\n"
+ " strb r0, [r4]\n"
+ " add r4, r4, #0x1\n"
+ " ldrh r1, [r5]\n"
+ " lsl r1, r1, #0x12\n"
+ " lsr r1, r1, #0x19\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r4, r0, #0\n"
+ " mov r0, r8\n"
+ " strb r0, [r4]\n"
+ " add r4, r4, #0x1\n"
+ " ldrh r1, [r5, #0x2]\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " lsl r2, r7, #0x1\n"
+ " add r2, r2, #0x1\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " mov r0, sp\n"
+ " mov r1, #0x1\n"
+ " bl MenuPrint\n"
+ " add r5, r5, #0x8\n"
+ " add r0, r7, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r7, r0, #0x10\n"
+ " cmp r7, #0x4\n"
+ " bls ._2 @cond_branch\n"
+ " ldr r1, ._3 + 4\n"
+ " ldr r0, ._3 + 8\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " add sp, sp, #0x28\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._4:\n"
+ " .align 2, 0\n"
+ "._3:\n"
+ " .word gSaveBlock1+0x2dd4\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_8090808+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8090808()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._7\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x3\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._5 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._6\n"
+ "._8:\n"
+ " .align 2, 0\n"
+ "._7:\n"
+ " .word gMain\n"
+ "._5:\n"
+ " bl MenuZeroFillScreen\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ "._6:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void TayaDebugMenu_TrendR()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r0, #0x0\n"
+ " ldr r7, ._11\n"
+ "._10:\n"
+ " mov r4, #0x0\n"
+ " lsl r5, r0, #0x3\n"
+ " add r6, r0, #1\n"
+ "._9:\n"
+ " bl Random\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " mov r1, #0x16\n"
+ " bl __umodsi3\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " bl sub_80EB72C\n"
+ " lsl r1, r4, #0x1\n"
+ " add r1, r1, r5\n"
+ " add r1, r1, r7\n"
+ " strh r0, [r1]\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " cmp r4, #0x1\n"
+ " bls ._9 @cond_branch\n"
+ " lsl r0, r6, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " cmp r0, #0x4\n"
+ " bls ._10 @cond_branch\n"
+ " bl MenuZeroFillScreen\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._12:\n"
+ " .align 2, 0\n"
+ "._11:\n"
+ " .word gSaveBlock1+0x2dd8\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8090880()
+{
+ asm(
+ " push {lr}\n"
+ " bl UpdatePaletteFade\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._13 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._14\n"
+ "._13:\n"
+ " bl sub_80E60D8\n"
+ " mov r0, #0x1\n"
+ "._14:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_809089C()
+{
+ asm(
+ " push {lr}\n"
+ " bl ProcessMenuInput\n"
+ " lsl r0, r0, #0x18\n"
+ " asr r1, r0, #0x18\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " cmp r1, r0\n"
+ " beq ._15 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " cmp r1, r0\n"
+ " bne ._16 @cond_branch\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " b ._17\n"
+ "._16:\n"
+ " ldr r2, ._19\n"
+ " ldr r0, ._19 + 4\n"
+ " lsl r1, r1, #0x3\n"
+ " add r0, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " ldr r0, [r1]\n"
+ " strh r0, [r2]\n"
+ " ldrh r0, [r2]\n"
+ " sub r0, r0, #0x5\n"
+ " cmp r0, #0x7\n"
+ " bhi ._27 @cond_branch\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._19 + 8\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov pc, r0\n"
+ "._20:\n"
+ " .align 2, 0\n"
+ "._19:\n"
+ " .word gSpecialVar_0x8004\n"
+ " .word gUnknown_Debug_083C4EC0\n"
+ " .word ._21\n"
+ "._21:\n"
+ " .word ._29\n"
+ " .word ._27\n"
+ " .word ._29\n"
+ " .word ._29\n"
+ " .word ._27\n"
+ " .word ._27\n"
+ " .word ._29\n"
+ " .word ._29\n"
+ "._29:\n"
+ " ldr r0, ._30\n"
+ " mov r1, #0x0\n"
+ " strh r1, [r0]\n"
+ " ldr r0, ._30 + 4\n"
+ " strh r1, [r0]\n"
+ "._27:\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x0\n"
+ " bl fade_screen\n"
+ " ldr r1, ._30 + 8\n"
+ " ldr r0, ._30 + 12\n"
+ " str r0, [r1]\n"
+ "._15:\n"
+ " mov r0, #0x0\n"
+ "._17:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._31:\n"
+ " .align 2, 0\n"
+ "._30:\n"
+ " .word gSpecialVar_0x8005\n"
+ " .word gSpecialVar_0x8006\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_8090880+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void TayaDebugMenu_SimpleText()
+{
+ asm(
+ " push {lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xc\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r3, ._32\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x9\n"
+ " bl PrintMenuItems\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " mov r0, #0xb\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x9\n"
+ " bl InitMenu\n"
+ " ldr r1, ._32 + 4\n"
+ " ldr r0, ._32 + 8\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " add sp, sp, #0x8\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._33:\n"
+ " .align 2, 0\n"
+ "._32:\n"
+ " .word gUnknown_Debug_083C4EC0\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_809089C+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8090984()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " bl ProcessMenuInput\n"
+ " lsl r2, r0, #0x18\n"
+ " asr r1, r2, #0x18\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " cmp r1, r0\n"
+ " beq ._34 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " cmp r1, r0\n"
+ " beq ._46 @cond_branch\n"
+ " cmp r1, #0x4\n"
+ " bgt ._36 @cond_branch\n"
+ " lsr r0, r2, #0x18\n"
+ " bl debug_sub_810B32C\n"
+ " b ._46\n"
+ "._34:\n"
+ " mov r0, #0x0\n"
+ " b ._38\n"
+ "._36:\n"
+ " cmp r1, #0x5\n"
+ " bne ._39 @cond_branch\n"
+ " bl sub_80F7F30\n"
+ " b ._46\n"
+ "._39:\n"
+ " cmp r1, #0x6\n"
+ " bne ._41 @cond_branch\n"
+ " mov r4, #0x0\n"
+ " ldr r0, ._44\n"
+ " add r1, r0, #2\n"
+ " mov ip, r1\n"
+ " ldr r7, ._44 + 4\n"
+ " ldr r1, ._44 + 8\n"
+ " add r6, r0, r1\n"
+ " add r5, r0, #0\n"
+ " add r5, r5, #0xe\n"
+ "._42:\n"
+ " lsl r1, r4, #0x1\n"
+ " mov r0, ip\n"
+ " add r3, r1, r0\n"
+ " add r0, r1, r7\n"
+ " ldrh r2, [r0]\n"
+ " strh r2, [r3]\n"
+ " add r0, r1, r5\n"
+ " strh r2, [r0]\n"
+ " add r1, r6, r1\n"
+ " strh r2, [r1]\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " cmp r4, #0x2\n"
+ " bls ._42 @cond_branch\n"
+ " b ._46\n"
+ "._45:\n"
+ " .align 2, 0\n"
+ "._44:\n"
+ " .word gSaveBlock1+0x2d94\n"
+ " .word gUnknown_Debug_083C4F08\n"
+ " .word 0xfffffd94\n"
+ "._41:\n"
+ " cmp r1, #0x7\n"
+ " bne ._46 @cond_branch\n"
+ " mov r4, #0x0\n"
+ "._47:\n"
+ " lsl r0, r4, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl sub_80EB890\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " cmp r4, #0x20\n"
+ " bls ._47 @cond_branch\n"
+ "._46:\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ "._38:\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void TayaDebugMenu_OldMan()
+{
+ asm(
+ " push {lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xa\n"
+ " mov r3, #0x11\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r3, ._48\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x8\n"
+ " bl PrintMenuItems\n"
+ " bl GetCurrentMauvilleOldMan\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " str r0, [sp]\n"
+ " mov r0, #0x9\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x8\n"
+ " bl InitMenu\n"
+ " ldr r1, ._48 + 4\n"
+ " ldr r0, ._48 + 8\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " add sp, sp, #0x8\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._49:\n"
+ " .align 2, 0\n"
+ "._48:\n"
+ " .word gUnknown_Debug_083C4F54\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_8090984+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void TayaDebugMenu_LanettesPC()
+{
+ asm(
+ " push {lr}\n"
+ " bl MenuZeroFillScreen\n"
+ " bl ShowPokemonStorageSystem\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void TayaDebugMenu_TownFlags()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._50\n"
+ " bl FlagSet\n"
+ " mov r0, #0x81\n"
+ " lsl r0, r0, #0x4\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 4\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 8\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 12\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 16\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 20\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 24\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 28\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 32\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 36\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 40\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 44\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 48\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 52\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 56\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 60\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 64\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 68\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 72\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 76\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 80\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 84\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 88\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 92\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 96\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 100\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 104\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 108\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 112\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 116\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 120\n"
+ " bl FlagSet\n"
+ " mov r0, #0x84\n"
+ " lsl r0, r0, #0x4\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 124\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 128\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 132\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 136\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 140\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 144\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 148\n"
+ " bl FlagSet\n"
+ " ldr r0, ._50 + 152\n"
+ " bl FlagSet\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._51:\n"
+ " .align 2, 0\n"
+ "._50:\n"
+ " .word 0x80f\n"
+ " .word 0x811\n"
+ " .word 0x812\n"
+ " .word 0x813\n"
+ " .word 0x814\n"
+ " .word 0x815\n"
+ " .word 0x816\n"
+ " .word 0x817\n"
+ " .word 0x818\n"
+ " .word 0x819\n"
+ " .word 0x81a\n"
+ " .word 0x81b\n"
+ " .word 0x81c\n"
+ " .word 0x81d\n"
+ " .word 0x81e\n"
+ " .word 0x848\n"
+ " .word 0x849\n"
+ " .word 0x84a\n"
+ " .word 0x854\n"
+ " .word 0x855\n"
+ " .word 0x856\n"
+ " .word 0x857\n"
+ " .word 0x858\n"
+ " .word 0x859\n"
+ " .word 0x85a\n"
+ " .word 0x85b\n"
+ " .word 0x85c\n"
+ " .word 0x83c\n"
+ " .word 0x83d\n"
+ " .word 0x83e\n"
+ " .word 0x83f\n"
+ " .word 0x841\n"
+ " .word 0x842\n"
+ " .word 0x843\n"
+ " .word 0x844\n"
+ " .word 0x845\n"
+ " .word 0x846\n"
+ " .word 0x847\n"
+ " .word 0x83b\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void TayaDebugMenu_AwardARibbon()
+{
+ asm(
+ " push {lr}\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " mov r1, #0x10\n"
+ " mov r2, #0x0\n"
+ " bl BlendPalettes\n"
+ " ldr r0, ._52\n"
+ " bl SetMainCallback2\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._53:\n"
+ " .align 2, 0\n"
+ "._52:\n"
+ " .word debug_sub_80915BC+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8090C44()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " ldr r4, ._54\n"
+ " sub r5, r4, #1\n"
+ " ldrh r1, [r5, #0x8]\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x5\n"
+ " bl StringFill\n"
+ " ldrb r0, [r5]\n"
+ " add r0, r0, r4\n"
+ " mov r1, #0x79\n"
+ " strb r1, [r0]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._55:\n"
+ " .align 2, 0\n"
+ "._54:\n"
+ " .word +0x2000001\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8090C88()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " mov r0, #0x1\n"
+ " mov r8, r0\n"
+ " ldr r2, ._59\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " add r3, r2, #0\n"
+ " cmp r0, #0\n"
+ " beq ._57 @cond_branch\n"
+ " ldr r1, ._59 + 4\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " beq ._57 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " b ._62\n"
+ "._60:\n"
+ " .align 2, 0\n"
+ "._59:\n"
+ " .word gMain\n"
+ " .word +0x2000000\n"
+ "._67:\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " b ._62\n"
+ "._77:\n"
+ " strh r1, [r7, #0x8]\n"
+ " b ._62\n"
+ "._79:\n"
+ " ldr r0, ._64\n"
+ " ldrh r0, [r0, #0x8]\n"
+ " bl SetLotteryNumber16_Unused\n"
+ "._78:\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " b ._63\n"
+ "._65:\n"
+ " .align 2, 0\n"
+ "._64:\n"
+ " .word +0x2000000\n"
+ "._57:\n"
+ " ldrh r1, [r3, #0x2e]\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._66 @cond_branch\n"
+ " ldr r1, ._81\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0x3\n"
+ " bls ._67 @cond_branch\n"
+ "._66:\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._68 @cond_branch\n"
+ " ldr r0, ._81\n"
+ " ldrh r1, [r0, #0x8]\n"
+ " str r1, [r0, #0xc]\n"
+ " ldr r1, ._81 + 4\n"
+ " strh r1, [r0, #0x10]\n"
+ " mov r4, #0x0\n"
+ " ldrb r1, [r0]\n"
+ " add r7, r0, #0\n"
+ " cmp r4, r1\n"
+ " bcs ._69 @cond_branch\n"
+ " add r5, r7, #0\n"
+ " add r6, r1, #0\n"
+ "._70:\n"
+ " ldrh r0, [r5, #0x10]\n"
+ " mov r1, #0xa\n"
+ " str r3, [sp]\n"
+ " bl __udivsi3\n"
+ " strh r0, [r5, #0x10]\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " ldr r3, [sp]\n"
+ " cmp r4, r6\n"
+ " bcc ._70 @cond_branch\n"
+ "._69:\n"
+ " ldrh r1, [r7, #0x10]\n"
+ " ldr r0, [r7, #0xc]\n"
+ " add r0, r0, r1\n"
+ " str r0, [r7, #0xc]\n"
+ " ldr r1, ._81 + 8\n"
+ " cmp r0, r1\n"
+ " ble ._71 @cond_branch\n"
+ " str r1, [r7, #0xc]\n"
+ "._71:\n"
+ " ldrh r0, [r7, #0x8]\n"
+ " ldr r1, [r7, #0xc]\n"
+ " cmp r0, r1\n"
+ " bne ._77 @cond_branch\n"
+ "._68:\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._73 @cond_branch\n"
+ " ldr r0, ._81\n"
+ " ldrh r1, [r0, #0x8]\n"
+ " str r1, [r0, #0xc]\n"
+ " ldr r1, ._81 + 4\n"
+ " strh r1, [r0, #0x10]\n"
+ " mov r4, #0x0\n"
+ " ldrb r1, [r0]\n"
+ " add r7, r0, #0\n"
+ " cmp r4, r1\n"
+ " bcs ._74 @cond_branch\n"
+ " add r5, r7, #0\n"
+ " add r6, r1, #0\n"
+ "._75:\n"
+ " ldrh r0, [r5, #0x10]\n"
+ " mov r1, #0xa\n"
+ " str r3, [sp]\n"
+ " bl __udivsi3\n"
+ " strh r0, [r5, #0x10]\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " ldr r3, [sp]\n"
+ " cmp r4, r6\n"
+ " bcc ._75 @cond_branch\n"
+ "._74:\n"
+ " add r2, r7, #0\n"
+ " ldrh r1, [r2, #0x10]\n"
+ " ldr r0, [r2, #0xc]\n"
+ " sub r0, r0, r1\n"
+ " str r0, [r2, #0xc]\n"
+ " cmp r0, #0\n"
+ " bge ._76 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " str r0, [r2, #0xc]\n"
+ "._76:\n"
+ " ldrh r0, [r2, #0x8]\n"
+ " ldr r1, [r2, #0xc]\n"
+ " cmp r0, r1\n"
+ " bne ._77 @cond_branch\n"
+ "._73:\n"
+ " ldrh r2, [r3, #0x2e]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " bne ._78 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " bne ._79 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " mov r8, r0\n"
+ "._62:\n"
+ " mov r0, r8\n"
+ " cmp r0, #0\n"
+ " beq ._80 @cond_branch\n"
+ " bl debug_sub_8090C44\n"
+ "._80:\n"
+ " mov r0, #0x0\n"
+ "._63:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._82:\n"
+ " .align 2, 0\n"
+ "._81:\n"
+ " .word +0x2000000\n"
+ " .word 0x2710\n"
+ " .word 0xffff\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void TayaDebugMenu_PKMNLottery()
+{
+ asm(
+ " push {lr}\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x6\n"
+ " mov r3, #0x5\n"
+ " bl MenuDrawTextWindow\n"
+ " bl RetrieveLotteryNumber\n"
+ " ldr r2, ._83\n"
+ " ldr r0, ._83 + 4\n"
+ " ldrh r0, [r0]\n"
+ " mov r1, #0x0\n"
+ " strh r0, [r2, #0x8]\n"
+ " strb r1, [r2]\n"
+ " bl debug_sub_8090C44\n"
+ " ldr r1, ._83 + 8\n"
+ " ldr r0, ._83 + 12\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._84:\n"
+ " .align 2, 0\n"
+ "._83:\n"
+ " .word +0x2000000\n"
+ " .word gScriptResult\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_8090C88+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void TayaDebugMenu_Trainer()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " mov r4, #0x0\n"
+ " ldr r5, ._86\n"
+ "._85:\n"
+ " lsl r0, r4, #0x4\n"
+ " add r0, r0, r5\n"
+ " ldrh r0, [r0]\n"
+ " bl trainer_flag_set\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " cmp r4, #0x37\n"
+ " bls ._85 @cond_branch\n"
+ " ldr r0, ._86 + 4\n"
+ " bl trainer_flag_set\n"
+ " mov r0, #0x85\n"
+ " lsl r0, r0, #0x1\n"
+ " bl trainer_flag_set\n"
+ " ldr r0, ._86 + 8\n"
+ " bl trainer_flag_set\n"
+ " mov r0, #0x86\n"
+ " lsl r0, r0, #0x1\n"
+ " bl trainer_flag_set\n"
+ " ldr r0, ._86 + 12\n"
+ " bl trainer_flag_set\n"
+ " mov r0, #0x87\n"
+ " lsl r0, r0, #0x1\n"
+ " bl trainer_flag_set\n"
+ " ldr r0, ._86 + 16\n"
+ " bl trainer_flag_set\n"
+ " mov r0, #0x88\n"
+ " lsl r0, r0, #0x1\n"
+ " bl trainer_flag_set\n"
+ " ldr r0, ._86 + 20\n"
+ " bl trainer_flag_set\n"
+ " mov r0, #0x83\n"
+ " lsl r0, r0, #0x1\n"
+ " bl trainer_flag_set\n"
+ " ldr r0, ._86 + 24\n"
+ " bl trainer_flag_set\n"
+ " mov r0, #0x84\n"
+ " lsl r0, r0, #0x1\n"
+ " bl trainer_flag_set\n"
+ " ldr r0, ._86 + 28\n"
+ " bl trainer_flag_set\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r4, r5}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._87:\n"
+ " .align 2, 0\n"
+ "._86:\n"
+ " .word gTrainerEyeTrainers\n"
+ " .word 0x109\n"
+ " .word 0x10b\n"
+ " .word 0x10d\n"
+ " .word 0x10f\n"
+ " .word 0x105\n"
+ " .word 0x107\n"
+ " .word 0x14f\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void TayaDebugMenu_PokenavD()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " add sp, sp, #0xffffffe4\n"
+ " bl MenuDisplayMessageBox\n"
+ " mov r0, #0x0\n"
+ " mov sl, r0\n"
+ " mov r6, #0x1\n"
+ " mov r7, #0xff\n"
+ " mov r1, #0x3\n"
+ " mov r9, r1\n"
+ "._93:\n"
+ " ldr r4, ._94\n"
+ " add r0, r4, #0\n"
+ " ldr r1, ._94 + 4\n"
+ " bl StringCopy\n"
+ " mov r5, sl\n"
+ " add r5, r5, #0x1\n"
+ " add r1, r5, r4\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r1]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xf\n"
+ " bl MenuPrint\n"
+ " mov r0, #0x0\n"
+ " mov r8, r0\n"
+ " str r5, [sp, #0x14]\n"
+ " mov r1, sl\n"
+ " lsl r1, r1, #0x2\n"
+ " str r1, [sp, #0x18]\n"
+ "._91:\n"
+ " bl Random\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " add r0, r0, #0x1\n"
+ " str r0, [sp, #0x10]\n"
+ " bl Random\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " mov r1, #0x64\n"
+ " bl __umodsi3\n"
+ " add r0, r0, #0x1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r5, r0, #0x10\n"
+ " bl Random\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " mov r1, #0xc1\n"
+ " lsl r1, r1, #0x1\n"
+ " bl __umodsi3\n"
+ " add r0, r0, #0x1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r3, r0, #0x10\n"
+ " cmp r3, #0xfb\n"
+ " bls ._89 @cond_branch\n"
+ " add r0, r3, #0\n"
+ " add r0, r0, #0x19\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r3, r0, #0x10\n"
+ " ldr r0, ._94 + 8\n"
+ " cmp r3, r0\n"
+ " bls ._89 @cond_branch\n"
+ " mov r3, #0x1\n"
+ "._89:\n"
+ " ldr r0, [sp, #0x18]\n"
+ " add r0, r0, sl\n"
+ " lsl r4, r0, #0x4\n"
+ " sub r4, r4, r0\n"
+ " lsl r4, r4, #0x5\n"
+ " mov r1, r8\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r8\n"
+ " lsl r0, r0, #0x4\n"
+ " ldr r1, ._94 + 12\n"
+ " add r0, r0, r1\n"
+ " add r4, r4, r0\n"
+ " lsl r2, r5, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " str r0, [sp, #0x4]\n"
+ " str r6, [sp, #0x8]\n"
+ " ldr r0, [sp, #0x10]\n"
+ " str r0, [sp, #0xc]\n"
+ " add r0, r4, #0\n"
+ " add r1, r3, #0\n"
+ " mov r3, #0x20\n"
+ " bl CreateBoxMon\n"
+ " bl Random\n"
+ " add r1, r7, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x16\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r7, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x17\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r7, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x18\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r7, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x21\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r7, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x2f\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r7, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x30\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " mov r1, r9\n"
+ " and r1, r1, r0\n"
+ " add r1, r1, #0x1\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x32\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " mov r1, r9\n"
+ " and r1, r1, r0\n"
+ " add r1, r1, #0x1\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x33\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " mov r1, r9\n"
+ " and r1, r1, r0\n"
+ " add r1, r1, #0x1\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x34\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " mov r1, r9\n"
+ " and r1, r1, r0\n"
+ " add r1, r1, #0x1\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x36\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " mov r1, r9\n"
+ " and r1, r1, r0\n"
+ " add r1, r1, #0x1\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x35\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r6, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x43\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r6, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x44\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r6, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x45\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r6, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x46\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r6, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x47\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r6, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x48\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r6, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x49\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r6, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x4a\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r6, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x4b\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r6, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x4c\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r6, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x4d\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " bl Random\n"
+ " add r1, r6, #0\n"
+ " and r1, r1, r0\n"
+ " str r1, [sp, #0x10]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x4e\n"
+ " add r2, sp, #0x10\n"
+ " bl SetBoxMonData\n"
+ " mov r0, r8\n"
+ " add r0, r0, #0x1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " mov r8, r0\n"
+ " cmp r0, #0x1d\n"
+ " bhi ._90 @cond_branch\n"
+ " b ._91\n"
+ "._90:\n"
+ " ldr r1, [sp, #0x14]\n"
+ " lsl r0, r1, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " mov sl, r0\n"
+ " cmp r0, #0xd\n"
+ " bhi ._92 @cond_branch\n"
+ " b ._93\n"
+ "._92:\n"
+ " bl TayaDebugMenu_TownFlags\n"
+ " bl TayaDebugMenu_Trainer\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " add sp, sp, #0x1c\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._95:\n"
+ " .align 2, 0\n"
+ "._94:\n"
+ " .word +0x2000000\n"
+ " .word gUnknown_Debug_083C4F94\n"
+ " .word 0x19b\n"
+ " .word gPokemonStorage+0x4\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void TayaDebugMenu_8091190()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " bl ProcessMenuInput\n"
+ " lsl r0, r0, #0x18\n"
+ " asr r3, r0, #0x18\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " cmp r3, r0\n"
+ " beq ._96 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " cmp r3, r0\n"
+ " beq ._97 @cond_branch\n"
+ " ldr r2, ._99\n"
+ " ldr r1, ._99 + 4\n"
+ " ldr r0, ._99 + 8\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x18\n"
+ " asr r0, r0, #0x18\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, [r0]\n"
+ " lsl r0, r3, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0, #0x4]\n"
+ " str r0, [r2]\n"
+ "._106:\n"
+ " mov r0, #0x0\n"
+ " b ._98\n"
+ "._100:\n"
+ " .align 2, 0\n"
+ "._99:\n"
+ " .word gCallback_03004AE8\n"
+ " .word gUnknown_Debug_83C5068\n"
+ " .word unk_2030224\n"
+ "._96:\n"
+ " ldr r3, ._107\n"
+ " ldrb r4, [r3]\n"
+ " ldr r2, ._107 + 4\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " add r5, r3, #0\n"
+ " cmp r0, #0\n"
+ " beq ._102 @cond_branch\n"
+ " sub r0, r4, #1\n"
+ " strb r0, [r5]\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bge ._102 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r5]\n"
+ "._102:\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._104 @cond_branch\n"
+ " ldrb r0, [r5]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r5]\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x1\n"
+ " bls ._104 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r5]\n"
+ "._104:\n"
+ " lsl r0, r4, #0x18\n"
+ " asr r0, r0, #0x18\n"
+ " mov r1, #0x0\n"
+ " ldrsb r1, [r5, r1]\n"
+ " cmp r0, r1\n"
+ " beq ._106 @cond_branch\n"
+ " bl MenuZeroFillScreen\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xb\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r4, ._107 + 8\n"
+ " mov r0, #0x0\n"
+ " ldrsb r0, [r5, r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r4\n"
+ " ldrb r2, [r0, #0x4]\n"
+ " ldr r3, [r0]\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x1\n"
+ " bl PrintMenuItems\n"
+ " mov r0, #0x0\n"
+ " ldrsb r0, [r5, r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r4\n"
+ " ldrb r3, [r0, #0x4]\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " mov r0, #0xa\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl InitMenu\n"
+ " b ._106\n"
+ "._108:\n"
+ " .align 2, 0\n"
+ "._107:\n"
+ " .word unk_2030224\n"
+ " .word gMain\n"
+ " .word gUnknown_Debug_83C5068\n"
+ "._97:\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ "._98:\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4, r5}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void InitTayaDebugWindow()
+{
+ asm(
+ " push {lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " ldr r1, ._109\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ " bl MenuZeroFillScreen\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xb\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r0, ._109 + 4\n"
+ " ldr r3, [r0]\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x9\n"
+ " bl PrintMenuItems\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " mov r0, #0xa\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x9\n"
+ " bl InitMenu\n"
+ " ldr r1, ._109 + 8\n"
+ " ldr r0, ._109 + 12\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " add sp, sp, #0x8\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._110:\n"
+ " .align 2, 0\n"
+ "._109:\n"
+ " .word unk_2030224\n"
+ " .word gUnknown_Debug_83C5068\n"
+ " .word gCallback_03004AE8\n"
+ " .word TayaDebugMenu_8091190+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_80912D8()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._113\n"
+ " ldrb r1, [r0, #0x7]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._111 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._112\n"
+ "._114:\n"
+ " .align 2, 0\n"
+ "._113:\n"
+ " .word gPaletteFade\n"
+ "._111:\n"
+ " ldr r0, ._115\n"
+ " bl SetMainCallback2\n"
+ " mov r0, #0x1\n"
+ "._112:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._116:\n"
+ " .align 2, 0\n"
+ "._115:\n"
+ " .word debug_sub_8110F28+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8091300()
+{
+ asm(
+ " push {lr}\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x0\n"
+ " bl fade_screen\n"
+ " ldr r1, ._117\n"
+ " ldr r0, ._117 + 4\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._118:\n"
+ " .align 2, 0\n"
+ "._117:\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_80912D8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8091320()
+{
+ asm(
+ " push {lr}\n"
+ " bl LoadOam\n"
+ " bl ProcessSpriteCopyRequests\n"
+ " bl TransferPlttBuffer\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8091334()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r9\n"
+ " mov r6, r8\n"
+ " push {r6, r7}\n"
+ " bl AnimateSprites\n"
+ " bl BuildOamBuffer\n"
+ " ldr r3, ._123\n"
+ " add r0, r3, #0\n"
+ " add r0, r0, #0x52\n"
+ " ldrb r4, [r0]\n"
+ " cmp r4, #0\n"
+ " beq ._119 @cond_branch\n"
+ " cmp r4, #0x1\n"
+ " bne ._120 @cond_branch\n"
+ " b ._121\n"
+ "._120:\n"
+ " b ._162\n"
+ "._124:\n"
+ " .align 2, 0\n"
+ "._123:\n"
+ " .word +0x2000000\n"
+ "._119:\n"
+ " add r5, r3, #0\n"
+ " add r5, r5, #0x55\n"
+ " strb r4, [r5]\n"
+ " ldr r2, ._131\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " mov r9, r2\n"
+ " cmp r0, #0\n"
+ " beq ._126 @cond_branch\n"
+ " add r1, r3, #0\n"
+ " add r1, r1, #0x54\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " beq ._126 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r5]\n"
+ "._126:\n"
+ " mov r0, r9\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " ldr r5, ._131 + 4\n"
+ " cmp r0, #0\n"
+ " beq ._133 @cond_branch\n"
+ " add r0, r5, #0\n"
+ " add r0, r0, #0x53\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0x2\n"
+ " beq ._128 @cond_branch\n"
+ " add r1, r5, #0\n"
+ " add r1, r1, #0x54\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0x4\n"
+ " bhi ._133 @cond_branch\n"
+ " b ._130\n"
+ "._132:\n"
+ " .align 2, 0\n"
+ "._131:\n"
+ " .word gMain\n"
+ " .word +0x2000000\n"
+ "._128:\n"
+ " add r1, r5, #0\n"
+ " add r1, r1, #0x54\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0x3\n"
+ " bhi ._133 @cond_branch\n"
+ "._130:\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " add r1, r1, #0x1\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ "._133:\n"
+ " mov r2, r9\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._135 @cond_branch\n"
+ " add r1, r5, #0\n"
+ " add r1, r1, #0x53\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " beq ._135 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ "._135:\n"
+ " mov r3, r9\n"
+ " ldrh r1, [r3, #0x2e]\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._140 @cond_branch\n"
+ " add r0, r5, #0\n"
+ " add r0, r0, #0x54\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0x5\n"
+ " beq ._137 @cond_branch\n"
+ " add r1, r5, #0\n"
+ " add r1, r1, #0x53\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0x1\n"
+ " bhi ._140 @cond_branch\n"
+ " b ._139\n"
+ "._137:\n"
+ " add r1, r5, #0\n"
+ " add r1, r1, #0x53\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " bne ._140 @cond_branch\n"
+ "._139:\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ "._140:\n"
+ " add r0, r5, #0\n"
+ " add r0, r0, #0x55\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " bne ._141 @cond_branch\n"
+ " mov r0, r9\n"
+ " ldrh r2, [r0, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._142 @cond_branch\n"
+ " ldr r2, ._145\n"
+ " add r3, r5, #0\n"
+ " add r3, r3, #0x53\n"
+ " add r0, r5, #0\n"
+ " add r0, r0, #0x54\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r1\n"
+ " ldrb r3, [r3]\n"
+ " add r0, r0, r3\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r2\n"
+ " ldrh r0, [r0, #0x4]\n"
+ " sub r0, r0, #0x32\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " cmp r0, #0x4\n"
+ " bhi ._143 @cond_branch\n"
+ " add r1, r5, #0\n"
+ " add r1, r1, #0x56\n"
+ " mov r0, #0x4\n"
+ " b ._144\n"
+ "._146:\n"
+ " .align 2, 0\n"
+ "._145:\n"
+ " .word gUnknown_Debug_083C50EC\n"
+ "._143:\n"
+ " add r1, r5, #0\n"
+ " add r1, r1, #0x56\n"
+ " mov r0, #0x1\n"
+ "._144:\n"
+ " strb r0, [r1]\n"
+ " add r1, r5, #0\n"
+ " add r1, r1, #0x52\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " b ._162\n"
+ "._142:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " bne ._148 @cond_branch\n"
+ " b ._162\n"
+ "._148:\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " mov r1, #0x10\n"
+ " mov r2, #0x0\n"
+ " bl BlendPalettes\n"
+ " ldr r0, ._151\n"
+ " bl SetMainCallback2\n"
+ " b ._162\n"
+ "._152:\n"
+ " .align 2, 0\n"
+ "._151:\n"
+ " .word sub_80546F0+1\n"
+ "._121:\n"
+ " add r5, r3, #0\n"
+ " add r5, r5, #0x55\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r5]\n"
+ " ldr r2, ._159\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " mov r9, r2\n"
+ " cmp r0, #0\n"
+ " beq ._154 @cond_branch\n"
+ " add r2, r3, #0\n"
+ " add r2, r2, #0x53\n"
+ " add r0, r3, #0\n"
+ " add r0, r0, #0x54\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r1\n"
+ " ldrb r2, [r2]\n"
+ " add r0, r0, r2\n"
+ " add r2, r0, r3\n"
+ " add r0, r3, #0\n"
+ " add r0, r0, #0x56\n"
+ " ldrb r1, [r2]\n"
+ " ldrb r0, [r0]\n"
+ " cmp r1, r0\n"
+ " bcs ._154 @cond_branch\n"
+ " add r0, r1, #1\n"
+ " strb r0, [r2]\n"
+ " strb r4, [r5]\n"
+ "._154:\n"
+ " mov r2, r9\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " ldr r5, ._159 + 4\n"
+ " cmp r0, #0\n"
+ " beq ._156 @cond_branch\n"
+ " add r2, r5, #0\n"
+ " add r2, r2, #0x53\n"
+ " add r0, r5, #0\n"
+ " add r0, r0, #0x54\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r1\n"
+ " ldrb r2, [r2]\n"
+ " add r0, r0, r2\n"
+ " add r1, r0, r5\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " beq ._156 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " add r1, r5, #0\n"
+ " add r1, r1, #0x55\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ "._156:\n"
+ " add r6, r5, #0\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0x55\n"
+ " ldrb r7, [r0]\n"
+ " cmp r7, #0\n"
+ " beq ._157 @cond_branch\n"
+ "._141:\n"
+ " bl debug_sub_80916AC\n"
+ " b ._162\n"
+ "._160:\n"
+ " .align 2, 0\n"
+ "._159:\n"
+ " .word gMain\n"
+ " .word +0x2000000\n"
+ "._157:\n"
+ " mov r3, r9\n"
+ " ldrh r1, [r3, #0x2e]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._161 @cond_branch\n"
+ " ldr r0, ._164\n"
+ " ldr r1, ._164 + 4\n"
+ " mov ip, r1\n"
+ " mov r2, #0x53\n"
+ " add r2, r2, r6\n"
+ " mov r8, r2\n"
+ " add r4, r6, #0\n"
+ " add r4, r4, #0x54\n"
+ " ldrb r2, [r4]\n"
+ " lsl r1, r2, #0x1\n"
+ " add r1, r1, r2\n"
+ " mov r3, r8\n"
+ " ldrb r3, [r3]\n"
+ " add r1, r1, r3\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, ip\n"
+ " ldrh r1, [r1, #0x4]\n"
+ " bl GetMonData\n"
+ " ldrb r2, [r4]\n"
+ " lsl r1, r2, #0x1\n"
+ " add r1, r1, r2\n"
+ " mov r2, r8\n"
+ " ldrb r2, [r2]\n"
+ " add r1, r1, r2\n"
+ " add r1, r1, r6\n"
+ " strb r0, [r1]\n"
+ " bl debug_sub_80916AC\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0x52\n"
+ " strb r7, [r0]\n"
+ "._161:\n"
+ " mov r3, r9\n"
+ " ldrh r1, [r3, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._162 @cond_branch\n"
+ " ldr r2, ._164 + 4\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0x53\n"
+ " ldrb r4, [r0]\n"
+ " add r0, r0, #0x1\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x1\n"
+ " add r3, r0, r1\n"
+ " add r0, r3, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r1, r0, r2\n"
+ " ldrh r0, [r1, #0x4]\n"
+ " cmp r0, #0\n"
+ " beq ._163 @cond_branch\n"
+ " ldr r0, ._164\n"
+ " ldrh r1, [r1, #0x4]\n"
+ " add r2, r4, r6\n"
+ " add r2, r3, r2\n"
+ " bl SetMonData\n"
+ "._163:\n"
+ " add r0, r5, #0\n"
+ " add r0, r0, #0x52\n"
+ " strb r7, [r0]\n"
+ "._162:\n"
+ " pop {r3, r4}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._165:\n"
+ " .align 2, 0\n"
+ "._164:\n"
+ " .word gPlayerParty\n"
+ " .word gUnknown_Debug_083C50EC\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_80915BC()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " ldr r0, ._168\n"
+ " mov r1, #0x0\n"
+ " strh r1, [r0]\n"
+ " add r0, r0, #0x2\n"
+ " strh r1, [r0]\n"
+ " mov r1, #0x0\n"
+ " ldr r0, ._168 + 4\n"
+ " mov r8, r0\n"
+ " ldr r7, ._168 + 8\n"
+ "._171:\n"
+ " mov r4, #0x0\n"
+ " lsl r0, r1, #0x1\n"
+ " add r6, r1, #1\n"
+ " add r5, r0, r1\n"
+ "._170:\n"
+ " add r0, r5, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r8\n"
+ " ldrh r1, [r0, #0x4]\n"
+ " cmp r1, #0\n"
+ " beq ._166 @cond_branch\n"
+ " ldr r0, ._168 + 12\n"
+ " bl GetMonData\n"
+ " add r1, r4, r5\n"
+ " add r1, r1, r7\n"
+ " strb r0, [r1]\n"
+ " b ._167\n"
+ "._169:\n"
+ " .align 2, 0\n"
+ "._168:\n"
+ " .word 0x4000010\n"
+ " .word gUnknown_Debug_083C50EC\n"
+ " .word +0x2000000\n"
+ " .word gPlayerParty\n"
+ "._166:\n"
+ " add r0, r4, r5\n"
+ " add r0, r0, r7\n"
+ " strb r1, [r0]\n"
+ "._167:\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " cmp r4, #0x2\n"
+ " bls ._170 @cond_branch\n"
+ " lsl r0, r6, #0x18\n"
+ " lsr r1, r0, #0x18\n"
+ " cmp r1, #0x5\n"
+ " bls ._171 @cond_branch\n"
+ " ldr r4, ._172\n"
+ " add r0, r4, #0\n"
+ " bl SetUpWindowConfig\n"
+ " add r0, r4, #0\n"
+ " bl InitMenuWindow\n"
+ " bl MenuZeroFillScreen\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x3\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r0, ._172 + 4\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x11\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x12\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x15\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r1, #0x80\n"
+ " lsl r1, r1, #0x13\n"
+ " mov r2, #0x8a\n"
+ " lsl r2, r2, #0x5\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r2, ._172 + 8\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0x53\n"
+ " mov r1, #0x0\n"
+ " strb r1, [r0]\n"
+ " add r0, r0, #0x1\n"
+ " strb r1, [r0]\n"
+ " sub r0, r0, #0x2\n"
+ " strb r1, [r0]\n"
+ " bl debug_sub_80916AC\n"
+ " ldr r0, ._172 + 12\n"
+ " bl SetVBlankCallback\n"
+ " ldr r0, ._172 + 16\n"
+ " bl SetMainCallback2\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._173:\n"
+ " .align 2, 0\n"
+ "._172:\n"
+ " .word gWindowConfig_81E7224\n"
+ " .word gUnknown_Debug_083C517C\n"
+ " .word +0x2000000\n"
+ " .word debug_sub_8091320+1\n"
+ " .word debug_sub_8091334+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_80916AC()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " mov r6, #0x0\n"
+ " ldr r0, ._177\n"
+ " mov sl, r0\n"
+ " mov r1, #0x0\n"
+ " mov r8, r1\n"
+ "._182:\n"
+ " ldr r2, ._177 + 4\n"
+ " mov r5, #0x0\n"
+ " lsl r0, r6, #0x1\n"
+ " mov r9, r0\n"
+ " add r1, r6, #1\n"
+ " str r1, [sp]\n"
+ "._181:\n"
+ " mov r0, sl\n"
+ " add r0, r0, #0x53\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, r5\n"
+ " bne ._175 @cond_branch\n"
+ " ldr r1, ._177 + 8\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, r6\n"
+ " bne ._175 @cond_branch\n"
+ " mov r0, #0xef\n"
+ " b ._176\n"
+ "._178:\n"
+ " .align 2, 0\n"
+ "._177:\n"
+ " .word +0x2000000\n"
+ " .word +0x2000012\n"
+ " .word +0x2000054\n"
+ "._175:\n"
+ " mov r0, r8\n"
+ " strb r0, [r2]\n"
+ " add r2, r2, #0x1\n"
+ "._176:\n"
+ " strb r0, [r2]\n"
+ " add r2, r2, #0x1\n"
+ " mov r1, r9\n"
+ " add r4, r1, r6\n"
+ " add r0, r4, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " ldr r1, ._183\n"
+ " add r0, r0, r1\n"
+ " ldr r1, [r0]\n"
+ " add r0, r2, #0\n"
+ " bl StringCopy\n"
+ " add r2, r0, #0\n"
+ " mov r0, r8\n"
+ " strb r0, [r2]\n"
+ " add r2, r2, #0x1\n"
+ " ldr r7, ._183 + 4\n"
+ " add r4, r5, r4\n"
+ " add r4, r4, r7\n"
+ " ldrb r1, [r4]\n"
+ " add r0, r2, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x1\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r2, r0, #0\n"
+ " mov r1, r8\n"
+ " strb r1, [r2]\n"
+ " add r2, r2, #0x1\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0x2\n"
+ " bhi ._179 @cond_branch\n"
+ " cmp r6, #0x5\n"
+ " bne ._181 @cond_branch\n"
+ " cmp r5, #0x2\n"
+ " bne ._181 @cond_branch\n"
+ "._179:\n"
+ " sub r1, r2, #1\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r1]\n"
+ " mov r2, r9\n"
+ " add r2, r2, #0x5\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " add r0, r7, #0\n"
+ " add r0, r0, #0x12\n"
+ " mov r1, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r1, [sp]\n"
+ " lsl r0, r1, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " cmp r6, #0x5\n"
+ " bls ._182 @cond_branch\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._184:\n"
+ " .align 2, 0\n"
+ "._183:\n"
+ " .word gUnknown_Debug_083C50EC\n"
+ " .word +0x2000000\n"
+ "\n"
+ );
+}
+
+#endif