summaryrefslogtreecommitdiff
path: root/src/pokemon/mail.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pokemon/mail.c')
-rw-r--r--src/pokemon/mail.c1866
1 files changed, 1864 insertions, 2 deletions
diff --git a/src/pokemon/mail.c b/src/pokemon/mail.c
index 921a3ad93..c652b9398 100644
--- a/src/pokemon/mail.c
+++ b/src/pokemon/mail.c
@@ -238,7 +238,7 @@ const struct MailLayout gUnknown_083E57A4[] =
static u8 *const sSharedMemPtr = gSharedMem;
static u8 sub_80F8A28(void);
-static void sub_80F8D50(void);
+/*static*/ void sub_80F8D50(void);
static void sub_80F8DA0(void);
static void sub_80F8E80(void);
static void sub_80F8F18(void);
@@ -247,6 +247,205 @@ static void sub_80F8F58(void);
static void sub_80F8F78(void);
static void sub_80F8FB4(void);
+
+#if DEBUG
+
+// should be static
+__attribute__((section(".bss"))) u8 unk_debug_bss_2;
+
+__attribute__((naked))
+void HandleReadMail(struct MailStruct *aStruct, MainCallback callback, bool8 bool81)
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " add r4, r0, #0\n"
+ " add r6, r1, #0\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r5, r2, #0x18\n"
+ " ldr r0, ._3\n"
+ " ldrb r3, [r0]\n"
+ " cmp r3, #0\n"
+ " beq ._1 @cond_branch\n"
+ " ldr r2, ._3 + 4\n"
+ " add r1, r2, #0\n"
+ " add r1, r1, #0xff\n"
+ " mov r0, #0x5\n"
+ " strb r0, [r1]\n"
+ " ldr r0, ._3 + 8\n"
+ " ldrh r1, [r0]\n"
+ " mov r3, #0x80\n"
+ " lsl r3, r3, #0x1\n"
+ " add r0, r2, r3\n"
+ " strb r1, [r0]\n"
+ " mov r0, #0x82\n"
+ " lsl r0, r0, #0x1\n"
+ " add r1, r2, r0\n"
+ " ldr r0, ._3 + 12\n"
+ " str r0, [r1]\n"
+ " add r3, r3, #0x8\n"
+ " add r1, r2, r3\n"
+ " ldr r0, ._3 + 16\n"
+ " str r0, [r1]\n"
+ " ldr r0, ._3 + 20\n"
+ " ldrh r1, [r0]\n"
+ " b ._2\n"
+ "._4:\n"
+ " .align 2, 0\n"
+ "._3:\n"
+ " .word gUnknown_03000748+0x4\n"
+ " .word +0x2000000\n"
+ " .word gSpecialVar_0x8004\n"
+ " .word EasyChat_GetWordText+1\n"
+ " .word ConvertEasyChatWordsToString+1\n"
+ " .word gSpecialVar_0x8006\n"
+ "._1:\n"
+ " ldr r2, ._7\n"
+ " add r1, r2, #0\n"
+ " add r1, r1, #0xff\n"
+ " mov r0, #0x5\n"
+ " strb r0, [r1]\n"
+ " add r0, r0, #0xfb\n"
+ " add r1, r2, r0\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " mov r0, #0x82\n"
+ " lsl r0, r0, #0x1\n"
+ " add r1, r2, r0\n"
+ " ldr r0, ._7 + 4\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x84\n"
+ " lsl r0, r0, #0x1\n"
+ " add r1, r2, r0\n"
+ " ldr r0, ._7 + 8\n"
+ " str r0, [r1]\n"
+ " ldrh r1, [r4, #0x20]\n"
+ " add r0, r1, #0\n"
+ " sub r0, r0, #0x79\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " cmp r0, #0xb\n"
+ " bhi ._5 @cond_branch\n"
+ " sub r1, r1, #0x79\n"
+ "._2:\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0xfa\n"
+ " strb r1, [r0]\n"
+ " b ._6\n"
+ "._8:\n"
+ " .align 2, 0\n"
+ "._7:\n"
+ " .word +0x2000000\n"
+ " .word EasyChat_GetWordText+1\n"
+ " .word ConvertEasyChatWordsToString+1\n"
+ "._5:\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0xfa\n"
+ " strb r3, [r0]\n"
+ " mov r5, #0x0\n"
+ "._6:\n"
+ " ldr r1, ._12\n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0x1\n"
+ " add r0, r1, r2\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._9 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " beq ._10 @cond_branch\n"
+ "._9:\n"
+ " mov r3, #0x86\n"
+ " lsl r3, r3, #0x1\n"
+ " add r2, r1, r3\n"
+ " add r0, r1, #0\n"
+ " add r0, r0, #0xfa\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " ldr r1, ._12 + 4\n"
+ " b ._11\n"
+ "._13:\n"
+ " .align 2, 0\n"
+ "._12:\n"
+ " .word +0x2000000\n"
+ " .word gUnknown_083E5730\n"
+ "._10:\n"
+ " mov r0, #0x86\n"
+ " lsl r0, r0, #0x1\n"
+ " add r2, r1, r0\n"
+ " add r0, r1, #0\n"
+ " add r0, r0, #0xfa\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " ldr r1, ._18\n"
+ "._11:\n"
+ " add r0, r0, r1\n"
+ " str r0, [r2]\n"
+ " ldrh r0, [r4, #0x1e]\n"
+ " mov r1, sp\n"
+ " bl MailSpeciesToSpecies\n"
+ " lsl r0, r0, #0x10\n"
+ " ldr r1, ._18 + 4\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0xcd\n"
+ " lsl r1, r1, #0x11\n"
+ " cmp r0, r1\n"
+ " bhi ._14 @cond_branch\n"
+ " ldr r0, ._18 + 8\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0xfa\n"
+ " ldrb r2, [r1]\n"
+ " add r1, r0, #0\n"
+ " cmp r2, #0x6\n"
+ " beq ._15 @cond_branch\n"
+ " cmp r2, #0x9\n"
+ " beq ._16 @cond_branch\n"
+ " b ._17\n"
+ "._19:\n"
+ " .align 2, 0\n"
+ "._18:\n"
+ " .word gUnknown_083E57A4\n"
+ " .word 0xffff0000\n"
+ " .word +0x2000000\n"
+ "._15:\n"
+ " add r2, r1, #0\n"
+ " add r2, r2, #0xfb\n"
+ " mov r0, #0x1\n"
+ " b ._21\n"
+ "._16:\n"
+ " add r2, r1, #0\n"
+ " add r2, r2, #0xfb\n"
+ " mov r0, #0x2\n"
+ " b ._21\n"
+ "._14:\n"
+ " ldr r1, ._22\n"
+ "._17:\n"
+ " add r2, r1, #0\n"
+ " add r2, r2, #0xfb\n"
+ " mov r0, #0x0\n"
+ "._21:\n"
+ " strb r0, [r2]\n"
+ " add r0, r1, #0\n"
+ " add r0, r0, #0xf4\n"
+ " str r4, [r0]\n"
+ " sub r0, r0, #0x8\n"
+ " str r6, [r0]\n"
+ " add r0, r0, #0xc\n"
+ " strb r5, [r0]\n"
+ " ldr r0, ._22 + 4\n"
+ " bl SetMainCallback2\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._23:\n"
+ " .align 2, 0\n"
+ "._22:\n"
+ " .word +0x2000000\n"
+ " .word sub_80F8D50+1\n"
+ "\n"
+ );
+}
+#else
void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2)
{
u16 mailDesign;
@@ -310,6 +509,7 @@ void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2)
SetMainCallback2(sub_80F8D50);
}
+#endif
#define RETURN_UP_STATE break
#define RETURN_SKIP_STATE return FALSE
@@ -456,7 +656,7 @@ static u8 sub_80F8A28(void)
return FALSE;
}
-static void sub_80F8D50(void)
+/*static*/ void sub_80F8D50(void)
{
do
{
@@ -573,6 +773,60 @@ static void sub_80F8F78(void)
}
}
+#if DEBUG
+__attribute__((naked))
+void sub_80F8FB4()
+{
+ asm(
+ " push {r4, lr}\n"
+ " bl UpdatePaletteFade\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._135 @cond_branch\n"
+ " ldr r4, ._138\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0xec\n"
+ " ldr r0, [r0]\n"
+ " bl SetMainCallback2\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0xfb\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0x2\n"
+ " bgt ._137 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " blt ._137 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0xf4\n"
+ " ldr r0, [r0]\n"
+ " ldrh r0, [r0, #0x1e]\n"
+ " bl sub_809D4A8\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " bl sub_809D608\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0xfc\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._138 + 4\n"
+ " add r0, r0, r1\n"
+ " bl sub_809D510\n"
+ "._137:\n"
+ " bl ResetPaletteFade\n"
+ "._135:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._139:\n"
+ " .align 2, 0\n"
+ "._138:\n"
+ " .word +0x2000000\n"
+ " .word gSprites\n"
+ "\n"
+ );
+}
+#else
static void sub_80F8FB4(void)
{
u16 local1;
@@ -597,3 +851,1611 @@ static void sub_80F8FB4(void)
memset(&ewram0_4, 0, 0x110);
ResetPaletteFade();
}
+#endif
+
+#if DEBUG
+__attribute__((naked))
+void debug_sub_810C910()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " ldr r0, ._143\n"
+ " ldrb r1, [r0, #0x7]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._142 @cond_branch\n"
+ " ldr r1, ._143 + 4\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " bl Menu_EraseScreen\n"
+ " add r0, r4, #0\n"
+ " bl DestroyTask\n"
+ " ldr r2, ._143 + 8\n"
+ " ldr r0, ._143 + 12\n"
+ " ldrh r1, [r0]\n"
+ " lsl r0, r1, #0x3\n"
+ " add r0, r0, r1\n"
+ " lsl r1, r0, #0x2\n"
+ " add r0, r1, r2\n"
+ " ldr r3, ._143 + 16\n"
+ " add r0, r0, r3\n"
+ " ldrh r0, [r0]\n"
+ " cmp r0, #0\n"
+ " bne ._141 @cond_branch\n"
+ " sub r3, r3, #0x20\n"
+ " add r0, r2, r3\n"
+ " add r0, r1, r0\n"
+ " ldr r1, ._143 + 20\n"
+ " mov r2, #0x0\n"
+ " bl HandleReadMail\n"
+ " b ._142\n"
+ "._144:\n"
+ " .align 2, 0\n"
+ "._143:\n"
+ " .word gPaletteFade\n"
+ " .word unk_debug_bss_2\n"
+ " .word gSaveBlock1\n"
+ " .word gSpecialVar_0x8005\n"
+ " .word 0x2b6c\n"
+ " .word debug_sub_810D388+1\n"
+ "._141:\n"
+ " ldr r3, ._145\n"
+ " add r0, r2, r3\n"
+ " add r0, r1, r0\n"
+ " ldr r1, ._145 + 4\n"
+ " mov r2, #0x1\n"
+ " bl HandleReadMail\n"
+ "._142:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._146:\n"
+ " .align 2, 0\n"
+ "._145:\n"
+ " .word 0x2b4c\n"
+ " .word debug_sub_810D388+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810C990()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " add r5, r4, #0\n"
+ " ldr r0, ._149\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0xa0\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._147 @cond_branch\n"
+ " ldr r4, ._149 + 4\n"
+ " ldrh r0, [r4]\n"
+ " add r0, r0, #0xb\n"
+ " b ._148\n"
+ "._150:\n"
+ " .align 2, 0\n"
+ "._149:\n"
+ " .word gMain\n"
+ " .word gSpecialVar_0x8006\n"
+ "._147:\n"
+ " mov r2, #0x50\n"
+ " and r2, r2, r1\n"
+ " cmp r2, #0\n"
+ " beq ._151 @cond_branch\n"
+ " ldr r4, ._153\n"
+ " ldrh r0, [r4]\n"
+ " add r0, r0, #0x1\n"
+ "._148:\n"
+ " mov r1, #0xc\n"
+ " bl __modsi3\n"
+ " strh r0, [r4]\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xa\n"
+ " mov r3, #0x4\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r1, ._153 + 4\n"
+ " ldrh r0, [r4]\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x2\n"
+ " bl Menu_PrintText\n"
+ " b ._159\n"
+ "._154:\n"
+ " .align 2, 0\n"
+ "._153:\n"
+ " .word gSpecialVar_0x8006\n"
+ " .word _84115C4\n"
+ "._151:\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._155 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " str r2, [sp]\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x10\n"
+ " bl BeginNormalPaletteFade\n"
+ " ldr r1, ._157\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._157 + 4\n"
+ " b ._156\n"
+ "._158:\n"
+ " .align 2, 0\n"
+ "._157:\n"
+ " .word gTasks\n"
+ " .word debug_sub_810C910+1\n"
+ "._155:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._159 @cond_branch\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " ldr r0, ._160\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, ._160 + 4\n"
+ " ldr r0, ._160 + 8\n"
+ " ldrh r0, [r0]\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x2\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, ._160 + 12\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._160 + 16\n"
+ "._156:\n"
+ " str r1, [r0]\n"
+ "._159:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._161:\n"
+ " .align 2, 0\n"
+ "._160:\n"
+ " .word Str_8411540\n"
+ " .word _8411560\n"
+ " .word gSpecialVar_0x8004\n"
+ " .word gTasks\n"
+ " .word debug_sub_810CA7C+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810CA7C()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " ldr r3, ._164\n"
+ " ldrh r1, [r3, #0x2e]\n"
+ " mov r2, #0xf0\n"
+ " and r2, r2, r1\n"
+ " cmp r2, #0\n"
+ " beq ._162 @cond_branch\n"
+ " ldr r2, ._164 + 4\n"
+ " ldrh r0, [r2]\n"
+ " mov r1, #0x1\n"
+ " eor r0, r0, r1\n"
+ " strh r0, [r2]\n"
+ " ldr r1, ._164 + 8\n"
+ " ldrh r0, [r2]\n"
+ " b ._163\n"
+ "._165:\n"
+ " .align 2, 0\n"
+ "._164:\n"
+ " .word gMain\n"
+ " .word gSpecialVar_0x8004\n"
+ " .word _8411560\n"
+ "._162:\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._168 @cond_branch\n"
+ " ldrh r0, [r3, #0x34]\n"
+ " cmp r0, #0\n"
+ " beq ._167 @cond_branch\n"
+ " strh r2, [r3, #0x34]\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " ldr r0, ._169\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xa\n"
+ " mov r3, #0x4\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r1, ._169 + 4\n"
+ " ldr r0, ._169 + 8\n"
+ " ldrh r0, [r0]\n"
+ "._163:\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x2\n"
+ " bl Menu_PrintText\n"
+ " b ._168\n"
+ "._170:\n"
+ " .align 2, 0\n"
+ "._169:\n"
+ " .word Str_8411540\n"
+ " .word _8411560\n"
+ " .word gSpecialVar_0x8004\n"
+ "._167:\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " ldr r0, ._171\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xa\n"
+ " mov r3, #0x4\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r1, ._171 + 4\n"
+ " ldr r0, ._171 + 8\n"
+ " ldrh r0, [r0]\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x2\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, ._171 + 12\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._171 + 16\n"
+ " str r1, [r0]\n"
+ "._168:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._172:\n"
+ " .align 2, 0\n"
+ "._171:\n"
+ " .word Str_8411568\n"
+ " .word _84115C4\n"
+ " .word gSpecialVar_0x8006\n"
+ " .word gTasks\n"
+ " .word debug_sub_810C990+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810CB50()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " add sp, sp, #0xffffffec\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " ldr r1, ._175\n"
+ " mov r0, sp\n"
+ " mov r2, #0x6\n"
+ " bl memcpy\n"
+ " add r7, sp, #0x8\n"
+ " ldr r1, ._175 + 4\n"
+ " add r0, r7, #0\n"
+ " mov r2, #0x9\n"
+ " bl memcpy\n"
+ " mov r2, #0x0\n"
+ " ldr r0, ._175 + 8\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._173 @cond_branch\n"
+ " ldr r0, ._175 + 12\n"
+ " ldr r5, ._175 + 16\n"
+ " ldrh r1, [r5]\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x1\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " ldr r0, ._175 + 20\n"
+ " ldr r1, ._175 + 24\n"
+ " lsl r4, r6, #0x2\n"
+ " add r4, r4, r6\n"
+ " lsl r4, r4, #0x3\n"
+ " add r4, r4, r1\n"
+ " mov r1, #0x8\n"
+ " ldsh r2, [r4, r1]\n"
+ " mov r1, #0xb\n"
+ " mul r1, r1, r2\n"
+ " ldr r2, ._175 + 28\n"
+ " add r1, r1, r2\n"
+ " bl StringCopy\n"
+ " ldr r2, ._175 + 32\n"
+ " ldrh r1, [r5]\n"
+ " lsl r0, r1, #0x3\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r2\n"
+ " ldrh r1, [r4, #0x8]\n"
+ " ldr r2, ._175 + 36\n"
+ " add r0, r0, r2\n"
+ " strh r1, [r0]\n"
+ " ldr r4, ._175 + 40\n"
+ " add r0, r4, #0\n"
+ " add r1, r7, #0\n"
+ " bl StringExpandPlaceholders\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " add r0, r6, #0\n"
+ " bl DestroyTask\n"
+ " b ._174\n"
+ "._176:\n"
+ " .align 2, 0\n"
+ "._175:\n"
+ " .word Str_841160F\n"
+ " .word Str_841161A\n"
+ " .word gMain\n"
+ " .word gStringVar1\n"
+ " .word gSpecialVar_0x8005\n"
+ " .word gStringVar2\n"
+ " .word gTasks\n"
+ " .word gSpeciesNames\n"
+ " .word gSaveBlock1\n"
+ " .word 0x2b6a\n"
+ " .word gStringVar4\n"
+ "._173:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._177 @cond_branch\n"
+ " add r0, r6, #0\n"
+ " bl DestroyTask\n"
+ " bl Menu_EraseScreen\n"
+ "._174:\n"
+ " ldr r0, ._179\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " bl debug_sub_810D340\n"
+ " b ._186\n"
+ "._180:\n"
+ " .align 2, 0\n"
+ "._179:\n"
+ " .word debug_sub_810CE1C+1\n"
+ "._177:\n"
+ " mov r0, #0xa0\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._181 @cond_branch\n"
+ " ldr r0, ._183\n"
+ " lsl r4, r6, #0x2\n"
+ " add r4, r4, r6\n"
+ " lsl r4, r4, #0x3\n"
+ " add r4, r4, r0\n"
+ " mov r1, #0x8\n"
+ " ldsh r0, [r4, r1]\n"
+ " ldr r2, ._183 + 4\n"
+ " add r0, r0, r2\n"
+ " mov r1, #0xce\n"
+ " lsl r1, r1, #0x1\n"
+ " bl __modsi3\n"
+ " strh r0, [r4, #0x8]\n"
+ " b ._182\n"
+ "._184:\n"
+ " .align 2, 0\n"
+ "._183:\n"
+ " .word gTasks\n"
+ " .word 0x19b\n"
+ "._181:\n"
+ " mov r0, #0x50\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._185 @cond_branch\n"
+ " ldr r0, ._187\n"
+ " lsl r4, r6, #0x2\n"
+ " add r4, r4, r6\n"
+ " lsl r4, r4, #0x3\n"
+ " add r4, r4, r0\n"
+ " mov r1, #0x8\n"
+ " ldsh r0, [r4, r1]\n"
+ " add r0, r0, #0x1\n"
+ " mov r1, #0xce\n"
+ " lsl r1, r1, #0x1\n"
+ " bl __modsi3\n"
+ " strh r0, [r4, #0x8]\n"
+ " mov r2, #0x1\n"
+ "._185:\n"
+ " cmp r2, #0\n"
+ " beq ._186 @cond_branch\n"
+ "._182:\n"
+ " ldr r0, ._187 + 4\n"
+ " ldr r1, ._187\n"
+ " lsl r4, r6, #0x2\n"
+ " add r4, r4, r6\n"
+ " lsl r4, r4, #0x3\n"
+ " add r4, r4, r1\n"
+ " mov r2, #0x8\n"
+ " ldsh r1, [r4, r2]\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " ldr r0, ._187 + 8\n"
+ " mov r1, #0x8\n"
+ " ldsh r2, [r4, r1]\n"
+ " mov r1, #0xb\n"
+ " mul r1, r1, r2\n"
+ " ldr r2, ._187 + 12\n"
+ " add r1, r1, r2\n"
+ " bl StringCopy\n"
+ " ldr r4, ._187 + 16\n"
+ " add r0, r4, #0\n"
+ " mov r1, sp\n"
+ " bl StringExpandPlaceholders\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xc\n"
+ " mov r3, #0x3\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl Menu_PrintText\n"
+ "._186:\n"
+ " add sp, sp, #0x14\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._188:\n"
+ " .align 2, 0\n"
+ "._187:\n"
+ " .word gTasks\n"
+ " .word gStringVar1\n"
+ " .word gStringVar2\n"
+ " .word gSpeciesNames\n"
+ " .word gStringVar4\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810CCEC()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " mov r6, r8\n"
+ " push {r6}\n"
+ " add sp, sp, #0xffffffe4\n"
+ " add r5, r0, #0\n"
+ " lsl r5, r5, #0x18\n"
+ " lsr r5, r5, #0x18\n"
+ " ldr r1, ._189\n"
+ " mov r0, sp\n"
+ " mov r2, #0x11\n"
+ " bl memcpy\n"
+ " add r6, sp, #0x14\n"
+ " ldr r1, ._189 + 4\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x7\n"
+ " bl memcpy\n"
+ " ldr r0, ._189 + 8\n"
+ " mov r8, r0\n"
+ " ldr r0, ._189 + 12\n"
+ " ldrh r1, [r0]\n"
+ " mov r0, r8\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x1\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " ldr r4, ._189 + 16\n"
+ " add r0, r4, #0\n"
+ " mov r1, sp\n"
+ " bl StringExpandPlaceholders\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, ._189 + 20\n"
+ " mov r0, r8\n"
+ " bl StringCopy\n"
+ " add r0, r4, #0\n"
+ " add r1, r6, #0\n"
+ " bl StringExpandPlaceholders\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xc\n"
+ " mov r3, #0x3\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, ._189 + 24\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._189 + 28\n"
+ " str r1, [r0]\n"
+ " add sp, sp, #0x1c\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._190:\n"
+ " .align 2, 0\n"
+ "._189:\n"
+ " .word Str_8411623\n"
+ " .word Str_8411634\n"
+ " .word gStringVar1\n"
+ " .word gSpecialVar_0x8005\n"
+ " .word gStringVar4\n"
+ " .word gSpeciesNames\n"
+ " .word gTasks\n"
+ " .word debug_sub_810CB50+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810CD9C()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " bl ScriptContext1_Stop\n"
+ " bl ScriptContext2_Enable\n"
+ " ldr r1, ._191\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ " ldr r3, ._191 + 4\n"
+ " ldr r2, ._191 + 8\n"
+ " ldr r1, ._191 + 12\n"
+ " mov r0, #0x0\n"
+ " strh r0, [r1]\n"
+ " strh r0, [r2]\n"
+ " strh r0, [r3]\n"
+ " ldr r0, ._191 + 16\n"
+ " bl SetMainCallback2\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._192:\n"
+ " .align 2, 0\n"
+ "._191:\n"
+ " .word unk_debug_bss_2\n"
+ " .word gSpecialVar_0x8004\n"
+ " .word gSpecialVar_0x8005\n"
+ " .word gSpecialVar_0x8006\n"
+ " .word debug_sub_810D388+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810CDE0()
+{
+ asm(
+ " push {lr}\n"
+ " bl UpdatePaletteFade\n"
+ " bl RunTasks\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810CDF0()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r1, ._193\n"
+ " mov r0, #0x0\n"
+ " strh r0, [r1, #0x34]\n"
+ " strh r0, [r1, #0x36]\n"
+ " ldr r1, ._193 + 4\n"
+ " ldr r0, ._193 + 8\n"
+ " str r0, [r1]\n"
+ " ldr r0, ._193 + 12\n"
+ " bl SetMainCallback2\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._194:\n"
+ " .align 2, 0\n"
+ "._193:\n"
+ " .word gMain\n"
+ " .word gFieldCallback\n"
+ " .word mapldr_default+1\n"
+ " .word c2_exit_to_overworld_2_switch+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810CE1C()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " ldr r0, ._196\n"
+ " ldr r0, [r0]\n"
+ " bl _call_via_r0\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x1\n"
+ " bne ._195 @cond_branch\n"
+ " bl CloseMenu\n"
+ " add r0, r4, #0\n"
+ " bl DestroyTask\n"
+ "._195:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._197:\n"
+ " .align 2, 0\n"
+ "._196:\n"
+ " .word gCallback_03004AE8\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810CE48()
+{
+ asm(
+ " push {r4, lr}\n"
+ " bl Menu_ProcessInput\n"
+ " lsl r0, r0, #0x18\n"
+ " asr r1, r0, #0x18\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " cmp r1, r0\n"
+ " beq ._198 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " cmp r1, r0\n"
+ " bne ._199 @cond_branch\n"
+ " bl Menu_EraseScreen\n"
+ " bl debug_sub_810D340\n"
+ "._198:\n"
+ " mov r0, #0x0\n"
+ " b ._200\n"
+ "._199:\n"
+ " ldr r0, ._201\n"
+ " strh r1, [r0]\n"
+ " ldr r4, ._201 + 4\n"
+ " ldrh r0, [r4]\n"
+ " mov r1, #0xc\n"
+ " bl __umodsi3\n"
+ " strh r0, [r4]\n"
+ " ldr r0, ._201 + 8\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " ldr r1, ._201 + 12\n"
+ " mov r2, #0x0\n"
+ " mov r0, #0x1\n"
+ " strh r0, [r1, #0x34]\n"
+ " strh r2, [r1, #0x36]\n"
+ "._200:\n"
+ " pop {r4}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._202:\n"
+ " .align 2, 0\n"
+ "._201:\n"
+ " .word gSpecialVar_0x8005\n"
+ " .word gSpecialVar_0x8006\n"
+ " .word debug_sub_810CA7C+1\n"
+ " .word gMain\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810CEA4()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._205\n"
+ " ldrb r1, [r0, #0x7]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._203 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._204\n"
+ "._206:\n"
+ " .align 2, 0\n"
+ "._205:\n"
+ " .word gPaletteFade\n"
+ "._203:\n"
+ " ldr r1, ._207\n"
+ " mov r0, #0x4\n"
+ " strh r0, [r1]\n"
+ " bl sub_80E60D8\n"
+ " mov r0, #0x1\n"
+ "._204:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._208:\n"
+ " .align 2, 0\n"
+ "._207:\n"
+ " .word gSpecialVar_0x8004\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810CED0()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add sp, sp, #0xffffffdc\n"
+ " ldr r1, ._212\n"
+ " mov r0, sp\n"
+ " mov r2, #0x23\n"
+ " bl memcpy\n"
+ " bl Menu_ProcessInput\n"
+ " lsl r0, r0, #0x18\n"
+ " asr r1, r0, #0x18\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " cmp r1, r0\n"
+ " beq ._215 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " cmp r1, r0\n"
+ " bne ._210 @cond_branch\n"
+ " bl Menu_EraseScreen\n"
+ " b ._211\n"
+ "._213:\n"
+ " .align 2, 0\n"
+ "._212:\n"
+ " .word Str_841163B\n"
+ "._210:\n"
+ " ldr r5, ._216\n"
+ " strh r1, [r5]\n"
+ " ldr r6, ._216 + 4\n"
+ " lsl r0, r1, #0x3\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " ldr r1, ._216 + 8\n"
+ " add r0, r0, r1\n"
+ " ldrh r0, [r0]\n"
+ " sub r0, r0, #0x79\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " cmp r0, #0xb\n"
+ " bls ._214 @cond_branch\n"
+ " ldrh r1, [r5]\n"
+ " lsl r0, r1, #0x3\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " ldr r2, ._216 + 8\n"
+ " add r0, r0, r2\n"
+ " ldr r1, ._216 + 12\n"
+ " strh r1, [r0]\n"
+ " ldrh r1, [r5]\n"
+ " lsl r0, r1, #0x3\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " sub r2, r2, #0xe\n"
+ " add r1, r6, r2\n"
+ " add r0, r0, r1\n"
+ " ldr r4, ._216 + 16\n"
+ " add r1, r4, #0\n"
+ " bl StringCopy\n"
+ " ldrh r1, [r5]\n"
+ " lsl r0, r1, #0x3\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r2, ._216 + 20\n"
+ " add r1, r6, r2\n"
+ " add r0, r0, r1\n"
+ " add r4, r4, #0xa\n"
+ " ldr r1, [r4]\n"
+ " str r1, [r0]\n"
+ " ldr r1, ._216 + 24\n"
+ " ldr r0, ._216 + 28\n"
+ " str r0, [r1]\n"
+ " b ._215\n"
+ "._217:\n"
+ " .align 2, 0\n"
+ "._216:\n"
+ " .word gSpecialVar_0x8005\n"
+ " .word gSaveBlock1\n"
+ " .word 0x2b6c\n"
+ " .word 0xffff\n"
+ " .word gSaveBlock2\n"
+ " .word 0x2b66\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_810CEA4+1\n"
+ "._214:\n"
+ " bl Menu_EraseScreen\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " mov r0, sp\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ "._211:\n"
+ " bl debug_sub_810D340\n"
+ "._215:\n"
+ " mov r0, #0x0\n"
+ " add sp, sp, #0x24\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810CFA4()
+{
+ asm(
+ " push {lr}\n"
+ " add sp, sp, #0xffffffe0\n"
+ " ldr r1, ._221\n"
+ " mov r0, sp\n"
+ " mov r2, #0x1f\n"
+ " bl memcpy\n"
+ " bl Menu_ProcessInput\n"
+ " lsl r0, r0, #0x18\n"
+ " asr r2, r0, #0x18\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " cmp r2, r0\n"
+ " beq ._218 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " cmp r2, r0\n"
+ " bne ._219 @cond_branch\n"
+ " bl Menu_EraseScreen\n"
+ " b ._220\n"
+ "._222:\n"
+ " .align 2, 0\n"
+ "._221:\n"
+ " .word Str_841165E\n"
+ "._219:\n"
+ " ldr r0, ._225\n"
+ " strh r2, [r0]\n"
+ " ldr r1, ._225 + 4\n"
+ " lsl r0, r2, #0x3\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._225 + 8\n"
+ " add r0, r0, r1\n"
+ " ldrh r0, [r0]\n"
+ " sub r0, r0, #0x79\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " cmp r0, #0xb\n"
+ " bls ._223 @cond_branch\n"
+ " ldr r0, ._225 + 12\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " mov r0, #0x1\n"
+ " b ._224\n"
+ "._226:\n"
+ " .align 2, 0\n"
+ "._225:\n"
+ " .word gSpecialVar_0x8005\n"
+ " .word gSaveBlock1\n"
+ " .word 0x2b6c\n"
+ " .word debug_sub_810CCEC+1\n"
+ "._223:\n"
+ " bl Menu_EraseScreen\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " mov r0, sp\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ "._220:\n"
+ " bl debug_sub_810D340\n"
+ "._218:\n"
+ " mov r0, #0x0\n"
+ "._224:\n"
+ " add sp, sp, #0x20\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810D030()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " add sp, sp, #0xffffffcc\n"
+ " ldr r1, ._230\n"
+ " mov r0, sp\n"
+ " mov r2, #0x10\n"
+ " bl memcpy\n"
+ " add r5, sp, #0x10\n"
+ " ldr r1, ._230 + 4\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x21\n"
+ " bl memcpy\n"
+ " bl Menu_ProcessInput\n"
+ " lsl r0, r0, #0x18\n"
+ " asr r1, r0, #0x18\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " cmp r1, r0\n"
+ " beq ._227 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " cmp r1, r0\n"
+ " bne ._228 @cond_branch\n"
+ " bl Menu_EraseScreen\n"
+ " b ._229\n"
+ "._231:\n"
+ " .align 2, 0\n"
+ "._230:\n"
+ " .word Str_841167D\n"
+ " .word Str_841168D\n"
+ "._228:\n"
+ " ldr r2, ._235\n"
+ " strh r1, [r2]\n"
+ " ldr r3, ._235 + 4\n"
+ " ldrh r1, [r2]\n"
+ " lsl r0, r1, #0x3\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r3\n"
+ " ldr r1, ._235 + 8\n"
+ " add r0, r0, r1\n"
+ " ldrh r1, [r0]\n"
+ " ldr r0, ._235 + 12\n"
+ " add r4, r2, #0\n"
+ " cmp r1, r0\n"
+ " beq ._233 @cond_branch\n"
+ " cmp r1, #0\n"
+ " beq ._233 @cond_branch\n"
+ " bl Menu_EraseScreen\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " add r0, r5, #0\n"
+ " b ._234\n"
+ "._236:\n"
+ " .align 2, 0\n"
+ "._235:\n"
+ " .word gSpecialVar_0x8005\n"
+ " .word gSaveBlock1\n"
+ " .word 0x2b6c\n"
+ " .word 0xffff\n"
+ "._233:\n"
+ " ldrh r1, [r4]\n"
+ " lsl r0, r1, #0x3\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r3\n"
+ " ldr r5, ._238\n"
+ " add r0, r0, r5\n"
+ " mov r2, #0x0\n"
+ " strh r2, [r0]\n"
+ " ldrh r1, [r4]\n"
+ " lsl r0, r1, #0x3\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r3\n"
+ " ldr r1, ._238 + 4\n"
+ " add r0, r0, r1\n"
+ " strh r2, [r0]\n"
+ " ldrh r1, [r4]\n"
+ " lsl r0, r1, #0x3\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r3\n"
+ " sub r5, r5, #0xe\n"
+ " add r0, r0, r5\n"
+ " mov r1, #0xff\n"
+ " strb r1, [r0]\n"
+ " ldrh r1, [r4]\n"
+ " lsl r0, r1, #0x3\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r5, r5, #0x8\n"
+ " add r1, r3, r5\n"
+ " add r0, r0, r1\n"
+ " str r2, [r0]\n"
+ " mov r0, #0x0\n"
+ " ldr r1, ._238 + 8\n"
+ " mov ip, r1\n"
+ " sub r5, r5, #0x1a\n"
+ " add r7, r3, r5\n"
+ " add r6, r4, #0\n"
+ " ldr r1, ._238 + 12\n"
+ " add r5, r1, #0\n"
+ "._237:\n"
+ " lsl r1, r0, #0x18\n"
+ " asr r1, r1, #0x18\n"
+ " lsl r3, r1, #0x1\n"
+ " ldrh r2, [r6]\n"
+ " lsl r0, r2, #0x3\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x2\n"
+ " add r3, r3, r0\n"
+ " add r3, r3, r7\n"
+ " ldrh r0, [r3]\n"
+ " orr r0, r0, r5\n"
+ " strh r0, [r3]\n"
+ " add r1, r1, #0x1\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r0, r1, #0x18\n"
+ " asr r1, r1, #0x18\n"
+ " cmp r1, #0x8\n"
+ " ble ._237 @cond_branch\n"
+ " ldrh r1, [r4]\n"
+ " mov r0, ip\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x1\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " ldr r4, ._238 + 16\n"
+ " add r0, r4, #0\n"
+ " mov r1, sp\n"
+ " bl StringExpandPlaceholders\n"
+ " bl Menu_EraseScreen\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " add r0, r4, #0\n"
+ "._234:\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ "._229:\n"
+ " bl debug_sub_810D340\n"
+ "._227:\n"
+ " mov r0, #0x0\n"
+ " add sp, sp, #0x34\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._239:\n"
+ " .align 2, 0\n"
+ "._238:\n"
+ " .word 0x2b6c\n"
+ " .word 0x2b6a\n"
+ " .word gStringVar1\n"
+ " .word 0xffff\n"
+ " .word gStringVar4\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810D174()
+{
+ 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, #0xfffffeec\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " ldr r1, ._242\n"
+ " add r0, sp, #0x8\n"
+ " mov r2, #0xc\n"
+ " bl memcpy\n"
+ " mov r5, #0x0\n"
+ " mov r0, sp\n"
+ " add r0, r0, #0x14\n"
+ " str r0, [sp, #0x110]\n"
+ " add r1, sp, #0xc8\n"
+ " mov r8, r1\n"
+ " add r2, sp, #0xcc\n"
+ " mov sl, r2\n"
+ " ldr r0, ._242 + 4\n"
+ " mov r9, r0\n"
+ "._248:\n"
+ " ldr r0, ._242 + 8\n"
+ " add r1, r5, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x1\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " lsl r1, r5, #0x3\n"
+ " add r0, r1, r5\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r9\n"
+ " ldr r2, ._242 + 12\n"
+ " add r4, r0, r2\n"
+ " ldrh r0, [r4]\n"
+ " add r6, r1, #0\n"
+ " ldr r1, ._242 + 16\n"
+ " cmp r0, r1\n"
+ " bne ._240 @cond_branch\n"
+ " ldr r0, ._242 + 20\n"
+ " mov r1, #0x1\n"
+ " b ._241\n"
+ "._243:\n"
+ " .align 2, 0\n"
+ "._242:\n"
+ " .word Str_84116AE\n"
+ " .word gSaveBlock1\n"
+ " .word gStringVar1\n"
+ " .word 0x2b6c\n"
+ " .word 0xffff\n"
+ " .word gStringVar2\n"
+ "._240:\n"
+ " sub r0, r0, #0x79\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " cmp r0, #0xb\n"
+ " bhi ._244 @cond_branch\n"
+ " ldr r0, ._246\n"
+ " mov r1, #0x2\n"
+ "._241:\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x1\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " b ._245\n"
+ "._247:\n"
+ " .align 2, 0\n"
+ "._246:\n"
+ " .word gStringVar2\n"
+ "._244:\n"
+ " ldr r0, ._253\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x1\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, #0x0\n"
+ " strh r0, [r4]\n"
+ "._245:\n"
+ " add r0, r6, r5\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r9\n"
+ " ldr r2, ._253 + 4\n"
+ " add r0, r0, r2\n"
+ " ldrh r1, [r0]\n"
+ " mov r0, #0xb\n"
+ " mul r1, r1, r0\n"
+ " ldr r0, ._253 + 8\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._253 + 12\n"
+ " bl StringCopy\n"
+ " lsl r4, r5, #0x2\n"
+ " add r4, r4, r5\n"
+ " lsl r4, r4, #0x2\n"
+ " ldr r0, [sp, #0x110]\n"
+ " add r4, r0, r4\n"
+ " add r0, r4, #0\n"
+ " add r1, sp, #0x8\n"
+ " bl StringExpandPlaceholders\n"
+ " mov r1, r8\n"
+ " add r0, r1, r6\n"
+ " str r4, [r0]\n"
+ " mov r2, sl\n"
+ " add r0, r2, r6\n"
+ " mov r4, #0x0\n"
+ " str r4, [r0]\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0x8\n"
+ " bls ._248 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x10\n"
+ " mov r3, #0x13\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x9\n"
+ " mov r3, r8\n"
+ " bl Menu_PrintItems\n"
+ " str r4, [sp]\n"
+ " mov r0, #0xf\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"
+ " cmp r7, #0x1\n"
+ " beq ._249 @cond_branch\n"
+ " cmp r7, #0x1\n"
+ " bgt ._250 @cond_branch\n"
+ " cmp r7, #0\n"
+ " beq ._251 @cond_branch\n"
+ " b ._257\n"
+ "._254:\n"
+ " .align 2, 0\n"
+ "._253:\n"
+ " .word gStringVar2\n"
+ " .word 0x2b6a\n"
+ " .word gSpeciesNames\n"
+ " .word gStringVar3\n"
+ "._250:\n"
+ " cmp r7, #0x2\n"
+ " beq ._255 @cond_branch\n"
+ " cmp r7, #0x3\n"
+ " beq ._256 @cond_branch\n"
+ " b ._257\n"
+ "._251:\n"
+ " ldr r1, ._259\n"
+ " ldr r0, ._259 + 4\n"
+ " b ._264\n"
+ "._260:\n"
+ " .align 2, 0\n"
+ "._259:\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_810CE48+1\n"
+ "._249:\n"
+ " ldr r1, ._262\n"
+ " ldr r0, ._262 + 4\n"
+ " b ._264\n"
+ "._263:\n"
+ " .align 2, 0\n"
+ "._262:\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_810CED0+1\n"
+ "._255:\n"
+ " ldr r1, ._265\n"
+ " ldr r0, ._265 + 4\n"
+ " b ._264\n"
+ "._266:\n"
+ " .align 2, 0\n"
+ "._265:\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_810CFA4+1\n"
+ "._256:\n"
+ " ldr r1, ._267\n"
+ " ldr r0, ._267 + 4\n"
+ "._264:\n"
+ " str r0, [r1]\n"
+ "._257:\n"
+ " add sp, sp, #0x114\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"
+ "._268:\n"
+ " .align 2, 0\n"
+ "._267:\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_810D030+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810D2F4()
+{
+ asm(
+ " push {lr}\n"
+ " bl Menu_ProcessInput\n"
+ " lsl r2, r0, #0x18\n"
+ " asr r1, r2, #0x18\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " cmp r1, r0\n"
+ " beq ._269 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " cmp r1, r0\n"
+ " bne ._270 @cond_branch\n"
+ " ldr r0, ._272\n"
+ " bl SetMainCallback2\n"
+ " b ._279\n"
+ "._273:\n"
+ " .align 2, 0\n"
+ "._272:\n"
+ " .word debug_sub_810CDF0+1\n"
+ "._270:\n"
+ " cmp r1, #0x1\n"
+ " beq ._278 @cond_branch\n"
+ " cmp r1, #0x1\n"
+ " bgt ._275 @cond_branch\n"
+ " cmp r1, #0\n"
+ " beq ._278 @cond_branch\n"
+ " b ._279\n"
+ "._275:\n"
+ " cmp r1, #0x2\n"
+ " beq ._278 @cond_branch\n"
+ " cmp r1, #0x3\n"
+ " bne ._279 @cond_branch\n"
+ "._278:\n"
+ " lsr r0, r2, #0x18\n"
+ " bl debug_sub_810D174\n"
+ "._269:\n"
+ " mov r0, #0x0\n"
+ " b ._280\n"
+ "._279:\n"
+ " mov r0, #0x1\n"
+ "._280:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810D340()
+{
+ asm(
+ " push {lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x9\n"
+ " mov r3, #0x9\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r3, ._281\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x4\n"
+ " bl Menu_PrintItems\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " mov r0, #0x8\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x4\n"
+ " bl InitMenu\n"
+ " ldr r1, ._281 + 4\n"
+ " ldr r0, ._281 + 8\n"
+ " str r0, [r1]\n"
+ " add sp, sp, #0x8\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._282:\n"
+ " .align 2, 0\n"
+ "._281:\n"
+ " .word _84116BC\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_810D2F4+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_810D388()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " ldr r1, ._285\n"
+ " ldr r2, ._285 + 4\n"
+ " add r0, r1, r2\n"
+ " ldrb r0, [r0]\n"
+ " add r2, r1, #0\n"
+ " cmp r0, #0x8\n"
+ " bls ._283 @cond_branch\n"
+ " b ._320\n"
+ "._283:\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._285 + 8\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov pc, r0\n"
+ "._286:\n"
+ " .align 2, 0\n"
+ "._285:\n"
+ " .word gMain\n"
+ " .word 0x43c\n"
+ " .word ._287\n"
+ "._287:\n"
+ " .word ._288\n"
+ " .word ._289\n"
+ " .word ._290\n"
+ " .word ._291\n"
+ " .word ._292\n"
+ " .word ._293\n"
+ " .word ._294\n"
+ " .word ._295\n"
+ " .word ._296\n"
+ "._288:\n"
+ " ldr r3, ._299\n"
+ " ldrb r4, [r3]\n"
+ " cmp r4, #0\n"
+ " beq ._297 @cond_branch\n"
+ " ldr r1, ._299 + 4\n"
+ " add r0, r2, r1\n"
+ " mov r2, #0x0\n"
+ " mov r1, #0x2\n"
+ " strb r1, [r0]\n"
+ " strb r2, [r3]\n"
+ " b ._320\n"
+ "._300:\n"
+ " .align 2, 0\n"
+ "._299:\n"
+ " .word unk_debug_bss_2\n"
+ " .word 0x43c\n"
+ "._297:\n"
+ " bl remove_some_task\n"
+ " bl ResetPaletteFade\n"
+ " ldr r0, ._302\n"
+ " bl SetVBlankCallback\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " str r4, [sp]\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x10\n"
+ " bl BeginNormalPaletteFade\n"
+ " b ._321\n"
+ "._303:\n"
+ " .align 2, 0\n"
+ "._302:\n"
+ " .word sub_80F8F18+1\n"
+ "._289:\n"
+ " bl UpdatePaletteFade\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._304 @cond_branch\n"
+ " b ._320\n"
+ "._304:\n"
+ " b ._321\n"
+ "._290:\n"
+ " mov r0, #0x0\n"
+ " bl SetVBlankCallback\n"
+ " ldr r0, ._308\n"
+ " mov r1, #0x0\n"
+ " strh r1, [r0]\n"
+ " add r0, r0, #0x2\n"
+ " strh r1, [r0]\n"
+ " add r0, r0, #0x2\n"
+ " strh r1, [r0]\n"
+ " add r0, r0, #0x2\n"
+ " strh r1, [r0]\n"
+ " add r0, r0, #0x4\n"
+ " strh r1, [r0]\n"
+ " sub r0, r0, #0x2\n"
+ " strh r1, [r0]\n"
+ " add r0, r0, #0x4\n"
+ " strh r1, [r0]\n"
+ " add r0, r0, #0x2\n"
+ " strh r1, [r0]\n"
+ " b ._321\n"
+ "._309:\n"
+ " .align 2, 0\n"
+ "._308:\n"
+ " .word 0x4000010\n"
+ "._291:\n"
+ " bl ResetSpriteData\n"
+ " bl ResetTasks\n"
+ " bl FreeAllSpritePalettes\n"
+ " b ._321\n"
+ "._292:\n"
+ " ldr r4, ._312\n"
+ " add r0, r4, #0\n"
+ " bl Text_LoadWindowTemplate\n"
+ " add r0, r4, #0\n"
+ " bl InitMenuWindow\n"
+ " bl Menu_EraseScreen\n"
+ " b ._321\n"
+ "._313:\n"
+ " .align 2, 0\n"
+ "._312:\n"
+ " .word gWindowTemplate_81E6CE4\n"
+ "._293:\n"
+ " ldr r4, ._315\n"
+ " ldr r0, [r4]\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x20\n"
+ " bl LoadPalette\n"
+ " ldr r0, [r4, #0x4]\n"
+ " mov r1, #0xc0\n"
+ " lsl r1, r1, #0x13\n"
+ " bl LZ77UnCompVram\n"
+ " add r1, sp, #0x4\n"
+ " mov r0, #0x1\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._315 + 4\n"
+ " add r2, sp, #0x4\n"
+ " str r2, [r1]\n"
+ " ldr r0, ._315 + 8\n"
+ " str r0, [r1, #0x4]\n"
+ " ldr r0, ._315 + 12\n"
+ " str r0, [r1, #0x8]\n"
+ " ldr r0, [r1, #0x8]\n"
+ " b ._321\n"
+ "._316:\n"
+ " .align 2, 0\n"
+ "._315:\n"
+ " .word gMailGraphicsTable\n"
+ " .word 0x40000d4\n"
+ " .word 0x6004000\n"
+ " .word 0x81000280\n"
+ "._294:\n"
+ " ldr r1, ._318\n"
+ " ldr r2, ._318 + 4\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r2, ._318 + 8\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x46\n"
+ " mov r0, #0x0\n"
+ " strh r0, [r1]\n"
+ " sub r1, r1, #0x50\n"
+ " mov r2, #0xd0\n"
+ " lsl r2, r2, #0x2\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " bl debug_sub_810D340\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " mov r1, #0x0\n"
+ " str r1, [sp]\n"
+ " mov r2, #0x10\n"
+ " mov r3, #0x0\n"
+ " bl BeginNormalPaletteFade\n"
+ " ldr r0, ._318 + 12\n"
+ " bl SetVBlankCallback\n"
+ " b ._321\n"
+ "._319:\n"
+ " .align 2, 0\n"
+ "._318:\n"
+ " .word 0x4000008\n"
+ " .word 0x9f08\n"
+ " .word 0x801\n"
+ " .word sub_80F8F18+1\n"
+ "._295:\n"
+ " bl UpdatePaletteFade\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._320 @cond_branch\n"
+ " b ._321\n"
+ "._296:\n"
+ " ldr r0, ._322\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " ldr r0, ._322 + 4\n"
+ " bl SetMainCallback2\n"
+ "._321:\n"
+ " ldr r1, ._322 + 8\n"
+ " ldr r0, ._322 + 12\n"
+ " add r1, r1, r0\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ "._320:\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._323:\n"
+ " .align 2, 0\n"
+ "._322:\n"
+ " .word debug_sub_810CE1C+1\n"
+ " .word debug_sub_810CDE0+1\n"
+ " .word gMain\n"
+ " .word 0x43c\n"
+ "\n"
+ );
+}
+#endif \ No newline at end of file